# Hybrid quantum-classical feed forward neural network for solving the TSP.

```python
# !pip install -r requirements.txt
```

```python
import cirq
import tensorflow as tf
import tensorflow_quantum as tfq
import numpy as np
import sympy
import matplotlib.pyplot as plt
import itertools

%matplotlib inline
```

    2021-12-21 20:14:20.546790: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set
    2021-12-21 20:14:20.548887: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
    To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

## TSP

```python
class TSP:
    def __init__(self, number_of_cities, coords_range=(0, 10000)):
        self.number_of_cities = number_of_cities
        self.coords_range = coords_range
        self.cities_coords = self.get_cities()
        self.distance_matrix = self.calculate_distance_matrix()
        self.normalized_distance_matrix = self.normalize_distance_matrix()

    def get_cities(self):
        cities_coords = np.random.randint(self.coords_range[0], self.coords_range[1], size = (self.number_of_cities, 2))
        return cities_coords

    def normalize_cities(self):
        max_coords = np.amax(self.cities_coords, axis=0)
        normalized_cities_coords = np.divide(self.cities_coords, max_coords)
        return normalized_cities_coords

    def calculate_distance_between_points(self, point_A, point_B):
        return np.sqrt((point_A[0] - point_B[0])**2 + (point_A[1] - point_B[1])**2)

    def calculate_distance_matrix(self):
        distance_matrix = np.zeros((self.number_of_cities, self.number_of_cities))
        for i in range(self.number_of_cities):
            for j in range(i, self.number_of_cities):
                distance_matrix[i][j] = self.calculate_distance_between_points(self.cities_coords[i], self.cities_coords[j])
                distance_matrix[j][i] = distance_matrix[i][j]
        return distance_matrix

    def normalize_distance_matrix(self):
        return np.divide(self.distance_matrix, np.max(self.distance_matrix))
```

##  QAOA

```python
class QAOA_TSP:
    def __init__(self, tsp_instance, p=1, A_1=4, A_2=4, B=1):
        self.tsp_instance = tsp_instance
        self.qubits = cirq.GridQubit.rect(1, tsp_instance.number_of_cities**2)
        self.p = p
        self.weights = {'cost_weight': B,
                        'constraint_each_visited': A_1,
                        'constraint_each_visited_once': A_2}
        self.parameters = self.generate_sympy_parameters()
        self.cost_operator = self.create_cost_operator()
        self.circuit = self.create_qaoa_circuit()

    def calc_bit(self, i, t):
        return i + t * self.tsp_instance.number_of_cities

    def x(self, i, t):
        x = self.calc_bit(i, t)
        qubit = self.qubits[x]
        return cirq.PauliString(0.5, cirq.I(qubit)) - cirq.PauliString(0.5, cirq.Z(qubit))

    def create_hadamard_circuit_layer(self):
        hadamard_circuit_layer = cirq.Circuit()
        for qubit in self.qubits:
            hadamard_circuit_layer += cirq.H(qubit)
        return hadamard_circuit_layer

    def generate_sympy_parameters(self):
        return sympy.symbols('parameter_:%d'%(2*self.p))

    def create_cost_operator(self):
        A_1 = self.weights['constraint_each_visited']
        A_2 = self.weights['constraint_each_visited_once']
        B = self.weights['cost_weight']

        cost_of_constraint_each_visited = 0
        for i in range(self.tsp_instance.number_of_cities):
            curr = 1
            for t in range(self.tsp_instance.number_of_cities):
                curr -= self.x(i, t)
            cost_of_constraint_each_visited += np.power(curr, 2)

        cost_of_constraint_each_visited_once = 0
        for t in range(self.tsp_instance.number_of_cities):
            curr = 1
            for i in range(self.tsp_instance.number_of_cities):
                curr -= self.x(i, t)
            cost_of_constraint_each_visited_once += np.power(curr, 2)

        cost_of_visiting_cities = 0
        for i, j in itertools.permutations(range(0, self.tsp_instance.number_of_cities), 2):
            curr = 0
            for t in range(self.tsp_instance.number_of_cities):
                inc_t = t + 1
                if inc_t == self.tsp_instance.number_of_cities:
                    inc_t = 0
                curr += self.x(i, t) * self.x(j, inc_t)
            cost_of_visiting_cities += self.tsp_instance.normalized_distance_matrix[i][j] * curr

        cost_operator = A_1 * cost_of_constraint_each_visited + \
                        A_2 * cost_of_constraint_each_visited_once + \
                        B * cost_of_visiting_cities

        return cost_operator

    def create_mixing_operator(self):
        mixing_operator = 0
        for qubit in self.qubits:
            mixing_operator += cirq.X(qubit)
        return mixing_operator

    def create_qaoa_circuit(self):
        hadamard_circuit_layer = self.create_hadamard_circuit_layer()
        cost_operator = self.create_cost_operator()
        mixing_operator = self.create_mixing_operator()
        parameterized_circuit_layers = tfq.util.exponential(operators = [cost_operator, mixing_operator] * self.p,
                                                            coefficients = self.parameters)
        qaoa_circuit = hadamard_circuit_layer + parameterized_circuit_layers
        return qaoa_circuit
```

```python
tsp_instance = TSP(4)
qaoa_tsp = QAOA_TSP(tsp_instance, p=10, A_1=4, A_2=4, B=1)
```

Display the circuit (sometimes it takes a little while...).

```python
# from cirq.contrib.svg import SVGCircuit
# SVGCircuit(qaoa_tsp.circuit)
```

## Hybrid Quantum-Classical Feed Forward Neural Network

```python
class QFFNN(tf.keras.layers.Layer):
  def __init__(self, parameters):
    super(QFFNN, self).__init__()
    self.parameters = parameters
    self.params_inp = tf.keras.Input(shape=(len(self.parameters),), name='input_layer')
    self.first_hidden = tf.keras.layers.Dense(len(self.parameters), name="hidden_layer")
    self.expectation = tfq.layers.Expectation(name="expectation_layer")

  def call(self, inputs):
    parameterized_circuit = inputs[0]
    cost_operator = inputs[1]
    initial_parameter_values = inputs[2]

    parameter_values = self.first_hidden(initial_parameter_values)
    expectation_value = self.expectation(parameterized_circuit,
                                       operators=cost_operator,
                                       symbol_names=self.parameters,
                                       symbol_values=parameter_values)

    return [parameter_values, expectation_value]
```

```python
parametrized_circuit_input = tf.keras.Input(shape=(), dtype=tf.dtypes.string)
operator_input = tf.keras.Input(shape=(1,), dtype=tf.dtypes.string)
parameters_input = tf.keras.Input(shape=(2 * qaoa_tsp.p,))
```

```python
qffnn = QFFNN(qaoa_tsp.parameters)
output = qffnn([parametrized_circuit_input, operator_input, parameters_input])
```

```python
model = tf.keras.Model(
              inputs=[
                  parametrized_circuit_input,
                  operator_input,
                  parameters_input
              ],
              outputs=[
                  output[0], # array of optimized 2p parameters
                  output[1], # expectation value
              ])
```

```python
model.compile(
              optimizer=tf.keras.optimizers.Adam(learning_rate=0.01),
              loss = tf.keras.losses.mean_absolute_error,
              loss_weights=[0, 1]
             )
```

