often преди 5 месеца
родител
ревизия
4b5a143e47

+ 100 - 0
recommend-model-produce/src/main/python/models/wide_and_deep_dataset/data/part-0

@@ -0,0 +1,100 @@
+0	2	0			957	45	2	36	45	1	1			05db9164	532da141			25c83c98	7e0ccccf	a24c8c8e	0b153874	a73ee510	2e8e8e87	41b3f655		ce5114a2	cfef1c29	abd8f51e		07c540c4	bdc06043				c9d4222a	32c7478e			
+0	0	53	7	7	3975	118	7	42	125	0	2		7	05db9164	421b43cd	a5866a2d	29998ed1	25c83c98	7e0ccccf	dc7659bd	0b153874	a73ee510	03e48276	e51ddf94	6aaba33c	3516f6e6	b28479f6	2d0bb053	b041b04a	e5ba7672	2804effd			723b4dfd		3a171ecb	b34f3128		
+0		6	2	0	31		0	0	0		0		0	05db9164	207b2d81	45be6cde	12f4ddf4	25c83c98	7e0ccccf	38eb9cf4	5b392875	a73ee510	f6f942d1	7f8ffe57	cc2a128e	46f42a63	b28479f6	899da9d5	d604ae35	1e88c74f	25c88e42	21ddcdc9	a458ea53	0bede81d	ad3062eb	32c7478e	8539ffbf	001f3601	c38250b6
+0	0	0	1	1	15395	386	5	1	286	0	5		1	5a9ed9b0	8db5bc37	da5fcf9d	9ee19407	43b19349	6f6d9be8	ff6b8352	0b153874	a73ee510	66581c5b	15eced00	8db6c305	bd251a95	64c94865	b4a59bc6	46ee2cca	e5ba7672	821c30b8			4f5bc5bf		32c7478e	7cff0908		
+0	1	0	1	5	122	5	4	15	16	1	2	0	5	05db9164	90081f33	a32e5301	05bbc70d	25c83c98	fe6b92e5	dda1fed2	0b153874	a73ee510	4ce8f99f	7f8ffe57	6c339dfb	46f42a63	64c94865	98995c3b	a4eb16fd	e5ba7672	7181ccc8			3404a71d		3a171ecb	cd7bf52a		
+1	1	0	15	10	1432	89	2	37	69	1	2		10	be589b51	38d50e09	e65d85e1	837cde00	43b19349	7e0ccccf	051659fe	0b153874	a73ee510	df41254d	84eb4210	3bcba45c	5fffcbe5	b28479f6	7501d6be	9cbaae80	07c540c4	f855e3f0	21ddcdc9	5840adea	6ba01fc4		32c7478e	afb24112	001f3601	aa5f0a15
+1	8	1	1	0	28	0	8	0	0	1	1		0	5a9ed9b0	4f25e98b	c273ad95	c91dd596	25c83c98	fbad5c96	b3ddf65a	0b153874	a73ee510	43a17f3d	e973bfd7	3ce47b07	439cd4cc	051219e6	b6dcf31f	8ceec535	e5ba7672	7ef5affa	5b885066	a458ea53	77fad21b	ad3062eb	32c7478e	8eb4ac8d	001f3601	e9e9ecb0
+0	1	33		7	1252	34	1	13	63	1	1		8	5a9ed9b0	b56822db	3f7d0844	da13cca9	25c83c98	13718bbd	4aa938fc	0b153874	a73ee510	451bd4e4	7e40f08a	7dcc3969	1aa94af3	07d13a8f	e2876dac	354a37d9	e5ba7672	38dce391	21ddcdc9	b1252a9d	7b877178		32c7478e	f2e9f0dd	001f3601	6c27a535
+0	0	2			3746	162	3	3	113	0	1			05db9164	38d50e09	1475848f	486da071	5a3e1872	13718bbd	83be4a6a	37e4aa92	a73ee510	802a7512	d9b1e3ff	5dddd37d	cd98af01	07d13a8f	e24ff4c6	bbc2ca43	07c540c4	f855e3f0	21ddcdc9	5840adea	e8ef1267		3a171ecb	b2f178a3	001f3601	c3546e32
+0		345	3	4	35324	219	14	5	202		1		4	05db9164	2c16a946	dafcaa19	ec142e08	25c83c98	7e0ccccf	ca280131	0b153874	a73ee510	3b08e48b	868a9e47	f57cde97	fc5dea81	07d13a8f	18231224	e496e010	e5ba7672	74ef3502			c606b8ba		423fab69	9117a34a		
+0		47	2	4	2751	6	22	5	6		3	0	4	68fd1e64	dde11b16	63f98b5e	8cc7b33b	25c83c98	fe6b92e5	57ef5d40	1f89b562	a73ee510	cce72b25	6ae20392	7becd6e7	78644930	b28479f6	53c5f305	eca39129	e5ba7672	43dfe9bd			cf158609	ad3062eb	dbb486d7	10b3e56d		
+0		8	30	7	2828		0	38	49		0		10	68fd1e64	b56822db	7da86e4b	b733e495	25c83c98	13718bbd	dcc1b63d	5b392875	a73ee510	46a7deb3	731cd88c	ed397d6b	34d253f7	b28479f6	a9d1ba1a	056d8866	1e88c74f	38dce391	21ddcdc9	b1252a9d	deaf6b52		32c7478e	d9556584	001f3601	6c27a535
+0	0	75			28293	227	4	6	370	0	3			98237733	a0baa1e8	91405292	84e93084	4cf72387	fbad5c96	ad3508b1	5b392875	a73ee510	79f15f43	ad757a5a	f2ae7fb8	93b18cb5	32813e21	cb1612e3	89f3e9bc	e5ba7672	3735c118			0b446b76	ad3062eb	c7dc6720	80c73723		
+0	1	185	1	0	0	0	1	0	0	1	1		0	87552397	b56822db	7da86e4b	b733e495	25c83c98	7e0ccccf	003baf94	0b153874	a73ee510	bde51b15	e973bfd7	ed397d6b	439cd4cc	b28479f6	a9d1ba1a	056d8866	d4bb7bd8	38dce391	21ddcdc9	b1252a9d	deaf6b52	ad3062eb	bcdee96c	d9556584	001f3601	6c27a535
+0	0	-1			3827	17	10	4	46	0	1	1		05db9164	8084ee93	02cf9876	c18be181	25c83c98	fbad5c96	07d03e2a	0b153874	a73ee510	49d1ad89	7f8ffe57	8fe001f4	46f42a63	07d13a8f	422c8577	36103458	3486227d	52e44668			e587c466		32c7478e	3b183c5c		
+1		0	12	8	2551	49	19	8	27		1	0	8	68fd1e64	d7988e72	897faa69	ddf2b58b	25c83c98	7e0ccccf	7df3abb9	0b153874	a73ee510	3b08e48b	83dba508	54943d67	09cd9f24	07d13a8f	194c42a4	0c1c9401	3486227d	0f2f9850	21ddcdc9	a458ea53	2bbcc5d0	c9d4222a	32c7478e	3fdb382b	445bbe3b	49d68486
+0	0	2	2	1	7367	680	1	22	191	0	1		1	68fd1e64	8db5bc37	6fdb098b	f181ea30	25c83c98	fe6b92e5	18ffd618	37e4aa92	a73ee510	e286f1e6	fd7856c1	2bdfd009	6a430a5b	64c94865	007fa274	aaede3da	e5ba7672	e7c97dee			fcd1a962		3a171ecb	b7c6f617		
+0		-1			39870			0						05db9164	b961056b	961d73a9	06b1cf6e	25c83c98	7e0ccccf	49042125	0b153874	7cc72ec2	7e0d83d4	ba1ff80a	d4fbf673	b95f83fa	ab7390e9	dd244129	20340c29	1e88c74f	8222ff64			d4fa2b9c		3a171ecb	0ff91809		
+0		606	21	3	1211		0	41	41		0		9	5bfa8ab5	207b2d81	e48e5552	9ddc492e	25c83c98		49eb0b1a	0b153874	a73ee510	b14d9951	2839b07a	e5e1ca92	383a5973	b28479f6	3c767806	29fd6b7b	1e88c74f	395856b0	21ddcdc9	b1252a9d	e5191f27		bcdee96c	c23c2e19	001f3601	3d04cc90
+0	2	1	2	1	159	7	7	7	58	2	4		1	17f69355	f3b07830	3f6f79a2	5327e675	4cf72387	7e0ccccf	38ae26b9	5b392875	a73ee510	42635bfd	aadb87b9	2cc77b94	e9332a03	64c94865	b64212a7	87343f95	e5ba7672	048d01f4			6549ede4		3a171ecb	c657e6e5		
+1	7	1	5	7	0	0	13	9	10	1	2		0	05db9164	6887a43c	7eb22712	ef4fd7f1	25c83c98	fe6b92e5	c0251c88	5b392875	a73ee510	c510044d	ada36e89	c71493ed	c63ea0b4	cfef1c29	9221b8f3	92e4b1e3	e5ba7672	08ed8a1c	21ddcdc9	b1252a9d	9adaf9fb	c9d4222a	55dd3565	b43c75ff	445bbe3b	7826e9ae
+0		-1			126865		0	3	1		0			05db9164	38a947a1	353686f2	f7263320	43b19349	fbad5c96	a2f7459e	0b153874	7cc72ec2	d3787b55	15eced00	317bfd7d	bd251a95	07d13a8f	2ab464b7	1689e4de	e5ba7672	90b7bec5			dc55d6df	ad3062eb	3a171ecb	aa0115d2		
+0	0	616	1	6	2473	88	2	49	71	0	1		20	05db9164	c76014f5	df00c4f0	031bba14	b0530c50	7e0ccccf	0808742e	5b392875	a73ee510	ca82d9dd	2115d03b	336bb1d7	40dfba03	b28479f6	a46c3543	631f0045	07c540c4	93b0d1d7			1fe472e2		32c7478e	89bd83a1		
+1		563	3	2	12500	47	4	2	50		1		2	05db9164	403ea497	2cbec47f	3e2bfbda	25c83c98		f33e4fa1	37e4aa92	a73ee510	e029047e	7b5deffb	21a23bfe	269889be	b28479f6	91f74a64	587267a3	e5ba7672	a78bd508	21ddcdc9	5840adea	c2a93b37		32c7478e	1793a828	e8b83407	2fede552
+0	1	16	13	5	187	32	1	32	32	1	1	0	5	05db9164	4f25e98b	557a2bcb	2e17d6f6	25c83c98	7e0ccccf	ee805808	6c41e35e	a73ee510	0f1ee62c	0601c4d9	2c934d21	c4bf1f3a	07d13a8f	5cedaf14	949bfd42	d4bb7bd8	c04ce6df	5e89f4c8	b1252a9d	20562a99	ad3062eb	32c7478e	9117a34a	001f3601	54ca28ff
+0	0	21	2	2	53	21	8	2	36	0	1		2	05db9164	c1384774	24c93e37	d772d0ec	25c83c98	fbad5c96	e31fb017	0b153874	a73ee510	3b08e48b	d0727572	5662d3e8	16aa5daa	b28479f6	59e23b95	3f6a5fd0	776ce399	658dca4c	21ddcdc9	b1252a9d	3ba1c760	ad3062eb	32c7478e	ecc32110	ea9a246c	36e3666f
+0		1	3	4	211885		0	10	2		0		4	241546e0	d833535f	ad4b77ff	d16679b9	25c83c98	fbad5c96	74752b9b	0b153874	7cc72ec2	8b324596	3db1963c	a2f4e8b5	5dd86246	07d13a8f	943169c2	89052618	e5ba7672	281769c2			d4703ebd	ad3062eb	be7c41b4	aee52b6f		
+0		94			9679	0	1	0	0		1			68fd1e64	65ad571e	b72b7c0f	6c83c769	4cf72387	fe6b92e5	c9a05643	062b5529	a73ee510	157764b8	21c80bff	9c080521	4e215042	ad1cc976	49522e06	7ab65ac2	d4bb7bd8	6e284837			85ce55bd		c3dc6cef	5fca8ab2		
+0	0	21		4	2383	41	2	19	21	0	1	0	4	05db9164	8084ee93	02cf9876	c18be181	25c83c98	3bf701e7	d20b75da	0b153874	a73ee510	efea433b	ab147b82	8fe001f4	66110d1b	1adce6ef	5d922427	36103458	27c07bd6	003d4f4f			e587c466		bcdee96c	3b183c5c		
+0	0	4	19	31	2508	106	1	16	103	0	1		31	41edac3d	a5b69ae3	f84d40ab	78a5bd6a	25c83c98	7e0ccccf	354d03e6	0b153874	a73ee510	255f3655	3bcfd189	55ffe9ca	077640f4	1adce6ef	603a2e9e	4c63632d	d4bb7bd8	a1654f4f	21ddcdc9	5840adea	901b12ea		32c7478e	08b0ce98	2bf691b1	984e0db0
+0		1	136	19	11309	157	6	29	72		2		22	05db9164	58e67aaf	08083030	b7fbbe67	25c83c98	fbad5c96	7d63bf49	5b392875	a18233ea	c9f77507	c389b738	246cf651	d7ccab4e	07d13a8f	10935a85	b7b7ce5d	d4bb7bd8	c21c3e4c	3aae8792	a458ea53	8d0ca54e		c7dc6720	bf282e2d	9b3e8820	d576a861
+0	0	274	3	8	56	36	4	16	24	0	2		8	09ca0b81	4f25e98b	5caa38df	25f92f9d	25c83c98	fe6b92e5	c480abf1	0b153874	a73ee510	32390b96	df29f7bb	dd0abd1f	67b031b4	1adce6ef	fb2772ea	ec486b81	e5ba7672	bc5a0ff7	af7c4727	a458ea53	c7d0e43d	ad3062eb	bcdee96c	9dd84531	001f3601	ae47080f
+0	0	-1			3951	117	1	21	39	0	1	0		05db9164	403ea497	2cbec47f	3e2bfbda	4cf72387		7b26d3fe	0b153874	a73ee510	fa7d0797	043725ae	21a23bfe	7f0d7407	b28479f6	91f74a64	587267a3	d4bb7bd8	a78bd508	21ddcdc9	a458ea53	c2a93b37		3a171ecb	1793a828	e8b83407	2fede552
+0		1			4031		0	0	2		0			05db9164	e112a9de	9db30a48	b3dbc908	25c83c98	7e0ccccf	952279fd	5b392875	a73ee510	0cd894de	c22febf3	2598d8eb	5a504385	ad1cc976	f1e1df0a	9ab4d6b1	e5ba7672	fdbdefe6			bbf96cac	c9d4222a	c3dc6cef	8f079aa5		
+0		-1						0						05db9164	d833535f	77f2f2e5	d16679b9	25c83c98	fe6b92e5	970f01b2	37e4aa92	7cc72ec2	3b08e48b	36bccca0	9f32b866	80467802	07d13a8f	943169c2	31ca40b6	2005abd1	281769c2			dfcfc3fa		3a171ecb	aee52b6f		
+0	7	-1	327	3	1414	97	30	15	37	0	3		3	8cf07265	80e26c9b	9ecdca34	85dd697c	25c83c98	7e0ccccf	89391314	0b153874	a73ee510	d8a1c4f1	608452cc	f6b6edb8	cbb8fa8b	07d13a8f	e8f4b767	2d0bbe92	e5ba7672	005c6740	21ddcdc9	b1252a9d	eccbec78	c9d4222a	32c7478e	1793a828	e8b83407	9904c656
+0		1	8	4	1094		0	48	352		0		15	5a9ed9b0	08d6d899	9143c832	f56b7dd5	f281d2a7	7e0ccccf	76fc09f3	0b153874	a73ee510	3b08e48b	0b60ef54	ae1bb660	0721132d	07d13a8f	41f10449	bad5ee18	1e88c74f	698d1c68			0429f84b		be7c41b4	c0d61a5c		
+0	2	1	10		1186	5	40	6	275	1	13	0		87552397	78ccd99e	c109d265	52e9fdb4	25c83c98	fbad5c96	81f7f73c	5b392875	a73ee510	ebcc4ac8	6263d404	7b2da99a	aa1eb12e	051219e6	9917ad07	f85ed40e	e5ba7672	e7e991cb	f44bef3c	a458ea53	0f53d505		32c7478e	02666583	001f3601	86884549
+0	2	-1			99	1	2	1	1	1	1			05db9164	537e899b	5037b88e	9dde01fd	25c83c98	fe6b92e5	d5276ad8	0b153874	a73ee510	3b08e48b	1c80d81c	680d7261	0b1e410e	07d13a8f	14be02cc	c0673b44	07c540c4	65979fb7			e049c839		32c7478e	6095f986		
+1	4	1		5	1	0	4	45	44	2	2		0	05db9164	5dac953d	d032c263	c18be181	4cf72387	7e0ccccf	9b98e9fc	0b153874	a73ee510	2462946f	7f8ffe57	dfbb09fb	46f42a63	64c94865	ed807c25	84898b2a	e5ba7672	b79acaab			0014c32a		32c7478e	3b183c5c		
+1	1	27	2	4	1	2	21	8	66	1	3		2	05db9164	38a947a1	4470baf4	8c8a4c47	384874ce	fbad5c96	10cfa4ce	0b153874	a73ee510	72ce33ff	d0c3ead8	bb669e25	a7de95c2	b28479f6	8691120a	2b2ce127	e5ba7672	b133fcd4			2b796e4a		bcdee96c	8d365d3b		
+0	0	59		1	25398		0	19	10	0	0		1	68fd1e64	a796837e	af48fb08	e3cc371a	25c83c98	7e0ccccf	9a68af50	0b153874	7cc72ec2	b2ebcf4d	c4bd1c72	c78e8461	bcfc54a9	07d13a8f	870efc17	c4de5bba	07c540c4	9de259c3			7a593b43	c9d4222a	c7dc6720	8fc66e78		
+0		14	7	3	43236	78	0	15	52		0		3	05db9164	f8c8e8f8			89ff5705	7e0ccccf	1e3bdb1b	0b153874	a73ee510	8a99abc1	4352b29b		5f4de855	b28479f6	b15b8172		e5ba7672	d2f0bce2	21ddcdc9	5840adea			bcdee96c		f55c04b6	56be3401
+1	7	2	1	1	201	1	10	7	21	2	4		1	291b7ba2	333137d9	d577be04	26d1c179	25c83c98		e3e366c8	0b153874	a73ee510	e1a2ef0f	c6efad65	0a665a51	63db155e	1adce6ef	63ac89c1	bc19fa9c	e5ba7672	c61e82d7	21ddcdc9	b1252a9d	3e120d5e		32c7478e	98276f90	445bbe3b	38a0a8f1
+0	6	6	17	5	37	5	6	5	5	1	1		5	05db9164	65ad571e	06007265	7eafc40d	25c83c98	fe6b92e5	dcdd8d42	0b153874	a73ee510	e1a2ef0f	c1700682	6ed9dde9	0c66bf77	ad1cc976	49522e06	2759daf4	e5ba7672	6e284837			9d0b86ed		c3dc6cef	5fca8ab2		
+0	2	55	26	19	30	39	2	22	20	1	1		19	50d4de26	0b8e9caf	f95a3480	24031442	25c83c98	fe6b92e5	649c7ded	0b153874	a73ee510	60dca7a3	175d5d07	d49d44e6	21e58fe4	b28479f6	5340cb84	ecbb1f29	e5ba7672	ca6a63cf			0c6b0a44		bcdee96c	08b0ce98		
+1	1	1451	2	2	24	0	8	30	85	1	5	3	0	05db9164	38a947a1	353686f2	f7263320	4cf72387	fbad5c96	a5785c33	0b153874	a73ee510	3b08e48b	b38835a9	317bfd7d	5aceb3b4	07d13a8f	7722bd91	1689e4de	27c07bd6	90b7bec5			dc55d6df		423fab69	aa0115d2		
+1		0	37	30	36	77	12	30	157		5	3	28	68fd1e64	6e638bbc	5c51b5ba	1dae9b6c	4cf72387	fe6b92e5	6d0ca8d7	0b153874	a73ee510	361eec86	6939835e	27bdd67e	dc1d72e4	07d13a8f	1f29ec61	5bc896cd	27c07bd6	3cb7e3f0	21ddcdc9	5840adea	3fa701f0		55dd3565	8d653a3e	445bbe3b	8addf025
+1		-1	2		83214	104	0	0	1		0			05db9164	4f25e98b	21259ece	9ceceafa	25c83c98	fe6b92e5	019bb335	0b153874	7cc72ec2	c6577552	e2a3d92c	911f7581	a984ac48	1adce6ef	17d9b759	80216f56	e5ba7672	7ef5affa	21ddcdc9	b1252a9d	1a4b9964		3a171ecb	0ce9d40e	e8b83407	396dce83
+0	1	21	52	0	0	47	1	0	0	1	1		0	05db9164	38d50e09	948ee031	b7ab56a2	25c83c98	7e0ccccf	a86d9649	361384ce	a73ee510	42635bfd	aadb87b9	42bee2f2	e9332a03	b28479f6	06373944	67b3c631	d4bb7bd8	fffe2a63	21ddcdc9	b1252a9d	bd074856		3a171ecb	df487a73	001f3601	c27f155b
+0		-1			37586	55	1	4	37		1			5a9ed9b0	404660bb	2e4b14c7	f3608b1e	25c83c98	3bf701e7	0d339a25	37e4aa92	a73ee510	0ccaf4c7	7d756b25	2098d925	6f833c7a	b28479f6	abcca5c1	f7d36847	07c540c4	4b17f8a2	21ddcdc9	5840adea	2bce7b1d		32c7478e	f9f7eb22	f0f449dd	b2a97390
+0	0	3320	4	1	4122	83	6	26	70	0	1		3	8cf07265	78ccd99e	45bd7955	6cfd27d8	25c83c98	13718bbd	a4756aa0	5b392875	a73ee510	2f0da49f	3bfee234	3815b09c	888b8320	cfef1c29	798a3785	4b1d7076	e5ba7672	e7e991cb	9437f62f	b1252a9d	a9f61713		93bad2c0	3d146fbb	f0f449dd	91a61c29
+1	3	1	4	6	243	6	31	13	116	1	4		6	24eda356	fdbd6890	4948e114	77199c76	4cf72387	fbad5c96	62fc022b	0b153874	a73ee510	5612701e	e09c447b	72a05bfb	8dab0422	64c94865	0b2c122e	6e957363	e5ba7672	1910e2e3			ab5b7fc6	c9d4222a	423fab69	0ee8c452		
+0	2	2	25	14	1272	58	22	47	137	1	4	1	14	68fd1e64	0468d672	92c34e5f	6917d100	25c83c98	7e0ccccf	c63eac71	0b153874	a73ee510	d7a30208	2010b191	efc34af7	d48de876	1adce6ef	4f3b3616	d3408fd5	3486227d	9880032b	21ddcdc9	5840adea	8e7a84bb		423fab69	3f7eb911	ea9a246c	cdebf969
+0	2	0	11	13	172	29	2	24	23	1	1	1	23	05db9164	38a947a1	d0828830	09801e29	25c83c98	fe6b92e5	19e63407	37e4aa92	a73ee510	3b08e48b	00c11834	27e9858f	d1155458	b28479f6	d92de4ea	e294c66c	3486227d	09953728			0346d048		32c7478e	776eb2c5		
+1	0	49	143	1	5353	8	3	1	75	0	2		1	05db9164	89ddfee8	c2b008c5	e31f97bb	25c83c98	fbad5c96	1c86e0eb	a25968f2	a73ee510	34ccc264	755e4a50	e657c595	5978055e	1adce6ef	34cce7d2	0d7e5968	e5ba7672	5bb2ec8e	21ddcdc9	a458ea53	2c613179		423fab69	8eb162c5	f0f449dd	47ee0e11
+0		0	11	2	4236		0	12	130		0		11	5a9ed9b0	5b7b33dc			b2241560	7e0ccccf	d1208de2	0b153874	a73ee510	7ca23b4a	eb9e7931		837d93f2	07d13a8f	247f84ab		1e88c74f	3cbc29b4					55dd3565			
+1		2	2	1	16008		0	2	1		0		1	05db9164	38a947a1	f1722731	bef1cf93	25c83c98		17f619bc	0b153874	a73ee510	f90f47c5	e7c049c2	1b5efd69	36b96ed0	64c94865	51c5d5ca	f9e62e71	d4bb7bd8	be5810bd			6b23ba2d		32c7478e	043a382b		
+0	0	35	18	9	2687		0	30	90	0	0		9	5a9ed9b0	38d50e09	873cec9e	faeb53d1	25c83c98	7e0ccccf	64917feb	0b153874	a73ee510	3b08e48b	f045731b	1bad82f2	252ee845	b28479f6	06373944	754f444e	07c540c4	fffe2a63	21ddcdc9	b1252a9d	362ad5a2		32c7478e	df487a73	001f3601	c27f155b
+1	5	50	2	4	18	1	5	4	4	2	2		1	05db9164	4f25e98b	e5ecc1d4	26aac878	25c83c98	7e0ccccf	5f8e3e72	0b153874	a73ee510	3b08e48b	81029038	94073dd1	6d0b1734	b28479f6	df2f73e9	9f50aa07	07c540c4	bc5a0ff7	712d530c	b1252a9d	ef95f922		3a171ecb	a3bd4d33	001f3601	6b5cead0
+0		13	1	1	1020		0	1	1		0		1	05db9164	08d6d899	d158b948	cd08b588	25c83c98	fbad5c96	f8077d16	0b153874	a73ee510	3b08e48b	d24aec2b	5ea2e48b	f6224065	b28479f6	bfef54b3	6d922e3b	776ce399	87c6f83c			15fce809		bcdee96c	f96a556f		
+1	0	-1	13	0	5699	216	2	6	56	0	2		2	05db9164	6e638bbc	e1266b28	09e3cd5a	25c83c98		505ca254	0b153874	a73ee510	f6e4bc4d	4968ae8f	eb8ded57	18e370a6	07d13a8f	1f29ec61	3d9023a4	e5ba7672	3cb7e3f0	21ddcdc9	b1252a9d	31b4af04		32c7478e	8d653a3e	445bbe3b	8e1ae331
+1	17	89	26	5	1175	45	75	10	374	1	14		5	05db9164	71ca0a25	c86b2d8d	657dc3b9	25c83c98	fe6b92e5	d0792267	0b153874	a73ee510	7c0a503a	9700edac	1ca7a526	672d927b	b28479f6	a67c19b7	ba46c3a1	e5ba7672	9bf8ffef	21ddcdc9	b1252a9d	eb0fc6f8		32c7478e	df487a73	e8b83407	c27f155b
+0		2	5	0	104594			2					2	39af2607	80e26c9b	f57d3f44	b6951e6b	25c83c98		fa2da417	0b153874	7cc72ec2	d33462a3	358a1187	d120ba45	3966c8cd	07d13a8f	f3635baf	0cf975bf	d4bb7bd8	f54016b9	21ddcdc9	b1252a9d	c136e191		32c7478e	1793a828	e8b83407	66045105
+0	1	-1			118	0	4	2	13	1	2	2		3560b08b	5dac953d	d032c263	c18be181	25c83c98	7e0ccccf	61f42546	0b153874	a73ee510	3b08e48b	e0e79bd6	dfbb09fb	96fa211f	64c94865	ed807c25	84898b2a	27c07bd6	b79acaab			0014c32a		3a171ecb	3b183c5c		
+0		5	31	3	18756		0	11	2		0		4	87552397	04e09220	b1ecc6c4	5dff9b29	25c83c98	fbad5c96	2da1e879	5b392875	a73ee510	b7efa269	a05a0d99	2436ff75	e55dbe27	07d13a8f	f6b23a53	f4ead43c	1e88c74f	6fc84bfb			4f1aa25f		32c7478e	ded4aac9		
+0		25	16	20	8789	20	1	22	20		1		20	05db9164	537e899b	5037b88e	9dde01fd	25c83c98	fbad5c96	0d59e258	0b153874	a73ee510	5612701e	b9ec9192	680d7261	df5886ca	07d13a8f	6d68e99c	c0673b44	d4bb7bd8	b34aa802			e049c839		c7dc6720	6095f986		
+0	6	55	1	1	0	33	13	29	86	2	5		0	05db9164	421b43cd	3956eff2	29998ed1	25c83c98	fe6b92e5	38eb9cf4	0b153874	a73ee510	441dd290	7f8ffe57	6aaba33c	46f42a63	b28479f6	2d0bb053	b041b04a	e5ba7672	2804effd			723b4dfd		32c7478e	b34f3128		
+0		0		2	249180		0	2	50		0		2	05db9164	38a947a1	b9279298	40f36a12	384874ce	fe6b92e5	76d84582	0b153874	7cc72ec2	39cda501	7c53dc69	4c7c8101	4fd35e8f	1adce6ef	3ea7817e	4961b392	e5ba7672	bdd21ce2			2688e7ed		423fab69	9d70bc85		
+0	5	99	31	0	754	13	42	20	1068	1	8	5	13	5a9ed9b0	942f9a8d	4a75b52b	c6fdc148	25c83c98		d3f2ae29	0b153874	a73ee510	7f79890b	c4adf918	8eb3f772	85dbe138	1adce6ef	ae97ecc3	8213a764	8efede7f	1f868fdd	21ddcdc9	a458ea53	74be63ef		32c7478e	9af06ad9	9d93af03	cdfe5ab7
+0		-1			35745		0	0	2		0			39af2607	6887a43c	6d0ceb43	8d164e53	25c83c98	7e0ccccf	838c8fbe	0b153874	7cc72ec2	3b08e48b	f72fff3d	9fa694f3	03f77fd2	07d13a8f	eb1997cb	a54711b4	776ce399	570391ac	21ddcdc9	b1252a9d	78766d37		be7c41b4	9e0bee34	445bbe3b	df909817
+0	1	72	10	14	14	12	1	14	14	1	1		11	05db9164	421b43cd	7bd61a3f	29998ed1	25c83c98	fe6b92e5	a6a575e6	0b153874	a73ee510	45ab2c55	4829f487	6aaba33c	2180053c	b28479f6	2d0bb053	b041b04a	d4bb7bd8	2804effd			723b4dfd	ad3062eb	bcdee96c	b34f3128		
+0		1	1	3	5087	33	1	14	15		1	1	3	05db9164	68b3edbf	b00d1501	d16679b9	25c83c98	7e0ccccf	862c6367	0b153874	a73ee510	230a3832	6514ea2d	e0d76380	4738a95a	b28479f6	f511c49f	1203a270	3486227d	752d8b8a			73d06dde		32c7478e	aee52b6f		
+1	13	251	14	10	7	1	39	38	172	3	10		1	68fd1e64	89ddfee8	39eef0e8	13508380	25c83c98	fbad5c96	ad3508b1	5b392875	a73ee510	07704244	ad757a5a	4594f341	93b18cb5	07d13a8f	59a58e86	02882e54	e5ba7672	ae46962e	1d1eb838	b1252a9d	7b69ac9f		423fab69	45ab94c8	f0f449dd	c84c4aec
+1	0	1	7	26	0	243	25	15	754	0	6	0	0	68fd1e64	942f9a8d	d024aa4a	ca155841	4cf72387	fbad5c96	3f4ec687	0b153874	a73ee510	0e9ead52	c4adf918	08623920	85dbe138	b28479f6	ac182643	0ffc495e	27c07bd6	1f868fdd	f44bef3c	a458ea53	89883ec0	ad3062eb	32c7478e	e4c356ec	9d93af03	b775f5c2
+0	5	0	26	3	60	3	36	6	74	2	10		3	5a9ed9b0	58e67aaf	f1a75345	715dbf7b	4cf72387	fbad5c96	45e063a0	0b153874	a73ee510	27f4bf82	da89cb9b	d145dc65	165642be	b28479f6	62eca3c0	2ebf54b4	e5ba7672	c21c3e4c	338f20de	a458ea53	5bd3d286		32c7478e	bc8b14b9	9b3e8820	cdd2b5b7
+0		1	3		45904	111	0	1	27		0	0		05db9164	89ddfee8	3863b7f1	4daf48e1	25c83c98	fbad5c96	66acf824	0b153874	7cc72ec2	0ed4b00d	e192b186	dca65903	7df3a6c1	07d13a8f	4df3da6b	8784f12f	8efede7f	5bb2ec8e	3014a4b1	b1252a9d	d754f116	ad3062eb	423fab69	16291dd7	f0f449dd	e98cbe6a
+0		-1	2	2	2908	603	0	0	104		0		2	f473b8dc	38a947a1	223b0e16	ca55061c	25c83c98	7e0ccccf	eac6dc30	49dd1874	a73ee510	980d90f4	df29f7bb	156f99ef	67b031b4	1adce6ef	0e78291e	5fbf4a84	d4bb7bd8	1999bae9			deb9605d		32c7478e	e448275f		
+0		5	14	19	3708		0	35	376		0	0	19	05db9164	a796837e	08de7b18	97ce69e9	4cf72387	fe6b92e5	82f666b6	0b153874	a73ee510	03e48276	e51ddf94	c5011072	3516f6e6	cfef1c29	f0bf9094	5a9431f3	3486227d	1cdbd1c5			e754c5e1		3a171ecb	8fc66e78		
+1	3	3	4	7	102	30	4	23	23	1	2		23	8cf07265	26ece8a8	8c6bfe29	1e0ec6a2	25c83c98	fbad5c96	5c8931c6	0b153874	a73ee510	456b972a	77e7d573	1a614fd0	857a4197	07d13a8f	102fc449	d0b4477d	e5ba7672	87fd936e			b193bbca	ad3062eb	423fab69	5a456be6		
+1		12	2	2	7230	12	24	3	21		1		2	68fd1e64	80e26c9b	d3837635	230f1f17	25c83c98		f2d80b52	0b153874	a73ee510	4549ea1f	1bb4f435	b8b324f1	e8d4ea40	07d13a8f	f3635baf	1fb7f493	e5ba7672	f54016b9	21ddcdc9	a458ea53	90c2e498		32c7478e	1793a828	e8b83407	8efc26f8
+1		2	7	3	2934	48	4	4	117		3		3	05db9164	e5fb1af3	77d9caa7	932c3d89	25c83c98	7e0ccccf	ec874408	37e4aa92	a73ee510	5e2b2f1d	c6dfa670	21ca81df	3a4e700b	07d13a8f	b5de5956	cbe07a5c	e5ba7672	13145934	a34d2cf6	a458ea53	cbc662a7		3a171ecb	45a3e015	010f6491	b62a4ef5
+0		1	15	5	3699		0	36	77		0	0	5	05db9164	207b2d81	8a48553d	1e10bd9f	25c83c98	7e0ccccf	7f9907fe	5b392875	a73ee510	200e383b	a7b606c4	6803e296	eae197fd	b28479f6	3c767806	ff48ade9	e5ba7672	395856b0	21ddcdc9	b1252a9d	c3d093fb		3a171ecb	84a27184	001f3601	a30a3fb0
+0	4	175	12	2	923	55	8	48	103	1	2		2	5bfa8ab5	38a947a1	223b0e16	ca55061c	25c83c98	7e0ccccf	ade953a9	5b392875	a73ee510	4072f40f	29e4ad33	156f99ef	80467802	1adce6ef	0e78291e	5fbf4a84	e5ba7672	1999bae9			deb9605d		32c7478e	e448275f		
+0	11	1331	2	2	1296	8	11	13	54	1	1	1	4	68fd1e64	c8687797	5c7d8ff6	902872c9	25c83c98	fbad5c96	d20b4953	0b153874	a73ee510	fbbf2c95	46febd4d	79b87c55	949ea585	b28479f6	dc96c4b0	5627d7e0	3486227d	a7e06874	21ddcdc9	b1252a9d	4063500f	ad3062eb	32c7478e	54baf4d1	010f6491	ba676e3c
+1	3	4		2	1136	2	3	2	2	1	1		2	05db9164	f234d60e	01daaa01	1258049c	43b19349	fbad5c96	fae8ca82	0b153874	a73ee510	9a2a80f7	46d4b56a	ed98b1fb	ed738fad	07d13a8f	40fcbacb	4bf7ec4d	07c540c4	d942f032			8818bdec		3a171ecb	e4ef8e56		
+1	41	14	3	1	1	1	41	1	1	1	1		1	8cf07265	73a46ff0	85a07101	501abd52	0942e0a7	7e0ccccf	4ebdc6e2	0b153874	a73ee510	6417eabb	74475d27	593290d6	403e1842	1adce6ef	d57668e2	15b684be	e5ba7672	da507f45	21ddcdc9	5840adea	f4d7cf94		423fab69	b34f3128	ea9a246c	3090e38b
+1	0	19	2	1	0	63	2	3	7	0	2		0	05db9164	e18b1e61			384874ce	7e0ccccf	f417bf96	6c41e35e	a73ee510	3b08e48b	0ec1e215		44af41ef	07d13a8f	1d432c1e		e5ba7672	b2879faf				ad3062eb	3a171ecb			
+0		0	5	4	11141	218	1	24	217		1		4	68fd1e64	58e67aaf	2113709c	3bfbb842	4cf72387	fe6b92e5	cc8ce7f3	1f89b562	a73ee510	3b08e48b	b6ac69d0	27302de8	e987b058	07d13a8f	10935a85	7958d3dc	d4bb7bd8	c21c3e4c	55dd3565	a458ea53	192551e4		3a171ecb	48056b77	9b3e8820	76415198
+1		57	3	1	21443	49	8	1	38		1		1	5bfa8ab5	c5c1d6ae	bb85179d	98cd0302	25c83c98	fbad5c96	6855ef53	0b153874	a73ee510	175d6c71	b7094596	4750f0d1	1f9d2c38	07d13a8f	b25845fd	130b2582	3486227d	561cabfe	21ddcdc9	5840adea	ffbb089f		32c7478e	1026f362	7a402766	46f2af91
+0	0	0	10	5	1673	91	15	33	256	0	5		5	75ac2fe6	04e09220	b1ecc6c4	5dff9b29	25c83c98	7e0ccccf	63282fe3	0b153874	a73ee510	b95c890d	e6959f26	2436ff75	b57fa159	07d13a8f	f6b23a53	f4ead43c	8efede7f	6fc84bfb			4f1aa25f	ad3062eb	423fab69	ded4aac9		
+1		1	3	5	2985	13	1	5	7		1		5	05db9164	5dac953d	d032c263	c18be181	4cf72387	7e0ccccf	78c0b2ff	1f89b562	a73ee510	3b08e48b	eb4a9b83	dfbb09fb	c0bc5873	1adce6ef	32330105	84898b2a	d4bb7bd8	24de59c1			0014c32a		3a171ecb	3b183c5c		
+0		4	6	1	29743			21				0	1	05db9164	08d6d899	0bab1155	60d5f5a7	25c83c98	7e0ccccf	d6293852	0b153874	a73ee510	3b08e48b	c6cb726f	1d00cbc4	176d07bc	07d13a8f	41f10449	b93ac0ad	d4bb7bd8	698d1c68			bf8efd4c		72592995	f96a556f		
+0		1	1	3	5364	5	1	4	5		1		3	05db9164	207b2d81	057e845b	786673ae	25c83c98	6f6d9be8	f2a82962	0b153874	a73ee510	0ff7e0c6	c255f829	03aa3022	fe528cd1	b28479f6	899da9d5	dc377037	d4bb7bd8	25c88e42	21ddcdc9	a458ea53	907b8dff		32c7478e	7a8e7ed6	001f3601	9042adf0
+0	0	142	1	14	1559	85	13	5	267	0	3	0	14	5a9ed9b0	8ab240be	429e8271	c450716c	25c83c98	fe6b92e5	6fadbb76	1f89b562	a73ee510	fa7d0797	b5939c49	5c3be1d3	377af8aa	b28479f6	b4316eb3	4c0566cc	8efede7f	807ea8b0	21ddcdc9	5840adea	858c4106		32c7478e	2f0b2844	e8b83407	aa5f0a15
+1		1	5	9	8445	16	1	8	9		1	0	9	8cf07265	46bbf321	c5d94b65	5cc8f91d	384874ce	7e0ccccf	099d72d1	5b392875	a73ee510	230a3832	a6f5e788	75c79158	beaa48ab	243a4e68	bcdb9b50	208d4baf	3486227d	ce4d072d			6a909d9a		3a171ecb	1f68c81f		
+0		0	16	3	8297	46	7	5	8		1		3	be589b51	1cfdf714	2acc1a0e	1f2b62a4	4cf72387	7e0ccccf	b4ecbce4	0b153874	a73ee510	3b08e48b	8d68f0f6	cfe25cb7	4e9bebb4	687dfaf4	a54fca2b	446fa98b	e5ba7672	e88ffc9d	6f62a118	a458ea53	ff8c5410		3a171ecb	5029cba6	cb079c2d	a2de1476
+0	3	0	13	8	0	0	4	11	18	1	2		0	05db9164	0468d672	7b8d300a	c619d132	4cf72387	7e0ccccf	0fdf56d6	5b392875	a73ee510	42429aab	6241e24a	bb19e5a1	8c1a3ad8	b28479f6	234191d3	08042d48	e5ba7672	9880032b	21ddcdc9	5840adea	63e3637a	c9d4222a	bcdee96c	d33a0d83	ea9a246c	984e0db0
+0		0	9		326904			6						87552397	207b2d81	365d1d63	e9370452	25c83c98	fbad5c96	b10436ef	0b153874	7cc72ec2	2fed7fc5	4dee99ee	8ff467ea	d299b0dc	07d13a8f	0c67c4ca	acf5f625	07c540c4	395856b0	21ddcdc9	a458ea53	b6af5d81		3a171ecb	27e81296	001f3601	e1572e3b
+1	0	1	1		2708	27	12	0	37	0	4			5bfa8ab5	6c713117	f9513969	63bb9eb1	43b19349	fbad5c96	adbcc874	1f89b562	a73ee510	fa7d0797	46031dab	8ab52742	377af8aa	07d13a8f	78ebcaf1	0c98c1fc	e5ba7672	bf6b118a	21ddcdc9	b1252a9d	45664d1d		32c7478e	40de02ec	445bbe3b	b025bfb1

