summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/date/lib/parse_date.c2
-rw-r--r--ext/date/lib/parse_date.re2
-rw-r--r--ext/date/lib/parse_iso_intervals.re2
-rw-r--r--ext/date/lib/timezonedb.h1310
-rw-r--r--ext/date/php_date.c6
-rw-r--r--ext/date/tests/bug41523.phpt2
-rw-r--r--ext/date/tests/bug67118.phpt18
-rw-r--r--ext/date/tests/bug67118_2.phpt35
-rw-r--r--ext/dom/tests/DOMDocument_validate_external_dtd.phpt1
-rw-r--r--ext/dom/tests/bug67081.phpt4
-rw-r--r--ext/exif/tests/exif004.phpt2
-rw-r--r--ext/fileinfo/libmagic/cdf.c19
-rw-r--r--ext/fileinfo/libmagic/softmagic.c14
-rw-r--r--ext/libxml/tests/libxml_set_external_entity_loader_variation1.phpt1
-rwxr-xr-xext/mbstring/libmbfl/cvsclean14
-rw-r--r--ext/mysqli/tests/bug33491.phpt2
-rw-r--r--ext/mysqli/tests/mysqli_change_user_new.phpt2
-rw-r--r--ext/mysqli/tests/table.inc2
-rw-r--r--ext/mysqlnd/mysqlnd_charset.c50
-rw-r--r--ext/oci8/LICENSE2
-rwxr-xr-xext/openssl/openssl.c22
-rw-r--r--ext/openssl/tests/bug65698.crt28
-rw-r--r--ext/openssl/tests/bug65698.phpt19
-rw-r--r--ext/openssl/tests/cve-2013-6420.phpt2
-rw-r--r--ext/openssl/tests/openssl_spki_verify.phpt16
-rw-r--r--ext/pdo/pdo_sql_parser.re2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_prepare_native_mixed_style.phpt2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_stmt_errorcode.phpt2
-rw-r--r--ext/pdo_mysql/tests/pdo_mysql_stmt_multiquery.phpt2
-rw-r--r--ext/reflection/tests/ReflectionFunction_isClosure_basic.phpt2
-rw-r--r--ext/reflection/tests/ReflectionFunction_isDeprecated_basic.phpt2
-rw-r--r--ext/reflection/tests/ReflectionFunction_isDisabled_basic.phpt2
-rw-r--r--ext/soap/soap.c23
-rw-r--r--ext/soap/tests/bug49898.phpt14
-rw-r--r--ext/sockets/sendrecvmsg.c2
-rw-r--r--ext/sockets/windows_common.h2
-rw-r--r--ext/spl/spl_array.c3
-rw-r--r--ext/spl/spl_dllist.c1
-rw-r--r--ext/spl/spl_observer.c1
-rw-r--r--ext/spl/tests/ArrayObject_unserialize_empty_string.phpt9
-rw-r--r--ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt6
-rw-r--r--ext/spl/tests/bug66127.phpt25
-rw-r--r--ext/spl/tests/iterator_035.phpt2
-rw-r--r--ext/spl/tests/unserialize.phpt43
-rw-r--r--ext/standard/array.c3
-rw-r--r--ext/standard/basic_functions.c112
-rw-r--r--ext/standard/dns.c4
-rw-r--r--ext/standard/http_fopen_wrapper.c5
-rw-r--r--ext/standard/tests/general_functions/header_redirection_001.phpt11
-rw-r--r--ext/standard/tests/general_functions/header_redirection_002.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_003.phpt11
-rw-r--r--ext/standard/tests/general_functions/header_redirection_004.phpt11
-rw-r--r--ext/standard/tests/general_functions/header_redirection_005.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_006.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_007.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_008.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_009.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_010.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_011.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_012.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_013.phpt12
-rw-r--r--ext/standard/tests/general_functions/header_redirection_014.phpt12
-rw-r--r--ext/standard/tests/general_functions/putenv.phpt9
-rw-r--r--ext/standard/tests/http/bug67430.phpt49
-rw-r--r--ext/standard/tests/serialize/serialization_error_001.phpt6
-rw-r--r--ext/standard/tests/serialize/unserialize_consumed.phpt27
-rw-r--r--ext/standard/url_scanner_ex.re2
-rw-r--r--ext/standard/var.c10
-rw-r--r--ext/standard/var_unserializer.c2
-rw-r--r--ext/standard/var_unserializer.re2
-rw-r--r--ext/tokenizer/tests/bug67395.phpt15
-rw-r--r--ext/tokenizer/tokenizer_data.c4
-rw-r--r--ext/zlib/tests/gzseek_basic2.phpt2
-rw-r--r--ext/zlib/tests/gzseek_variation1.phpt2
-rw-r--r--ext/zlib/tests/gzseek_variation4.phpt2
-rw-r--r--ext/zlib/tests/gzseek_variation5.phpt2
77 files changed, 1294 insertions, 853 deletions
diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
index dffa9770c..77ceb88b7 100644
--- a/ext/date/lib/parse_date.c
+++ b/ext/date/lib/parse_date.c
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
index bbae79441..277935abe 100644
--- a/ext/date/lib/parse_date.re
+++ b/ext/date/lib/parse_date.re
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/date/lib/parse_iso_intervals.re b/ext/date/lib/parse_iso_intervals.re
index cbbf8781b..8c82cfc3b 100644
--- a/ext/date/lib/parse_iso_intervals.re
+++ b/ext/date/lib/parse_iso_intervals.re
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h
index da6749c51..c270eeb80 100644
--- a/ext/date/lib/timezonedb.h
+++ b/ext/date/lib/timezonedb.h
@@ -13,575 +13,575 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[580] = {
{ "Africa/Brazzaville" , 0x00051C },
{ "Africa/Bujumbura" , 0x000571 },
{ "Africa/Cairo" , 0x0005B5 },
- { "Africa/Casablanca" , 0x0009A4 },
- { "Africa/Ceuta" , 0x000C06 },
- { "Africa/Conakry" , 0x000F0D },
- { "Africa/Dakar" , 0x000F78 },
- { "Africa/Dar_es_Salaam" , 0x000FDE },
- { "Africa/Djibouti" , 0x00104B },
- { "Africa/Douala" , 0x0010A0 },
- { "Africa/El_Aaiun" , 0x0010F5 },
- { "Africa/Freetown" , 0x001320 },
- { "Africa/Gaborone" , 0x00142F },
- { "Africa/Harare" , 0x00149C },
- { "Africa/Johannesburg" , 0x0014F1 },
- { "Africa/Juba" , 0x00155F },
- { "Africa/Kampala" , 0x001672 },
- { "Africa/Khartoum" , 0x0016F1 },
- { "Africa/Kigali" , 0x001804 },
- { "Africa/Kinshasa" , 0x001859 },
- { "Africa/Lagos" , 0x0018B4 },
- { "Africa/Libreville" , 0x001909 },
- { "Africa/Lome" , 0x00195E },
- { "Africa/Luanda" , 0x0019A2 },
- { "Africa/Lubumbashi" , 0x0019F7 },
- { "Africa/Lusaka" , 0x001A52 },
- { "Africa/Malabo" , 0x001AA7 },
- { "Africa/Maputo" , 0x001B0D },
- { "Africa/Maseru" , 0x001B62 },
- { "Africa/Mbabane" , 0x001BCA },
- { "Africa/Mogadishu" , 0x001C20 },
- { "Africa/Monrovia" , 0x001C7B },
- { "Africa/Nairobi" , 0x001CE1 },
- { "Africa/Ndjamena" , 0x001D60 },
- { "Africa/Niamey" , 0x001DCC },
- { "Africa/Nouakchott" , 0x001E3F },
- { "Africa/Ouagadougou" , 0x001EAA },
- { "Africa/Porto-Novo" , 0x001EFF },
- { "Africa/Sao_Tome" , 0x001F65 },
- { "Africa/Timbuktu" , 0x001FBA },
- { "Africa/Tripoli" , 0x002025 },
- { "Africa/Tunis" , 0x00212E },
- { "Africa/Windhoek" , 0x002240 },
- { "America/Adak" , 0x002487 },
- { "America/Anchorage" , 0x0027FD },
- { "America/Anguilla" , 0x002B71 },
- { "America/Antigua" , 0x002BC6 },
- { "America/Araguaina" , 0x002C2C },
- { "America/Argentina/Buenos_Aires" , 0x002D91 },
- { "America/Argentina/Catamarca" , 0x002F3F },
- { "America/Argentina/ComodRivadavia" , 0x003100 },
- { "America/Argentina/Cordoba" , 0x0032A6 },
- { "America/Argentina/Jujuy" , 0x00347B },
- { "America/Argentina/La_Rioja" , 0x00362F },
- { "America/Argentina/Mendoza" , 0x0037E7 },
- { "America/Argentina/Rio_Gallegos" , 0x0039A7 },
- { "America/Argentina/Salta" , 0x003B5C },
- { "America/Argentina/San_Juan" , 0x003D08 },
- { "America/Argentina/San_Luis" , 0x003EC0 },
- { "America/Argentina/Tucuman" , 0x004086 },
- { "America/Argentina/Ushuaia" , 0x004242 },
- { "America/Aruba" , 0x0043FD },
- { "America/Asuncion" , 0x004463 },
- { "America/Atikokan" , 0x004748 },
- { "America/Atka" , 0x00481E },
- { "America/Bahia" , 0x004B84 },
- { "America/Bahia_Banderas" , 0x004D17 },
- { "America/Barbados" , 0x004F90 },
- { "America/Belem" , 0x00502A },
- { "America/Belize" , 0x005125 },
- { "America/Blanc-Sablon" , 0x0052A1 },
- { "America/Boa_Vista" , 0x005355 },
- { "America/Bogota" , 0x00545E },
- { "America/Boise" , 0x0054CA },
- { "America/Buenos_Aires" , 0x005861 },
- { "America/Cambridge_Bay" , 0x0059FA },
- { "America/Campo_Grande" , 0x005D22 },
- { "America/Cancun" , 0x006011 },
- { "America/Caracas" , 0x006253 },
- { "America/Catamarca" , 0x0062BA },
- { "America/Cayenne" , 0x006460 },
- { "America/Cayman" , 0x0064C2 },
- { "America/Chicago" , 0x006517 },
- { "America/Chihuahua" , 0x006A2E },
- { "America/Coral_Harbour" , 0x006C99 },
- { "America/Cordoba" , 0x006D2B },
- { "America/Costa_Rica" , 0x006ED1 },
- { "America/Creston" , 0x006F5B },
- { "America/Cuiaba" , 0x006FE7 },
- { "America/Curacao" , 0x0072C5 },
- { "America/Danmarkshavn" , 0x00732B },
- { "America/Dawson" , 0x00746F },
- { "America/Dawson_Creek" , 0x00778C },
- { "America/Denver" , 0x007966 },
- { "America/Detroit" , 0x007CEC },
- { "America/Dominica" , 0x00804B },
- { "America/Edmonton" , 0x0080A0 },
- { "America/Eirunepe" , 0x008458 },
- { "America/El_Salvador" , 0x008570 },
- { "America/Ensenada" , 0x0085E5 },
- { "America/Fort_Wayne" , 0x008A8C },
- { "America/Fortaleza" , 0x00894E },
- { "America/Glace_Bay" , 0x008CF6 },
- { "America/Godthab" , 0x00906D },
- { "America/Goose_Bay" , 0x009331 },
- { "America/Grand_Turk" , 0x0097EE },
- { "America/Grenada" , 0x009A9D },
- { "America/Guadeloupe" , 0x009AF2 },
- { "America/Guatemala" , 0x009B47 },
- { "America/Guayaquil" , 0x009BD0 },
- { "America/Guyana" , 0x009C2D },
- { "America/Halifax" , 0x009CAE },
- { "America/Havana" , 0x00A1C4 },
- { "America/Hermosillo" , 0x00A537 },
- { "America/Indiana/Indianapolis" , 0x00A615 },
- { "America/Indiana/Knox" , 0x00A8A6 },
- { "America/Indiana/Marengo" , 0x00AC3D },
- { "America/Indiana/Petersburg" , 0x00AEE3 },
- { "America/Indiana/Tell_City" , 0x00B430 },
- { "America/Indiana/Vevay" , 0x00B6C9 },
- { "America/Indiana/Vincennes" , 0x00B904 },
- { "America/Indiana/Winamac" , 0x00BBB8 },
- { "America/Indianapolis" , 0x00B1C6 },
- { "America/Inuvik" , 0x00BE71 },
- { "America/Iqaluit" , 0x00C168 },
- { "America/Jamaica" , 0x00C48A },
- { "America/Jujuy" , 0x00C54F },
- { "America/Juneau" , 0x00C6F9 },
- { "America/Kentucky/Louisville" , 0x00CA77 },
- { "America/Kentucky/Monticello" , 0x00CE95 },
- { "America/Knox_IN" , 0x00D21A },
- { "America/Kralendijk" , 0x00D58B },
- { "America/La_Paz" , 0x00D5F1 },
- { "America/Lima" , 0x00D658 },
- { "America/Los_Angeles" , 0x00D700 },
- { "America/Louisville" , 0x00DB11 },
- { "America/Lower_Princes" , 0x00DF06 },
- { "America/Maceio" , 0x00DF6C },
- { "America/Managua" , 0x00E0A6 },
- { "America/Manaus" , 0x00E159 },
- { "America/Marigot" , 0x00E25B },
- { "America/Martinique" , 0x00E2B0 },
- { "America/Matamoros" , 0x00E31C },
- { "America/Mazatlan" , 0x00E575 },
- { "America/Mendoza" , 0x00E7E2 },
- { "America/Menominee" , 0x00E996 },
- { "America/Merida" , 0x00ED17 },
- { "America/Metlakatla" , 0x00EF52 },
- { "America/Mexico_City" , 0x00F08C },
- { "America/Miquelon" , 0x00F307 },
- { "America/Moncton" , 0x00F579 },
- { "America/Monterrey" , 0x00FA10 },
- { "America/Montevideo" , 0x00FC73 },
- { "America/Montreal" , 0x00FF85 },
- { "America/Montserrat" , 0x010475 },
- { "America/Nassau" , 0x0104CA },
- { "America/New_York" , 0x01080F },
- { "America/Nipigon" , 0x010D1A },
- { "America/Nome" , 0x01106B },
- { "America/Noronha" , 0x0113E9 },
- { "America/North_Dakota/Beulah" , 0x011519 },
- { "America/North_Dakota/Center" , 0x0118AD },
- { "America/North_Dakota/New_Salem" , 0x011C41 },
- { "America/Ojinaga" , 0x011FEA },
- { "America/Panama" , 0x01224B },
- { "America/Pangnirtung" , 0x0122A0 },
- { "America/Paramaribo" , 0x0125D6 },
- { "America/Phoenix" , 0x012668 },
- { "America/Port-au-Prince" , 0x012726 },
- { "America/Port_of_Spain" , 0x012A4A },
- { "America/Porto_Acre" , 0x012946 },
- { "America/Porto_Velho" , 0x012A9F },
- { "America/Puerto_Rico" , 0x012B95 },
- { "America/Rainy_River" , 0x012C00 },
- { "America/Rankin_Inlet" , 0x012F38 },
- { "America/Recife" , 0x01321E },
- { "America/Regina" , 0x013348 },
- { "America/Resolute" , 0x013506 },
- { "America/Rio_Branco" , 0x0137F7 },
- { "America/Rosario" , 0x0138FF },
- { "America/Santa_Isabel" , 0x013AA5 },
- { "America/Santarem" , 0x013E48 },
- { "America/Santiago" , 0x013F4D },
- { "America/Santo_Domingo" , 0x0142F6 },
- { "America/Sao_Paulo" , 0x0143BC },
- { "America/Scoresbysund" , 0x0146CB },
- { "America/Shiprock" , 0x0149B9 },
- { "America/Sitka" , 0x014D32 },
- { "America/St_Barthelemy" , 0x0150BA },
- { "America/St_Johns" , 0x01510F },
- { "America/St_Kitts" , 0x015662 },
- { "America/St_Lucia" , 0x0156B7 },
- { "America/St_Thomas" , 0x01570C },
- { "America/St_Vincent" , 0x015761 },
- { "America/Swift_Current" , 0x0157B6 },
- { "America/Tegucigalpa" , 0x0158D7 },
- { "America/Thule" , 0x015956 },
- { "America/Thunder_Bay" , 0x015B9D },
- { "America/Tijuana" , 0x015EE6 },
- { "America/Toronto" , 0x01627F },
- { "America/Tortola" , 0x01679F },
- { "America/Vancouver" , 0x0167F4 },
- { "America/Virgin" , 0x016C31 },
- { "America/Whitehorse" , 0x016C86 },
- { "America/Winnipeg" , 0x016FA3 },
- { "America/Yakutat" , 0x0173E3 },
- { "America/Yellowknife" , 0x01774E },
- { "Antarctica/Casey" , 0x017A5E },
- { "Antarctica/Davis" , 0x017AFB },
- { "Antarctica/DumontDUrville" , 0x017B9C },
- { "Antarctica/Macquarie" , 0x017C2E },
- { "Antarctica/Mawson" , 0x017E75 },
- { "Antarctica/McMurdo" , 0x017EF1 },
- { "Antarctica/Palmer" , 0x01829C },
- { "Antarctica/Rothera" , 0x0185B8 },
- { "Antarctica/South_Pole" , 0x01862E },
- { "Antarctica/Syowa" , 0x0189AC },
- { "Antarctica/Troll" , 0x018A1A },
- { "Antarctica/Vostok" , 0x018BEC },
- { "Arctic/Longyearbyen" , 0x018C5D },
- { "Asia/Aden" , 0x018F8F },
- { "Asia/Almaty" , 0x018FE4 },
- { "Asia/Amman" , 0x019163 },
- { "Asia/Anadyr" , 0x019419 },
- { "Asia/Aqtau" , 0x0195FE },
- { "Asia/Aqtobe" , 0x0197FD },
- { "Asia/Ashgabat" , 0x0199B5 },
- { "Asia/Ashkhabad" , 0x019AD2 },
- { "Asia/Baghdad" , 0x019BEF },
- { "Asia/Bahrain" , 0x019D64 },
- { "Asia/Baku" , 0x019DCA },
- { "Asia/Bangkok" , 0x01A0B2 },
- { "Asia/Beirut" , 0x01A107 },
- { "Asia/Bishkek" , 0x01A414 },
- { "Asia/Brunei" , 0x01A5C0 },
- { "Asia/Calcutta" , 0x01A622 },
- { "Asia/Choibalsan" , 0x01A69B },
- { "Asia/Chongqing" , 0x01A814 },
- { "Asia/Chungking" , 0x01A903 },
- { "Asia/Colombo" , 0x01A9B2 },
- { "Asia/Dacca" , 0x01AA4E },
- { "Asia/Damascus" , 0x01AAF4 },
- { "Asia/Dhaka" , 0x01AE44 },
- { "Asia/Dili" , 0x01AEEA },
- { "Asia/Dubai" , 0x01AF74 },
- { "Asia/Dushanbe" , 0x01AFC9 },
- { "Asia/Gaza" , 0x01B0CC },
- { "Asia/Harbin" , 0x01B41F },
- { "Asia/Hebron" , 0x01B506 },
- { "Asia/Ho_Chi_Minh" , 0x01B862 },
- { "Asia/Hong_Kong" , 0x01B8DA },
- { "Asia/Hovd" , 0x01BA9C },
- { "Asia/Irkutsk" , 0x01BC14 },
- { "Asia/Istanbul" , 0x01BDFA },
- { "Asia/Jakarta" , 0x01C1E7 },
- { "Asia/Jayapura" , 0x01C291 },
- { "Asia/Jerusalem" , 0x01C32D },
- { "Asia/Kabul" , 0x01C65C },
- { "Asia/Kamchatka" , 0x01C6AD },
- { "Asia/Karachi" , 0x01C889 },
- { "Asia/Kashgar" , 0x01C93E },
- { "Asia/Kathmandu" , 0x01CA0F },
- { "Asia/Katmandu" , 0x01CA75 },
- { "Asia/Khandyga" , 0x01CADB },
- { "Asia/Kolkata" , 0x01CD00 },
- { "Asia/Krasnoyarsk" , 0x01CD79 },
- { "Asia/Kuala_Lumpur" , 0x01CF61 },
- { "Asia/Kuching" , 0x01D01E },
- { "Asia/Kuwait" , 0x01D10C },
- { "Asia/Macao" , 0x01D161 },
- { "Asia/Macau" , 0x01D29C },
- { "Asia/Magadan" , 0x01D3D7 },
- { "Asia/Makassar" , 0x01D5B9 },
- { "Asia/Manila" , 0x01D67E },
- { "Asia/Muscat" , 0x01D703 },
- { "Asia/Nicosia" , 0x01D758 },
- { "Asia/Novokuznetsk" , 0x01DA40 },
- { "Asia/Novosibirsk" , 0x01DC42 },
- { "Asia/Omsk" , 0x01DE2D },
- { "Asia/Oral" , 0x01E014 },
- { "Asia/Phnom_Penh" , 0x01E1E4 },
- { "Asia/Pontianak" , 0x01E25C },
- { "Asia/Pyongyang" , 0x01E31E },
- { "Asia/Qatar" , 0x01E38B },
- { "Asia/Qyzylorda" , 0x01E3F1 },
- { "Asia/Rangoon" , 0x01E5C7 },
- { "Asia/Riyadh" , 0x01E63F },
- { "Asia/Saigon" , 0x01E694 },
- { "Asia/Sakhalin" , 0x01E70C },
- { "Asia/Samarkand" , 0x01E903 },
- { "Asia/Seoul" , 0x01EA39 },
- { "Asia/Shanghai" , 0x01EADD },
- { "Asia/Singapore" , 0x01EBBD },
- { "Asia/Taipei" , 0x01EC74 },
- { "Asia/Tashkent" , 0x01ED8C },
- { "Asia/Tbilisi" , 0x01EEBD },
- { "Asia/Tehran" , 0x01F077 },
- { "Asia/Tel_Aviv" , 0x01F2E5 },
- { "Asia/Thimbu" , 0x01F614 },
- { "Asia/Thimphu" , 0x01F67A },
- { "Asia/Tokyo" , 0x01F6E0 },
- { "Asia/Ujung_Pandang" , 0x01F769 },
- { "Asia/Ulaanbaatar" , 0x01F7E6 },
- { "Asia/Ulan_Bator" , 0x01F941 },
- { "Asia/Urumqi" , 0x01FA8E },
- { "Asia/Ust-Nera" , 0x01FB55 },
- { "Asia/Vientiane" , 0x01FD5A },
- { "Asia/Vladivostok" , 0x01FDD2 },
- { "Asia/Yakutsk" , 0x01FFBE },
- { "Asia/Yekaterinburg" , 0x0201A3 },
- { "Asia/Yerevan" , 0x0203AE },
- { "Atlantic/Azores" , 0x0205AE },
- { "Atlantic/Bermuda" , 0x020AB1 },
- { "Atlantic/Canary" , 0x020D92 },
- { "Atlantic/Cape_Verde" , 0x021068 },
- { "Atlantic/Faeroe" , 0x0210E1 },
- { "Atlantic/Faroe" , 0x021385 },
- { "Atlantic/Jan_Mayen" , 0x021629 },
- { "Atlantic/Madeira" , 0x02195B },
- { "Atlantic/Reykjavik" , 0x021E64 },
- { "Atlantic/South_Georgia" , 0x02201D },
- { "Atlantic/St_Helena" , 0x02222F },
- { "Atlantic/Stanley" , 0x022061 },
- { "Australia/ACT" , 0x022284 },
- { "Australia/Adelaide" , 0x0225A1 },
- { "Australia/Brisbane" , 0x0228CD },
- { "Australia/Broken_Hill" , 0x022994 },
- { "Australia/Canberra" , 0x022CD2 },
- { "Australia/Currie" , 0x022FEF },
- { "Australia/Darwin" , 0x023322 },
- { "Australia/Eucla" , 0x0233A8 },
- { "Australia/Hobart" , 0x02347D },
- { "Australia/LHI" , 0x0237DB },
- { "Australia/Lindeman" , 0x023A76 },
- { "Australia/Lord_Howe" , 0x023B57 },
- { "Australia/Melbourne" , 0x023E02 },
- { "Australia/North" , 0x024127 },
- { "Australia/NSW" , 0x02419B },
- { "Australia/Perth" , 0x0244B8 },
- { "Australia/Queensland" , 0x024590 },
- { "Australia/South" , 0x02463C },
- { "Australia/Sydney" , 0x024959 },
- { "Australia/Tasmania" , 0x024C96 },
- { "Australia/Victoria" , 0x024FDB },
- { "Australia/West" , 0x0252F8 },
- { "Australia/Yancowinna" , 0x0253AE },
- { "Brazil/Acre" , 0x0256D0 },
- { "Brazil/DeNoronha" , 0x0257D4 },
- { "Brazil/East" , 0x0258F4 },
- { "Brazil/West" , 0x025BD1 },
- { "Canada/Atlantic" , 0x025CC9 },
- { "Canada/Central" , 0x0261B1 },
- { "Canada/East-Saskatchewan" , 0x026ABB },
- { "Canada/Eastern" , 0x0265CB },
- { "Canada/Mountain" , 0x026C44 },
- { "Canada/Newfoundland" , 0x026FBA },
- { "Canada/Pacific" , 0x0274E5 },
- { "Canada/Saskatchewan" , 0x0278FE },
- { "Canada/Yukon" , 0x027A87 },
- { "CET" , 0x027D8A },
- { "Chile/Continental" , 0x028093 },
- { "Chile/EasterIsland" , 0x02842E },
- { "CST6CDT" , 0x028770 },
- { "Cuba" , 0x028AC1 },
- { "EET" , 0x028E34 },
- { "Egypt" , 0x0290E7 },
- { "Eire" , 0x0294D6 },
- { "EST" , 0x0299E7 },
- { "EST5EDT" , 0x029A2B },
- { "Etc/GMT" , 0x029D7C },
- { "Etc/GMT+0" , 0x029E48 },
- { "Etc/GMT+1" , 0x029ED2 },
- { "Etc/GMT+10" , 0x029F5F },
- { "Etc/GMT+11" , 0x029FED },
- { "Etc/GMT+12" , 0x02A07B },
- { "Etc/GMT+2" , 0x02A196 },
- { "Etc/GMT+3" , 0x02A222 },
- { "Etc/GMT+4" , 0x02A2AE },
- { "Etc/GMT+5" , 0x02A33A },
- { "Etc/GMT+6" , 0x02A3C6 },
- { "Etc/GMT+7" , 0x02A452 },
- { "Etc/GMT+8" , 0x02A4DE },
- { "Etc/GMT+9" , 0x02A56A },
- { "Etc/GMT-0" , 0x029E04 },
- { "Etc/GMT-1" , 0x029E8C },
- { "Etc/GMT-10" , 0x029F18 },
- { "Etc/GMT-11" , 0x029FA6 },
- { "Etc/GMT-12" , 0x02A034 },
- { "Etc/GMT-13" , 0x02A0C2 },
- { "Etc/GMT-14" , 0x02A109 },
- { "Etc/GMT-2" , 0x02A150 },
- { "Etc/GMT-3" , 0x02A1DC },
- { "Etc/GMT-4" , 0x02A268 },
- { "Etc/GMT-5" , 0x02A2F4 },
- { "Etc/GMT-6" , 0x02A380 },
- { "Etc/GMT-7" , 0x02A40C },
- { "Etc/GMT-8" , 0x02A498 },
- { "Etc/GMT-9" , 0x02A524 },
- { "Etc/GMT0" , 0x029DC0 },
- { "Etc/Greenwich" , 0x02A5B0 },
- { "Etc/UCT" , 0x02A5F4 },
- { "Etc/Universal" , 0x02A638 },
- { "Etc/UTC" , 0x02A67C },
- { "Etc/Zulu" , 0x02A6C0 },
- { "Europe/Amsterdam" , 0x02A704 },
- { "Europe/Andorra" , 0x02AB42 },
- { "Europe/Athens" , 0x02ADBE },
- { "Europe/Belfast" , 0x02B101 },
- { "Europe/Belgrade" , 0x02B638 },
- { "Europe/Berlin" , 0x02B901 },
- { "Europe/Bratislava" , 0x02BC65 },
- { "Europe/Brussels" , 0x02BF97 },
- { "Europe/Bucharest" , 0x02C3CE },
- { "Europe/Budapest" , 0x02C6F8 },
- { "Europe/Busingen" , 0x02CA6B },
- { "Europe/Chisinau" , 0x02CD22 },
- { "Europe/Copenhagen" , 0x02D0B0 },
- { "Europe/Dublin" , 0x02D3BA },
- { "Europe/Gibraltar" , 0x02D8CB },
- { "Europe/Guernsey" , 0x02DD22 },
- { "Europe/Helsinki" , 0x02E259 },
- { "Europe/Isle_of_Man" , 0x02E50F },
- { "Europe/Istanbul" , 0x02EA46 },
- { "Europe/Jersey" , 0x02EE33 },
- { "Europe/Kaliningrad" , 0x02F36A },
- { "Europe/Kiev" , 0x02F5D0 },
- { "Europe/Lisbon" , 0x02F8EC },
- { "Europe/Ljubljana" , 0x02FDF0 },
- { "Europe/London" , 0x0300B9 },
- { "Europe/Luxembourg" , 0x0305F0 },
- { "Europe/Madrid" , 0x030A46 },
- { "Europe/Malta" , 0x030E0C },
- { "Europe/Mariehamn" , 0x0311C5 },
- { "Europe/Minsk" , 0x03147B },
- { "Europe/Monaco" , 0x031689 },
- { "Europe/Moscow" , 0x031AC4 },
- { "Europe/Nicosia" , 0x031D15 },
- { "Europe/Oslo" , 0x031FFD },
- { "Europe/Paris" , 0x03232F },
- { "Europe/Podgorica" , 0x032775 },
- { "Europe/Prague" , 0x032A3E },
- { "Europe/Riga" , 0x032D70 },
- { "Europe/Rome" , 0x0330B5 },
- { "Europe/Samara" , 0x033478 },
- { "Europe/San_Marino" , 0x0336AB },
- { "Europe/Sarajevo" , 0x033A6E },
- { "Europe/Simferopol" , 0x033D37 },
- { "Europe/Skopje" , 0x033F83 },
- { "Europe/Sofia" , 0x03424C },
- { "Europe/Stockholm" , 0x034554 },
- { "Europe/Tallinn" , 0x034803 },
- { "Europe/Tirane" , 0x034B3D },
- { "Europe/Tiraspol" , 0x034E43 },
- { "Europe/Uzhgorod" , 0x0351D1 },
- { "Europe/Vaduz" , 0x0354E8 },
- { "Europe/Vatican" , 0x035797 },
- { "Europe/Vienna" , 0x035B5A },
- { "Europe/Vilnius" , 0x035E87 },
- { "Europe/Volgograd" , 0x0361C6 },
- { "Europe/Warsaw" , 0x0363C6 },
- { "Europe/Zagreb" , 0x0367A7 },
- { "Europe/Zaporozhye" , 0x036A70 },
- { "Europe/Zurich" , 0x036DB1 },
- { "Factory" , 0x037060 },
- { "GB" , 0x0370D1 },
- { "GB-Eire" , 0x037608 },
- { "GMT" , 0x037B3F },
- { "GMT+0" , 0x037C0B },
- { "GMT-0" , 0x037BC7 },
- { "GMT0" , 0x037B83 },
- { "Greenwich" , 0x037C4F },
- { "Hongkong" , 0x037C93 },
- { "HST" , 0x037E55 },
- { "Iceland" , 0x037E99 },
- { "Indian/Antananarivo" , 0x038052 },
- { "Indian/Chagos" , 0x0380C6 },
- { "Indian/Christmas" , 0x038128 },
- { "Indian/Cocos" , 0x03816C },
- { "Indian/Comoro" , 0x0381B0 },
- { "Indian/Kerguelen" , 0x038205 },
- { "Indian/Mahe" , 0x03825A },
- { "Indian/Maldives" , 0x0382AF },
- { "Indian/Mauritius" , 0x038304 },
- { "Indian/Mayotte" , 0x03837A },
- { "Indian/Reunion" , 0x0383CF },
- { "Iran" , 0x038424 },
- { "Israel" , 0x038692 },
- { "Jamaica" , 0x0389C1 },
- { "Japan" , 0x038A86 },
- { "Kwajalein" , 0x038B0F },
- { "Libya" , 0x038B72 },
- { "MET" , 0x038C7B },
- { "Mexico/BajaNorte" , 0x038F84 },
- { "Mexico/BajaSur" , 0x0392ED },
- { "Mexico/General" , 0x039532 },
- { "MST" , 0x039790 },
- { "MST7MDT" , 0x0397D4 },
- { "Navajo" , 0x039B25 },
- { "NZ" , 0x039E9E },
- { "NZ-CHAT" , 0x03A21C },
- { "Pacific/Apia" , 0x03A504 },
- { "Pacific/Auckland" , 0x03A6A0 },
- { "Pacific/Chatham" , 0x03AA2C },
- { "Pacific/Chuuk" , 0x03AD23 },
- { "Pacific/Easter" , 0x03AD7C },
- { "Pacific/Efate" , 0x03B0DA },
- { "Pacific/Enderbury" , 0x03B1A0 },
- { "Pacific/Fakaofo" , 0x03B20E },
- { "Pacific/Fiji" , 0x03B25F },
- { "Pacific/Funafuti" , 0x03B3F2 },
- { "Pacific/Galapagos" , 0x03B436 },
- { "Pacific/Gambier" , 0x03B4AE },
- { "Pacific/Guadalcanal" , 0x03B513 },
- { "Pacific/Guam" , 0x03B568 },
- { "Pacific/Honolulu" , 0x03B5BE },
- { "Pacific/Johnston" , 0x03B635 },
- { "Pacific/Kiritimati" , 0x03B6B4 },
- { "Pacific/Kosrae" , 0x03B71F },
- { "Pacific/Kwajalein" , 0x03B77C },
- { "Pacific/Majuro" , 0x03B7E8 },
- { "Pacific/Marquesas" , 0x03B847 },
- { "Pacific/Midway" , 0x03B8AE },
- { "Pacific/Nauru" , 0x03B938 },
- { "Pacific/Niue" , 0x03B9B0 },
- { "Pacific/Norfolk" , 0x03BA0E },
- { "Pacific/Noumea" , 0x03BA63 },
- { "Pacific/Pago_Pago" , 0x03BAF3 },
- { "Pacific/Palau" , 0x03BB7C },
- { "Pacific/Pitcairn" , 0x03BBC0 },
- { "Pacific/Pohnpei" , 0x03BC15 },
- { "Pacific/Ponape" , 0x03BC6A },
- { "Pacific/Port_Moresby" , 0x03BCAF },
- { "Pacific/Rarotonga" , 0x03BCF3 },
- { "Pacific/Saipan" , 0x03BDCF },
- { "Pacific/Samoa" , 0x03BE32 },
- { "Pacific/Tahiti" , 0x03BEBB },
- { "Pacific/Tarawa" , 0x03BF20 },
- { "Pacific/Tongatapu" , 0x03BF74 },
- { "Pacific/Truk" , 0x03C000 },
- { "Pacific/Wake" , 0x03C045 },
- { "Pacific/Wallis" , 0x03C095 },
- { "Pacific/Yap" , 0x03C0D9 },
- { "Poland" , 0x03C11E },
- { "Portugal" , 0x03C4FF },
- { "PRC" , 0x03C9FB },
- { "PST8PDT" , 0x03CAAC },
- { "ROC" , 0x03CDFD },
- { "ROK" , 0x03CF15 },
- { "Singapore" , 0x03CFB9 },
- { "Turkey" , 0x03D070 },
- { "UCT" , 0x03D45D },
- { "Universal" , 0x03D4A1 },
- { "US/Alaska" , 0x03D4E5 },
- { "US/Aleutian" , 0x03D84E },
- { "US/Arizona" , 0x03DBB4 },
- { "US/Central" , 0x03DC42 },
- { "US/East-Indiana" , 0x03E64C },
- { "US/Eastern" , 0x03E14D },
- { "US/Hawaii" , 0x03E8B6 },
- { "US/Indiana-Starke" , 0x03E927 },
- { "US/Michigan" , 0x03EC98 },
- { "US/Mountain" , 0x03EFCF },
- { "US/Pacific" , 0x03F348 },
- { "US/Pacific-New" , 0x03F74D },
- { "US/Samoa" , 0x03FB52 },
- { "UTC" , 0x03FBDB },
- { "W-SU" , 0x03FED2 },
- { "WET" , 0x03FC1F },
- { "Zulu" , 0x04010C },
+ { "Africa/Casablanca" , 0x00099C },
+ { "Africa/Ceuta" , 0x000BFE },
+ { "Africa/Conakry" , 0x000F05 },
+ { "Africa/Dakar" , 0x000F70 },
+ { "Africa/Dar_es_Salaam" , 0x000FD6 },
+ { "Africa/Djibouti" , 0x001043 },
+ { "Africa/Douala" , 0x001098 },
+ { "Africa/El_Aaiun" , 0x0010ED },
+ { "Africa/Freetown" , 0x001318 },
+ { "Africa/Gaborone" , 0x001427 },
+ { "Africa/Harare" , 0x001494 },
+ { "Africa/Johannesburg" , 0x0014E9 },
+ { "Africa/Juba" , 0x001557 },
+ { "Africa/Kampala" , 0x00166A },
+ { "Africa/Khartoum" , 0x0016E9 },
+ { "Africa/Kigali" , 0x0017FC },
+ { "Africa/Kinshasa" , 0x001851 },
+ { "Africa/Lagos" , 0x0018AC },
+ { "Africa/Libreville" , 0x001901 },
+ { "Africa/Lome" , 0x001956 },
+ { "Africa/Luanda" , 0x00199A },
+ { "Africa/Lubumbashi" , 0x0019EF },
+ { "Africa/Lusaka" , 0x001A4A },
+ { "Africa/Malabo" , 0x001A9F },
+ { "Africa/Maputo" , 0x001B05 },
+ { "Africa/Maseru" , 0x001B5A },
+ { "Africa/Mbabane" , 0x001BC2 },
+ { "Africa/Mogadishu" , 0x001C18 },
+ { "Africa/Monrovia" , 0x001C73 },
+ { "Africa/Nairobi" , 0x001CD9 },
+ { "Africa/Ndjamena" , 0x001D58 },
+ { "Africa/Niamey" , 0x001DC4 },
+ { "Africa/Nouakchott" , 0x001E37 },
+ { "Africa/Ouagadougou" , 0x001EA2 },
+ { "Africa/Porto-Novo" , 0x001EF7 },
+ { "Africa/Sao_Tome" , 0x001F5D },
+ { "Africa/Timbuktu" , 0x001FB2 },
+ { "Africa/Tripoli" , 0x00201D },
+ { "Africa/Tunis" , 0x002126 },
+ { "Africa/Windhoek" , 0x002238 },
+ { "America/Adak" , 0x00247F },
+ { "America/Anchorage" , 0x0027F5 },
+ { "America/Anguilla" , 0x002B69 },
+ { "America/Antigua" , 0x002BBE },
+ { "America/Araguaina" , 0x002C24 },
+ { "America/Argentina/Buenos_Aires" , 0x002D89 },
+ { "America/Argentina/Catamarca" , 0x002F37 },
+ { "America/Argentina/ComodRivadavia" , 0x0030F8 },
+ { "America/Argentina/Cordoba" , 0x00329E },
+ { "America/Argentina/Jujuy" , 0x003473 },
+ { "America/Argentina/La_Rioja" , 0x003627 },
+ { "America/Argentina/Mendoza" , 0x0037DF },
+ { "America/Argentina/Rio_Gallegos" , 0x00399F },
+ { "America/Argentina/Salta" , 0x003B54 },
+ { "America/Argentina/San_Juan" , 0x003D00 },
+ { "America/Argentina/San_Luis" , 0x003EB8 },
+ { "America/Argentina/Tucuman" , 0x00407E },
+ { "America/Argentina/Ushuaia" , 0x00423A },
+ { "America/Aruba" , 0x0043F5 },
+ { "America/Asuncion" , 0x00445B },
+ { "America/Atikokan" , 0x004740 },
+ { "America/Atka" , 0x004816 },
+ { "America/Bahia" , 0x004B7C },
+ { "America/Bahia_Banderas" , 0x004D0F },
+ { "America/Barbados" , 0x004F88 },
+ { "America/Belem" , 0x005022 },
+ { "America/Belize" , 0x00511D },
+ { "America/Blanc-Sablon" , 0x005299 },
+ { "America/Boa_Vista" , 0x00534D },
+ { "America/Bogota" , 0x005456 },
+ { "America/Boise" , 0x0054C2 },
+ { "America/Buenos_Aires" , 0x005859 },
+ { "America/Cambridge_Bay" , 0x0059F2 },
+ { "America/Campo_Grande" , 0x005D1A },
+ { "America/Cancun" , 0x006009 },
+ { "America/Caracas" , 0x00624B },
+ { "America/Catamarca" , 0x0062B2 },
+ { "America/Cayenne" , 0x006458 },
+ { "America/Cayman" , 0x0064BA },
+ { "America/Chicago" , 0x00650F },
+ { "America/Chihuahua" , 0x006A26 },
+ { "America/Coral_Harbour" , 0x006C91 },
+ { "America/Cordoba" , 0x006D23 },
+ { "America/Costa_Rica" , 0x006EC9 },
+ { "America/Creston" , 0x006F53 },
+ { "America/Cuiaba" , 0x006FDF },
+ { "America/Curacao" , 0x0072BD },
+ { "America/Danmarkshavn" , 0x007323 },
+ { "America/Dawson" , 0x007467 },
+ { "America/Dawson_Creek" , 0x007784 },
+ { "America/Denver" , 0x00795E },
+ { "America/Detroit" , 0x007CE4 },
+ { "America/Dominica" , 0x008043 },
+ { "America/Edmonton" , 0x008098 },
+ { "America/Eirunepe" , 0x008450 },
+ { "America/El_Salvador" , 0x008568 },
+ { "America/Ensenada" , 0x0085DD },
+ { "America/Fort_Wayne" , 0x008A84 },
+ { "America/Fortaleza" , 0x008946 },
+ { "America/Glace_Bay" , 0x008CEE },
+ { "America/Godthab" , 0x009065 },
+ { "America/Goose_Bay" , 0x009329 },
+ { "America/Grand_Turk" , 0x0097E6 },
+ { "America/Grenada" , 0x009A95 },
+ { "America/Guadeloupe" , 0x009AEA },
+ { "America/Guatemala" , 0x009B3F },
+ { "America/Guayaquil" , 0x009BC8 },
+ { "America/Guyana" , 0x009C25 },
+ { "America/Halifax" , 0x009CA6 },
+ { "America/Havana" , 0x00A1BC },
+ { "America/Hermosillo" , 0x00A52F },
+ { "America/Indiana/Indianapolis" , 0x00A60D },
+ { "America/Indiana/Knox" , 0x00A89E },
+ { "America/Indiana/Marengo" , 0x00AC35 },
+ { "America/Indiana/Petersburg" , 0x00AEDB },
+ { "America/Indiana/Tell_City" , 0x00B428 },
+ { "America/Indiana/Vevay" , 0x00B6C1 },
+ { "America/Indiana/Vincennes" , 0x00B8FC },
+ { "America/Indiana/Winamac" , 0x00BBB0 },
+ { "America/Indianapolis" , 0x00B1BE },
+ { "America/Inuvik" , 0x00BE69 },
+ { "America/Iqaluit" , 0x00C160 },
+ { "America/Jamaica" , 0x00C482 },
+ { "America/Jujuy" , 0x00C547 },
+ { "America/Juneau" , 0x00C6F1 },
+ { "America/Kentucky/Louisville" , 0x00CA6F },
+ { "America/Kentucky/Monticello" , 0x00CE8D },
+ { "America/Knox_IN" , 0x00D212 },
+ { "America/Kralendijk" , 0x00D583 },
+ { "America/La_Paz" , 0x00D5E9 },
+ { "America/Lima" , 0x00D650 },
+ { "America/Los_Angeles" , 0x00D6F8 },
+ { "America/Louisville" , 0x00DB09 },
+ { "America/Lower_Princes" , 0x00DEFE },
+ { "America/Maceio" , 0x00DF64 },
+ { "America/Managua" , 0x00E09E },
+ { "America/Manaus" , 0x00E151 },
+ { "America/Marigot" , 0x00E253 },
+ { "America/Martinique" , 0x00E2A8 },
+ { "America/Matamoros" , 0x00E314 },
+ { "America/Mazatlan" , 0x00E56D },
+ { "America/Mendoza" , 0x00E7DA },
+ { "America/Menominee" , 0x00E98E },
+ { "America/Merida" , 0x00ED0F },
+ { "America/Metlakatla" , 0x00EF4A },
+ { "America/Mexico_City" , 0x00F084 },
+ { "America/Miquelon" , 0x00F2FF },
+ { "America/Moncton" , 0x00F571 },
+ { "America/Monterrey" , 0x00FA08 },
+ { "America/Montevideo" , 0x00FC6B },
+ { "America/Montreal" , 0x00FF7D },
+ { "America/Montserrat" , 0x01046D },
+ { "America/Nassau" , 0x0104C2 },
+ { "America/New_York" , 0x010807 },
+ { "America/Nipigon" , 0x010D12 },
+ { "America/Nome" , 0x011063 },
+ { "America/Noronha" , 0x0113E1 },
+ { "America/North_Dakota/Beulah" , 0x011511 },
+ { "America/North_Dakota/Center" , 0x0118A5 },
+ { "America/North_Dakota/New_Salem" , 0x011C39 },
+ { "America/Ojinaga" , 0x011FE2 },
+ { "America/Panama" , 0x012243 },
+ { "America/Pangnirtung" , 0x012298 },
+ { "America/Paramaribo" , 0x0125CE },
+ { "America/Phoenix" , 0x012660 },
+ { "America/Port-au-Prince" , 0x01271E },
+ { "America/Port_of_Spain" , 0x012A42 },
+ { "America/Porto_Acre" , 0x01293E },
+ { "America/Porto_Velho" , 0x012A97 },
+ { "America/Puerto_Rico" , 0x012B8D },
+ { "America/Rainy_River" , 0x012BF8 },
+ { "America/Rankin_Inlet" , 0x012F30 },
+ { "America/Recife" , 0x013216 },
+ { "America/Regina" , 0x013340 },
+ { "America/Resolute" , 0x0134FE },
+ { "America/Rio_Branco" , 0x0137EF },
+ { "America/Rosario" , 0x0138F7 },
+ { "America/Santa_Isabel" , 0x013A9D },
+ { "America/Santarem" , 0x013E40 },
+ { "America/Santiago" , 0x013F45 },
+ { "America/Santo_Domingo" , 0x0142EE },
+ { "America/Sao_Paulo" , 0x0143B4 },
+ { "America/Scoresbysund" , 0x0146C3 },
+ { "America/Shiprock" , 0x0149B1 },
+ { "America/Sitka" , 0x014D2A },
+ { "America/St_Barthelemy" , 0x0150B2 },
+ { "America/St_Johns" , 0x015107 },
+ { "America/St_Kitts" , 0x01565A },
+ { "America/St_Lucia" , 0x0156AF },
+ { "America/St_Thomas" , 0x015704 },
+ { "America/St_Vincent" , 0x015759 },
+ { "America/Swift_Current" , 0x0157AE },
+ { "America/Tegucigalpa" , 0x0158CF },
+ { "America/Thule" , 0x01594E },
+ { "America/Thunder_Bay" , 0x015B95 },
+ { "America/Tijuana" , 0x015EDE },
+ { "America/Toronto" , 0x016277 },
+ { "America/Tortola" , 0x016797 },
+ { "America/Vancouver" , 0x0167EC },
+ { "America/Virgin" , 0x016C29 },
+ { "America/Whitehorse" , 0x016C7E },
+ { "America/Winnipeg" , 0x016F9B },
+ { "America/Yakutat" , 0x0173DB },
+ { "America/Yellowknife" , 0x017746 },
+ { "Antarctica/Casey" , 0x017A56 },
+ { "Antarctica/Davis" , 0x017AF3 },
+ { "Antarctica/DumontDUrville" , 0x017B94 },
+ { "Antarctica/Macquarie" , 0x017C26 },
+ { "Antarctica/Mawson" , 0x017E6D },
+ { "Antarctica/McMurdo" , 0x017EE9 },
+ { "Antarctica/Palmer" , 0x018294 },
+ { "Antarctica/Rothera" , 0x0185B0 },
+ { "Antarctica/South_Pole" , 0x018626 },
+ { "Antarctica/Syowa" , 0x0189A4 },
+ { "Antarctica/Troll" , 0x018A12 },
+ { "Antarctica/Vostok" , 0x018BE4 },
+ { "Arctic/Longyearbyen" , 0x018C55 },
+ { "Asia/Aden" , 0x018F87 },
+ { "Asia/Almaty" , 0x018FDC },
+ { "Asia/Amman" , 0x01915B },
+ { "Asia/Anadyr" , 0x019411 },
+ { "Asia/Aqtau" , 0x0195F6 },
+ { "Asia/Aqtobe" , 0x0197F5 },
+ { "Asia/Ashgabat" , 0x0199AD },
+ { "Asia/Ashkhabad" , 0x019ACA },
+ { "Asia/Baghdad" , 0x019BE7 },
+ { "Asia/Bahrain" , 0x019D5C },
+ { "Asia/Baku" , 0x019DC2 },
+ { "Asia/Bangkok" , 0x01A0AA },
+ { "Asia/Beirut" , 0x01A0FF },
+ { "Asia/Bishkek" , 0x01A40C },
+ { "Asia/Brunei" , 0x01A5B8 },
+ { "Asia/Calcutta" , 0x01A61A },
+ { "Asia/Choibalsan" , 0x01A693 },
+ { "Asia/Chongqing" , 0x01A80C },
+ { "Asia/Chungking" , 0x01A8FB },
+ { "Asia/Colombo" , 0x01A9AA },
+ { "Asia/Dacca" , 0x01AA46 },
+ { "Asia/Damascus" , 0x01AAEC },
+ { "Asia/Dhaka" , 0x01AE3C },
+ { "Asia/Dili" , 0x01AEE2 },
+ { "Asia/Dubai" , 0x01AF6C },
+ { "Asia/Dushanbe" , 0x01AFC1 },
+ { "Asia/Gaza" , 0x01B0C4 },
+ { "Asia/Harbin" , 0x01B417 },
+ { "Asia/Hebron" , 0x01B4FE },
+ { "Asia/Ho_Chi_Minh" , 0x01B85A },
+ { "Asia/Hong_Kong" , 0x01B8D2 },
+ { "Asia/Hovd" , 0x01BA94 },
+ { "Asia/Irkutsk" , 0x01BC0C },
+ { "Asia/Istanbul" , 0x01BDF2 },
+ { "Asia/Jakarta" , 0x01C1DF },
+ { "Asia/Jayapura" , 0x01C289 },
+ { "Asia/Jerusalem" , 0x01C325 },
+ { "Asia/Kabul" , 0x01C654 },
+ { "Asia/Kamchatka" , 0x01C6A5 },
+ { "Asia/Karachi" , 0x01C881 },
+ { "Asia/Kashgar" , 0x01C936 },
+ { "Asia/Kathmandu" , 0x01CA07 },
+ { "Asia/Katmandu" , 0x01CA6D },
+ { "Asia/Khandyga" , 0x01CAD3 },
+ { "Asia/Kolkata" , 0x01CCF8 },
+ { "Asia/Krasnoyarsk" , 0x01CD71 },
+ { "Asia/Kuala_Lumpur" , 0x01CF59 },
+ { "Asia/Kuching" , 0x01D016 },
+ { "Asia/Kuwait" , 0x01D104 },
+ { "Asia/Macao" , 0x01D159 },
+ { "Asia/Macau" , 0x01D294 },
+ { "Asia/Magadan" , 0x01D3CF },
+ { "Asia/Makassar" , 0x01D5B1 },
+ { "Asia/Manila" , 0x01D676 },
+ { "Asia/Muscat" , 0x01D6FB },
+ { "Asia/Nicosia" , 0x01D750 },
+ { "Asia/Novokuznetsk" , 0x01DA38 },
+ { "Asia/Novosibirsk" , 0x01DC3A },
+ { "Asia/Omsk" , 0x01DE25 },
+ { "Asia/Oral" , 0x01E00C },
+ { "Asia/Phnom_Penh" , 0x01E1DC },
+ { "Asia/Pontianak" , 0x01E254 },
+ { "Asia/Pyongyang" , 0x01E316 },
+ { "Asia/Qatar" , 0x01E383 },
+ { "Asia/Qyzylorda" , 0x01E3E9 },
+ { "Asia/Rangoon" , 0x01E5BF },
+ { "Asia/Riyadh" , 0x01E637 },
+ { "Asia/Saigon" , 0x01E68C },
+ { "Asia/Sakhalin" , 0x01E704 },
+ { "Asia/Samarkand" , 0x01E8FB },
+ { "Asia/Seoul" , 0x01EA31 },
+ { "Asia/Shanghai" , 0x01EAD5 },
+ { "Asia/Singapore" , 0x01EBB5 },
+ { "Asia/Taipei" , 0x01EC6C },
+ { "Asia/Tashkent" , 0x01ED84 },
+ { "Asia/Tbilisi" , 0x01EEB5 },
+ { "Asia/Tehran" , 0x01F06F },
+ { "Asia/Tel_Aviv" , 0x01F2DD },
+ { "Asia/Thimbu" , 0x01F60C },
+ { "Asia/Thimphu" , 0x01F672 },
+ { "Asia/Tokyo" , 0x01F6D8 },
+ { "Asia/Ujung_Pandang" , 0x01F761 },
+ { "Asia/Ulaanbaatar" , 0x01F7DE },
+ { "Asia/Ulan_Bator" , 0x01F939 },
+ { "Asia/Urumqi" , 0x01FA86 },
+ { "Asia/Ust-Nera" , 0x01FB4D },
+ { "Asia/Vientiane" , 0x01FD52 },
+ { "Asia/Vladivostok" , 0x01FDCA },
+ { "Asia/Yakutsk" , 0x01FFAF },
+ { "Asia/Yekaterinburg" , 0x020194 },
+ { "Asia/Yerevan" , 0x02039F },
+ { "Atlantic/Azores" , 0x02059F },
+ { "Atlantic/Bermuda" , 0x020AA2 },
+ { "Atlantic/Canary" , 0x020D83 },
+ { "Atlantic/Cape_Verde" , 0x021059 },
+ { "Atlantic/Faeroe" , 0x0210D2 },
+ { "Atlantic/Faroe" , 0x021376 },
+ { "Atlantic/Jan_Mayen" , 0x02161A },
+ { "Atlantic/Madeira" , 0x02194C },
+ { "Atlantic/Reykjavik" , 0x021E55 },
+ { "Atlantic/South_Georgia" , 0x02200E },
+ { "Atlantic/St_Helena" , 0x022220 },
+ { "Atlantic/Stanley" , 0x022052 },
+ { "Australia/ACT" , 0x022275 },
+ { "Australia/Adelaide" , 0x022592 },
+ { "Australia/Brisbane" , 0x0228BE },
+ { "Australia/Broken_Hill" , 0x022985 },
+ { "Australia/Canberra" , 0x022CC3 },
+ { "Australia/Currie" , 0x022FE0 },
+ { "Australia/Darwin" , 0x023313 },
+ { "Australia/Eucla" , 0x023399 },
+ { "Australia/Hobart" , 0x02346E },
+ { "Australia/LHI" , 0x0237CC },
+ { "Australia/Lindeman" , 0x023A67 },
+ { "Australia/Lord_Howe" , 0x023B48 },
+ { "Australia/Melbourne" , 0x023DF3 },
+ { "Australia/North" , 0x024118 },
+ { "Australia/NSW" , 0x02418C },
+ { "Australia/Perth" , 0x0244A9 },
+ { "Australia/Queensland" , 0x024581 },
+ { "Australia/South" , 0x02462D },
+ { "Australia/Sydney" , 0x02494A },
+ { "Australia/Tasmania" , 0x024C87 },
+ { "Australia/Victoria" , 0x024FCC },
+ { "Australia/West" , 0x0252E9 },
+ { "Australia/Yancowinna" , 0x02539F },
+ { "Brazil/Acre" , 0x0256C1 },
+ { "Brazil/DeNoronha" , 0x0257C5 },
+ { "Brazil/East" , 0x0258E5 },
+ { "Brazil/West" , 0x025BC2 },
+ { "Canada/Atlantic" , 0x025CBA },
+ { "Canada/Central" , 0x0261A2 },
+ { "Canada/East-Saskatchewan" , 0x026AAC },
+ { "Canada/Eastern" , 0x0265BC },
+ { "Canada/Mountain" , 0x026C35 },
+ { "Canada/Newfoundland" , 0x026FAB },
+ { "Canada/Pacific" , 0x0274D6 },
+ { "Canada/Saskatchewan" , 0x0278EF },
+ { "Canada/Yukon" , 0x027A78 },
+ { "CET" , 0x027D7B },
+ { "Chile/Continental" , 0x028084 },
+ { "Chile/EasterIsland" , 0x02841F },
+ { "CST6CDT" , 0x028761 },
+ { "Cuba" , 0x028AB2 },
+ { "EET" , 0x028E25 },
+ { "Egypt" , 0x0290D8 },
+ { "Eire" , 0x0294BF },
+ { "EST" , 0x0299D0 },
+ { "EST5EDT" , 0x029A14 },
+ { "Etc/GMT" , 0x029D65 },
+ { "Etc/GMT+0" , 0x029E31 },
+ { "Etc/GMT+1" , 0x029EBB },
+ { "Etc/GMT+10" , 0x029F48 },
+ { "Etc/GMT+11" , 0x029FD6 },
+ { "Etc/GMT+12" , 0x02A064 },
+ { "Etc/GMT+2" , 0x02A17F },
+ { "Etc/GMT+3" , 0x02A20B },
+ { "Etc/GMT+4" , 0x02A297 },
+ { "Etc/GMT+5" , 0x02A323 },
+ { "Etc/GMT+6" , 0x02A3AF },
+ { "Etc/GMT+7" , 0x02A43B },
+ { "Etc/GMT+8" , 0x02A4C7 },
+ { "Etc/GMT+9" , 0x02A553 },
+ { "Etc/GMT-0" , 0x029DED },
+ { "Etc/GMT-1" , 0x029E75 },
+ { "Etc/GMT-10" , 0x029F01 },
+ { "Etc/GMT-11" , 0x029F8F },
+ { "Etc/GMT-12" , 0x02A01D },
+ { "Etc/GMT-13" , 0x02A0AB },
+ { "Etc/GMT-14" , 0x02A0F2 },
+ { "Etc/GMT-2" , 0x02A139 },
+ { "Etc/GMT-3" , 0x02A1C5 },
+ { "Etc/GMT-4" , 0x02A251 },
+ { "Etc/GMT-5" , 0x02A2DD },
+ { "Etc/GMT-6" , 0x02A369 },
+ { "Etc/GMT-7" , 0x02A3F5 },
+ { "Etc/GMT-8" , 0x02A481 },
+ { "Etc/GMT-9" , 0x02A50D },
+ { "Etc/GMT0" , 0x029DA9 },
+ { "Etc/Greenwich" , 0x02A599 },
+ { "Etc/UCT" , 0x02A5DD },
+ { "Etc/Universal" , 0x02A621 },
+ { "Etc/UTC" , 0x02A665 },
+ { "Etc/Zulu" , 0x02A6A9 },
+ { "Europe/Amsterdam" , 0x02A6ED },
+ { "Europe/Andorra" , 0x02AB2B },
+ { "Europe/Athens" , 0x02ADA7 },
+ { "Europe/Belfast" , 0x02B0EA },
+ { "Europe/Belgrade" , 0x02B621 },
+ { "Europe/Berlin" , 0x02B8EA },
+ { "Europe/Bratislava" , 0x02BC4E },
+ { "Europe/Brussels" , 0x02BF80 },
+ { "Europe/Bucharest" , 0x02C3B7 },
+ { "Europe/Budapest" , 0x02C6E1 },
+ { "Europe/Busingen" , 0x02CA54 },
+ { "Europe/Chisinau" , 0x02CD0B },
+ { "Europe/Copenhagen" , 0x02D099 },
+ { "Europe/Dublin" , 0x02D3A3 },
+ { "Europe/Gibraltar" , 0x02D8B4 },
+ { "Europe/Guernsey" , 0x02DD0B },
+ { "Europe/Helsinki" , 0x02E242 },
+ { "Europe/Isle_of_Man" , 0x02E4F8 },
+ { "Europe/Istanbul" , 0x02EA2F },
+ { "Europe/Jersey" , 0x02EE1C },
+ { "Europe/Kaliningrad" , 0x02F353 },
+ { "Europe/Kiev" , 0x02F5B9 },
+ { "Europe/Lisbon" , 0x02F8D5 },
+ { "Europe/Ljubljana" , 0x02FDD9 },
+ { "Europe/London" , 0x0300A2 },
+ { "Europe/Luxembourg" , 0x0305D9 },
+ { "Europe/Madrid" , 0x030A2F },
+ { "Europe/Malta" , 0x030DF5 },
+ { "Europe/Mariehamn" , 0x0311AE },
+ { "Europe/Minsk" , 0x031464 },
+ { "Europe/Monaco" , 0x031672 },
+ { "Europe/Moscow" , 0x031AAD },
+ { "Europe/Nicosia" , 0x031D02 },
+ { "Europe/Oslo" , 0x031FEA },
+ { "Europe/Paris" , 0x03231C },
+ { "Europe/Podgorica" , 0x032762 },
+ { "Europe/Prague" , 0x032A2B },
+ { "Europe/Riga" , 0x032D5D },
+ { "Europe/Rome" , 0x0330A2 },
+ { "Europe/Samara" , 0x033465 },
+ { "Europe/San_Marino" , 0x033698 },
+ { "Europe/Sarajevo" , 0x033A5B },
+ { "Europe/Simferopol" , 0x033D24 },
+ { "Europe/Skopje" , 0x033F70 },
+ { "Europe/Sofia" , 0x034239 },
+ { "Europe/Stockholm" , 0x034541 },
+ { "Europe/Tallinn" , 0x0347F0 },
+ { "Europe/Tirane" , 0x034B2A },
+ { "Europe/Tiraspol" , 0x034E30 },
+ { "Europe/Uzhgorod" , 0x0351BE },
+ { "Europe/Vaduz" , 0x0354D5 },
+ { "Europe/Vatican" , 0x035784 },
+ { "Europe/Vienna" , 0x035B47 },
+ { "Europe/Vilnius" , 0x035E74 },
+ { "Europe/Volgograd" , 0x0361B3 },
+ { "Europe/Warsaw" , 0x0363B3 },
+ { "Europe/Zagreb" , 0x036794 },
+ { "Europe/Zaporozhye" , 0x036A5D },
+ { "Europe/Zurich" , 0x036D9E },
+ { "Factory" , 0x03704D },
+ { "GB" , 0x0370BE },
+ { "GB-Eire" , 0x0375F5 },
+ { "GMT" , 0x037B2C },
+ { "GMT+0" , 0x037BF8 },
+ { "GMT-0" , 0x037BB4 },
+ { "GMT0" , 0x037B70 },
+ { "Greenwich" , 0x037C3C },
+ { "Hongkong" , 0x037C80 },
+ { "HST" , 0x037E42 },
+ { "Iceland" , 0x037E86 },
+ { "Indian/Antananarivo" , 0x03803F },
+ { "Indian/Chagos" , 0x0380B3 },
+ { "Indian/Christmas" , 0x038115 },
+ { "Indian/Cocos" , 0x038159 },
+ { "Indian/Comoro" , 0x03819D },
+ { "Indian/Kerguelen" , 0x0381F2 },
+ { "Indian/Mahe" , 0x038247 },
+ { "Indian/Maldives" , 0x03829C },
+ { "Indian/Mauritius" , 0x0382F1 },
+ { "Indian/Mayotte" , 0x038367 },
+ { "Indian/Reunion" , 0x0383BC },
+ { "Iran" , 0x038411 },
+ { "Israel" , 0x03867F },
+ { "Jamaica" , 0x0389AE },
+ { "Japan" , 0x038A73 },
+ { "Kwajalein" , 0x038AFC },
+ { "Libya" , 0x038B5F },
+ { "MET" , 0x038C68 },
+ { "Mexico/BajaNorte" , 0x038F71 },
+ { "Mexico/BajaSur" , 0x0392DA },
+ { "Mexico/General" , 0x03951F },
+ { "MST" , 0x03977D },
+ { "MST7MDT" , 0x0397C1 },
+ { "Navajo" , 0x039B12 },
+ { "NZ" , 0x039E8B },
+ { "NZ-CHAT" , 0x03A209 },
+ { "Pacific/Apia" , 0x03A4F1 },
+ { "Pacific/Auckland" , 0x03A68D },
+ { "Pacific/Chatham" , 0x03AA19 },
+ { "Pacific/Chuuk" , 0x03AD10 },
+ { "Pacific/Easter" , 0x03AD69 },
+ { "Pacific/Efate" , 0x03B0C7 },
+ { "Pacific/Enderbury" , 0x03B18D },
+ { "Pacific/Fakaofo" , 0x03B1FB },
+ { "Pacific/Fiji" , 0x03B24C },
+ { "Pacific/Funafuti" , 0x03B3DF },
+ { "Pacific/Galapagos" , 0x03B423 },
+ { "Pacific/Gambier" , 0x03B49B },
+ { "Pacific/Guadalcanal" , 0x03B500 },
+ { "Pacific/Guam" , 0x03B555 },
+ { "Pacific/Honolulu" , 0x03B5AB },
+ { "Pacific/Johnston" , 0x03B622 },
+ { "Pacific/Kiritimati" , 0x03B6A1 },
+ { "Pacific/Kosrae" , 0x03B70C },
+ { "Pacific/Kwajalein" , 0x03B769 },
+ { "Pacific/Majuro" , 0x03B7D5 },
+ { "Pacific/Marquesas" , 0x03B834 },
+ { "Pacific/Midway" , 0x03B89B },
+ { "Pacific/Nauru" , 0x03B925 },
+ { "Pacific/Niue" , 0x03B99D },
+ { "Pacific/Norfolk" , 0x03B9FB },
+ { "Pacific/Noumea" , 0x03BA50 },
+ { "Pacific/Pago_Pago" , 0x03BAE0 },
+ { "Pacific/Palau" , 0x03BB69 },
+ { "Pacific/Pitcairn" , 0x03BBAD },
+ { "Pacific/Pohnpei" , 0x03BC02 },
+ { "Pacific/Ponape" , 0x03BC57 },
+ { "Pacific/Port_Moresby" , 0x03BC9C },
+ { "Pacific/Rarotonga" , 0x03BCE0 },
+ { "Pacific/Saipan" , 0x03BDBC },
+ { "Pacific/Samoa" , 0x03BE1F },
+ { "Pacific/Tahiti" , 0x03BEA8 },
+ { "Pacific/Tarawa" , 0x03BF0D },
+ { "Pacific/Tongatapu" , 0x03BF61 },
+ { "Pacific/Truk" , 0x03BFED },
+ { "Pacific/Wake" , 0x03C032 },
+ { "Pacific/Wallis" , 0x03C082 },
+ { "Pacific/Yap" , 0x03C0C6 },
+ { "Poland" , 0x03C10B },
+ { "Portugal" , 0x03C4EC },
+ { "PRC" , 0x03C9E8 },
+ { "PST8PDT" , 0x03CA99 },
+ { "ROC" , 0x03CDEA },
+ { "ROK" , 0x03CF02 },
+ { "Singapore" , 0x03CFA6 },
+ { "Turkey" , 0x03D05D },
+ { "UCT" , 0x03D44A },
+ { "Universal" , 0x03D48E },
+ { "US/Alaska" , 0x03D4D2 },
+ { "US/Aleutian" , 0x03D83B },
+ { "US/Arizona" , 0x03DBA1 },
+ { "US/Central" , 0x03DC2F },
+ { "US/East-Indiana" , 0x03E639 },
+ { "US/Eastern" , 0x03E13A },
+ { "US/Hawaii" , 0x03E8A3 },
+ { "US/Indiana-Starke" , 0x03E914 },
+ { "US/Michigan" , 0x03EC85 },
+ { "US/Mountain" , 0x03EFBC },
+ { "US/Pacific" , 0x03F335 },
+ { "US/Pacific-New" , 0x03F73A },
+ { "US/Samoa" , 0x03FB3F },
+ { "UTC" , 0x03FBC8 },
+ { "W-SU" , 0x03FEBF },
+ { "WET" , 0x03FC0C },
+ { "Zulu" , 0x0400FD },
};
/* This is a generated file, do not modify */
-const unsigned char timelib_timezone_db_data_builtin[262480] = {
+const unsigned char timelib_timezone_db_data_builtin[262465] = {
/* Africa/Abidjan */
@@ -711,8 +711,8 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
/* Africa/Cairo */
0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0,
0xC8, 0xFA, 0x7B, 0xD0, 0xC9, 0xFC, 0xEF, 0xE0, 0xCA, 0xC7, 0xE8, 0xD0, 0xCB, 0xCB, 0xAE, 0x60,
0xCC, 0xDF, 0x29, 0xD0, 0xCD, 0xAC, 0xE1, 0xE0, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0,
0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xAD, 0x50, 0xE8, 0x36, 0x63, 0x60,
@@ -743,14 +743,14 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x43, 0x3C, 0x55, 0xD0, 0x44, 0x51, 0x3E, 0xE0, 0x45, 0x12, 0xFD, 0x50, 0x46, 0x31, 0x20, 0xE0,
0x46, 0xE0, 0x6A, 0x50, 0x48, 0x11, 0x02, 0xE0, 0x48, 0xB7, 0x11, 0xD0, 0x49, 0xF0, 0xE4, 0xE0,
0x4A, 0x8D, 0xB9, 0x50, 0x4B, 0xDA, 0x01, 0x60, 0x4C, 0x61, 0xBD, 0xD0, 0x4C, 0x89, 0x58, 0xE0,
-0x4C, 0xA4, 0xFA, 0x50, 0x53, 0x75, 0x38, 0xE0, 0x53, 0xAF, 0x3A, 0xE0, 0x53, 0xD6, 0xC7, 0xE0,
-0x54, 0x24, 0x82, 0x50, 0x55, 0x39, 0x6B, 0x60, 0x55, 0x81, 0xED, 0xE0, 0x55, 0xA9, 0x7A, 0xE0,
-0x56, 0x04, 0x64, 0x50, 0x57, 0x22, 0x87, 0xE0, 0x57, 0x55, 0xF2, 0x60, 0x57, 0x7D, 0x7F, 0x60,
-0x57, 0xED, 0x80, 0xD0, 0x59, 0x02, 0x69, 0xE0, 0x59, 0x28, 0xA5, 0x60, 0x59, 0x50, 0x32, 0x60,
-0x59, 0xCD, 0x62, 0xD0, 0x5A, 0xE2, 0x4B, 0xE0, 0x5A, 0xFB, 0x58, 0x60, 0x5B, 0x22, 0xE5, 0x60,
-0x5B, 0xAD, 0x44, 0xD0, 0x5C, 0xC2, 0x2D, 0xE0, 0x5C, 0xCF, 0x5C, 0xE0, 0x5C, 0xF6, 0xE9, 0xE0,
-0x5D, 0x8D, 0x26, 0xD0, 0x5E, 0xC9, 0x9C, 0xE0, 0x5F, 0x6D, 0x08, 0xD0, 0x60, 0x9C, 0x4F, 0xE0,
-0x61, 0x56, 0x25, 0x50, 0x62, 0x70, 0x54, 0x60, 0x63, 0x36, 0x07, 0x50, 0x64, 0x4A, 0xF0, 0x60,
+0x4C, 0xA4, 0xFA, 0x50, 0x53, 0x75, 0x38, 0xE0, 0x53, 0xAC, 0x89, 0xD0, 0x53, 0xDA, 0xBC, 0x60,
+0x54, 0x24, 0x82, 0x50, 0x55, 0x39, 0x6B, 0x60, 0x55, 0x79, 0xF6, 0xD0, 0x55, 0xB1, 0x63, 0xE0,
+0x56, 0x04, 0x64, 0x50, 0x57, 0x22, 0x87, 0xE0, 0x57, 0x50, 0x9E, 0x50, 0x57, 0x7E, 0xD0, 0xE0,
+0x57, 0xED, 0x80, 0xD0, 0x59, 0x02, 0x69, 0xE0, 0x59, 0x27, 0x45, 0xD0, 0x59, 0x55, 0x78, 0x60,
+0x59, 0xCD, 0x62, 0xD0, 0x5A, 0xE2, 0x4B, 0xE0, 0x5A, 0xF4, 0xB2, 0xD0, 0x5B, 0x22, 0xE5, 0x60,
+0x5B, 0xAD, 0x44, 0xD0, 0x5C, 0xC2, 0x2D, 0xE0, 0x5C, 0xCB, 0x5A, 0x50, 0x5C, 0xF9, 0x8C, 0xE0,
+0x5D, 0x8D, 0x26, 0xD0, 0x5E, 0xD0, 0x34, 0x60, 0x5F, 0x6D, 0x08, 0xD0, 0x60, 0x9D, 0xA1, 0x60,
+0x61, 0x56, 0x25, 0x50, 0x62, 0x74, 0x48, 0xE0, 0x63, 0x36, 0x07, 0x50, 0x64, 0x4A, 0xF0, 0x60,
0x65, 0x15, 0xE9, 0x50, 0x66, 0x2A, 0xD2, 0x60, 0x66, 0xF5, 0xCB, 0x50, 0x68, 0x0A, 0xB4, 0x60,
0x68, 0xD5, 0xAD, 0x50, 0x69, 0xEA, 0x96, 0x60, 0x6A, 0xB5, 0x8F, 0x50, 0x6B, 0xD3, 0xB2, 0xE0,
0x6C, 0x9E, 0xAB, 0xD0, 0x6D, 0xB3, 0x94, 0xE0, 0x6E, 0x7E, 0x8D, 0xD0, 0x6F, 0x93, 0x76, 0xE0,
@@ -763,16 +763,16 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
-0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x00, 0x03, 0x00, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00,
-0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20,
-0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
-0x00, 0x00, 0x00, 0x00, 0xB7, 0x2E, 0x88, 0x01, 0x42, 0x57, 0x88, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01,
+0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00,
+0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x45, 0x45, 0x53, 0x54,
+0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xB7, 0x2E, 0x88, 0x01,
+0x42, 0x57, 0x88, 0x00, 0x00, 0x00, 0x00,
/* Africa/Casablanca */
0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -786,23 +786,23 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x4A, 0x23, 0x1A, 0x00, 0x4A, 0x8D, 0xD5, 0x70, 0x4B, 0xDC, 0xC0, 0x80, 0x4C, 0x5D, 0xE5, 0x70,
0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x34, 0x8C, 0xF0, 0x4F, 0x9C, 0xA0, 0xA0, 0x50, 0x08, 0xBB, 0xA0,
0x50, 0x31, 0x9A, 0x20, 0x50, 0x67, 0xA7, 0xA0, 0x51, 0x7C, 0x82, 0xA0, 0x51, 0xD8, 0xCB, 0xA0,
-0x52, 0x05, 0x9E, 0xA0, 0x52, 0x6C, 0x73, 0xA0, 0x53, 0x37, 0x7A, 0xA0, 0x53, 0xAF, 0x73, 0x20,
-0x53, 0xD7, 0x00, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0, 0x55, 0x82, 0x26, 0x20,
-0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0, 0x57, 0x56, 0x2A, 0xA0,
-0x57, 0x7D, 0xB7, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0, 0x59, 0x28, 0xDD, 0xA0,
-0x59, 0x50, 0x6A, 0xA0, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0, 0x5A, 0xFB, 0x90, 0xA0,
-0x5B, 0x23, 0x1D, 0xA0, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20, 0x5C, 0xCF, 0x95, 0x20,
-0x5C, 0xF7, 0x22, 0x20, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20, 0x5E, 0xA2, 0x48, 0x20,
-0x5E, 0xC9, 0xD5, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20, 0x60, 0x74, 0xFB, 0x20,
-0x60, 0x9C, 0x88, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20, 0x62, 0x48, 0xFF, 0xA0,
-0x62, 0x70, 0x8C, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0, 0x65, 0x3D, 0xBC, 0xA0,
-0x66, 0x15, 0xF2, 0xA0, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xE9, 0xF7, 0x20, 0x68, 0xFD, 0x80, 0xA0,
+0x52, 0x05, 0x9E, 0xA0, 0x52, 0x6C, 0x73, 0xA0, 0x53, 0x37, 0x7A, 0xA0, 0x53, 0xAE, 0x21, 0xA0,
+0x53, 0xDC, 0x46, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0, 0x55, 0x7B, 0x8E, 0xA0,
+0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0, 0x57, 0x52, 0x36, 0x20,
+0x57, 0x80, 0x5A, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0, 0x59, 0x1F, 0xA3, 0x20,
+0x59, 0x57, 0x02, 0x20, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0, 0x5A, 0xF6, 0x4A, 0xA0,
+0x5B, 0x24, 0x6F, 0x20, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20, 0x5C, 0xCC, 0xF2, 0x20,
+0x5C, 0xFB, 0x16, 0xA0, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20, 0x5E, 0x9A, 0x5F, 0x20,
+0x5E, 0xD1, 0xBE, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20, 0x60, 0x71, 0x06, 0xA0,
+0x60, 0x9F, 0x2B, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20, 0x62, 0x47, 0xAE, 0x20,
+0x62, 0x75, 0xD2, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0, 0x65, 0x3D, 0xBC, 0xA0,
+0x66, 0x19, 0xE7, 0x20, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xF0, 0x8E, 0xA0, 0x68, 0xFD, 0x80, 0xA0,
0x69, 0xC8, 0x87, 0xA0, 0x6A, 0xDD, 0x62, 0xA0, 0x6B, 0xA8, 0x69, 0xA0, 0x6C, 0xC6, 0x7F, 0x20,
0x6D, 0x88, 0x4B, 0xA0, 0x6E, 0xA6, 0x61, 0x20, 0x6F, 0x68, 0x2D, 0xA0, 0x70, 0x86, 0x43, 0x20,
0x71, 0x51, 0x4A, 0x20, 0x72, 0x66, 0x25, 0x20, 0x73, 0x31, 0x2C, 0x20, 0x74, 0x46, 0x07, 0x20,
0x75, 0x11, 0x0E, 0x20, 0x76, 0x2F, 0x23, 0xA0, 0x76, 0xF0, 0xF0, 0x20, 0x78, 0x0F, 0x05, 0xA0,
-0x78, 0xD0, 0xD2, 0x20, 0x79, 0xEE, 0xE7, 0xA0, 0x7A, 0xB0, 0xB4, 0x20, 0x7B, 0xCE, 0xC9, 0xA0,
-0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA8, 0x14, 0x20, 0x7E, 0x79, 0xB2, 0xA0, 0x7F, 0x7C, 0x18, 0xA0,
+0x78, 0xD0, 0xD2, 0x20, 0x79, 0xEE, 0xE7, 0xA0, 0x7A, 0xB0, 0xB4, 0x20, 0x7B, 0xCD, 0x78, 0x20,
+0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA4, 0x1F, 0xA0, 0x7E, 0x79, 0xB2, 0xA0, 0x7F, 0x7A, 0xC7, 0x20,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
@@ -919,23 +919,23 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x4C, 0x5D, 0xE5, 0x70, 0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x34, 0x8C, 0xF0, 0x4F, 0x9C, 0xA0, 0xA0,
0x50, 0x08, 0xBB, 0xA0, 0x50, 0x31, 0x9A, 0x20, 0x50, 0x67, 0xA7, 0xA0, 0x51, 0x7C, 0x82, 0xA0,
0x51, 0xD8, 0xCB, 0xA0, 0x52, 0x05, 0x9E, 0xA0, 0x52, 0x6C, 0x73, 0xA0, 0x53, 0x37, 0x7A, 0xA0,
-0x53, 0xAF, 0x73, 0x20, 0x53, 0xD7, 0x00, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0,
-0x55, 0x82, 0x26, 0x20, 0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0,
-0x57, 0x56, 0x2A, 0xA0, 0x57, 0x7D, 0xB7, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0,
-0x59, 0x28, 0xDD, 0xA0, 0x59, 0x50, 0x6A, 0xA0, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0,
-0x5A, 0xFB, 0x90, 0xA0, 0x5B, 0x23, 0x1D, 0xA0, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20,
-0x5C, 0xCF, 0x95, 0x20, 0x5C, 0xF7, 0x22, 0x20, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20,
-0x5E, 0xA2, 0x48, 0x20, 0x5E, 0xC9, 0xD5, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20,
-0x60, 0x74, 0xFB, 0x20, 0x60, 0x9C, 0x88, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20,
-0x62, 0x48, 0xFF, 0xA0, 0x62, 0x70, 0x8C, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0,
-0x65, 0x3D, 0xBC, 0xA0, 0x66, 0x15, 0xF2, 0xA0, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xE9, 0xF7, 0x20,
+0x53, 0xAE, 0x21, 0xA0, 0x53, 0xDC, 0x46, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0,
+0x55, 0x7B, 0x8E, 0xA0, 0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0,
+0x57, 0x52, 0x36, 0x20, 0x57, 0x80, 0x5A, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0,
+0x59, 0x1F, 0xA3, 0x20, 0x59, 0x57, 0x02, 0x20, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0,
+0x5A, 0xF6, 0x4A, 0xA0, 0x5B, 0x24, 0x6F, 0x20, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20,
+0x5C, 0xCC, 0xF2, 0x20, 0x5C, 0xFB, 0x16, 0xA0, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20,
+0x5E, 0x9A, 0x5F, 0x20, 0x5E, 0xD1, 0xBE, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20,
+0x60, 0x71, 0x06, 0xA0, 0x60, 0x9F, 0x2B, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20,
+0x62, 0x47, 0xAE, 0x20, 0x62, 0x75, 0xD2, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0,
+0x65, 0x3D, 0xBC, 0xA0, 0x66, 0x19, 0xE7, 0x20, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xF0, 0x8E, 0xA0,
0x68, 0xFD, 0x80, 0xA0, 0x69, 0xC8, 0x87, 0xA0, 0x6A, 0xDD, 0x62, 0xA0, 0x6B, 0xA8, 0x69, 0xA0,
0x6C, 0xC6, 0x7F, 0x20, 0x6D, 0x88, 0x4B, 0xA0, 0x6E, 0xA6, 0x61, 0x20, 0x6F, 0x68, 0x2D, 0xA0,
0x70, 0x86, 0x43, 0x20, 0x71, 0x51, 0x4A, 0x20, 0x72, 0x66, 0x25, 0x20, 0x73, 0x31, 0x2C, 0x20,
0x74, 0x46, 0x07, 0x20, 0x75, 0x11, 0x0E, 0x20, 0x76, 0x2F, 0x23, 0xA0, 0x76, 0xF0, 0xF0, 0x20,
0x78, 0x0F, 0x05, 0xA0, 0x78, 0xD0, 0xD2, 0x20, 0x79, 0xEE, 0xE7, 0xA0, 0x7A, 0xB0, 0xB4, 0x20,
-0x7B, 0xCE, 0xC9, 0xA0, 0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA8, 0x14, 0x20, 0x7E, 0x79, 0xB2, 0xA0,
-0x7F, 0x7C, 0x18, 0xA0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x7B, 0xCD, 0x78, 0x20, 0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA4, 0x1F, 0xA0, 0x7E, 0x79, 0xB2, 0xA0,
+0x7F, 0x7A, 0xC7, 0x20, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
@@ -9553,7 +9553,7 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
/* Asia/Vladivostok */
0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x16, 0xA7, 0x59, 0x47, 0x50,
+0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0F, 0xA7, 0x59, 0x47, 0x50,
0xB5, 0xA3, 0xB6, 0xF0, 0x15, 0x27, 0x45, 0x60, 0x16, 0x18, 0x79, 0xD0, 0x17, 0x08, 0x78, 0xE0,
0x17, 0xF9, 0xAD, 0x50, 0x18, 0xE9, 0xAC, 0x60, 0x19, 0xDA, 0xE0, 0xD0, 0x1A, 0xCC, 0x31, 0x60,
0x1B, 0xBC, 0x3E, 0x80, 0x1C, 0xAC, 0x2F, 0x80, 0x1D, 0x9C, 0x20, 0x80, 0x1E, 0x8C, 0x11, 0x80,
@@ -9576,12 +9576,12 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x08, 0x00, 0x00, 0x7B, 0xB0,
0x00, 0x00, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, 0x00, 0x00,
0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09,
-0x00, 0x00, 0x8C, 0xA0, 0x01, 0x0F, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x09, 0x00, 0x00, 0x9A, 0xB0,
+0x00, 0x00, 0x8C, 0xA0, 0x01, 0x09, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0,
0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x56, 0x4C, 0x41, 0x54, 0x00, 0x56, 0x4C, 0x41, 0x53, 0x54,
-0x00, 0x56, 0x4C, 0x41, 0x53, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCB, 0x32, 0x3A, 0x01, 0xDB,
-0xF8, 0xF5, 0x00, 0x00, 0x00, 0x16, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x37, 0x20,
-0x2D, 0x20, 0x41, 0x6D, 0x75, 0x72, 0x20, 0x52, 0x69, 0x76, 0x65, 0x72,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xCB, 0x32, 0x3A, 0x01, 0xDB, 0xF8, 0xF5, 0x00, 0x00, 0x00, 0x16, 0x4D,
+0x6F, 0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x37, 0x20, 0x2D, 0x20, 0x41, 0x6D, 0x75, 0x72, 0x20,
+0x52, 0x69, 0x76, 0x65, 0x72,
/* Asia/Yakutsk */
0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -12053,8 +12053,8 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
/* Egypt */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0xC8, 0x93, 0xB4, 0xE0,
0xC8, 0xFA, 0x7B, 0xD0, 0xC9, 0xFC, 0xEF, 0xE0, 0xCA, 0xC7, 0xE8, 0xD0, 0xCB, 0xCB, 0xAE, 0x60,
0xCC, 0xDF, 0x29, 0xD0, 0xCD, 0xAC, 0xE1, 0xE0, 0xCE, 0xC6, 0xF4, 0xD0, 0xCF, 0x8F, 0x66, 0xE0,
0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xAD, 0x50, 0xE8, 0x36, 0x63, 0x60,
@@ -12085,14 +12085,14 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x43, 0x3C, 0x55, 0xD0, 0x44, 0x51, 0x3E, 0xE0, 0x45, 0x12, 0xFD, 0x50, 0x46, 0x31, 0x20, 0xE0,
0x46, 0xE0, 0x6A, 0x50, 0x48, 0x11, 0x02, 0xE0, 0x48, 0xB7, 0x11, 0xD0, 0x49, 0xF0, 0xE4, 0xE0,
0x4A, 0x8D, 0xB9, 0x50, 0x4B, 0xDA, 0x01, 0x60, 0x4C, 0x61, 0xBD, 0xD0, 0x4C, 0x89, 0x58, 0xE0,
-0x4C, 0xA4, 0xFA, 0x50, 0x53, 0x75, 0x38, 0xE0, 0x53, 0xAF, 0x3A, 0xE0, 0x53, 0xD6, 0xC7, 0xE0,
-0x54, 0x24, 0x82, 0x50, 0x55, 0x39, 0x6B, 0x60, 0x55, 0x81, 0xED, 0xE0, 0x55, 0xA9, 0x7A, 0xE0,
-0x56, 0x04, 0x64, 0x50, 0x57, 0x22, 0x87, 0xE0, 0x57, 0x55, 0xF2, 0x60, 0x57, 0x7D, 0x7F, 0x60,
-0x57, 0xED, 0x80, 0xD0, 0x59, 0x02, 0x69, 0xE0, 0x59, 0x28, 0xA5, 0x60, 0x59, 0x50, 0x32, 0x60,
-0x59, 0xCD, 0x62, 0xD0, 0x5A, 0xE2, 0x4B, 0xE0, 0x5A, 0xFB, 0x58, 0x60, 0x5B, 0x22, 0xE5, 0x60,
-0x5B, 0xAD, 0x44, 0xD0, 0x5C, 0xC2, 0x2D, 0xE0, 0x5C, 0xCF, 0x5C, 0xE0, 0x5C, 0xF6, 0xE9, 0xE0,
-0x5D, 0x8D, 0x26, 0xD0, 0x5E, 0xC9, 0x9C, 0xE0, 0x5F, 0x6D, 0x08, 0xD0, 0x60, 0x9C, 0x4F, 0xE0,
-0x61, 0x56, 0x25, 0x50, 0x62, 0x70, 0x54, 0x60, 0x63, 0x36, 0x07, 0x50, 0x64, 0x4A, 0xF0, 0x60,
+0x4C, 0xA4, 0xFA, 0x50, 0x53, 0x75, 0x38, 0xE0, 0x53, 0xAC, 0x89, 0xD0, 0x53, 0xDA, 0xBC, 0x60,
+0x54, 0x24, 0x82, 0x50, 0x55, 0x39, 0x6B, 0x60, 0x55, 0x79, 0xF6, 0xD0, 0x55, 0xB1, 0x63, 0xE0,
+0x56, 0x04, 0x64, 0x50, 0x57, 0x22, 0x87, 0xE0, 0x57, 0x50, 0x9E, 0x50, 0x57, 0x7E, 0xD0, 0xE0,
+0x57, 0xED, 0x80, 0xD0, 0x59, 0x02, 0x69, 0xE0, 0x59, 0x27, 0x45, 0xD0, 0x59, 0x55, 0x78, 0x60,
+0x59, 0xCD, 0x62, 0xD0, 0x5A, 0xE2, 0x4B, 0xE0, 0x5A, 0xF4, 0xB2, 0xD0, 0x5B, 0x22, 0xE5, 0x60,
+0x5B, 0xAD, 0x44, 0xD0, 0x5C, 0xC2, 0x2D, 0xE0, 0x5C, 0xCB, 0x5A, 0x50, 0x5C, 0xF9, 0x8C, 0xE0,
+0x5D, 0x8D, 0x26, 0xD0, 0x5E, 0xD0, 0x34, 0x60, 0x5F, 0x6D, 0x08, 0xD0, 0x60, 0x9D, 0xA1, 0x60,
+0x61, 0x56, 0x25, 0x50, 0x62, 0x74, 0x48, 0xE0, 0x63, 0x36, 0x07, 0x50, 0x64, 0x4A, 0xF0, 0x60,
0x65, 0x15, 0xE9, 0x50, 0x66, 0x2A, 0xD2, 0x60, 0x66, 0xF5, 0xCB, 0x50, 0x68, 0x0A, 0xB4, 0x60,
0x68, 0xD5, 0xAD, 0x50, 0x69, 0xEA, 0x96, 0x60, 0x6A, 0xB5, 0x8F, 0x50, 0x6B, 0xD3, 0xB2, 0xE0,
0x6C, 0x9E, 0xAB, 0xD0, 0x6D, 0xB3, 0x94, 0xE0, 0x6E, 0x7E, 0x8D, 0xD0, 0x6F, 0x93, 0x76, 0xE0,
@@ -12105,16 +12105,16 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
-0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x01, 0x00, 0x03, 0x00, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00,
-0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20,
-0x00, 0x05, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01,
+0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00,
+0x00, 0x00, 0x1C, 0x20, 0x00, 0x05, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x45, 0x45, 0x53, 0x54,
+0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01,
+0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
/* Eire */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -14441,7 +14441,7 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
/* Europe/Moscow */
0x50, 0x48, 0x50, 0x31, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1E, 0x9B, 0x5F, 0x1E, 0xD8,
+0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x22, 0x9B, 0x5F, 0x1E, 0xD8,
0x9D, 0x3E, 0xF2, 0x98, 0x9E, 0x2A, 0xEF, 0x18, 0x9E, 0xF7, 0x39, 0x88, 0x9F, 0x84, 0x58, 0x18,
0xA0, 0xD8, 0x6D, 0x08, 0xA1, 0x00, 0x16, 0x28, 0xA1, 0x3C, 0xA6, 0x40, 0xA4, 0x10, 0x6D, 0xC0,
0xA4, 0x3D, 0x32, 0xB0, 0xA5, 0x15, 0x68, 0xB0, 0xA5, 0x3D, 0x03, 0xC0, 0xA7, 0x1E, 0x45, 0x50,
@@ -14468,15 +14468,15 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0C, 0x00, 0x00, 0x23, 0x28, 0x00, 0x00, 0x00, 0x00,
0x31, 0x68, 0x01, 0x04, 0x00, 0x00, 0x23, 0x58, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x78, 0x01, 0x08,
0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x46, 0x50,
-0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00,
-0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15,
+0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00,
+0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x19,
0x00, 0x00, 0x38, 0x40, 0x00, 0x0D, 0x4D, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44,
-0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45,
-0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDE,
-0x65, 0x98, 0x01, 0x4C, 0x01, 0x7D, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F, 0x73, 0x63, 0x6F, 0x77,
-0x2B, 0x30, 0x30, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x52, 0x75, 0x73, 0x73, 0x69,
-0x61,
+0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x4D, 0x53, 0x4D, 0x00, 0x45,
+0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xDE, 0x65, 0x98, 0x01, 0x4C, 0x01, 0x7D, 0x00, 0x00, 0x00, 0x17, 0x4D, 0x6F,
+0x73, 0x63, 0x6F, 0x77, 0x2B, 0x30, 0x30, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x20, 0x52,
+0x75, 0x73, 0x73, 0x69, 0x61,
/* Europe/Nicosia */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -18429,7 +18429,7 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
/* W-SU */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x1E, 0x9B, 0x5F, 0x1E, 0xD8,
+0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x22, 0x9B, 0x5F, 0x1E, 0xD8,
0x9D, 0x3E, 0xF2, 0x98, 0x9E, 0x2A, 0xEF, 0x18, 0x9E, 0xF7, 0x39, 0x88, 0x9F, 0x84, 0x58, 0x18,
0xA0, 0xD8, 0x6D, 0x08, 0xA1, 0x00, 0x16, 0x28, 0xA1, 0x3C, 0xA6, 0x40, 0xA4, 0x10, 0x6D, 0xC0,
0xA4, 0x3D, 0x32, 0xB0, 0xA5, 0x15, 0x68, 0xB0, 0xA5, 0x3D, 0x03, 0xC0, 0xA7, 0x1E, 0x45, 0x50,
@@ -18456,13 +18456,13 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x08, 0x09, 0x08, 0x09, 0x08, 0x09, 0x08, 0x0C, 0x00, 0x00, 0x23, 0x28, 0x00, 0x00, 0x00, 0x00,
0x31, 0x68, 0x01, 0x04, 0x00, 0x00, 0x23, 0x58, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x78, 0x01, 0x08,
0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00, 0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x46, 0x50,
-0x01, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00,
-0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x19, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x15,
+0x01, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0D, 0x00, 0x00,
+0x38, 0x40, 0x01, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x19,
0x00, 0x00, 0x38, 0x40, 0x00, 0x0D, 0x4D, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44,
-0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45,
-0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89,
-0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x53, 0x54, 0x00, 0x4D, 0x53, 0x4B, 0x00, 0x4D, 0x53, 0x44, 0x00, 0x4D, 0x53, 0x4D, 0x00, 0x45,
+0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
/* Zulu */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -18471,4 +18471,4 @@ const unsigned char timelib_timezone_db_data_builtin[262480] = {
0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
0x00, 0x00, 0x00, 0x00, };
-const timelib_tzdb timezonedb_builtin = { "2014.3", 580, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+const timelib_tzdb timezonedb_builtin = { "2014.5", 580, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index e8a7ebfe1..1809d6653 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -2582,6 +2582,8 @@ PHPAPI int php_date_initialize(php_date_obj *dateobj, /*const*/ char *time_str,
err->error_messages[0].position, err->error_messages[0].character, err->error_messages[0].message);
}
if (err && err->error_count) {
+ timelib_time_dtor(dateobj->time);
+ dateobj->time = 0;
return 0;
}
@@ -2729,9 +2731,7 @@ PHP_METHOD(DateTime, __construct)
zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) {
- if (!php_date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC)) {
- ZVAL_NULL(getThis());
- }
+ php_date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC);
}
zend_restore_error_handling(&error_handling TSRMLS_CC);
}
diff --git a/ext/date/tests/bug41523.phpt b/ext/date/tests/bug41523.phpt
index 05c591f06..68fe1bd6a 100644
--- a/ext/date/tests/bug41523.phpt
+++ b/ext/date/tests/bug41523.phpt
@@ -46,7 +46,7 @@ array(12) {
bool(false)
object(DateTime)#1 (3) {
["date"]=>
- string(20) "-0001-11-30 00:00:00.000000"
+ string(27) "-0001-11-30 00:00:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
diff --git a/ext/date/tests/bug67118.phpt b/ext/date/tests/bug67118.phpt
index 637175764..973b4eb8d 100644
--- a/ext/date/tests/bug67118.phpt
+++ b/ext/date/tests/bug67118.phpt
@@ -1,5 +1,5 @@
--TEST--
-Bug #67118 php-cgi crashes regularly on IIS 7
+Bug #67118 crashes in DateTime when this used after failed __construct
--INI--
date.timezone=Europe/Berlin
--FILE--
@@ -11,17 +11,17 @@ class mydt extends datetime
if (!empty($tz) && !is_object($tz)) {
$tz = new DateTimeZone($tz);
}
-
- @parent::__construct($time, $tz);
+ try {
+ @parent::__construct($time, $tz);
+ } catch (Exception $e) {
+ echo "Bad date" . $this->format("Y") . "\n";
+ }
}
};
new mydt("Funktionsansvarig rådgivning och juridik", "UTC");
+?>
--EXPECTF--
-Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (Funktionsansvarig rådgivning och juridik) at position 0 (F): The timezone could not be found in the database' in %sbug67118.php:%d
-Stack trace:
-#0 %sbug67118.php(%d): DateTime->__construct('Funktionsansvar...', Object(DateTimeZone))
-#1 %sbug67118.php(%d): mydt->__construct('Funktionsansvar...', 'UTC')
-#2 {main}
- thrown in %sbug67118.php on line %d
+Warning: DateTime::format(): The DateTime object has not been correctly initialized by its constructor in %sbug67118.php on line %d
+Bad date
diff --git a/ext/date/tests/bug67118_2.phpt b/ext/date/tests/bug67118_2.phpt
new file mode 100644
index 000000000..b4904a158
--- /dev/null
+++ b/ext/date/tests/bug67118_2.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Regression introduce in fix for Bug #67118
+--INI--
+date.timezone=Europe/Paris
+--FILE--
+<?php
+class Foo extends DateTime {
+ public function __construct($time = null) {
+ $tz = new DateTimeZone('UTC');
+ try {
+ echo "First try\n";
+ parent::__construct($time, $tz);
+ return;
+ } catch (Exception $e) {
+ echo "Second try\n";
+ parent::__construct($time.'C', $tz);
+ }
+ }
+}
+$date = '12 Sep 2007 15:49:12 UT';
+var_dump(new Foo($date));
+?>
+Done
+--EXPECTF--
+First try
+Second try
+object(Foo)#1 (3) {
+ ["date"]=>
+ string(%d) "2007-09-12 15:49:%s"
+ ["timezone_type"]=>
+ int(3)
+ ["timezone"]=>
+ string(3) "UTC"
+}
+Done
diff --git a/ext/dom/tests/DOMDocument_validate_external_dtd.phpt b/ext/dom/tests/DOMDocument_validate_external_dtd.phpt
index 51a044c54..dd4ec960d 100644
--- a/ext/dom/tests/DOMDocument_validate_external_dtd.phpt
+++ b/ext/dom/tests/DOMDocument_validate_external_dtd.phpt
@@ -12,6 +12,7 @@ require_once dirname(__FILE__) .'/skipif.inc';
// reusing existing xml: http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/dom.xml?view=co&content-type=text%2Fplain
// reusing existing dtd: http://cvs.php.net/viewvc.cgi/php-src/ext/dom/tests/dom.ent?view=co&content-type=text%2Fplain
$dom = new DOMDocument('1.0');
+$dom->substituteEntities = true;
$dom->load(dirname(__FILE__).'/dom.xml');
var_dump($dom->validate());
?>
diff --git a/ext/dom/tests/bug67081.phpt b/ext/dom/tests/bug67081.phpt
index 56c2c8e58..c6dc007d4 100644
--- a/ext/dom/tests/bug67081.phpt
+++ b/ext/dom/tests/bug67081.phpt
@@ -7,18 +7,22 @@ require_once('skipif.inc');
--FILE--
<?php
$domDocument = new DOMDocument();
+ $domDocument->substituteEntities = true;
$domDocument->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . "bug67081_0.xml");
var_dump($domDocument->doctype->internalSubset);
$domDocument = new DOMDocument();
+ $domDocument->substituteEntities = true;
$domDocument->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . "bug67081_1.xml");
var_dump($domDocument->doctype->internalSubset);
$domDocument = new DOMDocument();
+ $domDocument->substituteEntities = true;
$domDocument->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . "bug67081_2.xml");
var_dump($domDocument->doctype->internalSubset);
$domDocument = new DOMDocument();
+ $domDocument->substituteEntities = true;
$domDocument->load(dirname(__FILE__) . DIRECTORY_SEPARATOR . "dom.xml");
var_dump($domDocument->doctype->internalSubset);
?>
diff --git a/ext/exif/tests/exif004.phpt b/ext/exif/tests/exif004.phpt
index 229f49e14..8797955f8 100644
--- a/ext/exif/tests/exif004.phpt
+++ b/ext/exif/tests/exif004.phpt
@@ -18,7 +18,7 @@ exif.encode_unicode=ISO-8859-1
test4.jpg is a 1*1 image that contains Exif tags written by WindowsXP
*/
$image = exif_read_data(dirname(__FILE__).'/test4.jpg','',true,false);
-echo var_dump($image['WINXP']);
+var_dump($image['WINXP']);
?>
--EXPECT--
array(5) {
diff --git a/ext/fileinfo/libmagic/cdf.c b/ext/fileinfo/libmagic/cdf.c
index cbe3b0cf7..ad285cfe1 100644
--- a/ext/fileinfo/libmagic/cdf.c
+++ b/ext/fileinfo/libmagic/cdf.c
@@ -277,13 +277,15 @@ cdf_check_stream_offset(const cdf_stream_t *sst, const cdf_header_t *h,
{
const char *b = (const char *)sst->sst_tab;
const char *e = ((const char *)p) + tail;
+ size_t ss = sst->sst_dirlen < h->h_min_size_standard_stream ?
+ CDF_SHORT_SEC_SIZE(h) : CDF_SEC_SIZE(h);
(void)&line;
- if (e >= b && (size_t)(e - b) <= CDF_SEC_SIZE(h) * sst->sst_len)
+ if (e >= b && (size_t)(e - b) <= ss * sst->sst_len)
return 0;
DPRINTF(("%d: offset begin %p < end %p || %" SIZE_T_FORMAT "u"
" > %" SIZE_T_FORMAT "u [%" SIZE_T_FORMAT "u %"
SIZE_T_FORMAT "u]\n", line, b, e, (size_t)(e - b),
- CDF_SEC_SIZE(h) * sst->sst_len, CDF_SEC_SIZE(h), sst->sst_len));
+ ss * sst->sst_len, ss, sst->sst_len));
errno = EFTYPE;
return -1;
}
@@ -468,7 +470,8 @@ size_t
cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
{
size_t i, j;
- cdf_secid_t maxsector = (cdf_secid_t)(sat->sat_len * size);
+ cdf_secid_t maxsector = (cdf_secid_t)((sat->sat_len * size)
+ / sizeof(maxsector));
DPRINTF(("Chain:"));
for (j = i = 0; sid >= 0; i++, j++) {
@@ -478,8 +481,8 @@ cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
errno = EFTYPE;
return (size_t)-1;
}
- if (sid > maxsector) {
- DPRINTF(("Sector %d > %d\n", sid, maxsector));
+ if (sid >= maxsector) {
+ DPRINTF(("Sector %d >= %d\n", sid, maxsector));
errno = EFTYPE;
return (size_t)-1;
}
@@ -812,7 +815,11 @@ cdf_read_property_info(const cdf_stream_t *sst, const cdf_header_t *h,
if (cdf_check_stream_offset(sst, h, e, 0, __LINE__) == -1)
goto out;
for (i = 0; i < sh.sh_properties; i++) {
- size_t ofs = CDF_GETUINT32(p, (i << 1) + 1);
+ size_t ofs, tail = (i << 1) + 1;
+ if (cdf_check_stream_offset(sst, h, p, tail * sizeof(uint32_t),
+ __LINE__) == -1)
+ goto out;
+ ofs = CDF_GETUINT32(p, tail);
q = (const uint8_t *)(const void *)
((const char *)(const void *)p + ofs
- 2 * sizeof(uint32_t));
diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c
index 1d5db8966..3dd07820a 100644
--- a/ext/fileinfo/libmagic/softmagic.c
+++ b/ext/fileinfo/libmagic/softmagic.c
@@ -915,10 +915,18 @@ mconvert(struct magic_set *ms, struct magic *m, int flip)
return 1;
}
case FILE_PSTRING: {
- char *ptr1 = p->s, *ptr2 = ptr1 + file_pstring_length_size(m);
+ size_t sz = file_pstring_length_size(m);
+ char *ptr1 = p->s, *ptr2 = ptr1 + sz;
size_t len = file_pstring_get_length(m, ptr1);
- if (len >= sizeof(p->s))
- len = sizeof(p->s) - 1;
+ if (len >= sizeof(p->s)) {
+ /*
+ * The size of the pascal string length (sz)
+ * is 1, 2, or 4. We need at least 1 byte for NUL
+ * termination, but we've already truncated the
+ * string by p->s, so we need to deduct sz.
+ */
+ len = sizeof(p->s) - sz;
+ }
while (len--)
*ptr1++ = *ptr2++;
*ptr1 = '\0';
diff --git a/ext/libxml/tests/libxml_set_external_entity_loader_variation1.phpt b/ext/libxml/tests/libxml_set_external_entity_loader_variation1.phpt
index c9c45940b..958192704 100644
--- a/ext/libxml/tests/libxml_set_external_entity_loader_variation1.phpt
+++ b/ext/libxml/tests/libxml_set_external_entity_loader_variation1.phpt
@@ -37,6 +37,7 @@ libxml_set_external_entity_loader(
);
$dd = new DOMDocument;
+$dd->substituteEntities = true;
$dd->resolveExternals = true;
$r = $dd->loadXML($xml);
var_dump($dd->validate());
diff --git a/ext/mbstring/libmbfl/cvsclean b/ext/mbstring/libmbfl/cvsclean
deleted file mode 100755
index 60ae246a5..000000000
--- a/ext/mbstring/libmbfl/cvsclean
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-function cvsclean_sub() {
- prev_pwd=`pwd`
- cd $1
- cat .cvsignore | while read fname; do
- rm -r -f $fname
- done
- cd "$prev_pwd"
-}
-
-cvsclean_sub .
-cvsclean_sub mbfl
-cvsclean_sub filters
-cvsclean_sub nls
diff --git a/ext/mysqli/tests/bug33491.phpt b/ext/mysqli/tests/bug33491.phpt
index 168ecb038..7e994bc4d 100644
--- a/ext/mysqli/tests/bug33491.phpt
+++ b/ext/mysqli/tests/bug33491.phpt
@@ -26,4 +26,4 @@ $DB->query_single('SELECT DATE()');
?>
--EXPECTF--
-Fatal error: Call to a member function fetch_row() on a non-object in %sbug33491.php on line %d
+Fatal error: Call to a member function fetch_row() on boolean in %sbug33491.php on line %d
diff --git a/ext/mysqli/tests/mysqli_change_user_new.phpt b/ext/mysqli/tests/mysqli_change_user_new.phpt
index a87afa84a..e16895766 100644
--- a/ext/mysqli/tests/mysqli_change_user_new.phpt
+++ b/ext/mysqli/tests/mysqli_change_user_new.phpt
@@ -41,4 +41,4 @@ Warning: mysqli_query(): MySQL server has gone away in %s on line %d
Warning: mysqli_query(): Error reading result set's header in %s on line %d
[003] [2006] MySQL server has gone away
-Fatal error: Call to a member function fetch_assoc() on a non-object in %s on line %d \ No newline at end of file
+Fatal error: Call to a member function fetch_assoc() on %s in %s on line %d \ No newline at end of file
diff --git a/ext/mysqli/tests/table.inc b/ext/mysqli/tests/table.inc
index aa1207af4..cb089bb95 100644
--- a/ext/mysqli/tests/table.inc
+++ b/ext/mysqli/tests/table.inc
@@ -12,7 +12,7 @@ if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) {
exit(1);
}
-if (!mysqli_query($link, 'CREATE TABLE test(id INT, label CHAR(1), PRIMARY KEY(id)) ENGINE=' . $engine)) {
+if (!mysqli_query($link, 'CREATE TABLE test(id INT DEFAULT 0, label CHAR(1), PRIMARY KEY(id)) ENGINE=' . $engine)) {
printf("Failed to create test table: [%d] %s\n", mysqli_errno($link), mysqli_error($link));
exit(1);
}
diff --git a/ext/mysqlnd/mysqlnd_charset.c b/ext/mysqlnd/mysqlnd_charset.c
index c2f2b8890..dfa90db25 100644
--- a/ext/mysqlnd/mysqlnd_charset.c
+++ b/ext/mysqlnd/mysqlnd_charset.c
@@ -418,20 +418,60 @@ static uint mysqlnd_mbcharlen_utf16(unsigned int utf16)
/* {{{ utf32 functions */
-static uint
-check_mb_utf32(const char *start __attribute((unused)), const char *end __attribute((unused)))
+static unsigned int check_mb_utf32(const char *start __attribute((unused)), const char *end __attribute((unused)))
{
return 4;
}
-static uint
-mysqlnd_mbcharlen_utf32(unsigned int utf32 __attribute((unused)))
+static unsigned int mysqlnd_mbcharlen_utf32(unsigned int utf32 __attribute((unused)))
{
return 4;
}
/* }}} */
+
+/* {{{ gb18030 functions */
+#define is_gb18030_odd(c) (0x81 <= (zend_uchar) (c) && (zend_uchar) (c) <= 0xFE)
+#define is_gb18030_even_2(c) ((0x40 <= (zend_uchar) (c) && (zend_uchar) (c) <= 0x7E) || (0x80 <= (zend_uchar) (c) && (zend_uchar) (c) <= 0xFE))
+#define is_gb18030_even_4(c) (0x30 <= (zend_uchar) (c) && (zend_uchar) (c) <= 0x39)
+
+
+static unsigned int mysqlnd_mbcharlen_gb18030(unsigned int c)
+{
+ if (c <= 0xFF) {
+ return !is_gb18030_odd(c);
+ }
+ if (c > 0xFFFF || !is_gb18030_odd((c >> 8) & 0xFF)) {
+ return 0;
+ }
+ if (is_gb18030_even_2((c & 0xFF))) {
+ return 2;
+ }
+ if (is_gb18030_even_4((c & 0xFF))) {
+ return 4;
+ }
+
+ return 0;
+}
+
+
+static unsigned int my_ismbchar_gb18030(const char * start, const char * end)
+{
+ if (end - start <= 1 || !is_gb18030_odd(start[0])) {
+ return 0;
+ }
+
+ if (is_gb18030_even_2(start[1])) {
+ return 2;
+ } else if (end - start > 3 && is_gb18030_even_4(start[1]) && is_gb18030_odd(start[2]) && is_gb18030_even_4(start[3])) {
+ return 4;
+ }
+
+ return 0;
+}
+/* }}} */
+
/*
The server compiles sometimes the full utf-8 (the mb4) as utf8m4, and the old as utf8,
for BC reasons. Sometimes, utf8mb4 is just utf8 but the old charsets are utf8mb3.
@@ -643,6 +683,8 @@ const MYSQLND_CHARSET mysqlnd_charsets[] =
{ 245, UTF8_MB4, UTF8_MB4"_croatian_ci", 1, 4, "", mysqlnd_mbcharlen_utf8, check_mb_utf8_valid},
{ 246, UTF8_MB4, UTF8_MB4"_unicode_520_ci", 1, 4, "", mysqlnd_mbcharlen_utf8, check_mb_utf8_valid},
{ 247, UTF8_MB4, UTF8_MB4"_vietnamese_ci", 1, 4, "", mysqlnd_mbcharlen_utf8, check_mb_utf8_valid},
+ { 248, "gb18030", "gb18030_chinese_ci", 1, 4, "", mysqlnd_mbcharlen_gb18030, my_ismbchar_gb18030},
+ { 249, "gb18030", "gb18030_bin", 1, 4, "", mysqlnd_mbcharlen_gb18030, my_ismbchar_gb18030},
{ 254, UTF8_MB3, UTF8_MB3"_general_cs", 1, 3, "", mysqlnd_mbcharlen_utf8, check_mb_utf8_valid},
{ 0, NULL, NULL, 0, 0, NULL, NULL, NULL}
diff --git a/ext/oci8/LICENSE b/ext/oci8/LICENSE
index 42536af32..6059c80e1 100644
--- a/ext/oci8/LICENSE
+++ b/ext/oci8/LICENSE
@@ -1,6 +1,6 @@
--------------------------------------------------------------------
The PHP License, version 3.01
-Copyright (c) 1999 - 2012 The PHP Group. All rights reserved.
+Copyright (c) 1999 - 2014 The PHP Group. All rights reserved.
--------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 8badbf7e0..0d9b9564d 100755
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -708,7 +708,7 @@ static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr TSRMLS_DC) /* {{{ */
char * thestr;
long gmadjust = 0;
- if (ASN1_STRING_type(timestr) != V_ASN1_UTCTIME) {
+ if (ASN1_STRING_type(timestr) != V_ASN1_UTCTIME && ASN1_STRING_type(timestr) != V_ASN1_GENERALIZEDTIME) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "illegal ASN1 data type for timestamp");
return (time_t)-1;
}
@@ -723,6 +723,11 @@ static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr TSRMLS_DC) /* {{{ */
return (time_t)-1;
}
+ if (ASN1_STRING_type(timestr) == V_ASN1_GENERALIZEDTIME && ASN1_STRING_length(timestr) < 15) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to parse time string %s correctly", timestr->data);
+ return (time_t)-1;
+ }
+
strbuf = estrdup((char *)ASN1_STRING_data(timestr));
memset(&thetime, 0, sizeof(thetime));
@@ -744,14 +749,21 @@ static time_t asn1_time_to_time_t(ASN1_UTCTIME * timestr TSRMLS_DC) /* {{{ */
*thestr = '\0';
thestr -= 2;
thetime.tm_mon = atoi(thestr)-1;
+
*thestr = '\0';
- thestr -= 2;
- thetime.tm_year = atoi(thestr);
+ if( ASN1_STRING_type(timestr) == V_ASN1_UTCTIME ) {
+ thestr -= 2;
+ thetime.tm_year = atoi(thestr);
- if (thetime.tm_year < 68) {
- thetime.tm_year += 100;
+ if (thetime.tm_year < 68) {
+ thetime.tm_year += 100;
+ }
+ } else if( ASN1_STRING_type(timestr) == V_ASN1_GENERALIZEDTIME ) {
+ thestr -= 4;
+ thetime.tm_year = atoi(thestr) - 1900;
}
+
thetime.tm_isdst = -1;
ret = mktime(&thetime);
diff --git a/ext/openssl/tests/bug65698.crt b/ext/openssl/tests/bug65698.crt
new file mode 100644
index 000000000..c4a026113
--- /dev/null
+++ b/ext/openssl/tests/bug65698.crt
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEsTCCA5mgAwIBAgIQdwrGwrpRpBwdXS+ZsmsMGjANBgkqhkiG9w0BAQUFADA+
+MQswCQYDVQQGEwJQTDEbMBkGA1UEChMSVW5pemV0byBTcC4geiBvLm8uMRIwEAYD
+VQQDEwlDZXJ0dW0gQ0EwIhgPMjAwOTAzMDMxMjUzMThaGA8yMDI0MDMwMzEyNTMx
+OFowdzELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVz
+IFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEb
+MBkGA1UEAxMSQ2VydHVtIExldmVsIElJIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA4LE0Ixw8h5Lper9tHVtZkWIujxYsPVgUZABeZZgQsKTdJjaG
+VP64B/oiEV5Hd3AxRqaZ7dRRsf4Pg/PSS/2mHRQQ/SH3XACbrDHmucDvYgtU/WoZ
+yp9d6PXVPY4j7J5t/52s+EbZD5swSuQLGjZ9iwg9sXX3JdJ9Ty+B3z80oiajpK0B
+wqAxrcX3DekEOknj7LkAOK6iuQKI85REj4IVb9kD7KKIWdISGbfL4Ezh/TP51e0L
+/WhTJ7lHbHbRzFfPU/oi3Qyt5tEexrPKe+6N+Jrejdb5Ya7Ne3tKujDU7KlbO+dn
+pzFH7VHkBPJcQJ7QUrprPaqVsVg3JJ1PXTqVnwIDAQABo4IBbDCCAWgwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUgGIR3sBrpxDhCPBVtDCDv/qPCGAwUgYDVR0j
+BEswSaFCpEAwPjELMAkGA1UEBhMCUEwxGzAZBgNVBAoTElVuaXpldG8gU3AuIHog
+by5vLjESMBAGA1UEAxMJQ2VydHVtIENBggMBACAwDgYDVR0PAQH/BAQDAgEGMCwG
+A1UdHwQlMCMwIaAfoB2GG2h0dHA6Ly9jcmwuY2VydHVtLnBsL2NhLmNybDBoBggr
+BgEFBQcBAQRcMFowKAYIKwYBBQUHMAGGHGh0dHA6Ly9zdWJjYS5vY3NwLWNlcnR1
+bS5jb20wLgYIKwYBBQUHMAKGImh0dHA6Ly9yZXBvc2l0b3J5LmNlcnR1bS5wbC9j
+YS5jZXIwOgYDVR0gBDMwMTAvBgRVHSAAMCcwJQYIKwYBBQUHAgEWGWh0dHBzOi8v
+d3d3LmNlcnR1bS5wbC9DUFMwDQYJKoZIhvcNAQEFBQADggEBAI/jSDAW/w9qLzF6
+4oQiIRB7dGKp2Nlj27xZFYDBRINn4DKyZExkpanASF2of9eEzvrS+qoDY29mhXCi
+MkiGr0vCsVhn0ReUpjg4Z5SsiQhZ2BGSjXiOJgaDI7Dw1MH7Ru6jdfSbLyd97EFj
+ER0ERGdrcA2kLw7KfQm78IkClXEEKjKnAUTn1d/5Y4UuBWDCEL0FLgO9AqNXEzIy
+rlXVGIs73kdefAK+Z1T6dm83vUrDMyzemWNRBI2tVBujkN6zkaF6uPjE4hfoIkEQ
+Z4317byFkG4mxjATU+tQLG1Bs88HUAOrxtJOo/WoeCNsFJaxbYPt4oQGxIVYdz29
+OUX9CQA=
+-----END CERTIFICATE-----
diff --git a/ext/openssl/tests/bug65698.phpt b/ext/openssl/tests/bug65698.phpt
new file mode 100644
index 000000000..35d31764d
--- /dev/null
+++ b/ext/openssl/tests/bug65698.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #65689 (GeneralizedTime format parsing)
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip");
+?>
+--FILE--
+<?php
+$crt = substr(__FILE__, 0, -4).'.crt';
+$info = openssl_x509_parse("file://$crt");
+var_dump($info["validFrom"], $info["validFrom_time_t"], $info["validTo"], $info["validTo_time_t"]);
+?>
+Done
+--EXPECTF--
+string(15) "20090303125318Z"
+int(1236084798)
+string(15) "20240303125318Z"
+int(1709470398)
+Done
diff --git a/ext/openssl/tests/cve-2013-6420.phpt b/ext/openssl/tests/cve-2013-6420.phpt
index 87c0210b2..ccead0aab 100644
--- a/ext/openssl/tests/cve-2013-6420.phpt
+++ b/ext/openssl/tests/cve-2013-6420.phpt
@@ -12,7 +12,7 @@ var_dump($info['issuer']['emailAddress'], $info["validFrom_time_t"]);
?>
Done
--EXPECTF--
-%s openssl_x509_parse(): illegal ASN1 data type for timestamp in %s%ecve-2013-6420.php on line 3
+%s openssl_x509_parse(): illegal length in timestamp in %s%ecve-2013-6420.php on line 3
string(27) "stefan.esser@sektioneins.de"
int(-1)
Done
diff --git a/ext/openssl/tests/openssl_spki_verify.phpt b/ext/openssl/tests/openssl_spki_verify.phpt
index 1ee573fd3..52dc8e204 100644
--- a/ext/openssl/tests/openssl_spki_verify.phpt
+++ b/ext/openssl/tests/openssl_spki_verify.phpt
@@ -17,9 +17,7 @@ $ksize = array('1024'=>1024,
'4096'=>4096);
/* array of available hashings to test */
-$algo = array('md4'=>OPENSSL_ALGO_MD4,
- 'md5'=>OPENSSL_ALGO_MD5,
- 'sha1'=>OPENSSL_ALGO_SHA1,
+$algo = array('sha1'=>OPENSSL_ALGO_SHA1,
'sha224'=>OPENSSL_ALGO_SHA224,
'sha256'=>OPENSSL_ALGO_SHA256,
'sha384'=>OPENSSL_ALGO_SHA384,
@@ -90,16 +88,4 @@ bool(false)
bool(true)
bool(false)
bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
bool(false) \ No newline at end of file
diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re
index fa8ef187f..9f6a6a736 100644
--- a/ext/pdo/pdo_sql_parser.re
+++ b/ext/pdo/pdo_sql_parser.re
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt b/ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt
index 42c3d074a..224684b87 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt
@@ -93,4 +93,4 @@ array(1) {
Warning: PDO::prepare(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'unknown_column' in 'field list' in %s on line %d
-Fatal error: Call to a member function execute() on a non-object in %s on line %d \ No newline at end of file
+Fatal error: Call to a member function execute() on boolean in %s on line %d
diff --git a/ext/pdo_mysql/tests/pdo_mysql_prepare_native_mixed_style.phpt b/ext/pdo_mysql/tests/pdo_mysql_prepare_native_mixed_style.phpt
index 90cedef56..b7b0ab629 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_prepare_native_mixed_style.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_prepare_native_mixed_style.phpt
@@ -36,4 +36,4 @@ Warning: PDO::prepare(): SQLSTATE[HY093]: Invalid parameter number: mixed named
Warning: PDO::prepare(): SQLSTATE[HY093]: Invalid parameter number in %s on line %d
-Fatal error: Call to a member function execute() on a non-object in %s on line %d \ No newline at end of file
+Fatal error: Call to a member function execute() on boolean in %s on line %d
diff --git a/ext/pdo_mysql/tests/pdo_mysql_stmt_errorcode.phpt b/ext/pdo_mysql/tests/pdo_mysql_stmt_errorcode.phpt
index 4d59e8c3b..c16ce5dd1 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_stmt_errorcode.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_stmt_errorcode.phpt
@@ -56,4 +56,4 @@ Testing native PS...
Warning: PDO::prepare(): SQLSTATE[42S02]: Base table or view not found: 1146 Table '%s.ihopeitdoesnotexist' doesn't exist in %s on line %d
-Fatal error: Call to a member function execute() on a non-object in %s on line %d \ No newline at end of file
+Fatal error: Call to a member function execute() on boolean in %s on line %d
diff --git a/ext/pdo_mysql/tests/pdo_mysql_stmt_multiquery.phpt b/ext/pdo_mysql/tests/pdo_mysql_stmt_multiquery.phpt
index 91b5237ea..56c37c5f1 100644
--- a/ext/pdo_mysql/tests/pdo_mysql_stmt_multiquery.phpt
+++ b/ext/pdo_mysql/tests/pdo_mysql_stmt_multiquery.phpt
@@ -99,4 +99,4 @@ Native Prepared Statements...
Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%SSELECT label FROM test ORDER BY id ASC LIMIT 1' at line %d in %s on line %d
-Fatal error: Call to a member function errorInfo() on a non-object in %s on line %d
+Fatal error: Call to a member function errorInfo() on boolean in %s on line %d
diff --git a/ext/reflection/tests/ReflectionFunction_isClosure_basic.phpt b/ext/reflection/tests/ReflectionFunction_isClosure_basic.phpt
index eeaf8d382..368464e13 100644
--- a/ext/reflection/tests/ReflectionFunction_isClosure_basic.phpt
+++ b/ext/reflection/tests/ReflectionFunction_isClosure_basic.phpt
@@ -13,6 +13,6 @@ if (!extension_loaded('reflection') || !defined('PHP_VERSION_ID') || PHP_VERSION
<?php
$closure = function($param) { return "this is a closure"; };
$rc = new ReflectionFunction($closure);
-echo var_dump($rc->isClosure());
+var_dump($rc->isClosure());
--EXPECTF--
bool(true)
diff --git a/ext/reflection/tests/ReflectionFunction_isDeprecated_basic.phpt b/ext/reflection/tests/ReflectionFunction_isDeprecated_basic.phpt
index 31d37a85f..4148fada0 100644
--- a/ext/reflection/tests/ReflectionFunction_isDeprecated_basic.phpt
+++ b/ext/reflection/tests/ReflectionFunction_isDeprecated_basic.phpt
@@ -10,6 +10,6 @@ if (!extension_loaded('reflection') || !defined('PHP_VERSION_ID') || PHP_VERSION
--FILE--
<?php
$rc = new ReflectionFunction('ereg');
-echo var_dump($rc->isDeprecated());
+var_dump($rc->isDeprecated());
--EXPECTF--
bool(true)
diff --git a/ext/reflection/tests/ReflectionFunction_isDisabled_basic.phpt b/ext/reflection/tests/ReflectionFunction_isDisabled_basic.phpt
index c71b96b8e..30189cf4d 100644
--- a/ext/reflection/tests/ReflectionFunction_isDisabled_basic.phpt
+++ b/ext/reflection/tests/ReflectionFunction_isDisabled_basic.phpt
@@ -12,6 +12,6 @@ disable_functions=is_file
--FILE--
<?php
$rc = new ReflectionFunction('is_file');
-echo var_dump($rc->isDisabled());
+var_dump($rc->isDisabled());
--EXPECTF--
bool(true)
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index a8c6cb936..32bf5ca6f 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -225,6 +225,7 @@ PHP_METHOD(SoapClient, __getFunctions);
PHP_METHOD(SoapClient, __getTypes);
PHP_METHOD(SoapClient, __doRequest);
PHP_METHOD(SoapClient, __setCookie);
+PHP_METHOD(SoapClient, __getCookies);
PHP_METHOD(SoapClient, __setLocation);
PHP_METHOD(SoapClient, __setSoapHeaders);
@@ -368,6 +369,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_soapclient___setcookie, 0, 0, 1)
ZEND_ARG_INFO(0, value)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO(arginfo_soapclient___getcookies, 0)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_INFO_EX(arginfo_soapclient___setsoapheaders, 0, 0, 1)
ZEND_ARG_INFO(0, soapheaders)
ZEND_END_ARG_INFO()
@@ -422,6 +426,7 @@ static const zend_function_entry soap_client_functions[] = {
PHP_ME(SoapClient, __getTypes, arginfo_soapclient___gettypes, 0)
PHP_ME(SoapClient, __doRequest, arginfo_soapclient___dorequest, 0)
PHP_ME(SoapClient, __setCookie, arginfo_soapclient___setcookie, 0)
+ PHP_ME(SoapClient, __getCookies, arginfo_soapclient___getcookies, 0)
PHP_ME(SoapClient, __setLocation, arginfo_soapclient___setlocation, 0)
PHP_ME(SoapClient, __setSoapHeaders, arginfo_soapclient___setsoapheaders, 0)
PHP_FE_END
@@ -3150,6 +3155,24 @@ PHP_METHOD(SoapClient, __setCookie)
}
/* }}} */
+/* {{{ proto array SoapClient::__getCookies ( void )
+ Returns list of cookies */
+PHP_METHOD(SoapClient, __getCookies)
+{
+ zval **cookies, *tmp;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
+
+ array_init(return_value);
+
+ if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_cookies", sizeof("_cookies"), (void **)&cookies) != FAILURE) {
+ zend_hash_copy(Z_ARRVAL_P(return_value), Z_ARRVAL_P(*cookies), (copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*));
+ }
+}
+/* }}} */
+
/* {{{ proto void SoapClient::__setSoapHeaders(array SoapHeaders)
Sets SOAP headers for subsequent calls (replaces any previous
values).
diff --git a/ext/soap/tests/bug49898.phpt b/ext/soap/tests/bug49898.phpt
new file mode 100644
index 000000000..eea4ea490
--- /dev/null
+++ b/ext/soap/tests/bug49898.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Test for bug #49898: SoapClient::__getCookies() implementation
+--CREDITS--
+Boro Sitnikovski <buritomath@yahoo.com>
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(null, array('uri' => 'mo:http://www.w3.org/', 'location' => 'http://some.url'));
+$client->__setCookie("CookieTest", "HelloWorld");
+var_dump($client->__getCookies()['CookieTest'][0]);
+?>
+--EXPECT--
+string(10) "HelloWorld"
diff --git a/ext/sockets/sendrecvmsg.c b/ext/sockets/sendrecvmsg.c
index d9a819073..1d9cc78e7 100644
--- a/ext/sockets/sendrecvmsg.c
+++ b/ext/sockets/sendrecvmsg.c
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2012 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/sockets/windows_common.h b/ext/sockets/windows_common.h
index 3a9cb5912..9cc01ae12 100644
--- a/ext/sockets/windows_common.h
+++ b/ext/sockets/windows_common.h
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2012 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index f450e0b71..4191b0db0 100644
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -402,7 +402,7 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval
/* When in a write context,
* ZE has to be fooled into thinking this is in a reference set
* by separating (if necessary) and returning as an is_ref=1 zval (even if refcount == 1) */
- if ((type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) && !Z_ISREF_PP(ret)) {
+ if ((type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) && !Z_ISREF_PP(ret) && ret != &EG(uninitialized_zval_ptr)) {
if (Z_REFCOUNT_PP(ret) > 1) {
zval *newval;
@@ -1749,7 +1749,6 @@ SPL_METHOD(Array, unserialize)
}
if (buf_len == 0) {
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Empty serialized string cannot be empty");
return;
}
diff --git a/ext/spl/spl_dllist.c b/ext/spl/spl_dllist.c
index 772d780e0..fb88f5890 100644
--- a/ext/spl/spl_dllist.c
+++ b/ext/spl/spl_dllist.c
@@ -1192,7 +1192,6 @@ SPL_METHOD(SplDoublyLinkedList, unserialize)
}
if (buf_len == 0) {
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Serialized string cannot be empty");
return;
}
diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c
index 91830ab00..57ddf492d 100644
--- a/ext/spl/spl_observer.c
+++ b/ext/spl/spl_observer.c
@@ -831,7 +831,6 @@ SPL_METHOD(SplObjectStorage, unserialize)
}
if (buf_len == 0) {
- zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0 TSRMLS_CC, "Empty serialized string cannot be empty");
return;
}
diff --git a/ext/spl/tests/ArrayObject_unserialize_empty_string.phpt b/ext/spl/tests/ArrayObject_unserialize_empty_string.phpt
index 75d8a4132..4c446c82b 100644
--- a/ext/spl/tests/ArrayObject_unserialize_empty_string.phpt
+++ b/ext/spl/tests/ArrayObject_unserialize_empty_string.phpt
@@ -1,5 +1,5 @@
--TEST--
-ArrayObject: test that you cannot unserialize a empty string
+ArrayObject: test that you can unserialize a empty string
--CREDITS--
Havard Eide <nucleuz@gmail.com>
#PHPTestFest2009 Norway 2009-06-09 \o/
@@ -8,9 +8,6 @@ Havard Eide <nucleuz@gmail.com>
$a = new ArrayObject(array());
$a->unserialize("");
?>
+Done
--EXPECTF--
-Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Empty serialized string cannot be empty' in %s.php:%d
-Stack trace:
-#0 %s(%d): ArrayObject->unserialize('')
-#1 {main}
- thrown in %s.php on line %d
+Done
diff --git a/ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt b/ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt
index 4c2dd75e1..617f85e63 100644
--- a/ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt
+++ b/ext/spl/tests/SplObjectStorage_unserialize_invalid_parameter3.phpt
@@ -1,5 +1,5 @@
--TEST--
-Check that SplObjectStorage::unserialize throws exception when NULL passed
+Check that SplObjectStorage::unserialize doesn't throws exception when NULL passed
--CREDITS--
PHPNW Testfest 2009 - Simon Westcott (swestcott@gmail.com)
--FILE--
@@ -14,6 +14,6 @@ try {
}
?>
+Done
--EXPECTF--
-Empty serialized string cannot be empty
-
+Done
diff --git a/ext/spl/tests/bug66127.phpt b/ext/spl/tests/bug66127.phpt
new file mode 100644
index 000000000..b5d1dcac4
--- /dev/null
+++ b/ext/spl/tests/bug66127.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #66127 (Segmentation fault with ArrayObject unset)
+--INI--
+error_reporting = E_ALL & ~E_NOTICE
+--FILE--
+<?php
+function crash()
+{
+ set_error_handler(function () {});
+ $var = 1;
+ trigger_error('error');
+ $var2 = $var;
+ $var3 = $var;
+ trigger_error('error');
+}
+
+$items = new ArrayObject();
+
+unset($items[0]);
+unset($items[0][0]);
+crash();
+echo "Worked!\n";
+?>
+--EXPECT--
+Worked!
diff --git a/ext/spl/tests/iterator_035.phpt b/ext/spl/tests/iterator_035.phpt
index 9ce098b69..fc0271e38 100644
--- a/ext/spl/tests/iterator_035.phpt
+++ b/ext/spl/tests/iterator_035.phpt
@@ -12,4 +12,6 @@ $a[] = &$tmp;
echo "Done\n";
?>
--EXPECTF--
+Notice: Indirect modification of overloaded element of ArrayIterator has no effect in %s on line %d
+
Fatal error: Cannot assign by reference to overloaded object in %s on line %d
diff --git a/ext/spl/tests/unserialize.phpt b/ext/spl/tests/unserialize.phpt
new file mode 100644
index 000000000..3232b7967
--- /dev/null
+++ b/ext/spl/tests/unserialize.phpt
@@ -0,0 +1,43 @@
+--TEST--
+SPL: unserialize with no data (for PHPUnit)
+--FILE--
+<?php
+
+$types = array('SplDoublyLinkedList', 'SplObjectStorage', 'ArrayObject');
+
+foreach ($types as $type) {
+ // serialize an empty new object
+ $exp = serialize(new $type());
+ // hack to instanciate an object without constructor
+ $str = sprintf('C:%d:"%s":0:{}', strlen($type), $type);
+ $obj = unserialize($str);
+ var_dump($obj);
+ // serialize result
+ $out = serialize($obj);
+ // both should match
+ var_dump($exp === $out);
+}
+?>
+===DONE===
+--EXPECTF--
+object(SplDoublyLinkedList)#%d (2) {
+ ["flags":"SplDoublyLinkedList":private]=>
+ int(0)
+ ["dllist":"SplDoublyLinkedList":private]=>
+ array(0) {
+ }
+}
+bool(true)
+object(SplObjectStorage)#%d (1) {
+ ["storage":"SplObjectStorage":private]=>
+ array(0) {
+ }
+}
+bool(true)
+object(ArrayObject)#%d (1) {
+ ["storage":"ArrayObject":private]=>
+ array(0) {
+ }
+}
+bool(true)
+===DONE===
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 4f9833103..cbcaaf5b8 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -342,8 +342,7 @@ PHP_FUNCTION(count)
RETVAL_LONG(Z_LVAL_P(retval));
zval_ptr_dtor(&retval);
}
- zval_dtor(mode_zv);
- efree(mode_zv);
+ zval_ptr_dtor(&mode_zv);
return;
}
#endif
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index e525ff2a8..69e20fdd9 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -2648,7 +2648,6 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_unserialize, 0, 0, 1)
ZEND_ARG_INFO(0, variable_representation)
- ZEND_ARG_INFO(1, consumed)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_memory_get_usage, 0, 0, 0)
@@ -4043,92 +4042,91 @@ PHP_FUNCTION(putenv)
{
char *setting;
int setting_len;
+ char *p, **env;
+ putenv_entry pe;
+#ifdef PHP_WIN32
+ char *value = NULL;
+ int equals = 0;
+ int error_code;
+#endif
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &setting, &setting_len) == FAILURE) {
return;
}
+
+ if(setting_len == 0 || setting[0] == '=') {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter syntax");
+ RETURN_FALSE;
+ }
- if (setting_len) {
- char *p, **env;
- putenv_entry pe;
+ pe.putenv_string = estrndup(setting, setting_len);
+ pe.key = estrndup(setting, setting_len);
+ if ((p = strchr(pe.key, '='))) { /* nullify the '=' if there is one */
+ *p = '\0';
#ifdef PHP_WIN32
- char *value = NULL;
- int equals = 0;
- int error_code;
+ equals = 1;
#endif
+ }
- pe.putenv_string = estrndup(setting, setting_len);
- pe.key = estrndup(setting, setting_len);
- if ((p = strchr(pe.key, '='))) { /* nullify the '=' if there is one */
- *p = '\0';
-#ifdef PHP_WIN32
- equals = 1;
-#endif
- }
-
- pe.key_len = strlen(pe.key);
+ pe.key_len = strlen(pe.key);
#ifdef PHP_WIN32
- if (equals) {
- if (pe.key_len < setting_len - 1) {
- value = p + 1;
- } else {
- /* empty string*/
- value = p;
- }
+ if (equals) {
+ if (pe.key_len < setting_len - 1) {
+ value = p + 1;
+ } else {
+ /* empty string*/
+ value = p;
}
+ }
#endif
- zend_hash_del(&BG(putenv_ht), pe.key, pe.key_len+1);
+ zend_hash_del(&BG(putenv_ht), pe.key, pe.key_len+1);
- /* find previous value */
- pe.previous_value = NULL;
- for (env = environ; env != NULL && *env != NULL; env++) {
- if (!strncmp(*env, pe.key, pe.key_len) && (*env)[pe.key_len] == '=') { /* found it */
+ /* find previous value */
+ pe.previous_value = NULL;
+ for (env = environ; env != NULL && *env != NULL; env++) {
+ if (!strncmp(*env, pe.key, pe.key_len) && (*env)[pe.key_len] == '=') { /* found it */
#if defined(PHP_WIN32)
- /* must copy previous value because MSVCRT's putenv can free the string without notice */
- pe.previous_value = estrdup(*env);
+ /* must copy previous value because MSVCRT's putenv can free the string without notice */
+ pe.previous_value = estrdup(*env);
#else
- pe.previous_value = *env;
+ pe.previous_value = *env;
#endif
- break;
- }
+ break;
}
+ }
#if HAVE_UNSETENV
- if (!p) { /* no '=' means we want to unset it */
- unsetenv(pe.putenv_string);
- }
- if (!p || putenv(pe.putenv_string) == 0) { /* success */
+ if (!p) { /* no '=' means we want to unset it */
+ unsetenv(pe.putenv_string);
+ }
+ if (!p || putenv(pe.putenv_string) == 0) { /* success */
#else
# ifndef PHP_WIN32
- if (putenv(pe.putenv_string) == 0) { /* success */
+ if (putenv(pe.putenv_string) == 0) { /* success */
# else
- error_code = SetEnvironmentVariable(pe.key, value);
+ error_code = SetEnvironmentVariable(pe.key, value);
# if _MSC_VER < 1500
- /* Yet another VC6 bug, unset may return env not found */
- if (error_code != 0 ||
- (error_code == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
+ /* Yet another VC6 bug, unset may return env not found */
+ if (error_code != 0 ||
+ (error_code == 0 && GetLastError() == ERROR_ENVVAR_NOT_FOUND)) {
# else
- if (error_code != 0) { /* success */
+ if (error_code != 0) { /* success */
# endif
# endif
#endif
- zend_hash_add(&BG(putenv_ht), pe.key, pe.key_len + 1, (void **) &pe, sizeof(putenv_entry), NULL);
+ zend_hash_add(&BG(putenv_ht), pe.key, pe.key_len + 1, (void **) &pe, sizeof(putenv_entry), NULL);
#ifdef HAVE_TZSET
- if (!strncmp(pe.key, "TZ", pe.key_len)) {
- tzset();
- }
-#endif
- RETURN_TRUE;
- } else {
- efree(pe.putenv_string);
- efree(pe.key);
- RETURN_FALSE;
+ if (!strncmp(pe.key, "TZ", pe.key_len)) {
+ tzset();
}
+#endif
+ RETURN_TRUE;
+ } else {
+ efree(pe.putenv_string);
+ efree(pe.key);
+ RETURN_FALSE;
}
-
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter syntax");
- RETURN_FALSE;
}
/* }}} */
#endif
diff --git a/ext/standard/dns.c b/ext/standard/dns.c
index 6a894467f..214a7dc7e 100644
--- a/ext/standard/dns.c
+++ b/ext/standard/dns.c
@@ -517,6 +517,10 @@ static u_char *php_parserr(u_char *cp, querybuf *answer, int type_to_fetch, int
while (ll < dlen) {
n = cp[ll];
+ if ((ll + n) >= dlen) {
+ // Invalid chunk length, truncate
+ n = dlen - (ll + 1);
+ }
memcpy(tp + ll , cp + ll + 1, n);
add_next_index_stringl(entries, cp + ll + 1, n, 1);
ll = ll + n + 1;
diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c
index 73776ff0b..1b8d505a4 100644
--- a/ext/standard/http_fopen_wrapper.c
+++ b/ext/standard/http_fopen_wrapper.c
@@ -752,10 +752,11 @@ finish:
SEPARATE_ZVAL(tmpzval);
convert_to_long_ex(tmpzval);
follow_location = Z_LVAL_PP(tmpzval);
- } else if (!(response_code >= 300 && response_code < 304 || 307 == response_code)) {
+ } else if (!(response_code >= 300 && response_code < 304 || 307 == response_code || 308 == response_code)) {
/* we shouldn't redirect automatically
if follow_location isn't set and response_code not in (300, 301, 302, 303 and 307)
- see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.1 */
+ see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.1
+ RFC 7238 defines 308: http://tools.ietf.org/html/rfc7238 */
follow_location = 0;
}
strlcpy(location, http_header_line + 10, sizeof(location));
diff --git a/ext/standard/tests/general_functions/header_redirection_001.phpt b/ext/standard/tests/general_functions/header_redirection_001.phpt
new file mode 100644
index 000000000..ecf57ec54
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_001.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Location: headers change the status code
+--CGI--
+--FILE--
+<?php
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 302 Moved Temporarily
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_002.phpt b/ext/standard/tests/general_functions/header_redirection_002.phpt
new file mode 100644
index 000000000..2bf6dec51
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_002.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers override non-201 and 3xx response codes
+--CGI--
+--FILE--
+<?php
+header("HTTP/1.1 418 I'm a Teapot");
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 302 Moved Temporarily
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_003.phpt b/ext/standard/tests/general_functions/header_redirection_003.phpt
new file mode 100644
index 000000000..678e3143a
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_003.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Location: headers respect the header() response code parameter
+--CGI--
+--FILE--
+<?php
+header('Location: http://example.com/', true, 404);
+?>
+--EXPECTHEADERS--
+Status: 404 Not Found
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_004.phpt b/ext/standard/tests/general_functions/header_redirection_004.phpt
new file mode 100644
index 000000000..678e3143a
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_004.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Location: headers respect the header() response code parameter
+--CGI--
+--FILE--
+<?php
+header('Location: http://example.com/', true, 404);
+?>
+--EXPECTHEADERS--
+Status: 404 Not Found
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_005.phpt b/ext/standard/tests/general_functions/header_redirection_005.phpt
new file mode 100644
index 000000000..fc3e0f7af
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_005.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 201 response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 201 Created');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 201 Created
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_006.phpt b/ext/standard/tests/general_functions/header_redirection_006.phpt
new file mode 100644
index 000000000..5fb52096c
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_006.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 300 Multiple Choices response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 300 Multiple Choices');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 300 Multiple Choices
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_007.phpt b/ext/standard/tests/general_functions/header_redirection_007.phpt
new file mode 100644
index 000000000..6769b080f
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_007.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 301 Moved Permanently response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 301 Moved Permanently');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 301 Moved Permanently
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_008.phpt b/ext/standard/tests/general_functions/header_redirection_008.phpt
new file mode 100644
index 000000000..50993707c
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_008.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 302 Found response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 302 Found');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 302 Found
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_009.phpt b/ext/standard/tests/general_functions/header_redirection_009.phpt
new file mode 100644
index 000000000..f8d27f9bf
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_009.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 303 See Other response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 303 See Other');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 303 See Other
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_010.phpt b/ext/standard/tests/general_functions/header_redirection_010.phpt
new file mode 100644
index 000000000..316112dde
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_010.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 304 Not Modified response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 304 Not Modified');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 304 Not Modified
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_011.phpt b/ext/standard/tests/general_functions/header_redirection_011.phpt
new file mode 100644
index 000000000..bfd878963
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_011.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 305 Use Proxy response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 305 Use Proxy');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 305 Use Proxy
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_012.phpt b/ext/standard/tests/general_functions/header_redirection_012.phpt
new file mode 100644
index 000000000..657028b09
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_012.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 307 Temporary Redirect response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 307 Temporary Redirect');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 307 Temporary Redirect
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_013.phpt b/ext/standard/tests/general_functions/header_redirection_013.phpt
new file mode 100644
index 000000000..4dce0d00f
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_013.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 308 Permanent Redirect response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 308 Permanent Redirect');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 308 Permanent Redirect
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/header_redirection_014.phpt b/ext/standard/tests/general_functions/header_redirection_014.phpt
new file mode 100644
index 000000000..a5fb6e8fe
--- /dev/null
+++ b/ext/standard/tests/general_functions/header_redirection_014.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Location: headers do not override the 399 Choose Your Own Adventure response code
+--CGI--
+--FILE--
+<?php
+header('HTTP/1.1 399 Choose Your Own Adventure');
+header('Location: http://example.com/');
+?>
+--EXPECTHEADERS--
+Status: 399 Choose Your Own Adventure
+Location: http://example.com/
+--EXPECT--
diff --git a/ext/standard/tests/general_functions/putenv.phpt b/ext/standard/tests/general_functions/putenv.phpt
index afe1badce..254207320 100644
--- a/ext/standard/tests/general_functions/putenv.phpt
+++ b/ext/standard/tests/general_functions/putenv.phpt
@@ -15,6 +15,9 @@ var_dump(getenv($var_name));
var_dump(putenv($var_name));
var_dump(getenv($var_name));
+var_dump(putenv("=123"));
+var_dump(putenv(""));
+
echo "Done\n";
?>
--EXPECTF--
@@ -25,4 +28,10 @@ bool(true)
string(0) ""
bool(true)
bool(false)
+
+Warning: putenv(): Invalid parameter syntax in %s on line %d
+bool(false)
+
+Warning: putenv(): Invalid parameter syntax in %s on line %d
+bool(false)
Done
diff --git a/ext/standard/tests/http/bug67430.phpt b/ext/standard/tests/http/bug67430.phpt
new file mode 100644
index 000000000..d4474fdf5
--- /dev/null
+++ b/ext/standard/tests/http/bug67430.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Bug #67430 (http:// wrapper doesn't follow 308 redirects)
+--INI--
+allow_url_fopen=1
+--SKIPIF--
+<?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
+--FILE--
+<?php
+require 'server.inc';
+
+function do_test($follow) {
+ $options = [
+ 'http' => [
+ 'method' => 'POST',
+ 'follow_location' => $follow,
+ ],
+ ];
+
+ $ctx = stream_context_create($options);
+
+ $responses = [
+ "data://text/plain,HTTP/1.1 308\r\nLocation: /foo\r\n\r\n",
+ "data://text/plain,HTTP/1.1 200\r\nConnection: close\r\n\r\n",
+ ];
+ $pid = http_server('tcp://127.0.0.1:12342', $responses, $output);
+
+ $fd = fopen('http://127.0.0.1:12342/', 'rb', false, $ctx);
+ fseek($output, 0, SEEK_SET);
+ echo stream_get_contents($output);
+
+ http_server_kill($pid);
+}
+
+do_test(true);
+do_test(false);
+
+?>
+Done
+--EXPECT--
+POST / HTTP/1.0
+Host: 127.0.0.1:12342
+
+GET /foo HTTP/1.0
+Host: 127.0.0.1:12342
+
+POST / HTTP/1.0
+Host: 127.0.0.1:12342
+
+Done
diff --git a/ext/standard/tests/serialize/serialization_error_001.phpt b/ext/standard/tests/serialize/serialization_error_001.phpt
index c6c17512f..da6f50cc0 100644
--- a/ext/standard/tests/serialize/serialization_error_001.phpt
+++ b/ext/standard/tests/serialize/serialization_error_001.phpt
@@ -21,7 +21,7 @@ var_dump( unserialize() );
//Test serialize with one more than the expected number of arguments
var_dump( serialize(1,2) );
-var_dump( unserialize(1,$x,2) );
+var_dump( unserialize(1,2) );
echo "Done";
?>
@@ -31,12 +31,12 @@ echo "Done";
Warning: serialize() expects exactly 1 parameter, 0 given in %s on line 16
NULL
-Warning: unserialize() expects at least 1 parameter, 0 given in %s on line 17
+Warning: unserialize() expects exactly 1 parameter, 0 given in %s on line 17
bool(false)
Warning: serialize() expects exactly 1 parameter, 2 given in %s on line 20
NULL
-Warning: unserialize() expects at most 2 parameters, 3 given in %s on line 21
+Warning: unserialize() expects exactly 1 parameter, 2 given in %s on line 21
bool(false)
Done
diff --git a/ext/standard/tests/serialize/unserialize_consumed.phpt b/ext/standard/tests/serialize/unserialize_consumed.phpt
deleted file mode 100644
index 6cc11e273..000000000
--- a/ext/standard/tests/serialize/unserialize_consumed.phpt
+++ /dev/null
@@ -1,27 +0,0 @@
---TEST--
-Unserialization of partial strings
---FILE--
-<?php
-$data = [123,4.56,true];
-$ser = serialize($data);
-$serlen = strlen($ser);
-
-$unser = unserialize($ser, $consumed);
-echo "Consume full string: ";
-var_dump($serlen == $consumed);
-echo "Return original data: ";
-var_dump($unser === $data);
-
-$ser .= "junk\x01data";
-$unser = unserialize($ser, $consumed);
-echo "Consume full string(junk): ";
-var_dump($serlen == $consumed);
-echo "Return original data(junk): ";
-var_dump($unser === $data);
-
---EXPECT--
-Consume full string: bool(true)
-Return original data: bool(true)
-Consume full string(junk): bool(true)
-Return original data(junk): bool(true)
-
diff --git a/ext/standard/url_scanner_ex.re b/ext/standard/url_scanner_ex.re
index ecacb76f9..70ee06eee 100644
--- a/ext/standard/url_scanner_ex.re
+++ b/ext/standard/url_scanner_ex.re
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 930edd687..457f31db3 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -943,7 +943,7 @@ PHP_FUNCTION(serialize)
}
/* }}} */
-/* {{{ proto mixed unserialize(string variable_representation[, int &consumed])
+/* {{{ proto mixed unserialize(string variable_representation)
Takes a string representation of variable and recreates it */
PHP_FUNCTION(unserialize)
{
@@ -951,9 +951,8 @@ PHP_FUNCTION(unserialize)
int buf_len;
const unsigned char *p;
php_unserialize_data_t var_hash;
- zval *consumed = NULL;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &buf, &buf_len, &consumed) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &buf, &buf_len) == FAILURE) {
RETURN_FALSE;
}
@@ -972,11 +971,6 @@ PHP_FUNCTION(unserialize)
RETURN_FALSE;
}
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
-
- if (consumed) {
- zval_dtor(consumed);
- ZVAL_LONG(consumed, ((char*)p) - buf);
- }
}
/* }}} */
diff --git a/ext/standard/var_unserializer.c b/ext/standard/var_unserializer.c
index eb1a90d1d..d7cc85367 100644
--- a/ext/standard/var_unserializer.c
+++ b/ext/standard/var_unserializer.c
@@ -3,7 +3,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/standard/var_unserializer.re b/ext/standard/var_unserializer.re
index b3f5d29ca..3a1b91095 100644
--- a/ext/standard/var_unserializer.re
+++ b/ext/standard/var_unserializer.re
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
- | Copyright (c) 1997-2013 The PHP Group |
+ | Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
diff --git a/ext/tokenizer/tests/bug67395.phpt b/ext/tokenizer/tests/bug67395.phpt
new file mode 100644
index 000000000..c9b7f3012
--- /dev/null
+++ b/ext/tokenizer/tests/bug67395.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug 67395: token_name() does not return name for T_POW and T_POW_EQUAL token
+--FILE--
+<?php
+
+$powToken = token_get_all('<?php **')[1][0];
+var_dump(token_name($powToken));
+
+$powEqualToken = token_get_all('<?php **=')[1][0];
+var_dump(token_name($powEqualToken));
+
+?>
+--EXPECT--
+string(5) "T_POW"
+string(11) "T_POW_EQUAL"
diff --git a/ext/tokenizer/tokenizer_data.c b/ext/tokenizer/tokenizer_data.c
index dc48f040f..beb9ea8e5 100644
--- a/ext/tokenizer/tokenizer_data.c
+++ b/ext/tokenizer/tokenizer_data.c
@@ -39,6 +39,7 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) {
REGISTER_LONG_CONSTANT("T_LOGICAL_AND", T_LOGICAL_AND, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_PRINT", T_PRINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_YIELD", T_YIELD, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("T_POW_EQUAL", T_POW_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SR_EQUAL", T_SR_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_SL_EQUAL", T_SL_EQUAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_XOR_EQUAL", T_XOR_EQUAL, CONST_CS | CONST_PERSISTENT);
@@ -70,6 +71,7 @@ void tokenizer_register_constants(INIT_FUNC_ARGS) {
REGISTER_LONG_CONSTANT("T_INT_CAST", T_INT_CAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_DEC", T_DEC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_INC", T_INC, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("T_POW", T_POW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_CLONE", T_CLONE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_NEW", T_NEW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("T_EXIT", T_EXIT, CONST_CS | CONST_PERSISTENT);
@@ -176,6 +178,7 @@ char *get_token_type_name(int token_type)
case T_LOGICAL_AND: return "T_LOGICAL_AND";
case T_PRINT: return "T_PRINT";
case T_YIELD: return "T_YIELD";
+ case T_POW_EQUAL: return "T_POW_EQUAL";
case T_SR_EQUAL: return "T_SR_EQUAL";
case T_SL_EQUAL: return "T_SL_EQUAL";
case T_XOR_EQUAL: return "T_XOR_EQUAL";
@@ -207,6 +210,7 @@ char *get_token_type_name(int token_type)
case T_INT_CAST: return "T_INT_CAST";
case T_DEC: return "T_DEC";
case T_INC: return "T_INC";
+ case T_POW: return "T_POW";
case T_CLONE: return "T_CLONE";
case T_NEW: return "T_NEW";
case T_EXIT: return "T_EXIT";
diff --git a/ext/zlib/tests/gzseek_basic2.phpt b/ext/zlib/tests/gzseek_basic2.phpt
index 82d305d0f..8e037af13 100644
--- a/ext/zlib/tests/gzseek_basic2.phpt
+++ b/ext/zlib/tests/gzseek_basic2.phpt
@@ -24,7 +24,7 @@ gzclose($h);
echo "\nreading the output file\n";
$h = gzopen($f, 'r');
echo gzread($h, strlen($str1))."\n";
-echo var_dump(bin2hex(gzread($h, 20)));
+var_dump(bin2hex(gzread($h, 20)));
echo gzread($h, strlen($str2))."\n";
gzclose($h);
unlink($f);
diff --git a/ext/zlib/tests/gzseek_variation1.phpt b/ext/zlib/tests/gzseek_variation1.phpt
index b260783f1..8512b743b 100644
--- a/ext/zlib/tests/gzseek_variation1.phpt
+++ b/ext/zlib/tests/gzseek_variation1.phpt
@@ -20,7 +20,7 @@ gzwrite($h, $str2);
gzclose($h);
$h = gzopen($f, 'r');
echo gzread($h, strlen($str1))."\n";
-echo var_dump(bin2hex(gzread($h, 20)));
+var_dump(bin2hex(gzread($h, 20)));
echo gzread($h, strlen($str2))."\n";
gzclose($h);
unlink($f);
diff --git a/ext/zlib/tests/gzseek_variation4.phpt b/ext/zlib/tests/gzseek_variation4.phpt
index 3d0cf67ce..529a01214 100644
--- a/ext/zlib/tests/gzseek_variation4.phpt
+++ b/ext/zlib/tests/gzseek_variation4.phpt
@@ -24,7 +24,7 @@ gzclose($h);
echo "\nreading the output file\n";
$h = gzopen($f, 'r');
echo gzread($h, strlen($str1))."\n";
-echo var_dump(bin2hex(gzread($h, 20)));
+var_dump(bin2hex(gzread($h, 20)));
echo gzread($h, strlen($str2))."\n";
gzclose($h);
unlink($f);
diff --git a/ext/zlib/tests/gzseek_variation5.phpt b/ext/zlib/tests/gzseek_variation5.phpt
index 93fb19fdb..11e491278 100644
--- a/ext/zlib/tests/gzseek_variation5.phpt
+++ b/ext/zlib/tests/gzseek_variation5.phpt
@@ -24,7 +24,7 @@ gzclose($h);
echo "\nreading the output file\n";
$h = gzopen($f, 'r');
echo gzread($h, strlen($str1))."\n";
-echo var_dump(bin2hex(gzread($h, 20)));
+var_dump(bin2hex(gzread($h, 20)));
echo gzread($h, strlen($str2))."\n";
gzclose($h);
unlink($f);