<jupyter_start><jupyter_text>Predictive maintenance for enginesGetting started.- In order to have everything executed, the following pre requisites should be installed:- You should also have an Azure ML Workspace and create a json file in this directory: `.azureml/config.json` that has the following content:```json{    "subscription_id": "subscriptionguid",    "resource_group": "resourcegroupname",    "workspace_name": "workspacename"}```  Imports<jupyter_code># This section enables to use the module code referenced in the repo
import os
import os.path
import sys
import numpy as np
import time
from datetime import date
import pandas as pd

from arcus.azureml.environment.aml_environment import AzureMLEnvironment
import arcus.ml.dataframes as adf
%matplotlib inline
import os
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
import sys
from sklearn import preprocessing
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler
from sklearn.metrics import confusion_matrix,accuracy_score, classification_report
from sklearn.model_selection import train_test_split
from sklearn.metrics.pairwise import euclidean_distances, cosine_similarity
from sklearn.utils import shuffle
from sklearn.utils import class_weight
from sklearn.metrics import r2_score
from sklearn.metrics import mean_absolute_error
from sklearn.linear_model import LogisticRegression, LinearRegression
from sklearn.ensemble import RandomForestClassifier, RandomForestRegressor
import tensorflow as tf
import tensorflow.keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Bidirectional, GRU, Activation, BatchNormalization,SpatialDropout1D,Bidirectional, Embedding, LSTM
from tensorflow.keras.layers import Conv2D, MaxPooling2D
from tensorflow.keras import backend as K
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.preprocessing.text import Tokenizer, text_to_word_sequence
from tensorflow.keras.losses import categorical_crossentropy, binary_crossentropy

from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import GridSearchCV
#from livelossplot.tf_keras import PlotLossesCallback
from livelossplot.inputs.tf_keras import PlotLossesCallback
from tensorflow.keras.callbacks import EarlyStopping
from azureml.exceptions import ComputeTargetException, WebserviceException

import warnings
warnings.filterwarnings('ignore')<jupyter_output><empty_output><jupyter_text>Arcus connectivity<jupyter_code>azure_config_file = '.azureml/config.json'
aml = AzureMLEnvironment.Create(config_file=azure_config_file)
training_name = 'EngineFailurePrediction'
aml_trainer = aml.start_experiment(training_name)
web_service_name = training_name.lower() + '-v4'<jupyter_output><empty_output><jupyter_text>Local execution, AzureML tracking In the following section, we are creating a subfolder that will contain all files for the training in AzureML.  Load dataset and set featuresIn the next section, we are executing the following:1. Loading the data set from the AzureML workspace1. Adding a failure column, if the ttf (time to failure) is less than 50.  1. After that, we remove the ttf column, as we're focusing on the prediction of the failure feature1. Lastly, we take the first 75 engines as training data, and the remaining as test data<jupyter_code>dataset = aml.load_tabular_dataset('engine-data')

# Adding 'failure' column
dataset['failure'] = dataset.apply(lambda row: 0 if row.ttf > 50 else 1, axis = 1)

# Removing output features and irrelevant features
dataset.drop('ttf', axis=1, inplace=True)
dataset.drop('cycle', axis=1, inplace=True) 

# Taking datasets and extract training/test data
seq_length = 30
train_df = dataset[dataset.engine_id <= 75]
test_df = dataset[dataset.engine_id > 75]

print(f'Training samples: {len(train_df)}')
print(f'Test samples: {len(test_df)}')

dataset.tail(5)<jupyter_output>Training samples: 15159
Test samples: 5472<jupyter_text>Specify sliding windows for the LSTM networkA sliding window will contain a number of sequential (time series based) samples that will be used to predict the last failure feature of that window.  As LSTMs are Recurrent Neural Networks, they will keep the previous samples, leading up to the last section of the time window in memory and use it in their predictions.  Reusable time sliding function<jupyter_code>from sklearn.preprocessing import MinMaxScaler

def get_windows(sorted_df: pd.DataFrame, window_size: int, window_stride: int = 1, group_column: str = None, zero_padding: bool = False, remove_group_column: bool = False, target_column: str = None) -> np.array:
    if group_column is None:
        return __get_windows_from_group(sorted_df, window_size, window_stride, zero_padding, target_column)

    else:
        windows = None
        targets = None
        
        # create unique list of groups
        _groups = sorted_df[group_column].unique()

        for key in _groups:
            _group_df = sorted_df[:][sorted_df[group_column] == key]
            if(remove_group_column):
                _group_df.drop(group_column, axis=1, inplace=True)
            _current_windows, _current_targets = __get_windows_from_group(
                _group_df, window_size, window_stride, zero_padding, target_column)
            if windows is None:
                windows = _current_windows
            else:
                windows = np.concatenate((windows, _current_windows))

            if target_column is not None:
                if targets is None:
                    targets = _current_targets
                else:
                    targets = np.concatenate((targets, _current_targets))

        return windows, targets

def __get_windows_from_group(sorted_df: pd.DataFrame, window_size: int, 
                             window_stride: int = 1, zero_padding: bool = False,
                             target_column:str = None) -> np.array:
    # zero based row to take the leading window from - this row will be last row in the window
    _start_row_idx = 0 if zero_padding else window_size - 1
    # will contain all windows
    windows = list()
    targets = list()
    
    # range will be from start_row to row_count
    for __current_row_idx in range(_start_row_idx, len(sorted_df)):
        __slice_begin_idx = (__current_row_idx - window_size +
                             1) if __current_row_idx >= window_size else 0
        window_df = sorted_df.copy()
        time_slice = window_df.iloc[__slice_begin_idx:__current_row_idx + 1, :]
        time_array = np.array(time_slice.values)
        if(zero_padding):
            _rows_to_pad = window_size - __current_row_idx - 1
            if(_rows_to_pad > 0):
                padding_matrix = np.zeros(
                    (_rows_to_pad, len(sorted_df.columns)))
                time_array = np.concatenate((padding_matrix, time_array))
        if(target_column is not None):
            _target_colidx = sorted_df.columns.get_loc(target_column)
            time_array, target_array = __pop_from_array(time_array, _target_colidx)
            targets.append(target_array)

        scaler = preprocessing.MinMaxScaler().fit(time_array) 

        time_array = scaler.transform(time_array)
        windows.append(time_array)
    return np.array(windows), np.array(targets) if target_column is not None else None

def __pop_from_array(my_array,pc):
    i = pc
    pop = my_array[:,i]
    new_array = np.hstack((my_array[:,:i],my_array[:,i+1:]))
    return new_array, pop<jupyter_output><empty_output><jupyter_text>Time windowing<jupyter_code>X_train, y_train = get_windows(train_df, seq_length, group_column='engine_id', zero_padding=True, target_column='failure', remove_group_column=True)