+ 100 - 0
recommend-model-produce/src/main/python/models/wide_and_deep_dataset/data/part-1

@@ -0,0 +1,100 @@
+0	2	0			957	45	2	36	45	1	1			05db9164	532da141			25c83c98	7e0ccccf	a24c8c8e	0b153874	a73ee510	2e8e8e87	41b3f655		ce5114a2	cfef1c29	abd8f51e		07c540c4	bdc06043				c9d4222a	32c7478e			
+0	0	53	7	7	3975	118	7	42	125	0	2		7	05db9164	421b43cd	a5866a2d	29998ed1	25c83c98	7e0ccccf	dc7659bd	0b153874	a73ee510	03e48276	e51ddf94	6aaba33c	3516f6e6	b28479f6	2d0bb053	b041b04a	e5ba7672	2804effd			723b4dfd		3a171ecb	b34f3128		
+0		6	2	0	31		0	0	0		0		0	05db9164	207b2d81	45be6cde	12f4ddf4	25c83c98	7e0ccccf	38eb9cf4	5b392875	a73ee510	f6f942d1	7f8ffe57	cc2a128e	46f42a63	b28479f6	899da9d5	d604ae35	1e88c74f	25c88e42	21ddcdc9	a458ea53	0bede81d	ad3062eb	32c7478e	8539ffbf	001f3601	c38250b6
+0	0	0	1	1	15395	386	5	1	286	0	5		1	5a9ed9b0	8db5bc37	da5fcf9d	9ee19407	43b19349	6f6d9be8	ff6b8352	0b153874	a73ee510	66581c5b	15eced00	8db6c305	bd251a95	64c94865	b4a59bc6	46ee2cca	e5ba7672	821c30b8			4f5bc5bf		32c7478e	7cff0908		
+0	1	0	1	5	122	5	4	15	16	1	2	0	5	05db9164	90081f33	a32e5301	05bbc70d	25c83c98	fe6b92e5	dda1fed2	0b153874	a73ee510	4ce8f99f	7f8ffe57	6c339dfb	46f42a63	64c94865	98995c3b	a4eb16fd	e5ba7672	7181ccc8			3404a71d		3a171ecb	cd7bf52a		
+1	1	0	15	10	1432	89	2	37	69	1	2		10	be589b51	38d50e09	e65d85e1	837cde00	43b19349	7e0ccccf	051659fe	0b153874	a73ee510	df41254d	84eb4210	3bcba45c	5fffcbe5	b28479f6	7501d6be	9cbaae80	07c540c4	f855e3f0	21ddcdc9	5840adea	6ba01fc4		32c7478e	afb24112	001f3601	aa5f0a15
+1	8	1	1	0	28	0	8	0	0	1	1		0	5a9ed9b0	4f25e98b	c273ad95	c91dd596	25c83c98	fbad5c96	b3ddf65a	0b153874	a73ee510	43a17f3d	e973bfd7	3ce47b07	439cd4cc	051219e6	b6dcf31f	8ceec535	e5ba7672	7ef5affa	5b885066	a458ea53	77fad21b	ad3062eb	32c7478e	8eb4ac8d	001f3601	e9e9ecb0
+0	1	33		7	1252	34	1	13	63	1	1		8	5a9ed9b0	b56822db	3f7d0844	da13cca9	25c83c98	13718bbd	4aa938fc	0b153874	a73ee510	451bd4e4	7e40f08a	7dcc3969	1aa94af3	07d13a8f	e2876dac	354a37d9	e5ba7672	38dce391	21ddcdc9	b1252a9d	7b877178		32c7478e	f2e9f0dd	001f3601	6c27a535
+0	0	2			3746	162	3	3	113	0	1			05db9164	38d50e09	1475848f	486da071	5a3e1872	13718bbd	83be4a6a	37e4aa92	a73ee510	802a7512	d9b1e3ff	5dddd37d	cd98af01	07d13a8f	e24ff4c6	bbc2ca43	07c540c4	f855e3f0	21ddcdc9	5840adea	e8ef1267		3a171ecb	b2f178a3	001f3601	c3546e32
+0		345	3	4	35324	219	14	5	202		1		4	05db9164	2c16a946	dafcaa19	ec142e08	25c83c98	7e0ccccf	ca280131	0b153874	a73ee510	3b08e48b	868a9e47	f57cde97	fc5dea81	07d13a8f	18231224	e496e010	e5ba7672	74ef3502			c606b8ba		423fab69	9117a34a		
+0		47	2	4	2751	6	22	5	6		3	0	4	68fd1e64	dde11b16	63f98b5e	8cc7b33b	25c83c98	fe6b92e5	57ef5d40	1f89b562	a73ee510	cce72b25	6ae20392	7becd6e7	78644930	b28479f6	53c5f305	eca39129	e5ba7672	43dfe9bd			cf158609	ad3062eb	dbb486d7	10b3e56d		
+0		8	30	7	2828		0	38	49		0		10	68fd1e64	b56822db	7da86e4b	b733e495	25c83c98	13718bbd	dcc1b63d	5b392875	a73ee510	46a7deb3	731cd88c	ed397d6b	34d253f7	b28479f6	a9d1ba1a	056d8866	1e88c74f	38dce391	21ddcdc9	b1252a9d	deaf6b52		32c7478e	d9556584	001f3601	6c27a535
+0	0	75			28293	227	4	6	370	0	3			98237733	a0baa1e8	91405292	84e93084	4cf72387	fbad5c96	ad3508b1	5b392875	a73ee510	79f15f43	ad757a5a	f2ae7fb8	93b18cb5	32813e21	cb1612e3	89f3e9bc	e5ba7672	3735c118			0b446b76	ad3062eb	c7dc6720	80c73723		
+0	1	185	1	0	0	0	1	0	0	1	1		0	87552397	b56822db	7da86e4b	b733e495	25c83c98	7e0ccccf	003baf94	0b153874	a73ee510	bde51b15	e973bfd7	ed397d6b	439cd4cc	b28479f6	a9d1ba1a	056d8866	d4bb7bd8	38dce391	21ddcdc9	b1252a9d	deaf6b52	ad3062eb	bcdee96c	d9556584	001f3601	6c27a535
+0	0	-1			3827	17	10	4	46	0	1	1		05db9164	8084ee93	02cf9876	c18be181	25c83c98	fbad5c96	07d03e2a	0b153874	a73ee510	49d1ad89	7f8ffe57	8fe001f4	46f42a63	07d13a8f	422c8577	36103458	3486227d	52e44668			e587c466		32c7478e	3b183c5c		
+1		0	12	8	2551	49	19	8	27		1	0	8	68fd1e64	d7988e72	897faa69	ddf2b58b	25c83c98	7e0ccccf	7df3abb9	0b153874	a73ee510	3b08e48b	83dba508	54943d67	09cd9f24	07d13a8f	194c42a4	0c1c9401	3486227d	0f2f9850	21ddcdc9	a458ea53	2bbcc5d0	c9d4222a	32c7478e	3fdb382b	445bbe3b	49d68486
+0	0	2	2	1	7367	680	1	22	191	0	1		1	68fd1e64	8db5bc37	6fdb098b	f181ea30	25c83c98	fe6b92e5	18ffd618	37e4aa92	a73ee510	e286f1e6	fd7856c1	2bdfd009	6a430a5b	64c94865	007fa274	aaede3da	e5ba7672	e7c97dee			fcd1a962		3a171ecb	b7c6f617		
+0		-1			39870			0						05db9164	b961056b	961d73a9	06b1cf6e	25c83c98	7e0ccccf	49042125	0b153874	7cc72ec2	7e0d83d4	ba1ff80a	d4fbf673	b95f83fa	ab7390e9	dd244129	20340c29	1e88c74f	8222ff64			d4fa2b9c		3a171ecb	0ff91809		
+0		606	21	3	1211		0	41	41		0		9	5bfa8ab5	207b2d81	e48e5552	9ddc492e	25c83c98		49eb0b1a	0b153874	a73ee510	b14d9951	2839b07a	e5e1ca92	383a5973	b28479f6	3c767806	29fd6b7b	1e88c74f	395856b0	21ddcdc9	b1252a9d	e5191f27		bcdee96c	c23c2e19	001f3601	3d04cc90
+0	2	1	2	1	159	7	7	7	58	2	4		1	17f69355	f3b07830	3f6f79a2	5327e675	4cf72387	7e0ccccf	38ae26b9	5b392875	a73ee510	42635bfd	aadb87b9	2cc77b94	e9332a03	64c94865	b64212a7	87343f95	e5ba7672	048d01f4			6549ede4		3a171ecb	c657e6e5		
+1	7	1	5	7	0	0	13	9	10	1	2		0	05db9164	6887a43c	7eb22712	ef4fd7f1	25c83c98	fe6b92e5	c0251c88	5b392875	a73ee510	c510044d	ada36e89	c71493ed	c63ea0b4	cfef1c29	9221b8f3	92e4b1e3	e5ba7672	08ed8a1c	21ddcdc9	b1252a9d	9adaf9fb	c9d4222a	55dd3565	b43c75ff	445bbe3b	7826e9ae
+0		-1			126865		0	3	1		0			05db9164	38a947a1	353686f2	f7263320	43b19349	fbad5c96	a2f7459e	0b153874	7cc72ec2	d3787b55	15eced00	317bfd7d	bd251a95	07d13a8f	2ab464b7	1689e4de	e5ba7672	90b7bec5			dc55d6df	ad3062eb	3a171ecb	aa0115d2		
+0	0	616	1	6	2473	88	2	49	71	0	1		20	05db9164	c76014f5	df00c4f0	031bba14	b0530c50	7e0ccccf	0808742e	5b392875	a73ee510	ca82d9dd	2115d03b	336bb1d7	40dfba03	b28479f6	a46c3543	631f0045	07c540c4	93b0d1d7			1fe472e2		32c7478e	89bd83a1		
+1		563	3	2	12500	47	4	2	50		1		2	05db9164	403ea497	2cbec47f	3e2bfbda	25c83c98		f33e4fa1	37e4aa92	a73ee510	e029047e	7b5deffb	21a23bfe	269889be	b28479f6	91f74a64	587267a3	e5ba7672	a78bd508	21ddcdc9	5840adea	c2a93b37		32c7478e	1793a828	e8b83407	2fede552
+0	1	16	13	5	187	32	1	32	32	1	1	0	5	05db9164	4f25e98b	557a2bcb	2e17d6f6	25c83c98	7e0ccccf	ee805808	6c41e35e	a73ee510	0f1ee62c	0601c4d9	2c934d21	c4bf1f3a	07d13a8f	5cedaf14	949bfd42	d4bb7bd8	c04ce6df	5e89f4c8	b1252a9d	20562a99	ad3062eb	32c7478e	9117a34a	001f3601	54ca28ff
+0	0	21	2	2	53	21	8	2	36	0	1		2	05db9164	c1384774	24c93e37	d772d0ec	25c83c98	fbad5c96	e31fb017	0b153874	a73ee510	3b08e48b	d0727572	5662d3e8	16aa5daa	b28479f6	59e23b95	3f6a5fd0	776ce399	658dca4c	21ddcdc9	b1252a9d	3ba1c760	ad3062eb	32c7478e	ecc32110	ea9a246c	36e3666f
+0		1	3	4	211885		0	10	2		0		4	241546e0	d833535f	ad4b77ff	d16679b9	25c83c98	fbad5c96	74752b9b	0b153874	7cc72ec2	8b324596	3db1963c	a2f4e8b5	5dd86246	07d13a8f	943169c2	89052618	e5ba7672	281769c2			d4703ebd	ad3062eb	be7c41b4	aee52b6f		
+0		94			9679	0	1	0	0		1			68fd1e64	65ad571e	b72b7c0f	6c83c769	4cf72387	fe6b92e5	c9a05643	062b5529	a73ee510	157764b8	21c80bff	9c080521	4e215042	ad1cc976	49522e06	7ab65ac2	d4bb7bd8	6e284837			85ce55bd		c3dc6cef	5fca8ab2		
+0	0	21		4	2383	41	2	19	21	0	1	0	4	05db9164	8084ee93	02cf9876	c18be181	25c83c98	3bf701e7	d20b75da	0b153874	a73ee510	efea433b	ab147b82	8fe001f4	66110d1b	1adce6ef	5d922427	36103458	27c07bd6	003d4f4f			e587c466		bcdee96c	3b183c5c		
+0	0	4	19	31	2508	106	1	16	103	0	1		31	41edac3d	a5b69ae3	f84d40ab	78a5bd6a	25c83c98	7e0ccccf	354d03e6	0b153874	a73ee510	255f3655	3bcfd189	55ffe9ca	077640f4	1adce6ef	603a2e9e	4c63632d	d4bb7bd8	a1654f4f	21ddcdc9	5840adea	901b12ea		32c7478e	08b0ce98	2bf691b1	984e0db0
+0		1	136	19	11309	157	6	29	72		2		22	05db9164	58e67aaf	08083030	b7fbbe67	25c83c98	fbad5c96	7d63bf49	5b392875	a18233ea	c9f77507	c389b738	246cf651	d7ccab4e	07d13a8f	10935a85	b7b7ce5d	d4bb7bd8	c21c3e4c	3aae8792	a458ea53	8d0ca54e		c7dc6720	bf282e2d	9b3e8820	d576a861
+0	0	274	3	8	56	36	4	16	24	0	2		8	09ca0b81	4f25e98b	5caa38df	25f92f9d	25c83c98	fe6b92e5	c480abf1	0b153874	a73ee510	32390b96	df29f7bb	dd0abd1f	67b031b4	1adce6ef	fb2772ea	ec486b81	e5ba7672	bc5a0ff7	af7c4727	a458ea53	c7d0e43d	ad3062eb	bcdee96c	9dd84531	001f3601	ae47080f
+0	0	-1			3951	117	1	21	39	0	1	0		05db9164	403ea497	2cbec47f	3e2bfbda	4cf72387		7b26d3fe	0b153874	a73ee510	fa7d0797	043725ae	21a23bfe	7f0d7407	b28479f6	91f74a64	587267a3	d4bb7bd8	a78bd508	21ddcdc9	a458ea53	c2a93b37		3a171ecb	1793a828	e8b83407	2fede552
+0		1			4031		0	0	2		0			05db9164	e112a9de	9db30a48	b3dbc908	25c83c98	7e0ccccf	952279fd	5b392875	a73ee510	0cd894de	c22febf3	2598d8eb	5a504385	ad1cc976	f1e1df0a	9ab4d6b1	e5ba7672	fdbdefe6			bbf96cac	c9d4222a	c3dc6cef	8f079aa5		
+0		-1						0						05db9164	d833535f	77f2f2e5	d16679b9	25c83c98	fe6b92e5	970f01b2	37e4aa92	7cc72ec2	3b08e48b	36bccca0	9f32b866	80467802	07d13a8f	943169c2	31ca40b6	2005abd1	281769c2			dfcfc3fa		3a171ecb	aee52b6f		
+0	7	-1	327	3	1414	97	30	15	37	0	3		3	8cf07265	80e26c9b	9ecdca34	85dd697c	25c83c98	7e0ccccf	89391314	0b153874	a73ee510	d8a1c4f1	608452cc	f6b6edb8	cbb8fa8b	07d13a8f	e8f4b767	2d0bbe92	e5ba7672	005c6740	21ddcdc9	b1252a9d	eccbec78	c9d4222a	32c7478e	1793a828	e8b83407	9904c656
+0		1	8	4	1094		0	48	352		0		15	5a9ed9b0	08d6d899	9143c832	f56b7dd5	f281d2a7	7e0ccccf	76fc09f3	0b153874	a73ee510	3b08e48b	0b60ef54	ae1bb660	0721132d	07d13a8f	41f10449	bad5ee18	1e88c74f	698d1c68			0429f84b		be7c41b4	c0d61a5c		
+0	2	1	10		1186	5	40	6	275	1	13	0		87552397	78ccd99e	c109d265	52e9fdb4	25c83c98	fbad5c96	81f7f73c	5b392875	a73ee510	ebcc4ac8	6263d404	7b2da99a	aa1eb12e	051219e6	9917ad07	f85ed40e	e5ba7672	e7e991cb	f44bef3c	a458ea53	0f53d505		32c7478e	02666583	001f3601	86884549
+0	2	-1			99	1	2	1	1	1	1			05db9164	537e899b	5037b88e	9dde01fd	25c83c98	fe6b92e5	d5276ad8	0b153874	a73ee510	3b08e48b	1c80d81c	680d7261	0b1e410e	07d13a8f	14be02cc	c0673b44	07c540c4	65979fb7			e049c839		32c7478e	6095f986		
+1	4	1		5	1	0	4	45	44	2	2		0	05db9164	5dac953d	d032c263	c18be181	4cf72387	7e0ccccf	9b98e9fc	0b153874	a73ee510	2462946f	7f8ffe57	dfbb09fb	46f42a63	64c94865	ed807c25	84898b2a	e5ba7672	b79acaab			0014c32a		32c7478e	3b183c5c		
+1	1	27	2	4	1	2	21	8	66	1	3		2	05db9164	38a947a1	4470baf4	8c8a4c47	384874ce	fbad5c96	10cfa4ce	0b153874	a73ee510	72ce33ff	d0c3ead8	bb669e25	a7de95c2	b28479f6	8691120a	2b2ce127	e5ba7672	b133fcd4			2b796e4a		bcdee96c	8d365d3b		
+0	0	59		1	25398		0	19	10	0	0		1	68fd1e64	a796837e	af48fb08	e3cc371a	25c83c98	7e0ccccf	9a68af50	0b153874	7cc72ec2	b2ebcf4d	c4bd1c72	c78e8461	bcfc54a9	07d13a8f	870efc17	c4de5bba	07c540c4	9de259c3			7a593b43	c9d4222a	c7dc6720	8fc66e78		
+0		14	7	3	43236	78	0	15	52		0		3	05db9164	f8c8e8f8			89ff5705	7e0ccccf	1e3bdb1b	0b153874	a73ee510	8a99abc1	4352b29b		5f4de855	b28479f6	b15b8172		e5ba7672	d2f0bce2	21ddcdc9	5840adea			bcdee96c		f55c04b6	56be3401
+1	7	2	1	1	201	1	10	7	21	2	4		1	291b7ba2	333137d9	d577be04	26d1c179	25c83c98		e3e366c8	0b153874	a73ee510	e1a2ef0f	c6efad65	0a665a51	63db155e	1adce6ef	63ac89c1	bc19fa9c	e5ba7672	c61e82d7	21ddcdc9	b1252a9d	3e120d5e		32c7478e	98276f90	445bbe3b	38a0a8f1
+0	6	6	17	5	37	5	6	5	5	1	1		5	05db9164	65ad571e	06007265	7eafc40d	25c83c98	fe6b92e5	dcdd8d42	0b153874	a73ee510	e1a2ef0f	c1700682	6ed9dde9	0c66bf77	ad1cc976	49522e06	2759daf4	e5ba7672	6e284837			9d0b86ed		c3dc6cef	5fca8ab2		
+0	2	55	26	19	30	39	2	22	20	1	1		19	50d4de26	0b8e9caf	f95a3480	24031442	25c83c98	fe6b92e5	649c7ded	0b153874	a73ee510	60dca7a3	175d5d07	d49d44e6	21e58fe4	b28479f6	5340cb84	ecbb1f29	e5ba7672	ca6a63cf			0c6b0a44		bcdee96c	08b0ce98		
+1	1	1451	2	2	24	0	8	30	85	1	5	3	0	05db9164	38a947a1	353686f2	f7263320	4cf72387	fbad5c96	a5785c33	0b153874	a73ee510	3b08e48b	b38835a9	317bfd7d	5aceb3b4	07d13a8f	7722bd91	1689e4de	27c07bd6	90b7bec5			dc55d6df		423fab69	aa0115d2		
+1		0	37	30	36	77	12	30	157		5	3	28	68fd1e64	6e638bbc	5c51b5ba	1dae9b6c	4cf72387	fe6b92e5	6d0ca8d7	0b153874	a73ee510	361eec86	6939835e	27bdd67e	dc1d72e4	07d13a8f	1f29ec61	5bc896cd	27c07bd6	3cb7e3f0	21ddcdc9	5840adea	3fa701f0		55dd3565	8d653a3e	445bbe3b	8addf025
+1		-1	2		83214	104	0	0	1		0			05db9164	4f25e98b	21259ece	9ceceafa	25c83c98	fe6b92e5	019bb335	0b153874	7cc72ec2	c6577552	e2a3d92c	911f7581	a984ac48	1adce6ef	17d9b759	80216f56	e5ba7672	7ef5affa	21ddcdc9	b1252a9d	1a4b9964		3a171ecb	0ce9d40e	e8b83407	396dce83
+0	1	21	52	0	0	47	1	0	0	1	1		0	05db9164	38d50e09	948ee031	b7ab56a2	25c83c98	7e0ccccf	a86d9649	361384ce	a73ee510	42635bfd	aadb87b9	42bee2f2	e9332a03	b28479f6	06373944	67b3c631	d4bb7bd8	fffe2a63	21ddcdc9	b1252a9d	bd074856		3a171ecb	df487a73	001f3601	c27f155b
+0		-1			37586	55	1	4	37		1			5a9ed9b0	404660bb	2e4b14c7	f3608b1e	25c83c98	3bf701e7	0d339a25	37e4aa92	a73ee510	0ccaf4c7	7d756b25	2098d925	6f833c7a	b28479f6	abcca5c1	f7d36847	07c540c4	4b17f8a2	21ddcdc9	5840adea	2bce7b1d		32c7478e	f9f7eb22	f0f449dd	b2a97390
+0	0	3320	4	1	4122	83	6	26	70	0	1		3	8cf07265	78ccd99e	45bd7955	6cfd27d8	25c83c98	13718bbd	a4756aa0	5b392875	a73ee510	2f0da49f	3bfee234	3815b09c	888b8320	cfef1c29	798a3785	4b1d7076	e5ba7672	e7e991cb	9437f62f	b1252a9d	a9f61713		93bad2c0	3d146fbb	f0f449dd	91a61c29
+1	3	1	4	6	243	6	31	13	116	1	4		6	24eda356	fdbd6890	4948e114	77199c76	4cf72387	fbad5c96	62fc022b	0b153874	a73ee510	5612701e	e09c447b	72a05bfb	8dab0422	64c94865	0b2c122e	6e957363	e5ba7672	1910e2e3			ab5b7fc6	c9d4222a	423fab69	0ee8c452		
+0	2	2	25	14	1272	58	22	47	137	1	4	1	14	68fd1e64	0468d672	92c34e5f	6917d100	25c83c98	7e0ccccf	c63eac71	0b153874	a73ee510	d7a30208	2010b191	efc34af7	d48de876	1adce6ef	4f3b3616	d3408fd5	3486227d	9880032b	21ddcdc9	5840adea	8e7a84bb		423fab69	3f7eb911	ea9a246c	cdebf969
+0	2	0	11	13	172	29	2	24	23	1	1	1	23	05db9164	38a947a1	d0828830	09801e29	25c83c98	fe6b92e5	19e63407	37e4aa92	a73ee510	3b08e48b	00c11834	27e9858f	d1155458	b28479f6	d92de4ea	e294c66c	3486227d	09953728			0346d048		32c7478e	776eb2c5		
+1	0	49	143	1	5353	8	3	1	75	0	2		1	05db9164	89ddfee8	c2b008c5	e31f97bb	25c83c98	fbad5c96	1c86e0eb	a25968f2	a73ee510	34ccc264	755e4a50	e657c595	5978055e	1adce6ef	34cce7d2	0d7e5968	e5ba7672	5bb2ec8e	21ddcdc9	a458ea53	2c613179		423fab69	8eb162c5	f0f449dd	47ee0e11
+0		0	11	2	4236		0	12	130		0		11	5a9ed9b0	5b7b33dc			b2241560	7e0ccccf	d1208de2	0b153874	a73ee510	7ca23b4a	eb9e7931		837d93f2	07d13a8f	247f84ab		1e88c74f	3cbc29b4					55dd3565			
+1		2	2	1	16008		0	2	1		0		1	05db9164	38a947a1	f1722731	bef1cf93	25c83c98		17f619bc	0b153874	a73ee510	f90f47c5	e7c049c2	1b5efd69	36b96ed0	64c94865	51c5d5ca	f9e62e71	d4bb7bd8	be5810bd			6b23ba2d		32c7478e	043a382b		
+0	0	35	18	9	2687		0	30	90	0	0		9	5a9ed9b0	38d50e09	873cec9e	faeb53d1	25c83c98	7e0ccccf	64917feb	0b153874	a73ee510	3b08e48b	f045731b	1bad82f2	252ee845	b28479f6	06373944	754f444e	07c540c4	fffe2a63	21ddcdc9	b1252a9d	362ad5a2		32c7478e	df487a73	001f3601	c27f155b
+1	5	50	2	4	18	1	5	4	4	2	2		1	05db9164	4f25e98b	e5ecc1d4	26aac878	25c83c98	7e0ccccf	5f8e3e72	0b153874	a73ee510	3b08e48b	81029038	94073dd1	6d0b1734	b28479f6	df2f73e9	9f50aa07	07c540c4	bc5a0ff7	712d530c	b1252a9d	ef95f922		3a171ecb	a3bd4d33	001f3601	6b5cead0
+0		13	1	1	1020		0	1	1		0		1	05db9164	08d6d899	d158b948	cd08b588	25c83c98	fbad5c96	f8077d16	0b153874	a73ee510	3b08e48b	d24aec2b	5ea2e48b	f6224065	b28479f6	bfef54b3	6d922e3b	776ce399	87c6f83c			15fce809		bcdee96c	f96a556f		
+1	0	-1	13	0	5699	216	2	6	56	0	2		2	05db9164	6e638bbc	e1266b28	09e3cd5a	25c83c98		505ca254	0b153874	a73ee510	f6e4bc4d	4968ae8f	eb8ded57	18e370a6	07d13a8f	1f29ec61	3d9023a4	e5ba7672	3cb7e3f0	21ddcdc9	b1252a9d	31b4af04		32c7478e	8d653a3e	445bbe3b	8e1ae331
+1	17	89	26	5	1175	45	75	10	374	1	14		5	05db9164	71ca0a25	c86b2d8d	657dc3b9	25c83c98	fe6b92e5	d0792267	0b153874	a73ee510	7c0a503a	9700edac	1ca7a526	672d927b	b28479f6	a67c19b7	ba46c3a1	e5ba7672	9bf8ffef	21ddcdc9	b1252a9d	eb0fc6f8		32c7478e	df487a73	e8b83407	c27f155b
+0		2	5	0	104594			2					2	39af2607	80e26c9b	f57d3f44	b6951e6b	25c83c98		fa2da417	0b153874	7cc72ec2	d33462a3	358a1187	d120ba45	3966c8cd	07d13a8f	f3635baf	0cf975bf	d4bb7bd8	f54016b9	21ddcdc9	b1252a9d	c136e191		32c7478e	1793a828	e8b83407	66045105
+0	1	-1			118	0	4	2	13	1	2	2		3560b08b	5dac953d	d032c263	c18be181	25c83c98	7e0ccccf	61f42546	0b153874	a73ee510	3b08e48b	e0e79bd6	dfbb09fb	96fa211f	64c94865	ed807c25	84898b2a	27c07bd6	b79acaab			0014c32a		3a171ecb	3b183c5c		
+0		5	31	3	18756		0	11	2		0		4	87552397	04e09220	b1ecc6c4	5dff9b29	25c83c98	fbad5c96	2da1e879	5b392875	a73ee510	b7efa269	a05a0d99	2436ff75	e55dbe27	07d13a8f	f6b23a53	f4ead43c	1e88c74f	6fc84bfb			4f1aa25f		32c7478e	ded4aac9		
+0		25	16	20	8789	20	1	22	20		1		20	05db9164	537e899b	5037b88e	9dde01fd	25c83c98	fbad5c96	0d59e258	0b153874	a73ee510	5612701e	b9ec9192	680d7261	df5886ca	07d13a8f	6d68e99c	c0673b44	d4bb7bd8	b34aa802			e049c839		c7dc6720	6095f986		
+0	6	55	1	1	0	33	13	29	86	2	5		0	05db9164	421b43cd	3956eff2	29998ed1	25c83c98	fe6b92e5	38eb9cf4	0b153874	a73ee510	441dd290	7f8ffe57	6aaba33c	46f42a63	b28479f6	2d0bb053	b041b04a	e5ba7672	2804effd			723b4dfd		32c7478e	b34f3128		
+0		0		2	249180		0	2	50		0		2	05db9164	38a947a1	b9279298	40f36a12	384874ce	fe6b92e5	76d84582	0b153874	7cc72ec2	39cda501	7c53dc69	4c7c8101	4fd35e8f	1adce6ef	3ea7817e	4961b392	e5ba7672	bdd21ce2			2688e7ed		423fab69	9d70bc85		
+0	5	99	31	0	754	13	42	20	1068	1	8	5	13	5a9ed9b0	942f9a8d	4a75b52b	c6fdc148	25c83c98		d3f2ae29	0b153874	a73ee510	7f79890b	c4adf918	8eb3f772	85dbe138	1adce6ef	ae97ecc3	8213a764	8efede7f	1f868fdd	21ddcdc9	a458ea53	74be63ef		32c7478e	9af06ad9	9d93af03	cdfe5ab7
+0		-1			35745		0	0	2		0			39af2607	6887a43c	6d0ceb43	8d164e53	25c83c98	7e0ccccf	838c8fbe	0b153874	7cc72ec2	3b08e48b	f72fff3d	9fa694f3	03f77fd2	07d13a8f	eb1997cb	a54711b4	776ce399	570391ac	21ddcdc9	b1252a9d	78766d37		be7c41b4	9e0bee34	445bbe3b	df909817
+0	1	72	10	14	14	12	1	14	14	1	1		11	05db9164	421b43cd	7bd61a3f	29998ed1	25c83c98	fe6b92e5	a6a575e6	0b153874	a73ee510	45ab2c55	4829f487	6aaba33c	2180053c	b28479f6	2d0bb053	b041b04a	d4bb7bd8	2804effd			723b4dfd	ad3062eb	bcdee96c	b34f3128		
+0		1	1	3	5087	33	1	14	15		1	1	3	05db9164	68b3edbf	b00d1501	d16679b9	25c83c98	7e0ccccf	862c6367	0b153874	a73ee510	230a3832	6514ea2d	e0d76380	4738a95a	b28479f6	f511c49f	1203a270	3486227d	752d8b8a			73d06dde		32c7478e	aee52b6f		
+1	13	251	14	10	7	1	39	38	172	3	10		1	68fd1e64	89ddfee8	39eef0e8	13508380	25c83c98	fbad5c96	ad3508b1	5b392875	a73ee510	07704244	ad757a5a	4594f341	93b18cb5	07d13a8f	59a58e86	02882e54	e5ba7672	ae46962e	1d1eb838	b1252a9d	7b69ac9f		423fab69	45ab94c8	f0f449dd	c84c4aec
+1	0	1	7	26	0	243	25	15	754	0	6	0	0	68fd1e64	942f9a8d	d024aa4a	ca155841	4cf72387	fbad5c96	3f4ec687	0b153874	a73ee510	0e9ead52	c4adf918	08623920	85dbe138	b28479f6	ac182643	0ffc495e	27c07bd6	1f868fdd	f44bef3c	a458ea53	89883ec0	ad3062eb	32c7478e	e4c356ec	9d93af03	b775f5c2
+0	5	0	26	3	60	3	36	6	74	2	10		3	5a9ed9b0	58e67aaf	f1a75345	715dbf7b	4cf72387	fbad5c96	45e063a0	0b153874	a73ee510	27f4bf82	da89cb9b	d145dc65	165642be	b28479f6	62eca3c0	2ebf54b4	e5ba7672	c21c3e4c	338f20de	a458ea53	5bd3d286		32c7478e	bc8b14b9	9b3e8820	cdd2b5b7
+0		1	3		45904	111	0	1	27		0	0		05db9164	89ddfee8	3863b7f1	4daf48e1	25c83c98	fbad5c96	66acf824	0b153874	7cc72ec2	0ed4b00d	e192b186	dca65903	7df3a6c1	07d13a8f	4df3da6b	8784f12f	8efede7f	5bb2ec8e	3014a4b1	b1252a9d	d754f116	ad3062eb	423fab69	16291dd7	f0f449dd	e98cbe6a
+0		-1	2	2	2908	603	0	0	104		0		2	f473b8dc	38a947a1	223b0e16	ca55061c	25c83c98	7e0ccccf	eac6dc30	49dd1874	a73ee510	980d90f4	df29f7bb	156f99ef	67b031b4	1adce6ef	0e78291e	5fbf4a84	d4bb7bd8	1999bae9			deb9605d		32c7478e	e448275f		
+0		5	14	19	3708		0	35	376		0	0	19	05db9164	a796837e	08de7b18	97ce69e9	4cf72387	fe6b92e5	82f666b6	0b153874	a73ee510	03e48276	e51ddf94	c5011072	3516f6e6	cfef1c29	f0bf9094	5a9431f3	3486227d	1cdbd1c5			e754c5e1		3a171ecb	8fc66e78		
+1	3	3	4	7	102	30	4	23	23	1	2		23	8cf07265	26ece8a8	8c6bfe29	1e0ec6a2	25c83c98	fbad5c96	5c8931c6	0b153874	a73ee510	456b972a	77e7d573	1a614fd0	857a4197	07d13a8f	102fc449	d0b4477d	e5ba7672	87fd936e			b193bbca	ad3062eb	423fab69	5a456be6		
+1		12	2	2	7230	12	24	3	21		1		2	68fd1e64	80e26c9b	d3837635	230f1f17	25c83c98		f2d80b52	0b153874	a73ee510	4549ea1f	1bb4f435	b8b324f1	e8d4ea40	07d13a8f	f3635baf	1fb7f493	e5ba7672	f54016b9	21ddcdc9	a458ea53	90c2e498		32c7478e	1793a828	e8b83407	8efc26f8
+1		2	7	3	2934	48	4	4	117		3		3	05db9164	e5fb1af3	77d9caa7	932c3d89	25c83c98	7e0ccccf	ec874408	37e4aa92	a73ee510	5e2b2f1d	c6dfa670	21ca81df	3a4e700b	07d13a8f	b5de5956	cbe07a5c	e5ba7672	13145934	a34d2cf6	a458ea53	cbc662a7		3a171ecb	45a3e015	010f6491	b62a4ef5
+0		1	15	5	3699		0	36	77		0	0	5	05db9164	207b2d81	8a48553d	1e10bd9f	25c83c98	7e0ccccf	7f9907fe	5b392875	a73ee510	200e383b	a7b606c4	6803e296	eae197fd	b28479f6	3c767806	ff48ade9	e5ba7672	395856b0	21ddcdc9	b1252a9d	c3d093fb		3a171ecb	84a27184	001f3601	a30a3fb0
+0	4	175	12	2	923	55	8	48	103	1	2		2	5bfa8ab5	38a947a1	223b0e16	ca55061c	25c83c98	7e0ccccf	ade953a9	5b392875	a73ee510	4072f40f	29e4ad33	156f99ef	80467802	1adce6ef	0e78291e	5fbf4a84	e5ba7672	1999bae9			deb9605d		32c7478e	e448275f		
+0	11	1331	2	2	1296	8	11	13	54	1	1	1	4	68fd1e64	c8687797	5c7d8ff6	902872c9	25c83c98	fbad5c96	d20b4953	0b153874	a73ee510	fbbf2c95	46febd4d	79b87c55	949ea585	b28479f6	dc96c4b0	5627d7e0	3486227d	a7e06874	21ddcdc9	b1252a9d	4063500f	ad3062eb	32c7478e	54baf4d1	010f6491	ba676e3c
+1	3	4		2	1136	2	3	2	2	1	1		2	05db9164	f234d60e	01daaa01	1258049c	43b19349	fbad5c96	fae8ca82	0b153874	a73ee510	9a2a80f7	46d4b56a	ed98b1fb	ed738fad	07d13a8f	40fcbacb	4bf7ec4d	07c540c4	d942f032			8818bdec		3a171ecb	e4ef8e56		
+1	41	14	3	1	1	1	41	1	1	1	1		1	8cf07265	73a46ff0	85a07101	501abd52	0942e0a7	7e0ccccf	4ebdc6e2	0b153874	a73ee510	6417eabb	74475d27	593290d6	403e1842	1adce6ef	d57668e2	15b684be	e5ba7672	da507f45	21ddcdc9	5840adea	f4d7cf94		423fab69	b34f3128	ea9a246c	3090e38b
+1	0	19	2	1	0	63	2	3	7	0	2		0	05db9164	e18b1e61			384874ce	7e0ccccf	f417bf96	6c41e35e	a73ee510	3b08e48b	0ec1e215		44af41ef	07d13a8f	1d432c1e		e5ba7672	b2879faf				ad3062eb	3a171ecb			
+0		0	5	4	11141	218	1	24	217		1		4	68fd1e64	58e67aaf	2113709c	3bfbb842	4cf72387	fe6b92e5	cc8ce7f3	1f89b562	a73ee510	3b08e48b	b6ac69d0	27302de8	e987b058	07d13a8f	10935a85	7958d3dc	d4bb7bd8	c21c3e4c	55dd3565	a458ea53	192551e4		3a171ecb	48056b77	9b3e8820	76415198
+1		57	3	1	21443	49	8	1	38		1		1	5bfa8ab5	c5c1d6ae	bb85179d	98cd0302	25c83c98	fbad5c96	6855ef53	0b153874	a73ee510	175d6c71	b7094596	4750f0d1	1f9d2c38	07d13a8f	b25845fd	130b2582	3486227d	561cabfe	21ddcdc9	5840adea	ffbb089f		32c7478e	1026f362	7a402766	46f2af91
+0	0	0	10	5	1673	91	15	33	256	0	5		5	75ac2fe6	04e09220	b1ecc6c4	5dff9b29	25c83c98	7e0ccccf	63282fe3	0b153874	a73ee510	b95c890d	e6959f26	2436ff75	b57fa159	07d13a8f	f6b23a53	f4ead43c	8efede7f	6fc84bfb			4f1aa25f	ad3062eb	423fab69	ded4aac9		
+1		1	3	5	2985	13	1	5	7		1		5	05db9164	5dac953d	d032c263	c18be181	4cf72387	7e0ccccf	78c0b2ff	1f89b562	a73ee510	3b08e48b	eb4a9b83	dfbb09fb	c0bc5873	1adce6ef	32330105	84898b2a	d4bb7bd8	24de59c1			0014c32a		3a171ecb	3b183c5c		
+0		4	6	1	29743			21				0	1	05db9164	08d6d899	0bab1155	60d5f5a7	25c83c98	7e0ccccf	d6293852	0b153874	a73ee510	3b08e48b	c6cb726f	1d00cbc4	176d07bc	07d13a8f	41f10449	b93ac0ad	d4bb7bd8	698d1c68			bf8efd4c		72592995	f96a556f		
+0		1	1	3	5364	5	1	4	5		1		3	05db9164	207b2d81	057e845b	786673ae	25c83c98	6f6d9be8	f2a82962	0b153874	a73ee510	0ff7e0c6	c255f829	03aa3022	fe528cd1	b28479f6	899da9d5	dc377037	d4bb7bd8	25c88e42	21ddcdc9	a458ea53	907b8dff		32c7478e	7a8e7ed6	001f3601	9042adf0
+0	0	142	1	14	1559	85	13	5	267	0	3	0	14	5a9ed9b0	8ab240be	429e8271	c450716c	25c83c98	fe6b92e5	6fadbb76	1f89b562	a73ee510	fa7d0797	b5939c49	5c3be1d3	377af8aa	b28479f6	b4316eb3	4c0566cc	8efede7f	807ea8b0	21ddcdc9	5840adea	858c4106		32c7478e	2f0b2844	e8b83407	aa5f0a15
+1		1	5	9	8445	16	1	8	9		1	0	9	8cf07265	46bbf321	c5d94b65	5cc8f91d	384874ce	7e0ccccf	099d72d1	5b392875	a73ee510	230a3832	a6f5e788	75c79158	beaa48ab	243a4e68	bcdb9b50	208d4baf	3486227d	ce4d072d			6a909d9a		3a171ecb	1f68c81f		
+0		0	16	3	8297	46	7	5	8		1		3	be589b51	1cfdf714	2acc1a0e	1f2b62a4	4cf72387	7e0ccccf	b4ecbce4	0b153874	a73ee510	3b08e48b	8d68f0f6	cfe25cb7	4e9bebb4	687dfaf4	a54fca2b	446fa98b	e5ba7672	e88ffc9d	6f62a118	a458ea53	ff8c5410		3a171ecb	5029cba6	cb079c2d	a2de1476
+0	3	0	13	8	0	0	4	11	18	1	2		0	05db9164	0468d672	7b8d300a	c619d132	4cf72387	7e0ccccf	0fdf56d6	5b392875	a73ee510	42429aab	6241e24a	bb19e5a1	8c1a3ad8	b28479f6	234191d3	08042d48	e5ba7672	9880032b	21ddcdc9	5840adea	63e3637a	c9d4222a	bcdee96c	d33a0d83	ea9a246c	984e0db0
+0		0	9		326904			6						87552397	207b2d81	365d1d63	e9370452	25c83c98	fbad5c96	b10436ef	0b153874	7cc72ec2	2fed7fc5	4dee99ee	8ff467ea	d299b0dc	07d13a8f	0c67c4ca	acf5f625	07c540c4	395856b0	21ddcdc9	a458ea53	b6af5d81		3a171ecb	27e81296	001f3601	e1572e3b
+1	0	1	1		2708	27	12	0	37	0	4			5bfa8ab5	6c713117	f9513969	63bb9eb1	43b19349	fbad5c96	adbcc874	1f89b562	a73ee510	fa7d0797	46031dab	8ab52742	377af8aa	07d13a8f	78ebcaf1	0c98c1fc	e5ba7672	bf6b118a	21ddcdc9	b1252a9d	45664d1d		32c7478e	40de02ec	445bbe3b	b025bfb1

