From f0b2073caa8cd4ef965013b1db4eb60566252679 Mon Sep 17 00:00:00 2001 From: Priec Date: Sat, 7 Mar 2026 21:30:55 +0100 Subject: [PATCH] 01 hotova --- hod_1/data/example_pytorch.py | 67 + hod_1/data/example_pytorch_tensorboard.py | 68 + hod_1/data/mnist_layers_activations.py | 73 + hod_1/data/numpy_entropy.py | 58 + hod_1/data/numpy_entropy_data_1.txt | 7 + hod_1/data/numpy_entropy_data_2.txt | 7 + hod_1/data/numpy_entropy_data_3.txt | 1000 ++ hod_1/data/numpy_entropy_data_4.txt | 10000 ++++++++++++++++++++ hod_1/data/numpy_entropy_model_1.txt | 3 + hod_1/data/numpy_entropy_model_2.txt | 3 + hod_1/data/numpy_entropy_model_3.txt | 100 + hod_1/data/numpy_entropy_model_4.txt | 200 + hod_1/data/pca_first.py | 82 + hod_1/src/lib.rs | 63 + hod_1/src/main.rs | 70 +- 15 files changed, 11753 insertions(+), 48 deletions(-) create mode 100644 hod_1/data/example_pytorch.py create mode 100644 hod_1/data/example_pytorch_tensorboard.py create mode 100644 hod_1/data/mnist_layers_activations.py create mode 100644 hod_1/data/numpy_entropy.py create mode 100644 hod_1/data/numpy_entropy_data_1.txt create mode 100644 hod_1/data/numpy_entropy_data_2.txt create mode 100644 hod_1/data/numpy_entropy_data_3.txt create mode 100644 hod_1/data/numpy_entropy_data_4.txt create mode 100644 hod_1/data/numpy_entropy_model_1.txt create mode 100644 hod_1/data/numpy_entropy_model_2.txt create mode 100644 hod_1/data/numpy_entropy_model_3.txt create mode 100644 hod_1/data/numpy_entropy_model_4.txt create mode 100644 hod_1/data/pca_first.py create mode 100644 hod_1/src/lib.rs diff --git a/hod_1/data/example_pytorch.py b/hod_1/data/example_pytorch.py new file mode 100644 index 0000000..f4c9828 --- /dev/null +++ b/hod_1/data/example_pytorch.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +import argparse + +import torch +import torchmetrics + +import npfl138 +from npfl138.datasets.mnist import MNIST +npfl138.require_version("2526.1") + +# Parse arguments +parser = argparse.ArgumentParser() +parser.add_argument("--batch_size", default=50, type=int, help="Batch size.") +parser.add_argument("--epochs", default=10, type=int, help="Number of epochs.") +parser.add_argument("--hidden_layer_size", default=100, type=int, help="Size of the hidden layer.") +parser.add_argument("--seed", default=42, type=int, help="Random seed.") +parser.add_argument("--threads", default=1, type=int, help="Maximum number of threads to use.") + + +class Dataset(npfl138.TransformedDataset): + def transform(self, example): + image = example["image"] # a torch.Tensor with torch.uint8 values in [0, 255] range + image = image.to(torch.float32) / 255 # image converted to float32 and rescaled to [0, 1] + label = example["label"] # a torch.Tensor with a single integer representing the label + return image, label # return an (input, target) pair + + +def main(args: argparse.Namespace) -> None: + # Set the random seed and the number of threads. + npfl138.startup(args.seed, args.threads) + npfl138.global_keras_initializers() + + # Load the data and create dataloaders. + mnist = MNIST() + + train = torch.utils.data.DataLoader(Dataset(mnist.train), batch_size=args.batch_size, shuffle=True) + dev = torch.utils.data.DataLoader(Dataset(mnist.dev), batch_size=args.batch_size) + test = torch.utils.data.DataLoader(Dataset(mnist.test), batch_size=args.batch_size) + + # Create the model. + model = torch.nn.Sequential( + torch.nn.Flatten(), + torch.nn.Linear(MNIST.C * MNIST.H * MNIST.W, args.hidden_layer_size), + torch.nn.ReLU(), + torch.nn.Linear(args.hidden_layer_size, MNIST.LABELS), + ) + print("The following model has been created:", model) + + # Create the TrainableModule and configure it for training. + model = npfl138.TrainableModule(model) + + model.configure( + optimizer=torch.optim.Adam(model.parameters()), + loss=torch.nn.CrossEntropyLoss(), + metrics={"accuracy": torchmetrics.Accuracy("multiclass", num_classes=MNIST.LABELS)}, + ) + + # Train the model. + model.fit(train, dev=dev, epochs=args.epochs) + + # Evaluate the model on the test data. + model.evaluate(test) + + +if __name__ == "__main__": + main_args = parser.parse_args([] if "__file__" not in globals() else None) + main(main_args) diff --git a/hod_1/data/example_pytorch_tensorboard.py b/hod_1/data/example_pytorch_tensorboard.py new file mode 100644 index 0000000..ea6fb96 --- /dev/null +++ b/hod_1/data/example_pytorch_tensorboard.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +import argparse + +import torch +import torchmetrics + +import npfl138 +from npfl138.datasets.mnist import MNIST +npfl138.require_version("2526.1") + +# Parse arguments +parser = argparse.ArgumentParser() +parser.add_argument("--batch_size", default=50, type=int, help="Batch size.") +parser.add_argument("--epochs", default=10, type=int, help="Number of epochs.") +parser.add_argument("--hidden_layer_size", default=100, type=int, help="Size of the hidden layer.") +parser.add_argument("--seed", default=42, type=int, help="Random seed.") +parser.add_argument("--threads", default=1, type=int, help="Maximum number of threads to use.") + + +class Dataset(npfl138.TransformedDataset): + def transform(self, example): + image = example["image"] # a torch.Tensor with torch.uint8 values in [0, 255] range + image = image.to(torch.float32) / 255 # image converted to float32 and rescaled to [0, 1] + label = example["label"] # a torch.Tensor with a single integer representing the label + return image, label # return an (input, target) pair + + +def main(args: argparse.Namespace) -> None: + # Set the random seed and the number of threads. + npfl138.startup(args.seed, args.threads) + npfl138.global_keras_initializers() + + # Load the data and create dataloaders. + mnist = MNIST() + + train = torch.utils.data.DataLoader(Dataset(mnist.train), batch_size=args.batch_size, shuffle=True) + dev = torch.utils.data.DataLoader(Dataset(mnist.dev), batch_size=args.batch_size) + test = torch.utils.data.DataLoader(Dataset(mnist.test), batch_size=args.batch_size) + + # Create the model. + model = torch.nn.Sequential( + torch.nn.Flatten(), + torch.nn.Linear(MNIST.C * MNIST.H * MNIST.W, args.hidden_layer_size), + torch.nn.ReLU(), + torch.nn.Linear(args.hidden_layer_size, MNIST.LABELS), + ) + print("The following model has been created:", model) + + # Create the TrainableModule and configure it for training. + model = npfl138.TrainableModule(model) + + model.configure( + optimizer=torch.optim.Adam(model.parameters()), + loss=torch.nn.CrossEntropyLoss(), + metrics={"accuracy": torchmetrics.Accuracy("multiclass", num_classes=MNIST.LABELS)}, + logdir=npfl138.format_logdir("logs/{file-}{timestamp}{-config}", **vars(args)), + ) + + # Train the model. + model.fit(train, dev=dev, epochs=args.epochs, log_config=vars(args), log_graph=True) + + # Evaluate the model on the test data. + model.evaluate(test) + + +if __name__ == "__main__": + main_args = parser.parse_args([] if "__file__" not in globals() else None) + main(main_args) diff --git a/hod_1/data/mnist_layers_activations.py b/hod_1/data/mnist_layers_activations.py new file mode 100644 index 0000000..daabd79 --- /dev/null +++ b/hod_1/data/mnist_layers_activations.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +import argparse + +import torch +import torchmetrics + +import npfl138 +npfl138.require_version("2526.1") +from npfl138.datasets.mnist import MNIST + +parser = argparse.ArgumentParser() +# These arguments will be set appropriately by ReCodEx, even if you change them. +parser.add_argument("--activation", default="none", choices=["none", "relu", "tanh", "sigmoid"], help="Activation.") +parser.add_argument("--batch_size", default=50, type=int, help="Batch size.") +parser.add_argument("--epochs", default=10, type=int, help="Number of epochs.") +parser.add_argument("--hidden_layer_size", default=100, type=int, help="Size of the hidden layer.") +parser.add_argument("--hidden_layers", default=1, type=int, help="Number of layers.") +parser.add_argument("--recodex", default=False, action="store_true", help="Evaluation in ReCodEx.") +parser.add_argument("--seed", default=42, type=int, help="Random seed.") +parser.add_argument("--threads", default=1, type=int, help="Maximum number of threads to use.") +# If you add more arguments, ReCodEx will keep them with your default values. + + +class Dataset(npfl138.TransformedDataset): + def transform(self, example): + image = example["image"] # a torch.Tensor with torch.uint8 values in [0, 255] range + image = image.to(torch.float32) / 255 # image converted to float32 and rescaled to [0, 1] + label = example["label"] # a torch.Tensor with a single integer representing the label + return image, label # return an (input, target) pair + + +def main(args: argparse.Namespace) -> dict[str, float]: + # Set the random seed and the number of threads. + npfl138.startup(args.seed, args.threads, args.recodex) + npfl138.global_keras_initializers() + + # Load the data and create dataloaders. + mnist = MNIST() + + train = torch.utils.data.DataLoader(Dataset(mnist.train), batch_size=args.batch_size, shuffle=True) + dev = torch.utils.data.DataLoader(Dataset(mnist.dev), batch_size=args.batch_size) + + # Create the model. + model = torch.nn.Sequential() + + # TODO: Finish the model. Namely: + # - start by adding the `torch.nn.Flatten()` layer; + # - then add `args.hidden_layers` number of fully connected hidden layers + # `torch.nn.Linear()`, each with `args.hidden_layer_size` neurons and followed by + # a specified `args.activation`, allowing "none", "relu", "tanh", "sigmoid"; + # - finally, add an output fully connected layer with `MNIST.LABELS` units. + ... + + # Create the TrainableModule and configure it for training. + model = npfl138.TrainableModule(model) + + model.configure( + optimizer=torch.optim.Adam(model.parameters()), + loss=torch.nn.CrossEntropyLoss(), + metrics={"accuracy": torchmetrics.Accuracy("multiclass", num_classes=MNIST.LABELS)}, + logdir=npfl138.format_logdir("logs/{file-}{timestamp}{-config}", **vars(args)), + ) + + # Train the model. + logs = model.fit(train, dev=dev, epochs=args.epochs) + + # Return development metrics for ReCodEx to validate. + return {metric: value for metric, value in logs.items() if metric.startswith("dev:")} + + +if __name__ == "__main__": + main_args = parser.parse_args([] if "__file__" not in globals() else None) + main(main_args) diff --git a/hod_1/data/numpy_entropy.py b/hod_1/data/numpy_entropy.py new file mode 100644 index 0000000..afd5972 --- /dev/null +++ b/hod_1/data/numpy_entropy.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +import argparse + +import numpy as np + +parser = argparse.ArgumentParser() +# These arguments will be set appropriately by ReCodEx, even if you change them. +parser.add_argument("--data_path", default="numpy_entropy_data.txt", type=str, help="Data distribution path.") +parser.add_argument("--model_path", default="numpy_entropy_model.txt", type=str, help="Model distribution path.") +parser.add_argument("--recodex", default=False, action="store_true", help="Evaluation in ReCodEx.") +# If you add more arguments, ReCodEx will keep them with your default values. + + +def main(args: argparse.Namespace) -> tuple[float, float, float]: + # TODO: Load data distribution, each line containing a datapoint -- a string. + with open(args.data_path, "r") as data: + for line in data: + line = line.rstrip("\n") + # TODO: Process the line, aggregating data with built-in Python + # data structures (not NumPy, which is not suitable for incremental + # addition and string mapping). + + # TODO: Create a NumPy array containing the data distribution. The + # NumPy array should contain only data, not any mapping. Alternatively, + # the NumPy array might be created after loading the model distribution. + + # TODO: Load model distribution, each line `string \t probability`. + with open(args.model_path, "r") as model: + for line in model: + line = line.rstrip("\n") + # TODO: Process the line, aggregating using Python data structures. + + # TODO: Create a NumPy array containing the model distribution. + + # TODO: Compute the entropy H(data distribution). You should not use + # manual for/while cycles, but instead use the fact that most NumPy methods + # operate on all elements (for example `*` is vector element-wise multiplication). + entropy = ... + + # TODO: Compute cross-entropy H(data distribution, model distribution). + # When some data distribution elements are missing in the model distribution, + # the resulting crossentropy should be `np.inf`. + crossentropy = ... + + # TODO: Compute KL-divergence D_KL(data distribution, model_distribution), + # again using `np.inf` when needed. + kl_divergence = ... + + # Return the computed values for ReCodEx to validate. + return entropy, crossentropy, kl_divergence + + +if __name__ == "__main__": + main_args = parser.parse_args([] if "__file__" not in globals() else None) + entropy, crossentropy, kl_divergence = main(main_args) + print(f"Entropy: {entropy:.2f} nats") + print(f"Crossentropy: {crossentropy:.2f} nats") + print(f"KL divergence: {kl_divergence:.2f} nats") diff --git a/hod_1/data/numpy_entropy_data_1.txt b/hod_1/data/numpy_entropy_data_1.txt new file mode 100644 index 0000000..87491ec --- /dev/null +++ b/hod_1/data/numpy_entropy_data_1.txt @@ -0,0 +1,7 @@ +A +BB +A +A +BB +A +CCC diff --git a/hod_1/data/numpy_entropy_data_2.txt b/hod_1/data/numpy_entropy_data_2.txt new file mode 100644 index 0000000..87491ec --- /dev/null +++ b/hod_1/data/numpy_entropy_data_2.txt @@ -0,0 +1,7 @@ +A +BB +A +A +BB +A +CCC diff --git a/hod_1/data/numpy_entropy_data_3.txt b/hod_1/data/numpy_entropy_data_3.txt new file mode 100644 index 0000000..4ac1f85 --- /dev/null +++ b/hod_1/data/numpy_entropy_data_3.txt @@ -0,0 +1,1000 @@ +izndo +dtpqp +bevod +esgda +rgmnm +grjbd +izoar +ehhoq +iougj +zxzaj +hbezl +suddn +gonfc +iougj +dtpqp +mkcbp +iougj +tykoo +omyfi +ehhoq +ydmkt +izndo +ehhoq +rzacp +boyoj +rgmnm +qpeyg +rgmnm +qpeyg +mpubo +lvynz +ysuqz +izoar +dpuri +ysuqz +qlvmh +izndo +ehhoq +rgmnm +bevod +fufwi +esgda +xzxgz +rzacp +zexjt +nfloq +wuidn +hbezl +boyoj +qlvmh +qfdhm +nfloq +hpzog +tykoo +omyfi +qlvmh +euofa +tykoo +vvbgz +xzxgz +lfgnw +qhsix +izoar +bulfd +tcclk +ehhoq +ehhoq +izoar +qfdhm +qlvmh +raabk +qfdhm +qlvmh +suddn +boyoj +wuidn +xzxgz +dpuri +keunp +rgmnm +hpzog +raabk +izoar +fufwi +izndo +tajwq +ysuqz +xzxgz +jnzwv +rzacp +usmyd +gcltr +ttvhw +dtpqp +fuayx +wxaxe +xiohq +dpuri +qlvmh +qlvmh +kpewx +ypygl +fuayx +dsgct +qlvmh +taplx +jnzwv +izoar +nsjfo +guhsk +fufwi +hbezl +wocje +boyoj +hbezl +rgmnm +iougj +rzacp +qlvmh +qhsix +iougj +icwiv +cqjir +mpubo +qilpf +rgmnm +bulfd +fufwi +gonfc +wuidn +dpuri +ydniv +dpuri +rwlqi +hbezl +dpuri +ydniv +cgkms +qpeyg +cgkms +wxaxe +esgda +hpzog +rgmnm +xzxgz +ysuqz +qlvmh +qhsix +ctugy +rgmnm +xzxgz +rzacp +hbezl +taplx +mcktt +gonfc +rzacp +hbezl +iougj +fufwi +qlvmh +qfdhm +dpuri +jnzwv +zajpa +rgmnm +sqxvv +dpuri +rgmnm +hbezl +rgmnm +hbezl +hbezl +fxwih +suddn +hbezl +qlvmh +etbqm +usmyd +dpuri +iougj +qlvmh +osehz +qpeyg +qhsix +icwiv +hbezl +qwmks +wuidn +ehhoq +qhsix +rzacp +cgkms +rgmnm +aiphx +rgmnm +vvbgz +grjbd +iougj +mpubo +fufwi +hbezl +izoar +ysuqz +fufwi +ehhoq +zpfwu +qfdhm +mkcbp +dpuri +izndo +esgda +grjbd +ehhoq +tcclk +usmyd +izoar +rzacp +qlvmh +iougj +boyoj +lfgnw +izoar +rzacp +mcktt +hbezl +tykoo +eghhy +dtpqp +rzacp +osehz +usmyd +dsgct +hbezl +qfdhm +bulfd +tajwq +ezlzh +iougj +boyoj +qpeyg +dtpqp +wxaxe +taplx +qlvmh +vvbgz +wuidn +mcktt +xumnc +guhsk +ysuqz +zpfwu +raffb +kpewx +zntnp +cqjir +xzxgz +qhsix +boyoj +qfdhm +ttvhw +zexjt +jnzwv +rgmnm +izoar +hbezl +raffb +izoar +lvynz +suddn +wxaxe +raabk +rgmnm +qwmks +rzacp +dpuri +boyoj +raabk +zhrco +dtpqp +zexjt +cgkms +fufwi +zajpa +iougj +cgkms +ehhoq +wuidn +ehhoq +tahse +emvms +mpubo +tahse +izoar +tcclk +dpuri +tahse +guhsk +xzxgz +qwmks +hbezl +fuayx +qilpf +gonfc +emvms +ydniv +gsrfj +fuayx +xzxgz +raabk +rzacp +wxaxe +iougj +fgnfx +lvynz +xmjnf +hbezl +xumnc +rzacp +fufwi +izndo +nfloq +qfdhm +ysuqz +izndo +mkcbp +dpuri +euofa +hbezl +iougj +cgkms +wtxyq +sqxvv +dtpqp +qwmks +hbezl +mcktt +lvynz +vvbgz +guhsk +ehhoq +xzxgz +fufwi +zajpa +rgmnm +cgkms +cgkms +fuayx +qlvmh +mkcbp +wxaxe +ttvhw +izoar +tqwbr +mcktt +omyfi +rgmnm +fufwi +ysuqz +nsjfo +aiphx +rwlqi +gcltr +fuayx +xzxgz +tajwq +nfloq +dtpqp +grjbd +qfdhm +taplx +wtxyq +fufwi +qfdhm +rzacp +dsgct +zhrco +fgnfx +tahse +dtpqp +qhsix +rgmnm +izoar +izoar +xzxgz +hbezl +rgmnm +qfdhm +rgmnm +iougj +tykoo +wxaxe +ysuqz +suddn +ehhoq +boyoj +iougj +rgmnm +xzxgz +rgmnm +usmyd +iougj +mpubo +ehhoq +fufwi +zexjt +gonfc +ctugy +fufwi +mkcbp +rgmnm +cqjir +ydniv +boyoj +rgmnm +raffb +usmyd +vlquz +gonfc +ehhoq +rgmnm +cgkms +rgmnm +izoar +qwmks +iougj +zpfwu +dpuri +zhrco +tykoo +qpeyg +wxaxe +vlquz +cgkms +vlquz +izoar +rgmnm +boyoj +rzacp +hbezl +dtpqp +ysuqz +rzacp +xzxgz +oyqll +hpzog +suddn +rzacp +qlvmh +qlvmh +aiphx +qlvmh +wocje +qpeyg +dpuri +iougj +rzacp +rgmnm +rgmnm +qlvmh +dpuri +rzacp +tqwbr +iougj +izoar +iougj +cqjir +zexjt +jnzwv +tahse +cgkms +vvbgz +gcltr +usmyd +hbezl +guhsk +rgmnm +esgda +usmyd +izndo +qpeyg +tahse +bulfd +qfdhm +qfdhm +wxaxe +dsgct +mkcbp +hpzog +nsjfo +wxaxe +izoar +rzacp +tcclk +iougj +hbezl +ttvhw +rzacp +izoar +mpubo +icwiv +fufwi +raabk +hbezl +raabk +dpuri +ypygl +dpuri +tcclk +rzacp +qlvmh +boyoj +osehz +wxaxe +mkcbp +izoar +vvbgz +tcclk +cgkms +dpuri +ehhoq +izoar +hbezl +dtpqp +fufwi +dtpqp +qpeyg +hbezl +ttvhw +hbezl +huchd +raabk +qhsix +dtpqp +tykoo +rzacp +fufwi +rgmnm +emvms +qfdhm +fufwi +esgda +rgmnm +tykoo +osehz +zxzaj +tahse +zexjt +hbezl +esgda +zpfwu +gcltr +rzacp +wxaxe +mcktt +esgda +guhsk +fufwi +etbqm +wxaxe +esgda +tykoo +mzzkf +xmjnf +vvbgz +tahse +qlvmh +rgmnm +tcclk +qfdhm +mkcbp +bulfd +hbezl +raabk +tqwbr +dppgn +fufwi +rgmnm +hpzog +lfgnw +fgnfx +rzacp +nfloq +ehhoq +fpnuy +dtpqp +tykoo +raabk +boyoj +suddn +nfloq +ypygl +tahse +mpubo +wxaxe +esgda +lvynz +qfdhm +ehhoq +rgmnm +mcktt +tcclk +gonfc +iougj +dtpqp +ehhoq +iougj +rzacp +qfdhm +ehhoq +hbezl +wxaxe +rgmnm +huchd +lvynz +guhsk +lfgnw +fgnfx +guhsk +izndo +raabk +tykoo +jnzwv +raabk +mpubo +pojke +fufwi +ttvhw +izoar +ypygl +qlvmh +kpewx +usmyd +vvbgz +qfdhm +izoar +qfdhm +ctugy +fufwi +qlvmh +fufwi +rcruz +rzacp +lfgnw +dtpqp +bevod +qpeyg +tykoo +raabk +cgkms +qfdhm +rzacp +taplx +gonfc +fufwi +wxaxe +dsgct +tcclk +eghhy +qlvmh +hbezl +ehhoq +izoar +bulfd +gcltr +hpzog +guhsk +tqwbr +ydmkt +rgmnm +esgda +izoar +sqxvv +rgmnm +qlvmh +qwmks +boyoj +mpubo +taplx +qfdhm +qwmks +gonfc +wxaxe +usmyd +raabk +tcclk +ehhoq +qilpf +rzacp +mpubo +rcruz +ysuqz +qilpf +bevod +esgda +osehz +gonfc +qwmks +nsjfo +qlvmh +dpuri +iougj +wocje +tahse +fufwi +qfdhm +tykoo +xmjnf +nsjfo +rgmnm +hbezl +hbezl +wtxyq +qlvmh +bevod +nfloq +rgmnm +wxaxe +qhsix +qlvmh +rgmnm +usmyd +dtpqp +ehhoq +hbezl +izndo +lvynz +taplx +rgmnm +eghhy +ydniv +dtpqp +bevod +xtkrt +grjbd +rzacp +lvynz +bevod +mpubo +qpeyg +ydniv +rzacp +rzacp +rgmnm +boyoj +rgmnm +hbezl +rzacp +ydniv +iougj +egbxl +rzacp +qlvmh +ydmkt +izoar +mzzkf +ehhoq +rgmnm +mcktt +zntnp +euofa +qhsix +emvms +rgmnm +ctugy +iougj +nfloq +raabk +qpeyg +izoar +usmyd +gonfc +zexjt +egbxl +xzxgz +izndo +qlvmh +qfdhm +qlvmh +tahse +yzgcc +ehhoq +dtpqp +iougj +rzacp +vvbgz +raabk +wuidn +wuidn +izndo +qpeyg +xzxgz +mcktt +rzacp +rzacp +ydmkt +tykoo +mpubo +jnzwv +izoar +fxwih +mpubo +ehhoq +taplx +raabk +icwiv +hbezl +xzxgz +lvynz +qlvmh +qwmks +iougj +hbezl +mkcbp +qlvmh +hbezl +rzacp +taplx +fuayx +ehhoq +qwmks +tykoo +fufwi +iougj +ttvhw +hbezl +fuayx +lfgnw +fuayx +dtpqp +taplx +qlvmh +wtxyq +grjbd +huchd +lvynz +xtkrt +mpubo +rgmnm +raabk +hbezl +rgmnm +sqxvv +mcktt +gcltr +usmyd +zpfwu +qwmks +xtkrt +grjbd +vvbgz +bevod +xzxgz +qpeyg +gonfc +icwiv +vvbgz +nfloq +mcktt +qlvmh +dtpqp +qlvmh +izoar +pojke +ysuqz +boyoj +gcltr +tykoo +iougj +qcrek +hbezl +raabk +qfdhm +cgkms +osehz +rzacp +hpzog +raabk +rgmnm +aiphx +ehhoq +xtkrt +fufwi +ysuqz +omyfi +taplx +iougj +usmyd +raabk +qpeyg +qhsix +mpubo +iougj +fufwi +ehhoq +izndo +usmyd +esgda +izoar +guhsk +rzacp +bulfd +fufwi +qhsix +hbezl +cgkms +dppgn +jnzwv +izoar +rzacp +iougj +xmjnf +xzxgz +wxaxe +vlquz +rgmnm +fufwi +xmjnf +ttvhw +wxaxe +jnzwv +rgmnm +raabk +hbezl +tcclk +raffb +izndo +hpzog +hbezl +taplx +mcktt +qwmks +mkcbp +qhsix +raabk +ttvhw +qhsix +qwmks +vvbgz +qpeyg +mzzkf +ttvhw +ehhoq +ehhoq +grjbd +taplx +xumnc +rgmnm +osehz +rzacp +egbxl +ehhoq +wuidn +rgmnm +sqxvv +mcktt +usmyd +tcclk +huchd +ttvhw +hbezl +iougj +xzxgz +mkcbp +ehhoq +hbezl +nfloq +qfdhm +jnzwv +guhsk +rzacp +grjbd +dpuri +ehhoq +icwiv +ehhoq +cgkms +lvynz +rzacp +rgmnm +peyxt +hbezl +cqjir +qpeyg +peyxt +izoar +qhsix +mzzkf +qilpf +qfdhm +omyfi +raabk +tykoo +kpewx +xtkrt +usmyd +wocje +suddn +fuayx +tcclk diff --git a/hod_1/data/numpy_entropy_data_4.txt b/hod_1/data/numpy_entropy_data_4.txt new file mode 100644 index 0000000..64dbbe8 --- /dev/null +++ b/hod_1/data/numpy_entropy_data_4.txt @@ -0,0 +1,10000 @@ +bqjirtjb +lkwpaiik +zusfguab +ziyvyejl +stkfzrxm +oarfqwxd +zjfehspd +uoasbjrz +sumgousm +bnqqgrlp +qaoatkzw +kvanptal +clzquaoh +pqxekaan +snfnnaow +uoasbjrz +rblbftch +xpncwfyz +mbpcgqyi +gviqjnka +nvgiglpg +pjkouayb +qyalrqha +posryrwj +ewtkqwqc +irdnmbpc +clzquaoh +dyslcyus +nvgiglpg +gjrnpmcc +tmmjvjvw +ixmclekj +tmmjvjvw +sbvqorso +rcxcoclf +xntjdryl +qegytrys +clzquaoh +uoasbjrz +uoasbjrz +wmrryjbh +llwmrzjl +scvfioku +qxpfvmqq +fjffynzj +hnpikhxo +hejxlqrt +scvfioku +utqcywou +bpplofjm +barlvanl +lvpfctfp +rxpjkrob +dklpprvj +uyzkiyny +litrmtxc +nptbmfae +nvgiglpg +rblbftch +barlvanl +ntdwlyyu +tmmjvjvw +opbtajsx +mbpcgqyi +hdbfrnha +mbpcgqyi +twtxssyg +ixmclekj +ivxoaqvg +qtyafvix +uqsvrodw +nvgiglpg +xqfvyctk +aylkedwc +stfwtrsa +stkfzrxm +aylkedwc +nfkgpovg +canuyblm +bvggwzqp +cdxltwqx +hmpjprva +qegytrys +ygedcrzi +xntjdryl +aybiktvj +stfwtrsa +uoasbjrz +czsayrkz +utqcywou +zkrxhkny +cdxltwqx +jllhtiip +rcxcoclf +fjffynzj +tmmjvjvw +pjkouayb +dhmytfyl +kvanptal +ybgaiwqm +ifdqnine +ikutiphu +ghvjpnkn +snfnnaow +modgjwsr +lkwpaiik +jllhtiip +aylkedwc +irdnmbpc +uoasbjrz +gifksbue +bvggwzqp +opbtajsx +zokasczg +scvfioku +dklpprvj +hmpjprva +syvktodv +ifdqnine +snfnnaow +lbelzpbs +nvgiglpg +gjrnpmcc +fmaafgvi +tmmjvjvw +mbpcgqyi +ikutiphu +xpncwfyz +wwatmyfh +sumgousm +rblbftch +nnshafed +pqxekaan +gviqjnka +opbtajsx +mbpcgqyi +twtxssyg +uoasbjrz +hmpjprva +uoasbjrz +utqcywou +litrmtxc +qtyafvix +rblbftch +xqfvyctk +wcnhypxx +zjfehspd +gjhikwpn +pdbdosic +modgjwsr +posryrwj +bvpnukag +qrrwjspo +hdbfrnha +dqxddeox +gifksbue +modgjwsr +bqekebug +fatcfvpk +gdpurstk +qegytrys +vldohfjo +uyzkiyny +fswersgr +jqpyomdo +wwatmyfh +bpplofjm +hlfnhahj +uyzkiyny +barlvanl +rcxcoclf +bvpnukag +rqgdglno +wwatmyfh +ifdqnine +modgjwsr +clzquaoh +klhjcomg +fgshzlkz +lvpfctfp +rblbftch +clzquaoh +ghvjpnkn +hfjbohcn +xntjdryl +syvktodv +cxorzqix +tmmjvjvw +modgjwsr +gifksbue +wrwlwwgs +aylkedwc +bqjirtjb +snfnnaow +cdxltwqx +uoasbjrz +jllhtiip +modgjwsr +vldohfjo +hpuguqca +gjrnpmcc +ebnqbokg +onjszcec +hdbfrnha +rpwoeola +fatcfvpk +bpplofjm +rqludekg +pgtznfnf +bpplofjm +aylkedwc +cxorzqix +canuyblm +pqxekaan +ewtkqwqc +dqxddeox +qtyafvix +bnqqgrlp +aktfqryi +sumgousm +wrwlwwgs +snfnnaow +fjffynzj +gjrnpmcc +wrwlwwgs +canuyblm +onjszcec +zqcetrfj +tmmjvjvw +qtyafvix +wwatmyfh +stkfzrxm +rpwoeola +aybiktvj +mxzsltag +rblbftch +kqznhktp +ebheqjpk +onjszcec +uoasbjrz +gkqprfoc +ebnqbokg +ghvjpnkn +canuyblm +ulesdghl +xzdhqifz +ocfnlnyk +ahpqjvoy +fjffynzj +zryqedcy +jllhtiip +wrwlwwgs +irdnmbpc +xntjdryl +xntjdryl +bqjirtjb +qegytrys +tcuxhxaz +irdnmbpc +htuvrriy +szhtpjyv +yhppippt +pkonquix +snfnnaow +tcuxhxaz +rpwoeola +wwatmyfh +fgshzlkz +bvggwzqp +aysirskl +tmmjvjvw +qegytrys +tmmjvjvw +ocfnlnyk +twtxssyg +uoasbjrz +tmmjvjvw +faxbpnva +uqsvrodw +xzdhqifz +fcctcaro +uoasbjrz +wrwlwwgs +qxpfvmqq +kqznhktp +wwatmyfh +uoasbjrz +ghvjpnkn +tmmjvjvw +sbvqorso +ocfnlnyk +mbpcgqyi +qegytrys +dqxddeox +zjfehspd +fgshzlkz +uoasbjrz +ajtczmtc +qxpfvmqq +wwatmyfh +scvfioku +oarfqwxd +uoasbjrz +ifdqnine +fjffynzj +rcxcoclf +uoasbjrz +aybiktvj +grxldlyk +ahpqjvoy +modgjwsr +klhjcomg +qegytrys +ybgaiwqm +tmmjvjvw +aktfqryi +gjhikwpn +qegytrys +hvjrkgvn +uoasbjrz +jllhtiip +lbelzpbs +uyzkiyny +ulesdghl +ikutiphu +krwmiegb +dqxddeox +fgshzlkz +llwmrzjl +cdxltwqx +bqjirtjb +vzbhuxdb +uoasbjrz +veourctx +aybiktvj +lkwpaiik +qeabeirk +sumgousm +ghvjpnkn +bqekebug +aybiktvj +clzquaoh +cdxltwqx +bpplofjm +llwmrzjl +hnpikhxo +uoasbjrz +qyalrqha +ebnqbokg +barlvanl +xntjdryl +yhjoghiv +modgjwsr +scvfioku +modgjwsr +qegytrys +kndcdnkp +pgtznfnf +fgshzlkz +gifksbue +rxpjkrob +syvktodv +sxmtlzlw +czsayrkz +stkfzrxm +qegytrys +rodlhbtu +gdpurstk +ntdwlyyu +clzquaoh +fmaafgvi +gifksbue +rcxcoclf +xzdhqifz +qtyafvix +bpplofjm +bvggwzqp +bqekebug +uoasbjrz +uoasbjrz +uoasbjrz +qyalrqha +rcxcoclf +rqgdglno +snfnnaow +krwmiegb +klhjcomg +cdxltwqx +ybgaiwqm +tmmjvjvw +mxzsltag +aylkedwc +gkqprfoc +vzbhuxdb +jqpyomdo +clzquaoh +bqjirtjb +klhjcomg +hpuoygat +hsbfrqwc +snfnnaow +gdpurstk +canuyblm +posryrwj +xntjdryl +bsvflmhn +gkqprfoc +hvjrkgvn +ikutiphu +gifksbue +rqludekg +bqjirtjb +posryrwj +ntdwlyyu +syvktodv +pqxekaan +bqjirtjb +aylkedwc +cxoftctg +hdbfrnha +ixmclekj +rqludekg +emvfrril +gdpurstk +htuvrriy +rcxcoclf +lvpfctfp +rijwsqio +hfjbohcn +cxorzqix +yhjoghiv +wtnecrbu +lvpfctfp +stkfzrxm +qaoatkzw +gkqprfoc +aybiktvj +rqludekg +fjffynzj +qtyafvix +onjszcec +snfnnaow +barlvanl +rodlhbtu +rodlhbtu +jqpyomdo +krwmiegb +hvjrkgvn +rqgdglno +adydcnwt +lvpfctfp +modgjwsr +gribnjjy +hejxlqrt +ajtczmtc +grxldlyk +hmpjprva +canuyblm +rcxcoclf +bqekebug +syvktodv +gsmutwgq +snfnnaow +gviqjnka +pqxekaan +ziyvyejl +llwmrzjl +ixmclekj +gkqprfoc +uoasbjrz +qtyafvix +sbvqorso +fgshzlkz +vzbhuxdb +canuyblm +cdxltwqx +nvgiglpg +canuyblm +qrrwjspo +llwmrzjl +faxbpnva +jemonchd +bvpnukag +hcnggcmw +bqjirtjb +stkfzrxm +bqjirtjb +barlvanl +emvfrril +grxldlyk +pdbdosic +qrrwjspo +modgjwsr +fatcfvpk +lmzuxenv +verttiuu +irdnmbpc +canuyblm +bpplofjm +yhppippt +lmzuxenv +wwatmyfh +canuyblm +bpplofjm +aybiktvj +hcnggcmw +slfuffmf +fcctcaro +bqekebug +xzdhqifz +wrwlwwgs +gdqunmio +jqpyomdo +mxzsltag +hcnggcmw +rqludekg +bqekebug +bqjirtjb +ruiquets +mxzsltag +adydcnwt +bvpnukag +bnqqgrlp +icjgrrej +nvgiglpg +ulesdghl +kavwcfmu +uoasbjrz +nvgiglpg +litrmtxc +fgshzlkz +ocfnlnyk +wrwlwwgs +uoasbjrz +rxpjkrob +lbelzpbs +klhjcomg +xzdhqifz +aylkedwc +cdxltwqx +uoasbjrz +wtnecrbu +uoasbjrz +qrrwjspo +umlwokvi +hvjrkgvn +sghuynub +xntjdryl +uoasbjrz +ebnqbokg +fgshzlkz +uoasbjrz +nfkgpovg +ebnqbokg +fcctcaro +fcctcaro +fcctcaro +modgjwsr +lvpfctfp +wwatmyfh +uoasbjrz +tmmjvjvw +bpplofjm +hfjbohcn +uoasbjrz +dqxddeox +veourctx +aybiktvj +rcxcoclf +pdbdosic +sakueadt +lbelzpbs +vldohfjo +fswersgr +aylkedwc +uoasbjrz +xntjdryl +litrmtxc +qegytrys +wwatmyfh +sxmtlzlw +tmmjvjvw +komsctkv +rcxcoclf +dibzffyd +barlvanl +uoasbjrz +hfjbohcn +litrmtxc +qrrwjspo +tmmjvjvw +xzdhqifz +utqcywou +fgshzlkz +aylkedwc +utqcywou +gifksbue +gdpurstk +rpwoeola +jllhtiip +bqekebug +pgtznfnf +gifksbue +erhbdnlg +pqxekaan +gkqprfoc +ahpqjvoy +slfuffmf +qrrwjspo +uoasbjrz +modgjwsr +hvjrkgvn +hmpjprva +qegytrys +fgshzlkz +zusfguab +onjszcec +hmpjprva +cbutcdlm +cbutcdlm +hfjbohcn +ifdqnine +fswersgr +gdqunmio +wwatmyfh +canuyblm +krwmiegb +snfnnaow +rcxcoclf +bnqqgrlp +uoasbjrz +gsmutwgq +mbpcgqyi +hfjbohcn +lvpfctfp +rblbftch +uoasbjrz +lbelzpbs +sxmtlzlw +modgjwsr +vzbhuxdb +lbelzpbs +jllhtiip +ziyvyejl +wrwlwwgs +qxpfvmqq +qtyafvix +canuyblm +modgjwsr +hmpjprva +rodlhbtu +qxpfvmqq +bvggwzqp +wwatmyfh +ebnqbokg +oarfqwxd +wtnecrbu +mbpcgqyi +qyalrqha +modgjwsr +sxmtlzlw +lvpfctfp +bnqqgrlp +knqqumtg +rtledujy +ebheqjpk +bnqqgrlp +qrrwjspo +gifksbue +hmpjprva +nvgiglpg +nptbmfae +lbelzpbs +knqqumtg +sghuynub +modgjwsr +vldohfjo +ebheqjpk +slfuffmf +pqxekaan +syvktodv +hlfnhahj +zryqedcy +faxbpnva +vldohfjo +jllhtiip +ntdwlyyu +qxpfvmqq +qegytrys +fgshzlkz +krwmiegb +twtxssyg +slfuffmf +ziyvyejl +mbpcgqyi +rijwsqio +zusfguab +cdxltwqx +hpuoygat +ntdwlyyu +rodlhbtu +szhtpjyv +qegytrys +hvjrkgvn +rpwecdml +tmmjvjvw +hejxlqrt +hsbfrqwc +jqpyomdo +erhbdnlg +gjrnpmcc +ziyvyejl +cbutcdlm +fwrqxmxw +vldohfjo +egrqonlm +qegytrys +wwatmyfh +qyalrqha +qegytrys +lbelzpbs +gdpurstk +uoasbjrz +snfnnaow +gjrnpmcc +klhjcomg +wwatmyfh +rblbftch +bsvflmhn +dqxddeox +rijwsqio +klhjcomg +hmpjprva +canuyblm +ygedcrzi +litrmtxc +jqpyomdo +qrrwjspo +fgshzlkz +rqludekg +sxmtlzlw +jllhtiip +rcxcoclf +gifksbue +qtyafvix +gviqjnka +knqqumtg +nxknvpfz +pqxekaan +uwkawwfh +uoasbjrz +mbpcgqyi +bqekebug +modgjwsr +litrmtxc +lmzuxenv +rcxcoclf +rblbftch +zusfguab +cxorzqix +jllhtiip +modgjwsr +bsvflmhn +lkwpaiik +canuyblm +scvfioku +gjrnpmcc +jllhtiip +uwkawwfh +gifksbue +pslumxli +ifdqnine +aylkedwc +qtyafvix +lvpfctfp +gjrnpmcc +uoasbjrz +inbikasp +nvgiglpg +tmmjvjvw +tmmjvjvw +wmrryjbh +erhbdnlg +tmmjvjvw +rodlhbtu +fgshzlkz +grxldlyk +tmmjvjvw +hpuoygat +qegytrys +snfnnaow +hejxlqrt +uoasbjrz +jllhtiip +qrrwjspo +dklpprvj +rcxcoclf +zokasczg +twtxssyg +aylkedwc +klhjcomg +hfjbohcn +scvfioku +jqpyomdo +jllhtiip +uqsvrodw +rijwsqio +hmpjprva +bqjirtjb +nnshafed +ygedcrzi +wlpbnexn +pqxekaan +emvfrril +uyzkiyny +twtxssyg +aybiktvj +sumgousm +gdpurstk +vzbhuxdb +vldohfjo +dqxddeox +fgshzlkz +syvktodv +fgshzlkz +posryrwj +fgshzlkz +zryqedcy +vrjiljsq +rodlhbtu +qyalrqha +bvpnukag +hvjrkgvn +bvpnukag +wrwlwwgs +qegytrys +gribnjjy +hpuguqca +canuyblm +qrrwjspo +zryqedcy +hmpjprva +lbelzpbs +rqludekg +twtxssyg +zryqedcy +hfjbohcn +uoasbjrz +evaytxev +mbpcgqyi +rodlhbtu +scvfioku +gifksbue +knqqumtg +mbpcgqyi +posryrwj +modgjwsr +klhjcomg +zkrxhkny +hsbfrqwc +uoasbjrz +jqpyomdo +gdpurstk +canuyblm +jemonchd +aylkedwc +ebnqbokg +ulesdghl +klhjcomg +cdxltwqx +veourctx +zqcetrfj +lbelzpbs +rodlhbtu +rxpjkrob +ulesdghl +ziyvyejl +bvggwzqp +hmpjprva +fcctcaro +uwkawwfh +gviqjnka +gifksbue +zokasczg +zokasczg +gkqprfoc +vzbhuxdb +tmmjvjvw +qrrwjspo +gdpurstk +oarfqwxd +ulesdghl +emvfrril +rpwecdml +rcxcoclf +onjszcec +ebnqbokg +gdpurstk +nvgiglpg +qegytrys +modgjwsr +mbpcgqyi +wrwlwwgs +sumgousm +gifksbue +jqpyomdo +qyalrqha +szhtpjyv +qegytrys +aybiktvj +elmvmqfx +gjrnpmcc +bvggwzqp +lvpfctfp +aylkedwc +lmzuxenv +canuyblm +ghvjpnkn +uoasbjrz +uoasbjrz +gifksbue +slfuffmf +xpncwfyz +wrwlwwgs +hpuoygat +lsijbdpo +hpuoygat +qxpfvmqq +gsmutwgq +hvjrkgvn +nfkgpovg +pgtznfnf +kvanptal +bvggwzqp +fgshzlkz +knqqumtg +ruiquets +ikutiphu +zusfguab +uyzkiyny +scvfioku +rcxcoclf +ewtkqwqc +aktfqryi +kqznhktp +xpncwfyz +ifdqnine +lklsancl +xlrcyrio +klhjcomg +aylkedwc +xjoydjkd +grxldlyk +wnddbfsg +kvanptal +canuyblm +ghvjpnkn +fswersgr +posryrwj +gribnjjy +krwmiegb +emvfrril +pjkouayb +icjgrrej +bqjirtjb +uoasbjrz +clzquaoh +qegytrys +egdyjbri +ikutiphu +stfwtrsa +wtnecrbu +vldohfjo +qegytrys +slfuffmf +mxzsltag +kvanptal +yhppippt +nvgkafec +nvgiglpg +zokasczg +tcuxhxaz +gdqunmio +rodlhbtu +hvjrkgvn +ghvjpnkn +zokasczg +wrwlwwgs +nptbmfae +rcxcoclf +fcctcaro +jllhtiip +tmmjvjvw +evaytxev +wwatmyfh +zjfehspd +opbtajsx +twtxssyg +klhjcomg +pslumxli +rodlhbtu +uoasbjrz +xntjdryl +snfnnaow +kvanptal +fatcfvpk +kavwcfmu +bvggwzqp +uoasbjrz +pgtznfnf +rxpjkrob +wwatmyfh +lvpfctfp +zusfguab +modgjwsr +qxpfvmqq +vzbhuxdb +xntjdryl +sumgousm +fswersgr +dklpprvj +barlvanl +gdpurstk +klhjcomg +syvktodv +xqfvyctk +xntjdryl +htuvrriy +gifksbue +hvjrkgvn +szhtpjyv +lkwpaiik +szhtpjyv +irdnmbpc +fcctcaro +cdxltwqx +ocfnlnyk +hejxlqrt +gribnjjy +ghvjpnkn +ebnqbokg +mbpcgqyi +icjgrrej +kvanptal +hnpikhxo +emvfrril +qrrwjspo +modgjwsr +krwmiegb +wwatmyfh +yhppippt +nvgiglpg +hvjrkgvn +litrmtxc +dqxddeox +lsijbdpo +ajtczmtc +snfnnaow +dhmytfyl +qeabeirk +snfnnaow +syvktodv +twtxssyg +fatcfvpk +opbtajsx +bpplofjm +nvgiglpg +gkqprfoc +ivxoaqvg +fwrqxmxw +nptbmfae +bpplofjm +bnqqgrlp +gkqprfoc +verttiuu +lkwpaiik +aylkedwc +qtyafvix +gjrnpmcc +aylkedwc +uoasbjrz +bqekebug +ikutiphu +mbpcgqyi +ebnqbokg +hnpikhxo +wmrryjbh +barlvanl +dyslcyus +pslumxli +fjffynzj +ssrktoar +krwmiegb +ikutiphu +gviqjnka +mbpcgqyi +ulesdghl +xlrcyrio +bvggwzqp +rpwoeola +nfkgpovg +pdbdosic +tmmjvjvw +hejxlqrt +fcctcaro +qtyafvix +bvggwzqp +hmpjprva +gjrnpmcc +yhppippt +lsijbdpo +nxknvpfz +fgshzlkz +aybiktvj +pqxekaan +xntjdryl +rcxcoclf +uoasbjrz +bsvflmhn +ebnqbokg +bsvflmhn +uoasbjrz +qegytrys +lkwpaiik +fatcfvpk +ebnqbokg +jllhtiip +fatcfvpk +krwmiegb +mbpcgqyi +bvggwzqp +adydcnwt +fgshzlkz +jllhtiip +twtxssyg +twtxssyg +lkwpaiik +lsijbdpo +klhjcomg +canuyblm +snfnnaow +irdnmbpc +posryrwj +bnqqgrlp +aylkedwc +lmzuxenv +hfjbohcn +kvanptal +posryrwj +dqxddeox +zkrxhkny +zusfguab +fgshzlkz +jllhtiip +ghvjpnkn +ocfnlnyk +qrrwjspo +cbutcdlm +hejxlqrt +vldohfjo +xqfvyctk +sghuynub +cdxltwqx +gdpurstk +fpzxralq +aktfqryi +stkfzrxm +tmmjvjvw +clzquaoh +fgshzlkz +modgjwsr +hejxlqrt +gribnjjy +jemonchd +canuyblm +xpncwfyz +rxpjkrob +kavwcfmu +modgjwsr +sbvqorso +mxzsltag +rqludekg +snfnnaow +lsijbdpo +litrmtxc +oarfqwxd +xzdhqifz +qtyafvix +cdxltwqx +pqxekaan +scvfioku +qaoatkzw +wtnecrbu +hfjbohcn +emvfrril +fswersgr +hvjrkgvn +bnqqgrlp +rqludekg +qegytrys +cdxltwqx +syvktodv +zqcetrfj +qrrwjspo +bqekebug +erhbdnlg +nvgiglpg +cxzsyfuo +nptbmfae +canuyblm +aylkedwc +bqjirtjb +xntjdryl +vzbhuxdb +ifdqnine +szhtpjyv +ghvjpnkn +qxpfvmqq +jllhtiip +klhjcomg +gdpurstk +hejxlqrt +mbpcgqyi +bqekebug +nvgiglpg +twtxssyg +verttiuu +qegytrys +gribnjjy +hcnggcmw +rcxcoclf +qyalrqha +aybiktvj +stkfzrxm +ebnqbokg +clzquaoh +gjrnpmcc +jqpyomdo +ifdqnine +fcctcaro +modgjwsr +irdnmbpc +hnpikhxo +sxmtlzlw +posryrwj +uoasbjrz +hpuoygat +fatcfvpk +zryqedcy +ocfnlnyk +krwmiegb +modgjwsr +wmrryjbh +modgjwsr +canuyblm +qxpfvmqq +ziyvyejl +cbutcdlm +sumgousm +rcxcoclf +stkfzrxm +hfjbohcn +bvggwzqp +zokasczg +klhjcomg +uoasbjrz +sxmtlzlw +bnqqgrlp +hejxlqrt +hvjrkgvn +qtyafvix +qegytrys +snfnnaow +ygedcrzi +lkwpaiik +tmmjvjvw +lbelzpbs +ebnqbokg +klhjcomg +bgsrnutc +ixmclekj +qegytrys +fswersgr +fcctcaro +jllhtiip +hfjbohcn +modgjwsr +canuyblm +hvjrkgvn +ocfnlnyk +qxpfvmqq +hcnggcmw +emvfrril +xntjdryl +gdpurstk +xntjdryl +modgjwsr +cxzsyfuo +onjszcec +fgshzlkz +rblbftch +mbpcgqyi +rcxcoclf +gviqjnka +twtxssyg +kndcdnkp +scvfioku +bpplofjm +barlvanl +fgshzlkz +ssrktoar +wmrryjbh +czsayrkz +lkwpaiik +ewtkqwqc +hejxlqrt +aybiktvj +snfnnaow +lbelzpbs +fwrqxmxw +twtxssyg +wtnecrbu +jllhtiip +gkqprfoc +klhjcomg +hfjbohcn +sxmtlzlw +wrwlwwgs +clzquaoh +slfuffmf +onjszcec +uoasbjrz +fgshzlkz +irdnmbpc +gifksbue +ybgaiwqm +ikutiphu +barlvanl +lklsancl +sbvqorso +sumgousm +snfnnaow +stkfzrxm +canuyblm +modgjwsr +xpncwfyz +xlrcyrio +zokasczg +zokasczg +vzbhuxdb +modgjwsr +pdbdosic +jllhtiip +lvpfctfp +ebnqbokg +modgjwsr +krwmiegb +hmpjprva +bnqqgrlp +knqqumtg +rcxcoclf +fgshzlkz +cdxltwqx +modgjwsr +lvpfctfp +jllhtiip +klhjcomg +twtxssyg +gkqprfoc +grxldlyk +hnpikhxo +vrjiljsq +fgshzlkz +bvpnukag +dibzffyd +gkqprfoc +cxzsyfuo +cdxltwqx +snfnnaow +qyalrqha +zokasczg +rblbftch +uqsvrodw +rblbftch +rblbftch +snfnnaow +rcxcoclf +hsbfrqwc +snfnnaow +fwrqxmxw +kavwcfmu +clzquaoh +klhjcomg +ghvjpnkn +sbvqorso +ybgaiwqm +lvpfctfp +lkwpaiik +clzquaoh +scvfioku +gdpurstk +qeabeirk +rcxcoclf +wrwlwwgs +yaqvpcri +stnxvfgm +mxzsltag +ebnqbokg +aylkedwc +vldohfjo +yhjoghiv +cdxltwqx +syvktodv +rqludekg +ifdqnine +krwmiegb +syvktodv +hnpikhxo +rcxcoclf +wmrryjbh +bvggwzqp +irdnmbpc +snfnnaow +qtyafvix +krwmiegb +ybgaiwqm +xntjdryl +lbelzpbs +ziyvyejl +klhjcomg +sakueadt +kvanptal +posryrwj +bvpnukag +bvggwzqp +wrwlwwgs +qxpfvmqq +gjrnpmcc +bnqqgrlp +twtxssyg +gribnjjy +snfnnaow +elmvmqfx +zokasczg +sxmtlzlw +klhjcomg +gribnjjy +pgtznfnf +gjrnpmcc +posryrwj +twtxssyg +vzbhuxdb +snfnnaow +jqpyomdo +bvggwzqp +cxorzqix +wrwlwwgs +hvjrkgvn +xntjdryl +fgshzlkz +krwmiegb +mbpcgqyi +syvktodv +rijwsqio +stfwtrsa +aylkedwc +oarfqwxd +irdnmbpc +gkqprfoc +qegytrys +veourctx +qaoatkzw +rpwecdml +snfnnaow +fgshzlkz +uoasbjrz +htuvrriy +wmrryjbh +zokasczg +icjgrrej +knqqumtg +grxldlyk +xntjdryl +klhjcomg +vzbhuxdb +tmmjvjvw +pslumxli +canuyblm +vldohfjo +bpplofjm +ybgaiwqm +yhjoghiv +wwatmyfh +fgshzlkz +rqludekg +dklpprvj +twtxssyg +gdpurstk +erhbdnlg +fcctcaro +lbelzpbs +ghvjpnkn +uoasbjrz +ntdwlyyu +gjrnpmcc +canuyblm +uoasbjrz +clzquaoh +grxldlyk +szhtpjyv +wmrryjbh +rcxcoclf +cxoftctg +fjffynzj +barlvanl +twtxssyg +fgshzlkz +xlrcyrio +dibzffyd +icjgrrej +fjffynzj +qyalrqha +clzquaoh +tmmjvjvw +wwatmyfh +rpwecdml +xlrcyrio +gdpurstk +hvjrkgvn +wtnecrbu +uoasbjrz +stnxvfgm +bgsrnutc +ebnqbokg +wwatmyfh +verttiuu +onjszcec +qaoatkzw +lkwpaiik +gribnjjy +nvgiglpg +gribnjjy +lkwpaiik +hnpikhxo +uwkawwfh +zqcetrfj +dibzffyd +komsctkv +emvfrril +kqznhktp +nvgiglpg +fjffynzj +wwatmyfh +rpwoeola +ebnqbokg +qeabeirk +hnpikhxo +inbikasp +stnxvfgm +gdpurstk +nptbmfae +gjhikwpn +modgjwsr +fgshzlkz +egdyjbri +bgsrnutc +cxzsyfuo +litrmtxc +rqludekg +canuyblm +mbpcgqyi +qrrwjspo +uyzkiyny +qyalrqha +gifksbue +nuqwzjqi +fjffynzj +rpwoeola +bqekebug +ebnqbokg +tmmjvjvw +bnqqgrlp +xntjdryl +aylkedwc +gifksbue +gjhikwpn +irdnmbpc +qyalrqha +nvgiglpg +syvktodv +nvgiglpg +lmzuxenv +jqpyomdo +uoasbjrz +cdxltwqx +clzquaoh +rpwoeola +posryrwj +fatcfvpk +qrrwjspo +hdbfrnha +aylkedwc +mbpcgqyi +snfnnaow +cdxltwqx +xpncwfyz +tcuxhxaz +lmzuxenv +gviqjnka +posryrwj +xntjdryl +ruiquets +cxorzqix +ivxoaqvg +htuvrriy +bqekebug +twtxssyg +bnqqgrlp +gifksbue +cbutcdlm +krwmiegb +canuyblm +mxzsltag +canuyblm +fwrqxmxw +modgjwsr +uoasbjrz +tmmjvjvw +ifdqnine +fatcfvpk +qegytrys +hmpjprva +bqjirtjb +rblbftch +twtxssyg +ziyvyejl +wwatmyfh +lklsancl +posryrwj +kvanptal +uoasbjrz +slfuffmf +grxldlyk +xpncwfyz +uoasbjrz +qtyafvix +zokasczg +qyalrqha +verttiuu +tmmjvjvw +fcctcaro +xntjdryl +posryrwj +inbikasp +yhjoghiv +pslumxli +lsijbdpo +xntjdryl +hfjbohcn +hmpjprva +uoasbjrz +hnpikhxo +gifksbue +litrmtxc +cxoftctg +erhbdnlg +barlvanl +gjrnpmcc +tdfpaezp +rqgdglno +xpncwfyz +uoasbjrz +hvjrkgvn +canuyblm +aylkedwc +nvgiglpg +uoasbjrz +gjrnpmcc +rijwsqio +gifksbue +kqznhktp +sghuynub +modgjwsr +bvggwzqp +pqxekaan +dibzffyd +modgjwsr +mxzsltag +vzbhuxdb +nptbmfae +stfwtrsa +bnqqgrlp +klhjcomg +ivxoaqvg +hlfnhahj +hlfnhahj +rodlhbtu +stfwtrsa +sakueadt +gjrnpmcc +klhjcomg +qrrwjspo +bvpnukag +lmzuxenv +wlpbnexn +hvjrkgvn +ebnqbokg +modgjwsr +lklsancl +faxbpnva +pjkouayb +qegytrys +mbpcgqyi +uyzkiyny +jllhtiip +bvggwzqp +ebnqbokg +rodlhbtu +gifksbue +modgjwsr +jllhtiip +rpwoeola +qegytrys +gjrnpmcc +verttiuu +uoasbjrz +jllhtiip +ifdqnine +rpwecdml +stkfzrxm +snfnnaow +litrmtxc +gdqunmio +fgshzlkz +ybgaiwqm +nnshafed +canuyblm +dibzffyd +komsctkv +qtyafvix +xqfvyctk +erhbdnlg +rijwsqio +kqznhktp +twtxssyg +tmmjvjvw +qegytrys +fswersgr +vzbhuxdb +utqcywou +slfuffmf +dibzffyd +ikutiphu +pkonquix +wwatmyfh +rcxcoclf +nvgkafec +canuyblm +ikutiphu +aylkedwc +klhjcomg +qegytrys +hejxlqrt +fgshzlkz +rpwoeola +mbpcgqyi +irdnmbpc +rblbftch +canuyblm +rblbftch +hcnggcmw +nvgiglpg +tmmjvjvw +szhtpjyv +fpzxralq +qrrwjspo +bpplofjm +llwmrzjl +bnqqgrlp +lkwpaiik +zusfguab +litrmtxc +rcxcoclf +bqjirtjb +rqludekg +uoasbjrz +stfwtrsa +nvgiglpg +qtyafvix +aybiktvj +canuyblm +twtxssyg +canuyblm +uoasbjrz +verttiuu +snfnnaow +bqjirtjb +bsvflmhn +hfjbohcn +tmmjvjvw +snfnnaow +lkwpaiik +qegytrys +gdpurstk +lrjysmbk +kqznhktp +cxoftctg +dhmytfyl +cxzsyfuo +ifdqnine +oarfqwxd +pgtznfnf +modgjwsr +wrwlwwgs +ifdqnine +llwmrzjl +opbtajsx +fjffynzj +jllhtiip +scvfioku +canuyblm +vzbhuxdb +oarfqwxd +aktfqryi +hnpikhxo +qxpfvmqq +pqxekaan +hpuoygat +ocfnlnyk +vzbhuxdb +bnqqgrlp +twtxssyg +opbtajsx +aylkedwc +qeabeirk +hmpjprva +cxorzqix +rqgdglno +faxbpnva +lsijbdpo +ssrktoar +fgshzlkz +qtyafvix +bvggwzqp +klhjcomg +zusfguab +rqludekg +qegytrys +wtnecrbu +fgshzlkz +utqcywou +rqludekg +wwatmyfh +twtxssyg +canuyblm +dqxddeox +bnqqgrlp +hejxlqrt +uoasbjrz +jllhtiip +hsbfrqwc +vrjiljsq +xqfvyctk +elmvmqfx +mxzsltag +rcxcoclf +xlrcyrio +aktfqryi +pqxekaan +cdxltwqx +adydcnwt +wtnecrbu +clzquaoh +nvgiglpg +ajtczmtc +rqludekg +ebnqbokg +ebnqbokg +fatcfvpk +krwmiegb +zqcetrfj +xntjdryl +nvgiglpg +fgshzlkz +wwatmyfh +gdpurstk +oarfqwxd +fgshzlkz +gkqprfoc +wrwlwwgs +fgshzlkz +gjrnpmcc +hvjrkgvn +rpwoeola +vzbhuxdb +cxzsyfuo +bqjirtjb +mbpcgqyi +gifksbue +canuyblm +faxbpnva +hnpikhxo +ewtkqwqc +sumgousm +sxmtlzlw +pgtznfnf +rblbftch +aylkedwc +twtxssyg +rpwoeola +posryrwj +jemonchd +klhjcomg +bvggwzqp +aylkedwc +rijwsqio +tcuxhxaz +sbvqorso +ewtkqwqc +knqqumtg +hnpikhxo +qtyafvix +wcnhypxx +pslumxli +gribnjjy +gribnjjy +bqjirtjb +gifksbue +gdqunmio +jllhtiip +clzquaoh +fswersgr +gribnjjy +rcxcoclf +lsijbdpo +osegqybm +tcuxhxaz +aysirskl +stfwtrsa +rblbftch +qyalrqha +jllhtiip +gifksbue +czsayrkz +onjszcec +hmpjprva +tcuxhxaz +xntjdryl +zryqedcy +rcxcoclf +lmzuxenv +xzdhqifz +hnpikhxo +jqpyomdo +hlfnhahj +bpplofjm +hnpikhxo +zqcetrfj +ahpqjvoy +qyalrqha +sjyqvgwo +evaytxev +onjszcec +rcxcoclf +hsbfrqwc +oarfqwxd +ghvjpnkn +yhjoghiv +twtxssyg +gjrnpmcc +elmvmqfx +krwmiegb +vzbhuxdb +lkwpaiik +ghvjpnkn +rcxcoclf +vzbhuxdb +pgtznfnf +pgtznfnf +lbelzpbs +zusfguab +aylkedwc +adydcnwt +uyzkiyny +ebnqbokg +bvggwzqp +kuipdodd +nptbmfae +elmvmqfx +bvggwzqp +amhehfow +xntjdryl +cxzsyfuo +gdpurstk +opbtajsx +qtyafvix +xlrcyrio +ulesdghl +grxldlyk +gkqprfoc +hpzlpxzg +fgshzlkz +ocfnlnyk +hvjrkgvn +mbpcgqyi +pqxekaan +ocfnlnyk +uoasbjrz +bsvflmhn +oarfqwxd +vzbhuxdb +yhjoghiv +uoasbjrz +qtyafvix +gribnjjy +wrwlwwgs +htuvrriy +bqekebug +sghuynub +ybgaiwqm +kvanptal +modgjwsr +qxpfvmqq +ewtkqwqc +qegytrys +zkrxhkny +adydcnwt +uqsvrodw +nuqwzjqi +krwmiegb +hvjrkgvn +ntdwlyyu +uoasbjrz +gjrnpmcc +posryrwj +hnpikhxo +rblbftch +tmmjvjvw +uyzkiyny +ghvjpnkn +aybiktvj +wlpbnexn +tmmjvjvw +kavwcfmu +hvjrkgvn +dqxddeox +hlfnhahj +evaytxev +canuyblm +jllhtiip +bvggwzqp +pdbdosic +xntjdryl +clzquaoh +lklsancl +ifdqnine +gdpurstk +hfjbohcn +cxoftctg +vzbhuxdb +modgjwsr +faxbpnva +oarfqwxd +jllhtiip +cdxltwqx +rcxcoclf +uoasbjrz +nptbmfae +ikutiphu +fgshzlkz +scvfioku +jllhtiip +fcctcaro +wwatmyfh +llwmrzjl +klhjcomg +yaqvpcri +nvgiglpg +faxbpnva +dqxddeox +uoasbjrz +zqcetrfj +dqxddeox +rblbftch +stkfzrxm +hcnggcmw +vrjiljsq +rodlhbtu +ixmclekj +xpncwfyz +twtxssyg +ulesdghl +yaqvpcri +uoasbjrz +bvggwzqp +uwkawwfh +hnpikhxo +ygedcrzi +sxmtlzlw +uoasbjrz +bvggwzqp +cdxltwqx +twtxssyg +zqcetrfj +vzbhuxdb +verttiuu +fjffynzj +rblbftch +nnshafed +modgjwsr +rxpjkrob +posryrwj +twtxssyg +yaqvpcri +jllhtiip +tcuxhxaz +qyalrqha +hfjbohcn +qxpfvmqq +ifdqnine +ruiquets +onjszcec +fwrqxmxw +hfjbohcn +lkwpaiik +jllhtiip +ebnqbokg +qeabeirk +hpuoygat +jqpyomdo +aylkedwc +erhbdnlg +qrrwjspo +fcctcaro +vzbhuxdb +rodlhbtu +rqludekg +tmmjvjvw +zqcetrfj +irdnmbpc +bvpnukag +bqjirtjb +rblbftch +dyslcyus +wlpbnexn +snfnnaow +pdbdosic +jemonchd +pdbdosic +yhjoghiv +snfnnaow +bnqqgrlp +xntjdryl +mbpcgqyi +snfnnaow +rcxcoclf +tcuxhxaz +inbikasp +htuvrriy +bvggwzqp +zokasczg +fgshzlkz +zkrxhkny +jllhtiip +hmpjprva +cxzsyfuo +opbtajsx +rijwsqio +xntjdryl +bsvflmhn +zqcetrfj +gsmutwgq +sxmtlzlw +wrwlwwgs +gjrnpmcc +posryrwj +mbpcgqyi +modgjwsr +hcnggcmw +ocfnlnyk +modgjwsr +ruiquets +nvgiglpg +aysirskl +gjrnpmcc +zkrxhkny +barlvanl +klhjcomg +sghuynub +uqsvrodw +icjgrrej +canuyblm +qegytrys +wwatmyfh +vzbhuxdb +gjrnpmcc +lbelzpbs +lbelzpbs +krwmiegb +hsbfrqwc +faxbpnva +hlfnhahj +xpncwfyz +evaytxev +rblbftch +erhbdnlg +yhppippt +hvjrkgvn +lkwpaiik +aylkedwc +tmmjvjvw +grxldlyk +scvfioku +cbutcdlm +llwmrzjl +grxldlyk +icjgrrej +bnqqgrlp +ebnqbokg +bvggwzqp +rcxcoclf +kvanptal +lklsancl +grxldlyk +sumgousm +hmpjprva +cdxltwqx +jqpyomdo +uoasbjrz +faxbpnva +hnpikhxo +fgshzlkz +rqludekg +klhjcomg +canuyblm +nptbmfae +qegytrys +posryrwj +rblbftch +qtyafvix +gribnjjy +xntjdryl +aylkedwc +lmzuxenv +rcxcoclf +hnpikhxo +gjrnpmcc +hnpikhxo +nvgiglpg +rqludekg +rtledujy +uyzkiyny +modgjwsr +dqxddeox +wtnecrbu +klhjcomg +grxldlyk +ebnqbokg +kqznhktp +syvktodv +lkwpaiik +xntjdryl +aktfqryi +ulesdghl +vrjiljsq +hnpikhxo +wrwlwwgs +bvggwzqp +bvggwzqp +rcxcoclf +ebnqbokg +nptbmfae +xntjdryl +zokasczg +uyzkiyny +vrjiljsq +tcuxhxaz +slfuffmf +zokasczg +irohhwfg +posryrwj +twtxssyg +lbelzpbs +hejxlqrt +rqludekg +mbpcgqyi +yaqvpcri +wtnecrbu +ebnqbokg +cxzsyfuo +yhppippt +ajtczmtc +hlfnhahj +jllhtiip +hmpjprva +sghuynub +slfuffmf +stnxvfgm +wtnecrbu +canuyblm +snfnnaow +scvfioku +hfjbohcn +vldohfjo +rijwsqio +yaqvpcri +qtyafvix +knqqumtg +qaoatkzw +vzbhuxdb +xpncwfyz +zokasczg +lsijbdpo +lmzuxenv +uwkawwfh +xqfvyctk +ghvjpnkn +qtyafvix +kvanptal +fmaafgvi +fatcfvpk +aylkedwc +zqcetrfj +gviqjnka +posryrwj +sghuynub +oarfqwxd +fjffynzj +scvfioku +nvgiglpg +lvpfctfp +fmaafgvi +gjrnpmcc +gdpurstk +snfnnaow +hdbfrnha +snfnnaow +jllhtiip +uoasbjrz +canuyblm +fcctcaro +bnqqgrlp +stnxvfgm +egdyjbri +yhjoghiv +qegytrys +stfwtrsa +gdpurstk +tmmjvjvw +modgjwsr +mxzsltag +krwmiegb +lsijbdpo +yhppippt +mxzsltag +hvjrkgvn +mbpcgqyi +lkwpaiik +ruiquets +nvgkafec +twtxssyg +rblbftch +aybiktvj +uoasbjrz +aktfqryi +sjyqvgwo +twtxssyg +uoasbjrz +uyzkiyny +nvgiglpg +hmpjprva +qegytrys +kqznhktp +rblbftch +hsbfrqwc +pjkouayb +hnpikhxo +rodlhbtu +modgjwsr +klhjcomg +xzdhqifz +irdnmbpc +qtyafvix +pdbdosic +twtxssyg +modgjwsr +kndcdnkp +rcxcoclf +gifksbue +twtxssyg +komsctkv +fmaafgvi +ghvjpnkn +gdpurstk +kqznhktp +nptbmfae +elmvmqfx +ghvjpnkn +bvggwzqp +bqjirtjb +fwrqxmxw +vzbhuxdb +klhjcomg +czsayrkz +jqpyomdo +litrmtxc +sghuynub +vrjiljsq +lkwpaiik +aylkedwc +snfnnaow +emvfrril +qrrwjspo +qrrwjspo +hsbfrqwc +hsbfrqwc +uoasbjrz +rblbftch +krwmiegb +gdpurstk +erhbdnlg +posryrwj +qtyafvix +xntjdryl +hvjrkgvn +ghvjpnkn +stkfzrxm +rcxcoclf +kndcdnkp +zqcetrfj +gdpurstk +stkfzrxm +qrrwjspo +twtxssyg +lkwpaiik +jllhtiip +zkrxhkny +scvfioku +bsvflmhn +sumgousm +wrwlwwgs +aylkedwc +grxldlyk +syvktodv +bqekebug +rcxcoclf +stnxvfgm +sghuynub +ifdqnine +bqjirtjb +amhehfow +rpwecdml +cxoftctg +jllhtiip +xzdhqifz +ebnqbokg +faxbpnva +fgshzlkz +uwkawwfh +hcnggcmw +rpwoeola +krwmiegb +gifksbue +kavwcfmu +qrrwjspo +kvanptal +gviqjnka +ocfnlnyk +kqznhktp +uoasbjrz +rblbftch +fatcfvpk +lvpfctfp +qegytrys +tmmjvjvw +lbelzpbs +vzbhuxdb +rblbftch +tmmjvjvw +hpuguqca +rodlhbtu +jqpyomdo +inbikasp +bqekebug +lsijbdpo +onjszcec +xlrcyrio +hvjrkgvn +hpuguqca +kvanptal +ebnqbokg +pqxekaan +jllhtiip +gdpurstk +canuyblm +fjffynzj +llwmrzjl +sumgousm +krwmiegb +kvanptal +onjszcec +qeabeirk +gifksbue +litrmtxc +gjrnpmcc +gsmutwgq +ebnqbokg +fpzxralq +twtxssyg +czsayrkz +ixmclekj +gifksbue +wmrryjbh +hnpikhxo +yaqvpcri +hlfnhahj +sumgousm +elmvmqfx +pqxekaan +fjffynzj +aktfqryi +gribnjjy +uyzkiyny +clzquaoh +fswersgr +bgsrnutc +dqxddeox +rijwsqio +hnpikhxo +rblbftch +wrwlwwgs +tmmjvjvw +fgshzlkz +rodlhbtu +gribnjjy +uqsvrodw +nvgiglpg +clzquaoh +qegytrys +qegytrys +qyalrqha +zusfguab +gribnjjy +ghvjpnkn +nvgiglpg +dqxddeox +fmaafgvi +fjffynzj +canuyblm +rcxcoclf +wrwlwwgs +hpuguqca +cxorzqix +hvjrkgvn +zokasczg +pgtznfnf +scvfioku +qeabeirk +onjszcec +lvpfctfp +bnqqgrlp +snfnnaow +zjfehspd +lmzuxenv +rqludekg +uqsvrodw +qtyafvix +vzbhuxdb +bsvflmhn +ebnqbokg +cxzsyfuo +bvggwzqp +uoasbjrz +twtxssyg +litrmtxc +hlfnhahj +xlrcyrio +gifksbue +hsbfrqwc +lkwpaiik +aybiktvj +irohhwfg +qegytrys +rijwsqio +ocfnlnyk +uoasbjrz +jemonchd +grxldlyk +hnpikhxo +ghvjpnkn +qegytrys +klhjcomg +veourctx +twtxssyg +hvjrkgvn +cxzsyfuo +hfjbohcn +jqpyomdo +egrqonlm +xntjdryl +gkqprfoc +hvjrkgvn +nvgiglpg +elmvmqfx +canuyblm +knqqumtg +twtxssyg +qrrwjspo +evaytxev +uoasbjrz +zqcetrfj +xlrcyrio +elmvmqfx +xjoydjkd +snfnnaow +ulesdghl +modgjwsr +qtyafvix +xzdhqifz +rpwoeola +aylkedwc +sxmtlzlw +gdpurstk +sbvqorso +kvanptal +tcuxhxaz +modgjwsr +lkwpaiik +aylkedwc +cxorzqix +modgjwsr +lbelzpbs +fgshzlkz +lkwpaiik +twtxssyg +mxzsltag +nvgiglpg +hfjbohcn +gkqprfoc +twtxssyg +lmzuxenv +fwrqxmxw +barlvanl +sxmtlzlw +gdpurstk +modgjwsr +krwmiegb +ifdqnine +posryrwj +gkqprfoc +fcctcaro +jllhtiip +mbpcgqyi +knqqumtg +uoasbjrz +bqjirtjb +bvggwzqp +rodlhbtu +bgsrnutc +hpzlpxzg +posryrwj +rqludekg +rpwoeola +uoasbjrz +xqfvyctk +aktfqryi +twtxssyg +tmmjvjvw +xzdhqifz +wrwlwwgs +bgsrnutc +ikutiphu +vrjiljsq +syvktodv +yaqvpcri +jllhtiip +lmzuxenv +jemonchd +qegytrys +ghvjpnkn +mxzsltag +gifksbue +emvfrril +aylkedwc +hmpjprva +cxoftctg +gdqunmio +uyzkiyny +mbpcgqyi +cdxltwqx +gdpurstk +qtyafvix +snfnnaow +qtyafvix +yhjoghiv +hejxlqrt +wnddbfsg +jemonchd +xntjdryl +snfnnaow +rblbftch +gifksbue +bvggwzqp +uoasbjrz +snfnnaow +gribnjjy +qtyafvix +gjrnpmcc +modgjwsr +hmpjprva +qyalrqha +wtnecrbu +canuyblm +cdxltwqx +zkrxhkny +lmzuxenv +fgshzlkz +zusfguab +mbpcgqyi +rodlhbtu +lvpfctfp +ewtkqwqc +hsbfrqwc +nnshafed +rqludekg +zokasczg +ocfnlnyk +qegytrys +fjffynzj +ikutiphu +xlrcyrio +uoasbjrz +aybiktvj +ifdqnine +hmpjprva +syvktodv +uoasbjrz +krwmiegb +scvfioku +wrwlwwgs +xlrcyrio +bvpnukag +stfwtrsa +dklpprvj +twtxssyg +scvfioku +bqjirtjb +qeabeirk +syvktodv +ruiquets +bpplofjm +gribnjjy +tmmjvjvw +uoasbjrz +hpuoygat +vldohfjo +aktfqryi +kavwcfmu +irohhwfg +clzquaoh +faxbpnva +tcuxhxaz +uyzkiyny +tmmjvjvw +kuipdodd +snfnnaow +lvpfctfp +ssrktoar +hsbfrqwc +gdpurstk +jllhtiip +fcctcaro +twtxssyg +modgjwsr +zryqedcy +twtxssyg +ssrktoar +zusfguab +uoasbjrz +qeabeirk +gifksbue +xpncwfyz +ivxoaqvg +egrqonlm +emvfrril +zkrxhkny +ruiquets +rcxcoclf +qxpfvmqq +lklsancl +canuyblm +uoasbjrz +ebheqjpk +rpwoeola +uoasbjrz +modgjwsr +lbelzpbs +fwrqxmxw +ocfnlnyk +uoasbjrz +uoasbjrz +qtyafvix +barlvanl +dqxddeox +qtyafvix +qtyafvix +lvpfctfp +mxzsltag +yaqvpcri +bnqqgrlp +qxpfvmqq +faxbpnva +wlpbnexn +modgjwsr +uoasbjrz +mbpcgqyi +rxpjkrob +ifdqnine +bvggwzqp +uoasbjrz +mzwexwte +rblbftch +faxbpnva +uyzkiyny +twtxssyg +bgsrnutc +gkqprfoc +hmpjprva +jllhtiip +gribnjjy +ifdqnine +ajtczmtc +jllhtiip +wqpfwzbj +uwkawwfh +nvgiglpg +sghuynub +syvktodv +irdnmbpc +qegytrys +hmpjprva +wwatmyfh +nptbmfae +sbvqorso +ghvjpnkn +gkqprfoc +bnqqgrlp +sumgousm +rblbftch +ygedcrzi +canuyblm +mbpcgqyi +rodlhbtu +fgshzlkz +gribnjjy +lmzuxenv +vrjiljsq +xntjdryl +fgshzlkz +cxoftctg +vzbhuxdb +hfjbohcn +ruiquets +vrjiljsq +bnqqgrlp +pqxekaan +uyzkiyny +gjrnpmcc +aylkedwc +opbtajsx +krwmiegb +uoasbjrz +tdfpaezp +elmvmqfx +clzquaoh +fatcfvpk +rcxcoclf +canuyblm +ocfnlnyk +nvgiglpg +xqfvyctk +barlvanl +xpncwfyz +gribnjjy +lmzuxenv +lvpfctfp +gviqjnka +canuyblm +hsbfrqwc +bvggwzqp +bvpnukag +rodlhbtu +bpplofjm +ewtkqwqc +rodlhbtu +bpplofjm +qegytrys +qxpfvmqq +qtyafvix +qegytrys +stnxvfgm +hejxlqrt +clzquaoh +bnqqgrlp +uoasbjrz +gifksbue +fjffynzj +ebnqbokg +icjgrrej +xzdhqifz +qyalrqha +clzquaoh +rpwoeola +gkqprfoc +ybgaiwqm +aylkedwc +verttiuu +ssrktoar +scvfioku +litrmtxc +ntdwlyyu +wrwlwwgs +zokasczg +gsmutwgq +gdpurstk +sumgousm +wtnecrbu +gjrnpmcc +xntjdryl +dqxddeox +hdbfrnha +htuvrriy +tmmjvjvw +hsbfrqwc +canuyblm +hpuoygat +lbelzpbs +qegytrys +fgshzlkz +gkqprfoc +amhehfow +jllhtiip +nptbmfae +ruiquets +uyzkiyny +ixmclekj +gjrnpmcc +snfnnaow +cdxltwqx +pdbdosic +qeabeirk +vrjiljsq +zjfehspd +rodlhbtu +mbpcgqyi +rodlhbtu +ifdqnine +zusfguab +ocfnlnyk +hnpikhxo +qegytrys +pqxekaan +rblbftch +jqpyomdo +wwatmyfh +modgjwsr +wtnecrbu +krwmiegb +sumgousm +qegytrys +canuyblm +fjffynzj +uyzkiyny +rqgdglno +rxpjkrob +zokasczg +hejxlqrt +xntjdryl +xlrcyrio +onjszcec +lmzuxenv +qyalrqha +slfuffmf +hnpikhxo +qtyafvix +gkqprfoc +ulesdghl +komsctkv +gdpurstk +aylkedwc +hsbfrqwc +zqcetrfj +stkfzrxm +pdbdosic +vrjiljsq +hdbfrnha +uoasbjrz +twtxssyg +wmrryjbh +irdnmbpc +twtxssyg +posryrwj +szhtpjyv +mzwexwte +lvpfctfp +htuvrriy +scvfioku +qegytrys +jllhtiip +onjszcec +zkrxhkny +hmpjprva +ygedcrzi +aylkedwc +dqxddeox +xntjdryl +bnqqgrlp +ssrktoar +uoasbjrz +hcnggcmw +fgshzlkz +nvgiglpg +twtxssyg +onjszcec +fjffynzj +jqpyomdo +rtledujy +qtyafvix +slfuffmf +snfnnaow +xntjdryl +yhppippt +gribnjjy +faxbpnva +gifksbue +pqxekaan +rodlhbtu +gdpurstk +ifdqnine +twtxssyg +oarfqwxd +hdbfrnha +modgjwsr +fcctcaro +rblbftch +posryrwj +onjszcec +modgjwsr +ajtczmtc +hsbfrqwc +fswersgr +snfnnaow +cxzsyfuo +bgsrnutc +tcuxhxaz +posryrwj +nfkgpovg +sghuynub +qegytrys +lklsancl +jllhtiip +canuyblm +dibzffyd +hfjbohcn +fpzxralq +zusfguab +vzbhuxdb +lkwpaiik +twtxssyg +nvgkafec +uoasbjrz +vzbhuxdb +kqznhktp +gdpurstk +uoasbjrz +canuyblm +snfnnaow +modgjwsr +bnqqgrlp +uyzkiyny +rcxcoclf +elmvmqfx +hejxlqrt +gifksbue +htuvrriy +uoasbjrz +ewtkqwqc +gkqprfoc +hcnggcmw +hvjrkgvn +fatcfvpk +rxpjkrob +jqpyomdo +grxldlyk +rcxcoclf +xjoydjkd +inbikasp +qyalrqha +fatcfvpk +clzquaoh +knqqumtg +hejxlqrt +onjszcec +rxpjkrob +wtnecrbu +fatcfvpk +gribnjjy +gdpurstk +wrwlwwgs +onjszcec +fgshzlkz +gkqprfoc +inbikasp +uyzkiyny +lsijbdpo +ocfnlnyk +barlvanl +dibzffyd +rblbftch +qegytrys +gkqprfoc +gribnjjy +nvgiglpg +canuyblm +vldohfjo +vldohfjo +ajtczmtc +vzbhuxdb +hvjrkgvn +xqfvyctk +adydcnwt +adydcnwt +sumgousm +gdpurstk +wtnecrbu +hlfnhahj +xpncwfyz +fmaafgvi +czsayrkz +faxbpnva +rodlhbtu +xqfvyctk +zokasczg +zryqedcy +dqxddeox +fjffynzj +utqcywou +zkrxhkny +sbvqorso +qrrwjspo +sghuynub +sxmtlzlw +canuyblm +hvjrkgvn +lmzuxenv +dibzffyd +scvfioku +modgjwsr +mxzsltag +qegytrys +jqpyomdo +lkwpaiik +modgjwsr +sghuynub +vzbhuxdb +sumgousm +hpuoygat +qaoatkzw +mbpcgqyi +xqfvyctk +ybgaiwqm +egrqonlm +xjoydjkd +bvggwzqp +kqznhktp +slfuffmf +kvanptal +qaoatkzw +mbpcgqyi +ziyvyejl +canuyblm +cxzsyfuo +uoasbjrz +rodlhbtu +rcxcoclf +aylkedwc +lbelzpbs +fgshzlkz +krwmiegb +wwatmyfh +emvfrril +klhjcomg +snfnnaow +rcxcoclf +hpuguqca +canuyblm +gribnjjy +scvfioku +canuyblm +cdxltwqx +rcxcoclf +gsmutwgq +xqfvyctk +klhjcomg +ghvjpnkn +snfnnaow +xjoydjkd +pkonquix +fswersgr +uyzkiyny +qtyafvix +stkfzrxm +posryrwj +rcxcoclf +dklpprvj +pslumxli +wwatmyfh +dibzffyd +sghuynub +gjrnpmcc +aylkedwc +fgshzlkz +hlfnhahj +rpwecdml +lvpfctfp +mbpcgqyi +hmpjprva +uoasbjrz +fatcfvpk +tcuxhxaz +qtyafvix +gdpurstk +scvfioku +tmmjvjvw +bvggwzqp +qxpfvmqq +mbpcgqyi +jqpyomdo +uqsvrodw +uoasbjrz +krwmiegb +hcnggcmw +qegytrys +mbpcgqyi +vrjiljsq +bqjirtjb +hpuoygat +ebheqjpk +dibzffyd +ygedcrzi +qeabeirk +vldohfjo +sumgousm +fmaafgvi +tmmjvjvw +gdpurstk +htuvrriy +onjszcec +bnqqgrlp +qtyafvix +bvggwzqp +uoasbjrz +bnqqgrlp +elmvmqfx +twtxssyg +hvjrkgvn +sxmtlzlw +fjffynzj +qegytrys +wtnecrbu +lkwpaiik +qegytrys +ebnqbokg +rblbftch +kvanptal +snfnnaow +hsbfrqwc +aylkedwc +canuyblm +ruiquets +erhbdnlg +mxzsltag +twtxssyg +uwkawwfh +stkfzrxm +krwmiegb +ajtczmtc +lkwpaiik +wwatmyfh +jllhtiip +nvgiglpg +dklpprvj +gjrnpmcc +uoasbjrz +hmpjprva +xzdhqifz +hpuoygat +fpzxralq +gkqprfoc +twtxssyg +tmmjvjvw +nvgiglpg +onjszcec +bgsrnutc +lkwpaiik +lmzuxenv +onjszcec +barlvanl +aybiktvj +posryrwj +lkwpaiik +uoasbjrz +zokasczg +emvfrril +modgjwsr +jllhtiip +ebnqbokg +aylkedwc +onjszcec +clzquaoh +hmpjprva +qtyafvix +wtnecrbu +wwatmyfh +xntjdryl +ebnqbokg +krwmiegb +qrrwjspo +lmzuxenv +vzbhuxdb +twtxssyg +wwatmyfh +syvktodv +rblbftch +rblbftch +gdpurstk +lmzuxenv +litrmtxc +xzdhqifz +gjrnpmcc +clzquaoh +uoasbjrz +gifksbue +rcxcoclf +wcnhypxx +aylkedwc +gribnjjy +canuyblm +pgtznfnf +ygedcrzi +gribnjjy +snfnnaow +gdpurstk +emvfrril +hmpjprva +fswersgr +rcxcoclf +hsbfrqwc +fgshzlkz +mzwexwte +bvpnukag +rodlhbtu +fcctcaro +knqqumtg +lbelzpbs +lsijbdpo +ygedcrzi +bnqqgrlp +uoasbjrz +hvjrkgvn +bqjirtjb +tmmjvjvw +ghvjpnkn +krwmiegb +ajtczmtc +qxpfvmqq +ikutiphu +canuyblm +fswersgr +bvggwzqp +ziyvyejl +adydcnwt +krwmiegb +aylkedwc +wwatmyfh +hpuoygat +komsctkv +ziyvyejl +xzdhqifz +lmzuxenv +irdnmbpc +qrrwjspo +ifdqnine +pqxekaan +tmmjvjvw +rijwsqio +bvpnukag +nvgiglpg +cdxltwqx +gribnjjy +snfnnaow +gsmutwgq +gribnjjy +bnqqgrlp +rodlhbtu +hnpikhxo +bnqqgrlp +pdbdosic +fgshzlkz +uoasbjrz +clzquaoh +qegytrys +ivxoaqvg +bqjirtjb +kvanptal +krwmiegb +hsbfrqwc +hlfnhahj +xqfvyctk +gjhikwpn +ixmclekj +nuqwzjqi +slfuffmf +lkwpaiik +fatcfvpk +vrjiljsq +irohhwfg +qegytrys +dklpprvj +sghuynub +mbpcgqyi +ebheqjpk +posryrwj +fmaafgvi +qegytrys +aylkedwc +litrmtxc +aylkedwc +icjgrrej +posryrwj +canuyblm +klhjcomg +uyzkiyny +uyzkiyny +hejxlqrt +bqekebug +xntjdryl +qxpfvmqq +xpncwfyz +syvktodv +lmzuxenv +modgjwsr +bgsrnutc +stkfzrxm +gifksbue +gjrnpmcc +lkwpaiik +rblbftch +wtnecrbu +rqludekg +gviqjnka +lrjysmbk +rqludekg +sxmtlzlw +clzquaoh +mbpcgqyi +mbpcgqyi +gribnjjy +bvpnukag +rodlhbtu +ebheqjpk +uoasbjrz +onjszcec +qtyafvix +zusfguab +qrrwjspo +wrwlwwgs +tmmjvjvw +lbelzpbs +egrqonlm +ifdqnine +posryrwj +egrqonlm +cdxltwqx +ebnqbokg +hsbfrqwc +onjszcec +lvpfctfp +bqjirtjb +gribnjjy +mbpcgqyi +qegytrys +ntdwlyyu +cdxltwqx +hfjbohcn +fwrqxmxw +qegytrys +dyslcyus +sumgousm +xzdhqifz +sumgousm +qxpfvmqq +qegytrys +jemonchd +wwatmyfh +vzbhuxdb +ntdwlyyu +ghvjpnkn +mbpcgqyi +ifdqnine +syvktodv +snfnnaow +wmrryjbh +hsbfrqwc +stfwtrsa +lmzuxenv +snfnnaow +sjyqvgwo +twtxssyg +uoasbjrz +modgjwsr +rcxcoclf +fswersgr +bvpnukag +xntjdryl +lmzuxenv +xjoydjkd +yaqvpcri +xjoydjkd +bqekebug +aybiktvj +fmaafgvi +modgjwsr +xzdhqifz +klhjcomg +hfjbohcn +clzquaoh +wmrryjbh +rodlhbtu +scvfioku +xpncwfyz +barlvanl +dklpprvj +ssrktoar +mbpcgqyi +gdpurstk +litrmtxc +cxoftctg +rodlhbtu +ebnqbokg +oarfqwxd +scvfioku +modgjwsr +zjfehspd +aylkedwc +rpwecdml +lklsancl +tmmjvjvw +clzquaoh +yhjoghiv +tmmjvjvw +ifdqnine +sghuynub +nvgiglpg +fatcfvpk +hfjbohcn +vzbhuxdb +sghuynub +xzdhqifz +mbpcgqyi +fswersgr +gifksbue +sghuynub +xzdhqifz +ebheqjpk +zryqedcy +gifksbue +pqxekaan +xpncwfyz +qrrwjspo +qtyafvix +onjszcec +czsayrkz +xntjdryl +cdxltwqx +nxknvpfz +rqgdglno +tcuxhxaz +jllhtiip +xjoydjkd +wmrryjbh +fgshzlkz +hlfnhahj +gkqprfoc +rblbftch +aylkedwc +kvanptal +nvgiglpg +rblbftch +qyalrqha +slfuffmf +aybiktvj +vzbhuxdb +rcxcoclf +scvfioku +wrwlwwgs +sxmtlzlw +stkfzrxm +wwatmyfh +canuyblm +gkqprfoc +gsmutwgq +gkqprfoc +wwatmyfh +adydcnwt +krwmiegb +rqludekg +rxpjkrob +kvanptal +dqxddeox +rcxcoclf +stfwtrsa +bqekebug +emvfrril +vzbhuxdb +yaqvpcri +wrwlwwgs +lvpfctfp +knqqumtg +sbvqorso +bqekebug +slfuffmf +snfnnaow +vrjiljsq +qegytrys +ghvjpnkn +sxmtlzlw +bvggwzqp +slfuffmf +dqxddeox +lklsancl +pqxekaan +oarfqwxd +gdpurstk +ikutiphu +cxoftctg +mbpcgqyi +rcxcoclf +hpuoygat +gifksbue +modgjwsr +wwatmyfh +hfjbohcn +ulesdghl +onjszcec +oarfqwxd +qrrwjspo +qtyafvix +yaqvpcri +lmzuxenv +syvktodv +lbelzpbs +twtxssyg +uoasbjrz +aybiktvj +verttiuu +aylkedwc +rblbftch +qegytrys +tmmjvjvw +gviqjnka +fjffynzj +posryrwj +fmaafgvi +ajtczmtc +wlpbnexn +gifksbue +qrrwjspo +modgjwsr +bnqqgrlp +fgshzlkz +bnqqgrlp +canuyblm +fgshzlkz +kqznhktp +uqsvrodw +tmmjvjvw +rijwsqio +sghuynub +nvgiglpg +ntdwlyyu +rcxcoclf +qegytrys +qtyafvix +bnqqgrlp +ikutiphu +rblbftch +hvjrkgvn +mbpcgqyi +ghvjpnkn +qtyafvix +posryrwj +nvgiglpg +hmpjprva +fgshzlkz +xpncwfyz +qtyafvix +ntdwlyyu +qtyafvix +gjrnpmcc +rpwecdml +gdpurstk +ahpqjvoy +bvpnukag +rijwsqio +fmaafgvi +qegytrys +yhppippt +aybiktvj +hsbfrqwc +xlrcyrio +wtnecrbu +lklsancl +lmzuxenv +fwrqxmxw +wrwlwwgs +wrwlwwgs +kuipdodd +mbpcgqyi +kqznhktp +dyslcyus +zjfehspd +jqpyomdo +nxknvpfz +bvpnukag +ygedcrzi +ghvjpnkn +xlrcyrio +hnpikhxo +knqqumtg +ygedcrzi +ntdwlyyu +posryrwj +veourctx +adydcnwt +uoasbjrz +modgjwsr +gkqprfoc +gjrnpmcc +hmpjprva +twtxssyg +hsbfrqwc +xzdhqifz +gifksbue +gviqjnka +sumgousm +bsvflmhn +rqludekg +fgshzlkz +klhjcomg +nvgiglpg +xqfvyctk +rijwsqio +canuyblm +htuvrriy +fgshzlkz +fswersgr +gdpurstk +jqpyomdo +xjoydjkd +scvfioku +posryrwj +qtyafvix +bnqqgrlp +lsijbdpo +twtxssyg +klhjcomg +ebheqjpk +wrwlwwgs +aybiktvj +ziyvyejl +krwmiegb +rblbftch +knqqumtg +kndcdnkp +ixmclekj +ebnqbokg +fwrqxmxw +jllhtiip +aylkedwc +xpncwfyz +sbvqorso +rqludekg +bqekebug +qeabeirk +snfnnaow +posryrwj +pqxekaan +canuyblm +tmmjvjvw +bqekebug +xjoydjkd +gdpurstk +inbikasp +twtxssyg +canuyblm +czsayrkz +modgjwsr +ghvjpnkn +kuipdodd +rodlhbtu +nxknvpfz +klhjcomg +nvgiglpg +tcuxhxaz +yhjoghiv +qegytrys +hejxlqrt +kqznhktp +aybiktvj +fgshzlkz +wwatmyfh +vzbhuxdb +ewtkqwqc +wlpbnexn +nvgiglpg +pqxekaan +snfnnaow +ebheqjpk +vldohfjo +uoasbjrz +sxmtlzlw +qtyafvix +hnpikhxo +zokasczg +gifksbue +uyzkiyny +snfnnaow +icjgrrej +nvgiglpg +wwatmyfh +gdpurstk +dqxddeox +uyzkiyny +sumgousm +bqjirtjb +rblbftch +fswersgr +gifksbue +bqekebug +pdbdosic +rblbftch +fjffynzj +tmmjvjvw +qtyafvix +bvggwzqp +czsayrkz +fpzxralq +fgshzlkz +bqjirtjb +bvggwzqp +rcxcoclf +hvjrkgvn +zkrxhkny +xzdhqifz +lmzuxenv +ziyvyejl +qegytrys +fswersgr +nvgiglpg +nfkgpovg +rodlhbtu +uyzkiyny +ebnqbokg +yhjoghiv +nuqwzjqi +aktfqryi +tcuxhxaz +gviqjnka +clzquaoh +slfuffmf +qrrwjspo +uoasbjrz +gjrnpmcc +osegqybm +hmpjprva +sumgousm +modgjwsr +uoasbjrz +krwmiegb +wwatmyfh +ygedcrzi +rpwoeola +lkwpaiik +ybgaiwqm +stkfzrxm +vzbhuxdb +hpuoygat +kqznhktp +cxoftctg +ntdwlyyu +fgshzlkz +rcxcoclf +qegytrys +qegytrys +knqqumtg +szhtpjyv +qegytrys +wrwlwwgs +vldohfjo +jllhtiip +mxzsltag +kavwcfmu +bsvflmhn +xntjdryl +gjrnpmcc +erhbdnlg +qxpfvmqq +kqznhktp +grxldlyk +oarfqwxd +tmmjvjvw +modgjwsr +kqznhktp +lklsancl +grxldlyk +grxldlyk +gifksbue +xqfvyctk +wqpfwzbj +hdbfrnha +hfjbohcn +cxorzqix +mbpcgqyi +slfuffmf +stfwtrsa +twtxssyg +fpzxralq +jqpyomdo +fcctcaro +amhehfow +posryrwj +sghuynub +vzbhuxdb +fgshzlkz +wcnhypxx +bpplofjm +lkwpaiik +bsvflmhn +fwrqxmxw +rblbftch +snfnnaow +xjoydjkd +nvgiglpg +hsbfrqwc +ghvjpnkn +hvjrkgvn +canuyblm +qxpfvmqq +uoasbjrz +nvgiglpg +lvpfctfp +vzbhuxdb +rcxcoclf +ebheqjpk +ygedcrzi +wtnecrbu +qtyafvix +elmvmqfx +dqxddeox +hsbfrqwc +uyzkiyny +gifksbue +gdqunmio +hvjrkgvn +lmzuxenv +nptbmfae +hmpjprva +aybiktvj +fgshzlkz +rcxcoclf +canuyblm +ewtkqwqc +canuyblm +faxbpnva +hmpjprva +hvjrkgvn +hpuoygat +lmzuxenv +qyalrqha +twtxssyg +onjszcec +fgshzlkz +mbpcgqyi +modgjwsr +nvgiglpg +ewtkqwqc +qxpfvmqq +kvanptal +xntjdryl +ewtkqwqc +hsbfrqwc +ifdqnine +wqpfwzbj +posryrwj +tmmjvjvw +rcxcoclf +clzquaoh +hmpjprva +llwmrzjl +rodlhbtu +qxpfvmqq +snfnnaow +amhehfow +krwmiegb +yaqvpcri +vrjiljsq +posryrwj +mxzsltag +nfkgpovg +twtxssyg +wrwlwwgs +aybiktvj +qxpfvmqq +rcxcoclf +sxmtlzlw +qegytrys +clzquaoh +bnqqgrlp +posryrwj +vrjiljsq +posryrwj +sxmtlzlw +irdnmbpc +zkrxhkny +stkfzrxm +kqznhktp +gjrnpmcc +gribnjjy +hnpikhxo +xjoydjkd +rpwoeola +uoasbjrz +yhjoghiv +stkfzrxm +wtnecrbu +klhjcomg +litrmtxc +evaytxev +lvpfctfp +lkwpaiik +kvanptal +wmrryjbh +syvktodv +uoasbjrz +qeabeirk +tcuxhxaz +posryrwj +gjrnpmcc +qtyafvix +xntjdryl +rqludekg +lvpfctfp +ikutiphu +uoasbjrz +nptbmfae +egdyjbri +modgjwsr +qegytrys +qegytrys +zqcetrfj +vzbhuxdb +dibzffyd +rqludekg +bvggwzqp +cbutcdlm +aysirskl +mxzsltag +aylkedwc +hcnggcmw +vzbhuxdb +rpwoeola +elmvmqfx +hejxlqrt +bvpnukag +krwmiegb +rpwoeola +ikutiphu +uoasbjrz +fgshzlkz +gribnjjy +rcxcoclf +stnxvfgm +irdnmbpc +nvgkafec +umlwokvi +bqjirtjb +grxldlyk +fswersgr +modgjwsr +oarfqwxd +rcxcoclf +lmzuxenv +posryrwj +sxmtlzlw +hfjbohcn +dqxddeox +canuyblm +snfnnaow +bnqqgrlp +canuyblm +fmaafgvi +uyzkiyny +rodlhbtu +kvanptal +klhjcomg +fmaafgvi +rqludekg +tmmjvjvw +ntdwlyyu +nvgiglpg +hpuoygat +modgjwsr +uoasbjrz +ebnqbokg +kqznhktp +ygedcrzi +ebnqbokg +vzbhuxdb +uoasbjrz +tcuxhxaz +uoasbjrz +ocfnlnyk +wmrryjbh +kvanptal +litrmtxc +jqpyomdo +hnpikhxo +ygedcrzi +sumgousm +fgshzlkz +amhehfow +nvgiglpg +qrrwjspo +qegytrys +gkqprfoc +sakueadt +bnqqgrlp +fswersgr +irdnmbpc +bqekebug +hvjrkgvn +canuyblm +lmzuxenv +twtxssyg +bqjirtjb +zokasczg +lkwpaiik +xpncwfyz +aybiktvj +zusfguab +canuyblm +aysirskl +xjoydjkd +rcxcoclf +aybiktvj +canuyblm +qyalrqha +qrrwjspo +qegytrys +gdqunmio +tmmjvjvw +cbutcdlm +onjszcec +canuyblm +qtyafvix +xjoydjkd +lkwpaiik +uoasbjrz +nvgiglpg +ewtkqwqc +gjrnpmcc +sghuynub +ghvjpnkn +kqznhktp +snfnnaow +ikutiphu +opbtajsx +canuyblm +uoasbjrz +xntjdryl +rcxcoclf +bnqqgrlp +hfjbohcn +modgjwsr +nnshafed +ebnqbokg +kvanptal +canuyblm +vzbhuxdb +bnqqgrlp +klhjcomg +ifdqnine +tmmjvjvw +rpwoeola +amhehfow +gifksbue +irdnmbpc +knqqumtg +hejxlqrt +xntjdryl +kvanptal +fgshzlkz +qtyafvix +kqznhktp +kndcdnkp +lkwpaiik +ocfnlnyk +zkrxhkny +xpncwfyz +uoasbjrz +gifksbue +ocfnlnyk +ewtkqwqc +rqludekg +hdbfrnha +mbpcgqyi +nvgiglpg +uyzkiyny +modgjwsr +rblbftch +wtnecrbu +syvktodv +mbpcgqyi +rcxcoclf +snfnnaow +nptbmfae +fatcfvpk +aybiktvj +canuyblm +umlwokvi +hnpikhxo +lvpfctfp +bvpnukag +tmmjvjvw +rqludekg +qrrwjspo +vzbhuxdb +gdpurstk +xjoydjkd +ifdqnine +fcctcaro +bvpnukag +canuyblm +krwmiegb +modgjwsr +hpuoygat +barlvanl +uoasbjrz +zokasczg +uoasbjrz +verttiuu +aysirskl +qeabeirk +jqpyomdo +uoasbjrz +syvktodv +cdxltwqx +rblbftch +snfnnaow +zokasczg +gribnjjy +hmpjprva +ebnqbokg +gjrnpmcc +verttiuu +gribnjjy +ziyvyejl +szhtpjyv +canuyblm +hfjbohcn +qeabeirk +xzdhqifz +nvgiglpg +sghuynub +lkwpaiik +vldohfjo +dqxddeox +kndcdnkp +ebnqbokg +pslumxli +rqludekg +rblbftch +twtxssyg +rodlhbtu +scvfioku +nvgiglpg +hvjrkgvn +gjrnpmcc +rodlhbtu +qegytrys +snfnnaow +bpplofjm +onjszcec +lvpfctfp +hnpikhxo +twtxssyg +vrjiljsq +fcctcaro +ebnqbokg +jllhtiip +zkrxhkny +rodlhbtu +inbikasp +nxknvpfz +rblbftch +jllhtiip +ebnqbokg +vzbhuxdb +vldohfjo +hpzlpxzg +uyzkiyny +sbvqorso +qegytrys +inbikasp +gviqjnka +wrwlwwgs +elmvmqfx +hmpjprva +jllhtiip +qyalrqha +snfnnaow +hsbfrqwc +kavwcfmu +barlvanl +hlfnhahj +rblbftch +gjrnpmcc +xjoydjkd +pkonquix +yhjoghiv +qegytrys +wrwlwwgs +ssrktoar +tmmjvjvw +gifksbue +fmaafgvi +kvanptal +uoasbjrz +hpuoygat +uoasbjrz +tmmjvjvw +scvfioku +klhjcomg +qaoatkzw +hfjbohcn +aktfqryi +ixmclekj +gdpurstk +mbpcgqyi +mbpcgqyi +wrwlwwgs +qegytrys +ruiquets +gribnjjy +uyzkiyny +lkwpaiik +mbpcgqyi +fgshzlkz +stkfzrxm +ewtkqwqc +ghvjpnkn +kvanptal +hmpjprva +szhtpjyv +nvgiglpg +tmmjvjvw +cdxltwqx +fjffynzj +vzbhuxdb +vzbhuxdb +nvgiglpg +clzquaoh +lsijbdpo +qeabeirk +knqqumtg +hpuoygat +irdnmbpc +mbpcgqyi +ocfnlnyk +litrmtxc +modgjwsr +aylkedwc +gdpurstk +knqqumtg +gviqjnka +aylkedwc +lklsancl +jqpyomdo +oarfqwxd +dyslcyus +hcnggcmw +qyalrqha +uoasbjrz +nptbmfae +evaytxev +ybgaiwqm +clzquaoh +posryrwj +qegytrys +qegytrys +vrjiljsq +snfnnaow +snfnnaow +jqpyomdo +lkwpaiik +xqfvyctk +uoasbjrz +rodlhbtu +hsbfrqwc +canuyblm +ebheqjpk +modgjwsr +tmmjvjvw +onjszcec +uoasbjrz +uyzkiyny +lmzuxenv +aylkedwc +pgtznfnf +bnqqgrlp +jllhtiip +dqxddeox +gdqunmio +cdxltwqx +fgshzlkz +hvjrkgvn +bnqqgrlp +rblbftch +fswersgr +wrwlwwgs +gsmutwgq +uoasbjrz +hpuoygat +irohhwfg +scvfioku +mxzsltag +clzquaoh +gifksbue +rtledujy +utqcywou +hsbfrqwc +faxbpnva +canuyblm +grxldlyk +oarfqwxd +uoasbjrz +erhbdnlg +ebnqbokg +oarfqwxd +fatcfvpk +qtyafvix +canuyblm +ghvjpnkn +krwmiegb +ghvjpnkn +rblbftch +klhjcomg +uoasbjrz +slfuffmf +uqsvrodw +twtxssyg +fjffynzj +snfnnaow +rblbftch +ivxoaqvg +clzquaoh +qegytrys +bvggwzqp +stnxvfgm +lvpfctfp +nvgiglpg +gsmutwgq +rcxcoclf +bvggwzqp +xntjdryl +gkqprfoc +komsctkv +ebheqjpk +uoasbjrz +hpuoygat +fgshzlkz +sumgousm +bvggwzqp +nxknvpfz +uyzkiyny +vzbhuxdb +mbpcgqyi +lmzuxenv +qegytrys +rcxcoclf +wwatmyfh +canuyblm +fpzxralq +gjrnpmcc +jllhtiip +modgjwsr +ebnqbokg +qtyafvix +qegytrys +syvktodv +sumgousm +tmmjvjvw +cbutcdlm +pkonquix +mbpcgqyi +qegytrys +verttiuu +inbikasp +gifksbue +ebheqjpk +ebnqbokg +pslumxli +rodlhbtu +gribnjjy +snfnnaow +snfnnaow +canuyblm +uoasbjrz +qegytrys +fgshzlkz +rcxcoclf +icjgrrej +gribnjjy +nnshafed +litrmtxc +twtxssyg +qtyafvix +snfnnaow +uoasbjrz +ygedcrzi +fatcfvpk +sbvqorso +pqxekaan +gribnjjy +twtxssyg +clzquaoh +lmzuxenv +gdpurstk +nvgiglpg +yhjoghiv +mbpcgqyi +gribnjjy +posryrwj +wrwlwwgs +hlfnhahj +dqxddeox +snfnnaow +ajtczmtc +jemonchd +sxmtlzlw +cxzsyfuo +ssrktoar +snfnnaow +fswersgr +oarfqwxd +fgshzlkz +vzbhuxdb +vzbhuxdb +klhjcomg +qaoatkzw +fjffynzj +rblbftch +wrwlwwgs +modgjwsr +nxknvpfz +htuvrriy +uoasbjrz +rblbftch +lkwpaiik +fcctcaro +gdpurstk +grxldlyk +fjffynzj +vzbhuxdb +fwrqxmxw +ebnqbokg +fgshzlkz +hsbfrqwc +wwatmyfh +hcnggcmw +canuyblm +vrjiljsq +ikutiphu +uoasbjrz +onjszcec +ntdwlyyu +hvjrkgvn +bpplofjm +onjszcec +hdbfrnha +tmmjvjvw +rcxcoclf +fcctcaro +rblbftch +stkfzrxm +ruiquets +qrrwjspo +xqfvyctk +irdnmbpc +ebnqbokg +tdfpaezp +slfuffmf +klhjcomg +rcxcoclf +snfnnaow +lklsancl +wrwlwwgs +vrjiljsq +aysirskl +hejxlqrt +wrwlwwgs +bqjirtjb +fcctcaro +ntdwlyyu +bqjirtjb +scvfioku +canuyblm +qtyafvix +gdpurstk +verttiuu +lkwpaiik +rblbftch +wrwlwwgs +hejxlqrt +rpwecdml +cxorzqix +lvpfctfp +snfnnaow +modgjwsr +rcxcoclf +lkwpaiik +gkqprfoc +ybgaiwqm +rodlhbtu +xqfvyctk +krwmiegb +faxbpnva +sxmtlzlw +lsijbdpo +rblbftch +krwmiegb +qeabeirk +cxoftctg +gdqunmio +szhtpjyv +bnqqgrlp +bvggwzqp +klhjcomg +fswersgr +xzdhqifz +emvfrril +krwmiegb +tmmjvjvw +xpncwfyz +scvfioku +llwmrzjl +gjrnpmcc +xzdhqifz +nfkgpovg +posryrwj +ebnqbokg +hsbfrqwc +oarfqwxd +nptbmfae +knqqumtg +rcxcoclf +verttiuu +uoasbjrz +gdpurstk +qrrwjspo +wrwlwwgs +ifdqnine +nvgkafec +knqqumtg +krwmiegb +veourctx +ebheqjpk +vzbhuxdb +gkqprfoc +uoasbjrz +gdqunmio +gjrnpmcc +krwmiegb +irdnmbpc +gifksbue +lrjysmbk +czsayrkz +pdbdosic +lmzuxenv +gifksbue +ghvjpnkn +fswersgr +faxbpnva +hejxlqrt +tcuxhxaz +ocfnlnyk +ebnqbokg +bsvflmhn +klhjcomg +ixmclekj +dqxddeox +mxzsltag +jqpyomdo +clzquaoh +sumgousm +bqjirtjb +twtxssyg +canuyblm +scvfioku +qegytrys +sbvqorso +gifksbue +ixmclekj +nvgiglpg +inbikasp +dqxddeox +gifksbue +canuyblm +qyalrqha +kndcdnkp +cxoftctg +nvgiglpg +canuyblm +bgsrnutc +fpzxralq +nvgiglpg +bnqqgrlp +gdpurstk +wrwlwwgs +uoasbjrz +bgsrnutc +qegytrys +rcxcoclf +bpplofjm +nfkgpovg +gdpurstk +uoasbjrz +ikutiphu +gsmutwgq +fwrqxmxw +veourctx +ebnqbokg +sxmtlzlw +sakueadt +sbvqorso +fgshzlkz +pgtznfnf +tcuxhxaz +ocfnlnyk +hcnggcmw +gviqjnka +zryqedcy +stfwtrsa +ulesdghl +hmpjprva +modgjwsr +gribnjjy +gdpurstk +fjffynzj +rblbftch +bgsrnutc +ruiquets +aylkedwc +uyzkiyny +lvpfctfp +cxzsyfuo +klhjcomg +fgshzlkz +lvpfctfp +cxorzqix +posryrwj +hmpjprva +canuyblm +ruiquets +qtyafvix +twtxssyg +fjffynzj +fgshzlkz +modgjwsr +cdxltwqx +barlvanl +uyzkiyny +rblbftch +zkrxhkny +dqxddeox +aktfqryi +qegytrys +snfnnaow +rcxcoclf +xntjdryl +hpuoygat +gdpurstk +gdpurstk +slfuffmf +rblbftch +rblbftch +qxpfvmqq +slfuffmf +qxpfvmqq +hcnggcmw +fswersgr +hvjrkgvn +aylkedwc +gribnjjy +hmpjprva +fgshzlkz +krwmiegb +fatcfvpk +klhjcomg +bnqqgrlp +hnpikhxo +posryrwj +bvggwzqp +posryrwj +qegytrys +zokasczg +lmzuxenv +lkwpaiik +qrrwjspo +czsayrkz +fcctcaro +ulesdghl +xzdhqifz +clzquaoh +uoasbjrz +canuyblm +rcxcoclf +qeabeirk +rxpjkrob +gifksbue +ahpqjvoy +sumgousm +rodlhbtu +barlvanl +fatcfvpk +posryrwj +cdxltwqx +ygedcrzi +modgjwsr +bqekebug +modgjwsr +emvfrril +bvggwzqp +uoasbjrz +canuyblm +wqpfwzbj +fmaafgvi +dibzffyd +tmmjvjvw +veourctx +ulesdghl +gifksbue +snfnnaow +tdfpaezp +onjszcec +fgshzlkz +hmpjprva +bgsrnutc +jllhtiip +nvgiglpg +qyalrqha +veourctx +qtyafvix +ivxoaqvg +nvgiglpg +wmrryjbh +hdbfrnha +fgshzlkz +qtyafvix +bqjirtjb +zjfehspd +ebnqbokg +nvgiglpg +modgjwsr +ebnqbokg +kqznhktp +clzquaoh +fjffynzj +qtyafvix +nptbmfae +ntdwlyyu +gkqprfoc +canuyblm +lvpfctfp +bqjirtjb +bnqqgrlp +uoasbjrz +gdpurstk +fjffynzj +wwatmyfh +kvanptal +faxbpnva +bvpnukag +zokasczg +gifksbue +klhjcomg +xzdhqifz +sumgousm +kvanptal +ntdwlyyu +bsvflmhn +klhjcomg +gribnjjy +gifksbue +sjyqvgwo +fswersgr +pslumxli +gjrnpmcc +litrmtxc +twtxssyg +fcctcaro +jllhtiip +fgshzlkz +cxorzqix +gdpurstk +rodlhbtu +rpwecdml +fatcfvpk +canuyblm +xqfvyctk +icjgrrej +erhbdnlg +kqznhktp +krwmiegb +gviqjnka +bvpnukag +mbpcgqyi +ruiquets +jllhtiip +tmmjvjvw +fatcfvpk +pqxekaan +rqgdglno +uyzkiyny +tmmjvjvw +qegytrys +xlrcyrio +clzquaoh +bnqqgrlp +uoasbjrz +bpplofjm +hmpjprva +twtxssyg +gjhikwpn +hpuoygat +rqludekg +ifdqnine +canuyblm +mbpcgqyi +fswersgr +nvgiglpg +rblbftch +sbvqorso +aybiktvj +wrwlwwgs +hmpjprva +gribnjjy +adydcnwt +tmmjvjvw +lvpfctfp +mbpcgqyi +elmvmqfx +tmmjvjvw +qegytrys +stfwtrsa +yhjoghiv +zryqedcy +bsvflmhn +czsayrkz +fjffynzj +hlfnhahj +nxknvpfz +dibzffyd +onjszcec +tmmjvjvw +snfnnaow +rcxcoclf +cxorzqix +hpzlpxzg +bvggwzqp +hmpjprva +gviqjnka +uoasbjrz +rcxcoclf +pdbdosic +rcxcoclf +xjoydjkd +yhjoghiv +hpuguqca +scvfioku +sumgousm +uoasbjrz +qtyafvix +nuqwzjqi +elmvmqfx +canuyblm +fatcfvpk +klhjcomg +gjrnpmcc +wlpbnexn +uoasbjrz +posryrwj +ssrktoar +uoasbjrz +elmvmqfx +uyzkiyny +twtxssyg +pqxekaan +qegytrys +wwatmyfh +uoasbjrz +sumgousm +jllhtiip +vzbhuxdb +lkwpaiik +stkfzrxm +uoasbjrz +yaqvpcri +qegytrys +barlvanl +oarfqwxd +bnqqgrlp +rodlhbtu +xzdhqifz +lvpfctfp +fcctcaro +uoasbjrz +tmmjvjvw +ntdwlyyu +gdpurstk +onjszcec +uoasbjrz +rodlhbtu +hmpjprva +posryrwj +dqxddeox +uoasbjrz +gifksbue +lbelzpbs +sumgousm +rcxcoclf +uoasbjrz +czsayrkz +klhjcomg +bnqqgrlp +faxbpnva +knqqumtg +kvanptal +hpuoygat +krwmiegb +twtxssyg +qaoatkzw +nvgiglpg +rijwsqio +irohhwfg +lvpfctfp +osegqybm +gjrnpmcc +wwatmyfh +fgshzlkz +hmpjprva +modgjwsr +modgjwsr +uoasbjrz +ikutiphu +ghvjpnkn +rtledujy +lsijbdpo +xjoydjkd +hvjrkgvn +mbpcgqyi +klhjcomg +fgshzlkz +canuyblm +klhjcomg +tmmjvjvw +aylkedwc +ocfnlnyk +faxbpnva +canuyblm +ifdqnine +snfnnaow +lbelzpbs +fatcfvpk +rqludekg +clzquaoh +rblbftch +qegytrys +bpplofjm +ewtkqwqc +onjszcec +wwatmyfh +onjszcec +scvfioku +sbvqorso +uoasbjrz +hfjbohcn +gdpurstk +veourctx +xntjdryl +tmmjvjvw +qaoatkzw +ifdqnine +zryqedcy +canuyblm +vrjiljsq +posryrwj +fjffynzj +nfkgpovg +modgjwsr +rcxcoclf +hcnggcmw +hmpjprva +cdxltwqx +faxbpnva +aysirskl +zqcetrfj +syvktodv +syvktodv +gdpurstk +uoasbjrz +vzbhuxdb +ifdqnine +wrwlwwgs +ikutiphu +hnpikhxo +sbvqorso +stnxvfgm +tcuxhxaz +twtxssyg +gjrnpmcc +qtyafvix +cdxltwqx +bqjirtjb +fjffynzj +twtxssyg +cdxltwqx +qyalrqha +gifksbue +zqcetrfj +gdpurstk +gdpurstk +gjrnpmcc +ulesdghl +gjrnpmcc +lrjysmbk +snfnnaow +uoasbjrz +hsbfrqwc +snfnnaow +xzdhqifz +ebnqbokg +bnqqgrlp +modgjwsr +rblbftch +tcuxhxaz +xjoydjkd +wrwlwwgs +canuyblm +rodlhbtu +fgshzlkz +llwmrzjl +syvktodv +jllhtiip +qxpfvmqq +uoasbjrz +qegytrys +stfwtrsa +ikutiphu +qegytrys +lkwpaiik +jqpyomdo +gjrnpmcc +adydcnwt +bqekebug +xntjdryl +qeabeirk +lmzuxenv +ulesdghl +gdpurstk +lvpfctfp +mbpcgqyi +vzbhuxdb +elmvmqfx +nfkgpovg +wtnecrbu +gifksbue +yaqvpcri +qegytrys +posryrwj +lbelzpbs +twtxssyg +fmaafgvi +wrwlwwgs +dqxddeox +jqpyomdo +mxzsltag +wwatmyfh +lsijbdpo +nvgiglpg +wrwlwwgs +uyzkiyny +kndcdnkp +wtnecrbu +uoasbjrz +tcuxhxaz +nptbmfae +rodlhbtu +fgshzlkz +rodlhbtu +szhtpjyv +htuvrriy +lkwpaiik +grxldlyk +erhbdnlg +xpncwfyz +modgjwsr +wrwlwwgs +uoasbjrz +krwmiegb +qtyafvix +aylkedwc +osegqybm +gviqjnka +aybiktvj +cxzsyfuo +canuyblm +qegytrys +wwatmyfh +wwatmyfh +bvggwzqp +rodlhbtu +nxknvpfz +hmpjprva +qtyafvix +aylkedwc +bpplofjm +grxldlyk +slfuffmf +fatcfvpk +egrqonlm +sxmtlzlw +lkwpaiik +qeabeirk +wtnecrbu +snfnnaow +kvanptal +verttiuu +hpuoygat +elmvmqfx +gjrnpmcc +xzdhqifz +canuyblm +umlwokvi +rblbftch +bqekebug +kndcdnkp +ntdwlyyu +wwatmyfh +gdpurstk +uoasbjrz +ifdqnine +jllhtiip +uoasbjrz +rodlhbtu +fgshzlkz +gjrnpmcc +mbpcgqyi +stkfzrxm +zqcetrfj +ebheqjpk +llwmrzjl +posryrwj +gribnjjy +ntdwlyyu +egdyjbri +snfnnaow +ebnqbokg +ziyvyejl +tmmjvjvw +modgjwsr +ikutiphu +lvpfctfp +vzbhuxdb +pdbdosic +canuyblm +gjrnpmcc +fwrqxmxw +ajtczmtc +fgshzlkz +canuyblm +modgjwsr +sumgousm +hlfnhahj +icjgrrej +scvfioku +slfuffmf +cxoftctg +aktfqryi +krwmiegb +slfuffmf +gifksbue +ntdwlyyu +bvpnukag +rblbftch +qegytrys +nvgiglpg +gjhikwpn +syvktodv +egdyjbri +zokasczg +pjkouayb +qxpfvmqq +onjszcec +mbpcgqyi +uoasbjrz +lkwpaiik +ebnqbokg +fswersgr +cdxltwqx +scvfioku +fgshzlkz +wrwlwwgs +wtnecrbu +xlrcyrio +bnqqgrlp +snfnnaow +jemonchd +sghuynub +modgjwsr +bnqqgrlp +lbelzpbs +lvpfctfp +bpplofjm +uyzkiyny +posryrwj +yhppippt +wrwlwwgs +bvggwzqp +vzbhuxdb +onjszcec +ebnqbokg +barlvanl +hejxlqrt +veourctx +ybgaiwqm +uyzkiyny +sumgousm +lmzuxenv +fgshzlkz +modgjwsr +klhjcomg +wwatmyfh +qtyafvix +posryrwj +cbutcdlm +ghvjpnkn +fgshzlkz +uoasbjrz +rblbftch +bgsrnutc +sumgousm +fgshzlkz +hvjrkgvn +pdbdosic +rblbftch +qyalrqha +aylkedwc +jemonchd +fpzxralq +rblbftch +gifksbue +canuyblm +scvfioku +vrjiljsq +hejxlqrt +snfnnaow +rijwsqio +yhjoghiv +posryrwj +modgjwsr +stkfzrxm +mbpcgqyi +mbpcgqyi +qtyafvix +twtxssyg +canuyblm +fgshzlkz +kavwcfmu +zqcetrfj +ntdwlyyu +posryrwj +qyalrqha +fwrqxmxw +ghvjpnkn +hlfnhahj +scvfioku +snfnnaow +gjrnpmcc +gviqjnka +bvggwzqp +zkrxhkny +nvgiglpg +jllhtiip +hmpjprva +jllhtiip +vzbhuxdb +hnpikhxo +stkfzrxm +syvktodv +uoasbjrz +htuvrriy +cxzsyfuo +komsctkv +qegytrys +mbpcgqyi +snfnnaow +ebnqbokg +aylkedwc +uoasbjrz +uoasbjrz +nvgiglpg +syvktodv +aylkedwc +tmmjvjvw +bqjirtjb +gribnjjy +cxzsyfuo +cxorzqix +bsvflmhn +lbelzpbs +xntjdryl +aktfqryi +snfnnaow +onjszcec +gribnjjy +fgshzlkz +gjrnpmcc +jllhtiip +emvfrril +wwatmyfh +ocfnlnyk +wwatmyfh +mbpcgqyi +tmmjvjvw +snfnnaow +gribnjjy +cxzsyfuo +vzbhuxdb +tmmjvjvw +oarfqwxd +onjszcec +jemonchd +clzquaoh +lkwpaiik +mbpcgqyi +lmzuxenv +umlwokvi +fcctcaro +posryrwj +gkqprfoc +rcxcoclf +uoasbjrz +aylkedwc +stkfzrxm +oarfqwxd +jllhtiip +gdpurstk +rijwsqio +uyzkiyny +wwatmyfh +ivxoaqvg +nvgiglpg +hpuoygat +hpuoygat +gribnjjy +gviqjnka +gdpurstk +uoasbjrz +yhjoghiv +lmzuxenv +xntjdryl +ifdqnine +qxpfvmqq +nptbmfae +fjffynzj +bgsrnutc +fmaafgvi +bnqqgrlp +wnddbfsg +lbelzpbs +nnshafed +bvggwzqp +cxoftctg +cxzsyfuo +vzbhuxdb +rodlhbtu +rqludekg +yaqvpcri +fswersgr +nfkgpovg +tdfpaezp +gjhikwpn +uoasbjrz +xzdhqifz +rodlhbtu +ghvjpnkn +rblbftch +fjffynzj +qegytrys +tmmjvjvw +gjrnpmcc +gviqjnka +gdpurstk +aktfqryi +jllhtiip +hmpjprva +hdbfrnha +ivxoaqvg +gdpurstk +jllhtiip +uoasbjrz +ghvjpnkn +gjrnpmcc +modgjwsr +xntjdryl +hlfnhahj +fgshzlkz +hvjrkgvn +rodlhbtu +wrwlwwgs +egrqonlm +wmrryjbh +mxzsltag +uoasbjrz +hfjbohcn +fgshzlkz +qegytrys +ikutiphu +sbvqorso +xjoydjkd +irdnmbpc +opbtajsx +hfjbohcn +onjszcec +adydcnwt +qrrwjspo +posryrwj +emvfrril +posryrwj +barlvanl +zqcetrfj +rcxcoclf +wtnecrbu +ybgaiwqm +aylkedwc +sghuynub +bvpnukag +elmvmqfx +xntjdryl +mbpcgqyi +bvggwzqp +gjrnpmcc +hfjbohcn +qeabeirk +veourctx +bvggwzqp +vzbhuxdb +pslumxli +zokasczg +lklsancl +hmpjprva +bvggwzqp +snfnnaow +fgshzlkz +wrwlwwgs +oarfqwxd +lsijbdpo +klhjcomg +canuyblm +lkwpaiik +faxbpnva +gdpurstk +lvpfctfp +pslumxli +jemonchd +canuyblm +cdxltwqx +inbikasp +modgjwsr +gifksbue +hmpjprva +amhehfow +ebnqbokg +ziyvyejl +dqxddeox +irdnmbpc +ebheqjpk +qrrwjspo +wlpbnexn +litrmtxc +bnqqgrlp +egdyjbri +gifksbue +gdqunmio +hnpikhxo +nvgiglpg +hdbfrnha +grxldlyk +twtxssyg +inbikasp +ebnqbokg +litrmtxc +hnpikhxo +gifksbue +onjszcec +dqxddeox +aylkedwc +vzbhuxdb +ocfnlnyk +yaqvpcri +xjoydjkd +ajtczmtc +kqznhktp +grxldlyk +ygedcrzi +nvgiglpg +vzbhuxdb +modgjwsr +pqxekaan +bvggwzqp +uoasbjrz +dibzffyd +vzbhuxdb +mbpcgqyi +opbtajsx +scvfioku +faxbpnva +gjrnpmcc +bqjirtjb +jllhtiip +gdqunmio +bqjirtjb +uoasbjrz +hpzlpxzg +gdpurstk +tmmjvjvw +fatcfvpk +ybgaiwqm +nnshafed +wtnecrbu +bgsrnutc +lkwpaiik +ruiquets +posryrwj +bvggwzqp +gsmutwgq +nvgiglpg +kndcdnkp +cdxltwqx +aylkedwc +uoasbjrz +qyalrqha +zkrxhkny +wrwlwwgs +uoasbjrz +bvggwzqp +tmmjvjvw +umlwokvi +wwatmyfh +rcxcoclf +veourctx +rblbftch +dqxddeox +hvjrkgvn +lsijbdpo +gdqunmio +twtxssyg +slfuffmf +ikutiphu +grxldlyk +modgjwsr +vldohfjo +bqjirtjb +ruiquets +lmzuxenv +wwatmyfh +qyalrqha +qegytrys +kvanptal +yaqvpcri +tmmjvjvw +cxorzqix +fcctcaro +zjfehspd +mbpcgqyi +litrmtxc +qtyafvix +krwmiegb +wwatmyfh +bqekebug +hpuoygat +lvpfctfp +uyzkiyny +klhjcomg +canuyblm +fswersgr +vrjiljsq +stkfzrxm +hnpikhxo +irdnmbpc +onjszcec +qxpfvmqq +bvpnukag +adydcnwt +xlrcyrio +hsbfrqwc +mxzsltag +fgshzlkz +cdxltwqx +clzquaoh +xzdhqifz +rqludekg +zjfehspd +twtxssyg +fgshzlkz +ikutiphu +rodlhbtu +canuyblm +gribnjjy +gdqunmio +canuyblm +gdpurstk +rcxcoclf +qxpfvmqq +qegytrys +rtledujy +uoasbjrz +twtxssyg +ntdwlyyu +hmpjprva +xntjdryl +sumgousm +gifksbue +qtyafvix +qrrwjspo +lmzuxenv +veourctx +gifksbue +knqqumtg +htuvrriy +wwatmyfh +irdnmbpc +ghvjpnkn +fcctcaro +wrwlwwgs +posryrwj +fgshzlkz +cxzsyfuo +jllhtiip +aysirskl +hejxlqrt +modgjwsr +mbpcgqyi +gjrnpmcc +nfkgpovg +modgjwsr +verttiuu +mxzsltag +ebnqbokg +uoasbjrz +xqfvyctk +lmzuxenv +wtnecrbu +modgjwsr +fjffynzj +modgjwsr +icjgrrej +jllhtiip +llwmrzjl +qtyafvix +ebnqbokg +nfkgpovg +qegytrys +ebheqjpk +verttiuu +bnqqgrlp +mbpcgqyi +aylkedwc +clzquaoh +snfnnaow +uoasbjrz +gjrnpmcc +bnqqgrlp +cbutcdlm +ygedcrzi +ebheqjpk +snfnnaow +kvanptal +krwmiegb +oarfqwxd +lvpfctfp +nvgiglpg +ifdqnine +uoasbjrz +ifdqnine +hpuoygat +sjyqvgwo +slfuffmf +nvgiglpg +sghuynub +qegytrys +ntdwlyyu +yaqvpcri +gdpurstk +lmzuxenv +qaoatkzw +xpncwfyz +rqgdglno +uoasbjrz +lmzuxenv +ikutiphu +gribnjjy +mbpcgqyi +lklsancl +zokasczg +dklpprvj +rodlhbtu +jllhtiip +modgjwsr +cbutcdlm +opbtajsx +fgshzlkz +ixmclekj +fcctcaro +ghvjpnkn +gribnjjy +zkrxhkny +bvggwzqp +uyzkiyny +snfnnaow +cdxltwqx +kqznhktp +qxpfvmqq +uoasbjrz +posryrwj +gifksbue +bvpnukag +jllhtiip +tmmjvjvw +ebheqjpk +bnqqgrlp +zqcetrfj +snfnnaow +tmmjvjvw +rodlhbtu +bqjirtjb +modgjwsr +canuyblm +slfuffmf +pkonquix +lmzuxenv +aylkedwc +emvfrril +hpuguqca +qyalrqha +jllhtiip +gjrnpmcc +uoasbjrz +uoasbjrz +jqpyomdo +dqxddeox +ntdwlyyu +qxpfvmqq +jllhtiip +litrmtxc +twtxssyg +faxbpnva +hlfnhahj +gkqprfoc +vzbhuxdb +modgjwsr +vzbhuxdb +zokasczg +modgjwsr +rodlhbtu +fmaafgvi +lmzuxenv +xzdhqifz +posryrwj +xntjdryl +pkonquix +lvpfctfp +kvanptal +ebnqbokg +qrrwjspo +jllhtiip +llwmrzjl +gjrnpmcc +gjhikwpn +klhjcomg +yhjoghiv +yaqvpcri +modgjwsr +bsvflmhn +oarfqwxd +utqcywou +uoasbjrz +xpncwfyz +qtyafvix +vzbhuxdb +stkfzrxm +rqgdglno +gribnjjy +xpncwfyz +wwatmyfh +qxpfvmqq +rblbftch +lklsancl +nptbmfae +xntjdryl +rqgdglno +snfnnaow +canuyblm +hfjbohcn +uoasbjrz +bnqqgrlp +bpplofjm +zkrxhkny +grxldlyk +ulesdghl +onjszcec +wtnecrbu +jllhtiip +hcnggcmw +uoasbjrz +ghvjpnkn +aylkedwc +fswersgr +vrjiljsq +ntdwlyyu +gjrnpmcc +rcxcoclf +rblbftch +wqpfwzbj +ebheqjpk +rodlhbtu +jllhtiip +fjffynzj +uoasbjrz +fswersgr +vzbhuxdb +gdpurstk +rblbftch +pqxekaan +gifksbue +hnpikhxo +gjrnpmcc +scvfioku +uyzkiyny +lvpfctfp +bvpnukag +rqludekg +ahpqjvoy +kuipdodd +twtxssyg +xqfvyctk +aybiktvj +pjkouayb +qegytrys +uoasbjrz +sxmtlzlw +hsbfrqwc +rblbftch +qrrwjspo +aktfqryi +wrwlwwgs +jqpyomdo +stkfzrxm +uoasbjrz +dibzffyd +uyzkiyny +ebnqbokg +snfnnaow +ebnqbokg +uoasbjrz +stkfzrxm +dklpprvj +gdpurstk +ziyvyejl +egrqonlm +tmmjvjvw +gdpurstk +twtxssyg +cxorzqix +zryqedcy +bqjirtjb +rblbftch +jllhtiip +wwatmyfh +syvktodv +scvfioku +bpplofjm +lsijbdpo +wwatmyfh +qxpfvmqq +bvggwzqp +inbikasp +mbpcgqyi +sakueadt +bqjirtjb +bnqqgrlp +tmmjvjvw +twtxssyg +qxpfvmqq +gviqjnka +rcxcoclf +qtyafvix +gjrnpmcc +kqznhktp +gribnjjy +kndcdnkp +ivxoaqvg +jllhtiip +modgjwsr +qtyafvix +verttiuu +hvjrkgvn +sxmtlzlw +aylkedwc +kqznhktp +jllhtiip +uoasbjrz +sjyqvgwo +xzdhqifz +oarfqwxd +lvpfctfp +qrrwjspo +bqjirtjb +hnpikhxo +pgtznfnf +uoasbjrz +ivxoaqvg +wwatmyfh +lvpfctfp +gsmutwgq +stkfzrxm +pslumxli +hlfnhahj +rblbftch +lkwpaiik +grxldlyk +bpplofjm +qtyafvix +pqxekaan +lbelzpbs +zokasczg +bqjirtjb +verttiuu +hmpjprva +pqxekaan +canuyblm +scvfioku +sakueadt +xpncwfyz +ruiquets +irdnmbpc +mbpcgqyi +rijwsqio +canuyblm +yhjoghiv +ifdqnine +bnqqgrlp +qtyafvix +qtyafvix +wrwlwwgs +hnpikhxo +tmmjvjvw +qegytrys +qtyafvix +hpuguqca +vzbhuxdb +bqekebug +nvgiglpg +xjoydjkd +uoasbjrz +qegytrys +oarfqwxd +canuyblm +dqxddeox +xqfvyctk +bnqqgrlp +wmrryjbh +bvggwzqp +fgshzlkz +fgshzlkz +hmpjprva +ebnqbokg +qtyafvix +hcnggcmw +hcnggcmw +xpncwfyz +bsvflmhn +pslumxli +elmvmqfx +kqznhktp +bqjirtjb +zqcetrfj +gribnjjy +gjrnpmcc +xntjdryl +bnqqgrlp +nuqwzjqi +czsayrkz +mbpcgqyi +nnshafed +ulesdghl +snfnnaow +opbtajsx +wqpfwzbj +uoasbjrz +qegytrys +modgjwsr +mxzsltag +modgjwsr +xntjdryl +jemonchd +barlvanl +qtyafvix +scvfioku +xzdhqifz +hfjbohcn +stkfzrxm +aysirskl +qrrwjspo +gdpurstk +jllhtiip +wwatmyfh +fmaafgvi +wwatmyfh +canuyblm +wwatmyfh +xjoydjkd +modgjwsr +rqludekg +wrwlwwgs +gjrnpmcc +ewtkqwqc +krwmiegb +osegqybm +hmpjprva +uoasbjrz +gribnjjy +qtyafvix +zkrxhkny +uoasbjrz +barlvanl +wwatmyfh +kvanptal +klhjcomg +fcctcaro +emvfrril +stfwtrsa +mbpcgqyi +sumgousm +vrjiljsq +modgjwsr +xqfvyctk +vzbhuxdb +hejxlqrt +fjffynzj +xzdhqifz +rcxcoclf +gifksbue +canuyblm +dqxddeox +qtyafvix +fgshzlkz +hdbfrnha +fjffynzj +rcxcoclf +rqludekg +gribnjjy +jllhtiip +zkrxhkny +modgjwsr +qtyafvix +nvgiglpg +faxbpnva +clzquaoh +kvanptal +xqfvyctk +aybiktvj +uoasbjrz +posryrwj +hcnggcmw +htuvrriy +uoasbjrz +yhjoghiv +gkqprfoc +gsmutwgq +onjszcec +wrwlwwgs +mxzsltag +xjoydjkd +twtxssyg +fswersgr +dklpprvj +dibzffyd +modgjwsr +uoasbjrz +wrwlwwgs +krwmiegb +gviqjnka +jqpyomdo +nptbmfae +jqpyomdo +bvggwzqp +wmrryjbh +dqxddeox +modgjwsr +wrwlwwgs +uoasbjrz +qyalrqha +ikutiphu +gifksbue +nuqwzjqi +tmmjvjvw +aybiktvj +rodlhbtu +canuyblm +wrwlwwgs +fcctcaro +tmmjvjvw +qtyafvix +elmvmqfx +klhjcomg +nvgiglpg +qegytrys +rcxcoclf +uoasbjrz +wrwlwwgs +canuyblm +qegytrys +uoasbjrz +mbpcgqyi +zjfehspd +nvgiglpg +hmpjprva +rtledujy +gdpurstk +fgshzlkz +fjffynzj +uoasbjrz +zqcetrfj +canuyblm +lklsancl +xpncwfyz +bpplofjm +posryrwj +tmmjvjvw +rtledujy +nfkgpovg +uyzkiyny +ghvjpnkn +hmpjprva +rpwecdml +kvanptal +mxzsltag +uqsvrodw +stkfzrxm +twtxssyg +aybiktvj +nvgiglpg +wrwlwwgs +lsijbdpo +twtxssyg +fmaafgvi +modgjwsr +erhbdnlg +vldohfjo +szhtpjyv +kqznhktp +bqjirtjb +hlfnhahj +ebnqbokg +gifksbue +jqpyomdo +gribnjjy +jemonchd +nxknvpfz +zusfguab +cxzsyfuo +uoasbjrz +mbpcgqyi +hpzlpxzg +twtxssyg +canuyblm +qegytrys +nvgiglpg +qegytrys +llwmrzjl +pdbdosic +egdyjbri +wmrryjbh +uoasbjrz +qyalrqha +qrrwjspo +rqludekg +gdpurstk +nvgiglpg +dhmytfyl +snfnnaow +hmpjprva +gdqunmio +canuyblm +krwmiegb +dhmytfyl +snfnnaow +xntjdryl +clzquaoh +nptbmfae +rblbftch +uyzkiyny +bnqqgrlp +aktfqryi +amhehfow +modgjwsr +snfnnaow +wwatmyfh +cxorzqix +posryrwj +bvggwzqp +vzbhuxdb +hmpjprva +fjffynzj +gribnjjy +sxmtlzlw +ntdwlyyu +bqjirtjb +aysirskl +uoasbjrz +pqxekaan +sxmtlzlw +ifdqnine +klhjcomg +clzquaoh +adydcnwt +syvktodv +aylkedwc +ikutiphu +cxzsyfuo +stkfzrxm +vrjiljsq +qrrwjspo +lbelzpbs +fgshzlkz +modgjwsr +nptbmfae +hnpikhxo +bsvflmhn +hmpjprva +hmpjprva +barlvanl +lsijbdpo +lmzuxenv +uqsvrodw +xqfvyctk +hmpjprva +tmmjvjvw +fgshzlkz +nvgiglpg +nvgkafec +tmmjvjvw +sumgousm +lvpfctfp +faxbpnva +gribnjjy +vzbhuxdb +canuyblm +tmmjvjvw +fjffynzj +wwatmyfh +rblbftch +zqcetrfj +stkfzrxm +zryqedcy +rtledujy +uoasbjrz +canuyblm +ebnqbokg +wmrryjbh +qegytrys +ulesdghl +vzbhuxdb +bqekebug +gviqjnka +gribnjjy +xlrcyrio +oarfqwxd +qegytrys +wmrryjbh +xpncwfyz +ebheqjpk +qaoatkzw +nvgiglpg +elmvmqfx +cxorzqix +clzquaoh +cdxltwqx +jqpyomdo +uoasbjrz +xzdhqifz +knqqumtg +nxknvpfz +klhjcomg +modgjwsr +fjffynzj +qtyafvix +lmzuxenv +hpuoygat +sumgousm +wrwlwwgs +fjffynzj +knqqumtg +slfuffmf +rcxcoclf +ebnqbokg +nuqwzjqi +dhmytfyl +gviqjnka +barlvanl +canuyblm +hvjrkgvn +gjrnpmcc +fswersgr +kuipdodd +canuyblm +canuyblm +bqekebug +kqznhktp +rqludekg +mbpcgqyi +lmzuxenv +clzquaoh +fcctcaro +utqcywou +gdpurstk +sumgousm +fswersgr +qtyafvix +modgjwsr +lkwpaiik +pqxekaan +hvjrkgvn +qegytrys +wwatmyfh +qegytrys +rodlhbtu +lkwpaiik +rodlhbtu +gviqjnka +lmzuxenv +hmpjprva +aylkedwc +cxorzqix +yaqvpcri +nvgkafec +jllhtiip +uoasbjrz +ikutiphu +wrwlwwgs +aybiktvj +ntdwlyyu +hfjbohcn +aktfqryi +lkwpaiik +bnqqgrlp +qyalrqha +stkfzrxm +adydcnwt +hejxlqrt +canuyblm +pslumxli +zokasczg +stnxvfgm +tmmjvjvw +nvgiglpg +gribnjjy +bsvflmhn +ikutiphu +rcxcoclf +egdyjbri +kqznhktp +gifksbue +tmmjvjvw +ebnqbokg +fgshzlkz +fpzxralq +rqludekg +syvktodv +fgshzlkz +bvggwzqp +fatcfvpk +uoasbjrz +rcxcoclf +jllhtiip +qyalrqha +oarfqwxd +twtxssyg +qtyafvix +modgjwsr +hejxlqrt +zokasczg +fwrqxmxw +xntjdryl +kqznhktp +scvfioku +twtxssyg +rqludekg +tmmjvjvw +mbpcgqyi +rcxcoclf +snfnnaow +uoasbjrz +wwatmyfh +sumgousm +lbelzpbs +pqxekaan +ntdwlyyu +htuvrriy +klhjcomg +zokasczg +gviqjnka +onjszcec +nvgiglpg +nfkgpovg +rpwoeola +rcxcoclf +nptbmfae +snfnnaow +cdxltwqx +posryrwj +gribnjjy +veourctx +klhjcomg +zkrxhkny +klhjcomg +twtxssyg +cdxltwqx +ygedcrzi +qrrwjspo +gribnjjy +krwmiegb +snfnnaow +bvggwzqp +zkrxhkny +krwmiegb +rxpjkrob +jqpyomdo +lbelzpbs +bpplofjm +jllhtiip +wrwlwwgs +oarfqwxd +jemonchd +ebnqbokg +onjszcec +qegytrys +fatcfvpk +uyzkiyny +jqpyomdo +hvjrkgvn +rcxcoclf +wtnecrbu +lsijbdpo +xpncwfyz +lkwpaiik +uoasbjrz +gjrnpmcc +wwatmyfh +onjszcec +uyzkiyny +rpwecdml +jllhtiip +uoasbjrz +bqekebug +uoasbjrz +oarfqwxd +snfnnaow +xqfvyctk +barlvanl +ocfnlnyk +qtyafvix +gjrnpmcc +rblbftch +zkrxhkny +snfnnaow +adydcnwt +nfkgpovg +cxzsyfuo +bqjirtjb +bnqqgrlp +bqekebug +xntjdryl +xzdhqifz +zkrxhkny +ocfnlnyk +jemonchd +lkwpaiik +yhjoghiv +hnpikhxo +qeabeirk +scvfioku +stkfzrxm +oarfqwxd +yaqvpcri +lmzuxenv +ocfnlnyk +dklpprvj +lmzuxenv +mbpcgqyi +uoasbjrz +oarfqwxd +aylkedwc +xjoydjkd +gkqprfoc +ghvjpnkn +hcnggcmw +uoasbjrz +lmzuxenv +hmpjprva +ebnqbokg +rblbftch +klhjcomg +gdqunmio +rodlhbtu +stkfzrxm +vrjiljsq +cxoftctg +klhjcomg +dqxddeox +gifksbue +fcctcaro +pjkouayb +canuyblm +snfnnaow +fgshzlkz +rijwsqio +emvfrril +zjfehspd +fpzxralq +ewtkqwqc +barlvanl +rtledujy +vldohfjo +ikutiphu +snfnnaow +gkqprfoc +qegytrys +gifksbue +xzdhqifz +lsijbdpo +uwkawwfh +sbvqorso +rcxcoclf +clzquaoh +zusfguab +wtnecrbu +mbpcgqyi +knqqumtg +dqxddeox +gjrnpmcc +snfnnaow +pslumxli +bpplofjm +vldohfjo +lvpfctfp +hmpjprva +litrmtxc +ocfnlnyk +xqfvyctk +qtyafvix +fswersgr +bpplofjm +ahpqjvoy +nvgiglpg +rcxcoclf +qegytrys +jemonchd +wrwlwwgs +mxzsltag +xlrcyrio +modgjwsr +tmmjvjvw +irohhwfg +klhjcomg +uoasbjrz +vzbhuxdb +lvpfctfp +posryrwj +gdpurstk +snfnnaow +rcxcoclf +fatcfvpk +scvfioku +uyzkiyny +uoasbjrz +ntdwlyyu +stkfzrxm +xntjdryl +rblbftch +pgtznfnf +cdxltwqx +stkfzrxm +nvgiglpg +hejxlqrt +szhtpjyv +hsbfrqwc +hnpikhxo +snfnnaow +uoasbjrz +amhehfow +yhppippt +bvggwzqp +lbelzpbs +hmpjprva +tdfpaezp +sumgousm +uoasbjrz +hlfnhahj +ocfnlnyk +tmmjvjvw +xpncwfyz +bvpnukag +krwmiegb +mbpcgqyi +szhtpjyv +verttiuu +nvgiglpg +kqznhktp +gdqunmio +llwmrzjl +hmpjprva +hmpjprva +twtxssyg +ebnqbokg +irdnmbpc +qegytrys +rodlhbtu +irohhwfg +stkfzrxm +qegytrys +aylkedwc +qrrwjspo +rtledujy +ulesdghl +rodlhbtu +barlvanl +nvgiglpg +sghuynub +onjszcec +uoasbjrz +bqekebug +hejxlqrt +kuipdodd +rodlhbtu +fswersgr +rqludekg +pslumxli +qegytrys +snfnnaow +nfkgpovg +vzbhuxdb +egdyjbri +qaoatkzw +clzquaoh +xntjdryl +twtxssyg +bvggwzqp +kndcdnkp +qegytrys +adydcnwt +uoasbjrz +krwmiegb +ghvjpnkn +uoasbjrz +kqznhktp +fgshzlkz +snfnnaow +wmrryjbh +snfnnaow +aylkedwc +hfjbohcn +wwatmyfh +bpplofjm +lbelzpbs +bpplofjm +wwatmyfh +cxoftctg +aybiktvj +clzquaoh +wmrryjbh +ghvjpnkn +rijwsqio +qtyafvix +qeabeirk +modgjwsr +cbutcdlm +jqpyomdo +rqludekg +hdbfrnha +qegytrys +bqekebug +stkfzrxm +yhppippt +fatcfvpk +ebnqbokg +aylkedwc +tmmjvjvw +twtxssyg +fgshzlkz +canuyblm +uoasbjrz +krwmiegb +slfuffmf +inbikasp +ewtkqwqc +wwatmyfh +sbvqorso +snfnnaow +pjkouayb +snfnnaow +zokasczg +fgshzlkz +twtxssyg +hmpjprva +rcxcoclf +vldohfjo +kqznhktp +canuyblm +mbpcgqyi +nvgiglpg +xntjdryl +hvjrkgvn +hpuoygat +ifdqnine +nvgiglpg +aylkedwc +sxmtlzlw +hpuoygat +jllhtiip +kvanptal +cdxltwqx +hfjbohcn +gdpurstk +uoasbjrz +onjszcec +qeabeirk +fgshzlkz +wrwlwwgs +qaoatkzw +ebnqbokg +lvpfctfp +jqpyomdo +ifdqnine +ntdwlyyu +hmpjprva +bvggwzqp +uoasbjrz +snfnnaow +ghvjpnkn +emvfrril +ygedcrzi +ivxoaqvg +aktfqryi +pslumxli +vzbhuxdb +ixmclekj +clzquaoh +sghuynub +icjgrrej +oarfqwxd +hmpjprva +xzdhqifz +aktfqryi +twtxssyg +lbelzpbs +hmpjprva +hmpjprva +pslumxli +gribnjjy +ocfnlnyk +ewtkqwqc +syvktodv +uoasbjrz +clzquaoh +fgshzlkz +qegytrys +ikutiphu +ebnqbokg +uoasbjrz +nvgiglpg +aysirskl +qegytrys +stkfzrxm +knqqumtg +cdxltwqx +egdyjbri +wrwlwwgs +hmpjprva +gifksbue +ghvjpnkn +ghvjpnkn +uoasbjrz +nfkgpovg +xntjdryl +qyalrqha +ssrktoar +cxorzqix +hfjbohcn +gsmutwgq +ziyvyejl +dqxddeox +stnxvfgm +qtyafvix +twtxssyg +sghuynub +rijwsqio +bnqqgrlp +wtnecrbu +uoasbjrz +lrjysmbk +pgtznfnf +tmmjvjvw +canuyblm +hfjbohcn +erhbdnlg +xpncwfyz +hmpjprva +jemonchd +scvfioku +canuyblm +snfnnaow +nvgiglpg +gdqunmio +lsijbdpo +rpwecdml +snfnnaow +ajtczmtc +gdpurstk +xlrcyrio +rqludekg +rijwsqio +onjszcec +dyslcyus +hfjbohcn +qegytrys +hpuoygat +gjrnpmcc +oarfqwxd +snfnnaow +wrwlwwgs +lvpfctfp +mbpcgqyi +ebnqbokg +xpncwfyz +dklpprvj +wrwlwwgs +pjkouayb +hmpjprva +ghvjpnkn +opbtajsx +ybgaiwqm +grxldlyk +bvggwzqp +qegytrys +rcxcoclf +uoasbjrz +uyzkiyny +sumgousm +wwatmyfh +fmaafgvi +nvgiglpg +uoasbjrz +wrwlwwgs +erhbdnlg +hcnggcmw +litrmtxc +szhtpjyv +vzbhuxdb +rblbftch +bvggwzqp +klhjcomg +bnqqgrlp +vldohfjo +kndcdnkp +rpwecdml +czsayrkz +scvfioku +qtyafvix +ghvjpnkn +uyzkiyny +snfnnaow +rxpjkrob +hmpjprva +cbutcdlm +faxbpnva +gjrnpmcc +zokasczg +gdpurstk +gifksbue +cdxltwqx +ntdwlyyu +klhjcomg +mbpcgqyi +erhbdnlg +bqjirtjb +bvpnukag +rxpjkrob +uoasbjrz +wwatmyfh +tmmjvjvw +gifksbue +elmvmqfx +lklsancl +wmrryjbh +klhjcomg +sumgousm +uqsvrodw +bqjirtjb +nvgkafec +pslumxli +rijwsqio +rqludekg +slfuffmf +qtyafvix +fgshzlkz +modgjwsr +hdbfrnha +klhjcomg +qegytrys +qtyafvix +xjoydjkd +zkrxhkny +cdxltwqx +posryrwj +klhjcomg +zqcetrfj +vzbhuxdb +evaytxev +lbelzpbs +hmpjprva +posryrwj +rblbftch +jqpyomdo +gviqjnka +fatcfvpk +hdbfrnha +fgshzlkz +kvanptal +ebnqbokg +fatcfvpk +ruiquets +uoasbjrz +wrwlwwgs +gjhikwpn +qxpfvmqq +rtledujy +fgshzlkz +clzquaoh +posryrwj +uoasbjrz +kvanptal +ebnqbokg +qrrwjspo +modgjwsr +jllhtiip +rcxcoclf +hvjrkgvn +krwmiegb +qtyafvix +uoasbjrz +gribnjjy +ebnqbokg +lsijbdpo +wwatmyfh +fjffynzj +hpzlpxzg +klhjcomg +aktfqryi +klhjcomg +qxpfvmqq +gribnjjy +modgjwsr +nxknvpfz +stkfzrxm +adydcnwt +aylkedwc +inbikasp +canuyblm +xzdhqifz +cxoftctg +vzbhuxdb +bnqqgrlp +fswersgr +vrjiljsq +oarfqwxd +snfnnaow +tmmjvjvw +rqludekg +ocfnlnyk +pqxekaan +hpuguqca +uoasbjrz +lvpfctfp +gribnjjy +snfnnaow +modgjwsr +zjfehspd +nptbmfae +gjhikwpn +krwmiegb +ebheqjpk +hlfnhahj +hnpikhxo +modgjwsr +gifksbue +qaoatkzw +qrrwjspo +lvpfctfp +emvfrril +zusfguab +lvpfctfp +nuqwzjqi +gifksbue +osegqybm +qegytrys +dyslcyus +uoasbjrz +uoasbjrz +hnpikhxo +dyslcyus +aylkedwc +ghvjpnkn +litrmtxc +canuyblm +qrrwjspo +emvfrril +snfnnaow +sakueadt +fmaafgvi +irohhwfg +xjoydjkd +xpncwfyz +qrrwjspo +uoasbjrz +snfnnaow +cxzsyfuo +irohhwfg +wrwlwwgs +dqxddeox +zkrxhkny +litrmtxc +uoasbjrz +dqxddeox +rblbftch +ebnqbokg +snfnnaow +gribnjjy +uoasbjrz +gjrnpmcc +wmrryjbh +mbpcgqyi +sbvqorso +hcnggcmw +jllhtiip +erhbdnlg +qegytrys +qrrwjspo +xzdhqifz +zjfehspd +tcuxhxaz +dqxddeox +fwrqxmxw +gifksbue +qegytrys +scvfioku +scvfioku +wrwlwwgs +fjffynzj +jllhtiip +cxorzqix +sakueadt +jllhtiip +erhbdnlg +fgshzlkz +bvggwzqp +egdyjbri +ebnqbokg +uoasbjrz +rcxcoclf +evaytxev +lkwpaiik +gribnjjy +xpncwfyz +klhjcomg +zokasczg +bqjirtjb +ocfnlnyk +scvfioku +bnqqgrlp +canuyblm +fcctcaro +gdpurstk +zokasczg +hvjrkgvn +zryqedcy +rqludekg +gribnjjy +mxzsltag +bgsrnutc +bvggwzqp +jqpyomdo +rpwecdml +adydcnwt +lklsancl +yhjoghiv +rqludekg +onjszcec +ajtczmtc +snfnnaow +ghvjpnkn +qyalrqha +bqekebug +fcctcaro +opbtajsx +rblbftch +cxoftctg +kqznhktp +yaqvpcri +vzbhuxdb +litrmtxc +hvjrkgvn +sxmtlzlw +modgjwsr +aktfqryi +uoasbjrz +adydcnwt +aylkedwc +uoasbjrz +aybiktvj +posryrwj +xntjdryl +twtxssyg +czsayrkz +ifdqnine +adydcnwt +rblbftch +rodlhbtu +pjkouayb +qegytrys +hfjbohcn +onjszcec +klhjcomg +qegytrys +hmpjprva +rxpjkrob +nfkgpovg +onjszcec +kqznhktp +ifdqnine +dibzffyd +canuyblm +gribnjjy +bqekebug +xqfvyctk +faxbpnva +fgshzlkz +jllhtiip +xntjdryl +zqcetrfj +fpzxralq +qegytrys +irdnmbpc +kqznhktp +rpwoeola +uqsvrodw +bqjirtjb +hpuoygat +ntdwlyyu +ixmclekj +wrwlwwgs +pjkouayb +evaytxev +modgjwsr +uoasbjrz +onjszcec +hfjbohcn +ocfnlnyk +rodlhbtu +qxpfvmqq +pqxekaan +rqgdglno +cdxltwqx +canuyblm +fgshzlkz +ikutiphu +uoasbjrz +adydcnwt +syvktodv +erhbdnlg +vzbhuxdb +rodlhbtu +mbpcgqyi +sumgousm +faxbpnva +qtyafvix +uoasbjrz +fgshzlkz +bvggwzqp +rpwecdml +xpncwfyz +dklpprvj +gribnjjy +dibzffyd +lmzuxenv +oarfqwxd +bvggwzqp +onjszcec +zokasczg +vldohfjo +xntjdryl +qtyafvix +litrmtxc +fcctcaro +irdnmbpc +rcxcoclf +canuyblm +twtxssyg +ahpqjvoy +qegytrys +modgjwsr +wmrryjbh +xjoydjkd +inbikasp +snfnnaow +lkwpaiik +qaoatkzw +oarfqwxd +ajtczmtc +lbelzpbs +lmzuxenv +rqgdglno +ghvjpnkn +hsbfrqwc +rqludekg +wwatmyfh +knqqumtg +rcxcoclf +ebnqbokg +tdfpaezp +gkqprfoc +xjoydjkd +posryrwj +qtyafvix +bvggwzqp +canuyblm +canuyblm +rodlhbtu +bvpnukag +wcnhypxx +scvfioku +nuqwzjqi +gifksbue +tmmjvjvw +snfnnaow +uoasbjrz +mbpcgqyi +mxzsltag +qegytrys +rpwoeola +inbikasp +lvpfctfp +qegytrys +hlfnhahj +cdxltwqx +gifksbue +tmmjvjvw +rcxcoclf +cdxltwqx +cdxltwqx +qegytrys +stkfzrxm +xpncwfyz +sxmtlzlw +grxldlyk +nfkgpovg +wwatmyfh +canuyblm +qegytrys +snfnnaow +gdpurstk +gkqprfoc +fcctcaro +lbelzpbs +faxbpnva +icjgrrej +gribnjjy +mbpcgqyi +stkfzrxm +wwatmyfh +nvgiglpg +dyslcyus +bvggwzqp +rblbftch +uoasbjrz +elmvmqfx +canuyblm +evaytxev +sumgousm +modgjwsr +bqekebug +pqxekaan +modgjwsr +rcxcoclf +canuyblm +bvggwzqp +ghvjpnkn +gkqprfoc +zqcetrfj +bqekebug +yhjoghiv +czsayrkz +mxzsltag +qegytrys +wrwlwwgs +irdnmbpc +jllhtiip +qyalrqha +twtxssyg +kqznhktp +stkfzrxm +syvktodv +sumgousm +wwatmyfh +wwatmyfh +krwmiegb +jemonchd +hpuoygat +fswersgr +elmvmqfx +canuyblm +jllhtiip +onjszcec +krwmiegb +ebnqbokg +ygedcrzi +modgjwsr +grxldlyk +modgjwsr +qyalrqha +vldohfjo +sumgousm +xntjdryl +modgjwsr +gdpurstk +lkwpaiik +rcxcoclf +uoasbjrz +hdbfrnha +posryrwj +grxldlyk +vzbhuxdb +fwrqxmxw +posryrwj +gifksbue +snfnnaow +bpplofjm +gribnjjy +modgjwsr +ocfnlnyk +bnqqgrlp +klhjcomg +krwmiegb +qegytrys +hpuoygat +syvktodv +vldohfjo +modgjwsr +ocfnlnyk +ebnqbokg +qegytrys +ebnqbokg +uoasbjrz +fcctcaro +hmpjprva +gjrnpmcc +oarfqwxd +oarfqwxd +nvgiglpg +mbpcgqyi +hvjrkgvn +qaoatkzw +sghuynub +klhjcomg +fswersgr +hnpikhxo +ifdqnine +snfnnaow +uoasbjrz +pdbdosic +emvfrril +htuvrriy +canuyblm +bpplofjm +canuyblm +hejxlqrt +modgjwsr +ebheqjpk +uqsvrodw +yhjoghiv +wlpbnexn +hcnggcmw +lkwpaiik +uoasbjrz +lsijbdpo +ifdqnine +snfnnaow +gdpurstk +hfjbohcn +fgshzlkz +yaqvpcri +rblbftch +scvfioku +gdpurstk +hvjrkgvn +qeabeirk +nxknvpfz +qegytrys +snfnnaow +ghvjpnkn +wwatmyfh +slfuffmf +canuyblm +fcctcaro +hejxlqrt +slfuffmf +twtxssyg +twtxssyg +uoasbjrz +hnpikhxo +tcuxhxaz +bnqqgrlp +mxzsltag +rblbftch +clzquaoh +slfuffmf +adydcnwt +lmzuxenv +rcxcoclf +wwatmyfh +vzbhuxdb +xzdhqifz +uoasbjrz +zkrxhkny +qtyafvix +rcxcoclf +zkrxhkny +zryqedcy +fatcfvpk +fwrqxmxw +twtxssyg +klhjcomg +jllhtiip +canuyblm +fcctcaro +rodlhbtu +zryqedcy +wwatmyfh +dhmytfyl +modgjwsr +klhjcomg +canuyblm +jllhtiip +lvpfctfp +uoasbjrz +krwmiegb +krwmiegb +rodlhbtu +bqekebug +bqjirtjb +rodlhbtu +irdnmbpc +krwmiegb +litrmtxc +ebnqbokg +rodlhbtu +aktfqryi +kndcdnkp +nxknvpfz +posryrwj +aybiktvj +wwatmyfh +opbtajsx +qyalrqha +jllhtiip +twtxssyg +uoasbjrz +nptbmfae +hmpjprva +erhbdnlg +bnqqgrlp +dqxddeox +yhppippt +utqcywou +pqxekaan +uoasbjrz +bnqqgrlp +rblbftch +uoasbjrz +elmvmqfx +xlrcyrio +stfwtrsa +uoasbjrz +rcxcoclf +gsmutwgq +nvgiglpg +uqsvrodw +fpzxralq +canuyblm +rcxcoclf +aylkedwc +twtxssyg +ybgaiwqm +sumgousm +aylkedwc +nvgiglpg +twtxssyg +wqpfwzbj +adydcnwt +gjrnpmcc +zkrxhkny +oarfqwxd +mbpcgqyi +rqgdglno +canuyblm +hnpikhxo +qtyafvix +hmpjprva +zjfehspd +pgtznfnf +opbtajsx +tcuxhxaz +lsijbdpo +lkwpaiik +mbpcgqyi +hmpjprva +nvgiglpg +grxldlyk +czsayrkz +klhjcomg +twtxssyg +jqpyomdo +slfuffmf +scvfioku +twtxssyg +modgjwsr +fatcfvpk +emvfrril +ocfnlnyk +hlfnhahj +rodlhbtu +xqfvyctk +hmpjprva +qrrwjspo +rblbftch +bvggwzqp +ssrktoar +ajtczmtc +lrjysmbk +nvgiglpg +llwmrzjl +fpzxralq +pgtznfnf +hdbfrnha +barlvanl +cxorzqix +hsbfrqwc +gribnjjy +faxbpnva +cbutcdlm +gjrnpmcc +bvggwzqp +bnqqgrlp +qegytrys +bgsrnutc +snfnnaow +canuyblm +gifksbue +adydcnwt +gifksbue +cdxltwqx +gjrnpmcc +uoasbjrz +hsbfrqwc +canuyblm +opbtajsx +twtxssyg +fgshzlkz +icjgrrej +vzbhuxdb +sumgousm +ikutiphu +kqznhktp +uoasbjrz +nuqwzjqi +cdxltwqx +qegytrys +hpuguqca +rodlhbtu +krwmiegb +kuipdodd +snfnnaow +mbpcgqyi +scvfioku +tmmjvjvw +hfjbohcn +rqludekg +barlvanl +gviqjnka +klhjcomg +hcnggcmw +qtyafvix +qxpfvmqq +ebnqbokg +umlwokvi +lbelzpbs +ybgaiwqm +bvggwzqp +bvggwzqp +fgshzlkz +stkfzrxm +uyzkiyny +rcxcoclf +qtyafvix +modgjwsr +modgjwsr +slfuffmf +snfnnaow +grxldlyk +faxbpnva +xntjdryl +lkwpaiik +qtyafvix +snfnnaow +mbpcgqyi +fjffynzj +fjffynzj +mxzsltag +snfnnaow +nptbmfae +evaytxev +krwmiegb +jllhtiip +bpplofjm +gjrnpmcc +lbelzpbs +jllhtiip +bnqqgrlp +xpncwfyz +qtyafvix +ewtkqwqc +lmzuxenv +lvpfctfp +bvpnukag +rblbftch +stkfzrxm +evaytxev +gifksbue +rcxcoclf +yhjoghiv +gifksbue +verttiuu +uoasbjrz +uoasbjrz +utqcywou +qrrwjspo +scvfioku +zryqedcy +mbpcgqyi +syvktodv +uoasbjrz +mbpcgqyi +lmzuxenv +modgjwsr +fatcfvpk +klhjcomg +vzbhuxdb +qtyafvix +zryqedcy +bnqqgrlp +canuyblm +uyzkiyny +xpncwfyz +bqjirtjb +lbelzpbs +gribnjjy +qaoatkzw +oarfqwxd +tdfpaezp +rblbftch +uyzkiyny +vldohfjo +lrjysmbk +wwatmyfh +nvgiglpg +onjszcec +fgshzlkz +lvpfctfp +tmmjvjvw +gjrnpmcc +mbpcgqyi +umlwokvi +wtnecrbu +canuyblm +ocfnlnyk +lkwpaiik +uoasbjrz +elmvmqfx +nvgiglpg +rcxcoclf +nvgiglpg +ebnqbokg +hvjrkgvn +bgsrnutc +nvgkafec +nvgiglpg +xpncwfyz +ntdwlyyu +rodlhbtu +rodlhbtu +ahpqjvoy +umlwokvi +tcuxhxaz +hmpjprva +syvktodv +wrwlwwgs +xzdhqifz +gviqjnka +nvgiglpg +ifdqnine +fgshzlkz +lkwpaiik +hvjrkgvn +qrrwjspo +uyzkiyny +jllhtiip +ocfnlnyk +uoasbjrz +yhppippt +modgjwsr +fswersgr +hlfnhahj +wmrryjbh +cxzsyfuo +gkqprfoc +ghvjpnkn +hmpjprva +lkwpaiik +bnqqgrlp +tmmjvjvw +pjkouayb +nfkgpovg +lbelzpbs +rcxcoclf +uoasbjrz +twtxssyg +lsijbdpo +modgjwsr +fjffynzj +gdqunmio +irdnmbpc +zryqedcy +gribnjjy +posryrwj +gkqprfoc +hvjrkgvn +wrwlwwgs +elmvmqfx +stnxvfgm +krwmiegb +bnqqgrlp +xpncwfyz +jqpyomdo +xjoydjkd +jllhtiip +kqznhktp +bvggwzqp +veourctx +xntjdryl +elmvmqfx +snfnnaow +ikutiphu +bqjirtjb +rqludekg +ntdwlyyu +scvfioku +posryrwj +posryrwj +fatcfvpk +sxmtlzlw +bnqqgrlp +ivxoaqvg +hpuguqca +ybgaiwqm +hdbfrnha +lmzuxenv +ebnqbokg +cxzsyfuo +inbikasp +scvfioku +rqludekg +lsijbdpo +lkwpaiik +bvggwzqp +ghvjpnkn +gsmutwgq +aylkedwc +jqpyomdo +bvpnukag +snfnnaow +lkwpaiik +irdnmbpc +stkfzrxm +gjhikwpn +mbpcgqyi +hcnggcmw +krwmiegb +gribnjjy +pgtznfnf +gsmutwgq +clzquaoh +zkrxhkny +rcxcoclf +hpuoygat +irohhwfg +mbpcgqyi +wrwlwwgs +cxorzqix +bqekebug +gifksbue +vzbhuxdb +ygedcrzi +xzdhqifz +barlvanl +stfwtrsa +nfkgpovg +nfkgpovg +uqsvrodw +qyalrqha +posryrwj +lvpfctfp +lklsancl +qyalrqha +twtxssyg +nvgkafec +kvanptal +umlwokvi +rpwecdml +qegytrys +bgsrnutc +qxpfvmqq +ntdwlyyu +rcxcoclf +lbelzpbs +wwatmyfh +sbvqorso +xqfvyctk +fjffynzj +fgshzlkz +faxbpnva +pjkouayb +zkrxhkny +gdpurstk +clzquaoh +modgjwsr +sxmtlzlw +xqfvyctk +gdqunmio +bqekebug +gjhikwpn +rcxcoclf +canuyblm +litrmtxc +hfjbohcn +cbutcdlm +hpzlpxzg +qxpfvmqq +hejxlqrt +xpncwfyz +qrrwjspo +pgtznfnf +fgshzlkz +oarfqwxd +uoasbjrz +xzdhqifz +lvpfctfp +hejxlqrt +kvanptal +jllhtiip +ebheqjpk +elmvmqfx +fatcfvpk +opbtajsx +xjoydjkd +pjkouayb +onjszcec +clzquaoh +qtyafvix +gjrnpmcc +qtyafvix +clzquaoh +qtyafvix +kndcdnkp +hdbfrnha +umlwokvi +qegytrys +nvgiglpg +sumgousm +cdxltwqx +uoasbjrz +knqqumtg +rxpjkrob +lmzuxenv +hsbfrqwc +qrrwjspo +mbpcgqyi +rcxcoclf +vrjiljsq +fmaafgvi +sghuynub +bqekebug +nnshafed +bvpnukag +qeabeirk +gifksbue +fgshzlkz +tmmjvjvw +hnpikhxo +fgshzlkz +bnqqgrlp +stkfzrxm +gdpurstk +onjszcec +ghvjpnkn +vrjiljsq +bqekebug +fgshzlkz +nvgiglpg +ebnqbokg +onjszcec +gjrnpmcc +uoasbjrz +gifksbue +wwatmyfh +dqxddeox +fcctcaro +mxzsltag +aybiktvj +snfnnaow +pqxekaan +umlwokvi +emvfrril +jemonchd +barlvanl +lmzuxenv +mzwexwte +qegytrys +aylkedwc +modgjwsr +vzbhuxdb +hnpikhxo +fgshzlkz +bqekebug +hfjbohcn +scvfioku +xpncwfyz +utqcywou +syvktodv +hvjrkgvn +bpplofjm +fatcfvpk +qtyafvix +qyalrqha +gdpurstk +nxknvpfz +uoasbjrz +cxorzqix +ebnqbokg +bqjirtjb +zkrxhkny +gdpurstk +bnqqgrlp +hnpikhxo +posryrwj +slfuffmf +uoasbjrz +hpuoygat +ivxoaqvg +irohhwfg +vzbhuxdb +rblbftch +rblbftch +hpzlpxzg +slfuffmf +posryrwj +wwatmyfh +tmmjvjvw +faxbpnva +qegytrys +krwmiegb +mxzsltag +nptbmfae +snfnnaow +nvgiglpg +bnqqgrlp +fcctcaro +sumgousm +zokasczg +canuyblm +jllhtiip +zryqedcy +zokasczg +nfkgpovg +qxpfvmqq +lklsancl +fgshzlkz +sxmtlzlw +syvktodv +verttiuu +kavwcfmu +tdfpaezp +gribnjjy +gviqjnka +posryrwj +wlpbnexn +qtyafvix +nvgiglpg +lbelzpbs +sxmtlzlw +hfjbohcn +uyzkiyny +aylkedwc +vldohfjo +hmpjprva +bnqqgrlp +vldohfjo +qegytrys +gdqunmio +qaoatkzw +gjrnpmcc +snfnnaow +vldohfjo +xntjdryl +hnpikhxo +mbpcgqyi +stnxvfgm +gjrnpmcc +aylkedwc +cdxltwqx +uoasbjrz +qegytrys +kndcdnkp +uoasbjrz +sjyqvgwo +bgsrnutc +lmzuxenv +wrwlwwgs +fcctcaro +kvanptal +qrrwjspo +erhbdnlg +oarfqwxd +ahpqjvoy +lmzuxenv +qxpfvmqq +mbpcgqyi +lvpfctfp +qeabeirk +fswersgr +nvgiglpg +fgshzlkz +krwmiegb +vzbhuxdb +gdpurstk +lvpfctfp +krwmiegb +lmzuxenv +bqekebug +uoasbjrz +egrqonlm +lmzuxenv +lmzuxenv +qxpfvmqq +posryrwj +yaqvpcri +xpncwfyz +komsctkv +hfjbohcn +vrjiljsq +grxldlyk +gjrnpmcc +bnqqgrlp +hsbfrqwc +bpplofjm +clzquaoh +gifksbue +rodlhbtu +xpncwfyz +evaytxev +ikutiphu +opbtajsx +uoasbjrz +canuyblm +qegytrys +hnpikhxo +jqpyomdo +klhjcomg +canuyblm +canuyblm +xqfvyctk +hejxlqrt +qegytrys +uqsvrodw +irohhwfg +qegytrys +bnqqgrlp +jqpyomdo +fcctcaro +vzbhuxdb +ifdqnine +fswersgr +cdxltwqx +jllhtiip +bnqqgrlp +stkfzrxm +lmzuxenv +bqekebug +ifdqnine +uoasbjrz +ewtkqwqc +modgjwsr +nvgiglpg +lkwpaiik +hejxlqrt +qrrwjspo +clzquaoh +tcuxhxaz +kavwcfmu +ocfnlnyk +grxldlyk +twtxssyg +modgjwsr +gifksbue +uoasbjrz +onjszcec +sghuynub +gifksbue +cxorzqix +hfjbohcn +rijwsqio +ikutiphu +twtxssyg +ebheqjpk +litrmtxc +ifdqnine +hsbfrqwc +uoasbjrz +bqjirtjb +faxbpnva +rblbftch +xlrcyrio +tmmjvjvw +gifksbue +yaqvpcri +snfnnaow +fatcfvpk +bvggwzqp +xzdhqifz +inbikasp +xntjdryl +qtyafvix +lvpfctfp +wlpbnexn +qegytrys +llwmrzjl +krwmiegb +ruiquets +ewtkqwqc +ebnqbokg +slfuffmf +rtledujy +bpplofjm +kqznhktp +czsayrkz +hsbfrqwc +mbpcgqyi +hejxlqrt +zkrxhkny +pdbdosic +ajtczmtc +rcxcoclf +nptbmfae +yhppippt +rcxcoclf +szhtpjyv +ssrktoar +qegytrys +canuyblm +cdxltwqx +posryrwj +rxpjkrob +qaoatkzw +rblbftch +bvggwzqp +barlvanl +gribnjjy +gkqprfoc +uoasbjrz +rodlhbtu +gjrnpmcc +qxpfvmqq +rodlhbtu +xqfvyctk +wrwlwwgs +xjoydjkd +qegytrys +cxzsyfuo +ocfnlnyk +lvpfctfp +rcxcoclf +kvanptal +syvktodv +lklsancl +bnqqgrlp +jllhtiip +yhppippt +rqludekg +aylkedwc +hcnggcmw +cbutcdlm +hpuoygat +qegytrys +irdnmbpc +uoasbjrz +lmzuxenv +lkwpaiik +rodlhbtu +gviqjnka +stfwtrsa +rblbftch +elmvmqfx +fatcfvpk +bpplofjm +gifksbue +gjrnpmcc +tmmjvjvw +qxpfvmqq +bvpnukag +krwmiegb +cdxltwqx +hsbfrqwc +twtxssyg +uyzkiyny +qegytrys +hdbfrnha +grxldlyk +gdpurstk +nuqwzjqi +rblbftch +ebnqbokg +xqfvyctk +ulesdghl +tmmjvjvw +gjhikwpn +ifdqnine +slfuffmf +snfnnaow +hmpjprva +ebnqbokg +sjyqvgwo +rblbftch +grxldlyk +gifksbue +egrqonlm +bsvflmhn +stnxvfgm +gifksbue +krwmiegb +lkwpaiik +hmpjprva +rqludekg +aktfqryi +qeabeirk +qtyafvix +snfnnaow +gribnjjy +stkfzrxm +fjffynzj +ivxoaqvg +canuyblm +pdbdosic +dibzffyd +slfuffmf +egrqonlm +kvanptal +hmpjprva +pgtznfnf +pqxekaan +vrjiljsq +bpplofjm +tcuxhxaz +qegytrys +mbpcgqyi +bnqqgrlp +nfkgpovg +fatcfvpk +vzbhuxdb +vldohfjo +qrrwjspo +clzquaoh +nvgiglpg +slfuffmf +canuyblm +rijwsqio +lbelzpbs +gdpurstk +ixmclekj +gifksbue +bpplofjm +elmvmqfx +fgshzlkz +syvktodv +posryrwj +ebnqbokg +lmzuxenv +hnpikhxo +nvgiglpg +klhjcomg +sxmtlzlw +ifdqnine +wrwlwwgs +fgshzlkz +ikutiphu +gjrnpmcc +modgjwsr +vldohfjo +rodlhbtu +wwatmyfh +onjszcec +pgtznfnf +inbikasp +inbikasp +wrwlwwgs +wcnhypxx +kqznhktp +hsbfrqwc +bqekebug +emvfrril +tmmjvjvw +vzbhuxdb +hejxlqrt +bvggwzqp +wrwlwwgs +posryrwj +wtnecrbu +tcuxhxaz +rqludekg +dqxddeox +canuyblm +nxknvpfz +wwatmyfh +canuyblm +ocfnlnyk +mbpcgqyi +tcuxhxaz +twtxssyg +xjoydjkd +nnshafed +hejxlqrt +canuyblm +pqxekaan +gviqjnka +fmaafgvi +lvpfctfp +lmzuxenv +nptbmfae +bnqqgrlp +sjyqvgwo +rblbftch +xjoydjkd +qegytrys +rcxcoclf +qaoatkzw +yhppippt +snfnnaow +rxpjkrob +fgshzlkz +modgjwsr +modgjwsr +xntjdryl +syvktodv +snfnnaow +rcxcoclf +lmzuxenv +ebnqbokg +posryrwj +jllhtiip +qyalrqha +fswersgr +wwatmyfh +twtxssyg +gribnjjy +nnshafed +rodlhbtu +mbpcgqyi +bnqqgrlp +rqludekg +pslumxli +sbvqorso +jllhtiip +gviqjnka +hsbfrqwc +llwmrzjl +zqcetrfj +bnqqgrlp +grxldlyk +irdnmbpc +qeabeirk +fjffynzj +xntjdryl +fgshzlkz +bvpnukag +gribnjjy +gdpurstk +ebnqbokg +kndcdnkp +erhbdnlg +rodlhbtu +szhtpjyv +rcxcoclf +qrrwjspo +zqcetrfj +uoasbjrz +uoasbjrz +qegytrys +posryrwj +rxpjkrob +barlvanl +aybiktvj +twtxssyg +gsmutwgq +twtxssyg +qxpfvmqq +tmmjvjvw +xzdhqifz +qegytrys +rblbftch +canuyblm +fatcfvpk +lkwpaiik +posryrwj +dqxddeox +canuyblm +erhbdnlg +dqxddeox +opbtajsx +aktfqryi +qyalrqha +rcxcoclf +snfnnaow +uoasbjrz +onjszcec +rpwoeola +xjoydjkd +erhbdnlg +pjkouayb +lvpfctfp +gsmutwgq +stnxvfgm +bvggwzqp +twtxssyg +wrwlwwgs +rxpjkrob +lmzuxenv +rxpjkrob +uwkawwfh +ebnqbokg +lmzuxenv +mbpcgqyi +modgjwsr +xzdhqifz +htuvrriy +krwmiegb +canuyblm +rblbftch +vzbhuxdb +vzbhuxdb +qaoatkzw +wwatmyfh +nvgiglpg +snfnnaow +jllhtiip +ikutiphu +hcnggcmw +snfnnaow +lklsancl +hnpikhxo +fmaafgvi +ebnqbokg +bqjirtjb +hpuoygat +aysirskl +ifdqnine +krwmiegb +aylkedwc +mbpcgqyi +hlfnhahj +nvgiglpg +sxmtlzlw +scvfioku +emvfrril +bvggwzqp +modgjwsr +uoasbjrz +canuyblm +amhehfow +bvpnukag +fgshzlkz +tcuxhxaz +knqqumtg +gjrnpmcc +rqludekg +zqcetrfj +tcuxhxaz +hfjbohcn +jllhtiip +snfnnaow +vzbhuxdb +hmpjprva +ifdqnine +elmvmqfx +clzquaoh +uoasbjrz +yhppippt +wmrryjbh +nvgiglpg +klhjcomg +zokasczg +fgshzlkz +lvpfctfp +rcxcoclf +gjhikwpn +onjszcec +rodlhbtu +bnqqgrlp +fgshzlkz +modgjwsr +ifdqnine +kqznhktp +bgsrnutc +fgshzlkz +gdpurstk +bqjirtjb +wwatmyfh +wwatmyfh +llwmrzjl +xntjdryl +clzquaoh +vzbhuxdb +bqekebug +snfnnaow +zkrxhkny +hvjrkgvn +kvanptal +rqgdglno +modgjwsr +uwkawwfh +rblbftch +hmpjprva +uoasbjrz +wwatmyfh +ajtczmtc +lmzuxenv +tmmjvjvw +gdpurstk +cxoftctg +xqfvyctk +zokasczg +oarfqwxd +kvanptal +hcnggcmw +dqxddeox +rblbftch +elmvmqfx +xzdhqifz +nvgiglpg +wrwlwwgs +hpzlpxzg +hlfnhahj +hpuoygat +jemonchd +clzquaoh +onjszcec +uqsvrodw +gdpurstk +mbpcgqyi +hejxlqrt +stnxvfgm +rijwsqio +uoasbjrz +uyzkiyny +nnshafed +stnxvfgm +uqsvrodw +xjoydjkd +bvggwzqp +gribnjjy +bnqqgrlp +ajtczmtc +cdxltwqx +sbvqorso +gjrnpmcc +uoasbjrz +sxmtlzlw +nvgiglpg +yaqvpcri +hnpikhxo +rodlhbtu +jqpyomdo +uoasbjrz +dqxddeox +qxpfvmqq +kqznhktp +fjffynzj +uoasbjrz +uyzkiyny +pgtznfnf +ntdwlyyu +ziyvyejl +hmpjprva +kqznhktp +rblbftch +lbelzpbs +qtyafvix +rqludekg +syvktodv +posryrwj +hlfnhahj +wwatmyfh +xjoydjkd +kndcdnkp +modgjwsr +dqxddeox +hmpjprva +szhtpjyv +gifksbue +rodlhbtu +lkwpaiik +snfnnaow +qtyafvix +bnqqgrlp +uoasbjrz +rcxcoclf +rblbftch +ifdqnine +tmmjvjvw +nuqwzjqi +qrrwjspo +stkfzrxm +rcxcoclf +zjfehspd +rpwoeola +utqcywou +rblbftch +ixmclekj +lkwpaiik +bqjirtjb +snfnnaow +qxpfvmqq +pqxekaan +vldohfjo +yaqvpcri +oarfqwxd +cxzsyfuo +jllhtiip +fswersgr +hpuoygat +rpwoeola +scvfioku +rodlhbtu +cdxltwqx +uoasbjrz +uoasbjrz +elmvmqfx +bvpnukag +lkwpaiik +bpplofjm +fmaafgvi +gjrnpmcc +ixmclekj +rodlhbtu +fgshzlkz +uoasbjrz +yhppippt +htuvrriy +rijwsqio +qxpfvmqq +xzdhqifz +bvpnukag +twtxssyg +tcuxhxaz +hfjbohcn +zokasczg +rpwoeola +hpzlpxzg +qegytrys +hejxlqrt +hnpikhxo +htuvrriy +rcxcoclf +onjszcec +clzquaoh +aylkedwc +wwatmyfh +grxldlyk +vzbhuxdb +lbelzpbs +klhjcomg +qegytrys +twtxssyg +cxorzqix +erhbdnlg +yaqvpcri +opbtajsx +qrrwjspo +tmmjvjvw +rblbftch +qegytrys +hmpjprva +xntjdryl +uoasbjrz +pslumxli +gdpurstk +modgjwsr +nptbmfae +fgshzlkz +sbvqorso +mxzsltag +fcctcaro +rqludekg +kndcdnkp +qegytrys +slfuffmf +nxknvpfz +ifdqnine +canuyblm +wrwlwwgs +rblbftch +canuyblm +zokasczg +aylkedwc +lklsancl +slfuffmf +lkwpaiik +bsvflmhn +litrmtxc +bvggwzqp +elmvmqfx +sumgousm +rodlhbtu +clzquaoh +oarfqwxd +inbikasp +modgjwsr +gdpurstk +hmpjprva +jllhtiip +sghuynub +snfnnaow +gdpurstk +modgjwsr +rcxcoclf +fatcfvpk +fatcfvpk +xpncwfyz +snfnnaow +uqsvrodw +knqqumtg +jqpyomdo +ebnqbokg +xntjdryl +onjszcec +tmmjvjvw +hnpikhxo +rodlhbtu +pdbdosic +ghvjpnkn +posryrwj +cbutcdlm +aybiktvj +uoasbjrz +yaqvpcri +cbutcdlm +snfnnaow +uoasbjrz +rblbftch +vrjiljsq +ghvjpnkn +gribnjjy +tcuxhxaz +xntjdryl +rijwsqio +stnxvfgm +qegytrys +nuqwzjqi +emvfrril +uoasbjrz +fgshzlkz +vzbhuxdb +icjgrrej +lkwpaiik +bvggwzqp +bqekebug +veourctx +elmvmqfx +lkwpaiik +lkwpaiik +rblbftch +vzbhuxdb +nvgiglpg +sxmtlzlw +uoasbjrz +bvggwzqp +wwatmyfh +pdbdosic +slfuffmf +jqpyomdo +fcctcaro +gribnjjy +bqekebug +ziyvyejl +rodlhbtu +qegytrys +qyalrqha +qrrwjspo +nvgiglpg +fjffynzj +fjffynzj +fpzxralq +nvgkafec +gribnjjy +pkonquix +ybgaiwqm +uoasbjrz +canuyblm +litrmtxc +vzbhuxdb +tmmjvjvw +xntjdryl +snfnnaow +uoasbjrz +jllhtiip +hpuoygat +gkqprfoc +ziyvyejl +uoasbjrz +sxmtlzlw +qtyafvix +fjffynzj +mxzsltag +irdnmbpc +nfkgpovg +gdpurstk +ebnqbokg +hejxlqrt +dqxddeox +sxmtlzlw +knqqumtg +ygedcrzi +modgjwsr +emvfrril +bvggwzqp +wlpbnexn +pslumxli +wmrryjbh +ruiquets +nptbmfae +lbelzpbs +jemonchd +rqludekg +nptbmfae +bvggwzqp +wrwlwwgs +tmmjvjvw +cdxltwqx +zjfehspd +szhtpjyv +qaoatkzw +zjfehspd +uoasbjrz +knqqumtg +gdqunmio +hvjrkgvn +hejxlqrt +uoasbjrz +cdxltwqx +xntjdryl +lsijbdpo +litrmtxc +ntdwlyyu +qtyafvix +tmmjvjvw +uoasbjrz +hmpjprva +vzbhuxdb +xpncwfyz +gviqjnka +nvgiglpg +cbutcdlm +grxldlyk +hcnggcmw +lkwpaiik +jllhtiip +hpuoygat +dqxddeox +aybiktvj +kndcdnkp +ixmclekj +fgshzlkz +fatcfvpk +hvjrkgvn +hmpjprva +jllhtiip +bvggwzqp +bvggwzqp +fatcfvpk +krwmiegb +canuyblm +krwmiegb +vzbhuxdb +ifdqnine +vldohfjo +cxorzqix +gjrnpmcc +nxknvpfz +dqxddeox +uoasbjrz +kndcdnkp +hmpjprva +nvgkafec +aysirskl +stfwtrsa +mbpcgqyi +uoasbjrz +bvggwzqp +rcxcoclf +zkrxhkny +wrwlwwgs +mxzsltag +xjoydjkd +fcctcaro +rqludekg +rblbftch +gdpurstk +litrmtxc +tcuxhxaz +ntdwlyyu +rpwecdml +lbelzpbs +hcnggcmw +hmpjprva +bqjirtjb +oarfqwxd +sxmtlzlw +bsvflmhn +zkrxhkny +uoasbjrz +sbvqorso +ebnqbokg +yhppippt +qyalrqha +ewtkqwqc +fswersgr +xpncwfyz +nvgiglpg +snfnnaow +gifksbue +rodlhbtu +rcxcoclf +bnqqgrlp +opbtajsx +uoasbjrz +fmaafgvi +rpwoeola +nvgiglpg +modgjwsr +opbtajsx +uoasbjrz +elmvmqfx +fatcfvpk +rodlhbtu +ifdqnine +uoasbjrz +irohhwfg +dklpprvj +ikutiphu +xzdhqifz +elmvmqfx +sbvqorso +syvktodv +hnpikhxo +xpncwfyz +fmaafgvi +posryrwj +nvgiglpg +fgshzlkz +bqjirtjb +bqekebug +ajtczmtc +gkqprfoc +gdqunmio +ebnqbokg +hpuoygat +tmmjvjvw +uoasbjrz +qyalrqha +hmpjprva +rqludekg +grxldlyk +hpuoygat +aybiktvj +zokasczg +canuyblm +fwrqxmxw +xzdhqifz +sbvqorso +hvjrkgvn +bvggwzqp +hpuoygat +rxpjkrob +zusfguab +kqznhktp +ghvjpnkn +tcuxhxaz +ebnqbokg +ssrktoar +qtyafvix +umlwokvi +utqcywou +gribnjjy +cxorzqix +vrjiljsq +emvfrril +adydcnwt +hnpikhxo +emvfrril +slfuffmf +clzquaoh +tmmjvjvw +gribnjjy +uoasbjrz +hpuoygat +twtxssyg +fgshzlkz +hsbfrqwc +pslumxli +hmpjprva +gviqjnka +nvgiglpg +bsvflmhn +ruiquets +lklsancl +hnpikhxo +zkrxhkny +lsijbdpo +aylkedwc +canuyblm +canuyblm +wwatmyfh +zqcetrfj +gifksbue +snfnnaow +clzquaoh +gjhikwpn +egdyjbri +modgjwsr +uoasbjrz +sumgousm +xzdhqifz +vzbhuxdb +emvfrril +klhjcomg +twtxssyg +hvjrkgvn +zokasczg +jllhtiip +hnpikhxo +bnqqgrlp +umlwokvi +lmzuxenv +rodlhbtu +lklsancl +uoasbjrz +hsbfrqwc +snfnnaow +vrjiljsq +elmvmqfx +nvgiglpg +fcctcaro +nxknvpfz +adydcnwt +vzbhuxdb +uoasbjrz +fswersgr +krwmiegb +lmzuxenv +mzwexwte +snfnnaow +kvanptal +nvgiglpg +modgjwsr +tcuxhxaz +yhjoghiv +gdpurstk +rpwoeola +lsijbdpo +nnshafed +canuyblm +aybiktvj +pgtznfnf +lbelzpbs +gjrnpmcc +hfjbohcn +tmmjvjvw +twtxssyg +aylkedwc +uoasbjrz +szhtpjyv +erhbdnlg +uoasbjrz +nvgiglpg +rblbftch +mbpcgqyi +qegytrys +hpuoygat +lmzuxenv +osegqybm +sumgousm +wrwlwwgs +ebnqbokg +zusfguab +scvfioku +gribnjjy +wwatmyfh +lbelzpbs +bvggwzqp +hpuoygat +ghvjpnkn +uoasbjrz +bgsrnutc +yhjoghiv +snfnnaow +litrmtxc +aylkedwc +fcctcaro +bqekebug +kvanptal +rodlhbtu +rcxcoclf +vrjiljsq +adydcnwt +hfjbohcn +jllhtiip +oarfqwxd +snfnnaow +xqfvyctk +bnqqgrlp +wtnecrbu +cdxltwqx +rxpjkrob +fcctcaro +uoasbjrz +vzbhuxdb +hnpikhxo +lbelzpbs +ntdwlyyu +erhbdnlg +hmpjprva +ulesdghl +kqznhktp +hmpjprva +rodlhbtu +rblbftch +cdxltwqx +rqgdglno +lvpfctfp +ifdqnine +rpwoeola +fmaafgvi +sumgousm +canuyblm +xntjdryl +lbelzpbs +gdpurstk +xpncwfyz +klhjcomg +aktfqryi +twtxssyg +nptbmfae +ebnqbokg +amhehfow +rblbftch +tmmjvjvw +aylkedwc +inbikasp +bnqqgrlp +lvpfctfp +hpuguqca +ruiquets +fatcfvpk +xqfvyctk +canuyblm +lvpfctfp +qtyafvix +wtnecrbu +mbpcgqyi +hfjbohcn +tmmjvjvw +gdpurstk +llwmrzjl +stfwtrsa +litrmtxc +nvgiglpg +uoasbjrz +lvpfctfp +zryqedcy +xntjdryl +uoasbjrz +szhtpjyv +tcuxhxaz +bvggwzqp +fmaafgvi +emvfrril +qrrwjspo +uoasbjrz +dqxddeox +lvpfctfp +uoasbjrz +evaytxev +jllhtiip +fatcfvpk +wrwlwwgs +barlvanl +zkrxhkny +onjszcec +llwmrzjl +dyslcyus +litrmtxc +gdpurstk +dibzffyd +gribnjjy +lkwpaiik +dibzffyd +hmpjprva +kvanptal +rijwsqio +hlfnhahj +krwmiegb +bvggwzqp +wwatmyfh +zusfguab +uoasbjrz +ifdqnine +aylkedwc +tcuxhxaz +kvanptal +onjszcec +ebheqjpk +qegytrys +zkrxhkny +sxmtlzlw +fgshzlkz +twtxssyg +ifdqnine +mbpcgqyi +hvjrkgvn +stnxvfgm +rijwsqio +fgshzlkz +jllhtiip +hmpjprva +faxbpnva +ebnqbokg +jllhtiip +mbpcgqyi +gjrnpmcc +syvktodv +kqznhktp +lmzuxenv +gdpurstk +rblbftch +snfnnaow +gdpurstk +fcctcaro +kuipdodd +ahpqjvoy +rcxcoclf +sumgousm +gviqjnka +uoasbjrz +nptbmfae +tmmjvjvw +kqznhktp +ocfnlnyk +zkrxhkny +bvggwzqp +lvpfctfp +uoasbjrz +inbikasp +cdxltwqx +wrwlwwgs +rodlhbtu +qxpfvmqq +ikutiphu +bqjirtjb +gjrnpmcc +qtyafvix +dqxddeox +fmaafgvi +qegytrys +klhjcomg +qaoatkzw +knqqumtg +fwrqxmxw +qegytrys +aybiktvj +hsbfrqwc +sumgousm +faxbpnva +lkwpaiik +canuyblm +pdbdosic +klhjcomg +xntjdryl +gifksbue +gribnjjy +wwatmyfh +qegytrys +bsvflmhn +rijwsqio +sghuynub +canuyblm +pdbdosic +jllhtiip +utqcywou +xntjdryl +faxbpnva +qrrwjspo +syvktodv +jllhtiip +posryrwj +aylkedwc +mbpcgqyi +jllhtiip +ebnqbokg +ybgaiwqm +szhtpjyv +grxldlyk +gifksbue +kavwcfmu +yhppippt +vrjiljsq +tcuxhxaz +sxmtlzlw +faxbpnva +gifksbue +bpplofjm +fmaafgvi +ivxoaqvg +modgjwsr +fmaafgvi +aybiktvj +aybiktvj +vzbhuxdb +tmmjvjvw +verttiuu +vzbhuxdb +snfnnaow +wwatmyfh +qegytrys +rcxcoclf +hmpjprva +wrwlwwgs +gribnjjy +twtxssyg +htuvrriy +tdfpaezp +snfnnaow +snfnnaow +modgjwsr +jllhtiip +bnqqgrlp +posryrwj +snfnnaow +tmmjvjvw +canuyblm +ifdqnine +twtxssyg +slfuffmf +snfnnaow +hpuoygat +kndcdnkp +nvgiglpg +clzquaoh +rblbftch +bnqqgrlp +dqxddeox +komsctkv +qegytrys +faxbpnva +xzdhqifz +gifksbue +tcuxhxaz +fatcfvpk +osegqybm +uoasbjrz +qaoatkzw +ixmclekj +qtyafvix +mbpcgqyi +fatcfvpk +qrrwjspo +czsayrkz +vzbhuxdb +wwatmyfh +klhjcomg +bvggwzqp +bvggwzqp +sbvqorso +sghuynub +ebheqjpk +hnpikhxo +ebnqbokg +canuyblm +xntjdryl +rijwsqio +rodlhbtu +ifdqnine +xlrcyrio +zkrxhkny +xpncwfyz +klhjcomg +rblbftch +bnqqgrlp +kndcdnkp +kvanptal +vrjiljsq +qxpfvmqq +jllhtiip +posryrwj +kvanptal +bpplofjm +ebnqbokg +nxknvpfz +irohhwfg +modgjwsr +sghuynub +zkrxhkny +qegytrys +stfwtrsa +gviqjnka +slfuffmf +jqpyomdo +bvggwzqp +fmaafgvi +ewtkqwqc +fgshzlkz +rcxcoclf +lbelzpbs +rqludekg +hlfnhahj +lsijbdpo +rpwoeola +wrwlwwgs +zqcetrfj +barlvanl +ulesdghl +wrwlwwgs +vzbhuxdb +bnqqgrlp +rodlhbtu +gifksbue +ebnqbokg +wrwlwwgs +wrwlwwgs +knqqumtg +rijwsqio +vzbhuxdb +jllhtiip +wlpbnexn +gviqjnka +fswersgr +vzbhuxdb +wrwlwwgs +gribnjjy +wlpbnexn +aybiktvj +krwmiegb +canuyblm +lmzuxenv +qyalrqha +verttiuu +nvgiglpg +zusfguab +qegytrys +xntjdryl +mbpcgqyi +rijwsqio +canuyblm +ghvjpnkn +onjszcec +rxpjkrob +bqjirtjb +ebnqbokg +qtyafvix +gviqjnka +uoasbjrz +clzquaoh +mbpcgqyi +zkrxhkny +ybgaiwqm +modgjwsr +qtyafvix +lkwpaiik +rcxcoclf +zusfguab +nptbmfae +pdbdosic +rijwsqio +ygedcrzi +hmpjprva +irohhwfg +gdpurstk +pjkouayb +qtyafvix +posryrwj +bvggwzqp +stkfzrxm +ebnqbokg +qyalrqha +qegytrys +pjkouayb +gdqunmio +hdbfrnha +hsbfrqwc +dhmytfyl +qxpfvmqq +wrwlwwgs +onjszcec +bvggwzqp +barlvanl +hmpjprva +uoasbjrz +aylkedwc +hdbfrnha +bnqqgrlp +hnpikhxo +lkwpaiik +wwatmyfh +uqsvrodw +sxmtlzlw +ybgaiwqm +bgsrnutc +hfjbohcn +ulesdghl +mxzsltag +fswersgr +dqxddeox +scvfioku +modgjwsr +vrjiljsq +rcxcoclf +gifksbue +ebnqbokg +hfjbohcn +wrwlwwgs +hpuoygat +faxbpnva +uoasbjrz +bnqqgrlp +hvjrkgvn +uoasbjrz +twtxssyg +gkqprfoc +qxpfvmqq +modgjwsr +modgjwsr +barlvanl +pdbdosic +aylkedwc +tmmjvjvw +zokasczg +hlfnhahj +ikutiphu +ruiquets +icjgrrej +wrwlwwgs +ocfnlnyk +scvfioku +rodlhbtu +uyzkiyny +hpzlpxzg +clzquaoh +ntdwlyyu +rblbftch +modgjwsr +canuyblm +posryrwj +mbpcgqyi +qtyafvix +rodlhbtu +krwmiegb +fswersgr +ruiquets +xntjdryl +zusfguab +vrjiljsq +wwatmyfh +pgtznfnf +ifdqnine +uoasbjrz +rpwoeola +qtyafvix +xlrcyrio +fgshzlkz +pgtznfnf +irohhwfg +rtledujy +qegytrys +xzdhqifz +vrjiljsq +nvgiglpg +jllhtiip +bsvflmhn +bgsrnutc +sjyqvgwo +oarfqwxd +vzbhuxdb +lmzuxenv +lmzuxenv +cdxltwqx +kqznhktp +qxpfvmqq +vzbhuxdb +gribnjjy +jllhtiip +vzbhuxdb +hnpikhxo +qyalrqha +hlfnhahj +bpplofjm +erhbdnlg +canuyblm +vzbhuxdb +gjhikwpn +fatcfvpk +lvpfctfp +ebheqjpk +hfjbohcn +pgtznfnf +fgshzlkz +rtledujy +bnqqgrlp +vzbhuxdb +xntjdryl +jqpyomdo +wwatmyfh +qeabeirk +pjkouayb +aylkedwc +cxzsyfuo +clzquaoh +qtyafvix +klhjcomg +aybiktvj +dyslcyus +hmpjprva +gdqunmio +ziyvyejl +cbutcdlm +modgjwsr +pslumxli +lbelzpbs +vrjiljsq +lbelzpbs +fatcfvpk +zkrxhkny +bvggwzqp +lkwpaiik +nfkgpovg +fgshzlkz +rqludekg +nvgiglpg +hvjrkgvn +qtyafvix +stnxvfgm +xlrcyrio +modgjwsr +aktfqryi +elmvmqfx +rodlhbtu +rodlhbtu +gdpurstk +pqxekaan +uoasbjrz +kqznhktp +pgtznfnf +veourctx +uoasbjrz +barlvanl +pqxekaan +twtxssyg +yaqvpcri +syvktodv +qeabeirk +htuvrriy +twtxssyg +modgjwsr +ikutiphu +rqludekg +fgshzlkz +bvpnukag +zusfguab +zjfehspd +nfkgpovg +emvfrril +wlpbnexn +zkrxhkny +hfjbohcn +aylkedwc +xlrcyrio +gribnjjy +uoasbjrz +vzbhuxdb +tmmjvjvw +uoasbjrz +zjfehspd +bsvflmhn +gribnjjy +wmrryjbh +modgjwsr +uyzkiyny +bvpnukag +uoasbjrz +vldohfjo +rcxcoclf +nnshafed +snfnnaow +gkqprfoc +bvggwzqp +rcxcoclf +pqxekaan +posryrwj +yhppippt +dqxddeox +klhjcomg +uoasbjrz +irohhwfg +cdxltwqx +cbutcdlm +ocfnlnyk +wrwlwwgs +stkfzrxm +kvanptal +tcuxhxaz +llwmrzjl +fjffynzj +onjszcec +qyalrqha +hpuoygat +ghvjpnkn +jllhtiip +xntjdryl +irohhwfg +vzbhuxdb +aybiktvj +qxpfvmqq +bnqqgrlp +evaytxev +litrmtxc +uqsvrodw +qeabeirk +cdxltwqx +fgshzlkz +dqxddeox +klhjcomg +uoasbjrz +uoasbjrz +qegytrys +xntjdryl +qtyafvix +gifksbue +irdnmbpc +qxpfvmqq +fgshzlkz +qrrwjspo +irdnmbpc +clzquaoh +yaqvpcri +oarfqwxd +hmpjprva +wcnhypxx +zokasczg +snfnnaow +bpplofjm +lbelzpbs +qtyafvix +rqludekg +wrwlwwgs +tmmjvjvw +tdfpaezp +rblbftch +wrwlwwgs +nvgiglpg +hsbfrqwc +tcuxhxaz +nptbmfae +nvgiglpg +zkrxhkny +fgshzlkz +fgshzlkz +cdxltwqx +wwatmyfh +nptbmfae +fjffynzj +gdpurstk +fmaafgvi +czsayrkz +irdnmbpc +xpncwfyz +uoasbjrz +nvgiglpg +mzwexwte +xzdhqifz +canuyblm +fmaafgvi +uoasbjrz +lkwpaiik +gifksbue +snfnnaow +rblbftch +uoasbjrz +qegytrys +fswersgr +cbutcdlm +krwmiegb +modgjwsr +vzbhuxdb +rqludekg +snfnnaow +canuyblm +gkqprfoc +xpncwfyz +bvggwzqp +rcxcoclf +rpwoeola +hpuoygat +ewtkqwqc +twtxssyg +knqqumtg +vzbhuxdb +qegytrys +gifksbue +twtxssyg +slfuffmf +uoasbjrz +rqludekg diff --git a/hod_1/data/numpy_entropy_model_1.txt b/hod_1/data/numpy_entropy_model_1.txt new file mode 100644 index 0000000..a550e0a --- /dev/null +++ b/hod_1/data/numpy_entropy_model_1.txt @@ -0,0 +1,3 @@ +BB 0.4 +A 0.5 +CCC 0.1 diff --git a/hod_1/data/numpy_entropy_model_2.txt b/hod_1/data/numpy_entropy_model_2.txt new file mode 100644 index 0000000..d528544 --- /dev/null +++ b/hod_1/data/numpy_entropy_model_2.txt @@ -0,0 +1,3 @@ +BB 0.4 +A 0.5 +D 0.1 diff --git a/hod_1/data/numpy_entropy_model_3.txt b/hod_1/data/numpy_entropy_model_3.txt new file mode 100644 index 0000000..f81be9a --- /dev/null +++ b/hod_1/data/numpy_entropy_model_3.txt @@ -0,0 +1,100 @@ +ttvhw 0.0094312126288478 +jvgsz 0.0010542688790326 +dppgn 0.00155178394881855 +gsrfj 0.00115959330379828 +gonfc 0.0125594135756661 +taplx 0.0130168483718944 +grjbd 0.0118157969957567 +ezlzh 0.000884396746443509 +etbqm 0.0028883276682822 +hbezl 0.0477149325045959 +izndo 0.0136057551818149 +emvms 0.00348555623538066 +vvbgz 0.011074503885834 +qlvmh 0.0324508321082636 +xmjnf 0.00731021437537367 +mzzkf 0.00587917090038903 +qfdhm 0.0245761056970893 +qwmks 0.00849433418640691 +osehz 0.00337991233869235 +dsgct 0.00303651707035691 +mpubo 0.0133586334433875 +fpnuy 4.5815030263525e-05 +icwiv 0.0104882479671 +usmyd 0.0143965053434422 +tahse 0.00826831006992072 +kpewx 0.00251578239615924 +xtkrt 0.0107339052903878 +iougj 0.0342521998718883 +guhsk 0.0185906728923218 +tykoo 0.0197009412084226 +ehhoq 0.0353696768415327 +vlquz 0.00115966059630282 +wocje 0.0141062590065673 +cpbgj 0.00219079990051944 +ctugy 0.00378729517828768 +aessn 0.000587148370086414 +sqxvv 0.0116458117148786 +rcruz 0.00226519368027114 +bevod 0.00718954957464239 +fufwi 0.0252245678495015 +mkcbp 0.0146700693446102 +fuayx 0.0131555291338195 +gcltr 0.00174610698744372 +esgda 0.00815650534385205 +tajwq 0.00445130730008939 +qcrek 0.00272711711160869 +bulfd 0.00193564926804655 +oyqll 0.00407246240697133 +nfloq 0.00982791783138974 +aiphx 0.00102055661540108 +xiohq 0.000665516553375884 +jnzwv 0.0159815501657243 +ydniv 0.00740460630409081 +zntnp 0.001347520113701 +hpzog 0.00828471646149118 +zpfwu 0.00259323364561152 +fgnfx 0.00281632291480477 +zexjt 0.00460980407970152 +cqjir 0.00449780441058927 +raabk 0.0168867125862489 +pojke 0.000629586226187955 +qhsix 0.0131909362211278 +zxzaj 0.00643340353139025 +dtpqp 0.0306079363057332 +cgkms 0.0142372189818962 +dpuri 0.0183070308798131 +ysuqz 0.0121665423788785 +tcclk 0.0170144702078789 +tqwbr 0.00377004404546414 +izoar 0.0407864649522166 +egbxl 0.000800271672355991 +nsjfo 0.00449051924902884 +rgmnm 0.0506655416330107 +lvynz 0.0159326679515115 +rwlqi 0.000972123481280115 +ypygl 0.00490944226804078 +suddn 0.00796616445877217 +yzgcc 0.000398622353240487 +wtxyq 0.0067836100325681 +huchd 0.00622457548430983 +zhrco 0.00380565517326084 +raffb 0.00216123484164195 +xumnc 1.76957759973509e-05 +peyxt 0.00331881717875047 +keunp 0.00108034331566177 +euofa 0.00273925508171951 +rzacp 0.0412127910997975 +mcktt 0.0122506696757427 +boyoj 0.0123878873436728 +wuidn 0.0109507122517976 +omyfi 0.00125088875317538 +fxwih 0.00289331010631559 +zajpa 0.00207816129029445 +qilpf 0.00757622675637339 +eghhy 0.00147889398768911 +xzxgz 0.0228182364589342 +lfgnw 0.00765022250913878 +wxaxe 0.0118444674613856 +qpeyg 0.0164611528436398 +ydmkt 0.00163874437311358 diff --git a/hod_1/data/numpy_entropy_model_4.txt b/hod_1/data/numpy_entropy_model_4.txt new file mode 100644 index 0000000..21e0188 --- /dev/null +++ b/hod_1/data/numpy_entropy_model_4.txt @@ -0,0 +1,200 @@ +aysirskl 0.000465969985327225 +icjgrrej 0.00125399262934441 +rpwecdml 0.00302176884392648 +knqqumtg 0.00414001389703705 +rijwsqio 0.00363108825124935 +pjkouayb 0.000590694273926047 +yhppippt 0.00281383589518343 +gviqjnka 0.00596853741622785 +rblbftch 0.0118925148629093 +rpwoeola 0.00137284781891226 +zkrxhkny 0.00514371341483877 +evaytxev 0.000424463748174283 +uoasbjrz 0.0368666520055359 +faxbpnva 0.00413936957451408 +ziyvyejl 0.00149656681939826 +litrmtxc 0.00619374172395002 +hlfnhahj 0.00338459417211952 +xntjdryl 0.00966638405208417 +gkqprfoc 0.00560911891937092 +grxldlyk 0.00409549456009234 +lklsancl 0.00323231239406044 +syvktodv 0.0052132145962036 +rqludekg 0.00644484194616499 +uqsvrodw 0.00123606973097706 +zryqedcy 0.00196828327955391 +pslumxli 0.00183063547110444 +tcuxhxaz 0.00583574881980228 +nptbmfae 0.00358244966827256 +wmrryjbh 0.00358044531741753 +zusfguab 0.00275169767409786 +nxknvpfz 0.00218936428227388 +adydcnwt 0.00191009117751983 +bgsrnutc 0.00243875740436847 +aktfqryi 0.00274622822697218 +czsayrkz 0.00245129923038723 +snfnnaow 0.0170456098040683 +fjffynzj 0.00460651599373612 +uwkawwfh 0.000604574134472098 +gdpurstk 0.0118908587120531 +dqxddeox 0.00644999423047188 +gjrnpmcc 0.0116106131733171 +sghuynub 0.00426256348792279 +vldohfjo 0.00356866558256043 +mzwexwte 1.07961561013392e-05 +dyslcyus 0.00128908650106376 +pkonquix 0.000220433673243581 +komsctkv 0.0023824578761889 +opbtajsx 0.00398981801318325 +nvgkafec 0.000529321417752203 +bqekebug 0.00822060594854104 +vzbhuxdb 0.012716052012467 +onjszcec 0.0070519552054062 +uyzkiyny 0.00663642136106938 +lvpfctfp 0.00739145880453734 +jqpyomdo 0.00602519295566007 +dibzffyd 0.00166506991120574 +bsvflmhn 0.00280000060286557 +qeabeirk 0.00323521527495261 +stnxvfgm 0.00209650697187905 +pgtznfnf 0.00198824215693064 +qxpfvmqq 0.00632503971872179 +bqjirtjb 0.00710032224860597 +ebnqbokg 0.0105976764736864 +ifdqnine 0.00626844145375311 +oarfqwxd 0.0061165404206265 +jllhtiip 0.0132176299369683 +sumgousm 0.0054742969637985 +gifksbue 0.0105812688731108 +zokasczg 0.00606818562710146 +fwrqxmxw 0.000169467389301491 +wqpfwzbj 0.000537291085070445 +klhjcomg 0.0114437454569636 +nfkgpovg 0.00246715557607813 +vrjiljsq 0.00508852153669522 +modgjwsr 0.019505200896841 +lkwpaiik 0.00772415799941654 +hpuguqca 0.000346480864675375 +rodlhbtu 0.0119742929904463 +sbvqorso 0.00291444366504115 +utqcywou 0.000497243075444838 +rcxcoclf 0.0183219799199796 +clzquaoh 0.00875008206537465 +hnpikhxo 0.00793749915555697 +slfuffmf 0.00664340904976409 +hmpjprva 0.0109556882297664 +wrwlwwgs 0.0103183805128625 +ocfnlnyk 0.00532839764792461 +fgshzlkz 0.0137498707566837 +llwmrzjl 0.00078175543757186 +bnqqgrlp 0.0128729356486284 +hcnggcmw 0.00143409059189367 +wwatmyfh 0.0123189657702296 +ybgaiwqm 0.00140099211351084 +fpzxralq 0.00279045651387019 +xlrcyrio 0.00227845165607012 +cxzsyfuo 0.00267141299994114 +gjhikwpn 0.000883501012657947 +wlpbnexn 0.0027562191128744 +jemonchd 0.00126825844735878 +canuyblm 0.0216756574568504 +pdbdosic 0.00180608741766137 +cxorzqix 0.00212926341416582 +rtledujy 0.00129871885173409 +hejxlqrt 0.00573128888947967 +kavwcfmu 3.54587299894723e-05 +fatcfvpk 0.00723990686470467 +bpplofjm 0.0041596511618454 +posryrwj 0.0117680238680073 +bvpnukag 0.00404497449067731 +lbelzpbs 0.0062178236771778 +gribnjjy 0.0109197239989149 +stkfzrxm 0.00514831697438371 +inbikasp 0.00284453578841593 +cdxltwqx 0.00878268364294129 +nvgiglpg 0.014784030751736 +fmaafgvi 0.00204418798526165 +qtyafvix 0.0137826948872999 +erhbdnlg 0.00187229855731789 +ulesdghl 0.00316583831999121 +ebheqjpk 0.00266386141319316 +gsmutwgq 0.00193798388627551 +hfjbohcn 0.00723777956971534 +kvanptal 0.00527843140542493 +hsbfrqwc 0.00546974392745142 +ruiquets 0.00168512464647176 +veourctx 0.00180094566860724 +nnshafed 0.00172147543036827 +irohhwfg 0.00243495609454943 +ivxoaqvg 0.000906434346262496 +wnddbfsg 0.000226736591764822 +osegqybm 0.00057255386567979 +lrjysmbk 0.000139930203234663 +sakueadt 0.00131143263623671 +dhmytfyl 0.00102515492571535 +fcctcaro 0.00722697313689681 +bvggwzqp 0.0111959052719189 +ajtczmtc 0.00214380561744269 +dklpprvj 0.000723659838801874 +scvfioku 0.00874660366923869 +egrqonlm 0.000188777762207543 +hpzlpxzg 0.000962056196345939 +ntdwlyyu 0.00496070367855473 +ygedcrzi 0.00182670850712668 +fswersgr 0.00622626521429683 +kndcdnkp 0.000674263651837786 +qaoatkzw 0.003087492612335 +krwmiegb 0.00855596722752998 +rxpjkrob 0.00261830406705972 +twtxssyg 0.013091523141205 +qyalrqha 0.00503801619670401 +ixmclekj 0.00107631312343053 +tdfpaezp 0.0010257675376158 +hvjrkgvn 0.00955381062591057 +kqznhktp 0.00400096482424042 +nuqwzjqi 0.000819740767639069 +xjoydjkd 0.00395214578889989 +zqcetrfj 0.00319829249514583 +amhehfow 1.88587714546712e-05 +sxmtlzlw 0.00663259259665281 +qrrwjspo 0.00712841972374552 +szhtpjyv 0.00156278271170568 +verttiuu 0.00188167145628583 +cxoftctg 0.00106191765565093 +htuvrriy 0.00364447520438559 +xqfvyctk 0.00449839948971503 +kuipdodd 0.000411362629861999 +gdqunmio 0.00264740859722539 +sjyqvgwo 0.000428065184436695 +rqgdglno 0.00175138550652958 +aylkedwc 0.0119582316725472 +ikutiphu 0.00576611726594471 +qegytrys 0.018424201625129 +zjfehspd 0.00139828990383295 +hdbfrnha 0.00293768717793717 +ssrktoar 0.000223708711653422 +wcnhypxx 0.000694563090736388 +egdyjbri 0.00107871204886407 +stfwtrsa 0.00293697893838925 +yaqvpcri 0.00303605758519147 +irdnmbpc 0.0048176606001274 +wtnecrbu 0.00459253359839141 +lsijbdpo 0.00285817743547033 +emvfrril 0.00422099180331 +lmzuxenv 0.00898921604201908 +ahpqjvoy 0.000549047186779937 +mbpcgqyi 0.0139713446598273 +cbutcdlm 0.00210694004038603 +aybiktvj 0.00482170683266502 +yhjoghiv 0.0024614271271427 +umlwokvi 0.0012906962733002 +pqxekaan 0.00585376668463907 +xzdhqifz 0.00518329508250998 +xpncwfyz 0.00616017953348638 +hpuoygat 0.00626962514542393 +ghvjpnkn 0.00674336788737429 +elmvmqfx 0.00298649404059306 +ewtkqwqc 0.00278733029070604 +tmmjvjvw 0.0143408324546755 +mxzsltag 0.00367522668308852 +barlvanl 0.00468990081850378 diff --git a/hod_1/data/pca_first.py b/hod_1/data/pca_first.py new file mode 100644 index 0000000..018fb34 --- /dev/null +++ b/hod_1/data/pca_first.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python3 +import argparse + +import numpy as np +import torch + +import npfl138 +from npfl138.datasets.mnist import MNIST +npfl138.require_version("2526.1") + +parser = argparse.ArgumentParser() +# These arguments will be set appropriately by ReCodEx, even if you change them. +parser.add_argument("--examples", default=256, type=int, help="MNIST examples to use.") +parser.add_argument("--iterations", default=100, type=int, help="Iterations of the power algorithm.") +parser.add_argument("--recodex", default=False, action="store_true", help="Evaluation in ReCodEx.") +parser.add_argument("--seed", default=42, type=int, help="Random seed.") +parser.add_argument("--threads", default=1, type=int, help="Maximum number of threads to use.") +# If you add more arguments, ReCodEx will keep them with your default values. + + +def main(args: argparse.Namespace) -> tuple[float, float]: + # Set the random seed and the number of threads. + npfl138.startup(args.seed, args.threads, args.recodex) + npfl138.global_keras_initializers() + + # Prepare the data. + mnist = MNIST() + + data_indices = np.random.choice(len(mnist.train), size=args.examples, replace=False) + data = mnist.train.data["images"][data_indices].to(torch.float32) / 255 + + # TODO: Data has shape [args.examples, MNIST.C, MNIST.H, MNIST.W]. + # We want to reshape it to [args.examples, MNIST.C * MNIST.H * MNIST.W]. + # We can do so using `torch.reshape(data, new_shape)` with new shape + # `[data.shape[0], data.shape[1] * data.shape[2] * data.shape[3]]`. + data = ... + + # TODO: Now compute mean of every feature. Use `torch.mean`, and set + # `dim` (or `axis`) argument to zero -- therefore, the mean will be + # computed across the first dimension, so across examples. + # + # Note that for compatibility with Numpy/TF/Keras, all `dim` arguments + # in PyTorch can be also called `axis`. + mean = ... + + # TODO: Compute the covariance matrix. The covariance matrix is + # (data - mean)^T @ (data - mean) / data.shape[0] + # where transpose can be computed using `torch.transpose` or `torch.t` and + # matrix multiplication using either Python operator @ or `torch.matmul`. + cov = ... + + # TODO: Compute the total variance, which is the sum of the diagonal + # of the covariance matrix. To extract the diagonal use `torch.diagonal`, + # and to sum a tensor use `torch.sum`. + total_variance = ... + + # TODO: Now run `args.iterations` of the power iteration algorithm. + # Start with a vector of `cov.shape[0]` ones of type `torch.float32` using `torch.ones`. + v = ... + for i in range(args.iterations): + # TODO: In the power iteration algorithm, we compute + # 1. v = cov v + # The matrix-vector multiplication can be computed as regular matrix multiplication + # or using `torch.mv`. + # 2. s = l2_norm(v) + # The l2_norm can be computed using for example `torch.linalg.vector_norm`. + # 3. v = v / s + ... + + # The `v` is now approximately the eigenvector of the largest eigenvalue, `s`. + # We now compute the explained variance, which is the ratio of `s` and `total_variance`. + explained_variance = s / total_variance + + # Return the total and explained variance for ReCodEx to validate + return total_variance, 100 * explained_variance + + +if __name__ == "__main__": + main_args = parser.parse_args([] if "__file__" not in globals() else None) + total_variance, explained_variance = main(main_args) + print(f"Total variance: {total_variance:.2f}") + print(f"Explained variance: {explained_variance:.2f}%") diff --git a/hod_1/src/lib.rs b/hod_1/src/lib.rs new file mode 100644 index 0000000..1af3c55 --- /dev/null +++ b/hod_1/src/lib.rs @@ -0,0 +1,63 @@ +use burn::tensor::Tensor; +use std::collections::HashMap; +use std::fs::File; +use std::io::{BufRead, BufReader}; + +pub type B = burn_ndarray::NdArray; + +// Funkcia na načítanie a zarovnanie dát +pub fn load_and_align(data_path: &str, model_path: &str) -> (Vec, Vec) { + let mut counts = HashMap::new(); + let mut total_count = 0.0; + + let file_p = File::open(data_path).expect("Nepodarilo sa otvoriť dáta"); + for line in BufReader::new(file_p).lines() { + let point = line.unwrap().trim().to_string(); + if point.is_empty() { continue; } + *counts.entry(point).or_insert(0.0) += 1.0; + total_count += 1.0; + } + + let mut model_map = HashMap::new(); + let file_q = File::open(model_path).expect("Nepodarilo sa otvoriť model"); + for line in BufReader::new(file_q).lines() { + let l = line.unwrap(); + let parts: Vec<&str> = l.split('\t').collect(); + if parts.len() >= 2 { + model_map.insert(parts[0].to_string(), parts[1].parse::().unwrap()); + } + } + + let mut p_vals = Vec::new(); + let mut q_vals = Vec::new(); + for (point, count) in counts.iter() { + p_vals.push(count / total_count); + q_vals.push(*model_map.get(point).unwrap_or(&0.0)); + } + (p_vals, q_vals) +} + +pub fn entropy(p: Tensor) -> f64 { + let zero_mask = p.clone().equal_elem(0.0); + let p_safe = p.clone().mask_fill(zero_mask, 1.0); + let terms = p * p_safe.log(); + -terms.sum().into_scalar() +} + +pub fn cross_entropy(p: Tensor, q: Tensor) -> f64 { + let zero_mask_q = q.clone().equal_elem(0.0); + let p_exists = p.clone().greater_elem(0.0); + if p_exists.bool_and(zero_mask_q.clone()).any().into_scalar() { + return f64::INFINITY; + } + let q_safe = q.mask_fill(zero_mask_q, 1.0); + let terms = p * q_safe.log(); + -terms.sum().into_scalar() +} + +pub fn kl_div2(p: Tensor, q: Tensor) -> f64 { + let ce = cross_entropy(p.clone(), q); + let e = entropy(p); + let result = ce - e; + if result < 0.0 { 0.0 } else { result } +} diff --git a/hod_1/src/main.rs b/hod_1/src/main.rs index 5f14a8a..4ca358c 100644 --- a/hod_1/src/main.rs +++ b/hod_1/src/main.rs @@ -1,56 +1,30 @@ -use burn::tensor::{backend::Backend, Tensor, TensorData}; -use burn_ndarray::NdArray; -use ndarray::{array, Array1}; +use burn::tensor::{backend::Backend, Tensor}; +use clap::Parser; +// Nahraď 'hod_1' názvom tvojho projektu v Cargo.toml +use hod_1::{load_and_align, entropy, cross_entropy, kl_div2, B}; -type B = NdArray; +#[derive(Parser, Debug)] +#[command(author, version, about, long_about = None)] +struct Args { + #[arg(long = "data_path")] + data_path: String, + + #[arg(long = "model_path")] + model_path: String, +} fn main() { + let args = Args::parse(); let device = ::Device::default(); - // ndarray::Array1 - let a: Array1 = array![0.4, 0.6]; + // Použijeme funkciu z lib.rs + let (p_vec, q_vec) = load_and_align(&args.data_path, &args.model_path); - // Convert ndarray -> Burn tensor - let p = Tensor::::from_data( - TensorData::new(a.to_vec(), [a.len()]), - &device, - ); + let p = Tensor::::from_data(p_vec.as_slice(), &device); + let q = Tensor::::from_data(q_vec.as_slice(), &device); - let h = entropy(p); - println!("{h}"); + // Výpočty + println!("{}", entropy(p.clone())); + println!("{}", cross_entropy(p.clone(), q.clone())); + println!("{}", kl_div2(p, q)); } - -fn entropy(p: Tensor) -> f64 { - // Handle p = 0 safely, because 0 * log(0) should contribute 0 - let zero_mask = p.clone().equal_elem(0.0); - let p_safe = p.clone().mask_fill(zero_mask.clone(), 1.0); - - let terms = (p.clone() * p_safe.log()).mask_fill(zero_mask, 0.0); - - (-terms).sum().into_scalar() -} - -// pub fn entropy2(p: Tensor) -> f64 { -// if p == 0.0 { -// return 0.0; -// } -// - p * p.ln() -// } - -// pub fn cross_entropy(p: Tensor, q: f64) -> f64 { -// if p == 0.0 { -// return 0.0; -// } -// - p * q.ln() -// } - -// pub fn kl_div(p: f64, q: f64) -> f64 { -// if p == 0.0 { -// return 0.0; -// } -// p*(p.ln()-q.ln()) -// } - -// pub fn kl_div2(p: f64, q: f64) -> f64 { -// cross_entropy(p,q) - entropy(p) -// }