-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtrains.sql
More file actions
103 lines (85 loc) · 14.3 KB
/
trains.sql
File metadata and controls
103 lines (85 loc) · 14.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
-- in cloud 9, start the postgres service:
-- sudo service postgresql start
-- connect:
-- sudo sudo -u postgres psql
-- \c trainrequest
-- get to the filesystem while still logged in as super user
-- \!
-- run this file
-- psql -f trains.sql
create database trainrequest;
\c trainrequest;
drop table trainrequest.public.TTX_Empl_Trng_Reqst;
CREATE TABLE trainrequest.public.TTX_Empl_Trng_Reqst (
Trng_Reqst_Nbr int NOT NULL,
Cntct_Email_Addr varchar(65) NOT NULL,
Cntct_Email_Immed_Supv_Addr varchar(65) NOT NULL,
Cntct_Email_Dept_Hd_Addr varchar(65) NOT NULL,
Trng_Cors_Id char(10) NOT NULL,
Trng_Cors_Nm varchar(256) NOT NULL,
Trng_Cors_Nbr char(10) NOT NULL,
Trng_Cors_Strt_Dt timestamp NOT NULL,
Trng_Cors_End_Dt timestamp NOT NULL,
Trng_Cors_Totl_Nbr_Hrs decimal(5, 2) NOT NULL,
Trng_Cors_Cost decimal(7, 2) NOT NULL,
Trng_Cors_Rltd_Exp_Amt decimal(7, 2) NULL,
Trng_Cors_Locn varchar(256) NOT NULL,
Trng_Cors_Typ char(25) NULL,
Trng_Reqst_Cors_Bnft_Txt varchar(256) NOT NULL,
Trng_Reqst_Immed_Supv_Apvl_Flg char(1) NULL,
Trng_Reqst_Dept_Hd_Apvl_Flg char(1) NULL,
Trng_Reqst_VP_Apvl_Flg char(1) NULL,
Trng_Cors_Compl_Flg char(1) NULL,
Trng_Cors_Budg_Pln_Flg char(1) NULL,
Trng_Cors_Not_Budg_Pln_Rsn_Txt varchar(255) NULL,
Trng_Cors_Not_Compl_Rsn_Txt varchar(256) NULL,
Trng_Reqst_Fwd_Actg_Paym_Flg char(1) NULL,
Trng_Reqst_Paym_Recip_Email_Addr varchar(65) NULL,
Trng_Reqst_Rejt_Rsn_Txt varchar(255) NULL,
Trng_Reqst_Paym_Reqst_Dt timestamp NULL,
Trng_Reqst_Paym_Due_Dt timestamp NULL,
Trng_Reqst_Paym_Chk_Amt decimal(7, 2) NULL,
Trng_Reqst_Paym_Mail_Flg char(1) NULL,
Vndr_Nbr char(10) NULL,
Vndr_Nm varchar(40) NOT NULL,
Vndr_Mail_Addr varchar(40) NULL,
Vndr_Mail_Addr_Ln_2 varchar(40) NULL,
Vndr_Mail_City varchar(25) NULL,
Vndr_Mail_St char(2) NULL,
Vndr_Mail_Zip_Cd char(10) NULL,
Vndr_Mail_Cntry varchar(40) NULL,
Trng_Reqst_Cost_Ctr varchar(10) NULL,
Trng_Reqst_GL_Acct_Nbr varchar(10) NULL,
Crtd_Dt timestamp NULL CONSTRAINT CURRENT_TIMESTAMP1 DEFAULT current_timestamp,
Lst_Updt_Dt timestamp NULL CONSTRAINT CURRENT_TIMESTAMP2 DEFAULT current_timestamp,
Lst_Updt_Id char(8) NOT NULL
);
create role nodeuser with password '13149700' login;
grant connect on database trainrequest to nodeuser;
grant select on public.TTX_Empl_Trng_Reqst to nodeuser;
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20140015', '[email protected]', '[email protected]', '[email protected]', '', 'Visual Studio Live', '0', '5/5/2014 0:00:00', '5/8/2014 0:00:00', '32', '1795', '0', 'Chicago', 'Conference', 'Learn latest Microsoft technology', 'Y', 'Y', 'Y', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'Visual Studio Live! Chicago', '1277 University of Oregon ', '', 'Eugene', 'OR', '97403-1277', '', '', '464000', '2/26/2014 9:06:51', '3/4/2014 12:58:50', 'MISBGS');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20150044', '[email protected]', '[email protected]', '[email protected]', '', 'Visual Studio Live! 2015', '0', '9/28/2015 0:00:00', '10/1/2015 0:00:00', '32', '1895', '0', 'Brooklyn, NY', 'Conference', 'Improve my technical skills and make me a more valuable asset to the company and give me the opportunity to learn from both industry experts and Microsoft product team members in a dev-focused environment.', 'Y', 'P', 'P', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'Visual Studio Live! New York ', 'Attn: Erin Shirley', '14901 Quorum Drive, Suite 425', 'Dallas', 'TX', '75254', '', '', '464000', '6/24/2015 9:45:37', '6/29/2015 15:43:42', 'DEVOLC');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20150053', '[email protected]', '[email protected]', '[email protected]', '', 'Visual Studio Live', '0', '9/28/2015 0:00:00', '10/1/2015 0:00:00', '32', '1795', '1375', 'NY City', 'Conference', 'Learn latest Micosoft technology ', 'Y', 'P', 'P', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'Visual Studio Live! New York ', '14901 Quorum Drive, Suite 425', '', 'Dallas', 'TX', '75254', '', '', '464000', '7/27/2015 16:34:47', '7/29/2015 9:31:24', 'DEVSCW');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20150076', '[email protected]', '[email protected]', '[email protected]', '', 'AppDynamics In Action for Power Users - .NET', '0', '11/30/2015 0:00:00', '12/4/2015 0:00:00', '40', '0', '0', 'Las Vegas', 'Conference', 'Learning AppDynmic all core product features', 'P', 'P', 'P', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'AppDynamics', '', '', '', '', '', '', '', '464000', '11/9/2015 8:23:26', '11/9/2015 8:23:26', 'DEVYAT');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20160006', '[email protected]', '[email protected]', '[email protected]', '', 'Build 2016', '0', '3/30/2016 0:00:00', '4/1/2016 0:00:00', '24', '0', '1500', 'San Francisco', 'Conference', 'Learning Microsoft new technologies', 'Y', 'Y', 'Y', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'Microsoft', '', '', '', '', '', '', '', '464000', '1/27/2016 8:41:38', '1/29/2016 16:12:16', 'MISBGS');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20160009', '[email protected]', '[email protected]', '[email protected]', '', 'DevIntersections 2016', '0', '4/16/2016 0:00:00', '4/22/2016 0:00:00', '48', '2793', '1500', 'Lake Buena Vista, FL', 'Conference', 'This conference is going to have sessions and workshops discussing new javascript tools such as AngularJS 2 and Nativescript in order to build cross-platform applications using AngularJS.', 'Y', 'Y', 'Y', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'DevIntersections 2016', '', '', '', '', '', '', '', '464000', '1/28/2016 8:31:30', '1/29/2016 16:11:43', 'MISBGS');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20160010', '[email protected]', '[email protected]', '[email protected]', '', 'Anglebrackets 2016', '0', '4/16/2016 0:00:00', '4/22/2016 0:00:00', '48', '2793', '1500', 'Orlando, FL 32830', 'Conference', 'Learn about open source frameworks relevant to the Emerging Technologies team', 'P', 'Y', 'Y', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'Anglebrackets 2016', '', '', '', '', '', '', '', '464000', '1/28/2016 11:55:50', '1/29/2016 16:12:00', 'MISBGS');
insert into TTX_Empl_Trng_Reqst (Trng_Reqst_Nbr, Cntct_Email_Addr, Cntct_Email_Immed_Supv_Addr, Cntct_Email_Dept_Hd_Addr, Trng_Cors_Id, Trng_Cors_Nm, Trng_Cors_Nbr, Trng_Cors_Strt_Dt, Trng_Cors_End_Dt, Trng_Cors_Totl_Nbr_Hrs, Trng_Cors_Cost, Trng_Cors_Rltd_Exp_Amt, Trng_Cors_Locn, Trng_Cors_Typ, Trng_Reqst_Cors_Bnft_Txt, Trng_Reqst_Immed_Supv_Apvl_Flg, Trng_Reqst_Dept_Hd_Apvl_Flg, Trng_Reqst_VP_Apvl_Flg, Trng_Cors_Compl_Flg, Trng_Cors_Budg_Pln_Flg, Trng_Cors_Not_Budg_Pln_Rsn_Txt, Trng_Cors_Not_Compl_Rsn_Txt, Trng_Reqst_Fwd_Actg_Paym_Flg, Trng_Reqst_Paym_Recip_Email_Addr, Trng_Reqst_Rejt_Rsn_Txt, Trng_Reqst_Paym_Reqst_Dt, Trng_Reqst_Paym_Due_Dt, Trng_Reqst_Paym_Chk_Amt, Trng_Reqst_Paym_Mail_Flg, Vndr_Nbr, Vndr_Nm, Vndr_Mail_Addr, Vndr_Mail_Addr_Ln_2, Vndr_Mail_City, Vndr_Mail_St, Vndr_Mail_Zip_Cd, Vndr_Mail_Cntry, Trng_Reqst_Cost_Ctr, Trng_Reqst_GL_Acct_Nbr, Crtd_Dt, Lst_Updt_Dt, Lst_Updt_Id) values('20160011', '[email protected]', '[email protected]', '[email protected]', '', 'Angle Brackets', '0', '4/17/2016 0:00:00', '4/22/2016 0:00:00', '48', '2793', '1806', 'Orlando, FL', 'Conference', 'Training on many new technologies including Angular, Node, JavaScript which are integral to the new Emerging Technology Team.', 'Y', 'Y', 'Y', '', 'Y', '', '', 'N', '', '', '12/31/1899 0:00:00', '12/31/1899 0:00:00', '0', 'N', '', 'AngleBrackets/DevIntersection', '', '', '', '', '', '', '', '464000', '1/28/2016 12:30:24', '1/29/2016 16:11:26', 'MISBGS');
create database nodeworkshop;
\c nodeworkshop;
create table if not exists trains (
id serial primary key,
name text,
inService boolean,
numberOfAvailable int
);
create role nodeuser with password '13149700' login;
grant connect on database nodeworkshop to nodeuser;
grant select on public.trains to nodeuser;
insert into trains (name, inService, numberOfAvailable) values ('redline 813', true, '8');
insert into trains (name, inService, numberOfAvailable) values ('redline 912', true, '10');
insert into trains (name, inService, nu ', true, '8');
<<<<<<< HEAD
=======
>>>>>>> ab1aa2dc12b5b08bec94680ec6157f16a0b7331b
>>>>>>> 67b4e50cb460ed0bc082a93472f1ff754f937e23