+ 190 - 0
recommend-model-produce/src/main/python/models/wide_and_deep_dataset/model.py

@@ -0,0 +1,190 @@
+import paddle
+import paddle.nn as nn
+import paddle.nn.functional as F
+import math
+
+
+class WideDeepLayer(nn.Layer):
+    def __init__(self, sparse_feature_number, sparse_feature_dim,
+                 dense_feature_dim, num_field, layer_sizes):
+        super(WideDeepLayer, self).__init__()
+        self.sparse_feature_number = sparse_feature_number
+        self.sparse_feature_dim = sparse_feature_dim
+        self.dense_feature_dim = dense_feature_dim
+        self.num_field = num_field
+        self.layer_sizes = layer_sizes
+
+        self.wide_part = paddle.nn.Linear(
+            in_features=self.dense_feature_dim,
+            out_features=1,
+            weight_attr=paddle.ParamAttr(
+                initializer=paddle.nn.initializer.TruncatedNormal(
+                    mean=0.0, std=1.0 / math.sqrt(self.dense_feature_dim))))
+
+        self.embedding = paddle.nn.Embedding(
+            self.sparse_feature_number,
+            self.sparse_feature_dim,
+            sparse=True,
+            weight_attr=paddle.ParamAttr(
+                name="SparseFeatFactors",
+                initializer=paddle.nn.initializer.Uniform()))
+
+        sizes = [sparse_feature_dim * num_field + dense_feature_dim
+                 ] + self.layer_sizes + [1]
+        acts = ["relu" for _ in range(len(self.layer_sizes))] + [None]
+        self._mlp_layers = []
+        for i in range(len(layer_sizes) + 1):
+            linear = paddle.nn.Linear(
+                in_features=sizes[i],
+                out_features=sizes[i + 1],
+                weight_attr=paddle.ParamAttr(
+                    initializer=paddle.nn.initializer.Normal(
+                        std=1.0 / math.sqrt(sizes[i]))))
+            self.add_sublayer('linear_%d' % i, linear)
+            self._mlp_layers.append(linear)
+            if acts[i] == 'relu':
+                act = paddle.nn.ReLU()
+                self.add_sublayer('act_%d' % i, act)
+                self._mlp_layers.append(act)
+
+    def forward(self, sparse_inputs, dense_inputs):
+        # wide part
+        wide_output = self.wide_part(dense_inputs)
+
+        # deep part
+        sparse_embs = []
+        for s_input in sparse_inputs:
+            #emb = self.embedding(s_input)
+            emb = paddle.static.nn.sparse_embedding(s_input, size = [1024, self.sparse_feature_dim], param_attr=paddle.ParamAttr(name="embedding"))
+            emb = paddle.reshape(emb, shape=[-1, self.sparse_feature_dim])
+            sparse_embs.append(emb)
+
+        deep_output = paddle.concat(x=sparse_embs + [dense_inputs], axis=1)
+        for n_layer in self._mlp_layers:
+            deep_output = n_layer(deep_output)
+
+        prediction = paddle.add(x=wide_output, y=deep_output)
+        pred = F.sigmoid(prediction)
+        return pred
+
+
+class WideDeepModel:
+    def __init__(self, sparse_feature_number=1000001, sparse_inputs_slots=27, sparse_feature_dim=10, dense_input_dim=13, fc_sizes=[400, 400, 400]):
+        self.sparse_feature_number = sparse_feature_number
+        self.sparse_inputs_slots = sparse_inputs_slots
+        self.sparse_feature_dim = sparse_feature_dim
+        self.dense_input_dim = dense_input_dim
+        self.fc_sizes = fc_sizes
+
+        self._metrics = {}
+
+    def acc_metrics(self, pred, label):
+        correct_cnt = paddle.static.create_global_var(
+            name="right_cnt", persistable=True, dtype='float32', shape=[1], value=0)
+        total_cnt = paddle.static.create_global_var(
+            name="total_cnt", persistable=True, dtype='float32', shape=[1], value=0)
+
+        batch_cnt = paddle.sum(
+            paddle.full(shape=[paddle.shape(label)[0], 1], fill_value=1.0))
+        batch_accuracy = paddle.static.accuracy(input=pred, label=label)
+        batch_correct = batch_cnt * batch_accuracy
+
+        paddle.assign(correct_cnt + batch_correct, correct_cnt)
+        paddle.assign(total_cnt + batch_cnt, total_cnt)
+        accuracy = correct_cnt / total_cnt
+
+        self._metrics["acc"] = {}
+        self._metrics["acc"]["result"] = accuracy
+        self._metrics["acc"]["state"] = {
+            "total": (total_cnt, "float32"), "correct": (correct_cnt, "float32")}
+
+    def auc_metrics(self, pred, label):
+        auc, batch_auc, [batch_stat_pos, batch_stat_neg, stat_pos, stat_neg] = paddle.static.auc(input=pred,
+                                                                                                 label=label,
+                                                                                                 num_thresholds=2**12,
+                                                                                                 slide_steps=20)
+
+        self._metrics["auc"] = {}
+        self._metrics["auc"]["result"] = auc
+        self._metrics["auc"]["state"] = {"stat_pos": (
+            stat_pos, "int64"), "stat_neg": (stat_neg, "int64")}
+
+    def mae_metrics(self, pred, label):
+        abserr = paddle.static.create_global_var(
+            name="abserr", persistable=True, dtype='float32', shape=[1], value=0)
+        total_cnt = paddle.static.create_global_var(
+            name="total_cnt", persistable=True, dtype='float32', shape=[1], value=0)
+
+        batch_cnt = paddle.sum(
+            paddle.full(shape=[paddle.shape(label)[0], 1], fill_value=1.0))
+        batch_abserr = paddle.nn.functional.l1_loss(
+            pred, label, reduction='sum')
+
+        paddle.assign(abserr + batch_abserr, abserr)
+        paddle.assign(total_cnt + batch_cnt, total_cnt)
+        mae = abserr / total_cnt
+
+        self._metrics["mae"] = {}
+        self._metrics["mae"]["result"] = mae
+        self._metrics["mae"]["state"] = {
+            "total": (total_cnt, "float32"), "abserr": (abserr, "float32")}
+
+    def mse_metrics(self, pred, label):
+        sqrerr = paddle.static.create_global_var(
+            name="sqrerr", persistable=True, dtype='float32', shape=[1], value=0)
+        total_cnt = paddle.static.create_global_var(
+            name="total_cnt", persistable=True, dtype='float32', shape=[1], value=0)
+
+        batch_cnt = paddle.sum(
+            paddle.full(shape=[paddle.shape(label)[0], 1], fill_value=1.0))
+        batch_sqrerr = paddle.nn.functional.mse_loss(
+            pred, label, reduction='sum')
+
+        paddle.assign(sqrerr + batch_sqrerr, sqrerr)
+        paddle.assign(total_cnt + batch_cnt, total_cnt)
+        mse = sqrerr / total_cnt
+        rmse = paddle.sqrt(mse)
+
+        self._metrics["mse"] = {}
+        self._metrics["mse"]["result"] = mse
+        self._metrics["mse"]["state"] = {
+            "total": (total_cnt, "float32"), "sqrerr": (sqrerr, "float32")}
+
+        self._metrics["rmse"] = {}
+        self._metrics["rmse"]["result"] = rmse
+        self._metrics["rmse"]["state"] = {
+            "total": (total_cnt, "float32"), "sqrerr": (sqrerr, "float32")}
+
+    def net(self, is_train=True):
+        dense_input = paddle.static.data(name="dense_input", shape=[
+                                         None, self.dense_input_dim], dtype="float32")
+
+        sparse_inputs = [
+            paddle.static.data(name="C" + str(i),
+                               shape=[None, 1],
+                               lod_level=1,
+                               dtype="int64") for i in range(1, self.sparse_inputs_slots)
+        ]
+
+        label_input = paddle.static.data(
+            name="label", shape=[None, 1], dtype="int64")
+
+        self.inputs = [dense_input] + sparse_inputs + [label_input]
+
+        wide_deep_model = WideDeepLayer(self.sparse_feature_number, self.sparse_feature_dim,
+                                        self.dense_input_dim, self.sparse_inputs_slots - 1, self.fc_sizes)
+
+        pred = wide_deep_model.forward(sparse_inputs, dense_input)
+        predict_2d = paddle.concat(x=[1 - pred, pred], axis=1)
+        label_float = paddle.cast(label_input, dtype="float32")
+
+        with paddle.utils.unique_name.guard():
+            self.acc_metrics(pred, label_input)
+            self.auc_metrics(predict_2d, label_input)
+            self.mae_metrics(pred, label_float)
+            self.mse_metrics(pred, label_float)
+
+        # loss
+        cost = paddle.nn.functional.log_loss(input=pred, label=label_float)
+        avg_cost = paddle.mean(x=cost)
+        self.loss = avg_cost

