diff --git a/models/ctr_dnn/hyper_parameters.yaml b/models/ctr_dnn/hyper_parameters.yaml index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bd932ca9fb3df0e8f788a5b0a3cce4e8936d3f31 100644 --- a/models/ctr_dnn/hyper_parameters.yaml +++ b/models/ctr_dnn/hyper_parameters.yaml @@ -0,0 +1,8 @@ +{ + "sparse_inputs_slots": 27, + "sparse_feature_number": 1000001, + "sparse_feature_dim": 8, + "dense_input_dim": 13, + "fc_sizes": [400, 400, 40], + "learning_rate": 0.001 +} \ No newline at end of file diff --git a/models/ctr_dnn/model.py b/models/ctr_dnn/model.py index 017dc0782c95b69170dc1d33cbbb2436430080c7..31018026370d5eb1ce8a26290f05bb8b60d44257 100644 --- a/models/ctr_dnn/model.py +++ b/models/ctr_dnn/model.py @@ -1,32 +1,112 @@ -class TrainModel(object): - def input(self): - pass +import math +import paddle.fluid as fluid - def net(self): - pass +from ...utils import envs - def net(self): - pass - def loss(self): - pass +class Train(object): - def optimizer(self): - pass + def __init__(self): + self.sparse_inputs = [] + self.dense_input = None + self.label_input = None + self.sparse_input_varnames = [] + self.dense_input_varname = None + self.label_input_varname = None -class InferModel(object): def input(self): - pass + def sparse_inputs(): + ids = envs.get_global_env("sparse_inputs_counts") - def net(self): - pass + sparse_input_ids = [ + fluid.layers.data(name="C" + str(i), + shape=[1], + lod_level=1, + dtype="int64") for i in range(ids) + ] + return sparse_input_ids, [var.name for var in sparse_input_ids] + + def dense_input(): + dense_input_dim = envs.get_global_env("dense_input_dim") + + dense_input_var = fluid.layers.data(name="dense_input", + shape=dense_input_dim, + dtype="float32") + return dense_input_var, dense_input_var.name + + def label_input(): + label = fluid.layers.data(name="label", shape=[1], dtype="int64") + return label, label.name + + self.sparse_inputs, self.sparse_input_varnames = sparse_inputs() + self.dense_input, self.dense_input_varname = dense_input() + self.label_input, self.label_input_varname = label_input() def net(self): - pass + def embedding_layer(input): + sparse_feature_number = envs.get_global_env("sparse_feature_number") + sparse_feature_dim = envs.get_global_env("sparse_feature_dim") - def loss(self): - pass + emb = fluid.layers.embedding( + input=input, + is_sparse=True, + size=[{sparse_feature_number}, {sparse_feature_dim}], + param_attr=fluid.ParamAttr( + name="SparseFeatFactors", + initializer=fluid.initializer.Uniform()), + ) + emb_sum = fluid.layers.sequence_pool( + input=emb, pool_type='sum') + return emb_sum + + def fc(input, output_size): + output = fluid.layers.fc( + input=input, size=output_size, + act='relu', param_attr=fluid.ParamAttr( + initializer=fluid.initializer.Normal( + scale=1.0 / math.sqrt(input.shape[1])))) + return output + + sparse_embed_seq = list(map(embedding_layer, self.sparse_inputs)) + concated = fluid.layers.concat(sparse_embed_seq + [self.dense_input], axis=1) + + fcs = [concated] + hidden_layers = envs.get_global_env("fc_sizes") + + for size in hidden_layers: + fcs.append(fc(fcs[-1], size)) + + predict = fluid.layers.fc( + input=fcs[-1], + size=2, + act="softmax", + param_attr=fluid.ParamAttr(initializer=fluid.initializer.Normal( + scale=1 / math.sqrt(fcs[-1].shape[1]))), + ) + + self.predict = predict + + def loss(self, predict): + cost = fluid.layers.cross_entropy(input=predict, label=self.label_input) + avg_cost = fluid.layers.reduce_sum(cost) + self.loss = avg_cost + + def metric(self): + auc, batch_auc, _ = fluid.layers.auc(input=self.predict, + label=self.label_input, + num_thresholds=2 ** 12, + slide_steps=20) def optimizer(self): + learning_rate = envs.get_global_env("learning_rate") + optimizer = fluid.optimizer.Adam(learning_rate, lazy_mode=True) + return optimizer + + +class Evaluate(object): + def input(self): + pass + + def net(self): pass diff --git a/models/ctr_dnn/reader.py b/models/ctr_dnn/reader.py index ed594e51503d8c1291a6f3427afeb2af47e22d67..93f5f9cfdd2993b83c5d90eb49febc9d2b66eb18 100644 --- a/models/ctr_dnn/reader.py +++ b/models/ctr_dnn/reader.py @@ -1,7 +1,70 @@ -def TrainReader(): - pass +from ...utils import envs +# There are 13 integer features and 26 categorical features +continous_features = range(1, 14) +categorial_features = range(14, 40) +continous_clip = [20, 600, 100, 50, 64000, 500, 100, 50, 500, 10, 10, 10, 50] + + +class CriteoDataset(object): + def __init__(self, sparse_feature_dim): + self.cont_min_ = [0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + self.cont_max_ = [ + 20, 600, 100, 50, 64000, 500, 100, 50, 500, 10, 10, 10, 50 + ] + self.cont_diff_ = [ + 20, 603, 100, 50, 64000, 500, 100, 50, 500, 10, 10, 10, 50 + ] + self.hash_dim_ = sparse_feature_dim + # here, training data are lines with line_index < train_idx_ + self.train_idx_ = 41256555 + self.continuous_range_ = range(1, 14) + self.categorical_range_ = range(14, 40) + + def _reader_creator(self, file_list, is_train, trainer_num, trainer_id): + def reader(): + for file in file_list: + with open(file, 'r') as f: + line_idx = 0 + for line in f: + line_idx += 1 + features = line.rstrip('\n').split('\t') + dense_feature = [] + sparse_feature = [] + for idx in self.continuous_range_: + if features[idx] == '': + dense_feature.append(0.0) + else: + dense_feature.append( + (float(features[idx]) - + self.cont_min_[idx - 1]) / + self.cont_diff_[idx - 1]) + for idx in self.categorical_range_: + sparse_feature.append([ + hash(str(idx) + features[idx]) % self.hash_dim_ + ]) + + label = [int(features[0])] + yield [dense_feature] + sparse_feature + [label] + + return reader + + def train(self, file_list, trainer_num, trainer_id): + return self._reader_creator(file_list, True, trainer_num, trainer_id) + + def test(self, file_list): + return self._reader_creator(file_list, False, 1, 0) + + +def Train(): + sparse_feature_number = envs.get_global_env("sparse_feature_number") + train_generator = CriteoDataset(sparse_feature_number) + return train_generator.train + + +def Evaluate(): + sparse_feature_number = envs.get_global_env("sparse_feature_number") + train_generator = CriteoDataset(sparse_feature_number) + return train_generator.test -def InferReader(): - pass diff --git a/models/ctr_dnn/sample_test.txt b/models/ctr_dnn/sample_test.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3957a7ff04df61a450a8907d6f60e4f7d1ac2862 100644 --- a/models/ctr_dnn/sample_test.txt +++ b/models/ctr_dnn/sample_test.txt @@ -0,0 +1,100 @@ +0 1 1 26 30 0 4 2 37 152 1 2 2 05db9164 38d50e09 ed5e4936 612ccfd4 25c83c98 38eb9cf4 1f89b562 a73ee510 2462946f 7f8ffe57 1d5d5b6e 46f42a63 b28479f6 7501d6be 6083e1d5 07c540c4 f855e3f0 21ddcdc9 5840adea 782e846e 32c7478e b2f178a3 001f3601 c4304c4b +0 20 3 4 40479 444 0 1 157 0 4 68fd1e64 09e68b86 aa8c1539 85dd697c 25c83c98 fe6b92e5 e56a4862 5b392875 a73ee510 3b08e48b 5e183c58 d8c29807 1eb0f8f0 8ceecbc8 d2f03b75 c64d548f 07c540c4 63cdbb21 cf99e5de 5840adea 5f957280 55dd3565 1793a828 e8b83407 b7d9c3bc +0 6 70 1 22 312 25 52 44 144 1 3 1 22 05db9164 04e09220 b1ecc6c4 5dff9b29 4cf72387 7e0ccccf d5f62b87 1f89b562 a73ee510 ce92c282 434d6c13 2436ff75 7301027a 07d13a8f f6b23a53 f4ead43c 3486227d 6fc84bfb 4f1aa25f c9d4222a 55dd3565 ded4aac9 +0 0 0 110 7 3251 44 1 32 39 0 1 31 05db9164 80e26c9b ba1947d0 85dd697c 25c83c98 85f287b3 0b153874 a73ee510 89270478 7c53dc69 34a238e0 4fd35e8f 1adce6ef 0f942372 da441c7e d4bb7bd8 005c6740 21ddcdc9 5840adea 8717ea07 423fab69 1793a828 e8b83407 9904c656 +0 0 29 19490 0 68fd1e64 287130e0 ba4559ea 33a72095 25c83c98 fbad5c96 ffdbd799 5b392875 a73ee510 60badee3 c72ca7a4 ebfb225c b9be5035 cfef1c29 655fad18 a9dcda12 d4bb7bd8 891589e7 419b4cef 5840adea 76ef8858 32c7478e 135c8b41 ea9a246c e3a60438 +0 2 2 20 43197 0 26 23 0 25 05db9164 9b6b8959 9c1c85e7 fd4d6dc3 25c83c98 7e0ccccf d2d741ca 0b153874 a73ee510 4e2d1b78 ea4adb47 cc239583 05781932 64c94865 de781d57 efd92064 e5ba7672 cac48684 4b0ac19f c9d4222a 3a171ecb 22dd4e42 +1 5 12 871 0 27 1 21 1 4 0 05db9164 e112a9de 29bb7bea d3e15e1a 25c83c98 7e0ccccf fd3483f3 0b153874 a73ee510 880e2781 9d7e66c3 bd5829ab df957573 07d13a8f 290e3042 390b7737 8efede7f 808e7bc3 af16dda0 ad3062eb 423fab69 a0ab2ce0 +0 6 263 41 53 0 44 42 0 42 05db9164 71ca0a25 ad876a43 0481f0ba 4cf72387 7e0ccccf bb0f47fb 5b392875 a73ee510 3b08e48b da3f45ff fde18531 a9fda8f5 07d13a8f a8e0f0c6 06f4ae56 776ce399 9bf8ffef 21ddcdc9 5840adea f5f07930 be7c41b4 62aa24c6 001f3601 1d5d3a57 +0 14 4301 48 2 3 51 2 68fd1e64 95e2d337 95c48c52 30b862e7 25c83c98 7e0ccccf b06857f8 0b153874 a73ee510 8228dde1 e4eb05d4 f0d5cc59 a4c5d6dd 1adce6ef 559cd202 e9194f3c 07c540c4 7b06fafe 21ddcdc9 a458ea53 cb105f80 423fab69 16bb3de8 2bf691b1 d3b2f8c3 +0 58 42 39 100 0 40 40 0 40 05db9164 207b2d81 25c37040 e8b2aee5 25c83c98 fe6b92e5 6e6e841b 1f89b562 a73ee510 3b08e48b dcc0e16b a04dc78a b093e98d b28479f6 c6438ddb 31da84fc 776ce399 fa0643ee 21ddcdc9 b1252a9d 931d653d c9d4222a be7c41b4 46f5e7df 001f3601 0e25d9c4 +0 0 2 3 46065 0 5 9 0 0 3 68fd1e64 b961056b 05eefcc3 65e58ae6 25c83c98 fbad5c96 68fbb662 0b153874 7cc72ec2 4aead435 922bbb91 10239ea6 ad61640d 1adce6ef 8187184a 551eb463 e5ba7672 5a6878f5 00018438 32c7478e 71292dbb +1 1 0 224 0 4 0 3 4 27 1 2 0 05db9164 09e68b86 aa8c1539 85dd697c 25c83c98 7e0ccccf a4a8fd5a 0b153874 a73ee510 43a9b300 d13e1160 d8c29807 45820f61 b28479f6 2d49999f c64d548f e5ba7672 63cdbb21 cf99e5de 5840adea 5f957280 bcdee96c 1793a828 e8b83407 b7d9c3bc +1 10 310 6 5 3 75 4 702 2 21 3 68fd1e64 3f0d3f28 4cf72387 7e0ccccf a097ff18 062b5529 a73ee510 ae07e31d 3407cf7b f0fe287d 1adce6ef 14108df6 27c07bd6 88416823 ad3062eb 3a171ecb +0 0 0 19 2898 145 4 20 370 0 2 43 05db9164 38a947a1 0797f900 1da94763 25c83c98 fbad5c96 ba0ca6c5 64523cfa a73ee510 56ae5fb0 7ca01a9d c8ea9acc 97d749c9 1adce6ef a3dc522e d1079e54 e5ba7672 492bb129 828187a0 32c7478e 171ccf3e +0 16 4 2 46248 0 2 49 0 2 05db9164 942f9a8d feafff7d d7b693da 25c83c98 7e0ccccf d9aa9d97 5b392875 7cc72ec2 3b08e48b c4adf918 4ebd8ffe 85dbe138 b28479f6 ac182643 48292aa0 776ce399 1f868fdd 21ddcdc9 b1252a9d be7cac53 32c7478e e3edc57b 9d93af03 7dfad416 +1 66 136 11 12 15 12 963 26 258 3 73 0 12 05db9164 89ddfee8 c314b537 e88cbfb4 4cf72387 7e0ccccf 1c86e0eb 0b153874 a73ee510 e9c971a2 755e4a50 bc8b54c7 5978055e b28479f6 25753fb1 fadc3903 e5ba7672 5bb2ec8e 5b1d6ed9 b1252a9d 8a903c79 32c7478e 7cb5b4d7 e8b83407 ec01bf7b +0 1 34 29 2 10 2 1 2 2 1 1 2 05db9164 b80912da 7b467545 d0cbe447 0942e0a7 fbad5c96 fc8f52a9 0b153874 a73ee510 3b08e48b ad39ba86 dd94da95 751c7a99 b28479f6 79fcb5cb 169d489d e5ba7672 7119e567 3014a4b1 5840adea 23fcd679 3a171ecb de1e9c76 e8b83407 ce0bf6fc +1 1 1 22 1 138 7 16 22 114 1 8 0 7 7e5c2ff4 287130e0 67fa93b5 1fa34039 43b19349 13718bbd f828f7fb 0b153874 a73ee510 b883655e ab066900 2eb927aa 5d4198ed 07d13a8f 10040656 6f930046 e5ba7672 891589e7 21ddcdc9 5840adea fce0d6a4 3a171ecb 1793a828 e8b83407 63093459 +0 2 8 4 4 2 4 8 6 55 2 5 0 4 05db9164 b80912da 02391f51 b9c629a9 b0530c50 7e0ccccf fd10f30e 0b153874 a73ee510 bfc44ba9 e3ee9d2e 2397259a 0d60a93e 07d13a8f ee76936d d37efe8c e5ba7672 30f25b5e 21ddcdc9 5840adea b6119319 423fab69 45ab94c8 ce62e669 b13f4ade +1 15 2 88 27 4 1 21 49 124 1 3 1 5a9ed9b0 4f25e98b aee80afd ae78390d 25c83c98 fbad5c96 f00bddf8 6c41e35e a73ee510 16a81a6c 55795b33 12d1b214 39795005 1adce6ef fb2772ea 121f992b e5ba7672 bc5a0ff7 dfc341f8 a458ea53 b4847d32 32c7478e e7bc1058 001f3601 6b208992 +1 0 8 14551 26 2 0 22 2 0 87552397 80e26c9b 431913c5 85dd697c 25c83c98 fbad5c96 b46e01f1 0b153874 a73ee510 39cda501 7c53dc69 5798519c 4fd35e8f 07d13a8f e8f4b767 2d0bbe92 3486227d 005c6740 21ddcdc9 5840adea 91404954 3a171ecb 1793a828 e8b83407 b9809574 +0 0 12 9 4430 21 2 11 11 1 9 05db9164 333137d9 22fbf56a b92573a3 25c83c98 fe6b92e5 ad9b2639 0b153874 a73ee510 9c4dd39e e4034ebf 878d3428 ea089f5d b28479f6 a46bf7c6 7401a802 07c540c4 c61e82d7 21ddcdc9 a458ea53 634363f7 c9d4222a 32c7478e a2752662 445bbe3b fc1f43e7 +0 21 904 7 30 79 39 87 20 251 2 8 0 39 05db9164 f0cf0024 20009f96 73fec7fb 4cf72387 fbad5c96 a98972ab 0b153874 a73ee510 06363d2d a523f48a 57c08194 5cc21877 b28479f6 fdb1071f 054b386f 3486227d cc693e93 21ddcdc9 b1252a9d 0dd41d11 c9d4222a 32c7478e f9f7eb22 f0f449dd a3a8e8f4 +1 1 1 9 35 5 6 17 10 912 1 9 6 05db9164 09e68b86 21f56260 7cc584ad 89ff5705 fbad5c96 69b885a7 5b392875 a73ee510 b6900243 208d9dd6 252752f5 59dd51b4 07d13a8f 36721ddc e20cfabe e5ba7672 5aed7436 db0b20dc b1252a9d 3572f92c 423fab69 869261fd f0f449dd fb52e815 +0 0 3 47 10 1494 153 6 11 269 0 4 10 5a9ed9b0 39dfaa0d 86d9f7e6 77b5e5ed b2241560 7e0ccccf afa309bd 0b153874 a73ee510 c54560e0 77212bd7 04d776a9 7203f04e 07d13a8f 60fa10e5 465ae0d6 e5ba7672 df4fffb7 21ddcdc9 5840adea 8b9756be c9d4222a c7dc6720 c88bdcee 010f6491 4e7af834 +0 1 0 44 24 4 24 6 43 232 1 4 24 05db9164 c44e8a72 93655629 1b9f91ce 25c83c98 fbad5c96 a25cceac 67b76963 a73ee510 0b16773a 5bee5497 f0f6a9c1 a57cffd3 1adce6ef d6c04afa 6dc8c52c e5ba7672 456d734d 05e4794e a458ea53 dc1b605a bcdee96c 79fc7b8a 724b04da 0cc1543a +1 18 0 37 20 28 20 18 19 20 1 1 0 20 05db9164 ad61f1c8 b64ac9a3 1df4d824 25c83c98 7e0ccccf ac2d4799 0b153874 a73ee510 da500e68 434d6c13 71d55d49 7301027a b28479f6 3403e98c ed6d847a e5ba7672 84eb7a34 1d0aeb7a ad3062eb c7dc6720 786a0db5 +1 4 88 4 20 14 27 357 31 874 2 41 13 05db9164 0eb070fa e75647d9 50912373 43b19349 7e0ccccf 1c86e0eb 0b153874 a73ee510 e7ba2569 755e4a50 a2337f7c 5978055e 07d13a8f 733cd612 2873175e e5ba7672 7ba9340b b4c77ec9 32c7478e 55cf97a5 +0 0 0 20 9 7441 13 4 9 12 0 1 9 05db9164 46320fff de0cea78 66d81227 25c83c98 604312d3 0b153874 a73ee510 3b08e48b 0f6f1a80 51f94b83 9077501d 07d13a8f 4b572351 3ec13e49 e5ba7672 d981a095 21ddcdc9 5840adea b1bb8218 32c7478e 4f272e57 c9f3bea7 25ae1dcc +0 1 1 7 2 331 62 2 5 72 1 2 0 2 05db9164 8947f767 59f8a22b 16e92bee 25c83c98 7e0ccccf b471ac4f 1f89b562 a73ee510 4e56c58e e1ba038b 92352c1e e65a5fc3 07d13a8f 2c14c412 57ac7fda e5ba7672 bd17c3da 4b367914 b1252a9d e68624bc 3a171ecb c77fdeda 010f6491 0a798839 +1 25 16 11 11545 56 1 20 51 1 11 05db9164 8f5b4275 b009d929 c7043c4b 5a3e1872 fbad5c96 e76a087f 0b153874 a73ee510 3b08e48b 50349a3f 3563ab62 370eceb9 1adce6ef a6bf53df b688c8cc d4bb7bd8 65c9624a 21ddcdc9 5840adea 2754aaf1 93bad2c0 3b183c5c e8b83407 adb5d234 +0 1 20 3 6 1 2 2 8 8 1 2 2 5a9ed9b0 e5fb1af3 77f9d96e bc87885b 25c83c98 3bf701e7 6772d022 0b153874 a73ee510 9f7517e0 e0c3cae0 4ce8091c e8df3343 1adce6ef 60403b20 8fb0be40 07c540c4 13145934 21ddcdc9 b1252a9d c3f827f4 423fab69 f0f123e9 c243e98b 63ef9236 +0 -1 8 5 11535 32 0 7 13 0 5 5a9ed9b0 f8c8e8f8 74e1a23a 9a6888fb 25c83c98 fe6b92e5 93955fc0 1f89b562 a73ee510 7dab1649 5215184e fb8fab62 b8ae7766 07d13a8f d4696a42 c6b1e1b2 07c540c4 d2f0bce2 21ddcdc9 5840adea 99c09e97 3a171ecb 335a6a1e f55c04b6 68a2a837 +0 0 1 1 1 3755 124 6 8 198 0 3 1 5a9ed9b0 9819deea 533b1a61 f922efad 25c83c98 fe6b92e5 a4bbd4f4 0b153874 a73ee510 3b76bfa9 8d5ad79c b99ddbc8 4809d853 b28479f6 1150f5ed 87acb535 e5ba7672 7e32f7a4 a4b7004c 93bad2c0 b34f3128 +0 0 15 7 1 2652 57 5 40 55 0 1 1 8cf07265 8947f767 37722a24 8802788f 25c83c98 fda1a50f 0b153874 a73ee510 3b08e48b d2b7c44b e3caf087 68637c0d 64c94865 d120f347 42bc62e3 e5ba7672 bd17c3da 21ddcdc9 a458ea53 1891824e 32c7478e b7bf6986 010f6491 a6115607 +0 5 176 1 1 627 61 109 17 118 2 11 1 05db9164 38a947a1 1646cf1d fcdc5174 25c83c98 fe6b92e5 6fa3c1a7 1f89b562 a73ee510 5f50c86b b8deab54 c30bbcd1 efbb2435 07d13a8f 927edf61 ffb61047 e5ba7672 e73433e0 122d6055 423fab69 d8e17d82 +1 108 20 403 0 1 0 109 0 7 1 2 0 05db9164 942f9a8d 871b4299 25dd4760 4cf72387 7e0ccccf d70c05b1 7b6fecd5 a73ee510 7edea927 c4adf918 2f1be242 85dbe138 1adce6ef ae97ecc3 c637ec94 e5ba7672 1f868fdd 2e30f394 a458ea53 140ec002 ad3062eb bcdee96c b50e18f9 001f3601 f99af3bd +0 15 0 14 10 609 35 29 12 419 1 3 3 10 05db9164 09e68b86 c86b9e6a e4fd0a5b 25c83c98 7e0ccccf a90a99c5 0b153874 a73ee510 e6003298 e9561d8b 906b3727 1cc9ac51 b28479f6 6f73304a a10da4c7 8efede7f 479030a6 7a1c9aad 5840adea c06c3736 32c7478e 41be4766 e8b83407 d8a062c4 +0 8 0 10 12 46 12 8 10 12 1 1 12 05db9164 b7ca2abd ee96fc95 68ad052c 25c83c98 7e0ccccf 968a6688 5b392875 a73ee510 e851ff7b f25fe7e9 ce875433 dd183b4c 64c94865 5f2d5a3a 5f92b84a e5ba7672 4771e483 95b757a6 3a171ecb 41be4766 +0 0 5 6 2 3021 151 6 10 18 0 1 2 be589b51 207b2d81 d0484442 68637816 25c83c98 7e0ccccf 12c61956 45f7c2dd a73ee510 29e50671 94d2aad8 3b9ae062 f23a3825 07d13a8f 0c67c4ca 3a1a0a65 07c540c4 395856b0 21ddcdc9 a458ea53 1720a38e 32c7478e 4de83b96 001f3601 8f16a3b8 +0 4 7954 19 2 6 17 1 68fd1e64 78ccd99e 0a1435c1 bdcfffba 25c83c98 7e0ccccf c4939891 0b153874 a73ee510 fbbf2c95 7d4bba07 5a276398 2fad1153 8ceecbc8 d5adea3d 4da40ea2 07c540c4 e7e991cb 21ddcdc9 5840adea 290c14f6 3a171ecb ded4aac9 2bf691b1 bdf46dce +1 7 89 14 3 2 2 47 31 341 2 10 0 2 05db9164 421b43cd ced9477f 29998ed1 25c83c98 7e0ccccf 6bf83cdb 0b153874 a73ee510 89ff09ee 60adb56e 6aaba33c 53b60829 b28479f6 2d0bb053 b041b04a e5ba7672 2804effd 723b4dfd dbb486d7 b34f3128 +1 -1 27180 12 2 0 5 1 05db9164 46b01795 4cf72387 1dcabd2a 0b153874 a73ee510 1d56e466 9cf09d42 f66b043c 1adce6ef c830dc5e 07c540c4 e3a5430f 32c7478e +0 1 1 39 15 119 18 1 18 15 1 1 15 05db9164 4f25e98b 01fefe29 e86b1560 25c83c98 7e0ccccf 0038e65c 0b153874 a73ee510 3b08e48b 7e728ed1 4676ac97 1ddad6aa 1adce6ef 17d9b759 3581aa7f d4bb7bd8 7ef5affa 9437f62f b1252a9d 745c79e6 bcdee96c 3fdb382b 001f3601 49d68486 +0 0 2 5 1284 0 23 24 0 5 05db9164 8084ee93 02cf9876 c18be181 0942e0a7 7e0ccccf 0b72a0e8 5b392875 a73ee510 3b08e48b 4950c85b 8fe001f4 1d27b635 b28479f6 16d2748c 36103458 776ce399 003d4f4f e587c466 bcdee96c 3b183c5c +1 0 74 36 4 36375 8 0 4 68fd1e64 0468d672 08266a1d a3fc4871 4cf72387 7e0ccccf 5fd3419b 37e4aa92 a73ee510 972359d0 f69fd509 692521c3 c7176043 b28479f6 234191d3 dc3c41ba d4bb7bd8 9880032b 21ddcdc9 5840adea 10738086 3a171ecb e43a3efc ea9a246c 4e7af834 +1 4 5 8 35 1398 64 19 9 703 1 4 59 05db9164 2a69d406 30b6e3ea 13508380 4cf72387 7e0ccccf 579c293b 0b153874 a73ee510 b38bac58 f66047e5 4551eab3 13c89cc4 07d13a8f 3b2d8705 48f5ae81 e5ba7672 642f2610 55dd3565 b1252a9d de95351a c9d4222a 423fab69 45ab94c8 2bf691b1 c84c4aec +0 7 48 41035 3 05db9164 6e638bbc 49a1cd79 cca79e1e 25c83c98 fe6b92e5 8f4478fe 0b153874 a73ee510 8ba6af1c 1cd8b8ae 0acdf55c 86b6351d b28479f6 c11477f0 f541ee61 d4bb7bd8 f6a2fc70 21ddcdc9 b1252a9d 1afb7d8e bcdee96c 75cfed80 445bbe3b e2f05ce0 +1 -1 14752 0 2 4 0 5bfa8ab5 38a947a1 e710f9eb ae6e2a08 25c83c98 fe6b92e5 56f361f1 0b153874 a73ee510 3b08e48b 6d91e005 d0649cfd 34098dd6 b28479f6 7160a164 6ffcab68 776ce399 82103027 9487db01 be7c41b4 f57138a8 +0 210 6 2 9072 0 2 12 0 2 05db9164 a07503cc 5d260103 13508380 25c83c98 987da766 0b153874 a73ee510 a9271c40 f37be5c0 519590f0 a59ea816 07d13a8f 77660bba 884b33b5 e5ba7672 912c7e21 1d1eb838 b1252a9d 353846c9 c7dc6720 45ab94c8 445bbe3b c84c4aec +0 3 45 6 7 18 6 52 7 177 1 9 0 6 f5796c5b 80e26c9b 6e5bddab d3e92866 25c83c98 7e0ccccf 24e8ca9f 0b153874 a73ee510 5fd7dd92 94a1f0fa bf413137 153f0382 07d13a8f f3635baf af6fc4b8 3486227d f54016b9 21ddcdc9 5840adea a3405885 423fab69 b0fb6a50 e8b83407 61556511 +0 0 38 2 3 11664 0 6 3 0 0 0 3 68fd1e64 2c16a946 849cf586 b180f466 25c83c98 7e0ccccf 5547e1f4 0b153874 a73ee510 5db9788f 087dfcfd 48fc0800 5317f239 07d13a8f 18231224 9fbd58f8 e5ba7672 74ef3502 51c0191c 3a171ecb 9117a34a +0 11 6 18 1632 0 19 21 0 19 5a9ed9b0 58e67aaf 381d8ea3 76bbce8c 25c83c98 7e0ccccf 9b7f373a 7b6fecd5 a73ee510 597e2a48 ec2b795a 732c8db2 a5975b1d 07d13a8f 10935a85 03f89a73 1e88c74f c21c3e4c 21ddcdc9 a458ea53 d83181ad c7dc6720 3fdb382b b9266ff0 25bf05c2 +0 180 35 1 31780 0 1 1 0 1 8cf07265 421b43cd bc27bcef 29998ed1 f281d2a7 fbad5c96 1d94dd40 0b153874 a73ee510 efea433b ccfdca2f 6aaba33c d76cea6e b28479f6 e1ac77f7 b041b04a d4bb7bd8 2804effd 723b4dfd 32c7478e b34f3128 +1 2 4 0 4 0 12 0 49 1 3 0 68fd1e64 38a947a1 cc9e717b 9ca2c15d 25c83c98 d5141a06 5b392875 a73ee510 af94b16c f2a5d7d2 37dfef2b a3b89afc b28479f6 a5118040 1cb7075e e5ba7672 b6b880ec 42dbeba8 32c7478e 88422d4d +1 -1 6223 2 22 0 20 3 68fd1e64 38a947a1 6847b3c1 6cd6e51f 25c83c98 fbad5c96 93ec533b f0298c3c a73ee510 3b08e48b 9ffb3655 eed4a04f a0874a81 1adce6ef 4a591230 d4ca38be e5ba7672 e3c6d69d ba703820 32c7478e c50d808e +1 3 153 3 3 1 0 4 4 13 1 2 0 05db9164 421b43cd 24146df6 29998ed1 25c83c98 7e0ccccf 4aa938fc 5b392875 a73ee510 451bd4e4 2b9c7071 6aaba33c 1aa94af3 b28479f6 e1ac77f7 b041b04a e5ba7672 2804effd 723b4dfd 3a171ecb b34f3128 +0 4 45 41 31 5 11 156 32 185 1 25 0 11 68fd1e64 89ddfee8 9732b11b 4c0dcfee 25c83c98 fbad5c96 1c86e0eb 5b392875 a73ee510 e7ba2569 755e4a50 ccb8af7d 5978055e b28479f6 25753fb1 19637c17 e5ba7672 5bb2ec8e ae44ba4c b1252a9d 0db71b18 32c7478e 5c960292 f0f449dd 45b5a9e7 +1 1 21 13 12 8 5 8 20 69 1 4 5 05db9164 e3db0bac 9cc6a4f1 9cd2a845 25c83c98 ab1ad103 0b153874 a73ee510 63c8d3d5 859b343f e68fa129 20819d96 07d13a8f 618b0ee5 3004a5f2 e5ba7672 a7ccaded 21ddcdc9 5840adea dc135e3f 8ec974f4 423fab69 08b0ce98 b9266ff0 b29c74dc +0 2 3 14 9 5 9 2 10 9 1 1 9 8c6ba407 09e68b86 b976df14 0b839026 25c83c98 fbad5c96 cc5ed2f1 5b392875 a73ee510 3b08e48b e216a695 ab02884f 9f16a973 b28479f6 52baadf5 5fa439a6 e5ba7672 5aed7436 2aa4575d b1252a9d 32dcf845 32c7478e f8d85724 e8b83407 f643b6c5 +0 88 73 41 4420 0 46 47 0 46 05db9164 73a46ff0 c19a1e7a b7802d6b 25c83c98 fe6b92e5 28639f10 0b153874 a73ee510 3b08e48b 3a5bf2d6 0761d1a2 155ff7d9 b28479f6 4f648a87 079f48c0 776ce399 da507f45 21ddcdc9 b1252a9d a1fdd170 c9d4222a 3a171ecb a455dffb ea9a246c aa99435d +0 2644 4 1 26246 0 1 14 0 1 05db9164 80e26c9b 7df8ac19 42cc30a8 25c83c98 fbad5c96 d2d741ca 0b153874 a73ee510 3b08e48b ea4adb47 6cf704b2 05781932 1adce6ef 8ba8b39a dbdb2c16 e5ba7672 f54016b9 21ddcdc9 a458ea53 a92be8d2 c9d4222a 3a171ecb 3037ff6a e8b83407 b112057a +0 139 1 13556 79 1 13 59 1 0 1 68fd1e64 38a947a1 4fc317a6 6a14f9b9 25c83c98 fbad5c96 282b88fc 0b153874 a73ee510 0f1a2599 3e2feacf 9ff86c51 0e5bc979 07d13a8f 46df822a f8b34416 3486227d c9ac134a f3ddd519 32c7478e b34f3128 +0 1 13 2 12026 535 8 26 308 3 3 05db9164 90081f33 36e97f3a e96617b3 25c83c98 fbad5c96 7f9907fe 5b392875 a73ee510 a3e2e7a5 a7b606c4 ba5aae2e eae197fd 64c94865 eec7af60 23b497d2 d4bb7bd8 ef981aa1 36a4f6c3 3a171ecb 3e022f4d +1 2 10 14 20 577 142 3 39 42 1 2 26 05db9164 08d6d899 9143c832 f56b7dd5 25c83c98 7e0ccccf dc7659bd 0b153874 a73ee510 efea433b e51ddf94 ae1bb660 3516f6e6 b28479f6 bfef54b3 bad5ee18 e5ba7672 87c6f83c 0429f84b 32c7478e c0d61a5c +1 0 45 6 1584 37 10 28 228 0 6 11 5a9ed9b0 bce95927 b46f1f1d 13508380 25c83c98 fbad5c96 737174dc 0b153874 a73ee510 3b08e48b 3b0a3499 35dfe2c5 c8e4b0c1 07d13a8f fec218c0 9720e154 e5ba7672 04d863d5 b7380686 b1252a9d 2b0e5756 c9d4222a 32c7478e 45ab94c8 e8b83407 c84c4aec +1 0 1214 4 20 2131 159 4 11 580 0 3 0 72 05db9164 4f25e98b 2d1ef417 68a5fcbb 4cf72387 7e0ccccf 5e64ce5f 0b153874 a73ee510 3ccfe0c0 4618e030 975c1c17 025225f2 b28479f6 8ab5b746 6720b72e 27c07bd6 7ef5affa 21ddcdc9 b1252a9d 722d167c 32c7478e 3fdb382b e8b83407 49d68486 +0 0 3 4553 49 1 0 0 1 5a9ed9b0 38a947a1 a16966ab 65803e5f 43b19349 fbad5c96 3b16ebba 0b153874 a73ee510 8edcd037 6803595d fc0ad095 2a2faae1 b28479f6 b593a63b fd97a107 d4bb7bd8 1263c077 392cde4b 32c7478e af55e227 +0 316 5 234 0 0 0 0 05db9164 38a947a1 3f5a37fe 1032bac8 25c83c98 7e0ccccf 1760a525 37e4aa92 a73ee510 3b08e48b 2d6f299a ce406f01 f0e0f335 b28479f6 77ef1e58 67f512fb 776ce399 b6b880ec c2b62b88 be7c41b4 c86755ff +1 2040 14 54675 0 2 6 0 da4eff0f 09e68b86 5b8662c6 5bad2804 25c83c98 8c28e5b5 6a698541 7cc72ec2 feccf887 ae4c531b 8ee18973 01c2bbc7 b28479f6 52baadf5 d93ba614 e5ba7672 5aed7436 75916440 a458ea53 2554eed2 32c7478e 47577e42 e8b83407 89fa8140 +0 0 0 15 6 1512 18 15 10 215 0 6 6 05db9164 09e68b86 aa8c1539 85dd697c 43b19349 7e0ccccf af84702c c8ddd494 a73ee510 fa7d0797 ae19a197 d8c29807 7f0d7407 b28479f6 2d49999f c64d548f e5ba7672 63cdbb21 cf99e5de 5840adea 5f957280 3a171ecb 1793a828 e8b83407 b7d9c3bc +0 39 9 9 3814 82 1 9 82 1 9 68fd1e64 421b43cd 3983c24c 29998ed1 4cf72387 fe6b92e5 dcc1b63d 1f89b562 a73ee510 d04aae7d 731cd88c 6aaba33c 34d253f7 b28479f6 2d0bb053 b041b04a d4bb7bd8 2804effd 723b4dfd 3a171ecb b34f3128 +0 0 32 13 35317 0 15 30 0 13 5a9ed9b0 09e68b86 39cbb726 afc54bd9 25c83c98 13718bbd d2d741ca 5b392875 a73ee510 3b08e48b ea4adb47 4f5c5791 05781932 07d13a8f 36721ddc 2f6bcbc0 d4bb7bd8 5aed7436 2442feac a458ea53 b215bc2d 3a171ecb 1793a828 e8b83407 02fa3dea +0 45 11 15 40 44 1 15 44 1 15 64e77ae7 38d50e09 92eb3174 88e439d9 25c83c98 6f6d9be8 fc6b47d9 5b392875 a73ee510 5080de78 b3410e99 604f499b 0d2cad4c 07d13a8f e2275836 8e662061 d4bb7bd8 fffe2a63 21ddcdc9 b1252a9d 872c22d6 32c7478e df487a73 001f3601 c27f155b +1 1122 41211 499 0 0 10 0 05db9164 207b2d81 d0484442 68637816 f281d2a7 12c61956 0b153874 a73ee510 48af2ba2 94d2aad8 3b9ae062 f23a3825 07d13a8f 0c67c4ca 3a1a0a65 d4bb7bd8 395856b0 21ddcdc9 a458ea53 1720a38e 32c7478e 4de83b96 001f3601 8f16a3b8 +1 1 -1 696 1 22 1 81 1 7 0 68fd1e64 537e899b 5037b88e 9dde01fd 25c83c98 7e0ccccf 17024f49 f504a6f4 a73ee510 f2a8242b ba0f9e8a 680d7261 4e4dd817 07d13a8f 6d68e99c c0673b44 e5ba7672 b34aa802 e049c839 c7dc6720 6095f986 +0 18 3 1480 340 9 3 26 2 0 3 05db9164 a796837e 08de7b18 97ce69e9 30903e74 7e0ccccf 12343fcc 0b153874 a73ee510 547c0ffe 9bcaeafe c5011072 46f42a63 cfef1c29 98eddd86 5a9431f3 27c07bd6 e90118d1 e754c5e1 3a171ecb 8fc66e78 +0 2 59 3 3 11 3 2 3 3 1 1 3 05db9164 09e68b86 27685115 a35ea34f 25c83c98 7e0ccccf 9b4ad590 1f89b562 a73ee510 3b08e48b 75b8e15e 92e9af0d ed43e458 1adce6ef dbc5e126 dc52e604 07c540c4 5aed7436 21ddcdc9 5840adea e5835dfb bcdee96c f89ffef1 e8b83407 a9637a08 +0 0 -1 5937 29 1 1 60 0 1 05db9164 09e68b86 d49019a8 8d5aa295 43b19349 13718bbd 89391314 0b153874 a73ee510 9372d502 608452cc 615e62e7 cbb8fa8b b28479f6 52baadf5 e606c6b3 e5ba7672 5aed7436 2b558521 b1252a9d 7440d805 32c7478e 18038694 e8b83407 7048bfb1 +1 0 0 2 2875 245 2 2 243 0 2 0 05db9164 86d4fccc 697f4e85 f2159098 4cf72387 fbad5c96 dc7659bd 5b392875 a73ee510 efea433b e51ddf94 35641a0a 3516f6e6 07d13a8f e87e1df4 c1eba210 e5ba7672 e727949e 21ddcdc9 5840adea 47e2c032 32c7478e 3b183c5c 001f3601 afd260f5 +0 1 0 70 6 135 27 14 2 45 1 2 0 6 68fd1e64 80e26c9b ba1947d0 85dd697c 4cf72387 16a2e9cb 1f89b562 a73ee510 1ce1e29d 44fa9a7f 34a238e0 f27ed3ab 1adce6ef 0f942372 da441c7e e5ba7672 005c6740 21ddcdc9 5840adea 8717ea07 423fab69 1793a828 e8b83407 9904c656 +1 80 25 2 3 2 3 80 3 3 1 1 1 3 05db9164 0b8e9caf 9b9cd1bb 5974d6bc 25c83c98 fbad5c96 4b815add 0b153874 a73ee510 3b08e48b 7cb56051 7364e701 1ac91ec9 b28479f6 5340cb84 1ab2aab4 3486227d ca6a63cf 91311aa2 bcdee96c 08b0ce98 +0 0 1 1 1801 14 0 0 05db9164 5dac953d d032c263 c18be181 384874ce 7e0ccccf 8363bee7 0b153874 a73ee510 efea433b bf09be0e dfbb09fb 3516f6e6 1adce6ef 32330105 84898b2a e5ba7672 24de59c1 0014c32a 32c7478e 3b183c5c +0 1 0 6 8 18 8 1 8 8 1 1 8 5a9ed9b0 0468d672 c48cd8f8 24d89f30 25c83c98 24a360aa 5b392875 a73ee510 c8a342b9 2c9174a6 f25a8037 7eda22c5 b28479f6 234191d3 9ca51d92 d4bb7bd8 9880032b 21ddcdc9 5840adea 17b90ef0 32c7478e da89b7d5 ea9a246c 984e0db0 +1 7 1 5 1 1311 58 50 2 200 1 6 0 1 05db9164 6887a43c 9b792af9 9c6d05a0 25c83c98 7e0ccccf f367d44f 0b153874 a73ee510 3e3375c9 f68c5128 6532318c d86616b0 1adce6ef ef6b7bdf 2c9d222f 3486227d 8f0f692f 21ddcdc9 a458ea53 cc6a9262 ad3062eb 423fab69 a5862ce8 445bbe3b 0b89ae9f +1 1 0 1 378 41 4 16 100 1 2 68fd1e64 38a947a1 75df6d36 b1c1e580 25c83c98 7e0ccccf 14ad5567 1f89b562 a73ee510 9dc8b302 9ddd72e9 6fbed051 37e99bb7 07d13a8f 6d74487d f10a7996 07c540c4 b3e92443 c576dc74 3a171ecb 67d37917 +0 183 3 3 27395 0 3 67 0 3 be589b51 f3139f76 1c8c8a04 bf0b19a8 30903e74 7e0ccccf 6d389dca 0b153874 a73ee510 98bd7a24 e4eb05d4 5b5ab0a8 a4c5d6dd b28479f6 28c50c84 5131d930 e5ba7672 df5475ca 3b226dea 3a171ecb 4fcc135f +0 1 17 3 0 7 3 0 3 05db9164 083aa75b 88bd9da3 c235950d 25c83c98 7e0ccccf 0697a6a6 0b153874 7cc72ec2 3b08e48b 7fb7db93 f3ba84a1 208257bb 1adce6ef 84203dfc 30129ae3 2005abd1 06747363 21ddcdc9 b1252a9d 9ad721d6 be7c41b4 993d6982 f0f449dd 7eaed4be +0 6 7 2 3003 0 42 8 0 0 9 241546e0 a796837e 42db3232 e3cc371a 25c83c98 7e0ccccf 11ffbf5b 37e4aa92 a73ee510 7ad4ea2c f2313205 c9669737 9c7a975e cfef1c29 f0bf9094 c4de5bba 8efede7f 1cdbd1c5 288eaded ad3062eb 3a171ecb 8fc66e78 +0 1 36771 112 1 0 77 1 05db9164 f3139f76 9d3adacf 28d926b8 43b19349 fe6b92e5 0cd2f08f 0b153874 a73ee510 3b08e48b 7592da6b 7b93a4c7 18f84563 b28479f6 28c50c84 fc53f85c d4bb7bd8 df5475ca ed35ed93 32c7478e 4fcc135f +0 20 1 1 4841 20 3 5 16 2 1 68fd1e64 38d50e09 948ee031 b7ab56a2 4cf72387 fbad5c96 7d733ece 0b153874 a73ee510 3753b9eb 30b2a438 42bee2f2 aebdb575 b28479f6 06373944 67b3c631 07c540c4 fffe2a63 21ddcdc9 b1252a9d bd074856 32c7478e df487a73 001f3601 c27f155b +1 7 1095 3 37 1 7 3 3 2 2 1 05db9164 85af3139 d032c263 c18be181 384874ce fe6b92e5 7195046d 1f89b562 a73ee510 f1b45aab 4d8549da dfbb09fb 51b97b8f b28479f6 af8db00e 84898b2a e5ba7672 d4328054 0014c32a bcdee96c 3b183c5c +1 0 0 19 7 2193 41 9 18 199 0 4 0 9 05db9164 ef69887a 7007f08d f6131df0 4cf72387 7e0ccccf e8fc728b 0b153874 a73ee510 603ff749 e7ce7f20 2d936711 f522015f 07d13a8f b98be2c0 1c332795 e5ba7672 4bcc9449 abfaf938 a458ea53 caad4ae9 32c7478e 3fdb382b e8b83407 49d68486 +1 0 0 1 1 7571 57 19 1 16 0 7 0 1 05db9164 38a947a1 72e5eac0 eee0e446 25c83c98 fbad5c96 66a728c4 0b153874 a73ee510 d0ff5b05 dab547a5 673768e2 7aab7990 07d13a8f 613de492 d617f1ff 3486227d 7abb2837 72a8c407 ad3062eb 423fab69 375c3609 +0 156 2 25905 0 11 39 0 2 05db9164 08d6d899 9143c832 f56b7dd5 25c83c98 7e0ccccf 8ce3a35f 0b153874 a73ee510 3b08e48b c8e7f509 ae1bb660 6e8ef725 b28479f6 bffbd637 bad5ee18 776ce399 bbf70d82 0429f84b 32c7478e c0d61a5c +0 0 102404 0 9a89b36c 38a947a1 b89c82b4 c10a6e59 25c83c98 7e0ccccf 04679a14 0b153874 7cc72ec2 975342c2 19a2ded8 15820680 90c7f9d1 64c94865 fd056e92 911ebe1c 07c540c4 b2e570f5 00cfee60 ad3062eb 3a171ecb 4904c5a1 +1 46 614 210 0 10 0 71 0 257 1 5 4 0 5a9ed9b0 942f9a8d d61e0f0a c2fcecf6 4cf72387 7e0ccccf 3f4ec687 45f7c2dd a73ee510 0e9ead52 c4adf918 f6f14c38 85dbe138 07d13a8f a8e962af 64c4c290 27c07bd6 1f868fdd 21ddcdc9 b1252a9d 06316f4c ad3062eb 32c7478e 38be899f e8b83407 9bef54fd +1 0 9 2 1576 29 3 4 14 0 1 05db9164 6887a43c bce3f26f 1d8a14d0 43b19349 fe6b92e5 675e81f6 0b153874 a73ee510 a5bb26cf 4a77ddca 381dd9fd dc1d72e4 64c94865 004dd4ed c26ce5c1 1e88c74f 36a1d942 21ddcdc9 b1252a9d e22e102f c9d4222a 32c7478e 47c5aea3 445bbe3b 12d4e9a4 +0 -1 101295 0 05db9164 2ae0a573 b7810abb 65b2bfc7 25c83c98 fe6b92e5 ccbac4d9 0b153874 7cc72ec2 3b08e48b c012107d 82665b78 c8dca410 07d13a8f 413cc8c6 6399ea39 07c540c4 f2fc99b1 ea03ca8b ad3062eb be7c41b4 d91ea8bd +0 -1 0 0 32 0 87552397 a8b6b751 25c83c98 7e0ccccf d9aa9d97 5b392875 7cc72ec2 3b08e48b 6e647667 85dbe138 b28479f6 694e45e3 2005abd1 d787f192 21ddcdc9 5840adea 32c7478e 001f3601 99f4f64c \ No newline at end of file diff --git a/models/ctr_dnn/sample_train.txt b/models/ctr_dnn/sample_train.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..44a5673bdaad666923a69ec520de79a5ebf257b5 100644 --- a/models/ctr_dnn/sample_train.txt +++ b/models/ctr_dnn/sample_train.txt @@ -0,0 +1,100 @@ +0 25 10 3 173550 0 3 3 0 3 05db9164 1cfdf714 123bffb5 eeecd0cd 25c83c98 3bf701e7 6f441cf5 0b153874 7cc72ec2 bbab92de 1054ae5c 2e85aefd d7ce3abd 07d13a8f f775a6d5 95aa0ac3 e5ba7672 e88ffc9d 5958dc97 a458ea53 1654ec0f c7dc6720 c99dc8c3 cb079c2d 87700c4f +0 64 1 2 32882 0 7 123 0 2 f473b8dc c76014f5 df00c4f0 031bba14 25c83c98 fbad5c96 11ffbf5b 1f89b562 a73ee510 865b29d9 f2313205 336bb1d7 9c7a975e b28479f6 a46c3543 631f0045 27c07bd6 93b0d1d7 1fe472e2 c9d4222a 3a171ecb 89bd83a1 +1 9 2 11725 168 1 0 18 1 68fd1e64 09e68b86 4bd49689 f55645df f1d40cbe 81744249 0b153874 a73ee510 6997b535 620f5b56 480bde65 9e1f2dd1 07d13a8f 907a361f 731fb6c9 07c540c4 901e19dc 0ec8d23c b1252a9d 90756215 32c7478e 237343db e8b83407 a034ca84 +1 0 74 14 13 2951 99 8 19 234 0 1 32 05db9164 71ca0a25 523078c5 1c499678 384874ce 7e0ccccf 83a35e03 5b392875 a73ee510 3b08e48b 680ce4eb 52e91b9e be2e9b3f 07d13a8f a8e0f0c6 940a7930 e5ba7672 9bf8ffef 21ddcdc9 5840adea ec1594f7 423fab69 0ff91809 8f8c5acd c986348f +0 -1 0 2 0 0 0 0 0 05db9164 dd8c896e 7e9827b2 13508380 25c83c98 7e0ccccf 0dd60320 0b153874 a73ee510 3b08e48b 3ad41aaa 2e438fd0 4ca13ee8 07d13a8f 95275a51 fff24362 1e88c74f 3182300e c7dc6720 b1252a9d 600606ad 423fab69 45ab94c8 010f6491 c84c4aec +0 6 57 6 993 13 26 11 621 1 7 0 6 05db9164 c41a84c8 d627c43e 759c4a2e 25c83c98 fbad5c96 216a1127 5b392875 a73ee510 df24cad9 c389b738 2d15871c d7ccab4e b28479f6 55d28d38 9243e635 e5ba7672 2b46823a ec5ac7c6 3a171ecb 590b856f +1 18 1 17 25 0 0 18 21 25 1 1 0 05db9164 9f7e1d07 5cad888a 97079b30 25c83c98 6284da2d 0b153874 a73ee510 01a07fd7 5874c9c9 83fb74d8 740c210d 07d13a8f 3e25e5f5 c89d0db1 e5ba7672 6a58e423 21ddcdc9 5840adea 2e7600d9 32c7478e 9d214089 ea9a246c e7ecb821 +0 2 24 9 7 603 52 2 47 47 1 1 7 5a9ed9b0 71ca0a25 50b60277 64607668 25c83c98 fbad5c96 ed54b715 37e4aa92 a73ee510 afe4ade4 da28c392 c65541d1 7165d9e8 cfef1c29 5ecd0cdc ff8dfb8b 1e88c74f 9bf8ffef 21ddcdc9 5840adea 0c8b6f3b 32c7478e 51b4beaa 445bbe3b 1d5d3a57 +1 0 5 4 747 127 30 24 86 5 10 05db9164 083aa75b 3d2be4e2 b6d4a742 25c83c98 7e0ccccf b7de6c14 0b153874 a73ee510 3b08e48b 560f6a86 a5e5538a 52ec5ece b28479f6 4e47e13c 521ab877 e5ba7672 06747363 21ddcdc9 5840adea e6efbb6c 32c7478e 0df4da2b e8b83407 6fb7f5d3 +1 1 29 32 15196 783 1 29 111 1 35 05db9164 512fdf0c b7506183 41d91b64 25c83c98 fbad5c96 86651165 c8ddd494 a73ee510 3b08e48b 39dd23e7 23ae741f 0159bf9f 07d13a8f aa322bcf 283d439e d4bb7bd8 fd3919f9 21ddcdc9 5840adea 4a057340 3a171ecb 919b984e 724b04da 13e48a90 +1 18 32 4 25 0 0 18 21 25 1 1 0 05db9164 c5c1d6ae 09c825b5 75509a22 4cf72387 7e0ccccf 6284da2d 0b153874 a73ee510 01a07fd7 5874c9c9 94ee7692 740c210d 1adce6ef 151f2153 3770493f e5ba7672 836a67dd 21ddcdc9 5840adea 3b6491cd ad3062eb 32c7478e 7e60320b 7a402766 6527ade9 +1 0 6 6 11953 0 7 6 0 0 6 05db9164 2607540a 6c252b79 f922efad 4cf72387 fbad5c96 e1a192f3 0b153874 a73ee510 70fc0233 d93e6010 6fd08f98 4e8bba73 b28479f6 d50f20a7 3f8c9229 e5ba7672 8a25126c 98040c74 c9d4222a 32c7478e b34f3128 +0 0 2 4 4 1666 33 1 4 29 0 1 4 05db9164 cc4a4a1f 2ddb321f 375286a4 25c83c98 7e0ccccf 6b8a94e7 0b153874 a73ee510 942bdf7d 2a7d9fca 3f5ae091 39a06276 07d13a8f a08d6f8d 8f18dac6 d4bb7bd8 30228196 c2d19390 be7c41b4 9094dc99 +1 -1 3866 1 28 0 38 6 05db9164 d4bd9877 6019355b 77d7145b 25c83c98 fe6b92e5 7195046d 0b153874 a73ee510 f3b0a575 4d8549da df423e6d 51b97b8f d2dfe871 356fa1ec 1e2a8a01 e5ba7672 5a87d8e9 8b0abce6 3a171ecb 65d7d87d +0 14 7 33 19532 488 3 11 318 2 40 5bfa8ab5 09e68b86 944461c7 2dad13f7 25c83c98 13718bbd 622305e6 5b392875 a73ee510 e70742b0 319687c9 1bfb9d7d 62036f49 07d13a8f 36721ddc 4a31bfcf e5ba7672 5aed7436 ff6cdd42 a458ea53 f2bc988b 32c7478e 3fdb382b e8b83407 49d68486 +0 46 60 7 6494 0 13 16 0 9 68fd1e64 59ab477c b00d1501 d16679b9 25c83c98 7e0ccccf 5469843c 0b153874 a73ee510 fbbf2c95 f9a1f4c2 e0d76380 302977df b28479f6 a1d90ff1 1203a270 1e88c74f 74fc71da 21ddcdc9 5840adea 73d06dde 32c7478e aee52b6f 47907db5 984e0db0 +0 1 92 4 109938 8 5 05db9164 38d50e09 29ffa33c c95cee83 4cf72387 7e0ccccf eb8cc0b4 0b153874 7cc72ec2 5543532b 2c7b458c bafda429 63f28c33 1adce6ef 6efcae21 01e777d6 e5ba7672 f855e3f0 21ddcdc9 5840adea 16907e69 3a171ecb 9fa3e01a 001f3601 aa5f0a15 +0 37 16 22 6382 25 10 22 88 2 0 22 8cf07265 09e68b86 0ac5c1a6 fe72cef1 4cf72387 1b4f959f 51d76abe a73ee510 b2eee74d 9ad3b3ec ae70dc88 95793ef0 1adce6ef dbc5e126 dd72f8c1 8efede7f 5aed7436 21ddcdc9 a458ea53 f8e4bc88 32c7478e 1793a828 e8b83407 8c53c771 +0 299 34 46 50 0 43 160 0 34 68fd1e64 39dfaa0d 83eaa0e0 e155cbf6 b2241560 7e0ccccf db3b7bfc 0b153874 a73ee510 3b08e48b c708d1a1 35e0892f 86dc4b63 07d13a8f 60fa10e5 96d73731 776ce399 df4fffb7 21ddcdc9 5840adea 5fe2e239 32c7478e 06f6f124 010f6491 584d8464 +0 8 182 4 5 103 8 8 3 8 1 1 5 05db9164 3e4b7926 74e1a23a 9a6888fb 25c83c98 7e0ccccf 0016c23d 0b153874 a73ee510 a640ab22 fd14fb53 fb8fab62 b118c64a 1adce6ef 7c42278d c6b1e1b2 e5ba7672 e261f8d8 21ddcdc9 b1252a9d 99c09e97 423fab69 335a6a1e 47907db5 d15c0cc8 +0 0 3 56 5 16302 1054 7 7 194 0 1 5 05db9164 38a947a1 b7a01d06 79b0147e 25c83c98 7e0ccccf 505ca254 5b392875 a73ee510 f6e4bc4d 4968ae8f fe2ae07d 18e370a6 1adce6ef ce39fa55 889df0bf e5ba7672 474ecca0 df7c386a ad3062eb 32c7478e d57e7d03 +0 -1 0 2 16 0 5bfa8ab5 38a947a1 d60096f4 21dbbb54 25c83c98 7e0ccccf e7698644 0b153874 7cc72ec2 3b08e48b f9d0f35e 1731f3db b55434a9 1adce6ef 785edb93 4605797a 2005abd1 3ac30845 72f082ba be7c41b4 e944e245 +0 76 1 1 1664 0 1 1 0 1 05db9164 38a947a1 cdd58a06 cb705317 25c83c98 841f6a9d 0b153874 a73ee510 3b08e48b d66168dc 1fd84fe4 54c30969 1adce6ef 93a4aa35 a08737b2 776ce399 53b5a4f2 1ed36052 32c7478e 56c60afc +1 -1 0 1 0 0 0 0 0 68fd1e64 1cfdf714 502f417b 5fe7b4d5 25c83c98 234b2838 c8ddd494 7cc72ec2 3b08e48b 37e1e439 c5825e99 132a0b80 051219e6 af56328b d910c5eb 776ce399 e88ffc9d 083e89d9 a458ea53 ebabd1c5 32c7478e 8e6654d0 cb079c2d d4f283bd +0 37 9 7 7528 28 8 27 79 3 7 05db9164 e5fb1af3 2eade7fb f9071b4d 25c83c98 860f347d 0b153874 a73ee510 6bbfd4f3 9f0003f4 a55863cc 5afd9e51 b28479f6 23287566 10c8e636 e5ba7672 13145934 98bc7d48 b1252a9d bf6dea72 32c7478e 7374b097 c243e98b b9d5a998 +0 -1 4115 0 2 0 0 1 68fd1e64 064c8f31 86974c2a 634ef51c 25c83c98 8a32280c 0b153874 a73ee510 9598fde8 7e40f08a 8e766253 1aa94af3 b28479f6 2f8d7add 4785320d 07c540c4 795b8402 21ddcdc9 b1252a9d 109e01b6 32c7478e 6d275572 001f3601 2fede552 +0 0 0 10 11 4160 407 27 18 1095 0 3 0 104 05db9164 b80912da 11a58661 c006d789 25c83c98 7e0ccccf f8008800 0b153874 a73ee510 5e1a38a1 e16bba2e d31bf6a1 b17372a1 07d13a8f 569913cf b40442ef e5ba7672 7119e567 55dd3565 5840adea 744fc103 c7dc6720 6b92a413 e8b83407 25e83f59 +0 0 5 63 18 3962 62 11 18 72 0 3 0 18 05db9164 58e67aaf 79c84135 8599e2a2 25c83c98 7e0ccccf e3b8f237 0b153874 a73ee510 aed3d80e 1aa6cf31 4f230359 3b03d76e 1adce6ef d002b6d9 7b31c46c 3486227d c21c3e4c 21ddcdc9 b1252a9d 08254b44 bcdee96c 3fdb382b b9266ff0 49d68486 +0 2 8 7 4125 10 2 7 10 1 7 05db9164 1cfdf714 ceb42001 2706679f 4cf72387 7e0ccccf 2f72cbb2 0b153874 a73ee510 1964d309 37e1e439 b8479f61 132a0b80 051219e6 af56328b 9682ae59 07c540c4 e88ffc9d 65b79aa2 a458ea53 0ac8bd07 c7dc6720 04c65aeb cb079c2d 71ba064d +1 4 2 8 4 59 4 7 8 62 1 2 2 4 05db9164 b7ca2abd ee96fc95 68ad052c 25c83c98 7e0ccccf 46e9da47 0b153874 a73ee510 89907d9b 1bb4f435 ce875433 e8d4ea40 64c94865 5f2d5a3a 5f92b84a 27c07bd6 4771e483 95b757a6 c7dc6720 41be4766 +0 2 1 8 1 27 13 2 1 1 1 1 1 05db9164 8cc9c66e 3e4271a4 10e91261 25c83c98 7e0ccccf 4feec62c 0b153874 a73ee510 3b08e48b 37fba4a7 af5ce1ed 0fd466ce 1adce6ef e296eaf8 ffda1616 07c540c4 0280dd56 21ddcdc9 b1252a9d 25609db7 32c7478e cf9f8644 2bf691b1 e914a548 +0 2 254 2 8428 0 22 55 0 22 68fd1e64 71ca0a25 cdf6abb1 d7660276 25c83c98 fbad5c96 7d9b4634 0b153874 a73ee510 7b32abaa 6aca8683 f1313990 05deade1 b28479f6 a67c19b7 30f8923d 1e88c74f 9bf8ffef 21ddcdc9 5840adea eaec45d0 c9d4222a 32c7478e 672dcbe6 001f3601 984e0db0 +1 -1 17275 3 1 0 1 1 05db9164 510b40a5 d03e7c24 eb1fd928 25c83c98 89465d46 1f89b562 a73ee510 01281f02 30b2a438 951fe4a9 aebdb575 07d13a8f 2ae4121c 8ec71479 d4bb7bd8 70d0f5f9 0e63fca0 32c7478e 0e8fe315 +1 12 6 1 7 8 7 12 7 7 1 1 7 05db9164 e112a9de 9db30a48 b3dbc908 25c83c98 fe6b92e5 af54cdc5 0b153874 a73ee510 37843f80 d0069af4 2598d8eb e920b070 ad1cc976 f1e1df0a 9ab4d6b1 e5ba7672 fdbdefe6 bbf96cac c3dc6cef 8f079aa5 +0 1 87 18 675 0 38 73 0 22 05db9164 38d50e09 6ca29110 f0da0308 25c83c98 7e0ccccf e96bb299 5b392875 a73ee510 3b08e48b 92ee270c 0869abd6 94bdca27 1adce6ef e2c18d5a ca6d17f6 776ce399 582152eb 21ddcdc9 5840adea 066228d7 32c7478e 166ad104 001f3601 6ae9621c +0 2 70 156 16 4 6 343 32 469 1 21 6 05db9164 ef69887a 12fad001 a9d25980 43b19349 7e0ccccf 29cfd71f 0b153874 a73ee510 59a08730 a4ea009a 190b2e9c 1e9339bc b28479f6 902a109f ef62c12f e5ba7672 4bcc9449 071c1933 5840adea 9b5f18b7 bcdee96c f0f70e8f e8b83407 6eefd8e9 +0 -1 194374 0 0 5 0 05db9164 5368c225 e22844b2 fadd820a 25c83c98 6f6d9be8 4b46e434 0b153874 7cc72ec2 b415a2af 95eaf7a0 2a4ef823 ccfd4002 b28479f6 5502ed6b eaead249 d4bb7bd8 a53934cb 71e3dba8 32c7478e 2cb8e5cc +0 1 -1 165 7 239 45 1 24 31 1 1 30 68fd1e64 bc84a2bc 25c83c98 7e0ccccf 9c8ed289 0b153874 a73ee510 a3e2e7a5 a7b606c4 eae197fd 1adce6ef 6a5222b4 d4bb7bd8 d632055f 21ddcdc9 5840adea 3a171ecb 001f3601 56be3401 +0 0 3 2 30389 7 1 2 7 1 2 05db9164 80e26c9b 2b0d4237 e54a1201 43b19349 95792846 37e4aa92 a73ee510 8ed1c8e6 ca4aa270 c1f563e3 7150d0d7 07d13a8f f3635baf 4777cdef d4bb7bd8 f54016b9 21ddcdc9 b1252a9d a9956266 32c7478e 2bb26daa e8b83407 87d8715a +1 1 16 9 5839 0 9 13 0 9 05db9164 78ccd99e f752189e 888a1ad9 4cf72387 d135c004 5b392875 a73ee510 273fa1f4 364e8b48 420a2536 34cbb1bc 051219e6 9917ad07 fcc63682 07c540c4 e7e991cb 083e89d9 a458ea53 a632440d 32c7478e d1edecda ea9a246c 7914bf31 +0 2 0 17 10 123 31 2 14 14 1 1 14 05db9164 207b2d81 015450da a42c24d9 4cf72387 fbad5c96 9eec359f 5b392875 a73ee510 d023b3d2 636405ac 548118bd 31b42deb 07d13a8f f3c64936 412b23b3 07c540c4 f724634a 21ddcdc9 a458ea53 a92e4560 3a171ecb 98f2c2f9 001f3601 a6308e9b +0 27 1 5 2 7 2 27 0 2 1 1 2 5a9ed9b0 1cfdf714 08574790 3c6752bd 4cf72387 fbad5c96 b8a6d129 1f89b562 a73ee510 6c47047a 474b4dbf b0ba80d0 03d0ba0e 07d13a8f f775a6d5 243d7fd9 8efede7f e88ffc9d 21ddcdc9 a458ea53 74216104 3a171ecb 1a691628 e8b83407 6b2ae7de +0 303 1 2 11593 378 2 3 182 1 2 be589b51 207b2d81 b2782575 33a38b14 25c83c98 7e0ccccf 28acc02a 0b153874 a73ee510 dad22fce f5a125f1 2250cc72 095af3d6 b28479f6 c6438ddb 78d7199d e5ba7672 fa0643ee 21ddcdc9 b1252a9d 5c1f5780 3a171ecb eff66ea0 001f3601 86af1994 +0 5 4 14 123 0 14 14 0 14 05db9164 5368c225 e22844b2 fadd820a 25c83c98 4bd081bf 0b153874 a73ee510 3b08e48b 2271d551 2a4ef823 0092602c b28479f6 70ccb37b eaead249 776ce399 b4c9444e 71e3dba8 be7c41b4 2cb8e5cc +0 0 32 2 11 1599 19 5 20 28 0 2 0 11 68fd1e64 2c16a946 77c9a33e 9f43a1b5 25c83c98 7307f77d 0b153874 a73ee510 8ffa5d97 06d58ceb 3354eff4 5b2b6068 b28479f6 3628a186 87140baa e5ba7672 e4ca448c 5af340e7 32c7478e 9117a34a +0 127 73 36 27 0 36 36 0 36 5a9ed9b0 95e2d337 fbddf1df 069422a1 25c83c98 fe6b92e5 f626266a 0b153874 a73ee510 afc4d756 5bd8a4ae d0acc950 7a3043c0 07d13a8f 4e505ea3 510069c7 1e88c74f 7b06fafe f83bc5d1 a458ea53 70a24906 ad3062eb 423fab69 fd926e96 2bf691b1 c16e5a39 +1 32 1 0 2 0 0 0 0 0 05db9164 38a947a1 25c83c98 7e0ccccf 675e81f6 0b153874 a73ee510 e5cadd10 4a77ddca dc1d72e4 b28479f6 992454dc 1e88c74f 9b82aca5 32c7478e +0 0 25 60 24 2154 109 4 23 37 0 1 24 05db9164 78ccd99e 70583f9f ca1b94b5 25c83c98 fe6b92e5 80330060 0b153874 a73ee510 076897bf d7ee407e 51175c18 1a7b6bdf 1adce6ef b00d57a8 637b0500 e5ba7672 e7e991cb cf77ac68 a458ea53 124b5c22 32c7478e c1d2c8a6 e8b83407 12af5eab +0 2 1 54 6 900 28 2 26 23 1 1 6 5a9ed9b0 09e68b86 31848b86 1142ffc0 25c83c98 7e0ccccf d2d741ca 0b153874 a73ee510 18139a78 ea4adb47 631cdeae 05781932 1adce6ef dbc5e126 03b3d683 07c540c4 5aed7436 3a1e0f5a a458ea53 db52e738 bcdee96c e1f2f603 e8b83407 311e1f0c +1 1 0 3 2 56 2 1 3 2 1 1 2 05db9164 73a46ff0 f89db90f 5a66b2e0 25c83c98 fbad5c96 7bcc368f 1f89b562 a73ee510 f26b2389 60d2afd7 34b25eee 155ff7d9 1adce6ef d57668e2 8f4762b6 d4bb7bd8 da507f45 21ddcdc9 b1252a9d 3b453869 3a171ecb 04db156f ea9a246c 965db6b1 +0 2 1 1 565 32 80 38 455 1 27 0 5bfa8ab5 ad4527a2 ebe4edfa ebc42d91 25c83c98 fe6b92e5 f98bc703 0b153874 a73ee510 3b08e48b 49bed3c6 e8c9d3fa bae8a0ab f862f261 bb91e6f3 2c52502a e5ba7672 cdfa8259 f8c88eda ad3062eb 3a171ecb 1b256e61 +0 0 12 18 4 54849 3091 0 4 87 0 0 0 4 5bfa8ab5 95e2d337 3b42f196 9fcedc56 25c83c98 3562f8da 322e63df 7cc72ec2 3b08e48b 8bc6ab4e e0d3660a 6205d58a f862f261 fe83a0f3 d4814f0d e5ba7672 7b06fafe 85684dc0 a458ea53 a5a0a586 32c7478e 45dc0576 2bf691b1 5885f980 +0 3 58 5 7 5 7 3 7 7 1 1 0 7 68fd1e64 bfdcfc4a aa8c1539 85dd697c 4ea20c7d 7e0ccccf 33cca6fa 0b153874 a73ee510 401ced54 9f7c4fc1 d8c29807 2b9fb512 b28479f6 2ed5bdad c64d548f e5ba7672 ffd53157 21ddcdc9 5840adea 5f957280 3a171ecb 1793a828 e8b83407 aa5f0a15 +1 23 20 29 22 1 2 96 32 331 1 13 2 be589b51 8947f767 6558db61 c0ae1d84 25c83c98 7e0ccccf afa309bd 5b392875 a73ee510 d17f02fe 77212bd7 61583d69 7203f04e 1adce6ef ba8b8b16 d2861de3 e5ba7672 bd17c3da af7c4727 a458ea53 9f297aed 423fab69 2a0f32b0 e8b83407 45514bad +0 -1 5382 0 12 27 0 554adfdb 403ea497 2cbec47f 3e2bfbda 25c83c98 fe6b92e5 57b4bd89 0b153874 a73ee510 3b08e48b 8ca164ab 21a23bfe ddd66ce1 07d13a8f e3209fc2 587267a3 776ce399 a78bd508 21ddcdc9 5840adea c2a93b37 3a171ecb 1793a828 e8b83407 2fede552 +1 4 -1 702 0 4 0 0 1 1 1 05db9164 510b40a5 d03e7c24 eb1fd928 25c83c98 1c63b114 0b153874 a73ee510 daea64eb 67841877 951fe4a9 781f4d92 07d13a8f 2ae4121c 8ec71479 e5ba7672 70d0f5f9 0e63fca0 32c7478e 0e8fe315 +1 12 -1 0 0 0 39 0 1 2 5 2 0 68fd1e64 942f9a8d c4102d7e 055a533b 25c83c98 6f6d9be8 d3f2ae29 0b153874 a73ee510 0e9ead52 c4adf918 38a9c25c 85dbe138 b28479f6 ac182643 22056f7f 8efede7f 1f868fdd f44bef3c b1252a9d f613cf49 32c7478e 46008b41 001f3601 a329b171 +0 1 2 2 68fd1e64 38a947a1 c4b406e2 bf536db3 25c83c98 08383675 0b153874 7cc72ec2 3b08e48b 727af3e2 e8a073ad 49fe3d4e cfef1c29 27142931 489b1305 2005abd1 e8623312 e106ec2a be7c41b4 b889075b +0 0 0 3 2 2704 57 14 39 379 0 7 2 05db9164 1cfdf714 e6e27dad 3fb0423c 4cf72387 fbad5c96 7195046d 0b153874 a73ee510 eab78bab 4d8549da 3e66a3d1 51b97b8f 1adce6ef f3002fbd 7060d96c e5ba7672 e88ffc9d 2b558521 a458ea53 2d82f372 bcdee96c b4180aa9 cb079c2d c21b0848 +0 2 11 56 11439 0 4 1952 0 59 05db9164 38d50e09 ae06bf90 b125f81c f281d2a7 fbad5c96 894ba00a 062b5529 a73ee510 3b08e48b 62750746 c15e7f3e 48b975db b28479f6 7501d6be 98334731 776ce399 f855e3f0 21ddcdc9 5840adea 845453b6 ad3062eb be7c41b4 ce327ac7 001f3601 09dd415c +0 1559 52 1 6527 43 1 4 43 1 0 2 5a9ed9b0 c5fe64d9 a77de3c0 13508380 4cf72387 13718bbd 4597ba5c 0b153874 a73ee510 c4ef13b3 9a660f03 ded3bc39 3dffcbec 07d13a8f 52b49730 c4e96338 d4bb7bd8 c235abed 2b558521 a458ea53 d629cfd5 c7dc6720 45ab94c8 46fbac64 c84c4aec +0 14 0 2 3 53 3 140 4 74 1 20 1 3 05db9164 89ddfee8 54532b9e c2fcecf6 25c83c98 407438c8 0b153874 a73ee510 e7ba2569 755e4a50 0cd85e45 5978055e 1adce6ef 34cce7d2 0d464010 27c07bd6 5bb2ec8e f30f7842 b1252a9d cf49b51b 32c7478e 38be899f f0f449dd 9bef54fd +0 0 4 2 5 2383 8 7 5 52 0 2 5 68fd1e64 287130e0 3e118a23 cc81e0f4 25c83c98 3598a741 1f89b562 a73ee510 42429aab 1d351a39 f0491513 90a568bc f7c1b33f f0346a51 dbd1efc4 e5ba7672 616484f3 ec1695e7 b1252a9d a84cc573 32c7478e 51c4b920 ea9a246c 94210a41 +0 0 5 11 1 5264 708 6 49 221 0 2 19 241546e0 a796837e 08de7b18 97ce69e9 25c83c98 7e0ccccf ade953a9 5b392875 a73ee510 b118f931 29e4ad33 c5011072 80467802 cfef1c29 98eddd86 5a9431f3 e5ba7672 e90118d1 e754c5e1 3a171ecb 8fc66e78 +1 25 3133 1 106 5 25 5 5 2 2 5 5bfa8ab5 2ae0a573 af21d90e dc0a11c7 25c83c98 7e0ccccf afa309bd 5b392875 a73ee510 0042ccac 77212bd7 a4425bd8 7203f04e 5aebfb83 f0d65d05 41bec2fe e5ba7672 f2fc99b1 95ee3d7a c7dc6720 7836b4d5 +0 1 0 1 2 793 29 1 3 4 1 1 2 05db9164 68b3edbf d032c263 c18be181 25c83c98 7e0ccccf 5a91237e 0b153874 a73ee510 9685e7f5 59cd5ae7 dfbb09fb 8b216f7b b28479f6 f1ab5b11 84898b2a d4bb7bd8 58681afc 0014c32a 32c7478e 3b183c5c +0 2 2 4 0 47 0 4 4 13 1 2 0 68fd1e64 4f25e98b c46f5889 252e41fc 25c83c98 07d03e2a 0b153874 a73ee510 547c0ffe 7f8ffe57 8ece5502 46f42a63 07d13a8f dfab705f a111517a 3486227d 7ef5affa 473e5032 a458ea53 7e692afc 32c7478e 3fdb382b 001f3601 49d68486 +0 -1 101476 0 0 0 0 05db9164 38a947a1 25c83c98 6f6d9be8 80de4e5b 5b392875 7cc72ec2 aa6679e1 a83e53ab 01305c64 b28479f6 fbdefa0e 1e88c74f 2a516540 32c7478e +0 2 104 7 0 768 21 2 20 19 1 1 2 5a9ed9b0 a0e12995 ba5b9d04 df949b4c 25c83c98 7e0ccccf d9f4e70f 37e4aa92 a73ee510 798e29c0 da89cb9b 8d8e9b65 165642be b28479f6 83763c20 f5d1d3a4 07c540c4 1616f155 21ddcdc9 5840adea 2654878c c9d4222a 32c7478e 3ff9ab8d 9b3e8820 e75c9ae9 +0 5 7 7 10736 244 38 9 151 5 0 7 05db9164 1612be27 157695d9 8f98628f 4cf72387 7e0ccccf 1cebe213 0b153874 a73ee510 20bb74cf 1054ae5c 83d7d5c2 d7ce3abd 07d13a8f cbffe0e5 7fd23f14 e5ba7672 ce500fd8 21ddcdc9 5840adea 307b6d5e 423fab69 18de9e19 cb079c2d 01c838a0 +1 1 0 1 10 24 22 1 11 10 1 1 10 05db9164 5368c225 e22844b2 fadd820a 25c83c98 fe6b92e5 46e95fd4 0b153874 a73ee510 3b08e48b f5f5efa3 2a4ef823 32d3f313 cfef1c29 ddcd2653 eaead249 d4bb7bd8 06762f0b 71e3dba8 be7c41b4 2cb8e5cc +0 2 -1 167 0 2 0 0 1 1 05db9164 38a947a1 4385e7c4 0a5de462 25c83c98 fbad5c96 22ff0182 37e4aa92 a73ee510 3440d43b 48e01e3c 5565c8ef 613b2c28 07d13a8f e6cf16bc 8d04fe7d 07c540c4 6a2d2873 437c4394 32c7478e 3e1dcafc +0 0 8 28 17 1956 27 14 27 27 0 1 17 05db9164 92f101be 02342845 b8e42c74 43b19349 7e0ccccf 5e64ce5f 5b392875 a73ee510 0f329c81 8b94178b 07bdbe6b 025225f2 cfef1c29 6813f031 d797b346 e5ba7672 20157126 21ddcdc9 5840adea fdc4f2dd 32c7478e 9149f647 001f3601 074bb89f +1 15 68 8 8 5 6 21 26 29 2 3 6 05db9164 4f25e98b 3d735a03 180370f8 25c83c98 fbad5c96 1bd5e279 0b153874 a73ee510 3b08e48b b7bb9e4d 8142fa2b c2d489b5 1adce6ef 17d9b759 4e915dc9 e5ba7672 7ef5affa 21ddcdc9 a458ea53 f41b63a2 ad3062eb 423fab69 25252fbe 001f3601 a883d797 +0 0 1 0 6 9 0 68fd1e64 38a947a1 67400e67 6a14f9b9 b2241560 7e0ccccf 88002ee1 5b392875 7cc72ec2 3b08e48b f1b78ab4 ca2f5ae7 6e5da64f 07d13a8f 46df822a f8b34416 2005abd1 c9ac134a f3ddd519 32c7478e b34f3128 +0 107 2 3 18753 0 8 3 0 8 87552397 efb7db0e 8188971b b025b0a6 4cf72387 7e0ccccf afa309bd 5b392875 a73ee510 8f7933e7 77212bd7 98d10c2b 7203f04e 07d13a8f f033fb80 010b4748 e5ba7672 4903cd40 bb8cbb23 c7dc6720 8ec48ff8 +0 -1 25103 58 1 0 54 1 68fd1e64 512fdf0c fc1cad4b 40ed41e5 25c83c98 7e0ccccf a25cceac 5b392875 a73ee510 a1f1f8e6 5bee5497 153ff04a a57cffd3 b28479f6 fc29c5a9 1bf03082 e5ba7672 fd3919f9 21ddcdc9 5840adea 84ec2c79 32c7478e a415643d 724b04da c4304c4b +0 57 41 28 34 0 24 830 0 27 68fd1e64 38a947a1 9350ed95 a33c37d0 25c83c98 fe6b92e5 788ff59f 0b153874 a73ee510 3b08e48b 9c9d4957 4ce8fca6 9325eab4 b28479f6 ff933175 6ee8f7b4 776ce399 e1e3d16a 700fd15f 32c7478e a6e8741e +0 0 0 3 3 14787 164 5 13 218 0 2 0 3 05db9164 c6000c21 d032c263 c18be181 25c83c98 fbad5c96 c70d17e2 25239412 a73ee510 b916cb08 d3e650fb dfbb09fb c467e219 07d13a8f eb8600ba 84898b2a 3486227d 7f98f2d9 0014c32a 3a171ecb 3b183c5c +0 9 438 76 26 40 26 15 28 36 1 2 26 68fd1e64 942f9a8d d6c8cd68 e14ec145 4cf72387 49b74ebc 233428af a73ee510 726f00fd c4adf918 380852e3 85dbe138 b28479f6 ac182643 6939a36e 07c540c4 1f868fdd f44bef3c b1252a9d 3eb92d64 32c7478e cbb6c44f 001f3601 febc73a5 +0 2 9 1 3 444 16 9 16 77 1 4 3 05db9164 38a947a1 4cf72387 7e0ccccf 042827b7 5b392875 a73ee510 3b08e48b 5ba8ac16 262ac3d4 b28479f6 d82a1750 e5ba7672 43e64261 bcdee96c +0 1 5 2 2243 5 5 2 145 5 2 05db9164 1cfdf714 d0596a9d 880bc1f4 25c83c98 7e0ccccf 46fff0b1 0b153874 a73ee510 f7448958 d2467c8e f54e70b4 5774a041 b28479f6 d355626a 9cbd4e32 e5ba7672 6a74e011 a9d84a0c a458ea53 e9127477 ad3062eb bcdee96c 7939255b cb079c2d bc33111f +0 0 15 1 56280 0 11 1 0 11 05db9164 4f25e98b 310cb3f5 750a210e 4cf72387 7e0ccccf 35a5c393 0b153874 7cc72ec2 7d0c517d 276be673 e4db7041 e8400e63 07d13a8f dfab705f 0b8e6236 e5ba7672 7ef5affa 21ddcdc9 a458ea53 252be7b8 3a171ecb 758ec4a1 e8b83407 7274d156 +0 2 6 44013 0 6 24 0 6 05db9164 0a519c5c 02cf9876 c18be181 25c83c98 7e0ccccf 78c469af 5b392875 a73ee510 acce978c 7905be9a 8fe001f4 546a84fe 1adce6ef 5d045d38 36103458 1e88c74f 416e8695 e587c466 c9d4222a 32c7478e 3b183c5c +1 22 66 20430 0 68fd1e64 38a947a1 a33d847d fcf7d979 25c83c98 e0b15dbe 5b392875 a73ee510 9db629ff a284f9c4 60cc9f12 96e0fe79 8ceecbc8 b73b928d 03ce4bc8 d4bb7bd8 cbd13810 a33cea43 32c7478e 0fd7ea38 +0 0 1 5 5937 176 7 9 97 1 30 8cf07265 ae46a29d 28f1acbb f922efad 4cf72387 fbad5c96 68e35846 0b153874 a73ee510 cfa43925 bfd3f296 b68736b0 a5cf8381 b28479f6 98a7a09e e2e2fcd9 e5ba7672 6eb2b18a b964dee0 bcdee96c b34f3128 +0 5 81 2 3 10 4 35 3 138 2 7 1 3 05db9164 d4be07ad e6c29cc2 e230cfa2 25c83c98 fbad5c96 f01779eb 0b153874 a73ee510 5d6f6fc3 0f1fa8b8 ce1df2f3 e4e9ce3a b28479f6 98fca9df 0cfecc91 3486227d cbae5931 6ef46a75 5840adea 44ba9576 ad3062eb bcdee96c b2f178a3 001f3601 938732a0 +0 0 6 180 0 12 11 0 11 68fd1e64 f0cf0024 6f67f7e5 41274cd7 25c83c98 3bf701e7 c31847f5 5b392875 a73ee510 3b08e48b a12fca95 623049e6 9b9e44d2 1adce6ef 55dc357b c92f3b61 776ce399 b04e4670 21ddcdc9 5840adea 60f6221e be7c41b4 43f13e8b ea9a246c 731c3655 +0 19 4 4 0 4 4 0 4 05db9164 e112a9de af5655e7 22504558 25c83c98 3bf701e7 d63e00ae 0b153874 7cc72ec2 3b08e48b 914b4ebb 252162ec 83b2c411 1adce6ef 3ac25d07 776f5665 2005abd1 45e3284c 5c7c443c c9d4222a be7c41b4 8f079aa5 +0 4 2 3 189269 0 7 5 0 3 9684fd4d d833535f d032c263 c18be181 43b19349 7e0ccccf 863329da 0b153874 7cc72ec2 a06e334d a89c45cb dfbb09fb a4fafa5b 07d13a8f 827fae3a 84898b2a d4bb7bd8 42a2edb9 0014c32a c7dc6720 3b183c5c +0 1 0 93 57 31 60 1 30 57 1 1 1 57 05db9164 207b2d81 74e1a23a 9a6888fb 25c83c98 7e0ccccf 4aa938fc 1f89b562 a73ee510 9e89877f 7e40f08a fb8fab62 1aa94af3 b28479f6 231f3923 c6b1e1b2 3486227d 25935396 21ddcdc9 5840adea 99c09e97 3a171ecb 335a6a1e 001f3601 8d8eb391 +0 2 1 15 1537 23 6 21 45 0 4 21 68fd1e64 08d6d899 ad4b77ff d16679b9 25c83c98 19945f93 0b153874 a73ee510 3b08e48b cb9c5260 a2f4e8b5 878084bf b28479f6 bfef54b3 89052618 e5ba7672 87c6f83c d4703ebd 32c7478e aee52b6f +1 0 52 6 6 4426 137 3 33 122 0 1 6 05db9164 fc1fa80d 841fa579 45e7b9c6 25c83c98 6f6d9be8 24eeddcb 0b153874 a73ee510 3b08e48b 826459d0 902ac8b1 bbf281ce b28479f6 4ce39685 ff5a027e e5ba7672 f68751cd e27d6c43 32c7478e 1793a828 +0 0 3 55 6 33160 0 6 3 0 0 6 05db9164 0468d672 74e1a23a 9a6888fb 4cf72387 fbad5c96 91992e62 0b153874 7cc72ec2 711ec2bc 40862c01 fb8fab62 0f39538f b28479f6 60a23d23 c6b1e1b2 e5ba7672 124c6b00 21ddcdc9 b1252a9d 99c09e97 32c7478e 335a6a1e ea9a246c aa5f0a15 +0 0 6 8 11 3084 94 4 32 182 0 2 11 05db9164 09e68b86 c15d0166 d183f0df 25c83c98 13718bbd 622305e6 1f89b562 a73ee510 e70742b0 319687c9 1aa90c8f 62036f49 07d13a8f 36721ddc 38a6ccd8 e5ba7672 5aed7436 1d1eb838 a458ea53 fad3fae8 423fab69 d3819f1b e8b83407 72a32dbb +0 0 28 17 6305 72 24 20 42 1 0 18 05db9164 58e67aaf 4432f0cf 10e57cad 4cf72387 7e0ccccf 8fb5446a 0b153874 a73ee510 7ef432eb 59cd5ae7 b38ed346 8b216f7b 051219e6 d83fb924 944de8be e5ba7672 c21c3e4c 92524a76 a458ea53 51e745b9 32c7478e ed24533e 9b3e8820 e0ce8976 +0 2 1 12 3 686 3 2 3 3 1 1 3 5bfa8ab5 58e67aaf 569e41a1 167ce481 25c83c98 7e0ccccf d9f4e70f 5b392875 a73ee510 ccf7004a da89cb9b 65b7bbf1 165642be 07d13a8f 10935a85 4a504886 07c540c4 c21c3e4c 21ddcdc9 a458ea53 5105d834 ad3062eb 32c7478e 03955d00 9b3e8820 7ebbdf14 +0 1 11 32682 39 2 0 6 2 68fd1e64 d7988e72 34aa68b8 65dd820e 25c83c98 5f29da0e 0b153874 a73ee510 c639d0e6 0ad37b4b 60855c8f f9d99d81 f862f261 693190ee b7a2c65f 07c540c4 0f2f9850 e22752c5 b1252a9d 2342788f 32c7478e 3fdb382b e8b83407 49d68486 +0 22 22 6 39008 0 19 28 0 6 5a9ed9b0 207b2d81 c1102de8 5ce5db23 a9411994 fe6b92e5 dc63c936 0b153874 a73ee510 3b08e48b 53b6a492 4866f28f d1019a93 b28479f6 3c767806 f073b53c 776ce399 395856b0 21ddcdc9 a458ea53 3aead2c1 be7c41b4 6a22210d 001f3601 70f53519 +1 2 38 43 1 38 125 24 25 382 0 5 1 05db9164 80e26c9b b0d25aff 85dd697c 25c83c98 13718bbd 124131fa 0b153874 a73ee510 dfc627e4 9ba53fcc 865cd715 42156eb4 07d13a8f e8f4b767 2d0bbe92 e5ba7672 005c6740 21ddcdc9 5840adea 0c58862c 3a171ecb 1793a828 e8b83407 b9809574 \ No newline at end of file diff --git a/utils/envs.py b/utils/envs.py new file mode 100644 index 0000000000000000000000000000000000000000..e68683e2ea87942aa6fda4c78754c8180825c2e2 --- /dev/null +++ b/utils/envs.py @@ -0,0 +1,25 @@ +import os + + +def encode_value(v): + return v + + +def decode_value(v): + return v + + +def set_global_envs(yaml, envs): + for k, v in yaml.items(): + envs[k] = encode_value(v) + + +def get_global_env(env_name): + """ + get os environment value + """ + if env_name not in os.environ: + raise ValueError("can not find config of {}".format(env_name)) + + v = os.environ[env_name] + return decode_value(v)