summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README2
-rw-r--r--changes138
-rw-r--r--doc/CrtChannel.32
-rw-r--r--doc/TraceCmd.333
-rw-r--r--doc/open.n59
-rw-r--r--doc/string.n3
-rw-r--r--generic/regc_locale.c641
-rw-r--r--generic/regc_nfa.c2
-rw-r--r--generic/regcomp.c14
-rw-r--r--generic/regexec.c4
-rw-r--r--generic/regguts.h2
-rw-r--r--generic/tcl.h6
-rw-r--r--generic/tclAlloc.c2
-rw-r--r--generic/tclCompCmds.c479
-rw-r--r--generic/tclCompExpr.c50
-rw-r--r--generic/tclCompile.c4
-rw-r--r--generic/tclEncoding.c2
-rw-r--r--generic/tclExecute.c6
-rw-r--r--generic/tclFileName.c8
-rw-r--r--generic/tclIO.c791
-rw-r--r--generic/tclIO.h7
-rw-r--r--generic/tclIOCmd.c32
-rw-r--r--generic/tclIOGT.c31
-rw-r--r--generic/tclIORChan.c20
-rw-r--r--generic/tclInt.h4
-rw-r--r--generic/tclParse.c113
-rw-r--r--generic/tclUniData.c1620
-rw-r--r--generic/tclVar.c15
-rw-r--r--library/init.tcl2
-rw-r--r--library/platform/pkgIndex.tcl2
-rw-r--r--library/platform/platform.tcl43
-rw-r--r--library/platform/shell.tcl2
-rw-r--r--library/tcltest/pkgIndex.tcl2
-rw-r--r--library/tcltest/tcltest.tcl84
-rw-r--r--library/tzdata/Africa/Accra32
-rw-r--r--library/tzdata/Africa/Addis_Ababa8
-rw-r--r--library/tzdata/Africa/Asmara9
-rw-r--r--library/tzdata/Africa/Asmera6
-rw-r--r--library/tzdata/Africa/Bamako9
-rw-r--r--library/tzdata/Africa/Bangui7
-rw-r--r--library/tzdata/Africa/Banjul9
-rw-r--r--library/tzdata/Africa/Bissau2
-rw-r--r--library/tzdata/Africa/Blantyre7
-rw-r--r--library/tzdata/Africa/Brazzaville7
-rw-r--r--library/tzdata/Africa/Bujumbura7
-rw-r--r--library/tzdata/Africa/Cairo4
-rw-r--r--library/tzdata/Africa/Casablanca231
-rw-r--r--library/tzdata/Africa/Conakry9
-rw-r--r--library/tzdata/Africa/Dakar8
-rw-r--r--library/tzdata/Africa/Dar_es_Salaam9
-rw-r--r--library/tzdata/Africa/Djibouti7
-rw-r--r--library/tzdata/Africa/Douala7
-rw-r--r--library/tzdata/Africa/El_Aaiun215
-rw-r--r--library/tzdata/Africa/Freetown37
-rw-r--r--library/tzdata/Africa/Gaborone10
-rw-r--r--library/tzdata/Africa/Harare7
-rw-r--r--library/tzdata/Africa/Kampala10
-rw-r--r--library/tzdata/Africa/Kigali7
-rw-r--r--library/tzdata/Africa/Kinshasa7
-rw-r--r--library/tzdata/Africa/Libreville7
-rw-r--r--library/tzdata/Africa/Lome7
-rw-r--r--library/tzdata/Africa/Luanda8
-rw-r--r--library/tzdata/Africa/Lubumbashi7
-rw-r--r--library/tzdata/Africa/Lusaka7
-rw-r--r--library/tzdata/Africa/Malabo8
-rw-r--r--library/tzdata/Africa/Maseru9
-rw-r--r--library/tzdata/Africa/Mbabane7
-rw-r--r--library/tzdata/Africa/Mogadishu9
-rw-r--r--library/tzdata/Africa/Niamey9
-rw-r--r--library/tzdata/Africa/Nouakchott9
-rw-r--r--library/tzdata/Africa/Ouagadougou7
-rw-r--r--library/tzdata/Africa/Porto-Novo8
-rw-r--r--library/tzdata/Africa/Sao_Tome8
-rw-r--r--library/tzdata/Africa/Timbuktu6
-rw-r--r--library/tzdata/Africa/Tripoli174
-rw-r--r--library/tzdata/America/Adak466
-rw-r--r--library/tzdata/America/Antigua8
-rw-r--r--library/tzdata/America/Cancun171
-rw-r--r--library/tzdata/America/Cayman8
-rw-r--r--library/tzdata/America/Eirunepe1
-rw-r--r--library/tzdata/America/Grand_Turk171
-rw-r--r--library/tzdata/America/Havana2
-rw-r--r--library/tzdata/America/Jamaica3
-rw-r--r--library/tzdata/America/Metlakatla2
-rw-r--r--library/tzdata/America/Montreal367
-rw-r--r--library/tzdata/America/Rio_Branco1
-rw-r--r--library/tzdata/America/Santiago189
-rw-r--r--library/tzdata/Antarctica/Casey6
-rw-r--r--library/tzdata/Antarctica/Macquarie180
-rw-r--r--library/tzdata/Antarctica/Palmer175
-rw-r--r--library/tzdata/Antarctica/Troll196
-rw-r--r--library/tzdata/Asia/Aden7
-rw-r--r--library/tzdata/Asia/Amman174
-rw-r--r--library/tzdata/Asia/Bahrain8
-rw-r--r--library/tzdata/Asia/Chita71
-rw-r--r--library/tzdata/Asia/Choibalsan171
-rw-r--r--library/tzdata/Asia/Chongqing20
-rw-r--r--library/tzdata/Asia/Chungking6
-rw-r--r--library/tzdata/Asia/Dhaka2
-rw-r--r--library/tzdata/Asia/Gaza346
-rw-r--r--library/tzdata/Asia/Harbin23
-rw-r--r--library/tzdata/Asia/Hebron346
-rw-r--r--library/tzdata/Asia/Ho_Chi_Minh13
-rw-r--r--library/tzdata/Asia/Hovd170
-rw-r--r--library/tzdata/Asia/Irkutsk7
-rw-r--r--library/tzdata/Asia/Jayapura2
-rw-r--r--library/tzdata/Asia/Jerusalem4
-rw-r--r--library/tzdata/Asia/Kashgar21
-rw-r--r--library/tzdata/Asia/Khandyga1
-rw-r--r--library/tzdata/Asia/Krasnoyarsk5
-rw-r--r--library/tzdata/Asia/Kuwait7
-rw-r--r--library/tzdata/Asia/Magadan1
-rw-r--r--library/tzdata/Asia/Muscat7
-rw-r--r--library/tzdata/Asia/Novokuznetsk5
-rw-r--r--library/tzdata/Asia/Novosibirsk1
-rw-r--r--library/tzdata/Asia/Omsk5
-rw-r--r--library/tzdata/Asia/Phnom_Penh10
-rw-r--r--library/tzdata/Asia/Pyongyang10
-rw-r--r--library/tzdata/Asia/Riyadh2
-rw-r--r--library/tzdata/Asia/Sakhalin5
-rw-r--r--library/tzdata/Asia/Samarkand4
-rw-r--r--library/tzdata/Asia/Seoul35
-rw-r--r--library/tzdata/Asia/Shanghai4
-rw-r--r--library/tzdata/Asia/Srednekolymsk71
-rw-r--r--library/tzdata/Asia/Taipei16
-rw-r--r--library/tzdata/Asia/Tashkent4
-rw-r--r--library/tzdata/Asia/Tbilisi6
-rw-r--r--library/tzdata/Asia/Tokyo4
-rw-r--r--library/tzdata/Asia/Ulaanbaatar170
-rw-r--r--library/tzdata/Asia/Urumqi15
-rw-r--r--library/tzdata/Asia/Ust-Nera1
-rw-r--r--library/tzdata/Asia/Vientiane10
-rw-r--r--library/tzdata/Asia/Vladivostok11
-rw-r--r--library/tzdata/Asia/Yakutsk5
-rw-r--r--library/tzdata/Asia/Yekaterinburg6
-rw-r--r--library/tzdata/Atlantic/Azores2
-rw-r--r--library/tzdata/Atlantic/Madeira2
-rw-r--r--library/tzdata/Atlantic/Reykjavik11
-rw-r--r--library/tzdata/Atlantic/St_Helena8
-rw-r--r--library/tzdata/Australia/Adelaide536
-rw-r--r--library/tzdata/Australia/Brisbane36
-rw-r--r--library/tzdata/Australia/Broken_Hill540
-rw-r--r--library/tzdata/Australia/Currie536
-rw-r--r--library/tzdata/Australia/Darwin20
-rw-r--r--library/tzdata/Australia/Eucla40
-rw-r--r--library/tzdata/Australia/Hobart552
-rw-r--r--library/tzdata/Australia/Lindeman46
-rw-r--r--library/tzdata/Australia/Lord_Howe240
-rw-r--r--library/tzdata/Australia/Melbourne534
-rw-r--r--library/tzdata/Australia/Perth40
-rw-r--r--library/tzdata/Australia/Sydney534
-rw-r--r--library/tzdata/Europe/Budapest10
-rw-r--r--library/tzdata/Europe/Helsinki8
-rw-r--r--library/tzdata/Europe/Istanbul3
-rw-r--r--library/tzdata/Europe/Kaliningrad1
-rw-r--r--library/tzdata/Europe/Kiev6
-rw-r--r--library/tzdata/Europe/Lisbon6
-rw-r--r--library/tzdata/Europe/Minsk1
-rw-r--r--library/tzdata/Europe/Moscow22
-rw-r--r--library/tzdata/Europe/Riga14
-rw-r--r--library/tzdata/Europe/Samara18
-rw-r--r--library/tzdata/Europe/Simferopol174
-rw-r--r--library/tzdata/Europe/Volgograd79
-rw-r--r--library/tzdata/Indian/Antananarivo9
-rw-r--r--library/tzdata/Indian/Comoro7
-rw-r--r--library/tzdata/Indian/Mayotte7
-rw-r--r--library/tzdata/Pacific/Apia188
-rw-r--r--library/tzdata/Pacific/Bougainville10
-rw-r--r--library/tzdata/Pacific/Chatham3
-rw-r--r--library/tzdata/Pacific/Easter186
-rw-r--r--library/tzdata/Pacific/Fiji174
-rw-r--r--library/tzdata/Pacific/Midway11
-rw-r--r--library/tzdata/Pacific/Pago_Pago3
-rw-r--r--library/tzdata/Pacific/Saipan10
-rw-r--r--macosx/tclMacOSXNotify.c3
-rw-r--r--tests/compile.test12
-rw-r--r--tests/fileSystem.test3
-rw-r--r--tests/io.test397
-rw-r--r--tests/iogt.test72
-rw-r--r--tests/parse.test3
-rw-r--r--tests/parseExpr.test9
-rw-r--r--tests/socket.test81
-rw-r--r--tests/upvar.test11
-rw-r--r--tests/utf.test30
-rw-r--r--tests/var.test2
-rw-r--r--tests/winFCmd.test13
-rw-r--r--tools/tcl.wse.in2
-rw-r--r--unix/Makefile.in27
-rwxr-xr-xunix/configure19
-rw-r--r--unix/configure.in2
-rw-r--r--unix/tcl.m415
-rw-r--r--unix/tcl.spec2
-rw-r--r--unix/tclConfig.h.in26
-rw-r--r--unix/tclUnixChan.c66
-rw-r--r--unix/tclUnixCompat.c2
-rw-r--r--win/Makefile.in8
-rwxr-xr-xwin/configure2
-rw-r--r--win/configure.in2
-rw-r--r--win/tclWinChan.c5
-rwxr-xr-x[-rw-r--r--]win/tclWinFile.c15
-rw-r--r--win/tclWinPort.h8
-rw-r--r--win/tclWinSock.c20
-rw-r--r--win/tclsh.exe.manifest.in20
203 files changed, 7523 insertions, 6925 deletions
diff --git a/README b/README
index 2ad171f..6d5a9be 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
README: Tcl
- This is the Tcl 8.5.15 source distribution.
+ This is the Tcl 8.5.18 source distribution.
http://sourceforge.net/projects/tcl/files/Tcl/
You can get any source release of Tcl from the URL above.
diff --git a/changes b/changes
index 5d6ef97..22242cb 100644
--- a/changes
+++ b/changes
@@ -7791,3 +7791,141 @@ Many revisions to better support a Cygwin environment (nijtmans)
2013-09-13 (bug fix)[bdd91c] crash in exec stack mem management (azazel)
--- Released 8.5.15, September 16, 2013 --- http://core.tcl.tk/tcl/ for details
+
+2013-09-19 (bug fix)[3487626] segfaults in [dict] compilers (porter)
+
+2013-09-19 (bug fix) [info frame] line OBOEs in bytecode (porter)
+
+2013-09-25 (bug fix)[d614d63] namespace matching *:: deletion fail (fellows)
+
+2013-10-22 (bug fix)[3556215] [scan %E%G%X] support (fellows)
+
+2013-10-25 (bug fix)[3eb2ec1] upper case scheme names in url. (nijtmans)
+=> http 2.7.13
+
+2013-10-29 (bug fix)[414d103] HP-UX: restore [exec] in threaded Tcl (nijtmans)
+
+2013-11-04 (bug fix) C++ friendly stubs struct declarations (nijtmans)
+
+2013-11-05 (bug fix)[426679e] OpenBSD man page rendering (nijtmans)
+
+2013-11-20 (bug fix) Improved environment variable management (nijtmans)
+=> tcltest 2.3.7
+
+2013-11-21 (platforms) Support for Windows 8.1 (nijtmans)
+
+2014-02-06 (bug fix)[a4494e2] panic in test namespace-13.2 (porter)
+
+2014-02-24 (bug fix)[2413550] Win: avoid serial double open (schroeter)
+
+2014-03-20 (bug fix)[2f7cbd0] FreeBSD 10.0 build failure (nijtmans)
+
+2014-03-27 (bug fix) segfault iocmd-23.11 (porter)
+
+2014-04-02 (bug fix)[336441e] Win: async socket connect stall (oehlmann)
+
+2014-04-04 (bug fix)[581937a,97069ea] async socket connect fail (oehlmann)
+
+2014-04-10 (bug fix)[792641f] Win: no \ in normalized path (nijtmans)
+
+2014-04-15 (bug fix)[88aef05] segfault iocmd-21.20 (porter)
+
+2014-04-16 (update) Win: use Winsock 2.2 (nijtmans)
+
+2014-04-16 (bug fix)[d19a30d] segfault clock-67.[23] (sebres)
+
+2014-04-21 (bug fix) segfault iocmd-21.2[12] (porter)
+
+2014-04-22 (bug fix) segfault iogt-2.4 (porter)
+
+2014-04-23 (bug fix)[3493120] memleak in thread exit
+
+2014-04-30 (bug fix) segfault iocmd-21.2[34] (porter)
+
+2014-05-01 (bug fix)[0e92c40] bytearray optimization validity (nijtmans)
+
+2014-05-06 (bug fix) segfault iogt-2.5 (porter)
+
+2014-05-06 (memleaks) io-29.27 io-29.34 io-33.7 (porter)
+
+2014-05-07 (memleaks) io-53.5, cloned Tcl_ChannelTypes (porter)
+
+2014-05-08 (memleak) iocmd-21.22 (porter)
+
+2014-05-08 refactoring of core I/O functions (porter)
+
+2014-05-09 (bug fix) segfault iocmd-32.1 (porter)
+
+2014-05-15 (bug fix)[3118489] protect NUL in filenames (nijtmans)
+
+2014-05-16 (bug fix) Fix for failing tests *io-32.11* (porter)
+
+2014-05-20 (bug fix) Stop eof and blocked state leaking thru stacks (porter)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-05-22 (platforms) work around systems that fail when a shared library
+is deleted after it is [load]ed (kupries)
+
+2014-05-31 (bug fix) chan events on pipes must be on proper ends (porter)
+
+2014-06-04 (bug fix) socket-2.12 (porter)
+
+2014-06-05 (bug fix) io-12.6 (kupries,porter)
+
+2014-06-16 (bug fix) socket-2.13 workaround broken select() (porter)
+
+2014-06-20 (bug fix)[b47b176] iortrans.tf-11.0 (porter)
+
+2014-06-22 (RFE)[2f9df4c] -cleanup scripts before -out compare (nijtmans)
+
+2014-07-04 (update) Update Unicode data to 7.0 (nijtmans)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-07-10 (bug fix)[7368d2] memleak Tcl_SetVar2(..,TCL_APPEND_VALUE) (porter)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-08-01 (enhancement) use refcounts, not Tcl_Preserve to manage lifetime
+of Tcl_Channel (porter)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-08-01 (update) "macosx*-i386-x86_64" "macosx-universal" no longer compatible (kupries)
+=> platform 1.0.13
+
+2014-08-12 tzdata updated to Olson's tzdata2014f (kenny)
+
+--- Released 8.5.16, August 25, 2014 --- http://core.tcl.tk/tcl/ for details
+
+2014-10-02 (bug)[bc5b79] Hang in some [read]s of limited size (rogers,porter)
+
+2014-10-08 (bug)[59a2e7] MSVC14 compile support (dower,nijtmans)
+
+2014-10-10 (bug)[ed29c4] [fcopy] treats [blocked] as error (rowen,porter)
+
+2014-10-10 (bug)[bf7135] regression in Tcl_Write() interface (porter)
+
+2014-10-18 (bug)[10dc6d] fix [gets] on non-blocking channels (fassel,porter)
+
+--- Released 8.5.17, October 25, 2014 --- http://core.tcl.tk/tcl/ for details
+
+2014-10-26 Support for Windows 10 (nijtmans)
+
+2014-10-31 (bug)[dcc034] restore [open comX: r+] (lll,nijtmans)
+
+2014-11-06 (bug)[5adc35] Stop forcing EOF to be permanent (porter)
+
+2014-12-03 (bug)[0c043a] Fix compiled [set var($) val] (porter)
+
+2014-12-04 (bug)[d2ffcc] Limit $... and bareword parsing to ASCII (ladayaroslav,porter)
+ *** POTENTIAL INCOMPATIBILITY ***
+
+2014-12-10 tzdata updated to Olson's tzdata2014j (venkat)
+
+2015-01-26 (bug)[df0848] Trouble with INFINITY macro (dower,nijtmans)
+
+2015-01-29 (bug) Stop crashes when extension var resolvers misbehave (porter)
+
+2015-02-05 (bug) Plug stacked channel memleak (porter)
+
+2015-02-11 tzdata updated to Olson's tzdata2015a (venkat)
+
+--- Released 8.5.18, March 6, 2015 --- http://core.tcl.tk/tcl/ for details
diff --git a/doc/CrtChannel.3 b/doc/CrtChannel.3
index 21b5c37..969267d 100644
--- a/doc/CrtChannel.3
+++ b/doc/CrtChannel.3
@@ -343,7 +343,7 @@ typedef struct Tcl_ChannelType {
It is not necessary to provide implementations for all channel
operations. Those which are not necessary may be set to NULL in the
struct: \fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR,
-\fIgetOptionProc\fR, and \fIclose2Proc\fR, in addition to
+\fIgetOptionProc\fR, \fIgetHandleProc\fR, and \fIclose2Proc\fR, in addition to
\fIflushProc\fR, \fIhandlerProc\fR, \fIthreadActionProc\fR, and
\fItruncateProc\fR. Other functions that cannot be implemented in a
meaningful way should return \fBEINVAL\fR when called, to indicate
diff --git a/doc/TraceCmd.3 b/doc/TraceCmd.3
index b15face..7ff26e4 100644
--- a/doc/TraceCmd.3
+++ b/doc/TraceCmd.3
@@ -84,11 +84,14 @@ operation is being performed on the command. The bit
\fBTCL_TRACE_DESTROYED\fR will be set in \fIflags\fR if the trace is about
to be destroyed; this information may be useful to \fIproc\fR so that
it can clean up its own internal data structures (see the section
-\fBTCL_TRACE_DESTROYED\fR below for more details). Lastly, the bit
-\fBTCL_INTERP_DESTROYED\fR will be set if the entire interpreter is being
-destroyed. When this bit is set, \fIproc\fR must be especially
-careful in the things it does (see the section \fBTCL_INTERP_DESTROYED\fR
-below).
+\fBTCL_TRACE_DESTROYED\fR below for more details). Because the
+deletion of commands can take place as part of the deletion of the interp
+that contains them, \fIproc\fR must be careful about checking what
+the passed in \fIinterp\fR value can be called upon to do.
+The routine \fBTcl_InterpDeleted\fR is an important tool for this.
+When \fBTcl_InterpDeleted\fR returns 1, \fIproc\fR will not be able
+to invoke any scripts in \fIinterp\fR. The function of \fIproc\fR
+in that circumstance is limited to the cleanup of its own data structures.
.PP
\fBTcl_UntraceCommand\fR may be used to remove a trace. If the
command specified by \fIinterp\fR, \fIcmdName\fR, and \fIflags\fR has
@@ -121,7 +124,8 @@ traces for a given command that have the same \fIproc\fR.
.PP
During rename traces, the command being renamed is visible with both
names simultaneously, and the command still exists during delete
-traces (if \fBTCL_INTERP_DESTROYED\fR is not set). However, there is no
+traces, unless the interp that contains it is being deleted.
+However, there is no
mechanism for signaling that an error occurred in a trace procedure,
so great care should be taken that errors do not get silently lost.
.SH "MULTIPLE TRACES"
@@ -140,22 +144,5 @@ rename the command, the last renaming takes precedence.
In a delete callback to \fIproc\fR, the \fBTCL_TRACE_DESTROYED\fR bit
is set in \fIflags\fR.
.\" Perhaps need some more comments here? - DKF
-.SH "TCL_INTERP_DESTROYED"
-.PP
-When an interpreter is destroyed, unset traces are called for
-all of its commands.
-The \fBTCL_INTERP_DESTROYED\fR bit will be set in the \fIflags\fR
-argument passed to the trace procedures.
-Trace procedures must be extremely careful in what they do if
-the \fBTCL_INTERP_DESTROYED\fR bit is set.
-It is not safe for the procedures to invoke any Tcl procedures
-on the interpreter, since its state is partially deleted.
-All that trace procedures should do under these circumstances is
-to clean up and free their own internal data structures.
-.SH BUGS
-.PP
-Tcl does not do any error checking to prevent trace procedures
-from misusing the interpreter during traces with \fBTCL_INTERP_DESTROYED\fR
-set.
.SH KEYWORDS
clientData, trace, command
diff --git a/doc/open.n b/doc/open.n
index b888126..a9da946 100644
--- a/doc/open.n
+++ b/doc/open.n
@@ -331,60 +331,27 @@ may cause this error.
A BREAK condition has been detected by your UART (see above).
.SH "PORTABILITY ISSUES"
.TP
-\fBWindows \fR(all versions)
+\fBWindows \fR
Valid values for \fIfileName\fR to open a serial port are of the form
-\fBcom\fIX\fB:\fR, where \fIX\fR is a number, generally from 1 to 4.
-This notation only works for serial ports from 1 to 9, if the system
-happens to have more than four. An attempt to open a serial port that
+\fBcom\fIX\fB\fR, where \fIX\fR is a number, generally from 1 to 9.
+A legacy form accepted as well is \fBcom\fIX\fB:\fR. This notation only
+works for serial ports from 1 to 9. An attempt to open a serial port that
does not exist or has a number greater than 9 will fail. An alternate
-form of opening serial ports is to use the filename \fB\e\e.\ecomX\fR,
-where X is any number that corresponds to a serial port; please note
-that this method is considerably slower on Windows 95 and Windows 98.
-.TP
-\fBWindows NT\fR
+form of opening serial ports is to use the filename \fB//./comX\fR,
+where X is any number that corresponds to a serial port.
+.RS
+.PP
When running Tcl interactively, there may be some strange interactions
between the real console, if one is present, and a command pipeline that uses
standard input or output. If a command pipeline is opened for reading, some
of the lines entered at the console will be sent to the command pipeline and
some will be sent to the Tcl evaluator. If a command pipeline is opened for
writing, keystrokes entered into the console are not visible until the
-pipe is closed. This behavior occurs whether the command pipeline is
-executing 16-bit or 32-bit applications. These problems only occur because
-both Tcl and the child application are competing for the console at
-the same time. If the command pipeline is started from a script, so that Tcl
-is not accessing the console, or if the command pipeline does not use
-standard input or output, but is redirected from or to a file, then the
-above problems do not occur.
-.TP
-\fBWindows 95\fR
-A command pipeline that executes a 16-bit DOS application cannot be opened
-for both reading and writing, since 16-bit DOS applications that receive
-standard input from a pipe and send standard output to a pipe run
-synchronously. Command pipelines that do not execute 16-bit DOS
-applications run asynchronously and can be opened for both reading and
-writing.
-.RS
-.PP
-When running Tcl interactively, there may be some strange interactions
-between the real console, if one is present, and a command pipeline that uses
-standard input or output. If a command pipeline is opened for reading from
-a 32-bit application, some of the keystrokes entered at the console will be
-sent to the command pipeline and some will be sent to the Tcl evaluator. If
-a command pipeline is opened for writing to a 32-bit application, no output
-is visible on the console until the pipe is closed. These problems only
-occur because both Tcl and the child application are competing for the
-console at the same time. If the command pipeline is started from a script,
-so that Tcl is not accessing the console, or if the command pipeline does
-not use standard input or output, but is redirected from or to a file, then
-the above problems do not occur.
-.PP
-Whether or not Tcl is running interactively, if a command pipeline is opened
-for reading from a 16-bit DOS application, the call to \fBopen\fR will not
-return until end-of-file has been received from the command pipeline's
-standard output. If a command pipeline is opened for writing to a 16-bit DOS
-application, no data will be sent to the command pipeline's standard output
-until the pipe is actually closed. This problem occurs because 16-bit DOS
-applications are run synchronously, as described above.
+pipe is closed. These problems only occur because both Tcl and the child
+application are competing for the console at the same time. If the command
+pipeline is started from a script, so that Tcl is not accessing the console,
+or if the command pipeline does not use standard input or output, but is
+redirected from or to a file, then the above problems do not occur.
.RE
.TP
\fBUnix\fR\0\0\0\0\0\0\0
diff --git a/doc/string.n b/doc/string.n
index f39d57c..7e427ab 100644
--- a/doc/string.n
+++ b/doc/string.n
@@ -161,7 +161,8 @@ Any Unicode printing character, including space.
.IP \fBpunct\fR 12
Any Unicode punctuation character.
.IP \fBspace\fR 12
-Any Unicode space character.
+Any Unicode whitespace character or mongolian vowel separator (U+180e),
+but not NEL/Next Line (U+0085).
.IP \fBtrue\fR 12
Any of the forms allowed to \fBTcl_GetBoolean\fR where the value is
true.
diff --git a/generic/regc_locale.c b/generic/regc_locale.c
index 69459f1..e056078 100644
--- a/generic/regc_locale.c
+++ b/generic/regc_locale.c
@@ -137,97 +137,107 @@ static const crange alphaRangeTable[] = {
{0x41, 0x5a}, {0x61, 0x7a}, {0xc0, 0xd6}, {0xd8, 0xf6},
{0xf8, 0x2c1}, {0x2c6, 0x2d1}, {0x2e0, 0x2e4}, {0x370, 0x374},
{0x37a, 0x37d}, {0x388, 0x38a}, {0x38e, 0x3a1}, {0x3a3, 0x3f5},
- {0x3f7, 0x481}, {0x48a, 0x527}, {0x531, 0x556}, {0x561, 0x587},
+ {0x3f7, 0x481}, {0x48a, 0x52f}, {0x531, 0x556}, {0x561, 0x587},
{0x5d0, 0x5ea}, {0x5f0, 0x5f2}, {0x620, 0x64a}, {0x671, 0x6d3},
{0x6fa, 0x6fc}, {0x712, 0x72f}, {0x74d, 0x7a5}, {0x7ca, 0x7ea},
- {0x800, 0x815}, {0x840, 0x858}, {0x8a2, 0x8ac}, {0x904, 0x939},
- {0x958, 0x961}, {0x971, 0x977}, {0x979, 0x97f}, {0x985, 0x98c},
- {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b6, 0x9b9}, {0x9df, 0x9e1},
- {0xa05, 0xa0a}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa59, 0xa5c},
- {0xa72, 0xa74}, {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8},
- {0xaaa, 0xab0}, {0xab5, 0xab9}, {0xb05, 0xb0c}, {0xb13, 0xb28},
- {0xb2a, 0xb30}, {0xb35, 0xb39}, {0xb5f, 0xb61}, {0xb85, 0xb8a},
- {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xba8, 0xbaa}, {0xbae, 0xbb9},
- {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc33},
- {0xc35, 0xc39}, {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8},
- {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xd05, 0xd0c}, {0xd0e, 0xd10},
- {0xd12, 0xd3a}, {0xd7a, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1},
- {0xdb3, 0xdbb}, {0xdc0, 0xdc6}, {0xe01, 0xe30}, {0xe40, 0xe46},
- {0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xead, 0xeb0},
- {0xec0, 0xec4}, {0xedc, 0xedf}, {0xf40, 0xf47}, {0xf49, 0xf6c},
- {0xf88, 0xf8c}, {0x1000, 0x102a}, {0x1050, 0x1055}, {0x105a, 0x105d},
- {0x106e, 0x1070}, {0x1075, 0x1081}, {0x10a0, 0x10c5}, {0x10d0, 0x10fa},
- {0x10fc, 0x1248}, {0x124a, 0x124d}, {0x1250, 0x1256}, {0x125a, 0x125d},
- {0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5},
- {0x12b8, 0x12be}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310},
- {0x1312, 0x1315}, {0x1318, 0x135a}, {0x1380, 0x138f}, {0x13a0, 0x13f4},
- {0x1401, 0x166c}, {0x166f, 0x167f}, {0x1681, 0x169a}, {0x16a0, 0x16ea},
- {0x1700, 0x170c}, {0x170e, 0x1711}, {0x1720, 0x1731}, {0x1740, 0x1751},
- {0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x1820, 0x1877},
- {0x1880, 0x18a8}, {0x18b0, 0x18f5}, {0x1900, 0x191c}, {0x1950, 0x196d},
- {0x1970, 0x1974}, {0x1980, 0x19ab}, {0x19c1, 0x19c7}, {0x1a00, 0x1a16},
- {0x1a20, 0x1a54}, {0x1b05, 0x1b33}, {0x1b45, 0x1b4b}, {0x1b83, 0x1ba0},
- {0x1bba, 0x1be5}, {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d},
- {0x1ce9, 0x1cec}, {0x1cee, 0x1cf1}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15},
- {0x1f18, 0x1f1d}, {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57},
- {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fc2, 0x1fc4},
- {0x1fc6, 0x1fcc}, {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec},
- {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffc}, {0x2090, 0x209c}, {0x210a, 0x2113},
- {0x2119, 0x211d}, {0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f},
- {0x2145, 0x2149}, {0x2c00, 0x2c2e}, {0x2c30, 0x2c5e}, {0x2c60, 0x2ce4},
- {0x2ceb, 0x2cee}, {0x2d00, 0x2d25}, {0x2d30, 0x2d67}, {0x2d80, 0x2d96},
- {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe},
- {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde},
- {0x3031, 0x3035}, {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa},
- {0x30fc, 0x30ff}, {0x3105, 0x312d}, {0x3131, 0x318e}, {0x31a0, 0x31ba},
- {0x31f0, 0x31ff}, {0x3400, 0x4db5}, {0x4e00, 0x9fcc}, {0xa000, 0xa48c},
- {0xa4d0, 0xa4fd}, {0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa640, 0xa66e},
- {0xa67f, 0xa697}, {0xa6a0, 0xa6e5}, {0xa717, 0xa71f}, {0xa722, 0xa788},
- {0xa78b, 0xa78e}, {0xa790, 0xa793}, {0xa7a0, 0xa7aa}, {0xa7f8, 0xa801},
- {0xa803, 0xa805}, {0xa807, 0xa80a}, {0xa80c, 0xa822}, {0xa840, 0xa873},
- {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7}, {0xa90a, 0xa925}, {0xa930, 0xa946},
- {0xa960, 0xa97c}, {0xa984, 0xa9b2}, {0xaa00, 0xaa28}, {0xaa40, 0xaa42},
- {0xaa44, 0xaa4b}, {0xaa60, 0xaa76}, {0xaa80, 0xaaaf}, {0xaab9, 0xaabd},
- {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4}, {0xab01, 0xab06},
- {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e},
- {0xabc0, 0xabe2}, {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb},
- {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
- {0xfb1f, 0xfb28}, {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbb1},
- {0xfbd3, 0xfd3d}, {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb},
- {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a},
- {0xff66, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7},
- {0xffda, 0xffdc}
+ {0x800, 0x815}, {0x840, 0x858}, {0x8a0, 0x8b2}, {0x904, 0x939},
+ {0x958, 0x961}, {0x971, 0x980}, {0x985, 0x98c}, {0x993, 0x9a8},
+ {0x9aa, 0x9b0}, {0x9b6, 0x9b9}, {0x9df, 0x9e1}, {0xa05, 0xa0a},
+ {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa59, 0xa5c}, {0xa72, 0xa74},
+ {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0},
+ {0xab5, 0xab9}, {0xb05, 0xb0c}, {0xb13, 0xb28}, {0xb2a, 0xb30},
+ {0xb35, 0xb39}, {0xb5f, 0xb61}, {0xb85, 0xb8a}, {0xb8e, 0xb90},
+ {0xb92, 0xb95}, {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xc05, 0xc0c},
+ {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc85, 0xc8c},
+ {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9},
+ {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a}, {0xd7a, 0xd7f},
+ {0xd85, 0xd96}, {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdc0, 0xdc6},
+ {0xe01, 0xe30}, {0xe40, 0xe46}, {0xe94, 0xe97}, {0xe99, 0xe9f},
+ {0xea1, 0xea3}, {0xead, 0xeb0}, {0xec0, 0xec4}, {0xedc, 0xedf},
+ {0xf40, 0xf47}, {0xf49, 0xf6c}, {0xf88, 0xf8c}, {0x1000, 0x102a},
+ {0x1050, 0x1055}, {0x105a, 0x105d}, {0x106e, 0x1070}, {0x1075, 0x1081},
+ {0x10a0, 0x10c5}, {0x10d0, 0x10fa}, {0x10fc, 0x1248}, {0x124a, 0x124d},
+ {0x1250, 0x1256}, {0x125a, 0x125d}, {0x1260, 0x1288}, {0x128a, 0x128d},
+ {0x1290, 0x12b0}, {0x12b2, 0x12b5}, {0x12b8, 0x12be}, {0x12c2, 0x12c5},
+ {0x12c8, 0x12d6}, {0x12d8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135a},
+ {0x1380, 0x138f}, {0x13a0, 0x13f4}, {0x1401, 0x166c}, {0x166f, 0x167f},
+ {0x1681, 0x169a}, {0x16a0, 0x16ea}, {0x16f1, 0x16f8}, {0x1700, 0x170c},
+ {0x170e, 0x1711}, {0x1720, 0x1731}, {0x1740, 0x1751}, {0x1760, 0x176c},
+ {0x176e, 0x1770}, {0x1780, 0x17b3}, {0x1820, 0x1877}, {0x1880, 0x18a8},
+ {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1950, 0x196d}, {0x1970, 0x1974},
+ {0x1980, 0x19ab}, {0x19c1, 0x19c7}, {0x1a00, 0x1a16}, {0x1a20, 0x1a54},
+ {0x1b05, 0x1b33}, {0x1b45, 0x1b4b}, {0x1b83, 0x1ba0}, {0x1bba, 0x1be5},
+ {0x1c00, 0x1c23}, {0x1c4d, 0x1c4f}, {0x1c5a, 0x1c7d}, {0x1ce9, 0x1cec},
+ {0x1cee, 0x1cf1}, {0x1d00, 0x1dbf}, {0x1e00, 0x1f15}, {0x1f18, 0x1f1d},
+ {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f5f, 0x1f7d},
+ {0x1f80, 0x1fb4}, {0x1fb6, 0x1fbc}, {0x1fc2, 0x1fc4}, {0x1fc6, 0x1fcc},
+ {0x1fd0, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fe0, 0x1fec}, {0x1ff2, 0x1ff4},
+ {0x1ff6, 0x1ffc}, {0x2090, 0x209c}, {0x210a, 0x2113}, {0x2119, 0x211d},
+ {0x212a, 0x212d}, {0x212f, 0x2139}, {0x213c, 0x213f}, {0x2145, 0x2149},
+ {0x2c00, 0x2c2e}, {0x2c30, 0x2c5e}, {0x2c60, 0x2ce4}, {0x2ceb, 0x2cee},
+ {0x2d00, 0x2d25}, {0x2d30, 0x2d67}, {0x2d80, 0x2d96}, {0x2da0, 0x2da6},
+ {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6},
+ {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde}, {0x3031, 0x3035},
+ {0x3041, 0x3096}, {0x309d, 0x309f}, {0x30a1, 0x30fa}, {0x30fc, 0x30ff},
+ {0x3105, 0x312d}, {0x3131, 0x318e}, {0x31a0, 0x31ba}, {0x31f0, 0x31ff},
+ {0x3400, 0x4db5}, {0x4e00, 0x9fcc}, {0xa000, 0xa48c}, {0xa4d0, 0xa4fd},
+ {0xa500, 0xa60c}, {0xa610, 0xa61f}, {0xa640, 0xa66e}, {0xa67f, 0xa69d},
+ {0xa6a0, 0xa6e5}, {0xa717, 0xa71f}, {0xa722, 0xa788}, {0xa78b, 0xa78e},
+ {0xa790, 0xa7ad}, {0xa7f7, 0xa801}, {0xa803, 0xa805}, {0xa807, 0xa80a},
+ {0xa80c, 0xa822}, {0xa840, 0xa873}, {0xa882, 0xa8b3}, {0xa8f2, 0xa8f7},
+ {0xa90a, 0xa925}, {0xa930, 0xa946}, {0xa960, 0xa97c}, {0xa984, 0xa9b2},
+ {0xa9e0, 0xa9e4}, {0xa9e6, 0xa9ef}, {0xa9fa, 0xa9fe}, {0xaa00, 0xaa28},
+ {0xaa40, 0xaa42}, {0xaa44, 0xaa4b}, {0xaa60, 0xaa76}, {0xaa7e, 0xaaaf},
+ {0xaab9, 0xaabd}, {0xaadb, 0xaadd}, {0xaae0, 0xaaea}, {0xaaf2, 0xaaf4},
+ {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26},
+ {0xab28, 0xab2e}, {0xab30, 0xab5a}, {0xab5c, 0xab5f}, {0xabc0, 0xabe2},
+ {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d},
+ {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1f, 0xfb28},
+ {0xfb2a, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbb1}, {0xfbd3, 0xfd3d},
+ {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfb}, {0xfe70, 0xfe74},
+ {0xfe76, 0xfefc}, {0xff21, 0xff3a}, {0xff41, 0xff5a}, {0xff66, 0xffbe},
+ {0xffc2, 0xffc7}, {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}
#if TCL_UTF_MAX > 4
,{0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003f, 0x1004d},
{0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10280, 0x1029c}, {0x102a0, 0x102d0},
- {0x10300, 0x1031e}, {0x10330, 0x10340}, {0x10342, 0x10349}, {0x10380, 0x1039d},
- {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x10400, 0x1049d}, {0x10800, 0x10805},
- {0x1080a, 0x10835}, {0x1083f, 0x10855}, {0x10900, 0x10915}, {0x10920, 0x10939},
+ {0x10300, 0x1031f}, {0x10330, 0x10340}, {0x10342, 0x10349}, {0x10350, 0x10375},
+ {0x10380, 0x1039d}, {0x103a0, 0x103c3}, {0x103c8, 0x103cf}, {0x10400, 0x1049d},
+ {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10600, 0x10736}, {0x10740, 0x10755},
+ {0x10760, 0x10767}, {0x10800, 0x10805}, {0x1080a, 0x10835}, {0x1083f, 0x10855},
+ {0x10860, 0x10876}, {0x10880, 0x1089e}, {0x10900, 0x10915}, {0x10920, 0x10939},
{0x10980, 0x109b7}, {0x10a10, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a33},
- {0x10a60, 0x10a7c}, {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72},
+ {0x10a60, 0x10a7c}, {0x10a80, 0x10a9c}, {0x10ac0, 0x10ac7}, {0x10ac9, 0x10ae4},
+ {0x10b00, 0x10b35}, {0x10b40, 0x10b55}, {0x10b60, 0x10b72}, {0x10b80, 0x10b91},
{0x10c00, 0x10c48}, {0x11003, 0x11037}, {0x11083, 0x110af}, {0x110d0, 0x110e8},
- {0x11103, 0x11126}, {0x11183, 0x111b2}, {0x111c1, 0x111c4}, {0x11680, 0x116aa},
- {0x12000, 0x1236e}, {0x13000, 0x1342e}, {0x16800, 0x16a38}, {0x16f00, 0x16f44},
- {0x16f93, 0x16f9f}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d4a9, 0x1d4ac},
+ {0x11103, 0x11126}, {0x11150, 0x11172}, {0x11183, 0x111b2}, {0x111c1, 0x111c4},
+ {0x11200, 0x11211}, {0x11213, 0x1122b}, {0x112b0, 0x112de}, {0x11305, 0x1130c},
+ {0x11313, 0x11328}, {0x1132a, 0x11330}, {0x11335, 0x11339}, {0x1135d, 0x11361},
+ {0x11480, 0x114af}, {0x11580, 0x115ae}, {0x11600, 0x1162f}, {0x11680, 0x116aa},
+ {0x118a0, 0x118df}, {0x11ac0, 0x11af8}, {0x12000, 0x12398}, {0x13000, 0x1342e},
+ {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16ad0, 0x16aed}, {0x16b00, 0x16b2f},
+ {0x16b40, 0x16b43}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16f00, 0x16f44},
+ {0x16f93, 0x16f9f}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c}, {0x1bc80, 0x1bc88},
+ {0x1bc90, 0x1bc99}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d4a9, 0x1d4ac},
{0x1d4ae, 0x1d4b9}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a},
{0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e},
{0x1d540, 0x1d544}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d6c0},
{0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6fa}, {0x1d6fc, 0x1d714}, {0x1d716, 0x1d734},
{0x1d736, 0x1d74e}, {0x1d750, 0x1d76e}, {0x1d770, 0x1d788}, {0x1d78a, 0x1d7a8},
- {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f},
- {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee4d, 0x1ee4f}, {0x1ee67, 0x1ee6a},
- {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee80, 0x1ee89},
- {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb},
- {0x20000, 0x2a6d6}, {0x2a700, 0x2b734}, {0x2b740, 0x2b81d}, {0x2f800, 0x2fa1d}
+ {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7cb}, {0x1e800, 0x1e8c4}, {0x1ee00, 0x1ee03},
+ {0x1ee05, 0x1ee1f}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37}, {0x1ee4d, 0x1ee4f},
+ {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c},
+ {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9},
+ {0x1eeab, 0x1eebb}, {0x20000, 0x2a6d6}, {0x2a700, 0x2b734}, {0x2b740, 0x2b81d},
+ {0x2f800, 0x2fa1d}
#endif
};
#define NUM_ALPHA_RANGE (sizeof(alphaRangeTable)/sizeof(crange))
static const chr alphaCharTable[] = {
- 0xaa, 0xb5, 0xba, 0x2ec, 0x2ee, 0x376, 0x377, 0x386, 0x38c,
- 0x559, 0x66e, 0x66f, 0x6d5, 0x6e5, 0x6e6, 0x6ee, 0x6ef, 0x6ff,
- 0x710, 0x7b1, 0x7f4, 0x7f5, 0x7fa, 0x81a, 0x824, 0x828, 0x8a0,
+ 0xaa, 0xb5, 0xba, 0x2ec, 0x2ee, 0x376, 0x377, 0x37f, 0x386,
+ 0x38c, 0x559, 0x66e, 0x66f, 0x6d5, 0x6e5, 0x6e6, 0x6ee, 0x6ef,
+ 0x6ff, 0x710, 0x7b1, 0x7f4, 0x7f5, 0x7fa, 0x81a, 0x824, 0x828,
0x93d, 0x950, 0x98f, 0x990, 0x9b2, 0x9bd, 0x9ce, 0x9dc, 0x9dd,
0x9f0, 0x9f1, 0xa0f, 0xa10, 0xa32, 0xa33, 0xa35, 0xa36, 0xa38,
0xa39, 0xa5e, 0xab2, 0xab3, 0xabd, 0xad0, 0xae0, 0xae1, 0xb0f,
@@ -241,14 +251,16 @@ static const chr alphaCharTable[] = {
0x1bae, 0x1baf, 0x1cf5, 0x1cf6, 0x1f59, 0x1f5b, 0x1f5d, 0x1fbe, 0x2071,
0x207f, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214e, 0x2183,
0x2184, 0x2cf2, 0x2cf3, 0x2d27, 0x2d2d, 0x2d6f, 0x2e2f, 0x3005, 0x3006,
- 0x303b, 0x303c, 0xa62a, 0xa62b, 0xa8fb, 0xa9cf, 0xaa7a, 0xaab1, 0xaab5,
- 0xaab6, 0xaac0, 0xaac2, 0xfb1d, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44
+ 0x303b, 0x303c, 0xa62a, 0xa62b, 0xa7b0, 0xa7b1, 0xa8fb, 0xa9cf, 0xaa7a,
+ 0xaab1, 0xaab5, 0xaab6, 0xaac0, 0xaac2, 0xab64, 0xab65, 0xfb1d, 0xfb3e,
+ 0xfb40, 0xfb41, 0xfb43, 0xfb44
#if TCL_UTF_MAX > 4
,0x1003c, 0x1003d, 0x10808, 0x10837, 0x10838, 0x1083c, 0x109be, 0x109bf, 0x10a00,
- 0x16f50, 0x1b000, 0x1b001, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4bb,
- 0x1d546, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee27, 0x1ee39, 0x1ee3b, 0x1ee42, 0x1ee47,
- 0x1ee49, 0x1ee4b, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee57, 0x1ee59, 0x1ee5b, 0x1ee5d,
- 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee7e
+ 0x11176, 0x111da, 0x1130f, 0x11310, 0x11332, 0x11333, 0x1133d, 0x114c4, 0x114c5,
+ 0x114c7, 0x11644, 0x118ff, 0x16f50, 0x1b000, 0x1b001, 0x1d49e, 0x1d49f, 0x1d4a2,
+ 0x1d4a5, 0x1d4a6, 0x1d4bb, 0x1d546, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee27, 0x1ee39,
+ 0x1ee3b, 0x1ee42, 0x1ee47, 0x1ee49, 0x1ee4b, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee57,
+ 0x1ee59, 0x1ee5b, 0x1ee5d, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee7e
#endif
};
@@ -259,11 +271,12 @@ static const chr alphaCharTable[] = {
*/
static const crange controlRangeTable[] = {
- {0x0, 0x1f}, {0x7f, 0x9f}, {0x600, 0x604}, {0x200b, 0x200f},
+ {0x0, 0x1f}, {0x7f, 0x9f}, {0x600, 0x605}, {0x200b, 0x200f},
{0x202a, 0x202e}, {0x2060, 0x2064}, {0x2066, 0x206f}, {0xe000, 0xf8ff},
{0xfff9, 0xfffb}
#if TCL_UTF_MAX > 4
- ,{0x1d173, 0x1d17a}, {0xe0020, 0xe007f}, {0xf0000, 0xffffd}, {0x100000, 0x10fffd}
+ ,{0x1bca0, 0x1bca3}, {0x1d173, 0x1d17a}, {0xe0020, 0xe007f}, {0xf0000, 0xffffd},
+ {0x100000, 0x10fffd}
#endif
};
@@ -286,15 +299,18 @@ static const crange digitRangeTable[] = {
{0x30, 0x39}, {0x660, 0x669}, {0x6f0, 0x6f9}, {0x7c0, 0x7c9},
{0x966, 0x96f}, {0x9e6, 0x9ef}, {0xa66, 0xa6f}, {0xae6, 0xaef},
{0xb66, 0xb6f}, {0xbe6, 0xbef}, {0xc66, 0xc6f}, {0xce6, 0xcef},
- {0xd66, 0xd6f}, {0xe50, 0xe59}, {0xed0, 0xed9}, {0xf20, 0xf29},
- {0x1040, 0x1049}, {0x1090, 0x1099}, {0x17e0, 0x17e9}, {0x1810, 0x1819},
- {0x1946, 0x194f}, {0x19d0, 0x19d9}, {0x1a80, 0x1a89}, {0x1a90, 0x1a99},
- {0x1b50, 0x1b59}, {0x1bb0, 0x1bb9}, {0x1c40, 0x1c49}, {0x1c50, 0x1c59},
- {0xa620, 0xa629}, {0xa8d0, 0xa8d9}, {0xa900, 0xa909}, {0xa9d0, 0xa9d9},
- {0xaa50, 0xaa59}, {0xabf0, 0xabf9}, {0xff10, 0xff19}
+ {0xd66, 0xd6f}, {0xde6, 0xdef}, {0xe50, 0xe59}, {0xed0, 0xed9},
+ {0xf20, 0xf29}, {0x1040, 0x1049}, {0x1090, 0x1099}, {0x17e0, 0x17e9},
+ {0x1810, 0x1819}, {0x1946, 0x194f}, {0x19d0, 0x19d9}, {0x1a80, 0x1a89},
+ {0x1a90, 0x1a99}, {0x1b50, 0x1b59}, {0x1bb0, 0x1bb9}, {0x1c40, 0x1c49},
+ {0x1c50, 0x1c59}, {0xa620, 0xa629}, {0xa8d0, 0xa8d9}, {0xa900, 0xa909},
+ {0xa9d0, 0xa9d9}, {0xa9f0, 0xa9f9}, {0xaa50, 0xaa59}, {0xabf0, 0xabf9},
+ {0xff10, 0xff19}
#if TCL_UTF_MAX > 4
,{0x104a0, 0x104a9}, {0x11066, 0x1106f}, {0x110f0, 0x110f9}, {0x11136, 0x1113f},
- {0x111d0, 0x111d9}, {0x116c0, 0x116c9}, {0x1d7ce, 0x1d7ff}
+ {0x111d0, 0x111d9}, {0x112f0, 0x112f9}, {0x114d0, 0x114d9}, {0x11650, 0x11659},
+ {0x116c0, 0x116c9}, {0x118e0, 0x118e9}, {0x16a60, 0x16a69}, {0x16b50, 0x16b59},
+ {0x1d7ce, 0x1d7ff}
#endif
};
@@ -317,15 +333,17 @@ static const crange punctRangeTable[] = {
{0x1b5a, 0x1b60}, {0x1bfc, 0x1bff}, {0x1c3b, 0x1c3f}, {0x1cc0, 0x1cc7},
{0x2010, 0x2027}, {0x2030, 0x2043}, {0x2045, 0x2051}, {0x2053, 0x205e},
{0x2308, 0x230b}, {0x2768, 0x2775}, {0x27e6, 0x27ef}, {0x2983, 0x2998},
- {0x29d8, 0x29db}, {0x2cf9, 0x2cfc}, {0x2e00, 0x2e2e}, {0x2e30, 0x2e3b},
+ {0x29d8, 0x29db}, {0x2cf9, 0x2cfc}, {0x2e00, 0x2e2e}, {0x2e30, 0x2e42},
{0x3001, 0x3003}, {0x3008, 0x3011}, {0x3014, 0x301f}, {0xa60d, 0xa60f},
{0xa6f2, 0xa6f7}, {0xa874, 0xa877}, {0xa8f8, 0xa8fa}, {0xa9c1, 0xa9cd},
{0xaa5c, 0xaa5f}, {0xfe10, 0xfe19}, {0xfe30, 0xfe52}, {0xfe54, 0xfe61},
{0xff01, 0xff03}, {0xff05, 0xff0a}, {0xff0c, 0xff0f}, {0xff3b, 0xff3d},
{0xff5f, 0xff65}
#if TCL_UTF_MAX > 4
- ,{0x10100, 0x10102}, {0x10a50, 0x10a58}, {0x10b39, 0x10b3f}, {0x11047, 0x1104d},
- {0x110be, 0x110c1}, {0x11140, 0x11143}, {0x111c5, 0x111c8}, {0x12470, 0x12473}
+ ,{0x10100, 0x10102}, {0x10a50, 0x10a58}, {0x10af0, 0x10af6}, {0x10b39, 0x10b3f},
+ {0x10b99, 0x10b9c}, {0x11047, 0x1104d}, {0x110be, 0x110c1}, {0x11140, 0x11143},
+ {0x111c5, 0x111c8}, {0x11238, 0x1123d}, {0x115c1, 0x115c9}, {0x11641, 0x11643},
+ {0x12470, 0x12474}, {0x16b37, 0x16b3b}
#endif
};
@@ -345,7 +363,8 @@ static const chr punctCharTable[] = {
0xaaf0, 0xaaf1, 0xabeb, 0xfd3e, 0xfd3f, 0xfe63, 0xfe68, 0xfe6a, 0xfe6b,
0xff1a, 0xff1b, 0xff1f, 0xff20, 0xff3f, 0xff5b, 0xff5d
#if TCL_UTF_MAX > 4
- ,0x1039f, 0x103d0, 0x10857, 0x1091f, 0x1093f, 0x10a7f, 0x110bb, 0x110bc
+ ,0x1039f, 0x103d0, 0x1056f, 0x10857, 0x1091f, 0x1093f, 0x10a7f, 0x110bb, 0x110bc,
+ 0x11174, 0x11175, 0x111cd, 0x114c6, 0x16a6e, 0x16a6f, 0x16af5, 0x16b44, 0x1bc9f
#endif
};
@@ -362,8 +381,8 @@ static const crange spaceRangeTable[] = {
#define NUM_SPACE_RANGE (sizeof(spaceRangeTable)/sizeof(crange))
static const chr spaceCharTable[] = {
- 0x20, 0xa0, 0x1680, 0x180e, 0x2028, 0x2029, 0x202f, 0x205f, 0x2060,
- 0x3000, 0xfeff
+ 0x20, 0xa0, 0x1680, 0x180e, 0x2028, 0x2029, 0x202f, 0x205f,
+ 0x3000
};
#define NUM_SPACE_CHAR (sizeof(spaceCharTable)/sizeof(chr))
@@ -383,15 +402,16 @@ static const crange lowerRangeTable[] = {
{0x1f90, 0x1f97}, {0x1fa0, 0x1fa7}, {0x1fb0, 0x1fb4}, {0x1fc2, 0x1fc4},
{0x1fd0, 0x1fd3}, {0x1fe0, 0x1fe7}, {0x1ff2, 0x1ff4}, {0x2146, 0x2149},
{0x2c30, 0x2c5e}, {0x2c76, 0x2c7b}, {0x2d00, 0x2d25}, {0xa72f, 0xa731},
- {0xa771, 0xa778}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xff41, 0xff5a}
+ {0xa771, 0xa778}, {0xa793, 0xa795}, {0xab30, 0xab5a}, {0xfb00, 0xfb06},
+ {0xfb13, 0xfb17}, {0xff41, 0xff5a}
#if TCL_UTF_MAX > 4
- ,{0x10428, 0x1044f}, {0x1d41a, 0x1d433}, {0x1d44e, 0x1d454}, {0x1d456, 0x1d467},
- {0x1d482, 0x1d49b}, {0x1d4b6, 0x1d4b9}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d4cf},
- {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537}, {0x1d552, 0x1d56b}, {0x1d586, 0x1d59f},
- {0x1d5ba, 0x1d5d3}, {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b}, {0x1d656, 0x1d66f},
- {0x1d68a, 0x1d6a5}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1}, {0x1d6fc, 0x1d714},
- {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d755}, {0x1d770, 0x1d788},
- {0x1d78a, 0x1d78f}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9}
+ ,{0x10428, 0x1044f}, {0x118c0, 0x118df}, {0x1d41a, 0x1d433}, {0x1d44e, 0x1d454},
+ {0x1d456, 0x1d467}, {0x1d482, 0x1d49b}, {0x1d4b6, 0x1d4b9}, {0x1d4bd, 0x1d4c3},
+ {0x1d4c5, 0x1d4cf}, {0x1d4ea, 0x1d503}, {0x1d51e, 0x1d537}, {0x1d552, 0x1d56b},
+ {0x1d586, 0x1d59f}, {0x1d5ba, 0x1d5d3}, {0x1d5ee, 0x1d607}, {0x1d622, 0x1d63b},
+ {0x1d656, 0x1d66f}, {0x1d68a, 0x1d6a5}, {0x1d6c2, 0x1d6da}, {0x1d6dc, 0x1d6e1},
+ {0x1d6fc, 0x1d714}, {0x1d716, 0x1d71b}, {0x1d736, 0x1d74e}, {0x1d750, 0x1d755},
+ {0x1d770, 0x1d788}, {0x1d78a, 0x1d78f}, {0x1d7aa, 0x1d7c2}, {0x1d7c4, 0x1d7c9}
#endif
};
@@ -427,39 +447,41 @@ static const chr lowerCharTable[] = {
0x4f1, 0x4f3, 0x4f5, 0x4f7, 0x4f9, 0x4fb, 0x4fd, 0x4ff, 0x501,
0x503, 0x505, 0x507, 0x509, 0x50b, 0x50d, 0x50f, 0x511, 0x513,
0x515, 0x517, 0x519, 0x51b, 0x51d, 0x51f, 0x521, 0x523, 0x525,
- 0x527, 0x1e01, 0x1e03, 0x1e05, 0x1e07, 0x1e09, 0x1e0b, 0x1e0d, 0x1e0f,
- 0x1e11, 0x1e13, 0x1e15, 0x1e17, 0x1e19, 0x1e1b, 0x1e1d, 0x1e1f, 0x1e21,
- 0x1e23, 0x1e25, 0x1e27, 0x1e29, 0x1e2b, 0x1e2d, 0x1e2f, 0x1e31, 0x1e33,
- 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 0x1e3d, 0x1e3f, 0x1e41, 0x1e43, 0x1e45,
- 0x1e47, 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f, 0x1e51, 0x1e53, 0x1e55, 0x1e57,
- 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61, 0x1e63, 0x1e65, 0x1e67, 0x1e69,
- 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73, 0x1e75, 0x1e77, 0x1e79, 0x1e7b,
- 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85, 0x1e87, 0x1e89, 0x1e8b, 0x1e8d,
- 0x1e8f, 0x1e91, 0x1e93, 0x1e9f, 0x1ea1, 0x1ea3, 0x1ea5, 0x1ea7, 0x1ea9,
- 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7, 0x1eb9, 0x1ebb,
- 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ec9, 0x1ecb, 0x1ecd,
- 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9, 0x1edb, 0x1edd, 0x1edf,
- 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9, 0x1eeb, 0x1eed, 0x1eef, 0x1ef1,
- 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1efb, 0x1efd, 0x1fb6, 0x1fb7, 0x1fbe,
- 0x1fc6, 0x1fc7, 0x1fd6, 0x1fd7, 0x1ff6, 0x1ff7, 0x210a, 0x210e, 0x210f,
- 0x2113, 0x212f, 0x2134, 0x2139, 0x213c, 0x213d, 0x214e, 0x2184, 0x2c61,
- 0x2c65, 0x2c66, 0x2c68, 0x2c6a, 0x2c6c, 0x2c71, 0x2c73, 0x2c74, 0x2c81,
- 0x2c83, 0x2c85, 0x2c87, 0x2c89, 0x2c8b, 0x2c8d, 0x2c8f, 0x2c91, 0x2c93,
- 0x2c95, 0x2c97, 0x2c99, 0x2c9b, 0x2c9d, 0x2c9f, 0x2ca1, 0x2ca3, 0x2ca5,
- 0x2ca7, 0x2ca9, 0x2cab, 0x2cad, 0x2caf, 0x2cb1, 0x2cb3, 0x2cb5, 0x2cb7,
- 0x2cb9, 0x2cbb, 0x2cbd, 0x2cbf, 0x2cc1, 0x2cc3, 0x2cc5, 0x2cc7, 0x2cc9,
- 0x2ccb, 0x2ccd, 0x2ccf, 0x2cd1, 0x2cd3, 0x2cd5, 0x2cd7, 0x2cd9, 0x2cdb,
- 0x2cdd, 0x2cdf, 0x2ce1, 0x2ce3, 0x2ce4, 0x2cec, 0x2cee, 0x2cf3, 0x2d27,
- 0x2d2d, 0xa641, 0xa643, 0xa645, 0xa647, 0xa649, 0xa64b, 0xa64d, 0xa64f,
- 0xa651, 0xa653, 0xa655, 0xa657, 0xa659, 0xa65b, 0xa65d, 0xa65f, 0xa661,
- 0xa663, 0xa665, 0xa667, 0xa669, 0xa66b, 0xa66d, 0xa681, 0xa683, 0xa685,
- 0xa687, 0xa689, 0xa68b, 0xa68d, 0xa68f, 0xa691, 0xa693, 0xa695, 0xa697,
- 0xa723, 0xa725, 0xa727, 0xa729, 0xa72b, 0xa72d, 0xa733, 0xa735, 0xa737,
- 0xa739, 0xa73b, 0xa73d, 0xa73f, 0xa741, 0xa743, 0xa745, 0xa747, 0xa749,
- 0xa74b, 0xa74d, 0xa74f, 0xa751, 0xa753, 0xa755, 0xa757, 0xa759, 0xa75b,
- 0xa75d, 0xa75f, 0xa761, 0xa763, 0xa765, 0xa767, 0xa769, 0xa76b, 0xa76d,
- 0xa76f, 0xa77a, 0xa77c, 0xa77f, 0xa781, 0xa783, 0xa785, 0xa787, 0xa78c,
- 0xa78e, 0xa791, 0xa793, 0xa7a1, 0xa7a3, 0xa7a5, 0xa7a7, 0xa7a9, 0xa7fa
+ 0x527, 0x529, 0x52b, 0x52d, 0x52f, 0x1e01, 0x1e03, 0x1e05, 0x1e07,
+ 0x1e09, 0x1e0b, 0x1e0d, 0x1e0f, 0x1e11, 0x1e13, 0x1e15, 0x1e17, 0x1e19,
+ 0x1e1b, 0x1e1d, 0x1e1f, 0x1e21, 0x1e23, 0x1e25, 0x1e27, 0x1e29, 0x1e2b,
+ 0x1e2d, 0x1e2f, 0x1e31, 0x1e33, 0x1e35, 0x1e37, 0x1e39, 0x1e3b, 0x1e3d,
+ 0x1e3f, 0x1e41, 0x1e43, 0x1e45, 0x1e47, 0x1e49, 0x1e4b, 0x1e4d, 0x1e4f,
+ 0x1e51, 0x1e53, 0x1e55, 0x1e57, 0x1e59, 0x1e5b, 0x1e5d, 0x1e5f, 0x1e61,
+ 0x1e63, 0x1e65, 0x1e67, 0x1e69, 0x1e6b, 0x1e6d, 0x1e6f, 0x1e71, 0x1e73,
+ 0x1e75, 0x1e77, 0x1e79, 0x1e7b, 0x1e7d, 0x1e7f, 0x1e81, 0x1e83, 0x1e85,
+ 0x1e87, 0x1e89, 0x1e8b, 0x1e8d, 0x1e8f, 0x1e91, 0x1e93, 0x1e9f, 0x1ea1,
+ 0x1ea3, 0x1ea5, 0x1ea7, 0x1ea9, 0x1eab, 0x1ead, 0x1eaf, 0x1eb1, 0x1eb3,
+ 0x1eb5, 0x1eb7, 0x1eb9, 0x1ebb, 0x1ebd, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5,
+ 0x1ec7, 0x1ec9, 0x1ecb, 0x1ecd, 0x1ecf, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7,
+ 0x1ed9, 0x1edb, 0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 0x1ee5, 0x1ee7, 0x1ee9,
+ 0x1eeb, 0x1eed, 0x1eef, 0x1ef1, 0x1ef3, 0x1ef5, 0x1ef7, 0x1ef9, 0x1efb,
+ 0x1efd, 0x1fb6, 0x1fb7, 0x1fbe, 0x1fc6, 0x1fc7, 0x1fd6, 0x1fd7, 0x1ff6,
+ 0x1ff7, 0x210a, 0x210e, 0x210f, 0x2113, 0x212f, 0x2134, 0x2139, 0x213c,
+ 0x213d, 0x214e, 0x2184, 0x2c61, 0x2c65, 0x2c66, 0x2c68, 0x2c6a, 0x2c6c,
+ 0x2c71, 0x2c73, 0x2c74, 0x2c81, 0x2c83, 0x2c85, 0x2c87, 0x2c89, 0x2c8b,
+ 0x2c8d, 0x2c8f, 0x2c91, 0x2c93, 0x2c95, 0x2c97, 0x2c99, 0x2c9b, 0x2c9d,
+ 0x2c9f, 0x2ca1, 0x2ca3, 0x2ca5, 0x2ca7, 0x2ca9, 0x2cab, 0x2cad, 0x2caf,
+ 0x2cb1, 0x2cb3, 0x2cb5, 0x2cb7, 0x2cb9, 0x2cbb, 0x2cbd, 0x2cbf, 0x2cc1,
+ 0x2cc3, 0x2cc5, 0x2cc7, 0x2cc9, 0x2ccb, 0x2ccd, 0x2ccf, 0x2cd1, 0x2cd3,
+ 0x2cd5, 0x2cd7, 0x2cd9, 0x2cdb, 0x2cdd, 0x2cdf, 0x2ce1, 0x2ce3, 0x2ce4,
+ 0x2cec, 0x2cee, 0x2cf3, 0x2d27, 0x2d2d, 0xa641, 0xa643, 0xa645, 0xa647,
+ 0xa649, 0xa64b, 0xa64d, 0xa64f, 0xa651, 0xa653, 0xa655, 0xa657, 0xa659,
+ 0xa65b, 0xa65d, 0xa65f, 0xa661, 0xa663, 0xa665, 0xa667, 0xa669, 0xa66b,
+ 0xa66d, 0xa681, 0xa683, 0xa685, 0xa687, 0xa689, 0xa68b, 0xa68d, 0xa68f,
+ 0xa691, 0xa693, 0xa695, 0xa697, 0xa699, 0xa69b, 0xa723, 0xa725, 0xa727,
+ 0xa729, 0xa72b, 0xa72d, 0xa733, 0xa735, 0xa737, 0xa739, 0xa73b, 0xa73d,
+ 0xa73f, 0xa741, 0xa743, 0xa745, 0xa747, 0xa749, 0xa74b, 0xa74d, 0xa74f,
+ 0xa751, 0xa753, 0xa755, 0xa757, 0xa759, 0xa75b, 0xa75d, 0xa75f, 0xa761,
+ 0xa763, 0xa765, 0xa767, 0xa769, 0xa76b, 0xa76d, 0xa76f, 0xa77a, 0xa77c,
+ 0xa77f, 0xa781, 0xa783, 0xa785, 0xa787, 0xa78c, 0xa78e, 0xa791, 0xa797,
+ 0xa799, 0xa79b, 0xa79d, 0xa79f, 0xa7a1, 0xa7a3, 0xa7a5, 0xa7a7, 0xa7a9,
+ 0xa7fa, 0xab64, 0xab65
#if TCL_UTF_MAX > 4
,0x1d4bb, 0x1d7cb
#endif
@@ -481,14 +503,15 @@ static const crange upperRangeTable[] = {
{0x1fd8, 0x1fdb}, {0x1fe8, 0x1fec}, {0x1ff8, 0x1ffb}, {0x210b, 0x210d},
{0x2110, 0x2112}, {0x2119, 0x211d}, {0x212a, 0x212d}, {0x2130, 0x2133},
{0x2c00, 0x2c2e}, {0x2c62, 0x2c64}, {0x2c6d, 0x2c70}, {0x2c7e, 0x2c80},
- {0xff21, 0xff3a}
+ {0xa7aa, 0xa7ad}, {0xff21, 0xff3a}
#if TCL_UTF_MAX > 4
- ,{0x10400, 0x10427}, {0x1d400, 0x1d419}, {0x1d434, 0x1d44d}, {0x1d468, 0x1d481},
- {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9}, {0x1d507, 0x1d50a},
- {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544},
- {0x1d54a, 0x1d550}, {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9}, {0x1d5d4, 0x1d5ed},
- {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689}, {0x1d6a8, 0x1d6c0},
- {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734}, {0x1d756, 0x1d76e}, {0x1d790, 0x1d7a8}
+ ,{0x10400, 0x10427}, {0x118a0, 0x118bf}, {0x1d400, 0x1d419}, {0x1d434, 0x1d44d},
+ {0x1d468, 0x1d481}, {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b5}, {0x1d4d0, 0x1d4e9},
+ {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d53b, 0x1d53e},
+ {0x1d540, 0x1d544}, {0x1d54a, 0x1d550}, {0x1d56c, 0x1d585}, {0x1d5a0, 0x1d5b9},
+ {0x1d5d4, 0x1d5ed}, {0x1d608, 0x1d621}, {0x1d63c, 0x1d655}, {0x1d670, 0x1d689},
+ {0x1d6a8, 0x1d6c0}, {0x1d6e2, 0x1d6fa}, {0x1d71c, 0x1d734}, {0x1d756, 0x1d76e},
+ {0x1d790, 0x1d7a8}
#endif
};
@@ -511,52 +534,54 @@ static const chr upperCharTable[] = {
0x20c, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21c,
0x21e, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22a, 0x22c, 0x22e,
0x230, 0x232, 0x23a, 0x23b, 0x23d, 0x23e, 0x241, 0x248, 0x24a,
- 0x24c, 0x24e, 0x370, 0x372, 0x376, 0x386, 0x38c, 0x38e, 0x38f,
- 0x3cf, 0x3d8, 0x3da, 0x3dc, 0x3de, 0x3e0, 0x3e2, 0x3e4, 0x3e6,
- 0x3e8, 0x3ea, 0x3ec, 0x3ee, 0x3f4, 0x3f7, 0x3f9, 0x3fa, 0x460,
- 0x462, 0x464, 0x466, 0x468, 0x46a, 0x46c, 0x46e, 0x470, 0x472,
- 0x474, 0x476, 0x478, 0x47a, 0x47c, 0x47e, 0x480, 0x48a, 0x48c,
- 0x48e, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49a, 0x49c, 0x49e,
- 0x4a0, 0x4a2, 0x4a4, 0x4a6, 0x4a8, 0x4aa, 0x4ac, 0x4ae, 0x4b0,
- 0x4b2, 0x4b4, 0x4b6, 0x4b8, 0x4ba, 0x4bc, 0x4be, 0x4c0, 0x4c1,
- 0x4c3, 0x4c5, 0x4c7, 0x4c9, 0x4cb, 0x4cd, 0x4d0, 0x4d2, 0x4d4,
- 0x4d6, 0x4d8, 0x4da, 0x4dc, 0x4de, 0x4e0, 0x4e2, 0x4e4, 0x4e6,
- 0x4e8, 0x4ea, 0x4ec, 0x4ee, 0x4f0, 0x4f2, 0x4f4, 0x4f6, 0x4f8,
- 0x4fa, 0x4fc, 0x4fe, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50a,
- 0x50c, 0x50e, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51a, 0x51c,
- 0x51e, 0x520, 0x522, 0x524, 0x526, 0x10c7, 0x10cd, 0x1e00, 0x1e02,
- 0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14,
- 0x1e16, 0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26,
- 0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36, 0x1e38,
- 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42, 0x1e44, 0x1e46, 0x1e48, 0x1e4a,
- 0x1e4c, 0x1e4e, 0x1e50, 0x1e52, 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c,
- 0x1e5e, 0x1e60, 0x1e62, 0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e,
- 0x1e70, 0x1e72, 0x1e74, 0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80,
- 0x1e82, 0x1e84, 0x1e86, 0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92,
- 0x1e94, 0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac,
- 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe,
- 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8, 0x1eca, 0x1ecc, 0x1ece, 0x1ed0,
- 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2,
- 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea, 0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4,
- 0x1ef6, 0x1ef8, 0x1efa, 0x1efc, 0x1efe, 0x1f59, 0x1f5b, 0x1f5d, 0x1f5f,
- 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x213e, 0x213f, 0x2145,
- 0x2183, 0x2c60, 0x2c67, 0x2c69, 0x2c6b, 0x2c72, 0x2c75, 0x2c82, 0x2c84,
- 0x2c86, 0x2c88, 0x2c8a, 0x2c8c, 0x2c8e, 0x2c90, 0x2c92, 0x2c94, 0x2c96,
- 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e, 0x2ca0, 0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8,
- 0x2caa, 0x2cac, 0x2cae, 0x2cb0, 0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba,
- 0x2cbc, 0x2cbe, 0x2cc0, 0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc,
- 0x2cce, 0x2cd0, 0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde,
- 0x2ce0, 0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642, 0xa644, 0xa646,
- 0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652, 0xa654, 0xa656, 0xa658,
- 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662, 0xa664, 0xa666, 0xa668, 0xa66a,
- 0xa66c, 0xa680, 0xa682, 0xa684, 0xa686, 0xa688, 0xa68a, 0xa68c, 0xa68e,
- 0xa690, 0xa692, 0xa694, 0xa696, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a,
- 0xa72c, 0xa72e, 0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c, 0xa73e,
- 0xa740, 0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c, 0xa74e, 0xa750,
- 0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c, 0xa75e, 0xa760, 0xa762,
- 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c, 0xa76e, 0xa779, 0xa77b, 0xa77d,
- 0xa77e, 0xa780, 0xa782, 0xa784, 0xa786, 0xa78b, 0xa78d, 0xa790, 0xa792,
- 0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa
+ 0x24c, 0x24e, 0x370, 0x372, 0x376, 0x37f, 0x386, 0x38c, 0x38e,
+ 0x38f, 0x3cf, 0x3d8, 0x3da, 0x3dc, 0x3de, 0x3e0, 0x3e2, 0x3e4,
+ 0x3e6, 0x3e8, 0x3ea, 0x3ec, 0x3ee, 0x3f4, 0x3f7, 0x3f9, 0x3fa,
+ 0x460, 0x462, 0x464, 0x466, 0x468, 0x46a, 0x46c, 0x46e, 0x470,
+ 0x472, 0x474, 0x476, 0x478, 0x47a, 0x47c, 0x47e, 0x480, 0x48a,
+ 0x48c, 0x48e, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49a, 0x49c,
+ 0x49e, 0x4a0, 0x4a2, 0x4a4, 0x4a6, 0x4a8, 0x4aa, 0x4ac, 0x4ae,
+ 0x4b0, 0x4b2, 0x4b4, 0x4b6, 0x4b8, 0x4ba, 0x4bc, 0x4be, 0x4c0,
+ 0x4c1, 0x4c3, 0x4c5, 0x4c7, 0x4c9, 0x4cb, 0x4cd, 0x4d0, 0x4d2,
+ 0x4d4, 0x4d6, 0x4d8, 0x4da, 0x4dc, 0x4de, 0x4e0, 0x4e2, 0x4e4,
+ 0x4e6, 0x4e8, 0x4ea, 0x4ec, 0x4ee, 0x4f0, 0x4f2, 0x4f4, 0x4f6,
+ 0x4f8, 0x4fa, 0x4fc, 0x4fe, 0x500, 0x502, 0x504, 0x506, 0x508,
+ 0x50a, 0x50c, 0x50e, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51a,
+ 0x51c, 0x51e, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52a, 0x52c,
+ 0x52e, 0x10c7, 0x10cd, 0x1e00, 0x1e02, 0x1e04, 0x1e06, 0x1e08, 0x1e0a,
+ 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16, 0x1e18, 0x1e1a, 0x1e1c,
+ 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c, 0x1e2e,
+ 0x1e30, 0x1e32, 0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40,
+ 0x1e42, 0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52,
+ 0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62, 0x1e64,
+ 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72, 0x1e74, 0x1e76,
+ 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84, 0x1e86, 0x1e88,
+ 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1e9e, 0x1ea0, 0x1ea2,
+ 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4,
+ 0x1eb6, 0x1eb8, 0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6,
+ 0x1ec8, 0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
+ 0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea,
+ 0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1efa, 0x1efc,
+ 0x1efe, 0x1f59, 0x1f5b, 0x1f5d, 0x1f5f, 0x2102, 0x2107, 0x2115, 0x2124,
+ 0x2126, 0x2128, 0x213e, 0x213f, 0x2145, 0x2183, 0x2c60, 0x2c67, 0x2c69,
+ 0x2c6b, 0x2c72, 0x2c75, 0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c,
+ 0x2c8e, 0x2c90, 0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e,
+ 0x2ca0, 0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac, 0x2cae, 0x2cb0,
+ 0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc, 0x2cbe, 0x2cc0, 0x2cc2,
+ 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc, 0x2cce, 0x2cd0, 0x2cd2, 0x2cd4,
+ 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde, 0x2ce0, 0x2ce2, 0x2ceb, 0x2ced,
+ 0x2cf2, 0xa640, 0xa642, 0xa644, 0xa646, 0xa648, 0xa64a, 0xa64c, 0xa64e,
+ 0xa650, 0xa652, 0xa654, 0xa656, 0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660,
+ 0xa662, 0xa664, 0xa666, 0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684,
+ 0xa686, 0xa688, 0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694, 0xa696,
+ 0xa698, 0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a, 0xa72c, 0xa72e,
+ 0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c, 0xa73e, 0xa740, 0xa742,
+ 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c, 0xa74e, 0xa750, 0xa752, 0xa754,
+ 0xa756, 0xa758, 0xa75a, 0xa75c, 0xa75e, 0xa760, 0xa762, 0xa764, 0xa766,
+ 0xa768, 0xa76a, 0xa76c, 0xa76e, 0xa779, 0xa77b, 0xa77d, 0xa77e, 0xa780,
+ 0xa782, 0xa784, 0xa786, 0xa78b, 0xa78d, 0xa790, 0xa792, 0xa796, 0xa798,
+ 0xa79a, 0xa79c, 0xa79e, 0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7b0,
+ 0xa7b1
#if TCL_UTF_MAX > 4
,0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d504, 0x1d505, 0x1d538,
0x1d539, 0x1d546, 0x1d7ca
@@ -570,34 +595,34 @@ static const chr upperCharTable[] = {
*/
static const crange graphRangeTable[] = {
- {0x21, 0x7e}, {0xa1, 0xac}, {0xae, 0x377}, {0x37a, 0x37e},
- {0x384, 0x38a}, {0x38e, 0x3a1}, {0x3a3, 0x527}, {0x531, 0x556},
- {0x559, 0x55f}, {0x561, 0x587}, {0x591, 0x5c7}, {0x5d0, 0x5ea},
- {0x5f0, 0x5f4}, {0x606, 0x61b}, {0x61e, 0x6dc}, {0x6de, 0x70d},
- {0x710, 0x74a}, {0x74d, 0x7b1}, {0x7c0, 0x7fa}, {0x800, 0x82d},
- {0x830, 0x83e}, {0x840, 0x85b}, {0x8a2, 0x8ac}, {0x8e4, 0x8fe},
- {0x900, 0x977}, {0x979, 0x97f}, {0x981, 0x983}, {0x985, 0x98c},
- {0x993, 0x9a8}, {0x9aa, 0x9b0}, {0x9b6, 0x9b9}, {0x9bc, 0x9c4},
- {0x9cb, 0x9ce}, {0x9df, 0x9e3}, {0x9e6, 0x9fb}, {0xa01, 0xa03},
- {0xa05, 0xa0a}, {0xa13, 0xa28}, {0xa2a, 0xa30}, {0xa3e, 0xa42},
- {0xa4b, 0xa4d}, {0xa59, 0xa5c}, {0xa66, 0xa75}, {0xa81, 0xa83},
- {0xa85, 0xa8d}, {0xa8f, 0xa91}, {0xa93, 0xaa8}, {0xaaa, 0xab0},
- {0xab5, 0xab9}, {0xabc, 0xac5}, {0xac7, 0xac9}, {0xacb, 0xacd},
- {0xae0, 0xae3}, {0xae6, 0xaf1}, {0xb01, 0xb03}, {0xb05, 0xb0c},
- {0xb13, 0xb28}, {0xb2a, 0xb30}, {0xb35, 0xb39}, {0xb3c, 0xb44},
- {0xb4b, 0xb4d}, {0xb5f, 0xb63}, {0xb66, 0xb77}, {0xb85, 0xb8a},
- {0xb8e, 0xb90}, {0xb92, 0xb95}, {0xba8, 0xbaa}, {0xbae, 0xbb9},
- {0xbbe, 0xbc2}, {0xbc6, 0xbc8}, {0xbca, 0xbcd}, {0xbe6, 0xbfa},
- {0xc01, 0xc03}, {0xc05, 0xc0c}, {0xc0e, 0xc10}, {0xc12, 0xc28},
- {0xc2a, 0xc33}, {0xc35, 0xc39}, {0xc3d, 0xc44}, {0xc46, 0xc48},
- {0xc4a, 0xc4d}, {0xc60, 0xc63}, {0xc66, 0xc6f}, {0xc78, 0xc7f},
- {0xc85, 0xc8c}, {0xc8e, 0xc90}, {0xc92, 0xca8}, {0xcaa, 0xcb3},
- {0xcb5, 0xcb9}, {0xcbc, 0xcc4}, {0xcc6, 0xcc8}, {0xcca, 0xccd},
- {0xce0, 0xce3}, {0xce6, 0xcef}, {0xd05, 0xd0c}, {0xd0e, 0xd10},
- {0xd12, 0xd3a}, {0xd3d, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e},
- {0xd60, 0xd63}, {0xd66, 0xd75}, {0xd79, 0xd7f}, {0xd85, 0xd96},
- {0xd9a, 0xdb1}, {0xdb3, 0xdbb}, {0xdc0, 0xdc6}, {0xdcf, 0xdd4},
- {0xdd8, 0xddf}, {0xdf2, 0xdf4}, {0xe01, 0xe3a}, {0xe3f, 0xe5b},
+ {0x21, 0x7e}, {0xa1, 0xac}, {0xae, 0x377}, {0x37a, 0x37f},
+ {0x384, 0x38a}, {0x38e, 0x3a1}, {0x3a3, 0x52f}, {0x531, 0x556},
+ {0x559, 0x55f}, {0x561, 0x587}, {0x58d, 0x58f}, {0x591, 0x5c7},
+ {0x5d0, 0x5ea}, {0x5f0, 0x5f4}, {0x606, 0x61b}, {0x61e, 0x6dc},
+ {0x6de, 0x70d}, {0x710, 0x74a}, {0x74d, 0x7b1}, {0x7c0, 0x7fa},
+ {0x800, 0x82d}, {0x830, 0x83e}, {0x840, 0x85b}, {0x8a0, 0x8b2},
+ {0x8e4, 0x983}, {0x985, 0x98c}, {0x993, 0x9a8}, {0x9aa, 0x9b0},
+ {0x9b6, 0x9b9}, {0x9bc, 0x9c4}, {0x9cb, 0x9ce}, {0x9df, 0x9e3},
+ {0x9e6, 0x9fb}, {0xa01, 0xa03}, {0xa05, 0xa0a}, {0xa13, 0xa28},
+ {0xa2a, 0xa30}, {0xa3e, 0xa42}, {0xa4b, 0xa4d}, {0xa59, 0xa5c},
+ {0xa66, 0xa75}, {0xa81, 0xa83}, {0xa85, 0xa8d}, {0xa8f, 0xa91},
+ {0xa93, 0xaa8}, {0xaaa, 0xab0}, {0xab5, 0xab9}, {0xabc, 0xac5},
+ {0xac7, 0xac9}, {0xacb, 0xacd}, {0xae0, 0xae3}, {0xae6, 0xaf1},
+ {0xb01, 0xb03}, {0xb05, 0xb0c}, {0xb13, 0xb28}, {0xb2a, 0xb30},
+ {0xb35, 0xb39}, {0xb3c, 0xb44}, {0xb4b, 0xb4d}, {0xb5f, 0xb63},
+ {0xb66, 0xb77}, {0xb85, 0xb8a}, {0xb8e, 0xb90}, {0xb92, 0xb95},
+ {0xba8, 0xbaa}, {0xbae, 0xbb9}, {0xbbe, 0xbc2}, {0xbc6, 0xbc8},
+ {0xbca, 0xbcd}, {0xbe6, 0xbfa}, {0xc00, 0xc03}, {0xc05, 0xc0c},
+ {0xc0e, 0xc10}, {0xc12, 0xc28}, {0xc2a, 0xc39}, {0xc3d, 0xc44},
+ {0xc46, 0xc48}, {0xc4a, 0xc4d}, {0xc60, 0xc63}, {0xc66, 0xc6f},
+ {0xc78, 0xc7f}, {0xc81, 0xc83}, {0xc85, 0xc8c}, {0xc8e, 0xc90},
+ {0xc92, 0xca8}, {0xcaa, 0xcb3}, {0xcb5, 0xcb9}, {0xcbc, 0xcc4},
+ {0xcc6, 0xcc8}, {0xcca, 0xccd}, {0xce0, 0xce3}, {0xce6, 0xcef},
+ {0xd01, 0xd03}, {0xd05, 0xd0c}, {0xd0e, 0xd10}, {0xd12, 0xd3a},
+ {0xd3d, 0xd44}, {0xd46, 0xd48}, {0xd4a, 0xd4e}, {0xd60, 0xd63},
+ {0xd66, 0xd75}, {0xd79, 0xd7f}, {0xd85, 0xd96}, {0xd9a, 0xdb1},
+ {0xdb3, 0xdbb}, {0xdc0, 0xdc6}, {0xdcf, 0xdd4}, {0xdd8, 0xddf},
+ {0xde6, 0xdef}, {0xdf2, 0xdf4}, {0xe01, 0xe3a}, {0xe3f, 0xe5b},
{0xe94, 0xe97}, {0xe99, 0xe9f}, {0xea1, 0xea3}, {0xead, 0xeb9},
{0xebb, 0xebd}, {0xec0, 0xec4}, {0xec8, 0xecd}, {0xed0, 0xed9},
{0xedc, 0xedf}, {0xf00, 0xf47}, {0xf49, 0xf6c}, {0xf71, 0xf97},
@@ -606,105 +631,123 @@ static const crange graphRangeTable[] = {
{0x1260, 0x1288}, {0x128a, 0x128d}, {0x1290, 0x12b0}, {0x12b2, 0x12b5},
{0x12b8, 0x12be}, {0x12c2, 0x12c5}, {0x12c8, 0x12d6}, {0x12d8, 0x1310},
{0x1312, 0x1315}, {0x1318, 0x135a}, {0x135d, 0x137c}, {0x1380, 0x1399},
- {0x13a0, 0x13f4}, {0x1400, 0x167f}, {0x1681, 0x169c}, {0x16a0, 0x16f0},
+ {0x13a0, 0x13f4}, {0x1400, 0x167f}, {0x1681, 0x169c}, {0x16a0, 0x16f8},
{0x1700, 0x170c}, {0x170e, 0x1714}, {0x1720, 0x1736}, {0x1740, 0x1753},
{0x1760, 0x176c}, {0x176e, 0x1770}, {0x1780, 0x17dd}, {0x17e0, 0x17e9},
{0x17f0, 0x17f9}, {0x1800, 0x180d}, {0x1810, 0x1819}, {0x1820, 0x1877},
- {0x1880, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191c}, {0x1920, 0x192b},
+ {0x1880, 0x18aa}, {0x18b0, 0x18f5}, {0x1900, 0x191e}, {0x1920, 0x192b},
{0x1930, 0x193b}, {0x1944, 0x196d}, {0x1970, 0x1974}, {0x1980, 0x19ab},
{0x19b0, 0x19c9}, {0x19d0, 0x19da}, {0x19de, 0x1a1b}, {0x1a1e, 0x1a5e},
{0x1a60, 0x1a7c}, {0x1a7f, 0x1a89}, {0x1a90, 0x1a99}, {0x1aa0, 0x1aad},
- {0x1b00, 0x1b4b}, {0x1b50, 0x1b7c}, {0x1b80, 0x1bf3}, {0x1bfc, 0x1c37},
- {0x1c3b, 0x1c49}, {0x1c4d, 0x1c7f}, {0x1cc0, 0x1cc7}, {0x1cd0, 0x1cf6},
- {0x1d00, 0x1de6}, {0x1dfc, 0x1f15}, {0x1f18, 0x1f1d}, {0x1f20, 0x1f45},
- {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f5f, 0x1f7d}, {0x1f80, 0x1fb4},
- {0x1fb6, 0x1fc4}, {0x1fc6, 0x1fd3}, {0x1fd6, 0x1fdb}, {0x1fdd, 0x1fef},
- {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffe}, {0x2010, 0x2027}, {0x2030, 0x205e},
- {0x2074, 0x208e}, {0x2090, 0x209c}, {0x20a0, 0x20ba}, {0x20d0, 0x20f0},
- {0x2100, 0x2189}, {0x2190, 0x23f3}, {0x2400, 0x2426}, {0x2440, 0x244a},
- {0x2460, 0x26ff}, {0x2701, 0x2b4c}, {0x2b50, 0x2b59}, {0x2c00, 0x2c2e},
- {0x2c30, 0x2c5e}, {0x2c60, 0x2cf3}, {0x2cf9, 0x2d25}, {0x2d30, 0x2d67},
- {0x2d7f, 0x2d96}, {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6},
- {0x2db8, 0x2dbe}, {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6},
- {0x2dd8, 0x2dde}, {0x2de0, 0x2e3b}, {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3},
- {0x2f00, 0x2fd5}, {0x2ff0, 0x2ffb}, {0x3001, 0x303f}, {0x3041, 0x3096},
- {0x3099, 0x30ff}, {0x3105, 0x312d}, {0x3131, 0x318e}, {0x3190, 0x31ba},
- {0x31c0, 0x31e3}, {0x31f0, 0x321e}, {0x3220, 0x32fe}, {0x3300, 0x4db5},
- {0x4dc0, 0x9fcc}, {0xa000, 0xa48c}, {0xa490, 0xa4c6}, {0xa4d0, 0xa62b},
- {0xa640, 0xa697}, {0xa69f, 0xa6f7}, {0xa700, 0xa78e}, {0xa790, 0xa793},
- {0xa7a0, 0xa7aa}, {0xa7f8, 0xa82b}, {0xa830, 0xa839}, {0xa840, 0xa877},
- {0xa880, 0xa8c4}, {0xa8ce, 0xa8d9}, {0xa8e0, 0xa8fb}, {0xa900, 0xa953},
- {0xa95f, 0xa97c}, {0xa980, 0xa9cd}, {0xa9cf, 0xa9d9}, {0xaa00, 0xaa36},
- {0xaa40, 0xaa4d}, {0xaa50, 0xaa59}, {0xaa5c, 0xaa7b}, {0xaa80, 0xaac2},
- {0xaadb, 0xaaf6}, {0xab01, 0xab06}, {0xab09, 0xab0e}, {0xab11, 0xab16},
- {0xab20, 0xab26}, {0xab28, 0xab2e}, {0xabc0, 0xabed}, {0xabf0, 0xabf9},
- {0xac00, 0xd7a3}, {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xf900, 0xfa6d},
- {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17}, {0xfb1d, 0xfb36},
- {0xfb38, 0xfb3c}, {0xfb46, 0xfbc1}, {0xfbd3, 0xfd3f}, {0xfd50, 0xfd8f},
- {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfd}, {0xfe00, 0xfe19}, {0xfe20, 0xfe26},
- {0xfe30, 0xfe52}, {0xfe54, 0xfe66}, {0xfe68, 0xfe6b}, {0xfe70, 0xfe74},
- {0xfe76, 0xfefc}, {0xff01, 0xffbe}, {0xffc2, 0xffc7}, {0xffca, 0xffcf},
- {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0xffe0, 0xffe6}, {0xffe8, 0xffee}
+ {0x1ab0, 0x1abe}, {0x1b00, 0x1b4b}, {0x1b50, 0x1b7c}, {0x1b80, 0x1bf3},
+ {0x1bfc, 0x1c37}, {0x1c3b, 0x1c49}, {0x1c4d, 0x1c7f}, {0x1cc0, 0x1cc7},
+ {0x1cd0, 0x1cf6}, {0x1d00, 0x1df5}, {0x1dfc, 0x1f15}, {0x1f18, 0x1f1d},
+ {0x1f20, 0x1f45}, {0x1f48, 0x1f4d}, {0x1f50, 0x1f57}, {0x1f5f, 0x1f7d},
+ {0x1f80, 0x1fb4}, {0x1fb6, 0x1fc4}, {0x1fc6, 0x1fd3}, {0x1fd6, 0x1fdb},
+ {0x1fdd, 0x1fef}, {0x1ff2, 0x1ff4}, {0x1ff6, 0x1ffe}, {0x2010, 0x2027},
+ {0x2030, 0x205e}, {0x2074, 0x208e}, {0x2090, 0x209c}, {0x20a0, 0x20bd},
+ {0x20d0, 0x20f0}, {0x2100, 0x2189}, {0x2190, 0x23fa}, {0x2400, 0x2426},
+ {0x2440, 0x244a}, {0x2460, 0x2b73}, {0x2b76, 0x2b95}, {0x2b98, 0x2bb9},
+ {0x2bbd, 0x2bc8}, {0x2bca, 0x2bd1}, {0x2c00, 0x2c2e}, {0x2c30, 0x2c5e},
+ {0x2c60, 0x2cf3}, {0x2cf9, 0x2d25}, {0x2d30, 0x2d67}, {0x2d7f, 0x2d96},
+ {0x2da0, 0x2da6}, {0x2da8, 0x2dae}, {0x2db0, 0x2db6}, {0x2db8, 0x2dbe},
+ {0x2dc0, 0x2dc6}, {0x2dc8, 0x2dce}, {0x2dd0, 0x2dd6}, {0x2dd8, 0x2dde},
+ {0x2de0, 0x2e42}, {0x2e80, 0x2e99}, {0x2e9b, 0x2ef3}, {0x2f00, 0x2fd5},
+ {0x2ff0, 0x2ffb}, {0x3001, 0x303f}, {0x3041, 0x3096}, {0x3099, 0x30ff},
+ {0x3105, 0x312d}, {0x3131, 0x318e}, {0x3190, 0x31ba}, {0x31c0, 0x31e3},
+ {0x31f0, 0x321e}, {0x3220, 0x32fe}, {0x3300, 0x4db5}, {0x4dc0, 0x9fcc},
+ {0xa000, 0xa48c}, {0xa490, 0xa4c6}, {0xa4d0, 0xa62b}, {0xa640, 0xa69d},
+ {0xa69f, 0xa6f7}, {0xa700, 0xa78e}, {0xa790, 0xa7ad}, {0xa7f7, 0xa82b},
+ {0xa830, 0xa839}, {0xa840, 0xa877}, {0xa880, 0xa8c4}, {0xa8ce, 0xa8d9},
+ {0xa8e0, 0xa8fb}, {0xa900, 0xa953}, {0xa95f, 0xa97c}, {0xa980, 0xa9cd},
+ {0xa9cf, 0xa9d9}, {0xa9de, 0xa9fe}, {0xaa00, 0xaa36}, {0xaa40, 0xaa4d},
+ {0xaa50, 0xaa59}, {0xaa5c, 0xaac2}, {0xaadb, 0xaaf6}, {0xab01, 0xab06},
+ {0xab09, 0xab0e}, {0xab11, 0xab16}, {0xab20, 0xab26}, {0xab28, 0xab2e},
+ {0xab30, 0xab5f}, {0xabc0, 0xabed}, {0xabf0, 0xabf9}, {0xac00, 0xd7a3},
+ {0xd7b0, 0xd7c6}, {0xd7cb, 0xd7fb}, {0xdc00, 0xdc3e}, {0xdc40, 0xdc7e},
+ {0xdc80, 0xdcbe}, {0xdcc0, 0xdcfe}, {0xdd80, 0xddbe}, {0xddc0, 0xddfe},
+ {0xde80, 0xdebe}, {0xdec0, 0xdefe}, {0xdf00, 0xdf3e}, {0xdf40, 0xdf7e},
+ {0xf900, 0xfa6d}, {0xfa70, 0xfad9}, {0xfb00, 0xfb06}, {0xfb13, 0xfb17},
+ {0xfb1d, 0xfb36}, {0xfb38, 0xfb3c}, {0xfb46, 0xfbc1}, {0xfbd3, 0xfd3f},
+ {0xfd50, 0xfd8f}, {0xfd92, 0xfdc7}, {0xfdf0, 0xfdfd}, {0xfe00, 0xfe19},
+ {0xfe20, 0xfe2d}, {0xfe30, 0xfe52}, {0xfe54, 0xfe66}, {0xfe68, 0xfe6b},
+ {0xfe70, 0xfe74}, {0xfe76, 0xfefc}, {0xff01, 0xffbe}, {0xffc2, 0xffc7},
+ {0xffca, 0xffcf}, {0xffd2, 0xffd7}, {0xffda, 0xffdc}, {0xffe0, 0xffe6},
+ {0xffe8, 0xffee}
#if TCL_UTF_MAX > 4
,{0x10000, 0x1000b}, {0x1000d, 0x10026}, {0x10028, 0x1003a}, {0x1003f, 0x1004d},
{0x10050, 0x1005d}, {0x10080, 0x100fa}, {0x10100, 0x10102}, {0x10107, 0x10133},
- {0x10137, 0x1018a}, {0x10190, 0x1019b}, {0x101d0, 0x101fd}, {0x10280, 0x1029c},
- {0x102a0, 0x102d0}, {0x10300, 0x1031e}, {0x10320, 0x10323}, {0x10330, 0x1034a},
- {0x10380, 0x1039d}, {0x1039f, 0x103c3}, {0x103c8, 0x103d5}, {0x10400, 0x1049d},
- {0x104a0, 0x104a9}, {0x10800, 0x10805}, {0x1080a, 0x10835}, {0x1083f, 0x10855},
- {0x10857, 0x1085f}, {0x10900, 0x1091b}, {0x1091f, 0x10939}, {0x10980, 0x109b7},
- {0x10a00, 0x10a03}, {0x10a0c, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a33},
- {0x10a38, 0x10a3a}, {0x10a3f, 0x10a47}, {0x10a50, 0x10a58}, {0x10a60, 0x10a7f},
- {0x10b00, 0x10b35}, {0x10b39, 0x10b55}, {0x10b58, 0x10b72}, {0x10b78, 0x10b7f},
- {0x10c00, 0x10c48}, {0x10e60, 0x10e7e}, {0x11000, 0x1104d}, {0x11052, 0x1106f},
- {0x11080, 0x110bc}, {0x110be, 0x110c1}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9},
- {0x11100, 0x11134}, {0x11136, 0x11143}, {0x11180, 0x111c8}, {0x111d0, 0x111d9},
- {0x11680, 0x116b7}, {0x116c0, 0x116c9}, {0x12000, 0x1236e}, {0x12400, 0x12462},
- {0x12470, 0x12473}, {0x13000, 0x1342e}, {0x16800, 0x16a38}, {0x16f00, 0x16f44},
- {0x16f50, 0x16f7e}, {0x16f8f, 0x16f9f}, {0x1d000, 0x1d0f5}, {0x1d100, 0x1d126},
- {0x1d129, 0x1d172}, {0x1d17b, 0x1d1dd}, {0x1d200, 0x1d245}, {0x1d300, 0x1d356},
- {0x1d360, 0x1d371}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c}, {0x1d4a9, 0x1d4ac},
- {0x1d4ae, 0x1d4b9}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505}, {0x1d507, 0x1d50a},
- {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539}, {0x1d53b, 0x1d53e},
- {0x1d540, 0x1d544}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5}, {0x1d6a8, 0x1d7cb},
- {0x1d7ce, 0x1d7ff}, {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee29, 0x1ee32},
- {0x1ee34, 0x1ee37}, {0x1ee4d, 0x1ee4f}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72},
- {0x1ee74, 0x1ee77}, {0x1ee79, 0x1ee7c}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b},
- {0x1eea1, 0x1eea3}, {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x1f000, 0x1f02b},
- {0x1f030, 0x1f093}, {0x1f0a0, 0x1f0ae}, {0x1f0b1, 0x1f0be}, {0x1f0c1, 0x1f0cf},
- {0x1f0d1, 0x1f0df}, {0x1f100, 0x1f10a}, {0x1f110, 0x1f12e}, {0x1f130, 0x1f16b},
- {0x1f170, 0x1f19a}, {0x1f1e6, 0x1f202}, {0x1f210, 0x1f23a}, {0x1f240, 0x1f248},
- {0x1f300, 0x1f320}, {0x1f330, 0x1f335}, {0x1f337, 0x1f37c}, {0x1f380, 0x1f393},
- {0x1f3a0, 0x1f3c4}, {0x1f3c6, 0x1f3ca}, {0x1f3e0, 0x1f3f0}, {0x1f400, 0x1f43e},
- {0x1f442, 0x1f4f7}, {0x1f4f9, 0x1f4fc}, {0x1f500, 0x1f53d}, {0x1f540, 0x1f543},
- {0x1f550, 0x1f567}, {0x1f5fb, 0x1f640}, {0x1f645, 0x1f64f}, {0x1f680, 0x1f6c5},
- {0x1f700, 0x1f773}, {0x20000, 0x2a6d6}, {0x2a700, 0x2b734}, {0x2b740, 0x2b81d},
- {0x2f800, 0x2fa1d}, {0xe0100, 0xe01ef}
+ {0x10137, 0x1018c}, {0x10190, 0x1019b}, {0x101d0, 0x101fd}, {0x10280, 0x1029c},
+ {0x102a0, 0x102d0}, {0x102e0, 0x102fb}, {0x10300, 0x10323}, {0x10330, 0x1034a},
+ {0x10350, 0x1037a}, {0x10380, 0x1039d}, {0x1039f, 0x103c3}, {0x103c8, 0x103d5},
+ {0x10400, 0x1049d}, {0x104a0, 0x104a9}, {0x10500, 0x10527}, {0x10530, 0x10563},
+ {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10800, 0x10805},
+ {0x1080a, 0x10835}, {0x1083f, 0x10855}, {0x10857, 0x1089e}, {0x108a7, 0x108af},
+ {0x10900, 0x1091b}, {0x1091f, 0x10939}, {0x10980, 0x109b7}, {0x10a00, 0x10a03},
+ {0x10a0c, 0x10a13}, {0x10a15, 0x10a17}, {0x10a19, 0x10a33}, {0x10a38, 0x10a3a},
+ {0x10a3f, 0x10a47}, {0x10a50, 0x10a58}, {0x10a60, 0x10a9f}, {0x10ac0, 0x10ae6},
+ {0x10aeb, 0x10af6}, {0x10b00, 0x10b35}, {0x10b39, 0x10b55}, {0x10b58, 0x10b72},
+ {0x10b78, 0x10b91}, {0x10b99, 0x10b9c}, {0x10ba9, 0x10baf}, {0x10c00, 0x10c48},
+ {0x10e60, 0x10e7e}, {0x11000, 0x1104d}, {0x11052, 0x1106f}, {0x1107f, 0x110bc},
+ {0x110be, 0x110c1}, {0x110d0, 0x110e8}, {0x110f0, 0x110f9}, {0x11100, 0x11134},
+ {0x11136, 0x11143}, {0x11150, 0x11176}, {0x11180, 0x111c8}, {0x111d0, 0x111da},
+ {0x111e1, 0x111f4}, {0x11200, 0x11211}, {0x11213, 0x1123d}, {0x112b0, 0x112ea},
+ {0x112f0, 0x112f9}, {0x11301, 0x11303}, {0x11305, 0x1130c}, {0x11313, 0x11328},
+ {0x1132a, 0x11330}, {0x11335, 0x11339}, {0x1133c, 0x11344}, {0x1134b, 0x1134d},
+ {0x1135d, 0x11363}, {0x11366, 0x1136c}, {0x11370, 0x11374}, {0x11480, 0x114c7},
+ {0x114d0, 0x114d9}, {0x11580, 0x115b5}, {0x115b8, 0x115c9}, {0x11600, 0x11644},
+ {0x11650, 0x11659}, {0x11680, 0x116b7}, {0x116c0, 0x116c9}, {0x118a0, 0x118f2},
+ {0x11ac0, 0x11af8}, {0x12000, 0x12398}, {0x12400, 0x1246e}, {0x12470, 0x12474},
+ {0x13000, 0x1342e}, {0x16800, 0x16a38}, {0x16a40, 0x16a5e}, {0x16a60, 0x16a69},
+ {0x16ad0, 0x16aed}, {0x16af0, 0x16af5}, {0x16b00, 0x16b45}, {0x16b50, 0x16b59},
+ {0x16b5b, 0x16b61}, {0x16b63, 0x16b77}, {0x16b7d, 0x16b8f}, {0x16f00, 0x16f44},
+ {0x16f50, 0x16f7e}, {0x16f8f, 0x16f9f}, {0x1bc00, 0x1bc6a}, {0x1bc70, 0x1bc7c},
+ {0x1bc80, 0x1bc88}, {0x1bc90, 0x1bc99}, {0x1bc9c, 0x1bc9f}, {0x1d000, 0x1d0f5},
+ {0x1d100, 0x1d126}, {0x1d129, 0x1d172}, {0x1d17b, 0x1d1dd}, {0x1d200, 0x1d245},
+ {0x1d300, 0x1d356}, {0x1d360, 0x1d371}, {0x1d400, 0x1d454}, {0x1d456, 0x1d49c},
+ {0x1d4a9, 0x1d4ac}, {0x1d4ae, 0x1d4b9}, {0x1d4bd, 0x1d4c3}, {0x1d4c5, 0x1d505},
+ {0x1d507, 0x1d50a}, {0x1d50d, 0x1d514}, {0x1d516, 0x1d51c}, {0x1d51e, 0x1d539},
+ {0x1d53b, 0x1d53e}, {0x1d540, 0x1d544}, {0x1d54a, 0x1d550}, {0x1d552, 0x1d6a5},
+ {0x1d6a8, 0x1d7cb}, {0x1d7ce, 0x1d7ff}, {0x1e800, 0x1e8c4}, {0x1e8c7, 0x1e8d6},
+ {0x1ee00, 0x1ee03}, {0x1ee05, 0x1ee1f}, {0x1ee29, 0x1ee32}, {0x1ee34, 0x1ee37},
+ {0x1ee4d, 0x1ee4f}, {0x1ee67, 0x1ee6a}, {0x1ee6c, 0x1ee72}, {0x1ee74, 0x1ee77},
+ {0x1ee79, 0x1ee7c}, {0x1ee80, 0x1ee89}, {0x1ee8b, 0x1ee9b}, {0x1eea1, 0x1eea3},
+ {0x1eea5, 0x1eea9}, {0x1eeab, 0x1eebb}, {0x1f000, 0x1f02b}, {0x1f030, 0x1f093},
+ {0x1f0a0, 0x1f0ae}, {0x1f0b1, 0x1f0bf}, {0x1f0c1, 0x1f0cf}, {0x1f0d1, 0x1f0f5},
+ {0x1f100, 0x1f10c}, {0x1f110, 0x1f12e}, {0x1f130, 0x1f16b}, {0x1f170, 0x1f19a},
+ {0x1f1e6, 0x1f202}, {0x1f210, 0x1f23a}, {0x1f240, 0x1f248}, {0x1f300, 0x1f32c},
+ {0x1f330, 0x1f37d}, {0x1f380, 0x1f3ce}, {0x1f3d4, 0x1f3f7}, {0x1f400, 0x1f4fe},
+ {0x1f500, 0x1f54a}, {0x1f550, 0x1f579}, {0x1f57b, 0x1f5a3}, {0x1f5a5, 0x1f642},
+ {0x1f645, 0x1f6cf}, {0x1f6e0, 0x1f6ec}, {0x1f6f0, 0x1f6f3}, {0x1f700, 0x1f773},
+ {0x1f780, 0x1f7d4}, {0x1f800, 0x1f80b}, {0x1f810, 0x1f847}, {0x1f850, 0x1f859},
+ {0x1f860, 0x1f887}, {0x1f890, 0x1f8ad}, {0x20000, 0x2a6d6}, {0x2a700, 0x2b734},
+ {0x2b740, 0x2b81d}, {0x2f800, 0x2fa1d}, {0xe0100, 0xe01ef}
#endif
};
#define NUM_GRAPH_RANGE (sizeof(graphRangeTable)/sizeof(crange))
static const chr graphCharTable[] = {
- 0x38c, 0x589, 0x58a, 0x58f, 0x85e, 0x8a0, 0x98f, 0x990, 0x9b2,
- 0x9c7, 0x9c8, 0x9d7, 0x9dc, 0x9dd, 0xa0f, 0xa10, 0xa32, 0xa33,
- 0xa35, 0xa36, 0xa38, 0xa39, 0xa3c, 0xa47, 0xa48, 0xa51, 0xa5e,
- 0xab2, 0xab3, 0xad0, 0xb0f, 0xb10, 0xb32, 0xb33, 0xb47, 0xb48,
- 0xb56, 0xb57, 0xb5c, 0xb5d, 0xb82, 0xb83, 0xb99, 0xb9a, 0xb9c,
- 0xb9e, 0xb9f, 0xba3, 0xba4, 0xbd0, 0xbd7, 0xc55, 0xc56, 0xc58,
- 0xc59, 0xc82, 0xc83, 0xcd5, 0xcd6, 0xcde, 0xcf1, 0xcf2, 0xd02,
- 0xd03, 0xd57, 0xd82, 0xd83, 0xdbd, 0xdca, 0xdd6, 0xe81, 0xe82,
- 0xe84, 0xe87, 0xe88, 0xe8a, 0xe8d, 0xea5, 0xea7, 0xeaa, 0xeab,
- 0xec6, 0x10c7, 0x10cd, 0x1258, 0x12c0, 0x1772, 0x1773, 0x1940, 0x1f59,
- 0x1f5b, 0x1f5d, 0x2070, 0x2071, 0x2d27, 0x2d2d, 0x2d6f, 0x2d70, 0xa9de,
- 0xa9df, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfffc, 0xfffd
+ 0x38c, 0x589, 0x58a, 0x85e, 0x98f, 0x990, 0x9b2, 0x9c7, 0x9c8,
+ 0x9d7, 0x9dc, 0x9dd, 0xa0f, 0xa10, 0xa32, 0xa33, 0xa35, 0xa36,
+ 0xa38, 0xa39, 0xa3c, 0xa47, 0xa48, 0xa51, 0xa5e, 0xab2, 0xab3,
+ 0xad0, 0xb0f, 0xb10, 0xb32, 0xb33, 0xb47, 0xb48, 0xb56, 0xb57,
+ 0xb5c, 0xb5d, 0xb82, 0xb83, 0xb99, 0xb9a, 0xb9c, 0xb9e, 0xb9f,
+ 0xba3, 0xba4, 0xbd0, 0xbd7, 0xc55, 0xc56, 0xc58, 0xc59, 0xcd5,
+ 0xcd6, 0xcde, 0xcf1, 0xcf2, 0xd57, 0xd82, 0xd83, 0xdbd, 0xdca,
+ 0xdd6, 0xe81, 0xe82, 0xe84, 0xe87, 0xe88, 0xe8a, 0xe8d, 0xea5,
+ 0xea7, 0xeaa, 0xeab, 0xec6, 0x10c7, 0x10cd, 0x1258, 0x12c0, 0x1772,
+ 0x1773, 0x1940, 0x1cf8, 0x1cf9, 0x1f59, 0x1f5b, 0x1f5d, 0x2070, 0x2071,
+ 0x2d27, 0x2d2d, 0x2d6f, 0x2d70, 0xa7b0, 0xa7b1, 0xab64, 0xab65, 0xfb3e,
+ 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfffc, 0xfffd
#if TCL_UTF_MAX > 4
- ,0x1003c, 0x1003d, 0x10808, 0x10837, 0x10838, 0x1083c, 0x1093f, 0x109be, 0x109bf,
- 0x10a05, 0x10a06, 0x1b000, 0x1b001, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a5, 0x1d4a6,
- 0x1d4bb, 0x1d546, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee27, 0x1ee39, 0x1ee3b, 0x1ee42,
- 0x1ee47, 0x1ee49, 0x1ee4b, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee57, 0x1ee59, 0x1ee5b,
- 0x1ee5d, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee7e, 0x1eef0, 0x1eef1, 0x1f250,
- 0x1f251, 0x1f440
+ ,0x1003c, 0x1003d, 0x101a0, 0x1056f, 0x10808, 0x10837, 0x10838, 0x1083c, 0x1093f,
+ 0x109be, 0x109bf, 0x10a05, 0x10a06, 0x111cd, 0x1130f, 0x11310, 0x11332, 0x11333,
+ 0x11347, 0x11348, 0x11357, 0x118ff, 0x16a6e, 0x16a6f, 0x1b000, 0x1b001, 0x1d49e,
+ 0x1d49f, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4bb, 0x1d546, 0x1ee21, 0x1ee22, 0x1ee24,
+ 0x1ee27, 0x1ee39, 0x1ee3b, 0x1ee42, 0x1ee47, 0x1ee49, 0x1ee4b, 0x1ee51, 0x1ee52,
+ 0x1ee54, 0x1ee57, 0x1ee59, 0x1ee5b, 0x1ee5d, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64,
+ 0x1ee7e, 0x1eef0, 0x1eef1, 0x1f250, 0x1f251
#endif
};
diff --git a/generic/regc_nfa.c b/generic/regc_nfa.c
index 2fc3a05..2de7e14 100644
--- a/generic/regc_nfa.c
+++ b/generic/regc_nfa.c
@@ -1332,7 +1332,7 @@ fixempties(
for (s = nfa->states; s != NULL && !NISERR(); s = nexts) {
nexts = s->next;
/* Ensure tmp fields are clear for next step */
- assert(s->tmp = NULL);
+ assert(s->tmp == NULL);
if (s->flag || s->nins != 1) {
continue;
}
diff --git a/generic/regcomp.c b/generic/regcomp.c
index 8880318..77f2f20 100644
--- a/generic/regcomp.c
+++ b/generic/regcomp.c
@@ -996,13 +996,13 @@ parseqatom(
switch (v->nexttype) {
case '*':
m = 0;
- n = INFINITY;
+ n = DUPINF;
qprefer = (v->nextvalue) ? LONGER : SHORTER;
NEXT();
break;
case '+':
m = 1;
- n = INFINITY;
+ n = DUPINF;
qprefer = (v->nextvalue) ? LONGER : SHORTER;
NEXT();
break;
@@ -1019,7 +1019,7 @@ parseqatom(
if (SEE(DIGIT)) {
n = scannum(v);
} else {
- n = INFINITY;
+ n = DUPINF;
}
if (m > n) {
ERR(REG_BADBR);
@@ -1217,8 +1217,8 @@ parseqatom(
*/
dupnfa(v->nfa, atom->begin, atom->end, s, atom->begin);
- assert(m >= 1 && m != INFINITY && n >= 1);
- repeat(v, s, atom->begin, m-1, (n == INFINITY) ? n : n-1);
+ assert(m >= 1 && m != DUPINF && n >= 1);
+ repeat(v, s, atom->begin, m-1, (n == DUPINF) ? n : n-1);
f = COMBINE(qprefer, atom->flags);
t = subre(v, '.', f, s, atom->end); /* prefix and atom */
NOERR();
@@ -1323,7 +1323,7 @@ repeat(
#define SOME 2
#define INF 3
#define PAIR(x, y) ((x)*4 + (y))
-#define REDUCE(x) ( ((x) == INFINITY) ? INF : (((x) > 1) ? SOME : (x)) )
+#define REDUCE(x) ( ((x) == DUPINF) ? INF : (((x) > 1) ? SOME : (x)) )
const int rm = REDUCE(m);
const int rn = REDUCE(n);
struct state *s, *s2;
@@ -2108,7 +2108,7 @@ stdump(
}
if (t->min != 1 || t->max != 1) {
fprintf(f, " {%d,", t->min);
- if (t->max != INFINITY) {
+ if (t->max != DUPINF) {
fprintf(f, "%d", t->max);
}
fprintf(f, "}");
diff --git a/generic/regexec.c b/generic/regexec.c
index 205fcc2..f3be137 100644
--- a/generic/regexec.c
+++ b/generic/regexec.c
@@ -1117,7 +1117,7 @@ cbrdissect(
*/
i = 0;
- for (p = begin; p <= stop && (i < max || max == INFINITY); p += len) {
+ for (p = begin; p <= stop && (i < max || max == DUPINF); p += len) {
if ((*v->g->compare)(paren, p, len) != 0) {
break;
}
@@ -1132,7 +1132,7 @@ cbrdissect(
if (p != end) { /* didn't consume all of it */
return REG_NOMATCH;
}
- if (min <= i && (i <= max || max == INFINITY)) {
+ if (min <= i && (i <= max || max == DUPINF)) {
return REG_OKAY;
}
return REG_NOMATCH; /* out of range */
diff --git a/generic/regguts.h b/generic/regguts.h
index 42654eb..ac625d5 100644
--- a/generic/regguts.h
+++ b/generic/regguts.h
@@ -116,7 +116,7 @@
#define xxx 1
#define DUPMAX _POSIX2_RE_DUP_MAX
-#define INFINITY (DUPMAX+1)
+#define DUPINF (DUPMAX+1)
#define REMAGIC 0xfed7 /* magic number for main struct */
diff --git a/generic/tcl.h b/generic/tcl.h
index 5300bba..464f205 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -58,10 +58,10 @@ extern "C" {
#define TCL_MAJOR_VERSION 8
#define TCL_MINOR_VERSION 5
#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE
-#define TCL_RELEASE_SERIAL 15
+#define TCL_RELEASE_SERIAL 18
#define TCL_VERSION "8.5"
-#define TCL_PATCH_LEVEL "8.5.15"
+#define TCL_PATCH_LEVEL "8.5.18"
/*
* The following definitions set up the proper options for Windows compilers.
@@ -69,7 +69,7 @@ extern "C" {
*/
#ifndef __WIN32__
-# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
+# if defined(_WIN32) || defined(WIN32) || defined(__MSVCRT__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
# define __WIN32__
# ifndef WIN32
# define WIN32
diff --git a/generic/tclAlloc.c b/generic/tclAlloc.c
index 8d0a2cc..675e1a4 100644
--- a/generic/tclAlloc.c
+++ b/generic/tclAlloc.c
@@ -31,7 +31,7 @@
* until Tcl uses config.h properly.
*/
-#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__BORLANDC__)
+#if defined(_MSC_VER) || defined(__MSVCRT__) || defined(__BORLANDC__)
typedef unsigned long caddr_t;
#endif
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 809a6c6..106c293 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -152,6 +152,10 @@ static void FreeJumptableInfo(ClientData clientData);
static void PrintJumptableInfo(ClientData clientData,
Tcl_Obj *appendObj, ByteCode *codePtr,
unsigned int pcOffset);
+static int LocalScalarFromToken(Tcl_Token *tokenPtr,
+ CompileEnv *envPtr);
+static int LocalScalar(const char *bytes, int numBytes,
+ CompileEnv *envPtr);
static int PushVarName(Tcl_Interp *interp,
Tcl_Token *varTokenPtr, CompileEnv *envPtr,
int flags, int *localIndexPtr,
@@ -379,8 +383,7 @@ TclCompileCatchCmd(
{
JumpFixup jumpFixup;
Tcl_Token *cmdTokenPtr, *resultNameTokenPtr, *optsNameTokenPtr;
- const char *name;
- int resultIndex, optsIndex, nameChars, range;
+ int resultIndex, optsIndex, range;
int initStackDepth = envPtr->currStackDepth;
int savedStackDepth;
DefineLineInformation; /* TIP #280 */
@@ -395,15 +398,6 @@ TclCompileCatchCmd(
}
/*
- * If variables were specified and the catch command is at global level
- * (not in a procedure), don't compile it inline: the payoff is too small.
- */
-
- if ((parsePtr->numWords >= 3) && (envPtr->procPtr == NULL)) {
- return TCL_ERROR;
- }
-
- /*
* Make sure the variable names, if any, have no substitutions and just
* refer to local scalars.
*/
@@ -412,35 +406,14 @@ TclCompileCatchCmd(
cmdTokenPtr = TokenAfter(parsePtr->tokenPtr);
if (parsePtr->numWords >= 3) {
resultNameTokenPtr = TokenAfter(cmdTokenPtr);
- /* DGP */
- if (resultNameTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
-
- name = resultNameTokenPtr[1].start;
- nameChars = resultNameTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
- return TCL_ERROR;
- }
- resultIndex = TclFindCompiledLocal(resultNameTokenPtr[1].start,
- resultNameTokenPtr[1].size, /*create*/ 1, envPtr->procPtr);
+ resultIndex = LocalScalarFromToken(resultNameTokenPtr, envPtr);
if (resultIndex < 0) {
return TCL_ERROR;
}
- /* DKF */
if (parsePtr->numWords == 4) {
optsNameTokenPtr = TokenAfter(resultNameTokenPtr);
- if (optsNameTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
- name = optsNameTokenPtr[1].start;
- nameChars = optsNameTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
- return TCL_ERROR;
- }
- optsIndex = TclFindCompiledLocal(optsNameTokenPtr[1].start,
- optsNameTokenPtr[1].size, /*create*/ 1, envPtr->procPtr);
+ optsIndex = LocalScalarFromToken(optsNameTokenPtr, envPtr);
if (optsIndex < 0) {
return TCL_ERROR;
}
@@ -682,18 +655,15 @@ TclCompileDictSetCmd(
* compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
- Tcl_Token *tokenPtr;
- Proc *procPtr = envPtr->procPtr;
+ Tcl_Token *tokenPtr, *varTokenPtr;
+ int i, dictVarIndex;
DefineLineInformation; /* TIP #280 */
- Tcl_Token *varTokenPtr;
- int i, dictVarIndex, nameChars;
- const char *name;
/*
- * There must be at least one argument after the command.
+ * There must be at least three arguments after the (sub-)command.
*/
- if (parsePtr->numWords < 4 || procPtr == NULL) {
+ if (parsePtr->numWords < 4) {
return TCL_ERROR;
}
@@ -704,15 +674,10 @@ TclCompileDictSetCmd(
*/
varTokenPtr = TokenAfter(parsePtr->tokenPtr);
- if (varTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
- name = varTokenPtr[1].start;
- nameChars = varTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
+ dictVarIndex = LocalScalarFromToken(varTokenPtr, envPtr);
+ if (dictVarIndex < 0) {
return TCL_ERROR;
}
- dictVarIndex = TclFindCompiledLocal(name, nameChars, 1, procPtr);
/*
* Remaining words (key path and value to set) can be handled normally.
@@ -742,20 +707,30 @@ TclCompileDictIncrCmd(
* compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
- Proc *procPtr = envPtr->procPtr;
- DefineLineInformation; /* TIP #280 */
Tcl_Token *varTokenPtr, *keyTokenPtr;
- int dictVarIndex, nameChars, incrAmount;
- const char *name;
+ int dictVarIndex, incrAmount;
+ DefineLineInformation; /* TIP #280 */
/*
* There must be at least two arguments after the command.
*/
- if (parsePtr->numWords < 3 || parsePtr->numWords > 4 || procPtr == NULL) {
+ if (parsePtr->numWords < 3 || parsePtr->numWords > 4) {
return TCL_ERROR;
}
+
+ /*
+ * The dictionary variable must be a local scalar that is knowable at
+ * compile time; anything else exceeds the complexity of the opcode. So
+ * discover what the index is.
+ */
+
varTokenPtr = TokenAfter(parsePtr->tokenPtr);
+ dictVarIndex = LocalScalarFromToken(varTokenPtr, envPtr);
+ if (dictVarIndex < 0) {
+ return TCL_ERROR;
+ }
+
keyTokenPtr = TokenAfter(varTokenPtr);
/*
@@ -763,23 +738,12 @@ TclCompileDictIncrCmd(
*/
if (parsePtr->numWords == 4) {
- const char *word;
- int numBytes, code;
- Tcl_Token *incrTokenPtr;
- Tcl_Obj *intObj;
-
- incrTokenPtr = TokenAfter(keyTokenPtr);
- if (incrTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
- word = incrTokenPtr[1].start;
- numBytes = incrTokenPtr[1].size;
-
- intObj = Tcl_NewStringObj(word, numBytes);
- Tcl_IncrRefCount(intObj);
- code = TclGetIntFromObj(NULL, intObj, &incrAmount);
- TclDecrRefCount(intObj);
- if (code != TCL_OK) {
+ Tcl_Token *incrTokenPtr = TokenAfter(keyTokenPtr);
+ Tcl_Obj *intObj = Tcl_NewObj();
+ int fail = (!TclWordKnownAtCompileTime(incrTokenPtr, intObj)
+ || TCL_ERROR == TclGetIntFromObj(NULL, intObj, &incrAmount));
+ Tcl_DecrRefCount(intObj);
+ if (fail) {
return TCL_ERROR;
}
} else {
@@ -787,22 +751,6 @@ TclCompileDictIncrCmd(
}
/*
- * The dictionary variable must be a local scalar that is knowable at
- * compile time; anything else exceeds the complexity of the opcode. So
- * discover what the index is.
- */
-
- if (varTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
- name = varTokenPtr[1].start;
- nameChars = varTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
- return TCL_ERROR;
- }
- dictVarIndex = TclFindCompiledLocal(name, nameChars, 1, procPtr);
-
- /*
* Emit the key and the code to actually do the increment.
*/
@@ -857,19 +805,19 @@ TclCompileDictForCmd(
CompileEnv *envPtr) /* Holds resulting instructions. */
{
Proc *procPtr = envPtr->procPtr;
- DefineLineInformation; /* TIP #280 */
Tcl_Token *varsTokenPtr, *dictTokenPtr, *bodyTokenPtr;
- int keyVarIndex, valueVarIndex, nameChars, loopRange, catchRange;
+ int keyVarIndex, valueVarIndex, loopRange, catchRange;
int infoIndex, jumpDisplacement, bodyTargetOffset, emptyTargetOffset;
- int numVars, endTargetOffset;
+ int numVars, endTargetOffset, numBytes;
+ const char *bytes;
int savedStackDepth = envPtr->currStackDepth;
/* Needed because jumps confuse the stack
* space calculator. */
- const char **argv;
- Tcl_DString buffer;
+ Tcl_Obj *varNameObj, *varListObj = NULL;
+ DefineLineInformation; /* TIP #280 */
/*
- * There must be at least three argument after the command.
+ * There must be exactly three arguments after the command.
*/
if (parsePtr->numWords != 4 || procPtr == NULL) {
@@ -879,8 +827,8 @@ TclCompileDictForCmd(
varsTokenPtr = TokenAfter(parsePtr->tokenPtr);
dictTokenPtr = TokenAfter(varsTokenPtr);
bodyTokenPtr = TokenAfter(dictTokenPtr);
- if (varsTokenPtr->type != TCL_TOKEN_SIMPLE_WORD ||
- bodyTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
+
+ if (bodyTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
return TCL_ERROR;
}
@@ -889,33 +837,31 @@ TclCompileDictForCmd(
* Then extract their indices in the LVT.
*/
- Tcl_DStringInit(&buffer);
- Tcl_DStringAppend(&buffer, varsTokenPtr[1].start, varsTokenPtr[1].size);
- if (Tcl_SplitList(NULL, Tcl_DStringValue(&buffer), &numVars,
- &argv) != TCL_OK) {
- Tcl_DStringFree(&buffer);
- return TCL_ERROR;
- }
- Tcl_DStringFree(&buffer);
- if (numVars != 2) {
- ckfree((char *) argv);
+ varListObj = Tcl_NewObj();
+ if (!TclWordKnownAtCompileTime(varsTokenPtr, varListObj) ||
+ TCL_OK != Tcl_ListObjLength(NULL, varListObj, &numVars) ||
+ numVars != 2) {
+ Tcl_DecrRefCount(varListObj);
return TCL_ERROR;
}
- nameChars = strlen(argv[0]);
- if (!TclIsLocalScalar(argv[0], nameChars)) {
- ckfree((char *) argv);
+ Tcl_ListObjIndex(NULL, varListObj, 0, &varNameObj);
+ bytes = Tcl_GetStringFromObj(varNameObj, &numBytes);
+ keyVarIndex = LocalScalar(bytes, numBytes, envPtr);
+ if (keyVarIndex < 0) {
+ Tcl_DecrRefCount(varListObj);
return TCL_ERROR;
}
- keyVarIndex = TclFindCompiledLocal(argv[0], nameChars, 1, procPtr);
- nameChars = strlen(argv[1]);
- if (!TclIsLocalScalar(argv[1], nameChars)) {
- ckfree((char *) argv);
+ Tcl_ListObjIndex(NULL, varListObj, 1, &varNameObj);
+ bytes = Tcl_GetStringFromObj(varNameObj, &numBytes);
+ valueVarIndex = LocalScalar(bytes, numBytes, envPtr);
+ if (valueVarIndex < 0) {
+ Tcl_DecrRefCount(varListObj);
return TCL_ERROR;
}
- valueVarIndex = TclFindCompiledLocal(argv[1], nameChars, 1, procPtr);
- ckfree((char *) argv);
+
+ Tcl_DecrRefCount(varListObj);
/*
* Allocate a temporary variable to store the iterator reference. The
@@ -1055,21 +1001,11 @@ TclCompileDictUpdateCmd(
* compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
- Proc *procPtr = envPtr->procPtr;
- DefineLineInformation; /* TIP #280 */
- const char *name;
- int i, nameChars, dictIndex, numVars, range, infoIndex;
+ int i, dictIndex, numVars, range, infoIndex;
Tcl_Token **keyTokenPtrs, *dictVarTokenPtr, *bodyTokenPtr, *tokenPtr;
DictUpdateInfo *duiPtr;
JumpFixup jumpFixup;
-
- /*
- * There must be at least one argument after the command.
- */
-
- if (parsePtr->numWords < 5 || procPtr == NULL) {
- return TCL_ERROR;
- }
+ DefineLineInformation; /* TIP #280 */
/*
* Parse the command. Expect the following:
@@ -1080,6 +1016,9 @@ TclCompileDictUpdateCmd(
return TCL_ERROR;
}
numVars = (parsePtr->numWords - 3) / 2;
+ if (numVars < 1) {
+ return TCL_ERROR;
+ }
/*
* The dictionary variable must be a local scalar that is knowable at
@@ -1088,15 +1027,10 @@ TclCompileDictUpdateCmd(
*/
dictVarTokenPtr = TokenAfter(parsePtr->tokenPtr);
- if (dictVarTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
+ dictIndex = LocalScalarFromToken(dictVarTokenPtr, envPtr);
+ if (dictIndex < 0) {
return TCL_ERROR;
}
- name = dictVarTokenPtr[1].start;
- nameChars = dictVarTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
- return TCL_ERROR;
- }
- dictIndex = TclFindCompiledLocal(name, nameChars, 1, procPtr);
/*
* Assemble the instruction metadata. This is complex enough that it is
@@ -1112,6 +1046,8 @@ TclCompileDictUpdateCmd(
tokenPtr = TokenAfter(dictVarTokenPtr);
for (i=0 ; i<numVars ; i++) {
+ int index;
+
/*
* Put keys to one side for later compilation to bytecode.
*/
@@ -1123,14 +1059,8 @@ TclCompileDictUpdateCmd(
*/
tokenPtr = TokenAfter(tokenPtr);
- if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- ckfree((char *) duiPtr);
- TclStackFree(interp, keyTokenPtrs);
- return TCL_ERROR;
- }
- name = tokenPtr[1].start;
- nameChars = tokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
+ index = LocalScalarFromToken(tokenPtr, envPtr);
+ if (index < 0) {
ckfree((char *) duiPtr);
TclStackFree(interp, keyTokenPtrs);
return TCL_ERROR;
@@ -1140,8 +1070,7 @@ TclCompileDictUpdateCmd(
* Stash the index in the auxiliary data.
*/
- duiPtr->varIndices[i] =
- TclFindCompiledLocal(name, nameChars, 1, procPtr);
+ duiPtr->varIndices[i] = index;
tokenPtr = TokenAfter(tokenPtr);
}
if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
@@ -1222,18 +1151,17 @@ TclCompileDictAppendCmd(
* compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
- Proc *procPtr = envPtr->procPtr;
- DefineLineInformation; /* TIP #280 */
Tcl_Token *tokenPtr;
int i, dictVarIndex;
+ DefineLineInformation; /* TIP #280 */
/*
- * There must be at least two argument after the command. And we impose an
- * (arbirary) safe limit; anyone exceeding it should stop worrying about
- * speed quite so much. ;-)
+ * There must be at least two argument after the command. Since we
+ * implement using INST_CONCAT1, make sure the number of arguments
+ * stays within its range.
*/
- if (parsePtr->numWords<4 || parsePtr->numWords>100 || procPtr==NULL) {
+ if (parsePtr->numWords<4 || parsePtr->numWords>258) {
return TCL_ERROR;
}
@@ -1242,16 +1170,9 @@ TclCompileDictAppendCmd(
*/
tokenPtr = TokenAfter(parsePtr->tokenPtr);
- if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
+ dictVarIndex = LocalScalarFromToken(tokenPtr, envPtr);
+ if (dictVarIndex < 0) {
return TCL_ERROR;
- } else {
- register const char *name = tokenPtr[1].start;
- register int nameChars = tokenPtr[1].size;
-
- if (!TclIsLocalScalar(name, nameChars)) {
- return TCL_ERROR;
- }
- dictVarIndex = TclFindCompiledLocal(name, nameChars, 1, procPtr);
}
/*
@@ -1284,32 +1205,25 @@ TclCompileDictLappendCmd(
* compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
- Proc *procPtr = envPtr->procPtr;
- DefineLineInformation; /* TIP #280 */
Tcl_Token *varTokenPtr, *keyTokenPtr, *valueTokenPtr;
- int dictVarIndex, nameChars;
- const char *name;
+ int dictVarIndex;
+ DefineLineInformation; /* TIP #280 */
/*
* There must be three arguments after the command.
*/
- if (parsePtr->numWords != 4 || procPtr == NULL) {
+ if (parsePtr->numWords != 4) {
return TCL_ERROR;
}
varTokenPtr = TokenAfter(parsePtr->tokenPtr);
keyTokenPtr = TokenAfter(varTokenPtr);
valueTokenPtr = TokenAfter(keyTokenPtr);
- if (varTokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- return TCL_ERROR;
- }
- name = varTokenPtr[1].start;
- nameChars = varTokenPtr[1].size;
- if (!TclIsLocalScalar(name, nameChars)) {
+ dictVarIndex = LocalScalarFromToken(varTokenPtr, envPtr);
+ if (dictVarIndex < 0) {
return TCL_ERROR;
}
- dictVarIndex = TclFindCompiledLocal(name, nameChars, 1, procPtr);
CompileWord(envPtr, keyTokenPtr, interp, 2);
CompileWord(envPtr, valueTokenPtr, interp, 3);
TclEmitInstInt4( INST_DICT_LAPPEND, dictVarIndex, envPtr);
@@ -1615,31 +1529,19 @@ TclCompileForeachCmd(
CompileEnv *envPtr) /* Holds resulting instructions. */
{
Proc *procPtr = envPtr->procPtr;
- ForeachInfo *infoPtr; /* Points to the structure describing this
+ ForeachInfo *infoPtr = NULL;/* Points to the structure describing this
* foreach command. Stored in a AuxData
* record in the ByteCode. */
- int firstValueTemp; /* Index of the first temp var in the frame
- * used to point to a value list. */
- int loopCtTemp; /* Index of temp var holding the loop's
- * iteration count. */
Tcl_Token *tokenPtr, *bodyTokenPtr;
unsigned char *jumpPc;
JumpFixup jumpFalseFixup;
int jumpBackDist, jumpBackOffset, infoIndex, range;
- int numWords, numLists, numVars, loopIndex, tempVar, i, j, code;
+ int numWords, numLists, tempVar, i, j, code = TCL_OK;
int savedStackDepth = envPtr->currStackDepth;
+ Tcl_Obj *varListObj = NULL;
DefineLineInformation; /* TIP #280 */
/*
- * We parse the variable list argument words and create two arrays:
- * varcList[i] is number of variables in i-th var list.
- * varvList[i] points to array of var names in i-th var list.
- */
-
- int *varcList;
- const char ***varvList;
-
- /*
* If the foreach command isn't in a procedure, don't compile it inline:
* the payoff is too small.
*/
@@ -1667,51 +1569,32 @@ TclCompileForeachCmd(
}
/*
- * Allocate storage for the varcList and varvList arrays if necessary.
+ * Create and initialize the ForeachInfo and ForeachVarList data
+ * structures describing this command. Then create a AuxData record
+ * pointing to the ForeachInfo structure.
*/
numLists = (numWords - 2)/2;
- varcList = (int *) TclStackAlloc(interp, numLists * sizeof(int));
- memset(varcList, 0, numLists * sizeof(int));
- varvList = (const char ***) TclStackAlloc(interp,
- numLists * sizeof(const char **));
- memset((char*) varvList, 0, numLists * sizeof(const char **));
+ infoPtr = (ForeachInfo *) ckalloc((unsigned)
+ sizeof(ForeachInfo) + numLists*sizeof(ForeachVarList *));
+ infoPtr->numLists = 0; /* Count this up as we go */
/*
- * Break up each var list and set the varcList and varvList arrays. Don't
+ * Parse each var list into sequence of var names. Don't
* compile the foreach inline if any var name needs substitutions or isn't
* a scalar, or if any var list needs substitutions.
*/
- loopIndex = 0;
+ varListObj = Tcl_NewObj();
for (i = 0, tokenPtr = parsePtr->tokenPtr;
i < numWords-1;
i++, tokenPtr = TokenAfter(tokenPtr)) {
- Tcl_DString varList;
+ ForeachVarList *varListPtr;
+ int numVars;
if (i%2 != 1) {
continue;
}
- if (tokenPtr->type != TCL_TOKEN_SIMPLE_WORD) {
- code = TCL_ERROR;
- goto done;
- }
-
- /*
- * Lots of copying going on here. Need a ListObj wizard to show a
- * better way.
- */
-
- Tcl_DStringInit(&varList);
- Tcl_DStringAppend(&varList, tokenPtr[1].start, tokenPtr[1].size);
- code = Tcl_SplitList(interp, Tcl_DStringValue(&varList),
- &varcList[loopIndex], &varvList[loopIndex]);
- Tcl_DStringFree(&varList);
- if (code != TCL_OK) {
- code = TCL_ERROR;
- goto done;
- }
- numVars = varcList[loopIndex];
/*
* If the variable list is empty, we can enter an infinite loop when
@@ -1719,25 +1602,37 @@ TclCompileForeachCmd(
* not happen. [Bug 1671138]
*/
- if (numVars == 0) {
+ if (!TclWordKnownAtCompileTime(tokenPtr, varListObj) ||
+ TCL_OK != Tcl_ListObjLength(NULL, varListObj, &numVars) ||
+ numVars == 0) {
code = TCL_ERROR;
goto done;
}
- for (j = 0; j < numVars; j++) {
- const char *varName = varvList[loopIndex][j];
+ varListPtr = (ForeachVarList *) ckalloc((unsigned)
+ sizeof(ForeachVarList) + numVars*sizeof(int));
+ varListPtr->numVars = numVars;
+ infoPtr->varLists[i/2] = varListPtr;
+ infoPtr->numLists++;
- if (!TclIsLocalScalar(varName, (int) strlen(varName))) {
+ for (j = 0; j < numVars; j++) {
+ Tcl_Obj *varNameObj;
+ int numBytes;
+ const char *bytes;
+
+ Tcl_ListObjIndex(NULL, varListObj, j, &varNameObj);
+ bytes = Tcl_GetStringFromObj(varNameObj, &numBytes);
+ varListPtr->varIndexes[j] = LocalScalar(bytes, numBytes, envPtr);
+ if (varListPtr->varIndexes[j] < 0) {
code = TCL_ERROR;
goto done;
}
}
- loopIndex++;
+ Tcl_SetObjLength(varListObj, 0);
}
/*
- * We will compile the foreach command. Reserve (numLists + 1) temporary
- * variables:
+ * Reserve (numLists + 1) temporary variables:
* - numLists temps to hold each value list
* - 1 temp for the loop counter (index of next element in each list)
*
@@ -1745,44 +1640,13 @@ TclCompileForeachCmd(
* nonoverlapping foreach loops, they don't share any temps.
*/
- code = TCL_OK;
- firstValueTemp = -1;
- for (loopIndex = 0; loopIndex < numLists; loopIndex++) {
- tempVar = TclFindCompiledLocal(NULL, /*nameChars*/ 0,
- /*create*/ 1, procPtr);
- if (loopIndex == 0) {
- firstValueTemp = tempVar;
- }
+ tempVar = TclFindCompiledLocal(NULL, 0, 1, procPtr);
+ infoPtr->firstValueTemp = tempVar;
+ for (i= 1; i < numLists; i++) {
+ TclFindCompiledLocal(NULL, 0, 1, procPtr);
}
- loopCtTemp = TclFindCompiledLocal(NULL, /*nameChars*/ 0,
- /*create*/ 1, procPtr);
-
- /*
- * Create and initialize the ForeachInfo and ForeachVarList data
- * structures describing this command. Then create a AuxData record
- * pointing to the ForeachInfo structure.
- */
-
- infoPtr = (ForeachInfo *) ckalloc((unsigned)
- sizeof(ForeachInfo) + numLists*sizeof(ForeachVarList *));
- infoPtr->numLists = numLists;
- infoPtr->firstValueTemp = firstValueTemp;
- infoPtr->loopCtTemp = loopCtTemp;
- for (loopIndex = 0; loopIndex < numLists; loopIndex++) {
- ForeachVarList *varListPtr;
- numVars = varcList[loopIndex];
- varListPtr = (ForeachVarList *) ckalloc((unsigned)
- sizeof(ForeachVarList) + numVars*sizeof(int));
- varListPtr->numVars = numVars;
- for (j = 0; j < numVars; j++) {
- const char *varName = varvList[loopIndex][j];
- int nameChars = strlen(varName);
+ infoPtr->loopCtTemp = TclFindCompiledLocal(NULL, 0, 1, procPtr);
- varListPtr->varIndexes[j] = TclFindCompiledLocal(varName,
- nameChars, /*create*/ 1, procPtr);
- }
- infoPtr->varLists[loopIndex] = varListPtr;
- }
infoIndex = TclCreateAuxData(infoPtr, &tclForeachInfoType, envPtr);
/*
@@ -1795,21 +1659,19 @@ TclCompileForeachCmd(
* Evaluate then store each value list in the associated temporary.
*/
- loopIndex = 0;
for (i = 0, tokenPtr = parsePtr->tokenPtr;
i < numWords-1;
i++, tokenPtr = TokenAfter(tokenPtr)) {
if ((i%2 == 0) && (i > 0)) {
SetLineInformation (i);
CompileTokens(envPtr, tokenPtr, interp);
- tempVar = (firstValueTemp + loopIndex);
if (tempVar <= 255) {
TclEmitInstInt1(INST_STORE_SCALAR1, tempVar, envPtr);
} else {
TclEmitInstInt4(INST_STORE_SCALAR4, tempVar, envPtr);
}
TclEmitOpcode(INST_POP, envPtr);
- loopIndex++;
+ tempVar++;
}
}
@@ -1895,13 +1757,14 @@ TclCompileForeachCmd(
envPtr->currStackDepth = savedStackDepth + 1;
done:
- for (loopIndex = 0; loopIndex < numLists; loopIndex++) {
- if (varvList[loopIndex] != NULL) {
- ckfree((char *) varvList[loopIndex]);
+ if (code == TCL_ERROR) {
+ if (infoPtr) {
+ FreeForeachInfo(infoPtr);
}
}
- TclStackFree(interp, (void *)varvList);
- TclStackFree(interp, varcList);
+ if (varListObj) {
+ Tcl_DecrRefCount(varListObj);
+ }
return code;
}
@@ -4842,6 +4705,55 @@ TclCompileWhileCmd(
/*
*----------------------------------------------------------------------
*
+ * LocalScalar(FromToken) --
+ *
+ * Get the index into the table of compiled locals that corresponds
+ * to a local scalar variable name.
+ *
+ * Results:
+ * Returns the non-negative integer index value into the table of
+ * compiled locals corresponding to a local scalar variable name.
+ * If the arguments passed in do not identify a local scalar variable
+ * then return -1.
+ *
+ * Side effects:
+ * May add an entry into the table of compiled locals.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static int
+LocalScalarFromToken(
+ Tcl_Token *tokenPtr,
+ CompileEnv *envPtr)
+{
+ int isSimple, isScalar, index;
+
+ PushVarName(NULL, tokenPtr, envPtr, TCL_CREATE_VAR, &index,
+ &isSimple, &isScalar, 0 /* ignored */, NULL /* ignored */);
+ if (!isScalar) {
+ index = -1;
+ }
+ return index;
+}
+
+static int
+LocalScalar(
+ const char *bytes,
+ int numBytes,
+ CompileEnv *envPtr)
+{
+ Tcl_Token token[2] = {{TCL_TOKEN_SIMPLE_WORD, NULL, 0, 1},
+ {TCL_TOKEN_TEXT, NULL, 0, 0}};
+
+ token[1].start = bytes;
+ token[1].size = numBytes;
+ return LocalScalarFromToken(token, envPtr);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* PushVarName --
*
* Procedure used in the compiling where pushing a variable name is
@@ -4890,16 +4802,7 @@ PushVarName(
nameChars = elNameChars = 0;
localIndex = -1;
- /*
- * Check not only that the type is TCL_TOKEN_SIMPLE_WORD, but whether
- * curly braces surround the variable name. This really matters for array
- * elements to handle things like
- * set {x($foo)} 5
- * which raises an undefined var error if we are not careful here.
- */
-
- if ((varTokenPtr->type == TCL_TOKEN_SIMPLE_WORD) &&
- (varTokenPtr->start[0] != '{')) {
+ if (varTokenPtr->type == TCL_TOKEN_SIMPLE_WORD) {
/*
* A simple variable name. Divide it up into "name" and "elName"
* strings. If it is not a local variable, look it up at runtime.
@@ -4923,7 +4826,7 @@ PushVarName(
}
}
- if ((elName != NULL) && elNameChars) {
+ if (interp && (elName != NULL) && elNameChars) {
/*
* An array element, the element name is a simple string:
* assemble the corresponding token.
@@ -4939,7 +4842,7 @@ PushVarName(
elemTokenCount = 1;
}
}
- } else if (((n = varTokenPtr->numComponents) > 1)
+ } else if (interp && ((n = varTokenPtr->numComponents) > 1)
&& (varTokenPtr[1].type == TCL_TOKEN_TEXT)
&& (varTokenPtr[n].type == TCL_TOKEN_TEXT)
&& (varTokenPtr[n].start[varTokenPtr[n].size - 1] == ')')) {
@@ -4976,7 +4879,7 @@ PushVarName(
nameChars = p - varTokenPtr[1].start;
elName = p + 1;
remainingChars = (varTokenPtr[2].start - p) - 1;
- elNameChars = (varTokenPtr[n].start - p) + varTokenPtr[n].size - 2;
+ elNameChars = (varTokenPtr[n].start-p) + varTokenPtr[n].size - 1;
if (remainingChars) {
/*
@@ -5041,7 +4944,7 @@ PushVarName(
localIndex = -1;
}
}
- if (localIndex < 0) {
+ if (interp && localIndex < 0) {
PushLiteral(envPtr, name, nameChars);
}
@@ -5049,7 +4952,7 @@ PushVarName(
* Compile the element script, if any.
*/
- if (elName != NULL) {
+ if (interp && elName != NULL) {
if (elNameChars) {
envPtr->line = line;
envPtr->clNext = clNext;
@@ -5058,7 +4961,7 @@ PushVarName(
PushLiteral(envPtr, "", 0);
}
}
- } else {
+ } else if (interp) {
/*
* The var name isn't simple: compile and push it.
*/
@@ -5779,7 +5682,7 @@ TclCompileUpvarCmd(
CompileEnv *envPtr) /* Holds resulting instructions. */
{
Tcl_Token *tokenPtr, *otherTokenPtr, *localTokenPtr;
- int simpleVarName, isScalar, localIndex, numWords, i;
+ int localIndex, numWords, i;
DefineLineInformation; /* TIP #280 */
Tcl_Obj *objPtr;
@@ -5842,10 +5745,8 @@ TclCompileUpvarCmd(
localTokenPtr = TokenAfter(otherTokenPtr);
CompileWord(envPtr, otherTokenPtr, interp, i);
- PushVarNameWord(interp, localTokenPtr, envPtr, TCL_CREATE_VAR,
- &localIndex, &simpleVarName, &isScalar, i+1);
-
- if((localIndex < 0) || !isScalar) {
+ localIndex = LocalScalarFromToken(localTokenPtr, envPtr);
+ if (localIndex < 0) {
return TCL_ERROR;
}
TclEmitInstInt4(INST_UPVAR, localIndex, envPtr);
@@ -5889,7 +5790,7 @@ TclCompileNamespaceCmd(
CompileEnv *envPtr) /* Holds resulting instructions. */
{
Tcl_Token *tokenPtr, *otherTokenPtr, *localTokenPtr;
- int simpleVarName, isScalar, localIndex, numWords, i;
+ int localIndex, numWords, i;
DefineLineInformation; /* TIP #280 */
if (envPtr->procPtr == NULL) {
@@ -5934,10 +5835,8 @@ TclCompileNamespaceCmd(
localTokenPtr = TokenAfter(otherTokenPtr);
CompileWord(envPtr, otherTokenPtr, interp, i);
- PushVarNameWord(interp, localTokenPtr, envPtr, TCL_CREATE_VAR,
- &localIndex, &simpleVarName, &isScalar, i+1);
-
- if((localIndex < 0) || !isScalar) {
+ localIndex = LocalScalarFromToken(localTokenPtr, envPtr);
+ if (localIndex < 0) {
return TCL_ERROR;
}
TclEmitInstInt4(INST_NSUPVAR, localIndex, envPtr);
diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c
index 9142e2b..23dc0a4 100644
--- a/generic/tclCompExpr.c
+++ b/generic/tclCompExpr.c
@@ -1883,7 +1883,7 @@ ParseLexeme(
case 'i':
if ((numBytes > 1) && (start[1] == 'n')
- && ((numBytes == 2) || !isalpha(UCHAR(start[2])))) {
+ && ((numBytes == 2) || start[2] & 0x80 || !isalpha(UCHAR(start[2])))) {
/*
* Must make this check so we can tell the difference between
@@ -1898,14 +1898,15 @@ ParseLexeme(
case 'e':
if ((numBytes > 1) && (start[1] == 'q')
- && ((numBytes == 2) || !isalpha(UCHAR(start[2])))) {
+ && ((numBytes == 2) || start[2] & 0x80 || !isalpha(UCHAR(start[2])))) {
*lexemePtr = STREQ;
return 2;
}
break;
case 'n':
- if ((numBytes > 1) && ((numBytes == 2) || !isalpha(UCHAR(start[2])))) {
+ if ((numBytes > 1)
+ && ((numBytes == 2) || start[2] & 0x80 || !isalpha(UCHAR(start[2])))) {
switch (start[1]) {
case 'e':
*lexemePtr = STRNEQ;
@@ -1920,8 +1921,7 @@ ParseLexeme(
literal = Tcl_NewObj();
if (TclParseNumber(NULL, literal, NULL, start, numBytes, &end,
TCL_PARSE_NO_WHITESPACE) == TCL_OK) {
- if (end < start + numBytes && !isalnum(UCHAR(*end))
- && UCHAR(*end) != '_') {
+ if (end < start + numBytes && !TclIsBareword(*end)) {
number:
TclInitStringRep(literal, start, end-start);
@@ -1945,7 +1945,7 @@ ParseLexeme(
if (literal->typePtr == &tclDoubleType) {
const char *p = start;
while (p < end) {
- if (!isalnum(UCHAR(*p++))) {
+ if (!TclIsBareword(*p++)) {
/*
* The number has non-bareword characters, so we
* must treat it as a number.
@@ -1969,31 +1969,29 @@ ParseLexeme(
}
}
- if (Tcl_UtfCharComplete(start, numBytes)) {
- scanned = Tcl_UtfToUniChar(start, &ch);
- } else {
- char utfBytes[TCL_UTF_MAX];
- memcpy(utfBytes, start, (size_t) numBytes);
- utfBytes[numBytes] = '\0';
- scanned = Tcl_UtfToUniChar(utfBytes, &ch);
- }
- if (!isalnum(UCHAR(ch))) {
- *lexemePtr = INVALID;
- Tcl_DecrRefCount(literal);
- return scanned;
- }
- end = start;
- while (isalnum(UCHAR(ch)) || (UCHAR(ch) == '_')) {
- end += scanned;
- numBytes -= scanned;
- if (Tcl_UtfCharComplete(end, numBytes)) {
- scanned = Tcl_UtfToUniChar(end, &ch);
+ /*
+ * We reject leading underscores in bareword. No sensible reason why.
+ * Might be inspired by reserved identifier rules in C, which of course
+ * have no direct relevance here.
+ */
+
+ if (!TclIsBareword(*start) || *start == '_') {
+ if (Tcl_UtfCharComplete(start, numBytes)) {
+ scanned = Tcl_UtfToUniChar(start, &ch);
} else {
char utfBytes[TCL_UTF_MAX];
- memcpy(utfBytes, end, (size_t) numBytes);
+ memcpy(utfBytes, start, (size_t) numBytes);
utfBytes[numBytes] = '\0';
scanned = Tcl_UtfToUniChar(utfBytes, &ch);
}
+ *lexemePtr = INVALID;
+ Tcl_DecrRefCount(literal);
+ return scanned;
+ }
+ end = start;
+ while (numBytes && TclIsBareword(*end)) {
+ end += 1;
+ numBytes -= 1;
}
*lexemePtr = BAREWORD;
if (literalPtr) {
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index f982359..5030f89 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -2288,8 +2288,8 @@ TclFindCompiledLocal(
* scalar or array variable. If NULL, a
* temporary var should be created. */
int nameBytes, /* Number of bytes in the name. */
- int create, /* If 1, allocate a local frame entry for the
- * variable if it is new. */
+ int create, /* If non-zero, allocate a local frame entry
+ * for the variable if it is new. */
register Proc *procPtr) /* Points to structure describing procedure
* containing the variable reference. */
{
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index 1842fb6..54a49aa 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -2283,7 +2283,7 @@ UtfToUtfProc(
*dst++ = *src++;
} else if (pureNullMode == 1 && UCHAR(*src) == 0xc0 &&
- UCHAR(*(src+1)) == 0x80) {
+ (src + 1 < srcEnd) && UCHAR(*(src+1)) == 0x80) {
/*
* Convert 0xc080 to real nulls when we are in output mode.
*/
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index c4f9836..b9415e5 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -75,9 +75,7 @@ int tclTraceExec = 0;
static const char *const operatorStrings[] = {
"||", "&&", "|", "^", "&", "==", "!=", "<", ">", "<=", ">=", "<<", ">>",
- "+", "-", "*", "/", "%", "+", "-", "~", "!",
- "BUILTIN FUNCTION", "FUNCTION",
- "", "", "", "", "", "", "", "", "eq", "ne"
+ "+", "-", "*", "/", "%", "+", "-", "~", "!"
};
/*
@@ -7714,7 +7712,7 @@ IllegalExprOperandType(
if (opcode == INST_EXPON) {
operator = "**";
- } else if (opcode <= INST_STR_NEQ) {
+ } else if (opcode <= INST_LNOT) {
operator = operatorStrings[opcode - INST_LOR];
}
diff --git a/generic/tclFileName.c b/generic/tclFileName.c
index 07757d9..a8360fc 100644
--- a/generic/tclFileName.c
+++ b/generic/tclFileName.c
@@ -225,9 +225,9 @@ ExtractWinRoot(
if ((path[0] == 'c' || path[0] == 'C')
&& (path[1] == 'o' || path[1] == 'O')) {
if ((path[2] == 'm' || path[2] == 'M')
- && path[3] >= '1' && path[3] <= '4') {
+ && path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'com[1-4]:?', which is a serial port.
+ * May have match for 'com[1-9]:?', which is a serial port.
*/
if (path[4] == '\0') {
@@ -247,9 +247,9 @@ ExtractWinRoot(
} else if ((path[0] == 'l' || path[0] == 'L')
&& (path[1] == 'p' || path[1] == 'P')
&& (path[2] == 't' || path[2] == 'T')) {
- if (path[3] >= '1' && path[3] <= '3') {
+ if (path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'lpt[1-3]:?'
+ * May have match for 'lpt[1-9]:?'
*/
if (path[4] == '\0') {
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 10fc377..1b0d0ab 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -166,6 +166,7 @@ static ChannelBuffer * AllocChannelBuffer(int length);
static void PreserveChannelBuffer(ChannelBuffer *bufPtr);
static void ReleaseChannelBuffer(ChannelBuffer *bufPtr);
static int IsShared(ChannelBuffer *bufPtr);
+static void ChannelFree(Channel *chanPtr);
static void ChannelTimerProc(ClientData clientData);
static int ChanRead(Channel *chanPtr, char *dst, int dstSize);
static int CheckChannelErrors(ChannelState *statePtr,
@@ -178,7 +179,6 @@ static void CleanupChannelHandlers(Tcl_Interp *interp,
static int CloseChannel(Tcl_Interp *interp, Channel *chanPtr,
int errorCode);
static void CommonGetsCleanup(Channel *chanPtr);
-static int CopyBuffer(Channel *chanPtr, char *result, int space);
static int CopyData(CopyState *csPtr, int mask);
static void CopyEventProc(ClientData clientData, int mask);
static void CreateScriptRecord(Tcl_Interp *interp,
@@ -284,7 +284,7 @@ static int WillRead(Channel *chanPtr);
#define IsBufferEmpty(bufPtr) ((bufPtr)->nextAdded == (bufPtr)->nextRemoved)
-#define IsBufferFull(bufPtr) ((bufPtr)->nextAdded >= (bufPtr)->bufLength)
+#define IsBufferFull(bufPtr) ((bufPtr) && (bufPtr)->nextAdded >= (bufPtr)->bufLength)
#define IsBufferOverflowing(bufPtr) ((bufPtr)->nextAdded > (bufPtr)->bufLength)
@@ -386,7 +386,11 @@ ChanRead(
* Each read op must set the blocked and eof states anew, not let
* the effect of prior reads leak through.
*/
+ if (GotFlag(chanPtr->state, CHANNEL_EOF)) {
+ chanPtr->state->inputEncodingFlags |= TCL_ENCODING_START;
+ }
ResetFlag(chanPtr->state, CHANNEL_BLOCKED | CHANNEL_EOF);
+ chanPtr->state->inputEncodingFlags &= ~TCL_ENCODING_END;
if (WillRead(chanPtr) < 0) {
return -1;
}
@@ -395,7 +399,11 @@ ChanRead(
dst, dstSize, &result);
/* Stop any flag leakage through stacked channel levels */
+ if (GotFlag(chanPtr->state, CHANNEL_EOF)) {
+ chanPtr->state->inputEncodingFlags |= TCL_ENCODING_START;
+ }
ResetFlag(chanPtr->state, CHANNEL_BLOCKED | CHANNEL_EOF);
+ chanPtr->state->inputEncodingFlags &= ~TCL_ENCODING_END;
if (bytesRead > 0) {
/*
* If we get a short read, signal up that we may be BLOCKED.
@@ -536,6 +544,8 @@ TclFinalizeIOSubsystem(void)
* for all data to flush out.
*/
+ TclChannelPreserve((Tcl_Channel)chanPtr);
+
(void) Tcl_SetChannelOption(NULL, (Tcl_Channel) chanPtr,
"-blocking", "on");
@@ -587,6 +597,7 @@ TclFinalizeIOSubsystem(void)
chanPtr->instanceData = NULL;
SetFlag(statePtr, CHANNEL_DEAD);
}
+ TclChannelRelease((Tcl_Channel)chanPtr);
}
}
@@ -1148,15 +1159,6 @@ Tcl_UnregisterChannel(
*/
if (statePtr->refCount <= 0) {
- /*
- * Ensure that if there is another buffer, it gets flushed whether or
- * not we are doing a background flush.
- */
-
- if ((statePtr->curOutPtr != NULL) &&
- IsBufferReady(statePtr->curOutPtr)) {
- SetFlag(statePtr, BUFFER_READY);
- }
Tcl_Preserve((ClientData)statePtr);
if (!GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
/*
@@ -1557,6 +1559,7 @@ Tcl_CreateChannel(
chanPtr->upChanPtr = NULL;
chanPtr->inQueueHead = NULL;
chanPtr->inQueueTail = NULL;
+ chanPtr->refCount = 0;
/*
* TIP #219, Tcl Channel Reflection API
@@ -1772,6 +1775,7 @@ Tcl_StackChannel(
chanPtr->upChanPtr = NULL;
chanPtr->inQueueHead = NULL;
chanPtr->inQueueTail = NULL;
+ chanPtr->refCount = 0;
/*
* Place new block at the head of a possibly existing list of previously
@@ -1799,6 +1803,41 @@ Tcl_StackChannel(
return (Tcl_Channel) chanPtr;
}
+
+void
+TclChannelPreserve(
+ Tcl_Channel chan)
+{
+ ((Channel *)chan)->refCount++;
+}
+
+void
+TclChannelRelease(
+ Tcl_Channel chan)
+{
+ Channel *chanPtr = (Channel *) chan;
+
+ if (chanPtr->refCount == 0) {
+ Tcl_Panic("Channel released more than preserved");
+ }
+ if (--chanPtr->refCount) {
+ return;
+ }
+ if (chanPtr->typePtr == NULL) {
+ ckfree((char *)chanPtr);
+ }
+}
+
+static void
+ChannelFree(
+ Channel *chanPtr)
+{
+ if (chanPtr->refCount == 0) {
+ ckfree((char *)chanPtr);
+ return;
+ }
+ chanPtr->typePtr = NULL;
+}
/*
*----------------------------------------------------------------------
@@ -1957,13 +1996,8 @@ Tcl_UnstackChannel(
interp, 0);
}
- chanPtr->typePtr = NULL;
+ ChannelFree(chanPtr);
- /*
- * AK: Tcl_NotifyChannel may hold a reference to this block of memory
- */
-
- Tcl_EventuallyFree(chanPtr, TCL_DYNAMIC);
UpdateInterest(statePtr->topChanPtr);
if (result != 0) {
@@ -2424,6 +2458,11 @@ DiscardOutputQueued(
}
statePtr->outQueueHead = NULL;
statePtr->outQueueTail = NULL;
+ bufPtr = statePtr->curOutPtr;
+ if (bufPtr && BytesLeft(bufPtr)) {
+ statePtr->curOutPtr = NULL;
+ RecycleBuffer(statePtr, bufPtr, 0);
+ }
}
/*
@@ -2490,8 +2529,6 @@ FlushChannel(
ChannelState *statePtr = chanPtr->state;
/* State of the channel stack. */
ChannelBuffer *bufPtr; /* Iterates over buffered output queue. */
- int toWrite; /* Amount of output data in current buffer
- * available to be written. */
int written; /* Amount of output data actually written in
* current round. */
int errorCode = 0; /* Stores POSIX error codes from channel
@@ -2510,42 +2547,52 @@ FlushChannel(
return -1;
}
- /*
- * If the queue is empty and there is a ready current buffer, OR if
- * the current buffer is full, then move the current buffer to the
- * queue.
- */
-
-start:
- if (((statePtr->curOutPtr != NULL) &&
- IsBufferFull(statePtr->curOutPtr))
- || (GotFlag(statePtr, BUFFER_READY) &&
- (statePtr->outQueueHead == NULL))) {
- ResetFlag(statePtr, BUFFER_READY);
- statePtr->curOutPtr->nextPtr = NULL;
- if (statePtr->outQueueHead == NULL) {
- statePtr->outQueueHead = statePtr->curOutPtr;
- } else {
- statePtr->outQueueTail->nextPtr = statePtr->curOutPtr;
- }
- statePtr->outQueueTail = statePtr->curOutPtr;
- statePtr->curOutPtr = NULL;
+ /*
+ * Should we shift the current output buffer over to the output queue?
+ * First check that there are bytes in it. If so then...
+ * If the output queue is empty, then yes, trusting the caller called
+ * us only when written bytes ought to be flushed.
+ * If the current output buffer is full, then yes, so we can meet
+ * the post-condition that on a successful return to caller we've
+ * left space in the current output buffer for more writing (the flush
+ * call was to make new room).
+ * If the channel is blocking, then yes, so we guarantee that
+ * blocking flushes actually flush all pending data.
+ * Otherwise, no. Keep the current output buffer where it is so more
+ * can be written to it, possibly filling it, to promote more efficient
+ * buffer usage.
+ */
+
+ bufPtr = statePtr->curOutPtr;
+ if (bufPtr && BytesLeft(bufPtr) && /* Keep empties off queue */
+ (statePtr->outQueueHead == NULL || IsBufferFull(bufPtr)
+ || !GotFlag(statePtr, CHANNEL_NONBLOCKING))) {
+ if (statePtr->outQueueHead == NULL) {
+ statePtr->outQueueHead = bufPtr;
+ } else {
+ statePtr->outQueueTail->nextPtr = bufPtr;
}
+ statePtr->outQueueTail = bufPtr;
+ statePtr->curOutPtr = NULL;
+ }
- /*
- * If we are not being called from an async flush and an async flush
- * is active, we just return without producing any output.
- */
+ assert(!IsBufferFull(statePtr->curOutPtr));
- if (!calledFromAsyncFlush && GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
- return 0;
- }
+ /*
+ * If we are not being called from an async flush and an async flush
+ * is active, we just return without producing any output.
+ */
+
+ if (!calledFromAsyncFlush && GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
+ return 0;
+ }
/*
* Loop over the queued buffers and attempt to flush as much as possible
* of the queued output to the channel.
*/
+ TclChannelPreserve((Tcl_Channel)chanPtr);
while (statePtr->outQueueHead) {
bufPtr = statePtr->outQueueHead;
@@ -2554,13 +2601,8 @@ start:
*/
PreserveChannelBuffer(bufPtr);
- toWrite = BytesLeft(bufPtr);
- if (toWrite == 0) {
- written = 0;
- } else {
- written = (chanPtr->typePtr->outputProc)(chanPtr->instanceData,
- RemovePoint(bufPtr), toWrite, &errorCode);
- }
+ written = (chanPtr->typePtr->outputProc)(chanPtr->instanceData,
+ RemovePoint(bufPtr), BytesLeft(bufPtr), &errorCode);
/*
* If the write failed completely attempt to start the asynchronous
@@ -2666,8 +2708,10 @@ start:
DiscardOutputQueued(statePtr);
ReleaseChannelBuffer(bufPtr);
- continue;
+ break;
} else {
+ /* TODO: Consider detecting and reacting to short writes
+ * on blocking channels. Ought not happen. See iocmd-24.2. */
wroteSome = 1;
}
@@ -2685,7 +2729,7 @@ start:
RecycleBuffer(statePtr, bufPtr, 0);
}
ReleaseChannelBuffer(bufPtr);
- } /* Closes "while (1)". */
+ } /* Closes "while". */
/*
* If we wrote some data while flushing in the background, we are done.
@@ -2696,14 +2740,18 @@ start:
if (GotFlag(statePtr, BG_FLUSH_SCHEDULED)) {
if (wroteSome) {
- return errorCode;
+ goto done;
} else if (statePtr->outQueueHead == NULL) {
ResetFlag(statePtr, BG_FLUSH_SCHEDULED);
(chanPtr->typePtr->watchProc)(chanPtr->instanceData,
statePtr->interestMask);
+ } else {
+ /* TODO: If code reaches this point, it means a writable
+ * event is being handled on the channel, but the channel
+ * could not in fact be written to. This ought not happen,
+ * but Unix pipes appear to act this way (see io-53.4).
+ * Also can imagine broken reflected channels. */
}
- } else if (statePtr->curOutPtr && BytesLeft(statePtr->curOutPtr)) {
- goto start;
}
/*
@@ -2716,8 +2764,10 @@ start:
(statePtr->outQueueHead == NULL) &&
((statePtr->curOutPtr == NULL) ||
IsBufferEmpty(statePtr->curOutPtr))) {
- return CloseChannel(interp, chanPtr, errorCode);
+ errorCode = CloseChannel(interp, chanPtr, errorCode);
}
+ done:
+ TclChannelRelease((Tcl_Channel)chanPtr);
return errorCode;
}
@@ -2888,9 +2938,9 @@ CloseChannel(
statePtr->topChanPtr = downChanPtr;
downChanPtr->upChanPtr = NULL;
- chanPtr->typePtr = NULL;
- Tcl_EventuallyFree(chanPtr, TCL_DYNAMIC);
+ ChannelFree(chanPtr);
+
return Tcl_Close(interp, (Tcl_Channel) downChanPtr);
}
@@ -2898,13 +2948,11 @@ CloseChannel(
* There is only the TOP Channel, so we free the remaining pointers we
* have and then ourselves. Since this is the last of the channels in the
* stack, make sure to free the ChannelState structure associated with it.
- * We use Tcl_EventuallyFree to allow for any last references.
*/
- chanPtr->typePtr = NULL;
+ ChannelFree(chanPtr);
Tcl_EventuallyFree(statePtr, TCL_DYNAMIC);
- Tcl_EventuallyFree(chanPtr, TCL_DYNAMIC);
return errorCode;
}
@@ -3209,11 +3257,18 @@ Tcl_Close(
stickyError = 0;
- if ((statePtr->encoding != NULL)
- && !(statePtr->outputEncodingFlags & TCL_ENCODING_START)
- && (CheckChannelErrors(statePtr, TCL_WRITABLE) == 0)) {
- statePtr->outputEncodingFlags |= TCL_ENCODING_END;
- if (WriteChars(chanPtr, "", 0) < 0) {
+ if (GotFlag(statePtr, TCL_WRITABLE) && (statePtr->encoding != NULL)
+ && !(statePtr->outputEncodingFlags & TCL_ENCODING_START)) {
+
+ int code = CheckChannelErrors(statePtr, TCL_WRITABLE);
+
+ if (code == 0) {
+ statePtr->outputEncodingFlags |= TCL_ENCODING_END;
+ code = WriteChars(chanPtr, "", 0);
+ statePtr->outputEncodingFlags &= ~TCL_ENCODING_END;
+ statePtr->outputEncodingFlags |= TCL_ENCODING_START;
+ }
+ if (code < 0) {
stickyError = Tcl_GetErrno();
}
@@ -3248,14 +3303,6 @@ Tcl_Close(
ResetFlag(statePtr, CHANNEL_INCLOSE);
/*
- * Ensure that the last output buffer will be flushed.
- */
-
- if ((statePtr->curOutPtr != NULL) && IsBufferReady(statePtr->curOutPtr)) {
- SetFlag(statePtr, BUFFER_READY);
- }
-
- /*
* If this channel supports it, close the read side, since we don't need
* it anymore and this will help avoid deadlocks on some channel types.
*/
@@ -3460,7 +3507,10 @@ Tcl_Write(
if (srcLen < 0) {
srcLen = strlen(src);
}
- return WriteBytes(chanPtr, src, srcLen);
+ if (WriteBytes(chanPtr, src, srcLen) < 0) {
+ return -1;
+ }
+ return srcLen;
}
/*
@@ -3665,10 +3715,17 @@ static int WillRead(Channel *chanPtr)
}
if ((chanPtr->typePtr->seekProc != NULL)
&& (Tcl_OutputBuffered((Tcl_Channel) chanPtr) > 0)) {
- if ((chanPtr->state->curOutPtr != NULL)
- && IsBufferReady(chanPtr->state->curOutPtr)) {
- SetFlag(chanPtr->state, BUFFER_READY);
- }
+
+ /*
+ * CAVEAT - The assumption here is that FlushChannel() will
+ * push out the bytes of any writes that are in progress.
+ * Since this is a seekable channel, we assume it is not one
+ * that can block and force bg flushing. Channels we know that
+ * can do that -- sockets, pipes -- are not seekable. If the
+ * assumption is wrong, more drastic measures may be required here
+ * like temporarily setting the channel into blocking mode.
+ */
+
if (FlushChannel(NULL, chanPtr, 0) != 0) {
return -1;
}
@@ -3850,7 +3907,6 @@ Write(
}
if ((flushed < total) && (GotFlag(statePtr, CHANNEL_UNBUFFERED) ||
(needNlFlush && GotFlag(statePtr, CHANNEL_LINEBUFFERED)))) {
- SetFlag(statePtr, BUFFER_READY);
if (FlushChannel(NULL, chanPtr, 0) != 0) {
return -1;
}
@@ -3940,8 +3996,22 @@ Tcl_GetsObj(
Tcl_EncodingState oldState;
if (CheckChannelErrors(statePtr, TCL_READABLE) != 0) {
- copiedTotal = -1;
- goto done;
+ return -1;
+ }
+
+ /*
+ * If we're sitting ready to read the eofchar, there's no need to
+ * do it.
+ */
+
+ if (GotFlag(statePtr, CHANNEL_STICKY_EOF)) {
+ SetFlag(statePtr, CHANNEL_EOF);
+ assert( statePtr->inputEncodingFlags & TCL_ENCODING_END );
+ assert( !GotFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR) );
+
+ /* TODO: Do we need this? */
+ UpdateInterest(chanPtr);
+ return -1;
}
/*
@@ -3961,7 +4031,7 @@ Tcl_GetsObj(
*/
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
bufPtr = statePtr->inQueueHead;
encoding = statePtr->encoding;
@@ -4010,6 +4080,7 @@ Tcl_GetsObj(
eof = NULL;
inEofChar = statePtr->inEofChar;
+ ResetFlag(statePtr, CHANNEL_BLOCKED);
while (1) {
if (dst >= dstEnd) {
if (FilterInputBytes(chanPtr, &gs) != 0) {
@@ -4161,6 +4232,7 @@ Tcl_GetsObj(
dstEnd = eof;
SetFlag(statePtr, CHANNEL_EOF | CHANNEL_STICKY_EOF);
statePtr->inputEncodingFlags |= TCL_ENCODING_END;
+ ResetFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR);
}
if (GotFlag(statePtr, CHANNEL_EOF)) {
skip = 0;
@@ -4197,9 +4269,9 @@ Tcl_GetsObj(
*/
if (chanPtr != statePtr->topChanPtr) {
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
}
bufPtr = gs.bufPtr;
@@ -4235,9 +4307,9 @@ Tcl_GetsObj(
* self-modifying reflected transforms.
*/
if (chanPtr != statePtr->topChanPtr) {
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
}
bufPtr = statePtr->inQueueHead;
if (bufPtr != NULL) {
@@ -4274,17 +4346,24 @@ Tcl_GetsObj(
*/
done:
+ assert(!GotFlag(statePtr, CHANNEL_EOF)
+ || GotFlag(statePtr, CHANNEL_STICKY_EOF)
+ || Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0);
+
+ assert( !(GotFlag(statePtr, CHANNEL_EOF|CHANNEL_BLOCKED)
+ == (CHANNEL_EOF|CHANNEL_BLOCKED)) );
+
/*
* Regenerate the top channel, in case it was changed due to
* self-modifying reflected transforms.
*/
if (chanPtr != statePtr->topChanPtr) {
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
}
UpdateInterest(chanPtr);
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
return copiedTotal;
}
@@ -4297,6 +4376,11 @@ Tcl_GetsObj(
* end-of-line or end-of-file has been seen. Bytes read from the input
* channel return as a ByteArray obj.
*
+ * WARNING! The notion of "binary" used here is different from
+ * notions of "binary" used in other places. In particular, this
+ * "binary" routine may be called when an -eofchar is set on the
+ * channel.
+ *
* Results:
* Number of characters accumulated in the object or -1 if error,
* blocked, or EOF. If -1, use Tcl_GetErrno() to retrieve the POSIX error
@@ -4330,7 +4414,7 @@ TclGetsObjBinary(
*/
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
bufPtr = statePtr->inQueueHead;
@@ -4354,6 +4438,7 @@ TclGetsObjBinary(
/* Only handle TCL_TRANSLATE_LF and TCL_TRANSLATE_CR */
eolChar = (statePtr->inputTranslation == TCL_TRANSLATE_LF) ? '\n' : '\r';
+ ResetFlag(statePtr, CHANNEL_BLOCKED);
while (1) {
/*
* Subtract the number of bytes that were removed from channel
@@ -4373,11 +4458,6 @@ TclGetsObjBinary(
* hasn't seen EOL. Need to read more bytes from the channel
* device. Side effect is to allocate another channel buffer.
*/
-
- if (GotFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_NONBLOCKING)
- == (CHANNEL_BLOCKED|CHANNEL_NONBLOCKING)) {
- goto restore;
- }
if (GetInput(chanPtr) != 0) {
goto restore;
}
@@ -4385,6 +4465,17 @@ TclGetsObjBinary(
if (bufPtr == NULL) {
goto restore;
}
+ } else {
+ /*
+ * Incoming CHANNEL_STICKY_EOF is filtered out on entry.
+ * A new CHANNEL_STICKY_EOF set in this routine leads to
+ * return before coming back here. When we are not dealing
+ * with CHANNEL_STICKY_EOF, a CHANNEL_EOF implies an
+ * empty buffer. Here the buffer is non-empty so we know
+ * we're a non-EOF */
+
+ assert ( !GotFlag(statePtr, CHANNEL_STICKY_EOF) );
+ assert ( !GotFlag(statePtr, CHANNEL_EOF) );
}
dst = (unsigned char *) RemovePoint(bufPtr);
@@ -4426,6 +4517,7 @@ TclGetsObjBinary(
SetFlag(statePtr, CHANNEL_EOF | CHANNEL_STICKY_EOF);
statePtr->inputEncodingFlags |= TCL_ENCODING_END;
+ ResetFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR);
}
if (GotFlag(statePtr, CHANNEL_EOF)) {
skip = 0;
@@ -4444,6 +4536,10 @@ TclGetsObjBinary(
}
goto gotEOL;
}
+ if (GotFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_NONBLOCKING)
+ == (CHANNEL_BLOCKED|CHANNEL_NONBLOCKING)) {
+ goto restore;
+ }
/*
* Copy bytes from the channel buffer to the ByteArray.
@@ -4531,8 +4627,13 @@ TclGetsObjBinary(
*/
done:
+ assert(!GotFlag(statePtr, CHANNEL_EOF)
+ || GotFlag(statePtr, CHANNEL_STICKY_EOF)
+ || Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0);
+ assert( !(GotFlag(statePtr, CHANNEL_EOF|CHANNEL_BLOCKED)
+ == (CHANNEL_EOF|CHANNEL_BLOCKED)) );
UpdateInterest(chanPtr);
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
return copiedTotal;
}
@@ -4643,6 +4744,12 @@ FilterInputBytes(
*/
read:
+ if (GotFlag(statePtr, CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)
+ == (CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)) {
+ gsPtr->charsWrote = 0;
+ gsPtr->rawRead = 0;
+ return -1;
+ }
if (GetInput(chanPtr) != 0) {
gsPtr->charsWrote = 0;
gsPtr->rawRead = 0;
@@ -4655,6 +4762,17 @@ FilterInputBytes(
gsPtr->rawRead = 0;
return -1;
}
+ } else {
+ /*
+ * Incoming CHANNEL_STICKY_EOF is filtered out on entry.
+ * A new CHANNEL_STICKY_EOF set in this routine leads to
+ * return before coming back here. When we are not dealing
+ * with CHANNEL_STICKY_EOF, a CHANNEL_EOF implies an
+ * empty buffer. Here the buffer is non-empty so we know
+ * we're a non-EOF */
+
+ assert ( !GotFlag(statePtr, CHANNEL_STICKY_EOF) );
+ assert ( !GotFlag(statePtr, CHANNEL_EOF) );
}
/*
@@ -4733,12 +4851,6 @@ FilterInputBytes(
* some more, but avoid blocking on a non-blocking channel.
*/
- if (GotFlag(statePtr, CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)
- == (CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)) {
- gsPtr->charsWrote = 0;
- gsPtr->rawRead = 0;
- return -1;
- }
goto read;
}
} else {
@@ -4977,63 +5089,87 @@ Tcl_Read(
int
Tcl_ReadRaw(
Tcl_Channel chan, /* The channel from which to read. */
- char *bufPtr, /* Where to store input read. */
+ char *readBuf, /* Where to store input read. */
int bytesToRead) /* Maximum number of bytes to read. */
{
Channel *chanPtr = (Channel *) chan;
ChannelState *statePtr = chanPtr->state;
/* State info for channel */
- int nread, copied, copiedNow = INT_MAX;
-
- /*
- * The check below does too much because it will reject a call to this
- * function with a channel which is part of an 'fcopy'. But we have to
- * allow this here or else the chaining in the transformation drivers will
- * fail with 'file busy' error instead of retrieving and transforming the
- * data to copy.
- *
- * We let the check procedure now believe that there is no fcopy in
- * progress. A better solution than this might be an additional flag
- * argument to switch off specific checks.
- */
+ int copied = 0;
+ assert(bytesToRead > 0);
if (CheckChannelErrors(statePtr, TCL_READABLE | CHANNEL_RAW_MODE) != 0) {
return -1;
}
+ /* First read bytes from the push-back buffers. */
+
+ while (chanPtr->inQueueHead && bytesToRead > 0) {
+ ChannelBuffer *bufPtr = chanPtr->inQueueHead;
+ int bytesInBuffer = BytesLeft(bufPtr);
+ int toCopy = (bytesInBuffer < bytesToRead) ? bytesInBuffer
+ : bytesToRead;
+
+ /* Copy the current chunk into the read buffer. */
+
+ memcpy(readBuf, RemovePoint(bufPtr), (size_t) toCopy);
+ bufPtr->nextRemoved += toCopy;
+ copied += toCopy;
+ readBuf += toCopy;
+ bytesToRead -= toCopy;
+
+ /* If the current buffer is empty recycle it. */
+
+ if (IsBufferEmpty(bufPtr)) {
+ chanPtr->inQueueHead = bufPtr->nextPtr;
+ if (chanPtr->inQueueHead == NULL) {
+ chanPtr->inQueueTail = NULL;
+ }
+ RecycleBuffer(chanPtr->state, bufPtr, 0);
+ }
+ }
+
/*
- * Check for information in the push-back buffers. If there is some, use
- * it. Go to the driver only if there is none (anymore) and the caller
- * requests more bytes.
+ * Go to the driver only if we got nothing from pushback.
+ * Have to do it this way to avoid EOF mis-timings when we
+ * consider the ability that EOF may not be a permanent
+ * condition in the driver, and in that case we have to
+ * synchronize.
*/
- Tcl_Preserve(chanPtr);
- for (copied = 0; bytesToRead > 0 && copiedNow > 0;
- bufPtr+=copiedNow, bytesToRead-=copiedNow, copied+=copiedNow) {
- copiedNow = CopyBuffer(chanPtr, bufPtr, bytesToRead);
+ if (copied) {
+ return copied;
}
+ /* This test not needed. */
if (bytesToRead > 0) {
- /*
- * Now go to the driver to get as much as is possible to
- * fill the remaining request. Since we're directly filling
- * the caller's buffer, retain the blocked flag.
- */
- nread = ChanRead(chanPtr, bufPtr, bytesToRead);
- if (nread < 0) {
+ int nread = ChanRead(chanPtr, readBuf, bytesToRead);
+
+ if (nread > 0) {
+ /* Successful read (short is OK) - add to bytes copied */
+ copied += nread;
+ } else if (nread < 0) {
+ /*
+ * An error signaled. If CHANNEL_BLOCKED, then the error
+ * is not real, but an indication of blocked state. In
+ * that case, retain the flag and let caller receive the
+ * short read of copied bytes from the pushback.
+ * HOWEVER, if copied==0 bytes from pushback then repeat
+ * signalling the blocked state as an error to caller so
+ * there is no false report of an EOF.
+ * When !CHANNEL_BLOCKED, the error is real and passes on
+ * to caller.
+ */
if (!GotFlag(statePtr, CHANNEL_BLOCKED) || copied == 0) {
copied = -1;
}
} else {
- copied += nread;
- }
- if (copied != 0) {
- ResetFlag(statePtr, CHANNEL_EOF);
+ /*
+ * nread == 0. Driver is at EOF. Let that state filter up.
+ */
}
}
-
- Tcl_Release(chanPtr);
return copied;
}
@@ -5130,19 +5266,11 @@ DoReadChars(
ChannelState *statePtr = chanPtr->state;
/* State info for channel */
ChannelBuffer *bufPtr;
- int factor, copied, copiedNow, result;
- Tcl_Encoding encoding;
+ int copied, copiedNow, result;
+ Tcl_Encoding encoding = statePtr->encoding;
int binaryMode;
#define UTF_EXPANSION_FACTOR 1024
-
- /*
- * This operation should occur at the top of a channel stack.
- */
-
- chanPtr = statePtr->topChanPtr;
- encoding = statePtr->encoding;
- factor = UTF_EXPANSION_FACTOR;
- Tcl_Preserve(chanPtr);
+ int factor = UTF_EXPANSION_FACTOR;
binaryMode = (encoding == NULL)
&& (statePtr->inputTranslation == TCL_TRANSLATE_LF)
@@ -5166,8 +5294,46 @@ DoReadChars(
}
}
+ /*
+ * Early out when next read will see eofchar.
+ *
+ * NOTE: See DoRead for argument that it's a bug (one we're keeping)
+ * to have this escape before the one for zero-char read request.
+ */
+
+ if (GotFlag(statePtr, CHANNEL_STICKY_EOF)) {
+ SetFlag(statePtr, CHANNEL_EOF);
+ assert( statePtr->inputEncodingFlags & TCL_ENCODING_END );
+ assert( !GotFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR) );
+
+ UpdateInterest(chanPtr);
+ return 0;
+ }
+
+ /* Special handling for zero-char read request. */
+ if (toRead == 0) {
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
+ ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
+ UpdateInterest(chanPtr);
+ return 0;
+ }
+
+ /*
+ * This operation should occur at the top of a channel stack.
+ */
+
+ chanPtr = statePtr->topChanPtr;
+ TclChannelPreserve((Tcl_Channel)chanPtr);
+
/* Must clear the BLOCKED flag here since we check before reading */
- ResetFlag(statePtr, CHANNEL_BLOCKED);
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
+ ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
for (copied = 0; (unsigned) toRead > 0; ) {
copiedNow = -1;
if (statePtr->inQueueHead != NULL) {
@@ -5204,9 +5370,9 @@ DoReadChars(
}
result = GetInput(chanPtr);
if (chanPtr != statePtr->topChanPtr) {
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
}
if (result != 0) {
if (!GotFlag(statePtr, CHANNEL_BLOCKED)) {
@@ -5234,17 +5400,22 @@ DoReadChars(
* self-modifying reflected transforms.
*/
if (chanPtr != statePtr->topChanPtr) {
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
chanPtr = statePtr->topChanPtr;
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
}
/*
* Update the notifier state so we don't block while there is still data
* in the buffers.
*/
+ assert(!GotFlag(statePtr, CHANNEL_EOF)
+ || GotFlag(statePtr, CHANNEL_STICKY_EOF)
+ || Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0);
+ assert( !(GotFlag(statePtr, CHANNEL_EOF|CHANNEL_BLOCKED)
+ == (CHANNEL_EOF|CHANNEL_BLOCKED)) );
UpdateInterest(chanPtr);
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
return copied;
}
@@ -5366,7 +5537,7 @@ ReadChars(
* for sizing receiving buffers.
*/
- int toRead = ((unsigned) charsToRead > srcLen) ? srcLen : charsToRead;
+ int toRead = ((unsigned) charsToRead > (unsigned) srcLen) ? srcLen : charsToRead;
/*
* 'factor' is how much we guess that the bytes in the source buffer will
@@ -5405,16 +5576,28 @@ ReadChars(
dstLimit = dstNeeded + 1;
while (1) {
- int dstDecoded, dstRead, dstWrote, srcRead, numChars;
+ int dstDecoded, dstRead, dstWrote, srcRead, numChars, code;
/*
* Perform the encoding transformation. Read no more than
* srcLen bytes, write no more than dstLimit bytes.
+ *
+ * Some trickiness with encoding flags here. We do not want
+ * the end of a buffer to be treated as the end of all input
+ * when the presence of bytes in a next buffer are already
+ * known to exist. This is checked with an assert() because
+ * so far no test case causing the assertion to be false has
+ * been created. The normal operations of channel reading
+ * appear to cause EOF and TCL_ENCODING_END setting to appear
+ * only in situations where there are no further bytes in
+ * any buffers.
*/
- int code = Tcl_ExternalToUtf(NULL, encoding, src, srcLen,
- statePtr->inputEncodingFlags & (bufPtr->nextPtr
- ? ~0 : ~TCL_ENCODING_END), &statePtr->inputEncodingState,
+ assert(bufPtr->nextPtr == NULL || BytesLeft(bufPtr->nextPtr) == 0
+ || (statePtr->inputEncodingFlags & TCL_ENCODING_END) == 0);
+
+ code = Tcl_ExternalToUtf(NULL, encoding, src, srcLen,
+ statePtr->inputEncodingFlags, &statePtr->inputEncodingState,
dst, dstLimit, &srcRead, &dstDecoded, &numChars);
/*
@@ -5532,9 +5715,12 @@ ReadChars(
statePtr->inputEncodingFlags = savedIEFlags;
statePtr->inputEncodingState = savedState;
+ assert(bufPtr->nextPtr == NULL
+ || BytesLeft(bufPtr->nextPtr) == 0 || 0 ==
+ (statePtr->inputEncodingFlags & TCL_ENCODING_END));
+
Tcl_ExternalToUtf(NULL, encoding, src, srcLen,
- statePtr->inputEncodingFlags & (bufPtr->nextPtr
- ? ~0 : ~TCL_ENCODING_END), &statePtr->inputEncodingState,
+ statePtr->inputEncodingFlags, &statePtr->inputEncodingState,
buffer, TCL_UTF_MAX + 2, &read, &decoded, &count);
if (count == 2) {
@@ -5589,10 +5775,12 @@ ReadChars(
/*
* We read more chars than allowed. Reset limits to
- * prevent that and try again.
+ * prevent that and try again. Don't forget the extra
+ * padding of TCL_UTF_MAX bytes demanded by the
+ * Tcl_ExternalToUtf() call!
*/
- dstLimit = Tcl_UtfAtIndex(dst, charsToRead + 1) - dst;
+ dstLimit = Tcl_UtfAtIndex(dst, charsToRead) + TCL_UTF_MAX - dst;
statePtr->flags = savedFlags;
statePtr->inputEncodingFlags = savedIEFlags;
statePtr->inputEncodingState = savedState;
@@ -5670,8 +5858,12 @@ ReadChars(
consume:
bufPtr->nextRemoved += srcRead;
- if (dstWrote > srcRead + 1) {
- *factorPtr = dstWrote * UTF_EXPANSION_FACTOR / srcRead;
+ /*
+ * If this read contained multibyte characters, revise factorPtr
+ * so the next read will allocate bigger buffers.
+ */
+ if (numChars && numChars < srcRead) {
+ *factorPtr = srcRead * UTF_EXPANSION_FACTOR / numChars;
}
Tcl_SetObjLength(objPtr, numBytes + dstWrote);
return numChars;
@@ -5845,7 +6037,7 @@ TranslateInputEOL(
SetFlag(statePtr, CHANNEL_EOF | CHANNEL_STICKY_EOF);
statePtr->inputEncodingFlags |= TCL_ENCODING_END;
- ResetFlag(statePtr, INPUT_SAW_CR);
+ ResetFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR);
}
}
@@ -5902,9 +6094,13 @@ Tcl_Ungets(
/*
* Clear the EOF flags, and clear the BLOCKED bit.
*/
-
+
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
ResetFlag(statePtr,
CHANNEL_BLOCKED | CHANNEL_STICKY_EOF | CHANNEL_EOF | INPUT_SAW_CR);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
bufPtr = AllocChannelBuffer(len);
memcpy(InsertPoint(bufPtr), str, (size_t) len);
@@ -5969,14 +6165,6 @@ Tcl_Flush(
return -1;
}
- /*
- * Force current output buffer to be output also.
- */
-
- if ((statePtr->curOutPtr != NULL) && IsBufferReady(statePtr->curOutPtr)) {
- SetFlag(statePtr, BUFFER_READY);
- }
-
result = FlushChannel(NULL, chanPtr, 0);
if (result != 0) {
return TCL_ERROR;
@@ -6063,6 +6251,14 @@ GetInput(
ChannelState *statePtr = chanPtr->state;
/* State info for channel */
+ /*
+ * Verify that all callers know better than to call us when
+ * it's recorded that the next char waiting to be read is the
+ * eofchar.
+ */
+
+ assert( !GotFlag(statePtr, CHANNEL_STICKY_EOF) );
+
/*
* Prevent reading from a dead channel -- a channel that has been closed
* but not yet deallocated, which can happen if the exit handler for
@@ -6074,18 +6270,24 @@ GetInput(
return EINVAL;
}
- /*
- * For a channel at EOF do not bother allocating buffers; there's
- * nothing more to read. Avoid calling the driver inputproc in
- * case some of them do not react well to additional calls after
- * they've reported an eof state..
- * TODO: Candidate for a can't happen panic.
+ /*
+ * WARNING: There was once a comment here claiming that it was
+ * a bad idea to make another call to the inputproc of a channel
+ * driver when EOF has already been detected on the channel. Through
+ * much of Tcl's history, this warning was then completely negated
+ * by having all (most?) read paths clear the EOF setting before
+ * reaching here. So we had a guard that was never triggered.
+ *
+ * Don't be tempted to restore the guard. Even if EOF is set on
+ * the channel, continue through and call the inputproc again. This
+ * is the way to enable the ability to [read] again beyond the EOF,
+ * which seems a strange thing to do, but for which use cases exist
+ * [Tcl Bug 5adc350683] and which may even be essential for channels
+ * representing things like ttys or other devices where the stream
+ * might take the logical form of a series of 'files' separated by
+ * an EOF condition.
*/
- if (GotFlag(statePtr, CHANNEL_EOF)) {
- return 0;
- }
-
/*
* First check for more buffers in the pushback area of the topmost
* channel in the stack and use them. They can be the result of a
@@ -6095,6 +6297,7 @@ GetInput(
if (chanPtr->inQueueHead != NULL) {
+ /* TODO: Tests to cover this. */
assert(statePtr->inQueueHead == NULL);
statePtr->inQueueHead = chanPtr->inQueueHead;
@@ -6116,9 +6319,8 @@ GetInput(
*/
bufPtr = statePtr->inQueueTail;
- if ((bufPtr != NULL) && !IsBufferFull(bufPtr)) {
- toRead = SpaceLeft(bufPtr);
- } else {
+
+ if ((bufPtr == NULL) || IsBufferFull(bufPtr)) {
bufPtr = statePtr->saveInBufPtr;
statePtr->saveInBufPtr = NULL;
@@ -6126,6 +6328,7 @@ GetInput(
* Check the actual buffersize against the requested buffersize.
* Saved buffers of the wrong size are squashed. This is done
* to honor dynamic changes of the buffersize made by the user.
+ * TODO: Tests to cover this.
*/
if ((bufPtr != NULL)
@@ -6148,6 +6351,8 @@ GetInput(
statePtr->inQueueTail->nextPtr = bufPtr;
}
statePtr->inQueueTail = bufPtr;
+ } else {
+ toRead = SpaceLeft(bufPtr);
}
PreserveChannelBuffer(bufPtr);
@@ -6265,8 +6470,12 @@ Tcl_Seek(
* point. Also clear CR related flags.
*/
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
statePtr->flags &=
~(CHANNEL_EOF | CHANNEL_STICKY_EOF | CHANNEL_BLOCKED | INPUT_SAW_CR);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
/*
* If the channel is in asynchronous output mode, switch it back to
@@ -6289,15 +6498,6 @@ Tcl_Seek(
}
/*
- * If there is data buffered in statePtr->curOutPtr then mark the channel
- * as ready to flush before invoking FlushChannel.
- */
-
- if ((statePtr->curOutPtr != NULL) && IsBufferReady(statePtr->curOutPtr)) {
- SetFlag(statePtr, BUFFER_READY);
- }
-
- /*
* If the flush fails we cannot recover the original position. In that
* case the seek is not attempted because we do not know where the access
* position is - instead we return the error. FlushChannel has already
@@ -6676,9 +6876,7 @@ Tcl_Eof(
ChannelState *statePtr = ((Channel *) chan)->state;
/* State of real channel structure. */
- return (GotFlag(statePtr, CHANNEL_STICKY_EOF) ||
- (GotFlag(statePtr, CHANNEL_EOF) &&
- (Tcl_InputBuffered(chan) == 0))) ? 1 : 0;
+ return GotFlag(statePtr, CHANNEL_EOF) ? 1 : 0;
}
/*
@@ -7394,8 +7592,12 @@ Tcl_SetChannelOption(
* ahead'. Ditto for blocked.
*/
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
statePtr->flags &=
~(CHANNEL_EOF | CHANNEL_STICKY_EOF | CHANNEL_BLOCKED);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
return TCL_OK;
} else if (HaveOpt(1, "-translation")) {
@@ -7651,7 +7853,7 @@ Tcl_NotifyChannel(
* Preserve the channel struct in case the script closes it.
*/
- Tcl_Preserve(channel);
+ TclChannelPreserve((Tcl_Channel)channel);
Tcl_Preserve(statePtr);
/*
@@ -7661,8 +7863,9 @@ Tcl_NotifyChannel(
*/
if (GotFlag(statePtr, BG_FLUSH_SCHEDULED) && (mask & TCL_WRITABLE)) {
- FlushChannel(NULL, chanPtr, 1);
- mask &= ~TCL_WRITABLE;
+ if (0 == FlushChannel(NULL, chanPtr, 1)) {
+ mask &= ~TCL_WRITABLE;
+ }
}
/*
@@ -7682,7 +7885,7 @@ Tcl_NotifyChannel(
if ((chPtr->mask & mask) != 0) {
nh.nextHandlerPtr = chPtr->nextPtr;
- (*(chPtr->proc))(chPtr->clientData, mask);
+ (*(chPtr->proc))(chPtr->clientData, chPtr->mask & mask);
chPtr = nh.nextHandlerPtr;
} else {
chPtr = chPtr->nextPtr;
@@ -7700,7 +7903,7 @@ Tcl_NotifyChannel(
}
Tcl_Release(statePtr);
- Tcl_Release(channel);
+ TclChannelRelease(channel);
tsdPtr->nestedHandlerPtr = nh.nestedHandlerPtr;
}
@@ -8180,7 +8383,7 @@ TclChannelEventScriptInvoker(
*/
Tcl_Preserve(interp);
- Tcl_Preserve(chanPtr);
+ TclChannelPreserve((Tcl_Channel)chanPtr);
result = Tcl_EvalObjEx(interp, esPtr->scriptPtr, TCL_EVAL_GLOBAL);
/*
@@ -8197,7 +8400,7 @@ TclChannelEventScriptInvoker(
}
TclBackgroundException(interp, result);
}
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
Tcl_Release(interp);
}
@@ -8799,7 +9002,41 @@ DoRead(
ChannelState *statePtr = chanPtr->state;
char *p = dst;
- Tcl_Preserve(chanPtr);
+ assert (bytesToRead >= 0);
+
+ /*
+ * Early out when we know a read will get the eofchar.
+ *
+ * NOTE: This seems to be a bug. The special handling for
+ * a zero-char read request ought to come first. As coded
+ * the EOF due to eofchar has distinguishing behavior from
+ * the EOF due to reported EOF on the underlying device, and
+ * that seems undesirable. However recent history indicates
+ * that new inconsistent behavior in a patchlevel has problems
+ * too. Keep on keeping on for now.
+ */
+
+ if (GotFlag(statePtr, CHANNEL_STICKY_EOF)) {
+ SetFlag(statePtr, CHANNEL_EOF);
+ assert( statePtr->inputEncodingFlags & TCL_ENCODING_END );
+ assert( !GotFlag(statePtr, CHANNEL_BLOCKED|INPUT_SAW_CR) );
+
+ UpdateInterest(chanPtr);
+ return 0;
+ }
+
+ /* Special handling for zero-char read request. */
+ if (bytesToRead == 0) {
+ if (GotFlag(statePtr, CHANNEL_EOF)) {
+ statePtr->inputEncodingFlags |= TCL_ENCODING_START;
+ }
+ ResetFlag(statePtr, CHANNEL_BLOCKED|CHANNEL_EOF);
+ statePtr->inputEncodingFlags &= ~TCL_ENCODING_END;
+ UpdateInterest(chanPtr);
+ return 0;
+ }
+
+ TclChannelPreserve((Tcl_Channel)chanPtr);
while (bytesToRead) {
/*
* Each pass through the loop is intended to process up to
@@ -8810,18 +9047,14 @@ DoRead(
ChannelBuffer *bufPtr = statePtr->inQueueHead;
/*
- * When there's no buffered data to read, and we're at EOF,
- * escape to the caller.
+ * Don't read more data if we have what we need.
*/
- if (GotFlag(statePtr, CHANNEL_EOF)
- && (bufPtr == NULL || IsBufferEmpty(bufPtr))) {
- break;
- }
-
- /* If there is no full buffer, attempt to create and/or fill one. */
-
- while (bufPtr == NULL || !IsBufferFull(bufPtr)) {
+ while (!bufPtr || /* We got no buffer! OR */
+ (!IsBufferFull(bufPtr) && /* Our buffer has room AND */
+ (BytesLeft(bufPtr) < bytesToRead) ) ) {
+ /* Not enough bytes in it
+ * yet to fill the dst */
int code;
moreData:
@@ -8834,11 +9067,11 @@ DoRead(
/* Further reads cannot do any more */
break;
}
-
+
if (code) {
/* Read error */
UpdateInterest(chanPtr);
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
return -1;
}
@@ -8873,8 +9106,7 @@ DoRead(
* 1) We're @EOF because we saw eof char.
*/
- if (statePtr->inEofChar
- && RemovePoint(bufPtr)[0] == statePtr->inEofChar) {
+ if (GotFlag(statePtr, CHANNEL_STICKY_EOF)) {
UpdateInterest(chanPtr);
break;
}
@@ -8925,114 +9157,40 @@ DoRead(
statePtr->inQueueTail = NULL;
}
RecycleBuffer(statePtr, bufPtr, 0);
+ bufPtr = statePtr->inQueueHead;
}
if (GotFlag(statePtr, CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)
== (CHANNEL_NONBLOCKING|CHANNEL_BLOCKED)) {
break;
}
+
+ /*
+ * When there's no buffered data to read, and we're at EOF,
+ * escape to the caller.
+ */
+
+ if (GotFlag(statePtr, CHANNEL_EOF)
+ && (bufPtr == NULL || IsBufferEmpty(bufPtr))) {
+ break;
+ }
}
if (bytesToRead == 0) {
ResetFlag(statePtr, CHANNEL_BLOCKED);
}
- Tcl_Release(chanPtr);
+ assert(!GotFlag(statePtr, CHANNEL_EOF)
+ || GotFlag(statePtr, CHANNEL_STICKY_EOF)
+ || Tcl_InputBuffered((Tcl_Channel)chanPtr) == 0);
+ assert( !(GotFlag(statePtr, CHANNEL_EOF|CHANNEL_BLOCKED)
+ == (CHANNEL_EOF|CHANNEL_BLOCKED)) );
+ TclChannelRelease((Tcl_Channel)chanPtr);
return (int)(p - dst);
}
/*
*----------------------------------------------------------------------
*
- * CopyBuffer --
- *
- * Copy at most one buffer of input to the result space.
- *
- * Results:
- * Number of bytes stored in the result buffer. May return zero if no
- * input is available.
- *
- * Side effects:
- * Consumes buffered input. May deallocate one buffer.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-CopyBuffer(
- Channel *chanPtr, /* Channel from which to read input. */
- char *result, /* Where to store the copied input. */
- int space) /* How many bytes are available in result to
- * store the copied input? */
-{
- ChannelBuffer *bufPtr; /* The buffer from which to copy bytes. */
- int bytesInBuffer; /* How many bytes are available to be copied
- * in the current input buffer? */
- int copied; /* How many characters were already copied
- * into the destination space? */
-
- /*
- * If there is no input at all, return zero. The invariant is that either
- * there is no buffer in the queue, or if the first buffer is empty, it is
- * also the last buffer (and thus there is no input in the queue). Note
- * also that if the buffer is empty, we don't leave it in the queue, but
- * recycle it.
- */
-
- if (chanPtr->inQueueHead == NULL) {
- return 0;
- }
- bufPtr = chanPtr->inQueueHead;
- bytesInBuffer = BytesLeft(bufPtr);
-
- copied = 0;
-
- if (bytesInBuffer == 0) {
- RecycleBuffer(chanPtr->state, bufPtr, 0);
- chanPtr->inQueueHead = NULL;
- chanPtr->inQueueTail = NULL;
- return 0;
- }
-
- /*
- * Copy the current chunk into the result buffer.
- */
-
- if (bytesInBuffer < space) {
- space = bytesInBuffer;
- }
-
- memcpy(result, RemovePoint(bufPtr), (size_t) space);
- bufPtr->nextRemoved += space;
- copied = space;
-
- /*
- * We don't care about in-stream EOF characters here as the data read here
- * may still flow through one or more transformations, i.e. is not in its
- * final state yet.
- */
-
- /*
- * If the current buffer is empty recycle it.
- */
-
- if (IsBufferEmpty(bufPtr)) {
- chanPtr->inQueueHead = bufPtr->nextPtr;
- if (chanPtr->inQueueHead == NULL) {
- chanPtr->inQueueTail = NULL;
- }
- RecycleBuffer(chanPtr->state, bufPtr, 0);
- }
-
- /*
- * Return the number of characters copied into the result buffer.
- */
-
- return copied;
-}
-
-/*
- *----------------------------------------------------------------------
- *
* CopyEventProc --
*
* This routine is invoked as a channel event handler for the background
@@ -10376,7 +10534,6 @@ DumpFlags(
ChanFlag('n', CHANNEL_NONBLOCKING);
ChanFlag('l', CHANNEL_LINEBUFFERED);
ChanFlag('u', CHANNEL_UNBUFFERED);
- ChanFlag('R', BUFFER_READY);
ChanFlag('F', BG_FLUSH_SCHEDULED);
ChanFlag('c', CHANNEL_CLOSED);
ChanFlag('E', CHANNEL_EOF);
diff --git a/generic/tclIO.h b/generic/tclIO.h
index b8fb5be..b4a5405 100644
--- a/generic/tclIO.h
+++ b/generic/tclIO.h
@@ -112,6 +112,8 @@ typedef struct Channel {
ChannelBuffer *inQueueHead; /* Points at first buffer in input queue. */
ChannelBuffer *inQueueTail; /* Points at last buffer in input queue. */
+
+ int refCount;
} Channel;
/*
@@ -227,11 +229,6 @@ typedef struct ChannelState {
* flushed after every newline. */
#define CHANNEL_UNBUFFERED (1<<5) /* Output to the channel must always
* be flushed immediately. */
-#define BUFFER_READY (1<<6) /* Current output buffer (the
- * curOutPtr field in the channel
- * structure) should be output as soon
- * as possible even though it may not
- * be full. */
#define BG_FLUSH_SCHEDULED (1<<7) /* A background flush of the queued
* output buffers has been
* scheduled. */
diff --git a/generic/tclIOCmd.c b/generic/tclIOCmd.c
index afd6272..db1150d 100644
--- a/generic/tclIOCmd.c
+++ b/generic/tclIOCmd.c
@@ -177,7 +177,7 @@ Tcl_PutsObjCmd(
return TCL_ERROR;
}
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
result = Tcl_WriteObj(chan, string);
if (result < 0) {
goto error;
@@ -188,7 +188,7 @@ Tcl_PutsObjCmd(
goto error;
}
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_OK;
/*
@@ -204,7 +204,7 @@ Tcl_PutsObjCmd(
TclGetString(chanObjPtr), "\": ",
Tcl_PosixError(interp), NULL);
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_ERROR;
}
@@ -251,7 +251,7 @@ Tcl_FlushObjCmd(
return TCL_ERROR;
}
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
if (Tcl_Flush(chan) != TCL_OK) {
/*
* TIP #219.
@@ -265,10 +265,10 @@ Tcl_FlushObjCmd(
TclGetString(chanObjPtr), "\": ",
Tcl_PosixError(interp), NULL);
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_ERROR;
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_OK;
}
@@ -317,7 +317,7 @@ Tcl_GetsObjCmd(
return TCL_ERROR;
}
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
linePtr = Tcl_NewObj();
lineLen = Tcl_GetsObj(chan, linePtr);
if (lineLen < 0) {
@@ -353,7 +353,7 @@ Tcl_GetsObjCmd(
Tcl_SetObjResult(interp, linePtr);
}
done:
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return code;
}
@@ -458,7 +458,7 @@ Tcl_ReadObjCmd(
resultPtr = Tcl_NewObj();
Tcl_IncrRefCount(resultPtr);
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
charactersRead = Tcl_ReadChars(chan, resultPtr, toRead, 0);
if (charactersRead < 0) {
/*
@@ -474,7 +474,7 @@ Tcl_ReadObjCmd(
TclGetString(chanObjPtr), "\": ",
Tcl_PosixError(interp), NULL);
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
Tcl_DecrRefCount(resultPtr);
return TCL_ERROR;
}
@@ -493,7 +493,7 @@ Tcl_ReadObjCmd(
}
}
Tcl_SetObjResult(interp, resultPtr);
- Tcl_Release(chan);
+ TclChannelRelease(chan);
Tcl_DecrRefCount(resultPtr);
return TCL_OK;
}
@@ -553,7 +553,7 @@ Tcl_SeekObjCmd(
mode = modeArray[optionIndex];
}
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
result = Tcl_Seek(chan, offset, mode);
if (result == Tcl_LongAsWide(-1)) {
/*
@@ -567,10 +567,10 @@ Tcl_SeekObjCmd(
TclGetString(objv[1]), "\": ",
Tcl_PosixError(interp), NULL);
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_ERROR;
}
- Tcl_Release(chan);
+ TclChannelRelease(chan);
return TCL_OK;
}
@@ -617,7 +617,7 @@ Tcl_TellObjCmd(
return TCL_ERROR;
}
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
newLoc = Tcl_Tell(chan);
/*
@@ -628,7 +628,7 @@ Tcl_TellObjCmd(
code = TclChanCaughtErrorBypass(interp, chan);
- Tcl_Release(chan);
+ TclChannelRelease(chan);
if (code) {
return TCL_ERROR;
}
diff --git a/generic/tclIOGT.c b/generic/tclIOGT.c
index fe0a880..7ba2f2a 100644
--- a/generic/tclIOGT.c
+++ b/generic/tclIOGT.c
@@ -187,6 +187,7 @@ struct TransformChannelData {
Tcl_Channel self; /* Our own Channel handle. */
int readIsFlushed; /* Flag to note whether in.flushProc was
* called or not. */
+ int eofPending; /* Flag: EOF seen down, not raised up */
int flags; /* Currently CHANNEL_ASYNC or zero. */
int watchMask; /* Current watch/event/interest mask. */
int mode; /* Mode of parent channel, OR'ed combination
@@ -292,6 +293,7 @@ TclChannelTransform(
Tcl_DStringInit(&ds);
Tcl_GetChannelOption(interp, chan, "-blocking", &ds);
dataPtr->readIsFlushed = 0;
+ dataPtr->eofPending = 0;
dataPtr->flags = 0;
if (ds.string[0] == '0') {
dataPtr->flags |= CHANNEL_ASYNC;
@@ -624,7 +626,7 @@ TransformInputProc(
if (toRead == 0 || dataPtr->self == NULL) {
/*
- * Catch a no-op.
+ * Catch a no-op. TODO: Is this a panic()?
*/
return 0;
}
@@ -676,6 +678,17 @@ TransformInputProc(
if (toRead <= 0) {
break;
}
+ if (dataPtr->eofPending) {
+ /*
+ * Already saw EOF from downChan; don't ask again.
+ * NOTE: Could move this up to avoid the last maxRead
+ * execution. Believe this would still be correct behavior,
+ * but the test suite tests the whole command callback
+ * sequence, so leave it unchanged for now.
+ */
+
+ break;
+ }
/*
* Get bytes from the underlying channel.
@@ -712,14 +725,7 @@ TransformInputProc(
* on the down channel.
*/
- if (dataPtr->readIsFlushed) {
- /*
- * Already flushed, nothing to do anymore.
- */
-
- break;
- }
-
+ dataPtr->eofPending = 1;
dataPtr->readIsFlushed = 1;
ExecuteCallback(dataPtr, NULL, A_FLUSH_READ, NULL, 0,
TRANSMIT_IBUF, P_PRESERVE);
@@ -747,8 +753,11 @@ TransformInputProc(
break;
}
} /* while toRead > 0 */
- ReleaseData(dataPtr);
+ if (gotBytes == 0) {
+ dataPtr->eofPending = 0;
+ }
+ ReleaseData(dataPtr);
return gotBytes;
}
@@ -859,6 +868,7 @@ TransformSeekProc(
P_NO_PRESERVE);
ResultClear(&dataPtr->result);
dataPtr->readIsFlushed = 0;
+ dataPtr->eofPending = 0;
}
ReleaseData(dataPtr);
@@ -932,6 +942,7 @@ TransformWideSeekProc(
P_NO_PRESERVE);
ResultClear(&dataPtr->result);
dataPtr->readIsFlushed = 0;
+ dataPtr->eofPending = 0;
}
ReleaseData(dataPtr);
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index 3107f9e..bbb5b88 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -649,7 +649,7 @@ TclChanCreateObjCmd(
chan = Tcl_CreateChannel(&tclRChannelType, TclGetString(rcId), rcPtr,
mode);
rcPtr->chan = chan;
- Tcl_Preserve(chan);
+ TclChannelPreserve(chan);
chanPtr = (Channel *) chan;
if ((methods & NULLABLE_METHODS) != NULLABLE_METHODS) {
@@ -2054,7 +2054,7 @@ FreeReflectedChannel(
{
Channel *chanPtr = (Channel *) rcPtr->chan;
- Tcl_Release(chanPtr);
+ TclChannelRelease((Tcl_Channel)chanPtr);
Tcl_DecrRefCount(rcPtr->name);
Tcl_DecrRefCount(rcPtr->methods);
Tcl_DecrRefCount(rcPtr->cmd);
@@ -2384,10 +2384,18 @@ DeleteReflectedChannelMap(
/*
* The receiver for the event exited, before processing the event. We
* detach the result now, wake the originator up and signal failure.
+ *
+ * Attention: Results may have been detached already, by either the
+ * receiver, or this thread, as part of other parts in the thread
+ * teardown. Such results are ignored. See ticket [b47b176adf] for the
+ * identical race condition in Tcl 8.6 IORTrans.
*/
evPtr = resultPtr->evPtr;
paramPtr = evPtr->param;
+ if (!evPtr) {
+ continue;
+ }
evPtr->resultPtr = NULL;
resultPtr->evPtr = NULL;
@@ -2515,10 +2523,18 @@ DeleteThreadReflectedChannelMap(
/*
* The receiver for the event exited, before processing the event. We
* detach the result now, wake the originator up and signal failure.
+ *
+ * Attention: Results may have been detached already, by either the
+ * receiver, or this thread, as part of other parts in the thread
+ * teardown. Such results are ignored. See ticket [b47b176adf] for the
+ * identical race condition in Tcl 8.6 IORTrans.
*/
evPtr = resultPtr->evPtr;
paramPtr = evPtr->param;
+ if (!evPtr) {
+ continue;
+ }
evPtr->resultPtr = NULL;
resultPtr->evPtr = NULL;
diff --git a/generic/tclInt.h b/generic/tclInt.h
index b30650d..18574c3 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -2504,6 +2504,8 @@ MODULE_SCOPE int TclByteArrayMatch(const unsigned char *string,
int strLen, const unsigned char *pattern,
int ptnLen, int flags);
MODULE_SCOPE double TclCeil(mp_int *a);
+MODULE_SCOPE void TclChannelPreserve(Tcl_Channel chan);
+MODULE_SCOPE void TclChannelRelease(Tcl_Channel chan);
MODULE_SCOPE int TclCheckBadOctal(Tcl_Interp *interp, const char *value);
MODULE_SCOPE int TclChanCaughtErrorBypass(Tcl_Interp *interp,
Tcl_Channel chan);
@@ -2604,8 +2606,8 @@ MODULE_SCOPE void TclInitNotifier(void);
MODULE_SCOPE void TclInitObjSubsystem(void);
MODULE_SCOPE void TclInitSubsystems(void);
MODULE_SCOPE int TclInterpReady(Tcl_Interp *interp);
-MODULE_SCOPE int TclIsLocalScalar(const char *src, int len);
MODULE_SCOPE int TclIsSpaceProc(char byte);
+MODULE_SCOPE int TclIsBareword(char byte);
MODULE_SCOPE int TclJoinThread(Tcl_ThreadId id, int *result);
MODULE_SCOPE void TclLimitRemoveAllHandlers(Tcl_Interp *interp);
MODULE_SCOPE Tcl_Obj * TclLindexList(Tcl_Interp *interp,
diff --git a/generic/tclParse.c b/generic/tclParse.c
index e475fb8..c07336f 100644
--- a/generic/tclParse.c
+++ b/generic/tclParse.c
@@ -628,6 +628,47 @@ TclIsSpaceProc(
/*
*----------------------------------------------------------------------
*
+ * TclIsBareword--
+ *
+ * Report whether byte is one that can be part of a "bareword".
+ * This concept is named in expression parsing, where it determines
+ * what can be a legal function name, but is the same definition used
+ * in determining what variable names can be parsed as variable
+ * substitutions without the benefit of enclosing braces. The set of
+ * ASCII chars that are accepted are the numeric chars ('0'-'9'),
+ * the alphabetic chars ('a'-'z', 'A'-'Z') and underscore ('_').
+ *
+ * Results:
+ * Returns 1, if byte is in the accepted set of chars, 0 otherwise.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclIsBareword(
+ char byte)
+{
+ if (byte < '0' || byte > 'z') {
+ return 0;
+ }
+ if (byte <= '9' || byte >= 'a') {
+ return 1;
+ }
+ if (byte == '_') {
+ return 1;
+ }
+ if (byte < 'A' || byte > 'Z') {
+ return 0;
+ }
+ return 1;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* ParseWhiteSpace --
*
* Scans up to numBytes bytes starting at src, consuming white space
@@ -1343,9 +1384,7 @@ Tcl_ParseVarName(
{
Tcl_Token *tokenPtr;
register const char *src;
- unsigned char c;
- int varIndex, offset;
- Tcl_UniChar ch;
+ int varIndex;
unsigned array;
if ((numBytes == 0) || (start == NULL)) {
@@ -1428,22 +1467,12 @@ Tcl_ParseVarName(
tokenPtr->numComponents = 0;
while (numBytes) {
- if (Tcl_UtfCharComplete(src, numBytes)) {
- offset = Tcl_UtfToUniChar(src, &ch);
- } else {
- char utfBytes[TCL_UTF_MAX];
-
- memcpy(utfBytes, src, (size_t) numBytes);
- utfBytes[numBytes] = '\0';
- offset = Tcl_UtfToUniChar(utfBytes, &ch);
- }
- c = UCHAR(ch);
- if (isalnum(c) || (c == '_')) { /* INTL: ISO only, UCHAR. */
- src += offset;
- numBytes -= offset;
+ if (TclIsBareword(*src)) {
+ src += 1;
+ numBytes -= 1;
continue;
}
- if ((c == ':') && (numBytes != 1) && (src[1] == ':')) {
+ if ((src[0] == ':') && (numBytes != 1) && (src[1] == ':')) {
src += 2;
numBytes -= 2;
while (numBytes && (*src == ':')) {
@@ -2534,56 +2563,6 @@ TclObjCommandComplete(
}
/*
- *----------------------------------------------------------------------
- *
- * TclIsLocalScalar --
- *
- * Check to see if a given string is a legal scalar variable name with no
- * namespace qualifiers or substitutions.
- *
- * Results:
- * Returns 1 if the variable is a local scalar.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-int
-TclIsLocalScalar(
- const char *src,
- int len)
-{
- const char *p;
- const char *lastChar = src + (len - 1);
-
- for (p=src ; p<=lastChar ; p++) {
- if ((CHAR_TYPE(*p) != TYPE_NORMAL) &&
- (CHAR_TYPE(*p) != TYPE_COMMAND_END)) {
- /*
- * TCL_COMMAND_END is returned for the last character of the
- * string. By this point we know it isn't an array or namespace
- * reference.
- */
-
- return 0;
- }
- if (*p == '(') {
- if (*lastChar == ')') { /* We have an array element */
- return 0;
- }
- } else if (*p == ':') {
- if ((p != lastChar) && *(p+1) == ':') { /* qualified name */
- return 0;
- }
- }
- }
-
- return 1;
-}
-
-/*
* Local Variables:
* mode: c
* c-basic-offset: 4
diff --git a/generic/tclUniData.c b/generic/tclUniData.c
index a0d4ccc..78e7d17 100644
--- a/generic/tclUniData.c
+++ b/generic/tclUniData.c
@@ -30,35 +30,35 @@ static const unsigned short pageMap[] = {
1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408, 1344, 1344,
1440, 1472, 1504, 1536, 1568, 1344, 1344, 1600, 1632, 1664, 1696, 1728,
1760, 1792, 1792, 1824, 1792, 1856, 1888, 1920, 1952, 1984, 2016, 2048,
- 2080, 2112, 2144, 2176, 2208, 2240, 2272, 2304, 2336, 2368, 2016, 2400,
- 2432, 2464, 2496, 2528, 2560, 2592, 2624, 2656, 2688, 2720, 2752, 2784,
- 2816, 2848, 2752, 2880, 2912, 2944, 2976, 3008, 3040, 3072, 3104, 3136,
- 3168, 1792, 3200, 3232, 3264, 1792, 3296, 3328, 3360, 3392, 3424, 3456,
- 3488, 1792, 1344, 3520, 3552, 3584, 3616, 3648, 3680, 3712, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 3744, 1344, 3776, 3808,
- 3840, 1344, 3872, 1344, 3904, 3936, 3968, 1344, 1344, 4000, 4032, 1344,
+ 2080, 2112, 2144, 2176, 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432,
+ 2464, 2496, 2528, 2560, 2592, 2624, 2656, 2688, 2720, 2752, 2784, 2816,
+ 2848, 2880, 2784, 2912, 2944, 2976, 3008, 3040, 3072, 3104, 3136, 3168,
+ 3200, 1792, 3232, 3264, 3296, 1792, 3328, 3360, 3392, 3424, 3456, 3488,
+ 3520, 1792, 1344, 3552, 3584, 3616, 3648, 3680, 3712, 3744, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 3776, 1344, 3808, 3840,
+ 3872, 1344, 3904, 1344, 3936, 3968, 4000, 1344, 1344, 4032, 4064, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 4064, 4096, 1344, 1344, 4128, 4160, 4192,
- 4224, 4256, 1344, 4288, 4320, 4352, 4384, 1344, 4416, 4448, 1344, 4480,
- 1344, 4512, 4544, 4576, 4608, 4640, 1344, 4672, 4704, 4736, 4768, 1344,
- 4800, 4832, 4864, 4896, 1792, 1792, 4928, 4960, 4992, 5024, 5056, 5088,
- 1344, 5120, 1344, 5152, 5184, 5216, 1792, 1792, 5248, 5280, 5312, 5344,
- 5376, 5408, 5440, 5376, 704, 5472, 224, 224, 224, 224, 5504, 224, 224,
- 224, 5536, 5568, 5600, 5632, 5664, 5696, 5728, 5760, 5792, 5824, 5856,
- 5888, 5920, 5952, 5984, 6016, 6048, 6080, 6112, 6144, 6176, 6208, 6240,
- 6272, 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6336, 6368, 4736,
- 6400, 6432, 6464, 6496, 6528, 4736, 6560, 6592, 6624, 6656, 6688, 6720,
- 6752, 4736, 4736, 4736, 4736, 4736, 6784, 6816, 6848, 4736, 4736, 4736,
- 6880, 4736, 4736, 4736, 4736, 6912, 4736, 4736, 6944, 6976, 4736, 7008,
- 7040, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 6304, 6304, 6304,
- 6304, 7072, 6304, 7104, 7136, 6304, 6304, 6304, 6304, 6304, 6304, 6304,
- 6304, 4736, 7168, 7200, 1792, 1792, 1792, 1792, 1792, 7232, 7264, 7296,
- 7328, 224, 224, 224, 7360, 7392, 7424, 1344, 7456, 7488, 7520, 7520,
- 704, 7552, 7584, 1792, 1792, 7616, 4736, 4736, 7648, 4736, 4736, 4736,
- 4736, 4736, 4736, 7680, 7712, 7744, 7776, 3104, 1344, 7808, 4032, 1344,
- 7840, 7872, 7904, 1344, 1344, 7936, 7968, 4736, 8000, 8032, 8064, 8096,
- 4736, 8064, 8128, 4736, 8032, 4736, 4736, 4736, 4736, 4736, 4736, 4736,
- 4736, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 4096, 4128, 1344, 1344, 4160, 4192, 4224,
+ 4256, 4288, 1344, 4320, 4352, 4384, 4416, 1344, 4448, 4480, 1344, 4512,
+ 1344, 4544, 4576, 4608, 4640, 4672, 1344, 4704, 4736, 4768, 4800, 1344,
+ 4832, 4864, 4896, 4928, 1792, 1792, 4960, 4992, 5024, 5056, 5088, 5120,
+ 1344, 5152, 1344, 5184, 5216, 5248, 1792, 1792, 5280, 5312, 5344, 5376,
+ 5408, 5440, 5472, 5408, 704, 5504, 224, 224, 224, 224, 5536, 224, 224,
+ 224, 5568, 5600, 5632, 5664, 5696, 5728, 5760, 5792, 5824, 5856, 5888,
+ 5920, 5952, 5984, 6016, 6048, 6080, 6112, 6144, 6176, 6208, 6240, 6272,
+ 6304, 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6368, 6400, 4768,
+ 6432, 6464, 6496, 6528, 6560, 4768, 6592, 6624, 6656, 6688, 6720, 6752,
+ 6784, 4768, 4768, 4768, 4768, 4768, 6816, 6848, 6880, 4768, 4768, 4768,
+ 6912, 4768, 4768, 4768, 4768, 4768, 4768, 4768, 6944, 6976, 4768, 7008,
+ 7040, 4768, 4768, 4768, 4768, 4768, 4768, 4768, 4768, 6336, 6336, 6336,
+ 6336, 7072, 6336, 7104, 7136, 6336, 6336, 6336, 6336, 6336, 6336, 6336,
+ 6336, 4768, 7168, 7200, 7232, 7264, 7296, 7328, 1792, 7360, 7392, 7424,
+ 7456, 224, 224, 224, 7488, 7520, 7552, 1344, 7584, 7616, 7648, 7648,
+ 704, 7680, 7712, 7744, 1792, 7776, 4768, 4768, 7808, 4768, 4768, 4768,
+ 4768, 4768, 4768, 7840, 7872, 7904, 7936, 3136, 1344, 7968, 4064, 1344,
+ 8000, 8032, 8064, 1344, 1344, 8096, 8128, 4768, 8160, 8192, 8224, 8256,
+ 4768, 8224, 8288, 4768, 8192, 4768, 4768, 4768, 4768, 4768, 4768, 4768,
+ 4768, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -75,7 +75,7 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 4512, 4736, 4736, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 4544, 4768, 4768, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -129,16 +129,16 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 8160,
- 1792, 8192, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 8320,
+ 1792, 8352, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 8224, 4736, 8256, 5216, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 8288, 8320, 224, 8352, 8384, 1344, 1344, 8416, 8448, 8480, 224,
- 8512, 8544, 8576, 1792, 8608, 8640, 8672, 1344, 8704, 8736, 8768, 8800,
- 8832, 1632, 8864, 8896, 4544, 1888, 8928, 8960, 1792, 1344, 8992, 9024,
- 9056, 1344, 9088, 9120, 9152, 9184, 9216, 1792, 1792, 1792, 1792, 1344,
- 9248, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 8384, 4768, 8416, 5248, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 8448, 8480, 224, 8512, 8544, 1344, 1344, 8576, 8608, 8640, 224,
+ 8672, 8704, 8736, 1792, 8768, 8800, 8832, 1344, 8864, 8896, 8928, 8960,
+ 8992, 1632, 9024, 9056, 9088, 1888, 9120, 9152, 9184, 1344, 9216, 9248,
+ 9280, 1344, 9312, 9344, 9376, 9408, 9440, 9472, 9504, 1792, 1792, 1344,
+ 9536, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -167,72 +167,72 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 9280, 9312, 9344, 9376, 9376, 9376, 9376, 9376, 9376, 9376,
- 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376,
- 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376,
- 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376,
- 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376,
- 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9376, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408, 9408,
- 9408, 9408, 9408, 9408, 9408, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 9440, 1344, 1344, 9472, 1792, 9504, 9536, 9568,
- 1344, 1344, 9600, 9632, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 9664, 9696, 1344, 9728, 1344, 9760, 9792, 9824, 9856, 9888,
- 9920, 1344, 1344, 1344, 9952, 9984, 64, 10016, 10048, 10080, 10112,
- 10144, 10176
+ 1344, 1344, 9568, 9600, 9632, 9664, 9664, 9664, 9664, 9664, 9664, 9664,
+ 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664,
+ 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664,
+ 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664,
+ 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664,
+ 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9664, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696, 9696,
+ 9696, 9696, 9696, 9696, 9696, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 9728, 1344, 1344, 9760, 1792, 9792, 9824, 9856,
+ 1344, 1344, 9888, 9920, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 9952, 9984, 1344, 10016, 1344, 10048, 10080, 10112, 10144,
+ 10176, 10208, 1344, 1344, 1344, 10240, 10272, 64, 10304, 10336, 10368,
+ 4576, 10400, 10432
#if TCL_UTF_MAX > 3
- ,10208, 10240, 10272, 1792, 1344, 1344, 1344, 7968, 10304, 10336, 10368,
- 10400, 10432, 1792, 10464, 10496, 1792, 1792, 1792, 1792, 4544, 1344,
- 10528, 1792, 10112, 10560, 10592, 1792, 10624, 1344, 10656, 1792, 10688,
- 10720, 10752, 1344, 10784, 10816, 1792, 1792, 1792, 1792, 1792, 1792,
+ ,10464, 10496, 10528, 1792, 1344, 1344, 1344, 8128, 10560, 10592, 10624,
+ 10656, 10688, 10720, 10752, 10784, 1792, 1792, 1792, 1792, 9088, 1344,
+ 10816, 10848, 1344, 10880, 10912, 10944, 10976, 1344, 11008, 1792,
+ 11040, 11072, 11104, 1344, 11136, 11168, 1792, 1792, 1344, 11200, 1344,
+ 11232, 1792, 1792, 1792, 1792, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 7616, 4544, 10048, 1792, 1792, 1792, 1792, 11264,
+ 11296, 11328, 11360, 4576, 11392, 1792, 1792, 11424, 11456, 1792, 1792,
+ 1344, 11488, 1792, 1792, 11520, 11552, 11584, 11616, 11648, 1792, 11680,
+ 11712, 1344, 11744, 11776, 11808, 11840, 11872, 1792, 1792, 1344, 1344,
+ 11904, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 11936, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 11968, 12000, 12032,
+ 12064, 5088, 12096, 12128, 12160, 12192, 12224, 12256, 12288, 5088,
+ 12320, 12352, 12384, 12416, 12448, 1792, 1792, 1792, 9984, 12480, 12512,
+ 2400, 2304, 12544, 12576, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1344, 12608, 12640, 1792, 1792, 1792, 1792, 1792, 1344, 12672,
+ 12704, 1792, 1344, 12736, 12768, 1792, 1344, 12800, 11168, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 12832, 12864, 12896, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1344, 12928, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 10848, 10880, 10912,
- 1792, 1792, 1792, 1792, 1792, 10944, 10976, 1792, 1792, 1344, 11008,
- 1792, 1792, 11040, 11072, 11104, 11136, 1792, 1792, 1792, 1792, 1344,
- 11168, 11200, 11232, 1792, 1792, 1792, 1792, 1344, 1344, 11264, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 11296, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 11328, 11360, 11392, 11424, 5056, 11456,
- 11488, 11520, 11552, 11584, 11616, 1792, 5056, 11648, 11680, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1344, 11712, 10816, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 11744, 1792, 1792,
- 1792, 1792, 10368, 10368, 10368, 11776, 1792, 1792, 1792, 1792, 1792,
+ 1344, 1344, 1344, 1344, 1344, 12928, 1792, 1792, 1792, 10624, 10624,
+ 10624, 12960, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 11744, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 12992, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -266,13 +266,13 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 11808, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 12928, 4576,
+ 13024, 1792, 1792, 9984, 13056, 1344, 13088, 13120, 13152, 13184, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1344, 1344, 11840, 11872, 11904, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1344, 1344, 13216, 13248, 13280, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -314,8 +314,8 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 11936,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 13312, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -323,6 +323,8 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344, 1344, 1344, 13344,
+ 13376, 13408, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -335,14 +337,14 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 4768, 4768, 4768, 4768, 4768, 4768, 4768, 7840, 4768, 13440,
+ 4768, 13472, 13504, 13536, 13568, 1792, 4768, 4768, 13600, 1792, 1792,
+ 1792, 1792, 1792, 4768, 4768, 13632, 13664, 1792, 1792, 1792, 1792,
+ 13696, 13728, 13760, 13792, 13824, 13856, 13888, 13920, 13952, 13984,
+ 14016, 14048, 14080, 13696, 13728, 14112, 13792, 14144, 14176, 14208,
+ 13920, 14240, 14272, 14304, 14336, 14368, 14400, 14432, 14464, 14496,
+ 14528, 14560, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 7680, 4736,
- 11968, 4736, 12000, 12032, 12064, 12096, 1792, 4736, 4736, 12128, 1792,
- 1792, 1792, 1792, 1792, 4736, 4736, 12160, 12192, 1792, 1792, 1792,
- 1792, 12224, 12256, 12288, 12320, 12352, 12384, 12416, 12448, 12480,
- 12512, 12544, 12576, 12608, 12224, 12256, 12640, 12320, 12672, 12704,
- 12736, 12448, 12768, 12800, 12832, 12864, 12896, 12928, 12960, 12992,
- 13024, 13056, 13088, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -351,26 +353,24 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344,
+ 1344, 1344, 1344, 1344, 1344, 14592, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 14624, 14656, 14688, 14720, 14752, 14784, 1792, 14816, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 4768, 14848, 4768, 4768, 7808,
+ 14880, 14912, 7840, 14944, 14976, 4768, 14848, 15008, 1792, 1792, 15040,
+ 15072, 15008, 15104, 1792, 1792, 1792, 1792, 1792, 4768, 15136, 4768,
+ 13568, 4768, 4768, 15168, 15200, 4768, 4768, 4768, 4768, 4768, 4768,
+ 4768, 8192, 4768, 4768, 15232, 7776, 4768, 15264, 4768, 4768, 4768,
+ 4768, 15296, 4768, 4768, 4768, 15328, 15360, 4768, 4768, 4768, 7808,
+ 4768, 4768, 15392, 1792, 14848, 4768, 15424, 4768, 15456, 15488, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 13120, 13152, 13184, 13216, 13248, 13280, 1792, 13312, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 4736, 13344, 4736, 4736, 7648,
- 13376, 13408, 1792, 13440, 13472, 4736, 13344, 13504, 1792, 1792, 13536,
- 13568, 13504, 13600, 1792, 1792, 1792, 1792, 1792, 4736, 13632, 4736,
- 13664, 7648, 4736, 13696, 13728, 4736, 8032, 13760, 4736, 4736, 4736,
- 4736, 13792, 4736, 12096, 13824, 13856, 1792, 1792, 1792, 13888, 4736,
- 4736, 13920, 1792, 4736, 4736, 13952, 1792, 4736, 4736, 4736, 7648,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -480,8 +480,9 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 7488, 1792,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 7616,
+ 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -491,8 +492,8 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 4000, 1344, 1344,
- 1344, 1344, 1344, 1344, 10784, 1792, 1792, 1792, 1792, 1792, 1792,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 4032, 1344,
+ 1344, 1344, 1344, 1344, 1344, 11136, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
@@ -535,8 +536,8 @@ static const unsigned short pageMap[] = {
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
- 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 10784
+ 1792, 1792, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 11136
#endif /* TCL_UTF_MAX > 3 */
};
@@ -577,324 +578,327 @@ static const unsigned char groupMap[] = {
21, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
23, 24, 21, 21, 21, 21, 21, 21, 55, 23, 24, 56, 57, 58, 58, 23, 24,
59, 60, 61, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 62, 63, 64, 65,
- 66, 21, 67, 67, 21, 68, 21, 69, 21, 21, 21, 21, 67, 21, 21, 70, 21,
- 71, 72, 21, 73, 74, 21, 75, 21, 21, 21, 74, 21, 76, 77, 21, 21, 78,
- 21, 21, 21, 21, 21, 21, 21, 79, 21, 21, 80, 21, 21, 80, 21, 21, 21,
- 21, 80, 81, 82, 82, 83, 21, 21, 21, 21, 21, 84, 21, 15, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 11, 11, 11, 11, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 85, 85, 85, 85, 85, 11, 11, 11, 11, 11, 11, 11, 85,
- 11, 85, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 87, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 23, 24, 23,
- 24, 85, 11, 23, 24, 0, 0, 85, 42, 42, 42, 3, 0, 0, 0, 0, 0, 11, 11,
- 88, 3, 89, 89, 89, 0, 90, 0, 91, 91, 21, 10, 10, 10, 10, 10, 10, 10,
+ 66, 21, 67, 67, 21, 68, 21, 69, 70, 21, 21, 21, 67, 71, 21, 72, 21,
+ 73, 74, 21, 75, 76, 21, 77, 78, 21, 21, 76, 21, 79, 80, 21, 21, 81,
+ 21, 21, 21, 21, 21, 21, 21, 82, 21, 21, 83, 21, 21, 83, 21, 21, 21,
+ 84, 83, 85, 86, 86, 87, 21, 21, 21, 21, 21, 88, 21, 15, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 89, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 11, 11, 11, 11, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 90, 90, 90, 90, 90, 11, 11, 11, 11, 11, 11, 11, 90,
+ 11, 90, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 23, 24, 23,
+ 24, 90, 11, 23, 24, 0, 0, 90, 42, 42, 42, 3, 93, 0, 0, 0, 0, 11, 11,
+ 94, 3, 95, 95, 95, 0, 96, 0, 97, 97, 21, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 92, 93, 93, 93, 21, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 94, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 95, 96, 96, 97, 98, 99, 100, 100, 100, 101, 102, 103, 23, 24, 23,
+ 10, 10, 10, 98, 99, 99, 99, 21, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 100, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 101, 102, 102, 103, 104, 105, 106, 106, 106, 107, 108, 109, 23,
24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 23, 24, 23, 24, 104, 105, 106, 21, 107, 108, 7, 23, 24, 109, 23, 24,
- 21, 54, 54, 54, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 23, 24, 23, 24, 23, 24, 110, 111, 112, 113, 114, 115, 7, 23, 24, 116,
+ 23, 24, 21, 54, 54, 54, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 23, 24, 14, 86, 86, 86, 86, 86, 111, 111, 23, 24,
+ 13, 13, 13, 13, 13, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 111, 23, 24, 14, 91, 91, 91, 91, 91, 118,
+ 118, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 23, 24, 119, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 120, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 112, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 113, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 0, 0, 85, 3, 3, 3, 3,
- 3, 3, 0, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 21, 0,
- 3, 8, 0, 0, 0, 0, 4, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 8, 86, 3, 86, 86, 3, 86, 86, 3, 86, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 3, 3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 0, 7, 7, 7, 3, 3,
- 4, 3, 3, 14, 14, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 3, 17,
- 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 85, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 15, 15, 86, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 15, 86, 86, 86,
- 86, 86, 86, 86, 17, 14, 86, 86, 86, 86, 86, 86, 85, 85, 86, 86, 14,
- 86, 86, 86, 86, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 14,
- 14, 15, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 17, 15, 86, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 85, 85, 14, 3, 3, 3, 85, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86,
- 86, 86, 86, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 86, 86, 86,
- 85, 86, 86, 86, 86, 86, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 0, 0, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 0, 86, 86, 86, 116,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 86, 116, 86, 15, 116, 116, 116, 86, 86, 86, 86, 86, 86,
- 86, 86, 116, 116, 116, 116, 86, 116, 116, 15, 86, 86, 86, 86, 86, 86,
- 86, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 3, 3, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 3, 85, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
- 15, 15, 15, 15, 0, 86, 116, 116, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
- 15, 0, 15, 0, 0, 0, 15, 15, 15, 15, 0, 0, 86, 15, 116, 116, 116, 86,
- 86, 86, 86, 0, 0, 116, 116, 0, 0, 116, 116, 86, 15, 0, 0, 0, 0, 0,
- 0, 0, 0, 116, 0, 0, 0, 0, 15, 15, 0, 15, 15, 15, 86, 86, 0, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 4, 4, 18, 18, 18, 18, 18, 18, 14, 4,
- 0, 0, 0, 0, 0, 86, 86, 116, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
- 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15,
- 15, 0, 15, 15, 0, 15, 15, 0, 0, 86, 0, 116, 116, 116, 86, 86, 0, 0,
- 0, 0, 86, 86, 0, 0, 86, 86, 86, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 86, 86, 15, 15, 15, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86,
- 116, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15,
- 15, 15, 0, 0, 86, 15, 116, 116, 116, 86, 86, 86, 86, 86, 0, 86, 86,
- 116, 0, 116, 116, 86, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 15, 86, 86, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15, 15,
- 15, 0, 0, 86, 15, 116, 86, 116, 86, 86, 86, 86, 0, 0, 116, 116, 0,
- 0, 116, 116, 86, 0, 0, 0, 0, 0, 0, 0, 0, 86, 116, 0, 0, 0, 0, 15, 15,
- 0, 15, 15, 15, 86, 86, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14, 15,
- 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 15, 0, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 0,
- 15, 15, 0, 15, 0, 15, 15, 0, 0, 0, 15, 15, 0, 0, 0, 15, 15, 15, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 116,
- 116, 86, 116, 116, 0, 0, 0, 116, 116, 116, 0, 116, 116, 116, 86, 0,
- 0, 15, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 14, 14, 14, 14, 14, 14,
- 4, 14, 0, 0, 0, 0, 0, 0, 116, 116, 116, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 0, 0, 15, 86, 86,
- 86, 116, 116, 116, 116, 0, 86, 86, 86, 0, 86, 86, 86, 86, 0, 0, 0,
- 0, 0, 0, 0, 86, 86, 0, 15, 15, 0, 0, 0, 0, 0, 0, 15, 15, 86, 86, 0,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18,
- 18, 18, 18, 18, 14, 0, 0, 116, 116, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 0, 86, 15, 116, 86, 116,
- 116, 116, 116, 116, 0, 86, 116, 116, 0, 116, 116, 86, 86, 0, 0, 0,
- 0, 0, 0, 0, 116, 116, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 15, 86, 86, 0,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 116,
- 116, 116, 86, 86, 86, 86, 0, 116, 116, 116, 0, 116, 116, 116, 86, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 86, 86,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 0, 0, 0,
- 14, 15, 15, 15, 15, 15, 15, 0, 0, 116, 116, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 86, 0, 0, 0, 0, 116, 116, 116,
- 86, 86, 86, 0, 86, 0, 116, 116, 116, 116, 116, 116, 116, 116, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, 3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 24, 23, 24, 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 0,
+ 0, 90, 3, 3, 3, 3, 3, 3, 0, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 21, 0, 3, 8, 0, 0, 14, 14, 4, 0, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 8, 91, 3, 91, 91, 3, 91, 91, 3, 91, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
+ 15, 15, 15, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17,
+ 17, 17, 7, 7, 7, 3, 3, 4, 3, 3, 14, 14, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 3, 17, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 90, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 15, 15, 91,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 3, 15, 91, 91, 91, 91, 91, 91, 91, 17, 14, 91, 91, 91, 91, 91,
+ 91, 90, 90, 91, 91, 14, 91, 91, 91, 91, 15, 15, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 15, 15, 15, 14, 14, 15, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 0, 17, 15, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 90, 90, 14, 3, 3, 3, 90, 0, 0, 0, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 91, 91, 91, 91, 90, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 90, 91, 91, 91, 90, 91, 91, 91, 91, 91, 0, 0, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91,
+ 91, 91, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 123, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 91, 15, 123, 123,
+ 123, 91, 91, 91, 91, 91, 91, 91, 91, 123, 123, 123, 123, 91, 123, 123,
+ 15, 91, 91, 91, 91, 91, 91, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 91, 91, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 90, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 123, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0, 0, 0, 15, 15, 15, 15, 0, 0,
+ 91, 15, 123, 123, 123, 91, 91, 91, 91, 0, 0, 123, 123, 0, 0, 123, 123,
+ 91, 15, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 15, 15, 0, 15, 15,
+ 15, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 4, 4, 18, 18,
+ 18, 18, 18, 18, 14, 4, 0, 0, 0, 0, 0, 91, 91, 123, 0, 15, 15, 15, 15,
+ 15, 15, 0, 0, 0, 0, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
+ 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 91, 0, 123,
+ 123, 123, 91, 91, 0, 0, 0, 0, 91, 91, 0, 0, 91, 91, 91, 0, 0, 0, 91,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 91, 91, 15, 15, 15, 91, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 91, 91, 123, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 0, 15, 15, 15, 15, 15, 0, 0, 91, 15, 123, 123, 123, 91,
+ 91, 91, 91, 91, 0, 91, 91, 123, 0, 123, 123, 91, 0, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 91, 91, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 91, 123, 123, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0,
+ 15, 15, 15, 15, 15, 0, 0, 91, 15, 123, 91, 123, 91, 91, 91, 91, 0,
+ 0, 123, 123, 0, 0, 123, 123, 91, 0, 0, 0, 0, 0, 0, 0, 0, 91, 123, 0,
+ 0, 0, 0, 15, 15, 0, 15, 15, 15, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 14, 15, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 91, 15, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 0, 15, 15,
+ 15, 15, 0, 0, 0, 15, 15, 0, 15, 0, 15, 15, 0, 0, 0, 15, 15, 0, 0, 0,
+ 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 0, 0, 123, 123, 91, 123, 123, 0, 0, 0, 123, 123, 123, 0, 123,
+ 123, 123, 91, 0, 0, 15, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 14,
+ 14, 14, 14, 14, 14, 4, 14, 0, 0, 0, 0, 0, 91, 123, 123, 123, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 0, 15, 91, 91, 91, 123, 123, 123, 123, 0, 91, 91, 91, 0, 91,
+ 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 91, 91, 0, 15, 15, 0, 0, 0, 0, 0,
+ 0, 15, 15, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 14, 0, 91, 123, 123, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0,
+ 0, 91, 15, 123, 91, 123, 123, 123, 123, 123, 0, 91, 123, 123, 0, 123,
+ 123, 91, 91, 0, 0, 0, 0, 0, 0, 0, 123, 123, 0, 0, 0, 0, 0, 0, 0, 15,
+ 0, 15, 15, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 15, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 86, 15, 15, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0,
- 4, 15, 15, 15, 15, 15, 15, 85, 86, 86, 86, 86, 86, 86, 86, 86, 3, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 0, 0, 0, 0, 0, 15, 15, 0, 15, 0, 0,
- 15, 15, 0, 15, 0, 0, 15, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15, 0, 15, 0, 0, 15, 15, 0, 15,
- 15, 15, 15, 86, 15, 15, 86, 86, 86, 86, 86, 86, 0, 86, 86, 15, 0, 0,
- 15, 15, 15, 15, 15, 0, 85, 0, 86, 86, 86, 86, 86, 86, 0, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 15, 15, 15, 15, 15, 14, 14, 14, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 14, 3, 14, 14, 14, 86, 86, 14,
- 14, 14, 14, 14, 14, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 14, 86, 14, 86, 14, 86, 5, 6, 5, 6, 116, 116, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 116, 86, 86, 86, 86, 86, 3,
- 86, 86, 15, 15, 15, 15, 15, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 0, 14, 14, 14, 14, 14, 14, 14, 14, 86, 14, 14, 14,
- 14, 14, 14, 0, 14, 14, 3, 3, 3, 3, 3, 14, 14, 14, 14, 3, 3, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 116, 116, 86, 86,
- 86, 86, 116, 86, 86, 86, 86, 86, 86, 116, 86, 86, 116, 116, 86, 86,
- 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15,
- 15, 15, 116, 116, 86, 86, 15, 15, 15, 15, 86, 86, 86, 15, 116, 116,
- 116, 15, 15, 116, 116, 116, 116, 116, 116, 116, 15, 15, 15, 86, 86,
- 86, 86, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 116,
- 116, 86, 86, 116, 116, 116, 116, 116, 116, 86, 15, 116, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 116, 116, 116, 86, 14, 14, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
- 117, 117, 117, 117, 117, 0, 117, 0, 0, 0, 0, 0, 117, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 3, 85, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 0, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15,
- 15, 0, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 0, 0, 15, 123, 123, 123, 91, 91, 91, 91, 0, 123, 123, 123,
+ 0, 123, 123, 123, 91, 15, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 15, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18,
+ 18, 18, 18, 18, 18, 0, 0, 0, 14, 15, 15, 15, 15, 15, 15, 0, 0, 123,
+ 123, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 0,
+ 0, 91, 0, 0, 0, 0, 123, 123, 123, 91, 91, 91, 0, 91, 0, 123, 123, 123,
+ 123, 123, 123, 123, 123, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 123, 123, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 15, 15, 91, 91,
+ 91, 91, 91, 91, 91, 0, 0, 0, 0, 4, 15, 15, 15, 15, 15, 15, 90, 91,
+ 91, 91, 91, 91, 91, 91, 91, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3,
+ 0, 0, 0, 0, 0, 15, 15, 0, 15, 0, 0, 15, 15, 0, 15, 0, 0, 15, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
+ 15, 0, 15, 0, 15, 0, 0, 15, 15, 0, 15, 15, 15, 15, 91, 15, 15, 91,
+ 91, 91, 91, 91, 91, 0, 91, 91, 15, 0, 0, 15, 15, 15, 15, 15, 0, 90,
+ 0, 91, 91, 91, 91, 91, 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 15, 15, 15, 15, 15, 14, 14, 14, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 14, 3, 14, 14, 14, 91, 91, 14, 14, 14, 14, 14, 14, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 91,
+ 14, 91, 14, 91, 5, 6, 5, 6, 123, 123, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 0, 86, 86, 86, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 15, 15, 15,
+ 15, 15, 15, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 123, 91, 91, 91, 91, 91, 3, 91, 91, 15, 15, 15, 15, 15,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 14, 14,
+ 14, 14, 14, 14, 14, 14, 91, 14, 14, 14, 14, 14, 14, 0, 14, 14, 3, 3,
+ 3, 3, 3, 14, 14, 14, 14, 3, 3, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 123, 123, 91, 91, 91, 91, 123, 91, 91, 91, 91,
+ 91, 91, 123, 91, 91, 123, 123, 91, 91, 15, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 123, 123, 91, 91, 15,
+ 15, 15, 15, 91, 91, 91, 15, 123, 123, 123, 15, 15, 123, 123, 123, 123,
+ 123, 123, 123, 15, 15, 15, 91, 91, 91, 91, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 91, 123, 123, 91, 91, 123, 123, 123, 123,
+ 123, 123, 91, 15, 123, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 123, 123, 123,
+ 91, 14, 14, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 0,
+ 124, 0, 0, 0, 0, 0, 124, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 3, 90, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
+ 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15,
+ 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15,
+ 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 91, 91, 91, 3, 3, 3, 3, 3, 3, 3, 3, 3, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 5, 6, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3,
- 3, 118, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
- 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 86, 3, 3, 0,
+ 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 5, 6, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3, 125, 125, 125, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 91, 91, 91, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
- 0, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86,
- 116, 86, 86, 86, 86, 86, 86, 86, 116, 116, 116, 116, 116, 116, 116,
- 116, 86, 116, 116, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 3, 3,
- 3, 85, 3, 3, 3, 4, 15, 86, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0,
- 0, 3, 3, 3, 3, 3, 3, 8, 3, 3, 3, 3, 86, 86, 86, 17, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 85, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 3, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 91, 91, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91, 123, 91, 91, 91, 91,
+ 91, 91, 91, 123, 123, 123, 123, 123, 123, 123, 123, 91, 123, 123, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 3, 3, 3, 90, 3, 3, 3, 4, 15,
+ 91, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 8,
+ 3, 3, 3, 3, 91, 91, 91, 17, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 90, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 15, 0, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 91, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 86, 86, 86, 116, 116, 116, 116,
- 86, 86, 116, 116, 116, 0, 0, 0, 0, 116, 116, 86, 116, 116, 116, 116,
- 116, 116, 86, 86, 86, 0, 0, 0, 0, 14, 0, 0, 0, 3, 3, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 91, 91, 91, 123, 123, 123, 123, 91, 91, 123, 123,
+ 123, 0, 0, 0, 0, 123, 123, 91, 123, 123, 123, 123, 123, 123, 91, 91,
+ 91, 0, 0, 0, 0, 14, 0, 0, 0, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 15, 15, 15, 15, 15, 15, 15, 116, 116, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 18, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 0, 0, 0, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 15, 15, 15, 15, 15, 15,
+ 15, 123, 123, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 0,
+ 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 86, 116,
- 116, 86, 0, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 116, 86, 116, 86, 86, 86, 86, 86,
- 86, 86, 0, 86, 116, 86, 116, 116, 86, 86, 86, 86, 86, 86, 86, 86, 116,
- 116, 116, 116, 116, 116, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 0,
- 0, 86, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 85, 3, 3,
- 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
- 86, 86, 86, 116, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 86, 116, 86, 86, 86, 86, 86, 116, 86, 116, 116, 116, 116, 116, 86,
- 116, 116, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 86, 86, 86, 86, 86, 86, 86, 86, 86, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 0, 0, 0, 86, 86, 116, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 116, 86, 86, 86, 86, 116, 116, 86, 86, 116, 86, 116, 116,
- 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 86, 116, 86, 86, 116, 116, 116, 86, 116, 86, 86, 86,
- 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 15, 15, 15, 15, 116,
- 116, 116, 116, 116, 116, 116, 116, 86, 86, 86, 86, 86, 86, 86, 86,
- 116, 116, 86, 86, 0, 0, 0, 3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 85, 85, 85, 85, 85, 85, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 3, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 116, 86, 86, 86, 86, 86,
- 86, 86, 15, 15, 15, 15, 86, 15, 15, 15, 15, 116, 116, 86, 15, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 91, 91, 123, 123, 91, 0, 0, 3, 3, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 123, 91, 123, 91, 91, 91, 91, 91, 91, 91, 0, 91, 123, 91, 123,
+ 123, 91, 91, 91, 91, 91, 91, 91, 91, 123, 123, 123, 123, 123, 123,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 91, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
+ 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 90, 3, 3, 3, 3, 3, 3, 0, 0, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 118, 0, 91, 91, 91, 91,
+ 123, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 91,
+ 91, 91, 91, 91, 123, 91, 123, 123, 123, 123, 123, 91, 123, 123, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3,
+ 3, 3, 3, 3, 3, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0,
+ 91, 91, 123, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 123,
+ 91, 91, 91, 91, 123, 123, 91, 91, 123, 91, 91, 91, 15, 15, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 91, 123, 91, 91, 123, 123, 123, 91, 123, 91, 91, 91, 123, 123, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 15, 15, 15, 15, 123, 123, 123, 123, 123,
+ 123, 123, 123, 91, 91, 91, 91, 91, 91, 91, 91, 123, 123, 91, 91, 0,
+ 0, 0, 3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 15, 15,
+ 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 90, 90, 90, 90, 90, 90, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 91, 3, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 123, 91, 91, 91, 91, 91, 91, 91, 15, 15, 15,
+ 15, 91, 15, 15, 15, 15, 123, 123, 91, 15, 15, 0, 91, 91, 0, 0, 0, 0,
+ 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 85, 119, 21, 21, 21, 120, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 90, 126, 21, 21, 21, 127, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 85, 85, 85, 85, 85, 86, 86, 86, 86,
- 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 86, 86, 86, 86, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 21, 21, 21, 121, 21,
- 21, 122, 21, 123, 123, 123, 123, 123, 123, 123, 123, 124, 124, 124,
- 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 0, 0, 124, 124,
- 124, 124, 124, 124, 0, 0, 123, 123, 123, 123, 123, 123, 123, 123, 124,
- 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123,
- 123, 124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123,
- 123, 0, 0, 124, 124, 124, 124, 124, 124, 0, 0, 21, 123, 21, 123, 21,
- 123, 21, 123, 0, 124, 0, 124, 0, 124, 0, 124, 123, 123, 123, 123, 123,
- 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 126,
- 126, 126, 126, 127, 127, 128, 128, 129, 129, 130, 130, 0, 0, 123, 123,
- 123, 123, 123, 123, 123, 123, 131, 131, 131, 131, 131, 131, 131, 131,
- 123, 123, 123, 123, 123, 123, 123, 123, 131, 131, 131, 131, 131, 131,
- 131, 131, 123, 123, 123, 123, 123, 123, 123, 123, 131, 131, 131, 131,
- 131, 131, 131, 131, 123, 123, 21, 132, 21, 0, 21, 21, 124, 124, 133,
- 133, 134, 11, 135, 11, 11, 11, 21, 132, 21, 0, 21, 21, 136, 136, 136,
- 136, 134, 11, 11, 11, 123, 123, 21, 21, 0, 0, 21, 21, 124, 124, 137,
- 137, 0, 11, 11, 11, 123, 123, 21, 21, 21, 106, 21, 21, 124, 124, 138,
- 138, 109, 11, 11, 11, 0, 0, 21, 132, 21, 0, 21, 21, 139, 139, 140,
- 140, 134, 11, 11, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17, 17, 17, 17,
+ 21, 21, 21, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0,
+ 0, 91, 91, 91, 91, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 21, 21, 21, 128, 21,
+ 21, 129, 21, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131,
+ 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 0, 0, 131, 131,
+ 131, 131, 131, 131, 0, 0, 130, 130, 130, 130, 130, 130, 130, 130, 131,
+ 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130, 130, 130,
+ 130, 131, 131, 131, 131, 131, 131, 131, 131, 130, 130, 130, 130, 130,
+ 130, 0, 0, 131, 131, 131, 131, 131, 131, 0, 0, 21, 130, 21, 130, 21,
+ 130, 21, 130, 0, 131, 0, 131, 0, 131, 0, 131, 130, 130, 130, 130, 130,
+ 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 132, 132, 133,
+ 133, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 0, 0, 130, 130,
+ 130, 130, 130, 130, 130, 130, 138, 138, 138, 138, 138, 138, 138, 138,
+ 130, 130, 130, 130, 130, 130, 130, 130, 138, 138, 138, 138, 138, 138,
+ 138, 138, 130, 130, 130, 130, 130, 130, 130, 130, 138, 138, 138, 138,
+ 138, 138, 138, 138, 130, 130, 21, 139, 21, 0, 21, 21, 131, 131, 140,
+ 140, 141, 11, 142, 11, 11, 11, 21, 139, 21, 0, 21, 21, 143, 143, 143,
+ 143, 141, 11, 11, 11, 130, 130, 21, 21, 0, 0, 21, 21, 131, 131, 144,
+ 144, 0, 11, 11, 11, 130, 130, 21, 21, 21, 112, 21, 21, 131, 131, 145,
+ 145, 116, 11, 11, 11, 0, 0, 21, 139, 21, 0, 21, 21, 146, 146, 147,
+ 147, 141, 11, 11, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17, 17, 17, 17,
17, 8, 8, 8, 8, 8, 8, 3, 3, 16, 20, 5, 16, 16, 20, 5, 16, 3, 3, 3,
- 3, 3, 3, 3, 3, 141, 142, 17, 17, 17, 17, 17, 2, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 148, 149, 17, 17, 17, 17, 17, 2, 3, 3, 3, 3, 3, 3, 3,
3, 3, 16, 20, 3, 3, 3, 3, 12, 12, 3, 3, 3, 7, 5, 6, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 7, 3, 12, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 17, 17,
- 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 85, 0, 0,
- 18, 18, 18, 18, 18, 18, 7, 7, 7, 5, 6, 85, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 7, 7, 7, 5, 6, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 111, 111, 111, 111, 86, 111, 111, 111, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 14, 100, 14, 14, 14, 14, 100, 14, 14, 21, 100, 100,
- 100, 21, 21, 100, 100, 100, 21, 14, 100, 14, 14, 7, 100, 100, 100,
- 100, 100, 14, 14, 14, 14, 14, 14, 100, 14, 143, 14, 100, 14, 144, 145,
- 100, 100, 14, 21, 100, 100, 146, 100, 21, 15, 15, 15, 15, 21, 14, 14,
- 21, 21, 100, 100, 7, 7, 7, 7, 7, 100, 21, 21, 21, 21, 14, 7, 14, 14,
- 147, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 118, 118, 118, 23, 24, 118, 118, 118, 118,
+ 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 90, 0, 0,
+ 18, 18, 18, 18, 18, 18, 7, 7, 7, 5, 6, 90, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 7, 7, 7, 5, 6, 0, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 118, 118, 118, 118, 91, 118, 118, 118, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 14, 14, 106, 14, 14, 14, 14, 106, 14, 14, 21, 106, 106,
+ 106, 21, 21, 106, 106, 106, 21, 14, 106, 14, 14, 7, 106, 106, 106,
+ 106, 106, 14, 14, 14, 14, 14, 14, 106, 14, 150, 14, 106, 14, 151, 152,
+ 106, 106, 14, 21, 106, 106, 153, 106, 21, 15, 15, 15, 15, 21, 14, 14,
+ 21, 21, 106, 106, 7, 7, 7, 7, 7, 106, 21, 21, 21, 21, 14, 7, 14, 14,
+ 154, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 125, 125, 125, 23, 24, 125, 125, 125, 125,
18, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 7, 7, 14,
14, 14, 14, 7, 14, 14, 7, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 7,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
@@ -914,209 +918,222 @@ static const unsigned char groupMap[] = {
7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158,
+ 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
+ 158, 158, 158, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7,
+ 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 18, 18, 18, 18,
+ 14, 14, 14, 14, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 7, 7, 7, 7, 7, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6,
- 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
- 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 5, 6, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+ 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 5, 6, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 14, 14, 7, 7, 7, 7, 7, 7, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 0, 0, 0, 0, 0, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 0, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 0, 23, 24, 152, 153, 154, 155, 156, 23, 24, 23, 24,
- 23, 24, 157, 158, 159, 160, 21, 23, 24, 21, 23, 24, 21, 21, 21, 21,
- 21, 85, 85, 161, 161, 23, 24, 23, 24, 21, 14, 14, 14, 14, 14, 14, 23,
- 24, 23, 24, 86, 86, 86, 23, 24, 0, 0, 0, 0, 0, 3, 3, 3, 3, 18, 3, 3,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 0, 162, 0, 0, 0,
- 0, 0, 162, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 85,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
- 15, 15, 15, 0, 3, 3, 16, 20, 16, 20, 3, 3, 3, 16, 20, 3, 16, 20, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 8, 3, 3, 8, 3, 16, 20, 3, 3, 16, 20, 5, 6,
- 5, 6, 5, 6, 5, 6, 3, 3, 3, 3, 3, 85, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 8, 8, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14,
+ 7, 7, 7, 7, 7, 5, 6, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 14, 14, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 0, 0, 0, 2, 3, 3, 3, 14, 85, 15, 118, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6,
- 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 8, 5, 6, 6, 14, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 86, 86, 86, 86, 116, 116, 8, 85, 85, 85, 85,
- 85, 14, 14, 118, 118, 118, 85, 15, 3, 14, 14, 15, 15, 15, 15, 15, 15,
+ 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 121, 121, 121, 121, 0, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122,
+ 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 0, 23,
+ 24, 159, 160, 161, 162, 163, 23, 24, 23, 24, 23, 24, 164, 165, 166,
+ 167, 21, 23, 24, 21, 23, 24, 21, 21, 21, 21, 21, 90, 90, 168, 168,
+ 23, 24, 23, 24, 21, 14, 14, 14, 14, 14, 14, 23, 24, 23, 24, 91, 91,
+ 91, 23, 24, 0, 0, 0, 0, 0, 3, 3, 3, 3, 18, 3, 3, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 0, 169, 0, 0, 0, 0, 0, 169, 0, 0, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 86, 86, 11, 11, 85, 85, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 90, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0,
+ 3, 3, 16, 20, 16, 20, 3, 3, 3, 16, 20, 3, 16, 20, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 8, 3, 3, 8, 3, 16, 20, 3, 3, 16, 20, 5, 6, 5, 6, 5, 6, 5,
+ 6, 3, 3, 3, 3, 3, 90, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3,
+ 3, 8, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 0, 0, 0, 0, 2, 3, 3, 3, 14, 90, 15, 125, 5, 6, 5, 6, 5, 6,
+ 5, 6, 5, 6, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 8, 5, 6, 6, 14, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 91, 91, 91, 91, 123, 123, 8, 90,
+ 90, 90, 90, 90, 14, 14, 125, 125, 125, 90, 15, 3, 14, 14, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 3, 85, 85, 85, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 0, 0, 91, 91, 11, 11, 90, 90, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 14, 14,
- 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15,
+ 15, 15, 15, 15, 3, 90, 90, 90, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 14, 14, 14, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18,
- 18, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 85, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 14, 14, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 85, 3, 3, 3, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 15, 86, 111, 111, 111, 3, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 3, 85, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 23, 24, 0, 0, 0, 0, 0, 0, 0, 86, 15, 15,
- 15, 15, 15, 15, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 86,
- 86, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18,
+ 18, 18, 18, 18, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 90, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 90, 3, 3, 3,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 15, 91, 118, 118, 118, 3, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 3, 90, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 90,
+ 90, 0, 91, 15, 15, 15, 15, 15, 15, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 91, 91, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 11, 11, 23, 24, 23, 24, 23, 24,
- 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 23, 24, 23, 24, 23, 24, 85, 21, 21, 21, 21, 21, 21, 21, 21, 23, 24,
- 23, 24, 163, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 85, 11, 11, 23,
- 24, 164, 21, 0, 23, 24, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 165, 0, 0, 0, 0, 0, 0, 0, 0,
+ 11, 11, 11, 11, 11, 90, 90, 90, 90, 90, 90, 90, 90, 90, 11, 11, 23,
+ 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 90, 21, 21, 21, 21, 21,
+ 21, 21, 21, 23, 24, 23, 24, 170, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 90, 11, 11, 23, 24, 171, 21, 0, 23, 24, 23, 24, 21, 21, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 172, 173, 174, 175, 0, 0, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 21, 15, 15, 15, 15,
- 15, 15, 15, 86, 15, 15, 15, 86, 15, 15, 15, 15, 86, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 116, 116, 86, 86, 116, 14, 14, 14, 14, 0, 0, 0, 0, 18, 18,
- 18, 18, 18, 18, 14, 14, 4, 14, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 116, 116, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 86, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 15, 15, 15, 15, 15, 15, 3, 3, 3, 15, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 86, 86, 86, 86, 86, 86, 86, 86, 3, 3, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 116, 116, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 86, 116, 116, 86, 86, 86, 86, 116, 116, 86,
- 116, 116, 116, 116, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 85, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 3, 3, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 86, 86, 86, 86, 86, 86, 116, 116, 86, 86, 116, 116, 86,
- 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 86, 15, 15, 15, 15, 15,
- 15, 15, 15, 86, 116, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 3, 3,
- 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 85, 15, 15, 15, 15, 15, 15, 14, 14, 14, 15, 116, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86, 15, 86,
- 86, 86, 15, 15, 86, 86, 15, 15, 15, 15, 15, 86, 86, 15, 86, 15, 0,
+ 0, 0, 0, 0, 0, 15, 90, 90, 21, 15, 15, 15, 15, 15, 15, 15, 91, 15,
+ 15, 15, 91, 15, 15, 15, 15, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 123, 123, 91,
+ 91, 123, 14, 14, 14, 14, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 14, 14,
+ 4, 14, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 123, 123, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 15, 15, 15, 15, 15, 15, 3,
+ 3, 3, 15, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 91,
+ 91, 91, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 123, 91,
+ 91, 91, 91, 123, 123, 91, 123, 123, 123, 123, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 0, 90, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 3, 3, 15, 15, 15, 15, 15, 91, 90, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 91, 123, 123, 91, 91, 123,
+ 123, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 91, 15, 15, 15,
+ 15, 15, 15, 15, 15, 91, 123, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 90, 15, 15, 15, 15, 15, 15, 14, 14, 14, 15, 123, 91, 123,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 91, 15, 91, 91, 91, 15, 15, 91, 91, 15, 15, 15, 15, 15, 91, 91,
+ 15, 91, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 90, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 123, 91, 91, 123, 123, 3, 3, 15, 90, 90, 123, 91, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 11, 90, 90, 90, 90, 0, 0, 0, 0, 21, 21, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 15, 15, 85, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 116,
- 86, 86, 116, 116, 3, 3, 15, 85, 85, 116, 86, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 116, 116, 86, 116, 116, 86, 116, 116,
- 3, 116, 86, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 0, 0, 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 0, 0, 15, 15, 15, 123, 123, 91, 123, 123, 91, 123, 123, 3, 123, 91,
+ 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+ 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, 179, 179,
+ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
+ 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 15,
- 86, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 15, 0, 15,
- 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 15, 91, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 0, 15,
+ 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 6,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 4, 14, 0, 0, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 3, 3, 3, 3, 3, 3, 3, 5,
- 6, 3, 0, 0, 0, 0, 0, 0, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 8, 8, 12, 12, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
- 6, 5, 6, 3, 3, 5, 6, 3, 3, 3, 3, 12, 12, 12, 3, 3, 3, 0, 3, 3, 3, 3,
- 8, 5, 6, 5, 6, 5, 6, 3, 3, 3, 7, 8, 7, 7, 7, 0, 3, 4, 3, 3, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 17, 0, 3, 3, 3, 4,
- 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3,
- 7, 7, 7, 3, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 7, 6, 7, 5,
- 6, 3, 5, 6, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 85, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 85, 85, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0,
- 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15,
- 15, 15, 0, 0, 0, 4, 4, 7, 11, 14, 4, 4, 0, 14, 7, 7, 7, 7, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 14, 14, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 4, 14, 0, 0, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 3, 3, 3, 3, 3, 3, 3, 5, 6,
+ 3, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 0, 0, 3, 8, 8, 12, 12, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6,
+ 5, 6, 5, 6, 3, 3, 5, 6, 3, 3, 3, 3, 12, 12, 12, 3, 3, 3, 0, 3, 3, 3,
+ 3, 8, 5, 6, 5, 6, 5, 6, 3, 3, 3, 7, 8, 7, 7, 7, 0, 3, 4, 3, 3, 0, 0,
+ 0, 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 17, 0, 3, 3,
+ 3, 4, 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 3, 3, 7, 7, 7, 3, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5, 7, 6, 7,
+ 5, 6, 3, 5, 6, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 90, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 90, 90, 0, 0, 15, 15, 15, 15,
+ 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15,
+ 0, 0, 15, 15, 15, 0, 0, 0, 4, 4, 7, 11, 14, 4, 4, 0, 14, 7, 7, 7, 7,
+ 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 14, 14, 0, 0
#if TCL_UTF_MAX > 3
,15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
@@ -1127,213 +1144,282 @@ static const unsigned char groupMap[] = {
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 18,
+ 14, 14, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 18,
18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 18, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 18, 18, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 86, 0, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 118, 15, 15, 15, 15, 15, 15, 15, 15, 118, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 3, 15, 15, 15, 15, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 3, 118, 118, 118, 118, 118, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 168, 168, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 169, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 91, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 18, 18, 18, 18, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 125, 15, 15, 15, 15, 15, 15, 15, 15,
+ 125, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 0, 0, 15, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 0, 0, 0, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 3, 15, 15,
+ 15, 15, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 3, 125, 125, 125,
+ 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181,
+ 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
+ 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
+ 181, 181, 181, 181, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 15, 0, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 0, 3, 18, 18, 18, 18, 18, 18, 18, 18, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
+ 0, 0, 0, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 3, 18, 18, 18, 18, 18,
+ 18, 18, 18, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 18, 18, 18, 18, 18, 18,
+ 18, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 18, 18,
+ 18, 18, 18, 18, 0, 0, 0, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 91, 91, 91, 0, 91, 91, 0, 0, 0, 0, 0, 91, 91, 91, 91, 15, 15, 15,
+ 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0,
+ 0, 91, 91, 91, 0, 0, 0, 0, 91, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 18, 18, 18, 18, 18, 18, 0, 0, 0, 3, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 18, 18, 3, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 86, 86, 86, 0, 86, 86, 0, 0, 0, 0, 0, 86, 86, 86, 86, 15, 15,
- 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 0, 0, 0, 86, 86, 86, 0, 0, 0, 0, 86, 18, 18, 18, 18, 18, 18, 18, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 18, 18, 3, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 18, 18, 18, 15, 15, 15, 15, 15,
+ 15, 15, 15, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91,
+ 0, 0, 0, 0, 18, 18, 18, 18, 18, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 15, 15, 15, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
0, 18, 18, 18, 18, 18, 18, 18, 18, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 18, 18,
- 18, 18, 18, 18, 18, 18, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 3, 3,
+ 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 116, 86, 116, 15,
+ 18, 0, 123, 91, 123, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 123, 123, 123, 91, 91, 91, 91, 123, 123, 91, 91, 3, 3, 17, 3, 3,
+ 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 3,
- 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 116, 116, 116, 86,
- 86, 86, 86, 116, 116, 86, 86, 3, 3, 17, 3, 3, 3, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0,
- 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 86, 86,
- 86, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 91, 91, 91, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 86, 86, 86, 86, 86, 116, 86, 86, 86, 86, 86, 86, 86, 86,
- 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 123, 91, 91, 91,
+ 91, 91, 91, 91, 91, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 116, 116, 116, 86, 86, 86, 86, 86, 86, 86, 86, 86, 116, 116, 15, 15,
- 15, 15, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 86,
- 116, 86, 116, 116, 86, 86, 86, 86, 86, 86, 116, 86, 0, 0, 0, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 3, 3, 15, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 118, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 123, 123, 123, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 123, 123, 15, 15, 15, 15, 3, 3, 3, 3, 0, 0, 0, 0, 3, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 15, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 123, 123,
+ 123, 91, 91, 91, 123, 123, 91, 123, 91, 91, 3, 3, 3, 3, 3, 3, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 123,
+ 123, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 91, 123, 123, 123, 123, 0, 0, 123,
+ 123, 0, 0, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0,
+ 0, 0, 15, 15, 15, 15, 15, 123, 123, 0, 0, 91, 91, 91, 91, 91, 91, 91,
+ 0, 0, 0, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 123, 123, 123,
+ 91, 91, 91, 91, 91, 91, 123, 91, 123, 123, 123, 123, 91, 91, 123, 91,
+ 91, 15, 15, 3, 15, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 123, 123, 123, 91, 91, 91, 91, 0, 0, 123, 123, 123,
+ 123, 91, 91, 123, 91, 91, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 123, 123, 123, 91,
+ 91, 91, 91, 91, 91, 91, 91, 123, 123, 91, 123, 91, 91, 3, 3, 3, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 123, 91,
+ 123, 123, 91, 91, 91, 91, 91, 91, 123, 91, 0, 0, 0, 0, 0, 0, 0, 0,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
+ 0, 0, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
+ 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 91, 91, 91,
+ 91, 91, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 91, 91, 91, 91, 91, 91, 91, 3,
+ 3, 3, 3, 3, 14, 14, 14, 14, 90, 90, 90, 90, 3, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 18, 18, 18, 18, 18, 18,
+ 18, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86,
- 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 15, 15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 116, 116, 86, 86, 86, 14, 14, 14, 116,
- 116, 116, 116, 116, 116, 17, 17, 17, 17, 17, 17, 17, 17, 86, 86, 86,
- 86, 86, 86, 86, 86, 14, 14, 86, 86, 86, 86, 86, 86, 86, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 86, 86, 86, 86, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 15, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 14,
+ 91, 91, 3, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 123, 123, 91, 91, 91,
+ 14, 14, 14, 123, 123, 123, 123, 123, 123, 17, 17, 17, 17, 17, 17, 17,
+ 17, 91, 91, 91, 91, 91, 91, 91, 91, 14, 14, 91, 91, 91, 91, 91, 91,
+ 91, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 91, 91, 91,
+ 91, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 86, 86, 86,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 21, 21, 21, 21, 21, 21, 21, 21,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14,
+ 14, 91, 91, 91, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 21,
+ 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 21, 21, 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106,
+ 0, 106, 106, 0, 0, 106, 0, 0, 106, 106, 0, 0, 106, 106, 106, 106, 0,
+ 106, 106, 106, 106, 106, 106, 106, 106, 21, 21, 21, 21, 0, 21, 0, 21,
21, 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 100, 0,
- 100, 100, 0, 0, 100, 0, 0, 100, 100, 0, 0, 100, 100, 100, 100, 0, 100,
- 100, 100, 100, 100, 100, 100, 100, 21, 21, 21, 21, 0, 21, 0, 21, 21,
- 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 21, 21,
+ 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 100, 100, 0, 100, 100, 100, 100, 0, 0,
- 100, 100, 100, 100, 100, 100, 100, 100, 0, 100, 100, 100, 100, 100,
- 100, 100, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 100, 100, 0, 100, 100,
- 100, 100, 0, 100, 100, 100, 100, 100, 0, 100, 0, 0, 0, 100, 100, 100,
- 100, 100, 100, 100, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 106, 106, 0, 106, 106, 106, 106, 0,
+ 0, 106, 106, 106, 106, 106, 106, 106, 106, 0, 106, 106, 106, 106, 106,
+ 106, 106, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106, 106, 0, 106, 106,
+ 106, 106, 0, 106, 106, 106, 106, 106, 0, 106, 0, 0, 0, 106, 106, 106,
+ 106, 106, 106, 106, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 100, 100, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 21, 21, 21,
+ 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 106, 106, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 21, 21, 21, 21, 21, 21, 0, 0, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 7, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 21, 21, 21, 21, 21, 21, 0, 0, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 7, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7,
- 21, 21, 21, 21, 21, 21, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21,
- 21, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 7, 21,
+ 21, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 7, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 7, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 7, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 7, 21, 21, 21, 21, 21, 21, 100, 21, 0, 0, 9, 9, 9, 9, 9, 9,
+ 21, 21, 7, 21, 21, 21, 21, 21, 21, 106, 21, 0, 0, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15,
+ 15, 15, 15, 15, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 91, 91, 91,
+ 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 0, 0, 15, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 0, 15,
+ 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 15, 0, 15, 0, 15, 15, 15,
+ 0, 15, 15, 0, 15, 0, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 15,
+ 0, 15, 0, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15,
+ 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
- 0, 15, 0, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15,
- 15, 15, 15, 0, 15, 0, 15, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0,
- 15, 0, 15, 0, 15, 15, 15, 0, 15, 15, 0, 15, 0, 0, 15, 0, 15, 0, 15,
- 0, 15, 0, 15, 0, 15, 15, 0, 15, 0, 0, 15, 15, 15, 15, 0, 15, 15, 15,
- 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 0, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15,
- 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14, 14,
+ 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0,
- 0, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14,
- 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14,
- 14, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0
+ 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 0, 0, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
#endif /* TCL_UTF_MAX > 3 */
};
@@ -1361,11 +1447,12 @@ static const int groups[] = {
53057, -24702, 54081, 53569, -41598, 54593, -33150, 54849, 55873,
55617, 56129, -14206, 609, 451, 674, 20354, -24767, -14271, -33215,
2763585, -41663, 2762817, -2768510, -49855, 17729, 18241, -2760318,
- -2759550, -2760062, 53890, 52866, 52610, 51842, 52098, 53122,
- -10823550, -10830718, 53634, 54146, -2750078, -2751614, 54658,
- 54914, -2745982, 55938, 17794, 55682, 18306, 56194, 4, 6, -21370,
- 9793, 9537, 16449, 16193, 9858, 9602, 8066, 16514, 16258, 2113,
- 16002, 14722, 1, 12162, 13954, 2178, 22146, 20610, -1662, -15295,
+ -2759550, -2760062, 53890, 52866, 52610, 51842, 52098, -10833534,
+ -10832510, 53122, -10823550, -10830718, 53634, 54146, -2750078,
+ -10829950, -2751614, 54658, 54914, -2745982, 55938, -10824062,
+ 17794, 55682, 18306, 56194, -10817918, 4, 6, -21370, 29761, 9793,
+ 9537, 16449, 16193, 9858, 9602, 8066, 16514, 16258, 2113, 16002,
+ 14722, 1, 12162, 13954, 2178, 22146, 20610, -1662, 29826, -15295,
24706, -1727, 20545, 7, 3905, 3970, 12353, 12418, 8, 1859649,
10, -9044862, -976254, 15234, -1949375, -1918, -1983, -18814,
-21886, -25470, -32638, -28542, -32126, -1981, -2174, -18879,
@@ -1373,7 +1460,8 @@ static const int groups[] = {
-1924287, -2145983, -2115007, 7233, 7298, 4170, 4234, 6749, 6813,
-2750143, -976319, -2746047, 2763650, 2762882, -2759615, -2751679,
-2760383, -2760127, -2768575, 1859714, -9044927, -10823615, -10830783,
- 18, 17, 10305, 10370
+ -10833599, -10832575, -10830015, -10817983, -10824127, 18, 17,
+ 10305, 10370
};
#if TCL_UTF_MAX > 3
diff --git a/generic/tclVar.c b/generic/tclVar.c
index 12d6911..33071ae 100644
--- a/generic/tclVar.c
+++ b/generic/tclVar.c
@@ -1916,6 +1916,9 @@ TclPtrSetVar(
Tcl_IncrRefCount(oldValuePtr); /* Since var is ref */
}
Tcl_AppendObjToObj(oldValuePtr, newValuePtr);
+ if (newValuePtr->refCount == 0) {
+ Tcl_DecrRefCount(newValuePtr);
+ }
}
}
} else if (newValuePtr != oldValuePtr) {
@@ -3602,9 +3605,8 @@ ObjMakeUpvar(
|| !HasLocalVars(varFramePtr)
|| (strstr(TclGetString(myNamePtr), "::") != NULL))) {
Tcl_AppendResult((Tcl_Interp *) iPtr, "bad variable name \"",
- TclGetString(myNamePtr), "\": upvar won't create "
- "namespace variable that refers to procedure variable",
- NULL);
+ TclGetString(myNamePtr), "\": can't create namespace "
+ "variable that refers to procedure variable", NULL);
return TCL_ERROR;
}
}
@@ -3702,8 +3704,8 @@ TclPtrObjMakeUpvar(
*/
Tcl_AppendResult((Tcl_Interp *) iPtr, "bad variable name \"",
- myName, "\": upvar won't create a scalar variable "
- "that looks like an array element", NULL);
+ myName, "\": can't create a scalar variable that "
+ "looks like an array element", NULL);
return TCL_ERROR;
}
}
@@ -3912,7 +3914,8 @@ Tcl_GetVariableFullName(
} else if (iPtr->varFramePtr->procPtr) {
int index = varPtr - iPtr->varFramePtr->compiledLocals;
- if (index < iPtr->varFramePtr->numCompiledLocals) {
+ if (index >= 0
+ && index < iPtr->varFramePtr->numCompiledLocals) {
namePtr = localName(iPtr->varFramePtr, index);
Tcl_AppendObjToObj(objPtr, namePtr);
}
diff --git a/library/init.tcl b/library/init.tcl
index 38c6bb3..4981cd6 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -16,7 +16,7 @@
if {[info commands package] == ""} {
error "version mismatch: library\nscripts expect Tcl version 7.5b1 or later but the loaded version is\nonly [info patchlevel]"
}
-package require -exact Tcl 8.5.15
+package require -exact Tcl 8.5.18
# Compute the auto path to use in this interpreter.
# The values on the path come from several locations:
diff --git a/library/platform/pkgIndex.tcl b/library/platform/pkgIndex.tcl
index 23a3408..5250163 100644
--- a/library/platform/pkgIndex.tcl
+++ b/library/platform/pkgIndex.tcl
@@ -1,3 +1,3 @@
-package ifneeded platform 1.0.12 [list source [file join $dir platform.tcl]]
+package ifneeded platform 1.0.13 [list source [file join $dir platform.tcl]]
package ifneeded platform::shell 1.1.4 [list source [file join $dir shell.tcl]]
diff --git a/library/platform/platform.tcl b/library/platform/platform.tcl
index 5698425..1bce7b5 100644
--- a/library/platform/platform.tcl
+++ b/library/platform/platform.tcl
@@ -313,13 +313,25 @@ proc ::platform::patterns {id} {
}
}
}
+ macosx-powerpc {
+ lappend res macosx-universal
+ }
+ macosx-x86_64 {
+ lappend res macosx-i386-x86_64
+ }
+ macosx-ix86 {
+ lappend res macosx-universal macosx-i386-x86_64
+ }
macosx*-* {
# 10.5+
if {[regexp {macosx([^-]*)-(.*)} $id -> v cpu]} {
switch -exact -- $cpu {
- ix86 -
- x86_64 { set alt i386-x86_64 }
+ ix86 {
+ lappend alt i386-x86_64
+ lappend alt universal
+ }
+ x86_64 { lappend alt i386-x86_64 }
default { set alt {} }
}
@@ -330,35 +342,26 @@ proc ::platform::patterns {id} {
set res {}
for {set j $minor} {$j >= 5} {incr j -1} {
lappend res macosx${major}.${j}-${cpu}
- lappend res macosx${major}.${j}-universal
- if {$alt ne {}} {
- lappend res macosx${major}.${j}-$alt
+ foreach a $alt {
+ lappend res macosx${major}.${j}-$a
}
}
# Add unversioned patterns for 10.3/10.4 builds.
lappend res macosx-${cpu}
- lappend res macosx-universal
- if {$alt ne {}} {
- lappend res macosx-$alt
+ foreach a $alt {
+ lappend res macosx-$a
}
} else {
- lappend res macosx-universal
- if {$alt ne {}} {
- lappend res macosx-$alt
+ # No version, just do unversioned patterns.
+ foreach a $alt {
+ lappend res macosx-$a
}
}
} else {
- lappend res macosx-universal
+ # no v, no cpu ... nothing
}
}
- macosx-powerpc {
- lappend res macosx-universal
- }
- macosx-x86_64 -
- macosx-ix86 {
- lappend res macosx-universal macosx-i386-x86_64
- }
}
lappend res tcl ; # Pure tcl packages are always compatible.
return $res
@@ -368,7 +371,7 @@ proc ::platform::patterns {id} {
# ### ### ### ######### ######### #########
## Ready
-package provide platform 1.0.12
+package provide platform 1.0.13
# ### ### ### ######### ######### #########
## Demo application
diff --git a/library/platform/shell.tcl b/library/platform/shell.tcl
index d37cdcd..6eb9691 100644
--- a/library/platform/shell.tcl
+++ b/library/platform/shell.tcl
@@ -187,7 +187,7 @@ proc ::platform::shell::TEMP {} {
}
}
}
- if {$channel != ""} {
+ if {$channel ne ""} {
return -code error "Failed to open a temporary file: $channel"
} else {
return -code error "Failed to find an unused temporary file name"
diff --git a/library/tcltest/pkgIndex.tcl b/library/tcltest/pkgIndex.tcl
index c99ad2a..987725f 100644
--- a/library/tcltest/pkgIndex.tcl
+++ b/library/tcltest/pkgIndex.tcl
@@ -9,4 +9,4 @@
# full path name of this file's directory.
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
-package ifneeded tcltest 2.3.7 [list source [file join $dir tcltest.tcl]]
+package ifneeded tcltest 2.3.8 [list source [file join $dir tcltest.tcl]]
diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl
index 4b94312..8e43859 100644
--- a/library/tcltest/tcltest.tcl
+++ b/library/tcltest/tcltest.tcl
@@ -22,7 +22,7 @@ namespace eval tcltest {
# When the version number changes, be sure to update the pkgIndex.tcl file,
# and the install directory in the Makefiles. When the minor version
# changes (new feature) be sure to update the man page as well.
- variable Version 2.3.7
+ variable Version 2.3.8
# Compatibility support for dumb variables defined in tcltest 1
# Do not use these. Call [package provide Tcl] and [info patchlevel]
@@ -1991,47 +1991,6 @@ proc tcltest::test {name description args} {
}
}
- # Always run the cleanup script
- set code [catch {uplevel 1 $cleanup} cleanupMsg]
- if {$code == 1} {
- set errorInfo(cleanup) $::errorInfo
- set errorCode(cleanup) $::errorCode
- }
- set cleanupFailure [expr {$code != 0}]
-
- set coreFailure 0
- set coreMsg ""
- # check for a core file first - if one was created by the test,
- # then the test failed
- if {[preserveCore]} {
- if {[file exists [file join [workingDirectory] core]]} {
- # There's only a test failure if there is a core file
- # and (1) there previously wasn't one or (2) the new
- # one is different from the old one.
- if {[info exists coreModTime]} {
- if {$coreModTime != [file mtime \
- [file join [workingDirectory] core]]} {
- set coreFailure 1
- }
- } else {
- set coreFailure 1
- }
-
- if {([preserveCore] > 1) && ($coreFailure)} {
- append coreMsg "\nMoving file to:\
- [file join [temporaryDirectory] core-$name]"
- catch {file rename -force -- \
- [file join [workingDirectory] core] \
- [file join [temporaryDirectory] core-$name]
- } msg
- if {$msg ne {}} {
- append coreMsg "\nError:\
- Problem renaming core file: $msg"
- }
- }
- }
- }
-
# check if the return code matched the expected return code
set codeFailure 0
if {!$setupFailure && ($returnCode ni $returnCodes)} {
@@ -2076,6 +2035,47 @@ proc tcltest::test {name description args} {
set scriptFailure 1
}
+ # Always run the cleanup script
+ set code [catch {uplevel 1 $cleanup} cleanupMsg]
+ if {$code == 1} {
+ set errorInfo(cleanup) $::errorInfo
+ set errorCode(cleanup) $::errorCode
+ }
+ set cleanupFailure [expr {$code != 0}]
+
+ set coreFailure 0
+ set coreMsg ""
+ # check for a core file first - if one was created by the test,
+ # then the test failed
+ if {[preserveCore]} {
+ if {[file exists [file join [workingDirectory] core]]} {
+ # There's only a test failure if there is a core file
+ # and (1) there previously wasn't one or (2) the new
+ # one is different from the old one.
+ if {[info exists coreModTime]} {
+ if {$coreModTime != [file mtime \
+ [file join [workingDirectory] core]]} {
+ set coreFailure 1
+ }
+ } else {
+ set coreFailure 1
+ }
+
+ if {([preserveCore] > 1) && ($coreFailure)} {
+ append coreMsg "\nMoving file to:\
+ [file join [temporaryDirectory] core-$name]"
+ catch {file rename -force -- \
+ [file join [workingDirectory] core] \
+ [file join [temporaryDirectory] core-$name]
+ } msg
+ if {$msg ne {}} {
+ append coreMsg "\nError:\
+ Problem renaming core file: $msg"
+ }
+ }
+ }
+ }
+
# if we didn't experience any failures, then we passed
variable numTests
if {!($setupFailure || $cleanupFailure || $coreFailure
diff --git a/library/tzdata/Africa/Accra b/library/tzdata/Africa/Accra
index faf58fb..39db976 100644
--- a/library/tzdata/Africa/Accra
+++ b/library/tzdata/Africa/Accra
@@ -3,6 +3,38 @@
set TZData(:Africa/Accra) {
{-9223372036854775808 -52 0 LMT}
{-1640995148 0 0 GMT}
+ {-1556841600 1200 1 GHST}
+ {-1546388400 0 0 GMT}
+ {-1525305600 1200 1 GHST}
+ {-1514852400 0 0 GMT}
+ {-1493769600 1200 1 GHST}
+ {-1483316400 0 0 GMT}
+ {-1462233600 1200 1 GHST}
+ {-1451780400 0 0 GMT}
+ {-1430611200 1200 1 GHST}
+ {-1420158000 0 0 GMT}
+ {-1399075200 1200 1 GHST}
+ {-1388622000 0 0 GMT}
+ {-1367539200 1200 1 GHST}
+ {-1357086000 0 0 GMT}
+ {-1336003200 1200 1 GHST}
+ {-1325550000 0 0 GMT}
+ {-1304380800 1200 1 GHST}
+ {-1293927600 0 0 GMT}
+ {-1272844800 1200 1 GHST}
+ {-1262391600 0 0 GMT}
+ {-1241308800 1200 1 GHST}
+ {-1230855600 0 0 GMT}
+ {-1209772800 1200 1 GHST}
+ {-1199319600 0 0 GMT}
+ {-1178150400 1200 1 GHST}
+ {-1167697200 0 0 GMT}
+ {-1146614400 1200 1 GHST}
+ {-1136161200 0 0 GMT}
+ {-1115078400 1200 1 GHST}
+ {-1104625200 0 0 GMT}
+ {-1083542400 1200 1 GHST}
+ {-1073089200 0 0 GMT}
{-1051920000 1200 1 GHST}
{-1041466800 0 0 GMT}
{-1020384000 1200 1 GHST}
diff --git a/library/tzdata/Africa/Addis_Ababa b/library/tzdata/Africa/Addis_Ababa
index 4b92483..7aa5653 100644
--- a/library/tzdata/Africa/Addis_Ababa
+++ b/library/tzdata/Africa/Addis_Ababa
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Addis_Ababa) {
- {-9223372036854775808 9288 0 LMT}
- {-3155682888 9320 0 ADMT}
- {-1062210920 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Addis_Ababa) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Asmara b/library/tzdata/Africa/Asmara
index 1f0f13e..3d33c94 100644
--- a/library/tzdata/Africa/Asmara
+++ b/library/tzdata/Africa/Asmara
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Asmara) {
- {-9223372036854775808 9332 0 LMT}
- {-3155682932 9332 0 AMT}
- {-2524530932 9320 0 ADMT}
- {-1062210920 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Asmara) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Asmera b/library/tzdata/Africa/Asmera
index 931c36d..ca8d123 100644
--- a/library/tzdata/Africa/Asmera
+++ b/library/tzdata/Africa/Asmera
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Africa/Asmara)]} {
- LoadTimeZoneFile Africa/Asmara
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
-set TZData(:Africa/Asmera) $TZData(:Africa/Asmara)
+set TZData(:Africa/Asmera) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Bamako b/library/tzdata/Africa/Bamako
index 7ed62e0..0818378 100644
--- a/library/tzdata/Africa/Bamako
+++ b/library/tzdata/Africa/Bamako
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Bamako) {
- {-9223372036854775808 -1920 0 LMT}
- {-1830382080 0 0 GMT}
- {-1131235200 -3600 0 WAT}
- {-300841200 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Bamako) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Bangui b/library/tzdata/Africa/Bangui
index 94f5058..0326a6c 100644
--- a/library/tzdata/Africa/Bangui
+++ b/library/tzdata/Africa/Bangui
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Bangui) {
- {-9223372036854775808 4460 0 LMT}
- {-1830388460 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Bangui) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Banjul b/library/tzdata/Africa/Banjul
index a7f0168..ded0e57 100644
--- a/library/tzdata/Africa/Banjul
+++ b/library/tzdata/Africa/Banjul
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Banjul) {
- {-9223372036854775808 -3996 0 LMT}
- {-1830380004 -3996 0 BMT}
- {-1104533604 -3600 0 WAT}
- {-189385200 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Banjul) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Bissau b/library/tzdata/Africa/Bissau
index d51cb9f..5693228 100644
--- a/library/tzdata/Africa/Bissau
+++ b/library/tzdata/Africa/Bissau
@@ -2,6 +2,6 @@
set TZData(:Africa/Bissau) {
{-9223372036854775808 -3740 0 LMT}
- {-1849388260 -3600 0 WAT}
+ {-1830380260 -3600 0 WAT}
{157770000 0 0 GMT}
}
diff --git a/library/tzdata/Africa/Blantyre b/library/tzdata/Africa/Blantyre
index 17b58f4..9a404c5 100644
--- a/library/tzdata/Africa/Blantyre
+++ b/library/tzdata/Africa/Blantyre
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Blantyre) {
- {-9223372036854775808 8400 0 LMT}
- {-2109291600 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Blantyre) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Brazzaville b/library/tzdata/Africa/Brazzaville
index b4e0923..111eff4 100644
--- a/library/tzdata/Africa/Brazzaville
+++ b/library/tzdata/Africa/Brazzaville
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Brazzaville) {
- {-9223372036854775808 3668 0 LMT}
- {-1830387668 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Brazzaville) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Bujumbura b/library/tzdata/Africa/Bujumbura
index c26d053..1e463d8 100644
--- a/library/tzdata/Africa/Bujumbura
+++ b/library/tzdata/Africa/Bujumbura
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Bujumbura) {
- {-9223372036854775808 7048 0 LMT}
- {-2524528648 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Bujumbura) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Cairo b/library/tzdata/Africa/Cairo
index 842b7b2..aaeec54 100644
--- a/library/tzdata/Africa/Cairo
+++ b/library/tzdata/Africa/Cairo
@@ -125,4 +125,8 @@ set TZData(:Africa/Cairo) {
{1281474000 7200 0 EET}
{1284069600 10800 1 EEST}
{1285880400 7200 0 EET}
+ {1400191200 10800 1 EEST}
+ {1403816400 7200 0 EET}
+ {1406844000 10800 1 EEST}
+ {1411678800 7200 0 EET}
}
diff --git a/library/tzdata/Africa/Casablanca b/library/tzdata/Africa/Casablanca
index dec2778..224e5c2 100644
--- a/library/tzdata/Africa/Casablanca
+++ b/library/tzdata/Africa/Casablanca
@@ -38,46 +38,46 @@ set TZData(:Africa/Casablanca) {
{1376100000 3600 1 WEST}
{1382839200 0 0 WET}
{1396144800 3600 1 WEST}
- {1404007200 0 0 WET}
- {1406599200 3600 1 WEST}
+ {1403920800 0 0 WET}
+ {1406944800 3600 1 WEST}
{1414288800 0 0 WET}
{1427594400 3600 1 WEST}
- {1434592800 0 0 WET}
+ {1434160800 0 0 WET}
{1437184800 3600 1 WEST}
{1445738400 0 0 WET}
{1459044000 3600 1 WEST}
- {1465264800 0 0 WET}
- {1467856800 3600 1 WEST}
+ {1465005600 0 0 WET}
+ {1468029600 3600 1 WEST}
{1477792800 0 0 WET}
{1490493600 3600 1 WEST}
- {1495850400 0 0 WET}
- {1498442400 3600 1 WEST}
+ {1495245600 0 0 WET}
+ {1498874400 3600 1 WEST}
{1509242400 0 0 WET}
{1521943200 3600 1 WEST}
- {1526436000 0 0 WET}
- {1529028000 3600 1 WEST}
+ {1526090400 0 0 WET}
+ {1529114400 3600 1 WEST}
{1540692000 0 0 WET}
{1553997600 3600 1 WEST}
- {1557108000 0 0 WET}
- {1559700000 3600 1 WEST}
+ {1556935200 0 0 WET}
+ {1559959200 3600 1 WEST}
{1572141600 0 0 WET}
{1585447200 3600 1 WEST}
- {1587693600 0 0 WET}
- {1590285600 3600 1 WEST}
+ {1587175200 0 0 WET}
+ {1590804000 3600 1 WEST}
{1603591200 0 0 WET}
{1616896800 3600 1 WEST}
- {1618279200 0 0 WET}
- {1620871200 3600 1 WEST}
+ {1618020000 0 0 WET}
+ {1621044000 3600 1 WEST}
{1635645600 0 0 WET}
{1648346400 3600 1 WEST}
- {1648951200 0 0 WET}
- {1651543200 3600 1 WEST}
+ {1648864800 0 0 WET}
+ {1651888800 3600 1 WEST}
{1667095200 0 0 WET}
{1682128800 3600 1 WEST}
{1698544800 0 0 WET}
- {1712714400 3600 1 WEST}
+ {1712973600 3600 1 WEST}
{1729994400 0 0 WET}
- {1743386400 3600 1 WEST}
+ {1743818400 3600 1 WEST}
{1761444000 0 0 WET}
{1774749600 3600 1 WEST}
{1792893600 0 0 WET}
@@ -98,71 +98,136 @@ set TZData(:Africa/Casablanca) {
{2026951200 3600 1 WEST}
{2045700000 0 0 WET}
{2058400800 3600 1 WEST}
- {2077149600 0 0 WET}
+ {2077063200 0 0 WET}
+ {2077153200 0 0 WET}
{2090455200 3600 1 WEST}
- {2108167200 0 0 WET}
+ {2107908000 0 0 WET}
+ {2108602800 0 0 WET}
{2121904800 3600 1 WEST}
- {2138839200 0 0 WET}
+ {2138752800 0 0 WET}
+ {2140052400 0 0 WET}
{2153354400 3600 1 WEST}
- {2184800400 3600 1 WEST}
- {2216250000 3600 1 WEST}
- {2248304400 3600 1 WEST}
- {2279754000 3600 1 WEST}
- {2311203600 3600 1 WEST}
- {2342653200 3600 1 WEST}
- {2374102800 3600 1 WEST}
- {2405552400 3600 1 WEST}
- {2437606800 3600 1 WEST}
- {2469056400 3600 1 WEST}
- {2500506000 3600 1 WEST}
- {2531955600 3600 1 WEST}
- {2563405200 3600 1 WEST}
- {2595459600 3600 1 WEST}
- {2626909200 3600 1 WEST}
- {2658358800 3600 1 WEST}
- {2689808400 3600 1 WEST}
- {2721258000 3600 1 WEST}
- {2752707600 3600 1 WEST}
- {2784762000 3600 1 WEST}
- {2816211600 3600 1 WEST}
- {2847661200 3600 1 WEST}
- {2879110800 3600 1 WEST}
- {2910560400 3600 1 WEST}
- {2942010000 3600 1 WEST}
- {2974064400 3600 1 WEST}
- {3005514000 3600 1 WEST}
- {3036963600 3600 1 WEST}
- {3068413200 3600 1 WEST}
- {3099862800 3600 1 WEST}
- {3131917200 3600 1 WEST}
- {3163366800 3600 1 WEST}
- {3194816400 3600 1 WEST}
- {3226266000 3600 1 WEST}
- {3257715600 3600 1 WEST}
- {3289165200 3600 1 WEST}
- {3321219600 3600 1 WEST}
- {3352669200 3600 1 WEST}
- {3384118800 3600 1 WEST}
- {3415568400 3600 1 WEST}
- {3447018000 3600 1 WEST}
- {3479072400 3600 1 WEST}
- {3510522000 3600 1 WEST}
- {3541971600 3600 1 WEST}
- {3573421200 3600 1 WEST}
- {3604870800 3600 1 WEST}
- {3636320400 3600 1 WEST}
- {3668374800 3600 1 WEST}
- {3699824400 3600 1 WEST}
- {3731274000 3600 1 WEST}
- {3762723600 3600 1 WEST}
- {3794173200 3600 1 WEST}
- {3825622800 3600 1 WEST}
- {3857677200 3600 1 WEST}
- {3889126800 3600 1 WEST}
- {3920576400 3600 1 WEST}
- {3952026000 3600 1 WEST}
- {3983475600 3600 1 WEST}
- {4015530000 3600 1 WEST}
- {4046979600 3600 1 WEST}
- {4078429200 3600 1 WEST}
+ {2172103200 0 0 WET}
+ {2184804000 3600 1 WEST}
+ {2203552800 0 0 WET}
+ {2216253600 3600 1 WEST}
+ {2235002400 0 0 WET}
+ {2248308000 3600 1 WEST}
+ {2266452000 0 0 WET}
+ {2279757600 3600 1 WEST}
+ {2297901600 0 0 WET}
+ {2311207200 3600 1 WEST}
+ {2329351200 0 0 WET}
+ {2342656800 3600 1 WEST}
+ {2361405600 0 0 WET}
+ {2374106400 3600 1 WEST}
+ {2392855200 0 0 WET}
+ {2405556000 3600 1 WEST}
+ {2424304800 0 0 WET}
+ {2437610400 3600 1 WEST}
+ {2455754400 0 0 WET}
+ {2469060000 3600 1 WEST}
+ {2487204000 0 0 WET}
+ {2500509600 3600 1 WEST}
+ {2519258400 0 0 WET}
+ {2531959200 3600 1 WEST}
+ {2550708000 0 0 WET}
+ {2563408800 3600 1 WEST}
+ {2582157600 0 0 WET}
+ {2595463200 3600 1 WEST}
+ {2613607200 0 0 WET}
+ {2626912800 3600 1 WEST}
+ {2645056800 0 0 WET}
+ {2658362400 3600 1 WEST}
+ {2676506400 0 0 WET}
+ {2689812000 3600 1 WEST}
+ {2708560800 0 0 WET}
+ {2721261600 3600 1 WEST}
+ {2740010400 0 0 WET}
+ {2752711200 3600 1 WEST}
+ {2771460000 0 0 WET}
+ {2784765600 3600 1 WEST}
+ {2802909600 0 0 WET}
+ {2816215200 3600 1 WEST}
+ {2834359200 0 0 WET}
+ {2847664800 3600 1 WEST}
+ {2866413600 0 0 WET}
+ {2879114400 3600 1 WEST}
+ {2897863200 0 0 WET}
+ {2910564000 3600 1 WEST}
+ {2929312800 0 0 WET}
+ {2942013600 3600 1 WEST}
+ {2960762400 0 0 WET}
+ {2974068000 3600 1 WEST}
+ {2992212000 0 0 WET}
+ {3005517600 3600 1 WEST}
+ {3023661600 0 0 WET}
+ {3036967200 3600 1 WEST}
+ {3055716000 0 0 WET}
+ {3068416800 3600 1 WEST}
+ {3087165600 0 0 WET}
+ {3099866400 3600 1 WEST}
+ {3118615200 0 0 WET}
+ {3131920800 3600 1 WEST}
+ {3150064800 0 0 WET}
+ {3163370400 3600 1 WEST}
+ {3181514400 0 0 WET}
+ {3194820000 3600 1 WEST}
+ {3212964000 0 0 WET}
+ {3226269600 3600 1 WEST}
+ {3245018400 0 0 WET}
+ {3257719200 3600 1 WEST}
+ {3276468000 0 0 WET}
+ {3289168800 3600 1 WEST}
+ {3307917600 0 0 WET}
+ {3321223200 3600 1 WEST}
+ {3339367200 0 0 WET}
+ {3352672800 3600 1 WEST}
+ {3370816800 0 0 WET}
+ {3384122400 3600 1 WEST}
+ {3402871200 0 0 WET}
+ {3415572000 3600 1 WEST}
+ {3434320800 0 0 WET}
+ {3447021600 3600 1 WEST}
+ {3465770400 0 0 WET}
+ {3479076000 3600 1 WEST}
+ {3497220000 0 0 WET}
+ {3510525600 3600 1 WEST}
+ {3528669600 0 0 WET}
+ {3541975200 3600 1 WEST}
+ {3560119200 0 0 WET}
+ {3573424800 3600 1 WEST}
+ {3592173600 0 0 WET}
+ {3604874400 3600 1 WEST}
+ {3623623200 0 0 WET}
+ {3636324000 3600 1 WEST}
+ {3655072800 0 0 WET}
+ {3668378400 3600 1 WEST}
+ {3686522400 0 0 WET}
+ {3699828000 3600 1 WEST}
+ {3717972000 0 0 WET}
+ {3731277600 3600 1 WEST}
+ {3750026400 0 0 WET}
+ {3762727200 3600 1 WEST}
+ {3781476000 0 0 WET}
+ {3794176800 3600 1 WEST}
+ {3812925600 0 0 WET}
+ {3825626400 3600 1 WEST}
+ {3844375200 0 0 WET}
+ {3857680800 3600 1 WEST}
+ {3875824800 0 0 WET}
+ {3889130400 3600 1 WEST}
+ {3907274400 0 0 WET}
+ {3920580000 3600 1 WEST}
+ {3939328800 0 0 WET}
+ {3952029600 3600 1 WEST}
+ {3970778400 0 0 WET}
+ {3983479200 3600 1 WEST}
+ {4002228000 0 0 WET}
+ {4015533600 3600 1 WEST}
+ {4033677600 0 0 WET}
+ {4046983200 3600 1 WEST}
+ {4065127200 0 0 WET}
+ {4078432800 3600 1 WEST}
+ {4096576800 0 0 WET}
}
diff --git a/library/tzdata/Africa/Conakry b/library/tzdata/Africa/Conakry
index d17ce4b..4373720 100644
--- a/library/tzdata/Africa/Conakry
+++ b/library/tzdata/Africa/Conakry
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Conakry) {
- {-9223372036854775808 -3292 0 LMT}
- {-1830380708 0 0 GMT}
- {-1131235200 -3600 0 WAT}
- {-315615600 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Conakry) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Dakar b/library/tzdata/Africa/Dakar
index 487dc62..78e800c 100644
--- a/library/tzdata/Africa/Dakar
+++ b/library/tzdata/Africa/Dakar
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Dakar) {
- {-9223372036854775808 -4184 0 LMT}
- {-1830379816 -3600 0 WAT}
- {-902098800 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Dakar) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Dar_es_Salaam b/library/tzdata/Africa/Dar_es_Salaam
index 98151ec..00e8d4e 100644
--- a/library/tzdata/Africa/Dar_es_Salaam
+++ b/library/tzdata/Africa/Dar_es_Salaam
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Dar_es_Salaam) {
- {-9223372036854775808 9428 0 LMT}
- {-1230777428 10800 0 EAT}
- {-694321200 9900 0 BEAUT}
- {-284006700 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Dar_es_Salaam) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Djibouti b/library/tzdata/Africa/Djibouti
index 0ec510c..859ea32 100644
--- a/library/tzdata/Africa/Djibouti
+++ b/library/tzdata/Africa/Djibouti
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Djibouti) {
- {-9223372036854775808 10356 0 LMT}
- {-1846291956 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Djibouti) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Douala b/library/tzdata/Africa/Douala
index 301a530..892b16a 100644
--- a/library/tzdata/Africa/Douala
+++ b/library/tzdata/Africa/Douala
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Douala) {
- {-9223372036854775808 2328 0 LMT}
- {-1830386328 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Douala) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/El_Aaiun b/library/tzdata/Africa/El_Aaiun
index a8b9d34..3a5c934 100644
--- a/library/tzdata/Africa/El_Aaiun
+++ b/library/tzdata/Africa/El_Aaiun
@@ -4,4 +4,219 @@ set TZData(:Africa/El_Aaiun) {
{-9223372036854775808 -3168 0 LMT}
{-1136070432 -3600 0 WAT}
{198291600 0 0 WET}
+ {199756800 3600 1 WEST}
+ {207702000 0 0 WET}
+ {231292800 3600 1 WEST}
+ {244249200 0 0 WET}
+ {265507200 3600 1 WEST}
+ {271033200 0 0 WET}
+ {1212278400 3600 1 WEST}
+ {1220223600 0 0 WET}
+ {1243814400 3600 1 WEST}
+ {1250809200 0 0 WET}
+ {1272758400 3600 1 WEST}
+ {1281222000 0 0 WET}
+ {1301788800 3600 1 WEST}
+ {1312066800 0 0 WET}
+ {1335664800 3600 1 WEST}
+ {1342749600 0 0 WET}
+ {1345428000 3600 1 WEST}
+ {1348970400 0 0 WET}
+ {1367114400 3600 1 WEST}
+ {1373162400 0 0 WET}
+ {1376100000 3600 1 WEST}
+ {1382839200 0 0 WET}
+ {1396144800 3600 1 WEST}
+ {1403920800 0 0 WET}
+ {1406944800 3600 1 WEST}
+ {1414288800 0 0 WET}
+ {1427594400 3600 1 WEST}
+ {1434160800 0 0 WET}
+ {1437184800 3600 1 WEST}
+ {1445738400 0 0 WET}
+ {1459044000 3600 1 WEST}
+ {1465005600 0 0 WET}
+ {1468029600 3600 1 WEST}
+ {1477792800 0 0 WET}
+ {1490493600 3600 1 WEST}
+ {1495245600 0 0 WET}
+ {1498874400 3600 1 WEST}
+ {1509242400 0 0 WET}
+ {1521943200 3600 1 WEST}
+ {1526090400 0 0 WET}
+ {1529114400 3600 1 WEST}
+ {1540692000 0 0 WET}
+ {1553997600 3600 1 WEST}
+ {1556935200 0 0 WET}
+ {1559959200 3600 1 WEST}
+ {1572141600 0 0 WET}
+ {1585447200 3600 1 WEST}
+ {1587175200 0 0 WET}
+ {1590804000 3600 1 WEST}
+ {1603591200 0 0 WET}
+ {1616896800 3600 1 WEST}
+ {1618020000 0 0 WET}
+ {1621044000 3600 1 WEST}
+ {1635645600 0 0 WET}
+ {1648346400 3600 1 WEST}
+ {1648864800 0 0 WET}
+ {1651888800 3600 1 WEST}
+ {1667095200 0 0 WET}
+ {1682128800 3600 1 WEST}
+ {1698544800 0 0 WET}
+ {1712973600 3600 1 WEST}
+ {1729994400 0 0 WET}
+ {1743818400 3600 1 WEST}
+ {1761444000 0 0 WET}
+ {1774749600 3600 1 WEST}
+ {1792893600 0 0 WET}
+ {1806199200 3600 1 WEST}
+ {1824948000 0 0 WET}
+ {1837648800 3600 1 WEST}
+ {1856397600 0 0 WET}
+ {1869098400 3600 1 WEST}
+ {1887847200 0 0 WET}
+ {1901152800 3600 1 WEST}
+ {1919296800 0 0 WET}
+ {1932602400 3600 1 WEST}
+ {1950746400 0 0 WET}
+ {1964052000 3600 1 WEST}
+ {1982800800 0 0 WET}
+ {1995501600 3600 1 WEST}
+ {2014250400 0 0 WET}
+ {2026951200 3600 1 WEST}
+ {2045700000 0 0 WET}
+ {2058400800 3600 1 WEST}
+ {2077063200 0 0 WET}
+ {2077153200 0 0 WET}
+ {2090455200 3600 1 WEST}
+ {2107908000 0 0 WET}
+ {2108602800 0 0 WET}
+ {2121904800 3600 1 WEST}
+ {2138752800 0 0 WET}
+ {2140052400 0 0 WET}
+ {2153354400 3600 1 WEST}
+ {2172103200 0 0 WET}
+ {2184804000 3600 1 WEST}
+ {2203552800 0 0 WET}
+ {2216253600 3600 1 WEST}
+ {2235002400 0 0 WET}
+ {2248308000 3600 1 WEST}
+ {2266452000 0 0 WET}
+ {2279757600 3600 1 WEST}
+ {2297901600 0 0 WET}
+ {2311207200 3600 1 WEST}
+ {2329351200 0 0 WET}
+ {2342656800 3600 1 WEST}
+ {2361405600 0 0 WET}
+ {2374106400 3600 1 WEST}
+ {2392855200 0 0 WET}
+ {2405556000 3600 1 WEST}
+ {2424304800 0 0 WET}
+ {2437610400 3600 1 WEST}
+ {2455754400 0 0 WET}
+ {2469060000 3600 1 WEST}
+ {2487204000 0 0 WET}
+ {2500509600 3600 1 WEST}
+ {2519258400 0 0 WET}
+ {2531959200 3600 1 WEST}
+ {2550708000 0 0 WET}
+ {2563408800 3600 1 WEST}
+ {2582157600 0 0 WET}
+ {2595463200 3600 1 WEST}
+ {2613607200 0 0 WET}
+ {2626912800 3600 1 WEST}
+ {2645056800 0 0 WET}
+ {2658362400 3600 1 WEST}
+ {2676506400 0 0 WET}
+ {2689812000 3600 1 WEST}
+ {2708560800 0 0 WET}
+ {2721261600 3600 1 WEST}
+ {2740010400 0 0 WET}
+ {2752711200 3600 1 WEST}
+ {2771460000 0 0 WET}
+ {2784765600 3600 1 WEST}
+ {2802909600 0 0 WET}
+ {2816215200 3600 1 WEST}
+ {2834359200 0 0 WET}
+ {2847664800 3600 1 WEST}
+ {2866413600 0 0 WET}
+ {2879114400 3600 1 WEST}
+ {2897863200 0 0 WET}
+ {2910564000 3600 1 WEST}
+ {2929312800 0 0 WET}
+ {2942013600 3600 1 WEST}
+ {2960762400 0 0 WET}
+ {2974068000 3600 1 WEST}
+ {2992212000 0 0 WET}
+ {3005517600 3600 1 WEST}
+ {3023661600 0 0 WET}
+ {3036967200 3600 1 WEST}
+ {3055716000 0 0 WET}
+ {3068416800 3600 1 WEST}
+ {3087165600 0 0 WET}
+ {3099866400 3600 1 WEST}
+ {3118615200 0 0 WET}
+ {3131920800 3600 1 WEST}
+ {3150064800 0 0 WET}
+ {3163370400 3600 1 WEST}
+ {3181514400 0 0 WET}
+ {3194820000 3600 1 WEST}
+ {3212964000 0 0 WET}
+ {3226269600 3600 1 WEST}
+ {3245018400 0 0 WET}
+ {3257719200 3600 1 WEST}
+ {3276468000 0 0 WET}
+ {3289168800 3600 1 WEST}
+ {3307917600 0 0 WET}
+ {3321223200 3600 1 WEST}
+ {3339367200 0 0 WET}
+ {3352672800 3600 1 WEST}
+ {3370816800 0 0 WET}
+ {3384122400 3600 1 WEST}
+ {3402871200 0 0 WET}
+ {3415572000 3600 1 WEST}
+ {3434320800 0 0 WET}
+ {3447021600 3600 1 WEST}
+ {3465770400 0 0 WET}
+ {3479076000 3600 1 WEST}
+ {3497220000 0 0 WET}
+ {3510525600 3600 1 WEST}
+ {3528669600 0 0 WET}
+ {3541975200 3600 1 WEST}
+ {3560119200 0 0 WET}
+ {3573424800 3600 1 WEST}
+ {3592173600 0 0 WET}
+ {3604874400 3600 1 WEST}
+ {3623623200 0 0 WET}
+ {3636324000 3600 1 WEST}
+ {3655072800 0 0 WET}
+ {3668378400 3600 1 WEST}
+ {3686522400 0 0 WET}
+ {3699828000 3600 1 WEST}
+ {3717972000 0 0 WET}
+ {3731277600 3600 1 WEST}
+ {3750026400 0 0 WET}
+ {3762727200 3600 1 WEST}
+ {3781476000 0 0 WET}
+ {3794176800 3600 1 WEST}
+ {3812925600 0 0 WET}
+ {3825626400 3600 1 WEST}
+ {3844375200 0 0 WET}
+ {3857680800 3600 1 WEST}
+ {3875824800 0 0 WET}
+ {3889130400 3600 1 WEST}
+ {3907274400 0 0 WET}
+ {3920580000 3600 1 WEST}
+ {3939328800 0 0 WET}
+ {3952029600 3600 1 WEST}
+ {3970778400 0 0 WET}
+ {3983479200 3600 1 WEST}
+ {4002228000 0 0 WET}
+ {4015533600 3600 1 WEST}
+ {4033677600 0 0 WET}
+ {4046983200 3600 1 WEST}
+ {4065127200 0 0 WET}
+ {4078432800 3600 1 WEST}
+ {4096576800 0 0 WET}
}
diff --git a/library/tzdata/Africa/Freetown b/library/tzdata/Africa/Freetown
index c3f2d2e..4a8e2e1 100644
--- a/library/tzdata/Africa/Freetown
+++ b/library/tzdata/Africa/Freetown
@@ -1,36 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Freetown) {
- {-9223372036854775808 -3180 0 LMT}
- {-2776979220 -3180 0 FMT}
- {-1785712020 -3600 0 WAT}
- {-1091487600 -1200 1 SLST}
- {-1080949200 -3600 0 WAT}
- {-1059865200 -1200 1 SLST}
- {-1049326800 -3600 0 WAT}
- {-1028329200 -1200 1 SLST}
- {-1017790800 -3600 0 WAT}
- {-996793200 -1200 1 SLST}
- {-986254800 -3600 0 WAT}
- {-965257200 -1200 1 SLST}
- {-954718800 -3600 0 WAT}
- {-933634800 -1200 1 SLST}
- {-923096400 -3600 0 WAT}
- {-902098800 -1200 1 SLST}
- {-891560400 -3600 0 WAT}
- {-870562800 -1200 1 SLST}
- {-860024400 -3600 0 WAT}
- {-410223600 0 0 WAT}
- {-397180800 3600 1 SLST}
- {-389235600 0 0 GMT}
- {-365644800 3600 1 SLST}
- {-357699600 0 0 GMT}
- {-334108800 3600 1 SLST}
- {-326163600 0 0 GMT}
- {-302486400 3600 1 SLST}
- {-294541200 0 0 GMT}
- {-270950400 3600 1 SLST}
- {-263005200 0 0 GMT}
- {-239414400 3600 1 SLST}
- {-231469200 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Freetown) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Gaborone b/library/tzdata/Africa/Gaborone
index bd38673..56c0772 100644
--- a/library/tzdata/Africa/Gaborone
+++ b/library/tzdata/Africa/Gaborone
@@ -1,9 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Gaborone) {
- {-9223372036854775808 6220 0 LMT}
- {-2682294220 5400 0 SAST}
- {-2109288600 7200 0 CAT}
- {-829526400 10800 1 CAST}
- {-813805200 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Gaborone) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Harare b/library/tzdata/Africa/Harare
index 7482b15..644be26 100644
--- a/library/tzdata/Africa/Harare
+++ b/library/tzdata/Africa/Harare
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Harare) {
- {-9223372036854775808 7452 0 LMT}
- {-2109290652 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Harare) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Kampala b/library/tzdata/Africa/Kampala
index 4cc9be1..1fbaffc 100644
--- a/library/tzdata/Africa/Kampala
+++ b/library/tzdata/Africa/Kampala
@@ -1,9 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Kampala) {
- {-9223372036854775808 7780 0 LMT}
- {-1309745380 10800 0 EAT}
- {-1262314800 9000 0 BEAT}
- {-694319400 9900 0 BEAUT}
- {-410237100 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Kampala) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Kigali b/library/tzdata/Africa/Kigali
index f723bcd..192e0e8 100644
--- a/library/tzdata/Africa/Kigali
+++ b/library/tzdata/Africa/Kigali
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Kigali) {
- {-9223372036854775808 7216 0 LMT}
- {-1091498416 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Kigali) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Kinshasa b/library/tzdata/Africa/Kinshasa
index 050c1fa..04dc62e 100644
--- a/library/tzdata/Africa/Kinshasa
+++ b/library/tzdata/Africa/Kinshasa
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Kinshasa) {
- {-9223372036854775808 3672 0 LMT}
- {-2276643672 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Kinshasa) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Libreville b/library/tzdata/Africa/Libreville
index 8427551..ba1f686 100644
--- a/library/tzdata/Africa/Libreville
+++ b/library/tzdata/Africa/Libreville
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Libreville) {
- {-9223372036854775808 2268 0 LMT}
- {-1830386268 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Libreville) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Lome b/library/tzdata/Africa/Lome
index 606625c..9adecc7 100644
--- a/library/tzdata/Africa/Lome
+++ b/library/tzdata/Africa/Lome
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Lome) {
- {-9223372036854775808 292 0 LMT}
- {-2429827492 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Lome) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Luanda b/library/tzdata/Africa/Luanda
index cd1b29e..8dcd107 100644
--- a/library/tzdata/Africa/Luanda
+++ b/library/tzdata/Africa/Luanda
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Luanda) {
- {-9223372036854775808 3176 0 LMT}
- {-2461452776 3124 0 AOT}
- {-1849395124 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Luanda) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Lubumbashi b/library/tzdata/Africa/Lubumbashi
index bd67221..7da101a 100644
--- a/library/tzdata/Africa/Lubumbashi
+++ b/library/tzdata/Africa/Lubumbashi
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Lubumbashi) {
- {-9223372036854775808 6592 0 LMT}
- {-2276646592 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Lubumbashi) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Lusaka b/library/tzdata/Africa/Lusaka
index ed9c30d..bcf519d 100644
--- a/library/tzdata/Africa/Lusaka
+++ b/library/tzdata/Africa/Lusaka
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Lusaka) {
- {-9223372036854775808 6788 0 LMT}
- {-2109289988 7200 0 CAT}
+if {![info exists TZData(Africa/Maputo)]} {
+ LoadTimeZoneFile Africa/Maputo
}
+set TZData(:Africa/Lusaka) $TZData(:Africa/Maputo)
diff --git a/library/tzdata/Africa/Malabo b/library/tzdata/Africa/Malabo
index bec0524..7dcee39 100644
--- a/library/tzdata/Africa/Malabo
+++ b/library/tzdata/Africa/Malabo
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Malabo) {
- {-9223372036854775808 2108 0 LMT}
- {-1830386108 0 0 GMT}
- {-190857600 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Malabo) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Maseru b/library/tzdata/Africa/Maseru
index 21ca968..665f15d 100644
--- a/library/tzdata/Africa/Maseru
+++ b/library/tzdata/Africa/Maseru
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Maseru) {
- {-9223372036854775808 6600 0 LMT}
- {-2109289800 7200 0 SAST}
- {-829526400 10800 1 SAST}
- {-813805200 7200 0 SAST}
+if {![info exists TZData(Africa/Johannesburg)]} {
+ LoadTimeZoneFile Africa/Johannesburg
}
+set TZData(:Africa/Maseru) $TZData(:Africa/Johannesburg)
diff --git a/library/tzdata/Africa/Mbabane b/library/tzdata/Africa/Mbabane
index 4d174d5..0edb590 100644
--- a/library/tzdata/Africa/Mbabane
+++ b/library/tzdata/Africa/Mbabane
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Mbabane) {
- {-9223372036854775808 7464 0 LMT}
- {-2109290664 7200 0 SAST}
+if {![info exists TZData(Africa/Johannesburg)]} {
+ LoadTimeZoneFile Africa/Johannesburg
}
+set TZData(:Africa/Mbabane) $TZData(:Africa/Johannesburg)
diff --git a/library/tzdata/Africa/Mogadishu b/library/tzdata/Africa/Mogadishu
index 570d3ea..4220655 100644
--- a/library/tzdata/Africa/Mogadishu
+++ b/library/tzdata/Africa/Mogadishu
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Mogadishu) {
- {-9223372036854775808 10888 0 LMT}
- {-2403572488 10800 0 EAT}
- {-1230778800 9000 0 BEAT}
- {-410236200 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Africa/Mogadishu) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Africa/Niamey b/library/tzdata/Africa/Niamey
index 40ded06b..278571d 100644
--- a/library/tzdata/Africa/Niamey
+++ b/library/tzdata/Africa/Niamey
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Niamey) {
- {-9223372036854775808 508 0 LMT}
- {-1830384508 -3600 0 WAT}
- {-1131231600 0 0 GMT}
- {-315619200 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Niamey) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Nouakchott b/library/tzdata/Africa/Nouakchott
index f7369d0..d33b6bc 100644
--- a/library/tzdata/Africa/Nouakchott
+++ b/library/tzdata/Africa/Nouakchott
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Nouakchott) {
- {-9223372036854775808 -3828 0 LMT}
- {-1830380172 0 0 GMT}
- {-1131235200 -3600 0 WAT}
- {-286930800 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Nouakchott) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Ouagadougou b/library/tzdata/Africa/Ouagadougou
index 88a7145..8178c82 100644
--- a/library/tzdata/Africa/Ouagadougou
+++ b/library/tzdata/Africa/Ouagadougou
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Ouagadougou) {
- {-9223372036854775808 -364 0 LMT}
- {-1830383636 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Ouagadougou) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Porto-Novo b/library/tzdata/Africa/Porto-Novo
index b89cf1b..3fa2b51 100644
--- a/library/tzdata/Africa/Porto-Novo
+++ b/library/tzdata/Africa/Porto-Novo
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Porto-Novo) {
- {-9223372036854775808 628 0 LMT}
- {-1830384628 0 0 GMT}
- {-1131235200 3600 0 WAT}
+if {![info exists TZData(Africa/Lagos)]} {
+ LoadTimeZoneFile Africa/Lagos
}
+set TZData(:Africa/Porto-Novo) $TZData(:Africa/Lagos)
diff --git a/library/tzdata/Africa/Sao_Tome b/library/tzdata/Africa/Sao_Tome
index ab1590d..078591d 100644
--- a/library/tzdata/Africa/Sao_Tome
+++ b/library/tzdata/Africa/Sao_Tome
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Sao_Tome) {
- {-9223372036854775808 1616 0 LMT}
- {-2713912016 -2192 0 LMT}
- {-1830381808 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Sao_Tome) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Timbuktu b/library/tzdata/Africa/Timbuktu
index 8057eed..9852d7a 100644
--- a/library/tzdata/Africa/Timbuktu
+++ b/library/tzdata/Africa/Timbuktu
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Africa/Bamako)]} {
- LoadTimeZoneFile Africa/Bamako
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
-set TZData(:Africa/Timbuktu) $TZData(:Africa/Bamako)
+set TZData(:Africa/Timbuktu) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Africa/Tripoli b/library/tzdata/Africa/Tripoli
index ac78218..0e72df4 100644
--- a/library/tzdata/Africa/Tripoli
+++ b/library/tzdata/Africa/Tripoli
@@ -30,177 +30,5 @@ set TZData(:Africa/Tripoli) {
{875919600 7200 0 EET}
{1352505600 3600 0 CET}
{1364515200 7200 1 CEST}
- {1382659200 3600 0 CET}
- {1395964800 7200 1 CEST}
- {1414713600 3600 0 CET}
- {1427414400 7200 1 CEST}
- {1446163200 3600 0 CET}
- {1458864000 7200 1 CEST}
- {1477612800 3600 0 CET}
- {1490918400 7200 1 CEST}
- {1509062400 3600 0 CET}
- {1522368000 7200 1 CEST}
- {1540512000 3600 0 CET}
- {1553817600 7200 1 CEST}
- {1571961600 3600 0 CET}
- {1585267200 7200 1 CEST}
- {1604016000 3600 0 CET}
- {1616716800 7200 1 CEST}
- {1635465600 3600 0 CET}
- {1648166400 7200 1 CEST}
- {1666915200 3600 0 CET}
- {1680220800 7200 1 CEST}
- {1698364800 3600 0 CET}
- {1711670400 7200 1 CEST}
- {1729814400 3600 0 CET}
- {1743120000 7200 1 CEST}
- {1761868800 3600 0 CET}
- {1774569600 7200 1 CEST}
- {1793318400 3600 0 CET}
- {1806019200 7200 1 CEST}
- {1824768000 3600 0 CET}
- {1838073600 7200 1 CEST}
- {1856217600 3600 0 CET}
- {1869523200 7200 1 CEST}
- {1887667200 3600 0 CET}
- {1900972800 7200 1 CEST}
- {1919116800 3600 0 CET}
- {1932422400 7200 1 CEST}
- {1951171200 3600 0 CET}
- {1963872000 7200 1 CEST}
- {1982620800 3600 0 CET}
- {1995321600 7200 1 CEST}
- {2014070400 3600 0 CET}
- {2027376000 7200 1 CEST}
- {2045520000 3600 0 CET}
- {2058825600 7200 1 CEST}
- {2076969600 3600 0 CET}
- {2090275200 7200 1 CEST}
- {2109024000 3600 0 CET}
- {2121724800 7200 1 CEST}
- {2140473600 3600 0 CET}
- {2153174400 7200 1 CEST}
- {2171923200 3600 0 CET}
- {2184624000 7200 1 CEST}
- {2203372800 3600 0 CET}
- {2216678400 7200 1 CEST}
- {2234822400 3600 0 CET}
- {2248128000 7200 1 CEST}
- {2266272000 3600 0 CET}
- {2279577600 7200 1 CEST}
- {2298326400 3600 0 CET}
- {2311027200 7200 1 CEST}
- {2329776000 3600 0 CET}
- {2342476800 7200 1 CEST}
- {2361225600 3600 0 CET}
- {2374531200 7200 1 CEST}
- {2392675200 3600 0 CET}
- {2405980800 7200 1 CEST}
- {2424124800 3600 0 CET}
- {2437430400 7200 1 CEST}
- {2455574400 3600 0 CET}
- {2468880000 7200 1 CEST}
- {2487628800 3600 0 CET}
- {2500329600 7200 1 CEST}
- {2519078400 3600 0 CET}
- {2531779200 7200 1 CEST}
- {2550528000 3600 0 CET}
- {2563833600 7200 1 CEST}
- {2581977600 3600 0 CET}
- {2595283200 7200 1 CEST}
- {2613427200 3600 0 CET}
- {2626732800 7200 1 CEST}
- {2645481600 3600 0 CET}
- {2658182400 7200 1 CEST}
- {2676931200 3600 0 CET}
- {2689632000 7200 1 CEST}
- {2708380800 3600 0 CET}
- {2721686400 7200 1 CEST}
- {2739830400 3600 0 CET}
- {2753136000 7200 1 CEST}
- {2771280000 3600 0 CET}
- {2784585600 7200 1 CEST}
- {2802729600 3600 0 CET}
- {2816035200 7200 1 CEST}
- {2834784000 3600 0 CET}
- {2847484800 7200 1 CEST}
- {2866233600 3600 0 CET}
- {2878934400 7200 1 CEST}
- {2897683200 3600 0 CET}
- {2910988800 7200 1 CEST}
- {2929132800 3600 0 CET}
- {2942438400 7200 1 CEST}
- {2960582400 3600 0 CET}
- {2973888000 7200 1 CEST}
- {2992636800 3600 0 CET}
- {3005337600 7200 1 CEST}
- {3024086400 3600 0 CET}
- {3036787200 7200 1 CEST}
- {3055536000 3600 0 CET}
- {3068236800 7200 1 CEST}
- {3086985600 3600 0 CET}
- {3100291200 7200 1 CEST}
- {3118435200 3600 0 CET}
- {3131740800 7200 1 CEST}
- {3149884800 3600 0 CET}
- {3163190400 7200 1 CEST}
- {3181939200 3600 0 CET}
- {3194640000 7200 1 CEST}
- {3213388800 3600 0 CET}
- {3226089600 7200 1 CEST}
- {3244838400 3600 0 CET}
- {3258144000 7200 1 CEST}
- {3276288000 3600 0 CET}
- {3289593600 7200 1 CEST}
- {3307737600 3600 0 CET}
- {3321043200 7200 1 CEST}
- {3339187200 3600 0 CET}
- {3352492800 7200 1 CEST}
- {3371241600 3600 0 CET}
- {3383942400 7200 1 CEST}
- {3402691200 3600 0 CET}
- {3415392000 7200 1 CEST}
- {3434140800 3600 0 CET}
- {3447446400 7200 1 CEST}
- {3465590400 3600 0 CET}
- {3478896000 7200 1 CEST}
- {3497040000 3600 0 CET}
- {3510345600 7200 1 CEST}
- {3529094400 3600 0 CET}
- {3541795200 7200 1 CEST}
- {3560544000 3600 0 CET}
- {3573244800 7200 1 CEST}
- {3591993600 3600 0 CET}
- {3605299200 7200 1 CEST}
- {3623443200 3600 0 CET}
- {3636748800 7200 1 CEST}
- {3654892800 3600 0 CET}
- {3668198400 7200 1 CEST}
- {3686342400 3600 0 CET}
- {3699648000 7200 1 CEST}
- {3718396800 3600 0 CET}
- {3731097600 7200 1 CEST}
- {3749846400 3600 0 CET}
- {3762547200 7200 1 CEST}
- {3781296000 3600 0 CET}
- {3794601600 7200 1 CEST}
- {3812745600 3600 0 CET}
- {3826051200 7200 1 CEST}
- {3844195200 3600 0 CET}
- {3857500800 7200 1 CEST}
- {3876249600 3600 0 CET}
- {3888950400 7200 1 CEST}
- {3907699200 3600 0 CET}
- {3920400000 7200 1 CEST}
- {3939148800 3600 0 CET}
- {3951849600 7200 1 CEST}
- {3970598400 3600 0 CET}
- {3983904000 7200 1 CEST}
- {4002048000 3600 0 CET}
- {4015353600 7200 1 CEST}
- {4033497600 3600 0 CET}
- {4046803200 7200 1 CEST}
- {4065552000 3600 0 CET}
- {4078252800 7200 1 CEST}
- {4097001600 3600 0 CET}
+ {1382662800 7200 0 EET}
}
diff --git a/library/tzdata/America/Adak b/library/tzdata/America/Adak
index f3c5e5c..bd5d5ab 100644
--- a/library/tzdata/America/Adak
+++ b/library/tzdata/America/Adak
@@ -40,237 +40,237 @@ set TZData(:America/Adak) {
{388587600 -36000 1 BDT}
{404913600 -39600 0 BST}
{420037200 -36000 1 BDT}
- {439034400 -36000 0 HAST}
- {452088000 -32400 1 HADT}
- {467809200 -36000 0 HAST}
- {483537600 -32400 1 HADT}
- {499258800 -36000 0 HAST}
- {514987200 -32400 1 HADT}
- {530708400 -36000 0 HAST}
- {544622400 -32400 1 HADT}
- {562158000 -36000 0 HAST}
- {576072000 -32400 1 HADT}
- {594212400 -36000 0 HAST}
- {607521600 -32400 1 HADT}
- {625662000 -36000 0 HAST}
- {638971200 -32400 1 HADT}
- {657111600 -36000 0 HAST}
- {671025600 -32400 1 HADT}
- {688561200 -36000 0 HAST}
- {702475200 -32400 1 HADT}
- {720010800 -36000 0 HAST}
- {733924800 -32400 1 HADT}
- {752065200 -36000 0 HAST}
- {765374400 -32400 1 HADT}
- {783514800 -36000 0 HAST}
- {796824000 -32400 1 HADT}
- {814964400 -36000 0 HAST}
- {828878400 -32400 1 HADT}
- {846414000 -36000 0 HAST}
- {860328000 -32400 1 HADT}
- {877863600 -36000 0 HAST}
- {891777600 -32400 1 HADT}
- {909313200 -36000 0 HAST}
- {923227200 -32400 1 HADT}
- {941367600 -36000 0 HAST}
- {954676800 -32400 1 HADT}
- {972817200 -36000 0 HAST}
- {986126400 -32400 1 HADT}
- {1004266800 -36000 0 HAST}
- {1018180800 -32400 1 HADT}
- {1035716400 -36000 0 HAST}
- {1049630400 -32400 1 HADT}
- {1067166000 -36000 0 HAST}
- {1081080000 -32400 1 HADT}
- {1099220400 -36000 0 HAST}
- {1112529600 -32400 1 HADT}
- {1130670000 -36000 0 HAST}
- {1143979200 -32400 1 HADT}
- {1162119600 -36000 0 HAST}
- {1173614400 -32400 1 HADT}
- {1194174000 -36000 0 HAST}
- {1205064000 -32400 1 HADT}
- {1225623600 -36000 0 HAST}
- {1236513600 -32400 1 HADT}
- {1257073200 -36000 0 HAST}
- {1268568000 -32400 1 HADT}
- {1289127600 -36000 0 HAST}
- {1300017600 -32400 1 HADT}
- {1320577200 -36000 0 HAST}
- {1331467200 -32400 1 HADT}
- {1352026800 -36000 0 HAST}
- {1362916800 -32400 1 HADT}
- {1383476400 -36000 0 HAST}
- {1394366400 -32400 1 HADT}
- {1414926000 -36000 0 HAST}
- {1425816000 -32400 1 HADT}
- {1446375600 -36000 0 HAST}
- {1457870400 -32400 1 HADT}
- {1478430000 -36000 0 HAST}
- {1489320000 -32400 1 HADT}
- {1509879600 -36000 0 HAST}
- {1520769600 -32400 1 HADT}
- {1541329200 -36000 0 HAST}
- {1552219200 -32400 1 HADT}
- {1572778800 -36000 0 HAST}
- {1583668800 -32400 1 HADT}
- {1604228400 -36000 0 HAST}
- {1615723200 -32400 1 HADT}
- {1636282800 -36000 0 HAST}
- {1647172800 -32400 1 HADT}
- {1667732400 -36000 0 HAST}
- {1678622400 -32400 1 HADT}
- {1699182000 -36000 0 HAST}
- {1710072000 -32400 1 HADT}
- {1730631600 -36000 0 HAST}
- {1741521600 -32400 1 HADT}
- {1762081200 -36000 0 HAST}
- {1772971200 -32400 1 HADT}
- {1793530800 -36000 0 HAST}
- {1805025600 -32400 1 HADT}
- {1825585200 -36000 0 HAST}
- {1836475200 -32400 1 HADT}
- {1857034800 -36000 0 HAST}
- {1867924800 -32400 1 HADT}
- {1888484400 -36000 0 HAST}
- {1899374400 -32400 1 HADT}
- {1919934000 -36000 0 HAST}
- {1930824000 -32400 1 HADT}
- {1951383600 -36000 0 HAST}
- {1962878400 -32400 1 HADT}
- {1983438000 -36000 0 HAST}
- {1994328000 -32400 1 HADT}
- {2014887600 -36000 0 HAST}
- {2025777600 -32400 1 HADT}
- {2046337200 -36000 0 HAST}
- {2057227200 -32400 1 HADT}
- {2077786800 -36000 0 HAST}
- {2088676800 -32400 1 HADT}
- {2109236400 -36000 0 HAST}
- {2120126400 -32400 1 HADT}
- {2140686000 -36000 0 HAST}
- {2152180800 -32400 1 HADT}
- {2172740400 -36000 0 HAST}
- {2183630400 -32400 1 HADT}
- {2204190000 -36000 0 HAST}
- {2215080000 -32400 1 HADT}
- {2235639600 -36000 0 HAST}
- {2246529600 -32400 1 HADT}
- {2267089200 -36000 0 HAST}
- {2277979200 -32400 1 HADT}
- {2298538800 -36000 0 HAST}
- {2309428800 -32400 1 HADT}
- {2329988400 -36000 0 HAST}
- {2341483200 -32400 1 HADT}
- {2362042800 -36000 0 HAST}
- {2372932800 -32400 1 HADT}
- {2393492400 -36000 0 HAST}
- {2404382400 -32400 1 HADT}
- {2424942000 -36000 0 HAST}
- {2435832000 -32400 1 HADT}
- {2456391600 -36000 0 HAST}
- {2467281600 -32400 1 HADT}
- {2487841200 -36000 0 HAST}
- {2499336000 -32400 1 HADT}
- {2519895600 -36000 0 HAST}
- {2530785600 -32400 1 HADT}
- {2551345200 -36000 0 HAST}
- {2562235200 -32400 1 HADT}
- {2582794800 -36000 0 HAST}
- {2593684800 -32400 1 HADT}
- {2614244400 -36000 0 HAST}
- {2625134400 -32400 1 HADT}
- {2645694000 -36000 0 HAST}
- {2656584000 -32400 1 HADT}
- {2677143600 -36000 0 HAST}
- {2688638400 -32400 1 HADT}
- {2709198000 -36000 0 HAST}
- {2720088000 -32400 1 HADT}
- {2740647600 -36000 0 HAST}
- {2751537600 -32400 1 HADT}
- {2772097200 -36000 0 HAST}
- {2782987200 -32400 1 HADT}
- {2803546800 -36000 0 HAST}
- {2814436800 -32400 1 HADT}
- {2834996400 -36000 0 HAST}
- {2846491200 -32400 1 HADT}
- {2867050800 -36000 0 HAST}
- {2877940800 -32400 1 HADT}
- {2898500400 -36000 0 HAST}
- {2909390400 -32400 1 HADT}
- {2929950000 -36000 0 HAST}
- {2940840000 -32400 1 HADT}
- {2961399600 -36000 0 HAST}
- {2972289600 -32400 1 HADT}
- {2992849200 -36000 0 HAST}
- {3003739200 -32400 1 HADT}
- {3024298800 -36000 0 HAST}
- {3035793600 -32400 1 HADT}
- {3056353200 -36000 0 HAST}
- {3067243200 -32400 1 HADT}
- {3087802800 -36000 0 HAST}
- {3098692800 -32400 1 HADT}
- {3119252400 -36000 0 HAST}
- {3130142400 -32400 1 HADT}
- {3150702000 -36000 0 HAST}
- {3161592000 -32400 1 HADT}
- {3182151600 -36000 0 HAST}
- {3193041600 -32400 1 HADT}
- {3213601200 -36000 0 HAST}
- {3225096000 -32400 1 HADT}
- {3245655600 -36000 0 HAST}
- {3256545600 -32400 1 HADT}
- {3277105200 -36000 0 HAST}
- {3287995200 -32400 1 HADT}
- {3308554800 -36000 0 HAST}
- {3319444800 -32400 1 HADT}
- {3340004400 -36000 0 HAST}
- {3350894400 -32400 1 HADT}
- {3371454000 -36000 0 HAST}
- {3382948800 -32400 1 HADT}
- {3403508400 -36000 0 HAST}
- {3414398400 -32400 1 HADT}
- {3434958000 -36000 0 HAST}
- {3445848000 -32400 1 HADT}
- {3466407600 -36000 0 HAST}
- {3477297600 -32400 1 HADT}
- {3497857200 -36000 0 HAST}
- {3508747200 -32400 1 HADT}
- {3529306800 -36000 0 HAST}
- {3540196800 -32400 1 HADT}
- {3560756400 -36000 0 HAST}
- {3572251200 -32400 1 HADT}
- {3592810800 -36000 0 HAST}
- {3603700800 -32400 1 HADT}
- {3624260400 -36000 0 HAST}
- {3635150400 -32400 1 HADT}
- {3655710000 -36000 0 HAST}
- {3666600000 -32400 1 HADT}
- {3687159600 -36000 0 HAST}
- {3698049600 -32400 1 HADT}
- {3718609200 -36000 0 HAST}
- {3730104000 -32400 1 HADT}
- {3750663600 -36000 0 HAST}
- {3761553600 -32400 1 HADT}
- {3782113200 -36000 0 HAST}
- {3793003200 -32400 1 HADT}
- {3813562800 -36000 0 HAST}
- {3824452800 -32400 1 HADT}
- {3845012400 -36000 0 HAST}
- {3855902400 -32400 1 HADT}
- {3876462000 -36000 0 HAST}
- {3887352000 -32400 1 HADT}
- {3907911600 -36000 0 HAST}
- {3919406400 -32400 1 HADT}
- {3939966000 -36000 0 HAST}
- {3950856000 -32400 1 HADT}
- {3971415600 -36000 0 HAST}
- {3982305600 -32400 1 HADT}
- {4002865200 -36000 0 HAST}
- {4013755200 -32400 1 HADT}
- {4034314800 -36000 0 HAST}
- {4045204800 -32400 1 HADT}
- {4065764400 -36000 0 HAST}
- {4076654400 -32400 1 HADT}
- {4097214000 -36000 0 HAST}
+ {439034400 -36000 0 HST}
+ {452088000 -32400 1 HDT}
+ {467809200 -36000 0 HST}
+ {483537600 -32400 1 HDT}
+ {499258800 -36000 0 HST}
+ {514987200 -32400 1 HDT}
+ {530708400 -36000 0 HST}
+ {544622400 -32400 1 HDT}
+ {562158000 -36000 0 HST}
+ {576072000 -32400 1 HDT}
+ {594212400 -36000 0 HST}
+ {607521600 -32400 1 HDT}
+ {625662000 -36000 0 HST}
+ {638971200 -32400 1 HDT}
+ {657111600 -36000 0 HST}
+ {671025600 -32400 1 HDT}
+ {688561200 -36000 0 HST}
+ {702475200 -32400 1 HDT}
+ {720010800 -36000 0 HST}
+ {733924800 -32400 1 HDT}
+ {752065200 -36000 0 HST}
+ {765374400 -32400 1 HDT}
+ {783514800 -36000 0 HST}
+ {796824000 -32400 1 HDT}
+ {814964400 -36000 0 HST}
+ {828878400 -32400 1 HDT}
+ {846414000 -36000 0 HST}
+ {860328000 -32400 1 HDT}
+ {877863600 -36000 0 HST}
+ {891777600 -32400 1 HDT}
+ {909313200 -36000 0 HST}
+ {923227200 -32400 1 HDT}
+ {941367600 -36000 0 HST}
+ {954676800 -32400 1 HDT}
+ {972817200 -36000 0 HST}
+ {986126400 -32400 1 HDT}
+ {1004266800 -36000 0 HST}
+ {1018180800 -32400 1 HDT}
+ {1035716400 -36000 0 HST}
+ {1049630400 -32400 1 HDT}
+ {1067166000 -36000 0 HST}
+ {1081080000 -32400 1 HDT}
+ {1099220400 -36000 0 HST}
+ {1112529600 -32400 1 HDT}
+ {1130670000 -36000 0 HST}
+ {1143979200 -32400 1 HDT}
+ {1162119600 -36000 0 HST}
+ {1173614400 -32400 1 HDT}
+ {1194174000 -36000 0 HST}
+ {1205064000 -32400 1 HDT}
+ {1225623600 -36000 0 HST}
+ {1236513600 -32400 1 HDT}
+ {1257073200 -36000 0 HST}
+ {1268568000 -32400 1 HDT}
+ {1289127600 -36000 0 HST}
+ {1300017600 -32400 1 HDT}
+ {1320577200 -36000 0 HST}
+ {1331467200 -32400 1 HDT}
+ {1352026800 -36000 0 HST}
+ {1362916800 -32400 1 HDT}
+ {1383476400 -36000 0 HST}
+ {1394366400 -32400 1 HDT}
+ {1414926000 -36000 0 HST}
+ {1425816000 -32400 1 HDT}
+ {1446375600 -36000 0 HST}
+ {1457870400 -32400 1 HDT}
+ {1478430000 -36000 0 HST}
+ {1489320000 -32400 1 HDT}
+ {1509879600 -36000 0 HST}
+ {1520769600 -32400 1 HDT}
+ {1541329200 -36000 0 HST}
+ {1552219200 -32400 1 HDT}
+ {1572778800 -36000 0 HST}
+ {1583668800 -32400 1 HDT}
+ {1604228400 -36000 0 HST}
+ {1615723200 -32400 1 HDT}
+ {1636282800 -36000 0 HST}
+ {1647172800 -32400 1 HDT}
+ {1667732400 -36000 0 HST}
+ {1678622400 -32400 1 HDT}
+ {1699182000 -36000 0 HST}
+ {1710072000 -32400 1 HDT}
+ {1730631600 -36000 0 HST}
+ {1741521600 -32400 1 HDT}
+ {1762081200 -36000 0 HST}
+ {1772971200 -32400 1 HDT}
+ {1793530800 -36000 0 HST}
+ {1805025600 -32400 1 HDT}
+ {1825585200 -36000 0 HST}
+ {1836475200 -32400 1 HDT}
+ {1857034800 -36000 0 HST}
+ {1867924800 -32400 1 HDT}
+ {1888484400 -36000 0 HST}
+ {1899374400 -32400 1 HDT}
+ {1919934000 -36000 0 HST}
+ {1930824000 -32400 1 HDT}
+ {1951383600 -36000 0 HST}
+ {1962878400 -32400 1 HDT}
+ {1983438000 -36000 0 HST}
+ {1994328000 -32400 1 HDT}
+ {2014887600 -36000 0 HST}
+ {2025777600 -32400 1 HDT}
+ {2046337200 -36000 0 HST}
+ {2057227200 -32400 1 HDT}
+ {2077786800 -36000 0 HST}
+ {2088676800 -32400 1 HDT}
+ {2109236400 -36000 0 HST}
+ {2120126400 -32400 1 HDT}
+ {2140686000 -36000 0 HST}
+ {2152180800 -32400 1 HDT}
+ {2172740400 -36000 0 HST}
+ {2183630400 -32400 1 HDT}
+ {2204190000 -36000 0 HST}
+ {2215080000 -32400 1 HDT}
+ {2235639600 -36000 0 HST}
+ {2246529600 -32400 1 HDT}
+ {2267089200 -36000 0 HST}
+ {2277979200 -32400 1 HDT}
+ {2298538800 -36000 0 HST}
+ {2309428800 -32400 1 HDT}
+ {2329988400 -36000 0 HST}
+ {2341483200 -32400 1 HDT}
+ {2362042800 -36000 0 HST}
+ {2372932800 -32400 1 HDT}
+ {2393492400 -36000 0 HST}
+ {2404382400 -32400 1 HDT}
+ {2424942000 -36000 0 HST}
+ {2435832000 -32400 1 HDT}
+ {2456391600 -36000 0 HST}
+ {2467281600 -32400 1 HDT}
+ {2487841200 -36000 0 HST}
+ {2499336000 -32400 1 HDT}
+ {2519895600 -36000 0 HST}
+ {2530785600 -32400 1 HDT}
+ {2551345200 -36000 0 HST}
+ {2562235200 -32400 1 HDT}
+ {2582794800 -36000 0 HST}
+ {2593684800 -32400 1 HDT}
+ {2614244400 -36000 0 HST}
+ {2625134400 -32400 1 HDT}
+ {2645694000 -36000 0 HST}
+ {2656584000 -32400 1 HDT}
+ {2677143600 -36000 0 HST}
+ {2688638400 -32400 1 HDT}
+ {2709198000 -36000 0 HST}
+ {2720088000 -32400 1 HDT}
+ {2740647600 -36000 0 HST}
+ {2751537600 -32400 1 HDT}
+ {2772097200 -36000 0 HST}
+ {2782987200 -32400 1 HDT}
+ {2803546800 -36000 0 HST}
+ {2814436800 -32400 1 HDT}
+ {2834996400 -36000 0 HST}
+ {2846491200 -32400 1 HDT}
+ {2867050800 -36000 0 HST}
+ {2877940800 -32400 1 HDT}
+ {2898500400 -36000 0 HST}
+ {2909390400 -32400 1 HDT}
+ {2929950000 -36000 0 HST}
+ {2940840000 -32400 1 HDT}
+ {2961399600 -36000 0 HST}
+ {2972289600 -32400 1 HDT}
+ {2992849200 -36000 0 HST}
+ {3003739200 -32400 1 HDT}
+ {3024298800 -36000 0 HST}
+ {3035793600 -32400 1 HDT}
+ {3056353200 -36000 0 HST}
+ {3067243200 -32400 1 HDT}
+ {3087802800 -36000 0 HST}
+ {3098692800 -32400 1 HDT}
+ {3119252400 -36000 0 HST}
+ {3130142400 -32400 1 HDT}
+ {3150702000 -36000 0 HST}
+ {3161592000 -32400 1 HDT}
+ {3182151600 -36000 0 HST}
+ {3193041600 -32400 1 HDT}
+ {3213601200 -36000 0 HST}
+ {3225096000 -32400 1 HDT}
+ {3245655600 -36000 0 HST}
+ {3256545600 -32400 1 HDT}
+ {3277105200 -36000 0 HST}
+ {3287995200 -32400 1 HDT}
+ {3308554800 -36000 0 HST}
+ {3319444800 -32400 1 HDT}
+ {3340004400 -36000 0 HST}
+ {3350894400 -32400 1 HDT}
+ {3371454000 -36000 0 HST}
+ {3382948800 -32400 1 HDT}
+ {3403508400 -36000 0 HST}
+ {3414398400 -32400 1 HDT}
+ {3434958000 -36000 0 HST}
+ {3445848000 -32400 1 HDT}
+ {3466407600 -36000 0 HST}
+ {3477297600 -32400 1 HDT}
+ {3497857200 -36000 0 HST}
+ {3508747200 -32400 1 HDT}
+ {3529306800 -36000 0 HST}
+ {3540196800 -32400 1 HDT}
+ {3560756400 -36000 0 HST}
+ {3572251200 -32400 1 HDT}
+ {3592810800 -36000 0 HST}
+ {3603700800 -32400 1 HDT}
+ {3624260400 -36000 0 HST}
+ {3635150400 -32400 1 HDT}
+ {3655710000 -36000 0 HST}
+ {3666600000 -32400 1 HDT}
+ {3687159600 -36000 0 HST}
+ {3698049600 -32400 1 HDT}
+ {3718609200 -36000 0 HST}
+ {3730104000 -32400 1 HDT}
+ {3750663600 -36000 0 HST}
+ {3761553600 -32400 1 HDT}
+ {3782113200 -36000 0 HST}
+ {3793003200 -32400 1 HDT}
+ {3813562800 -36000 0 HST}
+ {3824452800 -32400 1 HDT}
+ {3845012400 -36000 0 HST}
+ {3855902400 -32400 1 HDT}
+ {3876462000 -36000 0 HST}
+ {3887352000 -32400 1 HDT}
+ {3907911600 -36000 0 HST}
+ {3919406400 -32400 1 HDT}
+ {3939966000 -36000 0 HST}
+ {3950856000 -32400 1 HDT}
+ {3971415600 -36000 0 HST}
+ {3982305600 -32400 1 HDT}
+ {4002865200 -36000 0 HST}
+ {4013755200 -32400 1 HDT}
+ {4034314800 -36000 0 HST}
+ {4045204800 -32400 1 HDT}
+ {4065764400 -36000 0 HST}
+ {4076654400 -32400 1 HDT}
+ {4097214000 -36000 0 HST}
}
diff --git a/library/tzdata/America/Antigua b/library/tzdata/America/Antigua
index 5433e9b..be0c88e 100644
--- a/library/tzdata/America/Antigua
+++ b/library/tzdata/America/Antigua
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Antigua) {
- {-9223372036854775808 -14832 0 LMT}
- {-1825098768 -18000 0 EST}
- {-599598000 -14400 0 AST}
+if {![info exists TZData(America/Port_of_Spain)]} {
+ LoadTimeZoneFile America/Port_of_Spain
}
+set TZData(:America/Antigua) $TZData(:America/Port_of_Spain)
diff --git a/library/tzdata/America/Cancun b/library/tzdata/America/Cancun
index 1620b15..fe5a060 100644
--- a/library/tzdata/America/Cancun
+++ b/library/tzdata/America/Cancun
@@ -43,174 +43,5 @@ set TZData(:America/Cancun) {
{1382857200 -21600 0 CST}
{1396771200 -18000 1 CDT}
{1414306800 -21600 0 CST}
- {1428220800 -18000 1 CDT}
- {1445756400 -21600 0 CST}
- {1459670400 -18000 1 CDT}
- {1477810800 -21600 0 CST}
- {1491120000 -18000 1 CDT}
- {1509260400 -21600 0 CST}
- {1522569600 -18000 1 CDT}
- {1540710000 -21600 0 CST}
- {1554624000 -18000 1 CDT}
- {1572159600 -21600 0 CST}
- {1586073600 -18000 1 CDT}
- {1603609200 -21600 0 CST}
- {1617523200 -18000 1 CDT}
- {1635663600 -21600 0 CST}
- {1648972800 -18000 1 CDT}
- {1667113200 -21600 0 CST}
- {1680422400 -18000 1 CDT}
- {1698562800 -21600 0 CST}
- {1712476800 -18000 1 CDT}
- {1730012400 -21600 0 CST}
- {1743926400 -18000 1 CDT}
- {1761462000 -21600 0 CST}
- {1775376000 -18000 1 CDT}
- {1792911600 -21600 0 CST}
- {1806825600 -18000 1 CDT}
- {1824966000 -21600 0 CST}
- {1838275200 -18000 1 CDT}
- {1856415600 -21600 0 CST}
- {1869724800 -18000 1 CDT}
- {1887865200 -21600 0 CST}
- {1901779200 -18000 1 CDT}
- {1919314800 -21600 0 CST}
- {1933228800 -18000 1 CDT}
- {1950764400 -21600 0 CST}
- {1964678400 -18000 1 CDT}
- {1982818800 -21600 0 CST}
- {1996128000 -18000 1 CDT}
- {2014268400 -21600 0 CST}
- {2027577600 -18000 1 CDT}
- {2045718000 -21600 0 CST}
- {2059027200 -18000 1 CDT}
- {2077167600 -21600 0 CST}
- {2091081600 -18000 1 CDT}
- {2108617200 -21600 0 CST}
- {2122531200 -18000 1 CDT}
- {2140066800 -21600 0 CST}
- {2153980800 -18000 1 CDT}
- {2172121200 -21600 0 CST}
- {2185430400 -18000 1 CDT}
- {2203570800 -21600 0 CST}
- {2216880000 -18000 1 CDT}
- {2235020400 -21600 0 CST}
- {2248934400 -18000 1 CDT}
- {2266470000 -21600 0 CST}
- {2280384000 -18000 1 CDT}
- {2297919600 -21600 0 CST}
- {2311833600 -18000 1 CDT}
- {2329369200 -21600 0 CST}
- {2343283200 -18000 1 CDT}
- {2361423600 -21600 0 CST}
- {2374732800 -18000 1 CDT}
- {2392873200 -21600 0 CST}
- {2406182400 -18000 1 CDT}
- {2424322800 -21600 0 CST}
- {2438236800 -18000 1 CDT}
- {2455772400 -21600 0 CST}
- {2469686400 -18000 1 CDT}
- {2487222000 -21600 0 CST}
- {2501136000 -18000 1 CDT}
- {2519276400 -21600 0 CST}
- {2532585600 -18000 1 CDT}
- {2550726000 -21600 0 CST}
- {2564035200 -18000 1 CDT}
- {2582175600 -21600 0 CST}
- {2596089600 -18000 1 CDT}
- {2613625200 -21600 0 CST}
- {2627539200 -18000 1 CDT}
- {2645074800 -21600 0 CST}
- {2658988800 -18000 1 CDT}
- {2676524400 -21600 0 CST}
- {2690438400 -18000 1 CDT}
- {2708578800 -21600 0 CST}
- {2721888000 -18000 1 CDT}
- {2740028400 -21600 0 CST}
- {2753337600 -18000 1 CDT}
- {2771478000 -21600 0 CST}
- {2785392000 -18000 1 CDT}
- {2802927600 -21600 0 CST}
- {2816841600 -18000 1 CDT}
- {2834377200 -21600 0 CST}
- {2848291200 -18000 1 CDT}
- {2866431600 -21600 0 CST}
- {2879740800 -18000 1 CDT}
- {2897881200 -21600 0 CST}
- {2911190400 -18000 1 CDT}
- {2929330800 -21600 0 CST}
- {2942640000 -18000 1 CDT}
- {2960780400 -21600 0 CST}
- {2974694400 -18000 1 CDT}
- {2992230000 -21600 0 CST}
- {3006144000 -18000 1 CDT}
- {3023679600 -21600 0 CST}
- {3037593600 -18000 1 CDT}
- {3055734000 -21600 0 CST}
- {3069043200 -18000 1 CDT}
- {3087183600 -21600 0 CST}
- {3100492800 -18000 1 CDT}
- {3118633200 -21600 0 CST}
- {3132547200 -18000 1 CDT}
- {3150082800 -21600 0 CST}
- {3163996800 -18000 1 CDT}
- {3181532400 -21600 0 CST}
- {3195446400 -18000 1 CDT}
- {3212982000 -21600 0 CST}
- {3226896000 -18000 1 CDT}
- {3245036400 -21600 0 CST}
- {3258345600 -18000 1 CDT}
- {3276486000 -21600 0 CST}
- {3289795200 -18000 1 CDT}
- {3307935600 -21600 0 CST}
- {3321849600 -18000 1 CDT}
- {3339385200 -21600 0 CST}
- {3353299200 -18000 1 CDT}
- {3370834800 -21600 0 CST}
- {3384748800 -18000 1 CDT}
- {3402889200 -21600 0 CST}
- {3416198400 -18000 1 CDT}
- {3434338800 -21600 0 CST}
- {3447648000 -18000 1 CDT}
- {3465788400 -21600 0 CST}
- {3479702400 -18000 1 CDT}
- {3497238000 -21600 0 CST}
- {3511152000 -18000 1 CDT}
- {3528687600 -21600 0 CST}
- {3542601600 -18000 1 CDT}
- {3560137200 -21600 0 CST}
- {3574051200 -18000 1 CDT}
- {3592191600 -21600 0 CST}
- {3605500800 -18000 1 CDT}
- {3623641200 -21600 0 CST}
- {3636950400 -18000 1 CDT}
- {3655090800 -21600 0 CST}
- {3669004800 -18000 1 CDT}
- {3686540400 -21600 0 CST}
- {3700454400 -18000 1 CDT}
- {3717990000 -21600 0 CST}
- {3731904000 -18000 1 CDT}
- {3750044400 -21600 0 CST}
- {3763353600 -18000 1 CDT}
- {3781494000 -21600 0 CST}
- {3794803200 -18000 1 CDT}
- {3812943600 -21600 0 CST}
- {3826252800 -18000 1 CDT}
- {3844393200 -21600 0 CST}
- {3858307200 -18000 1 CDT}
- {3875842800 -21600 0 CST}
- {3889756800 -18000 1 CDT}
- {3907292400 -21600 0 CST}
- {3921206400 -18000 1 CDT}
- {3939346800 -21600 0 CST}
- {3952656000 -18000 1 CDT}
- {3970796400 -21600 0 CST}
- {3984105600 -18000 1 CDT}
- {4002246000 -21600 0 CST}
- {4016160000 -18000 1 CDT}
- {4033695600 -21600 0 CST}
- {4047609600 -18000 1 CDT}
- {4065145200 -21600 0 CST}
- {4079059200 -18000 1 CDT}
- {4096594800 -21600 0 CST}
+ {1422777600 -18000 0 EST}
}
diff --git a/library/tzdata/America/Cayman b/library/tzdata/America/Cayman
index 3e2e3cc..92ce5e2 100644
--- a/library/tzdata/America/Cayman
+++ b/library/tzdata/America/Cayman
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Cayman) {
- {-9223372036854775808 -19532 0 LMT}
- {-2524502068 -18431 0 KMT}
- {-1827687169 -18000 0 EST}
+if {![info exists TZData(America/Panama)]} {
+ LoadTimeZoneFile America/Panama
}
+set TZData(:America/Cayman) $TZData(:America/Panama)
diff --git a/library/tzdata/America/Eirunepe b/library/tzdata/America/Eirunepe
index 86dcd8f..a05631f 100644
--- a/library/tzdata/America/Eirunepe
+++ b/library/tzdata/America/Eirunepe
@@ -37,4 +37,5 @@ set TZData(:America/Eirunepe) {
{761716800 -18000 0 ACT}
{780206400 -18000 0 ACT}
{1214283600 -14400 0 AMT}
+ {1384056000 -18000 0 ACT}
}
diff --git a/library/tzdata/America/Grand_Turk b/library/tzdata/America/Grand_Turk
index 6c8ea4a..0edcf0b 100644
--- a/library/tzdata/America/Grand_Turk
+++ b/library/tzdata/America/Grand_Turk
@@ -4,6 +4,7 @@ set TZData(:America/Grand_Turk) {
{-9223372036854775808 -17072 0 LMT}
{-2524504528 -18431 0 KMT}
{-1827687169 -18000 0 EST}
+ {284014800 -18000 0 EST}
{294217200 -14400 1 EDT}
{309938400 -18000 0 EST}
{325666800 -14400 1 EDT}
@@ -77,173 +78,5 @@ set TZData(:America/Grand_Turk) {
{1394348400 -14400 1 EDT}
{1414908000 -18000 0 EST}
{1425798000 -14400 1 EDT}
- {1446357600 -18000 0 EST}
- {1457852400 -14400 1 EDT}
- {1478412000 -18000 0 EST}
- {1489302000 -14400 1 EDT}
- {1509861600 -18000 0 EST}
- {1520751600 -14400 1 EDT}
- {1541311200 -18000 0 EST}
- {1552201200 -14400 1 EDT}
- {1572760800 -18000 0 EST}
- {1583650800 -14400 1 EDT}
- {1604210400 -18000 0 EST}
- {1615705200 -14400 1 EDT}
- {1636264800 -18000 0 EST}
- {1647154800 -14400 1 EDT}
- {1667714400 -18000 0 EST}
- {1678604400 -14400 1 EDT}
- {1699164000 -18000 0 EST}
- {1710054000 -14400 1 EDT}
- {1730613600 -18000 0 EST}
- {1741503600 -14400 1 EDT}
- {1762063200 -18000 0 EST}
- {1772953200 -14400 1 EDT}
- {1793512800 -18000 0 EST}
- {1805007600 -14400 1 EDT}
- {1825567200 -18000 0 EST}
- {1836457200 -14400 1 EDT}
- {1857016800 -18000 0 EST}
- {1867906800 -14400 1 EDT}
- {1888466400 -18000 0 EST}
- {1899356400 -14400 1 EDT}
- {1919916000 -18000 0 EST}
- {1930806000 -14400 1 EDT}
- {1951365600 -18000 0 EST}
- {1962860400 -14400 1 EDT}
- {1983420000 -18000 0 EST}
- {1994310000 -14400 1 EDT}
- {2014869600 -18000 0 EST}
- {2025759600 -14400 1 EDT}
- {2046319200 -18000 0 EST}
- {2057209200 -14400 1 EDT}
- {2077768800 -18000 0 EST}
- {2088658800 -14400 1 EDT}
- {2109218400 -18000 0 EST}
- {2120108400 -14400 1 EDT}
- {2140668000 -18000 0 EST}
- {2152162800 -14400 1 EDT}
- {2172722400 -18000 0 EST}
- {2183612400 -14400 1 EDT}
- {2204172000 -18000 0 EST}
- {2215062000 -14400 1 EDT}
- {2235621600 -18000 0 EST}
- {2246511600 -14400 1 EDT}
- {2267071200 -18000 0 EST}
- {2277961200 -14400 1 EDT}
- {2298520800 -18000 0 EST}
- {2309410800 -14400 1 EDT}
- {2329970400 -18000 0 EST}
- {2341465200 -14400 1 EDT}
- {2362024800 -18000 0 EST}
- {2372914800 -14400 1 EDT}
- {2393474400 -18000 0 EST}
- {2404364400 -14400 1 EDT}
- {2424924000 -18000 0 EST}
- {2435814000 -14400 1 EDT}
- {2456373600 -18000 0 EST}
- {2467263600 -14400 1 EDT}
- {2487823200 -18000 0 EST}
- {2499318000 -14400 1 EDT}
- {2519877600 -18000 0 EST}
- {2530767600 -14400 1 EDT}
- {2551327200 -18000 0 EST}
- {2562217200 -14400 1 EDT}
- {2582776800 -18000 0 EST}
- {2593666800 -14400 1 EDT}
- {2614226400 -18000 0 EST}
- {2625116400 -14400 1 EDT}
- {2645676000 -18000 0 EST}
- {2656566000 -14400 1 EDT}
- {2677125600 -18000 0 EST}
- {2688620400 -14400 1 EDT}
- {2709180000 -18000 0 EST}
- {2720070000 -14400 1 EDT}
- {2740629600 -18000 0 EST}
- {2751519600 -14400 1 EDT}
- {2772079200 -18000 0 EST}
- {2782969200 -14400 1 EDT}
- {2803528800 -18000 0 EST}
- {2814418800 -14400 1 EDT}
- {2834978400 -18000 0 EST}
- {2846473200 -14400 1 EDT}
- {2867032800 -18000 0 EST}
- {2877922800 -14400 1 EDT}
- {2898482400 -18000 0 EST}
- {2909372400 -14400 1 EDT}
- {2929932000 -18000 0 EST}
- {2940822000 -14400 1 EDT}
- {2961381600 -18000 0 EST}
- {2972271600 -14400 1 EDT}
- {2992831200 -18000 0 EST}
- {3003721200 -14400 1 EDT}
- {3024280800 -18000 0 EST}
- {3035775600 -14400 1 EDT}
- {3056335200 -18000 0 EST}
- {3067225200 -14400 1 EDT}
- {3087784800 -18000 0 EST}
- {3098674800 -14400 1 EDT}
- {3119234400 -18000 0 EST}
- {3130124400 -14400 1 EDT}
- {3150684000 -18000 0 EST}
- {3161574000 -14400 1 EDT}
- {3182133600 -18000 0 EST}
- {3193023600 -14400 1 EDT}
- {3213583200 -18000 0 EST}
- {3225078000 -14400 1 EDT}
- {3245637600 -18000 0 EST}
- {3256527600 -14400 1 EDT}
- {3277087200 -18000 0 EST}
- {3287977200 -14400 1 EDT}
- {3308536800 -18000 0 EST}
- {3319426800 -14400 1 EDT}
- {3339986400 -18000 0 EST}
- {3350876400 -14400 1 EDT}
- {3371436000 -18000 0 EST}
- {3382930800 -14400 1 EDT}
- {3403490400 -18000 0 EST}
- {3414380400 -14400 1 EDT}
- {3434940000 -18000 0 EST}
- {3445830000 -14400 1 EDT}
- {3466389600 -18000 0 EST}
- {3477279600 -14400 1 EDT}
- {3497839200 -18000 0 EST}
- {3508729200 -14400 1 EDT}
- {3529288800 -18000 0 EST}
- {3540178800 -14400 1 EDT}
- {3560738400 -18000 0 EST}
- {3572233200 -14400 1 EDT}
- {3592792800 -18000 0 EST}
- {3603682800 -14400 1 EDT}
- {3624242400 -18000 0 EST}
- {3635132400 -14400 1 EDT}
- {3655692000 -18000 0 EST}
- {3666582000 -14400 1 EDT}
- {3687141600 -18000 0 EST}
- {3698031600 -14400 1 EDT}
- {3718591200 -18000 0 EST}
- {3730086000 -14400 1 EDT}
- {3750645600 -18000 0 EST}
- {3761535600 -14400 1 EDT}
- {3782095200 -18000 0 EST}
- {3792985200 -14400 1 EDT}
- {3813544800 -18000 0 EST}
- {3824434800 -14400 1 EDT}
- {3844994400 -18000 0 EST}
- {3855884400 -14400 1 EDT}
- {3876444000 -18000 0 EST}
- {3887334000 -14400 1 EDT}
- {3907893600 -18000 0 EST}
- {3919388400 -14400 1 EDT}
- {3939948000 -18000 0 EST}
- {3950838000 -14400 1 EDT}
- {3971397600 -18000 0 EST}
- {3982287600 -14400 1 EDT}
- {4002847200 -18000 0 EST}
- {4013737200 -14400 1 EDT}
- {4034296800 -18000 0 EST}
- {4045186800 -14400 1 EDT}
- {4065746400 -18000 0 EST}
- {4076636400 -14400 1 EDT}
- {4097196000 -18000 0 EST}
+ {1446361200 -14400 0 AST}
}
diff --git a/library/tzdata/America/Havana b/library/tzdata/America/Havana
index 89cbc9a..5901dae 100644
--- a/library/tzdata/America/Havana
+++ b/library/tzdata/America/Havana
@@ -94,7 +94,7 @@ set TZData(:America/Havana) {
{1035694800 -18000 0 CST}
{1049605200 -14400 1 CDT}
{1067144400 -18000 0 CST}
- {1081054800 -14400 1 CDT}
+ {1080450000 -14400 1 CDT}
{1162098000 -18000 0 CST}
{1173589200 -14400 1 CDT}
{1193547600 -18000 0 CST}
diff --git a/library/tzdata/America/Jamaica b/library/tzdata/America/Jamaica
index 682e47c..f752842 100644
--- a/library/tzdata/America/Jamaica
+++ b/library/tzdata/America/Jamaica
@@ -4,7 +4,8 @@ set TZData(:America/Jamaica) {
{-9223372036854775808 -18431 0 LMT}
{-2524503169 -18431 0 KMT}
{-1827687169 -18000 0 EST}
- {136364400 -14400 0 EDT}
+ {126248400 -18000 0 EST}
+ {126687600 -14400 1 EDT}
{152085600 -18000 0 EST}
{162370800 -14400 1 EDT}
{183535200 -18000 0 EST}
diff --git a/library/tzdata/America/Metlakatla b/library/tzdata/America/Metlakatla
index e8af1c0..8ea80fa 100644
--- a/library/tzdata/America/Metlakatla
+++ b/library/tzdata/America/Metlakatla
@@ -39,5 +39,5 @@ set TZData(:America/Metlakatla) {
{388576800 -25200 1 PDT}
{404902800 -28800 0 PST}
{420026400 -25200 1 PDT}
- {436356000 -28800 0 MeST}
+ {436356000 -28800 0 PST}
}
diff --git a/library/tzdata/America/Montreal b/library/tzdata/America/Montreal
index bebe7dc..0ead8ee 100644
--- a/library/tzdata/America/Montreal
+++ b/library/tzdata/America/Montreal
@@ -1,366 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Montreal) {
- {-9223372036854775808 -17656 0 LMT}
- {-2713892744 -18000 0 EST}
- {-1665334800 -14400 1 EDT}
- {-1662753600 -18000 0 EST}
- {-1640977200 -18000 0 EST}
- {-1632070800 -14400 1 EDT}
- {-1615140000 -18000 0 EST}
- {-1609441200 -18000 0 EST}
- {-1601742600 -14400 1 EDT}
- {-1583775000 -18000 0 EST}
- {-1567355400 -14400 1 EDT}
- {-1554053400 -18000 0 EST}
- {-1535907600 -14400 1 EDT}
- {-1522603800 -18000 0 EST}
- {-1504458000 -14400 1 EDT}
- {-1491154200 -18000 0 EST}
- {-1439830800 -14400 1 EDT}
- {-1428255000 -18000 0 EST}
- {-1409504400 -14400 1 EDT}
- {-1396805400 -18000 0 EST}
- {-1378054800 -14400 1 EDT}
- {-1365355800 -18000 0 EST}
- {-1346612400 -14400 1 EDT}
- {-1333915200 -18000 0 EST}
- {-1315162800 -14400 1 EDT}
- {-1301860800 -18000 0 EST}
- {-1283713200 -14400 1 EDT}
- {-1270411200 -18000 0 EST}
- {-1252263600 -14400 1 EDT}
- {-1238961600 -18000 0 EST}
- {-1220814000 -14400 1 EDT}
- {-1207512000 -18000 0 EST}
- {-1188759600 -14400 1 EDT}
- {-1176062400 -18000 0 EST}
- {-1157310000 -14400 1 EDT}
- {-1144008000 -18000 0 EST}
- {-1125860400 -14400 1 EDT}
- {-1112558400 -18000 0 EST}
- {-1094410800 -14400 1 EDT}
- {-1081108800 -18000 0 EST}
- {-1062961200 -14400 1 EDT}
- {-1049659200 -18000 0 EST}
- {-1031511600 -14400 1 EDT}
- {-1018209600 -18000 0 EST}
- {-1000062000 -14400 1 EDT}
- {-986760000 -18000 0 EST}
- {-968007600 -14400 1 EDT}
- {-955310400 -18000 0 EST}
- {-936558000 -14400 1 EDT}
- {-880218000 -14400 0 EWT}
- {-769395600 -14400 1 EPT}
- {-765396000 -18000 0 EST}
- {-757364400 -18000 0 EST}
- {-747248400 -14400 1 EDT}
- {-733946400 -18000 0 EST}
- {-715798800 -14400 1 EDT}
- {-702496800 -18000 0 EST}
- {-684349200 -14400 1 EDT}
- {-671047200 -18000 0 EST}
- {-652899600 -14400 1 EDT}
- {-636573600 -18000 0 EST}
- {-620845200 -14400 1 EDT}
- {-605124000 -18000 0 EST}
- {-589395600 -14400 1 EDT}
- {-576093600 -18000 0 EST}
- {-557946000 -14400 1 EDT}
- {-544644000 -18000 0 EST}
- {-526496400 -14400 1 EDT}
- {-513194400 -18000 0 EST}
- {-495046800 -14400 1 EDT}
- {-481744800 -18000 0 EST}
- {-463597200 -14400 1 EDT}
- {-450295200 -18000 0 EST}
- {-431542800 -14400 1 EDT}
- {-418240800 -18000 0 EST}
- {-400093200 -14400 1 EDT}
- {-384372000 -18000 0 EST}
- {-368643600 -14400 1 EDT}
- {-352922400 -18000 0 EST}
- {-337194000 -14400 1 EDT}
- {-321472800 -18000 0 EST}
- {-305744400 -14400 1 EDT}
- {-289418400 -18000 0 EST}
- {-273690000 -14400 1 EDT}
- {-257968800 -18000 0 EST}
- {-242240400 -14400 1 EDT}
- {-226519200 -18000 0 EST}
- {-210790800 -14400 1 EDT}
- {-195069600 -18000 0 EST}
- {-179341200 -14400 1 EDT}
- {-163620000 -18000 0 EST}
- {-147891600 -14400 1 EDT}
- {-131565600 -18000 0 EST}
- {-116442000 -14400 1 EDT}
- {-100116000 -18000 0 EST}
- {-84387600 -14400 1 EDT}
- {-68666400 -18000 0 EST}
- {-52938000 -14400 1 EDT}
- {-37216800 -18000 0 EST}
- {-21488400 -14400 1 EDT}
- {-5767200 -18000 0 EST}
- {9961200 -14400 1 EDT}
- {25682400 -18000 0 EST}
- {41410800 -14400 1 EDT}
- {57736800 -18000 0 EST}
- {73465200 -14400 1 EDT}
- {89186400 -18000 0 EST}
- {104914800 -14400 1 EDT}
- {120636000 -18000 0 EST}
- {126248400 -18000 0 EST}
- {136364400 -14400 1 EDT}
- {152085600 -18000 0 EST}
- {167814000 -14400 1 EDT}
- {183535200 -18000 0 EST}
- {199263600 -14400 1 EDT}
- {215589600 -18000 0 EST}
- {230713200 -14400 1 EDT}
- {247039200 -18000 0 EST}
- {262767600 -14400 1 EDT}
- {278488800 -18000 0 EST}
- {294217200 -14400 1 EDT}
- {309938400 -18000 0 EST}
- {325666800 -14400 1 EDT}
- {341388000 -18000 0 EST}
- {357116400 -14400 1 EDT}
- {372837600 -18000 0 EST}
- {388566000 -14400 1 EDT}
- {404892000 -18000 0 EST}
- {420015600 -14400 1 EDT}
- {436341600 -18000 0 EST}
- {452070000 -14400 1 EDT}
- {467791200 -18000 0 EST}
- {483519600 -14400 1 EDT}
- {499240800 -18000 0 EST}
- {514969200 -14400 1 EDT}
- {530690400 -18000 0 EST}
- {544604400 -14400 1 EDT}
- {562140000 -18000 0 EST}
- {576054000 -14400 1 EDT}
- {594194400 -18000 0 EST}
- {607503600 -14400 1 EDT}
- {625644000 -18000 0 EST}
- {638953200 -14400 1 EDT}
- {657093600 -18000 0 EST}
- {671007600 -14400 1 EDT}
- {688543200 -18000 0 EST}
- {702457200 -14400 1 EDT}
- {719992800 -18000 0 EST}
- {733906800 -14400 1 EDT}
- {752047200 -18000 0 EST}
- {765356400 -14400 1 EDT}
- {783496800 -18000 0 EST}
- {796806000 -14400 1 EDT}
- {814946400 -18000 0 EST}
- {828860400 -14400 1 EDT}
- {846396000 -18000 0 EST}
- {860310000 -14400 1 EDT}
- {877845600 -18000 0 EST}
- {891759600 -14400 1 EDT}
- {909295200 -18000 0 EST}
- {923209200 -14400 1 EDT}
- {941349600 -18000 0 EST}
- {954658800 -14400 1 EDT}
- {972799200 -18000 0 EST}
- {986108400 -14400 1 EDT}
- {1004248800 -18000 0 EST}
- {1018162800 -14400 1 EDT}
- {1035698400 -18000 0 EST}
- {1049612400 -14400 1 EDT}
- {1067148000 -18000 0 EST}
- {1081062000 -14400 1 EDT}
- {1099202400 -18000 0 EST}
- {1112511600 -14400 1 EDT}
- {1130652000 -18000 0 EST}
- {1143961200 -14400 1 EDT}
- {1162101600 -18000 0 EST}
- {1173596400 -14400 1 EDT}
- {1194156000 -18000 0 EST}
- {1205046000 -14400 1 EDT}
- {1225605600 -18000 0 EST}
- {1236495600 -14400 1 EDT}
- {1257055200 -18000 0 EST}
- {1268550000 -14400 1 EDT}
- {1289109600 -18000 0 EST}
- {1299999600 -14400 1 EDT}
- {1320559200 -18000 0 EST}
- {1331449200 -14400 1 EDT}
- {1352008800 -18000 0 EST}
- {1362898800 -14400 1 EDT}
- {1383458400 -18000 0 EST}
- {1394348400 -14400 1 EDT}
- {1414908000 -18000 0 EST}
- {1425798000 -14400 1 EDT}
- {1446357600 -18000 0 EST}
- {1457852400 -14400 1 EDT}
- {1478412000 -18000 0 EST}
- {1489302000 -14400 1 EDT}
- {1509861600 -18000 0 EST}
- {1520751600 -14400 1 EDT}
- {1541311200 -18000 0 EST}
- {1552201200 -14400 1 EDT}
- {1572760800 -18000 0 EST}
- {1583650800 -14400 1 EDT}
- {1604210400 -18000 0 EST}
- {1615705200 -14400 1 EDT}
- {1636264800 -18000 0 EST}
- {1647154800 -14400 1 EDT}
- {1667714400 -18000 0 EST}
- {1678604400 -14400 1 EDT}
- {1699164000 -18000 0 EST}
- {1710054000 -14400 1 EDT}
- {1730613600 -18000 0 EST}
- {1741503600 -14400 1 EDT}
- {1762063200 -18000 0 EST}
- {1772953200 -14400 1 EDT}
- {1793512800 -18000 0 EST}
- {1805007600 -14400 1 EDT}
- {1825567200 -18000 0 EST}
- {1836457200 -14400 1 EDT}
- {1857016800 -18000 0 EST}
- {1867906800 -14400 1 EDT}
- {1888466400 -18000 0 EST}
- {1899356400 -14400 1 EDT}
- {1919916000 -18000 0 EST}
- {1930806000 -14400 1 EDT}
- {1951365600 -18000 0 EST}
- {1962860400 -14400 1 EDT}
- {1983420000 -18000 0 EST}
- {1994310000 -14400 1 EDT}
- {2014869600 -18000 0 EST}
- {2025759600 -14400 1 EDT}
- {2046319200 -18000 0 EST}
- {2057209200 -14400 1 EDT}
- {2077768800 -18000 0 EST}
- {2088658800 -14400 1 EDT}
- {2109218400 -18000 0 EST}
- {2120108400 -14400 1 EDT}
- {2140668000 -18000 0 EST}
- {2152162800 -14400 1 EDT}
- {2172722400 -18000 0 EST}
- {2183612400 -14400 1 EDT}
- {2204172000 -18000 0 EST}
- {2215062000 -14400 1 EDT}
- {2235621600 -18000 0 EST}
- {2246511600 -14400 1 EDT}
- {2267071200 -18000 0 EST}
- {2277961200 -14400 1 EDT}
- {2298520800 -18000 0 EST}
- {2309410800 -14400 1 EDT}
- {2329970400 -18000 0 EST}
- {2341465200 -14400 1 EDT}
- {2362024800 -18000 0 EST}
- {2372914800 -14400 1 EDT}
- {2393474400 -18000 0 EST}
- {2404364400 -14400 1 EDT}
- {2424924000 -18000 0 EST}
- {2435814000 -14400 1 EDT}
- {2456373600 -18000 0 EST}
- {2467263600 -14400 1 EDT}
- {2487823200 -18000 0 EST}
- {2499318000 -14400 1 EDT}
- {2519877600 -18000 0 EST}
- {2530767600 -14400 1 EDT}
- {2551327200 -18000 0 EST}
- {2562217200 -14400 1 EDT}
- {2582776800 -18000 0 EST}
- {2593666800 -14400 1 EDT}
- {2614226400 -18000 0 EST}
- {2625116400 -14400 1 EDT}
- {2645676000 -18000 0 EST}
- {2656566000 -14400 1 EDT}
- {2677125600 -18000 0 EST}
- {2688620400 -14400 1 EDT}
- {2709180000 -18000 0 EST}
- {2720070000 -14400 1 EDT}
- {2740629600 -18000 0 EST}
- {2751519600 -14400 1 EDT}
- {2772079200 -18000 0 EST}
- {2782969200 -14400 1 EDT}
- {2803528800 -18000 0 EST}
- {2814418800 -14400 1 EDT}
- {2834978400 -18000 0 EST}
- {2846473200 -14400 1 EDT}
- {2867032800 -18000 0 EST}
- {2877922800 -14400 1 EDT}
- {2898482400 -18000 0 EST}
- {2909372400 -14400 1 EDT}
- {2929932000 -18000 0 EST}
- {2940822000 -14400 1 EDT}
- {2961381600 -18000 0 EST}
- {2972271600 -14400 1 EDT}
- {2992831200 -18000 0 EST}
- {3003721200 -14400 1 EDT}
- {3024280800 -18000 0 EST}
- {3035775600 -14400 1 EDT}
- {3056335200 -18000 0 EST}
- {3067225200 -14400 1 EDT}
- {3087784800 -18000 0 EST}
- {3098674800 -14400 1 EDT}
- {3119234400 -18000 0 EST}
- {3130124400 -14400 1 EDT}
- {3150684000 -18000 0 EST}
- {3161574000 -14400 1 EDT}
- {3182133600 -18000 0 EST}
- {3193023600 -14400 1 EDT}
- {3213583200 -18000 0 EST}
- {3225078000 -14400 1 EDT}
- {3245637600 -18000 0 EST}
- {3256527600 -14400 1 EDT}
- {3277087200 -18000 0 EST}
- {3287977200 -14400 1 EDT}
- {3308536800 -18000 0 EST}
- {3319426800 -14400 1 EDT}
- {3339986400 -18000 0 EST}
- {3350876400 -14400 1 EDT}
- {3371436000 -18000 0 EST}
- {3382930800 -14400 1 EDT}
- {3403490400 -18000 0 EST}
- {3414380400 -14400 1 EDT}
- {3434940000 -18000 0 EST}
- {3445830000 -14400 1 EDT}
- {3466389600 -18000 0 EST}
- {3477279600 -14400 1 EDT}
- {3497839200 -18000 0 EST}
- {3508729200 -14400 1 EDT}
- {3529288800 -18000 0 EST}
- {3540178800 -14400 1 EDT}
- {3560738400 -18000 0 EST}
- {3572233200 -14400 1 EDT}
- {3592792800 -18000 0 EST}
- {3603682800 -14400 1 EDT}
- {3624242400 -18000 0 EST}
- {3635132400 -14400 1 EDT}
- {3655692000 -18000 0 EST}
- {3666582000 -14400 1 EDT}
- {3687141600 -18000 0 EST}
- {3698031600 -14400 1 EDT}
- {3718591200 -18000 0 EST}
- {3730086000 -14400 1 EDT}
- {3750645600 -18000 0 EST}
- {3761535600 -14400 1 EDT}
- {3782095200 -18000 0 EST}
- {3792985200 -14400 1 EDT}
- {3813544800 -18000 0 EST}
- {3824434800 -14400 1 EDT}
- {3844994400 -18000 0 EST}
- {3855884400 -14400 1 EDT}
- {3876444000 -18000 0 EST}
- {3887334000 -14400 1 EDT}
- {3907893600 -18000 0 EST}
- {3919388400 -14400 1 EDT}
- {3939948000 -18000 0 EST}
- {3950838000 -14400 1 EDT}
- {3971397600 -18000 0 EST}
- {3982287600 -14400 1 EDT}
- {4002847200 -18000 0 EST}
- {4013737200 -14400 1 EDT}
- {4034296800 -18000 0 EST}
- {4045186800 -14400 1 EDT}
- {4065746400 -18000 0 EST}
- {4076636400 -14400 1 EDT}
- {4097196000 -18000 0 EST}
+if {![info exists TZData(America/Toronto)]} {
+ LoadTimeZoneFile America/Toronto
}
+set TZData(:America/Montreal) $TZData(:America/Toronto)
diff --git a/library/tzdata/America/Rio_Branco b/library/tzdata/America/Rio_Branco
index 20889cb..f0ff7fa 100644
--- a/library/tzdata/America/Rio_Branco
+++ b/library/tzdata/America/Rio_Branco
@@ -33,4 +33,5 @@ set TZData(:America/Rio_Branco) {
{571204800 -18000 0 ACT}
{590040000 -18000 0 ACT}
{1214283600 -14400 0 AMT}
+ {1384056000 -18000 0 ACT}
}
diff --git a/library/tzdata/America/Santiago b/library/tzdata/America/Santiago
index 44be9f8..b6d9b38 100644
--- a/library/tzdata/America/Santiago
+++ b/library/tzdata/America/Santiago
@@ -3,9 +3,9 @@
set TZData(:America/Santiago) {
{-9223372036854775808 -16966 0 LMT}
{-2524504634 -16966 0 SMT}
- {-1893439034 -18000 0 CLT}
+ {-1892661434 -18000 0 CLT}
{-1688410800 -16966 0 SMT}
- {-1619983034 -14400 0 CLT}
+ {-1619205434 -14400 0 CLT}
{-1593806400 -16966 0 SMT}
{-1335986234 -18000 0 CLT}
{-1335985200 -14400 1 CLST}
@@ -18,13 +18,13 @@ set TZData(:America/Santiago) {
{-1222977600 -18000 0 CLT}
{-1209754800 -14400 1 CLST}
{-1191355200 -18000 0 CLT}
- {-1178132400 -14400 1 CLST}
+ {-1178132400 -14400 0 CLT}
{-870552000 -18000 0 CLT}
- {-865278000 -14400 1 CLST}
- {-740520000 -14400 1 CLST}
- {-736376400 -18000 0 CLT}
+ {-865278000 -14400 0 CLT}
+ {-740520000 -10800 1 CLST}
+ {-736376400 -14400 0 CLT}
{-718056000 -18000 0 CLT}
- {-713646000 -14400 0 CLT}
+ {-713649600 -14400 0 CLT}
{-36619200 -10800 1 CLST}
{-23922000 -14400 0 CLT}
{-3355200 -10800 1 CLST}
@@ -65,10 +65,10 @@ set TZData(:America/Santiago) {
{545194800 -14400 0 CLT}
{560923200 -10800 1 CLST}
{574225200 -14400 0 CLT}
- {591768000 -10800 1 CLST}
+ {592372800 -10800 1 CLST}
{605674800 -14400 0 CLT}
{624427200 -10800 1 CLST}
- {637729200 -14400 0 CLT}
+ {637124400 -14400 0 CLT}
{653457600 -10800 1 CLST}
{668574000 -14400 0 CLT}
{687326400 -10800 1 CLST}
@@ -118,174 +118,5 @@ set TZData(:America/Santiago) {
{1378612800 -10800 1 CLST}
{1398567600 -14400 0 CLT}
{1410062400 -10800 1 CLST}
- {1430017200 -14400 0 CLT}
- {1441512000 -10800 1 CLST}
- {1461466800 -14400 0 CLT}
- {1472961600 -10800 1 CLST}
- {1492916400 -14400 0 CLT}
- {1504411200 -10800 1 CLST}
- {1524970800 -14400 0 CLT}
- {1535860800 -10800 1 CLST}
- {1556420400 -14400 0 CLT}
- {1567915200 -10800 1 CLST}
- {1587870000 -14400 0 CLT}
- {1599364800 -10800 1 CLST}
- {1619319600 -14400 0 CLT}
- {1630814400 -10800 1 CLST}
- {1650769200 -14400 0 CLT}
- {1662264000 -10800 1 CLST}
- {1682218800 -14400 0 CLT}
- {1693713600 -10800 1 CLST}
- {1714273200 -14400 0 CLT}
- {1725768000 -10800 1 CLST}
- {1745722800 -14400 0 CLT}
- {1757217600 -10800 1 CLST}
- {1777172400 -14400 0 CLT}
- {1788667200 -10800 1 CLST}
- {1808622000 -14400 0 CLT}
- {1820116800 -10800 1 CLST}
- {1840071600 -14400 0 CLT}
- {1851566400 -10800 1 CLST}
- {1872126000 -14400 0 CLT}
- {1883016000 -10800 1 CLST}
- {1903575600 -14400 0 CLT}
- {1915070400 -10800 1 CLST}
- {1935025200 -14400 0 CLT}
- {1946520000 -10800 1 CLST}
- {1966474800 -14400 0 CLT}
- {1977969600 -10800 1 CLST}
- {1997924400 -14400 0 CLT}
- {2009419200 -10800 1 CLST}
- {2029374000 -14400 0 CLT}
- {2040868800 -10800 1 CLST}
- {2061428400 -14400 0 CLT}
- {2072318400 -10800 1 CLST}
- {2092878000 -14400 0 CLT}
- {2104372800 -10800 1 CLST}
- {2124327600 -14400 0 CLT}
- {2135822400 -10800 1 CLST}
- {2155777200 -14400 0 CLT}
- {2167272000 -10800 1 CLST}
- {2187226800 -14400 0 CLT}
- {2198721600 -10800 1 CLST}
- {2219281200 -14400 0 CLT}
- {2230171200 -10800 1 CLST}
- {2250730800 -14400 0 CLT}
- {2262225600 -10800 1 CLST}
- {2282180400 -14400 0 CLT}
- {2293675200 -10800 1 CLST}
- {2313630000 -14400 0 CLT}
- {2325124800 -10800 1 CLST}
- {2345079600 -14400 0 CLT}
- {2356574400 -10800 1 CLST}
- {2376529200 -14400 0 CLT}
- {2388024000 -10800 1 CLST}
- {2408583600 -14400 0 CLT}
- {2419473600 -10800 1 CLST}
- {2440033200 -14400 0 CLT}
- {2451528000 -10800 1 CLST}
- {2471482800 -14400 0 CLT}
- {2482977600 -10800 1 CLST}
- {2502932400 -14400 0 CLT}
- {2514427200 -10800 1 CLST}
- {2534382000 -14400 0 CLT}
- {2545876800 -10800 1 CLST}
- {2565831600 -14400 0 CLT}
- {2577326400 -10800 1 CLST}
- {2597886000 -14400 0 CLT}
- {2609380800 -10800 1 CLST}
- {2629335600 -14400 0 CLT}
- {2640830400 -10800 1 CLST}
- {2660785200 -14400 0 CLT}
- {2672280000 -10800 1 CLST}
- {2692234800 -14400 0 CLT}
- {2703729600 -10800 1 CLST}
- {2723684400 -14400 0 CLT}
- {2735179200 -10800 1 CLST}
- {2755738800 -14400 0 CLT}
- {2766628800 -10800 1 CLST}
- {2787188400 -14400 0 CLT}
- {2798683200 -10800 1 CLST}
- {2818638000 -14400 0 CLT}
- {2830132800 -10800 1 CLST}
- {2850087600 -14400 0 CLT}
- {2861582400 -10800 1 CLST}
- {2881537200 -14400 0 CLT}
- {2893032000 -10800 1 CLST}
- {2912986800 -14400 0 CLT}
- {2924481600 -10800 1 CLST}
- {2945041200 -14400 0 CLT}
- {2955931200 -10800 1 CLST}
- {2976490800 -14400 0 CLT}
- {2987985600 -10800 1 CLST}
- {3007940400 -14400 0 CLT}
- {3019435200 -10800 1 CLST}
- {3039390000 -14400 0 CLT}
- {3050884800 -10800 1 CLST}
- {3070839600 -14400 0 CLT}
- {3082334400 -10800 1 CLST}
- {3102894000 -14400 0 CLT}
- {3113784000 -10800 1 CLST}
- {3134343600 -14400 0 CLT}
- {3145838400 -10800 1 CLST}
- {3165793200 -14400 0 CLT}
- {3177288000 -10800 1 CLST}
- {3197242800 -14400 0 CLT}
- {3208737600 -10800 1 CLST}
- {3228692400 -14400 0 CLT}
- {3240187200 -10800 1 CLST}
- {3260142000 -14400 0 CLT}
- {3271636800 -10800 1 CLST}
- {3292196400 -14400 0 CLT}
- {3303086400 -10800 1 CLST}
- {3323646000 -14400 0 CLT}
- {3335140800 -10800 1 CLST}
- {3355095600 -14400 0 CLT}
- {3366590400 -10800 1 CLST}
- {3386545200 -14400 0 CLT}
- {3398040000 -10800 1 CLST}
- {3417994800 -14400 0 CLT}
- {3429489600 -10800 1 CLST}
- {3449444400 -14400 0 CLT}
- {3460939200 -10800 1 CLST}
- {3481498800 -14400 0 CLT}
- {3492993600 -10800 1 CLST}
- {3512948400 -14400 0 CLT}
- {3524443200 -10800 1 CLST}
- {3544398000 -14400 0 CLT}
- {3555892800 -10800 1 CLST}
- {3575847600 -14400 0 CLT}
- {3587342400 -10800 1 CLST}
- {3607297200 -14400 0 CLT}
- {3618792000 -10800 1 CLST}
- {3639351600 -14400 0 CLT}
- {3650241600 -10800 1 CLST}
- {3670801200 -14400 0 CLT}
- {3682296000 -10800 1 CLST}
- {3702250800 -14400 0 CLT}
- {3713745600 -10800 1 CLST}
- {3733700400 -14400 0 CLT}
- {3745195200 -10800 1 CLST}
- {3765150000 -14400 0 CLT}
- {3776644800 -10800 1 CLST}
- {3796599600 -14400 0 CLT}
- {3808094400 -10800 1 CLST}
- {3828654000 -14400 0 CLT}
- {3839544000 -10800 1 CLST}
- {3860103600 -14400 0 CLT}
- {3871598400 -10800 1 CLST}
- {3891553200 -14400 0 CLT}
- {3903048000 -10800 1 CLST}
- {3923002800 -14400 0 CLT}
- {3934497600 -10800 1 CLST}
- {3954452400 -14400 0 CLT}
- {3965947200 -10800 1 CLST}
- {3986506800 -14400 0 CLT}
- {3997396800 -10800 1 CLST}
- {4017956400 -14400 0 CLT}
- {4029451200 -10800 1 CLST}
- {4049406000 -14400 0 CLT}
- {4060900800 -10800 1 CLST}
- {4080855600 -14400 0 CLT}
- {4092350400 -10800 1 CLST}
+ {1430017200 -10800 0 CLT}
}
diff --git a/library/tzdata/Antarctica/Casey b/library/tzdata/Antarctica/Casey
index cbe3e3c..56d5df7 100644
--- a/library/tzdata/Antarctica/Casey
+++ b/library/tzdata/Antarctica/Casey
@@ -2,9 +2,9 @@
set TZData(:Antarctica/Casey) {
{-9223372036854775808 0 0 zzz}
- {-31536000 28800 0 WST}
+ {-31536000 28800 0 AWST}
{1255802400 39600 0 CAST}
- {1267714800 28800 0 WST}
+ {1267714800 28800 0 AWST}
{1319738400 39600 0 CAST}
- {1329843600 28800 0 WST}
+ {1329843600 28800 0 AWST}
}
diff --git a/library/tzdata/Antarctica/Macquarie b/library/tzdata/Antarctica/Macquarie
index bd5cf8a..07ddff6 100644
--- a/library/tzdata/Antarctica/Macquarie
+++ b/library/tzdata/Antarctica/Macquarie
@@ -2,96 +2,96 @@
set TZData(:Antarctica/Macquarie) {
{-9223372036854775808 0 0 zzz}
- {-2214259200 36000 0 EST}
- {-1680508800 39600 1 EST}
- {-1669892400 39600 0 EST}
- {-1665392400 36000 0 EST}
+ {-2214259200 36000 0 AEST}
+ {-1680508800 39600 1 AEDT}
+ {-1669892400 39600 0 AEDT}
+ {-1665392400 36000 0 AEST}
{-1601719200 0 0 zzz}
- {-94730400 36000 0 EST}
- {-71136000 39600 1 EST}
- {-55411200 36000 0 EST}
- {-37267200 39600 1 EST}
- {-25776000 36000 0 EST}
- {-5817600 39600 1 EST}
- {5673600 36000 0 EST}
- {25632000 39600 1 EST}
- {37728000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {89136000 39600 1 EST}
- {100022400 36000 0 EST}
- {120585600 39600 1 EST}
- {131472000 36000 0 EST}
- {152035200 39600 1 EST}
- {162921600 36000 0 EST}
- {183484800 39600 1 EST}
- {194976000 36000 0 EST}
- {215539200 39600 1 EST}
- {226425600 36000 0 EST}
- {246988800 39600 1 EST}
- {257875200 36000 0 EST}
- {278438400 39600 1 EST}
- {289324800 36000 0 EST}
- {309888000 39600 1 EST}
- {320774400 36000 0 EST}
- {341337600 39600 1 EST}
- {352224000 36000 0 EST}
- {372787200 39600 1 EST}
- {386092800 36000 0 EST}
- {404841600 39600 1 EST}
- {417542400 36000 0 EST}
- {436291200 39600 1 EST}
- {447177600 36000 0 EST}
- {467740800 39600 1 EST}
- {478627200 36000 0 EST}
- {499190400 39600 1 EST}
- {510076800 36000 0 EST}
- {530035200 39600 1 EST}
- {542736000 36000 0 EST}
- {562089600 39600 1 EST}
- {574790400 36000 0 EST}
- {594144000 39600 1 EST}
- {606240000 36000 0 EST}
- {625593600 39600 1 EST}
- {637689600 36000 0 EST}
- {657043200 39600 1 EST}
- {670348800 36000 0 EST}
- {686678400 39600 1 EST}
- {701798400 36000 0 EST}
- {718128000 39600 1 EST}
- {733248000 36000 0 EST}
- {749577600 39600 1 EST}
- {764697600 36000 0 EST}
- {781027200 39600 1 EST}
- {796147200 36000 0 EST}
- {812476800 39600 1 EST}
- {828201600 36000 0 EST}
- {844531200 39600 1 EST}
- {859651200 36000 0 EST}
- {875980800 39600 1 EST}
- {891100800 36000 0 EST}
- {907430400 39600 1 EST}
- {922550400 36000 0 EST}
- {938880000 39600 1 EST}
- {954000000 36000 0 EST}
- {967305600 39600 1 EST}
- {985449600 36000 0 EST}
- {1002384000 39600 1 EST}
- {1017504000 36000 0 EST}
- {1033833600 39600 1 EST}
- {1048953600 36000 0 EST}
- {1065283200 39600 1 EST}
- {1080403200 36000 0 EST}
- {1096732800 39600 1 EST}
- {1111852800 36000 0 EST}
- {1128182400 39600 1 EST}
- {1143907200 36000 0 EST}
- {1159632000 39600 1 EST}
- {1174752000 36000 0 EST}
- {1191686400 39600 1 EST}
- {1207411200 36000 0 EST}
- {1223136000 39600 1 EST}
- {1238860800 36000 0 EST}
- {1254585600 39600 1 EST}
+ {-94730400 36000 0 AEST}
+ {-71136000 39600 1 AEDT}
+ {-55411200 36000 0 AEST}
+ {-37267200 39600 1 AEDT}
+ {-25776000 36000 0 AEST}
+ {-5817600 39600 1 AEDT}
+ {5673600 36000 0 AEST}
+ {25632000 39600 1 AEDT}
+ {37728000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {89136000 39600 1 AEDT}
+ {100022400 36000 0 AEST}
+ {120585600 39600 1 AEDT}
+ {131472000 36000 0 AEST}
+ {152035200 39600 1 AEDT}
+ {162921600 36000 0 AEST}
+ {183484800 39600 1 AEDT}
+ {194976000 36000 0 AEST}
+ {215539200 39600 1 AEDT}
+ {226425600 36000 0 AEST}
+ {246988800 39600 1 AEDT}
+ {257875200 36000 0 AEST}
+ {278438400 39600 1 AEDT}
+ {289324800 36000 0 AEST}
+ {309888000 39600 1 AEDT}
+ {320774400 36000 0 AEST}
+ {341337600 39600 1 AEDT}
+ {352224000 36000 0 AEST}
+ {372787200 39600 1 AEDT}
+ {386092800 36000 0 AEST}
+ {404841600 39600 1 AEDT}
+ {417542400 36000 0 AEST}
+ {436291200 39600 1 AEDT}
+ {447177600 36000 0 AEST}
+ {467740800 39600 1 AEDT}
+ {478627200 36000 0 AEST}
+ {499190400 39600 1 AEDT}
+ {510076800 36000 0 AEST}
+ {530035200 39600 1 AEDT}
+ {542736000 36000 0 AEST}
+ {562089600 39600 1 AEDT}
+ {574790400 36000 0 AEST}
+ {594144000 39600 1 AEDT}
+ {606240000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {637689600 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {670348800 36000 0 AEST}
+ {686678400 39600 1 AEDT}
+ {701798400 36000 0 AEST}
+ {718128000 39600 1 AEDT}
+ {733248000 36000 0 AEST}
+ {749577600 39600 1 AEDT}
+ {764697600 36000 0 AEST}
+ {781027200 39600 1 AEDT}
+ {796147200 36000 0 AEST}
+ {812476800 39600 1 AEDT}
+ {828201600 36000 0 AEST}
+ {844531200 39600 1 AEDT}
+ {859651200 36000 0 AEST}
+ {875980800 39600 1 AEDT}
+ {891100800 36000 0 AEST}
+ {907430400 39600 1 AEDT}
+ {922550400 36000 0 AEST}
+ {938880000 39600 1 AEDT}
+ {954000000 36000 0 AEST}
+ {967305600 39600 1 AEDT}
+ {985449600 36000 0 AEST}
+ {1002384000 39600 1 AEDT}
+ {1017504000 36000 0 AEST}
+ {1033833600 39600 1 AEDT}
+ {1048953600 36000 0 AEST}
+ {1065283200 39600 1 AEDT}
+ {1080403200 36000 0 AEST}
+ {1096732800 39600 1 AEDT}
+ {1111852800 36000 0 AEST}
+ {1128182400 39600 1 AEDT}
+ {1143907200 36000 0 AEST}
+ {1159632000 39600 1 AEDT}
+ {1174752000 36000 0 AEST}
+ {1191686400 39600 1 AEDT}
+ {1207411200 36000 0 AEST}
+ {1223136000 39600 1 AEDT}
+ {1238860800 36000 0 AEST}
+ {1254585600 39600 1 AEDT}
{1270310400 39600 0 MIST}
}
diff --git a/library/tzdata/Antarctica/Palmer b/library/tzdata/Antarctica/Palmer
index e87b171..2c43861 100644
--- a/library/tzdata/Antarctica/Palmer
+++ b/library/tzdata/Antarctica/Palmer
@@ -28,10 +28,10 @@ set TZData(:Antarctica/Palmer) {
{545194800 -14400 0 CLT}
{560923200 -10800 1 CLST}
{574225200 -14400 0 CLT}
- {591768000 -10800 1 CLST}
+ {592372800 -10800 1 CLST}
{605674800 -14400 0 CLT}
{624427200 -10800 1 CLST}
- {637729200 -14400 0 CLT}
+ {637124400 -14400 0 CLT}
{653457600 -10800 1 CLST}
{668574000 -14400 0 CLT}
{687326400 -10800 1 CLST}
@@ -81,174 +81,5 @@ set TZData(:Antarctica/Palmer) {
{1378612800 -10800 1 CLST}
{1398567600 -14400 0 CLT}
{1410062400 -10800 1 CLST}
- {1430017200 -14400 0 CLT}
- {1441512000 -10800 1 CLST}
- {1461466800 -14400 0 CLT}
- {1472961600 -10800 1 CLST}
- {1492916400 -14400 0 CLT}
- {1504411200 -10800 1 CLST}
- {1524970800 -14400 0 CLT}
- {1535860800 -10800 1 CLST}
- {1556420400 -14400 0 CLT}
- {1567915200 -10800 1 CLST}
- {1587870000 -14400 0 CLT}
- {1599364800 -10800 1 CLST}
- {1619319600 -14400 0 CLT}
- {1630814400 -10800 1 CLST}
- {1650769200 -14400 0 CLT}
- {1662264000 -10800 1 CLST}
- {1682218800 -14400 0 CLT}
- {1693713600 -10800 1 CLST}
- {1714273200 -14400 0 CLT}
- {1725768000 -10800 1 CLST}
- {1745722800 -14400 0 CLT}
- {1757217600 -10800 1 CLST}
- {1777172400 -14400 0 CLT}
- {1788667200 -10800 1 CLST}
- {1808622000 -14400 0 CLT}
- {1820116800 -10800 1 CLST}
- {1840071600 -14400 0 CLT}
- {1851566400 -10800 1 CLST}
- {1872126000 -14400 0 CLT}
- {1883016000 -10800 1 CLST}
- {1903575600 -14400 0 CLT}
- {1915070400 -10800 1 CLST}
- {1935025200 -14400 0 CLT}
- {1946520000 -10800 1 CLST}
- {1966474800 -14400 0 CLT}
- {1977969600 -10800 1 CLST}
- {1997924400 -14400 0 CLT}
- {2009419200 -10800 1 CLST}
- {2029374000 -14400 0 CLT}
- {2040868800 -10800 1 CLST}
- {2061428400 -14400 0 CLT}
- {2072318400 -10800 1 CLST}
- {2092878000 -14400 0 CLT}
- {2104372800 -10800 1 CLST}
- {2124327600 -14400 0 CLT}
- {2135822400 -10800 1 CLST}
- {2155777200 -14400 0 CLT}
- {2167272000 -10800 1 CLST}
- {2187226800 -14400 0 CLT}
- {2198721600 -10800 1 CLST}
- {2219281200 -14400 0 CLT}
- {2230171200 -10800 1 CLST}
- {2250730800 -14400 0 CLT}
- {2262225600 -10800 1 CLST}
- {2282180400 -14400 0 CLT}
- {2293675200 -10800 1 CLST}
- {2313630000 -14400 0 CLT}
- {2325124800 -10800 1 CLST}
- {2345079600 -14400 0 CLT}
- {2356574400 -10800 1 CLST}
- {2376529200 -14400 0 CLT}
- {2388024000 -10800 1 CLST}
- {2408583600 -14400 0 CLT}
- {2419473600 -10800 1 CLST}
- {2440033200 -14400 0 CLT}
- {2451528000 -10800 1 CLST}
- {2471482800 -14400 0 CLT}
- {2482977600 -10800 1 CLST}
- {2502932400 -14400 0 CLT}
- {2514427200 -10800 1 CLST}
- {2534382000 -14400 0 CLT}
- {2545876800 -10800 1 CLST}
- {2565831600 -14400 0 CLT}
- {2577326400 -10800 1 CLST}
- {2597886000 -14400 0 CLT}
- {2609380800 -10800 1 CLST}
- {2629335600 -14400 0 CLT}
- {2640830400 -10800 1 CLST}
- {2660785200 -14400 0 CLT}
- {2672280000 -10800 1 CLST}
- {2692234800 -14400 0 CLT}
- {2703729600 -10800 1 CLST}
- {2723684400 -14400 0 CLT}
- {2735179200 -10800 1 CLST}
- {2755738800 -14400 0 CLT}
- {2766628800 -10800 1 CLST}
- {2787188400 -14400 0 CLT}
- {2798683200 -10800 1 CLST}
- {2818638000 -14400 0 CLT}
- {2830132800 -10800 1 CLST}
- {2850087600 -14400 0 CLT}
- {2861582400 -10800 1 CLST}
- {2881537200 -14400 0 CLT}
- {2893032000 -10800 1 CLST}
- {2912986800 -14400 0 CLT}
- {2924481600 -10800 1 CLST}
- {2945041200 -14400 0 CLT}
- {2955931200 -10800 1 CLST}
- {2976490800 -14400 0 CLT}
- {2987985600 -10800 1 CLST}
- {3007940400 -14400 0 CLT}
- {3019435200 -10800 1 CLST}
- {3039390000 -14400 0 CLT}
- {3050884800 -10800 1 CLST}
- {3070839600 -14400 0 CLT}
- {3082334400 -10800 1 CLST}
- {3102894000 -14400 0 CLT}
- {3113784000 -10800 1 CLST}
- {3134343600 -14400 0 CLT}
- {3145838400 -10800 1 CLST}
- {3165793200 -14400 0 CLT}
- {3177288000 -10800 1 CLST}
- {3197242800 -14400 0 CLT}
- {3208737600 -10800 1 CLST}
- {3228692400 -14400 0 CLT}
- {3240187200 -10800 1 CLST}
- {3260142000 -14400 0 CLT}
- {3271636800 -10800 1 CLST}
- {3292196400 -14400 0 CLT}
- {3303086400 -10800 1 CLST}
- {3323646000 -14400 0 CLT}
- {3335140800 -10800 1 CLST}
- {3355095600 -14400 0 CLT}
- {3366590400 -10800 1 CLST}
- {3386545200 -14400 0 CLT}
- {3398040000 -10800 1 CLST}
- {3417994800 -14400 0 CLT}
- {3429489600 -10800 1 CLST}
- {3449444400 -14400 0 CLT}
- {3460939200 -10800 1 CLST}
- {3481498800 -14400 0 CLT}
- {3492993600 -10800 1 CLST}
- {3512948400 -14400 0 CLT}
- {3524443200 -10800 1 CLST}
- {3544398000 -14400 0 CLT}
- {3555892800 -10800 1 CLST}
- {3575847600 -14400 0 CLT}
- {3587342400 -10800 1 CLST}
- {3607297200 -14400 0 CLT}
- {3618792000 -10800 1 CLST}
- {3639351600 -14400 0 CLT}
- {3650241600 -10800 1 CLST}
- {3670801200 -14400 0 CLT}
- {3682296000 -10800 1 CLST}
- {3702250800 -14400 0 CLT}
- {3713745600 -10800 1 CLST}
- {3733700400 -14400 0 CLT}
- {3745195200 -10800 1 CLST}
- {3765150000 -14400 0 CLT}
- {3776644800 -10800 1 CLST}
- {3796599600 -14400 0 CLT}
- {3808094400 -10800 1 CLST}
- {3828654000 -14400 0 CLT}
- {3839544000 -10800 1 CLST}
- {3860103600 -14400 0 CLT}
- {3871598400 -10800 1 CLST}
- {3891553200 -14400 0 CLT}
- {3903048000 -10800 1 CLST}
- {3923002800 -14400 0 CLT}
- {3934497600 -10800 1 CLST}
- {3954452400 -14400 0 CLT}
- {3965947200 -10800 1 CLST}
- {3986506800 -14400 0 CLT}
- {3997396800 -10800 1 CLST}
- {4017956400 -14400 0 CLT}
- {4029451200 -10800 1 CLST}
- {4049406000 -14400 0 CLT}
- {4060900800 -10800 1 CLST}
- {4080855600 -14400 0 CLT}
- {4092350400 -10800 1 CLST}
+ {1430017200 -10800 0 CLT}
}
diff --git a/library/tzdata/Antarctica/Troll b/library/tzdata/Antarctica/Troll
new file mode 100644
index 0000000..7d2b042
--- /dev/null
+++ b/library/tzdata/Antarctica/Troll
@@ -0,0 +1,196 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Antarctica/Troll) {
+ {-9223372036854775808 0 0 zzz}
+ {1108166400 0 0 UTC}
+ {1111885200 7200 1 CEST}
+ {1130634000 0 0 UTC}
+ {1143334800 7200 1 CEST}
+ {1162083600 0 0 UTC}
+ {1174784400 7200 1 CEST}
+ {1193533200 0 0 UTC}
+ {1206838800 7200 1 CEST}
+ {1224982800 0 0 UTC}
+ {1238288400 7200 1 CEST}
+ {1256432400 0 0 UTC}
+ {1269738000 7200 1 CEST}
+ {1288486800 0 0 UTC}
+ {1301187600 7200 1 CEST}
+ {1319936400 0 0 UTC}
+ {1332637200 7200 1 CEST}
+ {1351386000 0 0 UTC}
+ {1364691600 7200 1 CEST}
+ {1382835600 0 0 UTC}
+ {1396141200 7200 1 CEST}
+ {1414285200 0 0 UTC}
+ {1427590800 7200 1 CEST}
+ {1445734800 0 0 UTC}
+ {1459040400 7200 1 CEST}
+ {1477789200 0 0 UTC}
+ {1490490000 7200 1 CEST}
+ {1509238800 0 0 UTC}
+ {1521939600 7200 1 CEST}
+ {1540688400 0 0 UTC}
+ {1553994000 7200 1 CEST}
+ {1572138000 0 0 UTC}
+ {1585443600 7200 1 CEST}
+ {1603587600 0 0 UTC}
+ {1616893200 7200 1 CEST}
+ {1635642000 0 0 UTC}
+ {1648342800 7200 1 CEST}
+ {1667091600 0 0 UTC}
+ {1679792400 7200 1 CEST}
+ {1698541200 0 0 UTC}
+ {1711846800 7200 1 CEST}
+ {1729990800 0 0 UTC}
+ {1743296400 7200 1 CEST}
+ {1761440400 0 0 UTC}
+ {1774746000 7200 1 CEST}
+ {1792890000 0 0 UTC}
+ {1806195600 7200 1 CEST}
+ {1824944400 0 0 UTC}
+ {1837645200 7200 1 CEST}
+ {1856394000 0 0 UTC}
+ {1869094800 7200 1 CEST}
+ {1887843600 0 0 UTC}
+ {1901149200 7200 1 CEST}
+ {1919293200 0 0 UTC}
+ {1932598800 7200 1 CEST}
+ {1950742800 0 0 UTC}
+ {1964048400 7200 1 CEST}
+ {1982797200 0 0 UTC}
+ {1995498000 7200 1 CEST}
+ {2014246800 0 0 UTC}
+ {2026947600 7200 1 CEST}
+ {2045696400 0 0 UTC}
+ {2058397200 7200 1 CEST}
+ {2077146000 0 0 UTC}
+ {2090451600 7200 1 CEST}
+ {2108595600 0 0 UTC}
+ {2121901200 7200 1 CEST}
+ {2140045200 0 0 UTC}
+ {2153350800 7200 1 CEST}
+ {2172099600 0 0 UTC}
+ {2184800400 7200 1 CEST}
+ {2203549200 0 0 UTC}
+ {2216250000 7200 1 CEST}
+ {2234998800 0 0 UTC}
+ {2248304400 7200 1 CEST}
+ {2266448400 0 0 UTC}
+ {2279754000 7200 1 CEST}
+ {2297898000 0 0 UTC}
+ {2311203600 7200 1 CEST}
+ {2329347600 0 0 UTC}
+ {2342653200 7200 1 CEST}
+ {2361402000 0 0 UTC}
+ {2374102800 7200 1 CEST}
+ {2392851600 0 0 UTC}
+ {2405552400 7200 1 CEST}
+ {2424301200 0 0 UTC}
+ {2437606800 7200 1 CEST}
+ {2455750800 0 0 UTC}
+ {2469056400 7200 1 CEST}
+ {2487200400 0 0 UTC}
+ {2500506000 7200 1 CEST}
+ {2519254800 0 0 UTC}
+ {2531955600 7200 1 CEST}
+ {2550704400 0 0 UTC}
+ {2563405200 7200 1 CEST}
+ {2582154000 0 0 UTC}
+ {2595459600 7200 1 CEST}
+ {2613603600 0 0 UTC}
+ {2626909200 7200 1 CEST}
+ {2645053200 0 0 UTC}
+ {2658358800 7200 1 CEST}
+ {2676502800 0 0 UTC}
+ {2689808400 7200 1 CEST}
+ {2708557200 0 0 UTC}
+ {2721258000 7200 1 CEST}
+ {2740006800 0 0 UTC}
+ {2752707600 7200 1 CEST}
+ {2771456400 0 0 UTC}
+ {2784762000 7200 1 CEST}
+ {2802906000 0 0 UTC}
+ {2816211600 7200 1 CEST}
+ {2834355600 0 0 UTC}
+ {2847661200 7200 1 CEST}
+ {2866410000 0 0 UTC}
+ {2879110800 7200 1 CEST}
+ {2897859600 0 0 UTC}
+ {2910560400 7200 1 CEST}
+ {2929309200 0 0 UTC}
+ {2942010000 7200 1 CEST}
+ {2960758800 0 0 UTC}
+ {2974064400 7200 1 CEST}
+ {2992208400 0 0 UTC}
+ {3005514000 7200 1 CEST}
+ {3023658000 0 0 UTC}
+ {3036963600 7200 1 CEST}
+ {3055712400 0 0 UTC}
+ {3068413200 7200 1 CEST}
+ {3087162000 0 0 UTC}
+ {3099862800 7200 1 CEST}
+ {3118611600 0 0 UTC}
+ {3131917200 7200 1 CEST}
+ {3150061200 0 0 UTC}
+ {3163366800 7200 1 CEST}
+ {3181510800 0 0 UTC}
+ {3194816400 7200 1 CEST}
+ {3212960400 0 0 UTC}
+ {3226266000 7200 1 CEST}
+ {3245014800 0 0 UTC}
+ {3257715600 7200 1 CEST}
+ {3276464400 0 0 UTC}
+ {3289165200 7200 1 CEST}
+ {3307914000 0 0 UTC}
+ {3321219600 7200 1 CEST}
+ {3339363600 0 0 UTC}
+ {3352669200 7200 1 CEST}
+ {3370813200 0 0 UTC}
+ {3384118800 7200 1 CEST}
+ {3402867600 0 0 UTC}
+ {3415568400 7200 1 CEST}
+ {3434317200 0 0 UTC}
+ {3447018000 7200 1 CEST}
+ {3465766800 0 0 UTC}
+ {3479072400 7200 1 CEST}
+ {3497216400 0 0 UTC}
+ {3510522000 7200 1 CEST}
+ {3528666000 0 0 UTC}
+ {3541971600 7200 1 CEST}
+ {3560115600 0 0 UTC}
+ {3573421200 7200 1 CEST}
+ {3592170000 0 0 UTC}
+ {3604870800 7200 1 CEST}
+ {3623619600 0 0 UTC}
+ {3636320400 7200 1 CEST}
+ {3655069200 0 0 UTC}
+ {3668374800 7200 1 CEST}
+ {3686518800 0 0 UTC}
+ {3699824400 7200 1 CEST}
+ {3717968400 0 0 UTC}
+ {3731274000 7200 1 CEST}
+ {3750022800 0 0 UTC}
+ {3762723600 7200 1 CEST}
+ {3781472400 0 0 UTC}
+ {3794173200 7200 1 CEST}
+ {3812922000 0 0 UTC}
+ {3825622800 7200 1 CEST}
+ {3844371600 0 0 UTC}
+ {3857677200 7200 1 CEST}
+ {3875821200 0 0 UTC}
+ {3889126800 7200 1 CEST}
+ {3907270800 0 0 UTC}
+ {3920576400 7200 1 CEST}
+ {3939325200 0 0 UTC}
+ {3952026000 7200 1 CEST}
+ {3970774800 0 0 UTC}
+ {3983475600 7200 1 CEST}
+ {4002224400 0 0 UTC}
+ {4015530000 7200 1 CEST}
+ {4033674000 0 0 UTC}
+ {4046979600 7200 1 CEST}
+ {4065123600 0 0 UTC}
+ {4078429200 7200 1 CEST}
+ {4096573200 0 0 UTC}
+}
diff --git a/library/tzdata/Asia/Aden b/library/tzdata/Asia/Aden
index 399d9f0..5c5515e 100644
--- a/library/tzdata/Asia/Aden
+++ b/library/tzdata/Asia/Aden
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Aden) {
- {-9223372036854775808 10794 0 LMT}
- {-631162794 10800 0 AST}
+if {![info exists TZData(Asia/Riyadh)]} {
+ LoadTimeZoneFile Asia/Riyadh
}
+set TZData(:Asia/Aden) $TZData(:Asia/Riyadh)
diff --git a/library/tzdata/Asia/Amman b/library/tzdata/Asia/Amman
index d5e8616..c2f6904 100644
--- a/library/tzdata/Asia/Amman
+++ b/library/tzdata/Asia/Amman
@@ -70,5 +70,177 @@ set TZData(:Asia/Amman) {
{1301608800 10800 1 EEST}
{1319752800 7200 0 EET}
{1333058400 10800 1 EEST}
- {1351202400 10800 0 AST}
+ {1387486800 7200 0 EET}
+ {1395957600 10800 1 EEST}
+ {1414706400 7200 0 EET}
+ {1427407200 10800 1 EEST}
+ {1446156000 7200 0 EET}
+ {1459461600 10800 1 EEST}
+ {1477605600 7200 0 EET}
+ {1490911200 10800 1 EEST}
+ {1509055200 7200 0 EET}
+ {1522360800 10800 1 EEST}
+ {1540504800 7200 0 EET}
+ {1553810400 10800 1 EEST}
+ {1571954400 7200 0 EET}
+ {1585260000 10800 1 EEST}
+ {1604008800 7200 0 EET}
+ {1616709600 10800 1 EEST}
+ {1635458400 7200 0 EET}
+ {1648764000 10800 1 EEST}
+ {1666908000 7200 0 EET}
+ {1680213600 10800 1 EEST}
+ {1698357600 7200 0 EET}
+ {1711663200 10800 1 EEST}
+ {1729807200 7200 0 EET}
+ {1743112800 10800 1 EEST}
+ {1761861600 7200 0 EET}
+ {1774562400 10800 1 EEST}
+ {1793311200 7200 0 EET}
+ {1806012000 10800 1 EEST}
+ {1824760800 7200 0 EET}
+ {1838066400 10800 1 EEST}
+ {1856210400 7200 0 EET}
+ {1869516000 10800 1 EEST}
+ {1887660000 7200 0 EET}
+ {1900965600 10800 1 EEST}
+ {1919109600 7200 0 EET}
+ {1932415200 10800 1 EEST}
+ {1951164000 7200 0 EET}
+ {1963864800 10800 1 EEST}
+ {1982613600 7200 0 EET}
+ {1995919200 10800 1 EEST}
+ {2014063200 7200 0 EET}
+ {2027368800 10800 1 EEST}
+ {2045512800 7200 0 EET}
+ {2058818400 10800 1 EEST}
+ {2076962400 7200 0 EET}
+ {2090268000 10800 1 EEST}
+ {2109016800 7200 0 EET}
+ {2121717600 10800 1 EEST}
+ {2140466400 7200 0 EET}
+ {2153167200 10800 1 EEST}
+ {2171916000 7200 0 EET}
+ {2185221600 10800 1 EEST}
+ {2203365600 7200 0 EET}
+ {2216671200 10800 1 EEST}
+ {2234815200 7200 0 EET}
+ {2248120800 10800 1 EEST}
+ {2266264800 7200 0 EET}
+ {2279570400 10800 1 EEST}
+ {2298319200 7200 0 EET}
+ {2311020000 10800 1 EEST}
+ {2329768800 7200 0 EET}
+ {2343074400 10800 1 EEST}
+ {2361218400 7200 0 EET}
+ {2374524000 10800 1 EEST}
+ {2392668000 7200 0 EET}
+ {2405973600 10800 1 EEST}
+ {2424117600 7200 0 EET}
+ {2437423200 10800 1 EEST}
+ {2455567200 7200 0 EET}
+ {2468872800 10800 1 EEST}
+ {2487621600 7200 0 EET}
+ {2500322400 10800 1 EEST}
+ {2519071200 7200 0 EET}
+ {2532376800 10800 1 EEST}
+ {2550520800 7200 0 EET}
+ {2563826400 10800 1 EEST}
+ {2581970400 7200 0 EET}
+ {2595276000 10800 1 EEST}
+ {2613420000 7200 0 EET}
+ {2626725600 10800 1 EEST}
+ {2645474400 7200 0 EET}
+ {2658175200 10800 1 EEST}
+ {2676924000 7200 0 EET}
+ {2689624800 10800 1 EEST}
+ {2708373600 7200 0 EET}
+ {2721679200 10800 1 EEST}
+ {2739823200 7200 0 EET}
+ {2753128800 10800 1 EEST}
+ {2771272800 7200 0 EET}
+ {2784578400 10800 1 EEST}
+ {2802722400 7200 0 EET}
+ {2816028000 10800 1 EEST}
+ {2834776800 7200 0 EET}
+ {2847477600 10800 1 EEST}
+ {2866226400 7200 0 EET}
+ {2879532000 10800 1 EEST}
+ {2897676000 7200 0 EET}
+ {2910981600 10800 1 EEST}
+ {2929125600 7200 0 EET}
+ {2942431200 10800 1 EEST}
+ {2960575200 7200 0 EET}
+ {2973880800 10800 1 EEST}
+ {2992629600 7200 0 EET}
+ {3005330400 10800 1 EEST}
+ {3024079200 7200 0 EET}
+ {3036780000 10800 1 EEST}
+ {3055528800 7200 0 EET}
+ {3068834400 10800 1 EEST}
+ {3086978400 7200 0 EET}
+ {3100284000 10800 1 EEST}
+ {3118428000 7200 0 EET}
+ {3131733600 10800 1 EEST}
+ {3149877600 7200 0 EET}
+ {3163183200 10800 1 EEST}
+ {3181932000 7200 0 EET}
+ {3194632800 10800 1 EEST}
+ {3213381600 7200 0 EET}
+ {3226687200 10800 1 EEST}
+ {3244831200 7200 0 EET}
+ {3258136800 10800 1 EEST}
+ {3276280800 7200 0 EET}
+ {3289586400 10800 1 EEST}
+ {3307730400 7200 0 EET}
+ {3321036000 10800 1 EEST}
+ {3339180000 7200 0 EET}
+ {3352485600 10800 1 EEST}
+ {3371234400 7200 0 EET}
+ {3383935200 10800 1 EEST}
+ {3402684000 7200 0 EET}
+ {3415989600 10800 1 EEST}
+ {3434133600 7200 0 EET}
+ {3447439200 10800 1 EEST}
+ {3465583200 7200 0 EET}
+ {3478888800 10800 1 EEST}
+ {3497032800 7200 0 EET}
+ {3510338400 10800 1 EEST}
+ {3529087200 7200 0 EET}
+ {3541788000 10800 1 EEST}
+ {3560536800 7200 0 EET}
+ {3573237600 10800 1 EEST}
+ {3591986400 7200 0 EET}
+ {3605292000 10800 1 EEST}
+ {3623436000 7200 0 EET}
+ {3636741600 10800 1 EEST}
+ {3654885600 7200 0 EET}
+ {3668191200 10800 1 EEST}
+ {3686335200 7200 0 EET}
+ {3699640800 10800 1 EEST}
+ {3718389600 7200 0 EET}
+ {3731090400 10800 1 EEST}
+ {3749839200 7200 0 EET}
+ {3763144800 10800 1 EEST}
+ {3781288800 7200 0 EET}
+ {3794594400 10800 1 EEST}
+ {3812738400 7200 0 EET}
+ {3826044000 10800 1 EEST}
+ {3844188000 7200 0 EET}
+ {3857493600 10800 1 EEST}
+ {3876242400 7200 0 EET}
+ {3888943200 10800 1 EEST}
+ {3907692000 7200 0 EET}
+ {3920392800 10800 1 EEST}
+ {3939141600 7200 0 EET}
+ {3952447200 10800 1 EEST}
+ {3970591200 7200 0 EET}
+ {3983896800 10800 1 EEST}
+ {4002040800 7200 0 EET}
+ {4015346400 10800 1 EEST}
+ {4033490400 7200 0 EET}
+ {4046796000 10800 1 EEST}
+ {4065544800 7200 0 EET}
+ {4078245600 10800 1 EEST}
+ {4096994400 7200 0 EET}
}
diff --git a/library/tzdata/Asia/Bahrain b/library/tzdata/Asia/Bahrain
index d4b7d2c..aab5b7d 100644
--- a/library/tzdata/Asia/Bahrain
+++ b/library/tzdata/Asia/Bahrain
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Bahrain) {
- {-9223372036854775808 12140 0 LMT}
- {-1577935340 14400 0 GST}
- {76190400 10800 0 AST}
+if {![info exists TZData(Asia/Qatar)]} {
+ LoadTimeZoneFile Asia/Qatar
}
+set TZData(:Asia/Bahrain) $TZData(:Asia/Qatar)
diff --git a/library/tzdata/Asia/Chita b/library/tzdata/Asia/Chita
new file mode 100644
index 0000000..eabce7f
--- /dev/null
+++ b/library/tzdata/Asia/Chita
@@ -0,0 +1,71 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Asia/Chita) {
+ {-9223372036854775808 27232 0 LMT}
+ {-1579419232 28800 0 YAKT}
+ {-1247558400 32400 0 YAKMMTT}
+ {354898800 36000 1 YAKST}
+ {370706400 32400 0 YAKT}
+ {386434800 36000 1 YAKST}
+ {402242400 32400 0 YAKT}
+ {417970800 36000 1 YAKST}
+ {433778400 32400 0 YAKT}
+ {449593200 36000 1 YAKST}
+ {465325200 32400 0 YAKT}
+ {481050000 36000 1 YAKST}
+ {496774800 32400 0 YAKT}
+ {512499600 36000 1 YAKST}
+ {528224400 32400 0 YAKT}
+ {543949200 36000 1 YAKST}
+ {559674000 32400 0 YAKT}
+ {575398800 36000 1 YAKST}
+ {591123600 32400 0 YAKT}
+ {606848400 36000 1 YAKST}
+ {622573200 32400 0 YAKT}
+ {638298000 36000 1 YAKST}
+ {654627600 32400 0 YAKT}
+ {670352400 28800 0 YAKMMTT}
+ {670356000 32400 1 YAKST}
+ {686080800 28800 0 YAKT}
+ {695757600 32400 0 YAKMMTT}
+ {701791200 36000 1 YAKST}
+ {717512400 32400 0 YAKT}
+ {733251600 36000 1 YAKST}
+ {748976400 32400 0 YAKT}
+ {764701200 36000 1 YAKST}
+ {780426000 32400 0 YAKT}
+ {796150800 36000 1 YAKST}
+ {811875600 32400 0 YAKT}
+ {828205200 36000 1 YAKST}
+ {846349200 32400 0 YAKT}
+ {859654800 36000 1 YAKST}
+ {877798800 32400 0 YAKT}
+ {891104400 36000 1 YAKST}
+ {909248400 32400 0 YAKT}
+ {922554000 36000 1 YAKST}
+ {941302800 32400 0 YAKT}
+ {954003600 36000 1 YAKST}
+ {972752400 32400 0 YAKT}
+ {985453200 36000 1 YAKST}
+ {1004202000 32400 0 YAKT}
+ {1017507600 36000 1 YAKST}
+ {1035651600 32400 0 YAKT}
+ {1048957200 36000 1 YAKST}
+ {1067101200 32400 0 YAKT}
+ {1080406800 36000 1 YAKST}
+ {1099155600 32400 0 YAKT}
+ {1111856400 36000 1 YAKST}
+ {1130605200 32400 0 YAKT}
+ {1143306000 36000 1 YAKST}
+ {1162054800 32400 0 YAKT}
+ {1174755600 36000 1 YAKST}
+ {1193504400 32400 0 YAKT}
+ {1206810000 36000 1 YAKST}
+ {1224954000 32400 0 YAKT}
+ {1238259600 36000 1 YAKST}
+ {1256403600 32400 0 YAKT}
+ {1269709200 36000 1 YAKST}
+ {1288458000 32400 0 YAKT}
+ {1301158800 36000 0 YAKT}
+ {1414252800 28800 0 IRKT}
+}
diff --git a/library/tzdata/Asia/Choibalsan b/library/tzdata/Asia/Choibalsan
index 3d42617..2bcf7f7 100644
--- a/library/tzdata/Asia/Choibalsan
+++ b/library/tzdata/Asia/Choibalsan
@@ -48,4 +48,175 @@ set TZData(:Asia/Choibalsan) {
{1127491200 32400 0 CHOT}
{1143219600 36000 1 CHOST}
{1159545600 32400 0 CHOT}
+ {1206889200 28800 0 CHOT}
+ {1427479200 32400 1 CHOST}
+ {1443193200 28800 0 CHOT}
+ {1458928800 32400 1 CHOST}
+ {1474642800 28800 0 CHOT}
+ {1490378400 32400 1 CHOST}
+ {1506697200 28800 0 CHOT}
+ {1522432800 32400 1 CHOST}
+ {1538146800 28800 0 CHOT}
+ {1553882400 32400 1 CHOST}
+ {1569596400 28800 0 CHOT}
+ {1585332000 32400 1 CHOST}
+ {1601046000 28800 0 CHOT}
+ {1616781600 32400 1 CHOST}
+ {1632495600 28800 0 CHOT}
+ {1648231200 32400 1 CHOST}
+ {1663945200 28800 0 CHOT}
+ {1679680800 32400 1 CHOST}
+ {1695999600 28800 0 CHOT}
+ {1711735200 32400 1 CHOST}
+ {1727449200 28800 0 CHOT}
+ {1743184800 32400 1 CHOST}
+ {1758898800 28800 0 CHOT}
+ {1774634400 32400 1 CHOST}
+ {1790348400 28800 0 CHOT}
+ {1806084000 32400 1 CHOST}
+ {1821798000 28800 0 CHOT}
+ {1837533600 32400 1 CHOST}
+ {1853852400 28800 0 CHOT}
+ {1869588000 32400 1 CHOST}
+ {1885302000 28800 0 CHOT}
+ {1901037600 32400 1 CHOST}
+ {1916751600 28800 0 CHOT}
+ {1932487200 32400 1 CHOST}
+ {1948201200 28800 0 CHOT}
+ {1963936800 32400 1 CHOST}
+ {1979650800 28800 0 CHOT}
+ {1995386400 32400 1 CHOST}
+ {2011100400 28800 0 CHOT}
+ {2026836000 32400 1 CHOST}
+ {2043154800 28800 0 CHOT}
+ {2058890400 32400 1 CHOST}
+ {2074604400 28800 0 CHOT}
+ {2090340000 32400 1 CHOST}
+ {2106054000 28800 0 CHOT}
+ {2121789600 32400 1 CHOST}
+ {2137503600 28800 0 CHOT}
+ {2153239200 32400 1 CHOST}
+ {2168953200 28800 0 CHOT}
+ {2184688800 32400 1 CHOST}
+ {2200402800 28800 0 CHOT}
+ {2216743200 32400 1 CHOST}
+ {2232457200 28800 0 CHOT}
+ {2248192800 32400 1 CHOST}
+ {2263906800 28800 0 CHOT}
+ {2279642400 32400 1 CHOST}
+ {2295356400 28800 0 CHOT}
+ {2311092000 32400 1 CHOST}
+ {2326806000 28800 0 CHOT}
+ {2342541600 32400 1 CHOST}
+ {2358255600 28800 0 CHOT}
+ {2373991200 32400 1 CHOST}
+ {2390310000 28800 0 CHOT}
+ {2406045600 32400 1 CHOST}
+ {2421759600 28800 0 CHOT}
+ {2437495200 32400 1 CHOST}
+ {2453209200 28800 0 CHOT}
+ {2468944800 32400 1 CHOST}
+ {2484658800 28800 0 CHOT}
+ {2500394400 32400 1 CHOST}
+ {2516108400 28800 0 CHOT}
+ {2531844000 32400 1 CHOST}
+ {2547558000 28800 0 CHOT}
+ {2563293600 32400 1 CHOST}
+ {2579612400 28800 0 CHOT}
+ {2595348000 32400 1 CHOST}
+ {2611062000 28800 0 CHOT}
+ {2626797600 32400 1 CHOST}
+ {2642511600 28800 0 CHOT}
+ {2658247200 32400 1 CHOST}
+ {2673961200 28800 0 CHOT}
+ {2689696800 32400 1 CHOST}
+ {2705410800 28800 0 CHOT}
+ {2721146400 32400 1 CHOST}
+ {2737465200 28800 0 CHOT}
+ {2753200800 32400 1 CHOST}
+ {2768914800 28800 0 CHOT}
+ {2784650400 32400 1 CHOST}
+ {2800364400 28800 0 CHOT}
+ {2816100000 32400 1 CHOST}
+ {2831814000 28800 0 CHOT}
+ {2847549600 32400 1 CHOST}
+ {2863263600 28800 0 CHOT}
+ {2878999200 32400 1 CHOST}
+ {2894713200 28800 0 CHOT}
+ {2910448800 32400 1 CHOST}
+ {2926767600 28800 0 CHOT}
+ {2942503200 32400 1 CHOST}
+ {2958217200 28800 0 CHOT}
+ {2973952800 32400 1 CHOST}
+ {2989666800 28800 0 CHOT}
+ {3005402400 32400 1 CHOST}
+ {3021116400 28800 0 CHOT}
+ {3036852000 32400 1 CHOST}
+ {3052566000 28800 0 CHOT}
+ {3068301600 32400 1 CHOST}
+ {3084015600 28800 0 CHOT}
+ {3100356000 32400 1 CHOST}
+ {3116070000 28800 0 CHOT}
+ {3131805600 32400 1 CHOST}
+ {3147519600 28800 0 CHOT}
+ {3163255200 32400 1 CHOST}
+ {3178969200 28800 0 CHOT}
+ {3194704800 32400 1 CHOST}
+ {3210418800 28800 0 CHOT}
+ {3226154400 32400 1 CHOST}
+ {3241868400 28800 0 CHOT}
+ {3257604000 32400 1 CHOST}
+ {3273922800 28800 0 CHOT}
+ {3289658400 32400 1 CHOST}
+ {3305372400 28800 0 CHOT}
+ {3321108000 32400 1 CHOST}
+ {3336822000 28800 0 CHOT}
+ {3352557600 32400 1 CHOST}
+ {3368271600 28800 0 CHOT}
+ {3384007200 32400 1 CHOST}
+ {3399721200 28800 0 CHOT}
+ {3415456800 32400 1 CHOST}
+ {3431170800 28800 0 CHOT}
+ {3446906400 32400 1 CHOST}
+ {3463225200 28800 0 CHOT}
+ {3478960800 32400 1 CHOST}
+ {3494674800 28800 0 CHOT}
+ {3510410400 32400 1 CHOST}
+ {3526124400 28800 0 CHOT}
+ {3541860000 32400 1 CHOST}
+ {3557574000 28800 0 CHOT}
+ {3573309600 32400 1 CHOST}
+ {3589023600 28800 0 CHOT}
+ {3604759200 32400 1 CHOST}
+ {3621078000 28800 0 CHOT}
+ {3636813600 32400 1 CHOST}
+ {3652527600 28800 0 CHOT}
+ {3668263200 32400 1 CHOST}
+ {3683977200 28800 0 CHOT}
+ {3699712800 32400 1 CHOST}
+ {3715426800 28800 0 CHOT}
+ {3731162400 32400 1 CHOST}
+ {3746876400 28800 0 CHOT}
+ {3762612000 32400 1 CHOST}
+ {3778326000 28800 0 CHOT}
+ {3794061600 32400 1 CHOST}
+ {3810380400 28800 0 CHOT}
+ {3826116000 32400 1 CHOST}
+ {3841830000 28800 0 CHOT}
+ {3857565600 32400 1 CHOST}
+ {3873279600 28800 0 CHOT}
+ {3889015200 32400 1 CHOST}
+ {3904729200 28800 0 CHOT}
+ {3920464800 32400 1 CHOST}
+ {3936178800 28800 0 CHOT}
+ {3951914400 32400 1 CHOST}
+ {3967628400 28800 0 CHOT}
+ {3983968800 32400 1 CHOST}
+ {3999682800 28800 0 CHOT}
+ {4015418400 32400 1 CHOST}
+ {4031132400 28800 0 CHOT}
+ {4046868000 32400 1 CHOST}
+ {4062582000 28800 0 CHOT}
+ {4078317600 32400 1 CHOST}
+ {4094031600 28800 0 CHOT}
}
diff --git a/library/tzdata/Asia/Chongqing b/library/tzdata/Asia/Chongqing
index eff3536..ba515fe 100644
--- a/library/tzdata/Asia/Chongqing
+++ b/library/tzdata/Asia/Chongqing
@@ -1,19 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Chongqing) {
- {-9223372036854775808 25580 0 LMT}
- {-1325487980 25200 0 LONT}
- {325962000 28800 0 CST}
- {515520000 32400 1 CDT}
- {527007600 28800 0 CST}
- {545155200 32400 1 CDT}
- {558457200 28800 0 CST}
- {576604800 32400 1 CDT}
- {589906800 28800 0 CST}
- {608659200 32400 1 CDT}
- {621961200 28800 0 CST}
- {640108800 32400 1 CDT}
- {653410800 28800 0 CST}
- {671558400 32400 1 CDT}
- {684860400 28800 0 CST}
+if {![info exists TZData(Asia/Shanghai)]} {
+ LoadTimeZoneFile Asia/Shanghai
}
+set TZData(:Asia/Chongqing) $TZData(:Asia/Shanghai)
diff --git a/library/tzdata/Asia/Chungking b/library/tzdata/Asia/Chungking
index f10d8a1..fa857dd 100644
--- a/library/tzdata/Asia/Chungking
+++ b/library/tzdata/Asia/Chungking
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(Asia/Chongqing)]} {
- LoadTimeZoneFile Asia/Chongqing
+if {![info exists TZData(Asia/Shanghai)]} {
+ LoadTimeZoneFile Asia/Shanghai
}
-set TZData(:Asia/Chungking) $TZData(:Asia/Chongqing)
+set TZData(:Asia/Chungking) $TZData(:Asia/Shanghai)
diff --git a/library/tzdata/Asia/Dhaka b/library/tzdata/Asia/Dhaka
index e0c270d..6e8a334 100644
--- a/library/tzdata/Asia/Dhaka
+++ b/library/tzdata/Asia/Dhaka
@@ -10,5 +10,5 @@ set TZData(:Asia/Dhaka) {
{38772000 21600 0 BDT}
{1230746400 21600 0 BDT}
{1245430800 25200 1 BDST}
- {1262278740 21600 0 BDT}
+ {1262278800 21600 0 BDT}
}
diff --git a/library/tzdata/Asia/Gaza b/library/tzdata/Asia/Gaza
index 7d62a96..805b6b7 100644
--- a/library/tzdata/Asia/Gaza
+++ b/library/tzdata/Asia/Gaza
@@ -46,8 +46,8 @@ set TZData(:Asia/Gaza) {
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
{558478800 7200 0 IST}
- {576540000 10800 1 IDT}
- {589237200 7200 0 IST}
+ {576626400 10800 1 IDT}
+ {589323600 7200 0 IST}
{609890400 10800 1 IDT}
{620773200 7200 0 IST}
{638316000 10800 1 IDT}
@@ -104,175 +104,175 @@ set TZData(:Asia/Gaza) {
{1364508000 10800 1 EEST}
{1380229200 7200 0 EET}
{1395957600 10800 1 EEST}
- {1411678800 7200 0 EET}
- {1427407200 10800 1 EEST}
- {1443128400 7200 0 EET}
- {1459461600 10800 1 EEST}
- {1474578000 7200 0 EET}
- {1490911200 10800 1 EEST}
- {1506027600 7200 0 EET}
- {1522360800 10800 1 EEST}
- {1537477200 7200 0 EET}
- {1553810400 10800 1 EEST}
- {1569531600 7200 0 EET}
- {1585260000 10800 1 EEST}
- {1600981200 7200 0 EET}
- {1616709600 10800 1 EEST}
- {1632430800 7200 0 EET}
- {1648764000 10800 1 EEST}
- {1663880400 7200 0 EET}
- {1680213600 10800 1 EEST}
- {1695330000 7200 0 EET}
- {1711663200 10800 1 EEST}
- {1727384400 7200 0 EET}
- {1743112800 10800 1 EEST}
- {1758834000 7200 0 EET}
- {1774562400 10800 1 EEST}
- {1790283600 7200 0 EET}
- {1806012000 10800 1 EEST}
- {1821733200 7200 0 EET}
- {1838066400 10800 1 EEST}
- {1853182800 7200 0 EET}
- {1869516000 10800 1 EEST}
- {1884632400 7200 0 EET}
- {1900965600 10800 1 EEST}
- {1916686800 7200 0 EET}
- {1932415200 10800 1 EEST}
- {1948136400 7200 0 EET}
- {1963864800 10800 1 EEST}
- {1979586000 7200 0 EET}
- {1995919200 10800 1 EEST}
- {2011035600 7200 0 EET}
- {2027368800 10800 1 EEST}
- {2042485200 7200 0 EET}
- {2058818400 10800 1 EEST}
- {2073934800 7200 0 EET}
- {2090268000 10800 1 EEST}
- {2105989200 7200 0 EET}
- {2121717600 10800 1 EEST}
- {2137438800 7200 0 EET}
- {2153167200 10800 1 EEST}
- {2168888400 7200 0 EET}
- {2185221600 10800 1 EEST}
- {2200338000 7200 0 EET}
- {2216671200 10800 1 EEST}
- {2231787600 7200 0 EET}
- {2248120800 10800 1 EEST}
- {2263842000 7200 0 EET}
- {2279570400 10800 1 EEST}
- {2295291600 7200 0 EET}
- {2311020000 10800 1 EEST}
- {2326741200 7200 0 EET}
- {2343074400 10800 1 EEST}
- {2358190800 7200 0 EET}
- {2374524000 10800 1 EEST}
- {2389640400 7200 0 EET}
- {2405973600 10800 1 EEST}
- {2421090000 7200 0 EET}
- {2437423200 10800 1 EEST}
- {2453144400 7200 0 EET}
- {2468872800 10800 1 EEST}
- {2484594000 7200 0 EET}
- {2500322400 10800 1 EEST}
- {2516043600 7200 0 EET}
- {2532376800 10800 1 EEST}
- {2547493200 7200 0 EET}
- {2563826400 10800 1 EEST}
- {2578942800 7200 0 EET}
- {2595276000 10800 1 EEST}
- {2610997200 7200 0 EET}
- {2626725600 10800 1 EEST}
- {2642446800 7200 0 EET}
- {2658175200 10800 1 EEST}
- {2673896400 7200 0 EET}
- {2689624800 10800 1 EEST}
- {2705346000 7200 0 EET}
- {2721679200 10800 1 EEST}
- {2736795600 7200 0 EET}
- {2753128800 10800 1 EEST}
- {2768245200 7200 0 EET}
- {2784578400 10800 1 EEST}
- {2800299600 7200 0 EET}
- {2816028000 10800 1 EEST}
- {2831749200 7200 0 EET}
- {2847477600 10800 1 EEST}
- {2863198800 7200 0 EET}
- {2879532000 10800 1 EEST}
- {2894648400 7200 0 EET}
- {2910981600 10800 1 EEST}
- {2926098000 7200 0 EET}
- {2942431200 10800 1 EEST}
- {2957547600 7200 0 EET}
- {2973880800 10800 1 EEST}
- {2989602000 7200 0 EET}
- {3005330400 10800 1 EEST}
- {3021051600 7200 0 EET}
- {3036780000 10800 1 EEST}
- {3052501200 7200 0 EET}
- {3068834400 10800 1 EEST}
- {3083950800 7200 0 EET}
- {3100284000 10800 1 EEST}
- {3115400400 7200 0 EET}
- {3131733600 10800 1 EEST}
- {3147454800 7200 0 EET}
- {3163183200 10800 1 EEST}
- {3178904400 7200 0 EET}
- {3194632800 10800 1 EEST}
- {3210354000 7200 0 EET}
- {3226687200 10800 1 EEST}
- {3241803600 7200 0 EET}
- {3258136800 10800 1 EEST}
- {3273253200 7200 0 EET}
- {3289586400 10800 1 EEST}
- {3304702800 7200 0 EET}
- {3321036000 10800 1 EEST}
- {3336757200 7200 0 EET}
- {3352485600 10800 1 EEST}
- {3368206800 7200 0 EET}
- {3383935200 10800 1 EEST}
- {3399656400 7200 0 EET}
- {3415989600 10800 1 EEST}
- {3431106000 7200 0 EET}
- {3447439200 10800 1 EEST}
- {3462555600 7200 0 EET}
- {3478888800 10800 1 EEST}
- {3494610000 7200 0 EET}
- {3510338400 10800 1 EEST}
- {3526059600 7200 0 EET}
- {3541788000 10800 1 EEST}
- {3557509200 7200 0 EET}
- {3573237600 10800 1 EEST}
- {3588958800 7200 0 EET}
- {3605292000 10800 1 EEST}
- {3620408400 7200 0 EET}
- {3636741600 10800 1 EEST}
- {3651858000 7200 0 EET}
- {3668191200 10800 1 EEST}
- {3683912400 7200 0 EET}
- {3699640800 10800 1 EEST}
- {3715362000 7200 0 EET}
- {3731090400 10800 1 EEST}
- {3746811600 7200 0 EET}
- {3763144800 10800 1 EEST}
- {3778261200 7200 0 EET}
- {3794594400 10800 1 EEST}
- {3809710800 7200 0 EET}
- {3826044000 10800 1 EEST}
- {3841160400 7200 0 EET}
- {3857493600 10800 1 EEST}
- {3873214800 7200 0 EET}
- {3888943200 10800 1 EEST}
- {3904664400 7200 0 EET}
- {3920392800 10800 1 EEST}
- {3936114000 7200 0 EET}
- {3952447200 10800 1 EEST}
- {3967563600 7200 0 EET}
- {3983896800 10800 1 EEST}
- {3999013200 7200 0 EET}
- {4015346400 10800 1 EEST}
- {4031067600 7200 0 EET}
- {4046796000 10800 1 EEST}
- {4062517200 7200 0 EET}
- {4078245600 10800 1 EEST}
- {4093966800 7200 0 EET}
+ {1414098000 7200 0 EET}
+ {1427493600 10800 1 EEST}
+ {1445547600 7200 0 EET}
+ {1458943200 10800 1 EEST}
+ {1476997200 7200 0 EET}
+ {1490997600 10800 1 EEST}
+ {1509051600 7200 0 EET}
+ {1522447200 10800 1 EEST}
+ {1540501200 7200 0 EET}
+ {1553896800 10800 1 EEST}
+ {1571950800 7200 0 EET}
+ {1585346400 10800 1 EEST}
+ {1603400400 7200 0 EET}
+ {1616796000 10800 1 EEST}
+ {1634850000 7200 0 EET}
+ {1648245600 10800 1 EEST}
+ {1666299600 7200 0 EET}
+ {1680300000 10800 1 EEST}
+ {1698354000 7200 0 EET}
+ {1711749600 10800 1 EEST}
+ {1729803600 7200 0 EET}
+ {1743199200 10800 1 EEST}
+ {1761253200 7200 0 EET}
+ {1774648800 10800 1 EEST}
+ {1792702800 7200 0 EET}
+ {1806098400 10800 1 EEST}
+ {1824152400 7200 0 EET}
+ {1838152800 10800 1 EEST}
+ {1856206800 7200 0 EET}
+ {1869602400 10800 1 EEST}
+ {1887656400 7200 0 EET}
+ {1901052000 10800 1 EEST}
+ {1919106000 7200 0 EET}
+ {1932501600 10800 1 EEST}
+ {1950555600 7200 0 EET}
+ {1963951200 10800 1 EEST}
+ {1982005200 7200 0 EET}
+ {1995400800 10800 1 EEST}
+ {2013454800 7200 0 EET}
+ {2027455200 10800 1 EEST}
+ {2045509200 7200 0 EET}
+ {2058904800 10800 1 EEST}
+ {2076958800 7200 0 EET}
+ {2090354400 10800 1 EEST}
+ {2108408400 7200 0 EET}
+ {2121804000 10800 1 EEST}
+ {2139858000 7200 0 EET}
+ {2153253600 10800 1 EEST}
+ {2171307600 7200 0 EET}
+ {2184703200 10800 1 EEST}
+ {2202757200 7200 0 EET}
+ {2216757600 10800 1 EEST}
+ {2234811600 7200 0 EET}
+ {2248207200 10800 1 EEST}
+ {2266261200 7200 0 EET}
+ {2279656800 10800 1 EEST}
+ {2297710800 7200 0 EET}
+ {2311106400 10800 1 EEST}
+ {2329160400 7200 0 EET}
+ {2342556000 10800 1 EEST}
+ {2360610000 7200 0 EET}
+ {2374610400 10800 1 EEST}
+ {2392664400 7200 0 EET}
+ {2406060000 10800 1 EEST}
+ {2424114000 7200 0 EET}
+ {2437509600 10800 1 EEST}
+ {2455563600 7200 0 EET}
+ {2468959200 10800 1 EEST}
+ {2487013200 7200 0 EET}
+ {2500408800 10800 1 EEST}
+ {2518462800 7200 0 EET}
+ {2531858400 10800 1 EEST}
+ {2549912400 7200 0 EET}
+ {2563912800 10800 1 EEST}
+ {2581966800 7200 0 EET}
+ {2595362400 10800 1 EEST}
+ {2613416400 7200 0 EET}
+ {2626812000 10800 1 EEST}
+ {2644866000 7200 0 EET}
+ {2658261600 10800 1 EEST}
+ {2676315600 7200 0 EET}
+ {2689711200 10800 1 EEST}
+ {2707765200 7200 0 EET}
+ {2721765600 10800 1 EEST}
+ {2739819600 7200 0 EET}
+ {2753215200 10800 1 EEST}
+ {2771269200 7200 0 EET}
+ {2784664800 10800 1 EEST}
+ {2802718800 7200 0 EET}
+ {2816114400 10800 1 EEST}
+ {2834168400 7200 0 EET}
+ {2847564000 10800 1 EEST}
+ {2865618000 7200 0 EET}
+ {2879013600 10800 1 EEST}
+ {2897067600 7200 0 EET}
+ {2911068000 10800 1 EEST}
+ {2929122000 7200 0 EET}
+ {2942517600 10800 1 EEST}
+ {2960571600 7200 0 EET}
+ {2973967200 10800 1 EEST}
+ {2992021200 7200 0 EET}
+ {3005416800 10800 1 EEST}
+ {3023470800 7200 0 EET}
+ {3036866400 10800 1 EEST}
+ {3054920400 7200 0 EET}
+ {3068316000 10800 1 EEST}
+ {3086370000 7200 0 EET}
+ {3100370400 10800 1 EEST}
+ {3118424400 7200 0 EET}
+ {3131820000 10800 1 EEST}
+ {3149874000 7200 0 EET}
+ {3163269600 10800 1 EEST}
+ {3181323600 7200 0 EET}
+ {3194719200 10800 1 EEST}
+ {3212773200 7200 0 EET}
+ {3226168800 10800 1 EEST}
+ {3244222800 7200 0 EET}
+ {3258223200 10800 1 EEST}
+ {3276277200 7200 0 EET}
+ {3289672800 10800 1 EEST}
+ {3307726800 7200 0 EET}
+ {3321122400 10800 1 EEST}
+ {3339176400 7200 0 EET}
+ {3352572000 10800 1 EEST}
+ {3370626000 7200 0 EET}
+ {3384021600 10800 1 EEST}
+ {3402075600 7200 0 EET}
+ {3415471200 10800 1 EEST}
+ {3433525200 7200 0 EET}
+ {3447525600 10800 1 EEST}
+ {3465579600 7200 0 EET}
+ {3478975200 10800 1 EEST}
+ {3497029200 7200 0 EET}
+ {3510424800 10800 1 EEST}
+ {3528478800 7200 0 EET}
+ {3541874400 10800 1 EEST}
+ {3559928400 7200 0 EET}
+ {3573324000 10800 1 EEST}
+ {3591378000 7200 0 EET}
+ {3605378400 10800 1 EEST}
+ {3623432400 7200 0 EET}
+ {3636828000 10800 1 EEST}
+ {3654882000 7200 0 EET}
+ {3668277600 10800 1 EEST}
+ {3686331600 7200 0 EET}
+ {3699727200 10800 1 EEST}
+ {3717781200 7200 0 EET}
+ {3731176800 10800 1 EEST}
+ {3749230800 7200 0 EET}
+ {3762626400 10800 1 EEST}
+ {3780680400 7200 0 EET}
+ {3794680800 10800 1 EEST}
+ {3812734800 7200 0 EET}
+ {3826130400 10800 1 EEST}
+ {3844184400 7200 0 EET}
+ {3857580000 10800 1 EEST}
+ {3875634000 7200 0 EET}
+ {3889029600 10800 1 EEST}
+ {3907083600 7200 0 EET}
+ {3920479200 10800 1 EEST}
+ {3938533200 7200 0 EET}
+ {3951928800 10800 1 EEST}
+ {3969982800 7200 0 EET}
+ {3983983200 10800 1 EEST}
+ {4002037200 7200 0 EET}
+ {4015432800 10800 1 EEST}
+ {4033486800 7200 0 EET}
+ {4046882400 10800 1 EEST}
+ {4064936400 7200 0 EET}
+ {4078332000 10800 1 EEST}
+ {4096386000 7200 0 EET}
}
diff --git a/library/tzdata/Asia/Harbin b/library/tzdata/Asia/Harbin
index 0eb0c12..dfcb549 100644
--- a/library/tzdata/Asia/Harbin
+++ b/library/tzdata/Asia/Harbin
@@ -1,22 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Harbin) {
- {-9223372036854775808 30404 0 LMT}
- {-1325492804 30600 0 CHAT}
- {-1194078600 28800 0 CST}
- {-946800000 32400 0 CHAT}
- {-115894800 30600 0 CHAT}
- {325956600 28800 0 CST}
- {515520000 32400 1 CDT}
- {527007600 28800 0 CST}
- {545155200 32400 1 CDT}
- {558457200 28800 0 CST}
- {576604800 32400 1 CDT}
- {589906800 28800 0 CST}
- {608659200 32400 1 CDT}
- {621961200 28800 0 CST}
- {640108800 32400 1 CDT}
- {653410800 28800 0 CST}
- {671558400 32400 1 CDT}
- {684860400 28800 0 CST}
+if {![info exists TZData(Asia/Shanghai)]} {
+ LoadTimeZoneFile Asia/Shanghai
}
+set TZData(:Asia/Harbin) $TZData(:Asia/Shanghai)
diff --git a/library/tzdata/Asia/Hebron b/library/tzdata/Asia/Hebron
index 1333d5a..9049d93 100644
--- a/library/tzdata/Asia/Hebron
+++ b/library/tzdata/Asia/Hebron
@@ -46,8 +46,8 @@ set TZData(:Asia/Hebron) {
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
{558478800 7200 0 IST}
- {576540000 10800 1 IDT}
- {589237200 7200 0 IST}
+ {576626400 10800 1 IDT}
+ {589323600 7200 0 IST}
{609890400 10800 1 IDT}
{620773200 7200 0 IST}
{638316000 10800 1 IDT}
@@ -103,175 +103,175 @@ set TZData(:Asia/Hebron) {
{1364508000 10800 1 EEST}
{1380229200 7200 0 EET}
{1395957600 10800 1 EEST}
- {1411678800 7200 0 EET}
- {1427407200 10800 1 EEST}
- {1443128400 7200 0 EET}
- {1459461600 10800 1 EEST}
- {1474578000 7200 0 EET}
- {1490911200 10800 1 EEST}
- {1506027600 7200 0 EET}
- {1522360800 10800 1 EEST}
- {1537477200 7200 0 EET}
- {1553810400 10800 1 EEST}
- {1569531600 7200 0 EET}
- {1585260000 10800 1 EEST}
- {1600981200 7200 0 EET}
- {1616709600 10800 1 EEST}
- {1632430800 7200 0 EET}
- {1648764000 10800 1 EEST}
- {1663880400 7200 0 EET}
- {1680213600 10800 1 EEST}
- {1695330000 7200 0 EET}
- {1711663200 10800 1 EEST}
- {1727384400 7200 0 EET}
- {1743112800 10800 1 EEST}
- {1758834000 7200 0 EET}
- {1774562400 10800 1 EEST}
- {1790283600 7200 0 EET}
- {1806012000 10800 1 EEST}
- {1821733200 7200 0 EET}
- {1838066400 10800 1 EEST}
- {1853182800 7200 0 EET}
- {1869516000 10800 1 EEST}
- {1884632400 7200 0 EET}
- {1900965600 10800 1 EEST}
- {1916686800 7200 0 EET}
- {1932415200 10800 1 EEST}
- {1948136400 7200 0 EET}
- {1963864800 10800 1 EEST}
- {1979586000 7200 0 EET}
- {1995919200 10800 1 EEST}
- {2011035600 7200 0 EET}
- {2027368800 10800 1 EEST}
- {2042485200 7200 0 EET}
- {2058818400 10800 1 EEST}
- {2073934800 7200 0 EET}
- {2090268000 10800 1 EEST}
- {2105989200 7200 0 EET}
- {2121717600 10800 1 EEST}
- {2137438800 7200 0 EET}
- {2153167200 10800 1 EEST}
- {2168888400 7200 0 EET}
- {2185221600 10800 1 EEST}
- {2200338000 7200 0 EET}
- {2216671200 10800 1 EEST}
- {2231787600 7200 0 EET}
- {2248120800 10800 1 EEST}
- {2263842000 7200 0 EET}
- {2279570400 10800 1 EEST}
- {2295291600 7200 0 EET}
- {2311020000 10800 1 EEST}
- {2326741200 7200 0 EET}
- {2343074400 10800 1 EEST}
- {2358190800 7200 0 EET}
- {2374524000 10800 1 EEST}
- {2389640400 7200 0 EET}
- {2405973600 10800 1 EEST}
- {2421090000 7200 0 EET}
- {2437423200 10800 1 EEST}
- {2453144400 7200 0 EET}
- {2468872800 10800 1 EEST}
- {2484594000 7200 0 EET}
- {2500322400 10800 1 EEST}
- {2516043600 7200 0 EET}
- {2532376800 10800 1 EEST}
- {2547493200 7200 0 EET}
- {2563826400 10800 1 EEST}
- {2578942800 7200 0 EET}
- {2595276000 10800 1 EEST}
- {2610997200 7200 0 EET}
- {2626725600 10800 1 EEST}
- {2642446800 7200 0 EET}
- {2658175200 10800 1 EEST}
- {2673896400 7200 0 EET}
- {2689624800 10800 1 EEST}
- {2705346000 7200 0 EET}
- {2721679200 10800 1 EEST}
- {2736795600 7200 0 EET}
- {2753128800 10800 1 EEST}
- {2768245200 7200 0 EET}
- {2784578400 10800 1 EEST}
- {2800299600 7200 0 EET}
- {2816028000 10800 1 EEST}
- {2831749200 7200 0 EET}
- {2847477600 10800 1 EEST}
- {2863198800 7200 0 EET}
- {2879532000 10800 1 EEST}
- {2894648400 7200 0 EET}
- {2910981600 10800 1 EEST}
- {2926098000 7200 0 EET}
- {2942431200 10800 1 EEST}
- {2957547600 7200 0 EET}
- {2973880800 10800 1 EEST}
- {2989602000 7200 0 EET}
- {3005330400 10800 1 EEST}
- {3021051600 7200 0 EET}
- {3036780000 10800 1 EEST}
- {3052501200 7200 0 EET}
- {3068834400 10800 1 EEST}
- {3083950800 7200 0 EET}
- {3100284000 10800 1 EEST}
- {3115400400 7200 0 EET}
- {3131733600 10800 1 EEST}
- {3147454800 7200 0 EET}
- {3163183200 10800 1 EEST}
- {3178904400 7200 0 EET}
- {3194632800 10800 1 EEST}
- {3210354000 7200 0 EET}
- {3226687200 10800 1 EEST}
- {3241803600 7200 0 EET}
- {3258136800 10800 1 EEST}
- {3273253200 7200 0 EET}
- {3289586400 10800 1 EEST}
- {3304702800 7200 0 EET}
- {3321036000 10800 1 EEST}
- {3336757200 7200 0 EET}
- {3352485600 10800 1 EEST}
- {3368206800 7200 0 EET}
- {3383935200 10800 1 EEST}
- {3399656400 7200 0 EET}
- {3415989600 10800 1 EEST}
- {3431106000 7200 0 EET}
- {3447439200 10800 1 EEST}
- {3462555600 7200 0 EET}
- {3478888800 10800 1 EEST}
- {3494610000 7200 0 EET}
- {3510338400 10800 1 EEST}
- {3526059600 7200 0 EET}
- {3541788000 10800 1 EEST}
- {3557509200 7200 0 EET}
- {3573237600 10800 1 EEST}
- {3588958800 7200 0 EET}
- {3605292000 10800 1 EEST}
- {3620408400 7200 0 EET}
- {3636741600 10800 1 EEST}
- {3651858000 7200 0 EET}
- {3668191200 10800 1 EEST}
- {3683912400 7200 0 EET}
- {3699640800 10800 1 EEST}
- {3715362000 7200 0 EET}
- {3731090400 10800 1 EEST}
- {3746811600 7200 0 EET}
- {3763144800 10800 1 EEST}
- {3778261200 7200 0 EET}
- {3794594400 10800 1 EEST}
- {3809710800 7200 0 EET}
- {3826044000 10800 1 EEST}
- {3841160400 7200 0 EET}
- {3857493600 10800 1 EEST}
- {3873214800 7200 0 EET}
- {3888943200 10800 1 EEST}
- {3904664400 7200 0 EET}
- {3920392800 10800 1 EEST}
- {3936114000 7200 0 EET}
- {3952447200 10800 1 EEST}
- {3967563600 7200 0 EET}
- {3983896800 10800 1 EEST}
- {3999013200 7200 0 EET}
- {4015346400 10800 1 EEST}
- {4031067600 7200 0 EET}
- {4046796000 10800 1 EEST}
- {4062517200 7200 0 EET}
- {4078245600 10800 1 EEST}
- {4093966800 7200 0 EET}
+ {1414098000 7200 0 EET}
+ {1427493600 10800 1 EEST}
+ {1445547600 7200 0 EET}
+ {1458943200 10800 1 EEST}
+ {1476997200 7200 0 EET}
+ {1490997600 10800 1 EEST}
+ {1509051600 7200 0 EET}
+ {1522447200 10800 1 EEST}
+ {1540501200 7200 0 EET}
+ {1553896800 10800 1 EEST}
+ {1571950800 7200 0 EET}
+ {1585346400 10800 1 EEST}
+ {1603400400 7200 0 EET}
+ {1616796000 10800 1 EEST}
+ {1634850000 7200 0 EET}
+ {1648245600 10800 1 EEST}
+ {1666299600 7200 0 EET}
+ {1680300000 10800 1 EEST}
+ {1698354000 7200 0 EET}
+ {1711749600 10800 1 EEST}
+ {1729803600 7200 0 EET}
+ {1743199200 10800 1 EEST}
+ {1761253200 7200 0 EET}
+ {1774648800 10800 1 EEST}
+ {1792702800 7200 0 EET}
+ {1806098400 10800 1 EEST}
+ {1824152400 7200 0 EET}
+ {1838152800 10800 1 EEST}
+ {1856206800 7200 0 EET}
+ {1869602400 10800 1 EEST}
+ {1887656400 7200 0 EET}
+ {1901052000 10800 1 EEST}
+ {1919106000 7200 0 EET}
+ {1932501600 10800 1 EEST}
+ {1950555600 7200 0 EET}
+ {1963951200 10800 1 EEST}
+ {1982005200 7200 0 EET}
+ {1995400800 10800 1 EEST}
+ {2013454800 7200 0 EET}
+ {2027455200 10800 1 EEST}
+ {2045509200 7200 0 EET}
+ {2058904800 10800 1 EEST}
+ {2076958800 7200 0 EET}
+ {2090354400 10800 1 EEST}
+ {2108408400 7200 0 EET}
+ {2121804000 10800 1 EEST}
+ {2139858000 7200 0 EET}
+ {2153253600 10800 1 EEST}
+ {2171307600 7200 0 EET}
+ {2184703200 10800 1 EEST}
+ {2202757200 7200 0 EET}
+ {2216757600 10800 1 EEST}
+ {2234811600 7200 0 EET}
+ {2248207200 10800 1 EEST}
+ {2266261200 7200 0 EET}
+ {2279656800 10800 1 EEST}
+ {2297710800 7200 0 EET}
+ {2311106400 10800 1 EEST}
+ {2329160400 7200 0 EET}
+ {2342556000 10800 1 EEST}
+ {2360610000 7200 0 EET}
+ {2374610400 10800 1 EEST}
+ {2392664400 7200 0 EET}
+ {2406060000 10800 1 EEST}
+ {2424114000 7200 0 EET}
+ {2437509600 10800 1 EEST}
+ {2455563600 7200 0 EET}
+ {2468959200 10800 1 EEST}
+ {2487013200 7200 0 EET}
+ {2500408800 10800 1 EEST}
+ {2518462800 7200 0 EET}
+ {2531858400 10800 1 EEST}
+ {2549912400 7200 0 EET}
+ {2563912800 10800 1 EEST}
+ {2581966800 7200 0 EET}
+ {2595362400 10800 1 EEST}
+ {2613416400 7200 0 EET}
+ {2626812000 10800 1 EEST}
+ {2644866000 7200 0 EET}
+ {2658261600 10800 1 EEST}
+ {2676315600 7200 0 EET}
+ {2689711200 10800 1 EEST}
+ {2707765200 7200 0 EET}
+ {2721765600 10800 1 EEST}
+ {2739819600 7200 0 EET}
+ {2753215200 10800 1 EEST}
+ {2771269200 7200 0 EET}
+ {2784664800 10800 1 EEST}
+ {2802718800 7200 0 EET}
+ {2816114400 10800 1 EEST}
+ {2834168400 7200 0 EET}
+ {2847564000 10800 1 EEST}
+ {2865618000 7200 0 EET}
+ {2879013600 10800 1 EEST}
+ {2897067600 7200 0 EET}
+ {2911068000 10800 1 EEST}
+ {2929122000 7200 0 EET}
+ {2942517600 10800 1 EEST}
+ {2960571600 7200 0 EET}
+ {2973967200 10800 1 EEST}
+ {2992021200 7200 0 EET}
+ {3005416800 10800 1 EEST}
+ {3023470800 7200 0 EET}
+ {3036866400 10800 1 EEST}
+ {3054920400 7200 0 EET}
+ {3068316000 10800 1 EEST}
+ {3086370000 7200 0 EET}
+ {3100370400 10800 1 EEST}
+ {3118424400 7200 0 EET}
+ {3131820000 10800 1 EEST}
+ {3149874000 7200 0 EET}
+ {3163269600 10800 1 EEST}
+ {3181323600 7200 0 EET}
+ {3194719200 10800 1 EEST}
+ {3212773200 7200 0 EET}
+ {3226168800 10800 1 EEST}
+ {3244222800 7200 0 EET}
+ {3258223200 10800 1 EEST}
+ {3276277200 7200 0 EET}
+ {3289672800 10800 1 EEST}
+ {3307726800 7200 0 EET}
+ {3321122400 10800 1 EEST}
+ {3339176400 7200 0 EET}
+ {3352572000 10800 1 EEST}
+ {3370626000 7200 0 EET}
+ {3384021600 10800 1 EEST}
+ {3402075600 7200 0 EET}
+ {3415471200 10800 1 EEST}
+ {3433525200 7200 0 EET}
+ {3447525600 10800 1 EEST}
+ {3465579600 7200 0 EET}
+ {3478975200 10800 1 EEST}
+ {3497029200 7200 0 EET}
+ {3510424800 10800 1 EEST}
+ {3528478800 7200 0 EET}
+ {3541874400 10800 1 EEST}
+ {3559928400 7200 0 EET}
+ {3573324000 10800 1 EEST}
+ {3591378000 7200 0 EET}
+ {3605378400 10800 1 EEST}
+ {3623432400 7200 0 EET}
+ {3636828000 10800 1 EEST}
+ {3654882000 7200 0 EET}
+ {3668277600 10800 1 EEST}
+ {3686331600 7200 0 EET}
+ {3699727200 10800 1 EEST}
+ {3717781200 7200 0 EET}
+ {3731176800 10800 1 EEST}
+ {3749230800 7200 0 EET}
+ {3762626400 10800 1 EEST}
+ {3780680400 7200 0 EET}
+ {3794680800 10800 1 EEST}
+ {3812734800 7200 0 EET}
+ {3826130400 10800 1 EEST}
+ {3844184400 7200 0 EET}
+ {3857580000 10800 1 EEST}
+ {3875634000 7200 0 EET}
+ {3889029600 10800 1 EEST}
+ {3907083600 7200 0 EET}
+ {3920479200 10800 1 EEST}
+ {3938533200 7200 0 EET}
+ {3951928800 10800 1 EEST}
+ {3969982800 7200 0 EET}
+ {3983983200 10800 1 EEST}
+ {4002037200 7200 0 EET}
+ {4015432800 10800 1 EEST}
+ {4033486800 7200 0 EET}
+ {4046882400 10800 1 EEST}
+ {4064936400 7200 0 EET}
+ {4078332000 10800 1 EEST}
+ {4096386000 7200 0 EET}
}
diff --git a/library/tzdata/Asia/Ho_Chi_Minh b/library/tzdata/Asia/Ho_Chi_Minh
index 777c8db..9da89f4 100644
--- a/library/tzdata/Asia/Ho_Chi_Minh
+++ b/library/tzdata/Asia/Ho_Chi_Minh
@@ -2,8 +2,13 @@
set TZData(:Asia/Ho_Chi_Minh) {
{-9223372036854775808 25600 0 LMT}
- {-2005974400 25580 0 SMT}
- {-1855983920 25200 0 ICT}
- {-1819954800 28800 0 ICT}
- {-1220428800 25200 0 ICT}
+ {-2004073600 25590 0 PLMT}
+ {-1851577590 25200 0 ICT}
+ {-852105600 28800 0 IDT}
+ {-782643600 32400 0 JST}
+ {-767869200 25200 0 ICT}
+ {-718095600 28800 0 IDT}
+ {-457776000 25200 0 ICT}
+ {-315648000 28800 0 IDT}
+ {171820800 25200 0 ICT}
}
diff --git a/library/tzdata/Asia/Hovd b/library/tzdata/Asia/Hovd
index 2a87dab..3d200a6 100644
--- a/library/tzdata/Asia/Hovd
+++ b/library/tzdata/Asia/Hovd
@@ -48,4 +48,174 @@ set TZData(:Asia/Hovd) {
{1127498400 25200 0 HOVT}
{1143226800 28800 1 HOVST}
{1159552800 25200 0 HOVT}
+ {1427482800 28800 1 HOVST}
+ {1443196800 25200 0 HOVT}
+ {1458932400 28800 1 HOVST}
+ {1474646400 25200 0 HOVT}
+ {1490382000 28800 1 HOVST}
+ {1506700800 25200 0 HOVT}
+ {1522436400 28800 1 HOVST}
+ {1538150400 25200 0 HOVT}
+ {1553886000 28800 1 HOVST}
+ {1569600000 25200 0 HOVT}
+ {1585335600 28800 1 HOVST}
+ {1601049600 25200 0 HOVT}
+ {1616785200 28800 1 HOVST}
+ {1632499200 25200 0 HOVT}
+ {1648234800 28800 1 HOVST}
+ {1663948800 25200 0 HOVT}
+ {1679684400 28800 1 HOVST}
+ {1696003200 25200 0 HOVT}
+ {1711738800 28800 1 HOVST}
+ {1727452800 25200 0 HOVT}
+ {1743188400 28800 1 HOVST}
+ {1758902400 25200 0 HOVT}
+ {1774638000 28800 1 HOVST}
+ {1790352000 25200 0 HOVT}
+ {1806087600 28800 1 HOVST}
+ {1821801600 25200 0 HOVT}
+ {1837537200 28800 1 HOVST}
+ {1853856000 25200 0 HOVT}
+ {1869591600 28800 1 HOVST}
+ {1885305600 25200 0 HOVT}
+ {1901041200 28800 1 HOVST}
+ {1916755200 25200 0 HOVT}
+ {1932490800 28800 1 HOVST}
+ {1948204800 25200 0 HOVT}
+ {1963940400 28800 1 HOVST}
+ {1979654400 25200 0 HOVT}
+ {1995390000 28800 1 HOVST}
+ {2011104000 25200 0 HOVT}
+ {2026839600 28800 1 HOVST}
+ {2043158400 25200 0 HOVT}
+ {2058894000 28800 1 HOVST}
+ {2074608000 25200 0 HOVT}
+ {2090343600 28800 1 HOVST}
+ {2106057600 25200 0 HOVT}
+ {2121793200 28800 1 HOVST}
+ {2137507200 25200 0 HOVT}
+ {2153242800 28800 1 HOVST}
+ {2168956800 25200 0 HOVT}
+ {2184692400 28800 1 HOVST}
+ {2200406400 25200 0 HOVT}
+ {2216746800 28800 1 HOVST}
+ {2232460800 25200 0 HOVT}
+ {2248196400 28800 1 HOVST}
+ {2263910400 25200 0 HOVT}
+ {2279646000 28800 1 HOVST}
+ {2295360000 25200 0 HOVT}
+ {2311095600 28800 1 HOVST}
+ {2326809600 25200 0 HOVT}
+ {2342545200 28800 1 HOVST}
+ {2358259200 25200 0 HOVT}
+ {2373994800 28800 1 HOVST}
+ {2390313600 25200 0 HOVT}
+ {2406049200 28800 1 HOVST}
+ {2421763200 25200 0 HOVT}
+ {2437498800 28800 1 HOVST}
+ {2453212800 25200 0 HOVT}
+ {2468948400 28800 1 HOVST}
+ {2484662400 25200 0 HOVT}
+ {2500398000 28800 1 HOVST}
+ {2516112000 25200 0 HOVT}
+ {2531847600 28800 1 HOVST}
+ {2547561600 25200 0 HOVT}
+ {2563297200 28800 1 HOVST}
+ {2579616000 25200 0 HOVT}
+ {2595351600 28800 1 HOVST}
+ {2611065600 25200 0 HOVT}
+ {2626801200 28800 1 HOVST}
+ {2642515200 25200 0 HOVT}
+ {2658250800 28800 1 HOVST}
+ {2673964800 25200 0 HOVT}
+ {2689700400 28800 1 HOVST}
+ {2705414400 25200 0 HOVT}
+ {2721150000 28800 1 HOVST}
+ {2737468800 25200 0 HOVT}
+ {2753204400 28800 1 HOVST}
+ {2768918400 25200 0 HOVT}
+ {2784654000 28800 1 HOVST}
+ {2800368000 25200 0 HOVT}
+ {2816103600 28800 1 HOVST}
+ {2831817600 25200 0 HOVT}
+ {2847553200 28800 1 HOVST}
+ {2863267200 25200 0 HOVT}
+ {2879002800 28800 1 HOVST}
+ {2894716800 25200 0 HOVT}
+ {2910452400 28800 1 HOVST}
+ {2926771200 25200 0 HOVT}
+ {2942506800 28800 1 HOVST}
+ {2958220800 25200 0 HOVT}
+ {2973956400 28800 1 HOVST}
+ {2989670400 25200 0 HOVT}
+ {3005406000 28800 1 HOVST}
+ {3021120000 25200 0 HOVT}
+ {3036855600 28800 1 HOVST}
+ {3052569600 25200 0 HOVT}
+ {3068305200 28800 1 HOVST}
+ {3084019200 25200 0 HOVT}
+ {3100359600 28800 1 HOVST}
+ {3116073600 25200 0 HOVT}
+ {3131809200 28800 1 HOVST}
+ {3147523200 25200 0 HOVT}
+ {3163258800 28800 1 HOVST}
+ {3178972800 25200 0 HOVT}
+ {3194708400 28800 1 HOVST}
+ {3210422400 25200 0 HOVT}
+ {3226158000 28800 1 HOVST}
+ {3241872000 25200 0 HOVT}
+ {3257607600 28800 1 HOVST}
+ {3273926400 25200 0 HOVT}
+ {3289662000 28800 1 HOVST}
+ {3305376000 25200 0 HOVT}
+ {3321111600 28800 1 HOVST}
+ {3336825600 25200 0 HOVT}
+ {3352561200 28800 1 HOVST}
+ {3368275200 25200 0 HOVT}
+ {3384010800 28800 1 HOVST}
+ {3399724800 25200 0 HOVT}
+ {3415460400 28800 1 HOVST}
+ {3431174400 25200 0 HOVT}
+ {3446910000 28800 1 HOVST}
+ {3463228800 25200 0 HOVT}
+ {3478964400 28800 1 HOVST}
+ {3494678400 25200 0 HOVT}
+ {3510414000 28800 1 HOVST}
+ {3526128000 25200 0 HOVT}
+ {3541863600 28800 1 HOVST}
+ {3557577600 25200 0 HOVT}
+ {3573313200 28800 1 HOVST}
+ {3589027200 25200 0 HOVT}
+ {3604762800 28800 1 HOVST}
+ {3621081600 25200 0 HOVT}
+ {3636817200 28800 1 HOVST}
+ {3652531200 25200 0 HOVT}
+ {3668266800 28800 1 HOVST}
+ {3683980800 25200 0 HOVT}
+ {3699716400 28800 1 HOVST}
+ {3715430400 25200 0 HOVT}
+ {3731166000 28800 1 HOVST}
+ {3746880000 25200 0 HOVT}
+ {3762615600 28800 1 HOVST}
+ {3778329600 25200 0 HOVT}
+ {3794065200 28800 1 HOVST}
+ {3810384000 25200 0 HOVT}
+ {3826119600 28800 1 HOVST}
+ {3841833600 25200 0 HOVT}
+ {3857569200 28800 1 HOVST}
+ {3873283200 25200 0 HOVT}
+ {3889018800 28800 1 HOVST}
+ {3904732800 25200 0 HOVT}
+ {3920468400 28800 1 HOVST}
+ {3936182400 25200 0 HOVT}
+ {3951918000 28800 1 HOVST}
+ {3967632000 25200 0 HOVT}
+ {3983972400 28800 1 HOVST}
+ {3999686400 25200 0 HOVT}
+ {4015422000 28800 1 HOVST}
+ {4031136000 25200 0 HOVT}
+ {4046871600 28800 1 HOVST}
+ {4062585600 25200 0 HOVT}
+ {4078321200 28800 1 HOVST}
+ {4094035200 25200 0 HOVT}
}
diff --git a/library/tzdata/Asia/Irkutsk b/library/tzdata/Asia/Irkutsk
index bca1dcc..08e5798 100644
--- a/library/tzdata/Asia/Irkutsk
+++ b/library/tzdata/Asia/Irkutsk
@@ -1,9 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Irkutsk) {
- {-9223372036854775808 25040 0 LMT}
- {-2840165840 25040 0 IMT}
- {-1575874640 25200 0 IRKT}
+ {-9223372036854775808 25025 0 LMT}
+ {-2840165825 25025 0 IMT}
+ {-1575874625 25200 0 IRKT}
{-1247554800 28800 0 IRKMMTT}
{354902400 32400 1 IRKST}
{370710000 28800 0 IRKT}
@@ -68,4 +68,5 @@ set TZData(:Asia/Irkutsk) {
{1269712800 32400 1 IRKST}
{1288461600 28800 0 IRKT}
{1301162400 32400 0 IRKT}
+ {1414256400 28800 0 IRKT}
}
diff --git a/library/tzdata/Asia/Jayapura b/library/tzdata/Asia/Jayapura
index a71228f..f3a4c44 100644
--- a/library/tzdata/Asia/Jayapura
+++ b/library/tzdata/Asia/Jayapura
@@ -3,6 +3,6 @@
set TZData(:Asia/Jayapura) {
{-9223372036854775808 33768 0 LMT}
{-1172913768 32400 0 WIT}
- {-799491600 34200 0 CST}
+ {-799491600 34200 0 ACST}
{-189423000 32400 0 WIT}
}
diff --git a/library/tzdata/Asia/Jerusalem b/library/tzdata/Asia/Jerusalem
index 7662680..2714963 100644
--- a/library/tzdata/Asia/Jerusalem
+++ b/library/tzdata/Asia/Jerusalem
@@ -45,8 +45,8 @@ set TZData(:Asia/Jerusalem) {
{526424400 7200 0 IST}
{545436000 10800 1 IDT}
{558478800 7200 0 IST}
- {576540000 10800 1 IDT}
- {589237200 7200 0 IST}
+ {576626400 10800 1 IDT}
+ {589323600 7200 0 IST}
{609890400 10800 1 IDT}
{620773200 7200 0 IST}
{638316000 10800 1 IDT}
diff --git a/library/tzdata/Asia/Kashgar b/library/tzdata/Asia/Kashgar
index 2f64f42..f67cbf1 100644
--- a/library/tzdata/Asia/Kashgar
+++ b/library/tzdata/Asia/Kashgar
@@ -1,20 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Kashgar) {
- {-9223372036854775808 18236 0 LMT}
- {-1325480636 19800 0 KAST}
- {-946791000 18000 0 KAST}
- {325969200 28800 0 CST}
- {515520000 32400 1 CDT}
- {527007600 28800 0 CST}
- {545155200 32400 1 CDT}
- {558457200 28800 0 CST}
- {576604800 32400 1 CDT}
- {589906800 28800 0 CST}
- {608659200 32400 1 CDT}
- {621961200 28800 0 CST}
- {640108800 32400 1 CDT}
- {653410800 28800 0 CST}
- {671558400 32400 1 CDT}
- {684860400 28800 0 CST}
+if {![info exists TZData(Asia/Urumqi)]} {
+ LoadTimeZoneFile Asia/Urumqi
}
+set TZData(:Asia/Kashgar) $TZData(:Asia/Urumqi)
diff --git a/library/tzdata/Asia/Khandyga b/library/tzdata/Asia/Khandyga
index 2464b9f..b2dc97a 100644
--- a/library/tzdata/Asia/Khandyga
+++ b/library/tzdata/Asia/Khandyga
@@ -69,4 +69,5 @@ set TZData(:Asia/Khandyga) {
{1288454400 36000 0 VLAT}
{1301155200 39600 0 VLAT}
{1315832400 36000 0 YAKT}
+ {1414252800 32400 0 YAKT}
}
diff --git a/library/tzdata/Asia/Krasnoyarsk b/library/tzdata/Asia/Krasnoyarsk
index 13dfeb5..17ea6c0 100644
--- a/library/tzdata/Asia/Krasnoyarsk
+++ b/library/tzdata/Asia/Krasnoyarsk
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Krasnoyarsk) {
- {-9223372036854775808 22280 0 LMT}
- {-1577513480 21600 0 KRAT}
+ {-9223372036854775808 22286 0 LMT}
+ {-1577513486 21600 0 KRAT}
{-1247551200 25200 0 KRAMMTT}
{354906000 28800 1 KRAST}
{370713600 25200 0 KRAT}
@@ -67,4 +67,5 @@ set TZData(:Asia/Krasnoyarsk) {
{1269716400 28800 1 KRAST}
{1288465200 25200 0 KRAT}
{1301166000 28800 0 KRAT}
+ {1414260000 25200 0 KRAT}
}
diff --git a/library/tzdata/Asia/Kuwait b/library/tzdata/Asia/Kuwait
index 15d26db..e618c56 100644
--- a/library/tzdata/Asia/Kuwait
+++ b/library/tzdata/Asia/Kuwait
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Kuwait) {
- {-9223372036854775808 11516 0 LMT}
- {-631163516 10800 0 AST}
+if {![info exists TZData(Asia/Riyadh)]} {
+ LoadTimeZoneFile Asia/Riyadh
}
+set TZData(:Asia/Kuwait) $TZData(:Asia/Riyadh)
diff --git a/library/tzdata/Asia/Magadan b/library/tzdata/Asia/Magadan
index 62e01c5..bf796a7 100644
--- a/library/tzdata/Asia/Magadan
+++ b/library/tzdata/Asia/Magadan
@@ -67,4 +67,5 @@ set TZData(:Asia/Magadan) {
{1269702000 43200 1 MAGST}
{1288450800 39600 0 MAGT}
{1301151600 43200 0 MAGT}
+ {1414245600 36000 0 MAGT}
}
diff --git a/library/tzdata/Asia/Muscat b/library/tzdata/Asia/Muscat
index a69b880..fdd34c1 100644
--- a/library/tzdata/Asia/Muscat
+++ b/library/tzdata/Asia/Muscat
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Muscat) {
- {-9223372036854775808 14064 0 LMT}
- {-1577937264 14400 0 GST}
+if {![info exists TZData(Asia/Dubai)]} {
+ LoadTimeZoneFile Asia/Dubai
}
+set TZData(:Asia/Muscat) $TZData(:Asia/Dubai)
diff --git a/library/tzdata/Asia/Novokuznetsk b/library/tzdata/Asia/Novokuznetsk
index 9cd45c0..ab3c2d5 100644
--- a/library/tzdata/Asia/Novokuznetsk
+++ b/library/tzdata/Asia/Novokuznetsk
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Novokuznetsk) {
- {-9223372036854775808 20928 0 NMT}
- {-1577512128 21600 0 KRAT}
+ {-9223372036854775808 20928 0 LMT}
+ {-1441259328 21600 0 KRAT}
{-1247551200 25200 0 KRAMMTT}
{354906000 28800 1 KRAST}
{370713600 25200 0 KRAT}
@@ -68,4 +68,5 @@ set TZData(:Asia/Novokuznetsk) {
{1269720000 25200 1 NOVST}
{1288468800 21600 0 NOVT}
{1301169600 25200 0 NOVT}
+ {1414263600 25200 0 KRAT}
}
diff --git a/library/tzdata/Asia/Novosibirsk b/library/tzdata/Asia/Novosibirsk
index 5032eec..7227780 100644
--- a/library/tzdata/Asia/Novosibirsk
+++ b/library/tzdata/Asia/Novosibirsk
@@ -68,4 +68,5 @@ set TZData(:Asia/Novosibirsk) {
{1269720000 25200 1 NOVST}
{1288468800 21600 0 NOVT}
{1301169600 25200 0 NOVT}
+ {1414263600 21600 0 NOVT}
}
diff --git a/library/tzdata/Asia/Omsk b/library/tzdata/Asia/Omsk
index ca90d2e..f25b8d4 100644
--- a/library/tzdata/Asia/Omsk
+++ b/library/tzdata/Asia/Omsk
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Omsk) {
- {-9223372036854775808 17616 0 LMT}
- {-1582088016 18000 0 OMST}
+ {-9223372036854775808 17610 0 LMT}
+ {-1582088010 18000 0 OMST}
{-1247547600 21600 0 OMSMMTT}
{354909600 25200 1 OMSST}
{370717200 21600 0 OMST}
@@ -67,4 +67,5 @@ set TZData(:Asia/Omsk) {
{1269720000 25200 1 OMSST}
{1288468800 21600 0 OMST}
{1301169600 25200 0 OMST}
+ {1414263600 21600 0 OMST}
}
diff --git a/library/tzdata/Asia/Phnom_Penh b/library/tzdata/Asia/Phnom_Penh
index 4f28420..114c786 100644
--- a/library/tzdata/Asia/Phnom_Penh
+++ b/library/tzdata/Asia/Phnom_Penh
@@ -1,9 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Phnom_Penh) {
- {-9223372036854775808 25180 0 LMT}
- {-2005973980 25580 0 SMT}
- {-1855983920 25200 0 ICT}
- {-1819954800 28800 0 ICT}
- {-1220428800 25200 0 ICT}
+if {![info exists TZData(Asia/Bangkok)]} {
+ LoadTimeZoneFile Asia/Bangkok
}
+set TZData(:Asia/Phnom_Penh) $TZData(:Asia/Bangkok)
diff --git a/library/tzdata/Asia/Pyongyang b/library/tzdata/Asia/Pyongyang
index 21c9a68..fafed54 100644
--- a/library/tzdata/Asia/Pyongyang
+++ b/library/tzdata/Asia/Pyongyang
@@ -2,10 +2,8 @@
set TZData(:Asia/Pyongyang) {
{-9223372036854775808 30180 0 LMT}
- {-2524551780 30600 0 KST}
- {-2053931400 32400 0 KST}
- {-1325494800 30600 0 KST}
- {-1199262600 32400 0 KST}
- {-498128400 28800 0 KST}
- {-264931200 32400 0 KST}
+ {-1948782180 30600 0 KST}
+ {-1830414600 32400 0 JCST}
+ {-1017824400 32400 0 JST}
+ {-768646800 32400 0 KST}
}
diff --git a/library/tzdata/Asia/Riyadh b/library/tzdata/Asia/Riyadh
index 0ef28a9..12c9e24 100644
--- a/library/tzdata/Asia/Riyadh
+++ b/library/tzdata/Asia/Riyadh
@@ -2,5 +2,5 @@
set TZData(:Asia/Riyadh) {
{-9223372036854775808 11212 0 LMT}
- {-631163212 10800 0 AST}
+ {-719636812 10800 0 AST}
}
diff --git a/library/tzdata/Asia/Sakhalin b/library/tzdata/Asia/Sakhalin
index 0b29e82..eed20ba 100644
--- a/library/tzdata/Asia/Sakhalin
+++ b/library/tzdata/Asia/Sakhalin
@@ -2,8 +2,8 @@
set TZData(:Asia/Sakhalin) {
{-9223372036854775808 34248 0 LMT}
- {-2031039048 32400 0 CJT}
- {-1009875600 32400 0 JST}
+ {-2031039048 32400 0 JCST}
+ {-1017824400 32400 0 JST}
{-768560400 39600 0 SAKMMTT}
{354891600 43200 1 SAKST}
{370699200 39600 0 SAKT}
@@ -69,4 +69,5 @@ set TZData(:Asia/Sakhalin) {
{1269705600 39600 1 SAKST}
{1288454400 36000 0 SAKT}
{1301155200 39600 0 SAKT}
+ {1414249200 36000 0 SAKT}
}
diff --git a/library/tzdata/Asia/Samarkand b/library/tzdata/Asia/Samarkand
index 6a1be11..4b3b49f 100644
--- a/library/tzdata/Asia/Samarkand
+++ b/library/tzdata/Asia/Samarkand
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Samarkand) {
- {-9223372036854775808 16032 0 LMT}
- {-1441168032 14400 0 SAMT}
+ {-9223372036854775808 16073 0 LMT}
+ {-1441168073 14400 0 SAMT}
{-1247544000 18000 0 SAMT}
{354913200 21600 1 SAMST}
{370720800 21600 0 TAST}
diff --git a/library/tzdata/Asia/Seoul b/library/tzdata/Asia/Seoul
index 9c83e30..c24a1d8 100644
--- a/library/tzdata/Asia/Seoul
+++ b/library/tzdata/Asia/Seoul
@@ -2,17 +2,26 @@
set TZData(:Asia/Seoul) {
{-9223372036854775808 30472 0 LMT}
- {-2524552072 30600 0 KST}
- {-2053931400 32400 0 KST}
- {-1325494800 30600 0 KST}
- {-1199262600 32400 0 KST}
- {-498128400 28800 0 KST}
- {-303984000 32400 1 KDT}
- {-293533200 28800 0 KST}
- {-264931200 30600 0 KST}
- {-39515400 32400 0 KST}
- {547570800 36000 1 KDT}
- {560872800 32400 0 KST}
- {579020400 36000 1 KDT}
- {592322400 32400 0 KST}
+ {-1948782472 30600 0 KST}
+ {-1830414600 32400 0 JCST}
+ {-1017824400 32400 0 JST}
+ {-767350800 32400 0 KST}
+ {-498128400 30600 0 KST}
+ {-462702600 34200 1 KDT}
+ {-451733400 30600 0 KST}
+ {-429784200 34200 1 KDT}
+ {-418296600 30600 0 KST}
+ {-399544200 34200 1 KDT}
+ {-387451800 30600 0 KST}
+ {-368094600 34200 1 KDT}
+ {-356002200 30600 0 KST}
+ {-336645000 34200 1 KDT}
+ {-324552600 30600 0 KST}
+ {-305195400 34200 1 KDT}
+ {-293103000 30600 0 KST}
+ {-264933000 32400 0 KST}
+ {547578000 36000 1 KDT}
+ {560883600 32400 0 KST}
+ {579027600 36000 1 KDT}
+ {592333200 32400 0 KST}
}
diff --git a/library/tzdata/Asia/Shanghai b/library/tzdata/Asia/Shanghai
index 4b3cc3b..ff2d2b5 100644
--- a/library/tzdata/Asia/Shanghai
+++ b/library/tzdata/Asia/Shanghai
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Shanghai) {
- {-9223372036854775808 29157 0 LMT}
- {-1325491557 28800 0 CST}
+ {-9223372036854775808 29143 0 LMT}
+ {-2177481943 28800 0 CST}
{-933494400 32400 1 CDT}
{-923130000 28800 0 CST}
{-908784000 32400 1 CDT}
diff --git a/library/tzdata/Asia/Srednekolymsk b/library/tzdata/Asia/Srednekolymsk
new file mode 100644
index 0000000..d1dd879
--- /dev/null
+++ b/library/tzdata/Asia/Srednekolymsk
@@ -0,0 +1,71 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Asia/Srednekolymsk) {
+ {-9223372036854775808 36892 0 LMT}
+ {-1441188892 36000 0 MAGT}
+ {-1247565600 39600 0 MAGMMTT}
+ {354891600 43200 1 MAGST}
+ {370699200 39600 0 MAGT}
+ {386427600 43200 1 MAGST}
+ {402235200 39600 0 MAGT}
+ {417963600 43200 1 MAGST}
+ {433771200 39600 0 MAGT}
+ {449586000 43200 1 MAGST}
+ {465318000 39600 0 MAGT}
+ {481042800 43200 1 MAGST}
+ {496767600 39600 0 MAGT}
+ {512492400 43200 1 MAGST}
+ {528217200 39600 0 MAGT}
+ {543942000 43200 1 MAGST}
+ {559666800 39600 0 MAGT}
+ {575391600 43200 1 MAGST}
+ {591116400 39600 0 MAGT}
+ {606841200 43200 1 MAGST}
+ {622566000 39600 0 MAGT}
+ {638290800 43200 1 MAGST}
+ {654620400 39600 0 MAGT}
+ {670345200 36000 0 MAGMMTT}
+ {670348800 39600 1 MAGST}
+ {686073600 36000 0 MAGT}
+ {695750400 39600 0 MAGMMTT}
+ {701784000 43200 1 MAGST}
+ {717505200 39600 0 MAGT}
+ {733244400 43200 1 MAGST}
+ {748969200 39600 0 MAGT}
+ {764694000 43200 1 MAGST}
+ {780418800 39600 0 MAGT}
+ {796143600 43200 1 MAGST}
+ {811868400 39600 0 MAGT}
+ {828198000 43200 1 MAGST}
+ {846342000 39600 0 MAGT}
+ {859647600 43200 1 MAGST}
+ {877791600 39600 0 MAGT}
+ {891097200 43200 1 MAGST}
+ {909241200 39600 0 MAGT}
+ {922546800 43200 1 MAGST}
+ {941295600 39600 0 MAGT}
+ {953996400 43200 1 MAGST}
+ {972745200 39600 0 MAGT}
+ {985446000 43200 1 MAGST}
+ {1004194800 39600 0 MAGT}
+ {1017500400 43200 1 MAGST}
+ {1035644400 39600 0 MAGT}
+ {1048950000 43200 1 MAGST}
+ {1067094000 39600 0 MAGT}
+ {1080399600 43200 1 MAGST}
+ {1099148400 39600 0 MAGT}
+ {1111849200 43200 1 MAGST}
+ {1130598000 39600 0 MAGT}
+ {1143298800 43200 1 MAGST}
+ {1162047600 39600 0 MAGT}
+ {1174748400 43200 1 MAGST}
+ {1193497200 39600 0 MAGT}
+ {1206802800 43200 1 MAGST}
+ {1224946800 39600 0 MAGT}
+ {1238252400 43200 1 MAGST}
+ {1256396400 39600 0 MAGT}
+ {1269702000 43200 1 MAGST}
+ {1288450800 39600 0 MAGT}
+ {1301151600 43200 0 MAGT}
+ {1414245600 39600 0 SRET}
+}
diff --git a/library/tzdata/Asia/Taipei b/library/tzdata/Asia/Taipei
index a3c7ecf..61c77ef 100644
--- a/library/tzdata/Asia/Taipei
+++ b/library/tzdata/Asia/Taipei
@@ -2,13 +2,13 @@
set TZData(:Asia/Taipei) {
{-9223372036854775808 29160 0 LMT}
- {-2335248360 28800 0 CST}
- {-778579200 32400 1 CDT}
- {-765363600 28800 0 CST}
- {-747043200 32400 1 CDT}
+ {-2335248360 28800 0 JWST}
+ {-1017820800 32400 0 JST}
+ {-766224000 28800 0 CST}
+ {-745833600 32400 1 CDT}
{-733827600 28800 0 CST}
- {-715507200 32400 1 CDT}
- {-702291600 28800 0 CST}
+ {-716889600 32400 1 CDT}
+ {-699613200 28800 0 CST}
{-683884800 32400 1 CDT}
{-670669200 28800 0 CST}
{-652348800 32400 1 CDT}
@@ -41,6 +41,6 @@ set TZData(:Asia/Taipei) {
{149785200 28800 0 CST}
{165513600 32400 1 CDT}
{181321200 28800 0 CST}
- {299520000 32400 1 CDT}
- {307465200 28800 0 CST}
+ {299606400 32400 1 CDT}
+ {307551600 28800 0 CST}
}
diff --git a/library/tzdata/Asia/Tashkent b/library/tzdata/Asia/Tashkent
index fcee755..1477376 100644
--- a/library/tzdata/Asia/Tashkent
+++ b/library/tzdata/Asia/Tashkent
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Tashkent) {
- {-9223372036854775808 16632 0 LMT}
- {-1441168632 18000 0 TAST}
+ {-9223372036854775808 16631 0 LMT}
+ {-1441168631 18000 0 TAST}
{-1247547600 21600 0 TAST}
{354909600 25200 1 TASST}
{370717200 21600 0 TAST}
diff --git a/library/tzdata/Asia/Tbilisi b/library/tzdata/Asia/Tbilisi
index a716917..54b278a 100644
--- a/library/tzdata/Asia/Tbilisi
+++ b/library/tzdata/Asia/Tbilisi
@@ -1,9 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Tbilisi) {
- {-9223372036854775808 10756 0 LMT}
- {-2840151556 10756 0 TBMT}
- {-1441162756 10800 0 TBIT}
+ {-9223372036854775808 10751 0 LMT}
+ {-2840151551 10751 0 TBMT}
+ {-1441162751 10800 0 TBIT}
{-405140400 14400 0 TBIT}
{354916800 18000 1 TBIST}
{370724400 14400 0 TBIT}
diff --git a/library/tzdata/Asia/Tokyo b/library/tzdata/Asia/Tokyo
index 8d1ce11..5bfc75c 100644
--- a/library/tzdata/Asia/Tokyo
+++ b/library/tzdata/Asia/Tokyo
@@ -3,8 +3,8 @@
set TZData(:Asia/Tokyo) {
{-9223372036854775808 33539 0 LMT}
{-2587712400 32400 0 JST}
- {-2335251600 32400 0 CJT}
- {-1009875600 32400 0 JST}
+ {-2335251600 32400 0 JCST}
+ {-1017824400 32400 0 JST}
{-683794800 36000 1 JDT}
{-672393600 32400 0 JST}
{-654764400 36000 1 JDT}
diff --git a/library/tzdata/Asia/Ulaanbaatar b/library/tzdata/Asia/Ulaanbaatar
index fef76ec..93e066c 100644
--- a/library/tzdata/Asia/Ulaanbaatar
+++ b/library/tzdata/Asia/Ulaanbaatar
@@ -48,4 +48,174 @@ set TZData(:Asia/Ulaanbaatar) {
{1127494800 28800 0 ULAT}
{1143223200 32400 1 ULAST}
{1159549200 28800 0 ULAT}
+ {1427479200 32400 1 ULAST}
+ {1443193200 28800 0 ULAT}
+ {1458928800 32400 1 ULAST}
+ {1474642800 28800 0 ULAT}
+ {1490378400 32400 1 ULAST}
+ {1506697200 28800 0 ULAT}
+ {1522432800 32400 1 ULAST}
+ {1538146800 28800 0 ULAT}
+ {1553882400 32400 1 ULAST}
+ {1569596400 28800 0 ULAT}
+ {1585332000 32400 1 ULAST}
+ {1601046000 28800 0 ULAT}
+ {1616781600 32400 1 ULAST}
+ {1632495600 28800 0 ULAT}
+ {1648231200 32400 1 ULAST}
+ {1663945200 28800 0 ULAT}
+ {1679680800 32400 1 ULAST}
+ {1695999600 28800 0 ULAT}
+ {1711735200 32400 1 ULAST}
+ {1727449200 28800 0 ULAT}
+ {1743184800 32400 1 ULAST}
+ {1758898800 28800 0 ULAT}
+ {1774634400 32400 1 ULAST}
+ {1790348400 28800 0 ULAT}
+ {1806084000 32400 1 ULAST}
+ {1821798000 28800 0 ULAT}
+ {1837533600 32400 1 ULAST}
+ {1853852400 28800 0 ULAT}
+ {1869588000 32400 1 ULAST}
+ {1885302000 28800 0 ULAT}
+ {1901037600 32400 1 ULAST}
+ {1916751600 28800 0 ULAT}
+ {1932487200 32400 1 ULAST}
+ {1948201200 28800 0 ULAT}
+ {1963936800 32400 1 ULAST}
+ {1979650800 28800 0 ULAT}
+ {1995386400 32400 1 ULAST}
+ {2011100400 28800 0 ULAT}
+ {2026836000 32400 1 ULAST}
+ {2043154800 28800 0 ULAT}
+ {2058890400 32400 1 ULAST}
+ {2074604400 28800 0 ULAT}
+ {2090340000 32400 1 ULAST}
+ {2106054000 28800 0 ULAT}
+ {2121789600 32400 1 ULAST}
+ {2137503600 28800 0 ULAT}
+ {2153239200 32400 1 ULAST}
+ {2168953200 28800 0 ULAT}
+ {2184688800 32400 1 ULAST}
+ {2200402800 28800 0 ULAT}
+ {2216743200 32400 1 ULAST}
+ {2232457200 28800 0 ULAT}
+ {2248192800 32400 1 ULAST}
+ {2263906800 28800 0 ULAT}
+ {2279642400 32400 1 ULAST}
+ {2295356400 28800 0 ULAT}
+ {2311092000 32400 1 ULAST}
+ {2326806000 28800 0 ULAT}
+ {2342541600 32400 1 ULAST}
+ {2358255600 28800 0 ULAT}
+ {2373991200 32400 1 ULAST}
+ {2390310000 28800 0 ULAT}
+ {2406045600 32400 1 ULAST}
+ {2421759600 28800 0 ULAT}
+ {2437495200 32400 1 ULAST}
+ {2453209200 28800 0 ULAT}
+ {2468944800 32400 1 ULAST}
+ {2484658800 28800 0 ULAT}
+ {2500394400 32400 1 ULAST}
+ {2516108400 28800 0 ULAT}
+ {2531844000 32400 1 ULAST}
+ {2547558000 28800 0 ULAT}
+ {2563293600 32400 1 ULAST}
+ {2579612400 28800 0 ULAT}
+ {2595348000 32400 1 ULAST}
+ {2611062000 28800 0 ULAT}
+ {2626797600 32400 1 ULAST}
+ {2642511600 28800 0 ULAT}
+ {2658247200 32400 1 ULAST}
+ {2673961200 28800 0 ULAT}
+ {2689696800 32400 1 ULAST}
+ {2705410800 28800 0 ULAT}
+ {2721146400 32400 1 ULAST}
+ {2737465200 28800 0 ULAT}
+ {2753200800 32400 1 ULAST}
+ {2768914800 28800 0 ULAT}
+ {2784650400 32400 1 ULAST}
+ {2800364400 28800 0 ULAT}
+ {2816100000 32400 1 ULAST}
+ {2831814000 28800 0 ULAT}
+ {2847549600 32400 1 ULAST}
+ {2863263600 28800 0 ULAT}
+ {2878999200 32400 1 ULAST}
+ {2894713200 28800 0 ULAT}
+ {2910448800 32400 1 ULAST}
+ {2926767600 28800 0 ULAT}
+ {2942503200 32400 1 ULAST}
+ {2958217200 28800 0 ULAT}
+ {2973952800 32400 1 ULAST}
+ {2989666800 28800 0 ULAT}
+ {3005402400 32400 1 ULAST}
+ {3021116400 28800 0 ULAT}
+ {3036852000 32400 1 ULAST}
+ {3052566000 28800 0 ULAT}
+ {3068301600 32400 1 ULAST}
+ {3084015600 28800 0 ULAT}
+ {3100356000 32400 1 ULAST}
+ {3116070000 28800 0 ULAT}
+ {3131805600 32400 1 ULAST}
+ {3147519600 28800 0 ULAT}
+ {3163255200 32400 1 ULAST}
+ {3178969200 28800 0 ULAT}
+ {3194704800 32400 1 ULAST}
+ {3210418800 28800 0 ULAT}
+ {3226154400 32400 1 ULAST}
+ {3241868400 28800 0 ULAT}
+ {3257604000 32400 1 ULAST}
+ {3273922800 28800 0 ULAT}
+ {3289658400 32400 1 ULAST}
+ {3305372400 28800 0 ULAT}
+ {3321108000 32400 1 ULAST}
+ {3336822000 28800 0 ULAT}
+ {3352557600 32400 1 ULAST}
+ {3368271600 28800 0 ULAT}
+ {3384007200 32400 1 ULAST}
+ {3399721200 28800 0 ULAT}
+ {3415456800 32400 1 ULAST}
+ {3431170800 28800 0 ULAT}
+ {3446906400 32400 1 ULAST}
+ {3463225200 28800 0 ULAT}
+ {3478960800 32400 1 ULAST}
+ {3494674800 28800 0 ULAT}
+ {3510410400 32400 1 ULAST}
+ {3526124400 28800 0 ULAT}
+ {3541860000 32400 1 ULAST}
+ {3557574000 28800 0 ULAT}
+ {3573309600 32400 1 ULAST}
+ {3589023600 28800 0 ULAT}
+ {3604759200 32400 1 ULAST}
+ {3621078000 28800 0 ULAT}
+ {3636813600 32400 1 ULAST}
+ {3652527600 28800 0 ULAT}
+ {3668263200 32400 1 ULAST}
+ {3683977200 28800 0 ULAT}
+ {3699712800 32400 1 ULAST}
+ {3715426800 28800 0 ULAT}
+ {3731162400 32400 1 ULAST}
+ {3746876400 28800 0 ULAT}
+ {3762612000 32400 1 ULAST}
+ {3778326000 28800 0 ULAT}
+ {3794061600 32400 1 ULAST}
+ {3810380400 28800 0 ULAT}
+ {3826116000 32400 1 ULAST}
+ {3841830000 28800 0 ULAT}
+ {3857565600 32400 1 ULAST}
+ {3873279600 28800 0 ULAT}
+ {3889015200 32400 1 ULAST}
+ {3904729200 28800 0 ULAT}
+ {3920464800 32400 1 ULAST}
+ {3936178800 28800 0 ULAT}
+ {3951914400 32400 1 ULAST}
+ {3967628400 28800 0 ULAT}
+ {3983968800 32400 1 ULAST}
+ {3999682800 28800 0 ULAT}
+ {4015418400 32400 1 ULAST}
+ {4031132400 28800 0 ULAT}
+ {4046868000 32400 1 ULAST}
+ {4062582000 28800 0 ULAT}
+ {4078317600 32400 1 ULAST}
+ {4094031600 28800 0 ULAT}
}
diff --git a/library/tzdata/Asia/Urumqi b/library/tzdata/Asia/Urumqi
index 93fc909..4f3cd67 100644
--- a/library/tzdata/Asia/Urumqi
+++ b/library/tzdata/Asia/Urumqi
@@ -2,18 +2,5 @@
set TZData(:Asia/Urumqi) {
{-9223372036854775808 21020 0 LMT}
- {-1325483420 21600 0 URUT}
- {325965600 28800 0 CST}
- {515520000 32400 1 CDT}
- {527007600 28800 0 CST}
- {545155200 32400 1 CDT}
- {558457200 28800 0 CST}
- {576604800 32400 1 CDT}
- {589906800 28800 0 CST}
- {608659200 32400 1 CDT}
- {621961200 28800 0 CST}
- {640108800 32400 1 CDT}
- {653410800 28800 0 CST}
- {671558400 32400 1 CDT}
- {684860400 28800 0 CST}
+ {-1325483420 21600 0 XJT}
}
diff --git a/library/tzdata/Asia/Ust-Nera b/library/tzdata/Asia/Ust-Nera
index c8de7a5..90fa7d5 100644
--- a/library/tzdata/Asia/Ust-Nera
+++ b/library/tzdata/Asia/Ust-Nera
@@ -67,4 +67,5 @@ set TZData(:Asia/Ust-Nera) {
{1288450800 39600 0 MAGT}
{1301151600 43200 0 MAGT}
{1315828800 39600 0 VLAT}
+ {1414249200 36000 0 VLAT}
}
diff --git a/library/tzdata/Asia/Vientiane b/library/tzdata/Asia/Vientiane
index 18ade4d..27b20ce 100644
--- a/library/tzdata/Asia/Vientiane
+++ b/library/tzdata/Asia/Vientiane
@@ -1,9 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Asia/Vientiane) {
- {-9223372036854775808 24624 0 LMT}
- {-2005973424 25580 0 SMT}
- {-1855983920 25200 0 ICT}
- {-1819954800 28800 0 ICT}
- {-1220428800 25200 0 ICT}
+if {![info exists TZData(Asia/Bangkok)]} {
+ LoadTimeZoneFile Asia/Bangkok
}
+set TZData(:Asia/Vientiane) $TZData(:Asia/Bangkok)
diff --git a/library/tzdata/Asia/Vladivostok b/library/tzdata/Asia/Vladivostok
index 54101a5..119ff57 100644
--- a/library/tzdata/Asia/Vladivostok
+++ b/library/tzdata/Asia/Vladivostok
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Vladivostok) {
- {-9223372036854775808 31664 0 LMT}
- {-1487321264 32400 0 VLAT}
+ {-9223372036854775808 31651 0 LMT}
+ {-1487321251 32400 0 VLAT}
{-1247562000 36000 0 VLAMMTT}
{354895200 39600 1 VLAST}
{370702800 36000 0 VLAT}
@@ -24,9 +24,9 @@ set TZData(:Asia/Vladivostok) {
{622569600 36000 0 VLAT}
{638294400 39600 1 VLAST}
{654624000 36000 0 VLAT}
- {670348800 32400 0 VLAMMTST}
- {670352400 36000 1 VLASST}
- {686077200 32400 0 VLAST}
+ {670348800 32400 0 VLAMMTT}
+ {670352400 36000 1 VLAST}
+ {686077200 32400 0 VLAT}
{695754000 36000 0 VLAMMTT}
{701787600 39600 1 VLAST}
{717508800 36000 0 VLAT}
@@ -67,4 +67,5 @@ set TZData(:Asia/Vladivostok) {
{1269705600 39600 1 VLAST}
{1288454400 36000 0 VLAT}
{1301155200 39600 0 VLAT}
+ {1414249200 36000 0 VLAT}
}
diff --git a/library/tzdata/Asia/Yakutsk b/library/tzdata/Asia/Yakutsk
index 5c32cc9..17493a6 100644
--- a/library/tzdata/Asia/Yakutsk
+++ b/library/tzdata/Asia/Yakutsk
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Yakutsk) {
- {-9223372036854775808 31120 0 LMT}
- {-1579423120 28800 0 YAKT}
+ {-9223372036854775808 31138 0 LMT}
+ {-1579423138 28800 0 YAKT}
{-1247558400 32400 0 YAKMMTT}
{354898800 36000 1 YAKST}
{370706400 32400 0 YAKT}
@@ -67,4 +67,5 @@ set TZData(:Asia/Yakutsk) {
{1269709200 36000 1 YAKST}
{1288458000 32400 0 YAKT}
{1301158800 36000 0 YAKT}
+ {1414252800 32400 0 YAKT}
}
diff --git a/library/tzdata/Asia/Yekaterinburg b/library/tzdata/Asia/Yekaterinburg
index 2045496..2678958 100644
--- a/library/tzdata/Asia/Yekaterinburg
+++ b/library/tzdata/Asia/Yekaterinburg
@@ -1,8 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Asia/Yekaterinburg) {
- {-9223372036854775808 14544 0 LMT}
- {-1592611344 14400 0 SVET}
+ {-9223372036854775808 14553 0 LMT}
+ {-1688270553 13505 0 PMT}
+ {-1592610305 14400 0 SVET}
{-1247544000 18000 0 SVEMMTT}
{354913200 21600 1 SVEST}
{370720800 18000 0 SVET}
@@ -67,4 +68,5 @@ set TZData(:Asia/Yekaterinburg) {
{1269723600 21600 1 YEKST}
{1288472400 18000 0 YEKT}
{1301173200 21600 0 YEKT}
+ {1414267200 18000 0 YEKT}
}
diff --git a/library/tzdata/Atlantic/Azores b/library/tzdata/Atlantic/Azores
index c476191..fd47ba5 100644
--- a/library/tzdata/Atlantic/Azores
+++ b/library/tzdata/Atlantic/Azores
@@ -3,7 +3,7 @@
set TZData(:Atlantic/Azores) {
{-9223372036854775808 -6160 0 LMT}
{-2713904240 -6872 0 HMT}
- {-1849557928 -7200 0 AZOT}
+ {-1830377128 -7200 0 AZOT}
{-1689548400 -3600 1 AZOST}
{-1677794400 -7200 0 AZOT}
{-1667430000 -3600 1 AZOST}
diff --git a/library/tzdata/Atlantic/Madeira b/library/tzdata/Atlantic/Madeira
index 4960eeb..fac7f92 100644
--- a/library/tzdata/Atlantic/Madeira
+++ b/library/tzdata/Atlantic/Madeira
@@ -3,7 +3,7 @@
set TZData(:Atlantic/Madeira) {
{-9223372036854775808 -4056 0 LMT}
{-2713906344 -4056 0 FMT}
- {-1849560744 -3600 0 MADT}
+ {-1830379944 -3600 0 MADT}
{-1689552000 0 1 MADST}
{-1677798000 -3600 0 MADT}
{-1667433600 0 1 MADST}
diff --git a/library/tzdata/Atlantic/Reykjavik b/library/tzdata/Atlantic/Reykjavik
index f0248ad..ad7f0db 100644
--- a/library/tzdata/Atlantic/Reykjavik
+++ b/library/tzdata/Atlantic/Reykjavik
@@ -1,15 +1,18 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Atlantic/Reykjavik) {
- {-9223372036854775808 -5244 0 LMT}
- {-4197047556 -5268 0 RMT}
- {-1956609132 -3600 0 IST}
+ {-9223372036854775808 -5280 0 LMT}
+ {-1956609120 -3600 0 IST}
{-1668211200 0 1 ISST}
{-1647212400 -3600 0 IST}
{-1636675200 0 1 ISST}
{-1613430000 -3600 0 IST}
+ {-1605139200 0 1 ISST}
+ {-1581894000 -3600 0 IST}
+ {-1539561600 0 1 ISST}
+ {-1531350000 -3600 0 IST}
{-968025600 0 1 ISST}
- {-949615200 -3600 0 IST}
+ {-952293600 -3600 0 IST}
{-942008400 0 1 ISST}
{-920239200 -3600 0 IST}
{-909957600 0 1 ISST}
diff --git a/library/tzdata/Atlantic/St_Helena b/library/tzdata/Atlantic/St_Helena
index 6d0c00d..bf36c6a 100644
--- a/library/tzdata/Atlantic/St_Helena
+++ b/library/tzdata/Atlantic/St_Helena
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Atlantic/St_Helena) {
- {-9223372036854775808 -1368 0 LMT}
- {-2524520232 -1368 0 JMT}
- {-599614632 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Atlantic/St_Helena) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/Australia/Adelaide b/library/tzdata/Australia/Adelaide
index 9abe192..7e1b04e 100644
--- a/library/tzdata/Australia/Adelaide
+++ b/library/tzdata/Australia/Adelaide
@@ -2,272 +2,272 @@
set TZData(:Australia/Adelaide) {
{-9223372036854775808 33260 0 LMT}
- {-2364110060 32400 0 CST}
- {-2230189200 34200 0 CST}
- {-1672565340 37800 1 CST}
- {-1665390600 34200 0 CST}
- {-883639800 37800 1 CST}
- {-876126600 34200 0 CST}
- {-860398200 37800 1 CST}
- {-844677000 34200 0 CST}
- {-828343800 37800 1 CST}
- {-813227400 34200 0 CST}
- {31501800 34200 0 CST}
- {57688200 37800 1 CST}
- {67969800 34200 0 CST}
- {89137800 37800 1 CST}
- {100024200 34200 0 CST}
- {120587400 37800 1 CST}
- {131473800 34200 0 CST}
- {152037000 37800 1 CST}
- {162923400 34200 0 CST}
- {183486600 37800 1 CST}
- {194977800 34200 0 CST}
- {215541000 37800 1 CST}
- {226427400 34200 0 CST}
- {246990600 37800 1 CST}
- {257877000 34200 0 CST}
- {278440200 37800 1 CST}
- {289326600 34200 0 CST}
- {309889800 37800 1 CST}
- {320776200 34200 0 CST}
- {341339400 37800 1 CST}
- {352225800 34200 0 CST}
- {372789000 37800 1 CST}
- {384280200 34200 0 CST}
- {404843400 37800 1 CST}
- {415729800 34200 0 CST}
- {436293000 37800 1 CST}
- {447179400 34200 0 CST}
- {467742600 37800 1 CST}
- {478629000 34200 0 CST}
- {499192200 37800 1 CST}
- {511288200 34200 0 CST}
- {530037000 37800 1 CST}
- {542737800 34200 0 CST}
- {562091400 37800 1 CST}
- {574792200 34200 0 CST}
- {594145800 37800 1 CST}
- {606241800 34200 0 CST}
- {625595400 37800 1 CST}
- {637691400 34200 0 CST}
- {657045000 37800 1 CST}
- {667931400 34200 0 CST}
- {688494600 37800 1 CST}
- {701195400 34200 0 CST}
- {719944200 37800 1 CST}
- {731435400 34200 0 CST}
- {751998600 37800 1 CST}
- {764094600 34200 0 CST}
- {783448200 37800 1 CST}
- {796149000 34200 0 CST}
- {814897800 37800 1 CST}
- {828203400 34200 0 CST}
- {846347400 37800 1 CST}
- {859653000 34200 0 CST}
- {877797000 37800 1 CST}
- {891102600 34200 0 CST}
- {909246600 37800 1 CST}
- {922552200 34200 0 CST}
- {941301000 37800 1 CST}
- {954001800 34200 0 CST}
- {972750600 37800 1 CST}
- {985451400 34200 0 CST}
- {1004200200 37800 1 CST}
- {1017505800 34200 0 CST}
- {1035649800 37800 1 CST}
- {1048955400 34200 0 CST}
- {1067099400 37800 1 CST}
- {1080405000 34200 0 CST}
- {1099153800 37800 1 CST}
- {1111854600 34200 0 CST}
- {1130603400 37800 1 CST}
- {1143909000 34200 0 CST}
- {1162053000 37800 1 CST}
- {1174753800 34200 0 CST}
- {1193502600 37800 1 CST}
- {1207413000 34200 0 CST}
- {1223137800 37800 1 CST}
- {1238862600 34200 0 CST}
- {1254587400 37800 1 CST}
- {1270312200 34200 0 CST}
- {1286037000 37800 1 CST}
- {1301761800 34200 0 CST}
- {1317486600 37800 1 CST}
- {1333211400 34200 0 CST}
- {1349541000 37800 1 CST}
- {1365265800 34200 0 CST}
- {1380990600 37800 1 CST}
- {1396715400 34200 0 CST}
- {1412440200 37800 1 CST}
- {1428165000 34200 0 CST}
- {1443889800 37800 1 CST}
- {1459614600 34200 0 CST}
- {1475339400 37800 1 CST}
- {1491064200 34200 0 CST}
- {1506789000 37800 1 CST}
- {1522513800 34200 0 CST}
- {1538843400 37800 1 CST}
- {1554568200 34200 0 CST}
- {1570293000 37800 1 CST}
- {1586017800 34200 0 CST}
- {1601742600 37800 1 CST}
- {1617467400 34200 0 CST}
- {1633192200 37800 1 CST}
- {1648917000 34200 0 CST}
- {1664641800 37800 1 CST}
- {1680366600 34200 0 CST}
- {1696091400 37800 1 CST}
- {1712421000 34200 0 CST}
- {1728145800 37800 1 CST}
- {1743870600 34200 0 CST}
- {1759595400 37800 1 CST}
- {1775320200 34200 0 CST}
- {1791045000 37800 1 CST}
- {1806769800 34200 0 CST}
- {1822494600 37800 1 CST}
- {1838219400 34200 0 CST}
- {1853944200 37800 1 CST}
- {1869669000 34200 0 CST}
- {1885998600 37800 1 CST}
- {1901723400 34200 0 CST}
- {1917448200 37800 1 CST}
- {1933173000 34200 0 CST}
- {1948897800 37800 1 CST}
- {1964622600 34200 0 CST}
- {1980347400 37800 1 CST}
- {1996072200 34200 0 CST}
- {2011797000 37800 1 CST}
- {2027521800 34200 0 CST}
- {2043246600 37800 1 CST}
- {2058971400 34200 0 CST}
- {2075301000 37800 1 CST}
- {2091025800 34200 0 CST}
- {2106750600 37800 1 CST}
- {2122475400 34200 0 CST}
- {2138200200 37800 1 CST}
- {2153925000 34200 0 CST}
- {2169649800 37800 1 CST}
- {2185374600 34200 0 CST}
- {2201099400 37800 1 CST}
- {2216824200 34200 0 CST}
- {2233153800 37800 1 CST}
- {2248878600 34200 0 CST}
- {2264603400 37800 1 CST}
- {2280328200 34200 0 CST}
- {2296053000 37800 1 CST}
- {2311777800 34200 0 CST}
- {2327502600 37800 1 CST}
- {2343227400 34200 0 CST}
- {2358952200 37800 1 CST}
- {2374677000 34200 0 CST}
- {2390401800 37800 1 CST}
- {2406126600 34200 0 CST}
- {2422456200 37800 1 CST}
- {2438181000 34200 0 CST}
- {2453905800 37800 1 CST}
- {2469630600 34200 0 CST}
- {2485355400 37800 1 CST}
- {2501080200 34200 0 CST}
- {2516805000 37800 1 CST}
- {2532529800 34200 0 CST}
- {2548254600 37800 1 CST}
- {2563979400 34200 0 CST}
- {2579704200 37800 1 CST}
- {2596033800 34200 0 CST}
- {2611758600 37800 1 CST}
- {2627483400 34200 0 CST}
- {2643208200 37800 1 CST}
- {2658933000 34200 0 CST}
- {2674657800 37800 1 CST}
- {2690382600 34200 0 CST}
- {2706107400 37800 1 CST}
- {2721832200 34200 0 CST}
- {2737557000 37800 1 CST}
- {2753281800 34200 0 CST}
- {2769611400 37800 1 CST}
- {2785336200 34200 0 CST}
- {2801061000 37800 1 CST}
- {2816785800 34200 0 CST}
- {2832510600 37800 1 CST}
- {2848235400 34200 0 CST}
- {2863960200 37800 1 CST}
- {2879685000 34200 0 CST}
- {2895409800 37800 1 CST}
- {2911134600 34200 0 CST}
- {2926859400 37800 1 CST}
- {2942584200 34200 0 CST}
- {2958913800 37800 1 CST}
- {2974638600 34200 0 CST}
- {2990363400 37800 1 CST}
- {3006088200 34200 0 CST}
- {3021813000 37800 1 CST}
- {3037537800 34200 0 CST}
- {3053262600 37800 1 CST}
- {3068987400 34200 0 CST}
- {3084712200 37800 1 CST}
- {3100437000 34200 0 CST}
- {3116766600 37800 1 CST}
- {3132491400 34200 0 CST}
- {3148216200 37800 1 CST}
- {3163941000 34200 0 CST}
- {3179665800 37800 1 CST}
- {3195390600 34200 0 CST}
- {3211115400 37800 1 CST}
- {3226840200 34200 0 CST}
- {3242565000 37800 1 CST}
- {3258289800 34200 0 CST}
- {3274014600 37800 1 CST}
- {3289739400 34200 0 CST}
- {3306069000 37800 1 CST}
- {3321793800 34200 0 CST}
- {3337518600 37800 1 CST}
- {3353243400 34200 0 CST}
- {3368968200 37800 1 CST}
- {3384693000 34200 0 CST}
- {3400417800 37800 1 CST}
- {3416142600 34200 0 CST}
- {3431867400 37800 1 CST}
- {3447592200 34200 0 CST}
- {3463317000 37800 1 CST}
- {3479646600 34200 0 CST}
- {3495371400 37800 1 CST}
- {3511096200 34200 0 CST}
- {3526821000 37800 1 CST}
- {3542545800 34200 0 CST}
- {3558270600 37800 1 CST}
- {3573995400 34200 0 CST}
- {3589720200 37800 1 CST}
- {3605445000 34200 0 CST}
- {3621169800 37800 1 CST}
- {3636894600 34200 0 CST}
- {3653224200 37800 1 CST}
- {3668949000 34200 0 CST}
- {3684673800 37800 1 CST}
- {3700398600 34200 0 CST}
- {3716123400 37800 1 CST}
- {3731848200 34200 0 CST}
- {3747573000 37800 1 CST}
- {3763297800 34200 0 CST}
- {3779022600 37800 1 CST}
- {3794747400 34200 0 CST}
- {3810472200 37800 1 CST}
- {3826197000 34200 0 CST}
- {3842526600 37800 1 CST}
- {3858251400 34200 0 CST}
- {3873976200 37800 1 CST}
- {3889701000 34200 0 CST}
- {3905425800 37800 1 CST}
- {3921150600 34200 0 CST}
- {3936875400 37800 1 CST}
- {3952600200 34200 0 CST}
- {3968325000 37800 1 CST}
- {3984049800 34200 0 CST}
- {4000379400 37800 1 CST}
- {4016104200 34200 0 CST}
- {4031829000 37800 1 CST}
- {4047553800 34200 0 CST}
- {4063278600 37800 1 CST}
- {4079003400 34200 0 CST}
- {4094728200 37800 1 CST}
+ {-2364110060 32400 0 ACST}
+ {-2230189200 34200 0 ACST}
+ {-1672565340 37800 1 ACDT}
+ {-1665390600 34200 0 ACST}
+ {-883639800 37800 1 ACDT}
+ {-876126600 34200 0 ACST}
+ {-860398200 37800 1 ACDT}
+ {-844677000 34200 0 ACST}
+ {-828343800 37800 1 ACDT}
+ {-813227400 34200 0 ACST}
+ {31501800 34200 0 ACST}
+ {57688200 37800 1 ACDT}
+ {67969800 34200 0 ACST}
+ {89137800 37800 1 ACDT}
+ {100024200 34200 0 ACST}
+ {120587400 37800 1 ACDT}
+ {131473800 34200 0 ACST}
+ {152037000 37800 1 ACDT}
+ {162923400 34200 0 ACST}
+ {183486600 37800 1 ACDT}
+ {194977800 34200 0 ACST}
+ {215541000 37800 1 ACDT}
+ {226427400 34200 0 ACST}
+ {246990600 37800 1 ACDT}
+ {257877000 34200 0 ACST}
+ {278440200 37800 1 ACDT}
+ {289326600 34200 0 ACST}
+ {309889800 37800 1 ACDT}
+ {320776200 34200 0 ACST}
+ {341339400 37800 1 ACDT}
+ {352225800 34200 0 ACST}
+ {372789000 37800 1 ACDT}
+ {384280200 34200 0 ACST}
+ {404843400 37800 1 ACDT}
+ {415729800 34200 0 ACST}
+ {436293000 37800 1 ACDT}
+ {447179400 34200 0 ACST}
+ {467742600 37800 1 ACDT}
+ {478629000 34200 0 ACST}
+ {499192200 37800 1 ACDT}
+ {511288200 34200 0 ACST}
+ {530037000 37800 1 ACDT}
+ {542737800 34200 0 ACST}
+ {562091400 37800 1 ACDT}
+ {574792200 34200 0 ACST}
+ {594145800 37800 1 ACDT}
+ {606241800 34200 0 ACST}
+ {625595400 37800 1 ACDT}
+ {637691400 34200 0 ACST}
+ {657045000 37800 1 ACDT}
+ {667931400 34200 0 ACST}
+ {688494600 37800 1 ACDT}
+ {701195400 34200 0 ACST}
+ {719944200 37800 1 ACDT}
+ {731435400 34200 0 ACST}
+ {751998600 37800 1 ACDT}
+ {764094600 34200 0 ACST}
+ {783448200 37800 1 ACDT}
+ {796149000 34200 0 ACST}
+ {814897800 37800 1 ACDT}
+ {828203400 34200 0 ACST}
+ {846347400 37800 1 ACDT}
+ {859653000 34200 0 ACST}
+ {877797000 37800 1 ACDT}
+ {891102600 34200 0 ACST}
+ {909246600 37800 1 ACDT}
+ {922552200 34200 0 ACST}
+ {941301000 37800 1 ACDT}
+ {954001800 34200 0 ACST}
+ {972750600 37800 1 ACDT}
+ {985451400 34200 0 ACST}
+ {1004200200 37800 1 ACDT}
+ {1017505800 34200 0 ACST}
+ {1035649800 37800 1 ACDT}
+ {1048955400 34200 0 ACST}
+ {1067099400 37800 1 ACDT}
+ {1080405000 34200 0 ACST}
+ {1099153800 37800 1 ACDT}
+ {1111854600 34200 0 ACST}
+ {1130603400 37800 1 ACDT}
+ {1143909000 34200 0 ACST}
+ {1162053000 37800 1 ACDT}
+ {1174753800 34200 0 ACST}
+ {1193502600 37800 1 ACDT}
+ {1207413000 34200 0 ACST}
+ {1223137800 37800 1 ACDT}
+ {1238862600 34200 0 ACST}
+ {1254587400 37800 1 ACDT}
+ {1270312200 34200 0 ACST}
+ {1286037000 37800 1 ACDT}
+ {1301761800 34200 0 ACST}
+ {1317486600 37800 1 ACDT}
+ {1333211400 34200 0 ACST}
+ {1349541000 37800 1 ACDT}
+ {1365265800 34200 0 ACST}
+ {1380990600 37800 1 ACDT}
+ {1396715400 34200 0 ACST}
+ {1412440200 37800 1 ACDT}
+ {1428165000 34200 0 ACST}
+ {1443889800 37800 1 ACDT}
+ {1459614600 34200 0 ACST}
+ {1475339400 37800 1 ACDT}
+ {1491064200 34200 0 ACST}
+ {1506789000 37800 1 ACDT}
+ {1522513800 34200 0 ACST}
+ {1538843400 37800 1 ACDT}
+ {1554568200 34200 0 ACST}
+ {1570293000 37800 1 ACDT}
+ {1586017800 34200 0 ACST}
+ {1601742600 37800 1 ACDT}
+ {1617467400 34200 0 ACST}
+ {1633192200 37800 1 ACDT}
+ {1648917000 34200 0 ACST}
+ {1664641800 37800 1 ACDT}
+ {1680366600 34200 0 ACST}
+ {1696091400 37800 1 ACDT}
+ {1712421000 34200 0 ACST}
+ {1728145800 37800 1 ACDT}
+ {1743870600 34200 0 ACST}
+ {1759595400 37800 1 ACDT}
+ {1775320200 34200 0 ACST}
+ {1791045000 37800 1 ACDT}
+ {1806769800 34200 0 ACST}
+ {1822494600 37800 1 ACDT}
+ {1838219400 34200 0 ACST}
+ {1853944200 37800 1 ACDT}
+ {1869669000 34200 0 ACST}
+ {1885998600 37800 1 ACDT}
+ {1901723400 34200 0 ACST}
+ {1917448200 37800 1 ACDT}
+ {1933173000 34200 0 ACST}
+ {1948897800 37800 1 ACDT}
+ {1964622600 34200 0 ACST}
+ {1980347400 37800 1 ACDT}
+ {1996072200 34200 0 ACST}
+ {2011797000 37800 1 ACDT}
+ {2027521800 34200 0 ACST}
+ {2043246600 37800 1 ACDT}
+ {2058971400 34200 0 ACST}
+ {2075301000 37800 1 ACDT}
+ {2091025800 34200 0 ACST}
+ {2106750600 37800 1 ACDT}
+ {2122475400 34200 0 ACST}
+ {2138200200 37800 1 ACDT}
+ {2153925000 34200 0 ACST}
+ {2169649800 37800 1 ACDT}
+ {2185374600 34200 0 ACST}
+ {2201099400 37800 1 ACDT}
+ {2216824200 34200 0 ACST}
+ {2233153800 37800 1 ACDT}
+ {2248878600 34200 0 ACST}
+ {2264603400 37800 1 ACDT}
+ {2280328200 34200 0 ACST}
+ {2296053000 37800 1 ACDT}
+ {2311777800 34200 0 ACST}
+ {2327502600 37800 1 ACDT}
+ {2343227400 34200 0 ACST}
+ {2358952200 37800 1 ACDT}
+ {2374677000 34200 0 ACST}
+ {2390401800 37800 1 ACDT}
+ {2406126600 34200 0 ACST}
+ {2422456200 37800 1 ACDT}
+ {2438181000 34200 0 ACST}
+ {2453905800 37800 1 ACDT}
+ {2469630600 34200 0 ACST}
+ {2485355400 37800 1 ACDT}
+ {2501080200 34200 0 ACST}
+ {2516805000 37800 1 ACDT}
+ {2532529800 34200 0 ACST}
+ {2548254600 37800 1 ACDT}
+ {2563979400 34200 0 ACST}
+ {2579704200 37800 1 ACDT}
+ {2596033800 34200 0 ACST}
+ {2611758600 37800 1 ACDT}
+ {2627483400 34200 0 ACST}
+ {2643208200 37800 1 ACDT}
+ {2658933000 34200 0 ACST}
+ {2674657800 37800 1 ACDT}
+ {2690382600 34200 0 ACST}
+ {2706107400 37800 1 ACDT}
+ {2721832200 34200 0 ACST}
+ {2737557000 37800 1 ACDT}
+ {2753281800 34200 0 ACST}
+ {2769611400 37800 1 ACDT}
+ {2785336200 34200 0 ACST}
+ {2801061000 37800 1 ACDT}
+ {2816785800 34200 0 ACST}
+ {2832510600 37800 1 ACDT}
+ {2848235400 34200 0 ACST}
+ {2863960200 37800 1 ACDT}
+ {2879685000 34200 0 ACST}
+ {2895409800 37800 1 ACDT}
+ {2911134600 34200 0 ACST}
+ {2926859400 37800 1 ACDT}
+ {2942584200 34200 0 ACST}
+ {2958913800 37800 1 ACDT}
+ {2974638600 34200 0 ACST}
+ {2990363400 37800 1 ACDT}
+ {3006088200 34200 0 ACST}
+ {3021813000 37800 1 ACDT}
+ {3037537800 34200 0 ACST}
+ {3053262600 37800 1 ACDT}
+ {3068987400 34200 0 ACST}
+ {3084712200 37800 1 ACDT}
+ {3100437000 34200 0 ACST}
+ {3116766600 37800 1 ACDT}
+ {3132491400 34200 0 ACST}
+ {3148216200 37800 1 ACDT}
+ {3163941000 34200 0 ACST}
+ {3179665800 37800 1 ACDT}
+ {3195390600 34200 0 ACST}
+ {3211115400 37800 1 ACDT}
+ {3226840200 34200 0 ACST}
+ {3242565000 37800 1 ACDT}
+ {3258289800 34200 0 ACST}
+ {3274014600 37800 1 ACDT}
+ {3289739400 34200 0 ACST}
+ {3306069000 37800 1 ACDT}
+ {3321793800 34200 0 ACST}
+ {3337518600 37800 1 ACDT}
+ {3353243400 34200 0 ACST}
+ {3368968200 37800 1 ACDT}
+ {3384693000 34200 0 ACST}
+ {3400417800 37800 1 ACDT}
+ {3416142600 34200 0 ACST}
+ {3431867400 37800 1 ACDT}
+ {3447592200 34200 0 ACST}
+ {3463317000 37800 1 ACDT}
+ {3479646600 34200 0 ACST}
+ {3495371400 37800 1 ACDT}
+ {3511096200 34200 0 ACST}
+ {3526821000 37800 1 ACDT}
+ {3542545800 34200 0 ACST}
+ {3558270600 37800 1 ACDT}
+ {3573995400 34200 0 ACST}
+ {3589720200 37800 1 ACDT}
+ {3605445000 34200 0 ACST}
+ {3621169800 37800 1 ACDT}
+ {3636894600 34200 0 ACST}
+ {3653224200 37800 1 ACDT}
+ {3668949000 34200 0 ACST}
+ {3684673800 37800 1 ACDT}
+ {3700398600 34200 0 ACST}
+ {3716123400 37800 1 ACDT}
+ {3731848200 34200 0 ACST}
+ {3747573000 37800 1 ACDT}
+ {3763297800 34200 0 ACST}
+ {3779022600 37800 1 ACDT}
+ {3794747400 34200 0 ACST}
+ {3810472200 37800 1 ACDT}
+ {3826197000 34200 0 ACST}
+ {3842526600 37800 1 ACDT}
+ {3858251400 34200 0 ACST}
+ {3873976200 37800 1 ACDT}
+ {3889701000 34200 0 ACST}
+ {3905425800 37800 1 ACDT}
+ {3921150600 34200 0 ACST}
+ {3936875400 37800 1 ACDT}
+ {3952600200 34200 0 ACST}
+ {3968325000 37800 1 ACDT}
+ {3984049800 34200 0 ACST}
+ {4000379400 37800 1 ACDT}
+ {4016104200 34200 0 ACST}
+ {4031829000 37800 1 ACDT}
+ {4047553800 34200 0 ACST}
+ {4063278600 37800 1 ACDT}
+ {4079003400 34200 0 ACST}
+ {4094728200 37800 1 ACDT}
}
diff --git a/library/tzdata/Australia/Brisbane b/library/tzdata/Australia/Brisbane
index fe6d154..8422ae6 100644
--- a/library/tzdata/Australia/Brisbane
+++ b/library/tzdata/Australia/Brisbane
@@ -2,22 +2,22 @@
set TZData(:Australia/Brisbane) {
{-9223372036854775808 36728 0 LMT}
- {-2366791928 36000 0 EST}
- {-1672567140 39600 1 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {31500000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {625593600 39600 1 EST}
- {636480000 36000 0 EST}
- {657043200 39600 1 EST}
- {667929600 36000 0 EST}
- {688492800 39600 1 EST}
- {699379200 36000 0 EST}
+ {-2366791928 36000 0 AEST}
+ {-1672567140 39600 1 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {31500000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {636480000 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {667929600 36000 0 AEST}
+ {688492800 39600 1 AEDT}
+ {699379200 36000 0 AEST}
}
diff --git a/library/tzdata/Australia/Broken_Hill b/library/tzdata/Australia/Broken_Hill
index 35cbb7e..c428061 100644
--- a/library/tzdata/Australia/Broken_Hill
+++ b/library/tzdata/Australia/Broken_Hill
@@ -2,274 +2,274 @@
set TZData(:Australia/Broken_Hill) {
{-9223372036854775808 33948 0 LMT}
- {-2364110748 36000 0 EST}
- {-2314951200 32400 0 CST}
- {-2230189200 34200 0 CST}
- {-1672565340 37800 1 CST}
- {-1665390600 34200 0 CST}
- {-883639800 37800 1 CST}
- {-876126600 34200 0 CST}
- {-860398200 37800 1 CST}
- {-844677000 34200 0 CST}
- {-828343800 37800 1 CST}
- {-813227400 34200 0 CST}
- {31501800 34200 0 CST}
- {57688200 37800 1 CST}
- {67969800 34200 0 CST}
- {89137800 37800 1 CST}
- {100024200 34200 0 CST}
- {120587400 37800 1 CST}
- {131473800 34200 0 CST}
- {152037000 37800 1 CST}
- {162923400 34200 0 CST}
- {183486600 37800 1 CST}
- {194977800 34200 0 CST}
- {215541000 37800 1 CST}
- {226427400 34200 0 CST}
- {246990600 37800 1 CST}
- {257877000 34200 0 CST}
- {278440200 37800 1 CST}
- {289326600 34200 0 CST}
- {309889800 37800 1 CST}
- {320776200 34200 0 CST}
- {341339400 37800 1 CST}
- {352225800 34200 0 CST}
- {372789000 37800 1 CST}
- {386699400 34200 0 CST}
- {404843400 37800 1 CST}
- {415729800 34200 0 CST}
- {436293000 37800 1 CST}
- {447179400 34200 0 CST}
- {467742600 37800 1 CST}
- {478629000 34200 0 CST}
- {499192200 37800 1 CST}
- {511288200 34200 0 CST}
- {530037000 37800 1 CST}
- {542737800 34200 0 CST}
- {562091400 37800 1 CST}
- {574792200 34200 0 CST}
- {594145800 37800 1 CST}
- {606241800 34200 0 CST}
- {625595400 37800 1 CST}
- {636481800 34200 0 CST}
- {657045000 37800 1 CST}
- {667931400 34200 0 CST}
- {688494600 37800 1 CST}
- {699381000 34200 0 CST}
- {719944200 37800 1 CST}
- {731435400 34200 0 CST}
- {751998600 37800 1 CST}
- {762885000 34200 0 CST}
- {783448200 37800 1 CST}
- {794334600 34200 0 CST}
- {814897800 37800 1 CST}
- {828203400 34200 0 CST}
- {846347400 37800 1 CST}
- {859653000 34200 0 CST}
- {877797000 37800 1 CST}
- {891102600 34200 0 CST}
- {909246600 37800 1 CST}
- {922552200 34200 0 CST}
- {941301000 37800 1 CST}
- {946647000 37800 0 CST}
- {954001800 34200 0 CST}
- {972750600 37800 1 CST}
- {985451400 34200 0 CST}
- {1004200200 37800 1 CST}
- {1017505800 34200 0 CST}
- {1035649800 37800 1 CST}
- {1048955400 34200 0 CST}
- {1067099400 37800 1 CST}
- {1080405000 34200 0 CST}
- {1099153800 37800 1 CST}
- {1111854600 34200 0 CST}
- {1130603400 37800 1 CST}
- {1143909000 34200 0 CST}
- {1162053000 37800 1 CST}
- {1174753800 34200 0 CST}
- {1193502600 37800 1 CST}
- {1207413000 34200 0 CST}
- {1223137800 37800 1 CST}
- {1238862600 34200 0 CST}
- {1254587400 37800 1 CST}
- {1270312200 34200 0 CST}
- {1286037000 37800 1 CST}
- {1301761800 34200 0 CST}
- {1317486600 37800 1 CST}
- {1333211400 34200 0 CST}
- {1349541000 37800 1 CST}
- {1365265800 34200 0 CST}
- {1380990600 37800 1 CST}
- {1396715400 34200 0 CST}
- {1412440200 37800 1 CST}
- {1428165000 34200 0 CST}
- {1443889800 37800 1 CST}
- {1459614600 34200 0 CST}
- {1475339400 37800 1 CST}
- {1491064200 34200 0 CST}
- {1506789000 37800 1 CST}
- {1522513800 34200 0 CST}
- {1538843400 37800 1 CST}
- {1554568200 34200 0 CST}
- {1570293000 37800 1 CST}
- {1586017800 34200 0 CST}
- {1601742600 37800 1 CST}
- {1617467400 34200 0 CST}
- {1633192200 37800 1 CST}
- {1648917000 34200 0 CST}
- {1664641800 37800 1 CST}
- {1680366600 34200 0 CST}
- {1696091400 37800 1 CST}
- {1712421000 34200 0 CST}
- {1728145800 37800 1 CST}
- {1743870600 34200 0 CST}
- {1759595400 37800 1 CST}
- {1775320200 34200 0 CST}
- {1791045000 37800 1 CST}
- {1806769800 34200 0 CST}
- {1822494600 37800 1 CST}
- {1838219400 34200 0 CST}
- {1853944200 37800 1 CST}
- {1869669000 34200 0 CST}
- {1885998600 37800 1 CST}
- {1901723400 34200 0 CST}
- {1917448200 37800 1 CST}
- {1933173000 34200 0 CST}
- {1948897800 37800 1 CST}
- {1964622600 34200 0 CST}
- {1980347400 37800 1 CST}
- {1996072200 34200 0 CST}
- {2011797000 37800 1 CST}
- {2027521800 34200 0 CST}
- {2043246600 37800 1 CST}
- {2058971400 34200 0 CST}
- {2075301000 37800 1 CST}
- {2091025800 34200 0 CST}
- {2106750600 37800 1 CST}
- {2122475400 34200 0 CST}
- {2138200200 37800 1 CST}
- {2153925000 34200 0 CST}
- {2169649800 37800 1 CST}
- {2185374600 34200 0 CST}
- {2201099400 37800 1 CST}
- {2216824200 34200 0 CST}
- {2233153800 37800 1 CST}
- {2248878600 34200 0 CST}
- {2264603400 37800 1 CST}
- {2280328200 34200 0 CST}
- {2296053000 37800 1 CST}
- {2311777800 34200 0 CST}
- {2327502600 37800 1 CST}
- {2343227400 34200 0 CST}
- {2358952200 37800 1 CST}
- {2374677000 34200 0 CST}
- {2390401800 37800 1 CST}
- {2406126600 34200 0 CST}
- {2422456200 37800 1 CST}
- {2438181000 34200 0 CST}
- {2453905800 37800 1 CST}
- {2469630600 34200 0 CST}
- {2485355400 37800 1 CST}
- {2501080200 34200 0 CST}
- {2516805000 37800 1 CST}
- {2532529800 34200 0 CST}
- {2548254600 37800 1 CST}
- {2563979400 34200 0 CST}
- {2579704200 37800 1 CST}
- {2596033800 34200 0 CST}
- {2611758600 37800 1 CST}
- {2627483400 34200 0 CST}
- {2643208200 37800 1 CST}
- {2658933000 34200 0 CST}
- {2674657800 37800 1 CST}
- {2690382600 34200 0 CST}
- {2706107400 37800 1 CST}
- {2721832200 34200 0 CST}
- {2737557000 37800 1 CST}
- {2753281800 34200 0 CST}
- {2769611400 37800 1 CST}
- {2785336200 34200 0 CST}
- {2801061000 37800 1 CST}
- {2816785800 34200 0 CST}
- {2832510600 37800 1 CST}
- {2848235400 34200 0 CST}
- {2863960200 37800 1 CST}
- {2879685000 34200 0 CST}
- {2895409800 37800 1 CST}
- {2911134600 34200 0 CST}
- {2926859400 37800 1 CST}
- {2942584200 34200 0 CST}
- {2958913800 37800 1 CST}
- {2974638600 34200 0 CST}
- {2990363400 37800 1 CST}
- {3006088200 34200 0 CST}
- {3021813000 37800 1 CST}
- {3037537800 34200 0 CST}
- {3053262600 37800 1 CST}
- {3068987400 34200 0 CST}
- {3084712200 37800 1 CST}
- {3100437000 34200 0 CST}
- {3116766600 37800 1 CST}
- {3132491400 34200 0 CST}
- {3148216200 37800 1 CST}
- {3163941000 34200 0 CST}
- {3179665800 37800 1 CST}
- {3195390600 34200 0 CST}
- {3211115400 37800 1 CST}
- {3226840200 34200 0 CST}
- {3242565000 37800 1 CST}
- {3258289800 34200 0 CST}
- {3274014600 37800 1 CST}
- {3289739400 34200 0 CST}
- {3306069000 37800 1 CST}
- {3321793800 34200 0 CST}
- {3337518600 37800 1 CST}
- {3353243400 34200 0 CST}
- {3368968200 37800 1 CST}
- {3384693000 34200 0 CST}
- {3400417800 37800 1 CST}
- {3416142600 34200 0 CST}
- {3431867400 37800 1 CST}
- {3447592200 34200 0 CST}
- {3463317000 37800 1 CST}
- {3479646600 34200 0 CST}
- {3495371400 37800 1 CST}
- {3511096200 34200 0 CST}
- {3526821000 37800 1 CST}
- {3542545800 34200 0 CST}
- {3558270600 37800 1 CST}
- {3573995400 34200 0 CST}
- {3589720200 37800 1 CST}
- {3605445000 34200 0 CST}
- {3621169800 37800 1 CST}
- {3636894600 34200 0 CST}
- {3653224200 37800 1 CST}
- {3668949000 34200 0 CST}
- {3684673800 37800 1 CST}
- {3700398600 34200 0 CST}
- {3716123400 37800 1 CST}
- {3731848200 34200 0 CST}
- {3747573000 37800 1 CST}
- {3763297800 34200 0 CST}
- {3779022600 37800 1 CST}
- {3794747400 34200 0 CST}
- {3810472200 37800 1 CST}
- {3826197000 34200 0 CST}
- {3842526600 37800 1 CST}
- {3858251400 34200 0 CST}
- {3873976200 37800 1 CST}
- {3889701000 34200 0 CST}
- {3905425800 37800 1 CST}
- {3921150600 34200 0 CST}
- {3936875400 37800 1 CST}
- {3952600200 34200 0 CST}
- {3968325000 37800 1 CST}
- {3984049800 34200 0 CST}
- {4000379400 37800 1 CST}
- {4016104200 34200 0 CST}
- {4031829000 37800 1 CST}
- {4047553800 34200 0 CST}
- {4063278600 37800 1 CST}
- {4079003400 34200 0 CST}
- {4094728200 37800 1 CST}
+ {-2364110748 36000 0 AEST}
+ {-2314951200 32400 0 ACST}
+ {-2230189200 34200 0 ACST}
+ {-1672565340 37800 1 ACDT}
+ {-1665390600 34200 0 ACST}
+ {-883639800 37800 1 ACDT}
+ {-876126600 34200 0 ACST}
+ {-860398200 37800 1 ACDT}
+ {-844677000 34200 0 ACST}
+ {-828343800 37800 1 ACDT}
+ {-813227400 34200 0 ACST}
+ {31501800 34200 0 ACST}
+ {57688200 37800 1 ACDT}
+ {67969800 34200 0 ACST}
+ {89137800 37800 1 ACDT}
+ {100024200 34200 0 ACST}
+ {120587400 37800 1 ACDT}
+ {131473800 34200 0 ACST}
+ {152037000 37800 1 ACDT}
+ {162923400 34200 0 ACST}
+ {183486600 37800 1 ACDT}
+ {194977800 34200 0 ACST}
+ {215541000 37800 1 ACDT}
+ {226427400 34200 0 ACST}
+ {246990600 37800 1 ACDT}
+ {257877000 34200 0 ACST}
+ {278440200 37800 1 ACDT}
+ {289326600 34200 0 ACST}
+ {309889800 37800 1 ACDT}
+ {320776200 34200 0 ACST}
+ {341339400 37800 1 ACDT}
+ {352225800 34200 0 ACST}
+ {372789000 37800 1 ACDT}
+ {386699400 34200 0 ACST}
+ {404843400 37800 1 ACDT}
+ {415729800 34200 0 ACST}
+ {436293000 37800 1 ACDT}
+ {447179400 34200 0 ACST}
+ {467742600 37800 1 ACDT}
+ {478629000 34200 0 ACST}
+ {499192200 37800 1 ACDT}
+ {511288200 34200 0 ACST}
+ {530037000 37800 1 ACDT}
+ {542737800 34200 0 ACST}
+ {562091400 37800 1 ACDT}
+ {574792200 34200 0 ACST}
+ {594145800 37800 1 ACDT}
+ {606241800 34200 0 ACST}
+ {625595400 37800 1 ACDT}
+ {636481800 34200 0 ACST}
+ {657045000 37800 1 ACDT}
+ {667931400 34200 0 ACST}
+ {688494600 37800 1 ACDT}
+ {699381000 34200 0 ACST}
+ {719944200 37800 1 ACDT}
+ {731435400 34200 0 ACST}
+ {751998600 37800 1 ACDT}
+ {762885000 34200 0 ACST}
+ {783448200 37800 1 ACDT}
+ {794334600 34200 0 ACST}
+ {814897800 37800 1 ACDT}
+ {828203400 34200 0 ACST}
+ {846347400 37800 1 ACDT}
+ {859653000 34200 0 ACST}
+ {877797000 37800 1 ACDT}
+ {891102600 34200 0 ACST}
+ {909246600 37800 1 ACDT}
+ {922552200 34200 0 ACST}
+ {941301000 37800 1 ACDT}
+ {946647000 37800 0 ACST}
+ {954001800 34200 0 ACST}
+ {972750600 37800 1 ACDT}
+ {985451400 34200 0 ACST}
+ {1004200200 37800 1 ACDT}
+ {1017505800 34200 0 ACST}
+ {1035649800 37800 1 ACDT}
+ {1048955400 34200 0 ACST}
+ {1067099400 37800 1 ACDT}
+ {1080405000 34200 0 ACST}
+ {1099153800 37800 1 ACDT}
+ {1111854600 34200 0 ACST}
+ {1130603400 37800 1 ACDT}
+ {1143909000 34200 0 ACST}
+ {1162053000 37800 1 ACDT}
+ {1174753800 34200 0 ACST}
+ {1193502600 37800 1 ACDT}
+ {1207413000 34200 0 ACST}
+ {1223137800 37800 1 ACDT}
+ {1238862600 34200 0 ACST}
+ {1254587400 37800 1 ACDT}
+ {1270312200 34200 0 ACST}
+ {1286037000 37800 1 ACDT}
+ {1301761800 34200 0 ACST}
+ {1317486600 37800 1 ACDT}
+ {1333211400 34200 0 ACST}
+ {1349541000 37800 1 ACDT}
+ {1365265800 34200 0 ACST}
+ {1380990600 37800 1 ACDT}
+ {1396715400 34200 0 ACST}
+ {1412440200 37800 1 ACDT}
+ {1428165000 34200 0 ACST}
+ {1443889800 37800 1 ACDT}
+ {1459614600 34200 0 ACST}
+ {1475339400 37800 1 ACDT}
+ {1491064200 34200 0 ACST}
+ {1506789000 37800 1 ACDT}
+ {1522513800 34200 0 ACST}
+ {1538843400 37800 1 ACDT}
+ {1554568200 34200 0 ACST}
+ {1570293000 37800 1 ACDT}
+ {1586017800 34200 0 ACST}
+ {1601742600 37800 1 ACDT}
+ {1617467400 34200 0 ACST}
+ {1633192200 37800 1 ACDT}
+ {1648917000 34200 0 ACST}
+ {1664641800 37800 1 ACDT}
+ {1680366600 34200 0 ACST}
+ {1696091400 37800 1 ACDT}
+ {1712421000 34200 0 ACST}
+ {1728145800 37800 1 ACDT}
+ {1743870600 34200 0 ACST}
+ {1759595400 37800 1 ACDT}
+ {1775320200 34200 0 ACST}
+ {1791045000 37800 1 ACDT}
+ {1806769800 34200 0 ACST}
+ {1822494600 37800 1 ACDT}
+ {1838219400 34200 0 ACST}
+ {1853944200 37800 1 ACDT}
+ {1869669000 34200 0 ACST}
+ {1885998600 37800 1 ACDT}
+ {1901723400 34200 0 ACST}
+ {1917448200 37800 1 ACDT}
+ {1933173000 34200 0 ACST}
+ {1948897800 37800 1 ACDT}
+ {1964622600 34200 0 ACST}
+ {1980347400 37800 1 ACDT}
+ {1996072200 34200 0 ACST}
+ {2011797000 37800 1 ACDT}
+ {2027521800 34200 0 ACST}
+ {2043246600 37800 1 ACDT}
+ {2058971400 34200 0 ACST}
+ {2075301000 37800 1 ACDT}
+ {2091025800 34200 0 ACST}
+ {2106750600 37800 1 ACDT}
+ {2122475400 34200 0 ACST}
+ {2138200200 37800 1 ACDT}
+ {2153925000 34200 0 ACST}
+ {2169649800 37800 1 ACDT}
+ {2185374600 34200 0 ACST}
+ {2201099400 37800 1 ACDT}
+ {2216824200 34200 0 ACST}
+ {2233153800 37800 1 ACDT}
+ {2248878600 34200 0 ACST}
+ {2264603400 37800 1 ACDT}
+ {2280328200 34200 0 ACST}
+ {2296053000 37800 1 ACDT}
+ {2311777800 34200 0 ACST}
+ {2327502600 37800 1 ACDT}
+ {2343227400 34200 0 ACST}
+ {2358952200 37800 1 ACDT}
+ {2374677000 34200 0 ACST}
+ {2390401800 37800 1 ACDT}
+ {2406126600 34200 0 ACST}
+ {2422456200 37800 1 ACDT}
+ {2438181000 34200 0 ACST}
+ {2453905800 37800 1 ACDT}
+ {2469630600 34200 0 ACST}
+ {2485355400 37800 1 ACDT}
+ {2501080200 34200 0 ACST}
+ {2516805000 37800 1 ACDT}
+ {2532529800 34200 0 ACST}
+ {2548254600 37800 1 ACDT}
+ {2563979400 34200 0 ACST}
+ {2579704200 37800 1 ACDT}
+ {2596033800 34200 0 ACST}
+ {2611758600 37800 1 ACDT}
+ {2627483400 34200 0 ACST}
+ {2643208200 37800 1 ACDT}
+ {2658933000 34200 0 ACST}
+ {2674657800 37800 1 ACDT}
+ {2690382600 34200 0 ACST}
+ {2706107400 37800 1 ACDT}
+ {2721832200 34200 0 ACST}
+ {2737557000 37800 1 ACDT}
+ {2753281800 34200 0 ACST}
+ {2769611400 37800 1 ACDT}
+ {2785336200 34200 0 ACST}
+ {2801061000 37800 1 ACDT}
+ {2816785800 34200 0 ACST}
+ {2832510600 37800 1 ACDT}
+ {2848235400 34200 0 ACST}
+ {2863960200 37800 1 ACDT}
+ {2879685000 34200 0 ACST}
+ {2895409800 37800 1 ACDT}
+ {2911134600 34200 0 ACST}
+ {2926859400 37800 1 ACDT}
+ {2942584200 34200 0 ACST}
+ {2958913800 37800 1 ACDT}
+ {2974638600 34200 0 ACST}
+ {2990363400 37800 1 ACDT}
+ {3006088200 34200 0 ACST}
+ {3021813000 37800 1 ACDT}
+ {3037537800 34200 0 ACST}
+ {3053262600 37800 1 ACDT}
+ {3068987400 34200 0 ACST}
+ {3084712200 37800 1 ACDT}
+ {3100437000 34200 0 ACST}
+ {3116766600 37800 1 ACDT}
+ {3132491400 34200 0 ACST}
+ {3148216200 37800 1 ACDT}
+ {3163941000 34200 0 ACST}
+ {3179665800 37800 1 ACDT}
+ {3195390600 34200 0 ACST}
+ {3211115400 37800 1 ACDT}
+ {3226840200 34200 0 ACST}
+ {3242565000 37800 1 ACDT}
+ {3258289800 34200 0 ACST}
+ {3274014600 37800 1 ACDT}
+ {3289739400 34200 0 ACST}
+ {3306069000 37800 1 ACDT}
+ {3321793800 34200 0 ACST}
+ {3337518600 37800 1 ACDT}
+ {3353243400 34200 0 ACST}
+ {3368968200 37800 1 ACDT}
+ {3384693000 34200 0 ACST}
+ {3400417800 37800 1 ACDT}
+ {3416142600 34200 0 ACST}
+ {3431867400 37800 1 ACDT}
+ {3447592200 34200 0 ACST}
+ {3463317000 37800 1 ACDT}
+ {3479646600 34200 0 ACST}
+ {3495371400 37800 1 ACDT}
+ {3511096200 34200 0 ACST}
+ {3526821000 37800 1 ACDT}
+ {3542545800 34200 0 ACST}
+ {3558270600 37800 1 ACDT}
+ {3573995400 34200 0 ACST}
+ {3589720200 37800 1 ACDT}
+ {3605445000 34200 0 ACST}
+ {3621169800 37800 1 ACDT}
+ {3636894600 34200 0 ACST}
+ {3653224200 37800 1 ACDT}
+ {3668949000 34200 0 ACST}
+ {3684673800 37800 1 ACDT}
+ {3700398600 34200 0 ACST}
+ {3716123400 37800 1 ACDT}
+ {3731848200 34200 0 ACST}
+ {3747573000 37800 1 ACDT}
+ {3763297800 34200 0 ACST}
+ {3779022600 37800 1 ACDT}
+ {3794747400 34200 0 ACST}
+ {3810472200 37800 1 ACDT}
+ {3826197000 34200 0 ACST}
+ {3842526600 37800 1 ACDT}
+ {3858251400 34200 0 ACST}
+ {3873976200 37800 1 ACDT}
+ {3889701000 34200 0 ACST}
+ {3905425800 37800 1 ACDT}
+ {3921150600 34200 0 ACST}
+ {3936875400 37800 1 ACDT}
+ {3952600200 34200 0 ACST}
+ {3968325000 37800 1 ACDT}
+ {3984049800 34200 0 ACST}
+ {4000379400 37800 1 ACDT}
+ {4016104200 34200 0 ACST}
+ {4031829000 37800 1 ACDT}
+ {4047553800 34200 0 ACST}
+ {4063278600 37800 1 ACDT}
+ {4079003400 34200 0 ACST}
+ {4094728200 37800 1 ACDT}
}
diff --git a/library/tzdata/Australia/Currie b/library/tzdata/Australia/Currie
index ae6d1f0..936327b 100644
--- a/library/tzdata/Australia/Currie
+++ b/library/tzdata/Australia/Currie
@@ -2,272 +2,272 @@
set TZData(:Australia/Currie) {
{-9223372036854775808 34528 0 LMT}
- {-2345794528 36000 0 EST}
- {-1680508800 39600 1 EST}
- {-1669892400 39600 0 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {47138400 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {89136000 39600 1 EST}
- {100022400 36000 0 EST}
- {120585600 39600 1 EST}
- {131472000 36000 0 EST}
- {152035200 39600 1 EST}
- {162921600 36000 0 EST}
- {183484800 39600 1 EST}
- {194976000 36000 0 EST}
- {215539200 39600 1 EST}
- {226425600 36000 0 EST}
- {246988800 39600 1 EST}
- {257875200 36000 0 EST}
- {278438400 39600 1 EST}
- {289324800 36000 0 EST}
- {309888000 39600 1 EST}
- {320774400 36000 0 EST}
- {341337600 39600 1 EST}
- {352224000 36000 0 EST}
- {372787200 39600 1 EST}
- {386092800 36000 0 EST}
- {404841600 39600 1 EST}
- {417542400 36000 0 EST}
- {436291200 39600 1 EST}
- {447177600 36000 0 EST}
- {467740800 39600 1 EST}
- {478627200 36000 0 EST}
- {499190400 39600 1 EST}
- {510076800 36000 0 EST}
- {530035200 39600 1 EST}
- {542736000 36000 0 EST}
- {562089600 39600 1 EST}
- {574790400 36000 0 EST}
- {594144000 39600 1 EST}
- {606240000 36000 0 EST}
- {625593600 39600 1 EST}
- {637689600 36000 0 EST}
- {657043200 39600 1 EST}
- {670348800 36000 0 EST}
- {686678400 39600 1 EST}
- {701798400 36000 0 EST}
- {718128000 39600 1 EST}
- {733248000 36000 0 EST}
- {749577600 39600 1 EST}
- {764697600 36000 0 EST}
- {781027200 39600 1 EST}
- {796147200 36000 0 EST}
- {812476800 39600 1 EST}
- {828201600 36000 0 EST}
- {844531200 39600 1 EST}
- {859651200 36000 0 EST}
- {875980800 39600 1 EST}
- {891100800 36000 0 EST}
- {907430400 39600 1 EST}
- {922550400 36000 0 EST}
- {938880000 39600 1 EST}
- {954000000 36000 0 EST}
- {967305600 39600 1 EST}
- {985449600 36000 0 EST}
- {1002384000 39600 1 EST}
- {1017504000 36000 0 EST}
- {1033833600 39600 1 EST}
- {1048953600 36000 0 EST}
- {1065283200 39600 1 EST}
- {1080403200 36000 0 EST}
- {1096732800 39600 1 EST}
- {1111852800 36000 0 EST}
- {1128182400 39600 1 EST}
- {1143907200 36000 0 EST}
- {1159632000 39600 1 EST}
- {1174752000 36000 0 EST}
- {1191686400 39600 1 EST}
- {1207411200 36000 0 EST}
- {1223136000 39600 1 EST}
- {1238860800 36000 0 EST}
- {1254585600 39600 1 EST}
- {1270310400 36000 0 EST}
- {1286035200 39600 1 EST}
- {1301760000 36000 0 EST}
- {1317484800 39600 1 EST}
- {1333209600 36000 0 EST}
- {1349539200 39600 1 EST}
- {1365264000 36000 0 EST}
- {1380988800 39600 1 EST}
- {1396713600 36000 0 EST}
- {1412438400 39600 1 EST}
- {1428163200 36000 0 EST}
- {1443888000 39600 1 EST}
- {1459612800 36000 0 EST}
- {1475337600 39600 1 EST}
- {1491062400 36000 0 EST}
- {1506787200 39600 1 EST}
- {1522512000 36000 0 EST}
- {1538841600 39600 1 EST}
- {1554566400 36000 0 EST}
- {1570291200 39600 1 EST}
- {1586016000 36000 0 EST}
- {1601740800 39600 1 EST}
- {1617465600 36000 0 EST}
- {1633190400 39600 1 EST}
- {1648915200 36000 0 EST}
- {1664640000 39600 1 EST}
- {1680364800 36000 0 EST}
- {1696089600 39600 1 EST}
- {1712419200 36000 0 EST}
- {1728144000 39600 1 EST}
- {1743868800 36000 0 EST}
- {1759593600 39600 1 EST}
- {1775318400 36000 0 EST}
- {1791043200 39600 1 EST}
- {1806768000 36000 0 EST}
- {1822492800 39600 1 EST}
- {1838217600 36000 0 EST}
- {1853942400 39600 1 EST}
- {1869667200 36000 0 EST}
- {1885996800 39600 1 EST}
- {1901721600 36000 0 EST}
- {1917446400 39600 1 EST}
- {1933171200 36000 0 EST}
- {1948896000 39600 1 EST}
- {1964620800 36000 0 EST}
- {1980345600 39600 1 EST}
- {1996070400 36000 0 EST}
- {2011795200 39600 1 EST}
- {2027520000 36000 0 EST}
- {2043244800 39600 1 EST}
- {2058969600 36000 0 EST}
- {2075299200 39600 1 EST}
- {2091024000 36000 0 EST}
- {2106748800 39600 1 EST}
- {2122473600 36000 0 EST}
- {2138198400 39600 1 EST}
- {2153923200 36000 0 EST}
- {2169648000 39600 1 EST}
- {2185372800 36000 0 EST}
- {2201097600 39600 1 EST}
- {2216822400 36000 0 EST}
- {2233152000 39600 1 EST}
- {2248876800 36000 0 EST}
- {2264601600 39600 1 EST}
- {2280326400 36000 0 EST}
- {2296051200 39600 1 EST}
- {2311776000 36000 0 EST}
- {2327500800 39600 1 EST}
- {2343225600 36000 0 EST}
- {2358950400 39600 1 EST}
- {2374675200 36000 0 EST}
- {2390400000 39600 1 EST}
- {2406124800 36000 0 EST}
- {2422454400 39600 1 EST}
- {2438179200 36000 0 EST}
- {2453904000 39600 1 EST}
- {2469628800 36000 0 EST}
- {2485353600 39600 1 EST}
- {2501078400 36000 0 EST}
- {2516803200 39600 1 EST}
- {2532528000 36000 0 EST}
- {2548252800 39600 1 EST}
- {2563977600 36000 0 EST}
- {2579702400 39600 1 EST}
- {2596032000 36000 0 EST}
- {2611756800 39600 1 EST}
- {2627481600 36000 0 EST}
- {2643206400 39600 1 EST}
- {2658931200 36000 0 EST}
- {2674656000 39600 1 EST}
- {2690380800 36000 0 EST}
- {2706105600 39600 1 EST}
- {2721830400 36000 0 EST}
- {2737555200 39600 1 EST}
- {2753280000 36000 0 EST}
- {2769609600 39600 1 EST}
- {2785334400 36000 0 EST}
- {2801059200 39600 1 EST}
- {2816784000 36000 0 EST}
- {2832508800 39600 1 EST}
- {2848233600 36000 0 EST}
- {2863958400 39600 1 EST}
- {2879683200 36000 0 EST}
- {2895408000 39600 1 EST}
- {2911132800 36000 0 EST}
- {2926857600 39600 1 EST}
- {2942582400 36000 0 EST}
- {2958912000 39600 1 EST}
- {2974636800 36000 0 EST}
- {2990361600 39600 1 EST}
- {3006086400 36000 0 EST}
- {3021811200 39600 1 EST}
- {3037536000 36000 0 EST}
- {3053260800 39600 1 EST}
- {3068985600 36000 0 EST}
- {3084710400 39600 1 EST}
- {3100435200 36000 0 EST}
- {3116764800 39600 1 EST}
- {3132489600 36000 0 EST}
- {3148214400 39600 1 EST}
- {3163939200 36000 0 EST}
- {3179664000 39600 1 EST}
- {3195388800 36000 0 EST}
- {3211113600 39600 1 EST}
- {3226838400 36000 0 EST}
- {3242563200 39600 1 EST}
- {3258288000 36000 0 EST}
- {3274012800 39600 1 EST}
- {3289737600 36000 0 EST}
- {3306067200 39600 1 EST}
- {3321792000 36000 0 EST}
- {3337516800 39600 1 EST}
- {3353241600 36000 0 EST}
- {3368966400 39600 1 EST}
- {3384691200 36000 0 EST}
- {3400416000 39600 1 EST}
- {3416140800 36000 0 EST}
- {3431865600 39600 1 EST}
- {3447590400 36000 0 EST}
- {3463315200 39600 1 EST}
- {3479644800 36000 0 EST}
- {3495369600 39600 1 EST}
- {3511094400 36000 0 EST}
- {3526819200 39600 1 EST}
- {3542544000 36000 0 EST}
- {3558268800 39600 1 EST}
- {3573993600 36000 0 EST}
- {3589718400 39600 1 EST}
- {3605443200 36000 0 EST}
- {3621168000 39600 1 EST}
- {3636892800 36000 0 EST}
- {3653222400 39600 1 EST}
- {3668947200 36000 0 EST}
- {3684672000 39600 1 EST}
- {3700396800 36000 0 EST}
- {3716121600 39600 1 EST}
- {3731846400 36000 0 EST}
- {3747571200 39600 1 EST}
- {3763296000 36000 0 EST}
- {3779020800 39600 1 EST}
- {3794745600 36000 0 EST}
- {3810470400 39600 1 EST}
- {3826195200 36000 0 EST}
- {3842524800 39600 1 EST}
- {3858249600 36000 0 EST}
- {3873974400 39600 1 EST}
- {3889699200 36000 0 EST}
- {3905424000 39600 1 EST}
- {3921148800 36000 0 EST}
- {3936873600 39600 1 EST}
- {3952598400 36000 0 EST}
- {3968323200 39600 1 EST}
- {3984048000 36000 0 EST}
- {4000377600 39600 1 EST}
- {4016102400 36000 0 EST}
- {4031827200 39600 1 EST}
- {4047552000 36000 0 EST}
- {4063276800 39600 1 EST}
- {4079001600 36000 0 EST}
- {4094726400 39600 1 EST}
+ {-2345794528 36000 0 AEST}
+ {-1680508800 39600 1 AEDT}
+ {-1669892400 39600 0 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {47138400 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {89136000 39600 1 AEDT}
+ {100022400 36000 0 AEST}
+ {120585600 39600 1 AEDT}
+ {131472000 36000 0 AEST}
+ {152035200 39600 1 AEDT}
+ {162921600 36000 0 AEST}
+ {183484800 39600 1 AEDT}
+ {194976000 36000 0 AEST}
+ {215539200 39600 1 AEDT}
+ {226425600 36000 0 AEST}
+ {246988800 39600 1 AEDT}
+ {257875200 36000 0 AEST}
+ {278438400 39600 1 AEDT}
+ {289324800 36000 0 AEST}
+ {309888000 39600 1 AEDT}
+ {320774400 36000 0 AEST}
+ {341337600 39600 1 AEDT}
+ {352224000 36000 0 AEST}
+ {372787200 39600 1 AEDT}
+ {386092800 36000 0 AEST}
+ {404841600 39600 1 AEDT}
+ {417542400 36000 0 AEST}
+ {436291200 39600 1 AEDT}
+ {447177600 36000 0 AEST}
+ {467740800 39600 1 AEDT}
+ {478627200 36000 0 AEST}
+ {499190400 39600 1 AEDT}
+ {510076800 36000 0 AEST}
+ {530035200 39600 1 AEDT}
+ {542736000 36000 0 AEST}
+ {562089600 39600 1 AEDT}
+ {574790400 36000 0 AEST}
+ {594144000 39600 1 AEDT}
+ {606240000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {637689600 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {670348800 36000 0 AEST}
+ {686678400 39600 1 AEDT}
+ {701798400 36000 0 AEST}
+ {718128000 39600 1 AEDT}
+ {733248000 36000 0 AEST}
+ {749577600 39600 1 AEDT}
+ {764697600 36000 0 AEST}
+ {781027200 39600 1 AEDT}
+ {796147200 36000 0 AEST}
+ {812476800 39600 1 AEDT}
+ {828201600 36000 0 AEST}
+ {844531200 39600 1 AEDT}
+ {859651200 36000 0 AEST}
+ {875980800 39600 1 AEDT}
+ {891100800 36000 0 AEST}
+ {907430400 39600 1 AEDT}
+ {922550400 36000 0 AEST}
+ {938880000 39600 1 AEDT}
+ {954000000 36000 0 AEST}
+ {967305600 39600 1 AEDT}
+ {985449600 36000 0 AEST}
+ {1002384000 39600 1 AEDT}
+ {1017504000 36000 0 AEST}
+ {1033833600 39600 1 AEDT}
+ {1048953600 36000 0 AEST}
+ {1065283200 39600 1 AEDT}
+ {1080403200 36000 0 AEST}
+ {1096732800 39600 1 AEDT}
+ {1111852800 36000 0 AEST}
+ {1128182400 39600 1 AEDT}
+ {1143907200 36000 0 AEST}
+ {1159632000 39600 1 AEDT}
+ {1174752000 36000 0 AEST}
+ {1191686400 39600 1 AEDT}
+ {1207411200 36000 0 AEST}
+ {1223136000 39600 1 AEDT}
+ {1238860800 36000 0 AEST}
+ {1254585600 39600 1 AEDT}
+ {1270310400 36000 0 AEST}
+ {1286035200 39600 1 AEDT}
+ {1301760000 36000 0 AEST}
+ {1317484800 39600 1 AEDT}
+ {1333209600 36000 0 AEST}
+ {1349539200 39600 1 AEDT}
+ {1365264000 36000 0 AEST}
+ {1380988800 39600 1 AEDT}
+ {1396713600 36000 0 AEST}
+ {1412438400 39600 1 AEDT}
+ {1428163200 36000 0 AEST}
+ {1443888000 39600 1 AEDT}
+ {1459612800 36000 0 AEST}
+ {1475337600 39600 1 AEDT}
+ {1491062400 36000 0 AEST}
+ {1506787200 39600 1 AEDT}
+ {1522512000 36000 0 AEST}
+ {1538841600 39600 1 AEDT}
+ {1554566400 36000 0 AEST}
+ {1570291200 39600 1 AEDT}
+ {1586016000 36000 0 AEST}
+ {1601740800 39600 1 AEDT}
+ {1617465600 36000 0 AEST}
+ {1633190400 39600 1 AEDT}
+ {1648915200 36000 0 AEST}
+ {1664640000 39600 1 AEDT}
+ {1680364800 36000 0 AEST}
+ {1696089600 39600 1 AEDT}
+ {1712419200 36000 0 AEST}
+ {1728144000 39600 1 AEDT}
+ {1743868800 36000 0 AEST}
+ {1759593600 39600 1 AEDT}
+ {1775318400 36000 0 AEST}
+ {1791043200 39600 1 AEDT}
+ {1806768000 36000 0 AEST}
+ {1822492800 39600 1 AEDT}
+ {1838217600 36000 0 AEST}
+ {1853942400 39600 1 AEDT}
+ {1869667200 36000 0 AEST}
+ {1885996800 39600 1 AEDT}
+ {1901721600 36000 0 AEST}
+ {1917446400 39600 1 AEDT}
+ {1933171200 36000 0 AEST}
+ {1948896000 39600 1 AEDT}
+ {1964620800 36000 0 AEST}
+ {1980345600 39600 1 AEDT}
+ {1996070400 36000 0 AEST}
+ {2011795200 39600 1 AEDT}
+ {2027520000 36000 0 AEST}
+ {2043244800 39600 1 AEDT}
+ {2058969600 36000 0 AEST}
+ {2075299200 39600 1 AEDT}
+ {2091024000 36000 0 AEST}
+ {2106748800 39600 1 AEDT}
+ {2122473600 36000 0 AEST}
+ {2138198400 39600 1 AEDT}
+ {2153923200 36000 0 AEST}
+ {2169648000 39600 1 AEDT}
+ {2185372800 36000 0 AEST}
+ {2201097600 39600 1 AEDT}
+ {2216822400 36000 0 AEST}
+ {2233152000 39600 1 AEDT}
+ {2248876800 36000 0 AEST}
+ {2264601600 39600 1 AEDT}
+ {2280326400 36000 0 AEST}
+ {2296051200 39600 1 AEDT}
+ {2311776000 36000 0 AEST}
+ {2327500800 39600 1 AEDT}
+ {2343225600 36000 0 AEST}
+ {2358950400 39600 1 AEDT}
+ {2374675200 36000 0 AEST}
+ {2390400000 39600 1 AEDT}
+ {2406124800 36000 0 AEST}
+ {2422454400 39600 1 AEDT}
+ {2438179200 36000 0 AEST}
+ {2453904000 39600 1 AEDT}
+ {2469628800 36000 0 AEST}
+ {2485353600 39600 1 AEDT}
+ {2501078400 36000 0 AEST}
+ {2516803200 39600 1 AEDT}
+ {2532528000 36000 0 AEST}
+ {2548252800 39600 1 AEDT}
+ {2563977600 36000 0 AEST}
+ {2579702400 39600 1 AEDT}
+ {2596032000 36000 0 AEST}
+ {2611756800 39600 1 AEDT}
+ {2627481600 36000 0 AEST}
+ {2643206400 39600 1 AEDT}
+ {2658931200 36000 0 AEST}
+ {2674656000 39600 1 AEDT}
+ {2690380800 36000 0 AEST}
+ {2706105600 39600 1 AEDT}
+ {2721830400 36000 0 AEST}
+ {2737555200 39600 1 AEDT}
+ {2753280000 36000 0 AEST}
+ {2769609600 39600 1 AEDT}
+ {2785334400 36000 0 AEST}
+ {2801059200 39600 1 AEDT}
+ {2816784000 36000 0 AEST}
+ {2832508800 39600 1 AEDT}
+ {2848233600 36000 0 AEST}
+ {2863958400 39600 1 AEDT}
+ {2879683200 36000 0 AEST}
+ {2895408000 39600 1 AEDT}
+ {2911132800 36000 0 AEST}
+ {2926857600 39600 1 AEDT}
+ {2942582400 36000 0 AEST}
+ {2958912000 39600 1 AEDT}
+ {2974636800 36000 0 AEST}
+ {2990361600 39600 1 AEDT}
+ {3006086400 36000 0 AEST}
+ {3021811200 39600 1 AEDT}
+ {3037536000 36000 0 AEST}
+ {3053260800 39600 1 AEDT}
+ {3068985600 36000 0 AEST}
+ {3084710400 39600 1 AEDT}
+ {3100435200 36000 0 AEST}
+ {3116764800 39600 1 AEDT}
+ {3132489600 36000 0 AEST}
+ {3148214400 39600 1 AEDT}
+ {3163939200 36000 0 AEST}
+ {3179664000 39600 1 AEDT}
+ {3195388800 36000 0 AEST}
+ {3211113600 39600 1 AEDT}
+ {3226838400 36000 0 AEST}
+ {3242563200 39600 1 AEDT}
+ {3258288000 36000 0 AEST}
+ {3274012800 39600 1 AEDT}
+ {3289737600 36000 0 AEST}
+ {3306067200 39600 1 AEDT}
+ {3321792000 36000 0 AEST}
+ {3337516800 39600 1 AEDT}
+ {3353241600 36000 0 AEST}
+ {3368966400 39600 1 AEDT}
+ {3384691200 36000 0 AEST}
+ {3400416000 39600 1 AEDT}
+ {3416140800 36000 0 AEST}
+ {3431865600 39600 1 AEDT}
+ {3447590400 36000 0 AEST}
+ {3463315200 39600 1 AEDT}
+ {3479644800 36000 0 AEST}
+ {3495369600 39600 1 AEDT}
+ {3511094400 36000 0 AEST}
+ {3526819200 39600 1 AEDT}
+ {3542544000 36000 0 AEST}
+ {3558268800 39600 1 AEDT}
+ {3573993600 36000 0 AEST}
+ {3589718400 39600 1 AEDT}
+ {3605443200 36000 0 AEST}
+ {3621168000 39600 1 AEDT}
+ {3636892800 36000 0 AEST}
+ {3653222400 39600 1 AEDT}
+ {3668947200 36000 0 AEST}
+ {3684672000 39600 1 AEDT}
+ {3700396800 36000 0 AEST}
+ {3716121600 39600 1 AEDT}
+ {3731846400 36000 0 AEST}
+ {3747571200 39600 1 AEDT}
+ {3763296000 36000 0 AEST}
+ {3779020800 39600 1 AEDT}
+ {3794745600 36000 0 AEST}
+ {3810470400 39600 1 AEDT}
+ {3826195200 36000 0 AEST}
+ {3842524800 39600 1 AEDT}
+ {3858249600 36000 0 AEST}
+ {3873974400 39600 1 AEDT}
+ {3889699200 36000 0 AEST}
+ {3905424000 39600 1 AEDT}
+ {3921148800 36000 0 AEST}
+ {3936873600 39600 1 AEDT}
+ {3952598400 36000 0 AEST}
+ {3968323200 39600 1 AEDT}
+ {3984048000 36000 0 AEST}
+ {4000377600 39600 1 AEDT}
+ {4016102400 36000 0 AEST}
+ {4031827200 39600 1 AEDT}
+ {4047552000 36000 0 AEST}
+ {4063276800 39600 1 AEDT}
+ {4079001600 36000 0 AEST}
+ {4094726400 39600 1 AEDT}
}
diff --git a/library/tzdata/Australia/Darwin b/library/tzdata/Australia/Darwin
index 9be372d..e77605d 100644
--- a/library/tzdata/Australia/Darwin
+++ b/library/tzdata/Australia/Darwin
@@ -2,14 +2,14 @@
set TZData(:Australia/Darwin) {
{-9223372036854775808 31400 0 LMT}
- {-2364108200 32400 0 CST}
- {-2230189200 34200 0 CST}
- {-1672565340 37800 1 CST}
- {-1665390600 34200 0 CST}
- {-883639800 37800 1 CST}
- {-876126600 34200 0 CST}
- {-860398200 37800 1 CST}
- {-844677000 34200 0 CST}
- {-828343800 37800 1 CST}
- {-813227400 34200 0 CST}
+ {-2364108200 32400 0 ACST}
+ {-2230189200 34200 0 ACST}
+ {-1672565340 37800 1 ACDT}
+ {-1665390600 34200 0 ACST}
+ {-883639800 37800 1 ACDT}
+ {-876126600 34200 0 ACST}
+ {-860398200 37800 1 ACDT}
+ {-844677000 34200 0 ACST}
+ {-828343800 37800 1 ACDT}
+ {-813227400 34200 0 ACST}
}
diff --git a/library/tzdata/Australia/Eucla b/library/tzdata/Australia/Eucla
index 0f8ed4d..08a1948 100644
--- a/library/tzdata/Australia/Eucla
+++ b/library/tzdata/Australia/Eucla
@@ -2,24 +2,24 @@
set TZData(:Australia/Eucla) {
{-9223372036854775808 30928 0 LMT}
- {-2337928528 31500 0 CWST}
- {-1672562640 35100 1 CWST}
- {-1665387900 31500 0 CWST}
- {-883637100 35100 1 CWST}
- {-876123900 31500 0 CWST}
- {-860395500 35100 1 CWST}
- {-844674300 31500 0 CWST}
- {-836473500 35100 0 CWST}
- {152039700 35100 1 CWST}
- {162926100 31500 0 CWST}
- {436295700 35100 1 CWST}
- {447182100 31500 0 CWST}
- {690311700 35100 1 CWST}
- {699383700 31500 0 CWST}
- {1165079700 35100 1 CWST}
- {1174756500 31500 0 CWST}
- {1193505300 35100 1 CWST}
- {1206810900 31500 0 CWST}
- {1224954900 35100 1 CWST}
- {1238260500 31500 0 CWST}
+ {-2337928528 31500 0 ACWST}
+ {-1672562640 35100 1 ACWDT}
+ {-1665387900 31500 0 ACWST}
+ {-883637100 35100 1 ACWDT}
+ {-876123900 31500 0 ACWST}
+ {-860395500 35100 1 ACWDT}
+ {-844674300 31500 0 ACWST}
+ {-836473500 35100 0 ACWST}
+ {152039700 35100 1 ACWDT}
+ {162926100 31500 0 ACWST}
+ {436295700 35100 1 ACWDT}
+ {447182100 31500 0 ACWST}
+ {690311700 35100 1 ACWDT}
+ {699383700 31500 0 ACWST}
+ {1165079700 35100 1 ACWDT}
+ {1174756500 31500 0 ACWST}
+ {1193505300 35100 1 ACWDT}
+ {1206810900 31500 0 ACWST}
+ {1224954900 35100 1 ACWDT}
+ {1238260500 31500 0 ACWST}
}
diff --git a/library/tzdata/Australia/Hobart b/library/tzdata/Australia/Hobart
index 8f27110..bf5adf0 100644
--- a/library/tzdata/Australia/Hobart
+++ b/library/tzdata/Australia/Hobart
@@ -2,280 +2,280 @@
set TZData(:Australia/Hobart) {
{-9223372036854775808 35356 0 LMT}
- {-2345795356 36000 0 EST}
- {-1680508800 39600 1 EST}
- {-1669892400 39600 0 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {-94730400 36000 0 EST}
- {-71136000 39600 1 EST}
- {-55411200 36000 0 EST}
- {-37267200 39600 1 EST}
- {-25776000 36000 0 EST}
- {-5817600 39600 1 EST}
- {5673600 36000 0 EST}
- {25632000 39600 1 EST}
- {37728000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {89136000 39600 1 EST}
- {100022400 36000 0 EST}
- {120585600 39600 1 EST}
- {131472000 36000 0 EST}
- {152035200 39600 1 EST}
- {162921600 36000 0 EST}
- {183484800 39600 1 EST}
- {194976000 36000 0 EST}
- {215539200 39600 1 EST}
- {226425600 36000 0 EST}
- {246988800 39600 1 EST}
- {257875200 36000 0 EST}
- {278438400 39600 1 EST}
- {289324800 36000 0 EST}
- {309888000 39600 1 EST}
- {320774400 36000 0 EST}
- {341337600 39600 1 EST}
- {352224000 36000 0 EST}
- {372787200 39600 1 EST}
- {386092800 36000 0 EST}
- {404841600 39600 1 EST}
- {417542400 36000 0 EST}
- {436291200 39600 1 EST}
- {447177600 36000 0 EST}
- {467740800 39600 1 EST}
- {478627200 36000 0 EST}
- {499190400 39600 1 EST}
- {510076800 36000 0 EST}
- {530035200 39600 1 EST}
- {542736000 36000 0 EST}
- {562089600 39600 1 EST}
- {574790400 36000 0 EST}
- {594144000 39600 1 EST}
- {606240000 36000 0 EST}
- {625593600 39600 1 EST}
- {637689600 36000 0 EST}
- {657043200 39600 1 EST}
- {670348800 36000 0 EST}
- {686678400 39600 1 EST}
- {701798400 36000 0 EST}
- {718128000 39600 1 EST}
- {733248000 36000 0 EST}
- {749577600 39600 1 EST}
- {764697600 36000 0 EST}
- {781027200 39600 1 EST}
- {796147200 36000 0 EST}
- {812476800 39600 1 EST}
- {828201600 36000 0 EST}
- {844531200 39600 1 EST}
- {859651200 36000 0 EST}
- {875980800 39600 1 EST}
- {891100800 36000 0 EST}
- {907430400 39600 1 EST}
- {922550400 36000 0 EST}
- {938880000 39600 1 EST}
- {954000000 36000 0 EST}
- {967305600 39600 1 EST}
- {985449600 36000 0 EST}
- {1002384000 39600 1 EST}
- {1017504000 36000 0 EST}
- {1033833600 39600 1 EST}
- {1048953600 36000 0 EST}
- {1065283200 39600 1 EST}
- {1080403200 36000 0 EST}
- {1096732800 39600 1 EST}
- {1111852800 36000 0 EST}
- {1128182400 39600 1 EST}
- {1143907200 36000 0 EST}
- {1159632000 39600 1 EST}
- {1174752000 36000 0 EST}
- {1191686400 39600 1 EST}
- {1207411200 36000 0 EST}
- {1223136000 39600 1 EST}
- {1238860800 36000 0 EST}
- {1254585600 39600 1 EST}
- {1270310400 36000 0 EST}
- {1286035200 39600 1 EST}
- {1301760000 36000 0 EST}
- {1317484800 39600 1 EST}
- {1333209600 36000 0 EST}
- {1349539200 39600 1 EST}
- {1365264000 36000 0 EST}
- {1380988800 39600 1 EST}
- {1396713600 36000 0 EST}
- {1412438400 39600 1 EST}
- {1428163200 36000 0 EST}
- {1443888000 39600 1 EST}
- {1459612800 36000 0 EST}
- {1475337600 39600 1 EST}
- {1491062400 36000 0 EST}
- {1506787200 39600 1 EST}
- {1522512000 36000 0 EST}
- {1538841600 39600 1 EST}
- {1554566400 36000 0 EST}
- {1570291200 39600 1 EST}
- {1586016000 36000 0 EST}
- {1601740800 39600 1 EST}
- {1617465600 36000 0 EST}
- {1633190400 39600 1 EST}
- {1648915200 36000 0 EST}
- {1664640000 39600 1 EST}
- {1680364800 36000 0 EST}
- {1696089600 39600 1 EST}
- {1712419200 36000 0 EST}
- {1728144000 39600 1 EST}
- {1743868800 36000 0 EST}
- {1759593600 39600 1 EST}
- {1775318400 36000 0 EST}
- {1791043200 39600 1 EST}
- {1806768000 36000 0 EST}
- {1822492800 39600 1 EST}
- {1838217600 36000 0 EST}
- {1853942400 39600 1 EST}
- {1869667200 36000 0 EST}
- {1885996800 39600 1 EST}
- {1901721600 36000 0 EST}
- {1917446400 39600 1 EST}
- {1933171200 36000 0 EST}
- {1948896000 39600 1 EST}
- {1964620800 36000 0 EST}
- {1980345600 39600 1 EST}
- {1996070400 36000 0 EST}
- {2011795200 39600 1 EST}
- {2027520000 36000 0 EST}
- {2043244800 39600 1 EST}
- {2058969600 36000 0 EST}
- {2075299200 39600 1 EST}
- {2091024000 36000 0 EST}
- {2106748800 39600 1 EST}
- {2122473600 36000 0 EST}
- {2138198400 39600 1 EST}
- {2153923200 36000 0 EST}
- {2169648000 39600 1 EST}
- {2185372800 36000 0 EST}
- {2201097600 39600 1 EST}
- {2216822400 36000 0 EST}
- {2233152000 39600 1 EST}
- {2248876800 36000 0 EST}
- {2264601600 39600 1 EST}
- {2280326400 36000 0 EST}
- {2296051200 39600 1 EST}
- {2311776000 36000 0 EST}
- {2327500800 39600 1 EST}
- {2343225600 36000 0 EST}
- {2358950400 39600 1 EST}
- {2374675200 36000 0 EST}
- {2390400000 39600 1 EST}
- {2406124800 36000 0 EST}
- {2422454400 39600 1 EST}
- {2438179200 36000 0 EST}
- {2453904000 39600 1 EST}
- {2469628800 36000 0 EST}
- {2485353600 39600 1 EST}
- {2501078400 36000 0 EST}
- {2516803200 39600 1 EST}
- {2532528000 36000 0 EST}
- {2548252800 39600 1 EST}
- {2563977600 36000 0 EST}
- {2579702400 39600 1 EST}
- {2596032000 36000 0 EST}
- {2611756800 39600 1 EST}
- {2627481600 36000 0 EST}
- {2643206400 39600 1 EST}
- {2658931200 36000 0 EST}
- {2674656000 39600 1 EST}
- {2690380800 36000 0 EST}
- {2706105600 39600 1 EST}
- {2721830400 36000 0 EST}
- {2737555200 39600 1 EST}
- {2753280000 36000 0 EST}
- {2769609600 39600 1 EST}
- {2785334400 36000 0 EST}
- {2801059200 39600 1 EST}
- {2816784000 36000 0 EST}
- {2832508800 39600 1 EST}
- {2848233600 36000 0 EST}
- {2863958400 39600 1 EST}
- {2879683200 36000 0 EST}
- {2895408000 39600 1 EST}
- {2911132800 36000 0 EST}
- {2926857600 39600 1 EST}
- {2942582400 36000 0 EST}
- {2958912000 39600 1 EST}
- {2974636800 36000 0 EST}
- {2990361600 39600 1 EST}
- {3006086400 36000 0 EST}
- {3021811200 39600 1 EST}
- {3037536000 36000 0 EST}
- {3053260800 39600 1 EST}
- {3068985600 36000 0 EST}
- {3084710400 39600 1 EST}
- {3100435200 36000 0 EST}
- {3116764800 39600 1 EST}
- {3132489600 36000 0 EST}
- {3148214400 39600 1 EST}
- {3163939200 36000 0 EST}
- {3179664000 39600 1 EST}
- {3195388800 36000 0 EST}
- {3211113600 39600 1 EST}
- {3226838400 36000 0 EST}
- {3242563200 39600 1 EST}
- {3258288000 36000 0 EST}
- {3274012800 39600 1 EST}
- {3289737600 36000 0 EST}
- {3306067200 39600 1 EST}
- {3321792000 36000 0 EST}
- {3337516800 39600 1 EST}
- {3353241600 36000 0 EST}
- {3368966400 39600 1 EST}
- {3384691200 36000 0 EST}
- {3400416000 39600 1 EST}
- {3416140800 36000 0 EST}
- {3431865600 39600 1 EST}
- {3447590400 36000 0 EST}
- {3463315200 39600 1 EST}
- {3479644800 36000 0 EST}
- {3495369600 39600 1 EST}
- {3511094400 36000 0 EST}
- {3526819200 39600 1 EST}
- {3542544000 36000 0 EST}
- {3558268800 39600 1 EST}
- {3573993600 36000 0 EST}
- {3589718400 39600 1 EST}
- {3605443200 36000 0 EST}
- {3621168000 39600 1 EST}
- {3636892800 36000 0 EST}
- {3653222400 39600 1 EST}
- {3668947200 36000 0 EST}
- {3684672000 39600 1 EST}
- {3700396800 36000 0 EST}
- {3716121600 39600 1 EST}
- {3731846400 36000 0 EST}
- {3747571200 39600 1 EST}
- {3763296000 36000 0 EST}
- {3779020800 39600 1 EST}
- {3794745600 36000 0 EST}
- {3810470400 39600 1 EST}
- {3826195200 36000 0 EST}
- {3842524800 39600 1 EST}
- {3858249600 36000 0 EST}
- {3873974400 39600 1 EST}
- {3889699200 36000 0 EST}
- {3905424000 39600 1 EST}
- {3921148800 36000 0 EST}
- {3936873600 39600 1 EST}
- {3952598400 36000 0 EST}
- {3968323200 39600 1 EST}
- {3984048000 36000 0 EST}
- {4000377600 39600 1 EST}
- {4016102400 36000 0 EST}
- {4031827200 39600 1 EST}
- {4047552000 36000 0 EST}
- {4063276800 39600 1 EST}
- {4079001600 36000 0 EST}
- {4094726400 39600 1 EST}
+ {-2345795356 36000 0 AEST}
+ {-1680508800 39600 1 AEDT}
+ {-1669892400 39600 0 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {-94730400 36000 0 AEST}
+ {-71136000 39600 1 AEDT}
+ {-55411200 36000 0 AEST}
+ {-37267200 39600 1 AEDT}
+ {-25776000 36000 0 AEST}
+ {-5817600 39600 1 AEDT}
+ {5673600 36000 0 AEST}
+ {25632000 39600 1 AEDT}
+ {37728000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {89136000 39600 1 AEDT}
+ {100022400 36000 0 AEST}
+ {120585600 39600 1 AEDT}
+ {131472000 36000 0 AEST}
+ {152035200 39600 1 AEDT}
+ {162921600 36000 0 AEST}
+ {183484800 39600 1 AEDT}
+ {194976000 36000 0 AEST}
+ {215539200 39600 1 AEDT}
+ {226425600 36000 0 AEST}
+ {246988800 39600 1 AEDT}
+ {257875200 36000 0 AEST}
+ {278438400 39600 1 AEDT}
+ {289324800 36000 0 AEST}
+ {309888000 39600 1 AEDT}
+ {320774400 36000 0 AEST}
+ {341337600 39600 1 AEDT}
+ {352224000 36000 0 AEST}
+ {372787200 39600 1 AEDT}
+ {386092800 36000 0 AEST}
+ {404841600 39600 1 AEDT}
+ {417542400 36000 0 AEST}
+ {436291200 39600 1 AEDT}
+ {447177600 36000 0 AEST}
+ {467740800 39600 1 AEDT}
+ {478627200 36000 0 AEST}
+ {499190400 39600 1 AEDT}
+ {510076800 36000 0 AEST}
+ {530035200 39600 1 AEDT}
+ {542736000 36000 0 AEST}
+ {562089600 39600 1 AEDT}
+ {574790400 36000 0 AEST}
+ {594144000 39600 1 AEDT}
+ {606240000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {637689600 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {670348800 36000 0 AEST}
+ {686678400 39600 1 AEDT}
+ {701798400 36000 0 AEST}
+ {718128000 39600 1 AEDT}
+ {733248000 36000 0 AEST}
+ {749577600 39600 1 AEDT}
+ {764697600 36000 0 AEST}
+ {781027200 39600 1 AEDT}
+ {796147200 36000 0 AEST}
+ {812476800 39600 1 AEDT}
+ {828201600 36000 0 AEST}
+ {844531200 39600 1 AEDT}
+ {859651200 36000 0 AEST}
+ {875980800 39600 1 AEDT}
+ {891100800 36000 0 AEST}
+ {907430400 39600 1 AEDT}
+ {922550400 36000 0 AEST}
+ {938880000 39600 1 AEDT}
+ {954000000 36000 0 AEST}
+ {967305600 39600 1 AEDT}
+ {985449600 36000 0 AEST}
+ {1002384000 39600 1 AEDT}
+ {1017504000 36000 0 AEST}
+ {1033833600 39600 1 AEDT}
+ {1048953600 36000 0 AEST}
+ {1065283200 39600 1 AEDT}
+ {1080403200 36000 0 AEST}
+ {1096732800 39600 1 AEDT}
+ {1111852800 36000 0 AEST}
+ {1128182400 39600 1 AEDT}
+ {1143907200 36000 0 AEST}
+ {1159632000 39600 1 AEDT}
+ {1174752000 36000 0 AEST}
+ {1191686400 39600 1 AEDT}
+ {1207411200 36000 0 AEST}
+ {1223136000 39600 1 AEDT}
+ {1238860800 36000 0 AEST}
+ {1254585600 39600 1 AEDT}
+ {1270310400 36000 0 AEST}
+ {1286035200 39600 1 AEDT}
+ {1301760000 36000 0 AEST}
+ {1317484800 39600 1 AEDT}
+ {1333209600 36000 0 AEST}
+ {1349539200 39600 1 AEDT}
+ {1365264000 36000 0 AEST}
+ {1380988800 39600 1 AEDT}
+ {1396713600 36000 0 AEST}
+ {1412438400 39600 1 AEDT}
+ {1428163200 36000 0 AEST}
+ {1443888000 39600 1 AEDT}
+ {1459612800 36000 0 AEST}
+ {1475337600 39600 1 AEDT}
+ {1491062400 36000 0 AEST}
+ {1506787200 39600 1 AEDT}
+ {1522512000 36000 0 AEST}
+ {1538841600 39600 1 AEDT}
+ {1554566400 36000 0 AEST}
+ {1570291200 39600 1 AEDT}
+ {1586016000 36000 0 AEST}
+ {1601740800 39600 1 AEDT}
+ {1617465600 36000 0 AEST}
+ {1633190400 39600 1 AEDT}
+ {1648915200 36000 0 AEST}
+ {1664640000 39600 1 AEDT}
+ {1680364800 36000 0 AEST}
+ {1696089600 39600 1 AEDT}
+ {1712419200 36000 0 AEST}
+ {1728144000 39600 1 AEDT}
+ {1743868800 36000 0 AEST}
+ {1759593600 39600 1 AEDT}
+ {1775318400 36000 0 AEST}
+ {1791043200 39600 1 AEDT}
+ {1806768000 36000 0 AEST}
+ {1822492800 39600 1 AEDT}
+ {1838217600 36000 0 AEST}
+ {1853942400 39600 1 AEDT}
+ {1869667200 36000 0 AEST}
+ {1885996800 39600 1 AEDT}
+ {1901721600 36000 0 AEST}
+ {1917446400 39600 1 AEDT}
+ {1933171200 36000 0 AEST}
+ {1948896000 39600 1 AEDT}
+ {1964620800 36000 0 AEST}
+ {1980345600 39600 1 AEDT}
+ {1996070400 36000 0 AEST}
+ {2011795200 39600 1 AEDT}
+ {2027520000 36000 0 AEST}
+ {2043244800 39600 1 AEDT}
+ {2058969600 36000 0 AEST}
+ {2075299200 39600 1 AEDT}
+ {2091024000 36000 0 AEST}
+ {2106748800 39600 1 AEDT}
+ {2122473600 36000 0 AEST}
+ {2138198400 39600 1 AEDT}
+ {2153923200 36000 0 AEST}
+ {2169648000 39600 1 AEDT}
+ {2185372800 36000 0 AEST}
+ {2201097600 39600 1 AEDT}
+ {2216822400 36000 0 AEST}
+ {2233152000 39600 1 AEDT}
+ {2248876800 36000 0 AEST}
+ {2264601600 39600 1 AEDT}
+ {2280326400 36000 0 AEST}
+ {2296051200 39600 1 AEDT}
+ {2311776000 36000 0 AEST}
+ {2327500800 39600 1 AEDT}
+ {2343225600 36000 0 AEST}
+ {2358950400 39600 1 AEDT}
+ {2374675200 36000 0 AEST}
+ {2390400000 39600 1 AEDT}
+ {2406124800 36000 0 AEST}
+ {2422454400 39600 1 AEDT}
+ {2438179200 36000 0 AEST}
+ {2453904000 39600 1 AEDT}
+ {2469628800 36000 0 AEST}
+ {2485353600 39600 1 AEDT}
+ {2501078400 36000 0 AEST}
+ {2516803200 39600 1 AEDT}
+ {2532528000 36000 0 AEST}
+ {2548252800 39600 1 AEDT}
+ {2563977600 36000 0 AEST}
+ {2579702400 39600 1 AEDT}
+ {2596032000 36000 0 AEST}
+ {2611756800 39600 1 AEDT}
+ {2627481600 36000 0 AEST}
+ {2643206400 39600 1 AEDT}
+ {2658931200 36000 0 AEST}
+ {2674656000 39600 1 AEDT}
+ {2690380800 36000 0 AEST}
+ {2706105600 39600 1 AEDT}
+ {2721830400 36000 0 AEST}
+ {2737555200 39600 1 AEDT}
+ {2753280000 36000 0 AEST}
+ {2769609600 39600 1 AEDT}
+ {2785334400 36000 0 AEST}
+ {2801059200 39600 1 AEDT}
+ {2816784000 36000 0 AEST}
+ {2832508800 39600 1 AEDT}
+ {2848233600 36000 0 AEST}
+ {2863958400 39600 1 AEDT}
+ {2879683200 36000 0 AEST}
+ {2895408000 39600 1 AEDT}
+ {2911132800 36000 0 AEST}
+ {2926857600 39600 1 AEDT}
+ {2942582400 36000 0 AEST}
+ {2958912000 39600 1 AEDT}
+ {2974636800 36000 0 AEST}
+ {2990361600 39600 1 AEDT}
+ {3006086400 36000 0 AEST}
+ {3021811200 39600 1 AEDT}
+ {3037536000 36000 0 AEST}
+ {3053260800 39600 1 AEDT}
+ {3068985600 36000 0 AEST}
+ {3084710400 39600 1 AEDT}
+ {3100435200 36000 0 AEST}
+ {3116764800 39600 1 AEDT}
+ {3132489600 36000 0 AEST}
+ {3148214400 39600 1 AEDT}
+ {3163939200 36000 0 AEST}
+ {3179664000 39600 1 AEDT}
+ {3195388800 36000 0 AEST}
+ {3211113600 39600 1 AEDT}
+ {3226838400 36000 0 AEST}
+ {3242563200 39600 1 AEDT}
+ {3258288000 36000 0 AEST}
+ {3274012800 39600 1 AEDT}
+ {3289737600 36000 0 AEST}
+ {3306067200 39600 1 AEDT}
+ {3321792000 36000 0 AEST}
+ {3337516800 39600 1 AEDT}
+ {3353241600 36000 0 AEST}
+ {3368966400 39600 1 AEDT}
+ {3384691200 36000 0 AEST}
+ {3400416000 39600 1 AEDT}
+ {3416140800 36000 0 AEST}
+ {3431865600 39600 1 AEDT}
+ {3447590400 36000 0 AEST}
+ {3463315200 39600 1 AEDT}
+ {3479644800 36000 0 AEST}
+ {3495369600 39600 1 AEDT}
+ {3511094400 36000 0 AEST}
+ {3526819200 39600 1 AEDT}
+ {3542544000 36000 0 AEST}
+ {3558268800 39600 1 AEDT}
+ {3573993600 36000 0 AEST}
+ {3589718400 39600 1 AEDT}
+ {3605443200 36000 0 AEST}
+ {3621168000 39600 1 AEDT}
+ {3636892800 36000 0 AEST}
+ {3653222400 39600 1 AEDT}
+ {3668947200 36000 0 AEST}
+ {3684672000 39600 1 AEDT}
+ {3700396800 36000 0 AEST}
+ {3716121600 39600 1 AEDT}
+ {3731846400 36000 0 AEST}
+ {3747571200 39600 1 AEDT}
+ {3763296000 36000 0 AEST}
+ {3779020800 39600 1 AEDT}
+ {3794745600 36000 0 AEST}
+ {3810470400 39600 1 AEDT}
+ {3826195200 36000 0 AEST}
+ {3842524800 39600 1 AEDT}
+ {3858249600 36000 0 AEST}
+ {3873974400 39600 1 AEDT}
+ {3889699200 36000 0 AEST}
+ {3905424000 39600 1 AEDT}
+ {3921148800 36000 0 AEST}
+ {3936873600 39600 1 AEDT}
+ {3952598400 36000 0 AEST}
+ {3968323200 39600 1 AEDT}
+ {3984048000 36000 0 AEST}
+ {4000377600 39600 1 AEDT}
+ {4016102400 36000 0 AEST}
+ {4031827200 39600 1 AEDT}
+ {4047552000 36000 0 AEST}
+ {4063276800 39600 1 AEDT}
+ {4079001600 36000 0 AEST}
+ {4094726400 39600 1 AEDT}
}
diff --git a/library/tzdata/Australia/Lindeman b/library/tzdata/Australia/Lindeman
index de11c35..91ad0a6 100644
--- a/library/tzdata/Australia/Lindeman
+++ b/library/tzdata/Australia/Lindeman
@@ -2,27 +2,27 @@
set TZData(:Australia/Lindeman) {
{-9223372036854775808 35756 0 LMT}
- {-2366790956 36000 0 EST}
- {-1672567140 39600 1 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {31500000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {625593600 39600 1 EST}
- {636480000 36000 0 EST}
- {657043200 39600 1 EST}
- {667929600 36000 0 EST}
- {688492800 39600 1 EST}
- {699379200 36000 0 EST}
- {709912800 36000 0 EST}
- {719942400 39600 1 EST}
- {731433600 36000 0 EST}
- {751996800 39600 1 EST}
- {762883200 36000 0 EST}
+ {-2366790956 36000 0 AEST}
+ {-1672567140 39600 1 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {31500000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {636480000 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {667929600 36000 0 AEST}
+ {688492800 39600 1 AEDT}
+ {699379200 36000 0 AEST}
+ {709912800 36000 0 AEST}
+ {719942400 39600 1 AEDT}
+ {731433600 36000 0 AEST}
+ {751996800 39600 1 AEDT}
+ {762883200 36000 0 AEST}
}
diff --git a/library/tzdata/Australia/Lord_Howe b/library/tzdata/Australia/Lord_Howe
index da094e5..a8ff80e 100644
--- a/library/tzdata/Australia/Lord_Howe
+++ b/library/tzdata/Australia/Lord_Howe
@@ -2,243 +2,243 @@
set TZData(:Australia/Lord_Howe) {
{-9223372036854775808 38180 0 LMT}
- {-2364114980 36000 0 EST}
+ {-2364114980 36000 0 AEST}
{352216800 37800 0 LHST}
- {372785400 41400 1 LHST}
+ {372785400 41400 1 LHDT}
{384273000 37800 0 LHST}
- {404839800 41400 1 LHST}
+ {404839800 41400 1 LHDT}
{415722600 37800 0 LHST}
- {436289400 41400 1 LHST}
+ {436289400 41400 1 LHDT}
{447172200 37800 0 LHST}
- {467739000 41400 1 LHST}
+ {467739000 41400 1 LHDT}
{478621800 37800 0 LHST}
- {499188600 39600 1 LHST}
+ {499188600 39600 1 LHDT}
{511282800 37800 0 LHST}
- {530033400 39600 1 LHST}
+ {530033400 39600 1 LHDT}
{542732400 37800 0 LHST}
- {562087800 39600 1 LHST}
+ {562087800 39600 1 LHDT}
{574786800 37800 0 LHST}
- {594142200 39600 1 LHST}
+ {594142200 39600 1 LHDT}
{606236400 37800 0 LHST}
- {625591800 39600 1 LHST}
+ {625591800 39600 1 LHDT}
{636476400 37800 0 LHST}
- {657041400 39600 1 LHST}
+ {657041400 39600 1 LHDT}
{667926000 37800 0 LHST}
- {688491000 39600 1 LHST}
+ {688491000 39600 1 LHDT}
{699375600 37800 0 LHST}
- {719940600 39600 1 LHST}
+ {719940600 39600 1 LHDT}
{731430000 37800 0 LHST}
- {751995000 39600 1 LHST}
+ {751995000 39600 1 LHDT}
{762879600 37800 0 LHST}
- {783444600 39600 1 LHST}
+ {783444600 39600 1 LHDT}
{794329200 37800 0 LHST}
- {814894200 39600 1 LHST}
+ {814894200 39600 1 LHDT}
{828198000 37800 0 LHST}
- {846343800 39600 1 LHST}
+ {846343800 39600 1 LHDT}
{859647600 37800 0 LHST}
- {877793400 39600 1 LHST}
+ {877793400 39600 1 LHDT}
{891097200 37800 0 LHST}
- {909243000 39600 1 LHST}
+ {909243000 39600 1 LHDT}
{922546800 37800 0 LHST}
- {941297400 39600 1 LHST}
+ {941297400 39600 1 LHDT}
{953996400 37800 0 LHST}
- {967303800 39600 1 LHST}
+ {967303800 39600 1 LHDT}
{985446000 37800 0 LHST}
- {1004196600 39600 1 LHST}
+ {1004196600 39600 1 LHDT}
{1017500400 37800 0 LHST}
- {1035646200 39600 1 LHST}
+ {1035646200 39600 1 LHDT}
{1048950000 37800 0 LHST}
- {1067095800 39600 1 LHST}
+ {1067095800 39600 1 LHDT}
{1080399600 37800 0 LHST}
- {1099150200 39600 1 LHST}
+ {1099150200 39600 1 LHDT}
{1111849200 37800 0 LHST}
- {1130599800 39600 1 LHST}
+ {1130599800 39600 1 LHDT}
{1143903600 37800 0 LHST}
- {1162049400 39600 1 LHST}
+ {1162049400 39600 1 LHDT}
{1174748400 37800 0 LHST}
- {1193499000 39600 1 LHST}
+ {1193499000 39600 1 LHDT}
{1207407600 37800 0 LHST}
- {1223134200 39600 1 LHST}
+ {1223134200 39600 1 LHDT}
{1238857200 37800 0 LHST}
- {1254583800 39600 1 LHST}
+ {1254583800 39600 1 LHDT}
{1270306800 37800 0 LHST}
- {1286033400 39600 1 LHST}
+ {1286033400 39600 1 LHDT}
{1301756400 37800 0 LHST}
- {1317483000 39600 1 LHST}
+ {1317483000 39600 1 LHDT}
{1333206000 37800 0 LHST}
- {1349537400 39600 1 LHST}
+ {1349537400 39600 1 LHDT}
{1365260400 37800 0 LHST}
- {1380987000 39600 1 LHST}
+ {1380987000 39600 1 LHDT}
{1396710000 37800 0 LHST}
- {1412436600 39600 1 LHST}
+ {1412436600 39600 1 LHDT}
{1428159600 37800 0 LHST}
- {1443886200 39600 1 LHST}
+ {1443886200 39600 1 LHDT}
{1459609200 37800 0 LHST}
- {1475335800 39600 1 LHST}
+ {1475335800 39600 1 LHDT}
{1491058800 37800 0 LHST}
- {1506785400 39600 1 LHST}
+ {1506785400 39600 1 LHDT}
{1522508400 37800 0 LHST}
- {1538839800 39600 1 LHST}
+ {1538839800 39600 1 LHDT}
{1554562800 37800 0 LHST}
- {1570289400 39600 1 LHST}
+ {1570289400 39600 1 LHDT}
{1586012400 37800 0 LHST}
- {1601739000 39600 1 LHST}
+ {1601739000 39600 1 LHDT}
{1617462000 37800 0 LHST}
- {1633188600 39600 1 LHST}
+ {1633188600 39600 1 LHDT}
{1648911600 37800 0 LHST}
- {1664638200 39600 1 LHST}
+ {1664638200 39600 1 LHDT}
{1680361200 37800 0 LHST}
- {1696087800 39600 1 LHST}
+ {1696087800 39600 1 LHDT}
{1712415600 37800 0 LHST}
- {1728142200 39600 1 LHST}
+ {1728142200 39600 1 LHDT}
{1743865200 37800 0 LHST}
- {1759591800 39600 1 LHST}
+ {1759591800 39600 1 LHDT}
{1775314800 37800 0 LHST}
- {1791041400 39600 1 LHST}
+ {1791041400 39600 1 LHDT}
{1806764400 37800 0 LHST}
- {1822491000 39600 1 LHST}
+ {1822491000 39600 1 LHDT}
{1838214000 37800 0 LHST}
- {1853940600 39600 1 LHST}
+ {1853940600 39600 1 LHDT}
{1869663600 37800 0 LHST}
- {1885995000 39600 1 LHST}
+ {1885995000 39600 1 LHDT}
{1901718000 37800 0 LHST}
- {1917444600 39600 1 LHST}
+ {1917444600 39600 1 LHDT}
{1933167600 37800 0 LHST}
- {1948894200 39600 1 LHST}
+ {1948894200 39600 1 LHDT}
{1964617200 37800 0 LHST}
- {1980343800 39600 1 LHST}
+ {1980343800 39600 1 LHDT}
{1996066800 37800 0 LHST}
- {2011793400 39600 1 LHST}
+ {2011793400 39600 1 LHDT}
{2027516400 37800 0 LHST}
- {2043243000 39600 1 LHST}
+ {2043243000 39600 1 LHDT}
{2058966000 37800 0 LHST}
- {2075297400 39600 1 LHST}
+ {2075297400 39600 1 LHDT}
{2091020400 37800 0 LHST}
- {2106747000 39600 1 LHST}
+ {2106747000 39600 1 LHDT}
{2122470000 37800 0 LHST}
- {2138196600 39600 1 LHST}
+ {2138196600 39600 1 LHDT}
{2153919600 37800 0 LHST}
- {2169646200 39600 1 LHST}
+ {2169646200 39600 1 LHDT}
{2185369200 37800 0 LHST}
- {2201095800 39600 1 LHST}
+ {2201095800 39600 1 LHDT}
{2216818800 37800 0 LHST}
- {2233150200 39600 1 LHST}
+ {2233150200 39600 1 LHDT}
{2248873200 37800 0 LHST}
- {2264599800 39600 1 LHST}
+ {2264599800 39600 1 LHDT}
{2280322800 37800 0 LHST}
- {2296049400 39600 1 LHST}
+ {2296049400 39600 1 LHDT}
{2311772400 37800 0 LHST}
- {2327499000 39600 1 LHST}
+ {2327499000 39600 1 LHDT}
{2343222000 37800 0 LHST}
- {2358948600 39600 1 LHST}
+ {2358948600 39600 1 LHDT}
{2374671600 37800 0 LHST}
- {2390398200 39600 1 LHST}
+ {2390398200 39600 1 LHDT}
{2406121200 37800 0 LHST}
- {2422452600 39600 1 LHST}
+ {2422452600 39600 1 LHDT}
{2438175600 37800 0 LHST}
- {2453902200 39600 1 LHST}
+ {2453902200 39600 1 LHDT}
{2469625200 37800 0 LHST}
- {2485351800 39600 1 LHST}
+ {2485351800 39600 1 LHDT}
{2501074800 37800 0 LHST}
- {2516801400 39600 1 LHST}
+ {2516801400 39600 1 LHDT}
{2532524400 37800 0 LHST}
- {2548251000 39600 1 LHST}
+ {2548251000 39600 1 LHDT}
{2563974000 37800 0 LHST}
- {2579700600 39600 1 LHST}
+ {2579700600 39600 1 LHDT}
{2596028400 37800 0 LHST}
- {2611755000 39600 1 LHST}
+ {2611755000 39600 1 LHDT}
{2627478000 37800 0 LHST}
- {2643204600 39600 1 LHST}
+ {2643204600 39600 1 LHDT}
{2658927600 37800 0 LHST}
- {2674654200 39600 1 LHST}
+ {2674654200 39600 1 LHDT}
{2690377200 37800 0 LHST}
- {2706103800 39600 1 LHST}
+ {2706103800 39600 1 LHDT}
{2721826800 37800 0 LHST}
- {2737553400 39600 1 LHST}
+ {2737553400 39600 1 LHDT}
{2753276400 37800 0 LHST}
- {2769607800 39600 1 LHST}
+ {2769607800 39600 1 LHDT}
{2785330800 37800 0 LHST}
- {2801057400 39600 1 LHST}
+ {2801057400 39600 1 LHDT}
{2816780400 37800 0 LHST}
- {2832507000 39600 1 LHST}
+ {2832507000 39600 1 LHDT}
{2848230000 37800 0 LHST}
- {2863956600 39600 1 LHST}
+ {2863956600 39600 1 LHDT}
{2879679600 37800 0 LHST}
- {2895406200 39600 1 LHST}
+ {2895406200 39600 1 LHDT}
{2911129200 37800 0 LHST}
- {2926855800 39600 1 LHST}
+ {2926855800 39600 1 LHDT}
{2942578800 37800 0 LHST}
- {2958910200 39600 1 LHST}
+ {2958910200 39600 1 LHDT}
{2974633200 37800 0 LHST}
- {2990359800 39600 1 LHST}
+ {2990359800 39600 1 LHDT}
{3006082800 37800 0 LHST}
- {3021809400 39600 1 LHST}
+ {3021809400 39600 1 LHDT}
{3037532400 37800 0 LHST}
- {3053259000 39600 1 LHST}
+ {3053259000 39600 1 LHDT}
{3068982000 37800 0 LHST}
- {3084708600 39600 1 LHST}
+ {3084708600 39600 1 LHDT}
{3100431600 37800 0 LHST}
- {3116763000 39600 1 LHST}
+ {3116763000 39600 1 LHDT}
{3132486000 37800 0 LHST}
- {3148212600 39600 1 LHST}
+ {3148212600 39600 1 LHDT}
{3163935600 37800 0 LHST}
- {3179662200 39600 1 LHST}
+ {3179662200 39600 1 LHDT}
{3195385200 37800 0 LHST}
- {3211111800 39600 1 LHST}
+ {3211111800 39600 1 LHDT}
{3226834800 37800 0 LHST}
- {3242561400 39600 1 LHST}
+ {3242561400 39600 1 LHDT}
{3258284400 37800 0 LHST}
- {3274011000 39600 1 LHST}
+ {3274011000 39600 1 LHDT}
{3289734000 37800 0 LHST}
- {3306065400 39600 1 LHST}
+ {3306065400 39600 1 LHDT}
{3321788400 37800 0 LHST}
- {3337515000 39600 1 LHST}
+ {3337515000 39600 1 LHDT}
{3353238000 37800 0 LHST}
- {3368964600 39600 1 LHST}
+ {3368964600 39600 1 LHDT}
{3384687600 37800 0 LHST}
- {3400414200 39600 1 LHST}
+ {3400414200 39600 1 LHDT}
{3416137200 37800 0 LHST}
- {3431863800 39600 1 LHST}
+ {3431863800 39600 1 LHDT}
{3447586800 37800 0 LHST}
- {3463313400 39600 1 LHST}
+ {3463313400 39600 1 LHDT}
{3479641200 37800 0 LHST}
- {3495367800 39600 1 LHST}
+ {3495367800 39600 1 LHDT}
{3511090800 37800 0 LHST}
- {3526817400 39600 1 LHST}
+ {3526817400 39600 1 LHDT}
{3542540400 37800 0 LHST}
- {3558267000 39600 1 LHST}
+ {3558267000 39600 1 LHDT}
{3573990000 37800 0 LHST}
- {3589716600 39600 1 LHST}
+ {3589716600 39600 1 LHDT}
{3605439600 37800 0 LHST}
- {3621166200 39600 1 LHST}
+ {3621166200 39600 1 LHDT}
{3636889200 37800 0 LHST}
- {3653220600 39600 1 LHST}
+ {3653220600 39600 1 LHDT}
{3668943600 37800 0 LHST}
- {3684670200 39600 1 LHST}
+ {3684670200 39600 1 LHDT}
{3700393200 37800 0 LHST}
- {3716119800 39600 1 LHST}
+ {3716119800 39600 1 LHDT}
{3731842800 37800 0 LHST}
- {3747569400 39600 1 LHST}
+ {3747569400 39600 1 LHDT}
{3763292400 37800 0 LHST}
- {3779019000 39600 1 LHST}
+ {3779019000 39600 1 LHDT}
{3794742000 37800 0 LHST}
- {3810468600 39600 1 LHST}
+ {3810468600 39600 1 LHDT}
{3826191600 37800 0 LHST}
- {3842523000 39600 1 LHST}
+ {3842523000 39600 1 LHDT}
{3858246000 37800 0 LHST}
- {3873972600 39600 1 LHST}
+ {3873972600 39600 1 LHDT}
{3889695600 37800 0 LHST}
- {3905422200 39600 1 LHST}
+ {3905422200 39600 1 LHDT}
{3921145200 37800 0 LHST}
- {3936871800 39600 1 LHST}
+ {3936871800 39600 1 LHDT}
{3952594800 37800 0 LHST}
- {3968321400 39600 1 LHST}
+ {3968321400 39600 1 LHDT}
{3984044400 37800 0 LHST}
- {4000375800 39600 1 LHST}
+ {4000375800 39600 1 LHDT}
{4016098800 37800 0 LHST}
- {4031825400 39600 1 LHST}
+ {4031825400 39600 1 LHDT}
{4047548400 37800 0 LHST}
- {4063275000 39600 1 LHST}
+ {4063275000 39600 1 LHDT}
{4078998000 37800 0 LHST}
- {4094724600 39600 1 LHST}
+ {4094724600 39600 1 LHDT}
}
diff --git a/library/tzdata/Australia/Melbourne b/library/tzdata/Australia/Melbourne
index 907b8b9..81777df 100644
--- a/library/tzdata/Australia/Melbourne
+++ b/library/tzdata/Australia/Melbourne
@@ -2,271 +2,271 @@
set TZData(:Australia/Melbourne) {
{-9223372036854775808 34792 0 LMT}
- {-2364111592 36000 0 EST}
- {-1672567140 39600 1 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {31500000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {89136000 39600 1 EST}
- {100022400 36000 0 EST}
- {120585600 39600 1 EST}
- {131472000 36000 0 EST}
- {152035200 39600 1 EST}
- {162921600 36000 0 EST}
- {183484800 39600 1 EST}
- {194976000 36000 0 EST}
- {215539200 39600 1 EST}
- {226425600 36000 0 EST}
- {246988800 39600 1 EST}
- {257875200 36000 0 EST}
- {278438400 39600 1 EST}
- {289324800 36000 0 EST}
- {309888000 39600 1 EST}
- {320774400 36000 0 EST}
- {341337600 39600 1 EST}
- {352224000 36000 0 EST}
- {372787200 39600 1 EST}
- {384278400 36000 0 EST}
- {404841600 39600 1 EST}
- {415728000 36000 0 EST}
- {436291200 39600 1 EST}
- {447177600 36000 0 EST}
- {467740800 39600 1 EST}
- {478627200 36000 0 EST}
- {499190400 39600 1 EST}
- {511286400 36000 0 EST}
- {530035200 39600 1 EST}
- {542736000 36000 0 EST}
- {561484800 39600 1 EST}
- {574790400 36000 0 EST}
- {594144000 39600 1 EST}
- {606240000 36000 0 EST}
- {625593600 39600 1 EST}
- {637689600 36000 0 EST}
- {657043200 39600 1 EST}
- {667929600 36000 0 EST}
- {688492800 39600 1 EST}
- {699379200 36000 0 EST}
- {719942400 39600 1 EST}
- {731433600 36000 0 EST}
- {751996800 39600 1 EST}
- {762883200 36000 0 EST}
- {783446400 39600 1 EST}
- {796147200 36000 0 EST}
- {814896000 39600 1 EST}
- {828201600 36000 0 EST}
- {846345600 39600 1 EST}
- {859651200 36000 0 EST}
- {877795200 39600 1 EST}
- {891100800 36000 0 EST}
- {909244800 39600 1 EST}
- {922550400 36000 0 EST}
- {941299200 39600 1 EST}
- {954000000 36000 0 EST}
- {967305600 39600 1 EST}
- {985449600 36000 0 EST}
- {1004198400 39600 1 EST}
- {1017504000 36000 0 EST}
- {1035648000 39600 1 EST}
- {1048953600 36000 0 EST}
- {1067097600 39600 1 EST}
- {1080403200 36000 0 EST}
- {1099152000 39600 1 EST}
- {1111852800 36000 0 EST}
- {1130601600 39600 1 EST}
- {1143907200 36000 0 EST}
- {1162051200 39600 1 EST}
- {1174752000 36000 0 EST}
- {1193500800 39600 1 EST}
- {1207411200 36000 0 EST}
- {1223136000 39600 1 EST}
- {1238860800 36000 0 EST}
- {1254585600 39600 1 EST}
- {1270310400 36000 0 EST}
- {1286035200 39600 1 EST}
- {1301760000 36000 0 EST}
- {1317484800 39600 1 EST}
- {1333209600 36000 0 EST}
- {1349539200 39600 1 EST}
- {1365264000 36000 0 EST}
- {1380988800 39600 1 EST}
- {1396713600 36000 0 EST}
- {1412438400 39600 1 EST}
- {1428163200 36000 0 EST}
- {1443888000 39600 1 EST}
- {1459612800 36000 0 EST}
- {1475337600 39600 1 EST}
- {1491062400 36000 0 EST}
- {1506787200 39600 1 EST}
- {1522512000 36000 0 EST}
- {1538841600 39600 1 EST}
- {1554566400 36000 0 EST}
- {1570291200 39600 1 EST}
- {1586016000 36000 0 EST}
- {1601740800 39600 1 EST}
- {1617465600 36000 0 EST}
- {1633190400 39600 1 EST}
- {1648915200 36000 0 EST}
- {1664640000 39600 1 EST}
- {1680364800 36000 0 EST}
- {1696089600 39600 1 EST}
- {1712419200 36000 0 EST}
- {1728144000 39600 1 EST}
- {1743868800 36000 0 EST}
- {1759593600 39600 1 EST}
- {1775318400 36000 0 EST}
- {1791043200 39600 1 EST}
- {1806768000 36000 0 EST}
- {1822492800 39600 1 EST}
- {1838217600 36000 0 EST}
- {1853942400 39600 1 EST}
- {1869667200 36000 0 EST}
- {1885996800 39600 1 EST}
- {1901721600 36000 0 EST}
- {1917446400 39600 1 EST}
- {1933171200 36000 0 EST}
- {1948896000 39600 1 EST}
- {1964620800 36000 0 EST}
- {1980345600 39600 1 EST}
- {1996070400 36000 0 EST}
- {2011795200 39600 1 EST}
- {2027520000 36000 0 EST}
- {2043244800 39600 1 EST}
- {2058969600 36000 0 EST}
- {2075299200 39600 1 EST}
- {2091024000 36000 0 EST}
- {2106748800 39600 1 EST}
- {2122473600 36000 0 EST}
- {2138198400 39600 1 EST}
- {2153923200 36000 0 EST}
- {2169648000 39600 1 EST}
- {2185372800 36000 0 EST}
- {2201097600 39600 1 EST}
- {2216822400 36000 0 EST}
- {2233152000 39600 1 EST}
- {2248876800 36000 0 EST}
- {2264601600 39600 1 EST}
- {2280326400 36000 0 EST}
- {2296051200 39600 1 EST}
- {2311776000 36000 0 EST}
- {2327500800 39600 1 EST}
- {2343225600 36000 0 EST}
- {2358950400 39600 1 EST}
- {2374675200 36000 0 EST}
- {2390400000 39600 1 EST}
- {2406124800 36000 0 EST}
- {2422454400 39600 1 EST}
- {2438179200 36000 0 EST}
- {2453904000 39600 1 EST}
- {2469628800 36000 0 EST}
- {2485353600 39600 1 EST}
- {2501078400 36000 0 EST}
- {2516803200 39600 1 EST}
- {2532528000 36000 0 EST}
- {2548252800 39600 1 EST}
- {2563977600 36000 0 EST}
- {2579702400 39600 1 EST}
- {2596032000 36000 0 EST}
- {2611756800 39600 1 EST}
- {2627481600 36000 0 EST}
- {2643206400 39600 1 EST}
- {2658931200 36000 0 EST}
- {2674656000 39600 1 EST}
- {2690380800 36000 0 EST}
- {2706105600 39600 1 EST}
- {2721830400 36000 0 EST}
- {2737555200 39600 1 EST}
- {2753280000 36000 0 EST}
- {2769609600 39600 1 EST}
- {2785334400 36000 0 EST}
- {2801059200 39600 1 EST}
- {2816784000 36000 0 EST}
- {2832508800 39600 1 EST}
- {2848233600 36000 0 EST}
- {2863958400 39600 1 EST}
- {2879683200 36000 0 EST}
- {2895408000 39600 1 EST}
- {2911132800 36000 0 EST}
- {2926857600 39600 1 EST}
- {2942582400 36000 0 EST}
- {2958912000 39600 1 EST}
- {2974636800 36000 0 EST}
- {2990361600 39600 1 EST}
- {3006086400 36000 0 EST}
- {3021811200 39600 1 EST}
- {3037536000 36000 0 EST}
- {3053260800 39600 1 EST}
- {3068985600 36000 0 EST}
- {3084710400 39600 1 EST}
- {3100435200 36000 0 EST}
- {3116764800 39600 1 EST}
- {3132489600 36000 0 EST}
- {3148214400 39600 1 EST}
- {3163939200 36000 0 EST}
- {3179664000 39600 1 EST}
- {3195388800 36000 0 EST}
- {3211113600 39600 1 EST}
- {3226838400 36000 0 EST}
- {3242563200 39600 1 EST}
- {3258288000 36000 0 EST}
- {3274012800 39600 1 EST}
- {3289737600 36000 0 EST}
- {3306067200 39600 1 EST}
- {3321792000 36000 0 EST}
- {3337516800 39600 1 EST}
- {3353241600 36000 0 EST}
- {3368966400 39600 1 EST}
- {3384691200 36000 0 EST}
- {3400416000 39600 1 EST}
- {3416140800 36000 0 EST}
- {3431865600 39600 1 EST}
- {3447590400 36000 0 EST}
- {3463315200 39600 1 EST}
- {3479644800 36000 0 EST}
- {3495369600 39600 1 EST}
- {3511094400 36000 0 EST}
- {3526819200 39600 1 EST}
- {3542544000 36000 0 EST}
- {3558268800 39600 1 EST}
- {3573993600 36000 0 EST}
- {3589718400 39600 1 EST}
- {3605443200 36000 0 EST}
- {3621168000 39600 1 EST}
- {3636892800 36000 0 EST}
- {3653222400 39600 1 EST}
- {3668947200 36000 0 EST}
- {3684672000 39600 1 EST}
- {3700396800 36000 0 EST}
- {3716121600 39600 1 EST}
- {3731846400 36000 0 EST}
- {3747571200 39600 1 EST}
- {3763296000 36000 0 EST}
- {3779020800 39600 1 EST}
- {3794745600 36000 0 EST}
- {3810470400 39600 1 EST}
- {3826195200 36000 0 EST}
- {3842524800 39600 1 EST}
- {3858249600 36000 0 EST}
- {3873974400 39600 1 EST}
- {3889699200 36000 0 EST}
- {3905424000 39600 1 EST}
- {3921148800 36000 0 EST}
- {3936873600 39600 1 EST}
- {3952598400 36000 0 EST}
- {3968323200 39600 1 EST}
- {3984048000 36000 0 EST}
- {4000377600 39600 1 EST}
- {4016102400 36000 0 EST}
- {4031827200 39600 1 EST}
- {4047552000 36000 0 EST}
- {4063276800 39600 1 EST}
- {4079001600 36000 0 EST}
- {4094726400 39600 1 EST}
+ {-2364111592 36000 0 AEST}
+ {-1672567140 39600 1 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {31500000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {89136000 39600 1 AEDT}
+ {100022400 36000 0 AEST}
+ {120585600 39600 1 AEDT}
+ {131472000 36000 0 AEST}
+ {152035200 39600 1 AEDT}
+ {162921600 36000 0 AEST}
+ {183484800 39600 1 AEDT}
+ {194976000 36000 0 AEST}
+ {215539200 39600 1 AEDT}
+ {226425600 36000 0 AEST}
+ {246988800 39600 1 AEDT}
+ {257875200 36000 0 AEST}
+ {278438400 39600 1 AEDT}
+ {289324800 36000 0 AEST}
+ {309888000 39600 1 AEDT}
+ {320774400 36000 0 AEST}
+ {341337600 39600 1 AEDT}
+ {352224000 36000 0 AEST}
+ {372787200 39600 1 AEDT}
+ {384278400 36000 0 AEST}
+ {404841600 39600 1 AEDT}
+ {415728000 36000 0 AEST}
+ {436291200 39600 1 AEDT}
+ {447177600 36000 0 AEST}
+ {467740800 39600 1 AEDT}
+ {478627200 36000 0 AEST}
+ {499190400 39600 1 AEDT}
+ {511286400 36000 0 AEST}
+ {530035200 39600 1 AEDT}
+ {542736000 36000 0 AEST}
+ {561484800 39600 1 AEDT}
+ {574790400 36000 0 AEST}
+ {594144000 39600 1 AEDT}
+ {606240000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {637689600 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {667929600 36000 0 AEST}
+ {688492800 39600 1 AEDT}
+ {699379200 36000 0 AEST}
+ {719942400 39600 1 AEDT}
+ {731433600 36000 0 AEST}
+ {751996800 39600 1 AEDT}
+ {762883200 36000 0 AEST}
+ {783446400 39600 1 AEDT}
+ {796147200 36000 0 AEST}
+ {814896000 39600 1 AEDT}
+ {828201600 36000 0 AEST}
+ {846345600 39600 1 AEDT}
+ {859651200 36000 0 AEST}
+ {877795200 39600 1 AEDT}
+ {891100800 36000 0 AEST}
+ {909244800 39600 1 AEDT}
+ {922550400 36000 0 AEST}
+ {941299200 39600 1 AEDT}
+ {954000000 36000 0 AEST}
+ {967305600 39600 1 AEDT}
+ {985449600 36000 0 AEST}
+ {1004198400 39600 1 AEDT}
+ {1017504000 36000 0 AEST}
+ {1035648000 39600 1 AEDT}
+ {1048953600 36000 0 AEST}
+ {1067097600 39600 1 AEDT}
+ {1080403200 36000 0 AEST}
+ {1099152000 39600 1 AEDT}
+ {1111852800 36000 0 AEST}
+ {1130601600 39600 1 AEDT}
+ {1143907200 36000 0 AEST}
+ {1162051200 39600 1 AEDT}
+ {1174752000 36000 0 AEST}
+ {1193500800 39600 1 AEDT}
+ {1207411200 36000 0 AEST}
+ {1223136000 39600 1 AEDT}
+ {1238860800 36000 0 AEST}
+ {1254585600 39600 1 AEDT}
+ {1270310400 36000 0 AEST}
+ {1286035200 39600 1 AEDT}
+ {1301760000 36000 0 AEST}
+ {1317484800 39600 1 AEDT}
+ {1333209600 36000 0 AEST}
+ {1349539200 39600 1 AEDT}
+ {1365264000 36000 0 AEST}
+ {1380988800 39600 1 AEDT}
+ {1396713600 36000 0 AEST}
+ {1412438400 39600 1 AEDT}
+ {1428163200 36000 0 AEST}
+ {1443888000 39600 1 AEDT}
+ {1459612800 36000 0 AEST}
+ {1475337600 39600 1 AEDT}
+ {1491062400 36000 0 AEST}
+ {1506787200 39600 1 AEDT}
+ {1522512000 36000 0 AEST}
+ {1538841600 39600 1 AEDT}
+ {1554566400 36000 0 AEST}
+ {1570291200 39600 1 AEDT}
+ {1586016000 36000 0 AEST}
+ {1601740800 39600 1 AEDT}
+ {1617465600 36000 0 AEST}
+ {1633190400 39600 1 AEDT}
+ {1648915200 36000 0 AEST}
+ {1664640000 39600 1 AEDT}
+ {1680364800 36000 0 AEST}
+ {1696089600 39600 1 AEDT}
+ {1712419200 36000 0 AEST}
+ {1728144000 39600 1 AEDT}
+ {1743868800 36000 0 AEST}
+ {1759593600 39600 1 AEDT}
+ {1775318400 36000 0 AEST}
+ {1791043200 39600 1 AEDT}
+ {1806768000 36000 0 AEST}
+ {1822492800 39600 1 AEDT}
+ {1838217600 36000 0 AEST}
+ {1853942400 39600 1 AEDT}
+ {1869667200 36000 0 AEST}
+ {1885996800 39600 1 AEDT}
+ {1901721600 36000 0 AEST}
+ {1917446400 39600 1 AEDT}
+ {1933171200 36000 0 AEST}
+ {1948896000 39600 1 AEDT}
+ {1964620800 36000 0 AEST}
+ {1980345600 39600 1 AEDT}
+ {1996070400 36000 0 AEST}
+ {2011795200 39600 1 AEDT}
+ {2027520000 36000 0 AEST}
+ {2043244800 39600 1 AEDT}
+ {2058969600 36000 0 AEST}
+ {2075299200 39600 1 AEDT}
+ {2091024000 36000 0 AEST}
+ {2106748800 39600 1 AEDT}
+ {2122473600 36000 0 AEST}
+ {2138198400 39600 1 AEDT}
+ {2153923200 36000 0 AEST}
+ {2169648000 39600 1 AEDT}
+ {2185372800 36000 0 AEST}
+ {2201097600 39600 1 AEDT}
+ {2216822400 36000 0 AEST}
+ {2233152000 39600 1 AEDT}
+ {2248876800 36000 0 AEST}
+ {2264601600 39600 1 AEDT}
+ {2280326400 36000 0 AEST}
+ {2296051200 39600 1 AEDT}
+ {2311776000 36000 0 AEST}
+ {2327500800 39600 1 AEDT}
+ {2343225600 36000 0 AEST}
+ {2358950400 39600 1 AEDT}
+ {2374675200 36000 0 AEST}
+ {2390400000 39600 1 AEDT}
+ {2406124800 36000 0 AEST}
+ {2422454400 39600 1 AEDT}
+ {2438179200 36000 0 AEST}
+ {2453904000 39600 1 AEDT}
+ {2469628800 36000 0 AEST}
+ {2485353600 39600 1 AEDT}
+ {2501078400 36000 0 AEST}
+ {2516803200 39600 1 AEDT}
+ {2532528000 36000 0 AEST}
+ {2548252800 39600 1 AEDT}
+ {2563977600 36000 0 AEST}
+ {2579702400 39600 1 AEDT}
+ {2596032000 36000 0 AEST}
+ {2611756800 39600 1 AEDT}
+ {2627481600 36000 0 AEST}
+ {2643206400 39600 1 AEDT}
+ {2658931200 36000 0 AEST}
+ {2674656000 39600 1 AEDT}
+ {2690380800 36000 0 AEST}
+ {2706105600 39600 1 AEDT}
+ {2721830400 36000 0 AEST}
+ {2737555200 39600 1 AEDT}
+ {2753280000 36000 0 AEST}
+ {2769609600 39600 1 AEDT}
+ {2785334400 36000 0 AEST}
+ {2801059200 39600 1 AEDT}
+ {2816784000 36000 0 AEST}
+ {2832508800 39600 1 AEDT}
+ {2848233600 36000 0 AEST}
+ {2863958400 39600 1 AEDT}
+ {2879683200 36000 0 AEST}
+ {2895408000 39600 1 AEDT}
+ {2911132800 36000 0 AEST}
+ {2926857600 39600 1 AEDT}
+ {2942582400 36000 0 AEST}
+ {2958912000 39600 1 AEDT}
+ {2974636800 36000 0 AEST}
+ {2990361600 39600 1 AEDT}
+ {3006086400 36000 0 AEST}
+ {3021811200 39600 1 AEDT}
+ {3037536000 36000 0 AEST}
+ {3053260800 39600 1 AEDT}
+ {3068985600 36000 0 AEST}
+ {3084710400 39600 1 AEDT}
+ {3100435200 36000 0 AEST}
+ {3116764800 39600 1 AEDT}
+ {3132489600 36000 0 AEST}
+ {3148214400 39600 1 AEDT}
+ {3163939200 36000 0 AEST}
+ {3179664000 39600 1 AEDT}
+ {3195388800 36000 0 AEST}
+ {3211113600 39600 1 AEDT}
+ {3226838400 36000 0 AEST}
+ {3242563200 39600 1 AEDT}
+ {3258288000 36000 0 AEST}
+ {3274012800 39600 1 AEDT}
+ {3289737600 36000 0 AEST}
+ {3306067200 39600 1 AEDT}
+ {3321792000 36000 0 AEST}
+ {3337516800 39600 1 AEDT}
+ {3353241600 36000 0 AEST}
+ {3368966400 39600 1 AEDT}
+ {3384691200 36000 0 AEST}
+ {3400416000 39600 1 AEDT}
+ {3416140800 36000 0 AEST}
+ {3431865600 39600 1 AEDT}
+ {3447590400 36000 0 AEST}
+ {3463315200 39600 1 AEDT}
+ {3479644800 36000 0 AEST}
+ {3495369600 39600 1 AEDT}
+ {3511094400 36000 0 AEST}
+ {3526819200 39600 1 AEDT}
+ {3542544000 36000 0 AEST}
+ {3558268800 39600 1 AEDT}
+ {3573993600 36000 0 AEST}
+ {3589718400 39600 1 AEDT}
+ {3605443200 36000 0 AEST}
+ {3621168000 39600 1 AEDT}
+ {3636892800 36000 0 AEST}
+ {3653222400 39600 1 AEDT}
+ {3668947200 36000 0 AEST}
+ {3684672000 39600 1 AEDT}
+ {3700396800 36000 0 AEST}
+ {3716121600 39600 1 AEDT}
+ {3731846400 36000 0 AEST}
+ {3747571200 39600 1 AEDT}
+ {3763296000 36000 0 AEST}
+ {3779020800 39600 1 AEDT}
+ {3794745600 36000 0 AEST}
+ {3810470400 39600 1 AEDT}
+ {3826195200 36000 0 AEST}
+ {3842524800 39600 1 AEDT}
+ {3858249600 36000 0 AEST}
+ {3873974400 39600 1 AEDT}
+ {3889699200 36000 0 AEST}
+ {3905424000 39600 1 AEDT}
+ {3921148800 36000 0 AEST}
+ {3936873600 39600 1 AEDT}
+ {3952598400 36000 0 AEST}
+ {3968323200 39600 1 AEDT}
+ {3984048000 36000 0 AEST}
+ {4000377600 39600 1 AEDT}
+ {4016102400 36000 0 AEST}
+ {4031827200 39600 1 AEDT}
+ {4047552000 36000 0 AEST}
+ {4063276800 39600 1 AEDT}
+ {4079001600 36000 0 AEST}
+ {4094726400 39600 1 AEDT}
}
diff --git a/library/tzdata/Australia/Perth b/library/tzdata/Australia/Perth
index 5d8f116..6ccbca8 100644
--- a/library/tzdata/Australia/Perth
+++ b/library/tzdata/Australia/Perth
@@ -2,24 +2,24 @@
set TZData(:Australia/Perth) {
{-9223372036854775808 27804 0 LMT}
- {-2337925404 28800 0 WST}
- {-1672559940 32400 1 WST}
- {-1665385200 28800 0 WST}
- {-883634400 32400 1 WST}
- {-876121200 28800 0 WST}
- {-860392800 32400 1 WST}
- {-844671600 28800 0 WST}
- {-836470800 32400 0 WST}
- {152042400 32400 1 WST}
- {162928800 28800 0 WST}
- {436298400 32400 1 WST}
- {447184800 28800 0 WST}
- {690314400 32400 1 WST}
- {699386400 28800 0 WST}
- {1165082400 32400 1 WST}
- {1174759200 28800 0 WST}
- {1193508000 32400 1 WST}
- {1206813600 28800 0 WST}
- {1224957600 32400 1 WST}
- {1238263200 28800 0 WST}
+ {-2337925404 28800 0 AWST}
+ {-1672559940 32400 1 AWDT}
+ {-1665385200 28800 0 AWST}
+ {-883634400 32400 1 AWDT}
+ {-876121200 28800 0 AWST}
+ {-860392800 32400 1 AWDT}
+ {-844671600 28800 0 AWST}
+ {-836470800 32400 0 AWST}
+ {152042400 32400 1 AWDT}
+ {162928800 28800 0 AWST}
+ {436298400 32400 1 AWDT}
+ {447184800 28800 0 AWST}
+ {690314400 32400 1 AWDT}
+ {699386400 28800 0 AWST}
+ {1165082400 32400 1 AWDT}
+ {1174759200 28800 0 AWST}
+ {1193508000 32400 1 AWDT}
+ {1206813600 28800 0 AWST}
+ {1224957600 32400 1 AWDT}
+ {1238263200 28800 0 AWST}
}
diff --git a/library/tzdata/Australia/Sydney b/library/tzdata/Australia/Sydney
index 84b1d14..b1c4411 100644
--- a/library/tzdata/Australia/Sydney
+++ b/library/tzdata/Australia/Sydney
@@ -2,271 +2,271 @@
set TZData(:Australia/Sydney) {
{-9223372036854775808 36292 0 LMT}
- {-2364113092 36000 0 EST}
- {-1672567140 39600 1 EST}
- {-1665392400 36000 0 EST}
- {-883641600 39600 1 EST}
- {-876128400 36000 0 EST}
- {-860400000 39600 1 EST}
- {-844678800 36000 0 EST}
- {-828345600 39600 1 EST}
- {-813229200 36000 0 EST}
- {31500000 36000 0 EST}
- {57686400 39600 1 EST}
- {67968000 36000 0 EST}
- {89136000 39600 1 EST}
- {100022400 36000 0 EST}
- {120585600 39600 1 EST}
- {131472000 36000 0 EST}
- {152035200 39600 1 EST}
- {162921600 36000 0 EST}
- {183484800 39600 1 EST}
- {194976000 36000 0 EST}
- {215539200 39600 1 EST}
- {226425600 36000 0 EST}
- {246988800 39600 1 EST}
- {257875200 36000 0 EST}
- {278438400 39600 1 EST}
- {289324800 36000 0 EST}
- {309888000 39600 1 EST}
- {320774400 36000 0 EST}
- {341337600 39600 1 EST}
- {352224000 36000 0 EST}
- {372787200 39600 1 EST}
- {386697600 36000 0 EST}
- {404841600 39600 1 EST}
- {415728000 36000 0 EST}
- {436291200 39600 1 EST}
- {447177600 36000 0 EST}
- {467740800 39600 1 EST}
- {478627200 36000 0 EST}
- {499190400 39600 1 EST}
- {511286400 36000 0 EST}
- {530035200 39600 1 EST}
- {542736000 36000 0 EST}
- {562089600 39600 1 EST}
- {574790400 36000 0 EST}
- {594144000 39600 1 EST}
- {606240000 36000 0 EST}
- {625593600 39600 1 EST}
- {636480000 36000 0 EST}
- {657043200 39600 1 EST}
- {667929600 36000 0 EST}
- {688492800 39600 1 EST}
- {699379200 36000 0 EST}
- {719942400 39600 1 EST}
- {731433600 36000 0 EST}
- {751996800 39600 1 EST}
- {762883200 36000 0 EST}
- {783446400 39600 1 EST}
- {794332800 36000 0 EST}
- {814896000 39600 1 EST}
- {828201600 36000 0 EST}
- {846345600 39600 1 EST}
- {859651200 36000 0 EST}
- {877795200 39600 1 EST}
- {891100800 36000 0 EST}
- {909244800 39600 1 EST}
- {922550400 36000 0 EST}
- {941299200 39600 1 EST}
- {954000000 36000 0 EST}
- {967305600 39600 1 EST}
- {985449600 36000 0 EST}
- {1004198400 39600 1 EST}
- {1017504000 36000 0 EST}
- {1035648000 39600 1 EST}
- {1048953600 36000 0 EST}
- {1067097600 39600 1 EST}
- {1080403200 36000 0 EST}
- {1099152000 39600 1 EST}
- {1111852800 36000 0 EST}
- {1130601600 39600 1 EST}
- {1143907200 36000 0 EST}
- {1162051200 39600 1 EST}
- {1174752000 36000 0 EST}
- {1193500800 39600 1 EST}
- {1207411200 36000 0 EST}
- {1223136000 39600 1 EST}
- {1238860800 36000 0 EST}
- {1254585600 39600 1 EST}
- {1270310400 36000 0 EST}
- {1286035200 39600 1 EST}
- {1301760000 36000 0 EST}
- {1317484800 39600 1 EST}
- {1333209600 36000 0 EST}
- {1349539200 39600 1 EST}
- {1365264000 36000 0 EST}
- {1380988800 39600 1 EST}
- {1396713600 36000 0 EST}
- {1412438400 39600 1 EST}
- {1428163200 36000 0 EST}
- {1443888000 39600 1 EST}
- {1459612800 36000 0 EST}
- {1475337600 39600 1 EST}
- {1491062400 36000 0 EST}
- {1506787200 39600 1 EST}
- {1522512000 36000 0 EST}
- {1538841600 39600 1 EST}
- {1554566400 36000 0 EST}
- {1570291200 39600 1 EST}
- {1586016000 36000 0 EST}
- {1601740800 39600 1 EST}
- {1617465600 36000 0 EST}
- {1633190400 39600 1 EST}
- {1648915200 36000 0 EST}
- {1664640000 39600 1 EST}
- {1680364800 36000 0 EST}
- {1696089600 39600 1 EST}
- {1712419200 36000 0 EST}
- {1728144000 39600 1 EST}
- {1743868800 36000 0 EST}
- {1759593600 39600 1 EST}
- {1775318400 36000 0 EST}
- {1791043200 39600 1 EST}
- {1806768000 36000 0 EST}
- {1822492800 39600 1 EST}
- {1838217600 36000 0 EST}
- {1853942400 39600 1 EST}
- {1869667200 36000 0 EST}
- {1885996800 39600 1 EST}
- {1901721600 36000 0 EST}
- {1917446400 39600 1 EST}
- {1933171200 36000 0 EST}
- {1948896000 39600 1 EST}
- {1964620800 36000 0 EST}
- {1980345600 39600 1 EST}
- {1996070400 36000 0 EST}
- {2011795200 39600 1 EST}
- {2027520000 36000 0 EST}
- {2043244800 39600 1 EST}
- {2058969600 36000 0 EST}
- {2075299200 39600 1 EST}
- {2091024000 36000 0 EST}
- {2106748800 39600 1 EST}
- {2122473600 36000 0 EST}
- {2138198400 39600 1 EST}
- {2153923200 36000 0 EST}
- {2169648000 39600 1 EST}
- {2185372800 36000 0 EST}
- {2201097600 39600 1 EST}
- {2216822400 36000 0 EST}
- {2233152000 39600 1 EST}
- {2248876800 36000 0 EST}
- {2264601600 39600 1 EST}
- {2280326400 36000 0 EST}
- {2296051200 39600 1 EST}
- {2311776000 36000 0 EST}
- {2327500800 39600 1 EST}
- {2343225600 36000 0 EST}
- {2358950400 39600 1 EST}
- {2374675200 36000 0 EST}
- {2390400000 39600 1 EST}
- {2406124800 36000 0 EST}
- {2422454400 39600 1 EST}
- {2438179200 36000 0 EST}
- {2453904000 39600 1 EST}
- {2469628800 36000 0 EST}
- {2485353600 39600 1 EST}
- {2501078400 36000 0 EST}
- {2516803200 39600 1 EST}
- {2532528000 36000 0 EST}
- {2548252800 39600 1 EST}
- {2563977600 36000 0 EST}
- {2579702400 39600 1 EST}
- {2596032000 36000 0 EST}
- {2611756800 39600 1 EST}
- {2627481600 36000 0 EST}
- {2643206400 39600 1 EST}
- {2658931200 36000 0 EST}
- {2674656000 39600 1 EST}
- {2690380800 36000 0 EST}
- {2706105600 39600 1 EST}
- {2721830400 36000 0 EST}
- {2737555200 39600 1 EST}
- {2753280000 36000 0 EST}
- {2769609600 39600 1 EST}
- {2785334400 36000 0 EST}
- {2801059200 39600 1 EST}
- {2816784000 36000 0 EST}
- {2832508800 39600 1 EST}
- {2848233600 36000 0 EST}
- {2863958400 39600 1 EST}
- {2879683200 36000 0 EST}
- {2895408000 39600 1 EST}
- {2911132800 36000 0 EST}
- {2926857600 39600 1 EST}
- {2942582400 36000 0 EST}
- {2958912000 39600 1 EST}
- {2974636800 36000 0 EST}
- {2990361600 39600 1 EST}
- {3006086400 36000 0 EST}
- {3021811200 39600 1 EST}
- {3037536000 36000 0 EST}
- {3053260800 39600 1 EST}
- {3068985600 36000 0 EST}
- {3084710400 39600 1 EST}
- {3100435200 36000 0 EST}
- {3116764800 39600 1 EST}
- {3132489600 36000 0 EST}
- {3148214400 39600 1 EST}
- {3163939200 36000 0 EST}
- {3179664000 39600 1 EST}
- {3195388800 36000 0 EST}
- {3211113600 39600 1 EST}
- {3226838400 36000 0 EST}
- {3242563200 39600 1 EST}
- {3258288000 36000 0 EST}
- {3274012800 39600 1 EST}
- {3289737600 36000 0 EST}
- {3306067200 39600 1 EST}
- {3321792000 36000 0 EST}
- {3337516800 39600 1 EST}
- {3353241600 36000 0 EST}
- {3368966400 39600 1 EST}
- {3384691200 36000 0 EST}
- {3400416000 39600 1 EST}
- {3416140800 36000 0 EST}
- {3431865600 39600 1 EST}
- {3447590400 36000 0 EST}
- {3463315200 39600 1 EST}
- {3479644800 36000 0 EST}
- {3495369600 39600 1 EST}
- {3511094400 36000 0 EST}
- {3526819200 39600 1 EST}
- {3542544000 36000 0 EST}
- {3558268800 39600 1 EST}
- {3573993600 36000 0 EST}
- {3589718400 39600 1 EST}
- {3605443200 36000 0 EST}
- {3621168000 39600 1 EST}
- {3636892800 36000 0 EST}
- {3653222400 39600 1 EST}
- {3668947200 36000 0 EST}
- {3684672000 39600 1 EST}
- {3700396800 36000 0 EST}
- {3716121600 39600 1 EST}
- {3731846400 36000 0 EST}
- {3747571200 39600 1 EST}
- {3763296000 36000 0 EST}
- {3779020800 39600 1 EST}
- {3794745600 36000 0 EST}
- {3810470400 39600 1 EST}
- {3826195200 36000 0 EST}
- {3842524800 39600 1 EST}
- {3858249600 36000 0 EST}
- {3873974400 39600 1 EST}
- {3889699200 36000 0 EST}
- {3905424000 39600 1 EST}
- {3921148800 36000 0 EST}
- {3936873600 39600 1 EST}
- {3952598400 36000 0 EST}
- {3968323200 39600 1 EST}
- {3984048000 36000 0 EST}
- {4000377600 39600 1 EST}
- {4016102400 36000 0 EST}
- {4031827200 39600 1 EST}
- {4047552000 36000 0 EST}
- {4063276800 39600 1 EST}
- {4079001600 36000 0 EST}
- {4094726400 39600 1 EST}
+ {-2364113092 36000 0 AEST}
+ {-1672567140 39600 1 AEDT}
+ {-1665392400 36000 0 AEST}
+ {-883641600 39600 1 AEDT}
+ {-876128400 36000 0 AEST}
+ {-860400000 39600 1 AEDT}
+ {-844678800 36000 0 AEST}
+ {-828345600 39600 1 AEDT}
+ {-813229200 36000 0 AEST}
+ {31500000 36000 0 AEST}
+ {57686400 39600 1 AEDT}
+ {67968000 36000 0 AEST}
+ {89136000 39600 1 AEDT}
+ {100022400 36000 0 AEST}
+ {120585600 39600 1 AEDT}
+ {131472000 36000 0 AEST}
+ {152035200 39600 1 AEDT}
+ {162921600 36000 0 AEST}
+ {183484800 39600 1 AEDT}
+ {194976000 36000 0 AEST}
+ {215539200 39600 1 AEDT}
+ {226425600 36000 0 AEST}
+ {246988800 39600 1 AEDT}
+ {257875200 36000 0 AEST}
+ {278438400 39600 1 AEDT}
+ {289324800 36000 0 AEST}
+ {309888000 39600 1 AEDT}
+ {320774400 36000 0 AEST}
+ {341337600 39600 1 AEDT}
+ {352224000 36000 0 AEST}
+ {372787200 39600 1 AEDT}
+ {386697600 36000 0 AEST}
+ {404841600 39600 1 AEDT}
+ {415728000 36000 0 AEST}
+ {436291200 39600 1 AEDT}
+ {447177600 36000 0 AEST}
+ {467740800 39600 1 AEDT}
+ {478627200 36000 0 AEST}
+ {499190400 39600 1 AEDT}
+ {511286400 36000 0 AEST}
+ {530035200 39600 1 AEDT}
+ {542736000 36000 0 AEST}
+ {562089600 39600 1 AEDT}
+ {574790400 36000 0 AEST}
+ {594144000 39600 1 AEDT}
+ {606240000 36000 0 AEST}
+ {625593600 39600 1 AEDT}
+ {636480000 36000 0 AEST}
+ {657043200 39600 1 AEDT}
+ {667929600 36000 0 AEST}
+ {688492800 39600 1 AEDT}
+ {699379200 36000 0 AEST}
+ {719942400 39600 1 AEDT}
+ {731433600 36000 0 AEST}
+ {751996800 39600 1 AEDT}
+ {762883200 36000 0 AEST}
+ {783446400 39600 1 AEDT}
+ {794332800 36000 0 AEST}
+ {814896000 39600 1 AEDT}
+ {828201600 36000 0 AEST}
+ {846345600 39600 1 AEDT}
+ {859651200 36000 0 AEST}
+ {877795200 39600 1 AEDT}
+ {891100800 36000 0 AEST}
+ {909244800 39600 1 AEDT}
+ {922550400 36000 0 AEST}
+ {941299200 39600 1 AEDT}
+ {954000000 36000 0 AEST}
+ {967305600 39600 1 AEDT}
+ {985449600 36000 0 AEST}
+ {1004198400 39600 1 AEDT}
+ {1017504000 36000 0 AEST}
+ {1035648000 39600 1 AEDT}
+ {1048953600 36000 0 AEST}
+ {1067097600 39600 1 AEDT}
+ {1080403200 36000 0 AEST}
+ {1099152000 39600 1 AEDT}
+ {1111852800 36000 0 AEST}
+ {1130601600 39600 1 AEDT}
+ {1143907200 36000 0 AEST}
+ {1162051200 39600 1 AEDT}
+ {1174752000 36000 0 AEST}
+ {1193500800 39600 1 AEDT}
+ {1207411200 36000 0 AEST}
+ {1223136000 39600 1 AEDT}
+ {1238860800 36000 0 AEST}
+ {1254585600 39600 1 AEDT}
+ {1270310400 36000 0 AEST}
+ {1286035200 39600 1 AEDT}
+ {1301760000 36000 0 AEST}
+ {1317484800 39600 1 AEDT}
+ {1333209600 36000 0 AEST}
+ {1349539200 39600 1 AEDT}
+ {1365264000 36000 0 AEST}
+ {1380988800 39600 1 AEDT}
+ {1396713600 36000 0 AEST}
+ {1412438400 39600 1 AEDT}
+ {1428163200 36000 0 AEST}
+ {1443888000 39600 1 AEDT}
+ {1459612800 36000 0 AEST}
+ {1475337600 39600 1 AEDT}
+ {1491062400 36000 0 AEST}
+ {1506787200 39600 1 AEDT}
+ {1522512000 36000 0 AEST}
+ {1538841600 39600 1 AEDT}
+ {1554566400 36000 0 AEST}
+ {1570291200 39600 1 AEDT}
+ {1586016000 36000 0 AEST}
+ {1601740800 39600 1 AEDT}
+ {1617465600 36000 0 AEST}
+ {1633190400 39600 1 AEDT}
+ {1648915200 36000 0 AEST}
+ {1664640000 39600 1 AEDT}
+ {1680364800 36000 0 AEST}
+ {1696089600 39600 1 AEDT}
+ {1712419200 36000 0 AEST}
+ {1728144000 39600 1 AEDT}
+ {1743868800 36000 0 AEST}
+ {1759593600 39600 1 AEDT}
+ {1775318400 36000 0 AEST}
+ {1791043200 39600 1 AEDT}
+ {1806768000 36000 0 AEST}
+ {1822492800 39600 1 AEDT}
+ {1838217600 36000 0 AEST}
+ {1853942400 39600 1 AEDT}
+ {1869667200 36000 0 AEST}
+ {1885996800 39600 1 AEDT}
+ {1901721600 36000 0 AEST}
+ {1917446400 39600 1 AEDT}
+ {1933171200 36000 0 AEST}
+ {1948896000 39600 1 AEDT}
+ {1964620800 36000 0 AEST}
+ {1980345600 39600 1 AEDT}
+ {1996070400 36000 0 AEST}
+ {2011795200 39600 1 AEDT}
+ {2027520000 36000 0 AEST}
+ {2043244800 39600 1 AEDT}
+ {2058969600 36000 0 AEST}
+ {2075299200 39600 1 AEDT}
+ {2091024000 36000 0 AEST}
+ {2106748800 39600 1 AEDT}
+ {2122473600 36000 0 AEST}
+ {2138198400 39600 1 AEDT}
+ {2153923200 36000 0 AEST}
+ {2169648000 39600 1 AEDT}
+ {2185372800 36000 0 AEST}
+ {2201097600 39600 1 AEDT}
+ {2216822400 36000 0 AEST}
+ {2233152000 39600 1 AEDT}
+ {2248876800 36000 0 AEST}
+ {2264601600 39600 1 AEDT}
+ {2280326400 36000 0 AEST}
+ {2296051200 39600 1 AEDT}
+ {2311776000 36000 0 AEST}
+ {2327500800 39600 1 AEDT}
+ {2343225600 36000 0 AEST}
+ {2358950400 39600 1 AEDT}
+ {2374675200 36000 0 AEST}
+ {2390400000 39600 1 AEDT}
+ {2406124800 36000 0 AEST}
+ {2422454400 39600 1 AEDT}
+ {2438179200 36000 0 AEST}
+ {2453904000 39600 1 AEDT}
+ {2469628800 36000 0 AEST}
+ {2485353600 39600 1 AEDT}
+ {2501078400 36000 0 AEST}
+ {2516803200 39600 1 AEDT}
+ {2532528000 36000 0 AEST}
+ {2548252800 39600 1 AEDT}
+ {2563977600 36000 0 AEST}
+ {2579702400 39600 1 AEDT}
+ {2596032000 36000 0 AEST}
+ {2611756800 39600 1 AEDT}
+ {2627481600 36000 0 AEST}
+ {2643206400 39600 1 AEDT}
+ {2658931200 36000 0 AEST}
+ {2674656000 39600 1 AEDT}
+ {2690380800 36000 0 AEST}
+ {2706105600 39600 1 AEDT}
+ {2721830400 36000 0 AEST}
+ {2737555200 39600 1 AEDT}
+ {2753280000 36000 0 AEST}
+ {2769609600 39600 1 AEDT}
+ {2785334400 36000 0 AEST}
+ {2801059200 39600 1 AEDT}
+ {2816784000 36000 0 AEST}
+ {2832508800 39600 1 AEDT}
+ {2848233600 36000 0 AEST}
+ {2863958400 39600 1 AEDT}
+ {2879683200 36000 0 AEST}
+ {2895408000 39600 1 AEDT}
+ {2911132800 36000 0 AEST}
+ {2926857600 39600 1 AEDT}
+ {2942582400 36000 0 AEST}
+ {2958912000 39600 1 AEDT}
+ {2974636800 36000 0 AEST}
+ {2990361600 39600 1 AEDT}
+ {3006086400 36000 0 AEST}
+ {3021811200 39600 1 AEDT}
+ {3037536000 36000 0 AEST}
+ {3053260800 39600 1 AEDT}
+ {3068985600 36000 0 AEST}
+ {3084710400 39600 1 AEDT}
+ {3100435200 36000 0 AEST}
+ {3116764800 39600 1 AEDT}
+ {3132489600 36000 0 AEST}
+ {3148214400 39600 1 AEDT}
+ {3163939200 36000 0 AEST}
+ {3179664000 39600 1 AEDT}
+ {3195388800 36000 0 AEST}
+ {3211113600 39600 1 AEDT}
+ {3226838400 36000 0 AEST}
+ {3242563200 39600 1 AEDT}
+ {3258288000 36000 0 AEST}
+ {3274012800 39600 1 AEDT}
+ {3289737600 36000 0 AEST}
+ {3306067200 39600 1 AEDT}
+ {3321792000 36000 0 AEST}
+ {3337516800 39600 1 AEDT}
+ {3353241600 36000 0 AEST}
+ {3368966400 39600 1 AEDT}
+ {3384691200 36000 0 AEST}
+ {3400416000 39600 1 AEDT}
+ {3416140800 36000 0 AEST}
+ {3431865600 39600 1 AEDT}
+ {3447590400 36000 0 AEST}
+ {3463315200 39600 1 AEDT}
+ {3479644800 36000 0 AEST}
+ {3495369600 39600 1 AEDT}
+ {3511094400 36000 0 AEST}
+ {3526819200 39600 1 AEDT}
+ {3542544000 36000 0 AEST}
+ {3558268800 39600 1 AEDT}
+ {3573993600 36000 0 AEST}
+ {3589718400 39600 1 AEDT}
+ {3605443200 36000 0 AEST}
+ {3621168000 39600 1 AEDT}
+ {3636892800 36000 0 AEST}
+ {3653222400 39600 1 AEDT}
+ {3668947200 36000 0 AEST}
+ {3684672000 39600 1 AEDT}
+ {3700396800 36000 0 AEST}
+ {3716121600 39600 1 AEDT}
+ {3731846400 36000 0 AEST}
+ {3747571200 39600 1 AEDT}
+ {3763296000 36000 0 AEST}
+ {3779020800 39600 1 AEDT}
+ {3794745600 36000 0 AEST}
+ {3810470400 39600 1 AEDT}
+ {3826195200 36000 0 AEST}
+ {3842524800 39600 1 AEDT}
+ {3858249600 36000 0 AEST}
+ {3873974400 39600 1 AEDT}
+ {3889699200 36000 0 AEST}
+ {3905424000 39600 1 AEDT}
+ {3921148800 36000 0 AEST}
+ {3936873600 39600 1 AEDT}
+ {3952598400 36000 0 AEST}
+ {3968323200 39600 1 AEDT}
+ {3984048000 36000 0 AEST}
+ {4000377600 39600 1 AEDT}
+ {4016102400 36000 0 AEST}
+ {4031827200 39600 1 AEDT}
+ {4047552000 36000 0 AEST}
+ {4063276800 39600 1 AEDT}
+ {4079001600 36000 0 AEST}
+ {4094726400 39600 1 AEDT}
}
diff --git a/library/tzdata/Europe/Budapest b/library/tzdata/Europe/Budapest
index fd41acc..e660ad1 100644
--- a/library/tzdata/Europe/Budapest
+++ b/library/tzdata/Europe/Budapest
@@ -9,12 +9,10 @@ set TZData(:Europe/Budapest) {
{-1650150000 3600 0 CET}
{-1640998800 3600 0 CET}
{-1633212000 7200 1 CEST}
- {-1617577200 3600 0 CET}
+ {-1618700400 3600 0 CET}
{-1600466400 7200 1 CEST}
- {-1587250800 3600 0 CET}
- {-1569708000 7200 1 CEST}
- {-1554332400 3600 0 CET}
- {-906937200 3600 0 CET}
+ {-1581202800 3600 0 CET}
+ {-906771600 3600 0 CET}
{-857257200 3600 0 CET}
{-844556400 7200 1 CEST}
{-828226800 3600 0 CET}
@@ -22,7 +20,7 @@ set TZData(:Europe/Budapest) {
{-796777200 3600 0 CET}
{-788922000 3600 0 CET}
{-778471200 7200 1 CEST}
- {-762487200 3600 0 CET}
+ {-762660000 3600 0 CET}
{-749689200 7200 1 CEST}
{-733359600 3600 0 CET}
{-717634800 7200 1 CEST}
diff --git a/library/tzdata/Europe/Helsinki b/library/tzdata/Europe/Helsinki
index 3abf790..39c5e78 100644
--- a/library/tzdata/Europe/Helsinki
+++ b/library/tzdata/Europe/Helsinki
@@ -1,11 +1,11 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Helsinki) {
- {-9223372036854775808 5992 0 LMT}
- {-2890258792 5992 0 HMT}
- {-1535938792 7200 0 EET}
+ {-9223372036854775808 5989 0 LMT}
+ {-2890258789 5989 0 HMT}
+ {-1535938789 7200 0 EET}
{-875671200 10800 1 EEST}
- {-859863600 7200 0 EET}
+ {-859773600 7200 0 EET}
{354672000 10800 1 EEST}
{370396800 7200 0 EET}
{386121600 10800 1 EEST}
diff --git a/library/tzdata/Europe/Istanbul b/library/tzdata/Europe/Istanbul
index 7737d75..7cb4820 100644
--- a/library/tzdata/Europe/Istanbul
+++ b/library/tzdata/Europe/Istanbul
@@ -129,7 +129,8 @@ set TZData(:Europe/Istanbul) {
{1351386000 7200 0 EET}
{1364691600 10800 1 EEST}
{1382835600 7200 0 EET}
- {1396141200 10800 1 EEST}
+ {1396141200 7200 0 EET}
+ {1396227600 10800 0 EEST}
{1414285200 7200 0 EET}
{1427590800 10800 1 EEST}
{1445734800 7200 0 EET}
diff --git a/library/tzdata/Europe/Kaliningrad b/library/tzdata/Europe/Kaliningrad
index d5be459..d03f7d0 100644
--- a/library/tzdata/Europe/Kaliningrad
+++ b/library/tzdata/Europe/Kaliningrad
@@ -81,4 +81,5 @@ set TZData(:Europe/Kaliningrad) {
{1269734400 10800 1 EEST}
{1288483200 7200 0 EET}
{1301184000 10800 0 FET}
+ {1414278000 7200 0 EET}
}
diff --git a/library/tzdata/Europe/Kiev b/library/tzdata/Europe/Kiev
index 0206be7..55015fa 100644
--- a/library/tzdata/Europe/Kiev
+++ b/library/tzdata/Europe/Kiev
@@ -28,9 +28,9 @@ set TZData(:Europe/Kiev) {
{591145200 10800 0 MSK}
{606870000 14400 1 MSD}
{622594800 10800 0 MSK}
- {631141200 10800 0 MSK}
- {646786800 7200 0 EET}
- {694216800 7200 0 EET}
+ {638319600 14400 1 MSD}
+ {646786800 10800 1 EEST}
+ {686102400 7200 0 EET}
{701820000 10800 1 EEST}
{717541200 7200 0 EET}
{733269600 10800 1 EEST}
diff --git a/library/tzdata/Europe/Lisbon b/library/tzdata/Europe/Lisbon
index 79c688a..7168f96 100644
--- a/library/tzdata/Europe/Lisbon
+++ b/library/tzdata/Europe/Lisbon
@@ -1,9 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Lisbon) {
- {-9223372036854775808 -2192 0 LMT}
- {-2713908208 -2192 0 LMT}
- {-1830381808 0 0 WET}
+ {-9223372036854775808 -2205 0 LMT}
+ {-2713908195 -2205 0 LMT}
+ {-1830381795 0 0 WET}
{-1689555600 3600 1 WEST}
{-1677801600 0 0 WET}
{-1667437200 3600 1 WEST}
diff --git a/library/tzdata/Europe/Minsk b/library/tzdata/Europe/Minsk
index 1adcff8..0acb4aa 100644
--- a/library/tzdata/Europe/Minsk
+++ b/library/tzdata/Europe/Minsk
@@ -71,4 +71,5 @@ set TZData(:Europe/Minsk) {
{1269734400 10800 1 EEST}
{1288483200 7200 0 EET}
{1301184000 10800 0 FET}
+ {1414274400 10800 0 MSK}
}
diff --git a/library/tzdata/Europe/Moscow b/library/tzdata/Europe/Moscow
index 8f40741..686b3d0 100644
--- a/library/tzdata/Europe/Moscow
+++ b/library/tzdata/Europe/Moscow
@@ -1,20 +1,19 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Moscow) {
- {-9223372036854775808 9020 0 LMT}
- {-2840149820 9000 0 MMT}
- {-1688265000 9048 0 MMT}
- {-1656819048 12648 1 MST}
- {-1641353448 9048 0 MMT}
- {-1627965048 16248 1 MDST}
- {-1618716648 12648 1 MST}
- {-1596429048 16248 1 MDST}
- {-1593822648 14400 0 MSD}
+ {-9223372036854775808 9017 0 LMT}
+ {-2840149817 9017 0 MMT}
+ {-1688265017 9079 0 MMT}
+ {-1656819079 12679 1 MST}
+ {-1641353479 9079 0 MMT}
+ {-1627965079 16279 1 MDST}
+ {-1618716679 12679 1 MST}
+ {-1596429079 16279 1 MDST}
+ {-1593822679 14400 0 MSD}
{-1589860800 10800 0 MSK}
{-1542427200 14400 1 MSD}
- {-1539493200 18000 1 MSD}
+ {-1539493200 18000 1 MSM}
{-1525323600 14400 1 MSD}
- {-1522728000 10800 0 MSK}
{-1491188400 7200 0 EET}
{-1247536800 10800 0 MSD}
{354920400 14400 1 MSD}
@@ -80,4 +79,5 @@ set TZData(:Europe/Moscow) {
{1269730800 14400 1 MSD}
{1288479600 10800 0 MSK}
{1301180400 14400 0 MSK}
+ {1414274400 10800 0 MSK}
}
diff --git a/library/tzdata/Europe/Riga b/library/tzdata/Europe/Riga
index 9fad0f8..c829ffb 100644
--- a/library/tzdata/Europe/Riga
+++ b/library/tzdata/Europe/Riga
@@ -1,13 +1,13 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Riga) {
- {-9223372036854775808 5784 0 LMT}
- {-2840146584 5784 0 RMT}
- {-1632008184 9384 1 LST}
- {-1618702584 5784 0 RMT}
- {-1601681784 9384 1 LST}
- {-1597275384 5784 0 RMT}
- {-1377308184 7200 0 EET}
+ {-9223372036854775808 5794 0 LMT}
+ {-2840146594 5794 0 RMT}
+ {-1632008194 9394 1 LST}
+ {-1618702594 5794 0 RMT}
+ {-1601681794 9394 1 LST}
+ {-1597275394 5794 0 RMT}
+ {-1377308194 7200 0 EET}
{-928029600 10800 0 MSK}
{-899521200 3600 0 CET}
{-857257200 3600 0 CET}
diff --git a/library/tzdata/Europe/Samara b/library/tzdata/Europe/Samara
index f2ac911..ee9d989 100644
--- a/library/tzdata/Europe/Samara
+++ b/library/tzdata/Europe/Samara
@@ -1,8 +1,8 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Europe/Samara) {
- {-9223372036854775808 12036 0 LMT}
- {-1593825636 10800 0 SAMT}
+ {-9223372036854775808 12020 0 LMT}
+ {-1593825620 10800 0 SAMT}
{-1247540400 14400 0 SAMT}
{-1102305600 14400 0 KUYMMTT}
{354916800 18000 1 KUYST}
@@ -21,13 +21,13 @@ set TZData(:Europe/Samara) {
{559692000 14400 0 KUYT}
{575416800 18000 1 KUYST}
{591141600 14400 0 KUYT}
- {606866400 10800 0 KUYMMTT}
- {606870000 14400 1 KUYST}
- {622594800 10800 0 KUYT}
- {638319600 14400 1 KUYST}
- {654649200 10800 0 KUYT}
- {670374000 7200 0 KUYMMTT}
- {670377600 10800 1 KUYST}
+ {606866400 10800 0 MSD}
+ {606870000 14400 1 MSD}
+ {622594800 10800 0 MSK}
+ {638319600 14400 1 MSD}
+ {654649200 10800 0 MSK}
+ {670374000 7200 0 EEMMTT}
+ {670377600 10800 1 EEST}
{686102400 10800 0 KUYT}
{687916800 14400 0 SAMT}
{701809200 18000 1 SAMST}
diff --git a/library/tzdata/Europe/Simferopol b/library/tzdata/Europe/Simferopol
index 9836560..f6431fa 100644
--- a/library/tzdata/Europe/Simferopol
+++ b/library/tzdata/Europe/Simferopol
@@ -78,176 +78,6 @@ set TZData(:Europe/Simferopol) {
{1351386000 7200 0 EET}
{1364691600 10800 1 EEST}
{1382835600 7200 0 EET}
- {1396141200 10800 1 EEST}
- {1414285200 7200 0 EET}
- {1427590800 10800 1 EEST}
- {1445734800 7200 0 EET}
- {1459040400 10800 1 EEST}
- {1477789200 7200 0 EET}
- {1490490000 10800 1 EEST}
- {1509238800 7200 0 EET}
- {1521939600 10800 1 EEST}
- {1540688400 7200 0 EET}
- {1553994000 10800 1 EEST}
- {1572138000 7200 0 EET}
- {1585443600 10800 1 EEST}
- {1603587600 7200 0 EET}
- {1616893200 10800 1 EEST}
- {1635642000 7200 0 EET}
- {1648342800 10800 1 EEST}
- {1667091600 7200 0 EET}
- {1679792400 10800 1 EEST}
- {1698541200 7200 0 EET}
- {1711846800 10800 1 EEST}
- {1729990800 7200 0 EET}
- {1743296400 10800 1 EEST}
- {1761440400 7200 0 EET}
- {1774746000 10800 1 EEST}
- {1792890000 7200 0 EET}
- {1806195600 10800 1 EEST}
- {1824944400 7200 0 EET}
- {1837645200 10800 1 EEST}
- {1856394000 7200 0 EET}
- {1869094800 10800 1 EEST}
- {1887843600 7200 0 EET}
- {1901149200 10800 1 EEST}
- {1919293200 7200 0 EET}
- {1932598800 10800 1 EEST}
- {1950742800 7200 0 EET}
- {1964048400 10800 1 EEST}
- {1982797200 7200 0 EET}
- {1995498000 10800 1 EEST}
- {2014246800 7200 0 EET}
- {2026947600 10800 1 EEST}
- {2045696400 7200 0 EET}
- {2058397200 10800 1 EEST}
- {2077146000 7200 0 EET}
- {2090451600 10800 1 EEST}
- {2108595600 7200 0 EET}
- {2121901200 10800 1 EEST}
- {2140045200 7200 0 EET}
- {2153350800 10800 1 EEST}
- {2172099600 7200 0 EET}
- {2184800400 10800 1 EEST}
- {2203549200 7200 0 EET}
- {2216250000 10800 1 EEST}
- {2234998800 7200 0 EET}
- {2248304400 10800 1 EEST}
- {2266448400 7200 0 EET}
- {2279754000 10800 1 EEST}
- {2297898000 7200 0 EET}
- {2311203600 10800 1 EEST}
- {2329347600 7200 0 EET}
- {2342653200 10800 1 EEST}
- {2361402000 7200 0 EET}
- {2374102800 10800 1 EEST}
- {2392851600 7200 0 EET}
- {2405552400 10800 1 EEST}
- {2424301200 7200 0 EET}
- {2437606800 10800 1 EEST}
- {2455750800 7200 0 EET}
- {2469056400 10800 1 EEST}
- {2487200400 7200 0 EET}
- {2500506000 10800 1 EEST}
- {2519254800 7200 0 EET}
- {2531955600 10800 1 EEST}
- {2550704400 7200 0 EET}
- {2563405200 10800 1 EEST}
- {2582154000 7200 0 EET}
- {2595459600 10800 1 EEST}
- {2613603600 7200 0 EET}
- {2626909200 10800 1 EEST}
- {2645053200 7200 0 EET}
- {2658358800 10800 1 EEST}
- {2676502800 7200 0 EET}
- {2689808400 10800 1 EEST}
- {2708557200 7200 0 EET}
- {2721258000 10800 1 EEST}
- {2740006800 7200 0 EET}
- {2752707600 10800 1 EEST}
- {2771456400 7200 0 EET}
- {2784762000 10800 1 EEST}
- {2802906000 7200 0 EET}
- {2816211600 10800 1 EEST}
- {2834355600 7200 0 EET}
- {2847661200 10800 1 EEST}
- {2866410000 7200 0 EET}
- {2879110800 10800 1 EEST}
- {2897859600 7200 0 EET}
- {2910560400 10800 1 EEST}
- {2929309200 7200 0 EET}
- {2942010000 10800 1 EEST}
- {2960758800 7200 0 EET}
- {2974064400 10800 1 EEST}
- {2992208400 7200 0 EET}
- {3005514000 10800 1 EEST}
- {3023658000 7200 0 EET}
- {3036963600 10800 1 EEST}
- {3055712400 7200 0 EET}
- {3068413200 10800 1 EEST}
- {3087162000 7200 0 EET}
- {3099862800 10800 1 EEST}
- {3118611600 7200 0 EET}
- {3131917200 10800 1 EEST}
- {3150061200 7200 0 EET}
- {3163366800 10800 1 EEST}
- {3181510800 7200 0 EET}
- {3194816400 10800 1 EEST}
- {3212960400 7200 0 EET}
- {3226266000 10800 1 EEST}
- {3245014800 7200 0 EET}
- {3257715600 10800 1 EEST}
- {3276464400 7200 0 EET}
- {3289165200 10800 1 EEST}
- {3307914000 7200 0 EET}
- {3321219600 10800 1 EEST}
- {3339363600 7200 0 EET}
- {3352669200 10800 1 EEST}
- {3370813200 7200 0 EET}
- {3384118800 10800 1 EEST}
- {3402867600 7200 0 EET}
- {3415568400 10800 1 EEST}
- {3434317200 7200 0 EET}
- {3447018000 10800 1 EEST}
- {3465766800 7200 0 EET}
- {3479072400 10800 1 EEST}
- {3497216400 7200 0 EET}
- {3510522000 10800 1 EEST}
- {3528666000 7200 0 EET}
- {3541971600 10800 1 EEST}
- {3560115600 7200 0 EET}
- {3573421200 10800 1 EEST}
- {3592170000 7200 0 EET}
- {3604870800 10800 1 EEST}
- {3623619600 7200 0 EET}
- {3636320400 10800 1 EEST}
- {3655069200 7200 0 EET}
- {3668374800 10800 1 EEST}
- {3686518800 7200 0 EET}
- {3699824400 10800 1 EEST}
- {3717968400 7200 0 EET}
- {3731274000 10800 1 EEST}
- {3750022800 7200 0 EET}
- {3762723600 10800 1 EEST}
- {3781472400 7200 0 EET}
- {3794173200 10800 1 EEST}
- {3812922000 7200 0 EET}
- {3825622800 10800 1 EEST}
- {3844371600 7200 0 EET}
- {3857677200 10800 1 EEST}
- {3875821200 7200 0 EET}
- {3889126800 10800 1 EEST}
- {3907270800 7200 0 EET}
- {3920576400 10800 1 EEST}
- {3939325200 7200 0 EET}
- {3952026000 10800 1 EEST}
- {3970774800 7200 0 EET}
- {3983475600 10800 1 EEST}
- {4002224400 7200 0 EET}
- {4015530000 10800 1 EEST}
- {4033674000 7200 0 EET}
- {4046979600 10800 1 EEST}
- {4065123600 7200 0 EET}
- {4078429200 10800 1 EEST}
- {4096573200 7200 0 EET}
+ {1396137600 14400 0 MSK}
+ {1414274400 10800 0 MSK}
}
diff --git a/library/tzdata/Europe/Volgograd b/library/tzdata/Europe/Volgograd
index c3f148f..d71fb0b 100644
--- a/library/tzdata/Europe/Volgograd
+++ b/library/tzdata/Europe/Volgograd
@@ -28,43 +28,44 @@ set TZData(:Europe/Volgograd) {
{638319600 14400 1 VOLST}
{654649200 10800 0 VOLT}
{670374000 14400 0 VOLT}
- {701820000 14400 0 VOLST}
- {717534000 10800 0 VOLT}
- {733273200 14400 1 VOLST}
- {748998000 10800 0 VOLT}
- {764722800 14400 1 VOLST}
- {780447600 10800 0 VOLT}
- {796172400 14400 1 VOLST}
- {811897200 10800 0 VOLT}
- {828226800 14400 1 VOLST}
- {846370800 10800 0 VOLT}
- {859676400 14400 1 VOLST}
- {877820400 10800 0 VOLT}
- {891126000 14400 1 VOLST}
- {909270000 10800 0 VOLT}
- {922575600 14400 1 VOLST}
- {941324400 10800 0 VOLT}
- {954025200 14400 1 VOLST}
- {972774000 10800 0 VOLT}
- {985474800 14400 1 VOLST}
- {1004223600 10800 0 VOLT}
- {1017529200 14400 1 VOLST}
- {1035673200 10800 0 VOLT}
- {1048978800 14400 1 VOLST}
- {1067122800 10800 0 VOLT}
- {1080428400 14400 1 VOLST}
- {1099177200 10800 0 VOLT}
- {1111878000 14400 1 VOLST}
- {1130626800 10800 0 VOLT}
- {1143327600 14400 1 VOLST}
- {1162076400 10800 0 VOLT}
- {1174777200 14400 1 VOLST}
- {1193526000 10800 0 VOLT}
- {1206831600 14400 1 VOLST}
- {1224975600 10800 0 VOLT}
- {1238281200 14400 1 VOLST}
- {1256425200 10800 0 VOLT}
- {1269730800 14400 1 VOLST}
- {1288479600 10800 0 VOLT}
- {1301180400 14400 0 VOLT}
+ {701820000 14400 0 MSD}
+ {717534000 10800 0 MSK}
+ {733273200 14400 1 MSD}
+ {748998000 10800 0 MSK}
+ {764722800 14400 1 MSD}
+ {780447600 10800 0 MSK}
+ {796172400 14400 1 MSD}
+ {811897200 10800 0 MSK}
+ {828226800 14400 1 MSD}
+ {846370800 10800 0 MSK}
+ {859676400 14400 1 MSD}
+ {877820400 10800 0 MSK}
+ {891126000 14400 1 MSD}
+ {909270000 10800 0 MSK}
+ {922575600 14400 1 MSD}
+ {941324400 10800 0 MSK}
+ {954025200 14400 1 MSD}
+ {972774000 10800 0 MSK}
+ {985474800 14400 1 MSD}
+ {1004223600 10800 0 MSK}
+ {1017529200 14400 1 MSD}
+ {1035673200 10800 0 MSK}
+ {1048978800 14400 1 MSD}
+ {1067122800 10800 0 MSK}
+ {1080428400 14400 1 MSD}
+ {1099177200 10800 0 MSK}
+ {1111878000 14400 1 MSD}
+ {1130626800 10800 0 MSK}
+ {1143327600 14400 1 MSD}
+ {1162076400 10800 0 MSK}
+ {1174777200 14400 1 MSD}
+ {1193526000 10800 0 MSK}
+ {1206831600 14400 1 MSD}
+ {1224975600 10800 0 MSK}
+ {1238281200 14400 1 MSD}
+ {1256425200 10800 0 MSK}
+ {1269730800 14400 1 MSD}
+ {1288479600 10800 0 MSK}
+ {1301180400 14400 0 MSK}
+ {1414274400 10800 0 MSK}
}
diff --git a/library/tzdata/Indian/Antananarivo b/library/tzdata/Indian/Antananarivo
index 217715e..c56a893 100644
--- a/library/tzdata/Indian/Antananarivo
+++ b/library/tzdata/Indian/Antananarivo
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Antananarivo) {
- {-9223372036854775808 11404 0 LMT}
- {-1846293004 10800 0 EAT}
- {-499924800 14400 1 EAST}
- {-492062400 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Indian/Antananarivo) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Indian/Comoro b/library/tzdata/Indian/Comoro
index 0b3c33a..06071de 100644
--- a/library/tzdata/Indian/Comoro
+++ b/library/tzdata/Indian/Comoro
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Comoro) {
- {-9223372036854775808 10384 0 LMT}
- {-1846291984 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Indian/Comoro) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Indian/Mayotte b/library/tzdata/Indian/Mayotte
index 0fe5f56..da55521 100644
--- a/library/tzdata/Indian/Mayotte
+++ b/library/tzdata/Indian/Mayotte
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Indian/Mayotte) {
- {-9223372036854775808 10856 0 LMT}
- {-1846292456 10800 0 EAT}
+if {![info exists TZData(Africa/Nairobi)]} {
+ LoadTimeZoneFile Africa/Nairobi
}
+set TZData(:Indian/Mayotte) $TZData(:Africa/Nairobi)
diff --git a/library/tzdata/Pacific/Apia b/library/tzdata/Pacific/Apia
index e6f33ad..21d6669 100644
--- a/library/tzdata/Pacific/Apia
+++ b/library/tzdata/Pacific/Apia
@@ -3,186 +3,186 @@
set TZData(:Pacific/Apia) {
{-9223372036854775808 45184 0 LMT}
{-2855737984 -41216 0 LMT}
- {-1861878784 -41400 0 SAMT}
- {-631110600 -39600 0 WST}
- {1285498800 -36000 1 WSDT}
- {1301752800 -39600 0 WST}
- {1316872800 -36000 1 WSDT}
- {1325239200 50400 1 WSDT}
- {1333202400 46800 0 WST}
+ {-1861878784 -41400 0 WSST}
+ {-631110600 -39600 0 SST}
+ {1285498800 -36000 1 SDT}
+ {1301752800 -39600 0 SST}
+ {1316872800 -36000 1 SDT}
+ {1325239200 50400 0 WSDT}
+ {1333202400 46800 0 WSST}
{1348927200 50400 1 WSDT}
- {1365256800 46800 0 WST}
+ {1365256800 46800 0 WSST}
{1380376800 50400 1 WSDT}
- {1396706400 46800 0 WST}
+ {1396706400 46800 0 WSST}
{1411826400 50400 1 WSDT}
- {1428156000 46800 0 WST}
+ {1428156000 46800 0 WSST}
{1443276000 50400 1 WSDT}
- {1459605600 46800 0 WST}
+ {1459605600 46800 0 WSST}
{1474725600 50400 1 WSDT}
- {1491055200 46800 0 WST}
+ {1491055200 46800 0 WSST}
{1506175200 50400 1 WSDT}
- {1522504800 46800 0 WST}
+ {1522504800 46800 0 WSST}
{1538229600 50400 1 WSDT}
- {1554559200 46800 0 WST}
+ {1554559200 46800 0 WSST}
{1569679200 50400 1 WSDT}
- {1586008800 46800 0 WST}
+ {1586008800 46800 0 WSST}
{1601128800 50400 1 WSDT}
- {1617458400 46800 0 WST}
+ {1617458400 46800 0 WSST}
{1632578400 50400 1 WSDT}
- {1648908000 46800 0 WST}
+ {1648908000 46800 0 WSST}
{1664028000 50400 1 WSDT}
- {1680357600 46800 0 WST}
+ {1680357600 46800 0 WSST}
{1695477600 50400 1 WSDT}
- {1712412000 46800 0 WST}
+ {1712412000 46800 0 WSST}
{1727532000 50400 1 WSDT}
- {1743861600 46800 0 WST}
+ {1743861600 46800 0 WSST}
{1758981600 50400 1 WSDT}
- {1775311200 46800 0 WST}
+ {1775311200 46800 0 WSST}
{1790431200 50400 1 WSDT}
- {1806760800 46800 0 WST}
+ {1806760800 46800 0 WSST}
{1821880800 50400 1 WSDT}
- {1838210400 46800 0 WST}
+ {1838210400 46800 0 WSST}
{1853330400 50400 1 WSDT}
- {1869660000 46800 0 WST}
+ {1869660000 46800 0 WSST}
{1885384800 50400 1 WSDT}
- {1901714400 46800 0 WST}
+ {1901714400 46800 0 WSST}
{1916834400 50400 1 WSDT}
- {1933164000 46800 0 WST}
+ {1933164000 46800 0 WSST}
{1948284000 50400 1 WSDT}
- {1964613600 46800 0 WST}
+ {1964613600 46800 0 WSST}
{1979733600 50400 1 WSDT}
- {1996063200 46800 0 WST}
+ {1996063200 46800 0 WSST}
{2011183200 50400 1 WSDT}
- {2027512800 46800 0 WST}
+ {2027512800 46800 0 WSST}
{2042632800 50400 1 WSDT}
- {2058962400 46800 0 WST}
+ {2058962400 46800 0 WSST}
{2074687200 50400 1 WSDT}
- {2091016800 46800 0 WST}
+ {2091016800 46800 0 WSST}
{2106136800 50400 1 WSDT}
- {2122466400 46800 0 WST}
+ {2122466400 46800 0 WSST}
{2137586400 50400 1 WSDT}
- {2153916000 46800 0 WST}
+ {2153916000 46800 0 WSST}
{2169036000 50400 1 WSDT}
- {2185365600 46800 0 WST}
+ {2185365600 46800 0 WSST}
{2200485600 50400 1 WSDT}
- {2216815200 46800 0 WST}
+ {2216815200 46800 0 WSST}
{2232540000 50400 1 WSDT}
- {2248869600 46800 0 WST}
+ {2248869600 46800 0 WSST}
{2263989600 50400 1 WSDT}
- {2280319200 46800 0 WST}
+ {2280319200 46800 0 WSST}
{2295439200 50400 1 WSDT}
- {2311768800 46800 0 WST}
+ {2311768800 46800 0 WSST}
{2326888800 50400 1 WSDT}
- {2343218400 46800 0 WST}
+ {2343218400 46800 0 WSST}
{2358338400 50400 1 WSDT}
- {2374668000 46800 0 WST}
+ {2374668000 46800 0 WSST}
{2389788000 50400 1 WSDT}
- {2406117600 46800 0 WST}
+ {2406117600 46800 0 WSST}
{2421842400 50400 1 WSDT}
- {2438172000 46800 0 WST}
+ {2438172000 46800 0 WSST}
{2453292000 50400 1 WSDT}
- {2469621600 46800 0 WST}
+ {2469621600 46800 0 WSST}
{2484741600 50400 1 WSDT}
- {2501071200 46800 0 WST}
+ {2501071200 46800 0 WSST}
{2516191200 50400 1 WSDT}
- {2532520800 46800 0 WST}
+ {2532520800 46800 0 WSST}
{2547640800 50400 1 WSDT}
- {2563970400 46800 0 WST}
+ {2563970400 46800 0 WSST}
{2579090400 50400 1 WSDT}
- {2596024800 46800 0 WST}
+ {2596024800 46800 0 WSST}
{2611144800 50400 1 WSDT}
- {2627474400 46800 0 WST}
+ {2627474400 46800 0 WSST}
{2642594400 50400 1 WSDT}
- {2658924000 46800 0 WST}
+ {2658924000 46800 0 WSST}
{2674044000 50400 1 WSDT}
- {2690373600 46800 0 WST}
+ {2690373600 46800 0 WSST}
{2705493600 50400 1 WSDT}
- {2721823200 46800 0 WST}
+ {2721823200 46800 0 WSST}
{2736943200 50400 1 WSDT}
- {2753272800 46800 0 WST}
+ {2753272800 46800 0 WSST}
{2768997600 50400 1 WSDT}
- {2785327200 46800 0 WST}
+ {2785327200 46800 0 WSST}
{2800447200 50400 1 WSDT}
- {2816776800 46800 0 WST}
+ {2816776800 46800 0 WSST}
{2831896800 50400 1 WSDT}
- {2848226400 46800 0 WST}
+ {2848226400 46800 0 WSST}
{2863346400 50400 1 WSDT}
- {2879676000 46800 0 WST}
+ {2879676000 46800 0 WSST}
{2894796000 50400 1 WSDT}
- {2911125600 46800 0 WST}
+ {2911125600 46800 0 WSST}
{2926245600 50400 1 WSDT}
- {2942575200 46800 0 WST}
+ {2942575200 46800 0 WSST}
{2958300000 50400 1 WSDT}
- {2974629600 46800 0 WST}
+ {2974629600 46800 0 WSST}
{2989749600 50400 1 WSDT}
- {3006079200 46800 0 WST}
+ {3006079200 46800 0 WSST}
{3021199200 50400 1 WSDT}
- {3037528800 46800 0 WST}
+ {3037528800 46800 0 WSST}
{3052648800 50400 1 WSDT}
- {3068978400 46800 0 WST}
+ {3068978400 46800 0 WSST}
{3084098400 50400 1 WSDT}
- {3100428000 46800 0 WST}
+ {3100428000 46800 0 WSST}
{3116152800 50400 1 WSDT}
- {3132482400 46800 0 WST}
+ {3132482400 46800 0 WSST}
{3147602400 50400 1 WSDT}
- {3163932000 46800 0 WST}
+ {3163932000 46800 0 WSST}
{3179052000 50400 1 WSDT}
- {3195381600 46800 0 WST}
+ {3195381600 46800 0 WSST}
{3210501600 50400 1 WSDT}
- {3226831200 46800 0 WST}
+ {3226831200 46800 0 WSST}
{3241951200 50400 1 WSDT}
- {3258280800 46800 0 WST}
+ {3258280800 46800 0 WSST}
{3273400800 50400 1 WSDT}
- {3289730400 46800 0 WST}
+ {3289730400 46800 0 WSST}
{3305455200 50400 1 WSDT}
- {3321784800 46800 0 WST}
+ {3321784800 46800 0 WSST}
{3336904800 50400 1 WSDT}
- {3353234400 46800 0 WST}
+ {3353234400 46800 0 WSST}
{3368354400 50400 1 WSDT}
- {3384684000 46800 0 WST}
+ {3384684000 46800 0 WSST}
{3399804000 50400 1 WSDT}
- {3416133600 46800 0 WST}
+ {3416133600 46800 0 WSST}
{3431253600 50400 1 WSDT}
- {3447583200 46800 0 WST}
+ {3447583200 46800 0 WSST}
{3462703200 50400 1 WSDT}
- {3479637600 46800 0 WST}
+ {3479637600 46800 0 WSST}
{3494757600 50400 1 WSDT}
- {3511087200 46800 0 WST}
+ {3511087200 46800 0 WSST}
{3526207200 50400 1 WSDT}
- {3542536800 46800 0 WST}
+ {3542536800 46800 0 WSST}
{3557656800 50400 1 WSDT}
- {3573986400 46800 0 WST}
+ {3573986400 46800 0 WSST}
{3589106400 50400 1 WSDT}
- {3605436000 46800 0 WST}
+ {3605436000 46800 0 WSST}
{3620556000 50400 1 WSDT}
- {3636885600 46800 0 WST}
+ {3636885600 46800 0 WSST}
{3652610400 50400 1 WSDT}
- {3668940000 46800 0 WST}
+ {3668940000 46800 0 WSST}
{3684060000 50400 1 WSDT}
- {3700389600 46800 0 WST}
+ {3700389600 46800 0 WSST}
{3715509600 50400 1 WSDT}
- {3731839200 46800 0 WST}
+ {3731839200 46800 0 WSST}
{3746959200 50400 1 WSDT}
- {3763288800 46800 0 WST}
+ {3763288800 46800 0 WSST}
{3778408800 50400 1 WSDT}
- {3794738400 46800 0 WST}
+ {3794738400 46800 0 WSST}
{3809858400 50400 1 WSDT}
- {3826188000 46800 0 WST}
+ {3826188000 46800 0 WSST}
{3841912800 50400 1 WSDT}
- {3858242400 46800 0 WST}
+ {3858242400 46800 0 WSST}
{3873362400 50400 1 WSDT}
- {3889692000 46800 0 WST}
+ {3889692000 46800 0 WSST}
{3904812000 50400 1 WSDT}
- {3921141600 46800 0 WST}
+ {3921141600 46800 0 WSST}
{3936261600 50400 1 WSDT}
- {3952591200 46800 0 WST}
+ {3952591200 46800 0 WSST}
{3967711200 50400 1 WSDT}
- {3984040800 46800 0 WST}
+ {3984040800 46800 0 WSST}
{3999765600 50400 1 WSDT}
- {4016095200 46800 0 WST}
+ {4016095200 46800 0 WSST}
{4031215200 50400 1 WSDT}
- {4047544800 46800 0 WST}
+ {4047544800 46800 0 WSST}
{4062664800 50400 1 WSDT}
- {4078994400 46800 0 WST}
+ {4078994400 46800 0 WSST}
{4094114400 50400 1 WSDT}
}
diff --git a/library/tzdata/Pacific/Bougainville b/library/tzdata/Pacific/Bougainville
new file mode 100644
index 0000000..06996f9
--- /dev/null
+++ b/library/tzdata/Pacific/Bougainville
@@ -0,0 +1,10 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Pacific/Bougainville) {
+ {-9223372036854775808 37336 0 LMT}
+ {-2840178136 35312 0 PMMT}
+ {-2366790512 36000 0 PGT}
+ {-868010400 32400 0 JST}
+ {-768906000 36000 0 PGT}
+ {1419696000 39600 0 BST}
+}
diff --git a/library/tzdata/Pacific/Chatham b/library/tzdata/Pacific/Chatham
index 0ed2260..94a5512 100644
--- a/library/tzdata/Pacific/Chatham
+++ b/library/tzdata/Pacific/Chatham
@@ -2,7 +2,8 @@
set TZData(:Pacific/Chatham) {
{-9223372036854775808 44028 0 LMT}
- {-410271228 45900 0 CHAST}
+ {-3192437628 44100 0 CHAST}
+ {-757426500 45900 0 CHAST}
{152632800 49500 1 CHADT}
{162309600 45900 0 CHAST}
{183477600 49500 1 CHADT}
diff --git a/library/tzdata/Pacific/Easter b/library/tzdata/Pacific/Easter
index 000c6d1..4b45ba2 100644
--- a/library/tzdata/Pacific/Easter
+++ b/library/tzdata/Pacific/Easter
@@ -1,14 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Pacific/Easter) {
- {-9223372036854775808 -26264 0 LMT}
- {-2524495336 -26248 0 EMT}
- {-1178124152 -21600 0 EASST}
- {-870552000 -25200 0 EAST}
- {-865278000 -21600 1 EASST}
- {-740520000 -21600 1 EASST}
- {-736376400 -25200 0 EAST}
- {-718056000 -25200 0 EAST}
+ {-9223372036854775808 -26248 0 LMT}
+ {-2524495352 -26248 0 EMT}
+ {-1178124152 -25200 0 EAST}
{-36619200 -21600 1 EASST}
{-23922000 -25200 0 EAST}
{-3355200 -21600 1 EASST}
@@ -49,10 +44,10 @@ set TZData(:Pacific/Easter) {
{545194800 -21600 0 EAST}
{560923200 -18000 1 EASST}
{574225200 -21600 0 EAST}
- {591768000 -18000 1 EASST}
+ {592372800 -18000 1 EASST}
{605674800 -21600 0 EAST}
{624427200 -18000 1 EASST}
- {637729200 -21600 0 EAST}
+ {637124400 -21600 0 EAST}
{653457600 -18000 1 EASST}
{668574000 -21600 0 EAST}
{687326400 -18000 1 EASST}
@@ -102,174 +97,5 @@ set TZData(:Pacific/Easter) {
{1378612800 -18000 1 EASST}
{1398567600 -21600 0 EAST}
{1410062400 -18000 1 EASST}
- {1430017200 -21600 0 EAST}
- {1441512000 -18000 1 EASST}
- {1461466800 -21600 0 EAST}
- {1472961600 -18000 1 EASST}
- {1492916400 -21600 0 EAST}
- {1504411200 -18000 1 EASST}
- {1524970800 -21600 0 EAST}
- {1535860800 -18000 1 EASST}
- {1556420400 -21600 0 EAST}
- {1567915200 -18000 1 EASST}
- {1587870000 -21600 0 EAST}
- {1599364800 -18000 1 EASST}
- {1619319600 -21600 0 EAST}
- {1630814400 -18000 1 EASST}
- {1650769200 -21600 0 EAST}
- {1662264000 -18000 1 EASST}
- {1682218800 -21600 0 EAST}
- {1693713600 -18000 1 EASST}
- {1714273200 -21600 0 EAST}
- {1725768000 -18000 1 EASST}
- {1745722800 -21600 0 EAST}
- {1757217600 -18000 1 EASST}
- {1777172400 -21600 0 EAST}
- {1788667200 -18000 1 EASST}
- {1808622000 -21600 0 EAST}
- {1820116800 -18000 1 EASST}
- {1840071600 -21600 0 EAST}
- {1851566400 -18000 1 EASST}
- {1872126000 -21600 0 EAST}
- {1883016000 -18000 1 EASST}
- {1903575600 -21600 0 EAST}
- {1915070400 -18000 1 EASST}
- {1935025200 -21600 0 EAST}
- {1946520000 -18000 1 EASST}
- {1966474800 -21600 0 EAST}
- {1977969600 -18000 1 EASST}
- {1997924400 -21600 0 EAST}
- {2009419200 -18000 1 EASST}
- {2029374000 -21600 0 EAST}
- {2040868800 -18000 1 EASST}
- {2061428400 -21600 0 EAST}
- {2072318400 -18000 1 EASST}
- {2092878000 -21600 0 EAST}
- {2104372800 -18000 1 EASST}
- {2124327600 -21600 0 EAST}
- {2135822400 -18000 1 EASST}
- {2155777200 -21600 0 EAST}
- {2167272000 -18000 1 EASST}
- {2187226800 -21600 0 EAST}
- {2198721600 -18000 1 EASST}
- {2219281200 -21600 0 EAST}
- {2230171200 -18000 1 EASST}
- {2250730800 -21600 0 EAST}
- {2262225600 -18000 1 EASST}
- {2282180400 -21600 0 EAST}
- {2293675200 -18000 1 EASST}
- {2313630000 -21600 0 EAST}
- {2325124800 -18000 1 EASST}
- {2345079600 -21600 0 EAST}
- {2356574400 -18000 1 EASST}
- {2376529200 -21600 0 EAST}
- {2388024000 -18000 1 EASST}
- {2408583600 -21600 0 EAST}
- {2419473600 -18000 1 EASST}
- {2440033200 -21600 0 EAST}
- {2451528000 -18000 1 EASST}
- {2471482800 -21600 0 EAST}
- {2482977600 -18000 1 EASST}
- {2502932400 -21600 0 EAST}
- {2514427200 -18000 1 EASST}
- {2534382000 -21600 0 EAST}
- {2545876800 -18000 1 EASST}
- {2565831600 -21600 0 EAST}
- {2577326400 -18000 1 EASST}
- {2597886000 -21600 0 EAST}
- {2609380800 -18000 1 EASST}
- {2629335600 -21600 0 EAST}
- {2640830400 -18000 1 EASST}
- {2660785200 -21600 0 EAST}
- {2672280000 -18000 1 EASST}
- {2692234800 -21600 0 EAST}
- {2703729600 -18000 1 EASST}
- {2723684400 -21600 0 EAST}
- {2735179200 -18000 1 EASST}
- {2755738800 -21600 0 EAST}
- {2766628800 -18000 1 EASST}
- {2787188400 -21600 0 EAST}
- {2798683200 -18000 1 EASST}
- {2818638000 -21600 0 EAST}
- {2830132800 -18000 1 EASST}
- {2850087600 -21600 0 EAST}
- {2861582400 -18000 1 EASST}
- {2881537200 -21600 0 EAST}
- {2893032000 -18000 1 EASST}
- {2912986800 -21600 0 EAST}
- {2924481600 -18000 1 EASST}
- {2945041200 -21600 0 EAST}
- {2955931200 -18000 1 EASST}
- {2976490800 -21600 0 EAST}
- {2987985600 -18000 1 EASST}
- {3007940400 -21600 0 EAST}
- {3019435200 -18000 1 EASST}
- {3039390000 -21600 0 EAST}
- {3050884800 -18000 1 EASST}
- {3070839600 -21600 0 EAST}
- {3082334400 -18000 1 EASST}
- {3102894000 -21600 0 EAST}
- {3113784000 -18000 1 EASST}
- {3134343600 -21600 0 EAST}
- {3145838400 -18000 1 EASST}
- {3165793200 -21600 0 EAST}
- {3177288000 -18000 1 EASST}
- {3197242800 -21600 0 EAST}
- {3208737600 -18000 1 EASST}
- {3228692400 -21600 0 EAST}
- {3240187200 -18000 1 EASST}
- {3260142000 -21600 0 EAST}
- {3271636800 -18000 1 EASST}
- {3292196400 -21600 0 EAST}
- {3303086400 -18000 1 EASST}
- {3323646000 -21600 0 EAST}
- {3335140800 -18000 1 EASST}
- {3355095600 -21600 0 EAST}
- {3366590400 -18000 1 EASST}
- {3386545200 -21600 0 EAST}
- {3398040000 -18000 1 EASST}
- {3417994800 -21600 0 EAST}
- {3429489600 -18000 1 EASST}
- {3449444400 -21600 0 EAST}
- {3460939200 -18000 1 EASST}
- {3481498800 -21600 0 EAST}
- {3492993600 -18000 1 EASST}
- {3512948400 -21600 0 EAST}
- {3524443200 -18000 1 EASST}
- {3544398000 -21600 0 EAST}
- {3555892800 -18000 1 EASST}
- {3575847600 -21600 0 EAST}
- {3587342400 -18000 1 EASST}
- {3607297200 -21600 0 EAST}
- {3618792000 -18000 1 EASST}
- {3639351600 -21600 0 EAST}
- {3650241600 -18000 1 EASST}
- {3670801200 -21600 0 EAST}
- {3682296000 -18000 1 EASST}
- {3702250800 -21600 0 EAST}
- {3713745600 -18000 1 EASST}
- {3733700400 -21600 0 EAST}
- {3745195200 -18000 1 EASST}
- {3765150000 -21600 0 EAST}
- {3776644800 -18000 1 EASST}
- {3796599600 -21600 0 EAST}
- {3808094400 -18000 1 EASST}
- {3828654000 -21600 0 EAST}
- {3839544000 -18000 1 EASST}
- {3860103600 -21600 0 EAST}
- {3871598400 -18000 1 EASST}
- {3891553200 -21600 0 EAST}
- {3903048000 -18000 1 EASST}
- {3923002800 -21600 0 EAST}
- {3934497600 -18000 1 EASST}
- {3954452400 -21600 0 EAST}
- {3965947200 -18000 1 EASST}
- {3986506800 -21600 0 EAST}
- {3997396800 -18000 1 EASST}
- {4017956400 -21600 0 EAST}
- {4029451200 -18000 1 EASST}
- {4049406000 -21600 0 EAST}
- {4060900800 -18000 1 EASST}
- {4080855600 -21600 0 EAST}
- {4092350400 -18000 1 EASST}
+ {1430017200 -18000 0 EAST}
}
diff --git a/library/tzdata/Pacific/Fiji b/library/tzdata/Pacific/Fiji
index 454ee87..4aae330 100644
--- a/library/tzdata/Pacific/Fiji
+++ b/library/tzdata/Pacific/Fiji
@@ -16,176 +16,176 @@ set TZData(:Pacific/Fiji) {
{1350741600 46800 1 FJST}
{1358604000 43200 0 FJT}
{1382796000 46800 1 FJST}
- {1390053600 43200 0 FJT}
- {1414245600 46800 1 FJST}
+ {1390050000 43200 0 FJT}
+ {1414850400 46800 1 FJST}
{1421503200 43200 0 FJT}
- {1445695200 46800 1 FJST}
+ {1446300000 46800 1 FJST}
{1453557600 43200 0 FJT}
- {1477144800 46800 1 FJST}
+ {1478354400 46800 1 FJST}
{1485007200 43200 0 FJT}
- {1508594400 46800 1 FJST}
+ {1509804000 46800 1 FJST}
{1516456800 43200 0 FJT}
- {1540044000 46800 1 FJST}
+ {1541253600 46800 1 FJST}
{1547906400 43200 0 FJT}
- {1572098400 46800 1 FJST}
+ {1572703200 46800 1 FJST}
{1579356000 43200 0 FJT}
- {1603548000 46800 1 FJST}
+ {1604152800 46800 1 FJST}
{1611410400 43200 0 FJT}
- {1634997600 46800 1 FJST}
+ {1636207200 46800 1 FJST}
{1642860000 43200 0 FJT}
- {1666447200 46800 1 FJST}
+ {1667656800 46800 1 FJST}
{1674309600 43200 0 FJT}
- {1697896800 46800 1 FJST}
+ {1699106400 46800 1 FJST}
{1705759200 43200 0 FJT}
- {1729951200 46800 1 FJST}
+ {1730556000 46800 1 FJST}
{1737208800 43200 0 FJT}
- {1761400800 46800 1 FJST}
+ {1762005600 46800 1 FJST}
{1768658400 43200 0 FJT}
- {1792850400 46800 1 FJST}
+ {1793455200 46800 1 FJST}
{1800712800 43200 0 FJT}
- {1824300000 46800 1 FJST}
+ {1825509600 46800 1 FJST}
{1832162400 43200 0 FJT}
- {1855749600 46800 1 FJST}
+ {1856959200 46800 1 FJST}
{1863612000 43200 0 FJT}
- {1887199200 46800 1 FJST}
+ {1888408800 46800 1 FJST}
{1895061600 43200 0 FJT}
- {1919253600 46800 1 FJST}
+ {1919858400 46800 1 FJST}
{1926511200 43200 0 FJT}
- {1950703200 46800 1 FJST}
+ {1951308000 46800 1 FJST}
{1957960800 43200 0 FJT}
- {1982152800 46800 1 FJST}
+ {1983362400 46800 1 FJST}
{1990015200 43200 0 FJT}
- {2013602400 46800 1 FJST}
+ {2014812000 46800 1 FJST}
{2021464800 43200 0 FJT}
- {2045052000 46800 1 FJST}
+ {2046261600 46800 1 FJST}
{2052914400 43200 0 FJT}
- {2076501600 46800 1 FJST}
+ {2077711200 46800 1 FJST}
{2084364000 43200 0 FJT}
- {2108556000 46800 1 FJST}
+ {2109160800 46800 1 FJST}
{2115813600 43200 0 FJT}
- {2140005600 46800 1 FJST}
+ {2140610400 46800 1 FJST}
{2147868000 43200 0 FJT}
- {2171455200 46800 1 FJST}
+ {2172664800 46800 1 FJST}
{2179317600 43200 0 FJT}
- {2202904800 46800 1 FJST}
+ {2204114400 46800 1 FJST}
{2210767200 43200 0 FJT}
- {2234354400 46800 1 FJST}
+ {2235564000 46800 1 FJST}
{2242216800 43200 0 FJT}
- {2266408800 46800 1 FJST}
+ {2267013600 46800 1 FJST}
{2273666400 43200 0 FJT}
- {2297858400 46800 1 FJST}
+ {2298463200 46800 1 FJST}
{2305116000 43200 0 FJT}
- {2329308000 46800 1 FJST}
+ {2329912800 46800 1 FJST}
{2337170400 43200 0 FJT}
- {2360757600 46800 1 FJST}
+ {2361967200 46800 1 FJST}
{2368620000 43200 0 FJT}
- {2392207200 46800 1 FJST}
+ {2393416800 46800 1 FJST}
{2400069600 43200 0 FJT}
- {2423656800 46800 1 FJST}
+ {2424866400 46800 1 FJST}
{2431519200 43200 0 FJT}
- {2455711200 46800 1 FJST}
+ {2456316000 46800 1 FJST}
{2462968800 43200 0 FJT}
- {2487160800 46800 1 FJST}
+ {2487765600 46800 1 FJST}
{2495023200 43200 0 FJT}
- {2518610400 46800 1 FJST}
+ {2519820000 46800 1 FJST}
{2526472800 43200 0 FJT}
- {2550060000 46800 1 FJST}
+ {2551269600 46800 1 FJST}
{2557922400 43200 0 FJT}
- {2581509600 46800 1 FJST}
+ {2582719200 46800 1 FJST}
{2589372000 43200 0 FJT}
- {2613564000 46800 1 FJST}
+ {2614168800 46800 1 FJST}
{2620821600 43200 0 FJT}
- {2645013600 46800 1 FJST}
+ {2645618400 46800 1 FJST}
{2652271200 43200 0 FJT}
- {2676463200 46800 1 FJST}
+ {2677068000 46800 1 FJST}
{2684325600 43200 0 FJT}
- {2707912800 46800 1 FJST}
+ {2709122400 46800 1 FJST}
{2715775200 43200 0 FJT}
- {2739362400 46800 1 FJST}
+ {2740572000 46800 1 FJST}
{2747224800 43200 0 FJT}
- {2770812000 46800 1 FJST}
+ {2772021600 46800 1 FJST}
{2778674400 43200 0 FJT}
- {2802866400 46800 1 FJST}
+ {2803471200 46800 1 FJST}
{2810124000 43200 0 FJT}
- {2834316000 46800 1 FJST}
+ {2834920800 46800 1 FJST}
{2841573600 43200 0 FJT}
- {2865765600 46800 1 FJST}
+ {2866975200 46800 1 FJST}
{2873628000 43200 0 FJT}
- {2897215200 46800 1 FJST}
+ {2898424800 46800 1 FJST}
{2905077600 43200 0 FJT}
- {2928664800 46800 1 FJST}
+ {2929874400 46800 1 FJST}
{2936527200 43200 0 FJT}
- {2960114400 46800 1 FJST}
+ {2961324000 46800 1 FJST}
{2967976800 43200 0 FJT}
- {2992168800 46800 1 FJST}
+ {2992773600 46800 1 FJST}
{2999426400 43200 0 FJT}
- {3023618400 46800 1 FJST}
+ {3024223200 46800 1 FJST}
{3031480800 43200 0 FJT}
- {3055068000 46800 1 FJST}
+ {3056277600 46800 1 FJST}
{3062930400 43200 0 FJT}
- {3086517600 46800 1 FJST}
+ {3087727200 46800 1 FJST}
{3094380000 43200 0 FJT}
- {3117967200 46800 1 FJST}
+ {3119176800 46800 1 FJST}
{3125829600 43200 0 FJT}
- {3150021600 46800 1 FJST}
+ {3150626400 46800 1 FJST}
{3157279200 43200 0 FJT}
- {3181471200 46800 1 FJST}
+ {3182076000 46800 1 FJST}
{3188728800 43200 0 FJT}
- {3212920800 46800 1 FJST}
+ {3213525600 46800 1 FJST}
{3220783200 43200 0 FJT}
- {3244370400 46800 1 FJST}
+ {3245580000 46800 1 FJST}
{3252232800 43200 0 FJT}
- {3275820000 46800 1 FJST}
+ {3277029600 46800 1 FJST}
{3283682400 43200 0 FJT}
- {3307269600 46800 1 FJST}
+ {3308479200 46800 1 FJST}
{3315132000 43200 0 FJT}
- {3339324000 46800 1 FJST}
+ {3339928800 46800 1 FJST}
{3346581600 43200 0 FJT}
- {3370773600 46800 1 FJST}
+ {3371378400 46800 1 FJST}
{3378636000 43200 0 FJT}
- {3402223200 46800 1 FJST}
+ {3403432800 46800 1 FJST}
{3410085600 43200 0 FJT}
- {3433672800 46800 1 FJST}
+ {3434882400 46800 1 FJST}
{3441535200 43200 0 FJT}
- {3465122400 46800 1 FJST}
+ {3466332000 46800 1 FJST}
{3472984800 43200 0 FJT}
- {3497176800 46800 1 FJST}
+ {3497781600 46800 1 FJST}
{3504434400 43200 0 FJT}
- {3528626400 46800 1 FJST}
+ {3529231200 46800 1 FJST}
{3535884000 43200 0 FJT}
- {3560076000 46800 1 FJST}
+ {3560680800 46800 1 FJST}
{3567938400 43200 0 FJT}
- {3591525600 46800 1 FJST}
+ {3592735200 46800 1 FJST}
{3599388000 43200 0 FJT}
- {3622975200 46800 1 FJST}
+ {3624184800 46800 1 FJST}
{3630837600 43200 0 FJT}
- {3654424800 46800 1 FJST}
+ {3655634400 46800 1 FJST}
{3662287200 43200 0 FJT}
- {3686479200 46800 1 FJST}
+ {3687084000 46800 1 FJST}
{3693736800 43200 0 FJT}
- {3717928800 46800 1 FJST}
+ {3718533600 46800 1 FJST}
{3725186400 43200 0 FJT}
- {3749378400 46800 1 FJST}
+ {3750588000 46800 1 FJST}
{3757240800 43200 0 FJT}
- {3780828000 46800 1 FJST}
+ {3782037600 46800 1 FJST}
{3788690400 43200 0 FJT}
- {3812277600 46800 1 FJST}
+ {3813487200 46800 1 FJST}
{3820140000 43200 0 FJT}
- {3843727200 46800 1 FJST}
+ {3844936800 46800 1 FJST}
{3851589600 43200 0 FJT}
- {3875781600 46800 1 FJST}
+ {3876386400 46800 1 FJST}
{3883039200 43200 0 FJT}
- {3907231200 46800 1 FJST}
+ {3907836000 46800 1 FJST}
{3915093600 43200 0 FJT}
- {3938680800 46800 1 FJST}
+ {3939890400 46800 1 FJST}
{3946543200 43200 0 FJT}
- {3970130400 46800 1 FJST}
+ {3971340000 46800 1 FJST}
{3977992800 43200 0 FJT}
- {4001580000 46800 1 FJST}
+ {4002789600 46800 1 FJST}
{4009442400 43200 0 FJT}
- {4033634400 46800 1 FJST}
+ {4034239200 46800 1 FJST}
{4040892000 43200 0 FJT}
- {4065084000 46800 1 FJST}
+ {4065688800 46800 1 FJST}
{4072341600 43200 0 FJT}
- {4096533600 46800 1 FJST}
+ {4097138400 46800 1 FJST}
}
diff --git a/library/tzdata/Pacific/Midway b/library/tzdata/Pacific/Midway
index c07b030..d044569 100644
--- a/library/tzdata/Pacific/Midway
+++ b/library/tzdata/Pacific/Midway
@@ -1,10 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Midway) {
- {-9223372036854775808 -42568 0 LMT}
- {-2177410232 -39600 0 NST}
- {-428504400 -36000 1 NDT}
- {-420645600 -39600 0 NST}
- {-86878800 -39600 0 BST}
- {439038000 -39600 0 SST}
+if {![info exists TZData(Pacific/Pago_Pago)]} {
+ LoadTimeZoneFile Pacific/Pago_Pago
}
+set TZData(:Pacific/Midway) $TZData(:Pacific/Pago_Pago)
diff --git a/library/tzdata/Pacific/Pago_Pago b/library/tzdata/Pacific/Pago_Pago
index 830f9ee..ca261d0 100644
--- a/library/tzdata/Pacific/Pago_Pago
+++ b/library/tzdata/Pacific/Pago_Pago
@@ -3,8 +3,7 @@
set TZData(:Pacific/Pago_Pago) {
{-9223372036854775808 45432 0 LMT}
{-2855738232 -40968 0 LMT}
- {-1861879032 -41400 0 SAMT}
- {-631110600 -39600 0 NST}
+ {-1861879032 -39600 0 NST}
{-86878800 -39600 0 BST}
{439038000 -39600 0 SST}
}
diff --git a/library/tzdata/Pacific/Saipan b/library/tzdata/Pacific/Saipan
index b799298..4e769cd 100644
--- a/library/tzdata/Pacific/Saipan
+++ b/library/tzdata/Pacific/Saipan
@@ -1,9 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Saipan) {
- {-9223372036854775808 -51420 0 LMT}
- {-3944626980 34980 0 LMT}
- {-2177487780 32400 0 MPT}
- {-7981200 36000 0 MPT}
- {977493600 36000 0 ChST}
+if {![info exists TZData(Pacific/Guam)]} {
+ LoadTimeZoneFile Pacific/Guam
}
+set TZData(:Pacific/Saipan) $TZData(:Pacific/Guam)
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
index fb3c848..2252ec1 100644
--- a/macosx/tclMacOSXNotify.c
+++ b/macosx/tclMacOSXNotify.c
@@ -1377,7 +1377,8 @@ UpdateWaitingListAndServiceEvents(
if (tsdPtr->runLoopTimer && !tsdPtr->runLoopServicingEvents &&
(tsdPtr->runLoopNestingLevel > 1 || !tsdPtr->runLoopRunning)) {
tsdPtr->runLoopServicingEvents = 1;
- while (Tcl_ServiceAll() && tsdPtr->waitTime == 0) {}
+ /* This call seems to simply force event processing through and prevents hangups that have long been observed with Tk-Cocoa. */
+ Tcl_ServiceAll();
tsdPtr->runLoopServicingEvents = 0;
}
break;
diff --git a/tests/compile.test b/tests/compile.test
index 7e9dcda..7646c12 100644
--- a/tests/compile.test
+++ b/tests/compile.test
@@ -422,14 +422,22 @@ test compile-13.1 {testing underestimate of maxStackSize in list cmd} {exec} {
list [catch {exec [interpreter] << $script} msg] $msg
} {0 OK}
-# Special test for compiling tokens from a copy of the source
-# string [Bug #599788]
+# Tests compile-14.* for [Bug 599788] [Bug 0c043a175a47da8c2342]
test compile-14.1 {testing errors in element name; segfault?} {} {
catch {set a([error])} msg1
catch {set bubba([join $abba $jubba]) $vol} msg2
list $msg1 $msg2
} {{wrong # args: should be "error message ?errorInfo? ?errorCode?"} {can't read "abba": no such variable}}
+test compile-14.2 {testing element name "$"} -body {
+ unset -nocomplain a
+ set a() 1
+ set a(1) 2
+ set a($) 3
+ list [set a()] [set a(1)] [set a($)] [unset a() a(1); lindex [array names a] 0]
+} -cleanup {unset a} -result [list 1 2 3 {$}]
+
+
# Tests compile-15.* cover Tcl Bug 633204
test compile-15.1 {proper TCL_RETURN code from [return]} {
proc p {} {catch return}
diff --git a/tests/fileSystem.test b/tests/fileSystem.test
index 161ebc3..c255b1e 100644
--- a/tests/fileSystem.test
+++ b/tests/fileSystem.test
@@ -708,6 +708,9 @@ test filesystem-6.32 {empty file name} {
test filesystem-6.33 {empty file name} {
list [catch {file writable ""} msg] $msg
} {0 0}
+test filesystem-6.34 {file name with (invalid) nul character} {
+ list [catch "open foo\x00" msg] $msg
+} [list 1 "couldn't open \"foo\x00\": filename is invalid on this platform"]
# Make sure the testfilesystem hasn't been registered.
if {[testConstraint testfilesystem]} {
diff --git a/tests/io.test b/tests/io.test
index 53fdaf7..c3e63cc 100644
--- a/tests/io.test
+++ b/tests/io.test
@@ -1445,6 +1445,105 @@ test io-12.5 {ReadChars: fileevents on partial characters} {stdio openpipe filee
lappend x [catch {close $f} msg] $msg
set x
} "{} timeout {} timeout \u7266 {} eof 0 {}"
+test io-12.6 {ReadChars: too many chars read} {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) [encoding convertto utf-8 \
+ [string repeat \uBEEF 20][string repeat . 20]]
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+ set c [chan create read [namespace which driver]]
+ chan configure $c -encoding utf-8
+ while {![eof $c]} {
+ read $c 15
+ }
+ close $c
+} {}
+test io-12.7 {ReadChars: too many chars read [bc5b790099]} {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) [encoding convertto utf-8 \
+ [string repeat \uBEEF 10]....\uBEEF]
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+ set c [chan create read [namespace which driver]]
+ chan configure $c -encoding utf-8
+ while {![eof $c]} {
+ read $c 7
+ }
+ close $c
+} {}
+test io-12.8 {ReadChars: multibyte chars split} {
+ set f [open $path(test1) w]
+ fconfigure $f -translation binary
+ puts -nonewline $f [string repeat a 9]\xc2\xa0
+ close $f
+ set f [open $path(test1)]
+ fconfigure $f -encoding utf-8 -buffersize 10
+ set in [read $f]
+ close $f
+ scan [string index $in end] %c
+} 160
+test io-12.9 {ReadChars: multibyte chars split} {
+ set f [open $path(test1) w]
+ fconfigure $f -translation binary
+ puts -nonewline $f [string repeat a 9]\xc2
+ close $f
+ set f [open $path(test1)]
+ fconfigure $f -encoding utf-8 -buffersize 10
+ set in [read $f]
+ close $f
+ scan [string index $in end] %c
+} 194
+test io-12.10 {ReadChars: multibyte chars split} {
+ set f [open $path(test1) w]
+ fconfigure $f -translation binary
+ puts -nonewline $f [string repeat a 9]\xc2
+ close $f
+ set f [open $path(test1)]
+ fconfigure $f -encoding utf-8 -buffersize 11
+ set in [read $f]
+ close $f
+ scan [string index $in end] %c
+} 194
test io-13.1 {TranslateInputEOL: cr mode} {} {
set f [open $path(test1) w]
@@ -2786,7 +2885,7 @@ test io-29.34 {Tcl_Close, async flush on close, using sockets} {socket tempNotMa
variable x running
set l abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
proc writelots {s l} {
- for {set i 0} {$i < 2000} {incr i} {
+ for {set i 0} {$i < 9000} {incr i} {
puts $s $l
}
}
@@ -2817,7 +2916,7 @@ test io-29.34 {Tcl_Close, async flush on close, using sockets} {socket tempNotMa
close $ss
vwait [namespace which -variable x]
set c
-} 2000
+} 9000
test io-29.35 {Tcl_Close vs fileevent vs multiple interpreters} {socket tempNotMac fileevent} {
# On Mac, this test screws up sockets such that subsequent tests using port 2828
# either cause errors or panic().
@@ -4019,7 +4118,7 @@ test io-32.11.1 {Tcl_Read from a pipe} {stdio openpipe} {
} {{hello
} {hello
}}
-test io-32.11.1 {Tcl_Read from a pipe} {stdio openpipe} {
+test io-32.11.2 {Tcl_Read from a pipe} {stdio openpipe} {
file delete $path(pipe)
set f1 [open $path(pipe) w]
puts $f1 {chan configure stdout -translation crlf}
@@ -4233,6 +4332,110 @@ test io-33.10 {Tcl_Gets, exercising double buffering} {
close $f
set y
} 300
+test io-33.11 {TclGetsObjBinary, [10dc6daa37]} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) .......
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ if {$n > 3} {set n 3}
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+} -body {
+ set c [chan create read [namespace which driver]]
+ chan configure $c -translation binary -blocking 0
+ list [gets $c] [gets $c] [gets $c] [gets $c]
+} -cleanup {
+ close $c
+ rename driver {}
+} -result {{} {} {} .......}
+test io-33.12 {Tcl_GetsObj, [10dc6daa37]} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) .......
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ if {$n > 3} {set n 3}
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+} -body {
+ set c [chan create read [namespace which driver]]
+ chan configure $c -blocking 0
+ list [gets $c] [gets $c] [gets $c] [gets $c]
+} -cleanup {
+ close $c
+ rename driver {}
+} -result {{} {} {} .......}
+test io-33.13 {Tcl_GetsObj, [10dc6daa37]} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) [string repeat \
+ [string repeat . 64]\n[string repeat . 25] 2]
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ if {$n > 65} {set n 65}
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+} -body {
+ set c [chan create read [namespace which driver]]
+ chan configure $c -blocking 0
+ list [gets $c] [gets $c] [gets $c] [gets $c] [gets $c]
+} -cleanup {
+ close $c
+ rename driver {}
+} -result [list [string repeat . 64] {} [string repeat . 89] \
+ [string repeat . 25] {}]
# Test Tcl_Seek and Tcl_Tell.
@@ -4888,6 +5091,29 @@ test io-36.1 {Tcl_InputBlocked on nonblocking pipe} {stdio openpipe} {
close $f1
set x
} {{} 1 hello 0 {} 1}
+test io-36.1.1 {Tcl_InputBlocked on nonblocking binary pipe} {stdio openpipe} {
+ set f1 [open "|[list [interpreter]]" r+]
+ chan configure $f1 -encoding binary -translation lf -eofchar {}
+ puts $f1 {
+ chan configure stdout -encoding binary -translation lf -eofchar {}
+ puts hello_from_pipe
+ }
+ flush $f1
+ gets $f1
+ fconfigure $f1 -blocking off -buffering full
+ puts $f1 {puts hello}
+ set x ""
+ lappend x [gets $f1]
+ lappend x [fblocked $f1]
+ flush $f1
+ after 200
+ lappend x [gets $f1]
+ lappend x [fblocked $f1]
+ lappend x [gets $f1]
+ lappend x [fblocked $f1]
+ close $f1
+ set x
+} {{} 1 hello 0 {} 1}
test io-36.2 {Tcl_InputBlocked on blocking pipe} {stdio openpipe} {
set f1 [open "|[list [interpreter]]" r+]
fconfigure $f1 -buffering line
@@ -7552,6 +7778,113 @@ test io-53.11 {Bug 2895565} -setup {
removeFile in
} -result {40 bytes copied}
+# test io-53.12 not backported. Tests feature only in 8.6+
+
+test io-53.13 {TclCopyChannel: read error reporting} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ return {initialize finalize watch read}
+ }
+ finalize {
+ return
+ }
+ watch {}
+ read {
+ error FAIL
+ }
+ }
+ }
+ set outFile [makeFile {} out]
+} -body {
+ set in [chan create read [namespace which driver]]
+ chan configure $in -translation binary
+ set out [open $outFile wb]
+ chan copy $in $out
+} -cleanup {
+ catch {close $in}
+ catch {close $out}
+ removeFile out
+ rename driver {}
+} -result {error reading "*": *} -returnCodes error -match glob
+test io-53.14 {TclCopyChannel: write error reporting} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ return {initialize finalize watch write}
+ }
+ finalize {
+ return
+ }
+ watch {}
+ write {
+ error FAIL
+ }
+ }
+ }
+ set inFile [makeFile {aaa} in]
+} -body {
+ set in [open $inFile rb]
+ set out [chan create write [namespace which driver]]
+ chan configure $out -translation binary
+ chan copy $in $out
+} -cleanup {
+ catch {close $in}
+ catch {close $out}
+ removeFile in
+ rename driver {}
+} -result {error writing "*": *} -returnCodes error -match glob
+test io-53.15 {[ed29c4da21] DoRead: fblocked seen as error} -setup {
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ variable blocked
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) [encoding convertto utf-8 \
+ [string repeat a 100]]
+ set blocked($chan) 1
+ return {initialize finalize watch read}
+ }
+ finalize {
+ unset index($chan) buffer($chan) blocked($chan)
+ return
+ }
+ watch {}
+ read {
+ if {$blocked($chan)} {
+ set blocked($chan) [expr {!$blocked($chan)}]
+ return -code error EAGAIN
+ }
+ set n [lindex $args 1]
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ return $result
+ }
+ }
+ }
+ set c [chan create read [namespace which driver]]
+ chan configure $c -encoding utf-8
+ set out [makeFile {} out]
+ set outChan [open $out w]
+ chan configure $outChan -encoding utf-8
+} -body {
+ chan copy $c $outChan
+} -cleanup {
+ close $outChan
+ close $c
+ removeFile out
+} -result 100
+
test io-54.1 {Recursive channel events} {socket fileevent} {
# This test checks to see if file events are delivered during recursive
# event loops when there is buffered data on the channel.
@@ -8130,6 +8463,64 @@ test io-73.2 {channel Tcl_Obj SetChannelFromAny, bug 2407783} {} {
list $code [string map [list $f @@] $msg]
} {1 {can not find channel named "@@"}}
+test io-73.3 {[5adc350683] [gets] after EOF} -setup {
+ set fn [makeFile {} io-73.3]
+ set rfd [open $fn r]
+ set wfd [open $fn a]
+ chan configure $wfd -buffering line
+ read $rfd
+} -body {
+ set result [eof $rfd]
+ puts $wfd "more data"
+ lappend result [eof $rfd]
+ lappend result [gets $rfd]
+ lappend result [eof $rfd]
+ lappend result [gets $rfd]
+ lappend result [eof $rfd]
+} -cleanup {
+ close $wfd
+ close $rfd
+ removeFile io-73.3
+} -result {1 1 {more data} 0 {} 1}
+
+test io-73.4 {[5adc350683] [read] after EOF} -setup {
+ set fn [makeFile {} io-73.4]
+ set rfd [open $fn r]
+ set wfd [open $fn a]
+ chan configure $wfd -buffering line
+ read $rfd
+} -body {
+ set result [eof $rfd]
+ puts $wfd "more data"
+ lappend result [eof $rfd]
+ lappend result [read $rfd]
+ lappend result [eof $rfd]
+} -cleanup {
+ close $wfd
+ close $rfd
+ removeFile io-73.4
+} -result {1 1 {more data
+} 1}
+
+test io-73.5 {effect of eof on encoding end flags} -setup {
+ set fn [makeFile {} io-73.5]
+ set rfd [open $fn r]
+ set wfd [open $fn a]
+ chan configure $wfd -buffering none -translation binary
+ chan configure $rfd -buffersize 5 -encoding utf-8
+ read $rfd
+} -body {
+ set result [eof $rfd]
+ puts -nonewline $wfd "more\u00c2\u00a0data"
+ lappend result [eof $rfd]
+ lappend result [read $rfd]
+ lappend result [eof $rfd]
+} -cleanup {
+ close $wfd
+ close $rfd
+ removeFile io-73.5
+} -result [list 1 1 more\u00a0data 1]
+
# ### ### ### ######### ######### #########
# cleanup
diff --git a/tests/iogt.test b/tests/iogt.test
index 5fe3dc2..89e62d4 100644
--- a/tests/iogt.test
+++ b/tests/iogt.test
@@ -996,6 +996,78 @@ test iogt-6.1 {Push back and up} {testchannel knownBug} {
set res
} {xxxghi}
+# Driver for a base channel that emits several short "files"
+# with each terminated by a fleeting EOF
+ proc driver {cmd args} {
+ variable buffer
+ variable index
+ set chan [lindex $args 0]
+ switch -- $cmd {
+ initialize {
+ set index($chan) 0
+ set buffer($chan) .....
+ return {initialize finalize watch read}
+ }
+ finalize {
+ if {![info exists index($chan)]} {return}
+ unset index($chan) buffer($chan)
+ return
+ }
+ watch {}
+ read {
+ set n [lindex $args 1]
+ if {![info exists index($chan)]} {
+ driver initialize $chan
+ }
+ set new [expr {$index($chan) + $n}]
+ set result [string range $buffer($chan) $index($chan) $new-1]
+ set index($chan) $new
+ if {[string length $result] == 0} {
+ driver finalize $chan
+ }
+ return $result
+ }
+ }
+ }
+
+test iogt-7.0 {Handle fleeting EOF} -constraints {testchannel} -body {
+ set chan [chan create read [namespace which driver]]
+ identity -attach $chan
+ list [eof $chan] [read $chan] [eof $chan] [read $chan 0] [eof $chan] \
+ [read $chan] [eof $chan]
+} -cleanup {
+ close $chan
+} -result {0 ..... 1 {} 0 ..... 1}
+
+proc delay {op data} {
+ variable store
+ switch -- $op {
+ create/write - create/read -
+ delete/write - delete/read -
+ flush/write - write -
+ clear_read {;#ignore}
+ flush/read -
+ read {
+ if {![info exists store]} {set store {}}
+ set reply $store
+ set store $data
+ return $reply
+ }
+ query/maxRead {return -1}
+ }
+}
+
+test iogt-7.1 {Handle fleeting EOF} -constraints {testchannel} -body {
+ set chan [chan create read [namespace which driver]]
+ testchannel transform $chan -command [namespace code delay]
+ list [eof $chan] [read $chan] [eof $chan] [read $chan 0] [eof $chan] \
+ [read $chan] [eof $chan]
+} -cleanup {
+ close $chan
+} -result {0 ..... 1 {} 0 ..... 1}
+
+rename delay {}
+rename driver {}
# cleanup
foreach file [list dummy dummyout __echo_srv__.tcl] {
diff --git a/tests/parse.test b/tests/parse.test
index d7de5ff..cd02386 100644
--- a/tests/parse.test
+++ b/tests/parse.test
@@ -656,6 +656,9 @@ test parse-12.24 {Tcl_ParseVarName procedure, missing close paren in array refer
test parse-12.25 {Tcl_ParseVarName procedure, nested array reference} testparser {
testparser {$x(a$y(b$z))} 0
} {- {$x(a$y(b$z))} 1 word {$x(a$y(b$z))} 8 variable {$x(a$y(b$z))} 7 text x 0 text a 0 variable {$y(b$z)} 4 text y 0 text b 0 variable {$z} 1 text z 0 {}}
+test parse-12.26 {Tcl_ParseVarName [d2ffcca163] non-ascii} testparser {
+ testparser "$\u0433" -1
+} "- {$\u0433} 1 word {$\u0433} 2 text {$} 0 text \u0433 0 {}"
test parse-13.1 {Tcl_ParseVar procedure} testparsevar {
set abc 24
diff --git a/tests/parseExpr.test b/tests/parseExpr.test
index c1c489b..c3b0d71 100644
--- a/tests/parseExpr.test
+++ b/tests/parseExpr.test
@@ -1051,6 +1051,15 @@ test parseExpr-22.18 {Bug 3401704} -constraints testexprparser -body {
testexprparser 0b02 -1
} -returnCodes error -match glob -result {*invalid binary number*}
+test parseExpr-22.19 {Bug d2ffcca163} -constraints testexprparser -body {
+ testexprparser \u0433 -1
+} -returnCodes error -match glob -result {*invalid character*}
+test parseExpr-22.20 {Bug d2ffcca163} -constraints testexprparser -body {
+ testexprparser \u043f -1
+} -returnCodes error -match glob -result {*invalid character*}
+test parseExpr-22.21 {Bug d2ffcca163} -constraints testexprparser -body {
+ testexprparser in\u0433(0) -1
+} -returnCodes error -match glob -result {missing operand*}
# cleanup
cleanupTests
diff --git a/tests/socket.test b/tests/socket.test
index 1b7c5fa..b390627 100644
--- a/tests/socket.test
+++ b/tests/socket.test
@@ -577,7 +577,86 @@ test socket-2.11 {detecting new data} {socket} {
close $sock
set result
} {a:one b: c:two}
-
+test socket-2.12 {} {socket stdio} {
+ file delete $path(script)
+ set f [open $path(script) w]
+ puts $f {
+ set server [socket -server accept_client 0]
+ puts [lindex [chan configure $server -sockname] 2]
+ proc accept_client { client host port } {
+ chan configure $client -blocking 0 -buffering line
+ write_line $client
+ }
+ proc write_line client {
+ if { [catch { chan puts $client [string repeat . 720000]}] } {
+ puts [catch {chan close $client}]
+ } else {
+ puts signal1
+ after 0 write_line $client
+ }
+ }
+ chan event stdin readable {set forever now}
+ vwait forever
+ exit
+ }
+ close $f
+ set f [open "|[list [interpreter] $path(script)]" r+]
+ gets $f port
+ set sock [socket 127.0.0.1 $port]
+ chan event $sock readable [list read_lines $sock $f]
+ proc read_lines { sock pipe } {
+ gets $pipe
+ chan close $sock
+ chan event $pipe readable [list readpipe $pipe]
+ }
+ proc readpipe {pipe} {
+ while {![string is integer [set ::done [gets $pipe]]]} {}
+ }
+ vwait ::done
+ close $f
+ set ::done
+} 0
+test socket-2.13 {Bug 1758a0b603} {socket stdio} {
+ file delete $path(script)
+ set f [open $path(script) w]
+ puts $f {
+ set server [socket -server accept 0]
+ puts [lindex [chan configure $server -sockname] 2]
+ proc accept { client host port } {
+ chan configure $client -blocking 0 -buffering line -buffersize 1
+ puts $client [string repeat . 720000]
+ puts ready
+ chan event $client writable [list setup $client]
+ }
+ proc setup client {
+ chan event $client writable {set forever write}
+ after 5 {set forever timeout}
+ }
+ vwait forever
+ puts $forever
+ }
+ close $f
+ set pipe [open |[list [interpreter] $path(script)] r]
+ gets $pipe port
+ set sock [socket localhost $port]
+ chan configure $sock -blocking 0 -buffering line
+ chan event $sock readable [list read_lines $sock $pipe ]
+ proc read_lines { sock pipe } {
+ gets $pipe
+ gets $sock line
+ after idle [list stop $sock $pipe]
+ chan event $sock readable {}
+ }
+ proc stop {sock pipe} {
+ variable done
+ close $sock
+ set done [gets $pipe]
+ }
+ variable done
+ vwait [namespace which -variable done]
+ close $pipe
+ set done
+} write
test socket-3.1 {socket conflict} {socket stdio} {
file delete $path(script)
diff --git a/tests/upvar.test b/tests/upvar.test
index 79c2d53..d18fd3b 100644
--- a/tests/upvar.test
+++ b/tests/upvar.test
@@ -17,7 +17,7 @@ if {[lsearch [namespace children] ::tcltest] == -1} {
}
testConstraint testupvar [llength [info commands testupvar]]
-
+
test upvar-1.1 {reading variables with upvar} {
proc p1 {a b} {set c 22; set d 33; p2}
proc p2 {} {upvar a x1 b x2 c x3 d x4; set a abc; list $x1 $x2 $x3 $x4 $a}
@@ -332,7 +332,7 @@ test upvar-8.9 {upvar won't create namespace variable that refers to procedure v
unset ::test_ns_1::a
}
list [catch {MakeLink 1} msg] $msg
-} {1 {bad variable name "a": upvar won't create namespace variable that refers to procedure variable}}
+} {1 {bad variable name "a": can't create namespace variable that refers to procedure variable}}
test upvar-8.10 {upvar will create element alias for new array element} {
catch {unset upvarArray}
array set upvarArray {}
@@ -583,8 +583,11 @@ test upvar-NS-3.3 {CompileWord OBOE} -setup {
} -cleanup {
rename linenumber {}
} -result 1
-
-
+
# cleanup
::tcltest::cleanupTests
return
+
+# Local Variables:
+# mode: tcl
+# End:
diff --git a/tests/utf.test b/tests/utf.test
index 35c5f73..30200c1 100644
--- a/tests/utf.test
+++ b/tests/utf.test
@@ -278,15 +278,15 @@ test utf-20.1 {TclUniCharNcmp} {
} {}
test utf-21.1 {TclUniCharIsAlnum} {
- # this returns 1 with Unicode 6 compliance
+ # this returns 1 with Unicode 7 compliance
string is alnum \u1040\u021f\u0220
} {1}
test utf-21.2 {unicode alnum char in regc_locale.c} {
- # this returns 1 with Unicode 6 compliance
+ # this returns 1 with Unicode 7 compliance
list [regexp {^[[:alnum:]]+$} \u1040\u021f\u0220] [regexp {^\w+$} \u1040\u021f\u0220]
} {1 1}
test utf-21.3 {unicode print char in regc_locale.c} {
- # this returns 1 with Unicode 6 compliance
+ # this returns 1 with Unicode 7 compliance
regexp {^[[:print:]]+$} \ufbc1
} 1
test utf-21.4 {TclUniCharIsGraph} {
@@ -319,11 +319,11 @@ test utf-21.10 {unicode print char in regc_locale.c} {
} {0}
test utf-21.11 {TclUniCharIsControl} {
# [Bug 3464428]
- string is control \u00ad
+ string is control \u0000\u001f\u00ad\u0605\u061c\u180e\u2066\ufeff
} {1}
test utf-21.12 {unicode control char in regc_locale.c} {
# [Bug 3464428], [Bug a876646efe]
- regexp {^[[:cntrl:]]*$} \u0000\u001f\u00ad
+ regexp {^[[:cntrl:]]*$} \u0000\u001f\u00ad\u0605\u061c\u180e\u2066\ufeff
} {1}
test utf-22.1 {TclUniCharIsWordChar} {
@@ -334,30 +334,30 @@ test utf-22.2 {TclUniCharIsWordChar} {
} 10
test utf-23.1 {TclUniCharIsAlpha} {
- # this returns 1 with Unicode 6 compliance
- string is alpha \u021f\u0220
+ # this returns 1 with Unicode 7 compliance
+ string is alpha \u021f\u0220\u037f\u052f
} {1}
test utf-23.2 {unicode alpha char in regc_locale.c} {
- # this returns 1 with Unicode 6 compliance
- regexp {^[[:alpha:]]+$} \u021f\u0220
+ # this returns 1 with Unicode 7 compliance
+ regexp {^[[:alpha:]]+$} \u021f\u0220\u037f\u052f
} {1}
test utf-24.1 {TclUniCharIsDigit} {
- # this returns 1 with Unicode 6 compliance
+ # this returns 1 with Unicode 7 compliance
string is digit \u1040\uabf0
} {1}
test utf-24.2 {unicode digit char in regc_locale.c} {
- # this returns 1 with Unicode 6 compliance
+ # this returns 1 with Unicode 7 compliance
list [regexp {^[[:digit:]]+$} \u1040\uabf0] [regexp {^\d+$} \u1040\uabf0]
} {1 1}
test utf-24.3 {TclUniCharIsSpace} {
- # this returns 1 with Unicode 6 compliance
- string is space \u1680\u180e
+ # this returns 1 with Unicode 7 compliance
+ string is space \u1680\u180e\u202f
} {1}
test utf-24.4 {unicode space char in regc_locale.c} {
- # this returns 1 with Unicode 6 compliance
- list [regexp {^[[:space:]]+$} \u1680\u180e] [regexp {^\s+$} \u1680\u180e]
+ # this returns 1 with Unicode 7 compliance
+ list [regexp {^[[:space:]]+$} \u1680\u180e\u202f] [regexp {^\s+$} \u1680\u180e\u202f]
} {1 1}
testConstraint teststringobj [llength [info commands teststringobj]]
diff --git a/tests/var.test b/tests/var.test
index 45b7207..c852ca9 100644
--- a/tests/var.test
+++ b/tests/var.test
@@ -275,7 +275,7 @@ test var-3.11 {MakeUpvar, my var looks like array elem} -body {
catch {unset aaaaa}
set aaaaa 789789
upvar #0 aaaaa foo(bar)
-} -returnCodes 1 -result {bad variable name "foo(bar)": upvar won't create a scalar variable that looks like an array element}
+} -returnCodes 1 -result {bad variable name "foo(bar)": can't create a scalar variable that looks like an array element}
test var-4.1 {Tcl_GetVariableName, global variable} testgetvarfullname {
catch {unset a}
diff --git a/tests/winFCmd.test b/tests/winFCmd.test
index ef1c4e7..f0cb406 100644
--- a/tests/winFCmd.test
+++ b/tests/winFCmd.test
@@ -1110,16 +1110,16 @@ test winFCmd-18.1.2 {Windows reserved path names} -constraints win -body {
} -result "absolute"
test winFCmd-18.1.3 {Windows reserved path names} -constraints win -body {
- file pathtype com5
-} -result "relative"
+ file pathtype com9
+} -result "absolute"
test winFCmd-18.1.4 {Windows reserved path names} -constraints win -body {
file pathtype lpt3
} -result "absolute"
test winFCmd-18.1.5 {Windows reserved path names} -constraints win -body {
- file pathtype lpt4
-} -result "relative"
+ file pathtype lpt9
+} -result "absolute"
test winFCmd-18.1.6 {Windows reserved path names} -constraints win -body {
file pathtype nul
@@ -1238,6 +1238,11 @@ test winFCmd-19.8 {Windows extended path names} -constraints nt -setup {
catch {file delete $tmpfile}
} -result [list 0 {} [list "tcl[pid].tmp "]]
+test winFCmd-19.9 {Windows devices path names} -constraints nt -body {
+ file normalize //./com1
+} -result //./com1
+
+
# This block of code used to occur after the "return" call, so I'm
# commenting it out and assuming that this code is still under construction.
#foreach source {tef ted tnf tnd "" nul com1} {
diff --git a/tools/tcl.wse.in b/tools/tcl.wse.in
index e22b74a..0c1ee4c 100644
--- a/tools/tcl.wse.in
+++ b/tools/tcl.wse.in
@@ -12,7 +12,7 @@ item: Global
Log Pathname=%MAINDIR%\INSTALL.LOG
Message Font=MS Sans Serif
Font Size=8
- Disk Label=tcl8.5.15
+ Disk Label=tcl8.5.18
Disk Filename=setup
Patch Flags=0000000000000001
Patch Threshold=85
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 746abde..4fcdd14 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -785,11 +785,11 @@ install-libraries: libraries $(INSTALL_TZDATA) install-msgs
done;
@echo "Installing package msgcat 1.5.2 as a Tcl Module";
@$(INSTALL_DATA) $(TOP_DIR)/library/msgcat/msgcat.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/msgcat-1.5.2.tm;
- @echo "Installing package tcltest 2.3.7 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.7.tm;
+ @echo "Installing package tcltest 2.3.8 as a Tcl Module";
+ @$(INSTALL_DATA) $(TOP_DIR)/library/tcltest/tcltest.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.5/tcltest-2.3.8.tm;
- @echo "Installing package platform 1.0.12 as a Tcl Module";
- @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.12.tm;
+ @echo "Installing package platform 1.0.13 as a Tcl Module";
+ @$(INSTALL_DATA) $(TOP_DIR)/library/platform/platform.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform-1.0.13.tm;
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
@$(INSTALL_DATA) $(TOP_DIR)/library/platform/shell.tcl "$(SCRIPT_INSTALL_DIR)"/../tcl8/8.4/platform/shell-1.1.4.tm;
@@ -1660,7 +1660,7 @@ $(MAC_OSX_DIR)/configure: $(MAC_OSX_DIR)/configure.ac $(UNIX_DIR)/configure
$(UNIX_DIR)/tclConfig.h.in: $(MAC_OSX_DIR)/configure
cd $(MAC_OSX_DIR); autoheader; touch $@
-EOLFIX=$(NATIVE_TCLSH) $(TOOL_DIR)/eolFix.tcl
+EOLFIX=$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl
dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(MAC_OSX_DIR)/configure genstubs
rm -rf $(DISTDIR)
mkdir -p $(DISTDIR)/unix
@@ -1680,7 +1680,7 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic
cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
cp -p $(GENERIC_DIR)/tclGetDate.y $(DISTDIR)/generic
- cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README* \
+ cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README \
$(TOP_DIR)/ChangeLog.[12]??? $(TOP_DIR)/license.terms \
$(DISTDIR)
@mkdir $(DISTDIR)/library
@@ -1716,21 +1716,22 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
cp $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \
$(TOP_DIR)/win/tclConfig.sh.in \
$(TOP_DIR)/win/tcl.m4 $(TOP_DIR)/win/aclocal.m4 \
+ $(TOP_DIR)/win/tclsh.exe.manifest.in \
$(DISTDIR)/win
cp -p $(TOP_DIR)/win/*.[ch] $(TOP_DIR)/win/*.ico $(TOP_DIR)/win/*.rc \
$(DISTDIR)/win
cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/*.bat
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat
cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/makefile.bc $(DISTDIR)/win/makefile.vc
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.bc $(DISTDIR)/win/makefile.vc
cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/rules.vc
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc
cp -p $(TOP_DIR)/win/coffbase.txt $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/coffbase.txt
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/coffbase.txt
cp -p $(TOP_DIR)/win/tcl.hpj.in $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/tcl.hpj.in
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.hpj.in
cp -p $(TOP_DIR)/win/tcl.ds* $(DISTDIR)/win
- @$(EOLFIX) -crlf $(DISTDIR)/win/tcl.ds*
+ @$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.ds*
cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
@mkdir $(DISTDIR)/macosx
@@ -1756,7 +1757,7 @@ dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tclConfig.h.in $(UNIX_DIR)/tcl.pc.in $(M
$(TOOL_DIR)/tcl.wse.in $(TOOL_DIR)/*.bmp \
$(TOOL_DIR)/tcl.hpj.in \
$(DISTDIR)/tools
- @$(EOLFIX)-crlf $(DISTDIR)/tools/tcl.hpj.in \
+ @$(EOLFIX) -crlf $(DISTDIR)/tools/tcl.hpj.in \
$(DISTDIR)/tools/tcl.wse.in
@mkdir $(DISTDIR)/libtommath
cp -p $(TOMMATH_SRCS) $(TOMMATH_DIR)/*.h \
diff --git a/unix/configure b/unix/configure
index d268647..7a1ab59 100755
--- a/unix/configure
+++ b/unix/configure
@@ -1335,7 +1335,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=5
-TCL_PATCH_LEVEL=".15"
+TCL_PATCH_LEVEL=".18"
VERSION=${TCL_VERSION}
#------------------------------------------------------------------------
@@ -6938,8 +6938,7 @@ fi
LD_SEARCH_FLAGS=""
TCL_NEEDS_EXP_FILE=1
TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.dll.a'
- TCL_SHLIB_LD_EXTRAS='-Wl,--out-implib,$@.a'
- TK_SHLIB_LD_EXTRAS='-Wl,--out-implib,$@.a'
+ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$@.a"
echo "$as_me:$LINENO: checking for Cygwin version of gcc" >&5
echo $ECHO_N "checking for Cygwin version of gcc... $ECHO_C" >&6
if test "${ac_cv_cygwin+set}" = set; then
@@ -7577,7 +7576,14 @@ fi
LDFLAGS=""
;;
*)
- SHLIB_CFLAGS="-fPIC"
+ case "$arch" in
+ alpha|sparc64)
+ SHLIB_CFLAGS="-fPIC"
+ ;;
+ *)
+ SHLIB_CFLAGS="-fpic"
+ ;;
+ esac
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
@@ -7644,8 +7650,7 @@ fi
# This configuration from FreeBSD Ports.
SHLIB_CFLAGS="-fPIC"
SHLIB_LD="${CC} -shared"
- TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\$@"
- TK_SHLIB_LD_EXTRAS="-Wl,-soname,\$@"
+ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$@"
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
@@ -18915,7 +18920,7 @@ TCL_SHARED_BUILD=${SHARED_BUILD}
- ac_config_files="$ac_config_files Makefile:../unix/Makefile.in dltest/Makefile:../unix/dltest/Makefile.in tclConfig.sh:../unix/tclConfig.sh.in tcl.pc:../unix/tcl.pc.in"
+ ac_config_files="$ac_config_files Makefile:../unix/Makefile.in dltest/Makefile:../unix/dltest/Makefile.in tclConfig.sh:../unix/tclConfig.sh.in tcl.pc:../unix/tcl.pc.in"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
diff --git a/unix/configure.in b/unix/configure.in
index 318bcf8..e9f5aa5 100644
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -25,7 +25,7 @@ m4_ifdef([SC_USE_CONFIG_HEADERS], [
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=5
-TCL_PATCH_LEVEL=".15"
+TCL_PATCH_LEVEL=".18"
VERSION=${TCL_VERSION}
#------------------------------------------------------------------------
diff --git a/unix/tcl.m4 b/unix/tcl.m4
index b6c86b6..c4e4675 100644
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -1246,8 +1246,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
LD_SEARCH_FLAGS=""
TCL_NEEDS_EXP_FILE=1
TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.dll.a'
- TCL_SHLIB_LD_EXTRAS='-Wl,--out-implib,$[@].a'
- TK_SHLIB_LD_EXTRAS='-Wl,--out-implib,$[@].a'
+ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,--out-implib,\$[@].a"
AC_CACHE_CHECK(for Cygwin version of gcc,
ac_cv_cygwin,
AC_TRY_COMPILE([
@@ -1500,7 +1499,14 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
LDFLAGS=""
;;
*)
- SHLIB_CFLAGS="-fPIC"
+ case "$arch" in
+ alpha|sparc64)
+ SHLIB_CFLAGS="-fPIC"
+ ;;
+ *)
+ SHLIB_CFLAGS="-fpic"
+ ;;
+ esac
SHLIB_LD='${CC} -shared ${SHLIB_CFLAGS}'
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
@@ -1555,8 +1561,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [
# This configuration from FreeBSD Ports.
SHLIB_CFLAGS="-fPIC"
SHLIB_LD="${CC} -shared"
- TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\$[@]"
- TK_SHLIB_LD_EXTRAS="-Wl,-soname,\$[@]"
+ SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -Wl,-soname,\$[@]"
SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o"
DL_LIBS=""
diff --git a/unix/tcl.spec b/unix/tcl.spec
index b61f4bf..940fd1e 100644
--- a/unix/tcl.spec
+++ b/unix/tcl.spec
@@ -4,7 +4,7 @@
Name: tcl
Summary: Tcl scripting language development environment
-Version: 8.5.15
+Version: 8.5.18
Release: 2
License: BSD
Group: Development/Languages
diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in
index 710949f..9774ce9 100644
--- a/unix/tclConfig.h.in
+++ b/unix/tclConfig.h.in
@@ -4,9 +4,6 @@
#ifndef _TCLCONFIG
#define _TCLCONFIG
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
/* Is pthread_attr_get_np() declared in <pthread.h>? */
#undef ATTRGETNP_NOT_DECLARED
@@ -199,10 +196,10 @@
/* Is 'struct stat64' in <sys/stat.h>? */
#undef HAVE_STRUCT_STAT64
-/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+/* Define to 1 if `st_blksize' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
-/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+/* Define to 1 if `st_blocks' is member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLOCKS
/* Define to 1 if you have the <sys/filio.h> header file. */
@@ -337,9 +334,6 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
/* Define to the version of this package. */
#undef PACKAGE_VERSION
@@ -433,17 +427,9 @@
/* Should we use vfork() instead of fork()? */
#undef USE_VFORK
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-# undef WORDS_BIGENDIAN
-# endif
-#endif
+/* Define to 1 if your processor stores words with the most significant byte
+ first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
/* Are Darwin SUSv3 extensions available? */
#undef _DARWIN_C_SOURCE
@@ -498,7 +484,7 @@
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
-/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
/* Define as int if socklen_t is not available */
diff --git a/unix/tclUnixChan.c b/unix/tclUnixChan.c
index 93bb1fe..89c9a27 100644
--- a/unix/tclUnixChan.c
+++ b/unix/tclUnixChan.c
@@ -150,6 +150,7 @@ typedef struct TcpState {
int fd; /* The socket itself. */
int flags; /* ORed combination of the bitfields defined
* below. */
+ int interest; /* Events types of interest. */
Tcl_TcpAcceptProc *acceptProc;
/* Proc to call on accept. */
ClientData acceptProcData; /* The data for the accept proc. */
@@ -248,6 +249,7 @@ static int TtySetOptionProc(ClientData instanceData,
static int WaitForConnect(TcpState *statePtr, int *errorCodePtr);
static Tcl_Channel MakeTcpClientChannelMode(ClientData tcpSocket,
int mode);
+static void WrapNotify(ClientData clientData, int mask);
/*
* This structure describes the channel type structure for file based IO:
@@ -1645,6 +1647,11 @@ TclpOpenFileChannel(
native = Tcl_FSGetNativePath(pathPtr);
if (native == NULL) {
+ if (interp != (Tcl_Interp *) NULL) {
+ Tcl_AppendResult(interp, "couldn't open \"",
+ TclGetString(pathPtr), "\": filename is invalid on this platform",
+ NULL);
+ }
return NULL;
}
@@ -2198,6 +2205,35 @@ TcpGetOptionProc(
*/
static void
+WrapNotify(
+ ClientData clientData,
+ int mask)
+{
+ TcpState *statePtr = (TcpState *) clientData;
+ int newmask = mask & statePtr->interest;
+
+ if (newmask == 0) {
+ /*
+ * There was no overlap between the states the channel is
+ * interested in notifications for, and the states that are
+ * reported present on the file descriptor by select(). The
+ * only way that can happen is when the channel is interested
+ * in a writable condition, and only a readable state is reported
+ * present (see TcpWatchProc() below). In that case, signal back
+ * to the caller the writable state, which is really an error
+ * condition. As an extra check on that assumption, check for
+ * a non-zero value of errno before reporting an artificial
+ * writable state.
+ */
+ if (errno == 0) {
+ return;
+ }
+ newmask = TCL_WRITABLE;
+ }
+ Tcl_NotifyChannel(statePtr->channel, newmask);
+}
+
+static void
TcpWatchProc(
ClientData instanceData, /* The socket state. */
int mask) /* Events of interest; an OR-ed combination of
@@ -2214,9 +2250,30 @@ TcpWatchProc(
if (!statePtr->acceptProc) {
if (mask) {
- Tcl_CreateFileHandler(statePtr->fd, mask,
- (Tcl_FileProc *) Tcl_NotifyChannel,
- (ClientData) statePtr->channel);
+
+ /*
+ * Whether it is a bug or feature or otherwise, it is a fact
+ * of life that on at least some Linux kernels select() fails
+ * to report that a socket file descriptor is writable when
+ * the other end of the socket is closed. This is in contrast
+ * to the guarantees Tcl makes that its channels become
+ * writable and fire writable events on an error conditon.
+ * This has caused a leak of file descriptors in a state of
+ * background flushing. See Tcl ticket 1758a0b603.
+ *
+ * As a workaround, when our caller indicates an interest in
+ * writable notifications, we must tell the notifier built
+ * around select() that we are interested in the readable state
+ * of the file descriptor as well, as that is the only reliable
+ * means to get notified of error conditions. Then it is the
+ * task of WrapNotify() above to untangle the meaning of these
+ * channel states and report the chan events as best it can.
+ * We save a copy of the mask passed in to assist with that.
+ */
+
+ statePtr->interest = mask;
+ Tcl_CreateFileHandler(statePtr->fd, mask|TCL_READABLE,
+ (Tcl_FileProc *) WrapNotify, (ClientData) statePtr);
} else {
Tcl_DeleteFileHandler(statePtr->fd);
}
@@ -2404,6 +2461,7 @@ CreateSocket(
if (asyncConnect) {
statePtr->flags = TCP_ASYNC_CONNECT;
}
+ statePtr->interest = 0;
statePtr->fd = sock;
return statePtr;
@@ -2675,6 +2733,7 @@ MakeTcpClientChannelMode(
statePtr = (TcpState *) ckalloc((unsigned) sizeof(TcpState));
statePtr->fd = PTR2INT(sock);
statePtr->flags = 0;
+ statePtr->interest = 0;
statePtr->acceptProc = NULL;
statePtr->acceptProcData = NULL;
@@ -2792,6 +2851,7 @@ TcpAccept(
newSockState = (TcpState *) ckalloc((unsigned) sizeof(TcpState));
newSockState->flags = 0;
+ newSockState->interest = 0;
newSockState->fd = newsock;
newSockState->acceptProc = NULL;
newSockState->acceptProcData = NULL;
diff --git a/unix/tclUnixCompat.c b/unix/tclUnixCompat.c
index 0fc51b7..3d2b7b8 100644
--- a/unix/tclUnixCompat.c
+++ b/unix/tclUnixCompat.c
@@ -370,7 +370,7 @@ TclpGetGrNam(
#else
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
-#ifdef HAVE_GETGRNAM_R_5
+#if defined(HAVE_GETGRNAM_R_5)
struct group *grPtr = NULL;
/*
diff --git a/win/Makefile.in b/win/Makefile.in
index b962fb4..dd568ba 100644
--- a/win/Makefile.in
+++ b/win/Makefile.in
@@ -651,10 +651,10 @@ install-libraries: libraries install-tzdata install-msgs
done;
@echo "Installing package msgcat 1.5.2 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/msgcat/msgcat.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/msgcat-1.5.2.tm;
- @echo "Installing package tcltest 2.3.7 as a Tcl Module";
- @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.7.tm;
- @echo "Installing package platform 1.0.12 as a Tcl Module";
- @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.12.tm;
+ @echo "Installing package tcltest 2.3.8 as a Tcl Module";
+ @$(COPY) $(ROOT_DIR)/library/tcltest/tcltest.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.5/tcltest-2.3.8.tm;
+ @echo "Installing package platform 1.0.13 as a Tcl Module";
+ @$(COPY) $(ROOT_DIR)/library/platform/platform.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform-1.0.13.tm;
@echo "Installing package platform::shell 1.1.4 as a Tcl Module";
@$(COPY) $(ROOT_DIR)/library/platform/shell.tcl $(SCRIPT_INSTALL_DIR)/../tcl8/8.4/platform/shell-1.1.4.tm;
@echo "Installing encodings";
diff --git a/win/configure b/win/configure
index cec352b..99519a8 100755
--- a/win/configure
+++ b/win/configure
@@ -1311,7 +1311,7 @@ SHELL=/bin/sh
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=5
-TCL_PATCH_LEVEL=".15"
+TCL_PATCH_LEVEL=".18"
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
TCL_DDE_VERSION=1.3
diff --git a/win/configure.in b/win/configure.in
index cde3ab4..88270cf 100644
--- a/win/configure.in
+++ b/win/configure.in
@@ -14,7 +14,7 @@ SHELL=/bin/sh
TCL_VERSION=8.5
TCL_MAJOR_VERSION=8
TCL_MINOR_VERSION=5
-TCL_PATCH_LEVEL=".15"
+TCL_PATCH_LEVEL=".18"
VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
TCL_DDE_VERSION=1.3
diff --git a/win/tclWinChan.c b/win/tclWinChan.c
index 6d480a8..a271919 100644
--- a/win/tclWinChan.c
+++ b/win/tclWinChan.c
@@ -840,6 +840,11 @@ TclpOpenFileChannel(
nativeName = (TCHAR*) Tcl_FSGetNativePath(pathPtr);
if (nativeName == NULL) {
+ if (interp != (Tcl_Interp *) NULL) {
+ Tcl_AppendResult(interp, "couldn't open \"",
+ TclGetString(pathPtr), "\": filename is invalid on this platform",
+ NULL);
+ }
return NULL;
}
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index 9bf63b1..fe30c55 100644..100755
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -704,7 +704,7 @@ NativeReadReparse(
HANDLE hFile;
DWORD returnedLength;
- hFile = (*tclWinProcs->createFileProc)(linkDirPath, desiredAccess, 0,
+ hFile = (*tclWinProcs->createFileProc)(linkDirPath, desiredAccess, FILE_SHARE_READ,
NULL, OPEN_EXISTING,
FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, NULL);
@@ -1225,9 +1225,9 @@ WinIsReserved(
if ((path[0] == 'c' || path[0] == 'C')
&& (path[1] == 'o' || path[1] == 'O')) {
if ((path[2] == 'm' || path[2] == 'M')
- && path[3] >= '1' && path[3] <= '4') {
+ && path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'com[1-4]:?', which is a serial port.
+ * May have match for 'com[1-9]:?', which is a serial port.
*/
if (path[4] == '\0') {
@@ -1246,9 +1246,9 @@ WinIsReserved(
} else if ((path[0] == 'l' || path[0] == 'L')
&& (path[1] == 'p' || path[1] == 'P')
&& (path[2] == 't' || path[2] == 'T')) {
- if (path[3] >= '1' && path[3] <= '3') {
+ if (path[3] >= '1' && path[3] <= '9') {
/*
- * May have match for 'lpt[1-3]:?'
+ * May have match for 'lpt[1-9]:?'
*/
if (path[4] == '\0') {
@@ -3203,7 +3203,10 @@ TclNativeCreateNativeRep(
Tcl_WinUtfToTChar(str, len, &ds);
if (tclWinProcs->useWide) {
WCHAR *wp = (WCHAR *) Tcl_DStringValue(&ds);
- len = Tcl_DStringLength(&ds)>>1;
+ /* For a reserved device, strip a possible postfix ':' */
+ len = WinIsReserved(str);
+ /* For normal devices */
+ if (len == 0) len = Tcl_DStringLength(&ds)>>1;
/*
** If path starts with "//?/" or "\\?\" (extended path), translate
** any slashes to backslashes but accept the '?' as being valid.
diff --git a/win/tclWinPort.h b/win/tclWinPort.h
index ea6d8f8..b2bf1d7 100644
--- a/win/tclWinPort.h
+++ b/win/tclWinPort.h
@@ -346,17 +346,17 @@ typedef DWORD_PTR * PDWORD_PTR;
* EDEADLK as the same value, which confuses Tcl_ErrnoId().
*/
-#if defined(_MSC_VER) || defined(__MINGW32__)
+#if defined(_MSC_VER) || defined(__MSVCRT__)
# define environ _environ
# if defined(_MSC_VER) && (_MSC_VER < 1600)
# define hypot _hypot
# endif
# define exception _exception
# undef EDEADLOCK
-# if defined(__MINGW32__) && !defined(__MSVCRT__)
+# if defined(_MSC_VER) && (_MSC_VER >= 1700)
# define timezone _timezone
# endif
-#endif /* _MSC_VER || __MINGW32__ */
+#endif /* _MSC_VER || __MSVCRT__ */
/*
* Borland's timezone and environ functions.
@@ -425,7 +425,7 @@ typedef DWORD_PTR * PDWORD_PTR;
* Msvcrt's putenv() copies the string rather than takes ownership of it.
*/
-#if defined(_MSC_VER) || defined(__MINGW32__)
+#if defined(_MSC_VER) || defined(__MSVCRT__)
# define HAVE_PUTENV_THAT_COPIES 1
#endif
diff --git a/win/tclWinSock.c b/win/tclWinSock.c
index e18a3dd..8f565b9 100644
--- a/win/tclWinSock.c
+++ b/win/tclWinSock.c
@@ -1239,13 +1239,17 @@ WaitForSocketEvent(
/*
* Reset WSAAsyncSelect so we have a fresh set of events pending.
+ * Don't do that if we are waiting for a connect as we may miss
+ * a connect (bug 336441ed59).
*/
- SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT,
- (LPARAM) infoPtr);
-
- SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT,
- (LPARAM) infoPtr);
+ if ( 0 == (events & FD_CONNECT) ) {
+ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) UNSELECT,
+ (LPARAM) infoPtr);
+
+ SendMessage(tsdPtr->hwnd, SOCKET_SELECT, (WPARAM) SELECT,
+ (LPARAM) infoPtr);
+ }
while (1) {
if (infoPtr->lastError) {
@@ -2409,11 +2413,15 @@ SocketProc(
case SOCKET_SELECT:
infoPtr = (SocketInfo *) lParam;
if (wParam == SELECT) {
+ /*
+ * Start notification by windows messages on socket events
+ */
+
WSAAsyncSelect(infoPtr->socket, hwnd,
SOCKET_MESSAGE, infoPtr->selectEvents);
} else {
/*
- * Clear the selection mask
+ * UNSELECT: Clear the selection mask
*/
WSAAsyncSelect(infoPtr->socket, hwnd, 0, 0);
diff --git a/win/tclsh.exe.manifest.in b/win/tclsh.exe.manifest.in
index aaa34e1..8b06fce 100644
--- a/win/tclsh.exe.manifest.in
+++ b/win/tclsh.exe.manifest.in
@@ -20,6 +20,8 @@
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
+ <!-- Windows 10 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 8 -->
@@ -30,4 +32,22 @@
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
+ <asmv3:application>
+ <asmv3:windowsSettings
+ xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+ <dpiAware>true</dpiAware>
+ </asmv3:windowsSettings>
+ </asmv3:application>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="Microsoft.Windows.Common-Controls"
+ version="6.0.0.0"
+ processorArchitecture="@MACHINE@"
+ publicKeyToken="6595b64144ccf1df"
+ language="*"
+ />
+ </dependentAssembly>
+ </dependency>
</assembly>