+ 47 - 0
recommend-model-produce/src/main/python/models/wide_and_deep_dataset/reader.py

@@ -0,0 +1,47 @@
+import paddle
+import paddle.distributed.fleet as fleet
+import os
+import sys
+
+cont_min_ = [0, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+cont_max_ = [20, 600, 100, 50, 64000, 500, 100, 50, 500, 10, 10, 10, 50]
+cont_diff_ = [20, 603, 100, 50, 64000, 500, 100, 50, 500, 10, 10, 10, 50]
+hash_dim_ = 1000001
+continuous_range_ = range(1, 14)
+categorical_range_ = range(14, 40)
+
+
+class WideDeepDatasetReader(fleet.MultiSlotDataGenerator):
+
+    def line_process(self, line):
+        features = line.rstrip('\n').split('\t')
+        dense_feature = []
+        sparse_feature = []
+        for idx in continuous_range_:
+            if features[idx] == "":
+                dense_feature.append(0.0)
+            else:
+                dense_feature.append(
+                    (float(features[idx]) - cont_min_[idx - 1]) / cont_diff_[idx - 1])
+        for idx in categorical_range_:
+            sparse_feature.append(
+                [hash(str(idx) + features[idx]) % hash_dim_])
+        label = [int(features[0])]
+        return [dense_feature]+sparse_feature+[label]
+    
+    def generate_sample(self, line):
+        def wd_reader():
+            input_data = self.line_process(line)
+            feature_name = ["dense_input"]
+            for idx in categorical_range_:
+                feature_name.append("C" + str(idx - 13))
+            feature_name.append("label")
+            yield zip(feature_name, input_data)
+        
+        return wd_reader
+
+if __name__ == "__main__":
+    my_data_generator = WideDeepDatasetReader()
+    #my_data_generator.set_batch(16)
+
+    my_data_generator.run_from_stdin()

+ 81 - 0
recommend-model-produce/src/main/python/models/wide_and_deep_dataset/train.py

@@ -0,0 +1,81 @@
+from paddle.distributed.fleet.utils.ps_util import DistributedInfer
+import paddle.distributed.fleet as fleet
+import numpy as np
+from model import WideDeepModel
+from reader import WideDeepDatasetReader 
+import os
+import sys
+
+import paddle
+paddle.enable_static()
+
+
+def distributed_training(exe, train_model, train_data_path="./data", batch_size=4, epoch_num=1):
+
+    # if you want to use InMemoryDataset, please invoke load_into_memory/release_memory at train_from_dataset front and back.
+    #dataset = paddle.distributed.InMemoryDataset()
+    #dataset.load_into_memory()
+    # train_from_dataset ...
+    #dataset.release_memory()
+
+    dataset = paddle.distributed.QueueDataset()
+    thread_num = 1
+    dataset.init(use_var=model.inputs, pipe_command="python reader.py", batch_size=batch_size, thread_num=thread_num)
+
+    train_files_list = [os.path.join(train_data_path, x)
+                          for x in os.listdir(train_data_path)]
+    
+    for epoch_id in range(epoch_num):
+        dataset.set_filelist(train_files_list)
+        exe.train_from_dataset(paddle.static.default_main_program(),
+                               dataset,
+                               paddle.static.global_scope(), 
+                               debug=True, 
+                               fetch_list=[train_model.loss],
+                               fetch_info=["loss"],
+                               print_period=1)
+
+
+def clear_metric_state(model, place):
+    for metric_name in model._metrics:
+        for _, state_var_tuple in model._metrics[metric_name]["state"].items():
+            var = paddle.static.global_scope().find_var(
+                state_var_tuple[0].name)
+            if var is None:
+                continue
+            var = var.get_tensor()
+            data_zeros = np.zeros(var._get_dims()).astype(state_var_tuple[1])
+            var.set(data_zeros, place)
+
+
+fleet.init(is_collective=False)
+
+model = WideDeepModel()
+model.net(is_train=True)
+
+strategy = fleet.DistributedStrategy()
+strategy.a_sync = True
+
+optimizer = paddle.optimizer.SGD(learning_rate=0.0001)
+
+optimizer = fleet.distributed_optimizer(optimizer, strategy)
+
+optimizer.minimize(model.loss)
+
+
+if fleet.is_server():
+    fleet.init_server()
+    fleet.run_server()
+
+if fleet.is_worker():
+    place = paddle.CPUPlace()
+    exe = paddle.static.Executor(place)
+
+    exe.run(paddle.static.default_startup_program())
+
+    fleet.init_worker()
+
+    distributed_training(exe, model)
+    clear_metric_state(model, place)
+
+    fleet.stop_worker()