X_test, y_test = get_windows(test_df, seq_length, group_column='engine_id', zero_padding=True, target_column='failure', remove_group_column=True)

# Only keeping the last values of the target arrays
y_train = y_train[:, -1]
y_test = y_test[:, -1]

#shuffled_p = np.random.permutation(len(X_train))
#X_train = X_train[shuffled_p]
#y_train = y_train[shuffled_p]<jupyter_output><empty_output><jupyter_text>Training of LSTM network<jupyter_code>def build_lstm(dropout = 0.0, lstm_nodes: int = 20, bi_directional: bool = False):
    model = Sequential()
    data_shape = (X_train.shape[1], X_train.shape[2])
    model.add(LSTM(lstm_nodes, input_shape=data_shape, activation = 'relu', return_sequences = True))
    model.add(Dropout(dropout))
    
    if(bi_directional):
        model.add(Bidirectional(LSTM(30, activation='relu')))
        model.add(Dropout(dropout))
    else:
        model.add(GRU(30))
    
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss = ('binary_crossentropy'), optimizer='adam', metrics=['acc'])
    return model
model = build_lstm(dropout = 0.2, lstm_nodes=50, bi_directional=False)
model.summary()
epoch_count = 4
batch_size = 32
lstm_nodes = 50
dropout = 0.2

early_stopping = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=5)
tensorboard_callback = tf.keras.callbacks.TensorBoard('./tensor_logs', histogram_freq=1),
model_checkpoint_callback = ModelCheckpoint(
    filepath='outputs/model_checkpoint',
    save_weights_only=False,
    monitor='val_acc',
    mode='max',
    save_best_only=True)
cbs =[early_stopping, *tensorboard_callback, model_checkpoint_callback, PlotLossesCallback()]

_run = aml_trainer.new_run(copy_folder = True, metrics = {'epochs': epoch_count, 'batch_size': batch_size, 'lstm_nodes': lstm_nodes, 'dropout': dropout})

model = build_lstm(dropout = dropout, lstm_nodes=lstm_nodes, bi_directional=True)

# shuffle data prior to training
model.fit(X_train, y_train,
                epochs=epoch_count,
                batch_size=batch_size,
                validation_split = 0.2,
                callbacks = cbs)
aml_trainer.evaluate_classifier(model, X_test, y_test, show_roc = True, upload_model = True)<jupyter_output>WARNING:tensorflow:From /Users/samvanhoutte/git/arcus/arcus.azureml/arcus/azureml/experimenting/aml_trainer.py:200: Sequential.predict_classes (from tensorflow.python.keras.engine.sequential) is deprecated and will be removed after 2021-01-01.
Instructions for updating:
Please use instead:* `np.argmax(model.predict(x), axis=-1)`,   if your model does multi-class classification   (e.g. if it uses a `softmax` last-layer activation).* `(model.predict(x) > 0.5).astype("int32")`,   if your model does binary classification   (e.g. if it uses a `sigmoid` last-layer activation).<jupyter_text>AmlCompute training<jupyter_code>args = {
    '--epochs': 50,
    '--batch_size': 16, 
    '--es_patience': 15,
    '--dropout': 25,
    '--lstmnodes': 80,
    '--bidirectional': True
}
compute_run = aml_trainer.start_training(training_name, environment_type='tensorflow', 
                       script_parameters=args,
                       compute_target='gpu-training', gpu_compute=True)<jupyter_output>Getting environment for type tensorflow
Taking AzureML-TensorFlow-2.0-GPU as base environment
https://ml.azure.com/experiments/EngineFailurePrediction/runs/EngineFailurePrediction_1606140245_eb8708ea?wsid=/subscriptions/b73995e3-caad-4882-8644-f2175789c3ff/resourcegroups/savanh-time-travel/workspaces/savanh-time-travel<jupyter_text>Deploy model to AzureML  Register model to AzureML registry<jupyter_code>from azureml.core import Run

def deploy_model(experiment, run_number, model_location):
    for run in experiment.get_runs():
        if run.number == run_number:
            model = run.register_model(model_name=experiment.name,
                           tags={'output': 'series', 'input': 'charts'},
                           model_path=model_location)
            print(model.name, model.id, model.version, sep='\t')
            break
    
deploy_model(aml_trainer._AzureMLTrainer__experiment, 21, 'outputs/model_checkpoint')
from azureml.core.model import Model
series_model = Model.list(aml.get_azureml_workspace(), name=training_name, latest=True)[0]
print(series_model)<jupyter_output>Model(workspace=Workspace.create(name='savanh-time-travel', subscription_id='b73995e3-caad-4882-8644-f2175789c3ff', resource_group='savanh-time-travel'), name=EngineFailurePrediction, id=EngineFailurePrediction:4, version=4, tags={'output': 'series', 'input': 'charts'}, properties={})<jupyter_text>Execute this section to deploy to an AKS inference cluster__Creation of the inference cluster__<jupyter_code>from azureml.core.compute import ComputeTarget, AksCompute
from azureml.exceptions import ComputeTargetException

# Choose a name for your cluster
aks_name = 'inferencecluster'

# Check to see if the cluster already exists
try:
    deployment_target = ComputeTarget(workspace=aml.get_azureml_workspace(), name=aks_name)
    print('Found existing compute target')
except ComputeTargetException:
    print('Creating a new compute target...')
    # Provision AKS cluster with GPU machine
    prov_config = AksCompute.provisioning_configuration(vm_size="Standard_NC6")

    # Create the cluster
    deployment_target = ComputeTarget.create(
        workspace=aml.get_azureml_workspace(), name=aks_name, provisioning_configuration=prov_config
    )

    deployment_target.wait_for_completion(show_output=True)<jupyter_output>Creating a new compute target...
Creating...................................................................................
SucceededProvisioning operation finished, operation "Succeeded"<jupyter_text>__Creation of the AKS deployment config__<jupyter_code>from azureml.core.webservice import AksWebservice

deployment_config = AksWebservice.deploy_configuration(autoscale_enabled=False, auth_enabled=True,
                                                    num_replicas=1,
                                                    cpu_cores=1,gpu_cores=1,
                                                    memory_gb=1)
from azureml.core import Environment
from azureml.core.webservice import Webservice

try:
    service = Webservice(name=web_service_name, workspace=aml.get_azureml_workspace())
    print('Web service exists and retrieved')
except WebserviceException:
    print('Deploying model as web service')
    service = Model.deploy(workspace=aml.get_azureml_workspace(), 
                           name=web_service_name, 
                           models=[series_model], 
                           deployment_target=deployment_target,
                           inference_config=inference_config, 
                           deployment_config=deployment_config)
    service.wait_for_deployment(show_output=True)
    print(service.state)
    service.get_logs()    
    print('Web service created')<jupyter_output><empty_output><jupyter_text>Execute this section to deploy to an ACI inference instance__Creation of the AKS deployment config__<jupyter_code>from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model

deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1, 
                                                       auth_enabled=True, enable_app_insights=True)
deployment_target = None<jupyter_output><empty_output><jupyter_text>Deployment of inference web service endpoint<jupyter_code>from azureml.core import Environment
from azureml.core.model import InferenceConfig
myenv = Environment.get(aml.get_azureml_workspace(), training_name)
inference_config = InferenceConfig(entry_script=training_name + '/score.py', environment=myenv)

from azureml.core import Environment
from azureml.core.webservice import Webservice

try:
    service = Webservice(name=web_service_name, workspace=aml.get_azureml_workspace())
    print('Web service exists and retrieved')
except WebserviceException:
    print('Deploying model as web service')
    service = Model.deploy(workspace=aml.get_azureml_workspace(), 
                           name=web_service_name, 
                           models=[series_model], 
                           deployment_target=deployment_target,
                           inference_config=inference_config, 
                           deployment_config=deployment_config)
    service.wait_for_deployment(show_output=True)
    print(service.state)
    service.get_logs()    
    print('Web service created')<jupyter_output>Web service exists and retrieved<jupyter_text>Update service endpoint with latest scoring script<jupyter_code>from azureml.core import Environment
from azureml.core.model import InferenceConfig
myenv = Environment.get(aml.get_azureml_workspace(), training_name)
inference_config = InferenceConfig(entry_script=training_name + '/score.py', environment=myenv)
from azureml.core import Environment
from azureml.core.webservice import Webservice

service = Webservice(name=web_service_name, workspace=aml.get_azureml_workspace())

from azureml.core.model import Model
series_model = Model.list(aml.get_azureml_workspace(), name=training_name, latest=True)[0]
print(series_model)
service.update(models=[series_model], inference_config=inference_config, enable_app_insights=True)<jupyter_output><empty_output><jupyter_text>Consume Model endpoint<jupyter_code>from azureml.core import Environment
from azureml.core.webservice import Webservice

