From 2393fbec6062da4e681b4315e89b27c934a641f1 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 9 Feb 2009 14:47:23 -0500 Subject: add some indices for performance --- db/laconica.sql | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'db') diff --git a/db/laconica.sql b/db/laconica.sql index 012270b51..16f482134 100644 --- a/db/laconica.sql +++ b/db/laconica.sql @@ -258,7 +258,8 @@ create table notice_tag ( created datetime not null comment 'date this record was created', constraint primary key (tag, notice_id), - index notice_tag_created_idx (created) + index notice_tag_created_idx (created), + index notice_tag_notice_id_idx (notice_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; /* Synching with foreign services */ @@ -356,7 +357,8 @@ create table profile_tag ( constraint primary key (tagger, tagged, tag), index profile_tag_modified_idx (modified), - index profile_tag_tagger_tag_idx (tagger, tag) + index profile_tag_tagger_tag_idx (tagger, tag), + index profile_tag_tagged_idx (tagged) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table profile_block ( @@ -400,7 +402,9 @@ create table group_member ( created datetime not null comment 'date this record was created', modified timestamp comment 'date this record was modified', - constraint primary key (group_id, profile_id) + constraint primary key (group_id, profile_id), + index group_member_profile_id_idx (profile_id), + index group_member_created_idx (created) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; -- cgit v1.2.3-54-g00ecf From 511864369511b2e749d168d717d84237a13a201f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 12 Feb 2009 13:58:05 -0500 Subject: move carrier.sql to sms_carrier.sql --- db/carrier.sql | 61 ------------------------------------------------------ db/sms_carrier.sql | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 db/carrier.sql create mode 100644 db/sms_carrier.sql (limited to 'db') diff --git a/db/carrier.sql b/db/carrier.sql deleted file mode 100644 index 932f7c8bb..000000000 --- a/db/carrier.sql +++ /dev/null @@ -1,61 +0,0 @@ -insert into sms_carrier - (name, email_pattern, created) -values - ('3 River Wireless', '%s@sms.3rivers.net', now()), - ('7-11 Speakout', '%s@cingularme.com', now()), - ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()), - ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()), - ('Alltel Wireless', '%s@message.alltel.com', now()), - ('AT&T Wireless', '%s@txt.att.net', now()), - ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()), - ('Boost Mobile', '%s@myboostmobile.com', now()), - ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), - ('Cincinnati Bell Wireless', '%s@gocbw.com', now()), - ('Cingular (Postpaid)', '%s@cingularme.com', now()), - ('Centennial Wireless', '%s@cwemail.com', now()), - ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), - ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), - ('Comcel', '%s@comcel.com.co', now()), - ('Cricket', '%s@sms.mycricket.com', now()), - ('CTI', '%s@sms.ctimovil.com.ar', now()), - ('Emtel (Mauritius)', '%s@emtelworld.net', now()), - ('Fido (Canada)', '%s@fido.ca', now()), - ('General Communications Inc.', '%s@msg.gci.net', now()), - ('Globalstar', '%s@msg.globalstarusa.com', now()), - ('Helio', '%s@myhelio.com', now()), - ('Illinois Valley Cellular', '%s@ivctext.com', now()), - ('i wireless', '%s.iws@iwspcs.net', now()), - ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), - ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), - ('MetroPCS', '%s@mymetropcs.com', now()), - ('Movicom', '%s@movimensaje.com.ar', now()), - ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), - ('Movistar (Colombia)', '%s@movistar.com.co', now()), - ('MTN (South Africa)', '%s@sms.co.za', now()), - ('MTS (Canada)', '%s@text.mtsmobility.com', now()), - ('Nextel (Argentina)', '%s@nextel.net.ar', now()), - ('Orange (Poland)', '%s@orange.pl', now()), - ('Orange (UK)', '%s@orange.net', now()), - ('Personal (Argentina)', '%s@personal-net.com.ar', now()), - ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), - ('President''s Choice (Canada)', '%s@txt.bell.ca', now()), - ('Qwest', '%s@qwestmp.com', now()), - ('Rogers (Canada)', '%s@pcs.rogers.com', now()), - ('Sasktel (Canada)', '%s@sms.sasktel.com', now()), - ('Setar Mobile email (Aruba)', '%s@mas.aw', now()), - ('Solo Mobile', '%s@txt.bell.ca', now()), - ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), - ('Sprint (Nextel)', '%s@page.nextel.com', now()), - ('Suncom', '%s@tms.suncom.com', now()), - ('T-Mobile', '%s@tmomail.net', now()), - ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), - ('Telus Mobility (Canada)', '%s@msg.telus.com', now()), - ('Thumb Cellular', '%s@sms.thumbcellular.com', now()), - ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), - ('Unicel', '%s@utext.com', now()), - ('US Cellular', '%s@email.uscc.net', now()), - ('Verizon', '%s@vtext.com', now()), - ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()), - ('Virgin Mobile (USA)', '%s@vmobl.com', now()), - ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()), - ('YCC', '%s@sms.ycc.ru', now()); diff --git a/db/sms_carrier.sql b/db/sms_carrier.sql new file mode 100644 index 000000000..932f7c8bb --- /dev/null +++ b/db/sms_carrier.sql @@ -0,0 +1,61 @@ +insert into sms_carrier + (name, email_pattern, created) +values + ('3 River Wireless', '%s@sms.3rivers.net', now()), + ('7-11 Speakout', '%s@cingularme.com', now()), + ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()), + ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()), + ('Alltel Wireless', '%s@message.alltel.com', now()), + ('AT&T Wireless', '%s@txt.att.net', now()), + ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()), + ('Boost Mobile', '%s@myboostmobile.com', now()), + ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), + ('Cincinnati Bell Wireless', '%s@gocbw.com', now()), + ('Cingular (Postpaid)', '%s@cingularme.com', now()), + ('Centennial Wireless', '%s@cwemail.com', now()), + ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), + ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), + ('Comcel', '%s@comcel.com.co', now()), + ('Cricket', '%s@sms.mycricket.com', now()), + ('CTI', '%s@sms.ctimovil.com.ar', now()), + ('Emtel (Mauritius)', '%s@emtelworld.net', now()), + ('Fido (Canada)', '%s@fido.ca', now()), + ('General Communications Inc.', '%s@msg.gci.net', now()), + ('Globalstar', '%s@msg.globalstarusa.com', now()), + ('Helio', '%s@myhelio.com', now()), + ('Illinois Valley Cellular', '%s@ivctext.com', now()), + ('i wireless', '%s.iws@iwspcs.net', now()), + ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), + ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), + ('MetroPCS', '%s@mymetropcs.com', now()), + ('Movicom', '%s@movimensaje.com.ar', now()), + ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), + ('Movistar (Colombia)', '%s@movistar.com.co', now()), + ('MTN (South Africa)', '%s@sms.co.za', now()), + ('MTS (Canada)', '%s@text.mtsmobility.com', now()), + ('Nextel (Argentina)', '%s@nextel.net.ar', now()), + ('Orange (Poland)', '%s@orange.pl', now()), + ('Orange (UK)', '%s@orange.net', now()), + ('Personal (Argentina)', '%s@personal-net.com.ar', now()), + ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), + ('President''s Choice (Canada)', '%s@txt.bell.ca', now()), + ('Qwest', '%s@qwestmp.com', now()), + ('Rogers (Canada)', '%s@pcs.rogers.com', now()), + ('Sasktel (Canada)', '%s@sms.sasktel.com', now()), + ('Setar Mobile email (Aruba)', '%s@mas.aw', now()), + ('Solo Mobile', '%s@txt.bell.ca', now()), + ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), + ('Sprint (Nextel)', '%s@page.nextel.com', now()), + ('Suncom', '%s@tms.suncom.com', now()), + ('T-Mobile', '%s@tmomail.net', now()), + ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), + ('Telus Mobility (Canada)', '%s@msg.telus.com', now()), + ('Thumb Cellular', '%s@sms.thumbcellular.com', now()), + ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), + ('Unicel', '%s@utext.com', now()), + ('US Cellular', '%s@email.uscc.net', now()), + ('Verizon', '%s@vtext.com', now()), + ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()), + ('Virgin Mobile (USA)', '%s@vmobl.com', now()), + ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()), + ('YCC', '%s@sms.ycc.ru', now()); -- cgit v1.2.3-54-g00ecf From 654a91cc1c99dcb556bce240e03dbfa1689d0d70 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 12 Feb 2009 14:03:15 -0500 Subject: Add fixed IDs to SMS carrier list Changed the SMS carrier list to use a fixed ID number for each carrier distributed with the software. We claim IDs > 100000; admins can use IDs < 100000 for local values. I'd be pretty surprised if there were more than 100K wireless carriers in the world, but hey. --- db/sms_carrier.sql | 124 +++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 61 deletions(-) (limited to 'db') diff --git a/db/sms_carrier.sql b/db/sms_carrier.sql index 932f7c8bb..6879f2089 100644 --- a/db/sms_carrier.sql +++ b/db/sms_carrier.sql @@ -1,61 +1,63 @@ -insert into sms_carrier - (name, email_pattern, created) -values - ('3 River Wireless', '%s@sms.3rivers.net', now()), - ('7-11 Speakout', '%s@cingularme.com', now()), - ('Airtel (Karnataka, India)', '%s@airtelkk.com', now()), - ('Alaska Communications Systems', '%s@msg.acsalaska.com', now()), - ('Alltel Wireless', '%s@message.alltel.com', now()), - ('AT&T Wireless', '%s@txt.att.net', now()), - ('Bell Mobility (Canada)', '%s@txt.bell.ca', now()), - ('Boost Mobile', '%s@myboostmobile.com', now()), - ('Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), - ('Cincinnati Bell Wireless', '%s@gocbw.com', now()), - ('Cingular (Postpaid)', '%s@cingularme.com', now()), - ('Centennial Wireless', '%s@cwemail.com', now()), - ('Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), - ('Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), - ('Comcel', '%s@comcel.com.co', now()), - ('Cricket', '%s@sms.mycricket.com', now()), - ('CTI', '%s@sms.ctimovil.com.ar', now()), - ('Emtel (Mauritius)', '%s@emtelworld.net', now()), - ('Fido (Canada)', '%s@fido.ca', now()), - ('General Communications Inc.', '%s@msg.gci.net', now()), - ('Globalstar', '%s@msg.globalstarusa.com', now()), - ('Helio', '%s@myhelio.com', now()), - ('Illinois Valley Cellular', '%s@ivctext.com', now()), - ('i wireless', '%s.iws@iwspcs.net', now()), - ('Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), - ('Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), - ('MetroPCS', '%s@mymetropcs.com', now()), - ('Movicom', '%s@movimensaje.com.ar', now()), - ('Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), - ('Movistar (Colombia)', '%s@movistar.com.co', now()), - ('MTN (South Africa)', '%s@sms.co.za', now()), - ('MTS (Canada)', '%s@text.mtsmobility.com', now()), - ('Nextel (Argentina)', '%s@nextel.net.ar', now()), - ('Orange (Poland)', '%s@orange.pl', now()), - ('Orange (UK)', '%s@orange.net', now()), - ('Personal (Argentina)', '%s@personal-net.com.ar', now()), - ('Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), - ('President''s Choice (Canada)', '%s@txt.bell.ca', now()), - ('Qwest', '%s@qwestmp.com', now()), - ('Rogers (Canada)', '%s@pcs.rogers.com', now()), - ('Sasktel (Canada)', '%s@sms.sasktel.com', now()), - ('Setar Mobile email (Aruba)', '%s@mas.aw', now()), - ('Solo Mobile', '%s@txt.bell.ca', now()), - ('Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), - ('Sprint (Nextel)', '%s@page.nextel.com', now()), - ('Suncom', '%s@tms.suncom.com', now()), - ('T-Mobile', '%s@tmomail.net', now()), - ('T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), - ('Telus Mobility (Canada)', '%s@msg.telus.com', now()), - ('Thumb Cellular', '%s@sms.thumbcellular.com', now()), - ('Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), - ('Unicel', '%s@utext.com', now()), - ('US Cellular', '%s@email.uscc.net', now()), - ('Verizon', '%s@vtext.com', now()), - ('Virgin Mobile (Canada)', '%s@vmobile.ca', now()), - ('Virgin Mobile (USA)', '%s@vmobl.com', now()), - ('Vodafone NZ (txt ''R'' to 901 to enable first)', '%s@sms.vodafone.net.nz', now()), - ('YCC', '%s@sms.ycc.ru', now()); +INSERT INTO sms_carrier + (id, name, email_pattern, created) +VALUES + (100056, '3 River Wireless', '%s@sms.3rivers.net', now()), + (100057, '7-11 Speakout', '%s@cingularme.com', now()), + (100058, 'Airtel (Karnataka, India)', '%s@airtelkk.com', now()), + (100059, 'Alaska Communications Systems', '%s@msg.acsalaska.com', now()), + (100060, 'Alltel Wireless', '%s@message.alltel.com', now()), + (100061, 'AT&T Wireless', '%s@txt.att.net', now()), + (100062, 'Bell Mobility (Canada)', '%s@txt.bell.ca', now()), + (100063, 'Boost Mobile', '%s@myboostmobile.com', now()), + (100064, 'Cellular One (Dobson)', '%s@mobile.celloneusa.com', now()), + (100065, 'Cingular (Postpaid)', '%s@cingularme.com', now()), + (100066, 'Centennial Wireless', '%s@cwemail.com', now()), + (100067, 'Cingular (GoPhone prepaid)', '%s@cingularme.com', now()), + (100068, 'Claro (Nicaragua)', '%s@ideasclaro-ca.com', now()), + (100069, 'Comcel', '%s@comcel.com.co', now()), + (100070, 'Cricket', '%s@sms.mycricket.com', now()), + (100071, 'CTI', '%s@sms.ctimovil.com.ar', now()), + (100072, 'Emtel (Mauritius)', '%s@emtelworld.net', now()), + (100073, 'Fido (Canada)', '%s@fido.ca', now()), + (100074, 'General Communications Inc.', '%s@msg.gci.net', now()), + (100075, 'Globalstar', '%s@msg.globalstarusa.com', now()), + (100076, 'Helio', '%s@myhelio.com', now()), + (100077, 'Illinois Valley Cellular', '%s@ivctext.com', now()), + (100078, 'i wireless', '%s.iws@iwspcs.net', now()), + (100079, 'Meteor (Ireland)', '%s@sms.mymeteor.ie', now()), + (100080, 'Mero Mobile (Nepal)', '%s@sms.spicenepal.com', now()), + (100081, 'MetroPCS', '%s@mymetropcs.com', now()), + (100082, 'Movicom', '%s@movimensaje.com.ar', now()), + (100083, 'Mobitel (Sri Lanka)', '%s@sms.mobitel.lk', now()), + (100084, 'Movistar (Colombia)', '%s@movistar.com.co', now()), + (100085, 'MTN (South Africa)', '%s@sms.co.za', now()), + (100086, 'MTS (Canada)', '%s@text.mtsmobility.com', now()), + (100087, 'Nextel (Argentina)', '%s@nextel.net.ar', now()), + (100088, 'Orange (Poland)', '%s@orange.pl', now()), + (100089, 'Personal (Argentina)', '%s@personal-net.com.ar', now()), + (100090, 'Plus GSM (Poland)', '%s@text.plusgsm.pl', now()), + (100091, 'President\'s Choice (Canada)', '%s@txt.bell.ca', now()), + (100092, 'Qwest', '%s@qwestmp.com', now()), + (100093, 'Rogers (Canada)', '%s@pcs.rogers.com', now()), + (100094, 'Sasktel (Canada)', '%s@sms.sasktel.com', now()), + (100095, 'Setar Mobile email (Aruba)', '%s@mas.aw', now()), + (100096, 'Solo Mobile', '%s@txt.bell.ca', now()), + (100097, 'Sprint (PCS)', '%s@messaging.sprintpcs.com', now()), + (100098, 'Sprint (Nextel)', '%s@page.nextel.com', now()), + (100099, 'Suncom', '%s@tms.suncom.com', now()), + (100100, 'T-Mobile', '%s@tmomail.net', now()), + (100101, 'T-Mobile (Austria)', '%s@sms.t-mobile.at', now()), + (100102, 'Telus Mobility (Canada)', '%s@msg.telus.com', now()), + (100103, 'Thumb Cellular', '%s@sms.thumbcellular.com', now()), + (100104, 'Tigo (Formerly Ola)', '%s@sms.tigo.com.co', now()), + (100105, 'Unicel', '%s@utext.com', now()), + (100106, 'US Cellular', '%s@email.uscc.net', now()), + (100107, 'Verizon', '%s@vtext.com', now()), + (100108, 'Virgin Mobile (Canada)', '%s@vmobile.ca', now()), + (100109, 'Virgin Mobile (USA)', '%s@vmobl.com', now()), + (100110, 'YCC', '%s@sms.ycc.ru', now()), + (100111, 'Orange (UK)', '%s@orange.net', now()), + (100112, 'Cincinnati Bell Wireless', '%s@gocbw.com', now()), + (100113, 'T-Mobile Germany', '%s@t-mobile-sms.de', now()), + (100114, 'Vodafone Germany', '%s@vodafone-sms.de', now()), + (100115, 'E-Plus', '%s@smsmail.eplus.de', now()); -- cgit v1.2.3-54-g00ecf From e686ef042b0f4b3cd8243fa9536092039798837b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 12 Feb 2009 14:16:58 -0500 Subject: Make ID of SMS Carrier not autoincrement Since we're doing fixed IDs for SMS Carrier, we change the definition so it's not auto increment. --- classes/laconica.ini | 3 ++- db/laconica.sql | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'db') diff --git a/classes/laconica.ini b/classes/laconica.ini index 255122a97..19267f268 100755 --- a/classes/laconica.ini +++ b/classes/laconica.ini @@ -292,7 +292,8 @@ created = 142 modified = 384 [sms_carrier__keys] -id = N +id = K +name = U [subscription] subscriber = 129 diff --git a/db/laconica.sql b/db/laconica.sql index 16f482134..15f03a978 100644 --- a/db/laconica.sql +++ b/db/laconica.sql @@ -31,7 +31,7 @@ create table avatar ( ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; create table sms_carrier ( - id integer auto_increment primary key comment 'primary key for SMS carrier', + id integer primary key comment 'primary key for SMS carrier', name varchar(64) unique key comment 'name of the carrier', email_pattern varchar(255) not null comment 'sprintf pattern for making an email address from a phone number', created datetime not null comment 'date this record was created', -- cgit v1.2.3-54-g00ecf From affb2f9359ee498c2c20240b592a0f62a770e8c8 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 16 Feb 2009 18:24:43 -0500 Subject: add email notify flag for @-replies --- classes/User.php | 7 +++++-- classes/laconica.ini | 1 + db/laconica.sql | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'db') diff --git a/classes/User.php b/classes/User.php index a6a1b11b9..495a98236 100644 --- a/classes/User.php +++ b/classes/User.php @@ -40,6 +40,7 @@ class User extends Memcached_DataObject public $emailnotifyfav; // tinyint(1) default_1 public $emailnotifynudge; // tinyint(1) default_1 public $emailnotifymsg; // tinyint(1) default_1 + public $emailnotifyattn; // tinyint(1) default_1 public $emailmicroid; // tinyint(1) default_1 public $language; // varchar(50) public $timezone; // varchar(50) @@ -62,8 +63,10 @@ class User extends Memcached_DataObject public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=null) - { return Memcached_DataObject::staticGet('User',$k,$v); } + function staticGet($k,$v=NULL) + { + return Memcached_DataObject::staticGet('User',$k,$v); + } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE diff --git a/classes/laconica.ini b/classes/laconica.ini index 19267f268..5fd2cd1f8 100755 --- a/classes/laconica.ini +++ b/classes/laconica.ini @@ -332,6 +332,7 @@ emailnotifysub = 17 emailnotifyfav = 17 emailnotifynudge = 17 emailnotifymsg = 17 +emailnotifyattn = 17 emailmicroid = 17 language = 2 timezone = 2 diff --git a/db/laconica.sql b/db/laconica.sql index 15f03a978..dd93a727b 100644 --- a/db/laconica.sql +++ b/db/laconica.sql @@ -50,6 +50,7 @@ create table user ( emailnotifyfav tinyint default 1 comment 'Notify by email of favorites', emailnotifynudge tinyint default 1 comment 'Notify by email of nudges', emailnotifymsg tinyint default 1 comment 'Notify by email of direct messages', + emailnotifyattn tinyint default 1 comment 'Notify by email of @-replies', emailmicroid tinyint default 1 comment 'whether to publish email microid', language varchar(50) comment 'preferred language', timezone varchar(50) comment 'timezone', -- cgit v1.2.3-54-g00ecf