```python
model.summary()
```

    Model: "model"
    __________________________________________________________________________________________________
    Layer (type)                    Output Shape         Param #     Connected to
    ==================================================================================================
    input_1 (InputLayer)            [(None,)]            0
    __________________________________________________________________________________________________
    input_2 (InputLayer)            [(None, 1)]          0
    __________________________________________________________________________________________________
    input_3 (InputLayer)            [(None, 20)]         0
    __________________________________________________________________________________________________
    qffnn (QFFNN)                   [(None, 20), (None,  420         input_1[0][0]
                                                                     input_2[0][0]
                                                                     input_3[0][0]
    ==================================================================================================
    Total params: 420
    Trainable params: 420
    Non-trainable params: 0
    __________________________________________________________________________________________________

```python
circuit_tensor = tfq.convert_to_tensor([qaoa_tsp.circuit])
cost_operator_tensor = tfq.convert_to_tensor([qaoa_tsp.cost_operator])
initial_parameters = np.zeros((1, qaoa_tsp.p * 2)).astype(np.float32)
```

```python
%%time
history = model.fit(
              x=[
                  circuit_tensor,
                  cost_operator_tensor,
                  initial_parameters,
              ],
              y=[
                  np.zeros((1, qaoa_tsp.p * 2)),
                  np.zeros((1, 1)), # the closer to 0 the better the result
              ],
              epochs=250,
              verbose=1)
```

    2021-12-21 20:14:27.527930: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)

    Epoch 1/250
    1/1 [==============================] - 2s 2s/step - loss: 70.8359 - qffnn_loss: 0.0000e+00 - qffnn_1_loss: 70.8359
    Epoch 2/250
    1/1 [==============================] - 2s 2s/step - loss: 53.6952 - qffnn_loss: 0.0100 - qffnn_1_loss: 53.6952
    Epoch 3/250
    1/1 [==============================] - 2s 2s/step - loss: 39.8940 - qffnn_loss: 0.0114 - qffnn_1_loss: 39.8940
    Epoch 4/250
    1/1 [==============================] - 2s 2s/step - loss: 28.3136 - qffnn_loss: 0.0167 - qffnn_1_loss: 28.3136
    Epoch 5/250
    1/1 [==============================] - 2s 2s/step - loss: 20.6917 - qffnn_loss: 0.0219 - qffnn_1_loss: 20.6917
    Epoch 6/250
    1/1 [==============================] - 2s 2s/step - loss: 18.2556 - qffnn_loss: 0.0271 - qffnn_1_loss: 18.2556
    Epoch 7/250
    1/1 [==============================] - 1s 1s/step - loss: 18.4545 - qffnn_loss: 0.0315 - qffnn_1_loss: 18.4545
    Epoch 8/250
    1/1 [==============================] - 1s 1s/step - loss: 20.0995 - qffnn_loss: 0.0348 - qffnn_1_loss: 20.0995
    Epoch 9/250
    1/1 [==============================] - 2s 2s/step - loss: 22.0517 - qffnn_loss: 0.0370 - qffnn_1_loss: 22.0517
    Epoch 10/250
    1/1 [==============================] - 1s 1s/step - loss: 23.2011 - qffnn_loss: 0.0381 - qffnn_1_loss: 23.2011
    Epoch 11/250
    1/1 [==============================] - 4s 4s/step - loss: 23.3893 - qffnn_loss: 0.0383 - qffnn_1_loss: 23.3893
    Epoch 12/250
    1/1 [==============================] - 3s 3s/step - loss: 22.4549 - qffnn_loss: 0.0374 - qffnn_1_loss: 22.4549
    Epoch 13/250
    1/1 [==============================] - 3s 3s/step - loss: 20.2451 - qffnn_loss: 0.0376 - qffnn_1_loss: 20.2451
    Epoch 14/250
    1/1 [==============================] - 2s 2s/step - loss: 17.1349 - qffnn_loss: 0.0386 - qffnn_1_loss: 17.1349
    Epoch 15/250
    1/1 [==============================] - 2s 2s/step - loss: 14.4086 - qffnn_loss: 0.0396 - qffnn_1_loss: 14.4086
    Epoch 16/250
    1/1 [==============================] - 2s 2s/step - loss: 14.6086 - qffnn_loss: 0.0406 - qffnn_1_loss: 14.6086
    Epoch 17/250
    1/1 [==============================] - 2s 2s/step - loss: 17.2703 - qffnn_loss: 0.0417 - qffnn_1_loss: 17.2703
    Epoch 18/250
    1/1 [==============================] - 2s 2s/step - loss: 16.5627 - qffnn_loss: 0.0428 - qffnn_1_loss: 16.5627
    Epoch 19/250
    1/1 [==============================] - 2s 2s/step - loss: 15.2326 - qffnn_loss: 0.0439 - qffnn_1_loss: 15.2326
    Epoch 20/250
    1/1 [==============================] - 2s 2s/step - loss: 14.6945 - qffnn_loss: 0.0450 - qffnn_1_loss: 14.6945
    Epoch 21/250
    1/1 [==============================] - 3s 3s/step - loss: 14.0226 - qffnn_loss: 0.0458 - qffnn_1_loss: 14.0226
    Epoch 22/250
    1/1 [==============================] - 2s 2s/step - loss: 13.1413 - qffnn_loss: 0.0463 - qffnn_1_loss: 13.1413
    Epoch 23/250
    1/1 [==============================] - 2s 2s/step - loss: 12.8807 - qffnn_loss: 0.0471 - qffnn_1_loss: 12.8807
    Epoch 24/250
    1/1 [==============================] - 2s 2s/step - loss: 13.6386 - qffnn_loss: 0.0485 - qffnn_1_loss: 13.6386
    Epoch 25/250
    1/1 [==============================] - 1s 1s/step - loss: 13.8426 - qffnn_loss: 0.0498 - qffnn_1_loss: 13.8426
    Epoch 26/250
    1/1 [==============================] - 1s 1s/step - loss: 13.2780 - qffnn_loss: 0.0509 - qffnn_1_loss: 13.2780
    Epoch 27/250
    1/1 [==============================] - 2s 2s/step - loss: 13.0966 - qffnn_loss: 0.0520 - qffnn_1_loss: 13.0966
    Epoch 28/250
    1/1 [==============================] - 2s 2s/step - loss: 13.0350 - qffnn_loss: 0.0530 - qffnn_1_loss: 13.0350
    Epoch 29/250
    1/1 [==============================] - 2s 2s/step - loss: 12.6185 - qffnn_loss: 0.0540 - qffnn_1_loss: 12.6185
    Epoch 30/250
    1/1 [==============================] - 1s 1s/step - loss: 11.9114 - qffnn_loss: 0.0548 - qffnn_1_loss: 11.9114
    Epoch 31/250
    1/1 [==============================] - 1s 1s/step - loss: 11.4194 - qffnn_loss: 0.0557 - qffnn_1_loss: 11.4194
    Epoch 32/250
    1/1 [==============================] - 1s 1s/step - loss: 11.3943 - qffnn_loss: 0.0567 - qffnn_1_loss: 11.3943
    Epoch 33/250
    1/1 [==============================] - 1s 1s/step - loss: 11.3396 - qffnn_loss: 0.0578 - qffnn_1_loss: 11.3396
    Epoch 34/250
    1/1 [==============================] - 1s 1s/step - loss: 11.0210 - qffnn_loss: 0.0590 - qffnn_1_loss: 11.0210
    Epoch 35/250
    1/1 [==============================] - 1s 1s/step - loss: 10.8187 - qffnn_loss: 0.0604 - qffnn_1_loss: 10.8187
    Epoch 36/250
    1/1 [==============================] - 1s 1s/step - loss: 10.7909 - qffnn_loss: 0.0620 - qffnn_1_loss: 10.7909
    Epoch 37/250
    1/1 [==============================] - 1s 1s/step - loss: 10.6744 - qffnn_loss: 0.0635 - qffnn_1_loss: 10.6744
    Epoch 38/250
    1/1 [==============================] - 1s 1s/step - loss: 10.3602 - qffnn_loss: 0.0648 - qffnn_1_loss: 10.3602
    Epoch 39/250
    1/1 [==============================] - 1s 1s/step - loss: 9.9968 - qffnn_loss: 0.0662 - qffnn_1_loss: 9.9968
    Epoch 40/250
    1/1 [==============================] - 1s 1s/step - loss: 9.7642 - qffnn_loss: 0.0676 - qffnn_1_loss: 9.7642
    Epoch 41/250
    1/1 [==============================] - 1s 1s/step - loss: 9.6333 - qffnn_loss: 0.0690 - qffnn_1_loss: 9.6333
    Epoch 42/250
    1/1 [==============================] - 2s 2s/step - loss: 9.4728 - qffnn_loss: 0.0704 - qffnn_1_loss: 9.4728
    Epoch 43/250
    1/1 [==============================] - 1s 1s/step - loss: 9.3015 - qffnn_loss: 0.0718 - qffnn_1_loss: 9.3015
    Epoch 44/250
    1/1 [==============================] - 1s 1s/step - loss: 9.2081 - qffnn_loss: 0.0732 - qffnn_1_loss: 9.2081
    Epoch 45/250
    1/1 [==============================] - 1s 1s/step - loss: 9.1418 - qffnn_loss: 0.0745 - qffnn_1_loss: 9.1418
    Epoch 46/250
    1/1 [==============================] - 1s 1s/step - loss: 9.0013 - qffnn_loss: 0.0756 - qffnn_1_loss: 9.0013
    Epoch 47/250
    1/1 [==============================] - 1s 1s/step - loss: 8.8101 - qffnn_loss: 0.0767 - qffnn_1_loss: 8.8101
    Epoch 48/250
    1/1 [==============================] - 1s 1s/step - loss: 8.6732 - qffnn_loss: 0.0776 - qffnn_1_loss: 8.6732
    Epoch 49/250
    1/1 [==============================] - 1s 1s/step - loss: 8.6066 - qffnn_loss: 0.0785 - qffnn_1_loss: 8.6066
    Epoch 50/250
    1/1 [==============================] - 1s 1s/step - loss: 8.5295 - qffnn_loss: 0.0795 - qffnn_1_loss: 8.5295
    Epoch 51/250
    1/1 [==============================] - 1s 1s/step - loss: 8.4394 - qffnn_loss: 0.0805 - qffnn_1_loss: 8.4394
    Epoch 52/250
    1/1 [==============================] - 1s 1s/step - loss: 8.3934 - qffnn_loss: 0.0815 - qffnn_1_loss: 8.3934
    Epoch 53/250
    1/1 [==============================] - 1s 1s/step - loss: 8.3717 - qffnn_loss: 0.0824 - qffnn_1_loss: 8.3717
    Epoch 54/250
    1/1 [==============================] - 1s 1s/step - loss: 8.3114 - qffnn_loss: 0.0834 - qffnn_1_loss: 8.3114
    Epoch 55/250
    1/1 [==============================] - 1s 1s/step - loss: 8.2078 - qffnn_loss: 0.0843 - qffnn_1_loss: 8.2078
    Epoch 56/250
    1/1 [==============================] - 1s 1s/step - loss: 8.1081 - qffnn_loss: 0.0853 - qffnn_1_loss: 8.1081
    Epoch 57/250
    1/1 [==============================] - 1s 1s/step - loss: 8.0323 - qffnn_loss: 0.0862 - qffnn_1_loss: 8.0323
    Epoch 58/250
    1/1 [==============================] - 1s 1s/step - loss: 7.9616 - qffnn_loss: 0.0872 - qffnn_1_loss: 7.9616
    Epoch 59/250
    1/1 [==============================] - 1s 1s/step - loss: 7.8905 - qffnn_loss: 0.0882 - qffnn_1_loss: 7.8905
    Epoch 60/250
    1/1 [==============================] - 1s 1s/step - loss: 7.8347 - qffnn_loss: 0.0891 - qffnn_1_loss: 7.8347
    Epoch 61/250
    1/1 [==============================] - 2s 2s/step - loss: 7.7885 - qffnn_loss: 0.0901 - qffnn_1_loss: 7.7885
    Epoch 62/250
    1/1 [==============================] - 1s 1s/step - loss: 7.7276 - qffnn_loss: 0.0911 - qffnn_1_loss: 7.7276
    Epoch 63/250
    1/1 [==============================] - 1s 1s/step - loss: 7.6533 - qffnn_loss: 0.0920 - qffnn_1_loss: 7.6533
    Epoch 64/250
    1/1 [==============================] - 1s 1s/step - loss: 7.5852 - qffnn_loss: 0.0929 - qffnn_1_loss: 7.5852
    Epoch 65/250
    1/1 [==============================] - 1s 1s/step - loss: 7.5363 - qffnn_loss: 0.0938 - qffnn_1_loss: 7.5363
    Epoch 66/250
    1/1 [==============================] - 1s 1s/step - loss: 7.4943 - qffnn_loss: 0.0947 - qffnn_1_loss: 7.4943
    Epoch 67/250
    1/1 [==============================] - 1s 1s/step - loss: 7.4475 - qffnn_loss: 0.0955 - qffnn_1_loss: 7.4475
    Epoch 68/250
    1/1 [==============================] - 1s 1s/step - loss: 7.4035 - qffnn_loss: 0.0964 - qffnn_1_loss: 7.4035
    Epoch 69/250
    1/1 [==============================] - 1s 1s/step - loss: 7.3639 - qffnn_loss: 0.0972 - qffnn_1_loss: 7.3639
    Epoch 70/250
    1/1 [==============================] - 1s 1s/step - loss: 7.3217 - qffnn_loss: 0.0980 - qffnn_1_loss: 7.3217
    Epoch 71/250
    1/1 [==============================] - 1s 1s/step - loss: 7.2680 - qffnn_loss: 0.0987 - qffnn_1_loss: 7.2680
    Epoch 72/250
    1/1 [==============================] - 1s 1s/step - loss: 7.2147 - qffnn_loss: 0.0994 - qffnn_1_loss: 7.2147
    Epoch 73/250
    1/1 [==============================] - 1s 1s/step - loss: 7.1690 - qffnn_loss: 0.1001 - qffnn_1_loss: 7.1690
    Epoch 74/250
    1/1 [==============================] - 1s 1s/step - loss: 7.1254 - qffnn_loss: 0.1007 - qffnn_1_loss: 7.1254
    Epoch 75/250
    1/1 [==============================] - 1s 1s/step - loss: 7.0748 - qffnn_loss: 0.1013 - qffnn_1_loss: 7.0748
    Epoch 76/250
    1/1 [==============================] - 1s 1s/step - loss: 7.0235 - qffnn_loss: 0.1019 - qffnn_1_loss: 7.0235
    Epoch 77/250
    1/1 [==============================] - 1s 1s/step - loss: 6.9735 - qffnn_loss: 0.1025 - qffnn_1_loss: 6.9735
    Epoch 78/250
    1/1 [==============================] - 1s 1s/step - loss: 6.9198 - qffnn_loss: 0.1031 - qffnn_1_loss: 6.9198
    Epoch 79/250
    1/1 [==============================] - 1s 1s/step - loss: 6.8627 - qffnn_loss: 0.1037 - qffnn_1_loss: 6.8627
    Epoch 80/250
    1/1 [==============================] - 1s 1s/step - loss: 6.8061 - qffnn_loss: 0.1043 - qffnn_1_loss: 6.8061
    Epoch 81/250
    1/1 [==============================] - 1s 1s/step - loss: 6.7526 - qffnn_loss: 0.1050 - qffnn_1_loss: 6.7526
    Epoch 82/250
    1/1 [==============================] - 2s 2s/step - loss: 6.6959 - qffnn_loss: 0.1056 - qffnn_1_loss: 6.6959
    Epoch 83/250
    1/1 [==============================] - 1s 1s/step - loss: 6.6338 - qffnn_loss: 0.1063 - qffnn_1_loss: 6.6338
    Epoch 84/250
    1/1 [==============================] - 1s 1s/step - loss: 6.5695 - qffnn_loss: 0.1071 - qffnn_1_loss: 6.5695
    Epoch 85/250
    1/1 [==============================] - 1s 1s/step - loss: 6.5028 - qffnn_loss: 0.1078 - qffnn_1_loss: 6.5028
    Epoch 86/250
    1/1 [==============================] - 1s 1s/step - loss: 6.4342 - qffnn_loss: 0.1086 - qffnn_1_loss: 6.4342
    Epoch 87/250
    1/1 [==============================] - 2s 2s/step - loss: 6.3621 - qffnn_loss: 0.1095 - qffnn_1_loss: 6.3621
    Epoch 88/250
    1/1 [==============================] - 1s 1s/step - loss: 6.2915 - qffnn_loss: 0.1103 - qffnn_1_loss: 6.2915
    Epoch 89/250
    1/1 [==============================] - 2s 2s/step - loss: 6.2231 - qffnn_loss: 0.1112 - qffnn_1_loss: 6.2231
    Epoch 90/250
    1/1 [==============================] - 2s 2s/step - loss: 6.1553 - qffnn_loss: 0.1121 - qffnn_1_loss: 6.1553
    Epoch 91/250
    1/1 [==============================] - 2s 2s/step - loss: 6.0890 - qffnn_loss: 0.1131 - qffnn_1_loss: 6.0890
    Epoch 92/250
    1/1 [==============================] - 2s 2s/step - loss: 6.0268 - qffnn_loss: 0.1140 - qffnn_1_loss: 6.0268
    Epoch 93/250
    1/1 [==============================] - 1s 1s/step - loss: 5.9684 - qffnn_loss: 0.1150 - qffnn_1_loss: 5.9684
    Epoch 94/250
    1/1 [==============================] - 1s 1s/step - loss: 5.9127 - qffnn_loss: 0.1159 - qffnn_1_loss: 5.9127
    Epoch 95/250
    1/1 [==============================] - 1s 1s/step - loss: 5.8598 - qffnn_loss: 0.1168 - qffnn_1_loss: 5.8598
    Epoch 96/250
    1/1 [==============================] - 1s 1s/step - loss: 5.8057 - qffnn_loss: 0.1177 - qffnn_1_loss: 5.8057
    Epoch 97/250
    1/1 [==============================] - 2s 2s/step - loss: 5.7519 - qffnn_loss: 0.1185 - qffnn_1_loss: 5.7519
    Epoch 98/250
    1/1 [==============================] - 2s 2s/step - loss: 5.6971 - qffnn_loss: 0.1193 - qffnn_1_loss: 5.6971
    Epoch 99/250
    1/1 [==============================] - 2s 2s/step - loss: 5.6431 - qffnn_loss: 0.1200 - qffnn_1_loss: 5.6431
    Epoch 100/250
    1/1 [==============================] - 1s 1s/step - loss: 5.5911 - qffnn_loss: 0.1208 - qffnn_1_loss: 5.5911
    Epoch 101/250
    1/1 [==============================] - 1s 1s/step - loss: 5.5379 - qffnn_loss: 0.1215 - qffnn_1_loss: 5.5379
    Epoch 102/250
    1/1 [==============================] - 1s 1s/step - loss: 5.4882 - qffnn_loss: 0.1222 - qffnn_1_loss: 5.4882
    Epoch 103/250
    1/1 [==============================] - 1s 1s/step - loss: 5.4370 - qffnn_loss: 0.1228 - qffnn_1_loss: 5.4370
    Epoch 104/250
    1/1 [==============================] - 2s 2s/step - loss: 5.3895 - qffnn_loss: 0.1235 - qffnn_1_loss: 5.3895
    Epoch 105/250
    1/1 [==============================] - 1s 1s/step - loss: 5.3415 - qffnn_loss: 0.1242 - qffnn_1_loss: 5.3415
    Epoch 106/250
    1/1 [==============================] - 1s 1s/step - loss: 5.2938 - qffnn_loss: 0.1248 - qffnn_1_loss: 5.2938
    Epoch 107/250
    1/1 [==============================] - 1s 1s/step - loss: 5.2474 - qffnn_loss: 0.1255 - qffnn_1_loss: 5.2474
    Epoch 108/250
    1/1 [==============================] - 1s 1s/step - loss: 5.1998 - qffnn_loss: 0.1262 - qffnn_1_loss: 5.1998
    Epoch 109/250
    1/1 [==============================] - 3s 3s/step - loss: 5.1523 - qffnn_loss: 0.1268 - qffnn_1_loss: 5.1523
    Epoch 110/250
    1/1 [==============================] - 3s 3s/step - loss: 5.1051 - qffnn_loss: 0.1275 - qffnn_1_loss: 5.1051
    Epoch 111/250
    1/1 [==============================] - 1s 1s/step - loss: 5.0606 - qffnn_loss: 0.1281 - qffnn_1_loss: 5.0606
    Epoch 112/250
    1/1 [==============================] - 1s 1s/step - loss: 5.0165 - qffnn_loss: 0.1288 - qffnn_1_loss: 5.0165
    Epoch 113/250
    1/1 [==============================] - 1s 1s/step - loss: 4.9734 - qffnn_loss: 0.1294 - qffnn_1_loss: 4.9734
    Epoch 114/250
    1/1 [==============================] - 1s 1s/step - loss: 4.9315 - qffnn_loss: 0.1300 - qffnn_1_loss: 4.9315
    Epoch 115/250
    1/1 [==============================] - 1s 1s/step - loss: 4.8906 - qffnn_loss: 0.1306 - qffnn_1_loss: 4.8906
    Epoch 116/250
    1/1 [==============================] - 1s 1s/step - loss: 4.8473 - qffnn_loss: 0.1312 - qffnn_1_loss: 4.8473
    Epoch 117/250
    1/1 [==============================] - 1s 1s/step - loss: 4.8037 - qffnn_loss: 0.1317 - qffnn_1_loss: 4.8037
    Epoch 118/250
    1/1 [==============================] - 1s 1s/step - loss: 4.7589 - qffnn_loss: 0.1323 - qffnn_1_loss: 4.7589
    Epoch 119/250
    1/1 [==============================] - 1s 1s/step - loss: 4.7131 - qffnn_loss: 0.1328 - qffnn_1_loss: 4.7131
    Epoch 120/250
    1/1 [==============================] - 1s 1s/step - loss: 4.6664 - qffnn_loss: 0.1333 - qffnn_1_loss: 4.6664
    Epoch 121/250
    1/1 [==============================] - 2s 2s/step - loss: 4.6170 - qffnn_loss: 0.1338 - qffnn_1_loss: 4.6170
    Epoch 122/250
    1/1 [==============================] - 2s 2s/step - loss: 4.5676 - qffnn_loss: 0.1343 - qffnn_1_loss: 4.5676
    Epoch 123/250
    1/1 [==============================] - 1s 1s/step - loss: 4.5195 - qffnn_loss: 0.1348 - qffnn_1_loss: 4.5195
    Epoch 124/250
    1/1 [==============================] - 1s 1s/step - loss: 4.4716 - qffnn_loss: 0.1353 - qffnn_1_loss: 4.4716
    Epoch 125/250
    1/1 [==============================] - 1s 1s/step - loss: 4.4227 - qffnn_loss: 0.1359 - qffnn_1_loss: 4.4227
    Epoch 126/250
    1/1 [==============================] - 1s 1s/step - loss: 4.3739 - qffnn_loss: 0.1364 - qffnn_1_loss: 4.3739
    Epoch 127/250
    1/1 [==============================] - 1s 1s/step - loss: 4.3264 - qffnn_loss: 0.1370 - qffnn_1_loss: 4.3264
    Epoch 128/250
    1/1 [==============================] - 1s 1s/step - loss: 4.2799 - qffnn_loss: 0.1376 - qffnn_1_loss: 4.2799
    Epoch 129/250
    1/1 [==============================] - 1s 1s/step - loss: 4.2327 - qffnn_loss: 0.1381 - qffnn_1_loss: 4.2327
    Epoch 130/250
    1/1 [==============================] - 1s 1s/step - loss: 4.1868 - qffnn_loss: 0.1387 - qffnn_1_loss: 4.1868
    Epoch 131/250
    1/1 [==============================] - 1s 1s/step - loss: 4.1417 - qffnn_loss: 0.1394 - qffnn_1_loss: 4.1417
    Epoch 132/250
    1/1 [==============================] - 2s 2s/step - loss: 4.0979 - qffnn_loss: 0.1400 - qffnn_1_loss: 4.0979
    Epoch 133/250
    1/1 [==============================] - 2s 2s/step - loss: 4.0563 - qffnn_loss: 0.1406 - qffnn_1_loss: 4.0563
    Epoch 134/250
    1/1 [==============================] - 1s 1s/step - loss: 4.0190 - qffnn_loss: 0.1412 - qffnn_1_loss: 4.0190
    Epoch 135/250
    1/1 [==============================] - 1s 1s/step - loss: 3.9833 - qffnn_loss: 0.1419 - qffnn_1_loss: 3.9833
    Epoch 136/250
    1/1 [==============================] - 2s 2s/step - loss: 3.9502 - qffnn_loss: 0.1425 - qffnn_1_loss: 3.9502
    Epoch 137/250
    1/1 [==============================] - 3s 3s/step - loss: 3.9216 - qffnn_loss: 0.1431 - qffnn_1_loss: 3.9216
    Epoch 138/250
    1/1 [==============================] - 1s 1s/step - loss: 3.8985 - qffnn_loss: 0.1437 - qffnn_1_loss: 3.8985
    Epoch 139/250
    1/1 [==============================] - 1s 1s/step - loss: 3.8762 - qffnn_loss: 0.1443 - qffnn_1_loss: 3.8762
    Epoch 140/250
    1/1 [==============================] - 2s 2s/step - loss: 3.8577 - qffnn_loss: 0.1449 - qffnn_1_loss: 3.8577
    Epoch 141/250
    1/1 [==============================] - 3s 3s/step - loss: 3.8415 - qffnn_loss: 0.1454 - qffnn_1_loss: 3.8415
    Epoch 142/250
    1/1 [==============================] - 4s 4s/step - loss: 3.8284 - qffnn_loss: 0.1459 - qffnn_1_loss: 3.8284
    Epoch 143/250
    1/1 [==============================] - 3s 3s/step - loss: 3.8161 - qffnn_loss: 0.1464 - qffnn_1_loss: 3.8161
    Epoch 144/250
    1/1 [==============================] - 3s 3s/step - loss: 3.8046 - qffnn_loss: 0.1469 - qffnn_1_loss: 3.8046
    Epoch 145/250
    1/1 [==============================] - 2s 2s/step - loss: 3.7951 - qffnn_loss: 0.1474 - qffnn_1_loss: 3.7951
    Epoch 146/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7832 - qffnn_loss: 0.1478 - qffnn_1_loss: 3.7832
    Epoch 147/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7736 - qffnn_loss: 0.1482 - qffnn_1_loss: 3.7736
    Epoch 148/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7607 - qffnn_loss: 0.1486 - qffnn_1_loss: 3.7607
    Epoch 149/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7494 - qffnn_loss: 0.1490 - qffnn_1_loss: 3.7494
    Epoch 150/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7345 - qffnn_loss: 0.1494 - qffnn_1_loss: 3.7345
    Epoch 151/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7199 - qffnn_loss: 0.1497 - qffnn_1_loss: 3.7199
    Epoch 152/250
    1/1 [==============================] - 1s 1s/step - loss: 3.7024 - qffnn_loss: 0.1501 - qffnn_1_loss: 3.7024
    Epoch 153/250
    1/1 [==============================] - 1s 1s/step - loss: 3.6845 - qffnn_loss: 0.1504 - qffnn_1_loss: 3.6845
    Epoch 154/250
    1/1 [==============================] - 1s 1s/step - loss: 3.6662 - qffnn_loss: 0.1508 - qffnn_1_loss: 3.6662
    Epoch 155/250
    1/1 [==============================] - 1s 1s/step - loss: 3.6455 - qffnn_loss: 0.1511 - qffnn_1_loss: 3.6455
    Epoch 156/250
    1/1 [==============================] - 1s 1s/step - loss: 3.6238 - qffnn_loss: 0.1514 - qffnn_1_loss: 3.6238
    Epoch 157/250
    1/1 [==============================] - 1s 1s/step - loss: 3.6042 - qffnn_loss: 0.1517 - qffnn_1_loss: 3.6042
    Epoch 158/250
    1/1 [==============================] - 2s 2s/step - loss: 3.5828 - qffnn_loss: 0.1521 - qffnn_1_loss: 3.5828
    Epoch 159/250
    1/1 [==============================] - 1s 1s/step - loss: 3.5620 - qffnn_loss: 0.1524 - qffnn_1_loss: 3.5620
    Epoch 160/250
    1/1 [==============================] - 1s 1s/step - loss: 3.5424 - qffnn_loss: 0.1527 - qffnn_1_loss: 3.5424
    Epoch 161/250
    1/1 [==============================] - 1s 1s/step - loss: 3.5245 - qffnn_loss: 0.1530 - qffnn_1_loss: 3.5245
    Epoch 162/250
    1/1 [==============================] - 1s 1s/step - loss: 3.5064 - qffnn_loss: 0.1533 - qffnn_1_loss: 3.5064
    Epoch 163/250
    1/1 [==============================] - 1s 1s/step - loss: 3.4905 - qffnn_loss: 0.1536 - qffnn_1_loss: 3.4905
    Epoch 164/250
    1/1 [==============================] - 2s 2s/step - loss: 3.4763 - qffnn_loss: 0.1539 - qffnn_1_loss: 3.4763
    Epoch 165/250
    1/1 [==============================] - 1s 1s/step - loss: 3.4619 - qffnn_loss: 0.1542 - qffnn_1_loss: 3.4619
    Epoch 166/250
    1/1 [==============================] - 1s 1s/step - loss: 3.4483 - qffnn_loss: 0.1545 - qffnn_1_loss: 3.4483
    Epoch 167/250
    1/1 [==============================] - 1s 1s/step - loss: 3.4350 - qffnn_loss: 0.1547 - qffnn_1_loss: 3.4350
    Epoch 168/250
    1/1 [==============================] - 1s 1s/step - loss: 3.4213 - qffnn_loss: 0.1549 - qffnn_1_loss: 3.4213
    Epoch 169/250
    1/1 [==============================] - 2s 2s/step - loss: 3.4080 - qffnn_loss: 0.1551 - qffnn_1_loss: 3.4080
    Epoch 170/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3959 - qffnn_loss: 0.1553 - qffnn_1_loss: 3.3959
    Epoch 171/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3845 - qffnn_loss: 0.1554 - qffnn_1_loss: 3.3845
    Epoch 172/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3727 - qffnn_loss: 0.1556 - qffnn_1_loss: 3.3727
    Epoch 173/250
    1/1 [==============================] - 3s 3s/step - loss: 3.3618 - qffnn_loss: 0.1557 - qffnn_1_loss: 3.3618
    Epoch 174/250
    1/1 [==============================] - 2s 2s/step - loss: 3.3520 - qffnn_loss: 0.1558 - qffnn_1_loss: 3.3520
    Epoch 175/250
    1/1 [==============================] - 3s 3s/step - loss: 3.3440 - qffnn_loss: 0.1559 - qffnn_1_loss: 3.3440
    Epoch 176/250
    1/1 [==============================] - 3s 3s/step - loss: 3.3350 - qffnn_loss: 0.1560 - qffnn_1_loss: 3.3350
    Epoch 177/250
    1/1 [==============================] - 2s 2s/step - loss: 3.3272 - qffnn_loss: 0.1560 - qffnn_1_loss: 3.3272
    Epoch 178/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3218 - qffnn_loss: 0.1561 - qffnn_1_loss: 3.3218
    Epoch 179/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3155 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.3155
    Epoch 180/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3109 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.3109
    Epoch 181/250
    1/1 [==============================] - 2s 2s/step - loss: 3.3067 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.3067
    Epoch 182/250
    1/1 [==============================] - 1s 1s/step - loss: 3.3033 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.3033
    Epoch 183/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2996 - qffnn_loss: 0.1564 - qffnn_1_loss: 3.2996
    Epoch 184/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2962 - qffnn_loss: 0.1565 - qffnn_1_loss: 3.2962
    Epoch 185/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2944 - qffnn_loss: 0.1565 - qffnn_1_loss: 3.2944
    Epoch 186/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2904 - qffnn_loss: 0.1566 - qffnn_1_loss: 3.2904
    Epoch 187/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2882 - qffnn_loss: 0.1566 - qffnn_1_loss: 3.2882
    Epoch 188/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2858 - qffnn_loss: 0.1567 - qffnn_1_loss: 3.2858
    Epoch 189/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2842 - qffnn_loss: 0.1567 - qffnn_1_loss: 3.2842
    Epoch 190/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2816 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2816
    Epoch 191/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2794 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2794
    Epoch 192/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2778 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2778
    Epoch 193/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2767 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2767
    Epoch 194/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2749 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2749
    Epoch 195/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2732 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2732
    Epoch 196/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2704 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2704
    Epoch 197/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2699 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2699
    Epoch 198/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2673 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2673
    Epoch 199/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2664 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2664
    Epoch 200/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2647 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2647
    Epoch 201/250
    1/1 [==============================] - 3s 3s/step - loss: 3.2634 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2634
    Epoch 202/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2632 - qffnn_loss: 0.1569 - qffnn_1_loss: 3.2632
    Epoch 203/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2605 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2605
    Epoch 204/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2595 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2595
    Epoch 205/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2574 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2574
    Epoch 206/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2562 - qffnn_loss: 0.1568 - qffnn_1_loss: 3.2562
    Epoch 207/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2553 - qffnn_loss: 0.1567 - qffnn_1_loss: 3.2553
    Epoch 208/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2534 - qffnn_loss: 0.1567 - qffnn_1_loss: 3.2534
    Epoch 209/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2528 - qffnn_loss: 0.1566 - qffnn_1_loss: 3.2528
    Epoch 210/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2512 - qffnn_loss: 0.1566 - qffnn_1_loss: 3.2512
    Epoch 211/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2509 - qffnn_loss: 0.1566 - qffnn_1_loss: 3.2509
    Epoch 212/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2490 - qffnn_loss: 0.1565 - qffnn_1_loss: 3.2490
    Epoch 213/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2477 - qffnn_loss: 0.1565 - qffnn_1_loss: 3.2477
    Epoch 214/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2464 - qffnn_loss: 0.1565 - qffnn_1_loss: 3.2464
    Epoch 215/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2458 - qffnn_loss: 0.1564 - qffnn_1_loss: 3.2458
    Epoch 216/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2440 - qffnn_loss: 0.1564 - qffnn_1_loss: 3.2440
    Epoch 217/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2437 - qffnn_loss: 0.1564 - qffnn_1_loss: 3.2437
    Epoch 218/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2427 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2427
    Epoch 219/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2428 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2428
    Epoch 220/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2404 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2404
    Epoch 221/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2403 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2403
    Epoch 222/250
    1/1 [==============================] - 2s 2s/step - loss: 3.2395 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2395
    Epoch 223/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2391 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2391
    Epoch 224/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2377 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2377
    Epoch 225/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2369 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2369
    Epoch 226/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2367 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2367
    Epoch 227/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2356 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2356
    Epoch 228/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2347 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2347
    Epoch 229/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2338 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2338
    Epoch 230/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2343 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2343
    Epoch 231/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2317 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2317
    Epoch 232/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2322 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2322
    Epoch 233/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2320 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2320
    Epoch 234/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2311 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2311
    Epoch 235/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2306 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2306
    Epoch 236/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2294 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2294
    Epoch 237/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2293 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2293
    Epoch 238/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2282 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2282
    Epoch 239/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2271 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2271
    Epoch 240/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2271 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2271
    Epoch 241/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2265 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2265
    Epoch 242/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2260 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2260
    Epoch 243/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2253 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2253
    Epoch 244/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2252 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2252
    Epoch 245/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2240 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2240
    Epoch 246/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2250 - qffnn_loss: 0.1562 - qffnn_1_loss: 3.2250
    Epoch 247/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2227 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2227
    Epoch 248/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2221 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2221
    Epoch 249/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2218 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2218
    Epoch 250/250
    1/1 [==============================] - 1s 1s/step - loss: 3.2222 - qffnn_loss: 0.1563 - qffnn_1_loss: 3.2222
    CPU times: user 13min 5s, sys: 1min 39s, total: 14min 45s
    Wall time: 6min 23s

```python
plt.plot(history.history['loss'])
plt.xlabel("Iteration")
plt.ylabel("Loss")
plt.show()
```

## Results

```python
parameter_values = model.predict([circuit_tensor, cost_operator_tensor, initial_parameters])[0]
print(f"Parameter values:\n {parameter_values}")
```

    Parameter values:
     [[-0.04974391  0.20074339  0.06534907  0.28605714 -0.03619862  0.24265523
      -0.03133952  0.26050368 -0.05093969  0.22009915 -0.11735244  0.21611243
      -0.1471545   0.1980844  -0.16294043  0.19584538 -0.16051918  0.1538376
      -0.2101574   0.12033881]]

```python
samples_amount = 2**16
sample_layer = tfq.layers.Sample()
output = sample_layer(circuit_tensor,
                      symbol_names=qaoa_tsp.parameters,
                      symbol_values=parameter_values,
                      repetitions=samples_amount)
```

```python
from collections import Counter

results = output.numpy()[0].astype(str).tolist()
results_to_display = [''.join(result) for result in results]
correct_results = ("0001100001000010","0010010010000001","0100100000010010","1000000100100100","1000010000100001","0100001000011000","0001001001001000","0010000110000100","0100000110000010","0010100000010100","0001010000101000","0001100000100100","1000000101000010","1000001001000001","0100001010000001", "0100000100101000", "0010010000011000", "0100100000100001", "1000001000010100", "0001001010000100", "0001010010000010","0010000101001000", "1000010000010010", "0010100001000001")
counts = Counter(results_to_display)

correct_results_count = sum(counts[result] for result in correct_results)
print(f'Correct results: {round(correct_results_count / samples_amount * 100,2)}% \n')

print(f'bin \t\t\t\t occurences \t correct?')
for row in counts.most_common():
    is_correct = row[0] in (correct_results)
    print(f"{row[0][0:4]} \t {row[0][4:8]} \t {row[0][8:12]} \t {row[0][12:]} \t {row[1]} \t\t {is_correct}")
```

    Correct results: 92.7%

    bin 				 occurences 	 correct?
    0001 	 0100 	 0010 	 1000 	 2672 		 True
    0010 	 1000 	 0001 	 0100 	 2672 		 True
    1000 	 0010 	 0100 	 0001 	 2655 		 True
    0001 	 0010 	 0100 	 1000 	 2647 		 True
    0010 	 0100 	 0001 	 1000 	 2631 		 True
    0001 	 1000 	 0010 	 0100 	 2627 		 True
    1000 	 0001 	 0010 	 0100 	 2600 		 True
    1000 	 0001 	 0100 	 0010 	 2599 		 True
    0100 	 0001 	 1000 	 0010 	 2588 		 True
    0100 	 1000 	 0001 	 0010 	 2580 		 True
    0010 	 0100 	 1000 	 0001 	 2569 		 True
    0100 	 0010 	 1000 	 0001 	 2548 		 True
    0010 	 0001 	 1000 	 0100 	 2533 		 True
    0001 	 1000 	 0100 	 0010 	 2528 		 True
    1000 	 0100 	 0001 	 0010 	 2502 		 True
    0100 	 0010 	 0001 	 1000 	 2498 		 True
    1000 	 0100 	 0010 	 0001 	 2482 		 True
    0100 	 1000 	 0010 	 0001 	 2451 		 True
    0010 	 0001 	 0100 	 1000 	 2426 		 True
    0001 	 0100 	 1000 	 0010 	 2409 		 True
    0100 	 0001 	 0010 	 1000 	 2404 		 True
    0001 	 0010 	 1000 	 0100 	 2396 		 True
    1000 	 0010 	 0001 	 0100 	 2384 		 True
    0010 	 1000 	 0100 	 0001 	 2353 		 True
    0000 	 0010 	 1000 	 0100 	 44 		 False
    0010 	 1000 	 0100 	 0000 	 36 		 False
    0000 	 0100 	 1000 	 0010 	 35 		 False
    1000 	 0100 	 0010 	 0000 	 35 		 False
    0010 	 0100 	 1000 	 0000 	 34 		 False
    0100 	 0000 	 0010 	 1000 	 34 		 False
    0010 	 0000 	 0100 	 1000 	 31 		 False
    0000 	 1000 	 0100 	 0010 	 30 		 False
    0100 	 0010 	 0000 	 1000 	 30 		 False
    0100 	 1000 	 0010 	 0000 	 30 		 False
    0100 	 1000 	 0000 	 0010 	 28 		 False
    0010 	 0000 	 1000 	 0100 	 27 		 False
    1000 	 0010 	 0000 	 0100 	 27 		 False
    1000 	 0100 	 0000 	 0010 	 26 		 False
    0000 	 0001 	 0100 	 1000 	 25 		 False
    0000 	 0010 	 0100 	 1000 	 25 		 False
    0000 	 0100 	 1000 	 0001 	 25 		 False
    0001 	 0000 	 1000 	 0100 	 24 		 False
    1000 	 0000 	 0001 	 0100 	 24 		 False
    1000 	 0100 	 0001 	 0000 	 24 		 False
    0000 	 1000 	 0100 	 0001 	 21 		 False
    1000 	 0100 	 0010 	 1000 	 21 		 False
    0001 	 0000 	 0100 	 1000 	 20 		 False
    0100 	 0001 	 0000 	 1000 	 20 		 False
    1000 	 0000 	 0010 	 0100 	 20 		 False
    0000 	 0100 	 1000 	 0011 	 19 		 False
    0100 	 1000 	 0000 	 0001 	 18 		 False
    0000 	 0001 	 1000 	 0100 	 17 		 False
    0010 	 0100 	 0000 	 1000 	 17 		 False
    0100 	 0000 	 1000 	 0010 	 17 		 False
    0100 	 1000 	 0010 	 0010 	 17 		 False
    1000 	 0011 	 0000 	 0100 	 17 		 False
    0001 	 0100 	 1000 	 0000 	 16 		 False
    0010 	 0100 	 1000 	 1000 	 16 		 False
    0100 	 0010 	 0100 	 1000 	 16 		 False
    1000 	 0100 	 0010 	 0010 	 16 		 False
    1000 	 0100 	 1000 	 0010 	 16 		 False
    0000 	 0011 	 0100 	 1000 	 15 		 False
    0010 	 0100 	 1000 	 0100 	 15 		 False
    1000 	 0100 	 0011 	 0000 	 15 		 False
    1000 	 0100 	 0100 	 0010 	 15 		 False
    0001 	 1000 	 0100 	 0000 	 14 		 False
    0010 	 0010 	 1000 	 0100 	 14 		 False
    0010 	 1000 	 0100 	 0010 	 14 		 False
    0011 	 0000 	 0100 	 1000 	 14 		 False
    0100 	 0011 	 0000 	 1000 	 14 		 False
    0100 	 1000 	 0001 	 0000 	 14 		 False
    1000 	 0100 	 0011 	 1000 	 14 		 False
    0010 	 0100 	 1000 	 0010 	 13 		 False
    0010 	 1000 	 0100 	 0100 	 13 		 False
    0011 	 0000 	 1000 	 0100 	 13 		 False
    0100 	 0010 	 0010 	 1000 	 13 		 False
    0100 	 0010 	 1000 	 0000 	 13 		 False
    0100 	 1000 	 0100 	 0010 	 13 		 False
    1000 	 1000 	 0010 	 0100 	 13 		 False
    0001 	 0001 	 0110 	 1000 	 12 		 False
    0010 	 0100 	 0100 	 1000 	 12 		 False
    0010 	 0100 	 1001 	 0000 	 12 		 False
    0010 	 1000 	 0100 	 1000 	 12 		 False
    0011 	 0100 	 1000 	 0000 	 12 		 False
    0011 	 1000 	 0100 	 0100 	 12 		 False
    1000 	 0010 	 0100 	 0000 	 12 		 False
    1000 	 0010 	 0100 	 1000 	 12 		 False
    1000 	 0100 	 0000 	 0001 	 12 		 False
    1000 	 1000 	 1000 	 1000 	 12 		 False
    0000 	 0010 	 1000 	 0101 	 11 		 False
    0000 	 0100 	 0010 	 1000 	 11 		 False
    0001 	 0010 	 0000 	 0100 	 11 		 False
    0001 	 1010 	 0100 	 0001 	 11 		 False
    0010 	 1000 	 0000 	 0100 	 11 		 False
    0011 	 0100 	 0100 	 1000 	 11 		 False
    0011 	 1000 	 0100 	 0000 	 11 		 False
    0011 	 1000 	 1000 	 0100 	 11 		 False
    0100 	 0000 	 0011 	 1000 	 11 		 False
    0100 	 0100 	 0100 	 0100 	 11 		 False
    0100 	 0100 	 1000 	 0011 	 11 		 False
    0100 	 1000 	 0011 	 0000 	 11 		 False
    1000 	 0000 	 0011 	 0100 	 11 		 False
    1000 	 0001 	 0000 	 0100 	 11 		 False
    1000 	 0010 	 1000 	 0100 	 11 		 False
    1001 	 0100 	 0010 	 0000 	 11 		 False
    0000 	 0000 	 1111 	 0000 	 10 		 False
    0100 	 0000 	 0001 	 1000 	 10 		 False
    0100 	 0100 	 0010 	 1001 	 10 		 False
    0100 	 1000 	 0001 	 1000 	 10 		 False
    1000 	 0010 	 0010 	 0100 	 10 		 False
    1000 	 0110 	 0001 	 1000 	 10 		 False
    0000 	 0001 	 0100 	 0010 	 9 		 False
    0000 	 1000 	 0010 	 0001 	 9 		 False
    0001 	 0100 	 1010 	 0001 	 9 		 False
    0010 	 0000 	 0101 	 1000 	 9 		 False
    0011 	 0100 	 1000 	 0100 	 9 		 False
    0100 	 0010 	 0000 	 1001 	 9 		 False
    0100 	 0010 	 1000 	 0100 	 9 		 False
    0100 	 0010 	 1000 	 1000 	 9 		 False
    0100 	 0011 	 1000 	 1000 	 9 		 False
    0100 	 1000 	 1000 	 0010 	 9 		 False
    0100 	 1000 	 1000 	 0011 	 9 		 False
    0101 	 1000 	 1000 	 0010 	 9 		 False
    0110 	 1000 	 0001 	 0001 	 9 		 False
    1000 	 0000 	 0010 	 0001 	 9 		 False
    1000 	 0000 	 0100 	 0010 	 9 		 False
    1000 	 0011 	 0100 	 1000 	 9 		 False
    1000 	 0100 	 0001 	 0100 	 9 		 False
    1100 	 0010 	 0001 	 0001 	 9 		 False
    0000 	 0000 	 0000 	 1111 	 8 		 False
    0000 	 0010 	 0001 	 1000 	 8 		 False
    0000 	 1000 	 0011 	 0100 	 8 		 False
    0000 	 1001 	 0100 	 0010 	 8 		 False
    0001 	 0001 	 0001 	 0001 	 8 		 False
    0001 	 0010 	 0010 	 1100 	 8 		 False
    0001 	 0100 	 0000 	 0010 	 8 		 False
    0010 	 0010 	 0100 	 1000 	 8 		 False
    0010 	 0010 	 0101 	 1000 	 8 		 False
    0010 	 0100 	 0001 	 0000 	 8 		 False
    0010 	 1000 	 1000 	 0100 	 8 		 False
    0100 	 0011 	 1000 	 0100 	 8 		 False
    0100 	 0100 	 0010 	 1000 	 8 		 False
    0100 	 0100 	 1000 	 0000 	 8 		 False
    0100 	 0100 	 1000 	 0010 	 8 		 False
    0100 	 0100 	 1001 	 0010 	 8 		 False
    0100 	 1000 	 0000 	 0011 	 8 		 False
    0100 	 1000 	 0010 	 0100 	 8 		 False
    1000 	 0010 	 0100 	 0100 	 8 		 False
    1000 	 0100 	 0000 	 0011 	 8 		 False
    1000 	 0110 	 0000 	 0001 	 8 		 False
    1000 	 1000 	 0011 	 0100 	 8 		 False
    1000 	 1000 	 0100 	 0010 	 8 		 False
    0000 	 0010 	 0001 	 0100 	 7 		 False
    0000 	 0011 	 1000 	 0100 	 7 		 False
    0000 	 0110 	 0000 	 0001 	 7 		 False
    0000 	 0110 	 1000 	 0001 	 7 		 False
    0000 	 1000 	 0010 	 0100 	 7 		 False
    0000 	 1111 	 0000 	 0000 	 7 		 False
    0001 	 0000 	 0010 	 0100 	 7 		 False
    0001 	 0000 	 1000 	 0010 	 7 		 False
    0001 	 0001 	 1100 	 0010 	 7 		 False
    0001 	 0010 	 0100 	 0000 	 7 		 False
    0001 	 0010 	 1100 	 0001 	 7 		 False
    0010 	 0001 	 0000 	 1000 	 7 		 False
    0010 	 0001 	 0100 	 0000 	 7 		 False
    0010 	 0010 	 1000 	 0101 	 7 		 False
    0010 	 0100 	 1001 	 0100 	 7 		 False
    0010 	 1000 	 0101 	 0000 	 7 		 False
    0011 	 1000 	 0100 	 1000 	 7 		 False
    0100 	 0000 	 0011 	 0000 	 7 		 False
    0100 	 0010 	 0001 	 0000 	 7 		 False
    0100 	 0100 	 0011 	 1000 	 7 		 False
    0100 	 1000 	 0011 	 0100 	 7 		 False
    0100 	 1000 	 0100 	 0011 	 7 		 False
    0100 	 1001 	 0000 	 0010 	 7 		 False
    0100 	 1010 	 0000 	 0001 	 7 		 False
    0100 	 1010 	 0100 	 0001 	 7 		 False
    0101 	 1000 	 0010 	 0000 	 7 		 False
    0110 	 0001 	 0001 	 1000 	 7 		 False
    1000 	 0001 	 0000 	 0110 	 7 		 False
    1000 	 0010 	 0010 	 0101 	 7 		 False
    1000 	 0011 	 0100 	 0000 	 7 		 False
    1000 	 0011 	 1000 	 0100 	 7 		 False
    1000 	 0100 	 0010 	 0100 	 7 		 False
    1000 	 0101 	 0010 	 1000 	 7 		 False
    1001 	 0100 	 0100 	 0010 	 7 		 False
    1010 	 0001 	 0001 	 0100 	 7 		 False
    1111 	 0000 	 0000 	 0000 	 7 		 False
    0000 	 0000 	 0000 	 0000 	 6 		 False
    0000 	 0001 	 0100 	 1010 	 6 		 False
    0000 	 0001 	 1000 	 0110 	 6 		 False
    0000 	 0010 	 0100 	 0001 	 6 		 False
    0000 	 1000 	 0001 	 0010 	 6 		 False
    0001 	 0000 	 0010 	 1000 	 6 		 False
    0001 	 0000 	 0110 	 0000 	 6 		 False
    0001 	 0001 	 0100 	 1000 	 6 		 False
    0001 	 0010 	 0001 	 1100 	 6 		 False
    0001 	 0100 	 0100 	 1010 	 6 		 False
    0001 	 1000 	 0100 	 1000 	 6 		 False
    0001 	 1000 	 0110 	 1000 	 6 		 False
    0010 	 0000 	 0001 	 1000 	 6 		 False
    0010 	 0001 	 0000 	 0100 	 6 		 False
    0010 	 0001 	 1000 	 0000 	 6 		 False
    0010 	 0010 	 0010 	 0010 	 6 		 False
    0010 	 0010 	 1001 	 0100 	 6 		 False
    0010 	 0101 	 0010 	 1000 	 6 		 False
    0010 	 1001 	 0100 	 0000 	 6 		 False
    0100 	 0000 	 0010 	 0001 	 6 		 False
    0100 	 0000 	 0010 	 1001 	 6 		 False
    0100 	 0000 	 1000 	 0011 	 6 		 False
    0100 	 0001 	 0100 	 1000 	 6 		 False
    0100 	 0001 	 0100 	 1010 	 6 		 False
    0100 	 0010 	 0100 	 1001 	 6 		 False
    0100 	 0100 	 1010 	 0001 	 6 		 False
    0100 	 1000 	 0100 	 0001 	 6 		 False
    0101 	 0000 	 0010 	 1000 	 6 		 False
    0101 	 0010 	 1000 	 1000 	 6 		 False
    1000 	 0001 	 0000 	 0010 	 6 		 False
    1000 	 0001 	 1000 	 0100 	 6 		 False
    1000 	 0010 	 0101 	 1000 	 6 		 False
    1000 	 0011 	 0100 	 0100 	 6 		 False
    1000 	 0100 	 0001 	 0001 	 6 		 False
    1000 	 0100 	 0001 	 1000 	 6 		 False
    1000 	 0100 	 0100 	 0011 	 6 		 False
    1000 	 0100 	 1000 	 0011 	 6 		 False
    1000 	 0101 	 0010 	 0010 	 6 		 False
    1000 	 1000 	 0110 	 0001 	 6 		 False
    1001 	 0000 	 0010 	 0100 	 6 		 False
    1100 	 0010 	 0010 	 0001 	 6 		 False
    0000 	 0001 	 0010 	 0100 	 5 		 False
    0000 	 0100 	 0001 	 0010 	 5 		 False
    0000 	 0101 	 1000 	 0010 	 5 		 False
    0000 	 1000 	 0001 	 0100 	 5 		 False
    0000 	 1000 	 0100 	 0011 	 5 		 False
    0000 	 1000 	 0100 	 0100 	 5 		 False
    0000 	 1000 	 0101 	 0010 	 5 		 False
    0000 	 1001 	 0010 	 0100 	 5 		 False
    0000 	 1101 	 0100 	 0100 	 5 		 False
    0001 	 0001 	 1000 	 0110 	 5 		 False
    0001 	 0100 	 1000 	 0100 	 5 		 False
    0001 	 0100 	 1000 	 1000 	 5 		 False
    0001 	 0100 	 1010 	 0000 	 5 		 False
    0001 	 1000 	 0001 	 0110 	 5 		 False
    0001 	 1100 	 0010 	 0001 	 5 		 False
    0010 	 0000 	 0001 	 0100 	 5 		 False
    0010 	 0000 	 1000 	 0001 	 5 		 False
    0010 	 0000 	 1000 	 0101 	 5 		 False
    0010 	 0000 	 1001 	 0100 	 5 		 False
    0010 	 0001 	 0001 	 1100 	 5 		 False
    0010 	 0001 	 1100 	 0010 	 5 		 False
    0010 	 0100 	 0000 	 0010 	 5 		 False
    0010 	 0100 	 0000 	 1001 	 5 		 False
    0010 	 0100 	 0010 	 1000 	 5 		 False
    0010 	 0100 	 0100 	 1001 	 5 		 False
    0010 	 0101 	 1000 	 1000 	 5 		 False
    0010 	 1000 	 0101 	 0010 	 5 		 False
    0010 	 1000 	 1000 	 0101 	 5 		 False
    0010 	 1100 	 0001 	 0001 	 5 		 False
    0011 	 0000 	 1000 	 0000 	 5 		 False
    0011 	 0100 	 1000 	 1000 	 5 		 False
    0011 	 1000 	 1000 	 0000 	 5 		 False
    0100 	 0000 	 1000 	 0001 	 5 		 False
    0100 	 0000 	 1001 	 0000 	 5 		 False
    0100 	 0001 	 0001 	 1010 	 5 		 False
    0100 	 0001 	 1000 	 0100 	 5 		 False
    0100 	 0010 	 0100 	 0001 	 5 		 False
    0100 	 0100 	 0000 	 1000 	 5 		 False
    0100 	 0100 	 0001 	 1000 	 5 		 False
    0100 	 1000 	 0000 	 1000 	 5 		 False
    0100 	 1000 	 0010 	 1000 	 5 		 False
    0100 	 1001 	 0010 	 0010 	 5 		 False
    0100 	 1001 	 0100 	 0010 	 5 		 False
    0110 	 1000 	 0000 	 0000 	 5 		 False
    0110 	 1000 	 1000 	 0001 	 5 		 False
    1000 	 0000 	 0101 	 0010 	 5 		 False
    1000 	 0001 	 0001 	 0110 	 5 		 False
    1000 	 0010 	 0000 	 0001 	 5 		 False
    1000 	 0010 	 0000 	 0101 	 5 		 False
    1000 	 0010 	 1000 	 0101 	 5 		 False
    1000 	 0100 	 0000 	 1000 	 5 		 False
    1000 	 0100 	 0011 	 0100 	 5 		 False
    1000 	 0101 	 0000 	 1000 	 5 		 False
    1000 	 0101 	 0010 	 0000 	 5 		 False
    1000 	 1000 	 0010 	 0101 	 5 		 False
    1000 	 1000 	 0100 	 0001 	 5 		 False
    1000 	 1000 	 0100 	 0011 	 5 		 False
    1000 	 1000 	 0101 	 0010 	 5 		 False
    1010 	 0000 	 0001 	 0100 	 5 		 False
    1100 	 0001 	 0001 	 0010 	 5 		 False
    0000 	 0010 	 0000 	 1100 	 4 		 False
    0000 	 0010 	 0010 	 1000 	 4 		 False
    0000 	 0010 	 0100 	 1001 	 4 		 False
    0000 	 0010 	 1000 	 1000 	 4 		 False
    0000 	 0100 	 0010 	 0001 	 4 		 False
    0000 	 0100 	 0100 	 1000 	 4 		 False
    0000 	 0101 	 0000 	 0010 	 4 		 False
    0000 	 1000 	 0000 	 0011 	 4 		 False
    0000 	 1010 	 0000 	 0100 	 4 		 False
    0001 	 0000 	 0100 	 0001 	 4 		 False
    0001 	 0000 	 1010 	 0100 	 4 		 False
    0001 	 0001 	 0000 	 0100 	 4 		 False
    0001 	 0001 	 0010 	 1100 	 4 		 False
    0001 	 0001 	 1000 	 0100 	 4 		 False
    0001 	 0001 	 1010 	 0100 	 4 		 False
    0001 	 0010 	 1000 	 0000 	 4 		 False
    0001 	 0010 	 1001 	 0100 	 4 		 False
    0001 	 0100 	 0001 	 1010 	 4 		 False
    0001 	 0100 	 0100 	 1000 	 4 		 False
    0001 	 0100 	 1010 	 0100 	 4 		 False
    0001 	 0110 	 0001 	 1000 	 4 		 False
    0001 	 0110 	 1000 	 1000 	 4 		 False
    0001 	 1000 	 0010 	 1000 	 4 		 False
    0001 	 1000 	 0110 	 0001 	 4 		 False
    0001 	 1100 	 0010 	 0010 	 4 		 False
    0010 	 0000 	 0100 	 0001 	 4 		 False
    0010 	 0000 	 1100 	 0000 	 4 		 False
    0010 	 0001 	 0010 	 0001 	 4 		 False
    0010 	 0001 	 0010 	 1100 	 4 		 False
    0010 	 0010 	 0001 	 1100 	 4 		 False
    0010 	 0010 	 0100 	 1001 	 4 		 False
    0010 	 0100 	 0000 	 0001 	 4 		 False
    0010 	 0100 	 0010 	 0000 	 4 		 False
    0010 	 0101 	 1000 	 0010 	 4 		 False
    0010 	 1000 	 0001 	 0000 	 4 		 False
    0010 	 1000 	 0010 	 0101 	 4 		 False
    0010 	 1000 	 0101 	 1000 	 4 		 False
    0010 	 1001 	 0100 	 0010 	 4 		 False
    0010 	 1100 	 0001 	 0010 	 4 		 False
    0100 	 0000 	 0000 	 1010 	 4 		 False
    0100 	 0000 	 1000 	 1000 	 4 		 False
    0100 	 0001 	 0000 	 1010 	 4 		 False
    0100 	 0001 	 1000 	 0000 	 4 		 False
    0100 	 0010 	 0010 	 1001 	 4 		 False
    0100 	 0011 	 1000 	 0000 	 4 		 False
    0100 	 1000 	 0000 	 0100 	 4 		 False
    0100 	 1000 	 0001 	 0001 	 4 		 False
    0100 	 1000 	 0011 	 1000 	 4 		 False
    0100 	 1000 	 0100 	 0000 	 4 		 False
    0100 	 1010 	 0001 	 0001 	 4 		 False
    0101 	 0010 	 0001 	 1000 	 4 		 False
    0101 	 0010 	 1000 	 0010 	 4 		 False
    0101 	 1000 	 0010 	 1000 	 4 		 False
    0110 	 0000 	 0001 	 1000 	 4 		 False
    0110 	 0001 	 1000 	 0001 	 4 		 False
    0110 	 0001 	 1000 	 1000 	 4 		 False
    0110 	 1000 	 0001 	 0000 	 4 		 False
    1000 	 0000 	 0000 	 0110 	 4 		 False
    1000 	 0000 	 0001 	 0010 	 4 		 False
    1000 	 0001 	 0100 	 1000 	 4 		 False
    1000 	 0001 	 0110 	 0001 	 4 		 False
    1000 	 0001 	 1000 	 0010 	 4 		 False
    1000 	 0010 	 0001 	 1100 	 4 		 False
    1000 	 0010 	 0010 	 0000 	 4 		 False
    1000 	 1000 	 0001 	 0110 	 4 		 False
    1001 	 0000 	 0010 	 0000 	 4 		 False
    1001 	 0010 	 0010 	 0100 	 4 		 False
    1001 	 0010 	 0100 	 0100 	 4 		 False
    1001 	 0100 	 0010 	 0010 	 4 		 False
    1010 	 0100 	 0100 	 0001 	 4 		 False
    1100 	 0010 	 0001 	 0010 	 4 		 False
    0000 	 0000 	 0010 	 1100 	 3 		 False
    0000 	 0000 	 0100 	 1000 	 3 		 False
    0000 	 0000 	 0100 	 1010 	 3 		 False
    0000 	 0000 	 1000 	 0101 	 3 		 False
    0000 	 0001 	 0000 	 0110 	 3 		 False
    0000 	 0001 	 0110 	 1000 	 3 		 False
    0000 	 0001 	 1000 	 0010 	 3 		 False
    0000 	 0010 	 0100 	 0010 	 3 		 False
    0000 	 0010 	 1000 	 0001 	 3 		 False
    0000 	 0011 	 0000 	 1000 	 3 		 False
    0000 	 0100 	 0000 	 1000 	 3 		 False
    0000 	 0100 	 0001 	 1000 	 3 		 False
    0000 	 0100 	 0011 	 1000 	 3 		 False
    0000 	 0100 	 0100 	 1101 	 3 		 False
    0000 	 0100 	 0110 	 1000 	 3 		 False
    0000 	 0100 	 1000 	 0100 	 3 		 False
    0000 	 0100 	 1010 	 0001 	 3 		 False
    0000 	 0101 	 0010 	 1000 	 3 		 False
    0000 	 0101 	 1000 	 1000 	 3 		 False
    0000 	 0110 	 1000 	 0000 	 3 		 False
    0000 	 1000 	 0100 	 1000 	 3 		 False
    0000 	 1010 	 0010 	 0100 	 3 		 False
    0000 	 1101 	 1000 	 1000 	 3 		 False
    0001 	 0000 	 1010 	 0000 	 3 		 False
    0001 	 0001 	 0100 	 1010 	 3 		 False
    0001 	 0010 	 0000 	 1000 	 3 		 False
    0001 	 0010 	 1000 	 0010 	 3 		 False
    0001 	 0010 	 1100 	 0010 	 3 		 False
    0001 	 0100 	 0010 	 0000 	 3 		 False
    0001 	 0100 	 0010 	 0100 	 3 		 False
    0001 	 0110 	 1000 	 0000 	 3 		 False
    0001 	 1000 	 0000 	 0100 	 3 		 False
    0001 	 1000 	 0010 	 0000 	 3 		 False
    0001 	 1000 	 0110 	 0000 	 3 		 False
    0001 	 1010 	 0001 	 0100 	 3 		 False
    0010 	 0000 	 0100 	 1001 	 3 		 False
    0010 	 0000 	 1000 	 0000 	 3 		 False
    0010 	 0001 	 0100 	 0001 	 3 		 False
    0010 	 0001 	 1000 	 0001 	 3 		 False
    0010 	 0001 	 1100 	 0001 	 3 		 False
    0010 	 0010 	 0000 	 0001 	 3 		 False
    0010 	 0010 	 0000 	 0100 	 3 		 False
    0010 	 0010 	 0100 	 0000 	 3 		 False
    0010 	 0101 	 0000 	 0001 	 3 		 False
    0010 	 0101 	 0000 	 1000 	 3 		 False
    0010 	 1000 	 0000 	 0001 	 3 		 False
    0010 	 1000 	 0000 	 1001 	 3 		 False
    0010 	 1000 	 0001 	 0001 	 3 		 False
    0010 	 1000 	 0001 	 1000 	 3 		 False
    0010 	 1001 	 0100 	 0100 	 3 		 False
    0010 	 1011 	 0000 	 0010 	 3 		 False
    0010 	 1100 	 0000 	 0000 	 3 		 False
    0010 	 1100 	 0010 	 0001 	 3 		 False
    0011 	 0100 	 0000 	 1000 	 3 		 False
    0011 	 0100 	 0100 	 0000 	 3 		 False
    0100 	 0000 	 0010 	 0000 	 3 		 False
    0100 	 0000 	 0100 	 1000 	 3 		 False
    0100 	 0000 	 1000 	 0100 	 3 		 False
    0100 	 0000 	 1001 	 0010 	 3 		 False
    0100 	 0001 	 0000 	 0010 	 3 		 False
    0100 	 0001 	 0000 	 0100 	 3 		 False
    0100 	 0001 	 0001 	 1000 	 3 		 False
    0100 	 0001 	 1010 	 0001 	 3 		 False
    0100 	 0001 	 1010 	 0100 	 3 		 False
    0100 	 0010 	 1000 	 0010 	 3 		 False
    0100 	 0010 	 1001 	 0100 	 3 		 False
    0100 	 0011 	 0100 	 1000 	 3 		 False
    0100 	 0100 	 0000 	 0010 	 3 		 False
    0100 	 0100 	 0010 	 0000 	 3 		 False
    0100 	 1000 	 1000 	 0000 	 3 		 False
    0100 	 1000 	 1010 	 0001 	 3 		 False
    0100 	 1001 	 0010 	 0000 	 3 		 False
    0100 	 1001 	 0010 	 0001 	 3 		 False
    0100 	 1001 	 0010 	 0100 	 3 		 False
    0100 	 1010 	 0000 	 0000 	 3 		 False
    0100 	 1010 	 0000 	 0100 	 3 		 False
    0100 	 1010 	 0001 	 0100 	 3 		 False
    0101 	 0000 	 0000 	 1000 	 3 		 False
    0101 	 0010 	 0000 	 1000 	 3 		 False
    0101 	 0010 	 0010 	 1000 	 3 		 False
    0101 	 1000 	 0000 	 1000 	 3 		 False
    0101 	 1000 	 0010 	 0010 	 3 		 False
    0110 	 1000 	 0001 	 1000 	 3 		 False
    1000 	 0000 	 0100 	 0000 	 3 		 False
    1000 	 0000 	 0100 	 0001 	 3 		 False
    1000 	 0001 	 0010 	 0000 	 3 		 False
    1000 	 0001 	 0110 	 1000 	 3 		 False
    1000 	 0001 	 1000 	 0110 	 3 		 False
    1000 	 0010 	 0100 	 0010 	 3 		 False
    1000 	 0010 	 0101 	 0010 	 3 		 False
    1000 	 0100 	 1000 	 0001 	 3 		 False
    1000 	 0101 	 0000 	 0010 	 3 		 False
    1000 	 0101 	 1000 	 0010 	 3 		 False
    1000 	 0110 	 0001 	 0000 	 3 		 False
    1000 	 0110 	 0001 	 0001 	 3 		 False
    1000 	 1000 	 0110 	 0000 	 3 		 False
    1000 	 1100 	 0010 	 0001 	 3 		 False
    1001 	 0000 	 0100 	 0000 	 3 		 False
    1001 	 0010 	 0000 	 0100 	 3 		 False
    1001 	 0100 	 0000 	 0000 	 3 		 False
    1001 	 0100 	 0000 	 0010 	 3 		 False
    1010 	 0100 	 0001 	 0100 	 3 		 False
    1100 	 0000 	 0010 	 0010 	 3 		 False
    1100 	 0000 	 0011 	 0000 	 3 		 False
    1100 	 0001 	 0010 	 0010 	 3 		 False
    1100 	 0010 	 0000 	 0001 	 3 		 False
    1100 	 1000 	 1000 	 0011 	 3 		 False
    0000 	 0000 	 0001 	 0110 	 2 		 False
    0000 	 0000 	 0001 	 1100 	 2 		 False
    0000 	 0000 	 0010 	 0101 	 2 		 False
    0000 	 0000 	 0100 	 0000 	 2 		 False
    0000 	 0000 	 1100 	 0010 	 2 		 False
    0000 	 0001 	 0000 	 0100 	 2 		 False
    0000 	 0001 	 0000 	 1100 	 2 		 False
    0000 	 0001 	 0001 	 0010 	 2 		 False
    0000 	 0001 	 0001 	 0100 	 2 		 False
    0000 	 0001 	 0001 	 0111 	 2 		 False
    0000 	 0001 	 0010 	 1000 	 2 		 False
    0000 	 0001 	 1000 	 1100 	 2 		 False
    0000 	 0001 	 1010 	 0000 	 2 		 False
    0000 	 0001 	 1010 	 0100 	 2 		 False
    0000 	 0010 	 0000 	 0100 	 2 		 False
    0000 	 0010 	 0010 	 0101 	 2 		 False
    0000 	 0010 	 0010 	 1001 	 2 		 False
    0000 	 0010 	 0100 	 0000 	 2 		 False
    0000 	 0010 	 0100 	 1010 	 2 		 False
    0000 	 0010 	 0100 	 1100 	 2 		 False
    0000 	 0010 	 1000 	 0010 	 2 		 False
    0000 	 0010 	 1010 	 0100 	 2 		 False
    0000 	 0010 	 1011 	 0010 	 2 		 False
    0000 	 0011 	 0100 	 0000 	 2 		 False
    0000 	 0011 	 0100 	 0100 	 2 		 False
    0000 	 0100 	 0000 	 0010 	 2 		 False
    0000 	 0100 	 0000 	 0011 	 2 		 False
    0000 	 0100 	 0000 	 1111 	 2 		 False
    0000 	 0100 	 0001 	 0001 	 2 		 False
    0000 	 0100 	 0100 	 0001 	 2 		 False
    0000 	 0100 	 0100 	 0010 	 2 		 False
    0000 	 0100 	 0100 	 0011 	 2 		 False
    0000 	 0100 	 0100 	 1001 	 2 		 False
    0000 	 0101 	 0001 	 0010 	 2 		 False
    0000 	 0101 	 0010 	 0010 	 2 		 False
    0000 	 0101 	 0100 	 1000 	 2 		 False
    0000 	 0111 	 0001 	 0001 	 2 		 False
    0000 	 1000 	 0000 	 0001 	 2 		 False
    0000 	 1000 	 0000 	 0010 	 2 		 False
    0000 	 1000 	 0000 	 0101 	 2 		 False
    0000 	 1000 	 0001 	 0001 	 2 		 False
    0000 	 1000 	 0010 	 1100 	 2 		 False
    0000 	 1000 	 0110 	 0100 	 2 		 False
    0000 	 1000 	 1000 	 1110 	 2 		 False
    0000 	 1000 	 1010 	 0100 	 2 		 False
    0000 	 1001 	 0100 	 0100 	 2 		 False
    0000 	 1001 	 1000 	 0010 	 2 		 False
    0000 	 1001 	 1000 	 0100 	 2 		 False
    0000 	 1010 	 0000 	 0001 	 2 		 False
    0000 	 1010 	 0000 	 0101 	 2 		 False
    0000 	 1010 	 0100 	 0100 	 2 		 False
    0000 	 1100 	 0001 	 0000 	 2 		 False
    0000 	 1100 	 0001 	 0010 	 2 		 False
    0000 	 1100 	 1000 	 0001 	 2 		 False
    0000 	 1110 	 0010 	 0010 	 2 		 False
    0001 	 0000 	 0000 	 1100 	 2 		 False
    0001 	 0000 	 0001 	 0111 	 2 		 False
    0001 	 0000 	 0001 	 1011 	 2 		 False
    0001 	 0000 	 0010 	 0000 	 2 		 False
    0001 	 0000 	 1000 	 0000 	 2 		 False
    0001 	 0000 	 1000 	 0001 	 2 		 False
    0001 	 0000 	 1000 	 1000 	 2 		 False
    0001 	 0000 	 1010 	 1000 	 2 		 False
    0001 	 0001 	 0000 	 0010 	 2 		 False
    0001 	 0001 	 0000 	 1000 	 2 		 False
    0001 	 0001 	 0100 	 1110 	 2 		 False
    0001 	 0001 	 0110 	 0000 	 2 		 False
    0001 	 0001 	 1000 	 0000 	 2 		 False
    0001 	 0010 	 0001 	 0100 	 2 		 False
    0001 	 0010 	 0010 	 0000 	 2 		 False
    0001 	 0010 	 0100 	 0010 	 2 		 False
    0001 	 0010 	 0100 	 1100 	 2 		 False
    0001 	 0010 	 0100 	 1110 	 2 		 False
    0001 	 0010 	 1100 	 0100 	 2 		 False
    0001 	 0100 	 0000 	 1000 	 2 		 False
    0001 	 0100 	 0010 	 0001 	 2 		 False
    0001 	 0100 	 0010 	 1010 	 2 		 False
    0001 	 0101 	 0010 	 1000 	 2 		 False
    0001 	 0110 	 0010 	 1000 	 2 		 False
    0001 	 0110 	 0100 	 1000 	 2 		 False
    0001 	 0110 	 1000 	 0001 	 2 		 False
    0001 	 1000 	 0000 	 0000 	 2 		 False
    0001 	 1000 	 0000 	 0010 	 2 		 False
    0001 	 1000 	 0000 	 1000 	 2 		 False
    0001 	 1000 	 0001 	 0000 	 2 		 False
    0001 	 1000 	 0010 	 0101 	 2 		 False
    0001 	 1000 	 0101 	 0010 	 2 		 False
    0001 	 1000 	 1000 	 0110 	 2 		 False
    0001 	 1000 	 1010 	 0000 	 2 		 False
    0001 	 1001 	 0000 	 0100 	 2 		 False
    0001 	 1010 	 0000 	 0000 	 2 		 False
    0001 	 1010 	 0010 	 0100 	 2 		 False
    0001 	 1010 	 0100 	 0100 	 2 		 False
    0001 	 1100 	 0000 	 1000 	 2 		 False
    0001 	 1100 	 0001 	 0010 	 2 		 False
    0001 	 1100 	 0010 	 0000 	 2 		 False
    0001 	 1100 	 0100 	 0010 	 2 		 False
    0010 	 0000 	 0000 	 0000 	 2 		 False
    0010 	 0000 	 0000 	 1001 	 2 		 False
    0010 	 0000 	 0001 	 0000 	 2 		 False
    0010 	 0000 	 0001 	 0010 	 2 		 False
    0010 	 0000 	 0001 	 1100 	 2 		 False
    0010 	 0000 	 0010 	 1000 	 2 		 False
    0010 	 0000 	 0010 	 1100 	 2 		 False
    0010 	 0000 	 0011 	 0100 	 2 		 False
    0010 	 0000 	 0100 	 0000 	 2 		 False
    0010 	 0000 	 0111 	 0010 	 2 		 False
    0010 	 0000 	 1000 	 0010 	 2 		 False
    0010 	 0000 	 1000 	 1000 	 2 		 False
    0010 	 0000 	 1001 	 0000 	 2 		 False
    0010 	 0000 	 1011 	 0010 	 2 		 False
    0010 	 0000 	 1100 	 0010 	 2 		 False
    0010 	 0000 	 1110 	 0010 	 2 		 False
    0010 	 0001 	 0000 	 0000 	 2 		 False
    0010 	 0001 	 0000 	 1111 	 2 		 False
    0010 	 0001 	 0001 	 0000 	 2 		 False
    0010 	 0001 	 0010 	 1000 	 2 		 False
    0010 	 0001 	 0100 	 0010 	 2 		 False
    0010 	 0001 	 1100 	 0100 	 2 		 False
    0010 	 0010 	 0000 	 1000 	 2 		 False
    0010 	 0010 	 1100 	 0001 	 2 		 False
    0010 	 0011 	 0000 	 0100 	 2 		 False
    0010 	 0011 	 0100 	 0000 	 2 		 False
    0010 	 0011 	 0100 	 1000 	 2 		 False
    0010 	 0100 	 0000 	 0100 	 2 		 False
    0010 	 0100 	 0001 	 0100 	 2 		 False
    0010 	 0100 	 0010 	 1001 	 2 		 False
    0010 	 0100 	 0101 	 0000 	 2 		 False
    0010 	 0100 	 1001 	 0010 	 2 		 False
    0010 	 0100 	 1010 	 0000 	 2 		 False
    0010 	 0101 	 0001 	 1000 	 2 		 False
    0010 	 0101 	 1000 	 0000 	 2 		 False
    0010 	 1000 	 0000 	 0010 	 2 		 False
    0010 	 1000 	 0000 	 0011 	 2 		 False
    0010 	 1000 	 0000 	 0110 	 2 		 False
    0010 	 1000 	 0000 	 1000 	 2 		 False
    0010 	 1000 	 0001 	 0110 	 2 		 False
    0010 	 1000 	 0010 	 0000 	 2 		 False
    0010 	 1000 	 0010 	 0001 	 2 		 False
    0010 	 1000 	 0111 	 1000 	 2 		 False
    0010 	 1001 	 0000 	 0010 	 2 		 False
    0010 	 1010 	 0001 	 0100 	 2 		 False
    0011 	 0000 	 0010 	 1000 	 2 		 False
    0011 	 0000 	 1000 	 1000 	 2 		 False
    0011 	 1000 	 0000 	 0000 	 2 		 False
    0100 	 0000 	 0000 	 0011 	 2 		 False
    0100 	 0000 	 0000 	 1001 	 2 		 False
    0100 	 0000 	 0001 	 0001 	 2 		 False
    0100 	 0000 	 0001 	 0010 	 2 		 False
    0100 	 0000 	 0001 	 1010 	 2 		 False
    0100 	 0000 	 0010 	 0010 	 2 		 False
    0100 	 0000 	 0011 	 0100 	 2 		 False
    0100 	 0000 	 0100 	 0001 	 2 		 False
    0100 	 0000 	 0100 	 1010 	 2 		 False
    0100 	 0000 	 1000 	 0000 	 2 		 False
    0100 	 0000 	 1000 	 0110 	 2 		 False
    0100 	 0000 	 1000 	 1010 	 2 		 False
    0100 	 0000 	 1101 	 0100 	 2 		 False
    0100 	 0001 	 0001 	 0010 	 2 		 False
    0100 	 0001 	 0100 	 0010 	 2 		 False
    0100 	 0001 	 1000 	 1000 	 2 		 False
    0100 	 0001 	 1010 	 0010 	 2 		 False
    0100 	 0010 	 0000 	 0001 	 2 		 False
    0100 	 0010 	 0000 	 0010 	 2 		 False
    0100 	 0010 	 0000 	 0100 	 2 		 False
    0100 	 0010 	 0000 	 1111 	 2 		 False
    0100 	 0010 	 0001 	 0001 	 2 		 False
    0100 	 0010 	 0010 	 0000 	 2 		 False
    0100 	 0010 	 0010 	 0100 	 2 		 False
    0100 	 0010 	 1001 	 0010 	 2 		 False
    0100 	 0010 	 1010 	 0001 	 2 		 False
    0100 	 0011 	 1000 	 0001 	 2 		 False
    0100 	 0100 	 0000 	 1001 	 2 		 False
    0100 	 0100 	 0000 	 1010 	 2 		 False
    0100 	 0100 	 0001 	 0000 	 2 		 False
    0100 	 0100 	 0010 	 0010 	 2 		 False
    0100 	 0100 	 0100 	 1100 	 2 		 False
    0100 	 0100 	 1101 	 1000 	 2 		 False
    0100 	 0110 	 0000 	 1000 	 2 		 False
    0100 	 0111 	 0100 	 0010 	 2 		 False
    0100 	 1000 	 0000 	 0000 	 2 		 False
    0100 	 1000 	 0000 	 1001 	 2 		 False
    0100 	 1000 	 0110 	 0000 	 2 		 False
    0100 	 1000 	 1000 	 0001 	 2 		 False
    0100 	 1000 	 1000 	 0100 	 2 		 False
    0101 	 0000 	 0010 	 0000 	 2 		 False
    0101 	 0000 	 1000 	 0010 	 2 		 False
    0101 	 0000 	 1000 	 0100 	 2 		 False
    0101 	 0000 	 1000 	 1000 	 2 		 False
    0101 	 0001 	 0010 	 0000 	 2 		 False
    0101 	 0001 	 1000 	 0010 	 2 		 False
    0101 	 0010 	 0000 	 0000 	 2 		 False
    0110 	 0000 	 0001 	 0000 	 2 		 False
    0110 	 0000 	 0001 	 0001 	 2 		 False
    0110 	 0000 	 0100 	 1000 	 2 		 False
    0110 	 0001 	 0010 	 1000 	 2 		 False
    0110 	 0001 	 1000 	 0010 	 2 		 False
    0110 	 0010 	 0001 	 0000 	 2 		 False
    0110 	 0010 	 0001 	 1000 	 2 		 False
    0111 	 1000 	 0001 	 1000 	 2 		 False
    1000 	 0000 	 0000 	 0011 	 2 		 False
    1000 	 0000 	 0000 	 0100 	 2 		 False
    1000 	 0000 	 0001 	 0000 	 2 		 False
    1000 	 0000 	 0010 	 0110 	 2 		 False
    1000 	 0000 	 0011 	 0000 	 2 		 False
    1000 	 0000 	 0100 	 0011 	 2 		 False
    1000 	 0000 	 0100 	 0100 	 2 		 False
    1000 	 0000 	 0100 	 1000 	 2 		 False
    1000 	 0000 	 0110 	 0000 	 2 		 False
    1000 	 0000 	 1000 	 1110 	 2 		 False
    1000 	 0001 	 0000 	 0000 	 2 		 False
    1000 	 0001 	 0001 	 0100 	 2 		 False
    1000 	 0001 	 0010 	 0001 	 2 		 False
    1000 	 0001 	 0010 	 0101 	 2 		 False
    1000 	 0001 	 0011 	 0000 	 2 		 False
    1000 	 0001 	 0100 	 0011 	 2 		 False
    1000 	 0001 	 0100 	 0100 	 2 		 False
    1000 	 0001 	 0110 	 0010 	 2 		 False
    1000 	 0001 	 1010 	 0100 	 2 		 False
    1000 	 0001 	 1100 	 0010 	 2 		 False
    1000 	 0010 	 0000 	 1000 	 2 		 False
    1000 	 0010 	 0001 	 0010 	 2 		 False
    1000 	 0010 	 0010 	 0001 	 2 		 False
    1000 	 0010 	 0011 	 0100 	 2 		 False
    1000 	 0010 	 0101 	 0001 	 2 		 False
    1000 	 0010 	 0110 	 0000 	 2 		 False
    1000 	 0010 	 1000 	 0000 	 2 		 False
    1000 	 0011 	 0000 	 0000 	 2 		 False
    1000 	 0100 	 0000 	 0100 	 2 		 False
    1000 	 0100 	 0110 	 0001 	 2 		 False
    1000 	 0100 	 1000 	 0000 	 2 		 False
    1000 	 0100 	 1100 	 0011 	 2 		 False
    1000 	 0101 	 0001 	 0000 	 2 		 False
    1000 	 0101 	 0010 	 0001 	 2 		 False
    1000 	 0110 	 0000 	 1000 	 2 		 False
    1000 	 1000 	 0000 	 0100 	 2 		 False
    1000 	 1000 	 0000 	 0110 	 2 		 False
    1000 	 1000 	 0001 	 0000 	 2 		 False
    1000 	 1000 	 0010 	 0000 	 2 		 False
    1000 	 1000 	 0101 	 0000 	 2 		 False
    1000 	 1011 	 0000 	 1000 	 2 		 False
    1000 	 1100 	 0000 	 0010 	 2 		 False
    1000 	 1100 	 0001 	 0010 	 2 		 False
    1000 	 1100 	 0011 	 1000 	 2 		 False
    1001 	 0001 	 0100 	 0000 	 2 		 False
    1001 	 0010 	 0100 	 0000 	 2 		 False
    1001 	 0010 	 1000 	 0000 	 2 		 False
    1001 	 0100 	 0010 	 0100 	 2 		 False
    1001 	 0110 	 0001 	 0001 	 2 		 False
    1001 	 1000 	 0100 	 0000 	 2 		 False
    1010 	 0000 	 0100 	 0000 	 2 		 False
    1010 	 0000 	 0100 	 0100 	 2 		 False
    1010 	 0010 	 0100 	 0001 	 2 		 False
    1010 	 0100 	 0000 	 0000 	 2 		 False
    1010 	 0100 	 0000 	 0001 	 2 		 False
    1010 	 0100 	 0000 	 0010 	 2 		 False
    1010 	 0100 	 0010 	 0001 	 2 		 False
    1010 	 0100 	 0100 	 0000 	 2 		 False
    1010 	 1000 	 0001 	 0000 	 2 		 False
    1010 	 1000 	 1101 	 0000 	 2 		 False
    1011 	 1000 	 0000 	 1000 	 2 		 False
    1100 	 0001 	 0010 	 0001 	 2 		 False
    1100 	 0001 	 0010 	 0100 	 2 		 False
    1100 	 0010 	 0000 	 0000 	 2 		 False
    1100 	 0100 	 0010 	 0001 	 2 		 False
    1100 	 1000 	 0010 	 0001 	 2 		 False
    1101 	 0000 	 1000 	 1000 	 2 		 False
    1101 	 1000 	 1000 	 0000 	 2 		 False
    1111 	 0000 	 0010 	 0000 	 2 		 False
    0000 	 0000 	 0000 	 0100 	 1 		 False
    0000 	 0000 	 0001 	 0001 	 1 		 False
    0000 	 0000 	 0010 	 1000 	 1 		 False
    0000 	 0000 	 0011 	 0100 	 1 		 False
    0000 	 0000 	 0011 	 1011 	 1 		 False
    0000 	 0000 	 0100 	 0010 	 1 		 False
    0000 	 0000 	 0100 	 1001 	 1 		 False
    0000 	 0000 	 0100 	 1011 	 1 		 False
    0000 	 0000 	 0100 	 1111 	 1 		 False
    0000 	 0000 	 0101 	 1000 	 1 		 False
    0000 	 0000 	 0101 	 1010 	 1 		 False
    0000 	 0000 	 1000 	 0000 	 1 		 False
    0000 	 0000 	 1000 	 0001 	 1 		 False
    0000 	 0000 	 1000 	 0011 	 1 		 False
    0000 	 0000 	 1001 	 0010 	 1 		 False
    0000 	 0000 	 1001 	 0100 	 1 		 False
    0000 	 0000 	 1001 	 0110 	 1 		 False
    0000 	 0000 	 1010 	 0001 	 1 		 False
    0000 	 0000 	 1010 	 0011 	 1 		 False
    0000 	 0000 	 1010 	 0100 	 1 		 False
    0000 	 0000 	 1100 	 1110 	 1 		 False
    0000 	 0000 	 1101 	 0010 	 1 		 False
    0000 	 0000 	 1101 	 1001 	 1 		 False
    0000 	 0000 	 1111 	 1000 	 1 		 False
    0000 	 0001 	 0000 	 1000 	 1 		 False
    0000 	 0001 	 0000 	 1010 	 1 		 False
    0000 	 0001 	 0000 	 1110 	 1 		 False
    0000 	 0001 	 0001 	 1000 	 1 		 False
    0000 	 0001 	 0001 	 1011 	 1 		 False
    0000 	 0001 	 0001 	 1100 	 1 		 False
    0000 	 0001 	 0010 	 0010 	 1 		 False
    0000 	 0001 	 0010 	 1100 	 1 		 False
    0000 	 0001 	 0011 	 0100 	 1 		 False
    0000 	 0001 	 0101 	 0010 	 1 		 False
    0000 	 0001 	 0111 	 1010 	 1 		 False
    0000 	 0001 	 1000 	 0001 	 1 		 False
    0000 	 0001 	 1000 	 1000 	 1 		 False
    0000 	 0001 	 1000 	 1010 	 1 		 False
    0000 	 0001 	 1000 	 1111 	 1 		 False
    0000 	 0001 	 1010 	 0101 	 1 		 False
    0000 	 0001 	 1011 	 0001 	 1 		 False
    0000 	 0001 	 1100 	 1000 	 1 		 False
    0000 	 0001 	 1111 	 0000 	 1 		 False
    0000 	 0010 	 0000 	 1101 	 1 		 False
    0000 	 0010 	 0001 	 0101 	 1 		 False
    0000 	 0010 	 0010 	 0001 	 1 		 False
    0000 	 0010 	 0010 	 0100 	 1 		 False
    0000 	 0010 	 0010 	 1110 	 1 		 False
    0000 	 0010 	 0011 	 0100 	 1 		 False
    0000 	 0010 	 0100 	 0101 	 1 		 False
    0000 	 0010 	 0101 	 0001 	 1 		 False
    0000 	 0010 	 0101 	 1000 	 1 		 False
    0000 	 0010 	 0111 	 0001 	 1 		 False
    0000 	 0010 	 1000 	 0000 	 1 		 False
    0000 	 0010 	 1000 	 1001 	 1 		 False
    0000 	 0010 	 1000 	 1100 	 1 		 False
    0000 	 0010 	 1001 	 0000 	 1 		 False
    0000 	 0010 	 1001 	 0001 	 1 		 False
    0000 	 0010 	 1001 	 0110 	 1 		 False
    0000 	 0010 	 1010 	 0001 	 1 		 False
    0000 	 0010 	 1100 	 0000 	 1 		 False
    0000 	 0010 	 1100 	 0001 	 1 		 False
    0000 	 0010 	 1100 	 0010 	 1 		 False
    0000 	 0010 	 1100 	 0110 	 1 		 False
    0000 	 0010 	 1100 	 1000 	 1 		 False
    0000 	 0010 	 1101 	 0000 	 1 		 False
    0000 	 0011 	 0000 	 0100 	 1 		 False
    0000 	 0011 	 0000 	 1100 	 1 		 False
    0000 	 0011 	 0001 	 1000 	 1 		 False
    0000 	 0011 	 0010 	 0000 	 1 		 False
    0000 	 0011 	 1000 	 1001 	 1 		 False
    0000 	 0100 	 0000 	 1010 	 1 		 False
    0000 	 0100 	 0001 	 0011 	 1 		 False
    0000 	 0100 	 0001 	 0100 	 1 		 False
    0000 	 0100 	 0001 	 1001 	 1 		 False
    0000 	 0100 	 0001 	 1100 	 1 		 False
    0000 	 0100 	 0010 	 0010 	 1 		 False
    0000 	 0100 	 0010 	 0011 	 1 		 False
    0000 	 0100 	 0010 	 1010 	 1 		 False
    0000 	 0100 	 0010 	 1100 	 1 		 False
    0000 	 0100 	 0011 	 0010 	 1 		 False
    0000 	 0100 	 0111 	 0100 	 1 		 False
    0000 	 0100 	 1000 	 0000 	 1 		 False
    0000 	 0100 	 1000 	 0101 	 1 		 False
    0000 	 0100 	 1001 	 0000 	 1 		 False
    0000 	 0100 	 1001 	 0010 	 1 		 False
    0000 	 0100 	 1001 	 1010 	 1 		 False
    0000 	 0100 	 1010 	 0000 	 1 		 False
    0000 	 0100 	 1010 	 0100 	 1 		 False
    0000 	 0100 	 1011 	 0100 	 1 		 False
    0000 	 0100 	 1100 	 0001 	 1 		 False
    0000 	 0100 	 1110 	 1011 	 1 		 False
    0000 	 0101 	 0000 	 1000 	 1 		 False
    0000 	 0101 	 0000 	 1001 	 1 		 False
    0000 	 0101 	 0010 	 0000 	 1 		 False
    0000 	 0101 	 0011 	 1001 	 1 		 False
    0000 	 0101 	 1000 	 0100 	 1 		 False
    0000 	 0101 	 1010 	 0000 	 1 		 False
    0000 	 0110 	 0000 	 1000 	 1 		 False
    0000 	 0110 	 0000 	 1001 	 1 		 False
    0000 	 0110 	 0001 	 0000 	 1 		 False
    0000 	 0110 	 0010 	 1011 	 1 		 False
    0000 	 0110 	 1000 	 0010 	 1 		 False
    0000 	 0110 	 1000 	 1000 	 1 		 False
    0000 	 0111 	 0010 	 0010 	 1 		 False
    0000 	 0111 	 0010 	 0011 	 1 		 False
    0000 	 0111 	 0110 	 0000 	 1 		 False
    0000 	 1000 	 0000 	 0100 	 1 		 False
    0000 	 1000 	 0000 	 0110 	 1 		 False
    0000 	 1000 	 0001 	 0000 	 1 		 False
    0000 	 1000 	 0001 	 0101 	 1 		 False
    0000 	 1000 	 0001 	 1000 	 1 		 False
    0000 	 1000 	 0010 	 0000 	 1 		 False
    0000 	 1000 	 0010 	 0010 	 1 		 False
    0000 	 1000 	 0010 	 0101 	 1 		 False
    0000 	 1000 	 0010 	 0110 	 1 		 False
    0000 	 1000 	 0010 	 1000 	 1 		 False
    0000 	 1000 	 0011 	 0000 	 1 		 False
    0000 	 1000 	 0011 	 0010 	 1 		 False
    0000 	 1000 	 0011 	 1000 	 1 		 False
    0000 	 1000 	 0100 	 0000 	 1 		 False
    0000 	 1000 	 0100 	 0101 	 1 		 False
    0000 	 1000 	 0100 	 0110 	 1 		 False
    0000 	 1000 	 0100 	 1111 	 1 		 False
    0000 	 1000 	 0101 	 0000 	 1 		 False
    0000 	 1000 	 0101 	 1000 	 1 		 False
    0000 	 1000 	 0110 	 0000 	 1 		 False
    0000 	 1000 	 0110 	 0001 	 1 		 False
    0000 	 1000 	 0110 	 0010 	 1 		 False
    0000 	 1000 	 1000 	 0010 	 1 		 False
    0000 	 1000 	 1000 	 0100 	 1 		 False
    0000 	 1000 	 1000 	 0101 	 1 		 False
    0000 	 1000 	 1000 	 0110 	 1 		 False
    0000 	 1000 	 1000 	 1101 	 1 		 False
    0000 	 1000 	 1011 	 1000 	 1 		 False
    0000 	 1000 	 1100 	 0110 	 1 		 False
    0000 	 1000 	 1100 	 1011 	 1 		 False
    0000 	 1000 	 1101 	 1000 	 1 		 False
    0000 	 1000 	 1110 	 0110 	 1 		 False
    0000 	 1000 	 1111 	 0000 	 1 		 False
    0000 	 1001 	 0000 	 0000 	 1 		 False
    0000 	 1001 	 0000 	 0010 	 1 		 False
    0000 	 1001 	 0001 	 0010 	 1 		 False
    0000 	 1001 	 0001 	 0111 	 1 		 False
    0000 	 1001 	 0010 	 0010 	 1 		 False
    0000 	 1001 	 0010 	 1000 	 1 		 False
    0000 	 1001 	 0100 	 0001 	 1 		 False
    0000 	 1001 	 0110 	 0001 	 1 		 False
    0000 	 1001 	 1001 	 0101 	 1 		 False
    0000 	 1001 	 1110 	 0000 	 1 		 False
    0000 	 1010 	 0000 	 1100 	 1 		 False
    0000 	 1010 	 0100 	 0001 	 1 		 False
    0000 	 1010 	 0100 	 0010 	 1 		 False
    0000 	 1011 	 0001 	 0001 	 1 		 False
    0000 	 1011 	 0100 	 0010 	 1 		 False
    0000 	 1011 	 0100 	 1011 	 1 		 False
    0000 	 1011 	 0101 	 0001 	 1 		 False
    0000 	 1100 	 0000 	 0010 	 1 		 False
    0000 	 1100 	 0000 	 0011 	 1 		 False
    0000 	 1101 	 0000 	 0001 	 1 		 False
    0000 	 1101 	 0010 	 0000 	 1 		 False
    0000 	 1101 	 0100 	 0010 	 1 		 False
    0000 	 1101 	 0101 	 0000 	 1 		 False
    0000 	 1101 	 0101 	 0100 	 1 		 False
    0000 	 1101 	 1110 	 0011 	 1 		 False
    0000 	 1111 	 0000 	 1000 	 1 		 False
    0000 	 1111 	 0000 	 1111 	 1 		 False
    0000 	 1111 	 0001 	 0010 	 1 		 False
    0000 	 1111 	 0111 	 0000 	 1 		 False
    0000 	 1111 	 1000 	 0001 	 1 		 False
    0000 	 1111 	 1101 	 0000 	 1 		 False
    0001 	 0000 	 0001 	 1101 	 1 		 False
    0001 	 0000 	 0001 	 1110 	 1 		 False
    0001 	 0000 	 0010 	 0001 	 1 		 False
    0001 	 0000 	 0010 	 1100 	 1 		 False
    0001 	 0000 	 0011 	 0100 	 1 		 False
    0001 	 0000 	 0011 	 1000 	 1 		 False
    0001 	 0000 	 0011 	 1100 	 1 		 False
    0001 	 0000 	 0100 	 0010 	 1 		 False
    0001 	 0000 	 0100 	 1100 	 1 		 False
    0001 	 0000 	 0100 	 1101 	 1 		 False
    0001 	 0000 	 0101 	 1000 	 1 		 False
    0001 	 0000 	 0110 	 1000 	 1 		 False
    0001 	 0000 	 0111 	 0001 	 1 		 False
    0001 	 0000 	 1111 	 1000 	 1 		 False
    0001 	 0001 	 0000 	 0110 	 1 		 False
    0001 	 0001 	 0000 	 1011 	 1 		 False
    0001 	 0001 	 0000 	 1100 	 1 		 False
    0001 	 0001 	 0000 	 1101 	 1 		 False
    0001 	 0001 	 0001 	 0000 	 1 		 False
    0001 	 0001 	 0011 	 1100 	 1 		 False
    0001 	 0001 	 0100 	 0000 	 1 		 False
    0001 	 0001 	 0100 	 0010 	 1 		 False
    0001 	 0001 	 0100 	 0100 	 1 		 False
    0001 	 0001 	 0101 	 0011 	 1 		 False
    0001 	 0001 	 1000 	 0010 	 1 		 False
    0001 	 0001 	 1010 	 0000 	 1 		 False
    0001 	 0001 	 1011 	 0000 	 1 		 False
    0001 	 0001 	 1100 	 0001 	 1 		 False
    0001 	 0010 	 0000 	 0110 	 1 		 False
    0001 	 0010 	 0001 	 0010 	 1 		 False
    0001 	 0010 	 0001 	 0011 	 1 		 False
    0001 	 0010 	 0001 	 1000 	 1 		 False
    0001 	 0010 	 0001 	 1010 	 1 		 False
    0001 	 0010 	 0100 	 0100 	 1 		 False
    0001 	 0010 	 0100 	 1010 	 1 		 False
    0001 	 0010 	 0101 	 1000 	 1 		 False
    0001 	 0010 	 0111 	 1000 	 1 		 False
    0001 	 0010 	 1010 	 0000 	 1 		 False
    0001 	 0010 	 1010 	 0010 	 1 		 False
    0001 	 0010 	 1011 	 0100 	 1 		 False
    0001 	 0010 	 1100 	 1000 	 1 		 False
    0001 	 0010 	 1101 	 1000 	 1 		 False
    0001 	 0011 	 0000 	 0000 	 1 		 False
    0001 	 0011 	 1101 	 0000 	 1 		 False
    0001 	 0100 	 0000 	 0000 	 1 		 False
    0001 	 0100 	 0001 	 0000 	 1 		 False
    0001 	 0100 	 0001 	 1000 	 1 		 False
    0001 	 0100 	 0001 	 1011 	 1 		 False
    0001 	 0100 	 0010 	 1100 	 1 		 False
    0001 	 0100 	 0011 	 1000 	 1 		 False
    0001 	 0100 	 0100 	 0000 	 1 		 False
    0001 	 0100 	 0110 	 0000 	 1 		 False
    0001 	 0100 	 1000 	 0001 	 1 		 False
    0001 	 0100 	 1001 	 0010 	 1 		 False
    0001 	 0100 	 1100 	 0010 	 1 		 False
    0001 	 0100 	 1110 	 0000 	 1 		 False
    0001 	 0100 	 1111 	 1000 	 1 		 False
    0001 	 0101 	 0000 	 0010 	 1 		 False
    0001 	 0101 	 0010 	 0000 	 1 		 False
    0001 	 0101 	 1000 	 0000 	 1 		 False
    0001 	 0101 	 1000 	 0010 	 1 		 False
    0001 	 0101 	 1000 	 1010 	 1 		 False
    0001 	 0110 	 0000 	 0100 	 1 		 False
    0001 	 0110 	 0010 	 1101 	 1 		 False
    0001 	 0111 	 0000 	 0001 	 1 		 False
    0001 	 0111 	 0001 	 0000 	 1 		 False
    0001 	 0111 	 0100 	 1100 	 1 		 False
    0001 	 0111 	 1000 	 0100 	 1 		 False
    0001 	 1000 	 0000 	 0001 	 1 		 False
    0001 	 1000 	 0001 	 0100 	 1 		 False
    0001 	 1000 	 0001 	 1000 	 1 		 False
    0001 	 1000 	 0001 	 1101 	 1 		 False
    0001 	 1000 	 0010 	 0001 	 1 		 False
    0001 	 1000 	 0010 	 0010 	 1 		 False
    0001 	 1000 	 0010 	 1100 	 1 		 False
    0001 	 1000 	 0100 	 0001 	 1 		 False
    0001 	 1000 	 0100 	 0100 	 1 		 False
    0001 	 1000 	 0100 	 0110 	 1 		 False
    0001 	 1000 	 0100 	 1011 	 1 		 False
    0001 	 1000 	 0110 	 0111 	 1 		 False
    0001 	 1000 	 1000 	 0100 	 1 		 False
    0001 	 1000 	 1000 	 0111 	 1 		 False
    0001 	 1000 	 1000 	 1011 	 1 		 False
    0001 	 1000 	 1100 	 0000 	 1 		 False
    0001 	 1000 	 1100 	 0010 	 1 		 False
    0001 	 1000 	 1111 	 1000 	 1 		 False
    0001 	 1001 	 0001 	 0111 	 1 		 False
    0001 	 1010 	 0001 	 0001 	 1 		 False
    0001 	 1010 	 0100 	 0010 	 1 		 False
    0001 	 1100 	 0000 	 0001 	 1 		 False
    0001 	 1100 	 0001 	 1010 	 1 		 False
    0001 	 1100 	 0010 	 0100 	 1 		 False
    0001 	 1100 	 0011 	 1000 	 1 		 False
    0001 	 1100 	 0100 	 0000 	 1 		 False
    0001 	 1100 	 1000 	 0000 	 1 		 False
    0001 	 1100 	 1000 	 0110 	 1 		 False
    0001 	 1100 	 1100 	 0100 	 1 		 False
    0001 	 1100 	 1101 	 0000 	 1 		 False
    0001 	 1101 	 0000 	 0001 	 1 		 False
    0001 	 1101 	 0001 	 0000 	 1 		 False
    0001 	 1101 	 1000 	 0001 	 1 		 False
    0001 	 1110 	 0001 	 0100 	 1 		 False
    0001 	 1110 	 0011 	 0110 	 1 		 False
    0010 	 0000 	 0000 	 0001 	 1 		 False
    0010 	 0000 	 0000 	 0100 	 1 		 False
    0010 	 0000 	 0000 	 0110 	 1 		 False
    0010 	 0000 	 0000 	 1000 	 1 		 False
    0010 	 0000 	 0000 	 1100 	 1 		 False
    0010 	 0000 	 0001 	 0001 	 1 		 False
    0010 	 0000 	 0001 	 0101 	 1 		 False
    0010 	 0000 	 0001 	 1001 	 1 		 False
    0010 	 0000 	 0010 	 0100 	 1 		 False
    0010 	 0000 	 0010 	 1110 	 1 		 False
    0010 	 0000 	 0011 	 1000 	 1 		 False
    0010 	 0000 	 0100 	 0010 	 1 		 False
    0010 	 0000 	 0100 	 0100 	 1 		 False
    0010 	 0000 	 0100 	 1010 	 1 		 False
    0010 	 0000 	 0101 	 0001 	 1 		 False
    0010 	 0000 	 0110 	 0110 	 1 		 False
    0010 	 0000 	 0110 	 1000 	 1 		 False
    0010 	 0000 	 0111 	 1000 	 1 		 False
    0010 	 0000 	 1000 	 0110 	 1 		 False
    0010 	 0000 	 1001 	 0011 	 1 		 False
    0010 	 0000 	 1001 	 1001 	 1 		 False
    0010 	 0001 	 0000 	 0001 	 1 		 False
    0010 	 0001 	 0000 	 0010 	 1 		 False
    0010 	 0001 	 0000 	 0110 	 1 		 False
    0010 	 0001 	 0000 	 1010 	 1 		 False
    0010 	 0001 	 0000 	 1100 	 1 		 False
    0010 	 0001 	 0001 	 0100 	 1 		 False
    0010 	 0001 	 0001 	 0101 	 1 		 False
    0010 	 0001 	 0010 	 0011 	 1 		 False
    0010 	 0001 	 0010 	 0100 	 1 		 False
    0010 	 0001 	 0100 	 1001 	 1 		 False
    0010 	 0001 	 0101 	 1001 	 1 		 False
    0010 	 0001 	 0101 	 1101 	 1 		 False
    0010 	 0001 	 0110 	 1001 	 1 		 False
    0010 	 0001 	 0110 	 1010 	 1 		 False
    0010 	 0001 	 1000 	 0101 	 1 		 False
    0010 	 0001 	 1000 	 0110 	 1 		 False
    0010 	 0001 	 1000 	 1000 	 1 		 False
    0010 	 0001 	 1001 	 0110 	 1 		 False
    0010 	 0001 	 1010 	 0100 	 1 		 False
    0010 	 0001 	 1100 	 1000 	 1 		 False
    0010 	 0001 	 1101 	 1000 	 1 		 False
    0010 	 0001 	 1110 	 0001 	 1 		 False
    0010 	 0010 	 0000 	 0101 	 1 		 False
    0010 	 0010 	 0000 	 1100 	 1 		 False
    0010 	 0010 	 0001 	 0100 	 1 		 False
    0010 	 0010 	 0100 	 0100 	 1 		 False
    0010 	 0010 	 0111 	 0111 	 1 		 False
    0010 	 0010 	 1000 	 0000 	 1 		 False
    0010 	 0010 	 1000 	 0010 	 1 		 False
    0010 	 0010 	 1101 	 1111 	 1 		 False
    0010 	 0010 	 1110 	 0001 	 1 		 False
    0010 	 0011 	 1100 	 0010 	 1 		 False
    0010 	 0100 	 0000 	 0000 	 1 		 False
    0010 	 0100 	 0000 	 0011 	 1 		 False
    0010 	 0100 	 0000 	 1100 	 1 		 False
    0010 	 0100 	 0001 	 0001 	 1 		 False
    0010 	 0100 	 0001 	 0010 	 1 		 False
    0010 	 0100 	 0001 	 1010 	 1 		 False
    0010 	 0100 	 0001 	 1100 	 1 		 False
    0010 	 0100 	 0010 	 0001 	 1 		 False
    0010 	 0100 	 0010 	 0100 	 1 		 False
    0010 	 0100 	 0011 	 0111 	 1 		 False
    0010 	 0100 	 0100 	 0000 	 1 		 False
    0010 	 0100 	 0100 	 0001 	 1 		 False
    0010 	 0100 	 0100 	 0010 	 1 		 False
    0010 	 0100 	 0100 	 1100 	 1 		 False
    0010 	 0100 	 0100 	 1110 	 1 		 False
    0010 	 0100 	 0101 	 1000 	 1 		 False
    0010 	 0100 	 0111 	 1000 	 1 		 False
    0010 	 0100 	 1000 	 1111 	 1 		 False
    0010 	 0100 	 1010 	 0100 	 1 		 False
    0010 	 0100 	 1100 	 1000 	 1 		 False
    0010 	 0101 	 0000 	 0100 	 1 		 False
    0010 	 0101 	 0001 	 0000 	 1 		 False
    0010 	 0101 	 0001 	 1001 	 1 		 False
    0010 	 0101 	 0100 	 1000 	 1 		 False
    0010 	 0101 	 0100 	 1010 	 1 		 False
    0010 	 0101 	 0100 	 1101 	 1 		 False
    0010 	 0101 	 1000 	 0001 	 1 		 False
    0010 	 0110 	 0001 	 0000 	 1 		 False
    0010 	 0110 	 0011 	 1010 	 1 		 False
    0010 	 0110 	 0100 	 0010 	 1 		 False
    0010 	 0110 	 1001 	 0000 	 1 		 False
    0010 	 0110 	 1001 	 0010 	 1 		 False
    0010 	 0110 	 1001 	 1000 	 1 		 False
    0010 	 0111 	 0000 	 0100 	 1 		 False
    0010 	 0111 	 0010 	 0000 	 1 		 False
    0010 	 0111 	 0100 	 0001 	 1 		 False
    0010 	 0111 	 1000 	 0010 	 1 		 False
    0010 	 1000 	 0000 	 0000 	 1 		 False
    0010 	 1000 	 0000 	 1111 	 1 		 False
    0010 	 1000 	 0001 	 1100 	 1 		 False
    0010 	 1000 	 0001 	 1111 	 1 		 False
    0010 	 1000 	 0010 	 0100 	 1 		 False
    0010 	 1000 	 0100 	 0101 	 1 		 False
    0010 	 1000 	 0100 	 0111 	 1 		 False
    0010 	 1000 	 0100 	 1011 	 1 		 False
    0010 	 1000 	 1000 	 0000 	 1 		 False
    0010 	 1000 	 1000 	 0001 	 1 		 False
    0010 	 1000 	 1000 	 0010 	 1 		 False
    0010 	 1000 	 1000 	 1000 	 1 		 False
    0010 	 1000 	 1001 	 0000 	 1 		 False
    0010 	 1000 	 1100 	 0100 	 1 		 False
    0010 	 1000 	 1100 	 1011 	 1 		 False
    0010 	 1000 	 1100 	 1101 	 1 		 False
    0010 	 1000 	 1101 	 0100 	 1 		 False
    0010 	 1000 	 1101 	 1000 	 1 		 False
    0010 	 1000 	 1111 	 0001 	 1 		 False
    0010 	 1001 	 0000 	 0100 	 1 		 False
    0010 	 1001 	 0001 	 0100 	 1 		 False
    0010 	 1001 	 0100 	 0001 	 1 		 False
    0010 	 1001 	 0110 	 0000 	 1 		 False
    0010 	 1001 	 0110 	 1010 	 1 		 False
    0010 	 1001 	 1001 	 0100 	 1 		 False
    0010 	 1010 	 0000 	 1011 	 1 		 False
    0010 	 1010 	 0001 	 0000 	 1 		 False
    0010 	 1010 	 0011 	 0000 	 1 		 False
    0010 	 1010 	 0110 	 0010 	 1 		 False
    0010 	 1010 	 0111 	 0001 	 1 		 False
    0010 	 1011 	 0011 	 1101 	 1 		 False
    0010 	 1011 	 1000 	 0110 	 1 		 False
    0010 	 1011 	 1001 	 1000 	 1 		 False
    0010 	 1100 	 0000 	 0001 	 1 		 False
    0010 	 1100 	 0001 	 0000 	 1 		 False
    0010 	 1100 	 0010 	 0000 	 1 		 False
    0010 	 1100 	 0100 	 0000 	 1 		 False
    0010 	 1100 	 0100 	 0001 	 1 		 False
    0010 	 1100 	 0100 	 0011 	 1 		 False
    0010 	 1100 	 0101 	 0000 	 1 		 False
    0010 	 1100 	 0101 	 0100 	 1 		 False
    0010 	 1100 	 1000 	 0001 	 1 		 False
    0010 	 1100 	 1000 	 0011 	 1 		 False
    0010 	 1101 	 0010 	 0001 	 1 		 False
    0010 	 1110 	 0000 	 0010 	 1 		 False
    0010 	 1110 	 0000 	 1001 	 1 		 False
    0010 	 1110 	 0010 	 0000 	 1 		 False
    0010 	 1110 	 0010 	 0011 	 1 		 False
    0010 	 1110 	 0100 	 0111 	 1 		 False
    0010 	 1111 	 0001 	 1000 	 1 		 False
    0010 	 1111 	 0010 	 0001 	 1 		 False
    0011 	 0000 	 0000 	 0100 	 1 		 False
    0011 	 0000 	 0000 	 1000 	 1 		 False
    0011 	 0000 	 0000 	 1100 	 1 		 False
    0011 	 0000 	 0001 	 1000 	 1 		 False
    0011 	 0000 	 0010 	 0100 	 1 		 False
    0011 	 0000 	 0100 	 0000 	 1 		 False
    0011 	 0000 	 0100 	 0001 	 1 		 False
    0011 	 0000 	 0100 	 0010 	 1 		 False
    0011 	 0000 	 0100 	 0100 	 1 		 False
    0011 	 0000 	 1000 	 0010 	 1 		 False
    0011 	 0000 	 1000 	 0111 	 1 		 False
    0011 	 0000 	 1001 	 0101 	 1 		 False
    0011 	 0000 	 1010 	 0000 	 1 		 False
    0011 	 0000 	 1010 	 0001 	 1 		 False
    0011 	 0000 	 1100 	 0000 	 1 		 False
    0011 	 0001 	 0000 	 1000 	 1 		 False
    0011 	 0001 	 0101 	 1000 	 1 		 False
    0011 	 0001 	 1001 	 0001 	 1 		 False
    0011 	 0001 	 1101 	 1000 	 1 		 False
    0011 	 0010 	 1000 	 0100 	 1 		 False
    0011 	 0010 	 1100 	 0000 	 1 		 False
    0011 	 0010 	 1100 	 0100 	 1 		 False
    0011 	 0010 	 1100 	 1000 	 1 		 False
    0011 	 0011 	 0010 	 0100 	 1 		 False
    0011 	 0011 	 0010 	 1000 	 1 		 False
    0011 	 0011 	 1100 	 0011 	 1 		 False
    0011 	 0100 	 0000 	 0000 	 1 		 False
    0011 	 0100 	 0010 	 0000 	 1 		 False
    0011 	 0100 	 0010 	 0011 	 1 		 False
    0011 	 0100 	 0100 	 1100 	 1 		 False
    0011 	 0100 	 0110 	 1000 	 1 		 False
    0011 	 0100 	 1011 	 1011 	 1 		 False
    0011 	 0101 	 0000 	 0100 	 1 		 False
    0011 	 0101 	 0011 	 0011 	 1 		 False
    0011 	 0110 	 0001 	 1000 	 1 		 False
    0011 	 0110 	 0010 	 1010 	 1 		 False
    0011 	 0111 	 0000 	 0010 	 1 		 False
    0011 	 1000 	 0000 	 0001 	 1 		 False
    0011 	 1000 	 0000 	 0100 	 1 		 False
    0011 	 1000 	 0000 	 1000 	 1 		 False
    0011 	 1000 	 0000 	 1101 	 1 		 False
    0011 	 1000 	 0001 	 0000 	 1 		 False
    0011 	 1000 	 0010 	 0100 	 1 		 False
    0011 	 1000 	 0110 	 0010 	 1 		 False
    0011 	 1000 	 0110 	 0110 	 1 		 False
    0011 	 1001 	 0001 	 0101 	 1 		 False
    0011 	 1010 	 1000 	 0000 	 1 		 False
    0011 	 1011 	 0000 	 0101 	 1 		 False
    0011 	 1011 	 0001 	 0000 	 1 		 False
    0011 	 1100 	 0000 	 0000 	 1 		 False
    0011 	 1101 	 1000 	 0001 	 1 		 False
    0100 	 0000 	 0000 	 0001 	 1 		 False
    0100 	 0000 	 0001 	 0000 	 1 		 False
    0100 	 0000 	 0010 	 0100 	 1 		 False
    0100 	 0000 	 0010 	 0101 	 1 		 False
    0100 	 0000 	 0010 	 1010 	 1 		 False
    0100 	 0000 	 0100 	 0010 	 1 		 False
    0100 	 0000 	 0100 	 1101 	 1 		 False
    0100 	 0000 	 0100 	 1110 	 1 		 False
    0100 	 0000 	 0101 	 0001 	 1 		 False
    0100 	 0000 	 0101 	 0010 	 1 		 False
    0100 	 0000 	 0101 	 1001 	 1 		 False
    0100 	 0000 	 0110 	 1000 	 1 		 False
    0100 	 0000 	 0111 	 0000 	 1 		 False
    0100 	 0000 	 1000 	 0101 	 1 		 False
    0100 	 0000 	 1001 	 0001 	 1 		 False
    0100 	 0000 	 1010 	 0000 	 1 		 False
    0100 	 0000 	 1010 	 0010 	 1 		 False
    0100 	 0000 	 1100 	 0010 	 1 		 False
    0100 	 0000 	 1110 	 0100 	 1 		 False
    0100 	 0001 	 0000 	 0000 	 1 		 False
    0100 	 0001 	 0000 	 0001 	 1 		 False
    0100 	 0001 	 0000 	 0110 	 1 		 False
    0100 	 0001 	 0001 	 0000 	 1 		 False
    0100 	 0001 	 0010 	 0000 	 1 		 False
    0100 	 0001 	 0010 	 1001 	 1 		 False
    0100 	 0001 	 0010 	 1100 	 1 		 False
    0100 	 0001 	 0100 	 0111 	 1 		 False
    0100 	 0001 	 0101 	 1010 	 1 		 False
    0100 	 0001 	 0111 	 1000 	 1 		 False
    0100 	 0001 	 1000 	 0001 	 1 		 False
    0100 	 0001 	 1000 	 1111 	 1 		 False
    0100 	 0001 	 1001 	 0000 	 1 		 False
    0100 	 0001 	 1011 	 1100 	 1 		 False
    0100 	 0001 	 1100 	 0011 	 1 		 False
    0100 	 0001 	 1100 	 0110 	 1 		 False
    0100 	 0001 	 1101 	 0001 	 1 		 False
    0100 	 0010 	 0000 	 0011 	 1 		 False
    0100 	 0010 	 0000 	 1010 	 1 		 False
    0100 	 0010 	 0001 	 0010 	 1 		 False
    0100 	 0010 	 0001 	 1100 	 1 		 False
    0100 	 0010 	 0010 	 0001 	 1 		 False
    0100 	 0010 	 0010 	 0010 	 1 		 False
    0100 	 0010 	 0011 	 0101 	 1 		 False
    0100 	 0010 	 0100 	 0000 	 1 		 False
    0100 	 0010 	 0100 	 0010 	 1 		 False
    0100 	 0010 	 1000 	 1001 	 1 		 False
    0100 	 0010 	 1001 	 0000 	 1 		 False
    0100 	 0010 	 1001 	 0001 	 1 		 False
    0100 	 0010 	 1100 	 0000 	 1 		 False
    0100 	 0010 	 1101 	 0010 	 1 		 False
    0100 	 0010 	 1111 	 1000 	 1 		 False
    0100 	 0011 	 0000 	 0000 	 1 		 False
    0100 	 0011 	 0000 	 0010 	 1 		 False
    0100 	 0011 	 0000 	 0100 	 1 		 False
    0100 	 0011 	 0100 	 0000 	 1 		 False
    0100 	 0100 	 0000 	 0001 	 1 		 False
    0100 	 0100 	 0001 	 0001 	 1 		 False
    0100 	 0100 	 0001 	 1010 	 1 		 False
    0100 	 0100 	 0010 	 0001 	 1 		 False
    0100 	 0100 	 0010 	 0011 	 1 		 False
    0100 	 0100 	 0011 	 1100 	 1 		 False
    0100 	 0100 	 0110 	 0100 	 1 		 False
    0100 	 0100 	 0110 	 1111 	 1 		 False
    0100 	 0100 	 1000 	 1000 	 1 		 False
    0100 	 0100 	 1100 	 0110 	 1 		 False
    0100 	 0101 	 0000 	 0010 	 1 		 False
    0100 	 0101 	 0000 	 1000 	 1 		 False
    0100 	 0101 	 1000 	 1010 	 1 		 False
    0100 	 0101 	 1000 	 1110 	 1 		 False
    0100 	 0101 	 1010 	 0001 	 1 		 False
    0100 	 0110 	 0001 	 1000 	 1 		 False
    0100 	 0110 	 0001 	 1001 	 1 		 False
    0100 	 0110 	 1000 	 0000 	 1 		 False
    0100 	 0110 	 1100 	 0001 	 1 		 False
    0100 	 0111 	 0000 	 0100 	 1 		 False
    0100 	 0111 	 0010 	 1010 	 1 		 False
    0100 	 0111 	 0100 	 1000 	 1 		 False
    0100 	 0111 	 1100 	 0000 	 1 		 False
    0100 	 0111 	 1101 	 0111 	 1 		 False
    0100 	 1000 	 0000 	 0101 	 1 		 False
    0100 	 1000 	 0000 	 0110 	 1 		 False
    0100 	 1000 	 0000 	 1010 	 1 		 False
    0100 	 1000 	 0001 	 0100 	 1 		 False
    0100 	 1000 	 0010 	 1001 	 1 		 False
    0100 	 1000 	 0100 	 1011 	 1 		 False
    0100 	 1000 	 0110 	 0100 	 1 		 False
    0100 	 1000 	 0111 	 0100 	 1 		 False
    0100 	 1000 	 1001 	 0000 	 1 		 False
    0100 	 1000 	 1011 	 0100 	 1 		 False
    0100 	 1000 	 1111 	 0010 	 1 		 False
    0100 	 1001 	 0000 	 0100 	 1 		 False
    0100 	 1001 	 0000 	 1000 	 1 		 False
    0100 	 1001 	 0000 	 1010 	 1 		 False
    0100 	 1001 	 0001 	 0011 	 1 		 False
    0100 	 1001 	 0010 	 1000 	 1 		 False
    0100 	 1001 	 0100 	 0100 	 1 		 False
    0100 	 1001 	 1010 	 1000 	 1 		 False
    0100 	 1010 	 0001 	 0000 	 1 		 False
    0100 	 1010 	 0001 	 0010 	 1 		 False
    0100 	 1010 	 1000 	 0000 	 1 		 False
    0100 	 1010 	 1000 	 0101 	 1 		 False
    0100 	 1010 	 1000 	 1010 	 1 		 False
    0100 	 1010 	 1100 	 1000 	 1 		 False
    0100 	 1011 	 0000 	 0010 	 1 		 False
    0100 	 1011 	 0010 	 1000 	 1 		 False
    0100 	 1100 	 0001 	 0010 	 1 		 False
    0100 	 1100 	 0010 	 0000 	 1 		 False
    0100 	 1100 	 0010 	 0100 	 1 		 False
    0100 	 1100 	 0100 	 0110 	 1 		 False
    0100 	 1101 	 0000 	 1000 	 1 		 False
    0100 	 1101 	 0100 	 0010 	 1 		 False
    0100 	 1110 	 0010 	 0010 	 1 		 False
    0100 	 1110 	 0010 	 0011 	 1 		 False
    0100 	 1110 	 0100 	 0000 	 1 		 False
    0100 	 1110 	 0100 	 1000 	 1 		 False
    0100 	 1110 	 0101 	 0001 	 1 		 False
    0100 	 1110 	 0110 	 0001 	 1 		 False
    0100 	 1111 	 0001 	 0010 	 1 		 False
    0100 	 1111 	 1000 	 0100 	 1 		 False
    0101 	 0000 	 0000 	 0010 	 1 		 False
    0101 	 0000 	 0000 	 1011 	 1 		 False
    0101 	 0000 	 0000 	 1100 	 1 		 False
    0101 	 0000 	 0010 	 0001 	 1 		 False
    0101 	 0000 	 0010 	 0010 	 1 		 False
    0101 	 0000 	 0010 	 0100 	 1 		 False
    0101 	 0000 	 0100 	 0010 	 1 		 False
    0101 	 0000 	 0101 	 0000 	 1 		 False
    0101 	 0000 	 1000 	 0000 	 1 		 False
    0101 	 0000 	 1000 	 0001 	 1 		 False
    0101 	 0000 	 1011 	 0001 	 1 		 False
    0101 	 0001 	 0000 	 1001 	 1 		 False
    0101 	 0001 	 1000 	 0000 	 1 		 False
    0101 	 0001 	 1001 	 0001 	 1 		 False
    0101 	 0010 	 0001 	 0011 	 1 		 False
    0101 	 0010 	 0010 	 0000 	 1 		 False
    0101 	 0010 	 0100 	 1101 	 1 		 False
    0101 	 0010 	 1000 	 0000 	 1 		 False
    0101 	 0010 	 1000 	 0001 	 1 		 False
    0101 	 0010 	 1010 	 0010 	 1 		 False
    0101 	 0011 	 0001 	 1000 	 1 		 False
    0101 	 0100 	 0000 	 0010 	 1 		 False
    0101 	 0100 	 0000 	 1000 	 1 		 False
    0101 	 0100 	 0010 	 0000 	 1 		 False
    0101 	 0100 	 0100 	 0100 	 1 		 False
    0101 	 0100 	 0110 	 1100 	 1 		 False
    0101 	 0100 	 1000 	 1010 	 1 		 False
    0101 	 0100 	 1100 	 0100 	 1 		 False
    0101 	 0100 	 1110 	 0010 	 1 		 False
    0101 	 0111 	 0001 	 0000 	 1 		 False
    0101 	 1000 	 0000 	 0000 	 1 		 False
    0101 	 1000 	 0001 	 1010 	 1 		 False
    0101 	 1000 	 0010 	 0100 	 1 		 False
    0101 	 1000 	 0100 	 1010 	 1 		 False
    0101 	 1000 	 0111 	 0001 	 1 		 False
    0101 	 1000 	 1000 	 0000 	 1 		 False
    0101 	 1000 	 1000 	 1000 	 1 		 False
    0101 	 1010 	 0000 	 0000 	 1 		 False
    0101 	 1010 	 0101 	 0101 	 1 		 False
    0101 	 1010 	 0101 	 1101 	 1 		 False
    0101 	 1010 	 1000 	 0001 	 1 		 False
    0101 	 1010 	 1000 	 0100 	 1 		 False
    0101 	 1100 	 0001 	 0100 	 1 		 False
    0110 	 0000 	 0000 	 0001 	 1 		 False
    0110 	 0000 	 0000 	 0011 	 1 		 False
    0110 	 0000 	 0000 	 1000 	 1 		 False
    0110 	 0000 	 0001 	 0100 	 1 		 False
    0110 	 0000 	 0001 	 0111 	 1 		 False
    0110 	 0000 	 0010 	 0001 	 1 		 False
    0110 	 0000 	 0100 	 1110 	 1 		 False
    0110 	 0000 	 1000 	 1000 	 1 		 False
    0110 	 0000 	 1001 	 0000 	 1 		 False
    0110 	 0000 	 1110 	 1000 	 1 		 False
    0110 	 0001 	 0000 	 0001 	 1 		 False
    0110 	 0001 	 0000 	 0010 	 1 		 False
    0110 	 0001 	 0000 	 1000 	 1 		 False
    0110 	 0001 	 0010 	 1110 	 1 		 False
    0110 	 0001 	 0100 	 0000 	 1 		 False
    0110 	 0010 	 0001 	 1110 	 1 		 False
    0110 	 0010 	 1000 	 0001 	 1 		 False
    0110 	 0011 	 0000 	 0000 	 1 		 False
    0110 	 0011 	 0000 	 0100 	 1 		 False
    0110 	 0100 	 0000 	 0001 	 1 		 False
    0110 	 0100 	 0000 	 1000 	 1 		 False
    0110 	 0100 	 0001 	 0000 	 1 		 False
    0110 	 0100 	 0010 	 1001 	 1 		 False
    0110 	 0100 	 0100 	 0100 	 1 		 False
    0110 	 0100 	 1000 	 0000 	 1 		 False
    0110 	 0101 	 1100 	 0100 	 1 		 False
    0110 	 0110 	 0000 	 0000 	 1 		 False
    0110 	 1000 	 0010 	 0000 	 1 		 False
    0110 	 1000 	 0010 	 0001 	 1 		 False
    0110 	 1000 	 0100 	 0000 	 1 		 False
    0110 	 1000 	 1000 	 0000 	 1 		 False
    0110 	 1000 	 1000 	 1011 	 1 		 False
    0110 	 1001 	 0000 	 0010 	 1 		 False
    0110 	 1001 	 0000 	 0100 	 1 		 False
    0110 	 1001 	 1000 	 0100 	 1 		 False
    0110 	 1010 	 0011 	 0010 	 1 		 False
    0111 	 0000 	 0000 	 1000 	 1 		 False
    0111 	 0000 	 0001 	 0001 	 1 		 False
    0111 	 0000 	 0100 	 0101 	 1 		 False
    0111 	 0000 	 1000 	 0100 	 1 		 False
    0111 	 0001 	 0001 	 0000 	 1 		 False
    0111 	 0001 	 0010 	 0010 	 1 		 False
    0111 	 0001 	 0010 	 0100 	 1 		 False
    0111 	 0001 	 1000 	 1000 	 1 		 False
    0111 	 0010 	 0111 	 0010 	 1 		 False
    0111 	 0010 	 0111 	 1000 	 1 		 False
    0111 	 0010 	 1010 	 0000 	 1 		 False
    0111 	 0100 	 0001 	 1000 	 1 		 False
    0111 	 0110 	 0000 	 1010 	 1 		 False
    0111 	 1000 	 0100 	 0110 	 1 		 False
    0111 	 1000 	 0101 	 0100 	 1 		 False
    0111 	 1001 	 0000 	 0001 	 1 		 False
    0111 	 1001 	 0000 	 1001 	 1 		 False
    0111 	 1100 	 0010 	 0010 	 1 		 False
    0111 	 1100 	 0100 	 0001 	 1 		 False
    1000 	 0000 	 0000 	 0010 	 1 		 False
    1000 	 0000 	 0000 	 1111 	 1 		 False
    1000 	 0000 	 0001 	 0001 	 1 		 False
    1000 	 0000 	 0001 	 1010 	 1 		 False
    1000 	 0000 	 0010 	 0011 	 1 		 False
    1000 	 0000 	 0010 	 1000 	 1 		 False
    1000 	 0000 	 0011 	 1000 	 1 		 False
    1000 	 0000 	 0100 	 0110 	 1 		 False
    1000 	 0000 	 0100 	 1001 	 1 		 False
    1000 	 0000 	 0101 	 0000 	 1 		 False
    1000 	 0000 	 0101 	 0100 	 1 		 False
    1000 	 0000 	 0110 	 1000 	 1 		 False
    1000 	 0000 	 1000 	 0011 	 1 		 False
    1000 	 0000 	 1000 	 0100 	 1 		 False
    1000 	 0000 	 1000 	 0101 	 1 		 False
    1000 	 0000 	 1000 	 1000 	 1 		 False
    1000 	 0000 	 1000 	 1001 	 1 		 False
    1000 	 0000 	 1000 	 1011 	 1 		 False
    1000 	 0000 	 1010 	 0100 	 1 		 False
    1000 	 0001 	 0000 	 0001 	 1 		 False
    1000 	 0001 	 0000 	 1010 	 1 		 False
    1000 	 0001 	 0000 	 1100 	 1 		 False
    1000 	 0001 	 0001 	 0000 	 1 		 False
    1000 	 0001 	 0001 	 0010 	 1 		 False
    1000 	 0001 	 0010 	 0110 	 1 		 False
    1000 	 0001 	 0100 	 0000 	 1 		 False
    1000 	 0001 	 0101 	 0000 	 1 		 False
    1000 	 0001 	 0101 	 1011 	 1 		 False
    1000 	 0001 	 1000 	 0111 	 1 		 False
    1000 	 0001 	 1010 	 1100 	 1 		 False
    1000 	 0001 	 1110 	 0010 	 1 		 False
    1000 	 0001 	 1111 	 0010 	 1 		 False
    1000 	 0010 	 0000 	 0111 	 1 		 False
    1000 	 0010 	 0000 	 1001 	 1 		 False
    1000 	 0010 	 0001 	 0000 	 1 		 False
    1000 	 0010 	 0001 	 0001 	 1 		 False
    1000 	 0010 	 0001 	 0110 	 1 		 False
    1000 	 0010 	 0001 	 1111 	 1 		 False
    1000 	 0010 	 0010 	 1101 	 1 		 False
    1000 	 0010 	 0010 	 1110 	 1 		 False
    1000 	 0010 	 0101 	 0100 	 1 		 False
    1000 	 0010 	 0110 	 0001 	 1 		 False
    1000 	 0010 	 1000 	 1100 	 1 		 False
    1000 	 0010 	 1100 	 0000 	 1 		 False
    1000 	 0010 	 1101 	 0100 	 1 		 False
    1000 	 0011 	 0001 	 0101 	 1 		 False
    1000 	 0011 	 0001 	 1100 	 1 		 False
    1000 	 0011 	 0100 	 0001 	 1 		 False
    1000 	 0011 	 1100 	 0001 	 1 		 False
    1000 	 0011 	 1100 	 0100 	 1 		 False
    1000 	 0100 	 0000 	 0000 	 1 		 False
    1000 	 0100 	 0000 	 1010 	 1 		 False
    1000 	 0100 	 0010 	 0011 	 1 		 False
    1000 	 0100 	 0010 	 1001 	 1 		 False
    1000 	 0100 	 0010 	 1011 	 1 		 False
    1000 	 0100 	 0100 	 0000 	 1 		 False
    1000 	 0100 	 0100 	 0001 	 1 		 False
    1000 	 0100 	 0100 	 0111 	 1 		 False
    1000 	 0100 	 0101 	 0110 	 1 		 False
    1000 	 0100 	 0111 	 0100 	 1 		 False
    1000 	 0100 	 1000 	 0100 	 1 		 False
    1000 	 0100 	 1001 	 0000 	 1 		 False
    1000 	 0100 	 1001 	 1011 	 1 		 False
    1000 	 0100 	 1011 	 0010 	 1 		 False
    1000 	 0100 	 1101 	 0001 	 1 		 False
    1000 	 0100 	 1110 	 1000 	 1 		 False
    1000 	 0101 	 0000 	 0000 	 1 		 False
    1000 	 0101 	 0000 	 0100 	 1 		 False
    1000 	 0101 	 0010 	 0100 	 1 		 False
    1000 	 0101 	 0111 	 0001 	 1 		 False
    1000 	 0110 	 0000 	 0000 	 1 		 False
    1000 	 0110 	 0001 	 0010 	 1 		 False
    1000 	 0110 	 0001 	 0100 	 1 		 False
    1000 	 0110 	 0100 	 0000 	 1 		 False
    1000 	 0110 	 1000 	 0001 	 1 		 False
    1000 	 0110 	 1001 	 0000 	 1 		 False
    1000 	 1000 	 0000 	 0010 	 1 		 False
    1000 	 1000 	 0000 	 0011 	 1 		 False
    1000 	 1000 	 0000 	 0101 	 1 		 False
    1000 	 1000 	 0001 	 0001 	 1 		 False
    1000 	 1000 	 0010 	 0001 	 1 		 False
    1000 	 1000 	 0011 	 0000 	 1 		 False
    1000 	 1000 	 0100 	 0000 	 1 		 False
    1000 	 1000 	 0100 	 1011 	 1 		 False
    1000 	 1000 	 0111 	 0010 	 1 		 False
    1000 	 1000 	 0111 	 0100 	 1 		 False
    1000 	 1000 	 1001 	 1110 	 1 		 False
    1000 	 1000 	 1011 	 0000 	 1 		 False
    1000 	 1000 	 1100 	 1001 	 1 		 False
    1000 	 1001 	 0000 	 0010 	 1 		 False
    1000 	 1001 	 0100 	 1010 	 1 		 False
    1000 	 1010 	 0000 	 0100 	 1 		 False
    1000 	 1010 	 0001 	 0100 	 1 		 False
    1000 	 1010 	 1000 	 1010 	 1 		 False
    1000 	 1010 	 1100 	 1001 	 1 		 False
    1000 	 1011 	 0010 	 0001 	 1 		 False
    1000 	 1011 	 0100 	 0100 	 1 		 False
    1000 	 1011 	 1000 	 0000 	 1 		 False
    1000 	 1100 	 0001 	 0000 	 1 		 False
    1000 	 1100 	 0100 	 0100 	 1 		 False
    1000 	 1100 	 1000 	 1000 	 1 		 False
    1000 	 1100 	 1010 	 0001 	 1 		 False
    1000 	 1100 	 1101 	 0010 	 1 		 False
    1000 	 1101 	 0000 	 0100 	 1 		 False
    1000 	 1101 	 0000 	 1000 	 1 		 False
    1000 	 1101 	 0000 	 1010 	 1 		 False
    1000 	 1101 	 0010 	 0010 	 1 		 False
    1000 	 1101 	 0010 	 1000 	 1 		 False
    1000 	 1101 	 1000 	 0000 	 1 		 False
    1000 	 1110 	 0100 	 0101 	 1 		 False
    1000 	 1111 	 0000 	 0010 	 1 		 False
    1001 	 0000 	 0000 	 0000 	 1 		 False
    1001 	 0000 	 0000 	 0011 	 1 		 False
    1001 	 0000 	 0001 	 0000 	 1 		 False
    1001 	 0000 	 0010 	 0001 	 1 		 False
    1001 	 0000 	 0011 	 1000 	 1 		 False
    1001 	 0000 	 0100 	 0100 	 1 		 False
    1001 	 0000 	 0100 	 1000 	 1 		 False
    1001 	 0000 	 1001 	 0100 	 1 		 False
    1001 	 0000 	 1001 	 1001 	 1 		 False
    1001 	 0000 	 1010 	 0000 	 1 		 False
    1001 	 0000 	 1110 	 0000 	 1 		 False
    1001 	 0001 	 0010 	 0100 	 1 		 False
    1001 	 0001 	 0010 	 0111 	 1 		 False
    1001 	 0001 	 0011 	 0001 	 1 		 False
    1001 	 0001 	 0100 	 1001 	 1 		 False
    1001 	 0001 	 0111 	 0000 	 1 		 False
    1001 	 0001 	 0111 	 0001 	 1 		 False
    1001 	 0001 	 1010 	 1001 	 1 		 False
    1001 	 0010 	 0000 	 0000 	 1 		 False
    1001 	 0010 	 0100 	 0001 	 1 		 False
    1001 	 0010 	 0100 	 0010 	 1 		 False
    1001 	 0010 	 0100 	 1000 	 1 		 False
    1001 	 0010 	 1000 	 0100 	 1 		 False
    1001 	 0011 	 0101 	 0001 	 1 		 False
    1001 	 0100 	 0000 	 0100 	 1 		 False
    1001 	 0100 	 0001 	 0110 	 1 		 False
    1001 	 0100 	 0100 	 0110 	 1 		 False
    1001 	 0101 	 0001 	 0011 	 1 		 False
    1001 	 0101 	 0011 	 0001 	 1 		 False
    1001 	 0101 	 1011 	 0011 	 1 		 False
    1001 	 0110 	 0000 	 0000 	 1 		 False
    1001 	 0110 	 0100 	 0001 	 1 		 False
    1001 	 0111 	 1000 	 0100 	 1 		 False
    1001 	 1000 	 0010 	 0000 	 1 		 False
    1001 	 1000 	 0100 	 1011 	 1 		 False
    1001 	 1000 	 1000 	 0000 	 1 		 False
    1001 	 1001 	 0000 	 0001 	 1 		 False
    1001 	 1001 	 0100 	 0010 	 1 		 False
    1001 	 1010 	 1000 	 1100 	 1 		 False
    1001 	 1100 	 1010 	 1000 	 1 		 False
    1010 	 0000 	 0000 	 0101 	 1 		 False
    1010 	 0000 	 0001 	 0000 	 1 		 False
    1010 	 0000 	 0001 	 0001 	 1 		 False
    1010 	 0000 	 0010 	 0001 	 1 		 False
    1010 	 0000 	 0100 	 1000 	 1 		 False
    1010 	 0000 	 1000 	 0100 	 1 		 False
    1010 	 0001 	 0000 	 0100 	 1 		 False
    1010 	 0001 	 0000 	 0101 	 1 		 False
    1010 	 0001 	 0001 	 0000 	 1 		 False
    1010 	 0001 	 0001 	 0110 	 1 		 False
    1010 	 0001 	 0010 	 0001 	 1 		 False
    1010 	 0001 	 0100 	 0001 	 1 		 False
    1010 	 0001 	 0100 	 0010 	 1 		 False
    1010 	 0001 	 0100 	 0100 	 1 		 False
    1010 	 0001 	 0100 	 1000 	 1 		 False
    1010 	 0001 	 1110 	 1000 	 1 		 False
    1010 	 0010 	 0000 	 0100 	 1 		 False
    1010 	 0010 	 0011 	 0100 	 1 		 False
    1010 	 0010 	 0100 	 0000 	 1 		 False
    1010 	 0010 	 0100 	 1011 	 1 		 False
    1010 	 0010 	 0101 	 0010 	 1 		 False
    1010 	 0010 	 1010 	 0001 	 1 		 False
    1010 	 0010 	 1011 	 0011 	 1 		 False
    1010 	 0100 	 0000 	 0100 	 1 		 False
    1010 	 0100 	 0000 	 1000 	 1 		 False
    1010 	 0100 	 0001 	 0000 	 1 		 False
    1010 	 0100 	 0001 	 0001 	 1 		 False
    1010 	 0100 	 0010 	 0101 	 1 		 False
    1010 	 0100 	 0011 	 0010 	 1 		 False
    1010 	 0100 	 0101 	 0010 	 1 		 False
    1010 	 0100 	 1001 	 1101 	 1 		 False
    1010 	 0100 	 1011 	 0000 	 1 		 False
    1010 	 0101 	 0000 	 0000 	 1 		 False
    1010 	 0101 	 0010 	 0010 	 1 		 False
    1010 	 0110 	 0010 	 0011 	 1 		 False
    1010 	 0111 	 0100 	 0010 	 1 		 False
    1010 	 1000 	 0001 	 0101 	 1 		 False
    1010 	 1000 	 0100 	 0000 	 1 		 False
    1010 	 1000 	 0101 	 1000 	 1 		 False
    1010 	 1000 	 1001 	 0100 	 1 		 False
    1010 	 1000 	 1100 	 0010 	 1 		 False
    1010 	 1000 	 1100 	 1000 	 1 		 False
    1010 	 1001 	 0010 	 0000 	 1 		 False
    1010 	 1001 	 0100 	 1001 	 1 		 False
    1010 	 1001 	 1000 	 0100 	 1 		 False
    1010 	 1001 	 1001 	 0000 	 1 		 False
    1010 	 1010 	 0001 	 0100 	 1 		 False
    1010 	 1010 	 1010 	 0100 	 1 		 False
    1010 	 1010 	 1010 	 1000 	 1 		 False
    1010 	 1010 	 1010 	 1010 	 1 		 False
    1010 	 1011 	 0001 	 0001 	 1 		 False
    1010 	 1101 	 0010 	 0100 	 1 		 False
    1011 	 0000 	 0000 	 0100 	 1 		 False
    1011 	 0000 	 0100 	 1000 	 1 		 False
    1011 	 0000 	 1110 	 1000 	 1 		 False
    1011 	 0010 	 0000 	 0010 	 1 		 False
    1011 	 0011 	 0000 	 1101 	 1 		 False
    1011 	 0100 	 0000 	 0000 	 1 		 False
    1011 	 0100 	 0001 	 0100 	 1 		 False
    1011 	 0100 	 1000 	 0100 	 1 		 False
    1011 	 0100 	 1010 	 0010 	 1 		 False
    1011 	 0100 	 1010 	 1010 	 1 		 False
    1011 	 0101 	 0000 	 0001 	 1 		 False
    1011 	 0101 	 1001 	 0000 	 1 		 False
    1011 	 0111 	 0010 	 0001 	 1 		 False
    1011 	 1000 	 0001 	 0000 	 1 		 False
    1011 	 1000 	 0001 	 1110 	 1 		 False
    1011 	 1000 	 0010 	 1110 	 1 		 False
    1011 	 1000 	 1000 	 0100 	 1 		 False
    1011 	 1100 	 0010 	 0010 	 1 		 False
    1100 	 0000 	 0000 	 0010 	 1 		 False
    1100 	 0000 	 0001 	 0000 	 1 		 False
    1100 	 0000 	 0001 	 1010 	 1 		 False
    1100 	 0000 	 0100 	 0111 	 1 		 False
    1100 	 0000 	 0110 	 0100 	 1 		 False
    1100 	 0001 	 0000 	 0000 	 1 		 False
    1100 	 0001 	 0000 	 1000 	 1 		 False
    1100 	 0001 	 0001 	 0000 	 1 		 False
    1100 	 0001 	 0011 	 1000 	 1 		 False
    1100 	 0001 	 0100 	 0010 	 1 		 False
    1100 	 0001 	 1000 	 0001 	 1 		 False
    1100 	 0001 	 1000 	 0010 	 1 		 False
    1100 	 0010 	 0000 	 0010 	 1 		 False
    1100 	 0010 	 0000 	 1000 	 1 		 False
    1100 	 0010 	 0001 	 1000 	 1 		 False
    1100 	 0010 	 0010 	 0000 	 1 		 False
    1100 	 0010 	 1000 	 0001 	 1 		 False
    1100 	 0011 	 0010 	 0011 	 1 		 False
    1100 	 0011 	 0100 	 0100 	 1 		 False
    1100 	 0011 	 1000 	 0010 	 1 		 False
    1100 	 0100 	 0000 	 0010 	 1 		 False
    1100 	 0100 	 0001 	 0010 	 1 		 False
    1100 	 0100 	 0010 	 0000 	 1 		 False
    1100 	 0100 	 0011 	 0100 	 1 		 False
    1100 	 0100 	 0110 	 0101 	 1 		 False
    1100 	 0100 	 1001 	 0000 	 1 		 False
    1100 	 0101 	 0100 	 0101 	 1 		 False
    1100 	 0101 	 1000 	 0000 	 1 		 False
    1100 	 1000 	 0010 	 0000 	 1 		 False
    1100 	 1000 	 1000 	 1000 	 1 		 False
    1100 	 1000 	 1110 	 0001 	 1 		 False
    1100 	 1001 	 0000 	 0000 	 1 		 False
    1100 	 1001 	 1000 	 1010 	 1 		 False
    1100 	 1100 	 0100 	 1001 	 1 		 False
    1100 	 1101 	 0100 	 0010 	 1 		 False
    1101 	 0000 	 0100 	 0100 	 1 		 False
    1101 	 0000 	 0100 	 0110 	 1 		 False
    1101 	 0000 	 1000 	 1010 	 1 		 False
    1101 	 0001 	 0000 	 0001 	 1 		 False
    1101 	 0001 	 0001 	 0100 	 1 		 False
    1101 	 0001 	 1000 	 0001 	 1 		 False
    1101 	 0010 	 0010 	 0100 	 1 		 False
    1101 	 0010 	 1000 	 0001 	 1 		 False
    1101 	 0010 	 1000 	 0100 	 1 		 False
    1101 	 0011 	 0000 	 0001 	 1 		 False
    1101 	 0011 	 0000 	 0101 	 1 		 False
    1101 	 0011 	 0100 	 1001 	 1 		 False
    1101 	 0100 	 0000 	 0001 	 1 		 False
    1101 	 0100 	 0000 	 0100 	 1 		 False
    1101 	 0100 	 0100 	 0000 	 1 		 False
    1101 	 0101 	 0010 	 0010 	 1 		 False
    1101 	 0101 	 1001 	 1011 	 1 		 False
    1101 	 0111 	 0100 	 0001 	 1 		 False
    1101 	 1000 	 0000 	 1000 	 1 		 False
    1101 	 1000 	 0101 	 0001 	 1 		 False
    1101 	 1011 	 0000 	 1000 	 1 		 False
    1110 	 0000 	 0000 	 0011 	 1 		 False
    1110 	 0000 	 0010 	 0010 	 1 		 False
    1110 	 0000 	 0100 	 0010 	 1 		 False
    1110 	 0000 	 0100 	 0100 	 1 		 False
    1110 	 0000 	 1000 	 1000 	 1 		 False
    1110 	 0000 	 1100 	 0000 	 1 		 False
    1110 	 0001 	 0000 	 1110 	 1 		 False
    1110 	 0001 	 0001 	 0000 	 1 		 False
    1110 	 0001 	 1000 	 0001 	 1 		 False
    1110 	 0001 	 1000 	 1010 	 1 		 False
    1110 	 0010 	 0000 	 0010 	 1 		 False
    1110 	 0010 	 0010 	 0000 	 1 		 False
    1110 	 0010 	 0011 	 1000 	 1 		 False
    1110 	 0010 	 0100 	 0000 	 1 		 False
    1110 	 0010 	 0101 	 1000 	 1 		 False
    1110 	 0100 	 0000 	 0100 	 1 		 False
    1110 	 0100 	 0100 	 0000 	 1 		 False
    1110 	 0100 	 0101 	 0000 	 1 		 False
    1110 	 0100 	 1001 	 1001 	 1 		 False
    1110 	 1000 	 0000 	 1000 	 1 		 False
    1110 	 1000 	 0001 	 0001 	 1 		 False
    1110 	 1000 	 0100 	 0101 	 1 		 False
    1110 	 1000 	 1000 	 0010 	 1 		 False
    1110 	 1000 	 1000 	 0100 	 1 		 False
    1111 	 0000 	 0001 	 0100 	 1 		 False
    1111 	 0000 	 0100 	 0001 	 1 		 False
    1111 	 0001 	 0010 	 0000 	 1 		 False
    1111 	 0001 	 0100 	 1000 	 1 		 False
    1111 	 0010 	 1000 	 0001 	 1 		 False
    1111 	 1010 	 0000 	 0000 	 1 		 False
    1111 	 1100 	 0000 	 1100 	 1 		 False
    1111 	 1100 	 1000 	 1000 	 1 		 False

Hybrid quantum-classical feed forward neural network for solving the TSP.ipynb