修改代码结构

This commit is contained in:
RuyiLuo
2021-12-04 11:20:10 +08:00
parent 4ab9d26395
commit e28817707e
149 changed files with 1 additions and 1073905 deletions
-236
View File
@@ -1,236 +0,0 @@
import pandas as pd
import numpy as np
from tqdm import tqdm
import warnings, random, math, os
from collections import namedtuple, OrderedDict
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
import tensorflow.keras.backend as K
from tensorflow.python.keras.initializers import Zeros, glorot_normal
from tensorflow.python.keras.regularizers import l2
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder, MinMaxScaler, StandardScaler, LabelEncoder
from utils import DenseFeat, SparseFeat, VarLenSparseFeat
import itertools
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
def get_linear_logits(dense_input_dict, sparse_input_dict, sparse_feature_columns):
# 将所有的dense特征的Input层,然后经过一个全连接层得到dense特征的logits
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values()))
dense_logits_output = Dense(1)(concat_dense_inputs)
# 获取linear部分sparse特征的embedding层,这里使用embedding的原因是:
# 对于linear部分直接将特征进行onehot然后通过一个全连接层,当维度特别大的时候,计算比较慢
# 使用embedding层的好处就是可以通过查表的方式获取到哪些非零的元素对应的权重,然后在将这些权重相加,效率比较高
linear_embedding_layers = build_embedding_layers(sparse_feature_columns, sparse_input_dict, is_linear=True)
# 将一维的embedding拼接,注意这里需要使用一个Flatten层,使维度对应
sparse_1d_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
embed = Flatten()(linear_embedding_layers[fc.name](feat_input))
sparse_1d_embed.append(embed)
# embedding中查询得到的权重就是对应onehot向量中一个位置的权重,所以后面不用再接一个全连接了,本身一维的embedding就相当于全连接
# 只不过是这里的输入特征只有0和1,所以直接向非零元素对应的权重相加就等同于进行了全连接操作(非零元素部分乘的是1)
sparse_logits_output = Add()(sparse_1d_embed)
# 最终将dense特征和sparse特征对应的logits相加,得到最终linear的logits
linear_part = Add()([dense_logits_output, sparse_logits_output])
return linear_part
class AFM_Layer(Layer):
def __init__(self, att_dims=8):
super(AFM_Layer, self).__init__()
self.att_dims = att_dims
def build(self, input_shape):
embed_dims = input_shape[0][-1]
self.att_W = self.add_weight(name='W',
shape=(embed_dims, self.att_dims),
initializer='glorot_normal',
regularizer='l2',
trainable=True)
self.att_b = self.add_weight(name='b',
shape=(self.att_dims, ),
initializer='zeros',
trainable=True)
self.project_h = self.add_weight(name='h',
shape=(self.att_dims, 1),
initializer='glorot_normal',
regularizer='l2',
trainable=True)
self.project_p = self.add_weight(name='p',
shape=(embed_dims, 1),
initializer='glorot_normal',
regularizer='l2',
trainable=True)
def call(self, inputs):
# inputs: 是一个列表,长度为n,列表中的每个元素是一个Bx1xk的向量
rows = []
cols = []
# 将inputs中的所有向量进行两两组合
for r, c in itertools.combinations(inputs, 2): # r / c => B x 1 x k
rows.append(r)
cols.append(c)
# 将列表转换成tensor
p = tf.concat(rows, axis=1) # B x (n(n-1)/2) x k
q = tf.concat(cols, axis=1) # B x (n(n-1)/2) x k
# 计算两两向量之间对应元素的乘积
element_wise_product = p * q # B x (n(n-1)/2) x k
# 计算attention值, 根据公式进行计算
att_temp = tf.nn.relu(tf.matmul(element_wise_product, self.att_W) + self.att_b) # B x (n(n-1)/2) x att_dims
att_temp = tf.matmul(att_temp, self.project_h) # B x (n(n-1)/2) x 1
att_temp = tf.nn.softmax(att_temp, axis=2) # B x (n(n-1)/2) x 1
att_out = tf.reduce_sum(att_temp * element_wise_product, axis=1) # B x k
att_logits = tf.matmul(att_out, self.project_p) # B x 1
return att_logits
def compute_output_shape(self, input_shape):
return (None, 1) # 返回的是logits值
def get_attention_logits(sparse_input_dict, sparse_feature_columns, dnn_embedding_layers):
# 只考虑sparse的二阶交叉,将所有的embedding拼接到一起
# 这里在实际运行的时候,其实只会将那些非零元素对应的embedding拼接到一起
# 并且将非零元素对应的embedding拼接到一起本质上相当于已经乘了x, 因为x中的值是1(公式中的x)
sparse_kd_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
_embed = dnn_embedding_layers[fc.name](feat_input) # B x 1 x k
sparse_kd_embed.append(_embed)
# 输入AFM_Layer中的是一个列表,方便计算两两向量之间的对应元素的乘积
att_logits = AFM_Layer()(sparse_kd_embed)
return att_logits
def AFM(linear_feature_columns, dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)
# 将linear部分的特征中sparse特征筛选出来,后面用来做1维的embedding
linear_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns))
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# linear_logits由两部分组成,分别是dense特征的logits和sparse特征的logits
linear_logits = get_linear_logits(dense_input_dict, sparse_input_dict, linear_sparse_feature_columns)
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
# embedding层用户构建FM交叉部分和DNN的输入部分
embedding_layers = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
# 将输入到dnn中的sparse特征筛选出来
att_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_feature_columns))
att_logits = get_attention_logits(sparse_input_dict, att_sparse_feature_columns, embedding_layers) # B x (n(n-1)/2)
# 将linear,dnn的logits相加作为最终的logits
output_logits = Add()([linear_logits, att_logits])
# 这里的激活函数使用sigmoid
output_layers = Activation("sigmoid")(output_logits)
model = Model(input_layers, output_layers)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建AFM模型
history = AFM(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
-112
View File
@@ -1,112 +0,0 @@
"""
Reference:
[1] Tang H, Liu J, Zhao M, et al. Progressive layered extraction (ple): A novel multi-task learning (mtl) model for personalized recommendations[C]//Fourteenth ACM Conference on Recommender Systems. 2020.(https://arxiv.org/abs/1804.07931)
"""
import tensorflow as tf
from deepctr.feature_column import build_input_features, input_from_feature_columns
from deepctr.layers.core import PredictionLayer, DNN
from deepctr.layers.utils import combined_dnn_input, reduce_sum
def CGC(dnn_feature_columns, num_tasks=None, task_types=None, task_names=None, num_experts_specific=8, num_experts_shared=4,
expert_dnn_units=[64,64], gate_dnn_units=None, tower_dnn_units_lists=[[16,16],[16,16]],
l2_reg_embedding=1e-5, l2_reg_dnn=0, seed=1024, dnn_dropout=0, dnn_activation='relu', dnn_use_bn=False):
"""Instantiates the Customized Gate Control block of Progressive Layered Extraction architecture.
:param dnn_feature_columns: An iterable containing all the features used by deep part of the model.
:param num_tasks: integer, number of tasks, equal to number of outputs, must be greater than 1.
:param task_types: list of str, indicating the loss of each tasks, ``"binary"`` for binary logloss, ``"regression"`` for regression loss. e.g. ['binary', 'regression']
:param task_names: list of str, indicating the predict target of each tasks
:param num_experts_specific: integer, number of task-specific experts.
:param num_experts_shared: integer, number of task-shared experts.
:param expert_dnn_units: list, list of positive integer, its length must be greater than 1, the layer number and units in each layer of expert DNN
:param gate_dnn_units: list, list of positive integer or None, the layer number and units in each layer of gate DNN, default value is None. e.g.[8, 8].
:param tower_dnn_units_lists: list, list of positive integer list, its length must be euqal to num_tasks, the layer number and units in each layer of task-specific DNN
:param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector
:param l2_reg_dnn: float. L2 regularizer strength applied to DNN
:param seed: integer ,to use as random seed.
:param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate.
:param dnn_activation: Activation function to use in DNN
:param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN
:return: a Keras model instance
"""
if num_tasks <= 1:
raise ValueError("num_tasks must be greater than 1")
if len(task_types) != num_tasks:
raise ValueError("num_tasks must be equal to the length of task_types")
for task_type in task_types:
if task_type not in ['binary', 'regression']:
raise ValueError("task must be binary or regression, {} is illegal".format(task_type))
if num_tasks != len(tower_dnn_units_lists):
raise ValueError("the length of tower_dnn_units_lists must be euqal to num_tasks")
features = build_input_features(dnn_feature_columns)
inputs_list = list(features.values())
sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns,
l2_reg_embedding, seed)
dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list)
expert_outputs = []
#build task-specific expert layer
for i in range(num_tasks):
for j in range(num_experts_specific):
expert_network = DNN(expert_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='task_'+task_names[i]+'_expert_specific_'+str(j))(dnn_input)
expert_outputs.append(expert_network)
#build task-shared expert layer
for i in range(num_experts_shared):
expert_network = DNN(expert_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='expert_shared_'+str(i))(dnn_input)
expert_outputs.append(expert_network)
#build one Extraction Layer
cgc_outs = []
for i in range(num_tasks):
#concat task-specific expert and task-shared expert
cur_expert_num = num_experts_specific + num_experts_shared
cur_experts = expert_outputs[i * num_experts_specific:(i + 1) * num_experts_specific] + expert_outputs[-int(num_experts_shared):] #task_specific + task_shared
expert_concat = tf.keras.layers.concatenate(cur_experts, axis=1, name='expert_concat_'+task_names[i])
expert_concat = tf.keras.layers.Reshape([cur_expert_num, expert_dnn_units[-1]], name='expert_reshape_'+task_names[i])(expert_concat)
#build gate layers
if gate_dnn_units!=None:
gate_network = DNN(gate_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='gate_'+task_names[i])(dnn_input)
gate_input = gate_network
else: #in origin paper, gate is one Dense layer with softmax.
gate_input = dnn_input
gate_out = tf.keras.layers.Dense(cur_expert_num, use_bias=False, activation='softmax', name='gate_softmax_'+task_names[i])(gate_input)
gate_out = tf.keras.layers.Lambda(lambda x: tf.expand_dims(x, axis=-1))(gate_out)
#gate multiply the expert
gate_mul_expert = tf.keras.layers.Multiply(name='gate_mul_expert_'+task_names[i])([expert_concat, gate_out])
gate_mul_expert = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(gate_mul_expert)
cgc_outs.append(gate_mul_expert)
task_outs = []
for task_type, task_name, tower_dnn, cgc_out in zip(task_types, task_names, tower_dnn_units_lists, cgc_outs):
#build tower layer
tower_output = DNN(tower_dnn, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='tower_'+task_name)(cgc_out)
logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(tower_output)
output = PredictionLayer(task_type, name=task_name)(logit)
task_outs.append(output)
model = tf.keras.models.Model(inputs=inputs_list, outputs=task_outs)
return model
if __name__ == "__main__":
from utils import get_mtl_data
dnn_feature_columns, train_model_input, test_model_input, y_list = get_mtl_data()
model = CGC(dnn_feature_columns, num_tasks=2, task_types=['binary', 'binary'], task_names=['income','marital'],
num_experts_specific=4, num_experts_shared=4, expert_dnn_units=[16], gate_dnn_units=None, tower_dnn_units_lists=[[8],[8]])
model.compile("adam", loss=["binary_crossentropy", "binary_crossentropy"], metrics=['AUC'])
history = model.fit(train_model_input, y_list, batch_size=256, epochs=5, verbose=2, validation_split=0.0 )
-192
View File
@@ -1,192 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
# 将sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns))
embedding_list = []
for fc in sparse_feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
def get_dnn_output(dnn_input):
# dnn层,这里的Dropout参数,Dense中的参数都可以自己设定
fc_layer = Dropout(0.5)(Dense(1024, activation='relu')(dnn_input))
fc_layer = Dropout(0.3)(Dense(512, activation='relu')(fc_layer))
dnn_out = Dropout(0.1)(Dense(256, activation='relu')(fc_layer))
return dnn_out
class CrossNet(Layer):
def __init__(self, layer_nums=3):
super(CrossNet, self).__init__()
self.layer_nums = layer_nums
def build(self, input_shape):
# 计算w的维度,w的维度与输入数据的最后一个维度相同
self.dim = int(input_shape[-1])
# 注意,在DCN中W不是一个矩阵而是一个向量,这里根据残差的层数定义一个权重列表
self.W = [self.add_weight(name='W_' + str(i), shape=(self.dim,)) for i in range(self.layer_nums)]
self.b = [self.add_weight(name='b_' + str(i),shape=(self.dim,), initializer='zeros') for i in range(self.layer_nums)]
def call(self, inputs):
# 进行特征交叉时的x_0一直没有变,变的是x_l和每一层的权重
x_0 = inputs # B x dims
x_l = x_0
for i in range(self.layer_nums):
# 将x_l的第一个维度与w[i]的第0个维度计算点积
xl_w = tf.tensordot(x_l, self.W[i], axes=(1, 0)) # B,
xl_w = tf.expand_dims(xl_w, axis=-1) # 在最后一个维度上添加一个维度 # B x 1
cross = tf.multiply(x_0, xl_w) # B x dims
x_l = cross + self.b[i] + x_l
return x_l
def DCN(linear_feature_columns, dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
embedding_layer_dict = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values()))
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns)) if linear_feature_columns else []
sparse_kd_embed = concat_embedding_list(sparse_feature_columns, sparse_input_dict, embedding_layer_dict, flatten=True)
concat_sparse_kd_embed = Concatenate(axis=1)(sparse_kd_embed)
dnn_input = Concatenate(axis=1)([concat_dense_inputs, concat_sparse_kd_embed])
dnn_output = get_dnn_output(dnn_input)
cross_output = CrossNet()(dnn_input)
# stack layer
stack_output = Concatenate(axis=1)([dnn_output, cross_output])
# 这里的激活函数使用sigmoid
output_layer = Dense(1, activation='sigmoid')(stack_output)
model = Model(input_layers, output_layer)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DCN模型
history = DCN(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=32, epochs=5, validation_split=0.2, )
-447
View File
@@ -1,447 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from random import sample
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
from contrib.rnn_v2 import dynamic_rnn
from contrib.utils import QAAttGRUCell, VecAttGRUCell
tf.compat.v1.disable_eager_execution() # 这句要加上
# 构建输入层
# 将输入的数据转换成字典的形式,定义输入层的时候让输入层的name和字典中特征的key一致,就可以使得输入的数据和对应的Input层对应
def build_input_layers(feature_columns):
input_layer_dict = {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
input_layer_dict[fc.name] = Input(shape=(1,), name=fc.name)
elif isinstance(fc, DenseFeat):
input_layer_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
elif isinstance(fc, VarLenSparseFeat):
input_layer_dict[fc.name] = Input(shape=(fc.maxlen, ), name=fc.name)
return input_layer_dict
# 构建embedding层
def build_embedding_layers(feature_columns, input_layer_dict):
embedding_layer_dict = {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
embedding_layer_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='emb_' + fc.name)
elif isinstance(fc, VarLenSparseFeat):
embedding_layer_dict[fc.name] = Embedding(fc.vocabulary_size + 1, fc.embedding_dim, name='emb_' + fc.name, mask_zero=True)
return embedding_layer_dict
def embedding_lookup(feature_columns, input_layer_dict, embedding_layer_dict):
embedding_list = []
for fc in feature_columns:
_input = input_layer_dict[fc]
_embed = embedding_layer_dict[fc]
embed = _embed(_input)
embedding_list.append(embed)
return embedding_list
# 输入层拼接成列表
def concat_input_list(input_list):
feature_nums = len(input_list)
if feature_nums > 1:
return Concatenate(axis=1)(input_list)
elif feature_nums == 1:
return input_list[0]
else:
return None
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
embedding_list = []
for fc in feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
"""Attention NetWork"""
class LocalActivationUnit(Layer):
def __init__(self, hidden_units=(256, 128, 64), activation='prelu'):
super(LocalActivationUnit, self).__init__()
self.hidden_units = hidden_units
self.linear = Dense(1)
self.dnn = [Dense(unit, activation=PReLU() if activation == 'prelu' else Dice()) for unit in hidden_units]
def call(self, inputs):
# query: B x 1 x emb_dim keys: B x len x emb_dim
query, keys = inputs
# 获取序列长度
keys_len, keys_dim = keys.get_shape()[1], keys.get_shape()[2]
queries = tf.tile(query, multiples=[1, keys_len, 1]) # (None, len * emb_dim)
queries = tf.reshape(queries, shape=[-1, keys_len, keys_dim])
# 将特征进行拼接
att_input = tf.concat([queries, keys, queries - keys, queries * keys], axis=-1) # B x len x 4*emb_dim
# 将原始向量与外积结果拼接后输入到一个dnn中
att_out = att_input
for fc in self.dnn:
att_out = fc(att_out) # B x len x att_out
att_out = self.linear(att_out) # B x len x 1
att_out = tf.squeeze(att_out, -1) # B x len
return att_out
class AttentionPoolingLayer(Layer):
def __init__(self, user_behavior_length, att_hidden_units=(256, 128, 64), return_score=False):
super(AttentionPoolingLayer, self).__init__()
self.att_hidden_units = att_hidden_units
self.local_att = LocalActivationUnit(self.att_hidden_units)
self.user_behavior_length = user_behavior_length
self.return_score = return_score
def call(self, inputs):
# keys: B x len x emb_dim, queries: B x 1 x emb_dim
queries, keys = inputs
# 获取行为序列embedding的mask矩阵,将Embedding矩阵中的非零元素设置成True,
key_masks = tf.sequence_mask(self.user_behavior_length, keys.shape[1]) # (None, 1, max_len) 这里注意user_behavior_length是(None,1)
key_masks = key_masks[:, 0, :] # 所以上面会多出个1维度来, 这里去掉才行,(None, max_len)
# 获取行为序列中每个商品对应的注意力权重
attention_score = self.local_att([queries, keys]) # (None, max_len)
# 创建一个padding的tensor, 目的是为了标记出行为序列embedding中无效的位置
paddings = tf.zeros_like(attention_score) # B x len
# outputs 表示的是padding之后的attention_score
outputs = tf.where(key_masks, attention_score, paddings) # B x len
# 将注意力分数与序列对应位置加权求和,这一步可以在
outputs = tf.expand_dims(outputs, axis=1) # B x 1 x len
if not self.return_score:
# keys : B x len x emb_dim
outputs = tf.matmul(outputs, keys) # B x 1 x dim
outputs = tf.squeeze(outputs, axis=1)
return outputs
"""兴趣进化网络"""
class DynamicGRU(Layer):
def __init__(self, num_units=None, gru_type='GRU', return_sequence=True):
super(DynamicGRU, self).__init__()
self.num_units = num_units
self.return_sequence = return_sequence
self.gru_type = gru_type
self.return_sequence = return_sequence
def build(self, input_shape):
# 创建一个可训练的权重变量
input_seq_shape = input_shape[0]
if self.num_units is None:
self.num_units = input_seq_shape.as_list()[-1] # 如果GRU的隐藏单元个数不指定,就取embedding维度
if self.gru_type == 'AGRU':
self.gru_cell = QAAttGRUCell(self.num_units)
elif self.gru_type == 'AUGRU':
self.gru_cell = VecAttGRUCell(self.num_units)
else:
self.gru_cell = tf.compat.v1.nn.rnn_cell.GRUCell(self.num_units)
super(DynamicGRU, self).build(input_shape)
def call(self, input_list):
"""
:param concated_embeds_value: None * field_size * embedding_size
:return: None*1
"""
# 兴趣抽取层的运算
if self.gru_type == "GRU" or self.gru_type == "AIGRU":
rnn_input, sequence_length = input_list
att_score = None
else: # 这个是兴趣进化层,这个中间会有个注意力机制
rnn_input, sequence_length, att_score = input_list
rnn_output, hidden_state = dynamic_rnn(self.gru_cell, inputs=rnn_input, att_scores=att_score,
sequence_length=tf.squeeze(sequence_length),
dtype = tf.float32)
if not self.return_sequence: # 只返回最后一个时间步的结果
return hidden_state
else: # 返回所有时间步的结果
return rnn_output
class DNN(Layer):
"""
FC network
"""
def __init__(self, hidden_units, activation='relu', dropout=0.):
"""
:param hidden_units: A list. the number of the hidden layer neural units
:param activation: A string. Activation function of dnn.
:param dropout: A scalar. Dropout rate
"""
super(DNN, self).__init__()
self.dnn_net = [Dense(units=unit, activation=activation) for unit in hidden_units]
self.dropout = Dropout(dropout)
def call(self, inputs):
x = inputs
for dnn in self.dnn_net:
x = dnn(x)
x = self.dropout(x)
outputs = Dense(1, activation='sigmoid')(x)
return outputs
def auxiliary_loss(h_states, click_seq, noclick_seq, mask):
"""
计算auxiliary_loss
:param h_states: 兴趣提取层的隐藏状态的输出h_states (None, T-1, embed_dim)
:param click_seq: 下一个时刻用户点击的embedding向量 (None, T-1, embed_dim)
:param noclick_seq:下一个时刻用户未点击的embedding向量 (None, T-1, embed_dim)
:param mask: 用户历史行为序列的长度, 注意这里是原seq_length-1,因为最后一个时间步的输出就没法计算了 (None, 1)
:return: 根据论文的公式,计算出损失,返回回来
"""
hist_len, _ = click_seq.get_shape().as_list()[1:] # (T-1, embed_dim) 元组解包的操作, hist_len=T-1
mask = tf.sequence_mask(mask, hist_len) # 这是遮盖的操作 (None, 1, T-1) 每一行是bool类型的值, 为FALSE的为填充
mask = mask[:, 0, :] # (None, T-1)
mask = tf.cast(mask, tf.float32)
click_input = tf.concat([h_states, click_seq], -1) # (None, T-1, 2*embed_dim)
noclick_input = tf.concat([h_states, noclick_seq], -1) # (None, T-1, 2*embed_dim)
auxiliary_nn = DNN([100, 50], activation='sigmoid')
click_prop = auxiliary_nn(click_input)[:, :, 0] # (None, T-1)
noclick_prop = auxiliary_nn(noclick_input)[:, :, 0] # (None, T-1)
click_loss = -tf.reshape(tf.compat.v1.log(click_prop), [-1, tf.shape(click_seq)[1]]) * mask
noclick_loss = -tf.reshape(tf.compat.v1.log(1.0-noclick_prop), [-1, tf.shape(noclick_seq)[1]]) * mask
aux_loss = tf.reduce_mean(click_loss + noclick_loss)
return aux_loss
def interest_evolution(concat_behavior, query_input_item, user_behavior_length, neg_concat_behavior, gru_type="GRU", use_neg=True):
aux_loss = None
use_aux_loss = None
embedding_size = None
# 兴趣提取层
rnn_outputs = DynamicGRU(embedding_size, return_sequence=True)([concat_behavior, user_behavior_length]) # (None, max_len, embed_dim)
# "AUGRU"并且采用负采样序列方式,这时候要先计算auxiliary_loss
if gru_type == "AUGRU" and use_neg:
aux_loss = auxiliary_loss(rnn_outputs[:, :-1, :],
concat_behavior[:, 1:, :],
neg_concat_behavior[:, 1:, :],
tf.subtract(user_behavior_length, 1))
# 兴趣演化层用的GRU, 这时候先得到输出, 然后把Attention的结果直接加权上去
if gru_type == "GRU":
rnn_outputs2 = DynamicGRU(embedding_size, return_sequence=True)([rnn_outputs, user_behavior_length]) # (None, max_len, embed_dim)
hist = AttentionPoolingLayer(user_behavior_length, return_score=False)([query_input_item, rnn_outputs2])
else:
scores = AttentionPoolingLayer(user_behavior_length, return_score=True)([query_input_item, rnn_outputs])
# 兴趣演化层如果是AIGRU, 把Attention的结果先乘到输入上去,然后再过GRU
if gru_type == "AIGRU":
hist = multiply([rnn_outputs, Permute[2, 1](scores)])
final_state2 = DynamicGRU(embedding_size, gru_type="GRU", return_sequence=False)([hist, user_behavior_length])
else: # 兴趣演化层是AUGRU或者AGRU, 这时候, 需要用相应的cell去进行计算了
final_state2 = DynamicGRU(embedding_size, gru_type=gru_type, return_sequence=False)([rnn_outputs, user_behavior_length, Permute([2, 1])(scores)])
hist = final_state2
return hist, aux_loss
"""DNN Network"""
class Dice(Layer):
def __init__(self):
super(Dice, self).__init__()
self.bn = BatchNormalization(center=False, scale=False)
def build(self, input_shape):
self.alpha = self.add_weight(shape=(input_shape[-1],), dtype=tf.float32, name='alpha')
def call(self, x):
x_normed = self.bn(x)
x_p = tf.sigmoid(x_normed)
return self.alpha * (1.0-x_p) * x + x_p * x
def get_dnn_logits(dnn_input, hidden_units=(200, 80), activation='prelu'):
dnns = [Dense(unit, activation=PReLU() if activation == 'prelu' else Dice()) for unit in hidden_units]
dnn_out = dnn_input
for dnn in dnns:
dnn_out = dnn(dnn_out)
# 获取logits
dnn_logits = Dense(1, activation='sigmoid')(dnn_out)
return dnn_logits
"""DIEN NetWork"""
def DIEN(feature_columns, behavior_feature_list, behavior_seq_feature_list, neg_seq_feature_list, use_neg_sample=False, alpha=1.0):
# 构建输入层
input_layer_dict = build_input_layers(feature_columns)
# 将Input层转化为列表的形式作为model的输入
input_layers = list(input_layer_dict.values()) # 各个输入层
user_behavior_length = input_layer_dict["hist_len"]
# 筛选出特征中的sparse_fea, dense_fea, varlen_fea
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
dense_feature_columns = list(filter(lambda x: isinstance(x, DenseFeat), feature_columns)) if feature_columns else []
varlen_sparse_feature_columns = list(filter(lambda x: isinstance(x, VarLenSparseFeat), feature_columns)) if feature_columns else []
# 获取dense
dnn_dense_input = []
for fc in dense_feature_columns:
dnn_dense_input.append(input_layer_dict[fc.name])
# 将所有的dense特征拼接
dnn_dense_input = concat_input_list(dnn_dense_input)
# 构建embedding字典
embedding_layer_dict = build_embedding_layers(feature_columns, input_layer_dict)
# 因为这里最终需要将embedding拼接后直接输入到全连接层(Dense)中, 所以需要Flatten
dnn_sparse_embed_input = concat_embedding_list(sparse_feature_columns, input_layer_dict, embedding_layer_dict, flatten=True)
# 将所有sparse特征的embedding进行拼接
dnn_sparse_input = concat_input_list(dnn_sparse_embed_input)
# 获取当前的行为特征(movie)的embedding,这里有可能有多个行为产生了行为序列,所以需要使用列表将其放在一起
query_embed_list = embedding_lookup(behavior_feature_list, input_layer_dict, embedding_layer_dict)
# 获取行为序列(movie_id序列, hist_movie_id) 对应的embedding,这里有可能有多个行为产生了行为序列,所以需要使用列表将其放在一起
keys_embed_list = embedding_lookup(behavior_seq_feature_list, input_layer_dict, embedding_layer_dict)
# 把q,k的embedding拼在一块
query_emb, keys_emb = concat_input_list(query_embed_list), concat_input_list(keys_embed_list)
# 采样的负行为
neg_uiseq_embed_list = embedding_lookup(neg_seq_feature_list, input_layer_dict, embedding_layer_dict)
neg_concat_behavior = concat_input_list(neg_uiseq_embed_list)
# 兴趣进化层的计算过程
dnn_seq_input, aux_loss = interest_evolution(keys_emb, query_emb, user_behavior_length, neg_concat_behavior, gru_type="AUGRU")
# 后面的全连接层
deep_input_embed = Concatenate()([dnn_dense_input, dnn_sparse_input, dnn_seq_input])
# 获取最终dnn的logits
dnn_logits = get_dnn_logits(deep_input_embed, activation='prelu')
model = Model(input_layers, dnn_logits)
# 加兴趣提取层的损失 这个比例可调
if use_neg_sample:
model.add_loss(alpha * aux_loss)
# 所有变量需要初始化
tf.compat.v1.keras.backend.get_session().run(tf.compat.v1.global_variables_initializer())
return model
def get_neg_click(data_df, neg_num=10):
movies_np = data_df['hist_movie_id'].values
movie_list = []
for movies in movies_np:
movie_list.extend([x for x in movies.split(',') if x != '0'])
movies_set = set(movie_list)
neg_movies_list = []
for movies in movies_np:
hist_movies = set([x for x in movies.split(',') if x != '0'])
neg_movies_set = movies_set - hist_movies # 集合求差集
neg_movies = sample(neg_movies_set, neg_num) # 返回的是一个列表
neg_movies_list.append(','.join(neg_movies))
return pd.Series(neg_movies_list)
if __name__ == "__main__":
"""读取数据"""
samples_data = pd.read_csv("data/movie_sample.txt", sep="\t", header = None)
samples_data.columns = ["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id", "label"]
"""数据集"""
X = samples_data[["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id"]]
y = samples_data["label"]
# 负采样,负采样的时候序列的长度和设置的行为序列长度一样长
# 不用担心会多计算损失,其实在计算损失的时候使用mask,无效的值不会参与计算
X['neg_hist_movie_id'] = get_neg_click(X, neg_num=50)
"""构建DIEN模型的输入格式"""
# 这里和DIN相比, 会多出负采样的一列历史行为
X_train = {"user_id": np.array(X["user_id"]), \
"gender": np.array(X["gender"]), \
"age": np.array(X["age"]), \
"hist_movie_id": np.array([[int(i) for i in l.split(',')] for l in X["hist_movie_id"]]), \
"neg_hist_movie_id": np.array([[int(i) for i in l.split(',')] for l in X["neg_hist_movie_id"]]), \
"hist_len": np.array(X["hist_len"]), \
"movie_id": np.array(X["movie_id"]), \
"movie_type_id": np.array(X["movie_type_id"])}
y_train = np.array(y)
"""特征封装"""
feature_columns = [SparseFeat('user_id', max(samples_data["user_id"])+1, embedding_dim=8),
SparseFeat('gender', max(samples_data["gender"])+1, embedding_dim=8),
SparseFeat('age', max(samples_data["age"])+1, embedding_dim=8),
SparseFeat('movie_id', max(samples_data["movie_id"])+1, embedding_dim=8),
SparseFeat('movie_type_id', max(samples_data["movie_type_id"])+1, embedding_dim=8),
DenseFeat('hist_len', 1)]
feature_columns += [VarLenSparseFeat('hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
feature_columns += [VarLenSparseFeat('neg_hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
# 行为特征列表,表示的是基础特征
behavior_feature_list = ['movie_id']
# 行为序列特征
behavior_seq_feature_list = ['hist_movie_id']
# 负采样序列特征
neg_seq_feature_list = ['neg_hist_movie_id']
"""构建DIN模型"""
history = DIEN(feature_columns, behavior_feature_list, behavior_seq_feature_list, neg_seq_feature_list, use_neg_sample=True)
history.compile('adam', 'binary_crossentropy')
history.fit(X_train, y_train, batch_size=64, epochs=5, validation_split=0.2, )
-270
View File
@@ -1,270 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 构建输入层
# 将输入的数据转换成字典的形式,定义输入层的时候让输入层的name和字典中特征的key一致,就可以使得输入的数据和对应的Input层对应
def build_input_layers(feature_columns):
input_layer_dict = {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
input_layer_dict[fc.name] = Input(shape=(1,), name=fc.name)
elif isinstance(fc, DenseFeat):
input_layer_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
elif isinstance(fc, VarLenSparseFeat):
input_layer_dict[fc.name] = Input(shape=(fc.maxlen, ), name=fc.name)
return input_layer_dict
# 构建embedding层
def build_embedding_layers(feature_columns, input_layer_dict):
embedding_layer_dict = {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
embedding_layer_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='emb_' + fc.name)
elif isinstance(fc, VarLenSparseFeat):
embedding_layer_dict[fc.name] = Embedding(fc.vocabulary_size + 1, fc.embedding_dim, name='emb_' + fc.name, mask_zero=True)
return embedding_layer_dict
def embedding_lookup(feature_columns, input_layer_dict, embedding_layer_dict):
embedding_list = []
for fc in feature_columns:
_input = input_layer_dict[fc]
_embed = embedding_layer_dict[fc]
embed = _embed(_input)
embedding_list.append(embed)
return embedding_list
class Dice(Layer):
def __init__(self):
super(Dice, self).__init__()
self.bn = BatchNormalization(center=False, scale=False)
def build(self, input_shape):
self.alpha = self.add_weight(shape=(input_shape[-1],), dtype=tf.float32, name='alpha')
def call(self, x):
x_normed = self.bn(x)
x_p = tf.sigmoid(x_normed)
return self.alpha * (1.0-x_p) * x + x_p * x
class LocalActivationUnit(Layer):
def __init__(self, hidden_units=(256, 128, 64), activation='prelu'):
super(LocalActivationUnit, self).__init__()
self.hidden_units = hidden_units
self.linear = Dense(1)
self.dnn = [Dense(unit, activation=PReLU() if activation == 'prelu' else Dice()) for unit in hidden_units]
def call(self, inputs):
# query: B x 1 x emb_dim keys: B x len x emb_dim
query, keys = inputs
# 获取序列长度
keys_len = keys.get_shape()[1]
queries = tf.tile(query, multiples=[1, keys_len, 1]) # (None, len, emb_dim)
# 将特征进行拼接
att_input = tf.concat([queries, keys, queries - keys, queries * keys], axis=-1) # B x len x 4*emb_dim
# 将原始向量与外积结果拼接后输入到一个dnn中
att_out = att_input
for fc in self.dnn:
att_out = fc(att_out) # B x len x att_out
att_out = self.linear(att_out) # B x len x 1
att_out = tf.squeeze(att_out, -1) # B x len
return att_out
class AttentionPoolingLayer(Layer):
def __init__(self, att_hidden_units=(256, 128, 64)):
super(AttentionPoolingLayer, self).__init__()
self.att_hidden_units = att_hidden_units
self.local_att = LocalActivationUnit(self.att_hidden_units)
def call(self, inputs):
# keys: B x len x emb_dim, queries: B x 1 x emb_dim
queries, keys = inputs
# 获取行为序列embedding的mask矩阵,将Embedding矩阵中的非零元素设置成True,
key_masks = tf.not_equal(keys[:,:,0], 0) # B x len
# key_masks = keys._keras_mask # tf的有些版本不能使用这个属性,2.1是可以的,2.4好像不行
# 获取行为序列中每个商品对应的注意力权重
attention_score = self.local_att([queries, keys]) # B x len
# 去除最后一个维度,方便后续理解与计算
# outputs = attention_score
# 创建一个padding的tensor, 目的是为了标记出行为序列embedding中无效的位置
paddings = tf.zeros_like(attention_score) # B x len
# outputs 表示的是padding之后的attention_score
outputs = tf.where(key_masks, attention_score, paddings) # B x len
# 将注意力分数与序列对应位置加权求和,这一步可以在
outputs = tf.expand_dims(outputs, axis=1) # B x 1 x len
# keys : B x len x emb_dim
outputs = tf.matmul(outputs, keys) # B x 1 x dim
outputs = tf.squeeze(outputs, axis=1)
return outputs
def get_dnn_logits(dnn_input, hidden_units=(200, 80), activation='prelu'):
dnns = [Dense(unit, activation=PReLU() if activation == 'prelu' else Dice()) for unit in hidden_units]
dnn_out = dnn_input
for dnn in dnns:
dnn_out = dnn(dnn_out)
# 获取logits
dnn_logits = Dense(1, activation='sigmoid')(dnn_out)
return dnn_logits
# 输入层拼接成列表
def concat_input_list(input_list):
feature_nums = len(input_list)
if feature_nums > 1:
return Concatenate(axis=1)(input_list)
elif feature_nums == 1:
return input_list[0]
else:
return None
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
embedding_list = []
for fc in feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
def DIN(feature_columns, behavior_feature_list, behavior_seq_feature_list):
# 构建Input层
input_layer_dict = build_input_layers(feature_columns)
# 将Input层转化成列表的形式作为model的输入
input_layers = list(input_layer_dict.values())
# 筛选出特征中的sparse特征和dense特征,方便单独处理
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns))
dense_feature_columns = list(filter(lambda x: isinstance(x, DenseFeat), feature_columns))
# 获取dense
dnn_dense_input = []
for fc in dense_feature_columns:
dnn_dense_input.append(input_layer_dict[fc.name])
# 将所有的dense特征拼接
dnn_dense_input = concat_input_list(dnn_dense_input)
# 构建embedding字典
embedding_layer_dict = build_embedding_layers(feature_columns, input_layer_dict)
# 因为这里最终需要将embedding拼接后直接输入到全连接层(Dense)中, 所以需要Flatten
dnn_sparse_embed_input = concat_embedding_list(sparse_feature_columns, input_layer_dict, embedding_layer_dict, flatten=True)
# 将所有sparse特征的embedding进行拼接
dnn_sparse_input = concat_input_list(dnn_sparse_embed_input)
# 获取当前的行为特征(movie)的embedding,这里有可能有多个行为产生了行为序列,所以需要使用列表将其放在一起
query_embed_list = embedding_lookup(behavior_feature_list, input_layer_dict, embedding_layer_dict)
# 获取行为序列(movie_id序列, hist_movie_id) 对应的embedding,这里有可能有多个行为产生了行为序列,所以需要使用列表将其放在一起
keys_embed_list = embedding_lookup(behavior_seq_feature_list, input_layer_dict, embedding_layer_dict)
# 使用注意力机制将历史movie_id序列进行池化
dnn_seq_input_list = []
for i in range(len(keys_embed_list)):
seq_emb = AttentionPoolingLayer()([query_embed_list[i], keys_embed_list[i]])
dnn_seq_input_list.append(seq_emb)
# 将多个行为序列attention poolint 之后的embedding进行拼接
dnn_seq_input = concat_input_list(dnn_seq_input_list)
# 将dense特征,sparse特征,及通过注意力加权的序列特征拼接
dnn_input = Concatenate(axis=1)([dnn_dense_input, dnn_sparse_input, dnn_seq_input])
# 获取最终dnn的logits
dnn_logits = get_dnn_logits(dnn_input, activation='prelu')
model = Model(input_layers, dnn_logits)
return model
if __name__ == "__main__":
# 读取数据
samples_data = pd.read_csv("./data/movie_sample.txt", sep="\t", header = None)
samples_data.columns = ["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id", "label"]
# samples_data = shuffle(samples_data)
X = samples_data[["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id"]]
y = samples_data["label"]
X_train = {"user_id": np.array(X["user_id"]), \
"gender": np.array(X["gender"]), \
"age": np.array(X["age"]), \
"hist_movie_id": np.array([[int(i) for i in l.split(',')] for l in X["hist_movie_id"]]), \
"hist_len": np.array(X["hist_len"]), \
"movie_id": np.array(X["movie_id"]), \
"movie_type_id": np.array(X["movie_type_id"])}
y_train = np.array(y)
feature_columns = [SparseFeat('user_id', max(samples_data["user_id"])+1, embedding_dim=8),
SparseFeat('gender', max(samples_data["gender"])+1, embedding_dim=8),
SparseFeat('age', max(samples_data["age"])+1, embedding_dim=8),
SparseFeat('movie_id', max(samples_data["movie_id"])+1, embedding_dim=8),
SparseFeat('movie_type_id', max(samples_data["movie_type_id"])+1, embedding_dim=8),
DenseFeat('hist_len', 1)]
feature_columns += [VarLenSparseFeat('hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
# 行为特征列表,表示的是基础特征
behavior_feature_list = ['movie_id']
# 行为序列特征
behavior_seq_feature_list = ['hist_movie_id']
history = DIN(feature_columns, behavior_feature_list, behavior_seq_feature_list)
history.compile('adam', 'binary_crossentropy')
history.fit(X_train, y_train, batch_size=64, epochs=5, validation_split=0.2, )
-183
View File
@@ -1,183 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
def data_process(data_df, dense_features, sparse_features):
"""
简单处理特征,包括填充缺失值,数值处理,类别编码
param data_df: DataFrame格式的数据
param dense_features: 数值特征名称列表
param sparse_features: 类别特征名称列表
"""
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
"""
构建输入层
param feature_columns: 数据集中的所有特征对应的特征标记之
"""
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
# 将sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns))
embedding_list = []
for fc in sparse_feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
# DNN残差块的定义
class ResidualBlock(Layer):
def __init__(self, units): # units表示的是DNN隐藏层神经元数量
super(ResidualBlock, self).__init__()
self.units = units
def build(self, input_shape):
out_dim = input_shape[-1]
self.dnn1 = Dense(self.units, activation='relu')
self.dnn2 = Dense(out_dim, activation='relu') # 保证输入的维度和输出的维度一致才能进行残差连接
def call(self, inputs):
x = inputs
x = self.dnn1(x)
x = self.dnn2(x)
x = Activation('relu')(x + inputs) # 残差操作
return x
# block_nums表示DNN残差块的数量
def get_dnn_logits(dnn_inputs, block_nums=3):
dnn_out = dnn_inputs
for i in range(block_nums):
dnn_out = ResidualBlock(64)(dnn_out)
# 将dnn的输出转化成logits
dnn_logits = Dense(1, activation='sigmoid')(dnn_out)
return dnn_logits
def DeepCrossing(dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(dnn_feature_columns)
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
embedding_layer_dict = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
#将所有的dense特征拼接到一起
dense_dnn_list = list(dense_input_dict.values())
dense_dnn_inputs = Concatenate(axis=1)(dense_dnn_list) # B x n (n表示数值特征的数量)
# 因为需要将其与dense特征拼接到一起所以需要Flatten,不进行Flatten的Embedding层输出的维度为:Bx1xdim
sparse_dnn_list = concat_embedding_list(dnn_feature_columns, sparse_input_dict, embedding_layer_dict, flatten=True)
sparse_dnn_inputs = Concatenate(axis=1)(sparse_dnn_list) # B x m*dim (n表示类别特征的数量,dim表示embedding的维度)
# 将dense特征和Sparse特征拼接到一起
dnn_inputs = Concatenate(axis=1)([dense_dnn_inputs, sparse_dnn_inputs]) # B x (n + m*dim)
# 输入到dnn中,需要提前定义需要几个残差块
output_layer = get_dnn_logits(dnn_inputs, block_nums=3)
model = Model(input_layers, output_layer)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征做标记
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DeepCrossing模型
history = DeepCrossing(dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
-221
View File
@@ -1,221 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
def get_linear_logits(dense_input_dict, sparse_input_dict, sparse_feature_columns):
# 将所有的dense特征的Input层,然后经过一个全连接层得到dense特征的logits
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values()))
dense_logits_output = Dense(1)(concat_dense_inputs)
# 获取linear部分sparse特征的embedding层,这里使用embedding的原因是:
# 对于linear部分直接将特征进行onehot然后通过一个全连接层,当维度特别大的时候,计算比较慢
# 使用embedding层的好处就是可以通过查表的方式获取到哪些非零的元素对应的权重,然后在将这些权重相加,效率比较高
linear_embedding_layers = build_embedding_layers(sparse_feature_columns, sparse_input_dict, is_linear=True)
# 将一维的embedding拼接,注意这里需要使用一个Flatten层,使维度对应
sparse_1d_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
embed = Flatten()(linear_embedding_layers[fc.name](feat_input)) # B x 1
sparse_1d_embed.append(embed)
# embedding中查询得到的权重就是对应onehot向量中一个位置的权重,所以后面不用再接一个全连接了,本身一维的embedding就相当于全连接
# 只不过是这里的输入特征只有0和1,所以直接向非零元素对应的权重相加就等同于进行了全连接操作(非零元素部分乘的是1)
sparse_logits_output = Add()(sparse_1d_embed)
# 最终将dense特征和sparse特征对应的logits相加,得到最终linear的logits
linear_logits = Add()([dense_logits_output, sparse_logits_output])
return linear_logits
class FM_Layer(Layer):
def __init__(self):
super(FM_Layer, self).__init__()
def call(self, inputs):
# 优化后的公式为: 0.5 * 求和(和的平方-平方的和) =>> B x 1
concated_embeds_value = inputs # B x n x k
square_of_sum = tf.square(tf.reduce_sum(concated_embeds_value, axis=1, keepdims=True)) # B x 1 x k
sum_of_square = tf.reduce_sum(concated_embeds_value * concated_embeds_value, axis=1, keepdims=True) # B x1 xk
cross_term = square_of_sum - sum_of_square # B x 1 x k
cross_term = 0.5 * tf.reduce_sum(cross_term, axis=2, keepdims=False) # B x 1
return cross_term
def compute_output_shape(self, input_shape):
return (None, 1)
def get_fm_logits(sparse_input_dict, sparse_feature_columns, dnn_embedding_layers):
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), sparse_feature_columns))
# 只考虑sparse的二阶交叉,将所有的embedding拼接到一起进行FM计算
# 因为类别型数据输入的只有0和1所以不需要考虑将隐向量与x相乘,直接对隐向量进行操作即可
sparse_kd_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
_embed = dnn_embedding_layers[fc.name](feat_input) # B x 1 x k
sparse_kd_embed.append(_embed)
# 将所有sparse的embedding拼接起来,得到 (n, k)的矩阵,其中n为特征数,k为embedding大小
concat_sparse_kd_embed = Concatenate(axis=1)(sparse_kd_embed) # B x n x k
fm_cross_out = FM_Layer()(concat_sparse_kd_embed)
return fm_cross_out
def get_dnn_logits(sparse_input_dict, sparse_feature_columns, dnn_embedding_layers):
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), sparse_feature_columns))
# 将所有非零的sparse特征对应的embedding拼接到一起
sparse_kd_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
_embed = dnn_embedding_layers[fc.name](feat_input) # B x 1 x k
_embed = Flatten()(_embed) # B x k
sparse_kd_embed.append(_embed)
concat_sparse_kd_embed = Concatenate(axis=1)(sparse_kd_embed) # B x nk
# dnn层,这里的Dropout参数,Dense中的参数都可以自己设定,以及Dense的层数都可以自行设定
mlp_out = Dropout(0.5)(Dense(256, activation='relu')(concat_sparse_kd_embed))
mlp_out = Dropout(0.3)(Dense(256, activation='relu')(mlp_out))
mlp_out = Dropout(0.1)(Dense(256, activation='relu')(mlp_out))
dnn_out = Dense(1)(mlp_out)
return dnn_out
def DeepFM(linear_feature_columns, dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)
# 将linear部分的特征中sparse特征筛选出来,后面用来做1维的embedding
linear_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns))
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# linear_logits由两部分组成,分别是dense特征的logits和sparse特征的logits
linear_logits = get_linear_logits(dense_input_dict, sparse_input_dict, linear_sparse_feature_columns)
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
# embedding层用户构建FM交叉部分和DNN的输入部分
embedding_layers = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
# 将输入到dnn中的所有sparse特征筛选出来
dnn_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_feature_columns))
fm_logits = get_fm_logits(sparse_input_dict, dnn_sparse_feature_columns, embedding_layers) # 只考虑二阶项
# 将所有的Embedding都拼起来,一起输入到dnn中
dnn_logits = get_dnn_logits(sparse_input_dict, dnn_sparse_feature_columns, embedding_layers)
# 将linear,FM,dnn的logits相加作为最终的logits
output_logits = Add()([linear_logits, fm_logits, dnn_logits])
# 这里的激活函数使用sigmoid
output_layers = Activation("sigmoid")(output_logits)
model = Model(input_layers, output_layers)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DeepFM模型
history = DeepFM(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
-64
View File
@@ -1,64 +0,0 @@
"""
Reference:
[1] Ma X, Zhao L, Huang G, et al. Entire space multi-task model: An effective approach for estimating post-click conversion rate[C]//The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 2018.(https://arxiv.org/abs/1804.07931)
"""
import tensorflow as tf
from deepctr.feature_column import build_input_features, input_from_feature_columns
from deepctr.layers.core import PredictionLayer, DNN
from deepctr.layers.utils import combined_dnn_input
def ESSM(dnn_feature_columns, task_type='binary', task_names=['ctr', 'ctcvr'],
tower_dnn_units_lists=[[128, 128],[128, 128]], l2_reg_embedding=0.00001, l2_reg_dnn=0,
seed=1024, dnn_dropout=0,dnn_activation='relu', dnn_use_bn=False):
"""Instantiates the Entire Space Multi-Task Model architecture.
:param dnn_feature_columns: An iterable containing all the features used by deep part of the model.
:param task_type: str, indicating the loss of each tasks, ``"binary"`` for binary logloss or ``"regression"`` for regression loss.
:param task_names: list of str, indicating the predict target of each tasks. default value is ['ctr', 'ctcvr']
:param tower_dnn_units_lists: list, list of positive integer, the length must be equal to 2, the layer number and units in each layer of task-specific DNN
:param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector
:param l2_reg_dnn: float. L2 regularizer strength applied to DNN
:param seed: integer ,to use as random seed.
:param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate.
:param dnn_activation: Activation function to use in DNN
:param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN
:return: A Keras model instance.
"""
if len(task_names)!=2:
raise ValueError("the length of task_names must be equal to 2")
if len(tower_dnn_units_lists)!=2:
raise ValueError("the length of tower_dnn_units_lists must be equal to 2")
features = build_input_features(dnn_feature_columns)
inputs_list = list(features.values())
sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns, l2_reg_embedding,seed)
dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list)
ctr_output = DNN(tower_dnn_units_lists[0], dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input)
cvr_output = DNN(tower_dnn_units_lists[1], dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input)
ctr_logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(ctr_output)
cvr_logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(cvr_output)
ctr_pred = PredictionLayer(task_type, name=task_names[0])(ctr_logit)
cvr_pred = PredictionLayer(task_type)(cvr_logit)
ctcvr_pred = tf.keras.layers.Multiply(name=task_names[1])([ctr_pred, cvr_pred])#CTCVR = CTR * CVR
model = tf.keras.models.Model(inputs=inputs_list, outputs=[ctr_pred, ctcvr_pred])
return model
if __name__ == "__main__":
from utils import get_mtl_data
dnn_feature_columns, train_model_input, test_model_input, y_list = get_mtl_data()
model = ESSM(dnn_feature_columns, task_type='binary', task_names=['label_marital', 'label_income'], tower_dnn_units_lists=[[8],[8]])
model.compile("adam", loss=["binary_crossentropy", "binary_crossentropy"], metrics=['AUC'])
history = model.fit(train_model_input, y_list, batch_size=256, epochs=5, verbose=2, validation_split=0.0 )
-103
View File
@@ -1,103 +0,0 @@
import pandas as pd
import numpy as np
from tensorflow.keras import *
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from tensorflow.keras.callbacks import *
import tensorflow.keras.backend as K
from sklearn.model_selection import train_test_split
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from tqdm import tqdm
# dense特征取对数  sparse特征进行类别编码
def process_feat(data, dense_feats, sparse_feats):
df = data.copy()
# dense
df_dense = df[dense_feats].fillna(0.0)
for f in tqdm(dense_feats):
df_dense[f] = df_dense[f].apply(lambda x: np.log(1 + x) if x > -1 else -1)
# sparse
df_sparse = df[sparse_feats].fillna('-1')
for f in tqdm(sparse_feats):
lbe = LabelEncoder()
df_sparse[f] = lbe.fit_transform(df_sparse[f])
df_sparse_arr = []
for f in tqdm(sparse_feats):
data_new = pd.get_dummies(df_sparse.loc[:, f].values)
data_new.columns = [f + "_{}".format(i) for i in range(data_new.shape[1])]
df_sparse_arr.append(data_new)
df_new = pd.concat([df_dense] + df_sparse_arr, axis=1)
return df_new
# FM 特征组合层
class crossLayer(layers.Layer):
def __init__(self, input_dim, output_dim=10, **kwargs):
super(crossLayer, self).__init__(**kwargs)
self.input_dim = input_dim
self.output_dim = output_dim
# 定义交叉特征的权重
self.kernel = self.add_weight(name='kernel',
shape=(self.input_dim, self.output_dim),
initializer='glorot_uniform',
trainable=True)
def call(self, x): # 对照上述公式中的二次项优化公式一起理解
a = K.pow(K.dot(x, self.kernel), 2)
b = K.dot(K.pow(x, 2), K.pow(self.kernel, 2))
return 0.5 * K.mean(a - b, 1, keepdims=True)
# 定义FM模型
def FM(feature_dim):
inputs = Input(shape=(feature_dim,))
# 一阶特征
linear = Dense(units=1,
kernel_regularizer=regularizers.l2(0.01),
bias_regularizer=regularizers.l2(0.01))(inputs)
# 二阶特征
cross = crossLayer(feature_dim)(inputs)
add = Add()([linear, cross]) # 将一阶特征与二阶特征相加构建FM模型
pred = Dense(units=1, activation="sigmoid")(add)
model = Model(inputs=inputs, outputs=pred)
model.summary()
model.compile(loss='binary_crossentropy',
optimizer=optimizers.Adam(),
metrics=['binary_accuracy'])
return model
# 读取数据
print('loading data...')
data = pd.read_csv('./data/kaggle_train.csv')
# dense 特征开头是Isparse特征开头是C,Label是标签
cols = data.columns.values
dense_feats = [f for f in cols if f[0] == 'I']
sparse_feats = [f for f in cols if f[0] == 'C']
# 对dense数据和sparse数据分别处理
print('processing features')
feats = process_feat(data, dense_feats, sparse_feats)
# 划分训练和验证数据
x_trn, x_tst, y_trn, y_tst = train_test_split(feats, data['Label'], test_size=0.2, random_state=2020)
# 定义模型
model = FM(feats.shape[1])
# 训练模型
model.fit(x_trn, y_trn, epochs=10, batch_size=128, validation_data=(x_tst, y_tst))
-228
View File
@@ -1,228 +0,0 @@
## Description
# 这个笔记本要做一个GBDT+LR的demon, 基于kaggle上的一个比赛数据集, 下载链接:[http://labs.criteo.com/2014/02/kaggle-display-advertising-challenge-dataset/](http://labs.criteo.com/2014/02/kaggle-display-advertising-challenge-dataset/) 数据集介绍:
# 这是criteo-Display Advertising Challenge比赛的部分数据集, 里面有train.csv和test.csv两个文件:
# * train.csv 训练集由Criteo 7天内的部分流量组成。每一行对应一个由Criteo提供的显示广告。为了减少数据集的大小,正(点击)和负(未点击)的例子都以不同的比例进行了抽样。示例是按时间顺序排列的
# * test.csv: 测试集的计算方法与训练集相同,只是针对训练期之后一天的事件
# 字段说明:
# * Label: 目标变量, 0表示未点击, 1表示点击
# * l1-l13: 13列的数值特征, 大部分是计数特征
# * C1-C26: 26列分类特征, 为了达到匿名的目的, 这些特征的值离散成了32位的数据表示
# 这个比赛的任务就是:开发预测广告点击率(CTR)的模型。给定一个用户和他正在访问的页面,预测他点击给定广告的概率是多少?比赛的地址链接:[https://www.kaggle.com/c/criteo-display-ad-challenge/overview](https://www.kaggle.com/c/criteo-display-ad-challenge/overview)
# <br><br>
# 下面基于GBDT+LR模型完后这个任务。
## 数据导入与简单处理
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import lightgbm as lgb
from sklearn.preprocessing import MinMaxScaler, OneHotEncoder, LabelEncoder
from sklearn.metrics import log_loss
import gc
from scipy import sparse
import warnings
warnings.filterwarnings('ignore')
"""数据读取与预处理"""
# 数据读取
path = 'data/'
df_train = pd.read_csv(path + 'kaggle_train.csv')
df_test = pd.read_csv(path + 'kaggle_test.csv')
# 简单的数据预处理
# 去掉id列, 把测试集和训练集合并, 填充缺失值
df_train.drop(['Id'], axis=1, inplace=True)
df_test.drop(['Id'], axis=1, inplace=True)
df_test['Label'] = -1
data = pd.concat([df_train, df_test])
data.fillna(-1, inplace=True)
"""下面把特征列分开处理"""
continuous_fea = ['I'+str(i+1) for i in range(13)]
category_fea = ['C'+str(i+1) for i in range(26)]
## 建模
# 下面训练三个模型对数据进行预测, 分别是LR模型, GBDT模型和两者的组合模型, 然后分别观察它们的预测效果, 对于不同的模型, 特征会有不同的处理方式如下:
# 1. 逻辑回归模型: 连续特征要归一化处理, 离散特征需要one-hot处理
# 2. GBDT模型: 树模型连续特征不需要归一化处理, 但是离散特征需要one-hot处理
# 3. LR+GBDT模型: 由于LR使用的特征是GBDT的输出, 原数据依然是GBDT进行处理交叉, 所以只需要离散特征one-hot处理
# 下面就通过函数的方式建立三个模型, 并进行训练
### 逻辑回归建模
def lr_model(data, category_fea, continuous_fea):
# 连续特征归一化
scaler = MinMaxScaler()
for col in continuous_fea:
data[col] = scaler.fit_transform(data[col].values.reshape(-1, 1))
# 离散特征one-hot编码
for col in category_fea:
onehot_feats = pd.get_dummies(data[col], prefix=col)
data.drop([col], axis=1, inplace=True)
data = pd.concat([data, onehot_feats], axis=1)
# 把训练集和测试集分开
train = data[data['Label'] != -1]
target = train.pop('Label')
test = data[data['Label'] == -1]
test.drop(['Label'], axis=1, inplace=True)
# 划分数据集
x_train, x_val, y_train, y_val = train_test_split(train, target, test_size=0.2, random_state=2020)
# 建立模型
lr = LogisticRegression()
lr.fit(x_train, y_train)
tr_logloss = log_loss(y_train, lr.predict_proba(x_train)[:, 1]) # (ylog(p)+(1y)log(1p)) log_loss
val_logloss = log_loss(y_val, lr.predict_proba(x_val)[:, 1])
print('tr_logloss: ', tr_logloss)
print('val_logloss: ', val_logloss)
# 模型预测
y_pred = lr.predict_proba(test)[:, 1] # predict_proba 返回n行k列的矩阵,第i行第j列上的数值是模型预测第i个预测样本为某个标签的概率, 这里的1表示点击的概率
print('predict: ', y_pred[:10]) # 这里看前10个, 预测为点击的概率
### GBDT 建模
def gbdt_model(data, category_fea, continuous_fea):
# 离散特征one-hot编码
for col in category_fea:
onehot_feats = pd.get_dummies(data[col], prefix=col)
data.drop([col], axis=1, inplace=True)
data = pd.concat([data, onehot_feats], axis=1)
# 训练集和测试集分开
train = data[data['Label'] != -1]
target = train.pop('Label')
test = data[data['Label'] == -1]
test.drop(['Label'], axis=1, inplace=True)
# 划分数据集
x_train, x_val, y_train, y_val = train_test_split(train, target, test_size=0.2, random_state=2020)
# 建模
gbm = lgb.LGBMClassifier(boosting_type='gbdt', # 这里用gbdt
objective='binary',
subsample=0.8,
min_child_weight=0.5,
colsample_bytree=0.7,
num_leaves=100,
max_depth=12,
learning_rate=0.01,
n_estimators=10000
)
gbm.fit(x_train, y_train,
eval_set=[(x_train, y_train), (x_val, y_val)],
eval_names=['train', 'val'],
eval_metric='binary_logloss',
early_stopping_rounds=100,
)
tr_logloss = log_loss(y_train, gbm.predict_proba(x_train)[:, 1]) # (ylog(p)+(1y)log(1p)) log_loss
val_logloss = log_loss(y_val, gbm.predict_proba(x_val)[:, 1])
print('tr_logloss: ', tr_logloss)
print('val_logloss: ', val_logloss)
# 模型预测
y_pred = gbm.predict_proba(test)[:, 1] # predict_proba 返回n行k列的矩阵,第i行第j列上的数值是模型预测第i个预测样本为某个标签的概率, 这里的1表示点击的概率
print('predict: ', y_pred[:10]) # 这里看前10个, 预测为点击的概率
### LR + GBDT建模
# 下面就是把上面两个模型进行组合, GBDT负责对各个特征进行交叉和组合, 把原始特征向量转换为新的离散型特征向量, 然后在使用逻辑回归模型
def gbdt_lr_model(data, category_feature, continuous_feature): # 0.43616
# 离散特征one-hot编码
for col in category_feature:
onehot_feats = pd.get_dummies(data[col], prefix = col)
data.drop([col], axis = 1, inplace = True)
data = pd.concat([data, onehot_feats], axis = 1)
train = data[data['Label'] != -1]
target = train.pop('Label')
test = data[data['Label'] == -1]
test.drop(['Label'], axis = 1, inplace = True)
# 划分数据集
x_train, x_val, y_train, y_val = train_test_split(train, target, test_size = 0.2, random_state = 2020)
gbm = lgb.LGBMClassifier(objective='binary',
subsample= 0.8,
min_child_weight= 0.5,
colsample_bytree= 0.7,
num_leaves=100,
max_depth = 12,
learning_rate=0.01,
n_estimators=1000,
)
gbm.fit(x_train, y_train,
eval_set = [(x_train, y_train), (x_val, y_val)],
eval_names = ['train', 'val'],
eval_metric = 'binary_logloss',
early_stopping_rounds = 100,
)
model = gbm.booster_
gbdt_feats_train = model.predict(train, pred_leaf = True)
gbdt_feats_test = model.predict(test, pred_leaf = True)
gbdt_feats_name = ['gbdt_leaf_' + str(i) for i in range(gbdt_feats_train.shape[1])]
df_train_gbdt_feats = pd.DataFrame(gbdt_feats_train, columns = gbdt_feats_name)
df_test_gbdt_feats = pd.DataFrame(gbdt_feats_test, columns = gbdt_feats_name)
train = pd.concat([train, df_train_gbdt_feats], axis = 1)
test = pd.concat([test, df_test_gbdt_feats], axis = 1)
train_len = train.shape[0]
data = pd.concat([train, test])
del train
del test
gc.collect()
# # 连续特征归一化
scaler = MinMaxScaler()
for col in continuous_feature:
data[col] = scaler.fit_transform(data[col].values.reshape(-1, 1))
for col in gbdt_feats_name:
onehot_feats = pd.get_dummies(data[col], prefix = col)
data.drop([col], axis = 1, inplace = True)
data = pd.concat([data, onehot_feats], axis = 1)
train = data[: train_len]
test = data[train_len:]
del data
gc.collect()
x_train, x_val, y_train, y_val = train_test_split(train, target, test_size = 0.3, random_state = 2018)
lr = LogisticRegression()
lr.fit(x_train, y_train)
tr_logloss = log_loss(y_train, lr.predict_proba(x_train)[:, 1])
print('tr-logloss: ', tr_logloss)
val_logloss = log_loss(y_val, lr.predict_proba(x_val)[:, 1])
print('val-logloss: ', val_logloss)
y_pred = lr.predict_proba(test)[:, 1]
print(y_pred[:10])
# 训练和预测lr模型
lr_model(data.copy(), category_fea, continuous_fea)
# 模型训练和预测GBDT模型
gbdt_model(data.copy(), category_fea, continuous_fea)
# 训练和预测GBDT+LR模型
gbdt_lr_model(data.copy(), category_fea, continuous_fea)
-180
View File
@@ -1,180 +0,0 @@
import pandas as pd
import numpy as np
import warnings
import random, math, os
from tqdm import tqdm
from sklearn.model_selection import train_test_split
warnings.filterwarnings('ignore')
# 评价指标
# 推荐系统推荐正确的商品数量占用户实际点击的商品数量
def Recall(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rel_set)
return round(hit_items / all_items * 100, 2)
# 推荐系统推荐正确的商品数量占给用户实际推荐的商品数
def Precision(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rec_set)
return round(hit_items / all_items * 100, 2)
# 所有被推荐的用户中,推荐的商品数量占这些用户实际被点击的商品数量
def Coverage(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
rec_items = set()
all_items = set()
for uid in Rec_dict:
for item in Trn_dict[uid]:
all_items.add(item)
for item in Rec_dict[uid]:
rec_items.add(item)
return round(len(rec_items) / len(all_items) * 100, 2)
# 使用平均流行度度量新颖度,如果平均流行度很高(即推荐的商品比较热门),说明推荐的新颖度比较低
def Popularity(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
pop_items = {}
for uid in Trn_dict:
for item in Trn_dict[uid]:
if item not in pop_items:
pop_items[item] = 0
pop_items[item] += 1
pop, num = 0, 0
for uid in Rec_dict:
for item in Rec_dict[uid]:
pop += math.log(pop_items[item] + 1) # 物品流行度分布满足长尾分布,取对数可以使得平均值更稳定
num += 1
return round(pop / num, 3)
# 将几个评价指标指标函数一起调用
def rec_eval(val_rec_items, val_user_items, trn_user_items):
print('recall:',Recall(val_rec_items, val_user_items))
print('precision',Precision(val_rec_items, val_user_items))
print('coverage',Coverage(val_rec_items, trn_user_items))
print('Popularity',Popularity(val_rec_items, trn_user_items))
def get_data(root_path):
# 读取数据
rnames = ['user_id','movie_id','rating','timestamp']
ratings = pd.read_csv(os.path.join(root_path, 'ratings.dat'), sep='::', engine='python', names=rnames)
# 分割训练和验证集
trn_data, val_data, _, _ = train_test_split(ratings, ratings, test_size=0.2)
trn_data = trn_data.groupby('user_id')['movie_id'].apply(list).reset_index()
val_data = val_data.groupby('user_id')['movie_id'].apply(list).reset_index()
trn_user_items = {}
val_user_items = {}
# 将数组构造成字典的形式{user_id: [item_id1, item_id2,...,item_idn]}
for user, movies in zip(*(list(trn_data['user_id']), list(trn_data['movie_id']))):
trn_user_items[user] = set(movies)
for user, movies in zip(*(list(val_data['user_id']), list(val_data['movie_id']))):
val_user_items[user] = set(movies)
return trn_user_items, val_user_items
def Item_CF(trn_user_items, val_user_items, K, N):
'''
trn_user_items: 表示训练数据,格式为:{user_id1: [item_id1, item_id2,...,item_idn], user_id2...}
val_user_items: 表示验证数据,格式为:{user_id1: [item_id1, item_id2,...,item_idn], user_id2...}
K: K表示的是相似商品的数量,为每个用户交互的每个商品都选择其最相思的K个商品
N: N表示的是给用户推荐的商品数量,给每个用户推荐相似度最大的N个商品
'''
# 建立user->item的倒排表
# 倒排表的格式为: {user_id1: [item_id1, item_id2,...,item_idn], user_id2: ...} 也就是每个用户交互过的所有商品集合
# 由于输入的训练数据trn_user_items,本身就是这中格式的,所以这里不需要进行额外的计算
# 计算商品协同过滤矩阵
# 即利用user-items倒排表统计商品与商品之间被共同的用户交互的次数
# 商品协同过滤矩阵的表示形式为:sim = {item_id1: {item_id: num1}, item_id: {item_id: num}, ...}
# 商品协同过滤矩阵是一个双层的字典,用来表示商品之间共同交互的用户数量
# 在计算商品协同过滤矩阵的同时还需要记录每个商品被多少不同用户交互的次数,其表示形式为: num = {item_id1num1, item_id:num2, ...}
sim = {}
num = {}
print('构建相似性矩阵...')
for uid, items in tqdm(trn_user_items.items()):
for i in items:
if i not in num:
num[i] = 0
num[i] += 1
if i not in sim:
sim[i] = {}
for j in items:
if j not in sim[i]:
sim[i][j] = 0
if i != j:
sim[i][j] += 1
# 计算物品的相似度矩阵
# 商品协同过滤矩阵其实相当于是余弦相似度的分子部分,还需要除以分母,即两个商品被交互的用户数量的乘积
# 两个商品被交互的用户数量就是上面统计的num字典
print('计算协同过滤矩阵...')
for i, items in tqdm(sim.items()):
for j, score in items.items():
if i != j:
sim[i][j] = score / math.sqrt(num[i] * num[j])
# 对验证数据中的每个用户进行TopN推荐
# 在对用户进行推荐之前需要先通过商品相似度矩阵得到当前用户交互过的商品最相思的前K个商品,
# 然后对这K个用户交互的商品中除当前测试用户训练集中交互过的商品以外的商品计算最终的相似度分数
# 最终推荐的候选商品的相似度分数是由多个相似商品对该商品分数的一个累加和
items_rank = {}
print('给用户进行推荐...')
for uid, _ in tqdm(val_user_items.items()):
items_rank[uid] = {} # 存储用户候选的推荐商品
for hist_item in trn_user_items[uid]: # 遍历该用户历史喜欢的商品,用来下面寻找其相似的商品
for item, score in sorted(sim[hist_item].items(), key=lambda x: x[1], reverse=True)[:K]:
if item not in trn_user_items[uid]: # 进行推荐的商品一定不能在历史喜欢商品中出现
if item not in items_rank[uid]:
items_rank[uid][item] = 0
items_rank[uid][item] += score
print('为每个用户筛选出相似度分数最高的N个商品...')
items_rank = {k: sorted(v.items(), key=lambda x: x[1], reverse=True)[:N] for k, v in items_rank.items()}
items_rank = {k: set([x[0] for x in v]) for k, v in items_rank.items()}
return items_rank
if __name__ == "__main__":
root_path = './data/ml-1m/'
trn_user_items, val_user_items = get_data(root_path)
rec_items = Item_CF(trn_user_items, val_user_items, 80, 10)
rec_eval(rec_items, val_user_items, trn_user_items)
-220
View File
@@ -1,220 +0,0 @@
import pandas as pd
import numpy as np
import warnings
import random, math, os
from tqdm import tqdm
from tensorflow.keras import *
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from tensorflow.keras.callbacks import *
import tensorflow.keras.backend as K
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
import faiss
warnings.filterwarnings('ignore')
# 评价指标
# 推荐系统推荐正确的商品数量占用户实际点击的商品数量
def Recall(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rel_set)
return round(hit_items / all_items * 100, 2)
# 推荐系统推荐正确的商品数量占给用户实际推荐的商品数
def Precision(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rec_set)
return round(hit_items / all_items * 100, 2)
# 所有被推荐的用户中,推荐的商品数量占这些用户实际被点击的商品数量
def Coverage(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
rec_items = set()
all_items = set()
for uid in Rec_dict:
for item in Trn_dict[uid]:
all_items.add(item)
for item in Rec_dict[uid]:
rec_items.add(item)
return round(len(rec_items) / len(all_items) * 100, 2)
# 使用平均流行度度量新颖度,如果平均流行度很高(即推荐的商品比较热门),说明推荐的新颖度比较低
def Popularity(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
pop_items = {}
for uid in Trn_dict:
for item in Trn_dict[uid]:
if item not in pop_items:
pop_items[item] = 0
pop_items[item] += 1
pop, num = 0, 0
for uid in Rec_dict:
for item in Rec_dict[uid]:
pop += math.log(pop_items[item] + 1) # 物品流行度分布满足长尾分布,取对数可以使得平均值更稳定
num += 1
return round(pop / num, 3)
# 将几个评价指标指标函数一起调用
def rec_eval(val_rec_items, val_user_items, trn_user_items):
print('recall:',Recall(val_rec_items, val_user_items))
print('precision',Precision(val_rec_items, val_user_items))
print('coverage',Coverage(val_rec_items, trn_user_items))
print('Popularity',Popularity(val_rec_items, trn_user_items))
def get_data(root_path):
# 读取数据时,定义的列名
rnames = ['user_id','movie_id','rating','timestamp']
data = pd.read_csv(os.path.join(root_path, 'ratings.dat'), sep='::', engine='python', names=rnames)
lbe = LabelEncoder()
data['user_id'] = lbe.fit_transform(data['user_id'])
data['movie_id'] = lbe.fit_transform(data['movie_id'])
# 直接这么分是不是可能会存在验证集中的用户或者商品不在训练集合中呢?那这种的操作一半是怎么进行划分
trn_data_, val_data_, _, _ = train_test_split(data, data, test_size=0.2)
trn_data = trn_data_.groupby('user_id')['movie_id'].apply(list).reset_index()
val_data = val_data_.groupby('user_id')['movie_id'].apply(list).reset_index()
trn_user_items = {}
val_user_items = {}
# 将数组构造成字典的形式{user_id: [item_id1, item_id2,...,item_idn]}
for user, movies in zip(*(list(trn_data['user_id']), list(trn_data['movie_id']))):
trn_user_items[user] = set(movies)
for user, movies in zip(*(list(val_data['user_id']), list(val_data['movie_id']))):
val_user_items[user] = set(movies)
return trn_user_items, val_user_items, trn_data_, val_data_, data
# 矩阵分解模型
def MF(n_users, n_items, embedding_dim=8):
K.clear_session()
input_users = Input(shape=[None, ])
users_emb = Embedding(n_users, embedding_dim)(input_users)
input_movies = Input(shape=[None, ])
movies_emb = Embedding(n_items, embedding_dim)(input_movies)
users = BatchNormalization()(users_emb)
users = Reshape((embedding_dim, ))(users)
movies = BatchNormalization()(movies_emb)
movies = Reshape((embedding_dim, ))(movies)
output = Dot(1)([users, movies])
model = Model(inputs=[input_users, input_movies], outputs=output)
model.compile(loss='mse', optimizer='adam')
model.summary()
# 为了方便获取模型中的某些层,进行如下属性设置
model.__setattr__('user_input', input_users)
model.__setattr__('user_embedding', users_emb)
model.__setattr__('movie_input', input_movies)
model.__setattr__('movie_embedding', movies_emb)
return model
if __name__ == "__main__":
# K表示最终给用户推荐的商品数量,N表示候选推荐商品为用户交互过的商品相似商品的数量
k = 80
N = 10
# 读取数据
root_path = './data/ml-1m/'
trn_user_items, val_user_items, trn_data, val_data, data = get_data(root_path)
# 模型保存的名称
# 定义模型训练时监控的相关参数
model_path = 'mf.h5'
checkpoint = ModelCheckpoint(model_path, monitor='val_loss', verbose=1, save_best_only=True,
mode='min', save_weights_only=True)
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=3, min_lr=0.0001, verbose=1)
earlystopping = EarlyStopping(monitor='val_loss', min_delta=0.0001, patience=5, verbose=1, mode='min')
callbacks = [checkpoint, reduce_lr, earlystopping]
# 计算user和item的数量
n_users = trn_data['user_id'].max() + 1
n_items = trn_data['movie_id'].max() + 1
embedding_dim = 64 # 用户及商品的向量维度
model = MF(n_users, n_items, embedding_dim) # 训练模型
# 模型的输入是user_id和movie_id
hist = model.fit([trn_data['user_id'].values, trn_data['movie_id'].values],
trn_data['rating'].values, batch_size=256, epochs=1, validation_split=0.1,
callbacks=callbacks, verbose=1, shuffle=True)
# 获取模型的Embedding层
user_embedding_model = Model(inputs=model.user_input, outputs=model.user_embedding)
item_embedding_model = Model(inputs=model.movie_input, outputs=model.movie_embedding)
# 将验证集中的user_id进行排序,方便与faiss搜索的结果进行对应
val_uids = sorted(val_data['user_id'].unique())
trn_items = sorted(trn_data['movie_id'].unique())
# 获取训练数据的实际索引与相对索引,
# 实际索引指的是数据中原始的user_id
# 相对索引指的是,排序后的位置索引,这个对应的是faiss库搜索得到的结果索引
trn_items_dict = {}
for i, item in enumerate(trn_items):
trn_items_dict[i] = item
# 获取训练集中的所有的商品,由于数据进行了训练和验证集的划分,所以实际的训练集中的商品可能不包含整个数据集中的所有商品
# 但是为了在向量索引的时候方便与原始索引相对应
items_dict = set(trn_data['movie_id'].unique())
user_embs = user_embedding_model.predict([val_uids], batch_size=256).squeeze(axis=1)
item_embs = item_embedding_model.predict([trn_items], batch_size=256).squeeze(axis=1)
# 使用向量搜索库进行最近邻搜索
index = faiss.IndexFlatIP(embedding_dim)
index.add(item_embs)
# ascontiguousarray函数将一个内存不连续存储的数组转换为内存连续存储的数组,使得运行速度更快。
D, I = index.search(np.ascontiguousarray(user_embs), k)
# 将推荐结果转换成可以计算评价指标的格式
# 选择最相似的TopN个item
val_rec = {}
for i, u in enumerate(val_uids):
items = list(map(lambda x: trn_items_dict[x], list(I[i]))) # 先将相对索引转换成原数据中的user_id
items = list(filter(lambda x: x not in trn_user_items[u], items))[:N] # 过滤掉用户在训练集中交互过的商品id,并选择相似度最高的前N个
val_rec[u] = set(items) # 将结果转换成统一的形式,便于计算模型的性能指标
# 计算评价指标
rec_eval(val_rec, val_user_items, trn_user_items)
-103
View File
@@ -1,103 +0,0 @@
"""
Reference:
[1] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018.(https://dl.acm.org/doi/abs/10.1145/3219819.3220007)
"""
import tensorflow as tf
from deepctr.feature_column import build_input_features, input_from_feature_columns
from deepctr.layers.core import PredictionLayer, DNN
from deepctr.layers.utils import combined_dnn_input, reduce_sum
def MMOE(dnn_feature_columns, num_tasks=None, task_types=None, task_names=None, num_experts=4,
expert_dnn_units=[32,32], gate_dnn_units=None, tower_dnn_units_lists=[[16,8],[16,8]],
l2_reg_embedding=1e-5, l2_reg_dnn=0, seed=1024, dnn_dropout=0, dnn_activation='relu', dnn_use_bn=False):
"""Instantiates the Multi-gate Mixture-of-Experts multi-task learning architecture.
:param dnn_feature_columns: An iterable containing all the features used by deep part of the model.
:param num_tasks: integer, number of tasks, equal to number of outputs, must be greater than 1.
:param task_types: list of str, indicating the loss of each tasks, ``"binary"`` for binary logloss, ``"regression"`` for regression loss. e.g. ['binary', 'regression']
:param task_names: list of str, indicating the predict target of each tasks
:param num_experts: integer, number of experts.
:param expert_dnn_units: list, list of positive integer, its length must be greater than 1, the layer number and units in each layer of expert DNN
:param gate_dnn_units: list, list of positive integer or None, the layer number and units in each layer of gate DNN, default value is None. e.g.[8, 8].
:param tower_dnn_units_lists: list, list of positive integer list, its length must be euqal to num_tasks, the layer number and units in each layer of task-specific DNN
:param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector
:param l2_reg_dnn: float. L2 regularizer strength applied to DNN
:param seed: integer ,to use as random seed.
:param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate.
:param dnn_activation: Activation function to use in DNN
:param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN
:return: a Keras model instance
"""
if num_tasks <= 1:
raise ValueError("num_tasks must be greater than 1")
if len(task_types) != num_tasks:
raise ValueError("num_tasks must be equal to the length of task_types")
for task_type in task_types:
if task_type not in ['binary', 'regression']:
raise ValueError("task must be binary or regression, {} is illegal".format(task_type))
if num_tasks != len(tower_dnn_units_lists):
raise ValueError("the length of tower_dnn_units_lists must be euqal to num_tasks")
features = build_input_features(dnn_feature_columns)
inputs_list = list(features.values())
sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns,
l2_reg_embedding, seed)
dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list)
#build expert layer
expert_outs = []
for i in range(num_experts):
expert_network = DNN(expert_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='expert_'+str(i))(dnn_input)
expert_outs.append(expert_network)
expert_concat = tf.keras.layers.concatenate(expert_outs, axis=1, name='expert_concat')
expert_concat = tf.keras.layers.Reshape([num_experts, expert_dnn_units[-1]], name='expert_reshape')(expert_concat) #(num_experts, output dim of expert_network)
mmoe_outs = []
for i in range(num_tasks): #one mmoe layer: nums_tasks = num_gates
#build gate layers
if gate_dnn_units!=None:
gate_network = DNN(gate_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='gate_'+task_names[i])(dnn_input)
gate_input = gate_network
else: #in origin paper, gate is one Dense layer with softmax.
gate_input = dnn_input
gate_out = tf.keras.layers.Dense(num_experts, use_bias=False, activation='softmax', name='gate_softmax_'+task_names[i])(gate_input)
gate_out = tf.keras.layers.Lambda(lambda x: tf.expand_dims(x, axis=-1))(gate_out)
#gate multiply the expert
gate_mul_expert = tf.keras.layers.Multiply(name='gate_mul_expert_'+task_names[i])([expert_concat, gate_out])
gate_mul_expert = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(gate_mul_expert)
mmoe_outs.append(gate_mul_expert)
task_outs = []
for task_type, task_name, tower_dnn, mmoe_out in zip(task_types, task_names, tower_dnn_units_lists, mmoe_outs):
#build tower layer
tower_output = DNN(tower_dnn, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='tower_'+task_name)(mmoe_out)
logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(tower_output)
output = PredictionLayer(task_type, name=task_name)(logit)
task_outs.append(output)
model = tf.keras.models.Model(inputs=inputs_list, outputs=task_outs)
return model
if __name__ == "__main__":
from utils import get_mtl_data
dnn_feature_columns, train_model_input, test_model_input, y_list = get_mtl_data()
model = MMOE(dnn_feature_columns, num_tasks=2, task_types=['binary', 'binary'], task_names=['income','marital'],
num_experts=8, expert_dnn_units=[16], gate_dnn_units=None, tower_dnn_units_lists=[[8],[8]])
model.compile("adam", loss=["binary_crossentropy", "binary_crossentropy"], metrics=['AUC'])
history = model.fit(train_model_input, y_list, batch_size=256, epochs=5, verbose=2, validation_split=0.0 )
-121
View File
@@ -1,121 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear, prefix=''):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, 1, name=prefix + '1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, fc.embedding_dim, name=prefix + 'kd_emb_' + fc.name)
return embedding_layers_dict
def get_dnn_out(dnn_inputs, units=(32, 16)):
dnn_out = dnn_inputs
for out_dim in units:
dnn_out = Dense(out_dim)(dnn_out)
return dnn_out
def NCF(dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
_, sparse_input_dict = build_input_layers(dnn_feature_columns) # 没有dense特征
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(sparse_input_dict.values())
# 创建两份embedding向量, 由于Embedding层的name不能相同,所以这里加入一个prefix参数
GML_embedding_dict = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False, prefix='GML')
MLP_embedding_dict = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False, prefix='MLP')
# 构建GML的输出
GML_user_emb = Flatten()(GML_embedding_dict['user_id'](sparse_input_dict['user_id'])) # B x embed_dim
GML_item_emb = Flatten()(GML_embedding_dict['movie_id'](sparse_input_dict['movie_id'])) # B x embed_dim
GML_out = tf.multiply(GML_user_emb, GML_item_emb) # 按元素相乘
# 构建MLP的输出
MLP_user_emb = Flatten()(MLP_embedding_dict['user_id'](sparse_input_dict['user_id'])) # B x embed_dim
MLP_item_emb = Flatten()(MLP_embedding_dict['movie_id'](sparse_input_dict['movie_id'])) # B x embed_dim
MLP_dnn_input = Concatenate(axis=1)([MLP_user_emb, MLP_item_emb]) # 两个向量concat
MLP_dnn_out = get_dnn_out(MLP_dnn_input, (32, 16))
# 将dense特征和Sparse特征拼接到一起
concat_out = Concatenate(axis=1)([GML_out, MLP_dnn_out])
# 输入到dnn中,需要提前定义需要几个残差块
# output_layer = Dense(1, 'sigmoid')(concat_out)
output_layer = Dense(1)(concat_out)
model = Model(input_layers, output_layer)
return model
if __name__ == "__main__":
# 读取数据,NCF使用的特征只有user_id和item_id
rnames = ['user_id','movie_id','rating','timestamp']
data = pd.read_csv('./data/ml-1m/ratings.dat', sep='::', engine='python', names=rnames)
lbe = LabelEncoder()
data['user_id'] = lbe.fit_transform(data['user_id'])
data['movie_id'] = lbe.fit_transform(data['movie_id'])
train_data = data[['user_id', 'movie_id']]
train_data['label'] = data['rating']
dnn_feature_columns = [SparseFeat('user_id', train_data['user_id'].nunique(), 8),
SparseFeat('movie_id', train_data['movie_id'].nunique(), 8)]
# 构建FM模型
history = NCF(dnn_feature_columns)
history.summary()
# 因为数据目前只有用户点击的数据,没有用户未点击的movie,所以这里不能用于做ctr预估
# 如果需要做ctr预估需要给用户点击和未点击的movie打标签,这里就先预测用户评分
history.compile(optimizer="adam", loss="mse", metrics=['mae'])
# 将输入数据转化成字典的形式输入
# 将数据转换成字典的形式,用于Input()层对应
train_model_input = {name: train_data[name] for name in ['user_id', 'movie_id', 'label']}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=32, epochs=2, validation_split=0.2, )
-208
View File
@@ -1,208 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
def get_linear_logits(dense_input_dict, sparse_input_dict, sparse_feature_columns):
# 将所有的dense特征的Input层,然后经过一个全连接层得到dense特征的logits
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values()))
dense_logits_output = Dense(1)(concat_dense_inputs)
# 获取linear部分sparse特征的embedding层,这里使用embedding的原因是:
# 对于linear部分直接将特征进行onehot然后通过一个全连接层,当维度特别大的时候,计算比较慢
# 使用embedding层的好处就是可以通过查表的方式获取到哪些非零的元素对应的权重,然后在将这些权重相加,效率比较高
linear_embedding_layers = build_embedding_layers(sparse_feature_columns, sparse_input_dict, is_linear=True)
# 将一维的embedding拼接,注意这里需要使用一个Flatten层,使维度对应
sparse_1d_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
embed = Flatten()(linear_embedding_layers[fc.name](feat_input))
sparse_1d_embed.append(embed)
# embedding中查询得到的权重就是对应onehot向量中一个位置的权重,所以后面不用再接一个全连接了,本身一维的embedding就相当于全连接
# 只不过是这里的输入特征只有0和1,所以直接向非零元素对应的权重相加就等同于进行了全连接操作(非零元素部分乘的是1)
sparse_logits_output = Add()(sparse_1d_embed)
# 最终将dense特征和sparse特征对应的logits相加,得到最终linear的logits
linear_part = Add()([dense_logits_output, sparse_logits_output])
return linear_part
class BiInteractionPooling(Layer):
def __init__(self):
super(BiInteractionPooling, self).__init__()
def call(self, inputs):
# 优化后的公式为: 0.5 * (和的平方-平方的和) =>> B x k
concated_embeds_value = inputs # B x n x k
square_of_sum = tf.square(tf.reduce_sum(concated_embeds_value, axis=1, keepdims=False)) # B x k
sum_of_square = tf.reduce_sum(concated_embeds_value * concated_embeds_value, axis=1, keepdims=False) # B x k
cross_term = 0.5 * (square_of_sum - sum_of_square) # B x k
return cross_term
def compute_output_shape(self, input_shape):
return (None, input_shape[2])
def get_bi_interaction_pooling_output(sparse_input_dict, sparse_feature_columns, dnn_embedding_layers):
# 只考虑sparse的二阶交叉,将所有的embedding拼接到一起
# 这里在实际运行的时候,其实只会将那些非零元素对应的embedding拼接到一起
# 并且将非零元素对应的embedding拼接到一起本质上相当于已经乘了x, 因为x中的值是1(公式中的x)
sparse_kd_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
_embed = dnn_embedding_layers[fc.name](feat_input) # B x 1 x k
sparse_kd_embed.append(_embed)
# 将所有sparse的embedding拼接起来,得到 (n, k)的矩阵,其中n为特征数,k为embedding大小
concat_sparse_kd_embed = Concatenate(axis=1)(sparse_kd_embed) # B x n x k
pooling_out = BiInteractionPooling()(concat_sparse_kd_embed)
return pooling_out
def get_dnn_logits(pooling_out):
# dnn层,这里的Dropout参数,Dense中的参数都可以自己设定, 论文中还说使用了BN, 但是个人觉得BN和dropout同时使用
# 可能会出现一些问题,感兴趣的可以尝试一些,这里就先不加上了
dnn_out = Dropout(0.5)(Dense(1024, activation='relu')(pooling_out))
dnn_out = Dropout(0.3)(Dense(512, activation='relu')(dnn_out))
dnn_out = Dropout(0.1)(Dense(256, activation='relu')(dnn_out))
dnn_logits = Dense(1)(dnn_out)
return dnn_logits
def NFM(linear_feature_columns, dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)
# 将linear部分的特征中sparse特征筛选出来,后面用来做1维的embedding
linear_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns))
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# linear_logits由两部分组成,分别是dense特征的logits和sparse特征的logits
linear_logits = get_linear_logits(dense_input_dict, sparse_input_dict, linear_sparse_feature_columns)
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
# embedding层用户构建FM交叉部分和DNN的输入部分
embedding_layers = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
# 将输入到dnn中的sparse特征筛选出来
dnn_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_feature_columns))
pooling_output = get_bi_interaction_pooling_output(sparse_input_dict, dnn_sparse_feature_columns, embedding_layers) # B x (n(n-1)/2)
# 论文中说到在池化之后加上了BN操作
pooling_output = BatchNormalization()(pooling_output)
dnn_logits = get_dnn_logits(pooling_output)
# 将linear,dnn的logits相加作为最终的logits
output_logits = Add()([linear_logits, dnn_logits])
# 这里的激活函数使用sigmoid
output_layers = Activation("sigmoid")(output_logits)
model = Model(input_layers, output_layers)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建NFM模型
history = NFM(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
-153
View File
@@ -1,153 +0,0 @@
"""
Reference:
[1] Tang H, Liu J, Zhao M, et al. Progressive layered extraction (ple): A novel multi-task learning (mtl) model for personalized recommendations[C]//Fourteenth ACM Conference on Recommender Systems. 2020.(https://dl.acm.org/doi/10.1145/3383313.3412236)
"""
import tensorflow as tf
from deepctr.feature_column import build_input_features, input_from_feature_columns
from deepctr.layers.core import PredictionLayer, DNN
from deepctr.layers.utils import combined_dnn_input, reduce_sum
def PLE(dnn_feature_columns, num_tasks=None, task_types=None, task_names=None, num_levels=2, num_experts_specific=8, num_experts_shared=4,
expert_dnn_units=[64,64], gate_dnn_units=None, tower_dnn_units_lists=[[16,16],[16,16]],
l2_reg_embedding=1e-5, l2_reg_dnn=0, seed=1024, dnn_dropout=0, dnn_activation='relu', dnn_use_bn=False):
"""Instantiates the multi level of Customized Gate Control of Progressive Layered Extraction architecture.
:param dnn_feature_columns: An iterable containing all the features used by deep part of the model.
:param num_tasks: integer, number of tasks, equal to number of outputs, must be greater than 1.
:param task_types: list of str, indicating the loss of each tasks, ``"binary"`` for binary logloss, ``"regression"`` for regression loss. e.g. ['binary', 'regression']
:param task_names: list of str, indicating the predict target of each tasks
:param num_levels: integer, number of CGC levels.
:param num_experts_specific: integer, number of task-specific experts.
:param num_experts_shared: integer, number of task-shared experts.
:param expert_dnn_units: list, list of positive integer, its length must be greater than 1, the layer number and units in each layer of expert DNN.
:param gate_dnn_units: list, list of positive integer or None, the layer number and units in each layer of gate DNN, default value is None. e.g.[8, 8].
:param tower_dnn_units_lists: list, list of positive integer list, its length must be euqal to num_tasks, the layer number and units in each layer of task-specific DNN.
:param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector.
:param l2_reg_dnn: float. L2 regularizer strength applied to DNN.
:param seed: integer ,to use as random seed.
:param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate.
:param dnn_activation: Activation function to use in DNN.
:param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN.
:return: a Keras model instance.
"""
if num_tasks <= 1:
raise ValueError("num_tasks must be greater than 1")
if len(task_types) != num_tasks:
raise ValueError("num_tasks must be equal to the length of task_types")
for task_type in task_types:
if task_type not in ['binary', 'regression']:
raise ValueError("task must be binary or regression, {} is illegal".format(task_type))
if num_tasks != len(tower_dnn_units_lists):
raise ValueError("the length of tower_dnn_units_lists must be euqal to num_tasks")
features = build_input_features(dnn_feature_columns)
inputs_list = list(features.values())
sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns,
l2_reg_embedding, seed)
dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list)
#single Extraction Layer
def cgc_net(inputs, level_name, is_last=False):
#inputs: [task1, task2, ... taskn, shared task]
expert_outputs = []
#build task-specific expert layer
for i in range(num_tasks):
for j in range(num_experts_specific):
expert_network = DNN(expert_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name=level_name+'task_'+task_names[i]+'_expert_specific_'+str(j))(inputs[i])
expert_outputs.append(expert_network)
#build task-shared expert layer
for i in range(num_experts_shared):
expert_network = DNN(expert_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name=level_name+'expert_shared_'+str(i))(inputs[-1])
expert_outputs.append(expert_network)
#task_specific gate (count = num_tasks)
cgc_outs = []
for i in range(num_tasks):
#concat task-specific expert and task-shared expert
cur_expert_num = num_experts_specific + num_experts_shared
cur_experts = expert_outputs[i * num_experts_specific:(i + 1) * num_experts_specific] + expert_outputs[-int(num_experts_shared):] #task_specific + task_shared
expert_concat = tf.keras.layers.concatenate(cur_experts, axis=1, name=level_name+'expert_concat_specific_'+task_names[i])
expert_concat = tf.keras.layers.Reshape([cur_expert_num, expert_dnn_units[-1]], name=level_name+'expert_reshape_specific_'+task_names[i])(expert_concat)
#build gate layers
if gate_dnn_units!=None:
gate_network = DNN(gate_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name=level_name+'gate_specific_'+task_names[i])(inputs[i]) #gate[i] for task input[i]
gate_input = gate_network
else: #in origin paper, gate is one Dense layer with softmax.
gate_input = dnn_input
gate_out = tf.keras.layers.Dense(cur_expert_num, use_bias=False, activation='softmax', name=level_name+'gate_softmax_specific_'+task_names[i])(gate_input)
gate_out = tf.keras.layers.Lambda(lambda x: tf.expand_dims(x, axis=-1))(gate_out)
#gate multiply the expert
gate_mul_expert = tf.keras.layers.Multiply(name=level_name+'gate_mul_expert_specific_'+task_names[i])([expert_concat, gate_out])
gate_mul_expert = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(gate_mul_expert)
cgc_outs.append(gate_mul_expert)
#task_shared gate, if the level not in last, add one shared gate
if not is_last:
cur_expert_num = num_tasks * num_experts_specific + num_experts_shared
cur_experts = expert_outputs #all the expert include task-specific expert and task-shared expert
expert_concat = tf.keras.layers.concatenate(cur_experts, axis=1, name=level_name+'expert_concat_shared_'+task_names[i])
expert_concat = tf.keras.layers.Reshape([cur_expert_num, expert_dnn_units[-1]], name=level_name+'expert_reshape_shared_'+task_names[i])(expert_concat)
#build gate layers
if gate_dnn_units!=None:
gate_network = DNN(gate_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name=level_name+'gate_shared_'+str(i))(inputs[-1])#gate for shared task input
gate_input = gate_network
else: #in origin paper, gate is one Dense layer with softmax.
gate_input = dnn_input
gate_out = tf.keras.layers.Dense(cur_expert_num, use_bias=False, activation='softmax', name=level_name+'gate_softmax_shared_'+str(i))(gate_input)
gate_out = tf.keras.layers.Lambda(lambda x: tf.expand_dims(x, axis=-1))(gate_out)
#gate multiply the expert
gate_mul_expert = tf.keras.layers.Multiply(name=level_name+'gate_mul_expert_shared_'+task_names[i])([expert_concat, gate_out])
gate_mul_expert = tf.keras.layers.Lambda(lambda x: reduce_sum(x, axis=1, keep_dims=True))(gate_mul_expert)
cgc_outs.append(gate_mul_expert)
return cgc_outs
#build Progressive Layered Extraction
ple_inputs = [dnn_input]*(num_tasks+1) #[task1, task2, ... taskn, shared task]
ple_outputs = []
for i in range(num_levels):
if i == num_levels-1: #the last level
ple_outputs = cgc_net(inputs=ple_inputs, level_name='level_'+str(i)+'_', is_last=True)
break
else:
ple_outputs = cgc_net(inputs=ple_inputs, level_name='level_'+str(i)+'_', is_last=False)
ple_inputs = ple_outputs
task_outs = []
for task_type, task_name, tower_dnn, ple_out in zip(task_types, task_names, tower_dnn_units_lists, ple_outputs):
#build tower layer
tower_output = DNN(tower_dnn, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='tower_'+task_name)(ple_out)
logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(tower_output)
output = PredictionLayer(task_type, name=task_name)(logit)
task_outs.append(output)
model = tf.keras.models.Model(inputs=inputs_list, outputs=task_outs)
return model
if __name__ == "__main__":
from utils import get_mtl_data
dnn_feature_columns, train_model_input, test_model_input, y_list = get_mtl_data()
model = PLE(dnn_feature_columns, num_tasks=2, task_types=['binary', 'binary'], task_names=['income','marital'],
num_levels=2, num_experts_specific=4, num_experts_shared=4, expert_dnn_units=[16],
gate_dnn_units=None,tower_dnn_units_lists=[[8],[8]])
model.compile("adam", loss=["binary_crossentropy", "binary_crossentropy"], metrics=['AUC'])
history = model.fit(train_model_input, y_list, batch_size=256, epochs=5, verbose=2, validation_split=0.0 )
-227
View File
@@ -1,227 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size + 1, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
# 将sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns))
embedding_list = []
for fc in sparse_feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
def get_dnn_logits(dnn_inputs, units=(64, 32)):
dnn_out = dnn_inputs
for out_dim in units:
dnn_out = Dense(out_dim, activation='relu')(dnn_out)
# 将dnn的输出转化成logits
dnn_logits = Dense(1, activation='sigmoid')(dnn_out)
return dnn_logits
class ProductLayer(Layer):
def __init__(self, units, use_inner=True, use_outer=False):
super(ProductLayer, self).__init__()
self.use_inner = use_inner
self.use_outer = use_outer
self.units = units # 指的是原文中D1的大小
def build(self, input_shape):
# 需要注意input_shape也是一个列表,并且里面的每一个元素都是TensorShape类型,
# 需要将其转换成list然后才能参与数值计算,不然类型容易错
# input_shape[0] : feat_nums x embed_dims
self.feat_nums = len(input_shape)
self.embed_dims = input_shape[0].as_list()[-1]
flatten_dims = self.feat_nums * self.embed_dims
# Linear signals weight, 这部分是用于产生Z的权重,因为这里需要计算的是两个元素对应元素乘积然后再相加
# 等价于先把矩阵拉成一维,然后相乘再相加
self.linear_w = self.add_weight(name='linear_w', shape=(flatten_dims, self.units), initializer='glorot_normal')
# inner product weight
if self.use_inner:
# 优化之后的内积权重是未优化时的一个分解矩阵,未优化时的矩阵大小为:D x N x N
# 优化后的内积权重大小为:D x N
self.inner_w = self.add_weight(name='inner_w', shape=(self.units, self.feat_nums), initializer='glorot_normal')
if self.use_outer:
# 优化之后的外积权重大小为:D x embed_dim x embed_dim, 因为计算外积的时候在特征维度通过求和的方式进行了压缩
self.outer_w = self.add_weight(name='outer_w', shape=(self.units, self.embed_dims, self.embed_dims), initializer='glorot_normal')
def call(self, inputs):
# inputs是一个列表
# 先将所有的embedding拼接起来计算线性信号部分的输出
concat_embed = Concatenate(axis=1)(inputs) # B x feat_nums x embed_dims
# 将两个矩阵都拉成二维的,然后通过矩阵相乘得到最终的结果
concat_embed_ = tf.reshape(concat_embed, shape=[-1, self.feat_nums * self.embed_dims])
lz = tf.matmul(concat_embed_, self.linear_w) # B x units
# inner
lp_list = []
if self.use_inner:
for i in range(self.units):
# 相当于给每一个特征向量都乘以一个权重
# self.inner_w[i] : (embed_dims, ) 添加一个维度变成 (embed_dims, 1)
delta = tf.multiply(concat_embed, tf.expand_dims(self.inner_w[i], axis=1)) # B x feat_nums x embed_dims
# 在特征之间的维度上求和
delta = tf.reduce_sum(delta, axis=1) # B x embed_dims
# 最终在特征embedding维度上求二范数得到p
lp_list.append(tf.reduce_sum(tf.square(delta), axis=1, keepdims=True)) # B x 1
# outer
if self.use_outer:
# 外积的优化是将embedding矩阵,在特征间的维度上通过求和进行压缩
feat_sum = tf.reduce_sum(concat_embed, axis=1) # B x embed_dims
# 为了方便计算外积,将维度进行扩展
f1 = tf.expand_dims(feat_sum, axis=2) # B x embed_dims x 1
f2 = tf.expand_dims(feat_sum, axis=1) # B x 1 x embed_dims
# 求外积, a * a^T
product = tf.matmul(f1, f2) # B x embed_dims x embed_dims
# 将product与外积权重矩阵对应元素相乘再相加
for i in range(self.units):
lpi = tf.multiply(product, self.outer_w[i]) # B x embed_dims x embed_dims
# 将后面两个维度进行求和,需要注意的是,每使用一次reduce_sum就会减少一个维度
lpi = tf.reduce_sum(lpi, axis=[1, 2]) # B
# 添加一个维度便于特征拼接
lpi = tf.expand_dims(lpi, axis=1) # B x 1
lp_list.append(lpi)
# 将所有交叉特征拼接到一起
lp = Concatenate(axis=1)(lp_list)
# 将lz和lp拼接到一起
product_out = Concatenate(axis=1)([lz, lp])
return product_out
def PNN(dnn_feature_columns, inner=True, outer=True):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
_, sparse_input_dict = build_input_layers(dnn_feature_columns)
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(sparse_input_dict.values())
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
embedding_layer_dict = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
sparse_embed_list = concat_embedding_list(dnn_feature_columns, sparse_input_dict, embedding_layer_dict, flatten=False)
dnn_inputs = ProductLayer(units=32, use_inner=True, use_outer=True)(sparse_embed_list)
# 输入到dnn中,需要提前定义需要几个残差块
output_layer = get_dnn_logits(dnn_inputs)
model = Model(input_layers, output_layer)
return model
# 实现PNN的时候一定要明确是实现优化前的还是优化后的,因为网上有的参考代码是优化前的,有的是优化后的,容易搞混了
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 只传入类别特征, 如果想要传入dense特征,也可以传入直接进行拼接
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)]
# 构建FM模型
history = PNN(dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
-261
View File
@@ -1,261 +0,0 @@
from collections import namedtuple
from tensorflow import keras
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder
from DeepCrossing import DeepCrossing
from DeepFM import DeepFM
from NFM import NFM
from WideNDeep import WideNDeep
from DIN import DIN
from NCF import NCF
from AFM import AFM
from DCN import DCN
from PNN import PNN
from DIEN import DIEN
from utils import DenseFeat, SparseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
# 读取criteo数据
def read_criteo_data():
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
return data, dense_features, sparse_features
def plot_deepcrossing():
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:3]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DeepCrossing模型
history = DeepCrossing(dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/DeepCrossing.png", show_shapes=True)
def plot_deepfm():
# 读取数据
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:2]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DeepFM模型
history = DeepFM(linear_feature_columns, dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/DeepFM.png", show_shapes=True)
def plot_nfm():
# 读取数据
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:2]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建NFM模型
history = NFM(linear_feature_columns, dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/NFM.png", show_shapes=True)
def plot_widendeep():
# 读取数据
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:2]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建WideNDeep模型
history = WideNDeep(linear_feature_columns, dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/Wide&Deep.png", show_shapes=True)
def plot_din():
# 读取数据
samples_data = pd.read_csv("./data/movie_sample.txt", sep="\t", header = None)
samples_data.columns = ["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id", "label"]
feature_columns = [SparseFeat('user_id', max(samples_data["user_id"])+1, embedding_dim=8),
SparseFeat('gender', max(samples_data["gender"])+1, embedding_dim=8),
SparseFeat('age', max(samples_data["age"])+1, embedding_dim=8),
SparseFeat('movie_id', max(samples_data["movie_id"])+1, embedding_dim=8),
SparseFeat('movie_type_id', max(samples_data["movie_type_id"])+1, embedding_dim=8),
DenseFeat('hist_len', 1)]
feature_columns += [VarLenSparseFeat('hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
# 行为特征列表,表示的是基础特征
behavior_feature_list = ['movie_id']
# 行为序列特征
behavior_seq_feature_list = ['hist_movie_id']
history = DIN(feature_columns, behavior_feature_list, behavior_seq_feature_list)
keras.utils.plot_model(history, to_file="./imgs/DIN.png", show_shapes=True)
def plot_pnn():
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:3]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for feat in sparse_features] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建DeepCrossing模型
history = PNN(dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/PNN.png", show_shapes=True)
def plot_ncf():
# 读取数据,NCF使用的特征只有user_id和item_id
rnames = ['user_id','movie_id','rating','timestamp']
data = pd.read_csv('./data/ml-1m/ratings.dat', sep='::', engine='python', names=rnames)
lbe = LabelEncoder()
data['user_id'] = lbe.fit_transform(data['user_id'])
data['movie_id'] = lbe.fit_transform(data['movie_id'])
dnn_feature_columns = [SparseFeat('user_id', data['user_id'].nunique(), 8),
SparseFeat('movie_id', data['movie_id'].nunique(), 8)]
# 构建FM模型
history = NCF(dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/NCF.png", show_shapes=True)
def plot_dcn():
# 读取数据
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:2]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建AFM模型
history = DCN(linear_feature_columns, dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/DCN.png", show_shapes=True)
def plot_afm():
# 读取数据
data, dense_features, sparse_features = read_criteo_data()
dense_features = dense_features[:3]
sparse_features = sparse_features[:2]
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建AFM模型
history = AFM(linear_feature_columns, dnn_feature_columns)
keras.utils.plot_model(history, to_file="./imgs/AFM.png", show_shapes=True)
def plot_dien():
"""读取数据"""
samples_data = pd.read_csv("data/movie_sample.txt", sep="\t", header = None)
samples_data.columns = ["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id", "label"]
"""数据集"""
X = samples_data[["user_id", "gender", "age", "hist_movie_id", "hist_len", "movie_id", "movie_type_id"]]
y = samples_data["label"]
"""特征封装"""
feature_columns = [SparseFeat('user_id', max(samples_data["user_id"])+1, embedding_dim=8),
SparseFeat('gender', max(samples_data["gender"])+1, embedding_dim=8),
SparseFeat('age', max(samples_data["age"])+1, embedding_dim=8),
SparseFeat('movie_id', max(samples_data["movie_id"])+1, embedding_dim=8),
SparseFeat('movie_type_id', max(samples_data["movie_type_id"])+1, embedding_dim=8),
DenseFeat('hist_len', 1)]
feature_columns += [VarLenSparseFeat('hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
feature_columns += [VarLenSparseFeat('neg_hist_movie_id', vocabulary_size=max(samples_data["movie_id"])+1, embedding_dim=8, maxlen=50)]
# 行为特征列表,表示的是基础特征
behavior_feature_list = ['movie_id']
# 行为序列特征
behavior_seq_feature_list = ['hist_movie_id']
# 负采样序列特征
neg_seq_feature_list = ['neg_hist_movie_id']
"""构建DIN模型"""
history = DIEN(feature_columns, behavior_feature_list, behavior_seq_feature_list, neg_seq_feature_list, use_neg_sample=True)
keras.utils.plot_model(history, to_file="./imgs/DIEN.png", show_shapes=True)
if __name__ == '__main__':
# plot_deepcrossing()
# plot_deepfm()
# plot_nfm()
# plot_widendeep()
# plot_din()
# plot_ncf()
# plot_afm()
# plot_dcn()
# plot_pnn()
plot_dien()
-72
View File
@@ -1,72 +0,0 @@
"""
Reference:
[1] Caruana R. Multitask learning[J]. Machine learning, 1997.(http://reports-archive.adm.cs.cmu.edu/anon/1997/CMU-CS-97-203.pdf)
"""
import tensorflow as tf
from deepctr.feature_column import build_input_features, input_from_feature_columns
from deepctr.layers.core import PredictionLayer, DNN
from deepctr.layers.utils import combined_dnn_input
def Shared_Bottom(dnn_feature_columns, num_tasks=None, task_types=None, task_names=None,
bottom_dnn_units=[128, 128], tower_dnn_units_lists=[[64,32], [64,32]],
l2_reg_embedding=0.00001, l2_reg_dnn=0, seed=1024, dnn_dropout=0,dnn_activation='relu', dnn_use_bn=False):
"""Instantiates the Shared_Bottom multi-task learning Network architecture.
:param dnn_feature_columns: An iterable containing all the features used by deep part of the model.
:param num_tasks: integer, number of tasks, equal to number of outputs, must be greater than 1.
:param task_types: list of str, indicating the loss of each tasks, ``"binary"`` for binary logloss or ``"regression"`` for regression loss. e.g. ['binary', 'regression']
:param task_names: list of str, indicating the predict target of each tasks
:param bottom_dnn_units: list,list of positive integer or empty list, the layer number and units in each layer of shared-bottom DNN
:param tower_dnn_units_lists: list, list of positive integer list, its length must be euqal to num_tasks, the layer number and units in each layer of task-specific DNN
:param l2_reg_embedding: float. L2 regularizer strength applied to embedding vector
:param l2_reg_dnn: float. L2 regularizer strength applied to DNN
:param seed: integer ,to use as random seed.
:param dnn_dropout: float in [0,1), the probability we will drop out a given DNN coordinate.
:param dnn_activation: Activation function to use in DNN
:param dnn_use_bn: bool. Whether use BatchNormalization before activation or not in DNN
:return: A Keras model instance.
"""
if num_tasks <= 1:
raise ValueError("num_tasks must be greater than 1")
if len(task_types) != num_tasks:
raise ValueError("num_tasks must be equal to the length of task_types")
for task_type in task_types:
if task_type not in ['binary', 'regression']:
raise ValueError("task must be binary or regression, {} is illegal".format(task_type))
if num_tasks != len(tower_dnn_units_lists):
raise ValueError("the length of tower_dnn_units_lists must be euqal to num_tasks")
features = build_input_features(dnn_feature_columns)
inputs_list = list(features.values())
sparse_embedding_list, dense_value_list = input_from_feature_columns(features, dnn_feature_columns, l2_reg_embedding,seed)
dnn_input = combined_dnn_input(sparse_embedding_list, dense_value_list)
shared_bottom_output = DNN(bottom_dnn_units, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed)(dnn_input)
tasks_output = []
for task_type, task_name, tower_dnn in zip(task_types, task_names, tower_dnn_units_lists):
tower_output = DNN(tower_dnn, dnn_activation, l2_reg_dnn, dnn_dropout, dnn_use_bn, seed=seed, name='tower_'+task_name)(shared_bottom_output)
logit = tf.keras.layers.Dense(1, use_bias=False, activation=None)(tower_output)
output = PredictionLayer(task_type, name=task_name)(logit) #regression->keep, binary classification->sigmoid
tasks_output.append(output)
model = tf.keras.models.Model(inputs=inputs_list, outputs=tasks_output)
return model
if __name__ == "__main__":
from utils import get_mtl_data
dnn_feature_columns, train_model_input, test_model_input, y_list = get_mtl_data()
model = Shared_Bottom(dnn_feature_columns, num_tasks=2, task_types= ['binary', 'binary'],
task_names=['label_income','label_marital'], bottom_dnn_units=[16],
tower_dnn_units_lists=[[8],[8]])
model.compile("adam", loss=["binary_crossentropy", "binary_crossentropy"], metrics=['AUC'])
history = model.fit(train_model_input, y_list, batch_size=256, epochs=5, verbose=2, validation_split=0.0 )
-187
View File
@@ -1,187 +0,0 @@
import pandas as pd
import numpy as np
import warnings
import random, math, os
from tqdm import tqdm
from sklearn.model_selection import train_test_split
warnings.filterwarnings('ignore')
# 评价指标
# 推荐系统推荐正确的商品数量占用户实际点击的商品数量
def Recall(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rel_set)
return round(hit_items / all_items * 100, 2)
# 推荐系统推荐正确的商品数量占给用户实际推荐的商品数
def Precision(Rec_dict, Val_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Val_dict: 用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
hit_items = 0
all_items = 0
for uid, items in Val_dict.items():
rel_set = items
rec_set = Rec_dict[uid]
for item in rec_set:
if item in rel_set:
hit_items += 1
all_items += len(rec_set)
return round(hit_items / all_items * 100, 2)
# 所有被推荐的用户中,推荐的商品数量占这些用户实际被点击的商品数量
def Coverage(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
rec_items = set()
all_items = set()
for uid in Rec_dict:
for item in Trn_dict[uid]:
all_items.add(item)
for item in Rec_dict[uid]:
rec_items.add(item)
return round(len(rec_items) / len(all_items) * 100, 2)
# 使用平均流行度度量新颖度,如果平均流行度很高(即推荐的商品比较热门),说明推荐的新颖度比较低
def Popularity(Rec_dict, Trn_dict):
'''
Rec_dict: 推荐算法返回的推荐列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
Trn_dict: 训练集用户实际点击的商品列表, 形式:{uid: {item1, item2,...}, uid: {item1, item2,...}, ...}
'''
pop_items = {}
for uid in Trn_dict:
for item in Trn_dict[uid]:
if item not in pop_items:
pop_items[item] = 0
pop_items[item] += 1
pop, num = 0, 0
for uid in Rec_dict:
for item in Rec_dict[uid]:
pop += math.log(pop_items[item] + 1) # 物品流行度分布满足长尾分布,取对数可以使得平均值更稳定
num += 1
return round(pop / num, 3)
# 将几个评价指标指标函数一起调用
def rec_eval(val_rec_items, val_user_items, trn_user_items):
print('recall:',Recall(val_rec_items, val_user_items))
print('precision',Precision(val_rec_items, val_user_items))
print('coverage',Coverage(val_rec_items, trn_user_items))
print('Popularity',Popularity(val_rec_items, trn_user_items))
def get_data(root_path):
# 读取数据
rnames = ['user_id','movie_id','rating','timestamp']
ratings = pd.read_csv(os.path.join(root_path, 'ratings.dat'), sep='::', engine='python', names=rnames)
# 分割训练和验证集
trn_data, val_data, _, _ = train_test_split(ratings, ratings, test_size=0.2)
trn_data = trn_data.groupby('user_id')['movie_id'].apply(list).reset_index()
val_data = val_data.groupby('user_id')['movie_id'].apply(list).reset_index()
trn_user_items = {}
val_user_items = {}
# 将数组构造成字典的形式{user_id: [item_id1, item_id2,...,item_idn]}
for user, movies in zip(*(list(trn_data['user_id']), list(trn_data['movie_id']))):
trn_user_items[user] = set(movies)
for user, movies in zip(*(list(val_data['user_id']), list(val_data['movie_id']))):
val_user_items[user] = set(movies)
return trn_user_items, val_user_items
def User_CF_Rec(trn_user_items, val_user_items, K, N):
'''
trn_user_items: 表示训练数据,格式为:{user_id1: [item_id1, item_id2,...,item_idn], user_id2...}
val_user_items: 表示验证数据,格式为:{user_id1: [item_id1, item_id2,...,item_idn], user_id2...}
K: K表示的是相似用户的数量,每个用户都选择与其最相似的K个用户
N: N表示的是给用户推荐的商品数量,给每个用户推荐相似度最大的N个商品
'''
# 建立item->users倒排表
# 倒排表的格式为: {item_id1: {user_id1, user_id2, ... , user_idn}, item_id2: ...} 也就是每个item对应有那些用户有过点击
# 建立倒排表的目的就是为了更好的统计用户之间共同交互的商品数量
print('建立倒排表...')
item_users = {}
for uid, items in tqdm(trn_user_items.items()): # 遍历每一个用户的数据,其中包含了该用户所有交互的item
for item in items: # 遍历该用户的所有item, 给这些item对应的用户列表添加对应的uid
if item not in item_users:
item_users[item] = set()
item_users[item].add(uid)
# 计算用户协同过滤矩阵
# 即利用item-users倒排表统计用户之间交互的商品数量,用户协同过滤矩阵的表示形式为:sim = {user_id1: {user_id2: num1}, user_id3:{user_id4: num2}, ...}
# 协同过滤矩阵是一个双层的字典,用来表示用户之间共同交互的商品数量
# 在计算用户协同过滤矩阵的同时还需要记录每个用户所交互的商品数量,其表示形式为: num = {user_id1num1, user_id2:num2, ...}
sim = {}
num = {}
print('构建协同过滤矩阵...')
for item, users in tqdm(item_users.items()): # 遍历所有的item去统计,用户两辆之间共同交互的item数量
for u in users:
if u not in num: # 如果用户u不在字典num中,提前给其在字典中初始化为0,否则后面的运算会报key error
num[u] = 0
num[u] += 1 # 统计每一个用户,交互的总的item的数量
if u not in sim: # 如果用户u不在字典sim中,提前给其在字典中初始化为一个新的字典,否则后面的运算会报key error
sim[u] = {}
for v in users:
if u != v: # 只有当u不等于v的时候才计算用户之间的相似度 
if v not in sim[u]:
sim[u][v] = 0
sim[u][v] += 1
# 计算用户相似度矩阵
# 用户协同过滤矩阵其实相当于是余弦相似度的分子部分,还需要除以分母,即两个用户分别交互的item数量的乘积
# 两个用户分别交互的item数量的乘积就是上面统计的num字典
print('计算相似度...')
for u, users in tqdm(sim.items()):
for v, score in users.items():
sim[u][v] = score / math.sqrt(num[u] * num[v]) # 余弦相似度分母部分
# 对验证数据中的每个用户进行TopN推荐
# 在对用户进行推荐之前需要先通过相似度矩阵得到与当前用户最相思的前K个用户,
# 然后对这K个用户交互的商品中除当前测试用户训练集中交互过的商品以外的商品计算最终的相似度分数
# 最终推荐的候选商品的相似度分数是由多个用户对该商品分数的一个累加和
print('给测试用户进行推荐...')
items_rank = {}
for u, _ in tqdm(val_user_items.items()): # 遍历测试集用户,给测试集中的每个用户进行推荐
items_rank[u] = {} # 初始化用户u的候选item的字典
for v, score in sorted(sim[u].items(), key=lambda x: x[1], reverse=True)[:K]: # 选择与用户u最相思的k个用户
for item in trn_user_items[v]: # 遍历相似用户之间交互过的商品
if item not in trn_user_items[u]: # 如果相似用户交互过的商品,测试用户在训练集中出现过,就不用进行推荐,直接跳过
if item not in items_rank[u]:
items_rank[u][item] = 0 # 初始化用户u对item的相似度分数为0
items_rank[u][item] += score # 累加所有相似用户对同一个item的分数
print('为每个用户筛选出相似度分数最高的N个商品...')
items_rank = {k: sorted(v.items(), key=lambda x: x[1], reverse=True)[:N] for k, v in items_rank.items()}
items_rank = {k: set([x[0] for x in v]) for k, v in items_rank.items()} # 将输出整合成合适的格式输出
return items_rank
if __name__ == "__main__":
root_path = './data/ml-1m/'
trn_user_items, val_user_items = get_data(root_path)
rec_items = User_CF_Rec(trn_user_items, val_user_items, 80, 10)
rec_eval(rec_items, val_user_items, trn_user_items)
-194
View File
@@ -1,194 +0,0 @@
import warnings
warnings.filterwarnings("ignore")
import itertools
import pandas as pd
import numpy as np
from tqdm import tqdm
from collections import namedtuple
import tensorflow as tf
from tensorflow.keras.layers import *
from tensorflow.keras.models import *
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler, LabelEncoder
from utils import SparseFeat, DenseFeat, VarLenSparseFeat
# 简单处理特征,包括填充缺失值,数值处理,类别编码
def data_process(data_df, dense_features, sparse_features):
data_df[dense_features] = data_df[dense_features].fillna(0.0)
for f in dense_features:
data_df[f] = data_df[f].apply(lambda x: np.log(x+1) if x > -1 else -1)
data_df[sparse_features] = data_df[sparse_features].fillna("-1")
for f in sparse_features:
lbe = LabelEncoder()
data_df[f] = lbe.fit_transform(data_df[f])
return data_df[dense_features + sparse_features]
def build_input_layers(feature_columns):
# 构建Input层字典,并以dense和sparse两类字典的形式返回
dense_input_dict, sparse_input_dict = {}, {}
for fc in feature_columns:
if isinstance(fc, SparseFeat):
sparse_input_dict[fc.name] = Input(shape=(1, ), name=fc.name)
elif isinstance(fc, DenseFeat):
dense_input_dict[fc.name] = Input(shape=(fc.dimension, ), name=fc.name)
return dense_input_dict, sparse_input_dict
def build_embedding_layers(feature_columns, input_layers_dict, is_linear):
# 定义一个embedding层对应的字典
embedding_layers_dict = dict()
# 将特征中的sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns)) if feature_columns else []
# 如果是用于线性部分的embedding层,其维度为1,否则维度就是自己定义的embedding维度
if is_linear:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, 1, name='1d_emb_' + fc.name)
else:
for fc in sparse_feature_columns:
embedding_layers_dict[fc.name] = Embedding(fc.vocabulary_size, fc.embedding_dim, name='kd_emb_' + fc.name)
return embedding_layers_dict
def get_linear_logits(dense_input_dict, sparse_input_dict, sparse_feature_columns):
# 将所有的dense特征的Input层,然后经过一个全连接层得到dense特征的logits
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values()))
dense_logits_output = Dense(1)(concat_dense_inputs)
# 获取linear部分sparse特征的embedding层,这里使用embedding的原因是:
# 对于linear部分直接将特征进行onehot然后通过一个全连接层,当维度特别大的时候,计算比较慢
# 使用embedding层的好处就是可以通过查表的方式获取到哪些非零的元素对应的权重,然后在将这些权重相加,效率比较高
linear_embedding_layers = build_embedding_layers(sparse_feature_columns, sparse_input_dict, is_linear=True)
# 将一维的embedding拼接,注意这里需要使用一个Flatten层,使维度对应
sparse_1d_embed = []
for fc in sparse_feature_columns:
feat_input = sparse_input_dict[fc.name]
embed = Flatten()(linear_embedding_layers[fc.name](feat_input)) # B x 1
sparse_1d_embed.append(embed)
# embedding中查询得到的权重就是对应onehot向量中一个位置的权重,所以后面不用再接一个全连接了,本身一维的embedding就相当于全连接
# 只不过是这里的输入特征只有0和1,所以直接向非零元素对应的权重相加就等同于进行了全连接操作(非零元素部分乘的是1)
sparse_logits_output = Add()(sparse_1d_embed)
# 最终将dense特征和sparse特征对应的logits相加,得到最终linear的logits
linear_logits = Add()([dense_logits_output, sparse_logits_output])
return linear_logits
# 将所有的sparse特征embedding拼接
def concat_embedding_list(feature_columns, input_layer_dict, embedding_layer_dict, flatten=False):
# 将sparse特征筛选出来
sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), feature_columns))
embedding_list = []
for fc in sparse_feature_columns:
_input = input_layer_dict[fc.name] # 获取输入层
_embed = embedding_layer_dict[fc.name] # B x 1 x dim 获取对应的embedding层
embed = _embed(_input) # B x dim 将input层输入到embedding层中
# 是否需要flatten, 如果embedding列表最终是直接输入到Dense层中,需要进行Flatten,否则不需要
if flatten:
embed = Flatten()(embed)
embedding_list.append(embed)
return embedding_list
def get_dnn_logits(dense_input_dict, sparse_input_dict, sparse_feature_columns, dnn_embedding_layers):
concat_dense_inputs = Concatenate(axis=1)(list(dense_input_dict.values())) # B x n1 (n表示的是dense特征的维度)
sparse_kd_embed = concat_embedding_list(sparse_feature_columns, sparse_input_dict, dnn_embedding_layers, flatten=True)
concat_sparse_kd_embed = Concatenate(axis=1)(sparse_kd_embed) # B x n2k (n2表示的是Sparse特征的维度)
dnn_input = Concatenate(axis=1)([concat_dense_inputs, concat_sparse_kd_embed]) # B x (n2k + n1)
# dnn层,这里的Dropout参数,Dense中的参数及Dense的层数都可以自己设定
dnn_out = Dropout(0.5)(Dense(1024, activation='relu')(dnn_input))
dnn_out = Dropout(0.3)(Dense(512, activation='relu')(dnn_out))
dnn_out = Dropout(0.1)(Dense(256, activation='relu')(dnn_out))
dnn_logits = Dense(1)(dnn_out)
return dnn_logits
# Wide&Deep 模型的wide部分及Deep部分的特征选择,应该根据实际的业务场景去确定哪些特征应该放在Wide部分,哪些特征应该放在Deep部分
def WideNDeep(linear_feature_columns, dnn_feature_columns):
# 构建输入层,即所有特征对应的Input()层,这里使用字典的形式返回,方便后续构建模型
dense_input_dict, sparse_input_dict = build_input_layers(linear_feature_columns + dnn_feature_columns)
# 将linear部分的特征中sparse特征筛选出来,后面用来做1维的embedding
linear_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), linear_feature_columns))
# 构建模型的输入层,模型的输入层不能是字典的形式,应该将字典的形式转换成列表的形式
# 注意:这里实际的输入与Input()层的对应,是通过模型输入时候的字典数据的key与对应name的Input层
input_layers = list(dense_input_dict.values()) + list(sparse_input_dict.values())
# Wide&Deep模型论文中Wide部分使用的特征比较简单,并且得到的特征非常的稀疏,所以使用了FTRL优化Wide部分(这里没有实现FTRL)
# 但是是根据他们业务进行选择的,我们这里将所有可能用到的特征都输入到Wide部分,具体的细节可以根据需求进行修改
linear_logits = get_linear_logits(dense_input_dict, sparse_input_dict, linear_sparse_feature_columns)
# 构建维度为k的embedding层,这里使用字典的形式返回,方便后面搭建模型
embedding_layers = build_embedding_layers(dnn_feature_columns, sparse_input_dict, is_linear=False)
dnn_sparse_feature_columns = list(filter(lambda x: isinstance(x, SparseFeat), dnn_feature_columns))
# 在Wide&Deep模型中,deep部分的输入是将dense特征和embedding特征拼在一起输入到dnn中
dnn_logits = get_dnn_logits(dense_input_dict, sparse_input_dict, dnn_sparse_feature_columns, embedding_layers)
# 将linear,dnn的logits相加作为最终的logits
output_logits = Add()([linear_logits, dnn_logits])
# 这里的激活函数使用sigmoid
output_layer = Activation("sigmoid")(output_logits)
model = Model(input_layers, output_layer)
return model
if __name__ == "__main__":
# 读取数据
data = pd.read_csv('./data/criteo_sample.txt')
# 划分dense和sparse特征
columns = data.columns.values
dense_features = [feat for feat in columns if 'I' in feat]
sparse_features = [feat for feat in columns if 'C' in feat]
# 简单的数据预处理
train_data = data_process(data, dense_features, sparse_features)
train_data['label'] = data['label']
# 将特征分组,分成linear部分和dnn部分(根据实际场景进行选择),并将分组之后的特征做标记(使用DenseFeat, SparseFeat
linear_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
dnn_feature_columns = [SparseFeat(feat, vocabulary_size=data[feat].nunique(),embedding_dim=4)
for i,feat in enumerate(sparse_features)] + [DenseFeat(feat, 1,)
for feat in dense_features]
# 构建WideNDeep模型
history = WideNDeep(linear_feature_columns, dnn_feature_columns)
history.summary()
history.compile(optimizer="adam",
loss="binary_crossentropy",
metrics=["binary_crossentropy", tf.keras.metrics.AUC(name='auc')])
# 将输入数据转化成字典的形式输入
train_model_input = {name: data[name] for name in dense_features + sparse_features}
# 模型训练
history.fit(train_model_input, train_data['label'].values,
batch_size=64, epochs=5, validation_split=0.2, )
Binary file not shown.
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
-1153
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-378
View File
@@ -1,378 +0,0 @@
from tensorflow.python.ops import array_ops
from tensorflow.python.ops import init_ops
from tensorflow.python.ops import math_ops
from tensorflow.python.ops import nn_ops
from tensorflow.python.ops import variable_scope as vs
from tensorflow.python.ops.rnn_cell import *
from tensorflow.python.util import nest
_BIAS_VARIABLE_NAME = "bias"
_WEIGHTS_VARIABLE_NAME = "kernel"
class _Linear_(object):
"""Linear map: sum_i(args[i] * W[i]), where W[i] is a variable.
Args:
args: a 2D Tensor or a list of 2D, batch x n, Tensors.
output_size: int, second dimension of weight variable.
dtype: data type for variables.
build_bias: boolean, whether to build a bias variable.
bias_initializer: starting value to initialize the bias
(default is all zeros).
kernel_initializer: starting value to initialize the weight.
Raises:
ValueError: if inputs_shape is wrong.
"""
def __init__(self,
args,
output_size,
build_bias,
bias_initializer=None,
kernel_initializer=None):
self._build_bias = build_bias
if args is None or (nest.is_sequence(args) and not args):
raise ValueError("`args` must be specified")
if not nest.is_sequence(args):
args = [args]
self._is_sequence = False
else:
self._is_sequence = True
# Calculate the total size of arguments on dimension 1.
total_arg_size = 0
shapes = [a.get_shape() for a in args]
for shape in shapes:
if shape.ndims != 2:
raise ValueError(
"linear is expecting 2D arguments: %s" % shapes)
if shape[1] is None:
raise ValueError("linear expects shape[1] to be provided for shape %s, "
"but saw %s" % (shape, shape[1]))
else:
total_arg_size += int(shape[1])#.value
dtype = [a.dtype for a in args][0]
scope = vs.get_variable_scope()
with vs.variable_scope(scope) as outer_scope:
self._weights = vs.get_variable(
_WEIGHTS_VARIABLE_NAME, [total_arg_size, output_size],
dtype=dtype,
initializer=kernel_initializer)
if build_bias:
with vs.variable_scope(outer_scope) as inner_scope:
inner_scope.set_partitioner(None)
if bias_initializer is None:
bias_initializer = init_ops.constant_initializer(
0.0, dtype=dtype)
self._biases = vs.get_variable(
_BIAS_VARIABLE_NAME, [output_size],
dtype=dtype,
initializer=bias_initializer)
def __call__(self, args):
if not self._is_sequence:
args = [args]
if len(args) == 1:
res = math_ops.matmul(args[0], self._weights)
else:
res = math_ops.matmul(array_ops.concat(args, 1), self._weights)
if self._build_bias:
res = nn_ops.bias_add(res, self._biases)
return res
try:
from tensorflow.python.ops.rnn_cell_impl import _Linear
except:
_Linear = _Linear_
class QAAttGRUCell(RNNCell):
"""Gated Recurrent Unit cell (cf. http://arxiv.org/abs/1406.1078).
Args:
num_units: int, The number of units in the GRU cell.
activation: Nonlinearity to use. Default: `tanh`.
reuse: (optional) Python boolean describing whether to reuse variables
in an existing scope. If not `True`, and the existing scope already has
the given variables, an error is raised.
kernel_initializer: (optional) The initializer to use for the weight and
projection matrices.
bias_initializer: (optional) The initializer to use for the bias.
"""
def __init__(self,
num_units,
activation=None,
reuse=None,
kernel_initializer=None,
bias_initializer=None):
super(QAAttGRUCell, self).__init__(_reuse=reuse)
self._num_units = num_units
self._activation = activation or math_ops.tanh
self._kernel_initializer = kernel_initializer
self._bias_initializer = bias_initializer
self._gate_linear = None
self._candidate_linear = None
@property
def state_size(self):
return self._num_units
@property
def output_size(self):
return self._num_units
def __call__(self, inputs, state, att_score):
return self.call(inputs, state, att_score)
def call(self, inputs, state, att_score=None):
"""Gated recurrent unit (GRU) with nunits cells."""
if self._gate_linear is None:
bias_ones = self._bias_initializer
if self._bias_initializer is None:
bias_ones = init_ops.constant_initializer(
1.0, dtype=inputs.dtype)
with vs.variable_scope("gates"): # Reset gate and update gate.
self._gate_linear = _Linear(
[inputs, state],
2 * self._num_units,
True,
bias_initializer=bias_ones,
kernel_initializer=self._kernel_initializer)
value = math_ops.sigmoid(self._gate_linear([inputs, state]))
r, u = array_ops.split(value=value, num_or_size_splits=2, axis=1)
r_state = r * state
if self._candidate_linear is None:
with vs.variable_scope("candidate"):
self._candidate_linear = _Linear(
[inputs, r_state],
self._num_units,
True,
bias_initializer=self._bias_initializer,
kernel_initializer=self._kernel_initializer)
c = self._activation(self._candidate_linear([inputs, r_state]))
new_h = (1. - att_score) * state + att_score * c
return new_h, new_h
class VecAttGRUCell(RNNCell):
"""Gated Recurrent Unit cell (cf. http://arxiv.org/abs/1406.1078).
Args:
num_units: int, The number of units in the GRU cell.
activation: Nonlinearity to use. Default: `tanh`.
reuse: (optional) Python boolean describing whether to reuse variables
in an existing scope. If not `True`, and the existing scope already has
the given variables, an error is raised.
kernel_initializer: (optional) The initializer to use for the weight and
projection matrices.
bias_initializer: (optional) The initializer to use for the bias.
"""
def __init__(self,
num_units,
activation=None,
reuse=None,
kernel_initializer=None,
bias_initializer=None):
super(VecAttGRUCell, self).__init__(_reuse=reuse)
self._num_units = num_units
self._activation = activation or math_ops.tanh
self._kernel_initializer = kernel_initializer
self._bias_initializer = bias_initializer
self._gate_linear = None
self._candidate_linear = None
@property
def state_size(self):
return self._num_units
@property
def output_size(self):
return self._num_units
def __call__(self, inputs, state, att_score):
return self.call(inputs, state, att_score)
def call(self, inputs, state, att_score=None):
"""Gated recurrent unit (GRU) with nunits cells."""
if self._gate_linear is None:
bias_ones = self._bias_initializer
if self._bias_initializer is None:
bias_ones = init_ops.constant_initializer(
1.0, dtype=inputs.dtype)
with vs.variable_scope("gates"): # Reset gate and update gate.
self._gate_linear = _Linear(
[inputs, state],
2 * self._num_units,
True,
bias_initializer=bias_ones,
kernel_initializer=self._kernel_initializer)
value = math_ops.sigmoid(self._gate_linear([inputs, state]))
r, u = array_ops.split(value=value, num_or_size_splits=2, axis=1)
r_state = r * state
if self._candidate_linear is None:
with vs.variable_scope("candidate"):
self._candidate_linear = _Linear(
[inputs, r_state],
self._num_units,
True,
bias_initializer=self._bias_initializer,
kernel_initializer=self._kernel_initializer)
c = self._activation(self._candidate_linear([inputs, r_state]))
u = (1.0 - att_score) * u
new_h = u * state + (1 - u) * c
return new_h, new_h
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-101
View File
@@ -1,101 +0,0 @@
id,click,hour,C1,banner_pos,site_id,site_domain,site_category,app_id,app_domain,app_category,device_id,device_ip,device_model,device_type,device_conn_type,C14,C15,C16,C17,C18,C19,C20,C21
1000009418151094273,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,ddd2926e,44956a24,1,2,15706,320,50,1722,0,35,-1,79
10000169349117863715,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,96809ac8,711ee120,1,0,15704,320,50,1722,0,35,100084,79
10000371904215119486,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,b3cf8def,8a4875bd,1,0,15704,320,50,1722,0,35,100084,79
10000640724480838376,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,e8275b8f,6332421a,1,0,15706,320,50,1722,0,35,100084,79
10000679056417042096,0,14102100,1005,1,fe8cc448,9166c161,0569f928,ecad2386,7801e8d9,07d7df22,a99f214a,9644d0bf,779d90c2,1,0,18993,320,50,2161,0,35,-1,157
10000720757801103869,0,14102100,1005,0,d6137915,bb1ef334,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,05241af0,8a4875bd,1,0,16920,320,50,1899,0,431,100077,117
10000724729988544911,0,14102100,1005,0,8fda644b,25d4cfcd,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,b264c159,be6db1d7,1,0,20362,320,50,2333,0,39,-1,157
10000918755742328737,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,e6f67278,be74e6fe,1,0,20632,320,50,2374,3,39,-1,23
10000949271186029916,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,37e8da74,5db079b5,1,2,15707,320,50,1722,0,35,-1,79
10001264480619467364,0,14102100,1002,0,84c7ba46,c4e18dd6,50e219e0,ecad2386,7801e8d9,07d7df22,c357dbff,f1ac7184,373ecbe6,0,0,21689,320,50,2496,3,167,100191,23
10001868339616595934,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,5d877109,8f5c9827,1,0,17747,320,50,1974,2,39,100019,33
10001966791793526909,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,6f407810,1f0bc64f,1,0,15701,320,50,1722,0,35,-1,79
10002028568167339219,0,14102100,1005,0,9e8cf15d,0d3cb7be,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,58811cdf,8326c04b,1,2,20596,320,50,2161,0,35,100148,157
10002044883120869786,0,14102100,1005,0,d6137915,bb1ef334,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,72aab6df,04258293,1,0,19771,320,50,2227,0,687,100077,48
10002518649031436658,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,98fed791,d9b5648e,0f2161f8,a99f214a,6dec2796,aad45b01,1,0,20984,320,50,2371,0,551,-1,46
10003539039235338011,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,a4f47b2e,8a4875bd,1,0,15699,320,50,1722,0,35,100084,79
10003585669470236873,0,14102100,1005,0,d9750ee7,98572c79,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,9b1fe278,128f4ba1,1,0,17914,320,50,2043,2,39,-1,32
10004105575081229495,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,c26c53cf,be87996b,1,2,15708,320,50,1722,0,35,100084,79
10004181428767727519,0,14102100,1005,1,0c2fe9d6,27e3c518,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,b7a69808,158e4944,1,0,6558,320,50,571,2,39,-1,32
10004482643316086592,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,66a5f0f3,d9b5648e,cef3e649,a99f214a,fa60af6b,b4b19c97,1,0,21234,320,50,2434,3,163,100088,61
10004510652136496837,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,8a308c73,3223bcfe,1,0,20352,320,50,2333,0,39,-1,157
10004574413841529209,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,1b6530bc,1aa0e912,1,0,15706,320,50,1722,0,35,-1,79
10004670021948955159,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,a2d12b33,607e78f2,1,0,20366,320,50,2333,0,39,-1,157
10004765361151096125,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,c6563308,7fdd04d2,1,0,15701,320,50,1722,0,35,-1,79
10005249248600843539,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,e99d0c2e,d25693ce,1,0,15706,320,50,1722,0,35,100083,79
10005334911727438633,0,14102100,1010,1,85f751fd,c4e18dd6,50e219e0,ffc6ffd0,7801e8d9,0f2161f8,fb23c543,69890c7f,9fef9da8,4,0,21665,320,50,2493,3,35,-1,117
10005541670676403131,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,c62f7206,69f9dd0e,1,0,20984,320,50,2371,0,551,100217,46
10005609489911213467,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,54c5d545,2347f47a,0f2161f8,9af87478,2a2bfc89,ecf10acf,1,0,21611,320,50,2480,3,297,100111,61
10005649443863261125,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,50d86760,d787e91b,1,0,20366,320,50,2333,0,39,-1,157
10005951398749600249,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,431b3174,f39b265e,1,0,15706,320,50,1722,0,35,-1,79
10006192453619779489,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,685d1c4c,2347f47a,8ded1f7a,6a943594,8a014cbb,81b42528,1,3,15708,320,50,1722,0,35,-1,79
10006415976094813740,0,14102100,1005,0,f84e52b6,d7e2f29b,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,a8649089,e9b8d8d7,1,0,16838,320,50,1882,3,35,-1,13
10006490708516192015,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,a4459495,517bef98,1,0,15708,320,50,1722,0,35,100083,79
10006557235872316145,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,ac77b71a,d787e91b,1,0,15699,320,50,1722,0,35,-1,79
10006629065800243858,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,6769bdb2,d787e91b,1,0,20362,320,50,2333,0,39,-1,157
10006777279679619273,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,d2bb6502,2347f47a,8ded1f7a,4b2309e9,22c2dcf4,d6e0e6ff,1,3,18987,320,50,2158,3,291,100193,61
10006789981076459409,0,14102100,1005,0,030440fe,08ba7db9,76b2941d,ecad2386,7801e8d9,07d7df22,a99f214a,692824c7,293291c1,1,0,20596,320,50,2161,0,35,-1,157
10006958186789044052,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,0acbeaa3,45a51db4,f95efa07,a99f214a,ce6e6bbd,2cd8ff6d,1,0,18993,320,50,2161,0,35,100034,157
10007163879183388340,0,14102100,1005,0,030440fe,08ba7db9,76b2941d,ecad2386,7801e8d9,07d7df22,a99f214a,5035aded,3db9fde9,1,0,18993,320,50,2161,0,35,-1,157
10007164336863914220,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,b2b14786,36d749e5,1,0,15706,320,50,1722,0,35,-1,79
10007197383452514432,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,07f39509,49ea3580,1,0,15704,320,50,1722,0,35,100084,79
10007446479189647526,0,14102100,1005,0,6ec06dbd,d262cf1e,f66779e6,ecad2386,7801e8d9,07d7df22,a99f214a,3aea6370,6360f9ec,1,0,19870,320,50,2271,0,687,100075,48
10007768440836622373,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,e2a1ca37,2347f47a,8ded1f7a,432cd280,45919d0d,1ccc7835,1,0,15708,320,50,1722,0,35,-1,79
10007830732992705885,0,14102100,1010,1,85f751fd,c4e18dd6,50e219e0,a607e6a7,7801e8d9,0f2161f8,890abcbb,9f02f646,e8c7729d,4,0,21665,320,50,2493,3,35,-1,117
10007847530896919634,1,14102100,1002,0,84c7ba46,c4e18dd6,50e219e0,ecad2386,7801e8d9,07d7df22,767a174e,3e805b2a,cf19f7f7,0,0,21661,320,50,2446,3,171,100228,156
10007908698866493310,0,14102100,1005,1,0eb72673,d2f72222,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,834f84b2,76dc4769,1,0,16208,320,50,1800,3,167,100075,23
10007944429976961145,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,07875ea4,aaffed8f,1,0,15701,320,50,1722,0,35,-1,79
10009147085943364421,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,905d2fbc,1b13b020,1,0,17037,320,50,1934,2,39,-1,16
10009190848778773294,0,14102100,1005,1,5ee41ff2,17d996e6,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,fc7f99ee,70359270,1,0,16920,320,50,1899,0,431,-1,117
10009635774586344851,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,37018b2d,24f6b932,1,0,20352,320,50,2333,0,39,-1,157
10009699694430474960,1,14102100,1005,0,4dd0a958,79cf0c8d,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,f6a5ae09,88fe1d5d,1,0,20366,320,50,2333,0,39,-1,157
10009807995169380879,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,396df801,2347f47a,0f2161f8,a99f214a,554d9f5f,36a30aeb,1,0,15705,320,50,1722,0,35,100084,79
10009910814812262951,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,a079ef6b,2347f47a,75d80bbe,a99f214a,f8c8df20,be87996b,1,2,18993,320,50,2161,0,35,100131,157
10010452321736390000,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,cede6db1,a0f5f879,1,0,15701,320,50,1722,0,35,100084,79
10010485868773711631,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,1cb5985e,1ccc7835,1,0,15701,320,50,1722,0,35,100084,79
10010504760200486071,0,14102100,1005,1,5ee41ff2,17d996e6,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,d012a1cb,ecb851b2,1,0,16615,320,50,1863,3,39,100188,23
10010730108771379386,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,08dd2eb8,cdf6ea96,1,0,20634,320,50,2374,3,39,-1,23
10010804179216291475,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,9a5911ad,1ccc7835,1,0,15704,320,50,1722,0,35,-1,79
1001082718558099372,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,1779deee,2347f47a,f95efa07,a99f214a,5a96d22e,9e3836ff,1,0,18993,320,50,2161,0,35,-1,157
10010924186026106882,0,14102100,1005,0,030440fe,08ba7db9,76b2941d,ecad2386,7801e8d9,07d7df22,a99f214a,8f6c30bb,744ae245,1,0,18993,320,50,2161,0,35,-1,157
10010966574628106108,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,0acbeaa3,45a51db4,f95efa07,a99f214a,061893d4,68b900d9,1,0,20596,320,50,2161,0,35,100034,157
10011085150831357375,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,07875ea4,d787e91b,1,0,15699,320,50,1722,0,35,-1,79
10011205200760015892,0,14102100,1005,0,6256f5b4,28f93029,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,04a1662e,521f95fe,1,0,17212,320,50,1887,3,39,100202,23
1001139595064240144,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,c9758700,76dc4769,1,0,15705,320,50,1722,0,35,-1,79
10011406079394798455,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,9ae68bb9,24f6b932,1,0,20362,320,50,2333,0,39,-1,157
1001156047808171144,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,2801fd97,575d0d2a,1,0,15708,320,50,1722,0,35,100084,79
10011561503992804801,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,931519c4,e9b8d8d7,1,0,17747,320,50,1974,2,39,100021,33
10011650513707909570,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,febd1138,82e27996,0f2161f8,a99f214a,1ce4451d,99e427c9,1,0,21611,320,50,2480,3,297,100111,61
10011658782619041235,1,14102100,1005,0,0aab7161,660aeadc,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,0086332e,1f0bc64f,1,0,15699,320,50,1722,0,35,-1,79
10011677979251422697,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,82310cab,f39b265e,1,0,15707,320,50,1722,0,35,-1,79
1001179289293608710,0,14102100,1005,1,e023ba3e,75f9ddc3,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,f7c9ee04,56f254f5,1,0,17914,320,50,2043,2,39,-1,32
10012212068904346443,0,14102100,1005,0,543a539e,c7ca3108,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,6769bdb2,d787e91b,1,0,20352,320,50,2333,0,39,-1,157
10012222478217629851,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,3738b922,d787e91b,1,0,15705,320,50,1722,0,35,100084,79
10012820175855462623,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,8acb1161,1f0bc64f,1,0,15707,320,50,1722,0,35,-1,79
10013076841337920650,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,ed326aa2,4ceb2e0b,1,0,15702,320,50,1722,0,35,-1,79
10013222055782902774,0,14102100,1005,0,5b08c53b,7687a86e,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,09b19f16,7eef184d,1,0,17654,300,250,1994,2,39,-1,33
10013330254346467994,0,14102100,1005,0,f5476ff8,00e1b9c0,3e814130,ecad2386,7801e8d9,07d7df22,a99f214a,da162469,8b1aa260,1,0,18993,320,50,2161,0,35,-1,157
10013378798301872145,1,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,40fb49ca,be74e6fe,1,0,20362,320,50,2333,0,39,-1,157
10013493678511778479,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,39947756,2347f47a,cef3e649,a2cbb1e0,d784a354,9f8d0424,1,2,18993,320,50,2161,0,35,-1,157
10013552540914034684,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,e2fcccd2,5c5a694b,0f2161f8,a99f214a,c21a1e56,89416188,1,0,4687,320,50,423,2,39,100148,32
10013750748974177308,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,8eb51743,a0f5f879,1,0,15703,320,50,1722,0,35,100083,79
1001378691598807810,0,14102100,1002,0,85f751fd,c4e18dd6,50e219e0,a37bf1e4,7801e8d9,07d7df22,1ab3feec,c45c8256,8debacdb,0,0,21691,320,50,2495,2,167,-1,23
10013840276980995258,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,e2fcccd2,5c5a694b,0f2161f8,a99f214a,07533d06,76dc4769,1,0,4687,320,50,423,2,39,100148,32
10013846047025246486,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,2e93a860,f39b265e,1,0,15702,320,50,1722,0,35,100083,79
10014026899633599058,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,9cdc12cc,711ee120,1,0,15699,320,50,1722,0,35,100084,79
10014063680973162331,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,665810f3,78d9bd10,1,0,15699,320,50,1722,0,35,100083,79
10014190212266331300,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,9c13b419,2347f47a,f95efa07,a99f214a,ed9450c2,1f0bc64f,1,0,20633,320,50,2374,3,39,-1,23
10014285064795240866,1,14102100,1002,0,84c7ba46,c4e18dd6,50e219e0,ecad2386,7801e8d9,07d7df22,c357dbff,06f76b24,373ecbe6,0,0,21682,320,50,2496,3,167,100191,23
10014385711019128754,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,12c3d700,ef726eae,1,0,15704,320,50,1722,0,35,-1,79
10014630626523032142,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,0345a137,3bd9e8e7,1,0,15702,320,50,1722,0,35,100083,79
10014764617325763141,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,4e873691,c6263d8a,1,0,15703,320,50,1722,0,35,-1,79
10014885175555340290,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,27f3fa06,d25693ce,1,0,15705,320,50,1722,0,35,100083,79
10014887683839786798,1,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,e2fcccd2,5c5a694b,0f2161f8,a99f214a,fac78767,84ebbcd4,1,0,4687,320,50,423,2,39,100148,32
10015140740686523448,0,14102100,1005,0,85f751fd,c4e18dd6,50e219e0,c51f82bc,d9b5648e,0f2161f8,a99f214a,2d227840,9b5ce758,1,0,21611,320,50,2480,3,297,100111,61
10015211672544614902,0,14102100,1005,1,e151e245,7e091613,f028772b,ecad2386,7801e8d9,07d7df22,a99f214a,42606fe6,cb0fb677,1,0,17037,320,50,1934,2,39,-1,16
10015376300289320595,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,03108db9,a0f5f879,1,0,15701,320,50,1722,0,35,100084,79
10015405794859644629,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,0b697be1,1f0bc64f,1,0,15701,320,50,1722,0,35,100084,79
10015629448289660116,1,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,58db4f0c,6332421a,1,0,15708,320,50,1722,0,35,-1,79
100156980486870304,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,02b9b0fc,1aa0e912,1,0,15706,320,50,1722,0,35,-1,79
10015745448500295401,0,14102100,1005,0,1fbe01fe,f3845767,28905ebd,ecad2386,7801e8d9,07d7df22,a99f214a,6b9769f2,4c8aeb60,1,0,15701,320,50,1722,0,35,-1,79
-201
View File
@@ -1,201 +0,0 @@
label,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26
0,,3,260.0,,17668.0,,,33.0,,,,0.0,,05db9164,08d6d899,9143c832,f56b7dd5,25c83c98,7e0ccccf,df5c2d18,0b153874,a73ee510,8f48ce11,a7b606c4,ae1bb660,eae197fd,b28479f6,bfef54b3,bad5ee18,e5ba7672,87c6f83c,,,0429f84b,,3a171ecb,c0d61a5c,,
0,,-1,19.0,35.0,30251.0,247.0,1.0,35.0,160.0,,1.0,,35.0,68fd1e64,04e09220,95e13fd4,a1e6a194,25c83c98,fe6b92e5,f819e175,062b5529,a73ee510,ab9456b4,6153cf57,8882c6cd,769a1844,b28479f6,69f825dd,23056e4f,d4bb7bd8,6fc84bfb,,,5155d8a3,,be7c41b4,ded4aac9,,
0,0.0,0,2.0,12.0,2013.0,164.0,6.0,35.0,523.0,0.0,3.0,,18.0,05db9164,38a947a1,3f55fb72,5de245c7,30903e74,7e0ccccf,b72ec13d,1f89b562,a73ee510,acce978c,3547565f,a5b0521a,12880350,b28479f6,c12fc269,95a8919c,e5ba7672,675c9258,,,2e01979f,,bcdee96c,6d5d1302,,
0,,13,1.0,4.0,16836.0,200.0,5.0,4.0,29.0,,2.0,,4.0,05db9164,8084ee93,02cf9876,c18be181,25c83c98,,e14874c9,0b153874,7cc72ec2,2462946f,636405ac,8fe001f4,31b42deb,07d13a8f,422c8577,36103458,e5ba7672,52e44668,,,e587c466,,32c7478e,3b183c5c,,
0,0.0,0,104.0,27.0,1990.0,142.0,4.0,32.0,37.0,0.0,1.0,,27.0,05db9164,207b2d81,5d076085,862b5ba0,25c83c98,fbad5c96,17c22666,0b153874,a73ee510,534fc986,feb49a68,f24b551c,8978af5c,64c94865,32ec6582,b6d021e8,e5ba7672,25c88e42,21ddcdc9,b1252a9d,0e8585d2,,32c7478e,0d4a6d1a,001f3601,92c878de
0,0.0,-1,63.0,40.0,1470.0,61.0,4.0,37.0,46.0,0.0,1.0,,40.0,68fd1e64,207b2d81,9dd3c4fc,a09fab49,25c83c98,,271190b7,5b392875,a73ee510,49d5fa15,26a64614,3c5900b5,51351dd6,b28479f6,c38116c9,0decd005,e5ba7672,d3303ea5,21ddcdc9,b1252a9d,7633c7c8,,32c7478e,17f458f7,001f3601,71236095
0,0.0,370,4.0,1.0,1787.0,65.0,14.0,25.0,489.0,0.0,7.0,,25.0,05db9164,2a69d406,fcae8bfa,13508380,25c83c98,,cd846c62,0b153874,a73ee510,3b08e48b,0ec1e215,18917580,44af41ef,07d13a8f,3b2d8705,51b69881,3486227d,642f2610,55dd3565,b1252a9d,5c8dc711,,423fab69,45ab94c8,2bf691b1,c84c4aec
1,19.0,10,30.0,10.0,1.0,3.0,33.0,47.0,126.0,3.0,5.0,,2.0,05db9164,403ea497,2cbec47f,3e2bfbda,30903e74,,7227c706,0b153874,a73ee510,5fcee6b1,9625b211,21a23bfe,dccbd94b,b28479f6,91f74a64,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,,32c7478e,1793a828,e8b83407,2fede552
0,0.0,0,36.0,22.0,4684.0,217.0,9.0,35.0,135.0,0.0,1.0,0.0,43.0,8cf07265,0aadb108,c798ded6,91e6318a,25c83c98,fe6b92e5,2aef1419,0b153874,a73ee510,3b08e48b,d027c970,1b2022a0,00e20e7b,1adce6ef,2de5271c,b74e1eb0,e5ba7672,7ce63c71,,,af5dc647,,dbb486d7,1793a828,,
0,2.0,11,8.0,23.0,30.0,11.0,2.0,8.0,23.0,1.0,1.0,,11.0,05db9164,58e67aaf,ea997bbe,72bea89f,384874ce,7e0ccccf,5b18f3d9,0b153874,a73ee510,012f45e7,720446f5,33ec1af8,034e5f3b,051219e6,d83fb924,4558136f,07c540c4,c21c3e4c,21ddcdc9,a458ea53,31c8e642,,c7dc6720,3e983c86,9b3e8820,d597922b
0,2.0,1,190.0,25.0,8.0,26.0,2.0,27.0,25.0,1.0,1.0,,25.0,05db9164,e77e5e6e,c23785fe,67dd8a70,25c83c98,7e0ccccf,0c41b6a1,37e4aa92,a73ee510,78d5c363,4ba74619,d8acd6f9,879fa878,07d13a8f,2eb18840,df604f5b,e5ba7672,449d6705,6f3756eb,5840adea,07b6c66f,,423fab69,246f2e7f,e8b83407,350a6bdb
0,,2,2.0,1.0,5533.0,1.0,41.0,1.0,33.0,,5.0,0.0,1.0,05db9164,d7988e72,25111132,d13862c2,25c83c98,6f6d9be8,84c427f0,5b392875,a73ee510,00f2b452,41b3f655,7c5cd1c7,ce5114a2,64c94865,846fb5bd,696fb81d,e5ba7672,0f2f9850,b6baba3f,a458ea53,06e40c52,8ec974f4,32c7478e,3fdb382b,e8b83407,49d68486
0,0.0,5,,,18424.0,461.0,23.0,4.0,231.0,0.0,2.0,,,05db9164,ed7b1c58,b063fe4e,4b972461,25c83c98,7e0ccccf,afa309bd,5b392875,a73ee510,23de5a4a,77212bd7,8cdc4941,7203f04e,b28479f6,298421a5,3084c78b,e5ba7672,8814ed47,,,514b7308,,c7dc6720,2fd70e1c,,
0,8.0,-1,,,732.0,2.0,22.0,2.0,2.0,1.0,4.0,,,68fd1e64,38a947a1,,,25c83c98,7e0ccccf,1c86e0eb,0b153874,a73ee510,e8f7c7e8,755e4a50,,5978055e,b28479f6,7ba31d46,,e5ba7672,9b82aca5,,,,,32c7478e,,,
1,0.0,0,24.0,36.0,5022.0,436.0,25.0,32.0,192.0,0.0,9.0,0.0,36.0,5bfa8ab5,84b4e42f,45f68c2a,39547932,384874ce,fbad5c96,85e1a170,0b153874,a73ee510,2bf8bed1,a4ea009a,78a16776,1e9339bc,91233270,cdb87fb5,e15ad623,8efede7f,67bd0ece,,,78c1dd4b,,c7dc6720,4f7b7578,,
0,,82,20.0,4.0,507333.0,,0.0,4.0,4.0,,0.0,,4.0,05db9164,38d50e09,5d0ec1e8,e63708e9,25c83c98,fbad5c96,bc324536,0b153874,7cc72ec2,f6540b40,2bcfb78f,506bb280,e6fc496d,07d13a8f,ee569ce2,81db2bec,e5ba7672,582152eb,21ddcdc9,5840adea,4a8f0a7f,c9d4222a,32c7478e,1989e165,001f3601,09929967
0,,24,3.0,2.0,10195.0,,0.0,32.0,55.0,,0.0,,2.0,5a9ed9b0,68b3edbf,b00d1501,d16679b9,4cf72387,7e0ccccf,36b796aa,0b153874,a73ee510,8b7e0638,7373475d,e0d76380,cfbfce5c,b28479f6,f511c49f,1203a270,e5ba7672,752d8b8a,,,73d06dde,,3a171ecb,aee52b6f,,
0,,105,4.0,1.0,2200.0,,0.0,1.0,1.0,,0.0,,1.0,05db9164,38d50e09,fc1cad4b,40ed41e5,25c83c98,7e0ccccf,88afd773,51d76abe,a73ee510,3b08e48b,c6cb726f,153ff04a,176d07bc,b28479f6,42b3012c,1bf03082,776ce399,582152eb,21ddcdc9,5840adea,84ec2c79,,be7c41b4,a415643d,001f3601,c4304c4b
1,5.0,85,52.0,6.0,36.0,36.0,30.0,24.0,281.0,1.0,5.0,2.0,6.0,9a89b36c,1cfdf714,9d427ddf,4eadb673,25c83c98,7e0ccccf,2555b4d9,0b153874,a73ee510,4c89c3af,0e4ebdac,cf724373,779f824b,07d13a8f,f775a6d5,6512dce6,8efede7f,e88ffc9d,21ddcdc9,b1252a9d,361a1080,,423fab69,3fdb382b,cb079c2d,49d68486
0,2.0,3,4.0,1.0,4.0,1.0,2.0,1.0,1.0,1.0,1.0,,1.0,68fd1e64,2eb7b10e,378112d3,684abf7b,25c83c98,fbad5c96,0d15142a,5b392875,a73ee510,ac473633,df7e8e0b,38176faa,84c02464,1adce6ef,0816fba2,f2c6a810,07c540c4,21eb63af,,,8b7fb864,,423fab69,45b2acf4,,
0,,1,5.0,36.0,239721.0,,0.0,0.0,123.0,,0.0,,62.0,8cf07265,4f25e98b,a68b0bcf,c194aaab,25c83c98,fbad5c96,a2f7459e,0b153874,7cc72ec2,b393caa5,15eced00,ab1307ec,bd251a95,64c94865,40e29d2a,65a31309,e5ba7672,7ef5affa,738584ec,a458ea53,fca82615,,32c7478e,74f7ceeb,9d93af03,d14e41ff
0,,4,,,1572.0,,0.0,17.0,55.0,,0.0,,,05db9164,8947f767,6bbe880c,feb6eb1a,4cf72387,7e0ccccf,3babeb61,0b153874,a73ee510,3b08e48b,565788d0,d06dc48e,8e7ad399,1adce6ef,ba8b8b16,30e6420c,776ce399,bd17c3da,ba92e49d,b1252a9d,65f3080f,,be7c41b4,42a310e6,010f6491,0eabc199
0,0.0,0,,,1464.0,4.0,5.0,3.0,4.0,0.0,1.0,,,68fd1e64,38a947a1,dd8e6407,db4eb846,25c83c98,13718bbd,963d99df,062b5529,a73ee510,3b08e48b,bffe9c30,eb43b195,e62d6c68,07d13a8f,3d2c6113,de815c2d,776ce399,d3c7daaa,,,5def73cb,,32c7478e,aa5529de,,
1,0.0,43,2.0,3.0,1700.0,21.0,6.0,10.0,21.0,0.0,1.0,,7.0,5a9ed9b0,46bbf321,c5d94b65,5cc8f91d,25c83c98,7e0ccccf,4157815a,1f89b562,a73ee510,4e979b5e,7056d78a,75c79158,08775c1b,e8dce07a,80d1ee72,208d4baf,e5ba7672,906ff5cb,,,6a909d9a,,3a171ecb,1f68c81f,,
0,0.0,1,2.0,1.0,2939.0,39.0,17.0,3.0,437.0,0.0,7.0,,1.0,68fd1e64,38a947a1,98351ee6,811ce8e8,25c83c98,fbad5c96,4a6c02fb,37e4aa92,a73ee510,3b08e48b,0cb221d0,617c70e9,ea18ebd8,07d13a8f,31b59ad3,121f63c9,e5ba7672,065917ca,,,c3739d01,,423fab69,d4af2638,,
1,9.0,1,2.0,5.0,18.0,5.0,9.0,5.0,5.0,1.0,1.0,0.0,5.0,5a9ed9b0,9819deea,6813d33b,f922efad,25c83c98,fbad5c96,34cbc0af,0b153874,a73ee510,bac95df6,88196a93,b99ddbc8,1211c647,b28479f6,1150f5ed,87acb535,07c540c4,7e32f7a4,,,a4b7004c,,32c7478e,b34f3128,,
0,,1,2.0,16.0,14404.0,79.0,2.0,16.0,103.0,,1.0,,16.0,05db9164,38a947a1,5492524f,ae59cd56,25c83c98,7e0ccccf,7925e09b,5b392875,7cc72ec2,56c80038,1cba690a,e00462bb,1d0f2da8,64c94865,51c5d5ca,ebbb82d7,07c540c4,be5810bd,,,bd1f6272,c9d4222a,32c7478e,043a382b,,
0,0.0,26,7.0,1.0,3412.0,104.0,10.0,2.0,6.0,0.0,1.0,1.0,1.0,05db9164,287130e0,5e25fa67,dd47ba3b,25c83c98,13718bbd,412cb2ce,0b153874,a73ee510,3b08e48b,b9ec9192,8ebd48c3,df5886ca,07d13a8f,10040656,e05d680b,3486227d,891589e7,ff6cdd42,a458ea53,a2b7caec,,c7dc6720,1481ceb4,e8b83407,988b0775
0,8.0,-1,60.0,11.0,11.0,7.0,9.0,30.0,39.0,1.0,2.0,,7.0,2d4ea12b,d97d4ce8,c725873a,d0189e5a,25c83c98,fe6b92e5,07d75b52,1f89b562,a73ee510,4f1c6ae7,a2c1d2d9,49fee879,ea31804b,1adce6ef,46218630,3b87fa92,e5ba7672,fb342121,7be4df37,5840adea,d90f665b,,32c7478e,6c1cdd05,ea9a246c,1219b447
0,,1,13.0,1.0,3150.0,163.0,1.0,1.0,32.0,,1.0,,1.0,39af2607,c44e8a72,3f7f3d24,8eb89744,4cf72387,7e0ccccf,86651165,0b153874,a73ee510,3b08e48b,39dd23e7,538a49e7,0159bf9f,b28479f6,1addf65e,0596b5be,07c540c4,456d734d,af1445c4,a458ea53,cf79f8fa,c9d4222a,3a171ecb,d5b4ea7d,010f6491,deffd9e3
0,1.0,302,71.0,3.0,270.0,19.0,1.0,6.0,19.0,1.0,1.0,,19.0,68fd1e64,876465ad,da89f77a,37ee624b,43b19349,fe6b92e5,2b3ce8b7,5b392875,a73ee510,8a99abc1,4352b29b,8065cc64,5f4de855,b28479f6,9c382f7a,a14df6f7,d4bb7bd8,08154af3,21ddcdc9,5840adea,e7f0c6dc,,bcdee96c,3e30919e,f55c04b6,2fede552
1,1.0,0,1.0,0.0,2.0,0.0,4.0,0.0,0.0,1.0,2.0,,0.0,241546e0,6887a43c,9b792af9,9c6d05a0,25c83c98,6f6d9be8,adbcc874,0b153874,a73ee510,fbbf2c95,46031dab,6532318c,377af8aa,1adce6ef,ef6b7bdf,2c9d222f,e5ba7672,8f0f692f,21ddcdc9,a458ea53,cc6a9262,,32c7478e,a5862ce8,445bbe3b,b6a3490e
0,11.0,251,9.0,5.0,21.0,6.0,34.0,5.0,5.0,1.0,4.0,,5.0,05db9164,4322636e,e007dfac,77b99936,4ea20c7d,fe6b92e5,2be44e4e,25239412,a73ee510,18e09007,364e8b48,9c841b74,34cbb1bc,07d13a8f,14674f9b,9b3f7aa2,e5ba7672,9d3171e9,21ddcdc9,a458ea53,61b4555a,ad3062eb,32c7478e,38b97a31,ea9a246c,074bb89f
1,10.0,1,4.0,4.0,1.0,0.0,10.0,4.0,4.0,1.0,1.0,,0.0,09ca0b81,4f25e98b,0b2640f7,4badfc0c,4cf72387,fe6b92e5,df5c2d18,0b153874,a73ee510,da272362,a7b606c4,33c282f5,eae197fd,07d13a8f,dfab705f,635c3e13,e5ba7672,7ef5affa,2f4b9dd2,b1252a9d,cff19dc6,,c7dc6720,8535db9f,001f3601,b98a5b90
0,0.0,-1,1.0,23.0,3169.0,147.0,62.0,0.0,753.0,0.0,9.0,1.0,39.0,05db9164,942f9a8d,69b028e3,003ceb8c,25c83c98,7e0ccccf,3f4ec687,1f89b562,a73ee510,c5fe5cb9,c4adf918,424ba327,85dbe138,b28479f6,ac182643,169f1150,8efede7f,1f868fdd,1d04f4a4,b1252a9d,15414e28,,32c7478e,aa9b9ab9,9d93af03,c73ed234
0,0.0,35,13.0,5.0,4939.0,140.0,1.0,22.0,61.0,0.0,1.0,,11.0,05db9164,4f25e98b,5e25fa67,dd47ba3b,a9411994,7e0ccccf,2e62d414,0b153874,a73ee510,4b415bb3,258875ea,8ebd48c3,dcc8f90a,07d13a8f,5be89da3,e05d680b,d4bb7bd8,bc5a0ff7,ff6cdd42,a458ea53,a2b7caec,,32c7478e,1481ceb4,e8b83407,988b0775
0,,1,13.0,2.0,59865.0,292.0,0.0,2.0,87.0,,0.0,0.0,2.0,68fd1e64,287130e0,b87cffc0,ffacf4e8,43b19349,,04277bf9,5b392875,7cc72ec2,4ea0d483,7e2c5c15,5ea407f3,91a1b611,b28479f6,9efd8b77,9906d656,07c540c4,891589e7,55dd3565,a458ea53,37a23b2d,,32c7478e,3fdb382b,ea9a246c,49d68486
1,,0,,1.0,16732.0,2.0,1.0,1.0,1.0,,1.0,,1.0,87552397,6e638bbc,598b72ce,3c7eb23c,25c83c98,fbad5c96,675e81f6,0b153874,a73ee510,d9b71390,4a77ddca,f21f7d11,dc1d72e4,07d13a8f,d4525f76,e2e3cf1c,d4bb7bd8,f6a2fc70,21ddcdc9,a458ea53,605776ee,,32c7478e,f93938dd,e8b83407,322cbe58
1,0.0,212,,,1632.0,65.0,24.0,1.0,113.0,0.0,6.0,,,be589b51,b0d4a6f6,50a6bc33,335e428a,25c83c98,7e0ccccf,1171550e,1f89b562,a73ee510,23724df8,031ba22d,4baf63a1,bb7a2c12,32813e21,b0369b63,c73993da,e5ba7672,e01eacde,,,1d14288c,,3a171ecb,c9bc2384,,
0,10.0,11,3.0,3.0,1026.0,3.0,88.0,3.0,131.0,1.0,15.0,0.0,3.0,9a89b36c,1cfdf714,8b14bdd6,3bf2df8b,25c83c98,,e807f153,0b153874,a73ee510,8627508e,1054ae5c,3cd57e51,d7ce3abd,b28479f6,d345b1a0,4d664c70,27c07bd6,e88ffc9d,712d530c,b1252a9d,9ecb9e0d,,bcdee96c,a8380e43,cb079c2d,37c5e077
0,,5,22.0,5.0,10324.0,,0.0,5.0,13.0,,0.0,,5.0,f434fac1,40ed0c67,374195a1,6f5d5092,4cf72387,6f6d9be8,555d7949,1f89b562,a73ee510,3b08e48b,91e8fc27,752343e3,9ff13f22,1adce6ef,f8ebf901,c43b15fe,776ce399,2585827d,21ddcdc9,5840adea,a66e7b01,,be7c41b4,e33735a0,e8b83407,f95af538
0,,779,1.0,1.0,676.0,,0.0,4.0,4.0,,0.0,,1.0,68fd1e64,e5fb1af3,9b953c56,7be07df9,25c83c98,7e0ccccf,5e4f7d2b,0b153874,a73ee510,3b08e48b,25f4f871,6bca71b1,e67cdf97,07d13a8f,b5de5956,fb8ca891,d4bb7bd8,13145934,55dd3565,b1252a9d,b1ae3ed2,ad3062eb,423fab69,3fdb382b,9b3e8820,49d68486
0,,179,61.0,,3316.0,,,1.0,,,,,,f473b8dc,38a947a1,223b0e16,ca55061c,43b19349,7e0ccccf,7f2c5a6e,64523cfa,a73ee510,f6c6d9f8,d21494f8,156f99ef,f47f13e4,1adce6ef,0e78291e,5fbf4a84,1e88c74f,1999bae9,,,deb9605d,,32c7478e,e448275f,,
0,1.0,1,5.0,7.0,1238.0,13.0,9.0,15.0,89.0,0.0,3.0,0.0,7.0,8cf07265,09e68b86,aa8c1539,85dd697c,25c83c98,7e0ccccf,92ce5a7d,37e4aa92,a73ee510,15fa156b,e0c3cae0,d8c29807,e8df3343,8ceecbc8,d2f03b75,c64d548f,8efede7f,63cdbb21,cf99e5de,5840adea,5f957280,c9d4222a,55dd3565,1793a828,e8b83407,b7d9c3bc
0,2.0,72,20.0,11.0,4.0,11.0,24.0,14.0,69.0,1.0,7.0,,11.0,05db9164,09e68b86,6ef2aa66,20af9140,25c83c98,7e0ccccf,372a0c4c,0b153874,a73ee510,a08eee5a,ec88dd34,4df84614,94881fc3,b28479f6,52baadf5,cf3ec61f,3486227d,5aed7436,7be4df37,b1252a9d,98a79791,,bcdee96c,3fdb382b,e8b83407,49d68486
0,,57,60.0,20.0,11862.0,20.0,1.0,19.0,20.0,,1.0,,20.0,5bfa8ab5,4f25e98b,15363e12,f9e8a6fb,384874ce,,65c53f25,0b153874,a73ee510,3b08e48b,ad2bc6f4,d63df4e6,39ccb769,b28479f6,8ab5b746,a694f6ce,d4bb7bd8,7ef5affa,21ddcdc9,a458ea53,a370fd83,,32c7478e,d5b01f55,9b3e8820,85cebe8c
0,4.0,1,29.0,30.0,112.0,30.0,27.0,33.0,144.0,2.0,4.0,0.0,30.0,05db9164,58e67aaf,99815367,771966f0,4cf72387,6f6d9be8,cdc0ad95,5b392875,a73ee510,b0c25211,69926409,e802f466,2fc3058f,051219e6,d83fb924,f6613e51,e5ba7672,c21c3e4c,21ddcdc9,a458ea53,3aa05bfb,,32c7478e,9f0d87bf,9b3e8820,bde577f6
0,2.0,4,53.0,14.0,1499.0,20.0,11.0,19.0,98.0,0.0,3.0,7.0,14.0,75ac2fe6,287130e0,b264d69e,ce831e6d,25c83c98,,5aef82b1,0b153874,a73ee510,7fdb06fe,010265ac,74138b6d,0e5bc979,f7c1b33f,42793602,b49f63ab,8efede7f,891589e7,55dd3565,b1252a9d,a1229e5f,,32c7478e,3fdb382b,ea9a246c,49d68486
0,,5,3.0,5.0,17405.0,,0.0,8.0,8.0,,0.0,,6.0,05db9164,c5c1d6ae,8018e37d,d8660950,43b19349,fbad5c96,c1e20400,5b392875,a73ee510,3b08e48b,60a1c175,22cad86a,9b9e44d2,07d13a8f,b25845fd,2a27c935,776ce399,561cabfe,21ddcdc9,5840adea,d479575f,,be7c41b4,9b18ad04,7a402766,67ebe777
0,,49,1.0,1.0,3116.0,72.0,3.0,1.0,48.0,,1.0,,1.0,7e5c2ff4,2c8c5f5d,13cd0697,352cefe6,25c83c98,7e0ccccf,4fb73f5f,985e3fcb,a73ee510,3b08e48b,6a447eb3,c3cdaf85,9dfda2b9,1adce6ef,5edc1a28,08514295,e5ba7672,f5f4ae5b,,,6387fda4,,55dd3565,d36c7dbf,,
0,,2865,23.0,0.0,23584.0,,0.0,2.0,47.0,,0.0,,2.0,05db9164,0468d672,cedcacac,7967fcf5,25c83c98,7e0ccccf,33b15f2c,0b153874,a73ee510,0f6ee8ce,419d31d4,553e02c3,08961fd0,1adce6ef,4f3b3616,91a6eec5,1e88c74f,9880032b,21ddcdc9,5840adea,a97b62ca,,423fab69,727a7cc7,ea9a246c,6935065e
0,,119,4.0,4.0,13528.0,,0.0,7.0,35.0,,0.0,,4.0,87552397,38a947a1,695a85e0,d502349a,25c83c98,7e0ccccf,82f666b6,0b153874,a73ee510,631ddef6,e51ddf94,67b31aac,3516f6e6,cfef1c29,d33de6b0,d2b0336b,07c540c4,48ce336b,,,ea6a0e31,,3a171ecb,da408463,,
0,,25,5.0,4.0,0.0,,0.0,4.0,4.0,,0.0,,1.0,68fd1e64,71ca0a25,44e7b8ec,3b989466,307e775a,7e0ccccf,d0519bab,0b153874,a73ee510,3b08e48b,38914a66,d7cd5e08,c281c227,1adce6ef,ae3a9888,4032eea3,1e88c74f,9bf8ffef,21ddcdc9,5840adea,53def47b,c9d4222a,dbb486d7,8849cfac,001f3601,aa5f0a15
0,2.0,180,94.0,7.0,151.0,38.0,2.0,30.0,26.0,1.0,1.0,,25.0,5bfa8ab5,421b43cd,33ebdbb6,29998ed1,25c83c98,fbad5c96,6ad82e7a,0b153874,a73ee510,451bd4e4,c1ee56d0,6aaba33c,ebd756bd,b28479f6,2d0bb053,b041b04a,e5ba7672,2804effd,,,723b4dfd,,32c7478e,b34f3128,,
0,,2,0.0,,,,,0.0,,,,,,be589b51,38a947a1,4470baf4,8c8a4c47,307e775a,fe6b92e5,ae1dfa39,0b153874,7cc72ec2,3b08e48b,ee26f284,bb669e25,48b975db,b28479f6,717db705,2b2ce127,2005abd1,ade68c22,,,2b796e4a,,be7c41b4,8d365d3b,,
0,,0,9.0,,17907.0,59.0,2.0,0.0,98.0,,1.0,,,68fd1e64,80e26c9b,ba1947d0,85dd697c,25c83c98,fe6b92e5,3d63f4e6,0b153874,a73ee510,94e68c1d,af6a4ffc,34a238e0,2a1579a2,b28479f6,a785131a,da441c7e,e5ba7672,005c6740,21ddcdc9,5840adea,8717ea07,,32c7478e,1793a828,e8b83407,b9809574
0,7.0,84,,7.0,10.0,6.0,29.0,41.0,288.0,1.0,4.0,,5.0,05db9164,38a947a1,840eeb3a,f7263320,25c83c98,7e0ccccf,3baecfcb,0b153874,a73ee510,98d5faa2,96a54d80,317bfd7d,dbe5226f,07d13a8f,d4a5a2be,1689e4de,e5ba7672,5d961bca,,,dc55d6df,,423fab69,aa0115d2,,
0,0.0,0,1.0,,3667.0,42.0,2.0,30.0,37.0,0.0,1.0,1.0,,05db9164,e5fb1af3,909286bb,252734c9,25c83c98,7e0ccccf,b28fa88b,0b153874,a73ee510,4b8a7639,9f0003f4,233fde4c,5afd9e51,b28479f6,23287566,1871ac47,8efede7f,13145934,1d1eb838,b1252a9d,23da7042,,bcdee96c,1be0cc0a,e8b83407,f89dfbcc
0,5.0,1,46.0,6.0,1046.0,112.0,5.0,43.0,111.0,1.0,1.0,,6.0,05db9164,4f25e98b,f86649de,f56f6045,25c83c98,fe6b92e5,21c0ea1a,0b153874,a73ee510,cfa407de,bc862fb6,b9b3b7ef,4f487d87,07d13a8f,dfab705f,33301a0b,e5ba7672,7ef5affa,92524a76,a458ea53,d5a53bc3,c9d4222a,423fab69,3fdb382b,001f3601,79883c16
0,,7,4.0,3.0,75211.0,,0.0,3.0,3.0,,0.0,,3.0,8cf07265,0468d672,00d3cdb7,d4125c6f,25c83c98,7e0ccccf,71ccc25b,0b153874,7cc72ec2,e89812b3,5cab60cb,d286aff3,ce418dc9,07d13a8f,a888f201,7d9d720d,1e88c74f,9880032b,21ddcdc9,5840adea,8443660f,,3a171ecb,52d7797f,e8b83407,ddf88ddd
1,,54,1.0,1.0,,,0.0,1.0,1.0,,0.0,,1.0,68fd1e64,38a947a1,0d15d9b5,bfe24cb7,b0530c50,,d9aa9d97,0b153874,7cc72ec2,3b08e48b,6e647667,72a52d4c,85dbe138,b28479f6,06809048,58cacba8,2005abd1,670f513e,,,b7ba6151,,32c7478e,7b80ab11,,
0,,0,34.0,3.0,,,0.0,3.0,3.0,,0.0,,3.0,68fd1e64,287130e0,38610f2f,28d2973d,25c83c98,,88002ee1,0b153874,7cc72ec2,3b08e48b,f1b78ab4,b345f76c,6e5da64f,b28479f6,9efd8b77,569a0480,2005abd1,891589e7,712d530c,b1252a9d,c2af6d9f,,32c7478e,58e38a64,ea9a246c,70451962
1,,1,1.0,,7814.0,119.0,1.0,19.0,30.0,,1.0,,,05db9164,80e26c9b,eb08d440,f922efad,25c83c98,fe6b92e5,41e1828d,0b153874,a73ee510,3b08e48b,b6358cf2,654bb16a,61c65daf,1adce6ef,0f942372,87acb535,d4bb7bd8,005c6740,21ddcdc9,5840adea,a4b7004c,,32c7478e,b34f3128,e8b83407,9904c656
0,2.0,5,11.0,9.0,24.0,9.0,110.0,9.0,148.0,1.0,10.0,0.0,9.0,be30ca83,8f5b4275,b009d929,c7043c4b,30903e74,fbad5c96,a90a99c5,51d76abe,a73ee510,e6003298,c804061c,3563ab62,1cc9ac51,1adce6ef,a6bf53df,b688c8cc,8efede7f,65c9624a,21ddcdc9,5840adea,2754aaf1,c9d4222a,55dd3565,3b183c5c,e8b83407,adb5d234
0,,19,1.0,1.0,7476.0,9.0,9.0,1.0,9.0,,1.0,,1.0,8cf07265,537e899b,5037b88e,9dde01fd,25c83c98,fbad5c96,aafae983,0b153874,a73ee510,dc790dda,c3a20c8d,680d7261,7ce5cdf0,07d13a8f,6d68e99c,c0673b44,e5ba7672,b34aa802,,,e049c839,,32c7478e,6095f986,,
0,4.0,0,131.0,1.0,0.0,1.0,14.0,10.0,40.0,1.0,3.0,,0.0,05db9164,80e26c9b,13193952,f922efad,25c83c98,fe6b92e5,124131fa,1f89b562,a73ee510,a1ee64a6,9ba53fcc,654bb16a,42156eb4,1adce6ef,0f942372,87acb535,e5ba7672,005c6740,21ddcdc9,5840adea,a4b7004c,ad3062eb,bcdee96c,b34f3128,e8b83407,9904c656
1,0.0,5,2.0,1.0,1526.0,3.0,9.0,2.0,2.0,0.0,1.0,,1.0,05db9164,38a947a1,60c37737,8a77aa30,25c83c98,fe6b92e5,1c63b114,1f89b562,a73ee510,f6f942d1,67841877,94a1cc80,781f4d92,b28479f6,962bbefe,3eef319d,e5ba7672,0ad1cc71,,,1c63c71e,c9d4222a,3a171ecb,ad80aaa7,,
0,1.0,1,5.0,18.0,475.0,63.0,15.0,4.0,803.0,1.0,4.0,,63.0,05db9164,3e4b7926,7442ec70,bb8645c3,0942e0a7,7e0ccccf,3a7402e7,51d76abe,a73ee510,aa91245c,b4bb4248,a5ab10e6,3eb2f9dc,07d13a8f,e6863a8e,1cdb3603,e5ba7672,e261f8d8,21ddcdc9,5840adea,1380864e,,32c7478e,be2f0db5,47907db5,68d9ada1
0,,1,1.0,18.0,10791.0,,0.0,1.0,281.0,,0.0,,18.0,05db9164,46bbf321,c5d94b65,5cc8f91d,4cf72387,7e0ccccf,2773eaab,5b392875,a73ee510,1a428761,06474f17,75c79158,2ec4b007,91233270,cddd56a1,208d4baf,1e88c74f,906ff5cb,,,6a909d9a,ad3062eb,3a171ecb,1f68c81f,,
0,1.0,-1,,,528.0,15.0,8.0,2.0,585.0,1.0,4.0,,,05db9164,ef69887a,3fea0364,9c32fadc,30903e74,,ec1a1856,0b153874,a73ee510,22a99f9d,a04e019f,cc606cbe,07a906b4,b28479f6,902a109f,0ab5ee0c,e5ba7672,4bcc9449,083e89d9,b1252a9d,6c38450e,,32c7478e,394c5a53,47907db5,1d7b6578
0,,18,9.0,0.0,,,0.0,7.0,16.0,,0.0,,7.0,68fd1e64,38a947a1,2273663d,3beb8147,25c83c98,fbad5c96,88002ee1,985e3fcb,7cc72ec2,3b08e48b,f1b78ab4,c47972c1,6e5da64f,1adce6ef,8d3c9c0c,e638c51d,2005abd1,35176a17,,,0370bc83,ad3062eb,55dd3565,cde6fafb,,
0,,5,,13.0,10467.0,170.0,4.0,13.0,96.0,,1.0,,13.0,be589b51,8084ee93,02cf9876,c18be181,0942e0a7,7e0ccccf,ad82323c,37e4aa92,a73ee510,bdfd8a02,7ca25fd2,8fe001f4,d3802338,b28479f6,b2ff8c6b,36103458,e5ba7672,52e44668,,,e587c466,,32c7478e,3b183c5c,,
1,,27,,,27753.0,,,3.0,,,,,,05db9164,efb7db0e,bf05882d,9e3f04df,25c83c98,7e0ccccf,73e2fc5e,062b5529,a73ee510,f8f0e86f,4e46b019,9da0a604,07c072b7,b28479f6,5ab7247d,929eef3c,d4bb7bd8,a863ac26,,,fb19a39b,ad3062eb,3a171ecb,cc4079ea,,
0,0.0,49,,,3732.0,20.0,1.0,3.0,20.0,0.0,1.0,,,17f69355,09e68b86,5be9b239,ace52998,25c83c98,,82cfb145,0b153874,a73ee510,9b8e7680,3f31bb3e,e5b118b4,c6378246,b28479f6,52baadf5,f68bd494,d4bb7bd8,5aed7436,21ddcdc9,a458ea53,ba3c688b,,32c7478e,3fdb382b,b9266ff0,49d68486
1,1.0,19,18.0,16.0,178.0,32.0,34.0,34.0,200.0,0.0,9.0,,16.0,05db9164,ea3a5818,7ee60f5f,bebc14b3,25c83c98,6f6d9be8,4f900c22,f0e5818a,a73ee510,47e01053,7c4f062c,cc22efeb,76dfc898,b28479f6,0a069322,606df1fe,e5ba7672,a1d0cc4f,21ddcdc9,b1252a9d,aebdd3c2,8ec974f4,32c7478e,e4e10900,b9266ff0,7a1ac642
1,0.0,1,2.0,5.0,6613.0,104.0,1.0,17.0,74.0,0.0,1.0,,5.0,8cf07265,8db5bc37,,,25c83c98,7e0ccccf,5a103f30,0b153874,a73ee510,3b08e48b,8487a168,,636195f8,64c94865,00e52733,,d4bb7bd8,821c30b8,,,,,32c7478e,,,
0,,1,,,29111.0,,,0.0,,,,,,ae82ea21,5dac953d,d032c263,c18be181,384874ce,,6b406125,5b392875,a73ee510,f1311559,278636c9,dfbb09fb,b87a829f,b28479f6,78e3b025,84898b2a,e5ba7672,35a9ed38,,,0014c32a,c0061c6d,32c7478e,3b183c5c,,
0,,58,,20.0,21659.0,1033.0,9.0,1.0,151.0,,2.0,,43.0,05db9164,80e26c9b,,,25c83c98,7e0ccccf,622305e6,5b392875,a73ee510,e70742b0,319687c9,,62036f49,07d13a8f,f3635baf,,e5ba7672,f54016b9,21ddcdc9,5840adea,,,3a171ecb,,e8b83407,00ed90d0
0,0.0,11,11.0,5.0,4325.0,61.0,4.0,14.0,68.0,0.0,2.0,0.0,5.0,68fd1e64,d8fc04df,f652979e,32a55192,25c83c98,7e0ccccf,19d92932,5b392875,a73ee510,f710483a,d54a5851,ed5cfa27,a36387e6,b28479f6,9da6bb5f,3141102a,1e88c74f,cbadff99,21ddcdc9,5840adea,3df2213d,,3a171ecb,42998020,010f6491,dd8b4f5c
1,,2560,2.0,0.0,63552.0,398.0,0.0,7.0,122.0,,0.0,,1.0,9a89b36c,39dfaa0d,a17519ab,5b392af8,25c83c98,fbad5c96,14ba4967,64523cfa,7cc72ec2,9ffc445a,c21c44c8,834b5edc,5b3fc509,07d13a8f,60fa10e5,e66306df,d4bb7bd8,df4fffb7,21ddcdc9,5840adea,9988d803,,c7dc6720,abe3a684,010f6491,f3737bd0
0,0.0,30,2.0,15.0,2712.0,210.0,5.0,43.0,242.0,0.0,2.0,,15.0,05db9164,207b2d81,2b280564,ad5ffc6b,25c83c98,fe6b92e5,559eb1e1,0b153874,a73ee510,51e04895,91875c79,2a064dba,ea519e47,64c94865,11b2ae92,7d9b60c8,e5ba7672,395856b0,21ddcdc9,a458ea53,9c3eb598,,32c7478e,c0b8dfd6,001f3601,81be451e
0,0.0,49,,3.0,1732.0,20.0,1.0,14.0,16.0,0.0,1.0,,3.0,8cf07265,e112a9de,4e1c9eda,22504558,25c83c98,fbad5c96,01620311,0b153874,a73ee510,66c281d9,922bbb91,23bc90a1,ad61640d,1adce6ef,6da7d68c,776f5665,e5ba7672,d495a339,,,5a5953a2,,32c7478e,8f079aa5,,
0,,-1,,,357.0,,0.0,10.0,11.0,,0.0,,,68fd1e64,403ea497,2cbec47f,3e2bfbda,25c83c98,7e0ccccf,9d8d7034,0b153874,a73ee510,b3d657b8,51ef0313,21a23bfe,e8f6ccfe,07d13a8f,e3209fc2,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,,32c7478e,1793a828,e8b83407,2fede552
0,2.0,7,,22.0,37.0,22.0,4.0,1.0,135.0,1.0,3.0,,22.0,98237733,b26462db,dad8b3db,06b1cf6e,25c83c98,7e0ccccf,ade953a9,5b392875,a73ee510,0eca1729,29e4ad33,422e8212,80467802,07d13a8f,72fbc65c,25b075e4,e5ba7672,35ee3e9e,,,a13bd40d,,3a171ecb,0ff91809,,
0,,68,1.0,1.0,24513.0,43.0,4.0,12.0,62.0,,1.0,,1.0,fc9c62bb,80e26c9b,,,25c83c98,6f6d9be8,e746fe19,1f89b562,a73ee510,c9ac91cb,0bc63bd0,,ef007ecc,b28479f6,4c1df281,,e5ba7672,f54016b9,21ddcdc9,5840adea,,,32c7478e,,e8b83407,c4e4eabb
1,0.0,304,1.0,,13599.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,,68fd1e64,064c8f31,70168f62,585ab217,25c83c98,fe6b92e5,b3a5258d,0b153874,a73ee510,7cda6c86,30b2a438,eb83af8a,aebdb575,07d13a8f,81d3f724,69f67894,3486227d,d4a314a2,21ddcdc9,5840adea,e1627e2c,,32c7478e,a6e7d8d3,001f3601,2fede552
0,0.0,2,4.0,7.0,1568.0,70.0,4.0,42.0,117.0,0.0,1.0,,36.0,de4dac42,b7ca2abd,022a0b3c,d6b6e0bf,25c83c98,13718bbd,33cca6fa,0b153874,a73ee510,fb999b75,9f7c4fc1,05e68866,2b9fb512,07d13a8f,2f453358,6de617d3,e5ba7672,4771e483,,,df66957b,,3a171ecb,b34f3128,,
0,,0,3.0,2.0,,,0.0,3.0,13.0,,0.0,,2.0,05db9164,38a947a1,d125aecd,82a61820,25c83c98,7e0ccccf,d18f8f99,0b153874,7cc72ec2,3b08e48b,6c27619d,49507531,61e43922,07d13a8f,bb1e9ca8,0fd6d3ca,2005abd1,e96a7df2,,,7eefff0d,,be7c41b4,cafb4e4d,,
0,0.0,0,5.0,1.0,1751.0,37.0,1.0,8.0,11.0,0.0,1.0,,1.0,8cf07265,09e68b86,fc25ffd0,991a22ae,25c83c98,fbad5c96,6da2fbd6,f0e5818a,a73ee510,78ed0c4d,7bbe6c06,c35b992b,ea1f21b7,1adce6ef,dbc5e126,068a2c9f,e5ba7672,5aed7436,21ddcdc9,b1252a9d,df9de95c,,423fab69,3fdb382b,cb079c2d,49d68486
1,3.0,22,7.0,9.0,269.0,11.0,12.0,15.0,573.0,1.0,7.0,,9.0,05db9164,558b4efb,1b5e2c32,8a2b280f,25c83c98,13718bbd,6d51a5b0,966033bc,a73ee510,2e48a61d,61af8052,733bbdf2,2f3ee7fb,64c94865,2cd24ac0,8ac5e229,e5ba7672,c68ebaa0,21ddcdc9,5840adea,0be61dd1,,32c7478e,3b183c5c,ea9a246c,9973f80f
1,,1,,,14447.0,328.0,15.0,0.0,432.0,,9.0,0.0,,5bfa8ab5,26ece8a8,58ca7e87,3db5e097,25c83c98,fbad5c96,877d7f71,0b153874,a73ee510,afc4d756,5bd8a4ae,91f87a19,7a3043c0,07d13a8f,102fc449,834b85f5,3486227d,87fd936e,,,e339163e,,423fab69,c9a8db2a,,
0,,1,4.0,1.0,235065.0,,0.0,3.0,1.0,,0.0,,1.0,5a9ed9b0,a8da270e,6392b1c1,4e1c036b,25c83c98,6f6d9be8,863329da,0b153874,7cc72ec2,fbc2dc95,a89c45cb,4ea4e9d5,a4fafa5b,b28479f6,f2252b1c,b7f61016,e5ba7672,130ebfcd,,,f15fe1ee,,32c7478e,2896ad66,,
0,1.0,4,75.0,21.0,246.0,69.0,1.0,33.0,33.0,1.0,1.0,,31.0,3b65d647,512fdf0c,b3ee24fe,631a0f79,25c83c98,7e0ccccf,86b374da,1f89b562,a73ee510,3b08e48b,07678d3e,9b665b9c,0159bf9f,b28479f6,fc29c5a9,b7a016ed,e5ba7672,fd3919f9,21ddcdc9,5840adea,1df3ad93,,3a171ecb,3aebd96a,724b04da,56be3401
1,,64,3.0,7.0,14747.0,38.0,4.0,16.0,25.0,,3.0,,17.0,05db9164,8b0005b7,62acd884,7736c782,25c83c98,fbad5c96,b01d50d5,5b392875,a73ee510,3b08e48b,cd1b7031,0b7afe9e,4d8657a2,07d13a8f,715f1291,7d0949a5,07c540c4,dff11f14,,,c12eabbb,,3a171ecb,af0cb2c3,,
0,,0,2.0,,4317.0,0.0,8.0,0.0,0.0,,1.0,,,68fd1e64,09e68b86,29dbbee7,15c721d8,4cf72387,,f33e4fa1,5b392875,a73ee510,e5330e23,7b5deffb,526eb908,269889be,b28479f6,52baadf5,e71dfc2d,e5ba7672,5aed7436,39e30682,b1252a9d,b4770b64,,32c7478e,2f34b1ef,e8b83407,4a449e4c
0,0.0,1,5.0,0.0,11738.0,490.0,10.0,13.0,140.0,0.0,1.0,,1.0,52f1e825,9819deea,a2b48926,f922efad,4cf72387,7e0ccccf,d385ea68,0b153874,a73ee510,3b08e48b,7940fc2a,b99ddbc8,00e20e7b,b28479f6,1150f5ed,87acb535,e5ba7672,7e32f7a4,,,a4b7004c,ad3062eb,32c7478e,b34f3128,,
1,0.0,53,17.0,4.0,1517.0,87.0,1.0,5.0,11.0,0.0,1.0,0.0,4.0,05db9164,38d50e09,948ee031,b7ab56a2,384874ce,fbad5c96,879ccac6,0b153874,a73ee510,9ca0fba4,e931c5cd,42bee2f2,580817cd,b28479f6,06373944,67b3c631,e5ba7672,fffe2a63,21ddcdc9,b1252a9d,bd074856,,32c7478e,df487a73,001f3601,c27f155b
0,,0,7.0,14.0,3751.0,646.0,0.0,37.0,432.0,,0.0,,14.0,0e78bd46,ae46a29d,770451b6,f922efad,25c83c98,fe6b92e5,01620311,0b153874,a73ee510,5a01afad,922bbb91,4bba7327,ad61640d,b28479f6,cccdd69e,e2e2fcd9,e5ba7672,e32bf683,,,b964dee0,c9d4222a,32c7478e,b34f3128,,
0,1.0,1,14.0,1.0,118.0,1.0,4.0,1.0,32.0,1.0,1.0,,1.0,05db9164,4f25e98b,79bdb97a,bdbe850d,43b19349,,38eb9cf4,0b153874,a73ee510,49d1ad89,7f8ffe57,30ed85b5,46f42a63,07d13a8f,dfab705f,e75cb6ea,e5ba7672,7ef5affa,21ddcdc9,a458ea53,72c8ca0c,,32c7478e,3fdb382b,001f3601,49d68486
0,3.0,1,25.0,9.0,1396.0,39.0,5.0,32.0,37.0,0.0,2.0,,10.0,05db9164,dde11b16,c6616b04,e6996139,25c83c98,3bf701e7,2e8a689b,0b153874,a73ee510,efea433b,e51ddf94,3a802941,3516f6e6,07d13a8f,e28388cc,f4944655,3486227d,43dfe9bd,,,81f8278e,,3a171ecb,772b286f,,
0,,0,37.0,10.0,15.0,,0.0,10.0,10.0,,0.0,,10.0,05db9164,95e2d337,da3ad2bd,a95c56ca,25c83c98,fbad5c96,d7f3ff9f,1f89b562,a73ee510,3b08e48b,29473fc8,359d194a,aa902020,051219e6,003cf364,8023d5ba,776ce399,7b06fafe,d913d8f1,a458ea53,15bb899d,,32c7478e,6c25dad0,2bf691b1,59e91663
0,,0,4.0,,11534.0,,0.0,0.0,1.0,,0.0,,,39af2607,78ccd99e,55f298ba,1de19bc2,25c83c98,fbad5c96,63b7fcf7,1f89b562,a73ee510,3b08e48b,779482a8,624029b0,7d65a908,051219e6,9917ad07,270e2a53,1e88c74f,e7e991cb,21ddcdc9,a458ea53,5ff5ac4a,ad3062eb,32c7478e,d65fa724,875ea8a7,86601e0a
0,,498,,0.0,92.0,,0.0,0.0,0.0,,0.0,,0.0,5bfa8ab5,90081f33,fd22e418,36375a46,43b19349,fbad5c96,6c338953,0b153874,a73ee510,3b08e48b,553ebda3,fb991bf5,49fe3d4e,b28479f6,50b07d60,d1a4e968,776ce399,7da6ea7e,,,9fb07dd2,,be7c41b4,359dd977,,
1,8.0,7,20.0,8.0,5.0,22.0,172.0,21.0,568.0,1.0,21.0,,0.0,05db9164,404660bb,97d1681e,ffe40d5f,25c83c98,7e0ccccf,1c86e0eb,1f89b562,a73ee510,f3b83678,755e4a50,7e7a6264,5978055e,1adce6ef,6ddbba94,e7af7559,e5ba7672,4b17f8a2,21ddcdc9,5840adea,5a49c6db,,32c7478e,faf5d8b3,f0f449dd,984e0db0
0,,4,1.0,1.0,270.0,170.0,1.0,19.0,196.0,,1.0,0.0,1.0,3b65d647,4c2bc594,d032c263,c18be181,25c83c98,fbad5c96,cd98cc3d,0b153874,a73ee510,493b74f2,dcc84468,dfbb09fb,b72482f5,8ceecbc8,7ac43a46,84898b2a,e5ba7672,bc48b783,,,0014c32a,,55dd3565,3b183c5c,,
0,,6,52.0,15.0,383.0,,0.0,21.0,21.0,,0.0,,15.0,05db9164,09e68b86,88290645,0676a23d,25c83c98,fe6b92e5,f14f1abf,0b153874,a73ee510,3b08e48b,7b5deffb,f6d35a1e,269889be,b28479f6,52baadf5,90d6ddcd,776ce399,5aed7436,21ddcdc9,b1252a9d,29d21ab1,,32c7478e,69e4f188,e8b83407,e001324a
0,0.0,57,2.0,6.0,1683.0,550.0,5.0,48.0,412.0,0.0,1.0,0.0,102.0,39af2607,c5fe64d9,fda0b584,13508380,25c83c98,7e0ccccf,295cc387,0b153874,a73ee510,3b08e48b,7d5ece85,ffcedb7a,e4b5ce61,07d13a8f,52b49730,f39f1141,d4bb7bd8,c235abed,4cc48856,a458ea53,fdc724a8,,32c7478e,45ab94c8,46fbac64,c84c4aec
0,,90,,0.0,1455.0,,0.0,6.0,10.0,,0.0,,2.0,05db9164,6f609dc9,d032c263,c18be181,25c83c98,7e0ccccf,315c76f3,37e4aa92,a73ee510,3b08e48b,e51ddf94,dfbb09fb,3516f6e6,07d13a8f,c169c458,84898b2a,776ce399,381bd833,,,0014c32a,,3a171ecb,3b183c5c,,
0,,29,4.0,4.0,12245.0,,0.0,19.0,73.0,,0.0,,4.0,05db9164,3df44d94,d032c263,c18be181,4cf72387,7e0ccccf,81bb0302,5b392875,a73ee510,f918493f,b7094596,dfbb09fb,1f9d2c38,b28479f6,e0052e65,84898b2a,07c540c4,e7648a8f,,,0014c32a,,32c7478e,3b183c5c,,
0,3.0,-1,3.0,2.0,285.0,5.0,6.0,8.0,30.0,1.0,4.0,,5.0,05db9164,73b37f46,cd82408a,eb45e6e4,25c83c98,7e0ccccf,ead731f4,0b153874,a73ee510,3b08e48b,e9c32980,d1fb0874,3fe840eb,ec19f520,f3a94039,6d87c0d4,07c540c4,d1605c46,,,ed01532f,,3a171ecb,8d49fa4b,,
1,,2,3.0,,5091.0,0.0,6.0,0.0,3.0,,5.0,,,5a9ed9b0,4f25e98b,10ee5afb,1d29846e,db679829,,1971812a,0b153874,a73ee510,aed8755c,5307d8e2,5e76bfca,8368e64b,b28479f6,8ab5b746,5fb9ff62,07c540c4,7ef5affa,2e30f394,5840adea,e208a45f,,32c7478e,3fdb382b,001f3601,49d68486
0,,78,8.0,,35203.0,853.0,2.0,0.0,98.0,,1.0,,,05db9164,c41a84c8,d627c43e,759c4a2e,25c83c98,fbad5c96,61beb1aa,0b153874,a73ee510,a5270a71,81a23494,2d15871c,3796b047,b28479f6,55d28d38,9243e635,07c540c4,2b46823a,,,ec5ac7c6,ad3062eb,32c7478e,590b856f,,
1,37.0,113,2815.0,5.0,2.0,3.0,26.0,49.0,78.0,0.0,1.0,,3.0,05db9164,c5c1d6ae,b2de8002,f9a7e394,25c83c98,7e0ccccf,0d00feb3,0b153874,a73ee510,ff4776d6,640d8b63,76517c94,18041128,b28479f6,29a18ba0,afc96aa6,e5ba7672,836a67dd,21ddcdc9,5840adea,c0cd6339,78e2e389,32c7478e,7e60320b,7a402766,ba14bbcb
0,5.0,1,28.0,22.0,11.0,24.0,5.0,22.0,22.0,3.0,3.0,,21.0,05db9164,89ddfee8,7e4ea1b2,bc17b20f,25c83c98,,a6624a99,5b392875,a73ee510,3b08e48b,f161ec47,49a5dd4f,1e18519e,051219e6,d5223973,9fa82d1c,e5ba7672,5bb2ec8e,4b1019ff,a458ea53,40b11f62,,32c7478e,eaa38671,f0f449dd,8b3e7faa
0,,0,1.0,33.0,11774.0,,0.0,1.0,502.0,,0.0,,33.0,5a9ed9b0,2ae0a573,0739daa8,4fbef8bb,4cf72387,7e0ccccf,ca4fd8f8,0b153874,a73ee510,3b08e48b,a0060bca,9148b680,22d23aac,07d13a8f,413cc8c6,64e0265f,776ce399,f2fc99b1,,,38879cfe,ad3062eb,32c7478e,7836b4d5,,
0,,1,14.0,3.0,3008.0,15.0,6.0,5.0,146.0,,3.0,,3.0,68fd1e64,a0e12995,b3693f43,f888df5a,25c83c98,7e0ccccf,fcf0132a,0b153874,a73ee510,aed3d80e,d650f1bd,63314ad3,863f8f8a,07d13a8f,73e2709e,ea1c4696,e5ba7672,1616f155,21ddcdc9,5840adea,67afd8d0,,c7dc6720,e3aea32f,9b3e8820,e75c9ae9
1,0.0,1,27.0,38.0,1499.0,73.0,14.0,35.0,269.0,0.0,4.0,0.0,38.0,8cf07265,04e09220,b1ecc6c4,5dff9b29,4cf72387,fe6b92e5,53ef84c0,0b153874,a73ee510,267caf03,643327e3,2436ff75,478ebe53,07d13a8f,f6b23a53,f4ead43c,e5ba7672,6fc84bfb,,,4f1aa25f,,423fab69,ded4aac9,,
0,,5,44.0,4.0,12143.0,,0.0,4.0,4.0,,0.0,,4.0,05db9164,38d50e09,0c7bb149,a35517fb,25c83c98,3bf701e7,e14874c9,0b153874,7cc72ec2,3b08e48b,636405ac,96fa9c01,31b42deb,07d13a8f,ee569ce2,7ce58da8,776ce399,582152eb,21ddcdc9,5840adea,d1d4f4a9,ad3062eb,3a171ecb,03955d00,001f3601,4e7af834
1,3.0,2,37.0,87.0,190.0,90.0,3.0,49.0,88.0,2.0,2.0,,88.0,68fd1e64,38a947a1,,,43b19349,,d385ea68,0b153874,a73ee510,3b08e48b,7940fc2a,,00e20e7b,07d13a8f,7f1c4567,,d4bb7bd8,95f5c722,,,,,32c7478e,,,
0,,8,8.0,5.0,25660.0,,0.0,3.0,5.0,,0.0,,5.0,05db9164,90081f33,fd22e418,36375a46,25c83c98,7e0ccccf,0bdc3959,0b153874,a73ee510,3b08e48b,c6cb726f,fb991bf5,176d07bc,b28479f6,13f8263b,d1a4e968,1e88c74f,c191a3ff,,,9fb07dd2,,32c7478e,359dd977,,
0,0.0,0,35.0,4.0,190.0,85.0,43.0,18.0,177.0,0.0,3.0,1.0,8.0,05db9164,207b2d81,2b280564,ad5ffc6b,5a3e1872,7e0ccccf,4aa938fc,0b153874,a73ee510,efea433b,7e40f08a,2a064dba,1aa94af3,07d13a8f,0c67c4ca,7d9b60c8,3486227d,395856b0,21ddcdc9,a458ea53,9c3eb598,,32c7478e,c0b8dfd6,001f3601,7a2fb9af
1,2.0,1,19.0,20.0,1.0,20.0,2.0,14.0,20.0,1.0,1.0,0.0,12.0,68fd1e64,06174070,a3829614,b0ed6de7,4cf72387,fe6b92e5,71c23d74,0b153874,a73ee510,c6c8dd7c,ae4c531b,3b917db0,01c2bbc7,cfef1c29,73438c3b,12e989e9,07c540c4,836a11e3,a34d2cf6,5840adea,9179411e,,32c7478e,1793a828,e8b83407,fa3124de
0,1.0,1849,4.0,0.0,28.0,0.0,1.0,0.0,0.0,1.0,1.0,,0.0,be589b51,ef69887a,771a1642,2e946ee2,4cf72387,,5d7d417f,0b153874,a73ee510,50c56209,52d28861,77f29381,a4b04123,b28479f6,902a109f,9fe6f065,07c540c4,4bcc9449,566c492c,5840adea,7b6393e8,,32c7478e,3fdb382b,47907db5,2fc5e3d4
0,0.0,65,,7.0,10346.0,67.0,1.0,16.0,67.0,0.0,1.0,0.0,7.0,8cf07265,68b3edbf,77f2f2e5,d16679b9,4cf72387,7e0ccccf,e465eb54,5b392875,a73ee510,f0c8b1be,01a88896,9f32b866,dfb2a8fa,07d13a8f,fd888b80,31ca40b6,d4bb7bd8,cf1cde40,,,dfcfc3fa,,93bad2c0,aee52b6f,,
0,7.0,164,33.0,12.0,84.0,63.0,8.0,19.0,18.0,1.0,2.0,,18.0,87773c45,58e67aaf,104c93d5,90b69619,25c83c98,7e0ccccf,e3b8f237,0b153874,a73ee510,aed3d80e,1aa6cf31,61ea5878,3b03d76e,1adce6ef,d002b6d9,33a55538,e5ba7672,c21c3e4c,444a605d,b1252a9d,37c3d851,,32c7478e,364442f6,9b3e8820,bdc8589e
0,,10,5.0,3.0,8913.0,68.0,2.0,42.0,168.0,,2.0,0.0,3.0,68fd1e64,1cfdf714,3f850fa0,db781543,25c83c98,7e0ccccf,2555b4d9,0b153874,a73ee510,f9065d00,98579192,3317996d,779f824b,d2dfe871,ca8b2a1a,bc3ccba9,27c07bd6,e88ffc9d,e27c6abe,a458ea53,6b4fc63c,,423fab69,c94ffa50,cb079c2d,d5ca783a
0,,15,9.0,1.0,20553.0,,,12.0,,,,,4.0,05db9164,0b8e9caf,6858baef,3f647607,4cf72387,fbad5c96,b647358a,0b153874,a73ee510,3b08e48b,88731e13,f6148255,2723b688,b28479f6,5340cb84,03b5b1e2,07c540c4,ca6a63cf,,,3b66cfcf,,bcdee96c,08b0ce98,,
0,0.0,-1,,,1539.0,115.0,17.0,20.0,276.0,0.0,5.0,,,68fd1e64,287130e0,9dfde63d,9c9a6068,25c83c98,6f6d9be8,32da4b59,5b392875,a73ee510,eff5602f,9ee336c5,1310a7dd,094e10ad,b28479f6,9efd8b77,b3dc5e07,e5ba7672,891589e7,bdffef68,b1252a9d,33706b2d,,32c7478e,88cba9eb,9b3e8820,1ba54abc
0,0.0,3,,5.0,1920.0,22.0,50.0,5.0,98.0,0.0,4.0,0.0,5.0,68fd1e64,3df44d94,d032c263,c18be181,25c83c98,7e0ccccf,9ec884dc,5b392875,a73ee510,aa6da1ef,5b906b78,dfbb09fb,c95c9034,b28479f6,b96e7224,84898b2a,3486227d,79a92e0a,,,0014c32a,,bcdee96c,3b183c5c,,
0,2.0,0,6.0,2.0,70.0,10.0,248.0,1.0,1034.0,1.0,32.0,,2.0,05db9164,404660bb,f1397040,09003f7b,25c83c98,7e0ccccf,1c86e0eb,0b153874,a73ee510,67eea4ef,755e4a50,0cdb9a18,5978055e,07d13a8f,633f1661,82708081,e5ba7672,4b17f8a2,21ddcdc9,5840adea,4c14738f,,32c7478e,a86c0565,f0f449dd,984e0db0
1,,1,10.0,6.0,11665.0,,0.0,10.0,6.0,,0.0,,6.0,05db9164,38a947a1,7fd859b3,19ae4fbd,25c83c98,,16401b7d,0b153874,a73ee510,3b08e48b,20ec800a,6aa4c9a8,18a5e4b8,cfef1c29,cb0f0e06,b50d9336,1e88c74f,3c4f2d82,,,cc86f2c1,,32c7478e,1793a828,,
0,12.0,1,1.0,15.0,548.0,24.0,12.0,18.0,20.0,2.0,2.0,,16.0,05db9164,0c0567c2,700014ea,560f248f,25c83c98,7e0ccccf,fe4dce68,0b153874,a73ee510,ab9e9acf,68357db6,093a009d,768f6658,07d13a8f,aa39dd42,9e6ff465,e5ba7672,bb983d97,,,5c859cae,,32c7478e,996f5a43,,
1,0.0,152,3.0,3.0,1847.0,96.0,12.0,6.0,11.0,0.0,1.0,0.0,3.0,05db9164,4f25e98b,6d1384bc,74ce146b,4cf72387,7e0ccccf,26817995,a61cc0ef,a73ee510,cf500eab,8b92652b,a4b73157,c5bc951e,b28479f6,8ab5b746,19f6b83c,e5ba7672,7ef5affa,21ddcdc9,b1252a9d,9efd5ec7,,c7dc6720,3fdb382b,001f3601,49d68486
0,0.0,1,9.0,0.0,6431.0,136.0,2.0,6.0,98.0,0.0,1.0,,2.0,05db9164,6887a43c,9b792af9,9c6d05a0,43b19349,,60d4eb86,e8663cb1,a73ee510,07c7b3f7,0ad37b4b,6532318c,f9d99d81,8ceecbc8,4e06592a,2c9d222f,e5ba7672,8f0f692f,21ddcdc9,b1252a9d,cc6a9262,,32c7478e,a5862ce8,445bbe3b,1793fb3f
0,,-1,,,20646.0,,0.0,5.0,8.0,,0.0,,,9a89b36c,09e68b86,0271c22e,caa16f04,25c83c98,,47aa6d2e,0b153874,a73ee510,9d4b7dce,c30e7b00,f993725b,4f8670dc,1adce6ef,dbc5e126,1c3a7247,e5ba7672,5aed7436,21ddcdc9,5840adea,4d2b0d06,,32c7478e,3fdb382b,e8b83407,8ded0b41
0,,14,3.0,2.0,306036.0,,0.0,2.0,105.0,,0.0,,2.0,68fd1e64,09e68b86,cce54c2c,6e8c7c0e,4cf72387,,c642e324,a6d156f4,7cc72ec2,b6900243,82af9502,9e82f486,90dca23e,07d13a8f,36721ddc,e3a83d5c,d4bb7bd8,5aed7436,2b558521,a458ea53,ebfa4c53,,32c7478e,a9d9c151,e8b83407,3a97b421
0,,-1,,,,,,0.0,,,,,,5a9ed9b0,38a947a1,,,4cf72387,7e0ccccf,e7698644,66f29b89,7cc72ec2,3b08e48b,f9d0f35e,,b55434a9,07d13a8f,681a3f32,,2005abd1,19ef42ad,,,,c9d4222a,be7c41b4,,,
1,1.0,2,6.0,2.0,8.0,9.0,1.0,2.0,2.0,1.0,1.0,0.0,2.0,05db9164,f0cf0024,619e87b2,cfc23926,384874ce,7e0ccccf,02914429,5b392875,a73ee510,575cd9b2,419d31d4,c0d8d575,08961fd0,1adce6ef,55dc357b,29a3715b,e5ba7672,b04e4670,21ddcdc9,a458ea53,e54f0804,,423fab69,936da3dd,ea9a246c,27029e68
0,0.0,17,34.0,11.0,1784.0,50.0,1.0,25.0,102.0,0.0,1.0,0.0,11.0,68fd1e64,e77e5e6e,fdd14ae2,8b7d76a3,25c83c98,fbad5c96,15ce37bc,0b153874,a73ee510,25e9e422,ff78732c,07cecd0e,9b656adc,f862f261,903024b9,d08de474,e5ba7672,449d6705,1d1eb838,a458ea53,26e36622,,55dd3565,3fdb382b,33d94071,49d68486
0,0.0,1,7.0,8.0,4501.0,184.0,2.0,4.0,184.0,0.0,1.0,,46.0,05db9164,58e67aaf,8b376137,270b5720,4cf72387,7e0ccccf,67b7679f,0b153874,a73ee510,19feb952,16faa766,8d526153,4422e246,b28479f6,62eca3c0,23c4fd37,07c540c4,c21c3e4c,6301e460,b1252a9d,632bf881,,bcdee96c,18109ace,9b3e8820,070f6cb2
0,,183,3.0,3.0,5778.0,,0.0,3.0,9.0,,0.0,,3.0,39af2607,c5c1d6ae,027b4cc5,9affccc2,25c83c98,6f6d9be8,d2bfca2c,5b392875,a73ee510,3b08e48b,f72b4bd1,7e98747a,01f32ac8,07d13a8f,99153e7d,64223df7,776ce399,836a67dd,21ddcdc9,5840adea,301fc194,,be7c41b4,365def8b,7a402766,00efb483
0,,13,3.0,10.0,48.0,16.0,11.0,10.0,163.0,,3.0,0.0,6.0,05db9164,40ed0c67,61b8caf0,5ef5cf67,25c83c98,7e0ccccf,a7565058,d7c4a8f5,a73ee510,567ba666,69afd526,765cb3ea,84def884,07d13a8f,622c34d8,5c646b1e,e5ba7672,2585827d,21ddcdc9,5840adea,c4c42074,,3a171ecb,42df8359,e8b83407,c0fca43d
0,,1,25.0,22.0,39424.0,66.0,1.0,28.0,60.0,,0.0,,29.0,5a9ed9b0,9b25e48b,f25edca2,418ae7fb,25c83c98,7e0ccccf,a5a83bdd,5b392875,a73ee510,5ea6fa93,f697a983,ad46dc69,e5643e9a,07d13a8f,054ebda1,967bc626,3486227d,7d8c03aa,2442feac,a458ea53,30244f84,,c7dc6720,3a6f67d1,010f6491,f4642e0e
0,,1,13.0,3.0,5646.0,49.0,3.0,3.0,59.0,,1.0,,3.0,8cf07265,558b4efb,40361716,f2159098,25c83c98,fbad5c96,6005554a,062b5529,a73ee510,b1442b2a,c19406bc,842839b9,07fdb6cc,07d13a8f,c1ddc990,9f1d1f70,27c07bd6,c68ebaa0,21ddcdc9,5840adea,16f71b82,ad3062eb,32c7478e,3b183c5c,ea9a246c,2f44e540
1,0.0,1,2.0,2.0,1795.0,4.0,1.0,2.0,2.0,0.0,1.0,,2.0,05db9164,38a947a1,bd4d1b8d,097de257,25c83c98,,788ff59f,0b153874,a73ee510,3b08e48b,9c9d4957,3263408b,9325eab4,07d13a8f,456583e6,c57bda3a,d4bb7bd8,4b0f5ddd,,,6fb7987f,,32c7478e,9b7eed78,,
1,1.0,2,603.0,11.0,2.0,11.0,2.0,11.0,11.0,1.0,2.0,,11.0,05db9164,58e67aaf,f5cdf14a,39cc9792,4cf72387,7e0ccccf,9ff9bbde,0b153874,a73ee510,8c8662e4,f89fe102,5d84eb4a,83e6ca2e,1adce6ef,d002b6d9,a98ec356,07c540c4,c21c3e4c,c79aad78,b1252a9d,ec4a835a,,423fab69,b44bd498,9b3e8820,8fd6bdd6
1,9.0,1,39.0,6.0,48.0,14.0,13.0,30.0,68.0,2.0,4.0,,6.0,be589b51,4f25e98b,761d2b40,5f379ae0,4cf72387,fe6b92e5,9b98e9fc,0b153874,a73ee510,2a47dab8,7f8ffe57,beb94e00,46f42a63,07d13a8f,dfab705f,9066bcfb,e5ba7672,7ef5affa,49463d54,b1252a9d,822be048,c9d4222a,32c7478e,3fdb382b,001f3601,49d68486
0,1.0,12,4.0,2.0,5.0,3.0,25.0,19.0,113.0,1.0,2.0,2.0,2.0,68fd1e64,a5b69ae3,0b793d71,813cb08c,4cf72387,7e0ccccf,468a0854,0b153874,a73ee510,3b08e48b,a60de4e5,f9bf526c,605bbc24,b28479f6,9703aa2f,9ee32e6f,8efede7f,a1654f4f,21ddcdc9,5840adea,7a380bd1,,32c7478e,08b0ce98,2bf691b1,984e0db0
0,0.0,0,21.0,5.0,2865.0,,0.0,31.0,1.0,0.0,0.0,,31.0,ae82ea21,38d50e09,01a0648b,657dc3b9,25c83c98,7e0ccccf,0c41b6a1,0b153874,a73ee510,56ef22e9,4ba74619,11fcf7fa,879fa878,07d13a8f,fa321567,5e1b6b9d,e5ba7672,52b872ed,21ddcdc9,a458ea53,bfeb50f6,,423fab69,df487a73,e8b83407,c27f155b
0,,-1,66.0,29.0,2940.0,87.0,69.0,35.0,82.0,,5.0,0.0,32.0,68fd1e64,1cfdf714,3cb0ff62,9b17f367,43b19349,7e0ccccf,e2de05d6,0b153874,a73ee510,1ce1e29d,b26d847d,59a625a9,38016f21,1adce6ef,f3002fbd,229bf6f4,3486227d,e88ffc9d,edb3d180,a458ea53,5362f5c3,,423fab69,f20c047e,cb079c2d,0facb2ea
1,,370,,3.0,357.0,,0.0,4.0,5.0,,0.0,,3.0,68fd1e64,2ae0a573,af21d90e,dc0a11c7,4cf72387,,ed0714a0,1f89b562,a73ee510,f1b39deb,b85b416c,a4425bd8,c3f71b59,07d13a8f,413cc8c6,41bec2fe,d4bb7bd8,f2fc99b1,,,95ee3d7a,,32c7478e,7836b4d5,,
0,0.0,237,1.0,1.0,4619.0,53.0,17.0,16.0,272.0,0.0,1.0,,1.0,f473b8dc,89ddfee8,f153af65,13508380,25c83c98,3bf701e7,c96de117,37e4aa92,a73ee510,995c2a7f,ad757a5a,99ec4e40,93b18cb5,07d13a8f,59a58e86,13ede1b5,3486227d,ae46962e,55dd3565,b1252a9d,8a93f0a1,ad3062eb,423fab69,45ab94c8,f0f449dd,c84c4aec
0,,0,2.0,3.0,10327.0,648.0,11.0,3.0,127.0,,3.0,,3.0,39af2607,68b3edbf,ad4b77ff,d16679b9,25c83c98,7e0ccccf,b00f5963,c8ddd494,a73ee510,ac82cac0,b91c2548,a2f4e8b5,a03da696,b28479f6,12f48803,89052618,e5ba7672,cf1cde40,,,d4703ebd,,bcdee96c,aee52b6f,,
1,,3,,24.0,1853.0,36.0,10.0,9.0,175.0,,2.0,,24.0,05db9164,38a947a1,03689820,21817e80,25c83c98,7e0ccccf,50a5390e,0b153874,a73ee510,0466803a,159499d1,79b98d3d,4ab361e1,b28479f6,72f85ad5,8e47fca6,e5ba7672,5ba7fffe,,,15fb7955,,32c7478e,71dc4ef2,,
0,4.0,1,2.0,17.0,7.0,4.0,4.0,18.0,18.0,1.0,1.0,3.0,3.0,05db9164,0a519c5c,77f2f2e5,d16679b9,43b19349,fbad5c96,c78204a1,0b153874,a73ee510,3b08e48b,5f5e6091,9f32b866,aa655a2f,07d13a8f,b812f9f2,31ca40b6,27c07bd6,2efa89c6,,,dfcfc3fa,,3a171ecb,aee52b6f,,
0,0.0,10,1.0,0.0,5781.0,164.0,5.0,6.0,160.0,0.0,5.0,,5.0,8cf07265,e112a9de,af5655e7,22504558,4cf72387,7e0ccccf,133643ef,0b153874,a73ee510,64145819,84bc66d0,252162ec,bcb2e77c,1adce6ef,11da3cff,776f5665,e5ba7672,a7cf409e,,,5c7c443c,,32c7478e,8f079aa5,,
0,,2,2.0,3.0,3379.0,,0.0,5.0,4.0,,0.0,,3.0,09ca0b81,287130e0,20fb5e45,aafb54fa,25c83c98,fbad5c96,bf115338,56563555,a73ee510,3b08e48b,41516dc9,2ea11a49,8b11c4b8,1adce6ef,310d155b,b9a4d133,776ce399,891589e7,f30f7842,a458ea53,86a8e85e,c9d4222a,be7c41b4,bc491035,e8b83407,bd2ec696
0,0.0,1,7.0,12.0,3011.0,126.0,5.0,41.0,121.0,0.0,2.0,,12.0,be589b51,d833535f,77f2f2e5,d16679b9,43b19349,fe6b92e5,6978304f,0b153874,a73ee510,fbbf2c95,78f92234,9f32b866,9be66b48,b28479f6,a66dcf27,31ca40b6,e5ba7672,7b49e3d2,,,dfcfc3fa,,3a171ecb,aee52b6f,,
1,2.0,1,3.0,1.0,63.0,1.0,21.0,2.0,108.0,2.0,9.0,2.0,1.0,68fd1e64,e5fb1af3,be0a348d,e0e934af,25c83c98,13718bbd,372a0c4c,0b153874,a73ee510,e8e8c8ac,ec88dd34,7ac672aa,94881fc3,07d13a8f,b5de5956,e3d99bf0,27c07bd6,13145934,42e59f55,5840adea,8f78192f,,3a171ecb,198d16cc,e8b83407,0e2018ec
0,,1,3.0,1.0,563.0,,0.0,5.0,3.0,,0.0,,1.0,05db9164,55e0a784,5b54e5b4,c5699aad,25c83c98,7e0ccccf,dcab49d9,0b153874,a73ee510,34dd9626,cd3a0eb4,c492212b,715b22a3,07d13a8f,45e17a48,1f55226d,1e88c74f,6c5555bd,21ddcdc9,b1252a9d,99712f38,,423fab69,167193c9,e8b83407,ae5fce01
0,,1,4.0,2.0,8684.0,11.0,1.0,3.0,7.0,,1.0,,2.0,05db9164,e5fb1af3,c8b80f97,311f127a,25c83c98,fe6b92e5,372a0c4c,0b153874,a73ee510,6f0b6a04,2e15139e,9ffdd484,94881fc3,07d13a8f,b5de5956,5891d119,d4bb7bd8,13145934,cc4c70c1,a458ea53,cd11300e,ad3062eb,3a171ecb,cf300ce9,001f3601,814b9a6b
0,8.0,1,3.0,14.0,351.0,50.0,8.0,35.0,37.0,1.0,1.0,,18.0,05db9164,e9b8a266,be3b6a18,62169fb6,0942e0a7,7e0ccccf,d55d70ca,5b392875,a73ee510,1d56e466,9cf09d42,6647ec34,f66b043c,b28479f6,fb67e61d,236709b9,e5ba7672,d452c287,,,77799c4f,c9d4222a,32c7478e,5fd07f39,,
1,0.0,-1,,,1398.0,0.0,1.0,0.0,0.0,0.0,1.0,,,05db9164,512fdf0c,98bb788f,e0a2ecca,0942e0a7,7e0ccccf,d01ba955,7b6fecd5,a73ee510,3b08e48b,c0edaa76,167ba71f,34fc0029,07d13a8f,aa322bcf,5e622e84,d4bb7bd8,fd3919f9,21ddcdc9,5840adea,43d01030,,c7dc6720,4acb8523,724b04da,c986348f
1,,74,3.0,4.0,17991.0,32.0,11.0,9.0,98.0,,10.0,,4.0,5a9ed9b0,8947f767,9ea04474,2b0aadf8,25c83c98,6f6d9be8,368f84ee,0b153874,a73ee510,3b08e48b,6dc69f41,4640585e,fca56425,f7c1b33f,7f758956,d8831736,e5ba7672,bd17c3da,bf212c4c,b1252a9d,d4f22efc,,32c7478e,0ac1b18a,010f6491,6d73203e
0,,38,14.0,46.0,6426.0,888.0,12.0,9.0,862.0,,1.0,,46.0,05db9164,95e2d337,0d71b822,3fb81b62,30903e74,7e0ccccf,8f572b5e,0b153874,a73ee510,897188be,434d6c13,28283f53,7301027a,b28479f6,17a3bcd8,9e724f87,e5ba7672,7b06fafe,21ddcdc9,5840adea,07b818d7,,c7dc6720,b2df17ed,c243e98b,33757f80
0,0.0,1,,2.0,14496.0,895.0,3.0,7.0,58.0,0.0,1.0,,2.0,05db9164,9a82ab91,d032c263,c18be181,25c83c98,7e0ccccf,d9f4e70f,0b153874,a73ee510,27f4bf82,da89cb9b,dfbb09fb,165642be,07d13a8f,33d2c881,84898b2a,07c540c4,004fdf10,,,0014c32a,,32c7478e,3b183c5c,,
0,0.0,14,15.0,11.0,4108.0,125.0,4.0,35.0,111.0,0.0,1.0,,14.0,05db9164,e3a0dc66,2ba709bb,7be47200,25c83c98,fe6b92e5,8a850658,0b153874,a73ee510,3094253e,d9b1e3ff,fa5eca9d,cd98af01,07d13a8f,c251e774,22283336,e5ba7672,b608c073,,,fd0e41ce,c9d4222a,c7dc6720,f2e9f0dd,,
1,,18,23.0,,42024.0,,,0.0,,,,,,05db9164,09e68b86,aa8c1539,85dd697c,25c83c98,,b87f4a4a,5b392875,a73ee510,e70742b0,319687c9,d8c29807,62036f49,07d13a8f,801ee1ae,c64d548f,e5ba7672,63cdbb21,cf99e5de,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
1,1.0,2,76.0,4.0,0.0,4.0,1.0,4.0,4.0,1.0,1.0,,4.0,05db9164,38a947a1,f1a544c6,9c65ce26,25c83c98,fbad5c96,df5c2d18,0b153874,a73ee510,903f1f14,a7b606c4,8f1a16da,eae197fd,b28479f6,b842e9bb,789e0e3e,e5ba7672,38f08461,,,79fe2943,,bcdee96c,325bcd40,,
0,1.0,0,29.0,5.0,40.0,5.0,1.0,5.0,5.0,1.0,1.0,,5.0,8cf07265,09e68b86,8530c58f,abfc27b2,25c83c98,,197b4575,0b153874,a73ee510,6c47047a,606866a9,8a433ec1,e40e52ae,64c94865,91126f30,cc93bd1d,d4bb7bd8,5aed7436,6d82104d,a458ea53,c1429b47,,3a171ecb,a0634086,e8b83407,9c015713
0,1.0,2921,,0.0,48.0,17.0,20.0,10.0,84.0,1.0,2.0,1.0,0.0,39af2607,4f25e98b,b0874fd0,b696e406,25c83c98,fbad5c96,dc7659bd,0b153874,a73ee510,03e48276,e51ddf94,6536f6f8,3516f6e6,b28479f6,8ab5b746,271d5b6c,27c07bd6,7ef5affa,21ddcdc9,a458ea53,a716bbe2,,3a171ecb,3fdb382b,001f3601,a39e1586
0,,55,10.0,12.0,299.0,,0.0,23.0,26.0,,0.0,,26.0,17f69355,38a947a1,4470baf4,8c8a4c47,25c83c98,7e0ccccf,2a37bb01,5b392875,a73ee510,3b08e48b,61ba19ac,bb669e25,fa17cc68,b28479f6,a3443e75,2b2ce127,776ce399,ade68c22,,,2b796e4a,ad3062eb,be7c41b4,8d365d3b,,
0,2.0,8,6.0,3.0,5.0,3.0,25.0,11.0,722.0,1.0,6.0,,3.0,05db9164,09e68b86,57231f4a,c38a1d7d,25c83c98,fbad5c96,968a6688,0b153874,a73ee510,e851ff7b,f25fe7e9,2849c511,dd183b4c,f7c1b33f,5726b2dc,2b7f6e55,e5ba7672,5aed7436,4a237258,b1252a9d,fd3ca145,c9d4222a,32c7478e,0ea7be91,e8b83407,f610730e
1,1.0,493,155.0,2.0,1.0,0.0,8.0,7.0,45.0,1.0,7.0,,0.0,68fd1e64,78ccd99e,ac203f6f,13508380,25c83c98,7e0ccccf,e24d7cb8,0b153874,a73ee510,6f07d986,03458ded,2d72bfb9,8019075f,07d13a8f,162f3329,eedd265a,e5ba7672,e7e991cb,21ddcdc9,b1252a9d,56b58097,c9d4222a,423fab69,45ab94c8,e8b83407,c84c4aec
0,,35,,,293044.0,,,7.0,,,,,,05db9164,38a947a1,1678e0d8,bd6ffe0f,25c83c98,7e0ccccf,e2ec9176,0b153874,7cc72ec2,3b08e48b,6fc6ad29,704629a2,b0c30eeb,b28479f6,443b0c0b,809c9e0e,e5ba7672,f0959f21,,,6a41d841,,be7c41b4,0ee762c3,,
0,,8,8.0,12.0,39343.0,1820.0,0.0,19.0,318.0,,0.0,,12.0,05db9164,d57c0709,d032c263,c18be181,25c83c98,7e0ccccf,122c542a,0b153874,a73ee510,801e8634,7fee217f,dfbb09fb,6e2907f1,cfef1c29,487ddf17,84898b2a,e5ba7672,3ae505af,,,0014c32a,,423fab69,3b183c5c,,
0,5.0,0,1.0,,92.0,0.0,5.0,0.0,0.0,1.0,1.0,,,05db9164,78ccd99e,bf30cf68,49c94103,30903e74,7e0ccccf,a1eeac3d,1f89b562,a73ee510,12bb8262,2e9d5aa6,975f89b0,0a9ac04c,f862f261,ada14dd8,a9b56248,e5ba7672,e7e991cb,21ddcdc9,a458ea53,0d7a15fd,,32c7478e,fb890da1,33d94071,86174332
1,,0,1.0,,19088.0,11.0,11.0,0.0,89.0,,2.0,,,68fd1e64,c5fe64d9,01ac13ea,f6dbd8fb,4cf72387,6f6d9be8,6cdb3998,062b5529,a73ee510,b173a655,5874c9c9,16a886e7,740c210d,07d13a8f,52b49730,a249bde3,e5ba7672,c235abed,f30f7842,a458ea53,c4b9fb56,8ec974f4,32c7478e,44aeb111,33d94071,df46df55
0,,248,1.0,1.0,79620.0,,,1.0,,,,,1.0,da4eff0f,d833535f,77f2f2e5,d16679b9,25c83c98,fe6b92e5,8f801a1a,1f89b562,7cc72ec2,3b08e48b,f295b28a,9f32b866,f5df7ab9,07d13a8f,943169c2,31ca40b6,d4bb7bd8,281769c2,,,dfcfc3fa,,3a171ecb,aee52b6f,,
0,0.0,0,3.0,2.0,3150.0,21.0,4.0,3.0,24.0,0.0,2.0,,2.0,05db9164,80e26c9b,e346a5fd,85dd697c,4cf72387,,55fc227e,0b153874,a73ee510,b1aa986c,d8d7567b,539c5644,47d6a934,b28479f6,a785131a,aafa191e,e5ba7672,005c6740,21ddcdc9,5840adea,7e5b7cc4,,32c7478e,1793a828,e8b83407,b9809574
0,,0,10.0,2.0,41706.0,84.0,0.0,5.0,49.0,,0.0,,2.0,8cf07265,942f9a8d,d1ffd05c,9df780c1,25c83c98,7e0ccccf,49b74ebc,1f89b562,a73ee510,0e9ead52,c4adf918,f0c1019c,85dbe138,b28479f6,ac182643,52bee03d,d4bb7bd8,1f868fdd,5b885066,a458ea53,35198a67,ad3062eb,32c7478e,30ab4eb4,e8b83407,85fd868a
1,4.0,-1,6.0,6.0,872.0,31.0,37.0,42.0,334.0,1.0,16.0,,6.0,8cf07265,d4bd9877,a55127b0,90044821,4cf72387,3bf701e7,6a858837,0b153874,a73ee510,3b08e48b,eb9eb939,a0015d5d,2b54e95d,07d13a8f,10139ce3,b458da0e,e5ba7672,62acb0f3,,,d7a43622,,423fab69,dcba8699,,
0,,38,,,43205.0,680.0,0.0,2.0,20.0,,0.0,0.0,,68fd1e64,2c8c5f5d,0f09a700,38aca36b,4cf72387,fbad5c96,91282309,0b153874,7cc72ec2,dcbc7c2b,9e511730,25644e7d,04e4a7e0,64c94865,c1124d0c,4c7535f3,3486227d,f5f4ae5b,,,5b6b6b73,,3a171ecb,1793a828,,
0,,0,6.0,6.0,124027.0,,0.0,5.0,19.0,,0.0,,6.0,05db9164,38a947a1,acbabfa5,187dc42d,25c83c98,fbad5c96,e14874c9,51d76abe,7cc72ec2,ff5a1549,636405ac,8d2c704a,31b42deb,07d13a8f,55808bb2,c66a58da,e5ba7672,824dcc94,,,9308de7e,ad3062eb,3a171ecb,9d8b4082,,
1,2.0,6,,,300.0,25.0,2.0,25.0,68.0,1.0,1.0,,,5a9ed9b0,38a947a1,b1b6f323,be4cb064,25c83c98,7e0ccccf,00dd27a6,0b153874,a73ee510,98bd7a24,55065437,d28c687a,80dcea18,1adce6ef,fc42663d,f2a191bd,e5ba7672,c9da8737,,,5911ddcb,,32c7478e,1335030a,,
0,,27,,,112878.0,2106.0,0.0,2.0,95.0,,0.0,,,5a9ed9b0,38a947a1,2d8004c4,40ed41e5,25c83c98,7e0ccccf,4d9d55ae,5b392875,7cc72ec2,3b08e48b,55065437,ad972965,80dcea18,07d13a8f,c68ba31d,1206a8a1,d4bb7bd8,e96a7df2,,,54d8bb06,,3a171ecb,a415643d,,
0,0.0,3001,2.0,,3134.0,47.0,1.0,0.0,1.0,0.0,1.0,0.0,,05db9164,403ea497,2cbec47f,3e2bfbda,25c83c98,,19672560,0b153874,a73ee510,a8d1ae09,2591ca7a,21a23bfe,9b7d472e,07d13a8f,e3209fc2,587267a3,3486227d,a78bd508,21ddcdc9,5840adea,c2a93b37,,c7dc6720,1793a828,e8b83407,2fede552
1,0.0,179,5.0,1.0,1464.0,6.0,70.0,6.0,16.0,0.0,10.0,,3.0,68fd1e64,404660bb,f1397040,09003f7b,25c83c98,7e0ccccf,1c86e0eb,5b392875,a73ee510,67eea4ef,755e4a50,0cdb9a18,5978055e,1adce6ef,6ddbba94,82708081,e5ba7672,4b17f8a2,21ddcdc9,5840adea,4c14738f,,32c7478e,a86c0565,f0f449dd,984e0db0
1,,1,7.0,2.0,2910.0,2.0,301.0,3.0,54.0,,15.0,0.0,2.0,8cf07265,942f9a8d,3a3d6eeb,eabe170f,25c83c98,6f6d9be8,49b74ebc,0b153874,a73ee510,0e9ead52,c4adf918,a66cfe4b,85dbe138,07d13a8f,a8e962af,a3d7b1d6,e5ba7672,1f868fdd,fc134659,a458ea53,bbcf650c,,32c7478e,75b9c133,9d93af03,e438a496
0,0.0,0,8.0,6.0,125.0,122.0,5.0,34.0,107.0,0.0,3.0,,24.0,5a9ed9b0,c5e4f7c9,,,25c83c98,7e0ccccf,95402f9a,64523cfa,a73ee510,5162b19c,c82f1813,,949ea585,b28479f6,b16ae607,,e5ba7672,ac02dc99,,,,c9d4222a,32c7478e,,,
0,0.0,0,5.0,6.0,6461.0,93.0,19.0,7.0,37.0,0.0,1.0,1.0,7.0,68fd1e64,09e68b86,5f8d9359,2628b8d6,25c83c98,13718bbd,53e14bd5,0b153874,a73ee510,97d3ddaa,319687c9,de2ecc9c,62036f49,cfef1c29,18847041,62675893,3486227d,5aed7436,b1fb78cc,a458ea53,be01d6b1,,3a171ecb,b1aad66f,e8b83407,3df61e3d
1,0.0,2,1.0,11.0,2119.0,79.0,6.0,2.0,114.0,0.0,3.0,1.0,11.0,05db9164,2ae0a573,4993b2b2,9ab05b8f,25c83c98,7e0ccccf,9e8dab66,0b153874,a73ee510,5ba575e7,2d9eed4d,bdf9cff8,949ea585,07d13a8f,413cc8c6,fb2ac6b5,3486227d,f2fc99b1,,,0fbced35,ad3062eb,32c7478e,d91ea8bd,,
0,0.0,17,5.0,7.0,6288.0,,0.0,42.0,1.0,0.0,0.0,,35.0,5a9ed9b0,62e9e9bf,,,25c83c98,7e0ccccf,f74ed3c0,0b153874,a73ee510,39046df2,e90cbbe1,,a4c7bffd,07d13a8f,de829bed,,e5ba7672,d2651d6e,,,,,32c7478e,,,
0,,2,23.0,20.0,148.0,,0.0,20.0,20.0,,0.0,,20.0,68fd1e64,09e68b86,7edab412,f1d06e8a,43b19349,,16401b7d,0b153874,a73ee510,3b08e48b,20ec800a,0a02e48e,18a5e4b8,1adce6ef,dbc5e126,e2bc04da,776ce399,5aed7436,0053530c,a458ea53,1de5dd94,,32c7478e,43fe299c,f0f449dd,f3b1f00d
0,,19,535.0,7.0,61968.0,,0.0,7.0,2.0,,0.0,,7.0,05db9164,8ab240be,145f2f75,82a61820,25c83c98,7e0ccccf,ff08f605,0b153874,7cc72ec2,ec4d75ea,6939835e,7161e106,dc1d72e4,1adce6ef,28883800,bb6d240e,e5ba7672,ca533012,21ddcdc9,5840adea,5fe17899,,72592995,cafb4e4d,e8b83407,99f4f64c
0,,0,113.0,3.0,3036.0,575.0,2.0,3.0,214.0,,1.0,,3.0,05db9164,0468d672,628b07b0,b63c0277,25c83c98,7e0ccccf,0d339a25,c8ddd494,a73ee510,1722d4c8,7d756b25,0c87b3e9,6f833c7a,1adce6ef,4f3b3616,48af915a,07c540c4,9880032b,21ddcdc9,5840adea,34cc61bb,c9d4222a,32c7478e,e5ed7da2,ea9a246c,984e0db0
1,0.0,1,1.0,1.0,1607.0,12.0,1.0,12.0,15.0,0.0,1.0,,12.0,be589b51,aa8fcc21,4255f8fd,7501d94a,25c83c98,fe6b92e5,0492c809,1f89b562,a73ee510,13ba96b0,ba0f9e8a,887a0c20,4e4dd817,07d13a8f,a4f91020,022714ba,1e88c74f,3972b4ed,,,d1aa4512,,32c7478e,9257f75f,,
1,1.0,0,6.0,3.0,0.0,0.0,19.0,3.0,3.0,1.0,9.0,0.0,0.0,05db9164,09e68b86,db151f8b,f1b645fc,25c83c98,,b87f4a4a,0b153874,a73ee510,e70742b0,319687c9,af6ad6b6,62036f49,f862f261,1dca7862,05a97a3c,3486227d,5aed7436,54591762,a458ea53,4a2c3526,,32c7478e,1793a828,e8b83407,1a02cbe1
0,0.0,22,6.0,22.0,203.0,153.0,80.0,18.0,508.0,0.0,11.0,0.0,22.0,05db9164,e5fb1af3,7e1ad1fe,46ec0a38,43b19349,7e0ccccf,24c48926,0b153874,a73ee510,afa26c81,9f0003f4,651d80c6,5afd9e51,07d13a8f,b5de5956,72401022,3486227d,13145934,55dd3565,5840adea,bf647035,,32c7478e,1481ceb4,e8b83407,988b0775
0,1.0,-1,,,138.0,0.0,1.0,0.0,0.0,1.0,1.0,,,be589b51,b46aceb6,,,43b19349,,17cdc396,0b153874,a73ee510,75d852fc,d79cc967,,115d29f4,07d13a8f,217d99f2,,d4bb7bd8,908eaeb8,,,,,32c7478e,,,
-401
View File
@@ -1,401 +0,0 @@
Id,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26
10000405,,-1,,,8020.0,26.0,6.0,0.0,80.0,,2.0,,,8cf07265,b80912da,e51edcbe,90f40919,25c83c98,6f6d9be8,59434e5e,1f89b562,a73ee510,3b08e48b,a04db730,b57ec450,c66b30f8,07d13a8f,569913cf,11fe787a,e5ba7672,7119e567,1d04f4a4,b1252a9d,d5f54153,,32c7478e,a9d771cd,c9f3bea7,0a47000d
10001189,,-1,,,17881.0,9.0,8.0,0.0,0.0,,1.0,0.0,,05db9164,bf7a2333,210c632d,3d513154,0942e0a7,,b87f4a4a,0b153874,a73ee510,b8b81ee6,319687c9,8747d4c8,62036f49,07d13a8f,9a0b7e16,d58d490f,e5ba7672,51369abb,,,d4b6b7e8,,32c7478e,37821b83,,
10000674,0.0,0,2.0,13.0,2904.0,104.0,1.0,3.0,100.0,0.0,1.0,,13.0,1464facd,8947f767,9d56d2c7,68fb546c,43b19349,fbad5c96,d20b4953,1f89b562,a73ee510,fbbf2c95,b5a9f90e,edf66ca8,949ea585,f7c1b33f,7f758956,b78548fb,e5ba7672,bd17c3da,966f1c31,a458ea53,1d1393f4,ad3062eb,32c7478e,3fdb382b,010f6491,49d68486
10001358,0.0,1471,51.0,4.0,1573.0,63.0,1.0,4.0,13.0,0.0,1.0,,4.0,68fd1e64,80e26c9b,9e471be4,169ffff5,4cf72387,7e0ccccf,6772d022,5b392875,a73ee510,213fd432,962f47a7,3ef5350b,e8df3343,07d13a8f,02319a52,f294bed7,d4bb7bd8,1f9656b8,21ddcdc9,b1252a9d,602ce342,,3a171ecb,1793a828,e8b83407,70b6702c
10000810,0.0,16,9.0,17.0,2972.0,621.0,13.0,42.0,564.0,0.0,2.0,0.0,17.0,68fd1e64,08d6d899,a2edc244,60d5f5a7,25c83c98,7e0ccccf,89376183,5b392875,a73ee510,24691f45,8bd4b780,bde06ba1,c0bff1ae,07d13a8f,1a277242,b93ac0ad,e5ba7672,87c6f83c,,,bf8efd4c,c9d4222a,423fab69,f96a556f,,
10001323,1.0,0,29.0,14.0,4.0,1.0,7.0,14.0,16.0,1.0,3.0,,1.0,5a9ed9b0,78ccd99e,10def408,ebc42d91,25c83c98,7e0ccccf,c8b3d034,cb66451f,a73ee510,a5ad4326,80da9312,cf681365,d14c9212,b28479f6,1ca2ec64,12daa519,e5ba7672,e7e991cb,21ddcdc9,5840adea,a921d7b8,,32c7478e,1b256e61,b9266ff0,3ff1af9e
10001340,0.0,46,15.0,15.0,1481.0,22.0,5.0,10.0,200.0,0.0,3.0,,15.0,8cf07265,80e26c9b,cef97273,ae574c8f,4cf72387,fbad5c96,9a4f2943,0b153874,a73ee510,86b46b2e,4a00b569,28f7eeac,42ef23bb,b28479f6,88e3c6af,310c45c8,e5ba7672,2a64e498,21ddcdc9,5840adea,6e5ab00f,,32c7478e,72c78f11,e8b83407,c250242d
10000708,,1,8.0,4.0,4360.0,21.0,1.0,18.0,97.0,,1.0,,4.0,05db9164,78ccd99e,c42a50b3,5792ec09,b2241560,fbad5c96,ad9fa255,64523cfa,a73ee510,d62b39ca,e5d8af57,cde39b86,f06c53ac,1adce6ef,b00d57a8,0b365e26,07c540c4,e7e991cb,712d530c,a458ea53,64e11f35,ad3062eb,32c7478e,8df21ec7,e8b83407,2d178235
10001722,0.0,0,25.0,37.0,1500.0,68.0,1.0,36.0,68.0,0.0,1.0,0.0,37.0,68fd1e64,58e67aaf,e27903cb,bebf4e46,25c83c98,fe6b92e5,b1c33ffe,0b153874,a73ee510,9b2a83c5,ce3dfeb8,8e59d26c,f6aeec90,b28479f6,62eca3c0,db0fca86,d4bb7bd8,c21c3e4c,30c64fd7,a458ea53,384fec11,,bcdee96c,a9a2ac1a,9b3e8820,86d16a45
10000018,0.0,24,4.0,2.0,2056.0,12.0,6.0,10.0,83.0,0.0,1.0,,2.0,05db9164,f0cf0024,08b45d8b,cbb5af1b,384874ce,fbad5c96,81bb0302,37e4aa92,a73ee510,175d6c71,b7094596,1c547463,1f9d2c38,1adce6ef,55dc357b,0ca69655,e5ba7672,b04e4670,21ddcdc9,b1252a9d,f3caefdd,,32c7478e,4c8e5aef,ea9a246c,9593bba9
10001265,0.0,0,,32.0,1503.0,345.0,1.0,47.0,104.0,0.0,1.0,,33.0,68fd1e64,d833535f,b00d1501,d16679b9,25c83c98,7e0ccccf,a77b6a38,5b392875,a73ee510,3b08e48b,90bf7fef,e0d76380,a70d1580,b28479f6,a733d362,1203a270,d4bb7bd8,281769c2,,,73d06dde,,32c7478e,aee52b6f,,
10000905,,219,13.0,19.0,4286.0,198.0,26.0,11.0,543.0,,5.0,,20.0,05db9164,558b4efb,b009d929,c7043c4b,25c83c98,fbad5c96,ce4f7f55,0b153874,a73ee510,e4fa8060,38f692a7,3563ab62,6e5da64f,1adce6ef,37a9f717,b688c8cc,e5ba7672,c68ebaa0,21ddcdc9,5840adea,2754aaf1,c9d4222a,423fab69,3b183c5c,ea9a246c,ff86d5e0
10000249,2.0,30,27.0,2.0,0.0,0.0,2.0,2.0,2.0,1.0,1.0,,0.0,05db9164,c1384774,d4bef5d2,ebc3fea2,25c83c98,fbad5c96,81bb0302,0b153874,a73ee510,70962768,b7094596,e52ba8a9,1f9d2c38,b28479f6,916e9a2c,0982799e,07c540c4,8e8b535e,21ddcdc9,b1252a9d,11da5050,ad3062eb,32c7478e,9d214089,ea9a246c,5d3f5a67
10000191,3.0,1,7.0,8.0,5.0,8.0,17.0,7.0,64.0,1.0,6.0,,8.0,05db9164,80e26c9b,ba1947d0,85dd697c,25c83c98,7e0ccccf,052e75f4,0b153874,a73ee510,7636f6c8,b7bb7a17,34a238e0,73e186f6,1adce6ef,0f942372,da441c7e,e5ba7672,005c6740,21ddcdc9,5840adea,8717ea07,,32c7478e,1793a828,e8b83407,b9809574
10000880,0.0,70,3.0,5.0,4626.0,103.0,8.0,9.0,116.0,0.0,1.0,,5.0,f473b8dc,421b43cd,bcb77a9e,29998ed1,384874ce,fe6b92e5,1913ac2e,1f89b562,a73ee510,80829afb,2dad6ba2,6aaba33c,47cb697a,b28479f6,2d0bb053,b041b04a,e5ba7672,2804effd,,,723b4dfd,,32c7478e,b34f3128,,
10000866,,-1,5.0,3.0,7205.0,24.0,1.0,4.0,18.0,,1.0,,3.0,68fd1e64,e5fb1af3,b9e3d20b,500c52be,30903e74,7e0ccccf,08e57a96,37e4aa92,a73ee510,5ba575e7,7c430b79,fbbc41c2,7f0d7407,1adce6ef,60403b20,2c1cea37,27c07bd6,13145934,68c36492,b1252a9d,09f4f5ca,,3a171ecb,3fdb382b,46fbac64,49d68486
10000452,,391,10.0,1.0,149116.0,,0.0,9.0,1.0,,0.0,,8.0,05db9164,a796837e,dffca8ba,0fa0d423,4cf72387,fbad5c96,9a68af50,37e4aa92,7cc72ec2,b2ebcf4d,c4bd1c72,93bab460,bcfc54a9,cfef1c29,85e5b07c,6bb29970,1e88c74f,4e6b896a,,,d9d9202f,,bcdee96c,8fc66e78,,
10001946,0.0,1,1.0,,1380.0,0.0,1.0,1.0,0.0,0.0,1.0,,,5a9ed9b0,38a947a1,6e022ce8,50050b52,25c83c98,fe6b92e5,94a113a4,0b153874,a73ee510,4ddb41b1,f47e21eb,8cf76223,4f3f2bb1,b28479f6,1f94fcb2,5224bfea,d4bb7bd8,2cad38b8,,,e2448a0d,,32c7478e,af647f02,,
10000582,0.0,2375,45.0,0.0,11482.0,535.0,5.0,28.0,368.0,0.0,2.0,,25.0,68fd1e64,4c2bc594,d032c263,c18be181,25c83c98,7e0ccccf,501069e9,37e4aa92,a73ee510,3b08e48b,a10c0fc9,dfbb09fb,30cbe961,64c94865,00631f93,84898b2a,e5ba7672,5a5b8bf9,,,0014c32a,,423fab69,3b183c5c,,
10000689,,2,82.0,13.0,7958.0,88.0,17.0,13.0,21.0,,7.0,0.0,13.0,41edac3d,80e26c9b,3cdb12fb,f922efad,25c83c98,fe6b92e5,8ebe9f8b,5b392875,a73ee510,5e3c7100,7760d878,dc906891,8c2b39b2,1adce6ef,0f942372,87acb535,8efede7f,005c6740,21ddcdc9,5840adea,a4b7004c,ad3062eb,bcdee96c,b34f3128,e8b83407,9904c656
10001904,1.0,24,2.0,3.0,12.0,10.0,3.0,5.0,74.0,1.0,3.0,0.0,3.0,05db9164,e5fb1af3,0a1435c1,bdcfffba,25c83c98,7e0ccccf,788ff59f,0b153874,a73ee510,3b08e48b,9c9d4957,5a276398,9325eab4,f862f261,2a079683,4da40ea2,e5ba7672,13145934,21ddcdc9,5840adea,290c14f6,,32c7478e,ded4aac9,2bf691b1,bdf46dce
10000918,,1,,,41163.0,227.0,0.0,3.0,20.0,,0.0,,,fbc55dae,68aede49,,,25c83c98,7e0ccccf,a9af10b0,5b392875,a73ee510,3b08e48b,bfacd3e5,,596a2dcd,07d13a8f,8dbc001a,,d4bb7bd8,262c8681,,,,,32c7478e,,,
10001236,,70,50.0,7.0,15825.0,143.0,1.0,11.0,61.0,,1.0,,8.0,68fd1e64,09e68b86,aa8c1539,85dd697c,25c83c98,13718bbd,124131fa,1f89b562,a73ee510,03ed27e7,9ba53fcc,d8c29807,42156eb4,8ceecbc8,d2f03b75,c64d548f,d4bb7bd8,63cdbb21,cf99e5de,5840adea,5f957280,,3a171ecb,1793a828,e8b83407,b7d9c3bc
10001513,0.0,181,1.0,1.0,21987.0,3111.0,2.0,3.0,55.0,0.0,1.0,,1.0,05db9164,c44e8a72,a0c177ca,13508380,43b19349,,86651165,49dd1874,a73ee510,3b08e48b,07678d3e,037af858,0159bf9f,07d13a8f,625dc429,5d016282,07c540c4,93e0e949,55dd3565,a458ea53,3db32b15,,3a171ecb,45ab94c8,724b04da,c84c4aec
10000989,,90,,0.0,1455.0,,0.0,6.0,10.0,,0.0,,2.0,05db9164,6f609dc9,d032c263,c18be181,25c83c98,7e0ccccf,315c76f3,37e4aa92,a73ee510,3b08e48b,e51ddf94,dfbb09fb,3516f6e6,07d13a8f,c169c458,84898b2a,776ce399,381bd833,,,0014c32a,,3a171ecb,3b183c5c,,
10001584,,2638,,2.0,21.0,,0.0,31.0,3.0,,0.0,,0.0,5a9ed9b0,2c16a946,2041209a,9f43a1b5,25c83c98,13718bbd,1771cc97,062b5529,a73ee510,03ed27e7,0983d89c,fd2387f8,1aa94af3,b28479f6,3628a186,87140baa,07c540c4,e4ca448c,,,d44b821a,,423fab69,9117a34a,,
10000479,,1,1.0,1.0,15361.0,112.0,8.0,1.0,106.0,,1.0,,1.0,05db9164,ae46a29d,08cf1eaf,f922efad,0942e0a7,fbad5c96,32da4b59,0b153874,a73ee510,eff5602f,9ee336c5,97c801de,094e10ad,b28479f6,cccdd69e,e2e2fcd9,e5ba7672,e32bf683,,,b964dee0,ad3062eb,32c7478e,b34f3128,,
10000940,1.0,11,2.0,2.0,12.0,2.0,1.0,3.0,2.0,1.0,1.0,,2.0,05db9164,38d50e09,d1d57309,0ae423e0,25c83c98,7e0ccccf,38eb9cf4,0b153874,a73ee510,547c0ffe,7f8ffe57,c93280d3,46f42a63,1adce6ef,e2c18d5a,3281f130,d4bb7bd8,582152eb,21ddcdc9,5840adea,fa89efc0,,32c7478e,8e0ae95a,001f3601,d67a6f5b
10000511,,2,14.0,24.0,2142.0,28.0,9.0,25.0,26.0,,3.0,0.0,24.0,5a9ed9b0,8ab240be,e159e1de,7967fcf5,43b19349,fe6b92e5,3d2d40a8,0b153874,a73ee510,3f07fd24,a4e98865,8a48eb95,e3543236,07d13a8f,e7dd0bfc,91a6eec5,e5ba7672,ca533012,21ddcdc9,5840adea,a97b62ca,,55dd3565,727a7cc7,445bbe3b,6935065e
10001185,0.0,62,19.0,7.0,3313.0,25.0,22.0,7.0,15.0,0.0,3.0,5.0,7.0,68fd1e64,09e68b86,aa8c1539,85dd697c,25c83c98,,6f472f0a,0b153874,a73ee510,3b08e48b,c06a23c2,d8c29807,df132e22,8ceecbc8,d2f03b75,c64d548f,8efede7f,63cdbb21,cf99e5de,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
10000733,,44,1.0,0.0,2710.0,,0.0,1.0,39.0,,0.0,,1.0,5bfa8ab5,0b8e9caf,d7c3940d,591ce327,25c83c98,7e0ccccf,776ecf80,37e4aa92,a73ee510,3b08e48b,d93e6010,9a114ace,4e8bba73,b28479f6,5340cb84,a7cfe8b7,776ce399,ca6a63cf,,,a70f8ad1,,bcdee96c,08b0ce98,,
10000829,,324,4.0,1.0,5735.0,56.0,2.0,3.0,15.0,,1.0,,1.0,5a9ed9b0,2c16a946,08d6e57c,64712dc5,25c83c98,fbad5c96,4aa938fc,0b153874,a73ee510,ff5a1549,7e40f08a,001b6b5c,1aa94af3,07d13a8f,18231224,08100483,07c540c4,74ef3502,,,63b17b27,,3a171ecb,9117a34a,,
10001986,,43,6.0,9.0,139.0,,0.0,14.0,9.0,,0.0,,9.0,05db9164,04e09220,95e13fd4,a1e6a194,25c83c98,13718bbd,69a978e2,0b153874,a73ee510,6c47047a,dae7ef8b,8882c6cd,6671dc76,b28479f6,69f825dd,23056e4f,3486227d,6fc84bfb,,,5155d8a3,,3a171ecb,ded4aac9,,
10001749,0.0,5,2.0,8.0,7194.0,527.0,1.0,8.0,439.0,0.0,1.0,,43.0,5a9ed9b0,38a947a1,c7cac1c4,f97061f8,25c83c98,fbad5c96,7d48c0ae,0b153874,a73ee510,88bc1874,5874c9c9,78458b47,740c210d,1adce6ef,6d818e07,8351b996,d4bb7bd8,166a4729,,,f669e8c8,,423fab69,d3d40c0b,,
10001057,0.0,0,,1.0,12638.0,117.0,4.0,2.0,112.0,0.0,3.0,0.0,1.0,5a9ed9b0,5dac953d,d032c263,c18be181,25c83c98,fbad5c96,6978304f,5b392875,a73ee510,5ba575e7,dbdb7970,dfbb09fb,9be66b48,1adce6ef,b4a435f2,84898b2a,e5ba7672,63e4be9d,,,0014c32a,,3a171ecb,3b183c5c,,
10000427,1.0,0,1.0,27.0,8.0,27.0,2.0,25.0,155.0,1.0,2.0,,27.0,05db9164,38a947a1,b00d1501,d16679b9,0942e0a7,fbad5c96,81bb0302,0b153874,a73ee510,2ec6a85f,b7094596,e0d76380,1f9d2c38,1adce6ef,1699e435,1203a270,e5ba7672,02a76863,,,73d06dde,,55dd3565,aee52b6f,,
10001158,1.0,6,9.0,24.0,542.0,97.0,1.0,44.0,87.0,1.0,1.0,,75.0,05db9164,d833535f,77f2f2e5,d16679b9,25c83c98,7e0ccccf,eb4aa055,0b153874,a73ee510,5162b19c,7a3651f5,9f32b866,95bc260c,07d13a8f,2e7bc615,31ca40b6,d4bb7bd8,7b49e3d2,,,dfcfc3fa,,32c7478e,aee52b6f,,
10000156,,1392,12.0,9.0,1775.0,,0.0,16.0,31.0,,0.0,,16.0,68fd1e64,4c2bc594,d032c263,c18be181,0942e0a7,fbad5c96,16401b7d,5b392875,a73ee510,3b08e48b,20ec800a,dfbb09fb,18a5e4b8,8ceecbc8,7ac43a46,84898b2a,776ce399,bc48b783,,,0014c32a,,3a171ecb,3b183c5c,,
10000491,,-1,,0.0,14.0,92.0,0.0,0.0,83.0,,0.0,,0.0,05db9164,09e68b86,6fb84f11,74c01727,25c83c98,,3d63f4e6,0b153874,a73ee510,5aecc062,af6a4ffc,1c6608e2,2a1579a2,07d13a8f,36721ddc,bf784cf7,3486227d,5aed7436,55dd3565,5840adea,1e5dd970,,32c7478e,75aae369,e8b83407,fa1d538c
10000692,11.0,47,5.0,6.0,57.0,6.0,24.0,10.0,12.0,1.0,2.0,0.0,6.0,05db9164,207b2d81,feeaa45b,8a49d676,25c83c98,fbad5c96,0c0c2a5d,0b153874,a73ee510,1dda5fa3,f2a5d7d2,d083c277,a3b89afc,07d13a8f,f3c64936,e52b079d,e5ba7672,f724634a,21ddcdc9,a458ea53,58a9b2cf,,32c7478e,5ee1762f,001f3601,3ad3379e
10000027,0.0,20,2.0,2.0,7188.0,170.0,2.0,3.0,24.0,0.0,2.0,0.0,2.0,68fd1e64,38a947a1,ee6e4611,30d9fc77,4cf72387,7e0ccccf,bf9d4f90,0b153874,a73ee510,b7c4dad5,81cae03e,5332e3fb,d413ef3e,07d13a8f,a6d97bf2,ec676ace,3486227d,02e8d897,,,b055c31b,,3a171ecb,ae2cd100,,
10001109,0.0,25,3.0,,3098.0,138.0,2.0,0.0,337.0,0.0,2.0,,,05db9164,09e68b86,aa055270,266fa7f2,25c83c98,13718bbd,d7c52953,0b153874,a73ee510,55485eb1,4ab39743,9c70001c,ab8a1a53,b28479f6,52baadf5,6bf0f847,e5ba7672,5aed7436,7a45f7f2,b1252a9d,190a3f41,,3a171ecb,745511b1,e8b83407,3d08d77e
10001238,,714,,,42079.0,,0.0,1.0,19.0,,0.0,,,8cf07265,80e26c9b,d22b6c2c,c446f801,25c83c98,,24562a27,0b153874,a73ee510,9f496763,6c07e306,78e8bc24,1cd94349,b28479f6,4c1df281,8a924036,e5ba7672,f54016b9,21ddcdc9,b1252a9d,d494b334,,32c7478e,93a075b7,e8b83407,4271e99f
10000017,0.0,1,,0.0,16597.0,557.0,3.0,5.0,123.0,0.0,1.0,,1.0,8cf07265,7cd19acc,77f2f2e5,d16679b9,4cf72387,fbad5c96,8fb24933,0b153874,a73ee510,0095a535,3617b5f5,9f32b866,428332cf,b28479f6,83ebd498,31ca40b6,e5ba7672,d0e5eb07,,,dfcfc3fa,ad3062eb,32c7478e,aee52b6f,,
10000629,,0,3.0,2.0,7607.0,,0.0,3.0,10.0,,0.0,,2.0,05db9164,5368c225,e22844b2,fadd820a,384874ce,7e0ccccf,4bd081bf,51d76abe,a73ee510,3b08e48b,2271d551,2a4ef823,0092602c,b28479f6,5502ed6b,eaead249,776ce399,a53934cb,,,71e3dba8,,be7c41b4,2cb8e5cc,,
10000519,,1,100.0,5.0,18767.0,372.0,2.0,5.0,28.0,,1.0,,5.0,05db9164,58e67aaf,28891684,d9638d09,25c83c98,7e0ccccf,5a91237e,0b153874,a73ee510,7ef432eb,59cd5ae7,7ca6db28,8b216f7b,07d13a8f,10935a85,2bae09ce,07c540c4,c21c3e4c,55dd3565,b1252a9d,47e8548b,,32c7478e,3fdb382b,9b3e8820,49d68486
10000361,,21,15.0,1.0,73965.0,,0.0,5.0,6.0,,0.0,,1.0,5a9ed9b0,4f25e98b,76ac8dc1,16fe249c,384874ce,13718bbd,e90f312d,0b153874,7cc72ec2,f3e003c4,b8f1b1b5,76aed55b,00613319,64c94865,d5690a93,8f13519e,07c540c4,bc5a0ff7,6f3756eb,5840adea,1638b454,,3a171ecb,1793a828,e8b83407,a475662f
10000289,0.0,4,3.0,2.0,2671.0,24.0,19.0,6.0,70.0,0.0,5.0,,2.0,05db9164,38a947a1,224c3320,5d5ca56d,4cf72387,7e0ccccf,9e71db6f,5b392875,a73ee510,ac25feb9,60730c2f,e1193f76,3b5e3853,07d13a8f,ea8d4f05,af157112,e5ba7672,c2ce2fbb,,,898614a0,,93bad2c0,0505abc3,,
10001551,6.0,-1,17.0,14.0,2.0,0.0,79.0,31.0,258.0,1.0,4.0,0.0,0.0,05db9164,942f9a8d,2d89f89f,d87605f3,25c83c98,7e0ccccf,3f4ec687,5b392875,a73ee510,726f00fd,c4adf918,b75dc15d,85dbe138,1adce6ef,ae97ecc3,ac5fe8ed,8efede7f,1f868fdd,21ddcdc9,a458ea53,64765008,,bcdee96c,ff05d9df,9d93af03,cea38b55
10001785,0.0,35,12.0,5.0,2162.0,120.0,6.0,47.0,66.0,0.0,1.0,0.0,6.0,05db9164,09e68b86,fea142f8,3ee79af4,25c83c98,7e0ccccf,33cca6fa,0b153874,a73ee510,401ced54,683e14e9,aa5bf28c,2b9fb512,07d13a8f,36721ddc,1686e3d8,e5ba7672,5aed7436,2b558521,b1252a9d,46da9a39,,3a171ecb,31f298fa,9d93af03,b731a9be
10001548,0.0,0,42.0,2.0,8939.0,70.0,5.0,2.0,448.0,0.0,3.0,,2.0,05db9164,58e67aaf,65152931,d1580706,4cf72387,7e0ccccf,a61aeaec,0b153874,a73ee510,7e3f556f,17586bd8,0825e20c,4c9ff09f,051219e6,d83fb924,7aa21401,e5ba7672,c21c3e4c,21ddcdc9,a458ea53,4357c90d,,c7dc6720,3eac68e7,9b3e8820,ecea19e4
10001326,0.0,10,17.0,28.0,4566.0,439.0,7.0,24.0,454.0,0.0,1.0,,34.0,87552397,09e68b86,aa8c1539,85dd697c,25c83c98,,f970e59a,0b153874,a73ee510,afbc3455,5adcba72,d8c29807,5b6ee19d,8ceecbc8,d2f03b75,c64d548f,e5ba7672,63cdbb21,cf99e5de,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
10000076,,140,2.0,2.0,,,0.0,2.0,2.0,,0.0,,2.0,5bfa8ab5,38a947a1,,,25c83c98,7e0ccccf,88002ee1,64523cfa,7cc72ec2,3b08e48b,f1b78ab4,,6e5da64f,07d13a8f,c2b7aaa6,,2005abd1,659bdb63,,,,ad3062eb,32c7478e,,,
10000578,0.0,16,3.0,32.0,1617.0,149.0,29.0,22.0,1289.0,0.0,8.0,,78.0,287e684f,38a947a1,f0d561be,52e2204b,25c83c98,7e0ccccf,8c327098,0b153874,a73ee510,5162b19c,d556b556,28e874ed,1d36488f,b28479f6,7c5bcff3,196ee6aa,e5ba7672,876521e0,,,ce0c1e81,,32c7478e,b258af68,,
10000279,6.0,0,29.0,41.0,14.0,41.0,6.0,37.0,41.0,1.0,1.0,,41.0,8cf07265,207b2d81,239b957d,d50f8f77,25c83c98,,029d716d,37e4aa92,a73ee510,e9f37f7e,f2a5d7d2,ae9cdcd4,a3b89afc,07d13a8f,f3c64936,85520cc5,e5ba7672,f724634a,21ddcdc9,a458ea53,85cc3ff1,,3a171ecb,610a186d,001f3601,13843d40
10000933,,34,,38.0,21.0,,0.0,38.0,38.0,,0.0,,11.0,05db9164,04e09220,f9aed79a,a1e6a194,25c83c98,fbad5c96,72cf945c,0b153874,a73ee510,93a1c228,7b61aa9b,22b8ec76,7f5bf282,051219e6,f29e2024,23056e4f,1e88c74f,e161d23a,,,33c96fc7,,32c7478e,ded4aac9,,
10000475,0.0,-1,1.0,18.0,12229.0,780.0,2.0,39.0,316.0,0.0,1.0,,18.0,68fd1e64,d833535f,77f2f2e5,d16679b9,4cf72387,fe6b92e5,dc7659bd,5b392875,a73ee510,b883655e,e51ddf94,9f32b866,3516f6e6,b28479f6,a66dcf27,31ca40b6,07c540c4,7b49e3d2,,,dfcfc3fa,,3a171ecb,aee52b6f,,
10001339,11.0,0,25.0,34.0,1.0,3.0,35.0,25.0,68.0,3.0,8.0,,3.0,68fd1e64,287130e0,31c3612f,14f195ab,25c83c98,,22fd2464,0b153874,a73ee510,d6133462,d9085127,60e03064,ef7e2c01,1adce6ef,310d155b,dff2640e,e5ba7672,891589e7,21ddcdc9,b1252a9d,7f311475,,32c7478e,3fdb382b,ea9a246c,49d68486
10001255,,1,,,10749.0,13.0,1.0,2.0,13.0,,1.0,,,eb0a56a5,68b3edbf,d032c263,c18be181,25c83c98,7e0ccccf,7a9ee4e9,0b153874,a73ee510,c2c7f85b,a17df47c,dfbb09fb,1ec8e563,b28479f6,f5799c5c,84898b2a,d4bb7bd8,3009c5ce,,,0014c32a,,55dd3565,3b183c5c,,
10000814,2.0,61,101.0,5.0,432.0,137.0,2.0,27.0,27.0,1.0,1.0,0.0,27.0,17f69355,207b2d81,6ace624e,53aa3ec9,25c83c98,7e0ccccf,6de90931,0b153874,a73ee510,14781fa9,87fe3e10,f5d83e6f,3bd6c21d,b28479f6,899da9d5,36cd32ed,e5ba7672,25c88e42,21ddcdc9,b1252a9d,166779ab,,32c7478e,43237b56,001f3601,03764a6b
10000840,,1,40.0,6.0,10104.0,,,5.0,,,,0.0,6.0,05db9164,80e26c9b,ff030570,85dd697c,25c83c98,7e0ccccf,50b436c9,0b153874,a73ee510,376bbe93,a0a5e9d7,8229bc5b,ee79db7b,8ceecbc8,8d015bd8,da441c7e,e5ba7672,005c6740,21ddcdc9,5840adea,5a9032d6,,32c7478e,1793a828,e8b83407,9904c656
10001521,,14,8.0,5.0,210.0,,0.0,17.0,17.0,,0.0,,5.0,be589b51,421b43cd,9503254b,29998ed1,25c83c98,7e0ccccf,9ebbd31c,0b153874,a73ee510,bde51b15,e973bfd7,6aaba33c,439cd4cc,b28479f6,2d0bb053,b041b04a,3486227d,2804effd,,,723b4dfd,c9d4222a,32c7478e,b34f3128,,
10001360,,0,14.0,3.0,5875.0,68.0,5.0,3.0,4.0,,1.0,,3.0,68fd1e64,95e2d337,f715d8cc,7c15fa92,25c83c98,13718bbd,fc19bfad,5b392875,a73ee510,255f3655,3bcfd189,b9bee1c2,077640f4,07d13a8f,aa0c8851,498519e1,e5ba7672,1a9f6745,04de9d96,5840adea,71b9f31a,,32c7478e,cf9f8644,2bf691b1,00cd7c8a
10000966,,341,,,15222.0,413.0,1.0,44.0,216.0,,1.0,,,05db9164,0a519c5c,b00d1501,d16679b9,25c83c98,fbad5c96,d009ea70,0b153874,a73ee510,3b08e48b,6643a666,e0d76380,85cbc79f,07d13a8f,5a7d5bd8,1203a270,d4bb7bd8,eea3ab97,,,73d06dde,,32c7478e,aee52b6f,,
10000047,31.0,17,2.0,11.0,290.0,23.0,31.0,23.0,65.0,2.0,2.0,,11.0,05db9164,4f25e98b,03280284,5214fda3,25c83c98,fbad5c96,0c41b6a1,0b153874,a73ee510,fa642b71,4ba74619,60bab41d,879fa878,07d13a8f,5be89da3,b6acbd10,e5ba7672,bc5a0ff7,fae651c5,a458ea53,3792328c,c0061c6d,423fab69,7a8e7ed6,001f3601,f159b6cb
10000793,30.0,-1,42.0,2.0,4.0,0.0,153.0,6.0,11.0,2.0,13.0,,0.0,09ca0b81,89ddfee8,15d7420a,ff441594,25c83c98,3bf701e7,bd9a3e0c,0b153874,a73ee510,54dee4bc,980e6880,5f27bc59,aef750b7,051219e6,d5223973,e2b64862,e5ba7672,5bb2ec8e,7a45f7f2,a458ea53,2f4978df,ad3062eb,32c7478e,75c8ca05,f0f449dd,d21d0b82
10000916,,8,27.0,41.0,2250.0,121.0,0.0,49.0,96.0,,0.0,,41.0,05db9164,38a947a1,34dc29c3,3b5eac6d,30903e74,,9163310a,5b392875,a73ee510,f237a99b,aa1ed092,5b705e99,8cde53cf,64c94865,889bd31d,dbd7949e,d4bb7bd8,3b659b79,,,7c364f6a,,be7c41b4,c646e587,,
10000682,,3,2.0,1.0,7283.0,,0.0,2.0,143.0,,0.0,0.0,1.0,05db9164,09e68b86,cda8326c,8d7c66f1,25c83c98,fbad5c96,a98de837,1f89b562,a73ee510,4effc25c,f5204b1e,3fc820a5,e4fa2059,64c94865,91126f30,19612a0f,3486227d,5aed7436,fc134659,a458ea53,8b48b2b4,,3a171ecb,4ab39369,e13f3bf1,a48f96ee
10000506,,0,3.0,9.0,41555.0,279.0,0.0,11.0,161.0,,0.0,,9.0,05db9164,0a519c5c,ad4b77ff,d16679b9,25c83c98,fe6b92e5,7a019822,0b153874,a73ee510,3b08e48b,c012107d,a2f4e8b5,c8dca410,1adce6ef,123b2f29,89052618,07c540c4,2efa89c6,,,d4703ebd,ad3062eb,be7c41b4,aee52b6f,,
10000353,,113,1.0,,7443.0,,0.0,2.0,50.0,,0.0,,,05db9164,fc1fa80d,d459136b,45e7b9c6,384874ce,7e0ccccf,57b4bd89,0b153874,a73ee510,3b08e48b,71fd20d9,cdac3d6f,ddd66ce1,b28479f6,4ce39685,4dab12d6,776ce399,f68751cd,,,e58d8a84,,3a171ecb,1793a828,,
10000276,,1,1.0,,14780.0,80.0,1.0,1.0,14.0,,1.0,,,05db9164,4f25e98b,71f00ff4,7775ae9a,a9411994,,44fb02c7,5b392875,a73ee510,d108fc83,2386466b,c60138d9,45db6793,07d13a8f,5be89da3,3b82d2a6,d4bb7bd8,bc5a0ff7,6f3756eb,a458ea53,3c482138,,32c7478e,75b08a3d,e8b83407,22a3ad95
10000970,,55,,7.0,8.0,,0.0,7.0,7.0,,0.0,,7.0,ae82ea21,2c16a946,5a5f8486,f8f91ee1,25c83c98,7e0ccccf,6c338953,0b153874,a73ee510,3b08e48b,553ebda3,2d827a5f,49fe3d4e,07d13a8f,18231224,7e161c9a,776ce399,74ef3502,,,7d1d76fd,,be7c41b4,9117a34a,,
10001816,0.0,1,,7.0,4970.0,436.0,11.0,36.0,721.0,0.0,8.0,,7.0,68fd1e64,08d6d899,9143c832,f56b7dd5,43b19349,fe6b92e5,b77d7b90,0b153874,a73ee510,4549ea1f,fd89d13f,ae1bb660,81621307,b28479f6,bffbd637,bad5ee18,e5ba7672,bbf70d82,,,0429f84b,,85d5a995,c0d61a5c,,
10001302,0.0,2,5.0,5.0,1572.0,57.0,1.0,33.0,55.0,0.0,1.0,,5.0,68fd1e64,04e09220,,,4cf72387,7e0ccccf,85e7f6c9,0b153874,a73ee510,4eede548,02efa108,,62555ac3,b28479f6,b21f08fe,,d4bb7bd8,e161d23a,,,,c9d4222a,32c7478e,,,
10000333,88.0,0,2.0,,154.0,4.0,519.0,32.0,855.0,1.0,32.0,0.0,,05db9164,1cfdf714,186dcc1e,73a88631,25c83c98,3bf701e7,0df4df10,0b153874,a73ee510,acccca1c,4d8549da,b8a5fa1e,51b97b8f,07d13a8f,f775a6d5,89fbd5c5,8efede7f,e88ffc9d,083e89d9,a458ea53,d757e8f8,ad3062eb,c7dc6720,3fdb382b,cb079c2d,49d68486
10001667,0.0,3,,,7496.0,186.0,20.0,6.0,470.0,0.0,5.0,,,68fd1e64,d0a34130,d032c263,c18be181,25c83c98,fe6b92e5,bd53d88a,5b392875,a73ee510,2919778b,ec967dd8,dfbb09fb,9106f5bd,07d13a8f,873e1e46,84898b2a,e5ba7672,d5288836,,,0014c32a,c9d4222a,423fab69,3b183c5c,,
10000135,,0,17.0,3.0,19811.0,,0.0,3.0,54.0,,0.0,,3.0,05db9164,f0cf0024,6f67f7e5,41274cd7,25c83c98,fbad5c96,9b6a4cc9,0b153874,a73ee510,a5aa06c8,8e3de34d,623049e6,b50e2ed0,b28479f6,e6c5b5cd,c92f3b61,1e88c74f,b04e4670,21ddcdc9,5840adea,60f6221e,,32c7478e,43f13e8b,ea9a246c,731c3655
10000182,6.0,0,7.0,1.0,138.0,11.0,6.0,5.0,5.0,2.0,2.0,,5.0,05db9164,8e4f887c,,,43b19349,7e0ccccf,7f2c5a6e,0b153874,a73ee510,9bb3a560,d21494f8,,f47f13e4,b28479f6,344bf25d,,d4bb7bd8,4b340164,,,,c9d4222a,32c7478e,,,
10001760,,-1,,,,,0.0,2.0,2.0,,0.0,,,05db9164,68aede49,23407986,24b7fac2,25c83c98,fbad5c96,08383675,0b153874,7cc72ec2,3b08e48b,727af3e2,f5b766be,49fe3d4e,b28479f6,5c595008,68ec8702,2005abd1,262c8681,,,966e4a0e,ad3062eb,be7c41b4,55dea74e,,
10001366,,1,2.0,2.0,4363.0,4.0,26.0,2.0,7.0,,4.0,,2.0,05db9164,80e26c9b,8ff53ad6,6d238700,25c83c98,,50b436c9,0b153874,a73ee510,162688a8,a0a5e9d7,3538930e,ee79db7b,b28479f6,4c1df281,de4483ef,e5ba7672,f54016b9,21ddcdc9,b1252a9d,49ffca9c,,32c7478e,74441c16,e8b83407,9e0634e6
10001070,1.0,247,34.0,21.0,637.0,29.0,6.0,28.0,104.0,1.0,2.0,0.0,23.0,be589b51,58e67aaf,814a9e19,650cc93b,25c83c98,7e0ccccf,60f43665,0b153874,a73ee510,d3f2758d,b91c2548,33b83378,a03da696,b28479f6,62eca3c0,db2d4359,27c07bd6,c21c3e4c,1d04f4a4,b1252a9d,1a0fc4bc,,bcdee96c,3fdb382b,9b3e8820,49d68486
10000107,2.0,-1,0.0,0.0,18.0,0.0,2.0,0.0,0.0,1.0,1.0,,0.0,05db9164,f9875f50,77f60250,28efe861,25c83c98,,d5527617,64523cfa,a73ee510,3b08e48b,7466b255,0d58691e,f4c487c1,b28479f6,722bd39d,accf6945,07c540c4,43a9e4b1,5ce524d1,b1252a9d,6e738c9a,,32c7478e,8b4b13eb,e8b83407,ea6868de
10000390,6.0,23,,,786.0,39.0,6.0,4.0,4.0,1.0,1.0,,,05db9164,8b0005b7,d8d3b957,db839e0d,4cf72387,7e0ccccf,daddc43a,0b153874,a73ee510,3b08e48b,418037d7,d30d5ab9,b0bfed6d,07d13a8f,715f1291,d1060f31,07c540c4,dff11f14,,,0ce9e052,c9d4222a,423fab69,af0cb2c3,,
10001164,1.0,625,4.0,4.0,361.0,18.0,1.0,18.0,18.0,1.0,1.0,0.0,4.0,05db9164,8db5bc37,1f73524c,1033cc11,25c83c98,7e0ccccf,1d794a16,37e4aa92,a73ee510,ed086ca2,4c9e8313,979f0b63,67b031b4,07d13a8f,37f2f6dc,4ba9e7b1,d4bb7bd8,181879d3,,,5e15fd0d,ad3062eb,32c7478e,b7c6f617,,
10001609,,0,7.0,3.0,33320.0,,0.0,5.0,5.0,,0.0,,3.0,5a9ed9b0,403ea497,2cbec47f,3e2bfbda,25c83c98,,93b64cee,0b153874,7cc72ec2,b16556f1,4b0929e2,21a23bfe,c0ed8bfc,07d13a8f,e3209fc2,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,,32c7478e,1793a828,e8b83407,2fede552
10000262,6.0,110,3.0,2.0,1.0,0.0,10.0,2.0,101.0,1.0,3.0,0.0,0.0,87552397,58e67aaf,6d779f20,42f176ba,25c83c98,,23cbab1b,5b392875,a73ee510,a94bcc2b,383e77c6,be0b2941,cce745f5,1adce6ef,d002b6d9,90dd5213,e5ba7672,c21c3e4c,f08320ef,b1252a9d,ddfc583d,,32c7478e,8908ecb7,9b3e8820,48312058
10001660,,237,8.0,3.0,,,0.0,3.0,3.0,,0.0,,3.0,05db9164,38a947a1,faf21a45,2d618c4e,25c83c98,13718bbd,e7698644,0b153874,7cc72ec2,3b08e48b,f9d0f35e,24d54eae,b55434a9,1adce6ef,11984f7a,a7d2766d,2005abd1,b3fe34a4,,,de8cff3a,,be7c41b4,8ab167ac,,
10000260,,164,7.0,2.0,10118.0,259.0,20.0,11.0,256.0,,5.0,0.0,30.0,39af2607,26a88120,b00d1501,d16679b9,25c83c98,fbad5c96,49b74ebc,1f89b562,a73ee510,7f79890b,c4adf918,e0d76380,85dbe138,b28479f6,2ebbf26a,1203a270,e5ba7672,b486119d,,,73d06dde,,32c7478e,aee52b6f,,
10000487,,1,11.0,5.0,26249.0,273.0,1.0,6.0,61.0,,1.0,,5.0,87552397,95e2d337,0a3107e6,69040d07,4cf72387,7e0ccccf,1662de8f,0b153874,a73ee510,e8c6d5af,dd244141,c34daa06,468f0632,64c94865,7de4908b,6b9ff0bc,d4bb7bd8,701d695d,712d530c,a458ea53,9cb2c7a4,,be7c41b4,4921c033,2bf691b1,80b0aeb9
10000303,2.0,0,22.0,2.0,797.0,34.0,6.0,27.0,132.0,1.0,2.0,,2.0,05db9164,09e68b86,0fa27f12,fc649927,25c83c98,fe6b92e5,85f287b3,37e4aa92,a73ee510,39cda501,7c53dc69,3aedb2ef,4fd35e8f,07d13a8f,36721ddc,96426867,e5ba7672,5aed7436,75916440,a458ea53,3d3c217e,c9d4222a,423fab69,b6175649,e8b83407,818b11e3
10000053,0.0,2,22.0,3.0,4687.0,242.0,6.0,6.0,183.0,0.0,1.0,4.0,3.0,05db9164,287130e0,c09cf4ef,bc8d1aa6,25c83c98,13718bbd,1919941b,37e4aa92,a73ee510,6c47047a,86c05043,c4bba41d,2ecea536,b28479f6,9efd8b77,ac2e5095,8efede7f,891589e7,2efde463,b1252a9d,dc4e98e3,,3a171ecb,ee42de86,e8b83407,a00829e6
10000717,0.0,155,1.0,1.0,7233.0,,0.0,13.0,60.0,0.0,0.0,,1.0,05db9164,8b57fabc,eb466461,2566f1d2,25c83c98,7e0ccccf,10844cfc,0b153874,a73ee510,2ce2764d,d93e6010,26d478d3,4e8bba73,b28479f6,97bbf6e5,8c439d97,27c07bd6,1490697e,,,b3996c82,8ec974f4,32c7478e,382cd1f1,,
10000148,,-1,,,4253.0,2.0,6.0,1.0,2.0,,2.0,,,b455c6d7,38a947a1,,,25c83c98,,6cdb3998,0b153874,a73ee510,21fa915a,5874c9c9,,740c210d,07d13a8f,ce0f2958,,e5ba7672,87c9f30d,,,,,32c7478e,,,
10001463,0.0,0,8.0,1.0,1347.0,13.0,31.0,6.0,122.0,0.0,6.0,0.0,1.0,05db9164,8e4f887c,,,4cf72387,13718bbd,9ffbc792,0b153874,a73ee510,fa8c1efe,6ae20392,,78644930,07d13a8f,b708086d,,e5ba7672,4b340164,,,,,32c7478e,,,
10001579,,0,26.0,13.0,1514.0,14.0,9.0,13.0,123.0,,3.0,0.0,13.0,05db9164,09e68b86,aa8c1539,85dd697c,25c83c98,fe6b92e5,d385ea68,a674580f,a73ee510,3b08e48b,7940fc2a,d8c29807,00e20e7b,07d13a8f,801ee1ae,c64d548f,e5ba7672,63cdbb21,21ddcdc9,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
10001621,0.0,0,,4.0,23158.0,452.0,0.0,0.0,193.0,0.0,0.0,,4.0,68fd1e64,942f9a8d,8d9e5174,6fc4f0c4,25c83c98,7e0ccccf,49b74ebc,0b153874,a73ee510,0e9ead52,c4adf918,aadcb74e,85dbe138,1adce6ef,ae97ecc3,e1c6cde7,07c540c4,1f868fdd,c4209246,b1252a9d,6e0198a2,,32c7478e,3fdb382b,001f3601,49d68486
10001926,9.0,2974,13.0,0.0,116.0,0.0,139.0,24.0,324.0,1.0,29.0,,0.0,39af2607,52e9ecfc,20009f96,73fec7fb,4cf72387,fbad5c96,1c86e0eb,0b153874,a73ee510,e7ba2569,755e4a50,57c08194,5978055e,b28479f6,e2dd9a77,054b386f,e5ba7672,1e42ba17,21ddcdc9,b1252a9d,0dd41d11,,32c7478e,f9f7eb22,f0f449dd,a3a8e8f4
10000080,,0,,,14919.0,,0.0,0.0,0.0,,0.0,,,05db9164,4c2bc594,d032c263,c18be181,384874ce,fe6b92e5,b7c924a4,64523cfa,a73ee510,3b08e48b,2cc0193e,dfbb09fb,433f9499,8ceecbc8,7ac43a46,84898b2a,1e88c74f,bc48b783,,,0014c32a,,3a171ecb,3b183c5c,,
10001853,,86,,7.0,11.0,594.0,0.0,7.0,54.0,,0.0,,4.0,68fd1e64,68b3edbf,d032c263,c18be181,25c83c98,,36b796aa,0b153874,a73ee510,739ff196,7373475d,dfbb09fb,cfbfce5c,07d13a8f,40f9f2b8,84898b2a,e5ba7672,3009c5ce,,,0014c32a,,3a171ecb,3b183c5c,,
10000264,,0,2.0,19.0,87174.0,4638.0,0.0,5.0,1189.0,,0.0,,29.0,05db9164,38a947a1,b97d785f,98b100e5,25c83c98,7e0ccccf,a207ddc0,5b392875,7cc72ec2,3b08e48b,f87e56ab,b9898409,0eca41f0,b28479f6,2406b2d9,ef734ec3,07c540c4,adad417c,,,376f7f0d,,3a171ecb,874db5d2,,
10001509,,1,1.0,18.0,171784.0,,0.0,5.0,2.0,,0.0,,18.0,be589b51,39dfaa0d,74e1a23a,9a6888fb,4cf72387,7e0ccccf,2db71de9,1f89b562,7cc72ec2,3b08e48b,a0060bca,fb8fab62,22d23aac,b28479f6,a36eb32c,c6b1e1b2,776ce399,75edcf1f,21ddcdc9,5840adea,99c09e97,ad3062eb,85d5a995,335a6a1e,010f6491,aa5f0a15
10000579,,43,2.0,2.0,10.0,,0.0,2.0,14.0,,0.0,,2.0,05db9164,d4ef6e5b,,,4cf72387,7e0ccccf,65d3801d,1f89b562,a73ee510,5ba575e7,043725ae,,7f0d7407,b28479f6,b9c4a1cb,,e5ba7672,0bcc943a,,,,,3a171ecb,,,
10000538,,31,10.0,1.0,22423.0,2186.0,5.0,2.0,636.0,,2.0,,2.0,5a9ed9b0,298d0556,02cf9876,c18be181,43b19349,7e0ccccf,15da22d0,1f89b562,a73ee510,17a0cc50,d7129972,8fe001f4,c0c5f46b,b28479f6,48a5d003,36103458,07c540c4,a8f42b59,,,e587c466,,32c7478e,3b183c5c,,
10001002,,1,5.0,2.0,30517.0,949.0,0.0,3.0,26.0,,0.0,,2.0,05db9164,3df44d94,d032c263,c18be181,25c83c98,7e0ccccf,830c88f3,0b153874,a73ee510,1a88cf9b,7defe259,dfbb09fb,11fa2c12,b28479f6,e0052e65,84898b2a,d4bb7bd8,e7648a8f,,,0014c32a,,3a171ecb,3b183c5c,,
10000037,6.0,-1,,,915.0,40.0,26.0,33.0,72.0,1.0,3.0,,,9a89b36c,4f25e98b,9042c4ea,343f8ed3,25c83c98,fbad5c96,27cc0b50,0b153874,a73ee510,f364a867,7671c62f,00750e7a,1fa0660e,b28479f6,df2f73e9,4f71659c,e5ba7672,bc5a0ff7,21ddcdc9,a458ea53,706ee322,c9d4222a,bcdee96c,990a118a,001f3601,47b6f269
10001842,0.0,3,1.0,3.0,10764.0,,0.0,37.0,3.0,0.0,0.0,,42.0,05db9164,d833535f,b00d1501,d16679b9,25c83c98,7e0ccccf,dbc0d030,25239412,a73ee510,e69922fa,84b20221,e0d76380,5a2964f9,1adce6ef,5e7a356b,1203a270,e5ba7672,281769c2,,,73d06dde,,32c7478e,aee52b6f,,
10001486,,1,,,,,0.0,0.0,9.0,,0.0,,,05db9164,5ca60b73,03f5e595,bdc301e2,43b19349,7e0ccccf,88002ee1,0b153874,7cc72ec2,3b08e48b,f1b78ab4,870771b1,6e5da64f,b28479f6,6bd27a1c,bb01ab0a,2005abd1,04c62c3d,,,92259097,,32c7478e,8ea22d26,,
10001116,,645,,,,,,0.0,,,,,,5a9ed9b0,38a947a1,85131e23,77a460f8,25c83c98,7e0ccccf,d0bdaa98,5b392875,7cc72ec2,3b08e48b,dd6fc8cb,ea2802ed,ebd756bd,07d13a8f,280bdde5,62e74770,2005abd1,6e4ecdd3,,,54f59a22,8ec974f4,32c7478e,30601602,,
10000621,0.0,1,2.0,,4367.0,127.0,7.0,17.0,86.0,0.0,1.0,,,05db9164,d833535f,b00d1501,d16679b9,4cf72387,fe6b92e5,b3ddf65a,0b153874,a73ee510,bde51b15,e973bfd7,e0d76380,439cd4cc,b28479f6,a733d362,1203a270,e5ba7672,281769c2,,,73d06dde,,32c7478e,aee52b6f,,
10001478,,1,33.0,11.0,13488.0,,0.0,3.0,528.0,,0.0,,47.0,2d4ea12b,ef69887a,53ea179a,b46a6c09,25c83c98,7e0ccccf,a1017c6f,0b153874,a73ee510,3b08e48b,ac31fe3c,7557aa43,bd9310c2,b28479f6,902a109f,3a6d0658,776ce399,4bcc9449,86073ec9,a458ea53,310750c1,ad3062eb,32c7478e,fd1be8d4,e8b83407,9981343d
10000386,0.0,-1,,,8697.0,361.0,9.0,0.0,99.0,0.0,1.0,0.0,,5a9ed9b0,4c2bc594,d032c263,c18be181,4cf72387,7e0ccccf,c0adc046,5b392875,a73ee510,3b08e48b,3b8d987f,dfbb09fb,a8ff8c8a,1adce6ef,ae0c3875,84898b2a,e5ba7672,15a36060,,,0014c32a,c9d4222a,3a171ecb,3b183c5c,,
10001819,3.0,1,35.0,8.0,339.0,17.0,3.0,10.0,9.0,1.0,1.0,,9.0,05db9164,09e68b86,c4f1b7d8,6eabba09,384874ce,,045eef77,5b392875,a73ee510,dfa3d0ad,e81438fc,2f06501b,f745e01e,f7c1b33f,5726b2dc,73bee060,07c540c4,5aed7436,cb6b4a8b,b1252a9d,ceac1e70,,32c7478e,3fdb382b,e8b83407,49d68486
10001408,,1477,2.0,1.0,13481.0,152.0,1.0,3.0,166.0,,1.0,,1.0,05db9164,9e5ce894,2a3c87a2,13508380,0942e0a7,7e0ccccf,c0a9460b,5b392875,a73ee510,14778a99,5420373c,95684be2,ab160bba,07d13a8f,8cf98699,cb8555a4,e5ba7672,a5bb7b8a,1d1eb838,b1252a9d,7a32165a,,423fab69,45ab94c8,ea9a246c,c84c4aec
10001073,0.0,598,1.0,1.0,6492.0,130.0,7.0,1.0,81.0,0.0,1.0,,1.0,8cf07265,8aade191,aba270bc,3d9541ed,4cf72387,7e0ccccf,6f208241,0b153874,a73ee510,29b00bcc,d9244025,066be83b,a615211e,dcd762ee,43a44453,f68fdaa9,e5ba7672,eef7297e,,,1266f168,,3a171ecb,8d4a9014,,
10001586,4.0,190,,0.0,2.0,0.0,4.0,0.0,0.0,1.0,1.0,,0.0,8cf07265,e3a0dc66,b2bb4a16,bd334821,43b19349,fbad5c96,5e64ce5f,37e4aa92,a73ee510,1dfa8956,8b94178b,e5a589c8,025225f2,07d13a8f,c251e774,e2f5ca24,e5ba7672,b608c073,,,1d67143f,,32c7478e,f2e9f0dd,,
10001994,,3,3.0,5.0,23857.0,275.0,2.0,6.0,90.0,,1.0,,5.0,05db9164,e112a9de,af5655e7,22504558,4cf72387,fe6b92e5,ce4f7f55,0b153874,a73ee510,099b68bd,38f692a7,252162ec,6e5da64f,b28479f6,ce3c65c0,776f5665,e5ba7672,45e3284c,,,5c7c443c,,32c7478e,8f079aa5,,
10001921,5.0,2,,,1382.0,17.0,78.0,25.0,76.0,0.0,9.0,,,05db9164,942f9a8d,56472604,53a5d493,25c83c98,,49b74ebc,6c41e35e,a73ee510,e113fc4b,c4adf918,08531bcb,85dbe138,1adce6ef,ae97ecc3,76b06ec3,e5ba7672,1f868fdd,9437f62f,a458ea53,ff4c70b8,,32c7478e,da89b7d5,7a402766,c7beb94e
10000077,2.0,0,,7.0,443.0,37.0,7.0,34.0,282.0,1.0,4.0,7.0,7.0,3c9d8785,38a947a1,4470baf4,8c8a4c47,43b19349,fbad5c96,282b88fc,0b153874,a73ee510,0f1a2599,ea26a3ee,bb669e25,0e5bc979,b28479f6,547b8c62,2b2ce127,8efede7f,b133fcd4,,,2b796e4a,,32c7478e,8d365d3b,,
10000688,9.0,3,,11.0,578.0,22.0,9.0,11.0,22.0,1.0,1.0,,11.0,5a9ed9b0,e112a9de,4e1c9eda,22504558,25c83c98,fbad5c96,7841e8c6,0b153874,a73ee510,0f2ec50d,7e2c5c15,23bc90a1,91a1b611,1adce6ef,3ac25d07,776f5665,e5ba7672,45e3284c,,,5a5953a2,,32c7478e,8f079aa5,,
10000009,,35,,1.0,33737.0,21.0,1.0,2.0,3.0,,1.0,,1.0,05db9164,510b40a5,d03e7c24,eb1fd928,25c83c98,,52283d1c,0b153874,a73ee510,015ac893,e51ddf94,951fe4a9,3516f6e6,07d13a8f,2ae4121c,8ec71479,d4bb7bd8,70d0f5f9,,,0e63fca0,,32c7478e,0e8fe315,,
10001617,1.0,0,2.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,5bfa8ab5,09e68b86,97b26f86,0f3dac4c,25c83c98,7e0ccccf,33cca6fa,5b392875,a73ee510,401ced54,cb70bc55,2b650ee2,2b9fb512,b28479f6,52baadf5,5cd14094,e5ba7672,5aed7436,21ddcdc9,a458ea53,cbbbb804,,3a171ecb,3fdb382b,e8b83407,27582320
10000006,,1,2.0,,3168.0,,0.0,1.0,2.0,,0.0,,,439a44a4,ad4527a2,c02372d0,d34ebbaa,43b19349,fe6b92e5,4bc6ffea,0b153874,a73ee510,3b08e48b,a4609aab,14d63538,772a00d7,07d13a8f,f9d1382e,b00d3dc9,776ce399,cdfa8259,,,20062612,,93bad2c0,1b256e61,,
10000927,,115,,0.0,17271.0,,,16.0,,,,,16.0,05db9164,d833535f,77f2f2e5,d16679b9,25c83c98,fe6b92e5,83a81c7c,0b153874,a73ee510,7485379b,e1fb71c4,9f32b866,c1d8cef1,b28479f6,a733d362,31ca40b6,07c540c4,281769c2,,,dfcfc3fa,,32c7478e,aee52b6f,,
10000161,,1,2.0,23.0,7207.0,31.0,1.0,5.0,27.0,,1.0,,23.0,05db9164,09e68b86,aa8c1539,85dd697c,384874ce,13718bbd,622305e6,0b153874,a73ee510,2124a520,319687c9,d8c29807,62036f49,1adce6ef,dcd06253,c64d548f,e5ba7672,63cdbb21,cf99e5de,a458ea53,5f957280,,3a171ecb,1793a828,e8b83407,b7d9c3bc
10001959,0.0,9,1.0,20.0,4502.0,421.0,4.0,3.0,410.0,0.0,1.0,,20.0,5a9ed9b0,46bbf321,c5d94b65,5cc8f91d,4cf72387,7e0ccccf,ceadc1bd,0b153874,a73ee510,3b08e48b,1d7bf26b,75c79158,2f83c4ea,91233270,cddd56a1,208d4baf,07c540c4,906ff5cb,,,6a909d9a,,bcdee96c,1f68c81f,,
10001834,0.0,178,1.0,2.0,2033.0,53.0,9.0,1.0,283.0,0.0,5.0,,2.0,68fd1e64,09e68b86,80e96ca4,85dd697c,4cf72387,7e0ccccf,9a4f2943,0b153874,a73ee510,86b46b2e,4a00b569,0d2a2c95,42ef23bb,07d13a8f,801ee1ae,4562f4f5,e5ba7672,63cdbb21,21ddcdc9,5840adea,8cfc8f03,,32c7478e,1793a828,e8b83407,b7d9c3bc
10000895,0.0,133,,0.0,2960.0,402.0,1.0,39.0,387.0,0.0,1.0,,56.0,05db9164,68b3edbf,b00d1501,d16679b9,25c83c98,7e0ccccf,7a15bf06,37e4aa92,a73ee510,ee4444a2,1564a011,e0d76380,5e350f6e,b28479f6,f511c49f,1203a270,e5ba7672,752d8b8a,,,73d06dde,,3a171ecb,aee52b6f,,
10001805,,94,7.0,,7390.0,118.0,5.0,0.0,39.0,,2.0,,,05db9164,09e68b86,aa8c1539,85dd697c,4cf72387,,50631f06,5b392875,a73ee510,3b08e48b,f25fe7e9,d8c29807,dd183b4c,8ceecbc8,d2f03b75,c64d548f,776ce399,63cdbb21,cf99e5de,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
10001045,,-1,1.0,4.0,18828.0,147.0,10.0,7.0,6.0,,2.0,,6.0,05db9164,3df44d94,02cf9876,c18be181,384874ce,7e0ccccf,397def4e,0b153874,a73ee510,a0eb88e1,20b05825,8fe001f4,c28589ee,b28479f6,e0052e65,36103458,e5ba7672,e7648a8f,,,e587c466,,3a171ecb,3b183c5c,,
10001437,2.0,273,,1.0,4.0,1.0,2.0,1.0,1.0,1.0,1.0,,1.0,5a9ed9b0,38a947a1,0cdffbbb,19472c1b,4cf72387,7e0ccccf,09512427,5b392875,a73ee510,87dcf8fc,c21c44c8,a688779e,5b3fc509,b28479f6,05a68c47,556b1b58,07c540c4,50d0678c,,,14096b25,ad3062eb,bcdee96c,58b99a4e,,
10001140,,20,23.0,22.0,1501.0,22.0,5.0,20.0,22.0,,2.0,0.0,22.0,05db9164,78ccd99e,7697cea8,17e9c67f,4cf72387,,9e8dab66,0b153874,a73ee510,fbbf2c95,c82f1813,fe6e13c5,949ea585,cfef1c29,798a3785,9c8aa1a6,e5ba7672,e7e991cb,21ddcdc9,a458ea53,d416f907,,32c7478e,72e00caf,b9266ff0,765b4774
10000145,,5,2.0,3.0,10892.0,15.0,4.0,4.0,32.0,,2.0,0.0,3.0,68fd1e64,09e68b86,8813e7fd,35b598a9,2c6b8ded,13718bbd,a7565058,5b392875,a73ee510,d7ae8050,69afd526,78ba0921,84def884,1adce6ef,dbc5e126,0f33b689,3486227d,5aed7436,21ddcdc9,b1252a9d,4435a274,,3a171ecb,73496e83,e8b83407,f3fccfbe
10000240,1.0,0,,9.0,27.0,9.0,1.0,10.0,9.0,1.0,1.0,,9.0,68fd1e64,d833535f,77f2f2e5,d16679b9,384874ce,fe6b92e5,52283d1c,0b153874,a73ee510,299aecf1,e51ddf94,9f32b866,3516f6e6,b28479f6,a66dcf27,31ca40b6,d4bb7bd8,7b49e3d2,,,dfcfc3fa,,3a171ecb,aee52b6f,,
10000215,1.0,150,5.0,16.0,24.0,18.0,1.0,15.0,16.0,1.0,1.0,,16.0,75ac2fe6,0468d672,145f2f75,82a61820,4cf72387,7e0ccccf,7d48c0ae,0b153874,a73ee510,2d3d7f00,5874c9c9,7161e106,740c210d,1adce6ef,4f3b3616,bb6d240e,d4bb7bd8,9880032b,21ddcdc9,5840adea,5fe17899,,55dd3565,cafb4e4d,ea9a246c,99f4f64c
10000655,12.0,0,74.0,19.0,34.0,19.0,38.0,18.0,279.0,1.0,5.0,0.0,19.0,68fd1e64,ed3ebcd1,962f9151,051f5cad,25c83c98,fbad5c96,c5940251,0b153874,a73ee510,b1ced7c4,3f3796ef,5c2da29a,5667b6ce,07d13a8f,14ae7bf2,c7954082,27c07bd6,9cd2305d,21ddcdc9,5840adea,a165e24e,,32c7478e,d278603e,e8b83407,4e6f1778
10000465,,1,6.0,10.0,2964.0,15.0,1.0,13.0,15.0,,1.0,1.0,10.0,05db9164,0a519c5c,77f2f2e5,d16679b9,25c83c98,7e0ccccf,7848490d,0b153874,a73ee510,3b08e48b,a74169ca,9f32b866,1cf9c8dd,1adce6ef,123b2f29,31ca40b6,3486227d,2efa89c6,,,dfcfc3fa,,3a171ecb,aee52b6f,,
10001362,,27,12.0,4.0,234804.0,,0.0,16.0,133.0,,0.0,,16.0,05db9164,c1384774,b00d1501,d16679b9,b2241560,fbad5c96,11d5a05b,5b392875,7cc72ec2,3b08e48b,71a572f0,e0d76380,0ae1463b,07d13a8f,022c81dc,1203a270,776ce399,8e8b535e,21ddcdc9,5840adea,73d06dde,78e2e389,be7c41b4,aee52b6f,ea9a246c,882f541d
10001237,,137,3.0,4.0,26187.0,,0.0,4.0,20.0,,0.0,,4.0,05db9164,5368c225,e22844b2,fadd820a,25c83c98,fe6b92e5,8c2fedb1,51d76abe,a73ee510,3b08e48b,af763b4c,2a4ef823,d90d259c,07d13a8f,cbdbab51,eaead249,776ce399,a53934cb,,,71e3dba8,,b264a060,2cb8e5cc,,
10000759,,197,4.0,1.0,25.0,,0.0,1.0,1.0,,0.0,0.0,1.0,5a9ed9b0,421b43cd,2c2261fe,29998ed1,25c83c98,fe6b92e5,dda1fed2,37e4aa92,a73ee510,2a47dab8,7f8ffe57,6aaba33c,46f42a63,b28479f6,e1ac77f7,b041b04a,1e88c74f,2804effd,,,723b4dfd,78e2e389,3a171ecb,b34f3128,,
10001023,,1367,17.0,2.0,122981.0,,0.0,17.0,6.0,,0.0,,12.0,8cf07265,38d50e09,063a7a2f,f0997e9f,25c83c98,fbad5c96,7c589eda,0b153874,7cc72ec2,3b08e48b,4eddcd83,c9a1c938,f9074aef,07d13a8f,ee569ce2,e3e176d1,3486227d,582152eb,21ddcdc9,5840adea,6327f617,,3a171ecb,4e060229,001f3601,cfd96da1
10001018,,0,,6.0,17324.0,165.0,5.0,1.0,212.0,,3.0,0.0,6.0,f473b8dc,aa157e5d,2fd2dd9c,0e833929,4cf72387,fe6b92e5,34ffc80f,64523cfa,a73ee510,42adcf15,9c50f4f2,4d470b3e,d9b4659c,dcd762ee,23cf85dc,e334d594,3486227d,b9f82cf2,,,b0ecb78f,,3a171ecb,4507844f,,
10001651,5.0,17,18.0,18.0,567.0,89.0,5.0,37.0,89.0,1.0,1.0,0.0,18.0,87552397,1550810c,7ddb58d3,971b9e1f,25c83c98,fe6b92e5,cc936bac,0b153874,a73ee510,886c48e9,3c264af5,6e2269a9,6c24bc52,b28479f6,465dad55,8f243987,e5ba7672,6e200add,21ddcdc9,5840adea,06b9b6ef,78e2e389,3a171ecb,3b425be9,010f6491,2fede552
10001852,,9,4.0,1.0,15120.0,125.0,0.0,1.0,34.0,,0.0,,1.0,fbc55dae,4f25e98b,27e71f25,459e04e9,25c83c98,6f6d9be8,a0f3f4b3,0b153874,a73ee510,3b08e48b,2b31063f,21f0f48c,bcf6a386,f7c1b33f,286d9690,dabe2137,e5ba7672,7ef5affa,e5e1bbb7,a458ea53,c8dd02d9,,32c7478e,3fdb382b,001f3601,49d68486
10000572,,0,4.0,2.0,534533.0,,0.0,2.0,2.0,,0.0,,2.0,05db9164,1cfdf714,0a00878c,192998db,25c83c98,7e0ccccf,6f441cf5,5b392875,7cc72ec2,f5073ae4,1054ae5c,f0f59e6e,d7ce3abd,b28479f6,d345b1a0,d7ac84c6,e5ba7672,e88ffc9d,55dd3565,a458ea53,8a24d4c7,,bcdee96c,33044299,cb079c2d,e1cc3a15
10000085,0.0,53,,10.0,6550.0,98.0,34.0,11.0,349.0,0.0,9.0,,10.0,05db9164,207b2d81,8bd78c57,394ee067,25c83c98,6f6d9be8,283d5555,0b153874,a73ee510,3b08e48b,3d5fb018,e5f6b330,94172618,07d13a8f,0bf0feff,402a9036,e5ba7672,fa0643ee,21ddcdc9,b1252a9d,0094bc78,,32c7478e,29ece3ed,001f3601,402185f3
10001905,,-1,,,5785.0,,0.0,0.0,1.0,,0.0,,,05db9164,287130e0,,,25c83c98,fe6b92e5,ce4f7f55,0b153874,a73ee510,23176e12,38f692a7,,6e5da64f,b28479f6,9efd8b77,,1e88c74f,891589e7,21ddcdc9,5840adea,,c9d4222a,32c7478e,,ea9a246c,2ddaef64
10000317,30.0,1,114.0,15.0,246.0,22.0,42.0,34.0,76.0,1.0,5.0,,22.0,68fd1e64,e5fb1af3,cfc57a43,6a724007,25c83c98,7e0ccccf,af84702c,0b153874,a73ee510,5162b19c,7c430b79,0b61d433,7f0d7407,b28479f6,23287566,658aa6b7,e5ba7672,13145934,3b422a71,a458ea53,f2ee45cb,c9d4222a,3a171ecb,9fb5a9a2,e8b83407,bb4e2505
10000118,,1,5.0,,32339.0,,,4.0,,,,,,05db9164,38a947a1,26f13523,711c0624,384874ce,7e0ccccf,5e8b4856,0b153874,a73ee510,92e70d0f,e90cbbe1,2a3f3e3e,a4c7bffd,07d13a8f,ed1eab3c,367b7adf,07c540c4,bae38128,,,d20446d4,,3a171ecb,e83b649e,,
10000602,,12,5.0,,,,,0.0,,,,,,05db9164,bc478804,8b943343,13508380,43b19349,fe6b92e5,d0bdaa98,0b153874,7cc72ec2,3b08e48b,dd6fc8cb,fb2a5396,ebd756bd,07d13a8f,0af7c64c,5d87e37e,2005abd1,65a2ac26,1d1eb838,a458ea53,c3711079,,32c7478e,45ab94c8,001f3601,c84c4aec
10001342,,-1,2.0,,5106.0,5.0,1.0,0.0,5.0,,1.0,,,05db9164,78ccd99e,eddce123,1aab3757,25c83c98,,2823fac6,0b153874,a73ee510,d7dc7379,eb94162a,9c16b0b9,871eb035,07d13a8f,162f3329,25376035,07c540c4,e7e991cb,21ddcdc9,b1252a9d,c960a377,,32c7478e,6cf3a800,46fbac64,42d56168
10000443,,8,64.0,10.0,10117.0,19.0,3.0,12.0,14.0,,1.0,,11.0,68fd1e64,09e68b86,aa8c1539,85dd697c,25c83c98,,045eef77,5b392875,a73ee510,cf9c4b61,e81438fc,d8c29807,f745e01e,8ceecbc8,d2f03b75,c64d548f,07c540c4,63cdbb21,cf99e5de,5840adea,5f957280,,32c7478e,1793a828,e8b83407,b7d9c3bc
10001027,0.0,-1,12.0,20.0,1480.0,40.0,128.0,26.0,485.0,0.0,22.0,,21.0,f473b8dc,2796cdff,,,4cf72387,7e0ccccf,a0e559da,0b153874,a73ee510,3b08e48b,418037d7,,b0bfed6d,07d13a8f,beac2588,,27c07bd6,c3854c72,,,,ad3062eb,423fab69,,,
10000516,3.0,65,2.0,1.0,175.0,1.0,5.0,10.0,24.0,2.0,3.0,,1.0,87552397,403ea497,2cbec47f,3e2bfbda,25c83c98,fbad5c96,f970e59a,1f89b562,a73ee510,d8881c14,5adcba72,21a23bfe,5b6ee19d,07d13a8f,e3209fc2,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,,32c7478e,1793a828,e8b83407,2fede552
10001792,,2179,,,21984.0,150.0,2.0,0.0,16.0,,1.0,,,05db9164,38a947a1,60729b56,8af704a1,0942e0a7,7e0ccccf,320d5d46,0b153874,a73ee510,3b08e48b,94fb1def,eaf4513d,e8e7aace,07d13a8f,908b8bf4,995721d7,d4bb7bd8,4bc528ec,,,23cf403a,,3a171ecb,b550ee34,,
10000030,,277,,3.0,7318.0,24.0,6.0,3.0,98.0,,1.0,,3.0,8cf07265,9adf4cf9,2e76fb61,0b1ad9da,4cf72387,fe6b92e5,75dcaaca,0b153874,a73ee510,3b08e48b,8aabdae8,9886a0a7,edcf17ce,07d13a8f,2aaebd23,338c0d09,e5ba7672,c7dbecd5,,,60d2d691,,3a171ecb,90b6276f,,
10000712,0.0,6,2.0,25.0,3034.0,264.0,1.0,1.0,247.0,0.0,1.0,,38.0,05db9164,287130e0,9b953c56,7be07df9,25c83c98,7e0ccccf,b45139de,0b153874,a73ee510,b655c293,7f90c133,6bca71b1,2b2a1789,07d13a8f,10040656,fb8ca891,d4bb7bd8,891589e7,21ddcdc9,b1252a9d,b1ae3ed2,,3a171ecb,3fdb382b,e8b83407,49d68486
10000254,,0,31.0,2.0,41016.0,,0.0,9.0,17.0,,0.0,,8.0,05db9164,38a947a1,,,25c83c98,3bf701e7,49042125,062b5529,7cc72ec2,4624c4e8,ba1ff80a,,b95f83fa,b28479f6,0cfbc5df,,1e88c74f,be457d6e,,,,,bcdee96c,,,
10000898,,0,,,4216.0,0.0,11.0,0.0,0.0,,5.0,,,05db9164,09e68b86,466148db,d235dcb8,25c83c98,,b87f4a4a,0b153874,a73ee510,97d3ddaa,319687c9,bf7d85d2,62036f49,07d13a8f,36721ddc,1cb9e3c1,e5ba7672,5aed7436,04de9d96,b1252a9d,f4097ea8,,32c7478e,4f0948e6,e8b83407,61f8e249
10001108,,17,13.0,5.0,11675.0,,0.0,5.0,26.0,,0.0,,5.0,68fd1e64,4c2bc594,d032c263,c18be181,25c83c98,fe6b92e5,50631f06,1f89b562,a73ee510,3b08e48b,f25fe7e9,dfbb09fb,dd183b4c,8ceecbc8,7ac43a46,84898b2a,776ce399,bc48b783,,,0014c32a,c9d4222a,55dd3565,3b183c5c,,
10001101,2.0,24,20.0,10.0,1.0,2.0,6.0,16.0,213.0,1.0,2.0,,2.0,05db9164,bfdcfc4a,7ab2d691,327970ed,25c83c98,fe6b92e5,f970e59a,0b153874,a73ee510,b6900243,5adcba72,d3bac723,5b6ee19d,b28479f6,2ed5bdad,fc95dd4e,e5ba7672,ffd53157,21ddcdc9,b1252a9d,e3641ee4,,32c7478e,1793a828,e8b83407,779ff446
10001014,,3,,2.0,9465.0,54.0,3.0,4.0,43.0,,2.0,,2.0,5a9ed9b0,e112a9de,4e1c9eda,22504558,307e775a,fe6b92e5,ce4f7f55,c8ddd494,a73ee510,2ec4dbbb,38f692a7,23bc90a1,6e5da64f,1adce6ef,11da3cff,776f5665,07c540c4,a7cf409e,,,5a5953a2,,32c7478e,8f079aa5,,
10001292,,0,10.0,4.0,1928.0,220.0,0.0,5.0,62.0,,0.0,,6.0,8cf07265,80e26c9b,7cfa4e37,99944ac5,25c83c98,7e0ccccf,08e57a96,0b153874,a73ee510,fbbf2c95,7c430b79,52fd06e6,7f0d7407,07d13a8f,f3635baf,fb8600df,3486227d,f54016b9,21ddcdc9,b1252a9d,dc531dab,,3a171ecb,2bb26daa,e8b83407,87d8715a
10001426,0.0,178,37.0,16.0,21.0,233.0,38.0,36.0,184.0,0.0,6.0,0.0,5.0,05db9164,38a947a1,b1b6f323,be4cb064,25c83c98,7e0ccccf,285ee98d,0b153874,a73ee510,c1bba512,30b2881b,d28c687a,b2e5689c,b28479f6,90af1d37,f2a191bd,e5ba7672,c9da8737,,,5911ddcb,c9d4222a,32c7478e,1335030a,,
10001991,,0,2.0,1.0,15900.0,84.0,1.0,1.0,137.0,,1.0,,1.0,05db9164,3e50afd4,c88e4dd9,95125f0b,25c83c98,fe6b92e5,ed8893c3,bb170c38,a73ee510,3b08e48b,43113bd0,e8d7937e,10cccf24,07d13a8f,c633f268,b5d82b8f,07c540c4,7eb5f96b,21ddcdc9,5840adea,703d8ad8,ad3062eb,c7dc6720,f0f5931e,e8b83407,02ad7ae7
10001917,0.0,1,57.0,22.0,1906.0,105.0,5.0,27.0,411.0,0.0,2.0,0.0,23.0,68fd1e64,8ab240be,55ef0c4a,94af87d4,25c83c98,7e0ccccf,6d0ca8d7,0b153874,a73ee510,afe4ade4,6939835e,72593ff4,dc1d72e4,b28479f6,55ea1fa2,94dee6cc,3486227d,ca533012,21ddcdc9,5840adea,c5533f21,c9d4222a,32c7478e,73cec032,445bbe3b,984e0db0
10000987,,223,5.0,2.0,,,0.0,2.0,2.0,,0.0,,2.0,64e77ae7,38a947a1,1fbcbaeb,6bb27684,25c83c98,6f6d9be8,d9aa9d97,0b153874,7cc72ec2,3b08e48b,6e647667,47fedcb6,85dbe138,b28479f6,50340d14,7c4d8e0e,2005abd1,5b22094b,,,7349a0a1,,32c7478e,42bf52c5,,
10001869,,66,2.0,2.0,31798.0,86.0,0.0,2.0,103.0,,0.0,,2.0,05db9164,5dac953d,d032c263,c18be181,4cf72387,fbad5c96,1cb331ef,0b153874,a73ee510,88326e14,cdca587b,dfbb09fb,75b05ddf,1adce6ef,24018110,84898b2a,e5ba7672,539ccba3,,,0014c32a,c9d4222a,423fab69,3b183c5c,,
10001857,,12,57.0,24.0,342.0,,0.0,27.0,27.0,,0.0,,24.0,05db9164,80e26c9b,74e1a23a,9a6888fb,25c83c98,7e0ccccf,1b2007fe,0b153874,a73ee510,61c284b6,6c07e306,fb8fab62,1cd94349,b28479f6,4c1df281,c6b1e1b2,1e88c74f,f54016b9,21ddcdc9,5840adea,99c09e97,,32c7478e,335a6a1e,e8b83407,877c5de5
10000667,,0,8.0,13.0,1650.0,,0.0,5.0,13.0,,0.0,,13.0,8cf07265,09e68b86,0be06ded,3cdc525d,25c83c98,,679235ae,1f89b562,a73ee510,04dc09a2,14dfde81,d3e5031b,9ec97065,b28479f6,52baadf5,0b516a34,e5ba7672,5aed7436,21ddcdc9,5840adea,51b8f79e,,32c7478e,1793a828,e8b83407,a9637a08
10001482,0.0,692,2.0,0.0,931.0,441.0,2.0,49.0,294.0,0.0,2.0,,17.0,5a9ed9b0,08d6d899,9143c832,f56b7dd5,25c83c98,7e0ccccf,dc7659bd,0b153874,a73ee510,015ac893,e51ddf94,ae1bb660,3516f6e6,b28479f6,bffbd637,bad5ee18,e5ba7672,bbf70d82,,,0429f84b,,3a171ecb,c0d61a5c,,
10000522,,1,2.0,51.0,1474.0,,0.0,49.0,106.0,,0.0,,51.0,68fd1e64,0a519c5c,02cf9876,c18be181,25c83c98,7e0ccccf,0a7b8169,f504a6f4,a73ee510,3b08e48b,9e271da4,8fe001f4,fb0920f2,07d13a8f,6dc710ed,36103458,776ce399,3412118d,,,e587c466,,be7c41b4,3b183c5c,,
10001382,2.0,17,30.0,31.0,583.0,49.0,2.0,19.0,126.0,1.0,1.0,,35.0,05db9164,58e67aaf,cfb849fe,a4b9d958,4cf72387,7e0ccccf,a61aeaec,0b153874,a73ee510,901ad2a4,17586bd8,7f07cde5,4c9ff09f,1adce6ef,d002b6d9,cf63f23e,e5ba7672,c21c3e4c,21ddcdc9,5840adea,a97c73cd,,423fab69,3aa5816a,9b3e8820,a00829e6
10000124,0.0,-1,,,2282.0,41.0,30.0,15.0,157.0,0.0,3.0,4.0,,05db9164,4f25e98b,3651d7de,195aa7ef,25c83c98,fe6b92e5,0038e65c,5b392875,a73ee510,3b08e48b,6dbe9cfd,7bbd899e,1ddad6aa,b28479f6,8ab5b746,773620b7,8efede7f,7ef5affa,4764bf77,a458ea53,99860501,ad3062eb,bcdee96c,ac73f6cb,001f3601,a3efae54
10000187,,832,,1.0,11908.0,134.0,5.0,37.0,152.0,,3.0,0.0,1.0,9684fd4d,4c2bc594,d032c263,c18be181,25c83c98,fbad5c96,26a81064,0b153874,a73ee510,dcbc7c2b,9e511730,dfbb09fb,04e4a7e0,8ceecbc8,7ac43a46,84898b2a,8efede7f,bc48b783,,,0014c32a,,55dd3565,3b183c5c,,
10000517,7.0,-1,,,394.0,11.0,125.0,11.0,178.0,1.0,12.0,0.0,,68fd1e64,80e26c9b,2e855da7,c446f801,25c83c98,7e0ccccf,172f0631,0b153874,a73ee510,0f4a45d3,1314bfd8,1b312abb,1e8bfb9a,07d13a8f,f3635baf,48ff5919,3486227d,f54016b9,21ddcdc9,b1252a9d,1cedb306,,32c7478e,93a075b7,e8b83407,4271e99f
10001203,3.0,10,5.0,25.0,682.0,239.0,102.0,22.0,3264.0,1.0,14.0,0.0,223.0,05db9164,2a69d406,b0f5aa9a,13508380,25c83c98,7e0ccccf,d5f62b87,51d76abe,a73ee510,84462a5b,434d6c13,35dd91d8,7301027a,07d13a8f,3b2d8705,6925201c,3486227d,642f2610,55dd3565,b1252a9d,12d020a9,,423fab69,45ab94c8,2bf691b1,c84c4aec
10001505,,0,1.0,0.0,,,0.0,1.0,1.0,,0.0,,1.0,0e78bd46,083aa75b,f7564807,ea992411,25c83c98,fe6b92e5,1f2924d9,0b153874,7cc72ec2,3b08e48b,3ec9c616,611d855e,b55434a9,b28479f6,4e47e13c,ed7abfcd,2005abd1,06747363,21ddcdc9,b1252a9d,3b689f8a,c9d4222a,be7c41b4,b6a6d491,e8b83407,87db5143
10000342,1.0,11,67.0,2.0,28.0,2.0,15.0,2.0,211.0,1.0,5.0,0.0,2.0,05db9164,c44e8a72,b08a0e8f,137c3f5d,25c83c98,7e0ccccf,a25cceac,0b153874,a73ee510,b46e51e9,5bee5497,a1c959c3,a57cffd3,07d13a8f,b88d2fea,b185ed67,e5ba7672,456d734d,19b31d2c,b1252a9d,e022ea88,,3a171ecb,3fdb382b,724b04da,e8cee7fa
10001786,0.0,0,71.0,,1883.0,35.0,4.0,21.0,137.0,0.0,3.0,,,05db9164,09e68b86,faf21a45,2d618c4e,4cf72387,fe6b92e5,124131fa,0b153874,a73ee510,4c89c3af,9ba53fcc,24d54eae,42156eb4,1adce6ef,dbc5e126,a7d2766d,07c540c4,5aed7436,733bf73d,a458ea53,de8cff3a,,bcdee96c,8ab167ac,e8b83407,64585ffc
10000200,,1,23.0,3.0,72413.0,3607.0,0.0,4.0,44.0,,0.0,,3.0,68fd1e64,f0cf0024,74e1a23a,9a6888fb,25c83c98,fbad5c96,648eac94,0b153874,7cc72ec2,878f4678,144d9b96,fb8fab62,fb4bc60c,b28479f6,e6c5b5cd,c6b1e1b2,07c540c4,b04e4670,21ddcdc9,5840adea,99c09e97,,32c7478e,335a6a1e,ea9a246c,8d8eb391
10001981,1.0,0,17.0,10.0,388.0,82.0,1.0,22.0,25.0,1.0,1.0,,10.0,05db9164,207b2d81,015450da,a42c24d9,25c83c98,7e0ccccf,9b5b9eea,5b392875,a73ee510,3b08e48b,163b50ea,548118bd,00783c5a,b28479f6,2f51688f,412b23b3,d4bb7bd8,f724634a,21ddcdc9,a458ea53,a92e4560,ad3062eb,32c7478e,98f2c2f9,001f3601,a6308e9b
10001989,27.0,538,2.0,1.0,8.0,1.0,27.0,1.0,1.0,1.0,1.0,,1.0,05db9164,e5fb1af3,5cef3946,78f2622d,25c83c98,fbad5c96,095d6b9e,5b392875,a73ee510,3150b962,8f736c02,60961619,954f731f,b28479f6,23287566,b2ac0684,e5ba7672,13145934,21ddcdc9,a458ea53,bbf8cd8e,,bcdee96c,3f7be042,e8b83407,e896e314
10001170,,1,6.0,1.0,6575.0,,0.0,1.0,1.0,,0.0,,1.0,05db9164,c5fe64d9,12f6b3af,ab15bbe8,30903e74,,22009f3b,1f89b562,a73ee510,597ee6dc,6a3de4e2,0e026503,a4b5da60,b28479f6,543c0413,60f7b835,1e88c74f,c235abed,5e200364,b1252a9d,8b5d5ee2,,32c7478e,3fdb382b,ea9a246c,49d68486
10000233,,-1,,,6397.0,51.0,1.0,13.0,49.0,,1.0,,,05db9164,38a947a1,f6a8eaae,fcc6bd3d,25c83c98,,6cdb3998,0b153874,a73ee510,3ff10fb2,5874c9c9,90249d87,740c210d,b28479f6,a723edcb,f744d55b,d4bb7bd8,0c1cbf43,,,c703f560,,32c7478e,b258af68,,
10001987,,1,1.0,5.0,5152.0,,0.0,6.0,19.0,,0.0,,5.0,05db9164,f6f4fe4b,1c82d234,29c7bac3,30903e74,fbad5c96,28639f10,37e4aa92,a73ee510,f26b2389,3a5bf2d6,4b2471f7,155ff7d9,07d13a8f,9ca59173,193a711a,e5ba7672,ca5a75f3,,,5be95fc1,,c7dc6720,c5cbfccf,,
10001556,,4,,4.0,156.0,,0.0,4.0,4.0,,0.0,,4.0,05db9164,62e9e9bf,,,25c83c98,fbad5c96,1f8a5e2a,0b153874,a73ee510,efea433b,eacae3ce,,096b841f,07d13a8f,bf94b88d,,1e88c74f,8fc2e6f8,,,,,3a171ecb,,,
10001632,0.0,2,5.0,3.0,2931.0,11.0,3.0,10.0,18.0,0.0,2.0,,3.0,05db9164,287130e0,6e36ebe9,91e21b29,25c83c98,fbad5c96,32079c61,5b392875,a73ee510,d6a4738e,757868ef,adcae8cd,9b706dc0,cfef1c29,655fad18,1457a5bb,07c540c4,891589e7,2b47c6cd,a458ea53,c7eb1e2a,,32c7478e,596c175e,ea9a246c,c107870d
10001467,2.0,248,11.0,12.0,10.0,12.0,2.0,12.0,12.0,1.0,1.0,,12.0,05db9164,e3a0dc66,1701e1d8,da13cca9,25c83c98,fe6b92e5,066186ba,0b153874,a73ee510,921af1f0,57784783,9311a066,493fa4dc,b28479f6,35679327,354a37d9,07c540c4,b608c073,,,7b877178,,3a171ecb,f2e9f0dd,,
10000229,,181,4.0,4.0,,,0.0,5.0,15.0,,0.0,,4.0,5a9ed9b0,38a947a1,223b0e16,ca55061c,25c83c98,7e0ccccf,e7698644,5b392875,7cc72ec2,3b08e48b,f9d0f35e,156f99ef,b55434a9,1adce6ef,0e78291e,5fbf4a84,2005abd1,1999bae9,,,deb9605d,,be7c41b4,e448275f,,
10000862,,403,13.0,0.0,4554.0,,0.0,6.0,38.0,,0.0,,3.0,05db9164,ea3a5818,3fcf7cf9,184d2b01,25c83c98,7e0ccccf,969e0f2f,0b153874,a73ee510,fa7d0797,f4aee513,bf68745c,b5b29c1f,07d13a8f,4e70dc14,551d5c6f,1e88c74f,a1d0cc4f,21ddcdc9,b1252a9d,f3fe6bdc,,32c7478e,75aae369,e8b83407,fa1d538c
10000981,0.0,125,148.0,,6668.0,264.0,1.0,0.0,101.0,0.0,1.0,,,05db9164,b80912da,c759d01e,2a58f8a3,bf9f7f48,fbad5c96,b920f7a4,062b5529,a73ee510,7f1b1cf5,e16bba2e,ceb874b1,b17372a1,07d13a8f,569913cf,1cd8938f,d4bb7bd8,7119e567,21ddcdc9,b1252a9d,893f35a8,,c7dc6720,3fdb382b,60c2b362,d48ff5d5
10000651,,1453,8.0,3.0,7106.0,158.0,2.0,13.0,123.0,,1.0,,13.0,05db9164,58e67aaf,f563906e,88d64ca2,25c83c98,fbad5c96,216a1127,0b153874,a73ee510,2f50e80e,c389b738,2027c337,d7ccab4e,b28479f6,62eca3c0,8b649bc9,e5ba7672,c21c3e4c,bdffef68,b1252a9d,fc2ec718,,3a171ecb,3fdb382b,9b3e8820,49d68486
10000440,1.0,165,8.0,1.0,2.0,0.0,2.0,2.0,10.0,1.0,2.0,,0.0,41edac3d,09e68b86,4a224dac,4fd191d6,b0530c50,fbad5c96,cc5ed2f1,5b392875,a73ee510,3b08e48b,a95a8954,d3cd60e0,9f16a973,b28479f6,52baadf5,bfa1f6fd,07c540c4,5aed7436,c79aad78,5840adea,18907521,c9d4222a,32c7478e,af931d1c,e8b83407,60404332
10000557,0.0,1,4.0,2.0,1965.0,8.0,27.0,8.0,183.0,0.0,8.0,,2.0,05db9164,287130e0,d940cd73,1e5e2162,25c83c98,6f6d9be8,6cdb3998,0b153874,a73ee510,01a07fd7,5874c9c9,23e855c2,740c210d,07d13a8f,10040656,6e177038,e5ba7672,891589e7,712d530c,a458ea53,80e90bce,,32c7478e,471f55fb,ea9a246c,cb1956a3
10000960,0.0,2,,,2977.0,98.0,2.0,6.0,50.0,0.0,1.0,,,05db9164,52d631d9,d032c263,c18be181,25c83c98,fbad5c96,ce4f7f55,0b153874,a73ee510,ebb8102f,38f692a7,dfbb09fb,6e5da64f,64c94865,35e4d583,84898b2a,07c540c4,9943b99f,,,0014c32a,,32c7478e,3b183c5c,,
10001978,,2,166.0,29.0,11442.0,,0.0,34.0,29.0,,0.0,,29.0,05db9164,38a947a1,db05d956,4aa1085f,30903e74,7e0ccccf,c519c54d,0b153874,a73ee510,402b6ab6,59cd5ae7,767df0b5,8b216f7b,07d13a8f,33656313,53e62233,e5ba7672,deab2e92,,,b2d58dae,,32c7478e,01c47b24,,
10001980,,-1,,,6069.0,,0.0,0.0,2.0,,0.0,,,05db9164,38a947a1,8840956b,bd008dec,25c83c98,,315c76f3,0b153874,a73ee510,3b08e48b,e51ddf94,c736ba0f,3516f6e6,f7c1b33f,b5914cd1,c8ec97e6,776ce399,769fc695,,,99339a3e,,32c7478e,1447d4ae,,
10000384,,42,1.0,22.0,1670.0,22.0,33.0,1.0,604.0,,8.0,2.0,22.0,68fd1e64,942f9a8d,a13f6287,7ce39f04,25c83c98,7e0ccccf,3f4ec687,0b153874,a73ee510,7f79890b,c4adf918,6305f7f8,85dbe138,b28479f6,ac182643,e7eb8087,8efede7f,1f868fdd,21ddcdc9,b1252a9d,020a0292,,32c7478e,792d292d,9d93af03,9fddce14
10001013,5.0,2263,1.0,1.0,711.0,6.0,15.0,16.0,83.0,1.0,3.0,,1.0,68fd1e64,403ea497,2cbec47f,3e2bfbda,25c83c98,,16553469,5b392875,a73ee510,3b08e48b,00164ba4,21a23bfe,f0a72e95,07d13a8f,e3209fc2,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,,32c7478e,1793a828,e8b83407,2fede552
10001944,2.0,20,13.0,6.0,33.0,6.0,2.0,3.0,6.0,1.0,1.0,,6.0,68fd1e64,287130e0,f10b8f8b,202fca20,25c83c98,fbad5c96,ce4f7f55,0b153874,a73ee510,d7026747,38f692a7,766a3e49,6e5da64f,b28479f6,9efd8b77,4390abb5,e5ba7672,891589e7,6f3756eb,b1252a9d,64554bf6,c9d4222a,32c7478e,4b3abb84,e8b83407,56133ed0
10001542,1.0,12,4.0,4.0,172.0,7.0,2.0,18.0,18.0,1.0,2.0,,4.0,05db9164,980cc9df,53e06f71,4b930c6a,25c83c98,fbad5c96,8a6600b0,0b153874,a73ee510,04191335,4ab39743,8a78a25e,ab8a1a53,b28479f6,11b901c4,36e6f2fa,07c540c4,05f89946,,,c5a8c8bb,,3a171ecb,8a23eec0,,
10000654,0.0,9,1.0,6.0,4327.0,247.0,3.0,14.0,94.0,0.0,1.0,,6.0,5a9ed9b0,d833535f,b00d1501,d16679b9,25c83c98,fbad5c96,9140e6ca,0b153874,a73ee510,f902af47,aa5e0431,e0d76380,54be6cea,b28479f6,a733d362,1203a270,07c540c4,281769c2,,,73d06dde,ad3062eb,32c7478e,aee52b6f,,
10000436,,233,,0.0,14581.0,,0.0,0.0,231.0,,0.0,,54.0,05db9164,8084ee93,d032c263,c18be181,25c83c98,fe6b92e5,82615655,0b153874,a73ee510,c5d978ae,e015e3d6,dfbb09fb,8f265ae5,07d13a8f,422c8577,84898b2a,1e88c74f,52e44668,,,0014c32a,,32c7478e,3b183c5c,,
10000619,0.0,0,10.0,27.0,12284.0,181.0,2.0,37.0,144.0,0.0,2.0,,27.0,68fd1e64,0a519c5c,77f2f2e5,d16679b9,25c83c98,fbad5c96,fe4e75fa,5b392875,a73ee510,6aea41c7,8f4f8f83,9f32b866,8828a59c,b28479f6,b760dcb7,31ca40b6,07c540c4,2efa89c6,,,dfcfc3fa,,93bad2c0,aee52b6f,,
10001132,1.0,982,17.0,12.0,151.0,17.0,28.0,28.0,284.0,1.0,7.0,0.0,13.0,05db9164,1cfdf714,9e85728f,851897da,4cf72387,3bf701e7,ac5d8d16,0b153874,a73ee510,1800d606,98579192,d6e76761,779f824b,b28479f6,d345b1a0,91cbfa0a,e5ba7672,e88ffc9d,d630e5f7,b1252a9d,c6ceca59,,3a171ecb,799ca5db,cb079c2d,e123a092
10000789,,1086,,16.0,9326.0,,0.0,0.0,241.0,,0.0,,17.0,5bfa8ab5,537e899b,5037b88e,9dde01fd,25c83c98,13718bbd,ac07b602,1f89b562,a73ee510,6b8f8340,7ce882d2,680d7261,f5ff33d9,b28479f6,d2da00f1,c0673b44,1e88c74f,8f445203,,,e049c839,,32c7478e,6095f986,,
10001954,,556,1.0,,84133.0,,,0.0,,,,,,39af2607,8cc9c66e,9dd3c4fc,a09fab49,384874ce,7e0ccccf,34459022,5b392875,7cc72ec2,3b08e48b,7579b566,3c5900b5,8803181f,b28479f6,3bfd73d1,0decd005,e5ba7672,a6f5dd38,21ddcdc9,b1252a9d,7633c7c8,,32c7478e,17f458f7,2bf691b1,175120e4
10001330,1.0,4,,17.0,99.0,24.0,1.0,4.0,24.0,1.0,1.0,,24.0,05db9164,b961056b,d1b59691,8eb681c0,0942e0a7,fe6b92e5,dee9c7d7,5b392875,a73ee510,3b08e48b,e7553038,0826f297,4f270104,07d13a8f,c9e96939,0abe22ad,1e88c74f,5a6878f5,,,12965bb8,,32c7478e,71292dbb,,
10000453,,1,3.0,1.0,63453.0,,0.0,1.0,1.0,,0.0,,1.0,68fd1e64,38a947a1,,,25c83c98,7e0ccccf,bd6afa2b,062b5529,7cc72ec2,d977db1c,c1ee56d0,,ebd756bd,64c94865,e40dc223,,1e88c74f,d1464cb7,,,,,423fab69,,,
10001743,0.0,24,14.0,0.0,1398.0,139.0,3.0,2.0,11.0,0.0,2.0,,2.0,05db9164,bce95927,10f2f35a,13508380,43b19349,fbad5c96,d2d741ca,1f89b562,a73ee510,5702096a,ea4adb47,8d630532,05781932,07d13a8f,fec218c0,21e2ffc5,07c540c4,04d863d5,1d1eb838,a458ea53,fd518f08,c0061c6d,423fab69,45ab94c8,e8b83407,c84c4aec
10000294,0.0,7,5.0,,5866.0,155.0,2.0,3.0,33.0,0.0,2.0,,,68fd1e64,c44e8a72,82d0e88b,73b7d654,384874ce,7e0ccccf,97006d5e,5b392875,a73ee510,3b08e48b,82f3fe17,7742cd63,c1dacb89,b28479f6,1addf65e,0e5b6685,d4bb7bd8,456d734d,083e89d9,b1252a9d,5a1f6c27,,3a171ecb,5a4adb7d,724b04da,8b781ed5
10000610,0.0,6,,1.0,36606.0,,0.0,8.0,6.0,0.0,0.0,,1.0,05db9164,e112a9de,5c7adc62,22504558,25c83c98,13718bbd,c0a9460b,5b392875,a73ee510,3fb38a44,5420373c,23bc90a1,ab160bba,1adce6ef,6da7d68c,776f5665,e5ba7672,d495a339,,,5a5953a2,,32c7478e,8f079aa5,,
10000310,,36,,,34503.0,160.0,0.0,6.0,51.0,,0.0,,,68fd1e64,537e899b,5037b88e,9dde01fd,4cf72387,fbad5c96,ce4f7f55,1f89b562,a73ee510,099b68bd,38f692a7,680d7261,6e5da64f,07d13a8f,6d68e99c,c0673b44,d4bb7bd8,b34aa802,,,e049c839,,32c7478e,6095f986,,
10001187,1.0,14,55.0,2.0,47.0,3.0,1.0,3.0,3.0,1.0,1.0,,3.0,8cf07265,4f25e98b,bc869843,abb8e18e,25c83c98,7e0ccccf,4bd57ddc,5b392875,a73ee510,05c0f465,910afbbb,ab61d0d0,bd727667,b28479f6,8ab5b746,dc05908b,d4bb7bd8,7ef5affa,5e89f4c8,b1252a9d,331aa444,,3a171ecb,f6a28e2b,001f3601,06647a51
10000220,,4,6.0,2.0,9205.0,64.0,26.0,6.0,242.0,,5.0,0.0,2.0,b455c6d7,bce95927,edde3156,13508380,4cf72387,7e0ccccf,2903ead3,0b153874,a73ee510,13af20e5,a0a5e9d7,8cfb7a5a,ee79db7b,07d13a8f,fec218c0,cc19f667,27c07bd6,04d863d5,55dd3565,b1252a9d,3535ae60,,423fab69,45ab94c8,e8b83407,c84c4aec
10000376,,0,,3.0,1992.0,5.0,6.0,5.0,5.0,,1.0,,3.0,68fd1e64,78ccd99e,24ef584c,c8167e68,4cf72387,,1b76cf1e,1f89b562,a73ee510,b43f9937,0d8e34fa,e9e2c23f,e21429e2,051219e6,9917ad07,f95cc162,1e88c74f,e7e991cb,21ddcdc9,a458ea53,f0db6227,,32c7478e,1f163fc7,ea9a246c,8c532d04
10001751,5.0,2,,,264.0,11.0,8.0,28.0,51.0,1.0,2.0,0.0,,05db9164,08d6d899,6a8a1217,14bfebf4,25c83c98,7e0ccccf,8363bee7,233428af,a73ee510,b883655e,bf09be0e,5b355b50,3516f6e6,64c94865,a8e4fe6e,0ded9094,e5ba7672,9dde83ca,,,831d5286,,3a171ecb,9e9a60e4,,
10000259,29.0,0,,7.0,1.0,0.0,825.0,15.0,1208.0,2.0,23.0,,0.0,05db9164,59ab477c,7f2269e7,9432f5f9,25c83c98,7e0ccccf,ec1a1856,64523cfa,a73ee510,8ce94bed,a04e019f,dae6c42e,07a906b4,07d13a8f,9c25c3f3,9d58051d,e5ba7672,74fc71da,21ddcdc9,5840adea,8d36212c,,dbb486d7,ac88b354,47907db5,99f4f64c
10001549,,166,6.0,5.0,36298.0,17.0,2.0,6.0,7.0,,0.0,,6.0,05db9164,287130e0,f7ae16fe,81f090b4,25c83c98,,0d5ac942,0b153874,a73ee510,adf94434,f7433a43,e539ae19,4fce4e51,f7c1b33f,42793602,39d3899e,d4bb7bd8,891589e7,efa3470f,a458ea53,2c6163fc,,32c7478e,3fdb382b,ea9a246c,49d68486
10001856,0.0,-1,,,16557.0,168.0,1.0,2.0,147.0,0.0,1.0,,,fbc55dae,38a947a1,ca28bee2,6a14f9b9,25c83c98,7e0ccccf,89391314,0b153874,a73ee510,0affc0bc,608452cc,b7d600a4,cbb8fa8b,07d13a8f,78530a26,f8b34416,d4bb7bd8,c9ac134a,,,f3ddd519,c9d4222a,3a171ecb,b34f3128,,
10000402,,0,,,4649.0,2.0,2.0,1.0,2.0,,2.0,,,05db9164,bdaedcf5,,,b2241560,,b9c51fff,1f89b562,a73ee510,fbbf2c95,7d4bba07,,2fad1153,b28479f6,8af1dd15,,07c540c4,7d461236,,,,,32c7478e,,,
10000884,1.0,52,1.0,7.0,169.0,12.0,27.0,15.0,360.0,1.0,11.0,,7.0,68fd1e64,287130e0,0fa4f546,ea124ac7,25c83c98,6f6d9be8,2be44e4e,0b153874,a73ee510,6f3d6efc,364e8b48,eba7dda8,34cbb1bc,07d13a8f,6aaa8dbc,7b9c834f,e5ba7672,53515e19,712d530c,5840adea,428cc7c7,,32c7478e,a4b9e88f,ea9a246c,03219b28
10001753,4.0,0,7.0,7.0,1.0,0.0,4.0,41.0,40.0,3.0,3.0,,0.0,05db9164,09e68b86,4d03f58f,a374d428,30903e74,fe6b92e5,90deec71,51d76abe,a73ee510,3b08e48b,8bb53eff,61e325db,415b696f,07d13a8f,36721ddc,d81af691,e5ba7672,5aed7436,a35e3db3,a458ea53,513bb387,,423fab69,ab246148,e8b83407,21db0a46
10000530,1.0,614,,4.0,33.0,4.0,1.0,0.0,4.0,1.0,1.0,,3.0,05db9164,f9875f50,4d17d5a5,0d0ae4e6,4cf72387,7e0ccccf,d5527617,51d76abe,a73ee510,3b08e48b,7466b255,ce22c103,f4c487c1,1adce6ef,9bd565d9,2f4eadf6,d4bb7bd8,43a9e4b1,21ddcdc9,a458ea53,71d95e90,,32c7478e,d982520c,e8b83407,7c5de8f0
10000564,0.0,55,3.0,5.0,1283.0,88.0,9.0,4.0,294.0,0.0,4.0,0.0,19.0,05db9164,bce95927,ddc63fc8,13508380,25c83c98,7e0ccccf,71c23d74,0b153874,a73ee510,cb3c0ba3,ae4c531b,5b84830a,01c2bbc7,07d13a8f,fec218c0,254a8006,e5ba7672,04d863d5,55dd3565,a458ea53,c67ce0c6,,423fab69,45ab94c8,e8b83407,c84c4aec
10001296,,1,2.0,15.0,626.0,,0.0,25.0,86.0,,0.0,,15.0,05db9164,0468d672,7ae80d0f,80d8555a,25c83c98,3bf701e7,81bb0302,0b153874,a73ee510,53550bd8,b7094596,cfc86806,1f9d2c38,b28479f6,58251aab,146a70fd,1e88c74f,0b331314,21ddcdc9,5840adea,cbec39db,,32c7478e,cedad179,ea9a246c,9a556cfc
10000658,,271,1.0,1.0,,,0.0,3.0,21.0,,0.0,,1.0,39af2607,38a947a1,e1c90b2b,6a14f9b9,25c83c98,fbad5c96,88002ee1,0b153874,7cc72ec2,3b08e48b,f1b78ab4,0fa734aa,6e5da64f,07d13a8f,46df822a,f8b34416,2005abd1,c9ac134a,,,f3ddd519,,32c7478e,b34f3128,,
10001797,0.0,2,9.0,5.0,2309.0,92.0,5.0,6.0,54.0,0.0,1.0,,5.0,5a9ed9b0,0468d672,39ecd705,43c8dd6c,25c83c98,fbad5c96,0636947d,37e4aa92,a73ee510,814f28f7,4d38a97d,2055fa1e,0f3d4e02,b28479f6,234191d3,ecfdc8a2,e5ba7672,9880032b,21ddcdc9,5840adea,b6d56156,,3a171ecb,f4b7f89f,cb079c2d,984e0db0
10000459,0.0,-1,27.0,18.0,1795.0,20.0,1.0,19.0,20.0,0.0,1.0,,18.0,05db9164,78ccd99e,8b360ab6,9597bbfa,30903e74,,f3474bcb,37e4aa92,a73ee510,3b08e48b,83dba508,1dabd30e,09cd9f24,07d13a8f,162f3329,5801a300,d4bb7bd8,e7e991cb,cf99e5de,a458ea53,eb8e95db,,32c7478e,6f2df550,46fbac64,2272c19e
10001833,,2,1.0,4.0,50394.0,,0.0,4.0,4.0,,0.0,,4.0,68fd1e64,38a947a1,,,25c83c98,,4b3c7cfe,0b153874,7cc72ec2,5e8fb876,8b94178b,,025225f2,b28479f6,7e068c86,,e5ba7672,5e8bcf8b,,,,,32c7478e,,,
10001587,1.0,87,7.0,14.0,5.0,10.0,8.0,13.0,65.0,1.0,3.0,,10.0,05db9164,4e8d18ed,e40b8423,51fff761,25c83c98,,4ac9db9e,5b392875,a73ee510,3b08e48b,bc346946,7d80257f,bcc725fc,b28479f6,3438297f,0b577457,e5ba7672,47e4d79e,9d523618,b1252a9d,4b908c19,,32c7478e,5a1a4fe9,c9f3bea7,a9746847
10000034,1.0,259,1.0,1.0,5.0,1.0,6.0,1.0,1.0,1.0,3.0,,1.0,05db9164,f3b07830,ad981000,f96c819d,25c83c98,,df5c2d18,0b153874,a73ee510,8aef4905,a7b606c4,b912be9f,eae197fd,b28479f6,d27eed0e,b8b09fe6,e5ba7672,048d01f4,,,08ae854d,,32c7478e,c657e6e5,,
10001042,4.0,76,7.0,2.0,211.0,11.0,5.0,6.0,39.0,1.0,2.0,0.0,11.0,05db9164,207b2d81,ff44b7d9,56e6ecbd,25c83c98,6f6d9be8,01074d39,5b392875,a73ee510,299aecf1,e66005d3,2633f20a,8f33b365,cfef1c29,46630f6c,36b4052c,07c540c4,fa0643ee,21ddcdc9,a458ea53,214a6ee3,,32c7478e,95597f5d,001f3601,4a5cc2a6
10001088,,0,49.0,0.0,15913.0,120.0,12.0,9.0,54.0,,1.0,,4.0,8cf07265,942f9a8d,8e191576,738c4ecf,25c83c98,7e0ccccf,49b74ebc,0b153874,a73ee510,0e9ead52,c4adf918,cdc12223,85dbe138,07d13a8f,a8e962af,1443c357,e5ba7672,1f868fdd,7839a083,a458ea53,55eddbf2,,32c7478e,3fdb382b,001f3601,49d68486
10001716,,2,40.0,8.0,2999.0,,0.0,8.0,8.0,,0.0,,8.0,5a9ed9b0,08d6d899,60a2cdee,cd08b588,25c83c98,fbad5c96,6e6e841b,37e4aa92,a73ee510,3b08e48b,dcc0e16b,6c7591c2,b093e98d,07d13a8f,41f10449,6d922e3b,776ce399,698d1c68,,,15fce809,,be7c41b4,f96a556f,,
10001146,3.0,9,3.0,5.0,787.0,78.0,15.0,45.0,245.0,1.0,2.0,,5.0,17f69355,a796837e,08de7b18,97ce69e9,25c83c98,fbad5c96,fe4dce68,5b392875,a73ee510,83ff688a,68357db6,c5011072,768f6658,cfef1c29,f0bf9094,5a9431f3,e5ba7672,1cdbd1c5,,,e754c5e1,,32c7478e,8fc66e78,,
10001123,0.0,1,1.0,,1440.0,61.0,13.0,48.0,200.0,0.0,4.0,,,05db9164,58e67aaf,548bf07a,4ab0c6e1,25c83c98,fe6b92e5,e05853b8,1f89b562,a73ee510,0446ed7f,7373475d,3953854a,cfbfce5c,1adce6ef,d002b6d9,78550b97,e5ba7672,c21c3e4c,26e97973,b1252a9d,cfe7812d,,bcdee96c,fa470cd3,9b3e8820,93f6d392
10001135,,7,5.0,7.0,3604.0,174.0,4.0,7.0,56.0,,1.0,,7.0,09ca0b81,b56822db,7da86e4b,b733e495,25c83c98,7e0ccccf,4aa938fc,0b153874,a73ee510,316007da,7e40f08a,ed397d6b,1aa94af3,b28479f6,a9d1ba1a,056d8866,e5ba7672,38dce391,21ddcdc9,b1252a9d,deaf6b52,ad3062eb,32c7478e,d9556584,001f3601,6c27a535
10001199,10.0,122,2.0,2.0,54.0,3.0,166.0,11.0,174.0,1.0,15.0,,3.0,05db9164,38a947a1,166243dd,b1a4c591,25c83c98,fbad5c96,1c86e0eb,0b153874,a73ee510,67eea4ef,755e4a50,4e55dc7f,5978055e,b28479f6,46ed0b3c,8932f7d9,e5ba7672,2c6cb693,,,e8254620,,32c7478e,b258af68,,
10001321,,0,7.0,0.0,95518.0,,0.0,5.0,4.0,,0.0,,8.0,5a9ed9b0,68aede49,a00963bd,2e7596f6,4cf72387,fbad5c96,aa1c94e4,0b153874,7cc72ec2,610f6d4c,7e40f08a,3895d391,1aa94af3,07d13a8f,8dbc001a,0c61759d,07c540c4,262c8681,,,6a9ff547,ad3062eb,be7c41b4,15556a9a,,
10000512,,21,20.0,15.0,24511.0,75.0,12.0,44.0,62.0,,1.0,,15.0,05db9164,942f9a8d,72d3eff3,a57ad9c3,f281d2a7,7e0ccccf,3f4ec687,1f89b562,a73ee510,726f00fd,c4adf918,ebd2d41b,85dbe138,b28479f6,ac182643,46f60353,8efede7f,1f868fdd,1d04f4a4,b1252a9d,6cc2d756,ad3062eb,32c7478e,9af06ad9,9d93af03,cdfe5ab7
10000596,,650,,,1926.0,,0.0,11.0,21.0,,0.0,,,9a89b36c,4c2bc594,d032c263,c18be181,25c83c98,7e0ccccf,26a81064,0b153874,a73ee510,50e29c88,9e511730,dfbb09fb,04e4a7e0,8ceecbc8,7ac43a46,84898b2a,e5ba7672,bc48b783,,,0014c32a,,55dd3565,3b183c5c,,
10001406,,1,33.0,24.0,10866.0,27.0,3.0,24.0,26.0,,1.0,,24.0,68fd1e64,f0cf0024,e1e0cbb4,1fa11a90,43b19349,,6cdb3998,0b153874,a73ee510,a1f25462,02ab57a9,e606c45d,740c210d,1adce6ef,abc790fd,38c9e47d,07c540c4,cc693e93,21ddcdc9,b1252a9d,9260909c,,32c7478e,05831ff1,ea9a246c,cea188cc
10000953,2.0,0,120.0,30.0,1340.0,301.0,22.0,27.0,262.0,0.0,4.0,,30.0,05db9164,54b0d681,92e29a5c,4f6dd7c9,25c83c98,,7520dd60,6c41e35e,a73ee510,3b08e48b,6cc7718d,9b9443db,60d87974,1adce6ef,bc55d84c,27186dc9,3486227d,be07c275,21ddcdc9,5840adea,51e1dabe,,423fab69,4f7b7578,47907db5,770ab1e0
10000609,,2,1.0,1.0,3047.0,,0.0,1.0,43.0,,0.0,,1.0,68fd1e64,13f25995,0b0f3952,35d9e6fe,25c83c98,7e0ccccf,e88f1cec,0b153874,a73ee510,3b08e48b,8f410860,ff8c6fd9,b8eec0b1,07d13a8f,7cad642c,5015d391,776ce399,c7cf2414,,,3db17de9,,be7c41b4,4fe18e82,,
10001691,0.0,1,7.0,4.0,1923.0,75.0,8.0,41.0,186.0,0.0,3.0,,4.0,5a9ed9b0,ea3a5818,a59a8294,e5cd99c1,25c83c98,7e0ccccf,4a45f6c5,5b392875,a73ee510,55d3f0df,2a0b79f8,90c5a60e,25512dff,07d13a8f,4e70dc14,2643a5f6,e5ba7672,a1d0cc4f,6f3756eb,5840adea,3829d655,,c7dc6720,3ff8e180,e8b83407,5a205e8e
10000458,,0,4.0,5.0,4626.0,,0.0,5.0,91.0,,0.0,1.0,5.0,39af2607,4d554e60,d032c263,c18be181,25c83c98,fe6b92e5,b2a55fc8,0b153874,a73ee510,30fdb872,2b9f131d,dfbb09fb,aca10c14,64c94865,639789e9,84898b2a,8efede7f,9ef8c1e3,,,0014c32a,,32c7478e,3b183c5c,,
10000385,,0,1361.0,,10.0,,0.0,31.0,28.0,,0.0,,,ae82ea21,38d50e09,4370913d,a6707f4d,25c83c98,7e0ccccf,d3aa6bbf,0b153874,a73ee510,3b08e48b,41d056e9,b4f69a28,628738d3,1adce6ef,e2c18d5a,6c34b9f8,776ce399,582152eb,21ddcdc9,5840adea,0557cc46,,be7c41b4,10527c8b,001f3601,984e0db0
10001591,0.0,0,5.0,3.0,1366.0,3.0,2.0,3.0,3.0,0.0,2.0,,3.0,5a9ed9b0,942f9a8d,38718b2a,8bbea39a,0942e0a7,7e0ccccf,49b74ebc,5b392875,a73ee510,0e9ead52,c4adf918,ab3bcb29,85dbe138,b28479f6,ac182643,cf6f4aaa,1e88c74f,1f868fdd,738584ec,b1252a9d,40b5257c,,32c7478e,4008e1ec,9d93af03,93f2d760
10000175,0.0,18,15.0,9.0,4494.0,,0.0,9.0,8.0,0.0,0.0,,9.0,05db9164,2c16a946,0d427480,1b69e68d,25c83c98,7e0ccccf,ade953a9,0b153874,a73ee510,4072f40f,29e4ad33,6be9ae06,80467802,b28479f6,3628a186,acfad74a,07c540c4,e4ca448c,,,f973405d,,3a171ecb,9117a34a,,
10001032,0.0,0,38.0,8.0,50.0,24.0,1.0,13.0,43.0,0.0,1.0,,8.0,05db9164,f0cf0024,6f67f7e5,41274cd7,4cf72387,,5b10fdbf,5b392875,a73ee510,72c66cf6,d30a51a7,623049e6,de1618b9,b28479f6,e6c5b5cd,c92f3b61,e5ba7672,b04e4670,21ddcdc9,5840adea,60f6221e,,32c7478e,43f13e8b,ea9a246c,731c3655
10001436,20.0,1,7.0,8.0,1213.0,25.0,30.0,10.0,227.0,0.0,2.0,0.0,8.0,68fd1e64,c66fca21,eb28f2f0,d9da879c,25c83c98,7e0ccccf,95402f9a,0b153874,a73ee510,fa7d0797,46febd4d,1b357742,949ea585,07d13a8f,e25cc91e,1ca88d4c,e5ba7672,1304f63b,21ddcdc9,a458ea53,19f8997a,,32c7478e,00161819,010f6491,235eada7
10001230,0.0,0,18.0,1.0,1573.0,12.0,14.0,5.0,137.0,0.0,4.0,,4.0,be589b51,09e68b86,233378be,cb2156cb,25c83c98,7e0ccccf,4af3481d,0b153874,a73ee510,bbff8499,ebcb3ba3,44776637,0067ac1b,b28479f6,52baadf5,54dd60b2,e5ba7672,5aed7436,21ddcdc9,a458ea53,b39b1608,,32c7478e,3fdb382b,e8b83407,eb9a9610
10001882,,0,1.0,,10418.0,74.0,1.0,0.0,9.0,,1.0,,,05db9164,38a947a1,,,25c83c98,7e0ccccf,5fd3419b,5b392875,a73ee510,69adc580,efc5e2cf,,c7176043,b28479f6,d75bc17d,,d4bb7bd8,26ea54dc,,,,,3a171ecb,,,
10001706,0.0,0,8.0,2.0,5024.0,329.0,4.0,12.0,66.0,0.0,2.0,,2.0,05db9164,78ccd99e,412e7177,7c63eb56,43b19349,7e0ccccf,eef6ea32,0b153874,a73ee510,5ba575e7,4955b0c0,3f337f9c,9be66b48,f862f261,ada14dd8,91bc301c,e5ba7672,e7e991cb,9437f62f,a458ea53,c3edc613,,3a171ecb,6b3a653f,9d93af03,4d0c145c
10000061,,76,5.0,,46200.0,,,7.0,,,,0.0,,68fd1e64,287130e0,7555338e,e161fae2,25c83c98,7e0ccccf,ce17d537,0b153874,7cc72ec2,ed111662,5b225578,f34e8f6a,d1be539d,07d13a8f,10040656,8ec308fc,3486227d,891589e7,21ddcdc9,5840adea,182fdd1a,,c7dc6720,6c1cdd05,ea9a246c,1219b447
10001866,,69,,,27334.0,400.0,1.0,0.0,57.0,,1.0,,,05db9164,a0e12995,7072b54f,9361a5a7,25c83c98,7e0ccccf,a870a74a,0b153874,a73ee510,7ef432eb,17586bd8,63e5c830,4c9ff09f,1adce6ef,78c64a1d,831daeab,d4bb7bd8,1616f155,21ddcdc9,5840adea,82242446,,423fab69,60a57787,9b3e8820,e75c9ae9
10001631,,913,3.0,14.0,21866.0,76.0,2.0,33.0,89.0,,1.0,,14.0,68fd1e64,8947f767,05b8e430,f144ee98,43b19349,7e0ccccf,77158c8c,a674580f,a73ee510,3b08e48b,60e58dde,99ac28da,e411c4db,b28479f6,a473257f,a770e7fc,e5ba7672,bd17c3da,6f3756eb,b1252a9d,8d362980,8ec974f4,be7c41b4,3fdb382b,010f6491,49d68486
10001998,,241,177.0,35.0,2237.0,51.0,12.0,41.0,51.0,,1.0,,38.0,68fd1e64,58e67aaf,ef4b47aa,90c72fb4,4cf72387,7e0ccccf,9f525672,0b153874,a73ee510,1e2ab9fa,843d8639,f898f1b8,9cab1003,07d13a8f,10935a85,90772df6,e5ba7672,c21c3e4c,1d04f4a4,a458ea53,90da9c54,,32c7478e,20c8320e,9b3e8820,16edf87e
10000227,,30,,3.0,4383.0,105.0,1.0,13.0,28.0,,1.0,,3.0,68fd1e64,dd8c896e,bd4e74d1,13508380,25c83c98,fbad5c96,18671b18,6c41e35e,a73ee510,e1a31219,77212bd7,f4c65e70,7203f04e,07d13a8f,95275a51,542dec1e,3486227d,3182300e,21ddcdc9,b1252a9d,f7684c6a,,c7dc6720,45ab94c8,010f6491,c84c4aec
10001126,13.0,7,3.0,4.0,251.0,32.0,13.0,21.0,32.0,1.0,1.0,1.0,7.0,68fd1e64,207b2d81,905a7b53,0e5acd1d,25c83c98,7e0ccccf,08b48f3f,5b392875,a73ee510,3b08e48b,ab60c4de,bac9dcdb,c2e887fc,b28479f6,4e9e3b1e,301d75b3,3486227d,157482f0,21ddcdc9,b1252a9d,278a31a1,,3a171ecb,5bceb83a,001f3601,fdd86175
10000014,0.0,51,84.0,4.0,3633.0,26.0,1.0,4.0,8.0,0.0,1.0,,4.0,5a9ed9b0,80e26c9b,97144401,5dbf0cc5,0942e0a7,13718bbd,9ce6136d,0b153874,a73ee510,2106e595,b5bb9d63,04f55317,ab04d8fe,1adce6ef,0ad47a49,2bd32e5c,3486227d,12195b22,21ddcdc9,b1252a9d,fa131867,,dbb486d7,8ecc176a,e8b83407,c43c3f58
10000521,,0,1.0,,8694.0,61.0,1.0,1.0,34.0,,1.0,,,05db9164,09e68b86,46070ce6,17615fcd,25c83c98,fbad5c96,f14f1abf,0b153874,a73ee510,d7c62471,7b5deffb,d0744e21,269889be,f862f261,1dca7862,7149576b,d4bb7bd8,5aed7436,1d1eb838,a458ea53,ef4a560c,,32c7478e,f556f019,724b04da,fe7d4d4a
10001762,,1,4.0,,7349.0,9.0,12.0,3.0,91.0,,4.0,,,8cf07265,4f25e98b,bb40d3b4,52566d96,384874ce,fbad5c96,f610c0f7,0b153874,a73ee510,3a814d5f,cf690be6,05994a27,4fa1154e,64c94865,40e29d2a,710d9802,e5ba7672,7ef5affa,21ddcdc9,5840adea,0baa810e,,32c7478e,3fdb382b,e8b83407,2d056c0b
10000501,0.0,0,1.0,,5862.0,395.0,9.0,2.0,16.0,0.0,2.0,0.0,,f0a33555,68b3edbf,ad4b77ff,d16679b9,4cf72387,fbad5c96,5392de9d,64523cfa,a73ee510,0446ed7f,f89fe102,a2f4e8b5,83e6ca2e,1adce6ef,9ebbad56,89052618,e5ba7672,cf1cde40,,,d4703ebd,,423fab69,aee52b6f,,
10000847,,160,19.0,38.0,4286.0,47.0,3.0,19.0,48.0,,1.0,2.0,41.0,5a9ed9b0,4f25e98b,dca5d15a,794fc893,25c83c98,fbad5c96,fe4dce68,5b392875,a73ee510,ab9e9acf,68357db6,befd9d25,768f6658,07d13a8f,dfab705f,b2ae3c75,27c07bd6,7ef5affa,c79aad78,a458ea53,4ed90330,,32c7478e,3fdb382b,001f3601,49d68486
10001245,0.0,490,40.0,1.0,3414.0,172.0,130.0,12.0,198.0,0.0,4.0,,12.0,05db9164,287130e0,a9189492,38d20f75,25c83c98,,b226f465,0017bc7c,a73ee510,4f0c5ea9,c6c91669,dc7dbab5,b8a76289,26ac7cf4,faa78901,dffa91ca,e5ba7672,891589e7,72d4f58d,a458ea53,d3fdaf29,,55dd3565,f92eb023,ea9a246c,3892454e
10000982,,3,8.0,8.0,36060.0,374.0,7.0,23.0,173.0,,1.0,0.0,8.0,05db9164,4c2bc594,d032c263,c18be181,25c83c98,fbad5c96,cc5ed2f1,0b153874,a73ee510,3b08e48b,081c279a,dfbb09fb,9f16a973,8ceecbc8,7ac43a46,84898b2a,07c540c4,bc48b783,,,0014c32a,ad3062eb,32c7478e,3b183c5c,,
10001592,5.0,-1,13.0,6.0,7.0,1.0,5.0,6.0,6.0,1.0,1.0,,0.0,05db9164,58e67aaf,381d8ea3,76bbce8c,43b19349,fe6b92e5,a870a74a,0b153874,a73ee510,8d34ddcd,17586bd8,732c8db2,4c9ff09f,b28479f6,62eca3c0,03f89a73,07c540c4,c21c3e4c,5ce524d1,b1252a9d,d83181ad,,bcdee96c,3fdb382b,9b3e8820,25bf05c2
10001784,,0,4.0,1.0,56.0,9.0,20.0,1.0,69.0,,11.0,,1.0,05db9164,287130e0,39800186,6d5dd203,25c83c98,fbad5c96,9a62af90,5b392875,a73ee510,5162b19c,a35dd4d8,bb8c28a0,9ded12ab,07d13a8f,10040656,e5e5fb5c,e5ba7672,891589e7,49175026,a458ea53,553a9125,,3a171ecb,f6c8a517,e8b83407,51e206f9
10000773,13.0,1,13.0,13.0,48.0,19.0,13.0,8.0,13.0,2.0,2.0,1.0,13.0,68fd1e64,09e68b86,aa8c1539,85dd697c,25c83c98,13718bbd,197b4575,37e4aa92,a73ee510,6c47047a,48876b80,d8c29807,e40e52ae,07d13a8f,801ee1ae,c64d548f,3486227d,63cdbb21,cf99e5de,a458ea53,5f957280,,3a171ecb,1793a828,e8b83407,b7d9c3bc
10000745,1.0,2,48.0,3.0,20.0,3.0,6.0,21.0,21.0,1.0,3.0,,3.0,09ca0b81,8947f767,8d2c1bcb,b020f676,b2241560,7e0ccccf,d89d88cb,5b392875,a73ee510,d7cb1343,2872a4bd,be6cc8ed,f8320f48,b28479f6,a473257f,646a92a5,e5ba7672,bd17c3da,315ba0e1,a458ea53,344f46da,,32c7478e,3fdb382b,010f6491,49d68486
10001685,,1,1.0,,15838.0,47.0,1.0,0.0,47.0,,1.0,,,5a9ed9b0,38d50e09,48a36cb2,cd47905e,4cf72387,fe6b92e5,c9a51835,0b153874,a73ee510,85224a92,cfcea1c3,84bf5077,633b9be7,07d13a8f,ee569ce2,ad0cdd9f,d4bb7bd8,582152eb,21ddcdc9,5840adea,7c18070e,,32c7478e,f86cd581,001f3601,984e0db0
10001076,,1,,,25394.0,,,10.0,,,,,,05db9164,5dac953d,d032c263,c18be181,5a3e1872,7e0ccccf,9838c017,5b392875,a73ee510,3b08e48b,b87ef7f7,dfbb09fb,aec8a59d,1adce6ef,3a6fbb6d,84898b2a,776ce399,06c23e12,,,0014c32a,,bcdee96c,3b183c5c,,
10000546,,18,,,,,,0.0,,,,,,be589b51,90081f33,fd22e418,36375a46,25c83c98,7e0ccccf,d356c7e6,0b153874,7cc72ec2,3b08e48b,727af3e2,fb991bf5,49fe3d4e,b28479f6,13f8263b,d1a4e968,2005abd1,c191a3ff,,,9fb07dd2,,be7c41b4,359dd977,,
10001646,6.0,90,27.0,6.0,4.0,1.0,14.0,6.0,6.0,1.0,2.0,,1.0,68fd1e64,a07503cc,0454e745,13508380,25c83c98,7e0ccccf,d7ea84dc,7c8f4939,a73ee510,2b438e13,4a77ddca,951c4fc7,dc1d72e4,07d13a8f,77660bba,17aff3ce,e5ba7672,912c7e21,55dd3565,b1252a9d,79371994,,423fab69,45ab94c8,445bbe3b,c84c4aec
10000744,,5,10.0,,128747.0,,0.0,0.0,6.0,,0.0,,,05db9164,942f9a8d,47f0b0d2,6ffc8f28,0942e0a7,7e0ccccf,d9aa9d97,0b153874,7cc72ec2,3b08e48b,c4adf918,bee3806d,85dbe138,07d13a8f,a8e962af,a4676ba4,776ce399,1f868fdd,21ddcdc9,a458ea53,e17839cf,,32c7478e,3fdb382b,e8b83407,49d68486
10000223,0.0,18,,,1530.0,55.0,25.0,0.0,37.0,0.0,1.0,,,68fd1e64,4f25e98b,c6cc2722,35f06b21,25c83c98,7e0ccccf,0c41b6a1,0b153874,a73ee510,e5edcbd4,4ba74619,5a201a4b,879fa878,64c94865,d5690a93,35b57962,e5ba7672,bc5a0ff7,1d1eb838,a458ea53,0d0170a9,,423fab69,165b5acf,001f3601,e6476996
10001676,30.0,11,2.0,6.0,2.0,6.0,31.0,16.0,800.0,2.0,3.0,1.0,6.0,5a9ed9b0,d4be07ad,91c49678,d392d940,25c83c98,7e0ccccf,9d547ce0,0b153874,a73ee510,3b08e48b,868a9e47,d463821c,fc5dea81,07d13a8f,1936a526,ac07723b,27c07bd6,cbae5931,cf99e5de,b1252a9d,66f44edf,c9d4222a,32c7478e,b2f178a3,001f3601,938732a0
10001038,,7,58.0,23.0,616.0,,0.0,23.0,23.0,,0.0,,23.0,05db9164,06174070,a3829614,b0ed6de7,25c83c98,fe6b92e5,57b4bd89,1f89b562,a73ee510,3b08e48b,71fd20d9,3b917db0,ddd66ce1,b28479f6,62615981,12e989e9,776ce399,836a11e3,a34d2cf6,5840adea,9179411e,c9d4222a,3a171ecb,1793a828,e8b83407,fa3124de
10001491,,97,,12.0,10113.0,226.0,4.0,0.0,739.0,,3.0,,56.0,05db9164,f6f4fe4b,21aa0734,90befb67,25c83c98,fbad5c96,2c1c829d,0b153874,a73ee510,cf7470a6,ac416c77,64a416af,a341d3ba,b28479f6,df360709,b16bfdcd,e5ba7672,c587eafc,,,4c744d03,,32c7478e,c9e1b7a4,,
10001629,0.0,0,12.0,13.0,1605.0,126.0,9.0,47.0,421.0,0.0,4.0,,13.0,05db9164,09e68b86,665aae39,0986ba40,4cf72387,,9b4ad590,1f89b562,a73ee510,3b08e48b,75b8e15e,afc7b4bf,ed43e458,1adce6ef,dbc5e126,a92ea6a5,e5ba7672,5aed7436,e29e5544,a458ea53,7182904f,,423fab69,45285e8b,e8b83407,162da209
10001648,17.0,0,11.0,10.0,113.0,21.0,17.0,10.0,16.0,1.0,1.0,0.0,15.0,41edac3d,38d50e09,01a0648b,657dc3b9,25c83c98,7e0ccccf,4b0cab49,0b153874,a73ee510,e1af44fa,6685ea28,11fcf7fa,7edc047a,07d13a8f,fa321567,5e1b6b9d,e5ba7672,52b872ed,21ddcdc9,a458ea53,bfeb50f6,,55dd3565,df487a73,001f3601,c27f155b
10000152,3.0,-1,,,79.0,0.0,3.0,0.0,0.0,1.0,1.0,0.0,,05db9164,09e68b86,3b40a9aa,37dff460,25c83c98,,815e3303,1f89b562,a73ee510,b9b1972c,2cfc1696,ba5646a2,9bbdb8bd,cfef1c29,18847041,cb880c3a,07c540c4,5aed7436,5389847f,5840adea,5b4aa781,,32c7478e,1793a828,e8b83407,63093459
10001688,3.0,14,3.0,4.0,118.0,9.0,3.0,29.0,39.0,1.0,1.0,,4.0,05db9164,db2905e6,752b44f5,108b5db7,384874ce,,968a6688,0b153874,a73ee510,8ec317ae,f25fe7e9,083867f6,dd183b4c,07d13a8f,f0d9127f,9f1f1a1f,e5ba7672,2a92b119,21ddcdc9,5840adea,36d378fa,,32c7478e,b3b00bef,e8b83407,21cfe9f9
10000687,9.0,28,,16.0,329.0,172.0,210.0,35.0,5637.0,1.0,12.0,39.0,150.0,5a9ed9b0,38a947a1,cae9045e,728d8e1d,25c83c98,7e0ccccf,3f4ec687,0b153874,a73ee510,7f79890b,c4adf918,e540bf1e,85dbe138,07d13a8f,6e897ecc,568a6980,8efede7f,a4dd5669,,,f288712f,ad3062eb,32c7478e,adf537c3,,
10001803,,62,156.0,35.0,,,0.0,390.0,386.0,,0.0,,386.0,05db9164,08d6d899,512be979,6c9a7bdf,25c83c98,7e0ccccf,af0809a5,0b153874,7cc72ec2,3b08e48b,9e12e146,f8f2d502,025225f2,07d13a8f,862dcf90,5d56686d,2005abd1,bbf70d82,,,283b581d,,be7c41b4,4f129db5,,
10000676,,71,,2.0,5011.0,3.0,33.0,2.0,50.0,,8.0,,2.0,05db9164,8e465f4d,45dd8f3e,9ec95656,384874ce,fbad5c96,3598a741,5b392875,a73ee510,a9dd3a26,1d351a39,eeec5017,90a568bc,64c94865,9810119d,f128e499,e5ba7672,0c425168,,,d624c69d,,423fab69,dc0c0119,,
10001325,0.0,0,8.0,3.0,1749.0,34.0,48.0,8.0,273.0,0.0,9.0,,12.0,05db9164,298d0556,d032c263,c18be181,0942e0a7,7e0ccccf,36a88c96,0b153874,a73ee510,ae37a48e,2e420cd8,dfbb09fb,004dc387,07d13a8f,bfcf91a0,84898b2a,e5ba7672,a8f42b59,,,0014c32a,,423fab69,3b183c5c,,
10000055,6.0,0,28.0,0.0,31.0,0.0,6.0,0.0,0.0,1.0,1.0,,0.0,8cf07265,287130e0,c1ba4c5a,16fe249c,25c83c98,7e0ccccf,c1225605,985e3fcb,a73ee510,ede207dc,f29b9ed2,469027a9,7eaf6f1a,07d13a8f,10040656,8f13519e,e5ba7672,891589e7,6f3756eb,5840adea,f4095a39,,c7dc6720,1793a828,e8b83407,a475662f
10000141,5.0,59,1.0,1.0,31.0,1.0,5.0,1.0,10.0,1.0,1.0,0.0,1.0,68fd1e64,b80912da,bd350f15,c0ffce15,0942e0a7,fe6b92e5,f8008800,0b153874,a73ee510,50af9b31,e16bba2e,27e5d73a,b17372a1,07d13a8f,569913cf,fdcf791c,e5ba7672,7119e567,d9aa05dc,b1252a9d,33c8b815,,c7dc6720,2d895b70,5c813496,98619b1c
10001643,,0,2.0,1.0,99.0,,0.0,4.0,4.0,,0.0,,4.0,8cf07265,68aede49,50d8de95,24b7fac2,25c83c98,fbad5c96,0d3aae8d,1f89b562,a73ee510,3b08e48b,e08d8d9c,e8898ccf,1577a179,07d13a8f,8dbc001a,68ec8702,1e88c74f,262c8681,,,966e4a0e,,32c7478e,55dea74e,,
10000893,,0,1.0,,18627.0,449.0,9.0,0.0,359.0,,4.0,,,be589b51,e5857f7e,,,25c83c98,7e0ccccf,753aa291,5b392875,a73ee510,99810933,d20ffd8f,,6619af2b,07d13a8f,d2fba5f5,,e5ba7672,c79539f7,,,,ad3062eb,3a171ecb,,,
10000202,,126,,2.0,69481.0,,0.0,4.0,7.0,,0.0,,2.0,05db9164,2ae0a573,c5d94b65,5cc8f91d,4cf72387,13718bbd,2db71de9,0b153874,7cc72ec2,3b08e48b,a0060bca,75c79158,22d23aac,ad1cc976,dd94570a,208d4baf,d4bb7bd8,3e340673,,,6a909d9a,,c3dc6cef,1f68c81f,,
10001851,2.0,3,35.0,47.0,44.0,47.0,2.0,48.0,47.0,1.0,1.0,,47.0,5bfa8ab5,4c2bc594,d032c263,c18be181,25c83c98,fbad5c96,50631f06,0b153874,a73ee510,7259dc52,f25fe7e9,dfbb09fb,dd183b4c,1adce6ef,ae0c3875,84898b2a,07c540c4,15a36060,,,0014c32a,,55dd3565,3b183c5c,,
10000574,,0,35.0,34.0,2947.0,,0.0,38.0,73.0,,0.0,,34.0,05db9164,d833535f,ad4b77ff,d16679b9,25c83c98,7e0ccccf,e824c09e,5b392875,a73ee510,2e546b3f,dcea998f,a2f4e8b5,55be071f,07d13a8f,943169c2,89052618,07c540c4,281769c2,,,d4703ebd,c9d4222a,32c7478e,aee52b6f,,
10000980,,4,3.0,3.0,,,0.0,3.0,3.0,,0.0,,3.0,05db9164,bdaedcf5,,,89ff5705,7e0ccccf,30067bb0,c8ddd494,7cc72ec2,3b08e48b,5d8204e3,,b6ce287d,b28479f6,8af1dd15,,2005abd1,7d461236,,,,,be7c41b4,,,
10000887,,58,4.0,0.0,26360.0,302.0,2.0,2.0,124.0,,1.0,,6.0,ae82ea21,0a519c5c,b00d1501,d16679b9,25c83c98,7e0ccccf,93b19353,0b153874,7cc72ec2,3b08e48b,d2b7c44b,e0d76380,68637c0d,07d13a8f,b812f9f2,1203a270,d4bb7bd8,2efa89c6,,,73d06dde,c9d4222a,3a171ecb,aee52b6f,,
10001275,6.0,257,1.0,1.0,565.0,2.0,6.0,2.0,2.0,1.0,1.0,,1.0,05db9164,38a947a1,b1b6f323,be4cb064,25c83c98,fbad5c96,11754474,0b153874,a73ee510,3b08e48b,88ac36d5,d28c687a,d8e8499b,1adce6ef,fc42663d,f2a191bd,e5ba7672,c9da8737,,,5911ddcb,,93bad2c0,1335030a,,
10000597,,119,,1.0,7159.0,4.0,10.0,1.0,39.0,,1.0,,1.0,05db9164,38a947a1,713c0f91,9fe1748a,384874ce,,d5b6acf2,0b153874,a73ee510,7597dc53,086ac2d2,6b9c3fee,41a6ae00,07d13a8f,588b40b2,85806c82,e5ba7672,0e2b2aec,,,f204ff8b,,32c7478e,1f022022,,
10001451,2.0,52,194.0,21.0,61.0,26.0,2.0,23.0,22.0,1.0,1.0,,22.0,05db9164,09e68b86,aaad596c,53725276,30903e74,7e0ccccf,25504ca6,0b153874,a73ee510,3b08e48b,661c2800,aa2523b5,38087489,b28479f6,52baadf5,6d47b1b7,07c540c4,5aed7436,21ddcdc9,b1252a9d,edb2164f,,93bad2c0,3fdb382b,e8b83407,49d68486
10001807,0.0,0,5.0,,5761.0,24.0,4.0,0.0,5.0,0.0,1.0,,,05db9164,3e4b7926,904dfc86,8bbfe05b,25c83c98,7e0ccccf,bff85457,0b153874,a73ee510,92574706,a3d2f3d0,caf18236,e5186205,07d13a8f,e6863a8e,2910d567,e5ba7672,e261f8d8,21ddcdc9,a458ea53,e47e2b62,,32c7478e,c3cff491,47907db5,e45edfc2
10001687,0.0,200,12.0,6.0,1782.0,13.0,3.0,8.0,8.0,0.0,1.0,,7.0,68fd1e64,38a947a1,ee98eed4,5fb2af39,25c83c98,7e0ccccf,780bcb50,0b153874,a73ee510,f1311559,30b2881b,28c51437,b2e5689c,b28479f6,f2d9bf39,34e85fee,07c540c4,0bcb7dd3,,,f684da87,,32c7478e,10edf4e4,,
10001810,0.0,-1,13.0,33.0,7381.0,574.0,3.0,42.0,526.0,0.0,1.0,0.0,33.0,68fd1e64,0a519c5c,77f2f2e5,d16679b9,25c83c98,7e0ccccf,fda1a50f,25239412,a73ee510,3b08e48b,d2b7c44b,9f32b866,68637c0d,07d13a8f,b812f9f2,31ca40b6,e5ba7672,2efa89c6,,,dfcfc3fa,,32c7478e,aee52b6f,,
10001368,0.0,1,1.0,1.0,1529.0,8.0,5.0,1.0,1.0,0.0,2.0,,1.0,05db9164,c3d483bc,66cfa835,59504ac4,b0530c50,fbad5c96,10cfa4ce,0b153874,a73ee510,998b0039,d0c3ead8,aa3a5972,a7de95c2,07d13a8f,dcac819d,08993d2a,e5ba7672,b0a0fca9,,,2cff7ecd,,c7dc6720,1f133a4c,,
10000748,,0,,,138676.0,,0.0,4.0,123.0,,0.0,,,39af2607,38a947a1,4470baf4,8c8a4c47,25c83c98,7e0ccccf,d548822d,0b153874,7cc72ec2,3b08e48b,8a832bf4,bb669e25,86c652c6,b28479f6,091737ad,2b2ce127,776ce399,ade68c22,,,2b796e4a,,be7c41b4,8d365d3b,,
10000393,,6,12.0,0.0,1933.0,755.0,3.0,24.0,154.0,,1.0,,15.0,68fd1e64,38a947a1,4470baf4,8c8a4c47,25c83c98,7e0ccccf,583bc341,0b153874,a73ee510,3b08e48b,a50ef3e5,bb669e25,b0c30eeb,b28479f6,717db705,2b2ce127,07c540c4,ade68c22,,,2b796e4a,ad3062eb,be7c41b4,8d365d3b,,
10000217,,0,1.0,,4717.0,26.0,2.0,23.0,26.0,,1.0,,,5a9ed9b0,2705da39,47067d41,66265d86,25c83c98,,8ea060ec,0b153874,a73ee510,e77da105,8f68a279,e3e6582c,7eb73375,07d13a8f,74056b5a,be1e450d,07c540c4,66c3058a,,,a645a590,,32c7478e,043ce596,,
10000760,,0,114.0,12.0,36047.0,560.0,7.0,14.0,196.0,,0.0,,12.0,68fd1e64,0468d672,ae06bf90,b125f81c,25c83c98,7e0ccccf,8422994c,0b153874,a73ee510,9e2e04ec,6263d404,c15e7f3e,aa1eb12e,1adce6ef,4f3b3616,98334731,e5ba7672,9880032b,21ddcdc9,5840adea,845453b6,,32c7478e,ce327ac7,ea9a246c,aa5f0a15
10001712,,1,0.0,31.0,263.0,,0.0,33.0,32.0,,0.0,,32.0,5bfa8ab5,d833535f,ad4b77ff,d16679b9,25c83c98,7e0ccccf,6b277f8d,0b153874,a73ee510,9dea4570,f741cd0d,a2f4e8b5,27aba7ec,b28479f6,a66dcf27,89052618,1e88c74f,7b49e3d2,,,d4703ebd,ad3062eb,3a171ecb,aee52b6f,,
10000039,8.0,0,15.0,20.0,115.0,24.0,8.0,23.0,24.0,2.0,2.0,,20.0,5a9ed9b0,c66fca21,78171040,373c404a,25c83c98,,8ff6f5af,0b153874,a73ee510,5ba575e7,b5a9f90e,6766a7f0,949ea585,1adce6ef,8736735c,59974c9c,8efede7f,1304f63b,21ddcdc9,b1252a9d,07b2853e,,32c7478e,94bde4f2,010f6491,09b76f8d
10001258,,32,2.0,1.0,13165.0,257.0,1.0,7.0,132.0,,1.0,,2.0,be589b51,d833535f,b00d1501,d16679b9,25c83c98,fbad5c96,47d65a75,0b153874,a73ee510,3b08e48b,7f9d1b4e,e0d76380,ec4b1d39,1adce6ef,2ee9f086,1203a270,d4bb7bd8,7b49e3d2,,,73d06dde,c9d4222a,32c7478e,aee52b6f,,
10000066,7.0,1,40.0,,1418.0,23.0,147.0,0.0,7.0,0.0,4.0,0.0,,68fd1e64,80e26c9b,ba1947d0,85dd697c,25c83c98,7e0ccccf,16401b7d,a61cc0ef,a73ee510,3b08e48b,20ec800a,34a238e0,18a5e4b8,b28479f6,a785131a,da441c7e,e5ba7672,005c6740,21ddcdc9,5840adea,8717ea07,,32c7478e,1793a828,e8b83407,b9809574
10001990,,1,2.0,4.0,31435.0,,0.0,11.0,8.0,,0.0,,32.0,05db9164,38a947a1,0de84094,76f73f08,25c83c98,7e0ccccf,def4a4d4,0b153874,a73ee510,56ef22e9,4ba74619,38416b51,879fa878,1adce6ef,5a205a23,09675609,07c540c4,faeb6b69,,,52b87c6a,,423fab69,0fde6d0a,,
10001924,0.0,0,15.0,8.0,3467.0,237.0,10.0,9.0,110.0,0.0,2.0,,8.0,68fd1e64,38a947a1,90873fbb,ed7b659c,25c83c98,7e0ccccf,122c542a,0b153874,a73ee510,e5cadd10,7fee217f,8af52996,6e2907f1,b28479f6,3f565406,aed52b4e,e5ba7672,48970815,,,ba3deb23,,423fab69,270dc187,,
10000979,,1,,,43247.0,221.0,0.0,5.0,85.0,,0.0,0.0,,41edac3d,762b9a6f,6e452d04,b742bcc4,4cf72387,,468a0854,0b153874,a73ee510,3b08e48b,a60de4e5,21084397,605bbc24,07d13a8f,aa600b94,f80f36da,3486227d,01890ebf,,,3f5d7bc9,,32c7478e,5a1a48d4,,
10000206,0.0,76,3.0,,5029.0,,,16.0,,0.0,,,,05db9164,421b43cd,889a923c,29998ed1,384874ce,fe6b92e5,52283d1c,37e4aa92,a73ee510,03e48276,e51ddf94,6aaba33c,3516f6e6,b28479f6,e1ac77f7,b041b04a,d4bb7bd8,2804effd,,,723b4dfd,,3a171ecb,b34f3128,,
10000399,,-1,,,23456.0,33.0,3.0,0.0,21.0,,1.0,,,8cf07265,4c2bc594,d032c263,c18be181,4cf72387,7e0ccccf,1b2007fe,0b153874,a73ee510,d71e96ab,6c07e306,dfbb09fb,1cd94349,64c94865,00631f93,84898b2a,07c540c4,5a5b8bf9,,,0014c32a,,32c7478e,3b183c5c,,
10000871,,1,45.0,24.0,11551.0,137.0,39.0,34.0,133.0,,2.0,0.0,29.0,68fd1e64,942f9a8d,e3989839,244734e5,25c83c98,fbad5c96,3f4ec687,0b153874,a73ee510,7edea927,c4adf918,26928121,85dbe138,b28479f6,ac182643,08325bb9,8efede7f,1f868fdd,f44bef3c,b1252a9d,47214062,,32c7478e,a36ce6fa,001f3601,ee23e19d
10001694,,-1,47.0,29.0,10383.0,66.0,3.0,30.0,66.0,,1.0,,29.0,68fd1e64,78ccd99e,0cfae832,2f1b2c1d,25c83c98,7e0ccccf,71ddaac7,0b153874,a73ee510,3b08e48b,80da9312,da27298a,d14c9212,b28479f6,1ca2ec64,6ea4b293,07c540c4,e7e991cb,05e4794e,b1252a9d,dae8fcb9,,32c7478e,3fdb382b,e8b83407,49d68486
10000575,,94,3.0,,2923.0,5.0,3.0,0.0,0.0,,1.0,,,05db9164,38a947a1,64d58ca0,0a8cd7bc,25c83c98,fe6b92e5,75dcaaca,5b392875,a73ee510,3b08e48b,8aabdae8,eebc06cb,edcf17ce,07d13a8f,ed217c18,31cf393e,e5ba7672,61d51f71,,,58d08d44,c9d4222a,3a171ecb,355b6af8,,
10001084,,-1,,,21918.0,25.0,2.0,0.0,16.0,,1.0,0.0,,05db9164,2ae0a573,c5d94b65,5cc8f91d,4cf72387,6f6d9be8,db57ffd3,0b153874,a73ee510,d1184420,a1e02e8a,75c79158,56568181,ad1cc976,dd94570a,208d4baf,07c540c4,3e340673,,,6a909d9a,,c3dc6cef,1f68c81f,,
10000005,,-1,,,12824.0,,0.0,0.0,6.0,,0.0,,,05db9164,6c9c9cf3,2730ec9c,5400db8b,43b19349,6f6d9be8,53b5f978,0b153874,a73ee510,3b08e48b,91e8fc27,be45b877,9ff13f22,07d13a8f,06969a20,9bc7fff5,776ce399,92555263,,,242bb710,8ec974f4,be7c41b4,72c78f11,,
10000058,,1,2.0,0.0,177674.0,,0.0,3.0,2.0,,0.0,0.0,1.0,87552397,207b2d81,6e136288,4f938621,25c83c98,7e0ccccf,8025502e,6c41e35e,7cc72ec2,4072f40f,29e4ad33,64ddde07,80467802,07d13a8f,0bf0feff,0c41b634,e5ba7672,fa0643ee,21ddcdc9,b1252a9d,b4031b95,,3a171ecb,a81956df,001f3601,b1262ddd
10001128,0.0,1,49.0,8.0,4281.0,217.0,3.0,21.0,42.0,0.0,1.0,,8.0,05db9164,09e68b86,8e892d79,2a53a874,25c83c98,7e0ccccf,85f287b3,1f89b562,a73ee510,cdf9bd7a,7c53dc69,43f3d6c6,4fd35e8f,07d13a8f,36721ddc,86e4e0d4,07c540c4,5aed7436,1bd5359f,a458ea53,47d046aa,,423fab69,3fdb382b,e8b83407,49d68486
10001527,0.0,259,23.0,6.0,1689.0,46.0,81.0,28.0,817.0,0.0,24.0,,6.0,5bfa8ab5,09e68b86,0e5d808f,1301eb98,25c83c98,7e0ccccf,8e26f624,0b153874,a73ee510,ee2c9f64,05c4eeb4,a2d48427,3e7d76a0,b28479f6,52baadf5,a3496f7d,e5ba7672,5aed7436,dbe199cf,b1252a9d,fe43d565,,bcdee96c,7246b108,e8b83407,86a91715
10000896,0.0,10,11.0,9.0,10062.0,1053.0,6.0,26.0,900.0,0.0,2.0,0.0,9.0,68fd1e64,fc1fa80d,5a1201eb,45e7b9c6,4cf72387,7e0ccccf,4b219154,5b392875,a73ee510,7259dc52,f25fe7e9,cdac3d6f,dd183b4c,b28479f6,4ce39685,4dab12d6,8efede7f,f68751cd,,,e58d8a84,,32c7478e,1793a828,,
10001984,6.0,0,,11.0,119.0,22.0,6.0,18.0,17.0,1.0,1.0,,17.0,68fd1e64,4f25e98b,5ea1df6d,dda20785,25c83c98,fe6b92e5,41e6f3d3,0b153874,a73ee510,5139ddc4,30b2a438,9ea90194,aebdb575,b28479f6,8ab5b746,4d28617a,d4bb7bd8,7ef5affa,55dd3565,a458ea53,9d0a18a1,78e2e389,32c7478e,3fdb382b,001f3601,49d68486
10001178,,41,1.0,1.0,31824.0,331.0,5.0,6.0,104.0,,1.0,0.0,1.0,68fd1e64,4c2bc594,d032c263,c18be181,43b19349,7e0ccccf,4b219154,0b153874,a73ee510,7c907dc3,f25fe7e9,dfbb09fb,dd183b4c,8ceecbc8,7ac43a46,84898b2a,27c07bd6,bc48b783,,,0014c32a,,32c7478e,3b183c5c,,
10000092,,-1,,,681386.0,,,11.0,,,,,,05db9164,4c2bc594,d032c263,c18be181,43b19349,7e0ccccf,1554a783,0b153874,7cc72ec2,7636f6c8,b7bb7a17,dfbb09fb,73e186f6,8ceecbc8,7ac43a46,84898b2a,e5ba7672,bc48b783,,,0014c32a,c9d4222a,3a171ecb,3b183c5c,,
10001995,5.0,60,49.0,26.0,547.0,66.0,5.0,26.0,26.0,1.0,1.0,,26.0,8cf07265,39dfaa0d,003f419b,ff852091,25c83c98,fbad5c96,9f3e4cce,5b392875,a73ee510,efea433b,e66005d3,349450bc,8f33b365,b28479f6,a36eb32c,6615ffe6,07c540c4,75edcf1f,21ddcdc9,b1252a9d,3dd38d65,ad3062eb,3a171ecb,c2fe6ca4,010f6491,0015d4de
10000726,,36,30.0,2.0,,,0.0,2.0,2.0,,0.0,,2.0,be589b51,80e26c9b,74e1a23a,9a6888fb,25c83c98,3bf701e7,0dab78da,0b153874,7cc72ec2,3b08e48b,7bc78da9,fb8fab62,6b5d07b4,b28479f6,4c1df281,c6b1e1b2,2005abd1,f54016b9,21ddcdc9,b1252a9d,99c09e97,,be7c41b4,335a6a1e,e8b83407,d15c0cc8
10000965,26.0,33,10.0,29.0,154.0,0.0,26.0,32.0,29.0,1.0,1.0,0.0,0.0,8cf07265,421b43cd,8666a32f,29998ed1,25c83c98,fbad5c96,8363bee7,0b153874,a73ee510,299aecf1,bf09be0e,6aaba33c,3516f6e6,b28479f6,2d0bb053,b041b04a,e5ba7672,2804effd,,,723b4dfd,,32c7478e,b34f3128,,
10001049,,0,5.0,2.0,39775.0,30.0,4.0,2.0,27.0,,0.0,,2.0,5a9ed9b0,39dfaa0d,e300ec1e,5e607021,25c83c98,,753aa291,0b153874,a73ee510,7cfcb35e,d20ffd8f,28eaf8f1,6619af2b,07d13a8f,9c6e7138,0fbd51f0,e5ba7672,b4cf6245,21ddcdc9,b1252a9d,b1a43951,,32c7478e,a90ebaa1,010f6491,074bb89f
10001745,2.0,29,2.0,3.0,416.0,9.0,4.0,29.0,86.0,1.0,3.0,,3.0,68fd1e64,e5fb1af3,f6fa2eb8,457bf85d,25c83c98,7e0ccccf,885f3586,0b153874,a73ee510,05256df1,01df04b2,b5992112,3f813a5c,cfef1c29,1e744fde,aac7cef3,e5ba7672,13145934,6f62a118,a458ea53,1aa515a6,ad3062eb,bcdee96c,4008e1ec,f0f449dd,cb5281ba
10000278,,1,181.0,9.0,897.0,,0.0,26.0,26.0,,0.0,,10.0,05db9164,e5fb1af3,722201e2,41ddee28,25c83c98,fbad5c96,1e9876db,0b153874,a73ee510,fa7d0797,043725ae,94a8c293,7f0d7407,cfef1c29,1e744fde,568b7a56,1e88c74f,13145934,5b885066,a458ea53,4d5231d9,,3a171ecb,e930a9c0,46fbac64,5a7c3d44
10000792,0.0,16,1.0,5.0,1746.0,19.0,8.0,8.0,18.0,0.0,2.0,,5.0,05db9164,e112a9de,a079d000,22504558,25c83c98,fbad5c96,c23ffa25,0b153874,a73ee510,8d3bf189,3722e006,e8107cf4,b7f43038,1adce6ef,a4e2caab,776f5665,e5ba7672,c342ea0e,,,62bb718d,,be7c41b4,8f079aa5,,
10000133,,-1,4.0,,11492.0,,0.0,0.0,0.0,,0.0,,,68fd1e64,78ccd99e,414ceaee,c9d7eaf9,25c83c98,,be0a9688,0b153874,a73ee510,3b08e48b,10e6a64f,ef8996b1,38b5339a,b28479f6,1ca2ec64,03172d90,1e88c74f,e7e991cb,21ddcdc9,a458ea53,6463aac0,,32c7478e,f689bb81,e8b83407,65aa49a4
10001928,,-1,,,631032.0,,0.0,5.0,5.0,,0.0,,,05db9164,68aede49,1f082486,0da47a9b,25c83c98,fbad5c96,4b3c7cfe,0b153874,7cc72ec2,d04688d0,8b94178b,9c207460,025225f2,b28479f6,5c595008,b05879fe,07c540c4,262c8681,,,a1fc6bd5,,32c7478e,03aefe56,,
10000144,1.0,0,1.0,2.0,169.0,2.0,9.0,11.0,312.0,1.0,4.0,0.0,2.0,05db9164,b2659ff1,4bcff5f1,906433d5,25c83c98,fbad5c96,ec258437,0b153874,a73ee510,fa7d0797,938fe91f,f724f535,f948ca5d,cfef1c29,4ee6e6c5,375e495d,8efede7f,15bb350b,,,69bb8bd4,,32c7478e,a283230e,,
10000632,33.0,946,6.0,2.0,449.0,31.0,33.0,32.0,32.0,1.0,1.0,,3.0,05db9164,78ccd99e,9b953c56,7be07df9,25c83c98,7e0ccccf,a1eeac3d,5b392875,a73ee510,b354306c,2e9d5aa6,6bca71b1,0a9ac04c,07d13a8f,162f3329,fb8ca891,e5ba7672,e7e991cb,21ddcdc9,b1252a9d,b1ae3ed2,,423fab69,3fdb382b,9b3e8820,49d68486
10001385,17.0,136,28.0,16.0,70.0,94.0,17.0,16.0,16.0,1.0,1.0,,16.0,5a9ed9b0,0b8e9caf,5336832f,465f621b,25c83c98,7e0ccccf,ec2174ab,5b392875,a73ee510,3b08e48b,bb40a095,c22ab444,4af5f8c2,07d13a8f,1a015fe7,a88bcec6,e5ba7672,ca6a63cf,,,02eaf48d,,423fab69,08b0ce98,,
10000805,1.0,0,120.0,,21.0,31.0,1.0,38.0,31.0,1.0,1.0,0.0,,05db9164,4f25e98b,8f345d3a,c7e88618,384874ce,7e0ccccf,fc2c0a2a,0b153874,a73ee510,ff01ce7c,2a0683ab,9c1ab2fb,e5cf62b4,b28479f6,8ab5b746,7dacb697,d4bb7bd8,7ef5affa,872eb0d7,a458ea53,084c6d62,,bcdee96c,09b2fafb,001f3601,946d9dc8
10001091,8.0,-1,15.0,22.0,237.0,69.0,8.0,24.0,23.0,1.0,1.0,,23.0,05db9164,207b2d81,7a121ea3,96dc7a08,25c83c98,fbad5c96,ba8bba08,0b153874,a73ee510,54e99be5,34c909fe,fe726452,ef9686d6,b28479f6,899da9d5,f036a5b6,e5ba7672,25c88e42,21ddcdc9,b1252a9d,d17948fb,,dbb486d7,21c9d296,001f3601,8115a695
10000794,0.0,-1,,,1946.0,13.0,75.0,14.0,107.0,0.0,15.0,0.0,,5a9ed9b0,38a947a1,5a691b82,6a14f9b9,4cf72387,7e0ccccf,0f59d328,0b153874,a73ee510,a78c9a05,39ddd652,e691e3b4,2891c67c,07d13a8f,586a2aab,f8b34416,27c07bd6,e5f8f18f,,,f3ddd519,,423fab69,b34f3128,,
10001931,35.0,0,25.0,10.0,514.0,14.0,36.0,9.0,11.0,1.0,2.0,1.0,10.0,291b7ba2,80e26c9b,2d243b03,f2e08e7d,43b19349,7e0ccccf,8048b460,5b392875,a73ee510,9975fdff,ae4c531b,b78f8331,01c2bbc7,07d13a8f,f3635baf,50038464,3486227d,f54016b9,21ddcdc9,a458ea53,a8e82f5a,c9d4222a,32c7478e,1793a828,e8b83407,51751315
10001611,,2,5.0,3.0,,,0.0,3.0,3.0,,0.0,,3.0,439a44a4,38a947a1,c55a1490,2e4c7112,4cf72387,fe6b92e5,970f01b2,5b392875,7cc72ec2,3b08e48b,36bccca0,d8f11d77,80467802,07d13a8f,fd8464ad,f72d4e1e,2005abd1,95e4ca74,,,aaf36e52,,55dd3565,5ddc2c4c,,
10000019,7.0,102,,3.0,780.0,15.0,7.0,15.0,15.0,1.0,1.0,,3.0,3c9d8785,b0660259,3a960356,15c92ddb,4cf72387,13718bbd,00c46cd1,0b153874,a73ee510,62cfc6bd,8cffe207,656e5413,ff5626de,ad1cc976,27b1230c,fa8d05aa,e5ba7672,5edd90de,,,e12ce348,,c3dc6cef,49045073,,
10001501,1.0,42,12.0,1.0,70.0,6.0,1.0,11.0,10.0,1.0,1.0,,5.0,7e5c2ff4,38a947a1,4470baf4,8c8a4c47,4cf72387,7e0ccccf,56fb669f,0b153874,a73ee510,d34aff56,7252cfd2,bb669e25,ccb9cc75,b28479f6,717db705,2b2ce127,e5ba7672,ade68c22,,,2b796e4a,ad3062eb,dbb486d7,8d365d3b,,
10000878,29.0,798,3.0,11.0,194.0,40.0,29.0,12.0,13.0,1.0,1.0,0.0,13.0,68fd1e64,e77e5e6e,82a315b2,904bc2bc,25c83c98,7e0ccccf,ade953a9,0b153874,a73ee510,b118f931,29e4ad33,10fd4100,80467802,b28479f6,571f6c76,c33d389a,e5ba7672,449d6705,d9aa05dc,b1252a9d,737bff22,,32c7478e,9d5874f6,e8b83407,a8b865d6
10000054,,55,16.0,7.0,1696.0,72.0,2.0,7.0,95.0,,2.0,,7.0,5bfa8ab5,89ddfee8,00e2b23c,10d65c35,25c83c98,7e0ccccf,ad3508b1,5b392875,a73ee510,fc3680e8,ad757a5a,f400e021,93b18cb5,1adce6ef,34cce7d2,9e87470c,e5ba7672,5bb2ec8e,7a45f7f2,a458ea53,a13d5eab,,423fab69,faf5d8b3,f0f449dd,a8cf207e
10001683,1.0,0,3.0,21.0,158.0,137.0,2.0,25.0,233.0,1.0,2.0,,22.0,05db9164,c44e8a72,e55c2549,ba7cdb66,25c83c98,7e0ccccf,9099e7b5,0b153874,a73ee510,3b08e48b,70d4d706,a62b485a,b6a6a31e,b28479f6,1addf65e,33a7fb03,07c540c4,456d734d,21ddcdc9,b1252a9d,e4bf497b,,32c7478e,38be899f,e8b83407,9bef54fd
10001897,,-1,,,,,,0.0,,,,,,be589b51,38a947a1,4470baf4,8c8a4c47,25c83c98,7e0ccccf,88002ee1,0b153874,7cc72ec2,3b08e48b,f1b78ab4,bb669e25,6e5da64f,b28479f6,547b8c62,2b2ce127,2005abd1,b133fcd4,,,2b796e4a,,32c7478e,8d365d3b,,
10001343,,5,3.0,5.0,1723.0,8.0,9.0,5.0,8.0,,1.0,,5.0,05db9164,62e9e9bf,,,25c83c98,,6ad82e7a,0b153874,a73ee510,663eefea,c1ee56d0,,ebd756bd,b28479f6,24566b17,,e5ba7672,d2651d6e,,,,,32c7478e,,,
10001410,0.0,120,80.0,1.0,33831.0,538.0,0.0,2.0,187.0,0.0,0.0,,1.0,05db9164,f0cf0024,2d240b81,9ccd40b7,30903e74,7e0ccccf,fecb6b63,0b153874,a73ee510,906128c5,e6c365aa,11cc1c4a,61fca60c,1adce6ef,55dc357b,b25cb682,d4bb7bd8,b04e4670,21ddcdc9,b1252a9d,ace498a0,,bcdee96c,deda7b3f,c243e98b,c004c6bb
10001188,4.0,-1,13.0,12.0,33.0,16.0,4.0,16.0,12.0,1.0,1.0,,8.0,68fd1e64,8e4f887c,,,25c83c98,7e0ccccf,8f8a62c3,0b153874,a73ee510,9e8fae15,75a64bb4,,873349e8,b28479f6,b43b1e88,,d4bb7bd8,4b340164,,,,,3a171ecb,,,
10001280,8.0,5,1.0,0.0,10.0,0.0,51.0,1.0,5.0,1.0,9.0,0.0,0.0,5e53cc38,207b2d81,e48e5552,9ddc492e,25c83c98,7e0ccccf,ff493eb4,37e4aa92,a73ee510,03e48276,0983d89c,e5e1ca92,1aa94af3,64c94865,11b2ae92,29fd6b7b,e5ba7672,395856b0,21ddcdc9,a458ea53,e5191f27,c9d4222a,32c7478e,c23c2e19,001f3601,89e1abe5
10001956,,0,2.0,1.0,66273.0,,0.0,1.0,22.0,,0.0,,1.0,68fd1e64,38a947a1,c449cf49,d00d0f35,25c83c98,fe6b92e5,7ebb604b,0b153874,7cc72ec2,7effe9ee,f66047e5,63e498fc,13c89cc4,b28479f6,87f18530,5d32e679,e5ba7672,95f11b33,,,c4d244b9,c9d4222a,bcdee96c,2e0a0035,,
10000001,2.0,0,44.0,1.0,102.0,8.0,2.0,2.0,4.0,1.0,1.0,,4.0,68fd1e64,f0cf0024,6f67f7e5,41274cd7,25c83c98,fe6b92e5,922afcc0,0b153874,a73ee510,2b53e5fb,4f1b46f3,623049e6,d7020589,b28479f6,e6c5b5cd,c92f3b61,07c540c4,b04e4670,21ddcdc9,5840adea,60f6221e,,3a171ecb,43f13e8b,e8b83407,731c3655
10001557,,-1,,,1376.0,2.0,6.0,2.0,2.0,,3.0,,,68fd1e64,d4bd9877,bd840d0f,f5a1d625,25c83c98,fe6b92e5,f913fba5,0b153874,a73ee510,3b08e48b,c05dff4b,8066b103,a22449ca,d2dfe871,356fa1ec,c41d1835,07c540c4,5a87d8e9,,,52252402,,3a171ecb,65d7d87d,,
10001754,4.0,27,,6.0,1290.0,101.0,5.0,20.0,78.0,0.0,1.0,0.0,29.0,05db9164,38d50e09,7dcbe8d1,376e04b2,25c83c98,fe6b92e5,8363bee7,1f89b562,a73ee510,efea433b,bf09be0e,9fd4b868,3516f6e6,07d13a8f,e24ff4c6,eba4503a,e5ba7672,f855e3f0,21ddcdc9,b1252a9d,acb43516,,32c7478e,6642af15,001f3601,aa5f0a15
10000113,2.0,207,,3.0,66.0,4.0,5.0,43.0,49.0,1.0,3.0,,4.0,05db9164,f3b07830,fafd1603,29859b14,4cf72387,fe6b92e5,e824c09e,0b153874,a73ee510,3b08e48b,dcea998f,cfaee88e,55be071f,b28479f6,794f6f8b,080b92a6,07c540c4,048d01f4,,,bdf0785f,,32c7478e,c657e6e5,,
10001895,,2,3.0,3.0,5146.0,51.0,5.0,15.0,47.0,,1.0,,3.0,5a9ed9b0,1cf8ffb9,d032c263,c18be181,25c83c98,fe6b92e5,099d72d1,0b153874,a73ee510,6c47047a,a6f5e788,dfbb09fb,beaa48ab,1adce6ef,c06af98c,84898b2a,e5ba7672,1a66fb6f,,,0014c32a,,3a171ecb,3b183c5c,,
10001050,,-1,,,,,0.0,1.0,4.0,,0.0,,,5a9ed9b0,0a765a7a,b12880f3,e5b2a31b,25c83c98,fe6b92e5,86e5b4b0,5b392875,7cc72ec2,3b08e48b,28404bee,23121637,3af886ff,07d13a8f,32c6ddd8,50b03903,2005abd1,4cb86eeb,,,39059201,78e2e389,423fab69,ff09b92e,,
10000438,,3,1.0,,2072.0,0.0,7.0,0.0,45.0,,1.0,,,05db9164,80e26c9b,deff4086,8e9a3d02,25c83c98,7e0ccccf,7227c706,0b153874,a73ee510,5fcee6b1,9625b211,3f0f96a0,dccbd94b,b28479f6,4c1df281,822244e3,e5ba7672,f54016b9,21ddcdc9,b1252a9d,13d108d4,ad3062eb,32c7478e,f998e32f,e8b83407,991b9486
10001477,,11,33.0,3.0,,,0.0,8.0,12.0,,0.0,,3.0,68fd1e64,083aa75b,f7e2684b,1fbb595c,43b19349,7e0ccccf,1f2924d9,0b153874,7cc72ec2,3b08e48b,3ec9c616,2fe438ed,b55434a9,b28479f6,4e47e13c,7da9962b,2005abd1,06747363,21ddcdc9,5840adea,ab6399cc,,be7c41b4,4a5cfcca,e8b83407,4426ce6d
10000082,13.0,13,80.0,32.0,378.0,115.0,15.0,37.0,57.0,1.0,2.0,,48.0,5a9ed9b0,4f25e98b,b393df87,c3fecae9,25c83c98,7e0ccccf,5192dba2,0b153874,a73ee510,f1317066,aaa08406,8d33fe00,6665daff,8ceecbc8,5525889d,0fd4fbad,e5ba7672,9e4517be,3014a4b1,5840adea,572bdde8,ad3062eb,32c7478e,9fa3e01a,001f3601,d9bcfc08
10000379,0.0,-1,1.0,,5061.0,233.0,7.0,8.0,1634.0,0.0,3.0,,,f473b8dc,d833535f,77f2f2e5,d16679b9,43b19349,7e0ccccf,28acc02a,0fb392dd,a73ee510,2134f605,f5a125f1,9f32b866,095af3d6,b28479f6,a66dcf27,31ca40b6,e5ba7672,7b49e3d2,,,dfcfc3fa,,3a171ecb,aee52b6f,,
10001211,0.0,2,44.0,3.0,4422.0,,,8.0,,0.0,,,3.0,68fd1e64,8e4f887c,,,25c83c98,7e0ccccf,14956523,1f89b562,a73ee510,4effc25c,1c541241,,e11162e6,b28479f6,b43b1e88,,07c540c4,4b340164,,,,ad3062eb,32c7478e,,,
10001732,,13,1.0,,20691.0,,,0.0,,,,,,68fd1e64,403ea497,2cbec47f,3e2bfbda,384874ce,7e0ccccf,f970e59a,5b392875,a73ee510,7b7e43a5,5adcba72,21a23bfe,5b6ee19d,07d13a8f,e3209fc2,587267a3,e5ba7672,a78bd508,21ddcdc9,5840adea,c2a93b37,c9d4222a,32c7478e,1793a828,e8b83407,2fede552
10000326,,0,2.0,1.0,29430.0,60.0,1.0,1.0,60.0,,1.0,,1.0,05db9164,1612be27,3c368043,0fe3165a,25c83c98,,f376e33a,5b392875,a73ee510,8228dde1,1333e775,a2722ce4,13b025c3,07d13a8f,cbffe0e5,43a7c9a1,d4bb7bd8,ce500fd8,21ddcdc9,5840adea,0628293c,,c7dc6720,e798ac81,cb079c2d,826dc169
10001256,4.0,597,8.0,11.0,653.0,77.0,6.0,21.0,104.0,1.0,2.0,,64.0,05db9164,0468d672,96166464,867d05be,25c83c98,7e0ccccf,81bb0302,0b153874,a73ee510,012bac1e,b7094596,dc2f19a6,1f9d2c38,07d13a8f,a888f201,668f77c8,e5ba7672,9880032b,21ddcdc9,5840adea,1c6ba3ba,,55dd3565,a9a2ac1a,ea9a246c,409c7293
10000322,6.0,2,17.0,13.0,18.0,12.0,6.0,13.0,13.0,1.0,1.0,0.0,12.0,8cf07265,c5c1d6ae,c7a36fba,94fb8c54,25c83c98,13718bbd,3b93bd7b,0b153874,a73ee510,36bde1a1,cd797342,efd6cd83,f8b2e505,1adce6ef,151f2153,ccf7994a,e5ba7672,836a67dd,21ddcdc9,5840adea,ba1b0dbb,,423fab69,916f4113,7a402766,6527ade9
10001717,0.0,49,,2.0,4609.0,223.0,1.0,20.0,178.0,0.0,1.0,,14.0,8cf07265,0a519c5c,b00d1501,d16679b9,25c83c98,7e0ccccf,fe06fd10,1f89b562,a73ee510,e3d58036,67360210,e0d76380,4f8e2224,b28479f6,7f6af6b0,1203a270,e5ba7672,eea3ab97,,,73d06dde,,32c7478e,aee52b6f,,
10001354,2.0,11,69.0,43.0,642.0,43.0,2.0,43.0,43.0,1.0,1.0,,43.0,05db9164,58e67aaf,d27bb610,e3801c1b,25c83c98,7e0ccccf,cc8ce7f3,0b153874,a73ee510,3b08e48b,b6ac69d0,0afc6bf4,e987b058,1adce6ef,d002b6d9,d621ce3f,d4bb7bd8,c21c3e4c,9437f62f,b1252a9d,118624bb,,3a171ecb,f1fc44b5,9b3e8820,1faf87ce
10001823,0.0,138,,,4114.0,,,8.0,,0.0,,,,05db9164,90081f33,fd22e418,36375a46,25c83c98,7e0ccccf,be6ddaca,5b392875,a73ee510,d44937a3,585a8b28,fb991bf5,addc3db7,b28479f6,13f8263b,d1a4e968,d4bb7bd8,c191a3ff,,,9fb07dd2,,32c7478e,359dd977,,
10000461,29.0,0,13.0,9.0,108.0,9.0,29.0,11.0,9.0,1.0,1.0,2.0,9.0,68fd1e64,09e68b86,4319f568,1125737f,4cf72387,fbad5c96,24e8ca9f,0b153874,a73ee510,7d83f681,94a1f0fa,606c67c3,153f0382,b28479f6,52baadf5,8c276f52,27c07bd6,5aed7436,6f3756eb,b1252a9d,53807e3f,,bcdee96c,1793a828,e8b83407,ed9e6b03
10000425,0.0,307,4.0,4.0,2826.0,4.0,4.0,4.0,20.0,0.0,2.0,,4.0,05db9164,3e4b7926,7442ec70,bb8645c3,25c83c98,fe6b92e5,a4ca48a1,0b153874,a73ee510,3b08e48b,a1288914,a5ab10e6,919200e1,07d13a8f,e6863a8e,1cdb3603,07c540c4,e261f8d8,21ddcdc9,5840adea,1380864e,,3a171ecb,be2f0db5,47907db5,68d9ada1
10001386,1.0,7,14.0,4.0,897.0,13.0,3.0,14.0,156.0,1.0,3.0,,6.0,5a9ed9b0,ea3a5818,e9ba3c02,d86c3243,25c83c98,7e0ccccf,3d067f68,0b153874,a73ee510,3b08e48b,18783374,77fb35ab,78ef55d4,b28479f6,0a069322,9bbfdd44,07c540c4,a1d0cc4f,1d04f4a4,a458ea53,edd5bb8d,,32c7478e,61842413,1575c75f,9a333cac
10000122,0.0,37,23.0,9.0,1635.0,84.0,2.0,17.0,109.0,0.0,2.0,,50.0,05db9164,9b25e48b,2d9b2559,96302ef8,43b19349,fbad5c96,e64ca89e,5b392875,a73ee510,3b76bfa9,87bb382c,3d899a5a,d95a2a6d,8ceecbc8,8f3ef960,24352c5c,07c540c4,7d8c03aa,fbf39fb5,a458ea53,0c61029b,,32c7478e,216a829e,001f3601,abc00283
10000881,0.0,16,1.0,1.0,45750.0,477.0,0.0,14.0,72.0,0.0,0.0,,1.0,05db9164,9e681c70,862a1294,7cb07a1c,25c83c98,7e0ccccf,068d5672,5b392875,7cc72ec2,72210096,cd3a0eb4,76a79c33,715b22a3,b28479f6,40318a15,49033934,e5ba7672,bbdd12dc,,,a50737e9,,32c7478e,aee52b6f,,
10000446,,51,0.0,15.0,30333.0,314.0,0.0,0.0,558.0,,0.0,0.0,49.0,05db9164,0a519c5c,b00d1501,d16679b9,25c83c98,7e0ccccf,afa309bd,5b392875,a73ee510,41a44866,77212bd7,e0d76380,7203f04e,b28479f6,b760dcb7,1203a270,e5ba7672,2efa89c6,,,73d06dde,,3a171ecb,aee52b6f,,
10000048,1.0,2382,13.0,4.0,40.0,4.0,69.0,3.0,609.0,1.0,11.0,0.0,4.0,05db9164,38a947a1,933cc823,b1c1e580,25c83c98,fe6b92e5,002fdf0c,1f89b562,a73ee510,61f70369,a4ea009a,2562cf3c,1e9339bc,b28479f6,f5bfabbd,03dee53f,e5ba7672,b3e92443,,,be661a75,,c7dc6720,67d37917,,
10001196,8.0,0,4.0,14.0,4.0,1.0,15.0,37.0,131.0,1.0,3.0,0.0,1.0,05db9164,70a1db74,1967b0f8,077ac770,25c83c98,7e0ccccf,1e3cba9d,5b392875,a73ee510,b681243c,843d8639,590dfbb8,9cab1003,b28479f6,c1a9d38f,0f3e52cd,e5ba7672,236eaece,,,216374f4,,bcdee96c,5ddc2c4c,,
10000677,68.0,0,81.0,23.0,56.0,40.0,282.0,48.0,469.0,1.0,7.0,1.0,23.0,8cf07265,e77e5e6e,b8d8e2f3,9449965d,25c83c98,7e0ccccf,7c59aadb,5b392875,a73ee510,a098e768,ff78732c,60857cc6,9b656adc,07d13a8f,2eb18840,444585d7,27c07bd6,449d6705,21ddcdc9,a458ea53,110f1bfd,,c7dc6720,4652de8b,e8b83407,8fa55041
10001399,3.0,181,3.0,4.0,295.0,50.0,11.0,38.0,175.0,1.0,4.0,,4.0,05db9164,421b43cd,26d771ef,29998ed1,25c83c98,7e0ccccf,7dab17c2,37e4aa92,a73ee510,865b29d9,636405ac,6aaba33c,31b42deb,b28479f6,2d0bb053,b041b04a,e5ba7672,2804effd,,,723b4dfd,c9d4222a,3a171ecb,b34f3128,,
10001498,,0,44.0,8.0,7974.0,344.0,1.0,7.0,8.0,,1.0,,8.0,05db9164,0468d672,02bd7bb3,b4b00886,0942e0a7,7e0ccccf,01eaa539,0b153874,a73ee510,dc790dda,e3205ff0,a9ecf335,b688506c,1adce6ef,4f3b3616,dc1edaf3,d4bb7bd8,9880032b,21ddcdc9,5840adea,ad69ce75,,32c7478e,6e311859,ea9a246c,9f6a34e7
10000503,,5,25.0,2.0,30941.0,212.0,34.0,2.0,24.0,,0.0,,2.0,05db9164,a0e12995,622d2ce8,51c64c6d,25c83c98,7e0ccccf,c519c54d,1f89b562,a73ee510,11fa841e,59cd5ae7,e9521d94,8b216f7b,b28479f6,83763c20,ab8b968d,e5ba7672,1616f155,21ddcdc9,5840adea,ee4fa92e,c9d4222a,32c7478e,d61a7d0a,9b3e8820,b29c74dc
10001900,,0,3.0,,11620.0,112.0,53.0,1.0,342.0,,3.0,,,05db9164,287130e0,f4283ef0,8e5b38d8,25c83c98,fbad5c96,6284da2d,5b392875,a73ee510,622fc8eb,5874c9c9,91352ce2,740c210d,07d13a8f,10040656,7494f9ca,e5ba7672,891589e7,473e5032,a458ea53,42584677,,32c7478e,57ef7a21,e8b83407,a6dec5b6
10001228,0.0,35,28.0,6.0,866.0,104.0,3.0,35.0,109.0,0.0,2.0,,7.0,05db9164,bfdcfc4a,3482cb1d,2c2b7368,25c83c98,,86e54348,37e4aa92,a73ee510,1ce1e29d,44fa9a7f,21b99057,f27ed3ab,b28479f6,2ed5bdad,41b4dd52,e5ba7672,ffd53157,21ddcdc9,5840adea,390a66d6,,3a171ecb,03a8e84d,2bf691b1,584d8464
10000298,,29,,2.0,10154.0,,0.0,6.0,93.0,,0.0,,2.0,68fd1e64,0a519c5c,b00d1501,d16679b9,25c83c98,7e0ccccf,ce813de3,062b5529,a73ee510,3b08e48b,13754a9c,e0d76380,5d111255,b28479f6,b760dcb7,1203a270,776ce399,2efa89c6,,,73d06dde,,3a171ecb,aee52b6f,,
10000052,,6,2.0,3.0,2779.0,,0.0,3.0,13.0,,0.0,,3.0,fb174e6b,47e8ab98,b009d929,c7043c4b,384874ce,,646e7593,0b153874,a73ee510,3b08e48b,d05acfa9,3563ab62,969e14fd,1adce6ef,bfa6d08a,b688c8cc,8efede7f,eb4d3f8a,21ddcdc9,5840adea,2754aaf1,,55dd3565,3b183c5c,f55c04b6,491eeeef
10001742,0.0,609,1.0,1.0,3039.0,69.0,63.0,11.0,446.0,0.0,11.0,0.0,1.0,87552397,bce95927,0f88c0f4,13508380,25c83c98,fbad5c96,50b436c9,5b392875,a73ee510,b1ed2e73,a0a5e9d7,a3fa6432,ee79db7b,07d13a8f,fec218c0,1cf48289,e5ba7672,04d863d5,21ddcdc9,a458ea53,cf1c2f32,,423fab69,45ab94c8,e8b83407,c84c4aec
10001791,10.0,2,34.0,5.0,25.0,4.0,64.0,5.0,70.0,2.0,9.0,6.0,4.0,05db9164,942f9a8d,a642d369,d8d7e9b7,25c83c98,7e0ccccf,3f4ec687,37e4aa92,a73ee510,7edea927,c4adf918,10ecbb16,85dbe138,b28479f6,ac182643,0eef1d43,3486227d,1f868fdd,2e30f394,a458ea53,aafb1f9c,,32c7478e,bad0d6d8,9d93af03,8f9d38b3
10000713,,3,1.0,1.0,42481.0,,0.0,10.0,1.0,,0.0,,1.0,8cf07265,e112a9de,af5655e7,22504558,4cf72387,7e0ccccf,be387078,c8ddd494,a73ee510,e02bb3ed,67b436e3,252162ec,3be7f5f3,1adce6ef,4267a81c,776f5665,e5ba7672,3dde2dc8,,,5c7c443c,,32c7478e,8f079aa5,,
10001453,1.0,0,1.0,,149.0,5.0,1.0,0.0,0.0,1.0,1.0,,,be589b51,09e68b86,d01261c6,d551fbe0,25c83c98,7e0ccccf,25504ca6,0b153874,a73ee510,3b08e48b,661c2800,9449c78e,38087489,07d13a8f,36721ddc,5fed0876,d4bb7bd8,5aed7436,d16737e3,a458ea53,edc49a33,,93bad2c0,3fdb382b,e8b83407,80dd0a5b
10000360,,-1,,,,,0.0,0.0,6.0,,0.0,,,05db9164,b961056b,d1b59691,8eb681c0,25c83c98,,88002ee1,5b392875,7cc72ec2,3b08e48b,f1b78ab4,0826f297,6e5da64f,1adce6ef,4903dd2e,0abe22ad,2005abd1,5162930e,,,12965bb8,,32c7478e,71292dbb,,
10001809,0.0,300,4.0,,4622.0,25.0,20.0,6.0,55.0,0.0,2.0,4.0,,68fd1e64,403ea497,2cbec47f,3e2bfbda,25c83c98,fe6b92e5,197b4575,0b153874,a73ee510,6c47047a,606866a9,21a23bfe,e40e52ae,07d13a8f,e3209fc2,587267a3,8efede7f,a78bd508,21ddcdc9,5840adea,c2a93b37,,3a171ecb,1793a828,e8b83407,2fede552
10000769,1.0,1,2.0,1.0,5.0,1.0,1.0,1.0,1.0,1.0,1.0,,1.0,05db9164,ea3a5818,828ef18f,ba229df2,384874ce,7e0ccccf,969e0f2f,0b153874,a73ee510,fa7d0797,9163f8f1,eac9feed,b5b29c1f,1adce6ef,7e7dc5e4,98a54621,d4bb7bd8,a1d0cc4f,c68db44a,a458ea53,3b1ae854,,32c7478e,57e2c6c9,1575c75f,7132fed8
10000563,,2,,,36144.0,,,36.0,,,,,,05db9164,d833535f,77f2f2e5,d16679b9,4cf72387,7e0ccccf,0c41b6a1,0b153874,a73ee510,4f11d1f4,4ba74619,9f32b866,879fa878,b28479f6,a66dcf27,31ca40b6,e5ba7672,7b49e3d2,,,dfcfc3fa,,423fab69,aee52b6f,,
1 Id I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26
2 10000405 -1 8020.0 26.0 6.0 0.0 80.0 2.0 8cf07265 b80912da e51edcbe 90f40919 25c83c98 6f6d9be8 59434e5e 1f89b562 a73ee510 3b08e48b a04db730 b57ec450 c66b30f8 07d13a8f 569913cf 11fe787a e5ba7672 7119e567 1d04f4a4 b1252a9d d5f54153 32c7478e a9d771cd c9f3bea7 0a47000d
3 10001189 -1 17881.0 9.0 8.0 0.0 0.0 1.0 0.0 05db9164 bf7a2333 210c632d 3d513154 0942e0a7 b87f4a4a 0b153874 a73ee510 b8b81ee6 319687c9 8747d4c8 62036f49 07d13a8f 9a0b7e16 d58d490f e5ba7672 51369abb d4b6b7e8 32c7478e 37821b83
4 10000674 0.0 0 2.0 13.0 2904.0 104.0 1.0 3.0 100.0 0.0 1.0 13.0 1464facd 8947f767 9d56d2c7 68fb546c 43b19349 fbad5c96 d20b4953 1f89b562 a73ee510 fbbf2c95 b5a9f90e edf66ca8 949ea585 f7c1b33f 7f758956 b78548fb e5ba7672 bd17c3da 966f1c31 a458ea53 1d1393f4 ad3062eb 32c7478e 3fdb382b 010f6491 49d68486
5 10001358 0.0 1471 51.0 4.0 1573.0 63.0 1.0 4.0 13.0 0.0 1.0 4.0 68fd1e64 80e26c9b 9e471be4 169ffff5 4cf72387 7e0ccccf 6772d022 5b392875 a73ee510 213fd432 962f47a7 3ef5350b e8df3343 07d13a8f 02319a52 f294bed7 d4bb7bd8 1f9656b8 21ddcdc9 b1252a9d 602ce342 3a171ecb 1793a828 e8b83407 70b6702c
6 10000810 0.0 16 9.0 17.0 2972.0 621.0 13.0 42.0 564.0 0.0 2.0 0.0 17.0 68fd1e64 08d6d899 a2edc244 60d5f5a7 25c83c98 7e0ccccf 89376183 5b392875 a73ee510 24691f45 8bd4b780 bde06ba1 c0bff1ae 07d13a8f 1a277242 b93ac0ad e5ba7672 87c6f83c bf8efd4c c9d4222a 423fab69 f96a556f
7 10001323 1.0 0 29.0 14.0 4.0 1.0 7.0 14.0 16.0 1.0 3.0 1.0 5a9ed9b0 78ccd99e 10def408 ebc42d91 25c83c98 7e0ccccf c8b3d034 cb66451f a73ee510 a5ad4326 80da9312 cf681365 d14c9212 b28479f6 1ca2ec64 12daa519 e5ba7672 e7e991cb 21ddcdc9 5840adea a921d7b8 32c7478e 1b256e61 b9266ff0 3ff1af9e
8 10001340 0.0 46 15.0 15.0 1481.0 22.0 5.0 10.0 200.0 0.0 3.0 15.0 8cf07265 80e26c9b cef97273 ae574c8f 4cf72387 fbad5c96 9a4f2943 0b153874 a73ee510 86b46b2e 4a00b569 28f7eeac 42ef23bb b28479f6 88e3c6af 310c45c8 e5ba7672 2a64e498 21ddcdc9 5840adea 6e5ab00f 32c7478e 72c78f11 e8b83407 c250242d
9 10000708 1 8.0 4.0 4360.0 21.0 1.0 18.0 97.0 1.0 4.0 05db9164 78ccd99e c42a50b3 5792ec09 b2241560 fbad5c96 ad9fa255 64523cfa a73ee510 d62b39ca e5d8af57 cde39b86 f06c53ac 1adce6ef b00d57a8 0b365e26 07c540c4 e7e991cb 712d530c a458ea53 64e11f35 ad3062eb 32c7478e 8df21ec7 e8b83407 2d178235
10 10001722 0.0 0 25.0 37.0 1500.0 68.0 1.0 36.0 68.0 0.0 1.0 0.0 37.0 68fd1e64 58e67aaf e27903cb bebf4e46 25c83c98 fe6b92e5 b1c33ffe 0b153874 a73ee510 9b2a83c5 ce3dfeb8 8e59d26c f6aeec90 b28479f6 62eca3c0 db0fca86 d4bb7bd8 c21c3e4c 30c64fd7 a458ea53 384fec11 bcdee96c a9a2ac1a 9b3e8820 86d16a45
11 10000018 0.0 24 4.0 2.0 2056.0 12.0 6.0 10.0 83.0 0.0 1.0 2.0 05db9164 f0cf0024 08b45d8b cbb5af1b 384874ce fbad5c96 81bb0302 37e4aa92 a73ee510 175d6c71 b7094596 1c547463 1f9d2c38 1adce6ef 55dc357b 0ca69655 e5ba7672 b04e4670 21ddcdc9 b1252a9d f3caefdd 32c7478e 4c8e5aef ea9a246c 9593bba9
12 10001265 0.0 0 32.0 1503.0 345.0 1.0 47.0 104.0 0.0 1.0 33.0 68fd1e64 d833535f b00d1501 d16679b9 25c83c98 7e0ccccf a77b6a38 5b392875 a73ee510 3b08e48b 90bf7fef e0d76380 a70d1580 b28479f6 a733d362 1203a270 d4bb7bd8 281769c2 73d06dde 32c7478e aee52b6f
13 10000905 219 13.0 19.0 4286.0 198.0 26.0 11.0 543.0 5.0 20.0 05db9164 558b4efb b009d929 c7043c4b 25c83c98 fbad5c96 ce4f7f55 0b153874 a73ee510 e4fa8060 38f692a7 3563ab62 6e5da64f 1adce6ef 37a9f717 b688c8cc e5ba7672 c68ebaa0 21ddcdc9 5840adea 2754aaf1 c9d4222a 423fab69 3b183c5c ea9a246c ff86d5e0
14 10000249 2.0 30 27.0 2.0 0.0 0.0 2.0 2.0 2.0 1.0 1.0 0.0 05db9164 c1384774 d4bef5d2 ebc3fea2 25c83c98 fbad5c96 81bb0302 0b153874 a73ee510 70962768 b7094596 e52ba8a9 1f9d2c38 b28479f6 916e9a2c 0982799e 07c540c4 8e8b535e 21ddcdc9 b1252a9d 11da5050 ad3062eb 32c7478e 9d214089 ea9a246c 5d3f5a67
15 10000191 3.0 1 7.0 8.0 5.0 8.0 17.0 7.0 64.0 1.0 6.0 8.0 05db9164 80e26c9b ba1947d0 85dd697c 25c83c98 7e0ccccf 052e75f4 0b153874 a73ee510 7636f6c8 b7bb7a17 34a238e0 73e186f6 1adce6ef 0f942372 da441c7e e5ba7672 005c6740 21ddcdc9 5840adea 8717ea07 32c7478e 1793a828 e8b83407 b9809574
16 10000880 0.0 70 3.0 5.0 4626.0 103.0 8.0 9.0 116.0 0.0 1.0 5.0 f473b8dc 421b43cd bcb77a9e 29998ed1 384874ce fe6b92e5 1913ac2e 1f89b562 a73ee510 80829afb 2dad6ba2 6aaba33c 47cb697a b28479f6 2d0bb053 b041b04a e5ba7672 2804effd 723b4dfd 32c7478e b34f3128
17 10000866 -1 5.0 3.0 7205.0 24.0 1.0 4.0 18.0 1.0 3.0 68fd1e64 e5fb1af3 b9e3d20b 500c52be 30903e74 7e0ccccf 08e57a96 37e4aa92 a73ee510 5ba575e7 7c430b79 fbbc41c2 7f0d7407 1adce6ef 60403b20 2c1cea37 27c07bd6 13145934 68c36492 b1252a9d 09f4f5ca 3a171ecb 3fdb382b 46fbac64 49d68486
18 10000452 391 10.0 1.0 149116.0 0.0 9.0 1.0 0.0 8.0 05db9164 a796837e dffca8ba 0fa0d423 4cf72387 fbad5c96 9a68af50 37e4aa92 7cc72ec2 b2ebcf4d c4bd1c72 93bab460 bcfc54a9 cfef1c29 85e5b07c 6bb29970 1e88c74f 4e6b896a d9d9202f bcdee96c 8fc66e78
19 10001946 0.0 1 1.0 1380.0 0.0 1.0 1.0 0.0 0.0 1.0 5a9ed9b0 38a947a1 6e022ce8 50050b52 25c83c98 fe6b92e5 94a113a4 0b153874 a73ee510 4ddb41b1 f47e21eb 8cf76223 4f3f2bb1 b28479f6 1f94fcb2 5224bfea d4bb7bd8 2cad38b8 e2448a0d 32c7478e af647f02
20 10000582 0.0 2375 45.0 0.0 11482.0 535.0 5.0 28.0 368.0 0.0 2.0 25.0 68fd1e64 4c2bc594 d032c263 c18be181 25c83c98 7e0ccccf 501069e9 37e4aa92 a73ee510 3b08e48b a10c0fc9 dfbb09fb 30cbe961 64c94865 00631f93 84898b2a e5ba7672 5a5b8bf9 0014c32a 423fab69 3b183c5c
21 10000689 2 82.0 13.0 7958.0 88.0 17.0 13.0 21.0 7.0 0.0 13.0 41edac3d 80e26c9b 3cdb12fb f922efad 25c83c98 fe6b92e5 8ebe9f8b 5b392875 a73ee510 5e3c7100 7760d878 dc906891 8c2b39b2 1adce6ef 0f942372 87acb535 8efede7f 005c6740 21ddcdc9 5840adea a4b7004c ad3062eb bcdee96c b34f3128 e8b83407 9904c656
22 10001904 1.0 24 2.0 3.0 12.0 10.0 3.0 5.0 74.0 1.0 3.0 0.0 3.0 05db9164 e5fb1af3 0a1435c1 bdcfffba 25c83c98 7e0ccccf 788ff59f 0b153874 a73ee510 3b08e48b 9c9d4957 5a276398 9325eab4 f862f261 2a079683 4da40ea2 e5ba7672 13145934 21ddcdc9 5840adea 290c14f6 32c7478e ded4aac9 2bf691b1 bdf46dce
23 10000918 1 41163.0 227.0 0.0 3.0 20.0 0.0 fbc55dae 68aede49 25c83c98 7e0ccccf a9af10b0 5b392875 a73ee510 3b08e48b bfacd3e5 596a2dcd 07d13a8f 8dbc001a d4bb7bd8 262c8681 32c7478e
24 10001236 70 50.0 7.0 15825.0 143.0 1.0 11.0 61.0 1.0 8.0 68fd1e64 09e68b86 aa8c1539 85dd697c 25c83c98 13718bbd 124131fa 1f89b562 a73ee510 03ed27e7 9ba53fcc d8c29807 42156eb4 8ceecbc8 d2f03b75 c64d548f d4bb7bd8 63cdbb21 cf99e5de 5840adea 5f957280 3a171ecb 1793a828 e8b83407 b7d9c3bc
25 10001513 0.0 181 1.0 1.0 21987.0 3111.0 2.0 3.0 55.0 0.0 1.0 1.0 05db9164 c44e8a72 a0c177ca 13508380 43b19349 86651165 49dd1874 a73ee510 3b08e48b 07678d3e 037af858 0159bf9f 07d13a8f 625dc429 5d016282 07c540c4 93e0e949 55dd3565 a458ea53 3db32b15 3a171ecb 45ab94c8 724b04da c84c4aec
26 10000989 90 0.0 1455.0 0.0 6.0 10.0 0.0 2.0 05db9164 6f609dc9 d032c263 c18be181 25c83c98 7e0ccccf 315c76f3 37e4aa92 a73ee510 3b08e48b e51ddf94 dfbb09fb 3516f6e6 07d13a8f c169c458 84898b2a 776ce399 381bd833 0014c32a 3a171ecb 3b183c5c
27 10001584 2638 2.0 21.0 0.0 31.0 3.0 0.0 0.0 5a9ed9b0 2c16a946 2041209a 9f43a1b5 25c83c98 13718bbd 1771cc97 062b5529 a73ee510 03ed27e7 0983d89c fd2387f8 1aa94af3 b28479f6 3628a186 87140baa 07c540c4 e4ca448c d44b821a 423fab69 9117a34a
28 10000479 1 1.0 1.0 15361.0 112.0 8.0 1.0 106.0 1.0 1.0 05db9164 ae46a29d 08cf1eaf f922efad 0942e0a7 fbad5c96 32da4b59 0b153874 a73ee510 eff5602f 9ee336c5 97c801de 094e10ad b28479f6 cccdd69e e2e2fcd9 e5ba7672 e32bf683 b964dee0 ad3062eb 32c7478e b34f3128
29 10000940 1.0 11 2.0 2.0 12.0 2.0 1.0 3.0 2.0 1.0 1.0 2.0 05db9164 38d50e09 d1d57309 0ae423e0 25c83c98 7e0ccccf 38eb9cf4 0b153874 a73ee510 547c0ffe 7f8ffe57 c93280d3 46f42a63 1adce6ef e2c18d5a 3281f130 d4bb7bd8 582152eb 21ddcdc9 5840adea fa89efc0 32c7478e 8e0ae95a 001f3601 d67a6f5b
30 10000511 2 14.0 24.0 2142.0 28.0 9.0 25.0 26.0 3.0 0.0 24.0 5a9ed9b0 8ab240be e159e1de 7967fcf5 43b19349 fe6b92e5 3d2d40a8 0b153874 a73ee510 3f07fd24 a4e98865 8a48eb95 e3543236 07d13a8f e7dd0bfc 91a6eec5 e5ba7672 ca533012 21ddcdc9 5840adea a97b62ca 55dd3565 727a7cc7 445bbe3b 6935065e
31 10001185 0.0 62 19.0 7.0 3313.0 25.0 22.0 7.0 15.0 0.0 3.0 5.0 7.0 68fd1e64 09e68b86 aa8c1539 85dd697c 25c83c98 6f472f0a 0b153874 a73ee510 3b08e48b c06a23c2 d8c29807 df132e22 8ceecbc8 d2f03b75 c64d548f 8efede7f 63cdbb21 cf99e5de 5840adea 5f957280 32c7478e 1793a828 e8b83407 b7d9c3bc
32 10000733 44 1.0 0.0 2710.0 0.0 1.0 39.0 0.0 1.0 5bfa8ab5 0b8e9caf d7c3940d 591ce327 25c83c98 7e0ccccf 776ecf80 37e4aa92 a73ee510 3b08e48b d93e6010 9a114ace 4e8bba73 b28479f6 5340cb84 a7cfe8b7 776ce399 ca6a63cf a70f8ad1 bcdee96c 08b0ce98
33 10000829 324 4.0 1.0 5735.0 56.0 2.0 3.0 15.0 1.0 1.0 5a9ed9b0 2c16a946 08d6e57c 64712dc5 25c83c98 fbad5c96 4aa938fc 0b153874 a73ee510 ff5a1549 7e40f08a 001b6b5c 1aa94af3 07d13a8f 18231224 08100483 07c540c4 74ef3502 63b17b27 3a171ecb 9117a34a
34 10001986 43 6.0 9.0 139.0 0.0 14.0 9.0 0.0 9.0 05db9164 04e09220 95e13fd4 a1e6a194 25c83c98 13718bbd 69a978e2 0b153874 a73ee510 6c47047a dae7ef8b 8882c6cd 6671dc76 b28479f6 69f825dd 23056e4f 3486227d 6fc84bfb 5155d8a3 3a171ecb ded4aac9
35 10001749 0.0 5 2.0 8.0 7194.0 527.0 1.0 8.0 439.0 0.0 1.0 43.0 5a9ed9b0 38a947a1 c7cac1c4 f97061f8 25c83c98 fbad5c96 7d48c0ae 0b153874 a73ee510 88bc1874 5874c9c9 78458b47 740c210d 1adce6ef 6d818e07 8351b996 d4bb7bd8 166a4729 f669e8c8 423fab69 d3d40c0b
36 10001057 0.0 0 1.0 12638.0 117.0 4.0 2.0 112.0 0.0 3.0 0.0 1.0 5a9ed9b0 5dac953d d032c263 c18be181 25c83c98 fbad5c96 6978304f 5b392875 a73ee510 5ba575e7 dbdb7970 dfbb09fb 9be66b48 1adce6ef b4a435f2 84898b2a e5ba7672 63e4be9d 0014c32a 3a171ecb 3b183c5c
37 10000427 1.0 0 1.0 27.0 8.0 27.0 2.0 25.0 155.0 1.0 2.0 27.0 05db9164 38a947a1 b00d1501 d16679b9 0942e0a7 fbad5c96 81bb0302 0b153874 a73ee510 2ec6a85f b7094596 e0d76380 1f9d2c38 1adce6ef 1699e435 1203a270 e5ba7672 02a76863 73d06dde 55dd3565 aee52b6f
38 10001158 1.0 6 9.0 24.0 542.0 97.0 1.0 44.0 87.0 1.0 1.0 75.0 05db9164 d833535f 77f2f2e5 d16679b9 25c83c98 7e0ccccf eb4aa055 0b153874 a73ee510 5162b19c 7a3651f5 9f32b866 95bc260c 07d13a8f 2e7bc615 31ca40b6 d4bb7bd8 7b49e3d2 dfcfc3fa 32c7478e aee52b6f
39 10000156 1392 12.0 9.0 1775.0 0.0 16.0 31.0 0.0 16.0 68fd1e64 4c2bc594 d032c263 c18be181 0942e0a7 fbad5c96 16401b7d 5b392875 a73ee510 3b08e48b 20ec800a dfbb09fb 18a5e4b8 8ceecbc8 7ac43a46 84898b2a 776ce399 bc48b783 0014c32a 3a171ecb 3b183c5c
40 10000491 -1 0.0 14.0 92.0 0.0 0.0 83.0 0.0 0.0 05db9164 09e68b86 6fb84f11 74c01727 25c83c98 3d63f4e6 0b153874 a73ee510 5aecc062 af6a4ffc 1c6608e2 2a1579a2 07d13a8f 36721ddc bf784cf7 3486227d 5aed7436 55dd3565 5840adea 1e5dd970 32c7478e 75aae369 e8b83407 fa1d538c
41 10000692 11.0 47 5.0 6.0 57.0 6.0 24.0 10.0 12.0 1.0 2.0 0.0 6.0 05db9164 207b2d81 feeaa45b 8a49d676 25c83c98 fbad5c96 0c0c2a5d 0b153874 a73ee510 1dda5fa3 f2a5d7d2 d083c277 a3b89afc 07d13a8f f3c64936 e52b079d e5ba7672 f724634a 21ddcdc9 a458ea53 58a9b2cf 32c7478e 5ee1762f 001f3601 3ad3379e
42 10000027 0.0 20 2.0 2.0 7188.0 170.0 2.0 3.0 24.0 0.0 2.0 0.0 2.0 68fd1e64 38a947a1 ee6e4611 30d9fc77 4cf72387 7e0ccccf bf9d4f90 0b153874 a73ee510 b7c4dad5 81cae03e 5332e3fb d413ef3e 07d13a8f a6d97bf2 ec676ace 3486227d 02e8d897 b055c31b 3a171ecb ae2cd100
43 10001109 0.0 25 3.0 3098.0 138.0 2.0 0.0 337.0 0.0 2.0 05db9164 09e68b86 aa055270 266fa7f2 25c83c98 13718bbd d7c52953 0b153874 a73ee510 55485eb1 4ab39743 9c70001c ab8a1a53 b28479f6 52baadf5 6bf0f847 e5ba7672 5aed7436 7a45f7f2 b1252a9d 190a3f41 3a171ecb 745511b1 e8b83407 3d08d77e
44 10001238 714 42079.0 0.0 1.0 19.0 0.0 8cf07265 80e26c9b d22b6c2c c446f801 25c83c98 24562a27 0b153874 a73ee510 9f496763 6c07e306 78e8bc24 1cd94349 b28479f6 4c1df281 8a924036 e5ba7672 f54016b9 21ddcdc9 b1252a9d d494b334 32c7478e 93a075b7 e8b83407 4271e99f
45 10000017 0.0 1 0.0 16597.0 557.0 3.0 5.0 123.0 0.0 1.0 1.0 8cf07265 7cd19acc 77f2f2e5 d16679b9 4cf72387 fbad5c96 8fb24933 0b153874 a73ee510 0095a535 3617b5f5 9f32b866 428332cf b28479f6 83ebd498 31ca40b6 e5ba7672 d0e5eb07 dfcfc3fa ad3062eb 32c7478e aee52b6f
46 10000629 0 3.0 2.0 7607.0 0.0 3.0 10.0 0.0 2.0 05db9164 5368c225 e22844b2 fadd820a 384874ce 7e0ccccf 4bd081bf 51d76abe a73ee510 3b08e48b 2271d551 2a4ef823 0092602c b28479f6 5502ed6b eaead249 776ce399 a53934cb 71e3dba8 be7c41b4 2cb8e5cc
47 10000519 1 100.0 5.0 18767.0 372.0 2.0 5.0 28.0 1.0 5.0 05db9164 58e67aaf 28891684 d9638d09 25c83c98 7e0ccccf 5a91237e 0b153874 a73ee510 7ef432eb 59cd5ae7 7ca6db28 8b216f7b 07d13a8f 10935a85 2bae09ce 07c540c4 c21c3e4c 55dd3565 b1252a9d 47e8548b 32c7478e 3fdb382b 9b3e8820 49d68486
48 10000361 21 15.0 1.0 73965.0 0.0 5.0 6.0 0.0 1.0 5a9ed9b0 4f25e98b 76ac8dc1 16fe249c 384874ce 13718bbd e90f312d 0b153874 7cc72ec2 f3e003c4 b8f1b1b5 76aed55b 00613319 64c94865 d5690a93 8f13519e 07c540c4 bc5a0ff7 6f3756eb 5840adea 1638b454 3a171ecb 1793a828 e8b83407 a475662f
49 10000289 0.0 4 3.0 2.0 2671.0 24.0 19.0 6.0 70.0 0.0 5.0 2.0 05db9164 38a947a1 224c3320 5d5ca56d 4cf72387 7e0ccccf 9e71db6f 5b392875 a73ee510 ac25feb9 60730c2f e1193f76 3b5e3853 07d13a8f ea8d4f05 af157112 e5ba7672 c2ce2fbb 898614a0 93bad2c0 0505abc3
50 10001551 6.0 -1 17.0 14.0 2.0 0.0 79.0 31.0 258.0 1.0 4.0 0.0 0.0 05db9164 942f9a8d 2d89f89f d87605f3 25c83c98 7e0ccccf 3f4ec687 5b392875 a73ee510 726f00fd c4adf918 b75dc15d 85dbe138 1adce6ef ae97ecc3 ac5fe8ed 8efede7f 1f868fdd 21ddcdc9 a458ea53 64765008 bcdee96c ff05d9df 9d93af03 cea38b55
51 10001785 0.0 35 12.0 5.0 2162.0 120.0 6.0 47.0 66.0 0.0 1.0 0.0 6.0 05db9164 09e68b86 fea142f8 3ee79af4 25c83c98 7e0ccccf 33cca6fa 0b153874 a73ee510 401ced54 683e14e9 aa5bf28c 2b9fb512 07d13a8f 36721ddc 1686e3d8 e5ba7672 5aed7436 2b558521 b1252a9d 46da9a39 3a171ecb 31f298fa 9d93af03 b731a9be
52 10001548 0.0 0 42.0 2.0 8939.0 70.0 5.0 2.0 448.0 0.0 3.0 2.0 05db9164 58e67aaf 65152931 d1580706 4cf72387 7e0ccccf a61aeaec 0b153874 a73ee510 7e3f556f 17586bd8 0825e20c 4c9ff09f 051219e6 d83fb924 7aa21401 e5ba7672 c21c3e4c 21ddcdc9 a458ea53 4357c90d c7dc6720 3eac68e7 9b3e8820 ecea19e4
53 10001326 0.0 10 17.0 28.0 4566.0 439.0 7.0 24.0 454.0 0.0 1.0 34.0 87552397 09e68b86 aa8c1539 85dd697c 25c83c98 f970e59a 0b153874 a73ee510 afbc3455 5adcba72 d8c29807 5b6ee19d 8ceecbc8 d2f03b75 c64d548f e5ba7672 63cdbb21 cf99e5de 5840adea 5f957280 32c7478e 1793a828 e8b83407 b7d9c3bc
54 10000076 140 2.0 2.0 0.0 2.0 2.0 0.0 2.0 5bfa8ab5 38a947a1 25c83c98 7e0ccccf 88002ee1 64523cfa 7cc72ec2 3b08e48b f1b78ab4 6e5da64f 07d13a8f c2b7aaa6 2005abd1 659bdb63 ad3062eb 32c7478e
55 10000578 0.0 16 3.0 32.0 1617.0 149.0 29.0 22.0 1289.0 0.0 8.0 78.0 287e684f 38a947a1 f0d561be 52e2204b 25c83c98 7e0ccccf 8c327098 0b153874 a73ee510 5162b19c d556b556 28e874ed 1d36488f b28479f6 7c5bcff3 196ee6aa e5ba7672 876521e0 ce0c1e81 32c7478e b258af68
56 10000279 6.0 0 29.0 41.0 14.0 41.0 6.0 37.0 41.0 1.0 1.0 41.0 8cf07265 207b2d81 239b957d d50f8f77 25c83c98 029d716d 37e4aa92 a73ee510 e9f37f7e f2a5d7d2 ae9cdcd4 a3b89afc 07d13a8f f3c64936 85520cc5 e5ba7672 f724634a 21ddcdc9 a458ea53 85cc3ff1 3a171ecb 610a186d 001f3601 13843d40
57 10000933 34 38.0 21.0 0.0 38.0 38.0 0.0 11.0 05db9164 04e09220 f9aed79a a1e6a194 25c83c98 fbad5c96 72cf945c 0b153874 a73ee510 93a1c228 7b61aa9b 22b8ec76 7f5bf282 051219e6 f29e2024 23056e4f 1e88c74f e161d23a 33c96fc7 32c7478e ded4aac9
58 10000475 0.0 -1 1.0 18.0 12229.0 780.0 2.0 39.0 316.0 0.0 1.0 18.0 68fd1e64 d833535f 77f2f2e5 d16679b9 4cf72387 fe6b92e5 dc7659bd 5b392875 a73ee510 b883655e e51ddf94 9f32b866 3516f6e6 b28479f6 a66dcf27 31ca40b6 07c540c4 7b49e3d2 dfcfc3fa 3a171ecb aee52b6f
59 10001339 11.0 0 25.0 34.0 1.0 3.0 35.0 25.0 68.0 3.0 8.0 3.0 68fd1e64 287130e0 31c3612f 14f195ab 25c83c98 22fd2464 0b153874 a73ee510 d6133462 d9085127 60e03064 ef7e2c01 1adce6ef 310d155b dff2640e e5ba7672 891589e7 21ddcdc9 b1252a9d 7f311475 32c7478e 3fdb382b ea9a246c 49d68486
60 10001255 1 10749.0 13.0 1.0 2.0 13.0 1.0 eb0a56a5 68b3edbf d032c263 c18be181 25c83c98 7e0ccccf 7a9ee4e9 0b153874 a73ee510 c2c7f85b a17df47c dfbb09fb 1ec8e563 b28479f6 f5799c5c 84898b2a d4bb7bd8 3009c5ce 0014c32a 55dd3565 3b183c5c
61 10000814 2.0 61 101.0 5.0 432.0 137.0 2.0 27.0 27.0 1.0 1.0 0.0 27.0 17f69355 207b2d81 6ace624e 53aa3ec9 25c83c98 7e0ccccf 6de90931 0b153874 a73ee510 14781fa9 87fe3e10 f5d83e6f 3bd6c21d b28479f6 899da9d5 36cd32ed e5ba7672 25c88e42 21ddcdc9 b1252a9d 166779ab 32c7478e 43237b56 001f3601 03764a6b
62 10000840 1 40.0 6.0 10104.0 5.0 0.0 6.0 05db9164 80e26c9b ff030570 85dd697c 25c83c98 7e0ccccf 50b436c9 0b153874 a73ee510 376bbe93 a0a5e9d7 8229bc5b ee79db7b 8ceecbc8 8d015bd8 da441c7e e5ba7672 005c6740 21ddcdc9 5840adea 5a9032d6 32c7478e 1793a828 e8b83407 9904c656
63 10001521 14 8.0 5.0 210.0 0.0 17.0 17.0 0.0 5.0 be589b51 421b43cd 9503254b 29998ed1 25c83c98 7e0ccccf 9ebbd31c 0b153874 a73ee510 bde51b15 e973bfd7 6aaba33c 439cd4cc b28479f6 2d0bb053 b041b04a 3486227d 2804effd 723b4dfd c9d4222a 32c7478e b34f3128
64 10001360 0 14.0 3.0 5875.0 68.0 5.0 3.0 4.0 1.0 3.0 68fd1e64 95e2d337 f715d8cc 7c15fa92 25c83c98 13718bbd fc19bfad 5b392875 a73ee510 255f3655 3bcfd189 b9bee1c2 077640f4 07d13a8f aa0c8851 498519e1 e5ba7672 1a9f6745 04de9d96 5840adea 71b9f31a 32c7478e cf9f8644 2bf691b1 00cd7c8a
65 10000966 341 15222.0 413.0 1.0 44.0 216.0 1.0 05db9164 0a519c5c b00d1501 d16679b9 25c83c98 fbad5c96 d009ea70 0b153874 a73ee510 3b08e48b 6643a666 e0d76380 85cbc79f 07d13a8f 5a7d5bd8 1203a270 d4bb7bd8 eea3ab97 73d06dde 32c7478e aee52b6f
66 10000047 31.0 17 2.0 11.0 290.0 23.0 31.0 23.0 65.0 2.0 2.0 11.0 05db9164 4f25e98b 03280284 5214fda3 25c83c98 fbad5c96 0c41b6a1 0b153874 a73ee510 fa642b71 4ba74619 60bab41d 879fa878 07d13a8f 5be89da3 b6acbd10 e5ba7672 bc5a0ff7 fae651c5 a458ea53 3792328c c0061c6d 423fab69 7a8e7ed6 001f3601 f159b6cb
67 10000793 30.0 -1 42.0 2.0 4.0 0.0 153.0 6.0 11.0 2.0 13.0 0.0 09ca0b81 89ddfee8 15d7420a ff441594 25c83c98 3bf701e7 bd9a3e0c 0b153874 a73ee510 54dee4bc 980e6880 5f27bc59 aef750b7 051219e6 d5223973 e2b64862 e5ba7672 5bb2ec8e 7a45f7f2 a458ea53 2f4978df ad3062eb 32c7478e 75c8ca05 f0f449dd d21d0b82
68 10000916 8 27.0 41.0 2250.0 121.0 0.0 49.0 96.0 0.0 41.0 05db9164 38a947a1 34dc29c3 3b5eac6d 30903e74 9163310a 5b392875 a73ee510 f237a99b aa1ed092 5b705e99 8cde53cf 64c94865 889bd31d dbd7949e d4bb7bd8 3b659b79 7c364f6a be7c41b4 c646e587
69 10000682 3 2.0 1.0 7283.0 0.0 2.0 143.0 0.0 0.0 1.0 05db9164 09e68b86 cda8326c 8d7c66f1 25c83c98 fbad5c96 a98de837 1f89b562 a73ee510 4effc25c f5204b1e 3fc820a5 e4fa2059 64c94865 91126f30 19612a0f 3486227d 5aed7436 fc134659 a458ea53 8b48b2b4 3a171ecb 4ab39369 e13f3bf1 a48f96ee
70 10000506 0 3.0 9.0 41555.0 279.0 0.0 11.0 161.0 0.0 9.0 05db9164 0a519c5c ad4b77ff d16679b9 25c83c98 fe6b92e5 7a019822 0b153874 a73ee510 3b08e48b c012107d a2f4e8b5 c8dca410 1adce6ef 123b2f29 89052618 07c540c4 2efa89c6 d4703ebd ad3062eb be7c41b4 aee52b6f
71 10000353 113 1.0 7443.0 0.0 2.0 50.0 0.0 05db9164 fc1fa80d d459136b 45e7b9c6 384874ce 7e0ccccf 57b4bd89 0b153874 a73ee510 3b08e48b 71fd20d9 cdac3d6f ddd66ce1 b28479f6 4ce39685 4dab12d6 776ce399 f68751cd e58d8a84 3a171ecb 1793a828
72 10000276 1 1.0 14780.0 80.0 1.0 1.0 14.0 1.0 05db9164 4f25e98b 71f00ff4 7775ae9a a9411994 44fb02c7 5b392875 a73ee510 d108fc83 2386466b c60138d9 45db6793 07d13a8f 5be89da3 3b82d2a6 d4bb7bd8 bc5a0ff7 6f3756eb a458ea53 3c482138 32c7478e 75b08a3d e8b83407 22a3ad95
73 10000970 55 7.0 8.0 0.0 7.0 7.0 0.0 7.0 ae82ea21 2c16a946 5a5f8486 f8f91ee1 25c83c98 7e0ccccf 6c338953 0b153874 a73ee510 3b08e48b 553ebda3 2d827a5f 49fe3d4e 07d13a8f 18231224 7e161c9a 776ce399 74ef3502 7d1d76fd be7c41b4 9117a34a
74 10001816 0.0 1 7.0 4970.0 436.0 11.0 36.0 721.0 0.0 8.0 7.0 68fd1e64 08d6d899 9143c832 f56b7dd5 43b19349 fe6b92e5 b77d7b90 0b153874 a73ee510 4549ea1f fd89d13f ae1bb660 81621307 b28479f6 bffbd637 bad5ee18 e5ba7672 bbf70d82 0429f84b 85d5a995 c0d61a5c
75 10001302 0.0 2 5.0 5.0 1572.0 57.0 1.0 33.0 55.0 0.0 1.0 5.0 68fd1e64 04e09220 4cf72387 7e0ccccf 85e7f6c9 0b153874 a73ee510 4eede548 02efa108 62555ac3 b28479f6 b21f08fe d4bb7bd8 e161d23a c9d4222a 32c7478e
76 10000333 88.0 0 2.0 154.0 4.0 519.0 32.0 855.0 1.0 32.0 0.0 05db9164 1cfdf714 186dcc1e 73a88631 25c83c98 3bf701e7 0df4df10 0b153874 a73ee510 acccca1c 4d8549da b8a5fa1e 51b97b8f 07d13a8f f775a6d5 89fbd5c5 8efede7f e88ffc9d 083e89d9 a458ea53 d757e8f8 ad3062eb c7dc6720 3fdb382b cb079c2d 49d68486
77 10001667 0.0 3 7496.0 186.0 20.0 6.0 470.0 0.0 5.0 68fd1e64 d0a34130 d032c263 c18be181 25c83c98 fe6b92e5 bd53d88a 5b392875 a73ee510 2919778b ec967dd8 dfbb09fb 9106f5bd 07d13a8f 873e1e46 84898b2a e5ba7672 d5288836 0014c32a c9d4222a 423fab69 3b183c5c
78 10000135 0 17.0 3.0 19811.0 0.0 3.0 54.0 0.0 3.0 05db9164 f0cf0024 6f67f7e5 41274cd7 25c83c98 fbad5c96 9b6a4cc9 0b153874 a73ee510 a5aa06c8 8e3de34d 623049e6 b50e2ed0 b28479f6 e6c5b5cd c92f3b61 1e88c74f b04e4670 21ddcdc9 5840adea 60f6221e 32c7478e 43f13e8b ea9a246c 731c3655
79 10000182 6.0 0 7.0 1.0 138.0 11.0 6.0 5.0 5.0 2.0 2.0 5.0 05db9164 8e4f887c 43b19349 7e0ccccf 7f2c5a6e 0b153874 a73ee510 9bb3a560 d21494f8 f47f13e4 b28479f6 344bf25d d4bb7bd8 4b340164 c9d4222a 32c7478e
80 10001760 -1 0.0 2.0 2.0 0.0 05db9164 68aede49 23407986 24b7fac2 25c83c98 fbad5c96 08383675 0b153874 7cc72ec2 3b08e48b 727af3e2 f5b766be 49fe3d4e b28479f6 5c595008 68ec8702 2005abd1 262c8681 966e4a0e ad3062eb be7c41b4 55dea74e
81 10001366 1 2.0 2.0 4363.0 4.0 26.0 2.0 7.0 4.0 2.0 05db9164 80e26c9b 8ff53ad6 6d238700 25c83c98 50b436c9 0b153874 a73ee510 162688a8 a0a5e9d7 3538930e ee79db7b b28479f6 4c1df281 de4483ef e5ba7672 f54016b9 21ddcdc9 b1252a9d 49ffca9c 32c7478e 74441c16 e8b83407 9e0634e6
82 10001070 1.0 247 34.0 21.0 637.0 29.0 6.0 28.0 104.0 1.0 2.0 0.0 23.0 be589b51 58e67aaf 814a9e19 650cc93b 25c83c98 7e0ccccf 60f43665 0b153874 a73ee510 d3f2758d b91c2548 33b83378 a03da696 b28479f6 62eca3c0 db2d4359 27c07bd6 c21c3e4c 1d04f4a4 b1252a9d 1a0fc4bc bcdee96c 3fdb382b 9b3e8820 49d68486
83 10000107 2.0 -1 0.0 0.0 18.0 0.0 2.0 0.0 0.0 1.0 1.0 0.0 05db9164 f9875f50 77f60250 28efe861 25c83c98 d5527617 64523cfa a73ee510 3b08e48b 7466b255 0d58691e f4c487c1 b28479f6 722bd39d accf6945 07c540c4 43a9e4b1 5ce524d1 b1252a9d 6e738c9a 32c7478e 8b4b13eb e8b83407 ea6868de
84 10000390 6.0 23 786.0 39.0 6.0 4.0 4.0 1.0 1.0 05db9164 8b0005b7 d8d3b957 db839e0d 4cf72387 7e0ccccf daddc43a 0b153874 a73ee510 3b08e48b 418037d7 d30d5ab9 b0bfed6d 07d13a8f 715f1291 d1060f31 07c540c4 dff11f14 0ce9e052 c9d4222a 423fab69 af0cb2c3
85 10001164 1.0 625 4.0 4.0 361.0 18.0 1.0 18.0 18.0 1.0 1.0 0.0 4.0 05db9164 8db5bc37 1f73524c 1033cc11 25c83c98 7e0ccccf 1d794a16 37e4aa92 a73ee510 ed086ca2 4c9e8313 979f0b63 67b031b4 07d13a8f 37f2f6dc 4ba9e7b1 d4bb7bd8 181879d3 5e15fd0d ad3062eb 32c7478e b7c6f617
86 10001609 0 7.0 3.0 33320.0 0.0 5.0 5.0 0.0 3.0 5a9ed9b0 403ea497 2cbec47f 3e2bfbda 25c83c98 93b64cee 0b153874 7cc72ec2 b16556f1 4b0929e2 21a23bfe c0ed8bfc 07d13a8f e3209fc2 587267a3 e5ba7672 a78bd508 21ddcdc9 5840adea c2a93b37 32c7478e 1793a828 e8b83407 2fede552
87 10000262 6.0 110 3.0 2.0 1.0 0.0 10.0 2.0 101.0 1.0 3.0 0.0 0.0 87552397 58e67aaf 6d779f20 42f176ba 25c83c98 23cbab1b 5b392875 a73ee510 a94bcc2b 383e77c6 be0b2941 cce745f5 1adce6ef d002b6d9 90dd5213 e5ba7672 c21c3e4c f08320ef b1252a9d ddfc583d 32c7478e 8908ecb7 9b3e8820 48312058
88 10001660 237 8.0 3.0 0.0 3.0 3.0 0.0 3.0 05db9164 38a947a1 faf21a45 2d618c4e 25c83c98 13718bbd e7698644 0b153874 7cc72ec2 3b08e48b f9d0f35e 24d54eae b55434a9 1adce6ef 11984f7a a7d2766d 2005abd1 b3fe34a4 de8cff3a be7c41b4 8ab167ac
89 10000260 164 7.0 2.0 10118.0 259.0 20.0 11.0 256.0 5.0 0.0 30.0 39af2607 26a88120 b00d1501 d16679b9 25c83c98 fbad5c96 49b74ebc 1f89b562 a73ee510 7f79890b c4adf918 e0d76380 85dbe138 b28479f6 2ebbf26a 1203a270 e5ba7672 b486119d 73d06dde 32c7478e aee52b6f
90 10000487 1 11.0 5.0 26249.0 273.0 1.0 6.0 61.0 1.0 5.0 87552397 95e2d337 0a3107e6 69040d07 4cf72387 7e0ccccf 1662de8f 0b153874 a73ee510 e8c6d5af dd244141 c34daa06 468f0632 64c94865 7de4908b 6b9ff0bc d4bb7bd8 701d695d 712d530c a458ea53 9cb2c7a4 be7c41b4 4921c033 2bf691b1 80b0aeb9
91 10000303 2.0 0 22.0 2.0 797.0 34.0 6.0 27.0 132.0 1.0 2.0 2.0 05db9164 09e68b86 0fa27f12 fc649927 25c83c98 fe6b92e5 85f287b3 37e4aa92 a73ee510 39cda501 7c53dc69 3aedb2ef 4fd35e8f 07d13a8f 36721ddc 96426867 e5ba7672 5aed7436 75916440 a458ea53 3d3c217e c9d4222a 423fab69 b6175649 e8b83407 818b11e3
92 10000053 0.0 2 22.0 3.0 4687.0 242.0 6.0 6.0 183.0 0.0 1.0 4.0 3.0 05db9164 287130e0 c09cf4ef bc8d1aa6 25c83c98 13718bbd 1919941b 37e4aa92 a73ee510 6c47047a 86c05043 c4bba41d 2ecea536 b28479f6 9efd8b77 ac2e5095 8efede7f 891589e7 2efde463 b1252a9d dc4e98e3 3a171ecb ee42de86 e8b83407 a00829e6
93 10000717 0.0 155 1.0 1.0 7233.0 0.0 13.0 60.0 0.0 0.0 1.0 05db9164 8b57fabc eb466461 2566f1d2 25c83c98 7e0ccccf 10844cfc 0b153874 a73ee510 2ce2764d d93e6010 26d478d3 4e8bba73 b28479f6 97bbf6e5 8c439d97 27c07bd6 1490697e b3996c82 8ec974f4 32c7478e 382cd1f1
94 10000148 -1 4253.0 2.0 6.0 1.0 2.0 2.0 b455c6d7 38a947a1 25c83c98 6cdb3998 0b153874 a73ee510 21fa915a 5874c9c9 740c210d 07d13a8f ce0f2958 e5ba7672 87c9f30d 32c7478e
95 10001463 0.0 0 8.0 1.0 1347.0 13.0 31.0 6.0 122.0 0.0 6.0 0.0 1.0 05db9164 8e4f887c 4cf72387 13718bbd 9ffbc792 0b153874 a73ee510 fa8c1efe 6ae20392 78644930 07d13a8f b708086d e5ba7672 4b340164 32c7478e
96 10001579 0 26.0 13.0 1514.0 14.0 9.0 13.0 123.0 3.0 0.0 13.0 05db9164 09e68b86 aa8c1539 85dd697c 25c83c98 fe6b92e5 d385ea68 a674580f a73ee510 3b08e48b 7940fc2a d8c29807 00e20e7b 07d13a8f 801ee1ae c64d548f e5ba7672 63cdbb21 21ddcdc9 5840adea 5f957280 32c7478e 1793a828 e8b83407 b7d9c3bc
97 10001621 0.0 0 4.0 23158.0 452.0 0.0 0.0 193.0 0.0 0.0 4.0 68fd1e64 942f9a8d 8d9e5174 6fc4f0c4 25c83c98 7e0ccccf 49b74ebc 0b153874 a73ee510 0e9ead52 c4adf918 aadcb74e 85dbe138 1adce6ef ae97ecc3 e1c6cde7 07c540c4 1f868fdd c4209246 b1252a9d 6e0198a2 32c7478e 3fdb382b 001f3601 49d68486
98 10001926 9.0 2974 13.0 0.0 116.0 0.0 139.0 24.0 324.0 1.0 29.0 0.0 39af2607 52e9ecfc 20009f96 73fec7fb 4cf72387 fbad5c96 1c86e0eb 0b153874 a73ee510 e7ba2569 755e4a50 57c08194 5978055e b28479f6 e2dd9a77 054b386f e5ba7672 1e42ba17 21ddcdc9 b1252a9d 0dd41d11 32c7478e f9f7eb22 f0f449dd a3a8e8f4
99 10000080 0 14919.0 0.0 0.0 0.0 0.0 05db9164 4c2bc594 d032c263 c18be181 384874ce fe6b92e5 b7c924a4 64523cfa a73ee510 3b08e48b 2cc0193e dfbb09fb 433f9499 8ceecbc8 7ac43a46 84898b2a 1e88c74f bc48b783 0014c32a 3a171ecb 3b183c5c
100 10001853 86 7.0 11.0 594.0 0.0 7.0 54.0 0.0 4.0 68fd1e64 68b3edbf d032c263 c18be181 25c83c98 36b796aa 0b153874 a73ee510 739ff196 7373475d dfbb09fb cfbfce5c 07d13a8f 40f9f2b8 84898b2a e5ba7672 3009c5ce 0014c32a 3a171ecb 3b183c5c
101 10000264 0 2.0 19.0 87174.0 4638.0 0.0 5.0 1189.0 0.0 29.0 05db9164 38a947a1 b97d785f 98b100e5 25c83c98 7e0ccccf a207ddc0 5b392875 7cc72ec2 3b08e48b f87e56ab b9898409 0eca41f0 b28479f6 2406b2d9 ef734ec3 07c540c4 adad417c 376f7f0d 3a171ecb 874db5d2
102 10001509 1 1.0 18.0 171784.0 0.0 5.0 2.0 0.0 18.0 be589b51 39dfaa0d 74e1a23a 9a6888fb 4cf72387 7e0ccccf 2db71de9 1f89b562 7cc72ec2 3b08e48b a0060bca fb8fab62 22d23aac b28479f6 a36eb32c c6b1e1b2 776ce399 75edcf1f 21ddcdc9 5840adea 99c09e97 ad3062eb 85d5a995 335a6a1e 010f6491 aa5f0a15
103 10000579 43 2.0 2.0 10.0 0.0 2.0 14.0 0.0 2.0 05db9164 d4ef6e5b 4cf72387 7e0ccccf 65d3801d 1f89b562 a73ee510 5ba575e7 043725ae 7f0d7407 b28479f6 b9c4a1cb e5ba7672 0bcc943a 3a171ecb
104 10000538 31 10.0 1.0 22423.0 2186.0 5.0 2.0 636.0 2.0 2.0 5a9ed9b0 298d0556 02cf9876 c18be181 43b19349 7e0ccccf 15da22d0 1f89b562 a73ee510 17a0cc50 d7129972 8fe001f4 c0c5f46b b28479f6 48a5d003 36103458 07c540c4 a8f42b59 e587c466 32c7478e 3b183c5c
105 10001002 1 5.0 2.0 30517.0 949.0 0.0 3.0 26.0 0.0 2.0 05db9164 3df44d94 d032c263 c18be181 25c83c98 7e0ccccf 830c88f3 0b153874 a73ee510 1a88cf9b 7defe259 dfbb09fb 11fa2c12 b28479f6 e0052e65 84898b2a d4bb7bd8 e7648a8f 0014c32a 3a171ecb 3b183c5c
106 10000037 6.0 -1 915.0 40.0 26.0 33.0 72.0 1.0 3.0 9a89b36c 4f25e98b 9042c4ea 343f8ed3 25c83c98 fbad5c96 27cc0b50 0b153874 a73ee510 f364a867 7671c62f 00750e7a 1fa0660e b28479f6 df2f73e9 4f71659c e5ba7672 bc5a0ff7 21ddcdc9 a458ea53 706ee322 c9d4222a bcdee96c 990a118a 001f3601 47b6f269
107 10001842 0.0 3 1.0 3.0 10764.0 0.0 37.0 3.0 0.0 0.0 42.0 05db9164 d833535f b00d1501 d16679b9 25c83c98 7e0ccccf dbc0d030 25239412 a73ee510 e69922fa 84b20221 e0d76380 5a2964f9 1adce6ef 5e7a356b 1203a270 e5ba7672 281769c2 73d06dde 32c7478e aee52b6f
108 10001486 1 0.0 0.0 9.0 0.0 05db9164 5ca60b73 03f5e595 bdc301e2 43b19349 7e0ccccf 88002ee1 0b153874 7cc72ec2 3b08e48b f1b78ab4 870771b1 6e5da64f b28479f6 6bd27a1c bb01ab0a 2005abd1 04c62c3d 92259097 32c7478e 8ea22d26
109 10001116 645 0.0 5a9ed9b0 38a947a1 85131e23 77a460f8 25c83c98 7e0ccccf d0bdaa98 5b392875 7cc72ec2 3b08e48b dd6fc8cb ea2802ed ebd756bd 07d13a8f 280bdde5 62e74770 2005abd1 6e4ecdd3 54f59a22 8ec974f4 32c7478e 30601602
110 10000621 0.0 1 2.0 4367.0 127.0 7.0 17.0 86.0 0.0 1.0 05db9164 d833535f b00d1501 d16679b9 4cf72387 fe6b92e5 b3ddf65a 0b153874 a73ee510 bde51b15 e973bfd7 e0d76380 439cd4cc b28479f6 a733d362 1203a270 e5ba7672 281769c2 73d06dde 32c7478e aee52b6f
111 10001478 1 33.0 11.0 13488.0 0.0 3.0 528.0 0.0 47.0 2d4ea12b ef69887a 53ea179a b46a6c09 25c83c98 7e0ccccf a1017c6f 0b153874 a73ee510 3b08e48b ac31fe3c 7557aa43 bd9310c2 b28479f6 902a109f 3a6d0658 776ce399 4bcc9449 86073ec9 a458ea53 310750c1 ad3062eb 32c7478e fd1be8d4 e8b83407 9981343d
112 10000386 0.0 -1 8697.0 361.0 9.0 0.0 99.0 0.0 1.0 0.0 5a9ed9b0 4c2bc594 d032c263 c18be181 4cf72387 7e0ccccf c0adc046 5b392875 a73ee510 3b08e48b 3b8d987f dfbb09fb a8ff8c8a 1adce6ef ae0c3875 84898b2a e5ba7672 15a36060 0014c32a c9d4222a 3a171ecb 3b183c5c
113 10001819 3.0 1 35.0 8.0 339.0 17.0 3.0 10.0 9.0 1.0 1.0 9.0 05db9164 09e68b86 c4f1b7d8 6eabba09 384874ce 045eef77 5b392875 a73ee510 dfa3d0ad e81438fc 2f06501b f745e01e f7c1b33f 5726b2dc 73bee060 07c540c4 5aed7436 cb6b4a8b b1252a9d ceac1e70 32c7478e 3fdb382b e8b83407 49d68486
114 10001408 1477 2.0 1.0 13481.0 152.0 1.0 3.0 166.0 1.0 1.0 05db9164 9e5ce894 2a3c87a2 13508380 0942e0a7 7e0ccccf c0a9460b 5b392875 a73ee510 14778a99 5420373c 95684be2 ab160bba 07d13a8f 8cf98699 cb8555a4 e5ba7672 a5bb7b8a 1d1eb838 b1252a9d 7a32165a 423fab69 45ab94c8 ea9a246c c84c4aec
115 10001073 0.0 598 1.0 1.0 6492.0 130.0 7.0 1.0 81.0 0.0 1.0 1.0 8cf07265 8aade191 aba270bc 3d9541ed 4cf72387 7e0ccccf 6f208241 0b153874 a73ee510 29b00bcc d9244025 066be83b a615211e dcd762ee 43a44453 f68fdaa9 e5ba7672 eef7297e 1266f168 3a171ecb 8d4a9014
116 10001586 4.0 190 0.0 2.0 0.0 4.0 0.0 0.0 1.0 1.0 0.0 8cf07265 e3a0dc66 b2bb4a16 bd334821 43b19349 fbad5c96 5e64ce5f 37e4aa92 a73ee510 1dfa8956 8b94178b e5a589c8 025225f2 07d13a8f c251e774 e2f5ca24 e5ba7672 b608c073 1d67143f 32c7478e f2e9f0dd
117 10001994 3 3.0 5.0 23857.0 275.0 2.0 6.0 90.0 1.0 5.0 05db9164 e112a9de af5655e7 22504558 4cf72387 fe6b92e5 ce4f7f55 0b153874 a73ee510 099b68bd 38f692a7 252162ec 6e5da64f b28479f6 ce3c65c0 776f5665 e5ba7672 45e3284c 5c7c443c 32c7478e 8f079aa5
118 10001921 5.0 2 1382.0 17.0 78.0 25.0 76.0 0.0 9.0 05db9164 942f9a8d 56472604 53a5d493 25c83c98 49b74ebc 6c41e35e a73ee510 e113fc4b c4adf918 08531bcb 85dbe138 1adce6ef ae97ecc3 76b06ec3 e5ba7672 1f868fdd 9437f62f a458ea53 ff4c70b8 32c7478e da89b7d5 7a402766 c7beb94e
119 10000077 2.0 0 7.0 443.0 37.0 7.0 34.0 282.0 1.0 4.0 7.0 7.0 3c9d8785 38a947a1 4470baf4 8c8a4c47 43b19349 fbad5c96 282b88fc 0b153874 a73ee510 0f1a2599 ea26a3ee bb669e25 0e5bc979 b28479f6 547b8c62 2b2ce127 8efede7f b133fcd4 2b796e4a 32c7478e 8d365d3b
120 10000688 9.0 3 11.0 578.0 22.0 9.0 11.0 22.0 1.0 1.0 11.0 5a9ed9b0 e112a9de 4e1c9eda 22504558 25c83c98 fbad5c96 7841e8c6 0b153874 a73ee510 0f2ec50d 7e2c5c15 23bc90a1 91a1b611 1adce6ef 3ac25d07 776f5665 e5ba7672 45e3284c 5a5953a2 32c7478e 8f079aa5
121 10000009 35 1.0 33737.0 21.0 1.0 2.0 3.0 1.0 1.0 05db9164 510b40a5 d03e7c24 eb1fd928 25c83c98 52283d1c 0b153874 a73ee510 015ac893 e51ddf94 951fe4a9 3516f6e6 07d13a8f 2ae4121c 8ec71479 d4bb7bd8 70d0f5f9 0e63fca0 32c7478e 0e8fe315
122 10001617 1.0 0 2.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 1.0 0.0 0.0 5bfa8ab5 09e68b86 97b26f86 0f3dac4c 25c83c98 7e0ccccf 33cca6fa 5b392875 a73ee510 401ced54 cb70bc55 2b650ee2 2b9fb512 b28479f6 52baadf5 5cd14094 e5ba7672 5aed7436 21ddcdc9 a458ea53 cbbbb804 3a171ecb 3fdb382b e8b83407 27582320
123 10000006 1 2.0 3168.0 0.0 1.0 2.0 0.0 439a44a4 ad4527a2 c02372d0 d34ebbaa 43b19349 fe6b92e5 4bc6ffea 0b153874 a73ee510 3b08e48b a4609aab 14d63538 772a00d7 07d13a8f f9d1382e b00d3dc9 776ce399 cdfa8259 20062612 93bad2c0 1b256e61
124 10000927 115 0.0 17271.0 16.0 16.0 05db9164 d833535f 77f2f2e5 d16679b9 25c83c98 fe6b92e5 83a81c7c 0b153874 a73ee510 7485379b e1fb71c4 9f32b866 c1d8cef1 b28479f6 a733d362 31ca40b6 07c540c4 281769c2 dfcfc3fa 32c7478e aee52b6f
125 10000161 1 2.0 23.0 7207.0 31.0 1.0 5.0 27.0 1.0 23.0 05db9164 09e68b86 aa8c1539 85dd697c 384874ce 13718bbd 622305e6 0b153874 a73ee510 2124a520 319687c9 d8c29807 62036f49 1adce6ef dcd06253 c64d548f e5ba7672 63cdbb21 cf99e5de a458ea53 5f957280 3a171ecb 1793a828 e8b83407 b7d9c3bc
126 10001959 0.0 9 1.0 20.0 4502.0 421.0 4.0 3.0 410.0 0.0 1.0 20.0 5a9ed9b0 46bbf321 c5d94b65 5cc8f91d 4cf72387 7e0ccccf ceadc1bd 0b153874 a73ee510 3b08e48b 1d7bf26b 75c79158 2f83c4ea 91233270 cddd56a1 208d4baf 07c540c4 906ff5cb 6a909d9a bcdee96c 1f68c81f
127 10001834 0.0 178 1.0 2.0 2033.0 53.0 9.0 1.0 283.0 0.0 5.0 2.0 68fd1e64 09e68b86 80e96ca4 85dd697c 4cf72387 7e0ccccf 9a4f2943 0b153874 a73ee510 86b46b2e 4a00b569 0d2a2c95 42ef23bb 07d13a8f 801ee1ae 4562f4f5 e5ba7672 63cdbb21 21ddcdc9 5840adea 8cfc8f03 32c7478e 1793a828 e8b83407 b7d9c3bc
128 10000895 0.0 133 0.0 2960.0 402.0 1.0 39.0 387.0 0.0 1.0 56.0 05db9164 68b3edbf b00d1501 d16679b9 25c83c98 7e0ccccf 7a15bf06 37e4aa92 a73ee510 ee4444a2 1564a011 e0d76380 5e350f6e b28479f6 f511c49f 1203a270 e5ba7672 752d8b8a 73d06dde 3a171ecb aee52b6f
129 10001805 94 7.0 7390.0 118.0 5.0 0.0 39.0 2.0 05db9164 09e68b86 aa8c1539 85dd697c 4cf72387 50631f06 5b392875 a73ee510 3b08e48b f25fe7e9 d8c29807 dd183b4c 8ceecbc8 d2f03b75 c64d548f 776ce399 63cdbb21 cf99e5de 5840adea 5f957280 32c7478e 1793a828 e8b83407 b7d9c3bc
130 10001045 -1 1.0 4.0 18828.0 147.0 10.0 7.0 6.0 2.0 6.0 05db9164 3df44d94 02cf9876 c18be181 384874ce 7e0ccccf 397def4e 0b153874 a73ee510 a0eb88e1 20b05825 8fe001f4 c28589ee b28479f6 e0052e65 36103458 e5ba7672 e7648a8f e587c466 3a171ecb 3b183c5c
131 10001437 2.0 273 1.0 4.0 1.0 2.0 1.0 1.0 1.0 1.0 1.0 5a9ed9b0 38a947a1 0cdffbbb 19472c1b 4cf72387 7e0ccccf 09512427 5b392875 a73ee510 87dcf8fc c21c44c8 a688779e 5b3fc509 b28479f6 05a68c47 556b1b58 07c540c4 50d0678c 14096b25 ad3062eb bcdee96c 58b99a4e
132 10001140 20 23.0 22.0 1501.0 22.0 5.0 20.0 22.0 2.0 0.0 22.0 05db9164 78ccd99e 7697cea8 17e9c67f 4cf72387 9e8dab66 0b153874 a73ee510 fbbf2c95 c82f1813 fe6e13c5 949ea585 cfef1c29 798a3785 9c8aa1a6 e5ba7672 e7e991cb 21ddcdc9 a458ea53 d416f907 32c7478e 72e00caf b9266ff0 765b4774
133 10000145 5 2.0 3.0 10892.0 15.0 4.0 4.0 32.0 2.0 0.0 3.0 68fd1e64 09e68b86 8813e7fd 35b598a9 2c6b8ded 13718bbd a7565058 5b392875 a73ee510 d7ae8050 69afd526 78ba0921 84def884 1adce6ef dbc5e126 0f33b689 3486227d 5aed7436 21ddcdc9 b1252a9d 4435a274 3a171ecb 73496e83 e8b83407 f3fccfbe
134 10000240 1.0 0 9.0 27.0 9.0 1.0 10.0 9.0 1.0 1.0 9.0 68fd1e64 d833535f 77f2f2e5 d16679b9 384874ce fe6b92e5 52283d1c 0b153874 a73ee510 299aecf1 e51ddf94 9f32b866 3516f6e6 b28479f6 a66dcf27 31ca40b6 d4bb7bd8 7b49e3d2 dfcfc3fa 3a171ecb aee52b6f
135 10000215 1.0 150 5.0 16.0 24.0 18.0 1.0 15.0 16.0 1.0 1.0 16.0 75ac2fe6 0468d672 145f2f75 82a61820 4cf72387 7e0ccccf 7d48c0ae 0b153874 a73ee510 2d3d7f00 5874c9c9 7161e106 740c210d 1adce6ef 4f3b3616 bb6d240e d4bb7bd8 9880032b 21ddcdc9 5840adea 5fe17899 55dd3565 cafb4e4d ea9a246c 99f4f64c
136 10000655 12.0 0 74.0 19.0 34.0 19.0 38.0 18.0 279.0 1.0 5.0 0.0 19.0 68fd1e64 ed3ebcd1 962f9151 051f5cad 25c83c98 fbad5c96 c5940251 0b153874 a73ee510 b1ced7c4 3f3796ef 5c2da29a 5667b6ce 07d13a8f 14ae7bf2 c7954082 27c07bd6 9cd2305d 21ddcdc9 5840adea a165e24e 32c7478e d278603e e8b83407 4e6f1778
137 10000465 1 6.0 10.0 2964.0 15.0 1.0 13.0 15.0 1.0 1.0 10.0 05db9164 0a519c5c 77f2f2e5 d16679b9 25c83c98 7e0ccccf 7848490d 0b153874 a73ee510 3b08e48b a74169ca 9f32b866 1cf9c8dd 1adce6ef 123b2f29 31ca40b6 3486227d 2efa89c6 dfcfc3fa 3a171ecb aee52b6f
138 10001362 27 12.0 4.0 234804.0 0.0 16.0 133.0 0.0 16.0 05db9164 c1384774 b00d1501 d16679b9 b2241560 fbad5c96 11d5a05b 5b392875 7cc72ec2 3b08e48b 71a572f0 e0d76380 0ae1463b 07d13a8f 022c81dc 1203a270 776ce399 8e8b535e 21ddcdc9 5840adea 73d06dde 78e2e389 be7c41b4 aee52b6f ea9a246c 882f541d
139 10001237 137 3.0 4.0 26187.0 0.0 4.0 20.0 0.0 4.0 05db9164 5368c225 e22844b2 fadd820a 25c83c98 fe6b92e5 8c2fedb1 51d76abe a73ee510 3b08e48b af763b4c 2a4ef823 d90d259c 07d13a8f cbdbab51 eaead249 776ce399 a53934cb 71e3dba8 b264a060 2cb8e5cc
140 10000759 197 4.0 1.0 25.0 0.0 1.0 1.0 0.0 0.0 1.0 5a9ed9b0 421b43cd 2c2261fe 29998ed1 25c83c98 fe6b92e5 dda1fed2 37e4aa92 a73ee510 2a47dab8 7f8ffe57 6aaba33c 46f42a63 b28479f6 e1ac77f7 b041b04a 1e88c74f 2804effd 723b4dfd 78e2e389 3a171ecb b34f3128
141 10001023 1367 17.0 2.0 122981.0 0.0 17.0 6.0 0.0 12.0 8cf07265 38d50e09 063a7a2f f0997e9f 25c83c98 fbad5c96 7c589eda 0b153874 7cc72ec2 3b08e48b 4eddcd83 c9a1c938 f9074aef 07d13a8f ee569ce2 e3e176d1 3486227d 582152eb 21ddcdc9 5840adea 6327f617 3a171ecb 4e060229 001f3601 cfd96da1
142 10001018 0 6.0 17324.0 165.0 5.0 1.0 212.0 3.0 0.0 6.0 f473b8dc aa157e5d 2fd2dd9c 0e833929 4cf72387 fe6b92e5 34ffc80f 64523cfa a73ee510 42adcf15 9c50f4f2 4d470b3e d9b4659c dcd762ee 23cf85dc e334d594 3486227d b9f82cf2 b0ecb78f 3a171ecb 4507844f
143 10001651 5.0 17 18.0 18.0 567.0 89.0 5.0 37.0 89.0 1.0 1.0 0.0 18.0 87552397 1550810c 7ddb58d3 971b9e1f 25c83c98 fe6b92e5 cc936bac 0b153874 a73ee510 886c48e9 3c264af5 6e2269a9 6c24bc52 b28479f6 465dad55 8f243987 e5ba7672 6e200add 21ddcdc9 5840adea 06b9b6ef 78e2e389 3a171ecb 3b425be9 010f6491 2fede552
144 10001852 9 4.0 1.0 15120.0 125.0 0.0 1.0 34.0 0.0 1.0 fbc55dae 4f25e98b 27e71f25 459e04e9 25c83c98 6f6d9be8 a0f3f4b3 0b153874 a73ee510 3b08e48b 2b31063f 21f0f48c bcf6a386 f7c1b33f 286d9690 dabe2137 e5ba7672 7ef5affa e5e1bbb7 a458ea53 c8dd02d9 32c7478e 3fdb382b 001f3601 49d68486
145 10000572 0 4.0 2.0 534533.0 0.0 2.0 2.0 0.0 2.0 05db9164 1cfdf714 0a00878c 192998db 25c83c98 7e0ccccf 6f441cf5 5b392875 7cc72ec2 f5073ae4 1054ae5c f0f59e6e d7ce3abd b28479f6 d345b1a0 d7ac84c6 e5ba7672 e88ffc9d 55dd3565 a458ea53 8a24d4c7 bcdee96c 33044299 cb079c2d e1cc3a15
146 10000085 0.0 53 10.0 6550.0 98.0 34.0 11.0 349.0 0.0 9.0 10.0 05db9164 207b2d81 8bd78c57 394ee067 25c83c98 6f6d9be8 283d5555 0b153874 a73ee510 3b08e48b 3d5fb018 e5f6b330 94172618 07d13a8f 0bf0feff 402a9036 e5ba7672 fa0643ee 21ddcdc9 b1252a9d 0094bc78 32c7478e 29ece3ed 001f3601 402185f3
147 10001905 -1 5785.0 0.0 0.0 1.0 0.0 05db9164 287130e0 25c83c98 fe6b92e5 ce4f7f55 0b153874 a73ee510 23176e12 38f692a7 6e5da64f b28479f6 9efd8b77 1e88c74f 891589e7 21ddcdc9 5840adea c9d4222a 32c7478e ea9a246c 2ddaef64
148 10000317 30.0 1 114.0 15.0 246.0 22.0 42.0 34.0 76.0 1.0 5.0 22.0 68fd1e64 e5fb1af3 cfc57a43 6a724007 25c83c98 7e0ccccf af84702c 0b153874 a73ee510 5162b19c 7c430b79 0b61d433 7f0d7407 b28479f6 23287566 658aa6b7 e5ba7672 13145934 3b422a71 a458ea53 f2ee45cb c9d4222a 3a171ecb 9fb5a9a2 e8b83407 bb4e2505
149 10000118 1 5.0 32339.0 4.0 05db9164 38a947a1 26f13523 711c0624 384874ce 7e0ccccf 5e8b4856 0b153874 a73ee510 92e70d0f e90cbbe1 2a3f3e3e a4c7bffd 07d13a8f ed1eab3c 367b7adf 07c540c4 bae38128 d20446d4 3a171ecb e83b649e
150 10000602 12 5.0 0.0 05db9164 bc478804 8b943343 13508380 43b19349 fe6b92e5 d0bdaa98 0b153874 7cc72ec2 3b08e48b dd6fc8cb fb2a5396 ebd756bd 07d13a8f 0af7c64c 5d87e37e 2005abd1 65a2ac26 1d1eb838 a458ea53 c3711079 32c7478e 45ab94c8 001f3601 c84c4aec
151 10001342 -1 2.0 5106.0 5.0 1.0 0.0 5.0 1.0 05db9164 78ccd99e eddce123 1aab3757 25c83c98 2823fac6 0b153874 a73ee510 d7dc7379 eb94162a 9c16b0b9 871eb035 07d13a8f 162f3329 25376035 07c540c4 e7e991cb 21ddcdc9 b1252a9d c960a377 32c7478e 6cf3a800 46fbac64 42d56168
152 10000443 8 64.0 10.0 10117.0 19.0 3.0 12.0 14.0 1.0 11.0 68fd1e64 09e68b86 aa8c1539 85dd697c 25c83c98 045eef77 5b392875 a73ee510 cf9c4b61 e81438fc d8c29807 f745e01e 8ceecbc8 d2f03b75 c64d548f 07c540c4 63cdbb21 cf99e5de 5840adea 5f957280 32c7478e 1793a828 e8b83407 b7d9c3bc
153 10001027 0.0 -1 12.0 20.0 1480.0 40.0 128.0 26.0 485.0 0.0 22.0 21.0 f473b8dc 2796cdff 4cf72387 7e0ccccf a0e559da 0b153874 a73ee510 3b08e48b 418037d7 b0bfed6d 07d13a8f beac2588 27c07bd6 c3854c72 ad3062eb 423fab69
154 10000516 3.0 65 2.0 1.0 175.0 1.0 5.0 10.0 24.0 2.0 3.0 1.0 87552397 403ea497 2cbec47f 3e2bfbda 25c83c98 fbad5c96 f970e59a 1f89b562 a73ee510 d8881c14 5adcba72 21a23bfe 5b6ee19d 07d13a8f e3209fc2 587267a3 e5ba7672 a78bd508 21ddcdc9 5840adea c2a93b37 32c7478e 1793a828 e8b83407 2fede552
155 10001792 2179 21984.0 150.0 2.0 0.0 16.0 1.0 05db9164 38a947a1 60729b56 8af704a1 0942e0a7 7e0ccccf 320d5d46 0b153874 a73ee510 3b08e48b 94fb1def eaf4513d e8e7aace 07d13a8f 908b8bf4 995721d7 d4bb7bd8 4bc528ec 23cf403a 3a171ecb b550ee34
156 10000030 277 3.0 7318.0 24.0 6.0 3.0 98.0 1.0 3.0 8cf07265 9adf4cf9 2e76fb61 0b1ad9da 4cf72387 fe6b92e5 75dcaaca 0b153874 a73ee510 3b08e48b 8aabdae8 9886a0a7 edcf17ce 07d13a8f 2aaebd23 338c0d09 e5ba7672 c7dbecd5 60d2d691 3a171ecb 90b6276f
157 10000712 0.0 6 2.0 25.0 3034.0 264.0 1.0 1.0 247.0 0.0 1.0 38.0 05db9164 287130e0 9b953c56 7be07df9 25c83c98 7e0ccccf b45139de 0b153874 a73ee510 b655c293 7f90c133 6bca71b1 2b2a1789 07d13a8f 10040656 fb8ca891 d4bb7bd8 891589e7 21ddcdc9 b1252a9d b1ae3ed2 3a171ecb 3fdb382b e8b83407 49d68486
158 10000254 0 31.0 2.0 41016.0 0.0 9.0 17.0 0.0 8.0 05db9164 38a947a1 25c83c98 3bf701e7 49042125 062b5529 7cc72ec2 4624c4e8 ba1ff80a b95f83fa b28479f6 0cfbc5df 1e88c74f be457d6e bcdee96c
159 10000898 0 4216.0 0.0 11.0 0.0 0.0 5.0 05db9164 09e68b86 466148db d235dcb8 25c83c98 b87f4a4a 0b153874 a73ee510 97d3ddaa 319687c9 bf7d85d2 62036f49 07d13a8f 36721ddc 1cb9e3c1 e5ba7672 5aed7436 04de9d96 b1252a9d f4097ea8 32c7478e 4f0948e6 e8b83407 61f8e249
160 10001108 17 13.0 5.0 11675.0 0.0 5.0 26.0 0.0 5.0 68fd1e64 4c2bc594 d032c263 c18be181 25c83c98 fe6b92e5 50631f06 1f89b562 a73ee510 3b08e48b f25fe7e9 dfbb09fb dd183b4c 8ceecbc8 7ac43a46 84898b2a 776ce399 bc48b783 0014c32a c9d4222a 55dd3565 3b183c5c
161 10001101 2.0 24 20.0 10.0 1.0 2.0 6.0 16.0 213.0 1.0 2.0 2.0 05db9164 bfdcfc4a 7ab2d691 327970ed 25c83c98 fe6b92e5 f970e59a 0b153874 a73ee510 b6900243 5adcba72 d3bac723 5b6ee19d b28479f6 2ed5bdad fc95dd4e e5ba7672 ffd53157 21ddcdc9 b1252a9d e3641ee4 32c7478e 1793a828 e8b83407 779ff446
162 10001014 3 2.0 9465.0 54.0 3.0 4.0 43.0 2.0 2.0 5a9ed9b0 e112a9de 4e1c9eda 22504558 307e775a fe6b92e5 ce4f7f55 c8ddd494 a73ee510 2ec4dbbb 38f692a7 23bc90a1 6e5da64f 1adce6ef 11da3cff 776f5665 07c540c4 a7cf409e 5a5953a2 32c7478e 8f079aa5
163 10001292 0 10.0 4.0 1928.0 220.0 0.0 5.0 62.0 0.0 6.0 8cf07265 80e26c9b 7cfa4e37 99944ac5 25c83c98 7e0ccccf 08e57a96 0b153874 a73ee510 fbbf2c95 7c430b79 52fd06e6 7f0d7407 07d13a8f f3635baf fb8600df 3486227d f54016b9 21ddcdc9 b1252a9d dc531dab 3a171ecb 2bb26daa e8b83407 87d8715a
164 10001426 0.0 178 37.0 16.0 21.0 233.0 38.0 36.0 184.0 0.0 6.0 0.0 5.0 05db9164 38a947a1 b1b6f323 be4cb064 25c83c98 7e0ccccf 285ee98d 0b153874 a73ee510 c1bba512 30b2881b d28c687a b2e5689c b28479f6 90af1d37 f2a191bd e5ba7672 c9da8737 5911ddcb c9d4222a 32c7478e 1335030a
165 10001991 0 2.0 1.0 15900.0 84.0 1.0 1.0 137.0 1.0 1.0 05db9164 3e50afd4 c88e4dd9 95125f0b 25c83c98 fe6b92e5 ed8893c3 bb170c38 a73ee510 3b08e48b 43113bd0 e8d7937e 10cccf24 07d13a8f c633f268 b5d82b8f 07c540c4 7eb5f96b 21ddcdc9 5840adea 703d8ad8 ad3062eb c7dc6720 f0f5931e e8b83407 02ad7ae7
166 10001917 0.0 1 57.0 22.0 1906.0 105.0 5.0 27.0 411.0 0.0 2.0 0.0 23.0 68fd1e64 8ab240be 55ef0c4a 94af87d4 25c83c98 7e0ccccf 6d0ca8d7 0b153874 a73ee510 afe4ade4 6939835e 72593ff4 dc1d72e4 b28479f6 55ea1fa2 94dee6cc 3486227d ca533012 21ddcdc9 5840adea c5533f21 c9d4222a 32c7478e 73cec032 445bbe3b 984e0db0
167 10000987 223 5.0 2.0 0.0 2.0 2.0 0.0 2.0 64e77ae7 38a947a1 1fbcbaeb 6bb27684 25c83c98 6f6d9be8 d9aa9d97 0b153874 7cc72ec2 3b08e48b 6e647667 47fedcb6 85dbe138 b28479f6 50340d14 7c4d8e0e 2005abd1 5b22094b 7349a0a1 32c7478e 42bf52c5
168 10001869 66 2.0 2.0 31798.0 86.0 0.0 2.0 103.0 0.0 2.0 05db9164 5dac953d d032c263 c18be181 4cf72387 fbad5c96 1cb331ef 0b153874 a73ee510 88326e14 cdca587b dfbb09fb 75b05ddf 1adce6ef 24018110 84898b2a e5ba7672 539ccba3 0014c32a c9d4222a 423fab69 3b183c5c
169 10001857 12 57.0 24.0 342.0 0.0 27.0 27.0 0.0 24.0 05db9164 80e26c9b 74e1a23a 9a6888fb 25c83c98 7e0ccccf 1b2007fe 0b153874 a73ee510 61c284b6 6c07e306 fb8fab62 1cd94349 b28479f6 4c1df281 c6b1e1b2 1e88c74f f54016b9 21ddcdc9 5840adea 99c09e97 32c7478e 335a6a1e e8b83407 877c5de5
170 10000667 0 8.0 13.0 1650.0 0.0 5.0 13.0 0.0 13.0 8cf07265 09e68b86 0be06ded 3cdc525d 25c83c98 679235ae 1f89b562 a73ee510 04dc09a2 14dfde81 d3e5031b 9ec97065 b28479f6 52baadf5 0b516a34 e5ba7672 5aed7436 21ddcdc9 5840adea 51b8f79e 32c7478e 1793a828 e8b83407 a9637a08
171 10001482 0.0 692 2.0 0.0 931.0 441.0 2.0 49.0 294.0 0.0 2.0 17.0 5a9ed9b0 08d6d899 9143c832 f56b7dd5 25c83c98 7e0ccccf dc7659bd 0b153874 a73ee510 015ac893 e51ddf94 ae1bb660 3516f6e6 b28479f6 bffbd637 bad5ee18 e5ba7672 bbf70d82 0429f84b 3a171ecb c0d61a5c
172 10000522 1 2.0 51.0 1474.0 0.0 49.0 106.0 0.0 51.0 68fd1e64 0a519c5c 02cf9876 c18be181 25c83c98 7e0ccccf 0a7b8169 f504a6f4 a73ee510 3b08e48b 9e271da4 8fe001f4 fb0920f2 07d13a8f 6dc710ed 36103458 776ce399 3412118d e587c466 be7c41b4 3b183c5c
173 10001382 2.0 17 30.0 31.0 583.0 49.0 2.0 19.0 126.0 1.0 1.0 35.0 05db9164 58e67aaf cfb849fe a4b9d958 4cf72387 7e0ccccf a61aeaec 0b153874 a73ee510 901ad2a4 17586bd8 7f07cde5 4c9ff09f 1adce6ef d002b6d9 cf63f23e e5ba7672 c21c3e4c 21ddcdc9 5840adea a97c73cd 423fab69 3aa5816a 9b3e8820 a00829e6
174 10000124 0.0 -1 2282.0 41.0 30.0 15.0 157.0 0.0 3.0 4.0 05db9164 4f25e98b 3651d7de 195aa7ef 25c83c98 fe6b92e5 0038e65c 5b392875 a73ee510 3b08e48b 6dbe9cfd 7bbd899e 1ddad6aa b28479f6 8ab5b746 773620b7 8efede7f 7ef5affa 4764bf77 a458ea53 99860501 ad3062eb bcdee96c ac73f6cb 001f3601 a3efae54
175 10000187 832 1.0 11908.0 134.0 5.0 37.0 152.0 3.0 0.0 1.0 9684fd4d 4c2bc594 d032c263 c18be181 25c83c98 fbad5c96 26a81064 0b153874 a73ee510 dcbc7c2b 9e511730 dfbb09fb 04e4a7e0 8ceecbc8 7ac43a46 84898b2a 8efede7f bc48b783 0014c32a 55dd3565 3b183c5c
176 10000517 7.0 -1 394.0 11.0 125.0 11.0 178.0 1.0 12.0 0.0 68fd1e64 80e26c9b 2e855da7 c446f801 25c83c98 7e0ccccf 172f0631 0b153874 a73ee510 0f4a45d3 1314bfd8 1b312abb 1e8bfb9a 07d13a8f f3635baf 48ff5919 3486227d f54016b9 21ddcdc9 b1252a9d 1cedb306 32c7478e 93a075b7 e8b83407 4271e99f
177 10001203 3.0 10 5.0 25.0 682.0 239.0 102.0 22.0 3264.0 1.0 14.0 0.0 223.0 05db9164 2a69d406 b0f5aa9a 13508380 25c83c98 7e0ccccf d5f62b87 51d76abe a73ee510 84462a5b 434d6c13 35dd91d8 7301027a 07d13a8f 3b2d8705 6925201c 3486227d 642f2610 55dd3565 b1252a9d 12d020a9 423fab69 45ab94c8 2bf691b1 c84c4aec
178 10001505 0 1.0 0.0 0.0 1.0 1.0 0.0 1.0 0e78bd46 083aa75b f7564807 ea992411 25c83c98 fe6b92e5 1f2924d9 0b153874 7cc72ec2 3b08e48b 3ec9c616 611d855e b55434a9 b28479f6 4e47e13c ed7abfcd 2005abd1 06747363 21ddcdc9 b1252a9d 3b689f8a c9d4222a be7c41b4 b6a6d491 e8b83407 87db5143
179 10000342 1.0 11 67.0 2.0 28.0 2.0 15.0 2.0 211.0 1.0 5.0 0.0 2.0 05db9164 c44e8a72 b08a0e8f 137c3f5d 25c83c98 7e0ccccf a25cceac 0b153874 a73ee510 b46e51e9 5bee5497 a1c959c3 a57cffd3 07d13a8f b88d2fea b185ed67 e5ba7672 456d734d 19b31d2c b1252a9d e022ea88 3a171ecb 3fdb382b 724b04da e8cee7fa
180 10001786 0.0 0 71.0 1883.0 35.0 4.0 21.0 137.0 0.0 3.0 05db9164 09e68b86 faf21a45 2d618c4e 4cf72387 fe6b92e5 124131fa 0b153874 a73ee510 4c89c3af 9ba53fcc 24d54eae 42156eb4 1adce6ef dbc5e126 a7d2766d 07c540c4 5aed7436 733bf73d a458ea53 de8cff3a bcdee96c 8ab167ac e8b83407 64585ffc
181 10000200 1 23.0 3.0 72413.0 3607.0 0.0 4.0 44.0 0.0 3.0 68fd1e64 f0cf0024 74e1a23a 9a6888fb 25c83c98 fbad5c96 648eac94 0b153874 7cc72ec2 878f4678 144d9b96 fb8fab62 fb4bc60c b28479f6 e6c5b5cd c6b1e1b2 07c540c4 b04e4670 21ddcdc9 5840adea 99c09e97 32c7478e 335a6a1e ea9a246c 8d8eb391
182 10001981 1.0 0 17.0 10.0 388.0 82.0 1.0 22.0 25.0 1.0 1.0 10.0 05db9164 207b2d81 015450da a42c24d9 25c83c98 7e0ccccf 9b5b9eea 5b392875 a73ee510 3b08e48b 163b50ea 548118bd 00783c5a b28479f6 2f51688f 412b23b3 d4bb7bd8 f724634a 21ddcdc9 a458ea53 a92e4560 ad3062eb 32c7478e 98f2c2f9 001f3601 a6308e9b
183 10001989 27.0 538 2.0 1.0 8.0 1.0 27.0 1.0 1.0 1.0 1.0 1.0 05db9164 e5fb1af3 5cef3946 78f2622d 25c83c98 fbad5c96 095d6b9e 5b392875 a73ee510 3150b962 8f736c02 60961619 954f731f b28479f6 23287566 b2ac0684 e5ba7672 13145934 21ddcdc9 a458ea53 bbf8cd8e bcdee96c 3f7be042 e8b83407 e896e314
184 10001170 1 6.0 1.0 6575.0 0.0 1.0 1.0 0.0 1.0 05db9164 c5fe64d9 12f6b3af ab15bbe8 30903e74 22009f3b 1f89b562 a73ee510 597ee6dc 6a3de4e2 0e026503 a4b5da60 b28479f6 543c0413 60f7b835 1e88c74f c235abed 5e200364 b1252a9d 8b5d5ee2 32c7478e 3fdb382b ea9a246c 49d68486
185 10000233 -1 6397.0 51.0 1.0 13.0 49.0 1.0 05db9164 38a947a1 f6a8eaae fcc6bd3d 25c83c98 6cdb3998 0b153874 a73ee510 3ff10fb2 5874c9c9 90249d87 740c210d b28479f6 a723edcb f744d55b d4bb7bd8 0c1cbf43 c703f560 32c7478e b258af68
186 10001987 1 1.0 5.0 5152.0 0.0 6.0 19.0 0.0 5.0 05db9164 f6f4fe4b 1c82d234 29c7bac3 30903e74 fbad5c96 28639f10 37e4aa92 a73ee510 f26b2389 3a5bf2d6 4b2471f7 155ff7d9 07d13a8f 9ca59173 193a711a e5ba7672 ca5a75f3 5be95fc1 c7dc6720 c5cbfccf
187 10001556 4 4.0 156.0 0.0 4.0 4.0 0.0 4.0 05db9164 62e9e9bf 25c83c98 fbad5c96 1f8a5e2a 0b153874 a73ee510 efea433b eacae3ce 096b841f 07d13a8f bf94b88d 1e88c74f 8fc2e6f8 3a171ecb
188 10001632 0.0 2 5.0 3.0 2931.0 11.0 3.0 10.0 18.0 0.0 2.0 3.0 05db9164 287130e0 6e36ebe9 91e21b29 25c83c98 fbad5c96 32079c61 5b392875 a73ee510 d6a4738e 757868ef adcae8cd 9b706dc0 cfef1c29 655fad18 1457a5bb 07c540c4 891589e7 2b47c6cd a458ea53 c7eb1e2a 32c7478e 596c175e ea9a246c c107870d
189 10001467 2.0 248 11.0 12.0 10.0 12.0 2.0 12.0 12.0 1.0 1.0 12.0 05db9164 e3a0dc66 1701e1d8 da13cca9 25c83c98 fe6b92e5 066186ba 0b153874 a73ee510 921af1f0 57784783 9311a066 493fa4dc b28479f6 35679327 354a37d9 07c540c4 b608c073 7b877178 3a171ecb f2e9f0dd
190 10000229 181 4.0 4.0 0.0 5.0 15.0 0.0 4.0 5a9ed9b0 38a947a1 223b0e16 ca55061c 25c83c98 7e0ccccf e7698644 5b392875 7cc72ec2 3b08e48b f9d0f35e 156f99ef b55434a9 1adce6ef 0e78291e 5fbf4a84 2005abd1 1999bae9 deb9605d be7c41b4 e448275f
191 10000862 403 13.0 0.0 4554.0 0.0 6.0 38.0 0.0 3.0 05db9164 ea3a5818 3fcf7cf9 184d2b01 25c83c98 7e0ccccf 969e0f2f 0b153874 a73ee510 fa7d0797 f4aee513 bf68745c b5b29c1f 07d13a8f 4e70dc14 551d5c6f 1e88c74f a1d0cc4f 21ddcdc9 b1252a9d f3fe6bdc 32c7478e 75aae369 e8b83407 fa1d538c
192 10000981 0.0 125 148.0 6668.0 264.0 1.0 0.0 101.0 0.0 1.0 05db9164 b80912da c759d01e 2a58f8a3 bf9f7f48 fbad5c96 b920f7a4 062b5529 a73ee510 7f1b1cf5 e16bba2e ceb874b1 b17372a1 07d13a8f 569913cf 1cd8938f d4bb7bd8 7119e567 21ddcdc9 b1252a9d 893f35a8 c7dc6720 3fdb382b 60c2b362 d48ff5d5
193 10000651 1453 8.0 3.0 7106.0 158.0 2.0 13.0 123.0 1.0 13.0 05db9164 58e67aaf f563906e 88d64ca2 25c83c98 fbad5c96 216a1127 0b153874 a73ee510 2f50e80e c389b738 2027c337 d7ccab4e b28479f6 62eca3c0 8b649bc9 e5ba7672 c21c3e4c bdffef68 b1252a9d fc2ec718 3a171ecb 3fdb382b 9b3e8820 49d68486
194 10000440 1.0 165 8.0 1.0 2.0 0.0 2.0 2.0 10.0 1.0 2.0 0.0 41edac3d 09e68b86 4a224dac 4fd191d6 b0530c50 fbad5c96 cc5ed2f1 5b392875 a73ee510 3b08e48b a95a8954 d3cd60e0 9f16a973 b28479f6 52baadf5 bfa1f6fd 07c540c4 5aed7436 c79aad78 5840adea 18907521 c9d4222a 32c7478e af931d1c e8b83407 60404332
195 10000557 0.0 1 4.0 2.0 1965.0 8.0 27.0 8.0 183.0 0.0 8.0 2.0 05db9164 287130e0 d940cd73 1e5e2162 25c83c98 6f6d9be8 6cdb3998 0b153874 a73ee510 01a07fd7 5874c9c9 23e855c2 740c210d 07d13a8f 10040656 6e177038 e5ba7672 891589e7 712d530c a458ea53 80e90bce 32c7478e 471f55fb ea9a246c cb1956a3
196 10000960 0.0 2 2977.0 98.0 2.0 6.0 50.0 0.0 1.0 05db9164 52d631d9 d032c263 c18be181 25c83c98 fbad5c96 ce4f7f55 0b153874 a73ee510 ebb8102f 38f692a7 dfbb09fb 6e5da64f 64c94865 35e4d583 84898b2a 07c540c4 9943b99f 0014c32a 32c7478e 3b183c5c
197 10001978 2 166.0 29.0 11442.0 0.0 34.0 29.0 0.0 29.0 05db9164 38a947a1 db05d956 4aa1085f 30903e74 7e0ccccf c519c54d 0b153874 a73ee510 402b6ab6 59cd5ae7 767df0b5 8b216f7b 07d13a8f 33656313 53e62233 e5ba7672 deab2e92 b2d58dae 32c7478e 01c47b24
198 10001980 -1 6069.0 0.0 0.0 2.0 0.0 05db9164 38a947a1 8840956b bd008dec 25c83c98 315c76f3 0b153874 a73ee510 3b08e48b e51ddf94 c736ba0f 3516f6e6 f7c1b33f b5914cd1 c8ec97e6 776ce399 769fc695 99339a3e 32c7478e 1447d4ae
199 10000384 42 1.0 22.0 1670.0 22.0 33.0 1.0 604.0 8.0 2.0 22.0 68fd1e64 942f9a8d a13f6287 7ce39f04 25c83c98 7e0ccccf 3f4ec687 0b153874 a73ee510 7f79890b c4adf918 6305f7f8 85dbe138 b28479f6 ac182643 e7eb8087 8efede7f 1f868fdd 21ddcdc9 b1252a9d 020a0292 32c7478e 792d292d 9d93af03 9fddce14
200 10001013 5.0 2263 1.0 1.0 711.0 6.0 15.0 16.0 83.0 1.0 3.0 1.0 68fd1e64 403ea497 2cbec47f 3e2bfbda 25c83c98 16553469 5b392875 a73ee510 3b08e48b 00164ba4 21a23bfe f0a72e95 07d13a8f e3209fc2 587267a3 e5ba7672 a78bd508 21ddcdc9 5840adea c2a93b37 32c7478e 1793a828 e8b83407 2fede552
201 10001944 2.0 20 13.0 6.0 33.0 6.0 2.0 3.0 6.0 1.0 1.0 6.0 68fd1e64 287130e0 f10b8f8b 202fca20 25c83c98 fbad5c96 ce4f7f55 0b153874 a73ee510 d7026747 38f692a7 766a3e49 6e5da64f b28479f6 9efd8b77 4390abb5 e5ba7672 891589e7 6f3756eb b1252a9d 64554bf6 c9d4222a 32c7478e 4b3abb84 e8b83407 56133ed0
202 10001542 1.0 12 4.0 4.0 172.0 7.0 2.0 18.0 18.0 1.0 2.0 4.0 05db9164 980cc9df 53e06f71 4b930c6a 25c83c98 fbad5c96 8a6600b0 0b153874 a73ee510 04191335 4ab39743 8a78a25e ab8a1a53 b28479f6 11b901c4 36e6f2fa 07c540c4 05f89946 c5a8c8bb 3a171ecb 8a23eec0
203 10000654 0.0 9 1.0 6.0 4327.0 247.0 3.0 14.0 94.0 0.0 1.0 6.0 5a9ed9b0 d833535f b00d1501 d16679b9 25c83c98 fbad5c96 9140e6ca 0b153874 a73ee510 f902af47 aa5e0431 e0d76380 54be6cea b28479f6 a733d362 1203a270 07c540c4 281769c2 73d06dde ad3062eb 32c7478e aee52b6f
204 10000436 233 0.0 14581.0 0.0 0.0 231.0 0.0 54.0 05db9164 8084ee93 d032c263 c18be181 25c83c98 fe6b92e5 82615655 0b153874 a73ee510 c5d978ae e015e3d6 dfbb09fb 8f265ae5 07d13a8f 422c8577 84898b2a 1e88c74f 52e44668 0014c32a 32c7478e 3b183c5c
205 10000619 0.0 0 10.0 27.0 12284.0 181.0 2.0 37.0 144.0 0.0 2.0 27.0 68fd1e64 0a519c5c 77f2f2e5 d16679b9 25c83c98 fbad5c96 fe4e75fa 5b392875 a73ee510 6aea41c7 8f4f8f83 9f32b866 8828a59c b28479f6 b760dcb7 31ca40b6 07c540c4 2efa89c6 dfcfc3fa 93bad2c0 aee52b6f
206 10001132 1.0 982 17.0 12.0 151.0 17.0 28.0 28.0 284.0 1.0 7.0 0.0 13.0 05db9164 1cfdf714 9e85728f 851897da 4cf72387 3bf701e7 ac5d8d16 0b153874 a73ee510 1800d606 98579192 d6e76761 779f824b b28479f6 d345b1a0 91cbfa0a e5ba7672 e88ffc9d d630e5f7 b1252a9d c6ceca59 3a171ecb 799ca5db cb079c2d e123a092
207 10000789 1086 16.0 9326.0 0.0 0.0 241.0 0.0 17.0 5bfa8ab5 537e899b 5037b88e 9dde01fd 25c83c98 13718bbd ac07b602 1f89b562 a73ee510 6b8f8340 7ce882d2 680d7261 f5ff33d9 b28479f6 d2da00f1 c0673b44 1e88c74f 8f445203 e049c839 32c7478e 6095f986
208 10001954 556 1.0 84133.0 0.0 39af2607 8cc9c66e 9dd3c4fc a09fab49 384874ce 7e0ccccf 34459022 5b392875 7cc72ec2 3b08e48b 7579b566 3c5900b5 8803181f b28479f6 3bfd73d1 0decd005 e5ba7672 a6f5dd38 21ddcdc9 b1252a9d 7633c7c8 32c7478e 17f458f7 2bf691b1 175120e4
209 10001330 1.0 4 17.0 99.0 24.0 1.0 4.0 24.0 1.0 1.0 24.0 05db9164 b961056b d1b59691 8eb681c0 0942e0a7 fe6b92e5 dee9c7d7 5b392875 a73ee510 3b08e48b e7553038 0826f297 4f270104 07d13a8f c9e96939 0abe22ad 1e88c74f 5a6878f5 12965bb8 32c7478e 71292dbb
210 10000453 1 3.0 1.0 63453.0 0.0 1.0 1.0 0.0 1.0 68fd1e64 38a947a1 25c83c98 7e0ccccf bd6afa2b 062b5529 7cc72ec2 d977db1c c1ee56d0 ebd756bd 64c94865 e40dc223 1e88c74f d1464cb7 423fab69
211 10001743 0.0 24 14.0 0.0 1398.0 139.0 3.0 2.0 11.0 0.0 2.0 2.0 05db9164 bce95927 10f2f35a 13508380 43b19349 fbad5c96 d2d741ca 1f89b562 a73ee510 5702096a ea4adb47 8d630532 05781932 07d13a8f fec218c0 21e2ffc5 07c540c4 04d863d5 1d1eb838 a458ea53 fd518f08 c0061c6d 423fab69 45ab94c8 e8b83407 c84c4aec
212 10000294 0.0 7 5.0 5866.0 155.0 2.0 3.0 33.0 0.0 2.0 68fd1e64 c44e8a72 82d0e88b 73b7d654 384874ce 7e0ccccf 97006d5e 5b392875 a73ee510 3b08e48b 82f3fe17 7742cd63 c1dacb89 b28479f6 1addf65e 0e5b6685 d4bb7bd8 456d734d 083e89d9 b1252a9d 5a1f6c27 3a171ecb 5a4adb7d 724b04da 8b781ed5
213 10000610 0.0 6 1.0 36606.0 0.0 8.0 6.0 0.0 0.0 1.0 05db9164 e112a9de 5c7adc62 22504558 25c83c98 13718bbd c0a9460b 5b392875 a73ee510 3fb38a44 5420373c 23bc90a1 ab160bba 1adce6ef 6da7d68c 776f5665 e5ba7672 d495a339 5a5953a2 32c7478e 8f079aa5
214 10000310 36 34503.0 160.0 0.0 6.0 51.0 0.0 68fd1e64 537e899b 5037b88e 9dde01fd 4cf72387 fbad5c96 ce4f7f55 1f89b562 a73ee510 099b68bd 38f692a7 680d7261 6e5da64f 07d13a8f 6d68e99c c0673b44 d4bb7bd8 b34aa802 e049c839 32c7478e 6095f986
215 10001187 1.0 14 55.0 2.0 47.0 3.0 1.0 3.0 3.0 1.0 1.0 3.0 8cf07265 4f25e98b bc869843 abb8e18e 25c83c98 7e0ccccf 4bd57ddc 5b392875 a73ee510 05c0f465 910afbbb ab61d0d0 bd727667 b28479f6 8ab5b746 dc05908b d4bb7bd8 7ef5affa 5e89f4c8 b1252a9d 331aa444 3a171ecb f6a28e2b 001f3601 06647a51
216 10000220 4 6.0 2.0 9205.0 64.0 26.0 6.0 242.0 5.0 0.0 2.0 b455c6d7 bce95927 edde3156 13508380 4cf72387 7e0ccccf 2903ead3 0b153874 a73ee510 13af20e5 a0a5e9d7 8cfb7a5a ee79db7b 07d13a8f fec218c0 cc19f667 27c07bd6 04d863d5 55dd3565 b1252a9d 3535ae60 423fab69 45ab94c8 e8b83407 c84c4aec
217 10000376 0 3.0 1992.0 5.0 6.0 5.0 5.0 1.0 3.0 68fd1e64 78ccd99e 24ef584c c8167e68 4cf72387 1b76cf1e 1f89b562 a73ee510 b43f9937 0d8e34fa e9e2c23f e21429e2 051219e6 9917ad07 f95cc162 1e88c74f e7e991cb 21ddcdc9 a458ea53 f0db6227 32c7478e 1f163fc7 ea9a246c 8c532d04
218 10001751 5.0 2 264.0 11.0 8.0 28.0 51.0 1.0 2.0 0.0 05db9164 08d6d899 6a8a1217 14bfebf4 25c83c98 7e0ccccf 8363bee7 233428af a73ee510 b883655e bf09be0e 5b355b50 3516f6e6 64c94865 a8e4fe6e 0ded9094 e5ba7672 9dde83ca 831d5286 3a171ecb 9e9a60e4
219 10000259 29.0 0 7.0 1.0 0.0 825.0 15.0 1208.0 2.0 23.0 0.0 05db9164 59ab477c 7f2269e7 9432f5f9 25c83c98 7e0ccccf ec1a1856 64523cfa a73ee510 8ce94bed a04e019f dae6c42e 07a906b4 07d13a8f 9c25c3f3 9d58051d e5ba7672 74fc71da 21ddcdc9 5840adea 8d36212c dbb486d7 ac88b354 47907db5 99f4f64c
220 10001549 166 6.0 5.0 36298.0 17.0 2.0 6.0 7.0 0.0 6.0 05db9164 287130e0 f7ae16fe 81f090b4 25c83c98 0d5ac942 0b153874 a73ee510 adf94434 f7433a43 e539ae19 4fce4e51 f7c1b33f 42793602 39d3899e d4bb7bd8 891589e7 efa3470f a458ea53 2c6163fc 32c7478e 3fdb382b ea9a246c 49d68486
221 10001856 0.0 -1 16557.0 168.0 1.0 2.0 147.0 0.0 1.0 fbc55dae 38a947a1 ca28bee2 6a14f9b9 25c83c98 7e0ccccf 89391314 0b153874 a73ee510 0affc0bc 608452cc b7d600a4 cbb8fa8b 07d13a8f 78530a26 f8b34416 d4bb7bd8 c9ac134a f3ddd519 c9d4222a 3a171ecb b34f3128
222 10000402 0 4649.0 2.0 2.0 1.0 2.0 2.0 05db9164 bdaedcf5 b2241560 b9c51fff 1f89b562 a73ee510 fbbf2c95 7d4bba07 2fad1153 b28479f6 8af1dd15 07c540c4 7d461236 32c7478e
223 10000884 1.0 52 1.0 7.0 169.0 12.0 27.0 15.0 360.0 1.0 11.0 7.0 68fd1e64 287130e0 0fa4f546 ea124ac7 25c83c98 6f6d9be8 2be44e4e 0b153874 a73ee510 6f3d6efc 364e8b48 eba7dda8 34cbb1bc 07d13a8f 6aaa8dbc 7b9c834f e5ba7672 53515e19 712d530c 5840adea 428cc7c7 32c7478e a4b9e88f ea9a246c 03219b28
224 10001753 4.0 0 7.0 7.0 1.0 0.0 4.0 41.0 40.0 3.0 3.0 0.0 05db9164 09e68b86 4d03f58f a374d428 30903e74 fe6b92e5 90deec71 51d76abe a73ee510 3b08e48b 8bb53eff 61e325db 415b696f 07d13a8f 36721ddc d81af691 e5ba7672 5aed7436 a35e3db3 a458ea53 513bb387 423fab69 ab246148 e8b83407 21db0a46
225 10000530 1.0 614 4.0 33.0 4.0 1.0 0.0 4.0 1.0 1.0 3.0 05db9164 f9875f50 4d17d5a5 0d0ae4e6 4cf72387 7e0ccccf d5527617 51d76abe a73ee510 3b08e48b 7466b255 ce22c103 f4c487c1 1adce6ef 9bd565d9 2f4eadf6 d4bb7bd8 43a9e4b1 21ddcdc9 a458ea53 71d95e90 32c7478e d982520c e8b83407 7c5de8f0
226 10000564 0.0 55 3.0 5.0 1283.0 88.0 9.0 4.0 294.0 0.0 4.0 0.0 19.0 05db9164 bce95927 ddc63fc8 13508380 25c83c98 7e0ccccf 71c23d74 0b153874 a73ee510 cb3c0ba3 ae4c531b 5b84830a 01c2bbc7 07d13a8f fec218c0 254a8006 e5ba7672 04d863d5 55dd3565 a458ea53 c67ce0c6 423fab69 45ab94c8 e8b83407 c84c4aec
227 10001296 1 2.0 15.0 626.0 0.0 25.0 86.0 0.0 15.0 05db9164 0468d672 7ae80d0f 80d8555a 25c83c98 3bf701e7 81bb0302 0b153874 a73ee510 53550bd8 b7094596 cfc86806 1f9d2c38 b28479f6 58251aab 146a70fd 1e88c74f 0b331314 21ddcdc9 5840adea cbec39db 32c7478e cedad179 ea9a246c 9a556cfc
228 10000658 271 1.0 1.0 0.0 3.0 21.0 0.0 1.0 39af2607 38a947a1 e1c90b2b 6a14f9b9 25c83c98 fbad5c96 88002ee1 0b153874 7cc72ec2 3b08e48b f1b78ab4 0fa734aa 6e5da64f 07d13a8f 46df822a f8b34416 2005abd1 c9ac134a f3ddd519 32c7478e b34f3128
229 10001797 0.0 2 9.0 5.0 2309.0 92.0 5.0 6.0 54.0 0.0 1.0 5.0 5a9ed9b0 0468d672 39ecd705 43c8dd6c 25c83c98 fbad5c96 0636947d 37e4aa92 a73ee510 814f28f7 4d38a97d 2055fa1e 0f3d4e02 b28479f6 234191d3 ecfdc8a2 e5ba7672 9880032b 21ddcdc9 5840adea b6d56156 3a171ecb f4b7f89f cb079c2d 984e0db0
230 10000459 0.0 -1 27.0 18.0 1795.0 20.0 1.0 19.0 20.0 0.0 1.0 18.0 05db9164 78ccd99e 8b360ab6 9597bbfa 30903e74 f3474bcb 37e4aa92 a73ee510 3b08e48b 83dba508 1dabd30e 09cd9f24 07d13a8f 162f3329 5801a300 d4bb7bd8 e7e991cb cf99e5de a458ea53 eb8e95db 32c7478e 6f2df550 46fbac64 2272c19e
231 10001833 2 1.0 4.0 50394.0 0.0 4.0 4.0 0.0 4.0 68fd1e64 38a947a1 25c83c98 4b3c7cfe 0b153874 7cc72ec2 5e8fb876 8b94178b 025225f2 b28479f6 7e068c86 e5ba7672 5e8bcf8b 32c7478e
232 10001587 1.0 87 7.0 14.0 5.0 10.0 8.0 13.0 65.0 1.0 3.0 10.0 05db9164 4e8d18ed e40b8423 51fff761 25c83c98 4ac9db9e 5b392875 a73ee510 3b08e48b bc346946 7d80257f bcc725fc b28479f6 3438297f 0b577457 e5ba7672 47e4d79e 9d523618 b1252a9d 4b908c19 32c7478e 5a1a4fe9 c9f3bea7 a9746847
233 10000034 1.0 259 1.0 1.0 5.0 1.0 6.0 1.0 1.0 1.0 3.0 1.0 05db9164 f3b07830 ad981000 f96c819d 25c83c98 df5c2d18 0b153874 a73ee510 8aef4905 a7b606c4 b912be9f eae197fd b28479f6 d27eed0e b8b09fe6 e5ba7672 048d01f4 08ae854d 32c7478e c657e6e5
234 10001042 4.0 76 7.0 2.0 211.0 11.0 5.0 6.0 39.0 1.0 2.0 0.0 11.0 05db9164 207b2d81 ff44b7d9 56e6ecbd 25c83c98 6f6d9be8 01074d39 5b392875 a73ee510 299aecf1 e66005d3 2633f20a 8f33b365 cfef1c29 46630f6c 36b4052c 07c540c4 fa0643ee 21ddcdc9 a458ea53 214a6ee3 32c7478e 95597f5d 001f3601 4a5cc2a6
235 10001088 0 49.0 0.0 15913.0 120.0 12.0 9.0 54.0 1.0 4.0 8cf07265 942f9a8d 8e191576 738c4ecf 25c83c98 7e0ccccf 49b74ebc 0b153874 a73ee510 0e9ead52 c4adf918 cdc12223 85dbe138 07d13a8f a8e962af 1443c357 e5ba7672 1f868fdd 7839a083 a458ea53 55eddbf2 32c7478e 3fdb382b 001f3601 49d68486
236 10001716 2 40.0 8.0 2999.0 0.0 8.0 8.0 0.0 8.0 5a9ed9b0 08d6d899 60a2cdee cd08b588 25c83c98 fbad5c96 6e6e841b 37e4aa92 a73ee510 3b08e48b dcc0e16b 6c7591c2 b093e98d 07d13a8f 41f10449 6d922e3b 776ce399 698d1c68 15fce809 be7c41b4 f96a556f
237 10001146 3.0 9 3.0 5.0 787.0 78.0 15.0 45.0 245.0 1.0 2.0 5.0 17f69355 a796837e 08de7b18 97ce69e9 25c83c98 fbad5c96 fe4dce68 5b392875 a73ee510 83ff688a 68357db6 c5011072 768f6658 cfef1c29 f0bf9094 5a9431f3 e5ba7672 1cdbd1c5 e754c5e1 32c7478e 8fc66e78
238 10001123 0.0 1 1.0 1440.0 61.0 13.0 48.0 200.0 0.0 4.0 05db9164 58e67aaf 548bf07a 4ab0c6e1 25c83c98 fe6b92e5 e05853b8 1f89b562 a73ee510 0446ed7f 7373475d 3953854a cfbfce5c 1adce6ef d002b6d9 78550b97 e5ba7672 c21c3e4c 26e97973 b1252a9d cfe7812d bcdee96c fa470cd3 9b3e8820 93f6d392
239 10001135 7 5.0 7.0 3604.0 174.0 4.0 7.0 56.0 1.0 7.0 09ca0b81 b56822db 7da86e4b b733e495 25c83c98 7e0ccccf 4aa938fc 0b153874 a73ee510 316007da 7e40f08a ed397d6b 1aa94af3 b28479f6 a9d1ba1a 056d8866 e5ba7672 38dce391 21ddcdc9 b1252a9d deaf6b52 ad3062eb 32c7478e d9556584 001f3601 6c27a535
240 10001199 10.0 122 2.0 2.0 54.0 3.0 166.0 11.0 174.0 1.0 15.0 3.0 05db9164 38a947a1 166243dd b1a4c591 25c83c98 fbad5c96 1c86e0eb 0b153874 a73ee510 67eea4ef 755e4a50 4e55dc7f 5978055e b28479f6 46ed0b3c 8932f7d9 e5ba7672 2c6cb693 e8254620 32c7478e b258af68
241 10001321 0 7.0 0.0 95518.0 0.0 5.0 4.0 0.0 8.0 5a9ed9b0 68aede49 a00963bd 2e7596f6 4cf72387 fbad5c96 aa1c94e4 0b153874 7cc72ec2 610f6d4c 7e40f08a 3895d391 1aa94af3 07d13a8f 8dbc001a 0c61759d 07c540c4 262c8681 6a9ff547 ad3062eb be7c41b4 15556a9a
242 10000512 21 20.0 15.0 24511.0 75.0 12.0 44.0 62.0 1.0 15.0 05db9164 942f9a8d 72d3eff3 a57ad9c3 f281d2a7 7e0ccccf 3f4ec687 1f89b562 a73ee510 726f00fd c4adf918 ebd2d41b 85dbe138 b28479f6 ac182643 46f60353 8efede7f 1f868fdd 1d04f4a4 b1252a9d 6cc2d756 ad3062eb 32c7478e 9af06ad9 9d93af03 cdfe5ab7
243 10000596 650 1926.0 0.0 11.0 21.0 0.0 9a89b36c 4c2bc594 d032c263 c18be181 25c83c98 7e0ccccf 26a81064 0b153874 a73ee510 50e29c88 9e511730 dfbb09fb 04e4a7e0 8ceecbc8 7ac43a46 84898b2a e5ba7672 bc48b783 0014c32a 55dd3565 3b183c5c
244 10001406 1 33.0 24.0 10866.0 27.0 3.0 24.0 26.0 1.0 24.0 68fd1e64 f0cf0024 e1e0cbb4 1fa11a90 43b19349 6cdb3998 0b153874 a73ee510 a1f25462 02ab57a9 e606c45d 740c210d 1adce6ef abc790fd 38c9e47d 07c540c4 cc693e93 21ddcdc9 b1252a9d 9260909c 32c7478e 05831ff1 ea9a246c cea188cc
245 10000953 2.0 0 120.0 30.0 1340.0 301.0 22.0 27.0 262.0 0.0 4.0 30.0 05db9164 54b0d681 92e29a5c 4f6dd7c9 25c83c98 7520dd60 6c41e35e a73ee510 3b08e48b 6cc7718d 9b9443db 60d87974 1adce6ef bc55d84c 27186dc9 3486227d be07c275 21ddcdc9 5840adea 51e1dabe 423fab69 4f7b7578 47907db5 770ab1e0
246 10000609 2 1.0 1.0 3047.0 0.0 1.0 43.0 0.0 1.0 68fd1e64 13f25995 0b0f3952 35d9e6fe 25c83c98 7e0ccccf e88f1cec 0b153874 a73ee510 3b08e48b 8f410860 ff8c6fd9 b8eec0b1 07d13a8f 7cad642c 5015d391 776ce399 c7cf2414 3db17de9 be7c41b4 4fe18e82
247 10001691 0.0 1 7.0 4.0 1923.0 75.0 8.0 41.0 186.0 0.0 3.0 4.0 5a9ed9b0 ea3a5818 a59a8294 e5cd99c1 25c83c98 7e0ccccf 4a45f6c5 5b392875 a73ee510 55d3f0df 2a0b79f8 90c5a60e 25512dff 07d13a8f 4e70dc14 2643a5f6 e5ba7672 a1d0cc4f 6f3756eb 5840adea 3829d655 c7dc6720 3ff8e180 e8b83407 5a205e8e
248 10000458 0 4.0 5.0 4626.0 0.0 5.0 91.0 0.0 1.0 5.0 39af2607 4d554e60 d032c263 c18be181 25c83c98 fe6b92e5 b2a55fc8 0b153874 a73ee510 30fdb872 2b9f131d dfbb09fb aca10c14 64c94865 639789e9 84898b2a 8efede7f 9ef8c1e3 0014c32a 32c7478e 3b183c5c
249 10000385 0 1361.0 10.0 0.0 31.0 28.0 0.0 ae82ea21 38d50e09 4370913d a6707f4d 25c83c98 7e0ccccf d3aa6bbf 0b153874 a73ee510 3b08e48b 41d056e9 b4f69a28 628738d3 1adce6ef e2c18d5a 6c34b9f8 776ce399 582152eb 21ddcdc9 5840adea 0557cc46 be7c41b4 10527c8b 001f3601 984e0db0
250 10001591 0.0 0 5.0 3.0 1366.0 3.0 2.0 3.0 3.0 0.0 2.0 3.0 5a9ed9b0 942f9a8d 38718b2a 8bbea39a 0942e0a7 7e0ccccf 49b74ebc 5b392875 a73ee510 0e9ead52 c4adf918 ab3bcb29 85dbe138 b28479f6 ac182643 cf6f4aaa 1e88c74f 1f868fdd 738584ec b1252a9d 40b5257c 32c7478e 4008e1ec 9d93af03 93f2d760
251 10000175 0.0 18 15.0 9.0 4494.0 0.0 9.0 8.0 0.0 0.0 9.0 05db9164 2c16a946 0d427480 1b69e68d 25c83c98 7e0ccccf ade953a9 0b153874 a73ee510 4072f40f 29e4ad33 6be9ae06 80467802 b28479f6 3628a186 acfad74a 07c540c4 e4ca448c f973405d 3a171ecb 9117a34a
252 10001032 0.0 0 38.0 8.0 50.0 24.0 1.0 13.0 43.0 0.0 1.0 8.0 05db9164 f0cf0024 6f67f7e5 41274cd7 4cf72387 5b10fdbf 5b392875 a73ee510 72c66cf6 d30a51a7 623049e6 de1618b9 b28479f6 e6c5b5cd c92f3b61 e5ba7672 b04e4670 21ddcdc9 5840adea 60f6221e 32c7478e 43f13e8b ea9a246c 731c3655
253 10001436 20.0 1 7.0 8.0 1213.0 25.0 30.0 10.0 227.0 0.0 2.0 0.0 8.0 68fd1e64 c66fca21 eb28f2f0 d9da879c 25c83c98 7e0ccccf 95402f9a 0b153874 a73ee510 fa7d0797 46febd4d 1b357742 949ea585 07d13a8f e25cc91e 1ca88d4c e5ba7672 1304f63b 21ddcdc9 a458ea53 19f8997a 32c7478e 00161819 010f6491 235eada7
254 10001230 0.0 0 18.0 1.0 1573.0 12.0 14.0 5.0 137.0 0.0 4.0 4.0 be589b51 09e68b86 233378be cb2156cb 25c83c98 7e0ccccf 4af3481d 0b153874 a73ee510 bbff8499 ebcb3ba3 44776637 0067ac1b b28479f6 52baadf5 54dd60b2 e5ba7672 5aed7436 21ddcdc9 a458ea53 b39b1608 32c7478e 3fdb382b e8b83407 eb9a9610
255 10001882 0 1.0 10418.0 74.0 1.0 0.0 9.0 1.0 05db9164 38a947a1 25c83c98 7e0ccccf 5fd3419b 5b392875 a73ee510 69adc580 efc5e2cf c7176043 b28479f6 d75bc17d d4bb7bd8 26ea54dc 3a171ecb
256 10001706 0.0 0 8.0 2.0 5024.0 329.0 4.0 12.0 66.0 0.0 2.0 2.0 05db9164 78ccd99e 412e7177 7c63eb56 43b19349 7e0ccccf eef6ea32 0b153874 a73ee510 5ba575e7 4955b0c0 3f337f9c 9be66b48 f862f261 ada14dd8 91bc301c e5ba7672 e7e991cb 9437f62f a458ea53 c3edc613 3a171ecb 6b3a653f 9d93af03 4d0c145c
257 10000061 76 5.0 46200.0 7.0 0.0 68fd1e64 287130e0 7555338e e161fae2 25c83c98 7e0ccccf ce17d537 0b153874 7cc72ec2 ed111662 5b225578 f34e8f6a d1be539d 07d13a8f 10040656 8ec308fc 3486227d 891589e7 21ddcdc9 5840adea 182fdd1a c7dc6720 6c1cdd05 ea9a246c 1219b447
258 10001866 69 27334.0 400.0 1.0 0.0 57.0 1.0 05db9164 a0e12995 7072b54f 9361a5a7 25c83c98 7e0ccccf a870a74a 0b153874 a73ee510 7ef432eb 17586bd8 63e5c830 4c9ff09f 1adce6ef 78c64a1d 831daeab d4bb7bd8 1616f155 21ddcdc9 5840adea 82242446 423fab69 60a57787 9b3e8820 e75c9ae9
259 10001631 913 3.0 14.0 21866.0 76.0 2.0 33.0 89.0 1.0 14.0 68fd1e64 8947f767 05b8e430 f144ee98 43b19349 7e0ccccf 77158c8c a674580f a73ee510 3b08e48b 60e58dde 99ac28da e411c4db b28479f6 a473257f a770e7fc e5ba7672 bd17c3da 6f3756eb b1252a9d 8d362980 8ec974f4 be7c41b4 3fdb382b 010f6491 49d68486
260 10001998 241 177.0 35.0 2237.0 51.0 12.0 41.0 51.0 1.0 38.0 68fd1e64 58e67aaf ef4b47aa 90c72fb4 4cf72387 7e0ccccf 9f525672 0b153874 a73ee510 1e2ab9fa 843d8639 f898f1b8 9cab1003 07d13a8f 10935a85 90772df6 e5ba7672 c21c3e4c 1d04f4a4 a458ea53 90da9c54 32c7478e 20c8320e 9b3e8820 16edf87e
261 10000227 30 3.0 4383.0 105.0 1.0 13.0 28.0 1.0 3.0 68fd1e64 dd8c896e bd4e74d1 13508380 25c83c98 fbad5c96 18671b18 6c41e35e a73ee510 e1a31219 77212bd7 f4c65e70 7203f04e 07d13a8f 95275a51 542dec1e 3486227d 3182300e 21ddcdc9 b1252a9d f7684c6a c7dc6720 45ab94c8 010f6491 c84c4aec
262 10001126 13.0 7 3.0 4.0 251.0 32.0 13.0 21.0 32.0 1.0 1.0 1.0 7.0 68fd1e64 207b2d81 905a7b53 0e5acd1d 25c83c98 7e0ccccf 08b48f3f 5b392875 a73ee510 3b08e48b ab60c4de bac9dcdb c2e887fc b28479f6 4e9e3b1e 301d75b3 3486227d 157482f0 21ddcdc9 b1252a9d 278a31a1 3a171ecb 5bceb83a 001f3601 fdd86175
263 10000014 0.0 51 84.0 4.0 3633.0 26.0 1.0 4.0 8.0 0.0 1.0 4.0 5a9ed9b0 80e26c9b 97144401 5dbf0cc5 0942e0a7 13718bbd 9ce6136d 0b153874 a73ee510 2106e595 b5bb9d63 04f55317 ab04d8fe 1adce6ef 0ad47a49 2bd32e5c 3486227d 12195b22 21ddcdc9 b1252a9d fa131867 dbb486d7 8ecc176a e8b83407 c43c3f58
264 10000521 0 1.0 8694.0 61.0 1.0 1.0 34.0 1.0 05db9164 09e68b86 46070ce6 17615fcd 25c83c98 fbad5c96 f14f1abf 0b153874 a73ee510 d7c62471 7b5deffb d0744e21 269889be f862f261 1dca7862 7149576b d4bb7bd8 5aed7436 1d1eb838 a458ea53 ef4a560c 32c7478e f556f019 724b04da fe7d4d4a
265 10001762 1 4.0 7349.0 9.0 12.0 3.0 91.0 4.0 8cf07265 4f25e98b bb40d3b4 52566d96 384874ce fbad5c96 f610c0f7 0b153874 a73ee510 3a814d5f cf690be6 05994a27 4fa1154e 64c94865 40e29d2a 710d9802 e5ba7672 7ef5affa 21ddcdc9 5840adea 0baa810e 32c7478e 3fdb382b e8b83407 2d056c0b
266 10000501 0.0 0 1.0 5862.0 395.0 9.0 2.0 16.0 0.0 2.0 0.0 f0a33555 68b3edbf ad4b77ff d16679b9 4cf72387 fbad5c96 5392de9d 64523cfa a73ee510 0446ed7f f89fe102 a2f4e8b5 83e6ca2e 1adce6ef 9ebbad56 89052618 e5ba7672 cf1cde40 d4703ebd 423fab69 aee52b6f
267 10000847 160 19.0 38.0 4286.0 47.0 3.0 19.0 48.0 1.0 2.0 41.0 5a9ed9b0 4f25e98b dca5d15a 794fc893 25c83c98 fbad5c96 fe4dce68 5b392875 a73ee510 ab9e9acf 68357db6 befd9d25 768f6658 07d13a8f dfab705f b2ae3c75 27c07bd6 7ef5affa c79aad78 a458ea53 4ed90330 32c7478e 3fdb382b 001f3601 49d68486
268 10001245 0.0 490 40.0 1.0 3414.0 172.0 130.0 12.0 198.0 0.0 4.0 12.0 05db9164 287130e0 a9189492 38d20f75 25c83c98 b226f465 0017bc7c a73ee510 4f0c5ea9 c6c91669 dc7dbab5 b8a76289 26ac7cf4 faa78901 dffa91ca e5ba7672 891589e7 72d4f58d a458ea53 d3fdaf29 55dd3565 f92eb023 ea9a246c 3892454e
269 10000982 3 8.0 8.0 36060.0 374.0 7.0 23.0 173.0 1.0 0.0 8.0 05db9164 4c2bc594 d032c263 c18be181 25c83c98 fbad5c96 cc5ed2f1 0b153874 a73ee510 3b08e48b 081c279a dfbb09fb 9f16a973 8ceecbc8 7ac43a46 84898b2a 07c540c4 bc48b783 0014c32a ad3062eb 32c7478e 3b183c5c
270 10001592 5.0 -1 13.0 6.0 7.0 1.0 5.0 6.0 6.0 1.0 1.0 0.0 05db9164 58e67aaf 381d8ea3 76bbce8c 43b19349 fe6b92e5 a870a74a 0b153874 a73ee510 8d34ddcd 17586bd8 732c8db2 4c9ff09f b28479f6 62eca3c0 03f89a73 07c540c4 c21c3e4c 5ce524d1 b1252a9d d83181ad bcdee96c 3fdb382b 9b3e8820 25bf05c2
271 10001784 0 4.0 1.0 56.0 9.0 20.0 1.0 69.0 11.0 1.0 05db9164 287130e0 39800186 6d5dd203 25c83c98 fbad5c96 9a62af90 5b392875 a73ee510 5162b19c a35dd4d8 bb8c28a0 9ded12ab 07d13a8f 10040656 e5e5fb5c e5ba7672 891589e7 49175026 a458ea53 553a9125 3a171ecb f6c8a517 e8b83407 51e206f9
272 10000773 13.0 1 13.0 13.0 48.0 19.0 13.0 8.0 13.0 2.0 2.0 1.0 13.0 68fd1e64 09e68b86 aa8c1539 85dd697c 25c83c98 13718bbd 197b4575 37e4aa92 a73ee510 6c47047a 48876b80 d8c29807 e40e52ae 07d13a8f 801ee1ae c64d548f 3486227d 63cdbb21 cf99e5de a458ea53 5f957280 3a171ecb 1793a828 e8b83407 b7d9c3bc
273 10000745 1.0 2 48.0 3.0 20.0 3.0 6.0 21.0 21.0 1.0 3.0 3.0 09ca0b81 8947f767 8d2c1bcb b020f676 b2241560 7e0ccccf d89d88cb 5b392875 a73ee510 d7cb1343 2872a4bd be6cc8ed f8320f48 b28479f6 a473257f 646a92a5 e5ba7672 bd17c3da 315ba0e1 a458ea53 344f46da 32c7478e 3fdb382b 010f6491 49d68486
274 10001685 1 1.0 15838.0 47.0 1.0 0.0 47.0 1.0 5a9ed9b0 38d50e09 48a36cb2 cd47905e 4cf72387 fe6b92e5 c9a51835 0b153874 a73ee510 85224a92 cfcea1c3 84bf5077 633b9be7 07d13a8f ee569ce2 ad0cdd9f d4bb7bd8 582152eb 21ddcdc9 5840adea 7c18070e 32c7478e f86cd581 001f3601 984e0db0
275 10001076 1 25394.0 10.0 05db9164 5dac953d d032c263 c18be181 5a3e1872 7e0ccccf 9838c017 5b392875 a73ee510 3b08e48b b87ef7f7 dfbb09fb aec8a59d 1adce6ef 3a6fbb6d 84898b2a 776ce399 06c23e12 0014c32a bcdee96c 3b183c5c
276 10000546 18 0.0 be589b51 90081f33 fd22e418 36375a46 25c83c98 7e0ccccf d356c7e6 0b153874 7cc72ec2 3b08e48b 727af3e2 fb991bf5 49fe3d4e b28479f6 13f8263b d1a4e968 2005abd1 c191a3ff 9fb07dd2 be7c41b4 359dd977
277 10001646 6.0 90 27.0 6.0 4.0 1.0 14.0 6.0 6.0 1.0 2.0 1.0 68fd1e64 a07503cc 0454e745 13508380 25c83c98 7e0ccccf d7ea84dc 7c8f4939 a73ee510 2b438e13 4a77ddca 951c4fc7 dc1d72e4 07d13a8f 77660bba 17aff3ce e5ba7672 912c7e21 55dd3565 b1252a9d 79371994 423fab69 45ab94c8 445bbe3b c84c4aec
278 10000744 5 10.0 128747.0 0.0 0.0 6.0 0.0 05db9164 942f9a8d 47f0b0d2 6ffc8f28 0942e0a7 7e0ccccf d9aa9d97 0b153874 7cc72ec2 3b08e48b c4adf918 bee3806d 85dbe138 07d13a8f a8e962af a4676ba4 776ce399 1f868fdd 21ddcdc9 a458ea53 e17839cf 32c7478e 3fdb382b e8b83407 49d68486
279 10000223 0.0 18 1530.0 55.0 25.0 0.0 37.0 0.0 1.0 68fd1e64 4f25e98b c6cc2722 35f06b21 25c83c98 7e0ccccf 0c41b6a1 0b153874 a73ee510 e5edcbd4 4ba74619 5a201a4b 879fa878 64c94865 d5690a93 35b57962 e5ba7672 bc5a0ff7 1d1eb838 a458ea53 0d0170a9 423fab69 165b5acf 001f3601 e6476996
280 10001676 30.0 11 2.0 6.0 2.0 6.0 31.0 16.0 800.0 2.0 3.0 1.0 6.0 5a9ed9b0 d4be07ad 91c49678 d392d940 25c83c98 7e0ccccf 9d547ce0 0b153874 a73ee510 3b08e48b 868a9e47 d463821c fc5dea81 07d13a8f 1936a526 ac07723b 27c07bd6 cbae5931 cf99e5de b1252a9d 66f44edf c9d4222a 32c7478e b2f178a3 001f3601 938732a0
281 10001038 7 58.0 23.0 616.0 0.0 23.0 23.0 0.0 23.0 05db9164 06174070 a3829614 b0ed6de7 25c83c98 fe6b92e5 57b4bd89 1f89b562 a73ee510 3b08e48b 71fd20d9 3b917db0 ddd66ce1 b28479f6 62615981 12e989e9 776ce399 836a11e3 a34d2cf6 5840adea 9179411e c9d4222a 3a171ecb 1793a828 e8b83407 fa3124de
282 10001491 97 12.0 10113.0 226.0 4.0 0.0 739.0 3.0 56.0 05db9164 f6f4fe4b 21aa0734 90befb67 25c83c98 fbad5c96 2c1c829d 0b153874 a73ee510 cf7470a6 ac416c77 64a416af a341d3ba b28479f6 df360709 b16bfdcd e5ba7672 c587eafc 4c744d03 32c7478e c9e1b7a4
283 10001629 0.0 0 12.0 13.0 1605.0 126.0 9.0 47.0 421.0 0.0 4.0 13.0 05db9164 09e68b86 665aae39 0986ba40 4cf72387 9b4ad590 1f89b562 a73ee510 3b08e48b 75b8e15e afc7b4bf ed43e458 1adce6ef dbc5e126 a92ea6a5 e5ba7672 5aed7436 e29e5544 a458ea53 7182904f 423fab69 45285e8b e8b83407 162da209
284 10001648 17.0 0 11.0 10.0 113.0 21.0 17.0 10.0 16.0 1.0 1.0 0.0 15.0 41edac3d 38d50e09 01a0648b 657dc3b9 25c83c98 7e0ccccf 4b0cab49 0b153874 a73ee510 e1af44fa 6685ea28 11fcf7fa 7edc047a 07d13a8f fa321567 5e1b6b9d e5ba7672 52b872ed 21ddcdc9 a458ea53 bfeb50f6 55dd3565 df487a73 001f3601 c27f155b
285 10000152 3.0 -1 79.0 0.0 3.0 0.0 0.0 1.0 1.0 0.0 05db9164 09e68b86 3b40a9aa 37dff460 25c83c98 815e3303 1f89b562 a73ee510 b9b1972c 2cfc1696 ba5646a2 9bbdb8bd cfef1c29 18847041 cb880c3a 07c540c4 5aed7436 5389847f 5840adea 5b4aa781 32c7478e 1793a828 e8b83407 63093459
286 10001688 3.0 14 3.0 4.0 118.0 9.0 3.0 29.0 39.0 1.0 1.0 4.0 05db9164 db2905e6 752b44f5 108b5db7 384874ce 968a6688 0b153874 a73ee510 8ec317ae f25fe7e9 083867f6 dd183b4c 07d13a8f f0d9127f 9f1f1a1f e5ba7672 2a92b119 21ddcdc9 5840adea 36d378fa 32c7478e b3b00bef e8b83407 21cfe9f9
287 10000687 9.0 28 16.0 329.0 172.0 210.0 35.0 5637.0 1.0 12.0 39.0 150.0 5a9ed9b0 38a947a1 cae9045e 728d8e1d 25c83c98 7e0ccccf 3f4ec687 0b153874 a73ee510 7f79890b c4adf918 e540bf1e 85dbe138 07d13a8f 6e897ecc 568a6980 8efede7f a4dd5669 f288712f ad3062eb 32c7478e adf537c3
288 10001803 62 156.0 35.0 0.0 390.0 386.0 0.0 386.0 05db9164 08d6d899 512be979 6c9a7bdf 25c83c98 7e0ccccf af0809a5 0b153874 7cc72ec2 3b08e48b 9e12e146 f8f2d502 025225f2 07d13a8f 862dcf90 5d56686d 2005abd1 bbf70d82 283b581d be7c41b4 4f129db5
289 10000676 71 2.0 5011.0 3.0 33.0 2.0 50.0 8.0 2.0 05db9164 8e465f4d 45dd8f3e 9ec95656 384874ce fbad5c96 3598a741 5b392875 a73ee510 a9dd3a26 1d351a39 eeec5017 90a568bc 64c94865 9810119d f128e499 e5ba7672 0c425168 d624c69d 423fab69 dc0c0119
290 10001325 0.0 0 8.0 3.0 1749.0 34.0 48.0 8.0 273.0 0.0 9.0 12.0 05db9164 298d0556 d032c263 c18be181 0942e0a7 7e0ccccf 36a88c96 0b153874 a73ee510 ae37a48e 2e420cd8 dfbb09fb 004dc387 07d13a8f bfcf91a0 84898b2a e5ba7672 a8f42b59 0014c32a 423fab69 3b183c5c
291 10000055 6.0 0 28.0 0.0 31.0 0.0 6.0 0.0 0.0 1.0 1.0 0.0 8cf07265 287130e0 c1ba4c5a 16fe249c 25c83c98 7e0ccccf c1225605 985e3fcb a73ee510 ede207dc f29b9ed2 469027a9 7eaf6f1a 07d13a8f 10040656 8f13519e e5ba7672 891589e7 6f3756eb 5840adea f4095a39 c7dc6720 1793a828 e8b83407 a475662f
292 10000141 5.0 59 1.0 1.0 31.0 1.0 5.0 1.0 10.0 1.0 1.0 0.0 1.0 68fd1e64 b80912da bd350f15 c0ffce15 0942e0a7 fe6b92e5 f8008800 0b153874 a73ee510 50af9b31 e16bba2e 27e5d73a b17372a1 07d13a8f 569913cf fdcf791c e5ba7672 7119e567 d9aa05dc b1252a9d 33c8b815 c7dc6720 2d895b70 5c813496 98619b1c
293 10001643 0 2.0 1.0 99.0 0.0 4.0 4.0 0.0 4.0 8cf07265 68aede49 50d8de95 24b7fac2 25c83c98 fbad5c96 0d3aae8d 1f89b562 a73ee510 3b08e48b e08d8d9c e8898ccf 1577a179 07d13a8f 8dbc001a 68ec8702 1e88c74f 262c8681 966e4a0e 32c7478e 55dea74e
294 10000893 0 1.0 18627.0 449.0 9.0 0.0 359.0 4.0 be589b51 e5857f7e 25c83c98 7e0ccccf 753aa291 5b392875 a73ee510 99810933 d20ffd8f 6619af2b 07d13a8f d2fba5f5 e5ba7672 c79539f7 ad3062eb 3a171ecb
295 10000202 126 2.0 69481.0 0.0 4.0 7.0 0.0 2.0 05db9164 2ae0a573 c5d94b65 5cc8f91d 4cf72387 13718bbd 2db71de9 0b153874 7cc72ec2 3b08e48b a0060bca 75c79158 22d23aac ad1cc976 dd94570a 208d4baf d4bb7bd8 3e340673 6a909d9a c3dc6cef 1f68c81f
296 10001851 2.0 3 35.0 47.0 44.0 47.0 2.0 48.0 47.0 1.0 1.0 47.0 5bfa8ab5 4c2bc594 d032c263 c18be181 25c83c98 fbad5c96 50631f06 0b153874 a73ee510 7259dc52 f25fe7e9 dfbb09fb dd183b4c 1adce6ef ae0c3875 84898b2a 07c540c4 15a36060 0014c32a 55dd3565 3b183c5c
297 10000574 0 35.0 34.0 2947.0 0.0 38.0 73.0 0.0 34.0 05db9164 d833535f ad4b77ff d16679b9 25c83c98 7e0ccccf e824c09e 5b392875 a73ee510 2e546b3f dcea998f a2f4e8b5 55be071f 07d13a8f 943169c2 89052618 07c540c4 281769c2 d4703ebd c9d4222a 32c7478e aee52b6f
298 10000980 4 3.0 3.0 0.0 3.0 3.0 0.0 3.0 05db9164 bdaedcf5 89ff5705 7e0ccccf 30067bb0 c8ddd494 7cc72ec2 3b08e48b 5d8204e3 b6ce287d b28479f6 8af1dd15 2005abd1 7d461236 be7c41b4
299 10000887 58 4.0 0.0 26360.0 302.0 2.0 2.0 124.0 1.0 6.0 ae82ea21 0a519c5c b00d1501 d16679b9 25c83c98 7e0ccccf 93b19353 0b153874 7cc72ec2 3b08e48b d2b7c44b e0d76380 68637c0d 07d13a8f b812f9f2 1203a270 d4bb7bd8 2efa89c6 73d06dde c9d4222a 3a171ecb aee52b6f
300 10001275 6.0 257 1.0 1.0 565.0 2.0 6.0 2.0 2.0 1.0 1.0 1.0 05db9164 38a947a1 b1b6f323 be4cb064 25c83c98 fbad5c96 11754474 0b153874 a73ee510 3b08e48b 88ac36d5 d28c687a d8e8499b 1adce6ef fc42663d f2a191bd e5ba7672 c9da8737 5911ddcb 93bad2c0 1335030a
301 10000597 119 1.0 7159.0 4.0 10.0 1.0 39.0 1.0 1.0 05db9164 38a947a1 713c0f91 9fe1748a 384874ce d5b6acf2 0b153874 a73ee510 7597dc53 086ac2d2 6b9c3fee 41a6ae00 07d13a8f 588b40b2 85806c82 e5ba7672 0e2b2aec f204ff8b 32c7478e 1f022022
302 10001451 2.0 52 194.0 21.0 61.0 26.0 2.0 23.0 22.0 1.0 1.0 22.0 05db9164 09e68b86 aaad596c 53725276 30903e74 7e0ccccf 25504ca6 0b153874 a73ee510 3b08e48b 661c2800 aa2523b5 38087489 b28479f6 52baadf5 6d47b1b7 07c540c4 5aed7436 21ddcdc9 b1252a9d edb2164f 93bad2c0 3fdb382b e8b83407 49d68486
303 10001807 0.0 0 5.0 5761.0 24.0 4.0 0.0 5.0 0.0 1.0 05db9164 3e4b7926 904dfc86 8bbfe05b 25c83c98 7e0ccccf bff85457 0b153874 a73ee510 92574706 a3d2f3d0 caf18236 e5186205 07d13a8f e6863a8e 2910d567 e5ba7672 e261f8d8 21ddcdc9 a458ea53 e47e2b62 32c7478e c3cff491 47907db5 e45edfc2
304 10001687 0.0 200 12.0 6.0 1782.0 13.0 3.0 8.0 8.0 0.0 1.0 7.0 68fd1e64 38a947a1 ee98eed4 5fb2af39 25c83c98 7e0ccccf 780bcb50 0b153874 a73ee510 f1311559 30b2881b 28c51437 b2e5689c b28479f6 f2d9bf39 34e85fee 07c540c4 0bcb7dd3 f684da87 32c7478e 10edf4e4
305 10001810 0.0 -1 13.0 33.0 7381.0 574.0 3.0 42.0 526.0 0.0 1.0 0.0 33.0 68fd1e64 0a519c5c 77f2f2e5 d16679b9 25c83c98 7e0ccccf fda1a50f 25239412 a73ee510 3b08e48b d2b7c44b 9f32b866 68637c0d 07d13a8f b812f9f2 31ca40b6 e5ba7672 2efa89c6 dfcfc3fa 32c7478e aee52b6f
306 10001368 0.0 1 1.0 1.0 1529.0 8.0 5.0 1.0 1.0 0.0 2.0 1.0 05db9164 c3d483bc 66cfa835 59504ac4 b0530c50 fbad5c96 10cfa4ce 0b153874 a73ee510 998b0039 d0c3ead8 aa3a5972 a7de95c2 07d13a8f dcac819d 08993d2a e5ba7672 b0a0fca9 2cff7ecd c7dc6720 1f133a4c
307 10000748 0 138676.0 0.0 4.0 123.0 0.0 39af2607 38a947a1 4470baf4 8c8a4c47 25c83c98 7e0ccccf d548822d 0b153874 7cc72ec2 3b08e48b 8a832bf4 bb669e25 86c652c6 b28479f6 091737ad 2b2ce127 776ce399 ade68c22 2b796e4a be7c41b4 8d365d3b
308 10000393 6 12.0 0.0 1933.0 755.0 3.0 24.0 154.0 1.0 15.0 68fd1e64 38a947a1 4470baf4 8c8a4c47 25c83c98 7e0ccccf 583bc341 0b153874 a73ee510 3b08e48b a50ef3e5 bb669e25 b0c30eeb b28479f6 717db705 2b2ce127 07c540c4 ade68c22 2b796e4a ad3062eb be7c41b4 8d365d3b
309 10000217 0 1.0 4717.0 26.0 2.0 23.0 26.0 1.0 5a9ed9b0 2705da39 47067d41 66265d86 25c83c98 8ea060ec 0b153874 a73ee510 e77da105 8f68a279 e3e6582c 7eb73375 07d13a8f 74056b5a be1e450d 07c540c4 66c3058a a645a590 32c7478e 043ce596
310 10000760 0 114.0 12.0 36047.0 560.0 7.0 14.0 196.0 0.0 12.0 68fd1e64 0468d672 ae06bf90 b125f81c 25c83c98 7e0ccccf 8422994c 0b153874 a73ee510 9e2e04ec 6263d404 c15e7f3e aa1eb12e 1adce6ef 4f3b3616 98334731 e5ba7672 9880032b 21ddcdc9 5840adea 845453b6 32c7478e ce327ac7 ea9a246c aa5f0a15
311 10001712 1 0.0 31.0 263.0 0.0 33.0 32.0 0.0 32.0 5bfa8ab5 d833535f ad4b77ff d16679b9 25c83c98 7e0ccccf 6b277f8d 0b153874 a73ee510 9dea4570 f741cd0d a2f4e8b5 27aba7ec b28479f6 a66dcf27 89052618 1e88c74f 7b49e3d2 d4703ebd ad3062eb 3a171ecb aee52b6f
312 10000039 8.0 0 15.0 20.0 115.0 24.0 8.0 23.0 24.0 2.0 2.0 20.0 5a9ed9b0 c66fca21 78171040 373c404a 25c83c98 8ff6f5af 0b153874 a73ee510 5ba575e7 b5a9f90e 6766a7f0 949ea585 1adce6ef 8736735c 59974c9c 8efede7f 1304f63b 21ddcdc9 b1252a9d 07b2853e 32c7478e 94bde4f2 010f6491 09b76f8d
313 10001258 32 2.0 1.0 13165.0 257.0 1.0 7.0 132.0 1.0 2.0 be589b51 d833535f b00d1501 d16679b9 25c83c98 fbad5c96 47d65a75 0b153874 a73ee510 3b08e48b 7f9d1b4e e0d76380 ec4b1d39 1adce6ef 2ee9f086 1203a270 d4bb7bd8 7b49e3d2 73d06dde c9d4222a 32c7478e aee52b6f
314 10000066 7.0 1 40.0 1418.0 23.0 147.0 0.0 7.0 0.0 4.0 0.0 68fd1e64 80e26c9b ba1947d0 85dd697c 25c83c98 7e0ccccf 16401b7d a61cc0ef a73ee510 3b08e48b 20ec800a 34a238e0 18a5e4b8 b28479f6 a785131a da441c7e e5ba7672 005c6740 21ddcdc9 5840adea 8717ea07 32c7478e 1793a828 e8b83407 b9809574
315 10001990 1 2.0 4.0 31435.0 0.0 11.0 8.0 0.0 32.0 05db9164 38a947a1 0de84094 76f73f08 25c83c98 7e0ccccf def4a4d4 0b153874 a73ee510 56ef22e9 4ba74619 38416b51 879fa878 1adce6ef 5a205a23 09675609 07c540c4 faeb6b69 52b87c6a 423fab69 0fde6d0a
316 10001924 0.0 0 15.0 8.0 3467.0 237.0 10.0 9.0 110.0 0.0 2.0 8.0 68fd1e64 38a947a1 90873fbb ed7b659c 25c83c98 7e0ccccf 122c542a 0b153874 a73ee510 e5cadd10 7fee217f 8af52996 6e2907f1 b28479f6 3f565406 aed52b4e e5ba7672 48970815 ba3deb23 423fab69 270dc187
317 10000979 1 43247.0 221.0 0.0 5.0 85.0 0.0 0.0 41edac3d 762b9a6f 6e452d04 b742bcc4 4cf72387 468a0854 0b153874 a73ee510 3b08e48b a60de4e5 21084397 605bbc24 07d13a8f aa600b94 f80f36da 3486227d 01890ebf 3f5d7bc9 32c7478e 5a1a48d4
318 10000206 0.0 76 3.0 5029.0 16.0 0.0 05db9164 421b43cd 889a923c 29998ed1 384874ce fe6b92e5 52283d1c 37e4aa92 a73ee510 03e48276 e51ddf94 6aaba33c 3516f6e6 b28479f6 e1ac77f7 b041b04a d4bb7bd8 2804effd 723b4dfd 3a171ecb b34f3128
319 10000399 -1 23456.0 33.0 3.0 0.0 21.0 1.0 8cf07265 4c2bc594 d032c263 c18be181 4cf72387 7e0ccccf 1b2007fe 0b153874 a73ee510 d71e96ab 6c07e306 dfbb09fb 1cd94349 64c94865 00631f93 84898b2a 07c540c4 5a5b8bf9 0014c32a 32c7478e 3b183c5c
320 10000871 1 45.0 24.0 11551.0 137.0 39.0 34.0 133.0 2.0 0.0 29.0 68fd1e64 942f9a8d e3989839 244734e5 25c83c98 fbad5c96 3f4ec687 0b153874 a73ee510 7edea927 c4adf918 26928121 85dbe138 b28479f6 ac182643 08325bb9 8efede7f 1f868fdd f44bef3c b1252a9d 47214062 32c7478e a36ce6fa 001f3601 ee23e19d
321 10001694 -1 47.0 29.0 10383.0 66.0 3.0 30.0 66.0 1.0 29.0 68fd1e64 78ccd99e 0cfae832 2f1b2c1d 25c83c98 7e0ccccf 71ddaac7 0b153874 a73ee510 3b08e48b 80da9312 da27298a d14c9212 b28479f6 1ca2ec64 6ea4b293 07c540c4 e7e991cb 05e4794e b1252a9d dae8fcb9 32c7478e 3fdb382b e8b83407 49d68486
322 10000575 94 3.0 2923.0 5.0 3.0 0.0 0.0 1.0 05db9164 38a947a1 64d58ca0 0a8cd7bc 25c83c98 fe6b92e5 75dcaaca 5b392875 a73ee510 3b08e48b 8aabdae8 eebc06cb edcf17ce 07d13a8f ed217c18 31cf393e e5ba7672 61d51f71 58d08d44 c9d4222a 3a171ecb 355b6af8
323 10001084 -1 21918.0 25.0 2.0 0.0 16.0 1.0 0.0 05db9164 2ae0a573 c5d94b65 5cc8f91d 4cf72387 6f6d9be8 db57ffd3 0b153874 a73ee510 d1184420 a1e02e8a 75c79158 56568181 ad1cc976 dd94570a 208d4baf 07c540c4 3e340673 6a909d9a c3dc6cef 1f68c81f
324 10000005 -1 12824.0 0.0 0.0 6.0 0.0 05db9164 6c9c9cf3 2730ec9c 5400db8b 43b19349 6f6d9be8 53b5f978 0b153874 a73ee510 3b08e48b 91e8fc27 be45b877 9ff13f22 07d13a8f 06969a20 9bc7fff5 776ce399 92555263 242bb710 8ec974f4 be7c41b4 72c78f11
325 10000058 1 2.0 0.0 177674.0 0.0 3.0 2.0 0.0 0.0 1.0 87552397 207b2d81 6e136288 4f938621 25c83c98 7e0ccccf 8025502e 6c41e35e 7cc72ec2 4072f40f 29e4ad33 64ddde07 80467802 07d13a8f 0bf0feff 0c41b634 e5ba7672 fa0643ee 21ddcdc9 b1252a9d b4031b95 3a171ecb a81956df 001f3601 b1262ddd
326 10001128 0.0 1 49.0 8.0 4281.0 217.0 3.0 21.0 42.0 0.0 1.0 8.0 05db9164 09e68b86 8e892d79 2a53a874 25c83c98 7e0ccccf 85f287b3 1f89b562 a73ee510 cdf9bd7a 7c53dc69 43f3d6c6 4fd35e8f 07d13a8f 36721ddc 86e4e0d4 07c540c4 5aed7436 1bd5359f a458ea53 47d046aa 423fab69 3fdb382b e8b83407 49d68486
327 10001527 0.0 259 23.0 6.0 1689.0 46.0 81.0 28.0 817.0 0.0 24.0 6.0 5bfa8ab5 09e68b86 0e5d808f 1301eb98 25c83c98 7e0ccccf 8e26f624 0b153874 a73ee510 ee2c9f64 05c4eeb4 a2d48427 3e7d76a0 b28479f6 52baadf5 a3496f7d e5ba7672 5aed7436 dbe199cf b1252a9d fe43d565 bcdee96c 7246b108 e8b83407 86a91715
328 10000896 0.0 10 11.0 9.0 10062.0 1053.0 6.0 26.0 900.0 0.0 2.0 0.0 9.0 68fd1e64 fc1fa80d 5a1201eb 45e7b9c6 4cf72387 7e0ccccf 4b219154 5b392875 a73ee510 7259dc52 f25fe7e9 cdac3d6f dd183b4c b28479f6 4ce39685 4dab12d6 8efede7f f68751cd e58d8a84 32c7478e 1793a828
329 10001984 6.0 0 11.0 119.0 22.0 6.0 18.0 17.0 1.0 1.0 17.0 68fd1e64 4f25e98b 5ea1df6d dda20785 25c83c98 fe6b92e5 41e6f3d3 0b153874 a73ee510 5139ddc4 30b2a438 9ea90194 aebdb575 b28479f6 8ab5b746 4d28617a d4bb7bd8 7ef5affa 55dd3565 a458ea53 9d0a18a1 78e2e389 32c7478e 3fdb382b 001f3601 49d68486
330 10001178 41 1.0 1.0 31824.0 331.0 5.0 6.0 104.0 1.0 0.0 1.0 68fd1e64 4c2bc594 d032c263 c18be181 43b19349 7e0ccccf 4b219154 0b153874 a73ee510 7c907dc3 f25fe7e9 dfbb09fb dd183b4c 8ceecbc8 7ac43a46 84898b2a 27c07bd6 bc48b783 0014c32a 32c7478e 3b183c5c
331 10000092 -1 681386.0 11.0 05db9164 4c2bc594 d032c263 c18be181 43b19349 7e0ccccf 1554a783 0b153874 7cc72ec2 7636f6c8 b7bb7a17 dfbb09fb 73e186f6 8ceecbc8 7ac43a46 84898b2a e5ba7672 bc48b783 0014c32a c9d4222a 3a171ecb 3b183c5c
332 10001995 5.0 60 49.0 26.0 547.0 66.0 5.0 26.0 26.0 1.0 1.0 26.0 8cf07265 39dfaa0d 003f419b ff852091 25c83c98 fbad5c96 9f3e4cce 5b392875 a73ee510 efea433b e66005d3 349450bc 8f33b365 b28479f6 a36eb32c 6615ffe6 07c540c4 75edcf1f 21ddcdc9 b1252a9d 3dd38d65 ad3062eb 3a171ecb c2fe6ca4 010f6491 0015d4de
333 10000726 36 30.0 2.0 0.0 2.0 2.0 0.0 2.0 be589b51 80e26c9b 74e1a23a 9a6888fb 25c83c98 3bf701e7 0dab78da 0b153874 7cc72ec2 3b08e48b 7bc78da9 fb8fab62 6b5d07b4 b28479f6 4c1df281 c6b1e1b2 2005abd1 f54016b9 21ddcdc9 b1252a9d 99c09e97 be7c41b4 335a6a1e e8b83407 d15c0cc8
334 10000965 26.0 33 10.0 29.0 154.0 0.0 26.0 32.0 29.0 1.0 1.0 0.0 0.0 8cf07265 421b43cd 8666a32f 29998ed1 25c83c98 fbad5c96 8363bee7 0b153874 a73ee510 299aecf1 bf09be0e 6aaba33c 3516f6e6 b28479f6 2d0bb053 b041b04a e5ba7672 2804effd 723b4dfd 32c7478e b34f3128
335 10001049 0 5.0 2.0 39775.0 30.0 4.0 2.0 27.0 0.0 2.0 5a9ed9b0 39dfaa0d e300ec1e 5e607021 25c83c98 753aa291 0b153874 a73ee510 7cfcb35e d20ffd8f 28eaf8f1 6619af2b 07d13a8f 9c6e7138 0fbd51f0 e5ba7672 b4cf6245 21ddcdc9 b1252a9d b1a43951 32c7478e a90ebaa1 010f6491 074bb89f
336 10001745 2.0 29 2.0 3.0 416.0 9.0 4.0 29.0 86.0 1.0 3.0 3.0 68fd1e64 e5fb1af3 f6fa2eb8 457bf85d 25c83c98 7e0ccccf 885f3586 0b153874 a73ee510 05256df1 01df04b2 b5992112 3f813a5c cfef1c29 1e744fde aac7cef3 e5ba7672 13145934 6f62a118 a458ea53 1aa515a6 ad3062eb bcdee96c 4008e1ec f0f449dd cb5281ba
337 10000278 1 181.0 9.0 897.0 0.0 26.0 26.0 0.0 10.0 05db9164 e5fb1af3 722201e2 41ddee28 25c83c98 fbad5c96 1e9876db 0b153874 a73ee510 fa7d0797 043725ae 94a8c293 7f0d7407 cfef1c29 1e744fde 568b7a56 1e88c74f 13145934 5b885066 a458ea53 4d5231d9 3a171ecb e930a9c0 46fbac64 5a7c3d44
338 10000792 0.0 16 1.0 5.0 1746.0 19.0 8.0 8.0 18.0 0.0 2.0 5.0 05db9164 e112a9de a079d000 22504558 25c83c98 fbad5c96 c23ffa25 0b153874 a73ee510 8d3bf189 3722e006 e8107cf4 b7f43038 1adce6ef a4e2caab 776f5665 e5ba7672 c342ea0e 62bb718d be7c41b4 8f079aa5
339 10000133 -1 4.0 11492.0 0.0 0.0 0.0 0.0 68fd1e64 78ccd99e 414ceaee c9d7eaf9 25c83c98 be0a9688 0b153874 a73ee510 3b08e48b 10e6a64f ef8996b1 38b5339a b28479f6 1ca2ec64 03172d90 1e88c74f e7e991cb 21ddcdc9 a458ea53 6463aac0 32c7478e f689bb81 e8b83407 65aa49a4
340 10001928 -1 631032.0 0.0 5.0 5.0 0.0 05db9164 68aede49 1f082486 0da47a9b 25c83c98 fbad5c96 4b3c7cfe 0b153874 7cc72ec2 d04688d0 8b94178b 9c207460 025225f2 b28479f6 5c595008 b05879fe 07c540c4 262c8681 a1fc6bd5 32c7478e 03aefe56
341 10000144 1.0 0 1.0 2.0 169.0 2.0 9.0 11.0 312.0 1.0 4.0 0.0 2.0 05db9164 b2659ff1 4bcff5f1 906433d5 25c83c98 fbad5c96 ec258437 0b153874 a73ee510 fa7d0797 938fe91f f724f535 f948ca5d cfef1c29 4ee6e6c5 375e495d 8efede7f 15bb350b 69bb8bd4 32c7478e a283230e
342 10000632 33.0 946 6.0 2.0 449.0 31.0 33.0 32.0 32.0 1.0 1.0 3.0 05db9164 78ccd99e 9b953c56 7be07df9 25c83c98 7e0ccccf a1eeac3d 5b392875 a73ee510 b354306c 2e9d5aa6 6bca71b1 0a9ac04c 07d13a8f 162f3329 fb8ca891 e5ba7672 e7e991cb 21ddcdc9 b1252a9d b1ae3ed2 423fab69 3fdb382b 9b3e8820 49d68486
343 10001385 17.0 136 28.0 16.0 70.0 94.0 17.0 16.0 16.0 1.0 1.0 16.0 5a9ed9b0 0b8e9caf 5336832f 465f621b 25c83c98 7e0ccccf ec2174ab 5b392875 a73ee510 3b08e48b bb40a095 c22ab444 4af5f8c2 07d13a8f 1a015fe7 a88bcec6 e5ba7672 ca6a63cf 02eaf48d 423fab69 08b0ce98
344 10000805 1.0 0 120.0 21.0 31.0 1.0 38.0 31.0 1.0 1.0 0.0 05db9164 4f25e98b 8f345d3a c7e88618 384874ce 7e0ccccf fc2c0a2a 0b153874 a73ee510 ff01ce7c 2a0683ab 9c1ab2fb e5cf62b4 b28479f6 8ab5b746 7dacb697 d4bb7bd8 7ef5affa 872eb0d7 a458ea53 084c6d62 bcdee96c 09b2fafb 001f3601 946d9dc8
345 10001091 8.0 -1 15.0 22.0 237.0 69.0 8.0 24.0 23.0 1.0 1.0 23.0 05db9164 207b2d81 7a121ea3 96dc7a08 25c83c98 fbad5c96 ba8bba08 0b153874 a73ee510 54e99be5 34c909fe fe726452 ef9686d6 b28479f6 899da9d5 f036a5b6 e5ba7672 25c88e42 21ddcdc9 b1252a9d d17948fb dbb486d7 21c9d296 001f3601 8115a695
346 10000794 0.0 -1 1946.0 13.0 75.0 14.0 107.0 0.0 15.0 0.0 5a9ed9b0 38a947a1 5a691b82 6a14f9b9 4cf72387 7e0ccccf 0f59d328 0b153874 a73ee510 a78c9a05 39ddd652 e691e3b4 2891c67c 07d13a8f 586a2aab f8b34416 27c07bd6 e5f8f18f f3ddd519 423fab69 b34f3128
347 10001931 35.0 0 25.0 10.0 514.0 14.0 36.0 9.0 11.0 1.0 2.0 1.0 10.0 291b7ba2 80e26c9b 2d243b03 f2e08e7d 43b19349 7e0ccccf 8048b460 5b392875 a73ee510 9975fdff ae4c531b b78f8331 01c2bbc7 07d13a8f f3635baf 50038464 3486227d f54016b9 21ddcdc9 a458ea53 a8e82f5a c9d4222a 32c7478e 1793a828 e8b83407 51751315
348 10001611 2 5.0 3.0 0.0 3.0 3.0 0.0 3.0 439a44a4 38a947a1 c55a1490 2e4c7112 4cf72387 fe6b92e5 970f01b2 5b392875 7cc72ec2 3b08e48b 36bccca0 d8f11d77 80467802 07d13a8f fd8464ad f72d4e1e 2005abd1 95e4ca74 aaf36e52 55dd3565 5ddc2c4c
349 10000019 7.0 102 3.0 780.0 15.0 7.0 15.0 15.0 1.0 1.0 3.0 3c9d8785 b0660259 3a960356 15c92ddb 4cf72387 13718bbd 00c46cd1 0b153874 a73ee510 62cfc6bd 8cffe207 656e5413 ff5626de ad1cc976 27b1230c fa8d05aa e5ba7672 5edd90de e12ce348 c3dc6cef 49045073
350 10001501 1.0 42 12.0 1.0 70.0 6.0 1.0 11.0 10.0 1.0 1.0 5.0 7e5c2ff4 38a947a1 4470baf4 8c8a4c47 4cf72387 7e0ccccf 56fb669f 0b153874 a73ee510 d34aff56 7252cfd2 bb669e25 ccb9cc75 b28479f6 717db705 2b2ce127 e5ba7672 ade68c22 2b796e4a ad3062eb dbb486d7 8d365d3b
351 10000878 29.0 798 3.0 11.0 194.0 40.0 29.0 12.0 13.0 1.0 1.0 0.0 13.0 68fd1e64 e77e5e6e 82a315b2 904bc2bc 25c83c98 7e0ccccf ade953a9 0b153874 a73ee510 b118f931 29e4ad33 10fd4100 80467802 b28479f6 571f6c76 c33d389a e5ba7672 449d6705 d9aa05dc b1252a9d 737bff22 32c7478e 9d5874f6 e8b83407 a8b865d6
352 10000054 55 16.0 7.0 1696.0 72.0 2.0 7.0 95.0 2.0 7.0 5bfa8ab5 89ddfee8 00e2b23c 10d65c35 25c83c98 7e0ccccf ad3508b1 5b392875 a73ee510 fc3680e8 ad757a5a f400e021 93b18cb5 1adce6ef 34cce7d2 9e87470c e5ba7672 5bb2ec8e 7a45f7f2 a458ea53 a13d5eab 423fab69 faf5d8b3 f0f449dd a8cf207e
353 10001683 1.0 0 3.0 21.0 158.0 137.0 2.0 25.0 233.0 1.0 2.0 22.0 05db9164 c44e8a72 e55c2549 ba7cdb66 25c83c98 7e0ccccf 9099e7b5 0b153874 a73ee510 3b08e48b 70d4d706 a62b485a b6a6a31e b28479f6 1addf65e 33a7fb03 07c540c4 456d734d 21ddcdc9 b1252a9d e4bf497b 32c7478e 38be899f e8b83407 9bef54fd
354 10001897 -1 0.0 be589b51 38a947a1 4470baf4 8c8a4c47 25c83c98 7e0ccccf 88002ee1 0b153874 7cc72ec2 3b08e48b f1b78ab4 bb669e25 6e5da64f b28479f6 547b8c62 2b2ce127 2005abd1 b133fcd4 2b796e4a 32c7478e 8d365d3b
355 10001343 5 3.0 5.0 1723.0 8.0 9.0 5.0 8.0 1.0 5.0 05db9164 62e9e9bf 25c83c98 6ad82e7a 0b153874 a73ee510 663eefea c1ee56d0 ebd756bd b28479f6 24566b17 e5ba7672 d2651d6e 32c7478e
356 10001410 0.0 120 80.0 1.0 33831.0 538.0 0.0 2.0 187.0 0.0 0.0 1.0 05db9164 f0cf0024 2d240b81 9ccd40b7 30903e74 7e0ccccf fecb6b63 0b153874 a73ee510 906128c5 e6c365aa 11cc1c4a 61fca60c 1adce6ef 55dc357b b25cb682 d4bb7bd8 b04e4670 21ddcdc9 b1252a9d ace498a0 bcdee96c deda7b3f c243e98b c004c6bb
357 10001188 4.0 -1 13.0 12.0 33.0 16.0 4.0 16.0 12.0 1.0 1.0 8.0 68fd1e64 8e4f887c 25c83c98 7e0ccccf 8f8a62c3 0b153874 a73ee510 9e8fae15 75a64bb4 873349e8 b28479f6 b43b1e88 d4bb7bd8 4b340164 3a171ecb
358 10001280 8.0 5 1.0 0.0 10.0 0.0 51.0 1.0 5.0 1.0 9.0 0.0 0.0 5e53cc38 207b2d81 e48e5552 9ddc492e 25c83c98 7e0ccccf ff493eb4 37e4aa92 a73ee510 03e48276 0983d89c e5e1ca92 1aa94af3 64c94865 11b2ae92 29fd6b7b e5ba7672 395856b0 21ddcdc9 a458ea53 e5191f27 c9d4222a 32c7478e c23c2e19 001f3601 89e1abe5
359 10001956 0 2.0 1.0 66273.0 0.0 1.0 22.0 0.0 1.0 68fd1e64 38a947a1 c449cf49 d00d0f35 25c83c98 fe6b92e5 7ebb604b 0b153874 7cc72ec2 7effe9ee f66047e5 63e498fc 13c89cc4 b28479f6 87f18530 5d32e679 e5ba7672 95f11b33 c4d244b9 c9d4222a bcdee96c 2e0a0035
360 10000001 2.0 0 44.0 1.0 102.0 8.0 2.0 2.0 4.0 1.0 1.0 4.0 68fd1e64 f0cf0024 6f67f7e5 41274cd7 25c83c98 fe6b92e5 922afcc0 0b153874 a73ee510 2b53e5fb 4f1b46f3 623049e6 d7020589 b28479f6 e6c5b5cd c92f3b61 07c540c4 b04e4670 21ddcdc9 5840adea 60f6221e 3a171ecb 43f13e8b e8b83407 731c3655
361 10001557 -1 1376.0 2.0 6.0 2.0 2.0 3.0 68fd1e64 d4bd9877 bd840d0f f5a1d625 25c83c98 fe6b92e5 f913fba5 0b153874 a73ee510 3b08e48b c05dff4b 8066b103 a22449ca d2dfe871 356fa1ec c41d1835 07c540c4 5a87d8e9 52252402 3a171ecb 65d7d87d
362 10001754 4.0 27 6.0 1290.0 101.0 5.0 20.0 78.0 0.0 1.0 0.0 29.0 05db9164 38d50e09 7dcbe8d1 376e04b2 25c83c98 fe6b92e5 8363bee7 1f89b562 a73ee510 efea433b bf09be0e 9fd4b868 3516f6e6 07d13a8f e24ff4c6 eba4503a e5ba7672 f855e3f0 21ddcdc9 b1252a9d acb43516 32c7478e 6642af15 001f3601 aa5f0a15
363 10000113 2.0 207 3.0 66.0 4.0 5.0 43.0 49.0 1.0 3.0 4.0 05db9164 f3b07830 fafd1603 29859b14 4cf72387 fe6b92e5 e824c09e 0b153874 a73ee510 3b08e48b dcea998f cfaee88e 55be071f b28479f6 794f6f8b 080b92a6 07c540c4 048d01f4 bdf0785f 32c7478e c657e6e5
364 10001895 2 3.0 3.0 5146.0 51.0 5.0 15.0 47.0 1.0 3.0 5a9ed9b0 1cf8ffb9 d032c263 c18be181 25c83c98 fe6b92e5 099d72d1 0b153874 a73ee510 6c47047a a6f5e788 dfbb09fb beaa48ab 1adce6ef c06af98c 84898b2a e5ba7672 1a66fb6f 0014c32a 3a171ecb 3b183c5c
365 10001050 -1 0.0 1.0 4.0 0.0 5a9ed9b0 0a765a7a b12880f3 e5b2a31b 25c83c98 fe6b92e5 86e5b4b0 5b392875 7cc72ec2 3b08e48b 28404bee 23121637 3af886ff 07d13a8f 32c6ddd8 50b03903 2005abd1 4cb86eeb 39059201 78e2e389 423fab69 ff09b92e
366 10000438 3 1.0 2072.0 0.0 7.0 0.0 45.0 1.0 05db9164 80e26c9b deff4086 8e9a3d02 25c83c98 7e0ccccf 7227c706 0b153874 a73ee510 5fcee6b1 9625b211 3f0f96a0 dccbd94b b28479f6 4c1df281 822244e3 e5ba7672 f54016b9 21ddcdc9 b1252a9d 13d108d4 ad3062eb 32c7478e f998e32f e8b83407 991b9486
367 10001477 11 33.0 3.0 0.0 8.0 12.0 0.0 3.0 68fd1e64 083aa75b f7e2684b 1fbb595c 43b19349 7e0ccccf 1f2924d9 0b153874 7cc72ec2 3b08e48b 3ec9c616 2fe438ed b55434a9 b28479f6 4e47e13c 7da9962b 2005abd1 06747363 21ddcdc9 5840adea ab6399cc be7c41b4 4a5cfcca e8b83407 4426ce6d
368 10000082 13.0 13 80.0 32.0 378.0 115.0 15.0 37.0 57.0 1.0 2.0 48.0 5a9ed9b0 4f25e98b b393df87 c3fecae9 25c83c98 7e0ccccf 5192dba2 0b153874 a73ee510 f1317066 aaa08406 8d33fe00 6665daff 8ceecbc8 5525889d 0fd4fbad e5ba7672 9e4517be 3014a4b1 5840adea 572bdde8 ad3062eb 32c7478e 9fa3e01a 001f3601 d9bcfc08
369 10000379 0.0 -1 1.0 5061.0 233.0 7.0 8.0 1634.0 0.0 3.0 f473b8dc d833535f 77f2f2e5 d16679b9 43b19349 7e0ccccf 28acc02a 0fb392dd a73ee510 2134f605 f5a125f1 9f32b866 095af3d6 b28479f6 a66dcf27 31ca40b6 e5ba7672 7b49e3d2 dfcfc3fa 3a171ecb aee52b6f
370 10001211 0.0 2 44.0 3.0 4422.0 8.0 0.0 3.0 68fd1e64 8e4f887c 25c83c98 7e0ccccf 14956523 1f89b562 a73ee510 4effc25c 1c541241 e11162e6 b28479f6 b43b1e88 07c540c4 4b340164 ad3062eb 32c7478e
371 10001732 13 1.0 20691.0 0.0 68fd1e64 403ea497 2cbec47f 3e2bfbda 384874ce 7e0ccccf f970e59a 5b392875 a73ee510 7b7e43a5 5adcba72 21a23bfe 5b6ee19d 07d13a8f e3209fc2 587267a3 e5ba7672 a78bd508 21ddcdc9 5840adea c2a93b37 c9d4222a 32c7478e 1793a828 e8b83407 2fede552
372 10000326 0 2.0 1.0 29430.0 60.0 1.0 1.0 60.0 1.0 1.0 05db9164 1612be27 3c368043 0fe3165a 25c83c98 f376e33a 5b392875 a73ee510 8228dde1 1333e775 a2722ce4 13b025c3 07d13a8f cbffe0e5 43a7c9a1 d4bb7bd8 ce500fd8 21ddcdc9 5840adea 0628293c c7dc6720 e798ac81 cb079c2d 826dc169
373 10001256 4.0 597 8.0 11.0 653.0 77.0 6.0 21.0 104.0 1.0 2.0 64.0 05db9164 0468d672 96166464 867d05be 25c83c98 7e0ccccf 81bb0302 0b153874 a73ee510 012bac1e b7094596 dc2f19a6 1f9d2c38 07d13a8f a888f201 668f77c8 e5ba7672 9880032b 21ddcdc9 5840adea 1c6ba3ba 55dd3565 a9a2ac1a ea9a246c 409c7293
374 10000322 6.0 2 17.0 13.0 18.0 12.0 6.0 13.0 13.0 1.0 1.0 0.0 12.0 8cf07265 c5c1d6ae c7a36fba 94fb8c54 25c83c98 13718bbd 3b93bd7b 0b153874 a73ee510 36bde1a1 cd797342 efd6cd83 f8b2e505 1adce6ef 151f2153 ccf7994a e5ba7672 836a67dd 21ddcdc9 5840adea ba1b0dbb 423fab69 916f4113 7a402766 6527ade9
375 10001717 0.0 49 2.0 4609.0 223.0 1.0 20.0 178.0 0.0 1.0 14.0 8cf07265 0a519c5c b00d1501 d16679b9 25c83c98 7e0ccccf fe06fd10 1f89b562 a73ee510 e3d58036 67360210 e0d76380 4f8e2224 b28479f6 7f6af6b0 1203a270 e5ba7672 eea3ab97 73d06dde 32c7478e aee52b6f
376 10001354 2.0 11 69.0 43.0 642.0 43.0 2.0 43.0 43.0 1.0 1.0 43.0 05db9164 58e67aaf d27bb610 e3801c1b 25c83c98 7e0ccccf cc8ce7f3 0b153874 a73ee510 3b08e48b b6ac69d0 0afc6bf4 e987b058 1adce6ef d002b6d9 d621ce3f d4bb7bd8 c21c3e4c 9437f62f b1252a9d 118624bb 3a171ecb f1fc44b5 9b3e8820 1faf87ce
377 10001823 0.0 138 4114.0 8.0 0.0 05db9164 90081f33 fd22e418 36375a46 25c83c98 7e0ccccf be6ddaca 5b392875 a73ee510 d44937a3 585a8b28 fb991bf5 addc3db7 b28479f6 13f8263b d1a4e968 d4bb7bd8 c191a3ff 9fb07dd2 32c7478e 359dd977
378 10000461 29.0 0 13.0 9.0 108.0 9.0 29.0 11.0 9.0 1.0 1.0 2.0 9.0 68fd1e64 09e68b86 4319f568 1125737f 4cf72387 fbad5c96 24e8ca9f 0b153874 a73ee510 7d83f681 94a1f0fa 606c67c3 153f0382 b28479f6 52baadf5 8c276f52 27c07bd6 5aed7436 6f3756eb b1252a9d 53807e3f bcdee96c 1793a828 e8b83407 ed9e6b03
379 10000425 0.0 307 4.0 4.0 2826.0 4.0 4.0 4.0 20.0 0.0 2.0 4.0 05db9164 3e4b7926 7442ec70 bb8645c3 25c83c98 fe6b92e5 a4ca48a1 0b153874 a73ee510 3b08e48b a1288914 a5ab10e6 919200e1 07d13a8f e6863a8e 1cdb3603 07c540c4 e261f8d8 21ddcdc9 5840adea 1380864e 3a171ecb be2f0db5 47907db5 68d9ada1
380 10001386 1.0 7 14.0 4.0 897.0 13.0 3.0 14.0 156.0 1.0 3.0 6.0 5a9ed9b0 ea3a5818 e9ba3c02 d86c3243 25c83c98 7e0ccccf 3d067f68 0b153874 a73ee510 3b08e48b 18783374 77fb35ab 78ef55d4 b28479f6 0a069322 9bbfdd44 07c540c4 a1d0cc4f 1d04f4a4 a458ea53 edd5bb8d 32c7478e 61842413 1575c75f 9a333cac
381 10000122 0.0 37 23.0 9.0 1635.0 84.0 2.0 17.0 109.0 0.0 2.0 50.0 05db9164 9b25e48b 2d9b2559 96302ef8 43b19349 fbad5c96 e64ca89e 5b392875 a73ee510 3b76bfa9 87bb382c 3d899a5a d95a2a6d 8ceecbc8 8f3ef960 24352c5c 07c540c4 7d8c03aa fbf39fb5 a458ea53 0c61029b 32c7478e 216a829e 001f3601 abc00283
382 10000881 0.0 16 1.0 1.0 45750.0 477.0 0.0 14.0 72.0 0.0 0.0 1.0 05db9164 9e681c70 862a1294 7cb07a1c 25c83c98 7e0ccccf 068d5672 5b392875 7cc72ec2 72210096 cd3a0eb4 76a79c33 715b22a3 b28479f6 40318a15 49033934 e5ba7672 bbdd12dc a50737e9 32c7478e aee52b6f
383 10000446 51 0.0 15.0 30333.0 314.0 0.0 0.0 558.0 0.0 0.0 49.0 05db9164 0a519c5c b00d1501 d16679b9 25c83c98 7e0ccccf afa309bd 5b392875 a73ee510 41a44866 77212bd7 e0d76380 7203f04e b28479f6 b760dcb7 1203a270 e5ba7672 2efa89c6 73d06dde 3a171ecb aee52b6f
384 10000048 1.0 2382 13.0 4.0 40.0 4.0 69.0 3.0 609.0 1.0 11.0 0.0 4.0 05db9164 38a947a1 933cc823 b1c1e580 25c83c98 fe6b92e5 002fdf0c 1f89b562 a73ee510 61f70369 a4ea009a 2562cf3c 1e9339bc b28479f6 f5bfabbd 03dee53f e5ba7672 b3e92443 be661a75 c7dc6720 67d37917
385 10001196 8.0 0 4.0 14.0 4.0 1.0 15.0 37.0 131.0 1.0 3.0 0.0 1.0 05db9164 70a1db74 1967b0f8 077ac770 25c83c98 7e0ccccf 1e3cba9d 5b392875 a73ee510 b681243c 843d8639 590dfbb8 9cab1003 b28479f6 c1a9d38f 0f3e52cd e5ba7672 236eaece 216374f4 bcdee96c 5ddc2c4c
386 10000677 68.0 0 81.0 23.0 56.0 40.0 282.0 48.0 469.0 1.0 7.0 1.0 23.0 8cf07265 e77e5e6e b8d8e2f3 9449965d 25c83c98 7e0ccccf 7c59aadb 5b392875 a73ee510 a098e768 ff78732c 60857cc6 9b656adc 07d13a8f 2eb18840 444585d7 27c07bd6 449d6705 21ddcdc9 a458ea53 110f1bfd c7dc6720 4652de8b e8b83407 8fa55041
387 10001399 3.0 181 3.0 4.0 295.0 50.0 11.0 38.0 175.0 1.0 4.0 4.0 05db9164 421b43cd 26d771ef 29998ed1 25c83c98 7e0ccccf 7dab17c2 37e4aa92 a73ee510 865b29d9 636405ac 6aaba33c 31b42deb b28479f6 2d0bb053 b041b04a e5ba7672 2804effd 723b4dfd c9d4222a 3a171ecb b34f3128
388 10001498 0 44.0 8.0 7974.0 344.0 1.0 7.0 8.0 1.0 8.0 05db9164 0468d672 02bd7bb3 b4b00886 0942e0a7 7e0ccccf 01eaa539 0b153874 a73ee510 dc790dda e3205ff0 a9ecf335 b688506c 1adce6ef 4f3b3616 dc1edaf3 d4bb7bd8 9880032b 21ddcdc9 5840adea ad69ce75 32c7478e 6e311859 ea9a246c 9f6a34e7
389 10000503 5 25.0 2.0 30941.0 212.0 34.0 2.0 24.0 0.0 2.0 05db9164 a0e12995 622d2ce8 51c64c6d 25c83c98 7e0ccccf c519c54d 1f89b562 a73ee510 11fa841e 59cd5ae7 e9521d94 8b216f7b b28479f6 83763c20 ab8b968d e5ba7672 1616f155 21ddcdc9 5840adea ee4fa92e c9d4222a 32c7478e d61a7d0a 9b3e8820 b29c74dc
390 10001900 0 3.0 11620.0 112.0 53.0 1.0 342.0 3.0 05db9164 287130e0 f4283ef0 8e5b38d8 25c83c98 fbad5c96 6284da2d 5b392875 a73ee510 622fc8eb 5874c9c9 91352ce2 740c210d 07d13a8f 10040656 7494f9ca e5ba7672 891589e7 473e5032 a458ea53 42584677 32c7478e 57ef7a21 e8b83407 a6dec5b6
391 10001228 0.0 35 28.0 6.0 866.0 104.0 3.0 35.0 109.0 0.0 2.0 7.0 05db9164 bfdcfc4a 3482cb1d 2c2b7368 25c83c98 86e54348 37e4aa92 a73ee510 1ce1e29d 44fa9a7f 21b99057 f27ed3ab b28479f6 2ed5bdad 41b4dd52 e5ba7672 ffd53157 21ddcdc9 5840adea 390a66d6 3a171ecb 03a8e84d 2bf691b1 584d8464
392 10000298 29 2.0 10154.0 0.0 6.0 93.0 0.0 2.0 68fd1e64 0a519c5c b00d1501 d16679b9 25c83c98 7e0ccccf ce813de3 062b5529 a73ee510 3b08e48b 13754a9c e0d76380 5d111255 b28479f6 b760dcb7 1203a270 776ce399 2efa89c6 73d06dde 3a171ecb aee52b6f
393 10000052 6 2.0 3.0 2779.0 0.0 3.0 13.0 0.0 3.0 fb174e6b 47e8ab98 b009d929 c7043c4b 384874ce 646e7593 0b153874 a73ee510 3b08e48b d05acfa9 3563ab62 969e14fd 1adce6ef bfa6d08a b688c8cc 8efede7f eb4d3f8a 21ddcdc9 5840adea 2754aaf1 55dd3565 3b183c5c f55c04b6 491eeeef
394 10001742 0.0 609 1.0 1.0 3039.0 69.0 63.0 11.0 446.0 0.0 11.0 0.0 1.0 87552397 bce95927 0f88c0f4 13508380 25c83c98 fbad5c96 50b436c9 5b392875 a73ee510 b1ed2e73 a0a5e9d7 a3fa6432 ee79db7b 07d13a8f fec218c0 1cf48289 e5ba7672 04d863d5 21ddcdc9 a458ea53 cf1c2f32 423fab69 45ab94c8 e8b83407 c84c4aec
395 10001791 10.0 2 34.0 5.0 25.0 4.0 64.0 5.0 70.0 2.0 9.0 6.0 4.0 05db9164 942f9a8d a642d369 d8d7e9b7 25c83c98 7e0ccccf 3f4ec687 37e4aa92 a73ee510 7edea927 c4adf918 10ecbb16 85dbe138 b28479f6 ac182643 0eef1d43 3486227d 1f868fdd 2e30f394 a458ea53 aafb1f9c 32c7478e bad0d6d8 9d93af03 8f9d38b3
396 10000713 3 1.0 1.0 42481.0 0.0 10.0 1.0 0.0 1.0 8cf07265 e112a9de af5655e7 22504558 4cf72387 7e0ccccf be387078 c8ddd494 a73ee510 e02bb3ed 67b436e3 252162ec 3be7f5f3 1adce6ef 4267a81c 776f5665 e5ba7672 3dde2dc8 5c7c443c 32c7478e 8f079aa5
397 10001453 1.0 0 1.0 149.0 5.0 1.0 0.0 0.0 1.0 1.0 be589b51 09e68b86 d01261c6 d551fbe0 25c83c98 7e0ccccf 25504ca6 0b153874 a73ee510 3b08e48b 661c2800 9449c78e 38087489 07d13a8f 36721ddc 5fed0876 d4bb7bd8 5aed7436 d16737e3 a458ea53 edc49a33 93bad2c0 3fdb382b e8b83407 80dd0a5b
398 10000360 -1 0.0 0.0 6.0 0.0 05db9164 b961056b d1b59691 8eb681c0 25c83c98 88002ee1 5b392875 7cc72ec2 3b08e48b f1b78ab4 0826f297 6e5da64f 1adce6ef 4903dd2e 0abe22ad 2005abd1 5162930e 12965bb8 32c7478e 71292dbb
399 10001809 0.0 300 4.0 4622.0 25.0 20.0 6.0 55.0 0.0 2.0 4.0 68fd1e64 403ea497 2cbec47f 3e2bfbda 25c83c98 fe6b92e5 197b4575 0b153874 a73ee510 6c47047a 606866a9 21a23bfe e40e52ae 07d13a8f e3209fc2 587267a3 8efede7f a78bd508 21ddcdc9 5840adea c2a93b37 3a171ecb 1793a828 e8b83407 2fede552
400 10000769 1.0 1 2.0 1.0 5.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 05db9164 ea3a5818 828ef18f ba229df2 384874ce 7e0ccccf 969e0f2f 0b153874 a73ee510 fa7d0797 9163f8f1 eac9feed b5b29c1f 1adce6ef 7e7dc5e4 98a54621 d4bb7bd8 a1d0cc4f c68db44a a458ea53 3b1ae854 32c7478e 57e2c6c9 1575c75f 7132fed8
401 10000563 2 36144.0 36.0 05db9164 d833535f 77f2f2e5 d16679b9 4cf72387 7e0ccccf 0c41b6a1 0b153874 a73ee510 4f11d1f4 4ba74619 9f32b866 879fa878 b28479f6 a66dcf27 31ca40b6 e5ba7672 7b49e3d2 dfcfc3fa 423fab69 aee52b6f
File diff suppressed because it is too large Load Diff
-170
View File
@@ -1,170 +0,0 @@
SUMMARY
================================================================================
These files contain 1,000,209 anonymous ratings of approximately 3,900 movies
made by 6,040 MovieLens users who joined MovieLens in 2000.
USAGE LICENSE
================================================================================
Neither the University of Minnesota nor any of the researchers
involved can guarantee the correctness of the data, its suitability
for any particular purpose, or the validity of results based on the
use of the data set. The data set may be used for any research
purposes under the following conditions:
* The user may not state or imply any endorsement from the
University of Minnesota or the GroupLens Research Group.
* The user must acknowledge the use of the data set in
publications resulting from the use of the data set
(see below for citation information).
* The user may not redistribute the data without separate
permission.
* The user may not use this information for any commercial or
revenue-bearing purposes without first obtaining permission
from a faculty member of the GroupLens Research Project at the
University of Minnesota.
If you have any further questions or comments, please contact GroupLens
<grouplens-info@cs.umn.edu>.
CITATION
================================================================================
To acknowledge use of the dataset in publications, please cite the following
paper:
F. Maxwell Harper and Joseph A. Konstan. 2015. The MovieLens Datasets: History
and Context. ACM Transactions on Interactive Intelligent Systems (TiiS) 5, 4,
Article 19 (December 2015), 19 pages. DOI=http://dx.doi.org/10.1145/2827872
ACKNOWLEDGEMENTS
================================================================================
Thanks to Shyong Lam and Jon Herlocker for cleaning up and generating the data
set.
FURTHER INFORMATION ABOUT THE GROUPLENS RESEARCH PROJECT
================================================================================
The GroupLens Research Project is a research group in the Department of
Computer Science and Engineering at the University of Minnesota. Members of
the GroupLens Research Project are involved in many research projects related
to the fields of information filtering, collaborative filtering, and
recommender systems. The project is lead by professors John Riedl and Joseph
Konstan. The project began to explore automated collaborative filtering in
1992, but is most well known for its world wide trial of an automated
collaborative filtering system for Usenet news in 1996. Since then the project
has expanded its scope to research overall information filtering solutions,
integrating in content-based methods as well as improving current collaborative
filtering technology.
Further information on the GroupLens Research project, including research
publications, can be found at the following web site:
http://www.grouplens.org/
GroupLens Research currently operates a movie recommender based on
collaborative filtering:
http://www.movielens.org/
RATINGS FILE DESCRIPTION
================================================================================
All ratings are contained in the file "ratings.dat" and are in the
following format:
UserID::MovieID::Rating::Timestamp
- UserIDs range between 1 and 6040
- MovieIDs range between 1 and 3952
- Ratings are made on a 5-star scale (whole-star ratings only)
- Timestamp is represented in seconds since the epoch as returned by time(2)
- Each user has at least 20 ratings
USERS FILE DESCRIPTION
================================================================================
User information is in the file "users.dat" and is in the following
format:
UserID::Gender::Age::Occupation::Zip-code
All demographic information is provided voluntarily by the users and is
not checked for accuracy. Only users who have provided some demographic
information are included in this data set.
- Gender is denoted by a "M" for male and "F" for female
- Age is chosen from the following ranges:
* 1: "Under 18"
* 18: "18-24"
* 25: "25-34"
* 35: "35-44"
* 45: "45-49"
* 50: "50-55"
* 56: "56+"
- Occupation is chosen from the following choices:
* 0: "other" or not specified
* 1: "academic/educator"
* 2: "artist"
* 3: "clerical/admin"
* 4: "college/grad student"
* 5: "customer service"
* 6: "doctor/health care"
* 7: "executive/managerial"
* 8: "farmer"
* 9: "homemaker"
* 10: "K-12 student"
* 11: "lawyer"
* 12: "programmer"
* 13: "retired"
* 14: "sales/marketing"
* 15: "scientist"
* 16: "self-employed"
* 17: "technician/engineer"
* 18: "tradesman/craftsman"
* 19: "unemployed"
* 20: "writer"
MOVIES FILE DESCRIPTION
================================================================================
Movie information is in the file "movies.dat" and is in the following
format:
MovieID::Title::Genres
- Titles are identical to titles provided by the IMDB (including
year of release)
- Genres are pipe-separated and are selected from the following genres:
* Action
* Adventure
* Animation
* Children's
* Comedy
* Crime
* Documentary
* Drama
* Fantasy
* Film-Noir
* Horror
* Musical
* Mystery
* Romance
* Sci-Fi
* Thriller
* War
* Western
- Some MovieIDs do not correspond to a movie due to accidental duplicate
entries and/or test entries
- Movies are mostly entered by hand, so errors and inconsistencies may exist
-55
View File
@@ -1,55 +0,0 @@
# /usr/bin/Python2
#coding=utf8
import random
def loadfile(path):
with open(path,"r") as f:
for i,line in enumerate(f):
yield line
def read_users(path = "users.dat"):
"""
返回user的list
Args:
path : 文件路径
Return:
user的list形式,格式为userId,性别年龄职业
"""
users = []
for line in loadfile(path):
users.append(line.split("::")[:-1])
return users
def read_movies(path = "movies.dat"):
"""
返回movie的list
Args:
path : 文件路径
Return:
movie的list形式,格式为movieId,电影名类型
"""
movies = []
for line in loadfile(path):
movies.append(line.split("::"))
return movies
def read_ratings(path,pivot = 0.8):
"""
Return:
点击的字典形式格式为{userId : { movieId : rating}}
"""
train_set = dict()
test_set = dict()
for line in loadfile(path):
user,movie,rating,_ = line.split("::")
if random.random() < pivot:
train_set.setdefault(user,{})
train_set[user][movie] = int(rating)
else:
test_set.setdefault(user,{})
test_set[user][movie] = int(rating)
return train_set,test_set
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-201
View File
@@ -1,201 +0,0 @@
user_id,movie_id,rating,timestamp,title,genres,gender,age,occupation,zip
3299,235,4,968035345,Ed Wood (1994),Comedy|Drama,F,25,4,19119
3630,3256,3,966536874,Patriot Games (1992),Action|Thriller,M,18,4,77005
517,105,4,976203603,"Bridges of Madison County, The (1995)",Drama|Romance,F,25,14,55408
785,2115,3,975430389,Indiana Jones and the Temple of Doom (1984),Action|Adventure,M,18,19,29307
5848,909,5,957782527,"Apartment, The (1960)",Comedy|Drama,M,50,20,20009
2996,2799,1,972769867,Problem Child 2 (1991),Comedy,M,18,0,63011
3087,837,5,969738869,Matilda (1996),Children's|Comedy,F,1,1,90802
872,3092,5,975273310,Chushingura (1962),Drama,M,50,1,20815
4094,529,5,966223349,Searching for Bobby Fischer (1993),Drama,M,25,17,49017
1868,3508,3,974694703,"Outlaw Josey Wales, The (1976)",Western,M,50,11,92346
2913,1387,5,971769808,Jaws (1975),Action|Horror,F,35,20,98119
380,3481,5,976316283,High Fidelity (2000),Comedy,M,25,2,92024
2073,1784,5,974759084,As Good As It Gets (1997),Comedy|Drama,F,18,4,13148
80,2059,3,977788576,"Parent Trap, The (1998)",Children's|Drama,M,56,1,49327
3679,2557,1,976298130,I Stand Alone (Seul contre tous) (1998),Drama,M,25,4,68108
2077,788,3,980013556,"Nutty Professor, The (1996)",Comedy|Fantasy|Romance|Sci-Fi,M,18,0,55112
6036,2085,4,956716684,101 Dalmatians (1961),Animation|Children's,F,25,15,32603
3675,532,3,966363610,Serial Mom (1994),Comedy|Crime|Horror,M,35,7,06680
4566,3683,4,964489599,Blood Simple (1984),Drama|Film-Noir,M,35,17,19473
2996,3763,3,972413564,F/X (1986),Action|Crime|Thriller,M,18,0,63011
5831,2458,1,957898337,Armed and Dangerous (1986),Comedy|Crime,M,25,1,92120
1869,1244,2,974695654,Manhattan (1979),Comedy|Drama|Romance,M,45,14,95148
5389,2657,3,960328279,"Rocky Horror Picture Show, The (1975)",Comedy|Horror|Musical|Sci-Fi,M,45,7,01905
1391,1535,3,974851275,Love! Valour! Compassion! (1997),Drama|Romance,M,35,15,20723
3123,2407,3,969324381,Cocoon (1985),Comedy|Sci-Fi,M,25,2,90401
4694,159,3,963602574,Clockers (1995),Drama,M,56,7,40505
1680,1988,3,974709821,Hello Mary Lou: Prom Night II (1987),Horror,M,25,20,95380
2002,1945,4,974677761,On the Waterfront (1954),Crime|Drama,F,56,13,02136-1522
3430,2690,4,979949863,"Ideal Husband, An (1999)",Comedy,F,45,1,15208
425,471,4,976284972,"Hudsucker Proxy, The (1994)",Comedy|Romance,M,25,12,55303
1841,2289,2,974699637,"Player, The (1992)",Comedy|Drama,M,18,0,95037
4964,2348,4,962619587,Sid and Nancy (1986),Drama,M,35,0,94110
4520,2160,4,964883648,Rosemary's Baby (1968),Horror|Thriller,M,25,4,45810
1265,2396,4,1011716691,Shakespeare in Love (1998),Comedy|Romance,F,18,20,49321
2496,1278,5,974435324,Young Frankenstein (1974),Comedy|Horror,M,50,1,37932
5511,2174,4,959787754,Beetlejuice (1988),Comedy|Fantasy,M,45,1,92407
621,833,1,975799925,High School High (1996),Comedy,M,18,4,93560
3045,2762,5,970189524,"Sixth Sense, The (1999)",Thriller,M,45,1,90631
2050,2546,4,975522689,"Deep End of the Ocean, The (1999)",Drama,F,35,3,99504
613,32,4,975812238,Twelve Monkeys (1995),Drama|Sci-Fi,M,35,20,10562
366,1077,5,978471241,Sleeper (1973),Comedy|Sci-Fi,M,50,15,55126
5108,367,4,962338215,"Mask, The (1994)",Comedy|Crime|Fantasy,F,25,9,93940
4502,1960,4,965094644,"Last Emperor, The (1987)",Drama|War,M,50,0,01379
5512,1801,5,959713840,"Man in the Iron Mask, The (1998)",Action|Drama|Romance,F,25,17,01701
1861,2642,2,974699627,Superman III (1983),Action|Adventure|Sci-Fi,M,50,16,92129
1667,1240,4,975016698,"Terminator, The (1984)",Action|Sci-Fi|Thriller,M,50,16,98516
753,434,3,975460449,Cliffhanger (1993),Action|Adventure|Crime,M,1,10,42754
1836,2736,5,974826228,Brighton Beach Memoirs (1986),Comedy,M,25,0,10016
5626,474,5,959052158,In the Line of Fire (1993),Action|Thriller,M,56,16,32043
1601,1396,4,978576948,Sneakers (1992),Crime|Drama|Sci-Fi,M,25,12,83001
4725,1100,4,963369546,Days of Thunder (1990),Action|Romance,M,35,5,96707-1321
2837,2396,5,972571456,Shakespeare in Love (1998),Comedy|Romance,M,18,0,49506
1776,3882,4,1001558470,Bring It On (2000),Comedy,M,25,0,45801
2820,457,2,972662398,"Fugitive, The (1993)",Action|Thriller,F,35,0,02138
1834,2288,3,1038179198,"Thing, The (1982)",Action|Horror|Sci-Fi|Thriller,M,35,5,10990
284,2716,4,976570902,Ghostbusters (1984),Comedy|Horror,M,25,12,91910
2744,588,1,973215985,Aladdin (1992),Animation|Children's|Comedy|Musical,M,18,17,53818
881,4,2,975264028,Waiting to Exhale (1995),Comedy|Drama,M,18,14,76401
2211,916,3,974607067,Roman Holiday (1953),Comedy|Romance,M,45,6,01950
2271,2671,4,1007158806,Notting Hill (1999),Comedy|Romance,M,50,14,13210
1010,2953,1,975222613,Home Alone 2: Lost in New York (1992),Children's|Comedy,M,25,0,10310
1589,2594,4,974735454,Open Your Eyes (Abre los ojos) (1997),Drama|Romance|Sci-Fi,M,25,0,95136
1724,597,5,976441106,Pretty Woman (1990),Comedy|Romance,M,18,4,00961
2590,2097,3,973840056,Something Wicked This Way Comes (1983),Children's|Horror,M,18,4,94044
1717,1352,3,1009256707,Albino Alligator (1996),Crime|Thriller,F,50,6,30307
1391,3160,2,974850796,Magnolia (1999),Drama,M,35,15,20723
1941,1263,3,974954220,"Deer Hunter, The (1978)",Drama|War,M,35,17,94550
3526,2867,4,966906064,Fright Night (1985),Comedy|Horror,M,35,2,62263-3004
5767,198,3,958192148,Strange Days (1995),Action|Crime|Sci-Fi,M,25,2,75287
5355,590,4,960596927,Dances with Wolves (1990),Adventure|Drama|Western,M,56,0,78232
5788,156,4,958108785,Blue in the Face (1995),Comedy,M,25,0,92646
1078,1307,4,974938851,When Harry Met Sally... (1989),Comedy|Romance,F,45,9,95661
3808,61,2,965973222,Eye for an Eye (1996),Drama|Thriller,M,25,7,60010
974,3897,4,975106398,Almost Famous (2000),Comedy|Drama,M,35,19,94930
5153,1290,4,961972292,Some Kind of Wonderful (1987),Drama|Romance,M,25,7,60046
5732,2115,3,958434069,Indiana Jones and the Temple of Doom (1984),Action|Adventure,F,25,11,02111
4627,2478,3,964110136,Three Amigos! (1986),Comedy|Western,M,56,1,45224
1884,1831,2,975648062,Lost in Space (1998),Action|Sci-Fi|Thriller,M,45,20,93108
4284,517,4,965277546,Rising Sun (1993),Action|Drama|Mystery,M,50,7,40601
1383,468,2,975979732,"Englishman Who Went Up a Hill, But Came Down a Mountain, The (1995)",Comedy|Romance,F,25,7,19806
2230,2873,3,974599097,Lulu on the Bridge (1998),Drama|Mystery|Romance,F,45,1,60302
2533,2266,4,974055724,"Butcher's Wife, The (1991)",Comedy|Romance,F,25,3,49423
6040,3224,5,956716750,Woman in the Dunes (Suna no onna) (1964),Drama,M,25,6,11106
4384,2918,5,965171739,Ferris Bueller's Day Off (1986),Comedy,M,25,0,43623
5156,3688,3,961946487,Porky's (1981),Comedy,M,18,14,10024
615,296,3,975805801,Pulp Fiction (1994),Crime|Drama,M,50,17,32951
2753,3045,3,973198964,Peter's Friends (1992),Comedy|Drama,F,50,20,27516
2438,1125,5,974259943,"Return of the Pink Panther, The (1974)",Comedy,M,35,1,22903
5746,1242,4,958354460,Glory (1989),Action|Drama|War,M,18,15,94061
5157,3462,5,961944604,Modern Times (1936),Comedy,M,35,1,74012
3402,1252,5,967433929,Chinatown (1974),Film-Noir|Mystery|Thriller,M,35,20,30306
76,593,5,977847255,"Silence of the Lambs, The (1991)",Drama|Thriller,M,35,7,55413
2067,1019,3,974658834,"20,000 Leagues Under the Sea (1954)",Adventure|Children's|Fantasy|Sci-Fi,M,50,16,06430
2181,2020,3,979353437,Dangerous Liaisons (1988),Drama|Romance,M,25,0,45245
3947,593,5,965691680,"Silence of the Lambs, The (1991)",Drama|Thriller,M,25,0,90019
546,218,4,976069421,Boys on the Side (1995),Comedy|Drama,F,25,0,37211
1246,3030,5,1032056405,Yojimbo (1961),Comedy|Drama|Western,M,18,4,98225
4214,3186,5,965319143,"Girl, Interrupted (1999)",Drama,F,25,0,20121
2841,680,3,982805796,Alphaville (1965),Sci-Fi,M,50,12,98056
4205,3175,4,965321085,Galaxy Quest (1999),Adventure|Comedy|Sci-Fi,F,25,15,87801
1120,1097,4,974911354,E.T. the Extra-Terrestrial (1982),Children's|Drama|Fantasy|Sci-Fi,M,18,4,95616
5371,3194,3,960481000,"Way We Were, The (1973)",Drama,M,25,11,55408
2695,1278,5,973310827,Young Frankenstein (1974),Comedy|Horror,M,35,11,46033
3312,520,2,976673070,Robin Hood: Men in Tights (1993),Comedy,F,18,4,90039
5039,1792,1,962513044,U.S. Marshalls (1998),Action|Thriller,F,35,4,97068
4655,2146,3,963903103,St. Elmo's Fire (1985),Drama|Romance,F,25,1,92037
3558,1580,5,966802528,Men in Black (1997),Action|Adventure|Comedy|Sci-Fi,M,18,17,66044
506,3354,1,976208080,Mission to Mars (2000),Sci-Fi,M,25,16,55103-1006
3568,1230,3,966745594,Annie Hall (1977),Comedy|Romance,M,25,0,98503
2943,1197,5,971319983,"Princess Bride, The (1987)",Action|Adventure|Comedy|Romance,M,35,12,95864
716,737,3,982881364,Barb Wire (1996),Action|Sci-Fi,M,18,4,98188
5964,454,3,956999469,"Firm, The (1993)",Drama|Thriller,M,18,5,97202
4802,1208,4,996034747,Apocalypse Now (1979),Drama|War,M,56,1,40601
1106,3624,4,974920622,Shanghai Noon (2000),Action,M,18,4,90241
3410,2565,3,967419652,"King and I, The (1956)",Musical,M,35,1,20653
1273,3095,5,974814536,"Grapes of Wrath, The (1940)",Drama,M,35,2,19123
1706,1916,4,974709448,Buffalo 66 (1998),Action|Comedy|Drama,M,25,20,19134
4889,590,5,962909224,Dances with Wolves (1990),Adventure|Drama|Western,M,18,4,63108
4966,2100,3,962609782,Splash (1984),Comedy|Fantasy|Romance,M,50,14,55407
4238,1884,4,965343416,Fear and Loathing in Las Vegas (1998),Comedy|Drama,M,35,16,44691
5365,1042,3,960502974,That Thing You Do! (1996),Comedy,M,18,12,90250
415,1302,3,977501743,Field of Dreams (1989),Drama,F,35,0,55406
4658,1009,5,963966553,Escape to Witch Mountain (1975),Adventure|Children's|Fantasy,M,25,4,99163
854,345,3,975357801,"Adventures of Priscilla, Queen of the Desert, The (1994)",Comedy|Drama,F,25,16,44092
2857,436,4,972509362,Color of Night (1994),Drama|Thriller,M,25,0,10469
1835,1330,4,974878241,April Fool's Day (1986),Comedy|Horror,M,25,19,11501
1321,2240,3,974778494,My Bodyguard (1980),Drama,F,25,14,34639
3274,3698,2,979767184,"Running Man, The (1987)",Action|Adventure|Sci-Fi,M,25,20,02062
5893,2144,3,957470619,Sixteen Candles (1984),Comedy,M,25,7,02139
3436,2724,3,967328026,Runaway Bride (1999),Comedy|Romance,M,35,0,98503
3315,2918,5,967942960,Ferris Bueller's Day Off (1986),Comedy,M,25,12,78731
5056,2700,5,962488280,"South Park: Bigger, Longer and Uncut (1999)",Animation|Comedy,M,45,1,16673
5256,208,2,961271616,Waterworld (1995),Action|Adventure,M,25,16,30269
4290,1193,4,965274348,One Flew Over the Cuckoo's Nest (1975),Drama,M,25,17,98661
1010,1379,2,975220259,Young Guns II (1990),Action|Comedy|Western,M,25,0,10310
829,904,4,975368038,Rear Window (1954),Mystery|Thriller,M,1,19,53711
5953,480,4,957143581,Jurassic Park (1993),Action|Adventure|Sci-Fi,M,1,10,21030
4732,3016,4,963332896,Creepshow (1982),Horror,M,25,14,24450
4815,3181,5,972240802,Titus (1999),Drama,F,50,18,04849
1164,1894,2,1004486985,Six Days Seven Nights (1998),Adventure|Comedy|Romance,F,25,19,90020
4373,3167,5,965180829,Carnal Knowledge (1971),Drama,M,50,12,32920
5293,1374,4,961055887,Star Trek: The Wrath of Khan (1982),Action|Adventure|Sci-Fi,M,25,12,95030
1579,3101,4,981272057,Fatal Attraction (1987),Thriller,M,25,0,60201
2600,3147,5,973804787,"Green Mile, The (1999)",Drama|Thriller,M,25,14,19312
1283,480,4,974793389,Jurassic Park (1993),Action|Adventure|Sci-Fi,F,18,1,94607
3242,3062,5,968341175,"Longest Day, The (1962)",Action|Drama|War,M,50,13,94089
3618,3374,3,967116272,Daughters of the Dust (1992),Drama,M,56,17,22657
3762,1337,4,966434517,"Body Snatcher, The (1945)",Horror,M,50,6,11746
1015,1184,3,975018699,Mediterraneo (1991),Comedy|War,M,35,3,11220
4645,2344,5,963976808,Runaway Train (1985),Action|Adventure|Drama|Thriller,F,50,6,48094
3184,1397,4,968709039,Bastard Out of Carolina (1996),Drama,F,25,18,21214
1285,1794,4,974833328,Love and Death on Long Island (1997),Comedy|Drama,M,35,4,98125
5521,3354,2,959833154,Mission to Mars (2000),Sci-Fi,F,25,6,02118
1472,2278,3,974767792,Ronin (1998),Action|Crime|Thriller,M,25,7,90248
5630,21,4,980085414,Get Shorty (1995),Action|Comedy|Drama,M,35,17,06854
3710,3033,5,966272980,Spaceballs (1987),Comedy|Sci-Fi,M,1,10,02818
192,761,1,977028390,"Phantom, The (1996)",Adventure,M,18,1,10977
1285,1198,5,974880310,Raiders of the Lost Ark (1981),Action|Adventure,M,35,4,98125
2174,1046,4,974613044,Beautiful Thing (1996),Drama|Romance,M,50,12,87505
635,1270,4,975768106,Back to the Future (1985),Comedy|Sci-Fi,M,56,17,33785
910,412,5,975207742,"Age of Innocence, The (1993)",Drama,F,50,0,98226
1752,2021,4,975729332,Dune (1984),Fantasy|Sci-Fi,M,25,3,96813
1408,198,4,974762924,Strange Days (1995),Action|Crime|Sci-Fi,M,25,0,90046
4738,1242,4,963279051,Glory (1989),Action|Drama|War,M,56,1,23608
1503,1971,2,974748897,"Nightmare on Elm Street 4: The Dream Master, A (1988)",Horror,M,25,12,92688
3053,1296,3,970601837,"Room with a View, A (1986)",Drama|Romance,F,25,3,55102
3471,3614,2,973297828,Honeymoon in Vegas (1992),Comedy|Romance,M,18,4,80302
678,1972,3,988638700,"Nightmare on Elm Street 5: The Dream Child, A (1989)",Horror,M,25,0,34952
3483,2561,3,986327282,True Crime (1999),Crime|Thriller,F,45,7,30260
3910,3108,5,965756244,"Fisher King, The (1991)",Comedy|Drama|Romance,M,25,20,91505
182,1089,1,977085647,Reservoir Dogs (1992),Crime|Thriller,M,18,4,03052
1755,1653,3,1036917836,Gattaca (1997),Drama|Sci-Fi|Thriller,F,18,4,77005
3589,70,2,966658567,From Dusk Till Dawn (1996),Action|Comedy|Crime|Horror|Thriller,F,45,0,80010
471,3481,4,976222483,High Fidelity (2000),Comedy,M,35,7,08904
1141,813,2,974878678,Larger Than Life (1996),Comedy,F,25,3,84770
5227,1196,2,961476022,Star Wars: Episode V - The Empire Strikes Back (1980),Action|Adventure|Drama|Sci-Fi|War,M,18,10,64050
1303,2344,2,974837844,Runaway Train (1985),Action|Adventure|Drama|Thriller,M,25,19,94111
5080,3102,5,962412804,Jagged Edge (1985),Thriller,F,50,12,95472
2023,1012,4,1006290836,Old Yeller (1957),Children's|Drama,M,18,4,56001
3759,2151,5,966094413,"Gods Must Be Crazy II, The (1989)",Comedy,M,35,6,54751
1685,2664,2,974709721,Invasion of the Body Snatchers (1956),Horror|Sci-Fi,M,35,12,95833
4715,1221,4,963508830,"Godfather: Part II, The (1974)",Action|Crime|Drama,M,25,2,97205
1591,350,5,974742941,"Client, The (1994)",Drama|Mystery|Thriller,M,50,7,26501
4227,3635,3,965411938,"Spy Who Loved Me, The (1977)",Action,M,25,19,11414-2520
1908,36,5,974697744,Dead Man Walking (1995),Drama,M,56,13,95129
5365,1892,4,960503255,"Perfect Murder, A (1998)",Mystery|Thriller,M,18,12,90250
1579,2420,4,981272235,"Karate Kid, The (1984)",Drama,M,25,0,60201
1866,3948,5,974753321,Meet the Parents (2000),Comedy,M,25,7,94043
4238,3543,4,965415533,Diner (1982),Comedy|Drama,M,35,16,44691
3590,2000,5,966657892,Lethal Weapon (1987),Action|Comedy|Crime|Drama,F,18,15,02115
3401,3256,5,980115327,Patriot Games (1992),Action|Thriller,M,35,7,76109
3705,540,2,966287116,Sliver (1993),Thriller,M,45,7,30076
4973,1246,3,962607149,Dead Poets Society (1989),Drama,F,56,2,949702
4947,380,4,962651180,True Lies (1994),Action|Adventure|Comedy|Romance,M,35,17,90035
2346,1416,4,974413811,Evita (1996),Drama|Musical,F,1,10,48105
1427,3596,3,974840560,Screwed (2000),Comedy,M,25,12,21401
3868,1626,3,965855033,Fire Down Below (1997),Action|Drama|Thriller,M,18,12,73112
249,2369,3,976730191,Desperately Seeking Susan (1985),Comedy|Romance,F,18,14,48126
5720,349,4,958503395,Clear and Present Danger (1994),Action|Adventure|Thriller,M,25,0,60610
877,1485,3,975270899,Liar Liar (1997),Comedy,M,25,0,90631
Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

-25
View File
@@ -1,25 +0,0 @@
该项目主要是新闻推荐系统的后端及推荐服务相关的内容,这个项目将前端单独拿出来了。
代码规范,先用python规范就行
# TODO
项目目录结构待完善
## 前端展示逻辑:
1. 开机页(放一张和app大小相同的页面,上面显示几个字),此时只能点击我的进行登录,否则无法看到内部的具体内容
2. 登录页,用户名,密码,登录,注册等相关界面
输入用户名和密码,如果后端返回ok, 就跳转到推荐页,否则提示账号或者密码错误
3. 推荐和热门面显示的内容不需要变
4. 点击某一篇文章之后,向后端发送 user_id, news_id, action= { read, likes, collections }
## 后端数据相关
1. log日志
2. 用户画像数据及更新
3. 新闻画像数据及更新
运行新闻推荐后端服务
python server.py
-4
View File
@@ -1,4 +0,0 @@
# 目录介绍
该目录主要存储的是新闻推荐系统的所有配置参数及文件
-40
View File
@@ -1,40 +0,0 @@
# 数据库相关的配置文件
user_info_db_name = "userinfo" # 用户数据相关的数据库
register_user_table_name = "register_user" # 注册用户数据表
user_likes_table_name = "user_likes" # 用户喜欢数据表
user_collections_table_name = "user_collections" # 用户收藏数据表
user_read_table_name = "user_read" # 用户阅读数据表
exposure_table_name_prefix = "exposure" # 用户曝光数据表的前缀
# log数据,每天都会落一个盘,并由时间信息进行命名
loginfo_db_name = "loginfo" # log数据库
loginfo_table_name_prefix = "log" # log数据表的前缀
# 默认配置
mysql_username = "root"
mysql_passwd = "123456"
mysql_hostname = "localhost"
mysql_port = "3306"
# MongoDB
mongo_hostname = "127.0.0.1"
mongo_port = 27017
# Sina原始数据
sina_db_name= "SinaNews"
sina_collection_name_prefix= "news"
# 物料池db name
material_db_name = "NewsRecSys"
# 特征画像 集合名称
feature_protrail_collection_name = "FeatureProtrail"
redis_mongo_collection_name = "RedisProtrail"
user_protrail_collection_name = "UserProtrail"
# Redis
redis_hostname = "127.0.0.1"
redis_port = 6379
reclist_redis_db_num = 0
static_news_info_db_num = 1
dynamic_news_info_db_num = 2
user_exposure_db_num = 3
-746
View File
@@ -1,746 +0,0 @@
$
0
1
2
3
4
5
6
7
8
9
?
_
一些
一何
一切
一则
一方面
一旦
一来
一样
一般
一转眼
万一
上下
不仅
不但
不光
不单
不只
不外乎
不如
不妨
不尽
不尽然
不得
不怕
不惟
不成
不拘
不料
不是
不比
不然
不特
不独
不管
不至于
不若
不论
不过
不问
与其
与其说
与否
与此同时
且不说
且说
两者
个别
为了
为什么
为何
为止
为此
为着
乃至
乃至于
之一
之所以
之类
乌乎
也好
也罢
二来
于是
于是乎
云云
云尔
人们
人家
什么
什么样
介于
仍旧
从此
从而
他人
他们
以上
以为
以便
以免
以及
以故
以期
以来
以至
以至于
以致
任何
任凭
似的
但凡
但是
何以
何况
何处
何时
余外
作为
你们
使
使得
例如
依据
依照
便于
俺们
倘使
倘或
倘然
倘若
假使
假如
假若
傥然
先不先
光是
全体
全部
关于
其一
其中
其二
其他
其余
其它
其次
具体地说
具体说来
兼之
再其次
再则
再有
再者
再者说
再说
况且
几时
凡是
凭借
出于
出来
分别
则甚
别人
别处
别是
别的
别管
别说
前后
前此
前者
加之
加以
即令
即使
即便
即如
即或
即若
又及
及其
及至
反之
反而
反过来
反过来说
受到
另一方面
另外
另悉
只当
只怕
只是
只有
只消
只要
只限
叮咚
可以
可是
可见
各个
各位
各种
各自
同时
后者
向使
向着
否则
吧哒
呜呼
呵呵
呼哧
咱们
哈哈
哎呀
哎哟
哪个
哪些
哪儿
哪天
哪年
哪怕
哪样
哪边
哪里
哼唷
唯有
啪达
啷当
喔唷
嗡嗡
嘎登
嘿嘿
因为
因了
因此
因着
因而
固然
在下
在于
基于
处在
多么
多少
大家
她们
如上
如上所述
如下
如何
如其
如同
如是
如果
如此
如若
始而
孰料
孰知
宁可
宁愿
宁肯
它们
对于
对待
对方
对比
尔后
尔尔
尚且
就是
就是了
就是说
就算
就要
尽管
尽管如此
岂但
已矣
巴巴
并且
并非
庶乎
庶几
开外
开始
归齐
当地
当然
当着
彼时
彼此
得了
怎么
怎么办
怎么样
怎奈
怎样
总之
总的来看
总的来说
总的说来
总而言之
恰恰相反
惟其
慢说
我们
或则
或是
或曰
或者
截至
所以
所在
所幸
所有
才能
打从
抑或
按照
换句话说
换言之
据此
接着
故此
故而
旁人
无宁
无论
既往
既是
既然
时候
是以
是的
替代
有些
有关
有及
有时
有的
朝着
本人
本地
本着
本身
来着
来自
来说
极了
果然
果真
某个
某些
某某
根据
正值
正如
正巧
正是
此地
此处
此外
此时
此次
此间
毋宁
每当
比及
比如
比方
没奈何
沿
沿着
漫说
然则
然后
然而
照着
犹且
犹自
甚且
甚么
甚或
甚而
甚至
甚至于
用来
由于
由是
由此
由此可见
的确
的话
直到
相对而言
省得
眨眼
着呢
矣乎
矣哉
竟而
等到
等等
简言之
类如
紧接着
纵令
纵使
纵然
经过
结果
继之
继后
继而
综上所述
罢了
而且
而况
而后
而外
而已
而是
而言
能否
自个儿
自从
自各儿
自后
自家
自己
自打
自身
至于
至今
至若
般的
若夫
若是
若果
若非
莫不然
莫如
莫若
虽则
虽然
虽说
要不
要不是
要不然
要么
要是
譬喻
譬如
许多
设使
设或
设若
诚如
诚然
说来
诸位
诸如
谁人
谁料
谁知
贼死
赖以
起见
趁着
越是
较之
还是
还有
还要
这一来
这个
这么
这么些
这么样
这么点儿
这些
这会儿
这儿
这就是说
这时
这样
这次
这般
这边
这里
进而
连同
逐步
通过
遵循
遵照
那个
那么
那么些
那么样
那些
那会儿
那儿
那时
那样
那般
那边
那里
鄙人
鉴于
针对
除了
除外
除开
除此之外
除非
随后
随时
随着
难道说
非但
非徒
非特
非独
顺着
首先
@@ -1,19 +0,0 @@
from dao.mysql_server import MysqlServer
from dao.entity.logitem import LogItem
import time
class LogController():
def __init__(self) -> None:
self.log_info_sql_session = MysqlServer().get_loginfo_session()
def save_one_log(self,log):
try:
self.log_info_sql_session.add(log)
self.log_info_sql_session.commit()
except Exception as e:
print(str(e))
return False
return True
@@ -1,116 +0,0 @@
from dao.mysql_server import MysqlServer
from dao.entity.user_exposure import UserExposure
from dao.entity.register_user import RegisterUser
from dao.entity.user_likes import UserLikes
from dao.entity.user_read import UserRead
from dao.entity.user_collections import UserCollections
# 初始化数据表
user = UserLikes()
user = UserCollections()
user = UserExposure()
user = UserRead()
class UserAction():
def __init__(self) -> None:
self.user_exposure_sql_session = MysqlServer().get_user_exposure_session()
self.register_user_sql_session = MysqlServer().get_register_user_session()
self.user_like_sql_session = MysqlServer().get_user_like_session()
self.user_collection_sql_session = MysqlServer().get_user_collection_session()
self.user_read_sql_session = MysqlServer().get_user_read_session()
def user_is_exist(self, user, user_type):
"""
1 表示正确2 表示密码错误0 表示用户不存在
"""
if user_type == "login":
if self.register_user_sql_session.query(RegisterUser).filter(RegisterUser.username == user.username, \
RegisterUser.passwd == user.passwd).count() > 0:
return 1
elif self.register_user_sql_session.query(RegisterUser).filter(RegisterUser.username == user.username).count() > 0:
return 2
else:
return 0
else:
if self.register_user_sql_session.query(RegisterUser).filter(RegisterUser.username == user.username).count() > 0:
return 1
else:
return 0
def save_user(self,user):
try:
self.register_user_sql_session.add(user)
self.register_user_sql_session.commit()
# self.register_user_sql_session.close()
except Exception as e:
print(str(e))
return False
return True
def get_user_id_by_name(self,username):
try:
userid = self.register_user_sql_session.query(RegisterUser.userid).filter(RegisterUser.username == username).one()[0]
except Exception as e:
print(str(e))
return None
return userid
def get_likes_counts_by_user(self,user_id,news_id):
return self.user_like_sql_session.query(UserLikes).filter(UserLikes.userid == user_id, UserLikes.newid == news_id).count()
def get_coll_counts_by_user(self,user_id,news_id):
return self.user_collection_sql_session.query(UserCollections).filter(UserCollections.userid == user_id,
UserCollections.newid == news_id).count()
def del_likes_by_user(self,user_id,news_id):
try:
print(user_id,news_id)
delItems = self.user_like_sql_session.query(UserLikes).filter(UserLikes.userid == user_id, UserLikes.newid == news_id)
# print(delItems.count())
if delItems.count() > 0:
self.user_like_sql_session.query(UserLikes).filter(UserLikes.userid == user_id, UserLikes.newid == news_id).delete()
self.user_like_sql_session.commit()
except Exception as e:
print(str(e))
return False
return True
def del_coll_by_user(self,user_id,news_id):
try:
delItems = self.user_collection_sql_session.query(UserCollections).filter(UserCollections.userid == user_id,
UserCollections.newid == news_id)
if delItems.count() > 0:
self.user_collection_sql_session.query(UserCollections).filter(UserCollections.userid == user_id,
UserCollections.newid == news_id).delete()
self.user_collection_sql_session.commit()
except Exception as e:
print(str(e))
return False
return True
def save_one_action(self,action):
if isinstance(action, UserLikes):
try:
self.user_like_sql_session.add(action)
self.user_like_sql_session.commit()
except Exception as e:
print(str(e))
return False
elif isinstance(action, UserCollections):
try:
self.user_collection_sql_session.add(action)
self.user_collection_sql_session.commit()
except Exception as e:
print(str(e))
return False
elif isinstance(action, UserRead):
try:
self.user_read_sql_session.add(action)
self.user_read_sql_session.commit()
except Exception as e:
print(str(e))
return False
return True
-16
View File
@@ -1,16 +0,0 @@
DAO层主要是做数据持久层的工作,主要与数据库进行交互。DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,
接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类。DAO 层的数据源和数据库连接的参数数都是在配置文件中进行配置的。
TODO: 设置开机自启动
启动mongodb(服务器断电之后就会断开链接):
sudo ./mongod --dbpath=/usr/local/mongodb/data/ --fork --logpath=/usr/local/mongodb/log
TODO: 设置开机自启动
启动redis
redis-server --daemonize yes --port 6378 --requirepass 123456
redis-cli --raw
# TODO
MySQL 使用SQLAlchemy 插入中文会报错
@@ -1,38 +0,0 @@
import sys
sys.path.append("../../")
import time
from sqlalchemy import Column, String, Integer,DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql import func
from dao.mysql_server import MysqlServer
from conf.dao_config import loginfo_db_name, loginfo_table_name_prefix
# 定义基类
Base = declarative_base()
# 定义映射关系
class LogItem(Base):
"""log日志数据
"""
postfix = time.strftime("%Y_%m_%d", time.localtime())
# 每天都会创建一个新的表,带有时间信息
__tablename__ = '{}_{}'.format(loginfo_table_name_prefix, postfix)
index = Column(Integer(), primary_key=True)
userid = Column(String(30))
newsid = Column(String(100))
# 阅读、点赞、收藏
actiontype = Column(String(20))
actiontime = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_loginfo_engine()
Base.metadata.create_all(engine)
def new(self,userid,newsid,actiontype):
self.userid = userid
self.newsid = newsid
self.actiontype = actiontype
@@ -1,25 +0,0 @@
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.sqltypes import BigInteger
from conf.dao_config import register_user_table_name
from dao.mysql_server import MysqlServer
Base = declarative_base()
class RegisterUser(Base):
"""用户注册数据
"""
__tablename__ = register_user_table_name
index = Column(Integer(), primary_key=True)
userid = Column(BigInteger())
username = Column(String(30))
passwd = Column(String(500))
gender = Column(String(30))
age = Column(String(5))
city = Column(String(10))
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_register_user_engine()
Base.metadata.create_all(engine)
@@ -1,30 +0,0 @@
from sqlalchemy import Column, String, Integer, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.sqltypes import BigInteger, DateTime
from conf.dao_config import user_collections_table_name
from dao.mysql_server import MysqlServer
from sqlalchemy.sql import func
Base = declarative_base()
class UserCollections(Base):
"""用户收藏新闻数据
"""
__tablename__ = user_collections_table_name
index = Column(Integer(), primary_key=True,autoincrement=True)
userid = Column(BigInteger())
username = Column(String(30))
newid = Column(String(100))
curtime = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_user_collection_engine()
Base.metadata.create_all(engine)
def new(self,userid,username,newid):
self.userid = userid
self.username = username
self.newid = newid
# self.curtime = curtime
@@ -1,35 +0,0 @@
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.sqltypes import BigInteger,DateTime
from conf.dao_config import exposure_table_name_prefix
from dao.mysql_server import MysqlServer
from sqlalchemy.sql import func
import time
Base = declarative_base()
class UserExposure(Base):
"""用户曝光数据
"""
postfix = time.strftime("%Y_%m_%d", time.localtime())
# 每天都会创建一个新的表,带有时间信息
__tablename__ = '{}_{}'.format(exposure_table_name_prefix, postfix)
index = Column(Integer(), primary_key=True,autoincrement=True)
userid = Column(BigInteger())
newid = Column(String(600))
curtime = Column(String(50))
# curtime = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_user_exposure_engine()
Base.metadata.create_all(engine)
def new(self,userid,newid,curtime):
self.userid = userid
self.newid = newid
self.curtime = curtime
@@ -1,30 +0,0 @@
from sqlalchemy import Column, String, Integer, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.sqltypes import BigInteger
from conf.dao_config import user_likes_table_name
from dao.mysql_server import MysqlServer
from sqlalchemy.sql import func
Base = declarative_base()
class UserLikes(Base):
"""用户喜欢新闻数据
"""
__tablename__ = user_likes_table_name
index = Column(Integer(), primary_key=True,autoincrement=True)
userid = Column(BigInteger())
username = Column(String(30))
newid = Column(String(100))
curtime = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_user_like_engine()
Base.metadata.create_all(engine)
def new(self,userid,username,newid):
self.userid = userid
self.username = username
self.newid = newid
# self.curtime = curtime
@@ -1,28 +0,0 @@
from sqlalchemy import Column, String, Integer, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.sqltypes import BigInteger, DateTime
from conf.dao_config import user_read_table_name
from dao.mysql_server import MysqlServer
from sqlalchemy.sql import func
Base = declarative_base()
class UserRead(Base):
"""用户阅读新闻数据
"""
__tablename__ = user_read_table_name
index = Column(Integer(), primary_key=True, autoincrement=True)
userid = Column(BigInteger())
newid = Column(String(100))
curtime = Column(DateTime(timezone=True), server_default=func.now())
def __init__(self):
# 与数据库绑定映射关系
engine = MysqlServer().get_user_read_engine()
Base.metadata.create_all(engine)
def new(self, userid, newid, actiontime):
self.userid = userid
self.newid = newid
self.curtime = str(actiontime)
-54
View File
@@ -1,54 +0,0 @@
import sys
import datetime
sys.path.append("../")
import pymongo
from conf.dao_config import mongo_hostname, mongo_port
from conf.dao_config import sina_db_name, sina_collection_name_prefix
from conf.dao_config import material_db_name, feature_protrail_collection_name
from conf.dao_config import redis_mongo_collection_name
from conf.dao_config import user_protrail_collection_name
class MongoServer(object):
def __init__(self, _mongo_hostname=mongo_hostname, _mongo_port=mongo_port, _sina_db_name=sina_db_name,
_sina_collection_name_prefix=sina_collection_name_prefix, _material_db_name=material_db_name,
_feature_protrail_collection_name=feature_protrail_collection_name,
_redis_mongo_collection_name=redis_mongo_collection_name,
_user_protrail_collection_name=user_protrail_collection_name):
self._hostname = _mongo_hostname
self._port = _mongo_port
self._sina_db_name = _sina_db_name
self._sina_collection_name_prefix = _sina_collection_name_prefix
self._material_db_name = _material_db_name
self._feature_protrail_collection_name = _feature_protrail_collection_name
self._redis_mongo_collection_name = _redis_mongo_collection_name
self._user_protrail_collection_name = user_protrail_collection_name
self._mongo_client = self._mongodb()
def _mongodb(self):
"""连接mongo数据库,并返回数据库
"""
client = pymongo.MongoClient(self._hostname, self._port)
return client
def get_feature_protrail_collection(self):
"""特征画像集合
"""
return self._mongo_client[self._material_db_name][self._feature_protrail_collection_name]
def get_sina_news_collection(self):
"""原始新闻画像集合, 新闻爬取数据collection会以当天的时间命名
"""
sina_collection_name = self._sina_collection_name_prefix + "_" + \
"".join(str(datetime.date.today()).split('-'))
return self._mongo_client[self._sina_db_name][sina_collection_name]
def get_redis_mongo_collection(self):
"""redis中的mongo备份数据集合
"""
return self._mongo_client[self._material_db_name][self._redis_mongo_collection_name]
def get_user_protrail_collection(self):
"""用户画像的数据集合
"""
return self._mongo_client[self._material_db_name][self._user_protrail_collection_name]
-102
View File
@@ -1,102 +0,0 @@
import sys
sys.path.append("../")
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from conf.dao_config import loginfo_db_name, user_info_db_name
class MysqlServer(object):
def __init__(self, username="root", passwd="123456", hostname="localhost", port="3306",
user_info_db_name=user_info_db_name, loginfo_db_name=loginfo_db_name):
self.username = username
self.passwd = passwd
self.hostname = hostname
self.port = port
self.user_info_db_name = user_info_db_name
self.loginfo_db_name = loginfo_db_name
def session(self, db_name):
"""链接数据库,绑定映射关系
"""
# 创建引擎
engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format(
self.username, self.passwd, self.hostname, self.port, db_name
), encoding="utf-8", echo=False)
# 创建会话
session = sessionmaker(bind=engine)
# 返回engine 和 session, 前者用来绑定本地数据,后者用来本地操作数据库
return engine, session()
def get_register_user_session(self):
"""获取注册用户session
"""
_, sess = self.session(self.user_info_db_name)
return sess
def get_loginfo_session(self):
"""获取log日志的session
"""
_, sess = self.session(self.loginfo_db_name)
return sess
def get_user_like_session(self):
"""获取用户喜欢新闻的session
"""
_, sess = self.session(self.user_info_db_name)
return sess
def get_user_collection_session(self):
"""获取用户收藏新闻的session
"""
_, sess = self.session(self.user_info_db_name)
return sess
def get_user_exposure_session(self):
"""获取用户曝光的session
"""
_, sess = self.session(self.user_info_db_name)
return sess
def get_user_read_session(self):
"""获取用户阅读的session
"""
_, sess = self.session(self.user_info_db_name)
return sess
def get_register_user_engine(self):
"""
"""
engine, _ = self.session(self.user_info_db_name)
return engine
def get_loginfo_engine(self):
"""
"""
engine, _ = self.session(self.loginfo_db_name)
return engine
def get_user_like_engine(self):
"""获取用户喜欢新闻的engine
"""
engine, _ = self.session(self.user_info_db_name)
return engine
def get_user_collection_engine(self):
"""获取用户收藏新闻的engine
"""
engine, _ = self.session(self.user_info_db_name)
return engine
def get_user_read_engine(self):
"""获取用户阅读新闻的engine
"""
engine, _ = self.session(self.user_info_db_name)
return engine
def get_user_exposure_engine(self):
"""获取用户曝光的engine
"""
engine, _ = self.session(self.user_info_db_name)
return engine
-42
View File
@@ -1,42 +0,0 @@
import sys
sys.path.append("../")
import redis
from conf.dao_config import redis_hostname, redis_port, static_news_info_db_num, dynamic_news_info_db_num, reclist_redis_db_num
from conf.dao_config import user_exposure_db_num
class RedisServer(object):
def __init__(self, _redis_hostname=redis_hostname, _port=redis_port, _static_news_info_db_num=static_news_info_db_num,
_dynamic_news_info_db_num = dynamic_news_info_db_num, _reclist_redis_db_num=reclist_redis_db_num,
_user_exposure_db_num=user_exposure_db_num):
self.hostname = _redis_hostname
self.port = _port
self.static_news_info_db_num = _static_news_info_db_num
self.dynamic_news_info_db_num = _dynamic_news_info_db_num
self.reclist_redis_db_num = _reclist_redis_db_num
self.user_exposure_db_num = _user_exposure_db_num
def _redis_db(self, db_num=0):
res_db = redis.StrictRedis(host=self.hostname, port=self.port, db=db_num, decode_responses=True)
return res_db
def get_static_news_info_redis(self):
"""获取静态新闻信息数据库
"""
return self._redis_db(self.static_news_info_db_num)
def get_dynamic_news_info_redis(self):
"""获取动态新闻信息数据库
"""
return self._redis_db(self.dynamic_news_info_db_num)
def get_reclist_redis(self):
"""用户推荐列表redis数据库
"""
return self._redis_db(self.reclist_redis_db_num)
def get_exposure_redis(self):
"""用户曝光列表redis数据库
"""
return self._redis_db(self.user_exposure_db_num)
@@ -1,10 +0,0 @@
2021-12-04-00-10-21
run update_new_items success.
update_dynamic_feature_protrail success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
process_material success.
process_user.py success.
news detail info are saved in redis db.
update_redis success.
@@ -1,151 +0,0 @@
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
c1ea3624-7e16-41e3-91ca-5f2237c90016
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
c1ea3624-7e16-41e3-91ca-5f2237c90016
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
c1ea3624-7e16-41e3-91ca-5f2237c90016
d04ec960-fb54-44c4-93d8-27aee82a14a5
9eb67338-c4dd-4fab-b9f6-dd3d1f635078
8e744b2e-283e-4880-a35d-010e22f9b6d1
64a9131f-7bef-4026-af19-a437258b698b
5735d3ba-2ae7-44b0-87b1-a4212042dfd5
2ec76526-1734-4631-85d5-38b53c289724
2631c157-4bd1-469e-a69a-5cc40d56087e
0ed4e74d-5133-42fe-b9e9-c2f4a217aae6
e6feadd0-b0ca-4dad-9cf0-e51d59208741
de8f34ed-894f-454a-8af5-498cb5bfa416
d6bfbcb5-e2aa-43af-85c1-a53776ee55da
c83f6e63-3614-46d4-9c3b-56acad2c6053
ae39b902-7e4c-4392-972d-97d876e09802
a2b457b0-232f-4175-a618-08bf257bff13
8ce201a5-a59a-45e2-9c80-d1530213dd76
5f52e821-b2f1-4328-85f0-62bc8e0b36e7
328a2cc0-89bf-4626-b9ee-f3ee4c6873f8
30fb8ac3-7cc8-4666-9aac-c66cd4cd8e20
148e8b52-5407-4545-9c5a-1745236f8139
06ab8ab1-0170-4fca-8f7a-900a82872378
f9f4c879-005a-4d7a-827e-099666396bd4
c1ea3624-7e16-41e3-91ca-5f2237c90016
@@ -1,74 +0,0 @@
2021-11-30-19-03-01
scrapy crawl sina_spider --pages success.
run python monitor_news.py success.
run update_new_items success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
news detail info are saved in redis db.
material to mongo and redis success.
2021-11-30-19-08-01
scrapy crawl sina_spider --pages success.
run python monitor_news.py success.
run update_new_items success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
news detail info are saved in redis db.
material to mongo and redis success.
material to mongo and redis fail.
material to mongo and redis fail.
2021-12-02-09-13-04
scrapy crawl sina_spider --pages success.
the news nums of news_20211202 collection is 251 and less then 1000.
run python monitor_news.py success.
material to mongo and redis fail.
material to mongo and redis fail.
update_dynamic_feature_protrail success.
material to mongo and redis fail.
update_dynamic_feature_protrail success.
run update_new_items success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
news detail info are saved in redis db.
material to mongo and redis success.
2021-12-02-23-00-01
scrapy crawl sina_spider --pages success.
the news nums of news_20211202 collection is 644 and less then 1000.
run python monitor_news.py success.
material to mongo and redis fail.
material to mongo and redis fail.
material to mongo and redis fail.
update_dynamic_feature_protrail success.
run update_new_items success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
news detail info are saved in redis db.
material to mongo and redis success.
2021-12-03-09-38-39
scrapy crawl sina_spider --pages success.
the news nums of news_20211203 collection is 659 and less then 1000.
run python monitor_news.py success.
2021-12-03-09-50-04
scrapy crawl sina_spider --pages success.
run python monitor_news.py success.
update_dynamic_feature_protrail success.
run update_new_items success.
delete RedisProtrail ...
run update_redis_mongo_protrail_data success.
news detail info are saved in redis db.
material to mongo and redis success.
2021-12-04-00-00-01
scrapy crawl sina_spider --pages success.
run python monitor_news.py success.
@@ -1,93 +0,0 @@
2021-11-30-19-03-01
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-11-30-19-08-19
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-01-01-00-01
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-02-01-00-01
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-02-09-13-30
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-02-09-18-07
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-02-09-23-18
a sorted news_ids are saved into redis.
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-01-00-02
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-09-32-44
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-09-33-10
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-09-33-54
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-05-18
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-13-03
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-14-12
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-18-59
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-22-57
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-27-21
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-28-49
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-03-10-45-22
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
2021-12-04-00-11-59
a sorted news_ids are saved into redis.
a hot rec list are saved into redis.....
run /home/recsys/miniconda3/envs/news_rec_py3/bin/python /home/recsys/news_rec_server/recprocess/offline.py success.
-29
View File
@@ -1,29 +0,0 @@
# 物料库
## news_scrapy/
scrapy项目结构的细节可以参考开源项目对应的文档
- 每天定时从新浪新闻上面爬取当天的新闻,并将新闻存入到mongodb数据库中
- 爬取新闻是一个增量的过程,每天只爬取当天的新闻
- 新闻爬取的时候需要提前之前物料池中的所有物料的标题给存下来用来去重
TODO:
1. 启动crontab,定时爬取(联调的时候再使用)
2. 爬取新闻的数量,最后需要改大一点
## materials/
- 根据爬取的数据制作物料画像
- 新闻物料去重逻辑的实现,需要依赖materials/中最新的物料画像
TODO:
1. 将前端展示数据根据news_id存储到redis中
注意:Redis的value存储中文后,get之后显示16进制的字符串”\xe4\xb8\xad\xe5\x9b\xbd”,如何解决?
启动redis-cli时,在其后面加上--raw即可,汉字即可显示正常, 如上面所示的内容
注意:zrange rec_list 0 9 返回的是排序之后的前10个元素,并且是按照value从小到大进行排序的
@@ -1,5 +0,0 @@
当前目录是用来处理数据的
1. 将爬取的新闻原始数据处理成画像数据,对应的脚本:update_news_protrait.py
2. 将处理好的特征画像中需要展示的数据放到redis中,对应的脚本:news_to_redis.py

Some files were not shown because too many files have changed in this diff Show More