service = Webservice(name=web_service_name, workspace=aml.get_azureml_workspace())
input_data = np.array([np.random.rand(30,24)])
#input_data = np.random.rand(30,24)
print(input_data.shape)
service.get_keys()
service.scoring_uri
asa_sample = np.array([
	[[
		[0.9727616969067454, 0.7587399975092003, 0.6509840021170749, 0.4250979216131907, 0.5740157589301372, 0.08117712379124065, 0.39885688854811663, 0.3465140323730721, 0.004610381667732089, 0.10684293919466747, 0.7449116171557201, 0.5017028127811222, 0.23398440968302048, 0.9708533071266738, 0.9911553814955519, 0.41440841171959775, 0.8457014391144617, 0.15239825985497368, 0.3984220990281814, 0.33016986011652516, 0.1582229115793614, 0.9897733572062349, 0.03800741877119351, 0.0033332373216570232], 
		[0.3350998906054812, 0.8743944379902784, 0.0777488697378782, 0.5296049181398584, 0.8599937218139372, 0.5823461128198034, 0.7569570589737813, 0.7138345961256969, 0.31782827695158333, 0.3745968568473146, 0.3902702435933244, 0.04098297143951002, 0.38147269403333617, 0.41031468931909676, 0.8466999424215854, 0.38998255765213496, 0.20869203879744236, 0.19356076090619445, 0.7298157770237943, 0.6722630963664832, 0.086060306719416, 0.7316451675555419, 0.5711063069694765, 0.13386432131840276], 
		[0.09664859276541815, 0.45633573596580845, 0.9180774469534215, 0.07942887966587009, 0.11831197403490767, 0.9962393189796087, 0.5834928659351818, 0.05540812197802769, 0.21218556916275078, 0.09367015352913288, 0.648884498233837, 0.8054455394908986, 0.014948738319563115, 0.08663635086515331, 0.49105912238969385, 0.4709311408028065, 0.02037154347640291, 0.8005404944378096, 0.934953833327273, 0.4700171533918829, 0.3728715419143762, 0.008523837291597225, 0.019303877306142025, 0.27226424842778174], 
		[0.49952440504151796, 0.1446617064810588, 0.717299447649528, 0.6144216293080845, 0.6154572678158052, 0.43198252425891115, 0.3178325297523463, 0.24451572337778826, 0.9753584766103467, 0.5239621311634012, 0.9690831142571313, 0.49310771571199985, 0.2479947180071589, 0.7034055622316409, 0.6398786799291727, 0.7131982891214645, 0.08566670436364254, 0.18753966423679513, 0.14261119513572185, 0.6651993357024237, 0.07803179755370504, 0.9494007692542101, 0.48950284692906887, 0.13236963583111083], 
		[0.4649196655040251, 0.4749066464017321, 0.6821435398899829, 0.3180503433942067, 0.12406548858671806, 0.23760469546531993, 0.41060550351428926, 0.9717373351162082, 0.6945797853073491, 0.7382145697287041, 0.8141916034854538, 0.559572591761402, 0.6511331369858994, 0.18521836751168386, 0.9560809860530886, 0.9642013743361032, 0.21901100913106664, 0.16036187855092732, 0.6775740824248178, 0.17088774916148652, 0.05370380359585292, 0.35524731500043083, 0.7829176403017396, 0.39579171044175254], 
		[0.5495270955409811, 0.6561072719341436, 0.38388576238213656, 0.4614054202673312, 0.9208125209508247, 0.7632106665550925, 0.3012637115804525, 0.4404770013535326, 0.8912255444177788, 0.7396374479027689, 0.7688234104135178, 0.798679871711394, 0.7574980609785341, 0.46554748110093735, 0.9003650740715669, 0.2513506672159369, 0.2979366983351125, 0.0462652648323979, 0.2751924296603211, 0.3362423479470047, 0.13780488758449227, 0.44383539446351494, 0.26651583204899, 0.21063996886916037], 
		[0.3145672195929201, 0.9399234586218795, 0.7383818691513117, 0.14187634688870854, 0.2523140481359917, 0.6650449970908284, 0.17390078883610105, 0.8117502065185871, 0.9021362666366852, 0.20580985735912238, 0.06044188224796587, 0.15351560937399655, 0.40431872973685445, 0.2772895253956631, 0.5579200749650998, 0.5727281753665254, 0.7042557445247969, 0.27888103886573523, 0.08738885840701449, 0.6319594599018391, 0.004726252258973718, 0.10826017798069754, 0.5416242038554636, 0.02005460219841282], 
		[0.5532052048602775, 0.05368977298430455, 0.29904082072169447, 0.9262172850541012, 0.1649315716789086, 0.12832832611283207, 0.046882876209290436, 0.31370280025320973, 0.0551291169820356, 0.07913979534142468, 0.7475990066293949, 0.8381284619433196, 0.041644247973360304, 0.3565564026067871, 0.8495524870442067, 0.031816859006542964, 0.469522084406383, 0.9739899229090461, 0.7873373998268324, 0.6470269470375477, 0.5070842889446152, 0.4000224072703835, 0.6263809121631785, 0.4975272335724381], 
		[0.4591826429370701, 0.12469701861090055, 0.9186763229647286, 0.14281264082792777, 0.0984915530055035, 0.24498284929168523, 0.8852819722518337, 0.4621235806976911, 0.6418499724302851, 0.7891141523731405, 0.3476732511559607, 0.5878488780172209, 0.36633324785956944, 0.21647666527253429, 0.6055963071633521, 0.21558141097127148, 0.5764266387557815, 0.8010907176149216, 0.03807624392714637, 0.5059306704628208, 0.6760772862623393, 0.5172876866925566, 0.8386587831704634, 0.006966312114960127], 
		[0.7626988145714816, 0.5081599979426945, 0.7148614700028312, 0.7395875694262392, 0.38320155772695697, 0.8038116791519212, 0.06101496529313055, 0.3928913137275657, 0.1496872508874142, 0.09054788265718061, 0.6492753381391022, 0.03348236707835517, 0.15091161626002514, 0.5167857226678192, 0.5671465251154928, 0.4172205956092654, 0.9488060270220704, 0.46882107005483753, 0.4539730473001462, 0.36955702452889583, 0.41513351741536453, 0.3287395151784609, 0.7031417322636643, 0.516727214286156], 
		[0.13679722658930527, 0.11175339378076399, 0.6993651817881046, 0.8096302505696128, 0.6117339901343942, 0.5614856733625501, 0.4246337427277017, 0.9975818119473809, 0.5190941572824449, 0.15966329747861374, 0.057117400341800684, 0.4215262087265429, 0.4309668620498771, 0.9775934355425756, 0.775445385912367, 0.9457355063978717, 0.7941102541286525, 0.3167219493170259, 0.8886528435775617, 0.015262340974284139, 0.989772608912269, 0.5305791184351362, 0.2470926747886628, 0.04003971879975077], 
		[0.35924658165339196, 0.013295961328395278, 0.8984166022579879, 0.7192495839348111, 0.9004548130513973, 0.31387216566376497, 0.7939343841855306, 0.5251867899715399, 0.5610706526262371, 0.6577232265946671, 0.6242443121360803, 0.06787685277716649, 0.031807737150785775, 0.5313801151138718, 0.4764666403429477, 0.4839825481417317, 0.2052067682875145, 0.014906519958867492, 0.19269624153789655, 0.6991578134959952, 0.6511076188795862, 0.11353063888245751, 0.749897318234682, 0.30894469858925977], 
		[0.45886389504998426, 0.4884780967780935, 0.6466419325279327, 0.43657945260622943, 0.7237481136071017, 0.9954892333725041, 0.029315926605520848, 0.9842101430214324, 0.23691123548272175, 0.6680233533525913, 0.6053237180665962, 0.5076869691569926, 0.23655730092855587, 0.5532766765166309, 0.7597637465542998, 0.4150716942458069, 0.8481151766811527, 0.06908825326126866, 0.22288765164184676, 0.1580019070140365, 0.3716940906105758, 0.25652192832772214, 0.15138699861973293, 0.8339782349233843], 
		[0.0255147573031842, 0.2877018138246865, 0.14541999592641497, 0.6101113270601107, 0.2615947281823251, 0.5059085713347629, 0.006984055284821933, 0.4424048117679167, 0.12598437318855626, 0.5059405794707932, 0.3157407333351956, 0.6725537934278718, 0.7920604336479956, 0.2522083549265053, 0.08546887140676473, 0.8877132257990695, 0.5082326400064657, 0.223766376169532, 0.7381613695426785, 0.38660506762900926, 0.5749206825426342, 0.5320777581292739, 0.9259568486565152, 0.01662623512662864], 
		[0.1640383280784946, 0.13615030810582418, 0.32416951792509896, 0.3032964697876057, 0.730779184008548, 0.4995570483407574, 0.23639783514350543, 0.7922631920272828, 0.8266597677405235, 0.6263389673113455, 0.7809388029831532, 0.4970746319619189, 0.9148325863522293, 0.16986608659589408, 0.29334905534633016, 0.5798919244629708, 0.17207158704631587, 0.24564331869996037, 0.7476258064276112, 0.06021519006705667, 0.0895991328019089, 0.4433717930166765, 0.20455975696583995, 0.8595408410576465], 
		[0.41113375531227936, 0.22528267218630793, 0.34212802466165493, 0.6336007873484538, 0.44734855669008955, 0.21337972381105652, 0.9199909100544271, 0.8056890346467424, 0.9031493592014516, 0.26199678049959674, 0.755586421261524, 0.9813608557257281, 0.27869294255998345, 0.9005846395774324, 0.8660301842314712, 0.0552945745139366, 0.5575255488680275, 0.06337503007550538, 0.35605744839490083, 0.6828144707279212, 0.13715514278519159, 0.9128193987553871, 0.23730672074018577, 0.5161181571456536], 
		[0.11174812422365166, 0.8304432107481533, 0.8100937096648234, 0.054929441032417925, 0.2836913936438378, 0.14953682396484846, 0.6897496508421188, 0.649617260403895, 0.6353912714890478, 0.23623037702126715, 0.26253406359622733, 0.5160315250837687, 0.9800810571535981, 0.9981546110363635, 0.1341041046494693, 0.6344350946716227, 0.26375064626974676, 0.7763283371129358, 0.6431400740194011, 0.1986141749071355, 0.41016317794741, 0.9699849978593518, 0.5860046954963384, 0.7989818130588995], 
		[0.24794213656127118, 0.12487149626709504, 0.9301621522927138, 0.7860765595899228, 0.4525018057942246, 0.009271055504679215, 0.8388385298012262, 0.4239929973185218, 0.46668434080775667, 0.4558015674220478, 0.3672515006325392, 0.759971391813188, 0.9309225036351447, 0.3870978023030033, 0.9541992235958648, 0.36273639738698804, 0.2192717648002418, 0.8963674730428999, 0.9880093783399917, 0.9703886340604705, 0.9653334435667014, 0.032373777811967264, 0.7285177116305698, 0.5722790311877869], 
		[0.6635107983587347, 0.35394003586660916, 0.6808895174770511, 0.9399900346579217, 0.746216135961448, 0.087807686548113, 0.4854238691118983, 0.7373148635351925, 0.674941964800109, 0.1976219576558641, 0.7814396088160117, 0.9899033868243504, 0.6759547624937833, 0.36792506321682483, 0.660056123166032, 0.6276296391548623, 0.4645002243577926, 0.681417887749682, 0.3635922124409595, 0.8552612012975332, 0.7546746639771689, 0.35826066578560867, 0.7029130968288481, 0.6418936994099056], 
		[0.8535926066278231, 0.25531322017913405, 0.6954699715777524, 0.35164483279414205, 0.8393000665891133, 0.7025402939641417, 0.48319881898730055, 0.8568022853096611, 0.16852954402002962, 0.770300318136273, 0.33663208786042387, 0.8841633479747258, 0.9352248467399766, 0.7952776838557419, 0.6069671660861908, 0.9827901161922423, 0.12248354937021577, 0.9851217548972104, 0.2514766346975855, 0.6384123881565518, 0.28025194903548667, 0.48243781176412237, 0.18303259459759147, 0.2917409074186945], 
		[0.7941062152612299, 0.0332043055108564, 0.8253255208874968, 0.5022075581614012, 0.4808252661640141, 0.5204686084097729, 0.06302721606740158, 0.9226434757263646, 0.31518291974320667, 0.17940641920847245, 0.9843775817048375, 0.6085803122912391, 0.3626262779841938, 0.8207197451057522, 0.1451132142311805, 0.6446332733307627, 0.33253685466725325, 0.8270079413567204, 0.8132121879904882, 0.170775250499273, 0.04908135886940301, 0.5492444475477715, 0.8511128096967944, 0.27998853449768046], 
		[0.6707140200929652, 0.6046311163667478, 0.00909584043420908, 0.763533287188816, 0.21871990978907085, 0.2787844975423829, 0.11900313410943064, 0.5931165771621124, 0.5416019106984434, 0.3901611826896878, 0.6058391352274586, 0.3089406531023958, 0.08242768027910408, 0.3895312577278084, 0.2465560849315157, 0.24310794664109303, 0.2273364207799916, 0.870798594949423, 0.661003889008057, 0.9033876614038359, 0.542819384527219, 0.1432047544321038, 0.826560845178926, 0.38316648170711853], 
		[0.3600278377153635, 0.8154104129738404, 0.380244293533364, 0.35770157018677917, 0.5449683082482253, 0.3903116654915484, 0.6517778730088893, 0.6987753812567563, 0.6519504223294544, 0.28661821498829176, 0.41987566525696585, 0.5422421716336231, 0.013181666173131545, 0.2776814104495585, 0.9448121032009769, 0.11530236225551649, 0.06841564299640135, 0.08404001996156663, 0.2715633821785556, 0.8817619348014696, 0.12767657940375654, 0.6841003421544801, 0.37050696924621107, 0.8394926110519514], 
		[0.03722317446236767, 0.7358367569727565, 0.08850586144472383, 0.8374975936663717, 0.7505000847230705, 0.09317516856041264, 0.2809619844674123, 0.720033314907552, 0.05636523568828322, 0.3137187424345873, 0.16263384063313346, 0.084648103335211, 0.4941782814086678, 0.23767035127307878, 0.8070280769132988, 0.09294114133840647, 0.1670975152401838, 0.1480145430105546, 0.6271432828048905, 0.36728892161409443, 0.6557677646206056, 0.7710908119920519, 0.2592080036288077, 0.877416080157967], 
		[0.673050460553388, 0.09070118357996115, 0.8479874835592551, 0.8117133935069272, 0.629624093693778, 0.6405228178908031, 0.20810522202199522, 0.6789625384378881, 0.17403327603794405, 0.1738838877985528, 0.7290079565253929, 0.600881030288838, 0.4211832660053477, 0.2832587705712658, 0.9358474566798137, 0.0882757865045366, 0.1416085930249522, 0.04881122357869139, 0.1491658842276935, 0.0101111197085344, 0.7506464555223239, 0.598104180764148, 0.7025748678961187, 0.5260560398793472], 
		[0.10247191813523504, 0.04895973283804134, 0.10081641362826599, 0.16850051465324745, 0.1565649858587067, 0.4930492592193033, 0.0026831730441521096, 0.7041189870876225, 0.19416688478956956, 0.988377864743019, 0.6921867592473498, 0.5339416485101457, 0.22731194292515278, 0.71945778628007, 0.3793201139363762, 0.6615074650559275, 0.33500978911417134, 0.3614615611803065, 0.5644414857678615, 0.285434245856665, 0.37107067516066927, 0.6327706750801998, 0.2272000629142351, 0.016668137444917352], 
		[0.7601152452538722, 0.8869209126957917, 0.29448555693769063, 0.8733925632399391, 0.3096703582570499, 0.0943634386943295, 0.6084482798258393, 0.2625906272622479, 0.946849486904722, 0.21185531780421596, 0.9441862779826886, 0.9287956020795592, 0.23928688617091098, 0.044073273287893344, 0.3905541464300033, 0.7787047481228537, 0.08518802126279634, 0.8423030273105835, 0.3398410861186667, 0.33320278711144635, 0.9121918619011056, 0.912294656815053, 0.23972735988393468, 0.2602632976383801], 
		[0.838140724498182, 0.350530169062905, 0.7140306933208729, 0.31422488042165797, 0.7892034438923123, 0.2664824634061409, 0.14608750930531467, 0.08260573462263021, 0.6797479672638638, 0.985832762426188, 0.26091740579534406, 0.987366367402759, 0.5031848432305549, 0.008768122996578476, 0.21173053942463826, 0.8124573922677182, 0.527479209688619, 0.1624210467393219, 0.5665497785308927, 0.45679904619520595, 0.05367676745703498, 0.9977824422834459, 0.9139586932201674, 0.3042223429942773], 
		[0.387944274527275, 0.7748257523937642, 0.08322832186476337, 0.03494384725064048, 0.3648524009543517, 0.9547827252852154, 0.3539279113904594, 0.39523016961802915, 0.3026513609614975, 0.5666169502760794, 0.10570345851214213, 0.9688821230432061, 0.7693824693305831, 0.8614555462833936, 0.1890238484329717, 0.010554898185771822, 0.9061986426802231, 0.17726798703979374, 0.6047126654664705, 0.9814884010369894, 0.10019626291532269, 0.5317181965230484, 0.3187093834966027, 0.7835354650866508], 
		[0.8178553594624905, 0.8006303133807369, 0.6819055111271243, 0.8065087665065702, 0.843627099999655, 0.9168046192463564, 0.23932509883366704, 0.5536443048208751, 0.6177556497954513, 0.4209485942873481, 0.48671381068063657, 0.5439452089904486, 0.09503287077948597, 0.3454539371783393, 0.3539239110096716, 0.3756146099113846, 0.7977182007465098, 0.8319010627286547, 0.8773494282355964, 0.7846070099417505, 0.4340093905207333, 0.944419175878628, 0.3460303359388449, 0.7044192711201761]
	]],
    [[
		[0.9727616969067454, 0.7587399975092003, 0.6509840021170749, 0.4250979216131907, 0.5740157589301372, 0.08117712379124065, 0.39885688854811663, 0.3465140323730721, 0.004610381667732089, 0.10684293919466747, 0.7449116171557201, 0.5017028127811222, 0.23398440968302048, 0.9708533071266738, 0.9911553814955519, 0.41440841171959775, 0.8457014391144617, 0.15239825985497368, 0.3984220990281814, 0.33016986011652516, 0.1582229115793614, 0.9897733572062349, 0.03800741877119351, 0.0033332373216570232], 
		[0.3350998906054812, 0.8743944379902784, 0.0777488697378782, 0.5296049181398584, 0.8599937218139372, 0.5823461128198034, 0.7569570589737813, 0.7138345961256969, 0.31782827695158333, 0.3745968568473146, 0.3902702435933244, 0.04098297143951002, 0.38147269403333617, 0.41031468931909676, 0.8466999424215854, 0.38998255765213496, 0.20869203879744236, 0.19356076090619445, 0.7298157770237943, 0.6722630963664832, 0.086060306719416, 0.7316451675555419, 0.5711063069694765, 0.13386432131840276], 
		[0.09664859276541815, 0.45633573596580845, 0.9180774469534215, 0.07942887966587009, 0.11831197403490767, 0.9962393189796087, 0.5834928659351818, 0.05540812197802769, 0.21218556916275078, 0.09367015352913288, 0.648884498233837, 0.8054455394908986, 0.014948738319563115, 0.08663635086515331, 0.49105912238969385, 0.4709311408028065, 0.02037154347640291, 0.8005404944378096, 0.934953833327273, 0.4700171533918829, 0.3728715419143762, 0.008523837291597225, 0.019303877306142025, 0.27226424842778174], 
		[0.49952440504151796, 0.1446617064810588, 0.717299447649528, 0.6144216293080845, 0.6154572678158052, 0.43198252425891115, 0.3178325297523463, 0.24451572337778826, 0.9753584766103467, 0.5239621311634012, 0.9690831142571313, 0.49310771571199985, 0.2479947180071589, 0.7034055622316409, 0.6398786799291727, 0.7131982891214645, 0.08566670436364254, 0.18753966423679513, 0.14261119513572185, 0.6651993357024237, 0.07803179755370504, 0.9494007692542101, 0.48950284692906887, 0.13236963583111083], 
		[0.4649196655040251, 0.4749066464017321, 0.6821435398899829, 0.3180503433942067, 0.12406548858671806, 0.23760469546531993, 0.41060550351428926, 0.9717373351162082, 0.6945797853073491, 0.7382145697287041, 0.8141916034854538, 0.559572591761402, 0.6511331369858994, 0.18521836751168386, 0.9560809860530886, 0.9642013743361032, 0.21901100913106664, 0.16036187855092732, 0.6775740824248178, 0.17088774916148652, 0.05370380359585292, 0.35524731500043083, 0.7829176403017396, 0.39579171044175254], 
		[0.5495270955409811, 0.6561072719341436, 0.38388576238213656, 0.4614054202673312, 0.9208125209508247, 0.7632106665550925, 0.3012637115804525, 0.4404770013535326, 0.8912255444177788, 0.7396374479027689, 0.7688234104135178, 0.798679871711394, 0.7574980609785341, 0.46554748110093735, 0.9003650740715669, 0.2513506672159369, 0.2979366983351125, 0.0462652648323979, 0.2751924296603211, 0.3362423479470047, 0.13780488758449227, 0.44383539446351494, 0.26651583204899, 0.21063996886916037], 
		[0.3145672195929201, 0.9399234586218795, 0.7383818691513117, 0.14187634688870854, 0.2523140481359917, 0.6650449970908284, 0.17390078883610105, 0.8117502065185871, 0.9021362666366852, 0.20580985735912238, 0.06044188224796587, 0.15351560937399655, 0.40431872973685445, 0.2772895253956631, 0.5579200749650998, 0.5727281753665254, 0.7042557445247969, 0.27888103886573523, 0.08738885840701449, 0.6319594599018391, 0.004726252258973718, 0.10826017798069754, 0.5416242038554636, 0.02005460219841282], 
		[0.5532052048602775, 0.05368977298430455, 0.29904082072169447, 0.9262172850541012, 0.1649315716789086, 0.12832832611283207, 0.046882876209290436, 0.31370280025320973, 0.0551291169820356, 0.07913979534142468, 0.7475990066293949, 0.8381284619433196, 0.041644247973360304, 0.3565564026067871, 0.8495524870442067, 0.031816859006542964, 0.469522084406383, 0.9739899229090461, 0.7873373998268324, 0.6470269470375477, 0.5070842889446152, 0.4000224072703835, 0.6263809121631785, 0.4975272335724381], 
		[0.4591826429370701, 0.12469701861090055, 0.9186763229647286, 0.14281264082792777, 0.0984915530055035, 0.24498284929168523, 0.8852819722518337, 0.4621235806976911, 0.6418499724302851, 0.7891141523731405, 0.3476732511559607, 0.5878488780172209, 0.36633324785956944, 0.21647666527253429, 0.6055963071633521, 0.21558141097127148, 0.5764266387557815, 0.8010907176149216, 0.03807624392714637, 0.5059306704628208, 0.6760772862623393, 0.5172876866925566, 0.8386587831704634, 0.006966312114960127], 
		[0.7626988145714816, 0.5081599979426945, 0.7148614700028312, 0.7395875694262392, 0.38320155772695697, 0.8038116791519212, 0.06101496529313055, 0.3928913137275657, 0.1496872508874142, 0.09054788265718061, 0.6492753381391022, 0.03348236707835517, 0.15091161626002514, 0.5167857226678192, 0.5671465251154928, 0.4172205956092654, 0.9488060270220704, 0.46882107005483753, 0.4539730473001462, 0.36955702452889583, 0.41513351741536453, 0.3287395151784609, 0.7031417322636643, 0.516727214286156], 
		[0.13679722658930527, 0.11175339378076399, 0.6993651817881046, 0.8096302505696128, 0.6117339901343942, 0.5614856733625501, 0.4246337427277017, 0.9975818119473809, 0.5190941572824449, 0.15966329747861374, 0.057117400341800684, 0.4215262087265429, 0.4309668620498771, 0.9775934355425756, 0.775445385912367, 0.9457355063978717, 0.7941102541286525, 0.3167219493170259, 0.8886528435775617, 0.015262340974284139, 0.989772608912269, 0.5305791184351362, 0.2470926747886628, 0.04003971879975077], 
		[0.35924658165339196, 0.013295961328395278, 0.8984166022579879, 0.7192495839348111, 0.9004548130513973, 0.31387216566376497, 0.7939343841855306, 0.5251867899715399, 0.5610706526262371, 0.6577232265946671, 0.6242443121360803, 0.06787685277716649, 0.031807737150785775, 0.5313801151138718, 0.4764666403429477, 0.4839825481417317, 0.2052067682875145, 0.014906519958867492, 0.19269624153789655, 0.6991578134959952, 0.6511076188795862, 0.11353063888245751, 0.749897318234682, 0.30894469858925977], 
		[0.45886389504998426, 0.4884780967780935, 0.6466419325279327, 0.43657945260622943, 0.7237481136071017, 0.9954892333725041, 0.029315926605520848, 0.9842101430214324, 0.23691123548272175, 0.6680233533525913, 0.6053237180665962, 0.5076869691569926, 0.23655730092855587, 0.5532766765166309, 0.7597637465542998, 0.4150716942458069, 0.8481151766811527, 0.06908825326126866, 0.22288765164184676, 0.1580019070140365, 0.3716940906105758, 0.25652192832772214, 0.15138699861973293, 0.8339782349233843], 
		[0.0255147573031842, 0.2877018138246865, 0.14541999592641497, 0.6101113270601107, 0.2615947281823251, 0.5059085713347629, 0.006984055284821933, 0.4424048117679167, 0.12598437318855626, 0.5059405794707932, 0.3157407333351956, 0.6725537934278718, 0.7920604336479956, 0.2522083549265053, 0.08546887140676473, 0.8877132257990695, 0.5082326400064657, 0.223766376169532, 0.7381613695426785, 0.38660506762900926, 0.5749206825426342, 0.5320777581292739, 0.9259568486565152, 0.01662623512662864], 
		[0.1640383280784946, 0.13615030810582418, 0.32416951792509896, 0.3032964697876057, 0.730779184008548, 0.4995570483407574, 0.23639783514350543, 0.7922631920272828, 0.8266597677405235, 0.6263389673113455, 0.7809388029831532, 0.4970746319619189, 0.9148325863522293, 0.16986608659589408, 0.29334905534633016, 0.5798919244629708, 0.17207158704631587, 0.24564331869996037, 0.7476258064276112, 0.06021519006705667, 0.0895991328019089, 0.4433717930166765, 0.20455975696583995, 0.8595408410576465], 
		[0.41113375531227936, 0.22528267218630793, 0.34212802466165493, 0.6336007873484538, 0.44734855669008955, 0.21337972381105652, 0.9199909100544271, 0.8056890346467424, 0.9031493592014516, 0.26199678049959674, 0.755586421261524, 0.9813608557257281, 0.27869294255998345, 0.9005846395774324, 0.8660301842314712, 0.0552945745139366, 0.5575255488680275, 0.06337503007550538, 0.35605744839490083, 0.6828144707279212, 0.13715514278519159, 0.9128193987553871, 0.23730672074018577, 0.5161181571456536], 
		[0.11174812422365166, 0.8304432107481533, 0.8100937096648234, 0.054929441032417925, 0.2836913936438378, 0.14953682396484846, 0.6897496508421188, 0.649617260403895, 0.6353912714890478, 0.23623037702126715, 0.26253406359622733, 0.5160315250837687, 0.9800810571535981, 0.9981546110363635, 0.1341041046494693, 0.6344350946716227, 0.26375064626974676, 0.7763283371129358, 0.6431400740194011, 0.1986141749071355, 0.41016317794741, 0.9699849978593518, 0.5860046954963384, 0.7989818130588995], 
		[0.24794213656127118, 0.12487149626709504, 0.9301621522927138, 0.7860765595899228, 0.4525018057942246, 0.009271055504679215, 0.8388385298012262, 0.4239929973185218, 0.46668434080775667, 0.4558015674220478, 0.3672515006325392, 0.759971391813188, 0.9309225036351447, 0.3870978023030033, 0.9541992235958648, 0.36273639738698804, 0.2192717648002418, 0.8963674730428999, 0.9880093783399917, 0.9703886340604705, 0.9653334435667014, 0.032373777811967264, 0.7285177116305698, 0.5722790311877869], 
		[0.6635107983587347, 0.35394003586660916, 0.6808895174770511, 0.9399900346579217, 0.746216135961448, 0.087807686548113, 0.4854238691118983, 0.7373148635351925, 0.674941964800109, 0.1976219576558641, 0.7814396088160117, 0.9899033868243504, 0.6759547624937833, 0.36792506321682483, 0.660056123166032, 0.6276296391548623, 0.4645002243577926, 0.681417887749682, 0.3635922124409595, 0.8552612012975332, 0.7546746639771689, 0.35826066578560867, 0.7029130968288481, 0.6418936994099056], 
		[0.8535926066278231, 0.25531322017913405, 0.6954699715777524, 0.35164483279414205, 0.8393000665891133, 0.7025402939641417, 0.48319881898730055, 0.8568022853096611, 0.16852954402002962, 0.770300318136273, 0.33663208786042387, 0.8841633479747258, 0.9352248467399766, 0.7952776838557419, 0.6069671660861908, 0.9827901161922423, 0.12248354937021577, 0.9851217548972104, 0.2514766346975855, 0.6384123881565518, 0.28025194903548667, 0.48243781176412237, 0.18303259459759147, 0.2917409074186945], 
		[0.7941062152612299, 0.0332043055108564, 0.8253255208874968, 0.5022075581614012, 0.4808252661640141, 0.5204686084097729, 0.06302721606740158, 0.9226434757263646, 0.31518291974320667, 0.17940641920847245, 0.9843775817048375, 0.6085803122912391, 0.3626262779841938, 0.8207197451057522, 0.1451132142311805, 0.6446332733307627, 0.33253685466725325, 0.8270079413567204, 0.8132121879904882, 0.170775250499273, 0.04908135886940301, 0.5492444475477715, 0.8511128096967944, 0.27998853449768046], 
		[0.6707140200929652, 0.6046311163667478, 0.00909584043420908, 0.763533287188816, 0.21871990978907085, 0.2787844975423829, 0.11900313410943064, 0.5931165771621124, 0.5416019106984434, 0.3901611826896878, 0.6058391352274586, 0.3089406531023958, 0.08242768027910408, 0.3895312577278084, 0.2465560849315157, 0.24310794664109303, 0.2273364207799916, 0.870798594949423, 0.661003889008057, 0.9033876614038359, 0.542819384527219, 0.1432047544321038, 0.826560845178926, 0.38316648170711853], 
		[0.3600278377153635, 0.8154104129738404, 0.380244293533364, 0.35770157018677917, 0.5449683082482253, 0.3903116654915484, 0.6517778730088893, 0.6987753812567563, 0.6519504223294544, 0.28661821498829176, 0.41987566525696585, 0.5422421716336231, 0.013181666173131545, 0.2776814104495585, 0.9448121032009769, 0.11530236225551649, 0.06841564299640135, 0.08404001996156663, 0.2715633821785556, 0.8817619348014696, 0.12767657940375654, 0.6841003421544801, 0.37050696924621107, 0.8394926110519514], 
		[0.03722317446236767, 0.7358367569727565, 0.08850586144472383, 0.8374975936663717, 0.7505000847230705, 0.09317516856041264, 0.2809619844674123, 0.720033314907552, 0.05636523568828322, 0.3137187424345873, 0.16263384063313346, 0.084648103335211, 0.4941782814086678, 0.23767035127307878, 0.8070280769132988, 0.09294114133840647, 0.1670975152401838, 0.1480145430105546, 0.6271432828048905, 0.36728892161409443, 0.6557677646206056, 0.7710908119920519, 0.2592080036288077, 0.877416080157967], 
		[0.673050460553388, 0.09070118357996115, 0.8479874835592551, 0.8117133935069272, 0.629624093693778, 0.6405228178908031, 0.20810522202199522, 0.6789625384378881, 0.17403327603794405, 0.1738838877985528, 0.7290079565253929, 0.600881030288838, 0.4211832660053477, 0.2832587705712658, 0.9358474566798137, 0.0882757865045366, 0.1416085930249522, 0.04881122357869139, 0.1491658842276935, 0.0101111197085344, 0.7506464555223239, 0.598104180764148, 0.7025748678961187, 0.5260560398793472], 
		[0.10247191813523504, 0.04895973283804134, 0.10081641362826599, 0.16850051465324745, 0.1565649858587067, 0.4930492592193033, 0.0026831730441521096, 0.7041189870876225, 0.19416688478956956, 0.988377864743019, 0.6921867592473498, 0.5339416485101457, 0.22731194292515278, 0.71945778628007, 0.3793201139363762, 0.6615074650559275, 0.33500978911417134, 0.3614615611803065, 0.5644414857678615, 0.285434245856665, 0.37107067516066927, 0.6327706750801998, 0.2272000629142351, 0.016668137444917352], 
		[0.7601152452538722, 0.8869209126957917, 0.29448555693769063, 0.8733925632399391, 0.3096703582570499, 0.0943634386943295, 0.6084482798258393, 0.2625906272622479, 0.946849486904722, 0.21185531780421596, 0.9441862779826886, 0.9287956020795592, 0.23928688617091098, 0.044073273287893344, 0.3905541464300033, 0.7787047481228537, 0.08518802126279634, 0.8423030273105835, 0.3398410861186667, 0.33320278711144635, 0.9121918619011056, 0.912294656815053, 0.23972735988393468, 0.2602632976383801], 
		[0.838140724498182, 0.350530169062905, 0.7140306933208729, 0.31422488042165797, 0.7892034438923123, 0.2664824634061409, 0.14608750930531467, 0.08260573462263021, 0.6797479672638638, 0.985832762426188, 0.26091740579534406, 0.987366367402759, 0.5031848432305549, 0.008768122996578476, 0.21173053942463826, 0.8124573922677182, 0.527479209688619, 0.1624210467393219, 0.5665497785308927, 0.45679904619520595, 0.05367676745703498, 0.9977824422834459, 0.9139586932201674, 0.3042223429942773], 
		[0.387944274527275, 0.7748257523937642, 0.08322832186476337, 0.03494384725064048, 0.3648524009543517, 0.9547827252852154, 0.3539279113904594, 0.39523016961802915, 0.3026513609614975, 0.5666169502760794, 0.10570345851214213, 0.9688821230432061, 0.7693824693305831, 0.8614555462833936, 0.1890238484329717, 0.010554898185771822, 0.9061986426802231, 0.17726798703979374, 0.6047126654664705, 0.9814884010369894, 0.10019626291532269, 0.5317181965230484, 0.3187093834966027, 0.7835354650866508], 
		[0.8178553594624905, 0.8006303133807369, 0.6819055111271243, 0.8065087665065702, 0.843627099999655, 0.9168046192463564, 0.23932509883366704, 0.5536443048208751, 0.6177556497954513, 0.4209485942873481, 0.48671381068063657, 0.5439452089904486, 0.09503287077948597, 0.3454539371783393, 0.3539239110096716, 0.3756146099113846, 0.7977182007465098, 0.8319010627286547, 0.8773494282355964, 0.7846070099417505, 0.4340093905207333, 0.944419175878628, 0.3460303359388449, 0.7044192711201761]
	]
]])
asa_sample.shape
import requests
import json

headers = {'Content-Type': 'application/json'}

headers['Authorization'] = 'Bearer '+service.get_keys()[0]

test_sample = input_data

response = requests.post(
    service.scoring_uri, data=json.dumps({'data': asa_sample.tolist()}), headers=headers)
print(f'Status: {response.status_code}')
print(f'Call duration: {response.elapsed}')

if(response.ok):
    results = response.json()
    print(results)
else:
    print(service.get_logs().splitlines())    
print(test_sample.shape)
print(np.array(asa_sample[0]).shape)


print(asa_sample)<jupyter_output>{"data": [[[0.0003, -0.0002, 100, 518.67, 643.03, 1596.59, 1423.6, 14.62, 21.61, 552.1, 2388.19, 9056.11, 1.3, 47.89, 520.38, 2388.23, 8139.47, 8.478, 0.03, 396, 2388, 100, 38.59, 23.0576], [-0.0026, -0.0002, 100, 518.67, 642.95, 1597.32, 1410.61, 14.62, 21.61, 552.93, 2388.09, 9066.8, 1.3, 47.59, 521.58, 2388.1, 8139.28, 8.4692, 0.03, 393, 2388, 100, 38.93, 23.2461], [-0.0019, -0.0002, 100, 518.67, 642.44, 1585.76, 1403.26, 14.62, 21.61, 554.14, 2388.11, 9054.79, 1.3, 47.47, 521.72, 2388.12, 8135.73, 8.4497, 0.03, 392, 2388, 100, 38.81, 23.401]], [[0.0017, 0.0003, 100, 518.67, 642.67, 1584.54, 1393.38, 14.62, 21.6, 553.63, 2388.09, 9038.43, 1.3, 47.48, 521.64, 2388.11, 8120.72, 8.432, 0.03, 394, 2388, 100, 38.96, 23.2747]]]}
{'fraction_non_alphanumeric': 0.1003686844761179, 'fraction_numerical': 0.5255710490000206, 'mean_word_length': 6.220701963117192, 'pattern_counts': {'":': 4, '<': 51, '<?xml version=': 0, '>': 57, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '14', 'dir': 'jupyter-structured-clean-dedup', 'id': '91085', 'license': 'MIT', 'n_tokens_mistral': 35809, 'n_tokens_neox': 20387, 'n_words': 2816, 'path': 'ml/engine-failureprediction.ipynb', 'repo_name': 'SamVanhoutte/azure-time-travel', 'size': '48551'}