From 7b4f0d01c9234e2baae9058a34a761f5189cbd02 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 13 Nov 2007 16:02:24 +0000 Subject: [PATCH] Upgrade to Tcl/Tk 8.5b2 Signed-off-by: Johannes Schindelin --- mingw/bin/tcl84.dll | Bin 822887 -> 0 bytes mingw/bin/tcl85.dll | Bin 0 -> 1086339 bytes mingw/bin/tcldde12.dll | Bin 15360 -> 0 bytes mingw/bin/tclpip84.dll | Bin 22349 -> 0 bytes mingw/bin/tclpip85.dll | Bin 0 -> 22349 bytes mingw/bin/tclreg11.dll | Bin 15360 -> 0 bytes mingw/bin/tclsh | 2 +- mingw/bin/tclsh84.exe | Bin 26316 -> 0 bytes mingw/bin/tclsh85.exe | Bin 0 -> 23279 bytes mingw/bin/tk84.dll | Bin 1109028 -> 0 bytes mingw/bin/tk85.dll | Bin 0 -> 1403916 bytes mingw/bin/wish | 2 + mingw/bin/wish.exe | Bin 28237 -> 0 bytes mingw/bin/wish84.exe | Bin 28237 -> 0 bytes mingw/bin/wish85.exe | Bin 0 -> 28077 bytes mingw/doc/tcltk/PORTNOTES | 8 - mingw/doc/tcltk/license.terms | 40 - mingw/include/X11/X.h | 4 +- mingw/include/X11/Xlib.h | 15 +- mingw/include/X11/Xutil.h | 4 +- mingw/include/X11/keysym.h | 4 - mingw/include/tcl.h | 2344 ++-- mingw/include/tclDecls.h | 10842 +++++++++++-------- mingw/include/tclPlatDecls.h | 338 +- mingw/include/tclTomMath.h | 845 ++ mingw/include/tclTomMathDecls.h | 789 ++ mingw/include/tk.h | 1057 +- mingw/include/tkDecls.h | 5373 +++++---- mingw/include/tkIntXlibDecls.h | 4680 ++++---- mingw/include/tkPlatDecls.h | 553 +- mingw/include/tommath_class.h | 999 ++ mingw/include/tommath_superclass.h | 76 + mingw/lib/dde1.2/pkgIndex.tcl | 7 - mingw/lib/dde1.2/tcldde12.dll | Bin 34524 -> 0 bytes mingw/lib/dde1.3/pkgIndex.tcl | 7 + mingw/lib/dde1.3/tcldde13.dll | Bin 0 -> 37328 bytes mingw/lib/jpegtclConfig.sh | 57 - mingw/lib/libtcl84.a | Bin 560824 -> 0 bytes mingw/lib/libtcl85.a | Bin 0 -> 501884 bytes mingw/lib/libtcldde12.a | Bin 1412 -> 0 bytes mingw/lib/libtclreg11.a | Bin 1436 -> 0 bytes mingw/lib/libtclstub84.a | Bin 1118 -> 0 bytes mingw/lib/libtclstub85.a | Bin 0 -> 2022 bytes mingw/lib/libtk84.a | Bin 492340 -> 0 bytes mingw/lib/libtk85.a | Bin 0 -> 350360 bytes mingw/lib/libtkstub84.a | Bin 2370 -> 0 bytes mingw/lib/libtkstub85.a | Bin 0 -> 1356 bytes mingw/lib/pngtclConfig.sh | 55 - mingw/lib/reg1.1/pkgIndex.tcl | 9 - mingw/lib/reg1.1/tclreg11.dll | Bin 32914 -> 0 bytes mingw/lib/reg1.2/pkgIndex.tcl | 9 + mingw/lib/reg1.2/tclreg12.dll | Bin 0 -> 34635 bytes mingw/lib/tcl8.4/auto.tcl | 616 -- mingw/lib/tcl8.4/history.tcl | 375 - mingw/lib/tcl8.4/http2.4/http.tcl | 914 -- mingw/lib/tcl8.4/http2.4/pkgIndex.tcl | 12 - mingw/lib/tcl8.4/http2.5/http.tcl | 1039 -- mingw/lib/tcl8.4/http2.5/pkgIndex.tcl | 12 - mingw/lib/tcl8.4/init.tcl | 747 -- mingw/lib/tcl8.4/ldAout.tcl | 233 - mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl | 485 - mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl | 2 - mingw/lib/tcl8.4/opt0.4/optparse.tcl | 1074 -- mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl | 12 - mingw/lib/tcl8.4/package.tcl | 828 -- mingw/lib/tcl8.4/parray.tcl | 29 - mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl | 9 - mingw/lib/tcl8.4/reg1.1/registry.tap | 20 - mingw/lib/tcl8.4/reg1.1/tclreg11.dll | Bin 24576 -> 0 bytes mingw/lib/tcl8.4/safe.tcl | 924 -- mingw/lib/tcl8.4/tclIndex | 83 - mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl | 12 - mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl | 3354 ------ mingw/lib/tcl8.4/word.tcl | 132 - mingw/lib/tcl8.5/auto.tcl | 610 ++ mingw/lib/tcl8.5/clock.tcl | 4713 ++++++++ mingw/lib/{tcl8.4 => tcl8.5}/encoding/ascii.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/big5.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1250.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1251.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1252.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1253.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1254.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1255.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1256.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1257.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1258.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp437.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp737.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp775.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp850.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp852.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp855.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp857.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp860.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp861.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp862.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp863.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp864.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp865.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp866.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp869.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp874.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp932.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp936.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp949.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp950.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/dingbats.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/ebcdic.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-cn.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-jp.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-kr.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb12345.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb1988.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/gb2312-raw.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb2312.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso2022-jp.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso2022-kr.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso2022.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-1.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-10.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-13.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-14.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-15.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-16.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-2.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-3.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-4.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-5.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-6.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-7.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-8.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/iso8859-9.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0201.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0208.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0212.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/koi8-r.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/koi8-u.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/ksc5601.enc | 0 .../{tcl8.4 => tcl8.5}/encoding/macCentEuro.enc | 0 .../{tcl8.4 => tcl8.5}/encoding/macCroatian.enc | 0 .../{tcl8.4 => tcl8.5}/encoding/macCyrillic.enc | 0 .../{tcl8.4 => tcl8.5}/encoding/macDingbats.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/macGreek.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/macIceland.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/macJapan.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/macRoman.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/macRomania.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/macThai.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/macTurkish.enc | 0 .../lib/{tcl8.4 => tcl8.5}/encoding/macUkraine.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/shiftjis.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/symbol.enc | 0 mingw/lib/{tcl8.4 => tcl8.5}/encoding/tis-620.enc | 0 mingw/lib/tcl8.5/history.tcl | 375 + mingw/lib/{tcl8.4 => tcl8.5}/http1.0/http.tcl | 0 mingw/lib/{tcl8.4 => tcl8.5}/http1.0/pkgIndex.tcl | 0 mingw/lib/tcl8.5/init.tcl | 848 ++ mingw/lib/tcl8.5/msgs/af.msg | 49 + mingw/lib/tcl8.5/msgs/af_za.msg | 6 + mingw/lib/tcl8.5/msgs/ar.msg | 54 + mingw/lib/tcl8.5/msgs/ar_in.msg | 6 + mingw/lib/tcl8.5/msgs/ar_jo.msg | 39 + mingw/lib/tcl8.5/msgs/ar_lb.msg | 39 + mingw/lib/tcl8.5/msgs/ar_sy.msg | 39 + mingw/lib/tcl8.5/msgs/be.msg | 52 + mingw/lib/tcl8.5/msgs/bg.msg | 52 + mingw/lib/tcl8.5/msgs/bn.msg | 49 + mingw/lib/tcl8.5/msgs/bn_in.msg | 6 + mingw/lib/tcl8.5/msgs/ca.msg | 50 + mingw/lib/tcl8.5/msgs/cs.msg | 54 + mingw/lib/tcl8.5/msgs/da.msg | 52 + mingw/lib/tcl8.5/msgs/de.msg | 54 + mingw/lib/tcl8.5/msgs/de_at.msg | 35 + mingw/lib/tcl8.5/msgs/de_be.msg | 53 + mingw/lib/tcl8.5/msgs/el.msg | 52 + mingw/lib/tcl8.5/msgs/en_au.msg | 7 + mingw/lib/tcl8.5/msgs/en_be.msg | 7 + mingw/lib/tcl8.5/msgs/en_bw.msg | 6 + mingw/lib/tcl8.5/msgs/en_ca.msg | 7 + mingw/lib/tcl8.5/msgs/en_gb.msg | 7 + mingw/lib/tcl8.5/msgs/en_hk.msg | 8 + mingw/lib/tcl8.5/msgs/en_ie.msg | 7 + mingw/lib/tcl8.5/msgs/en_in.msg | 8 + mingw/lib/tcl8.5/msgs/en_nz.msg | 7 + mingw/lib/tcl8.5/msgs/en_ph.msg | 8 + mingw/lib/tcl8.5/msgs/en_sg.msg | 6 + mingw/lib/tcl8.5/msgs/en_za.msg | 6 + mingw/lib/tcl8.5/msgs/en_zw.msg | 6 + mingw/lib/tcl8.5/msgs/eo.msg | 54 + mingw/lib/tcl8.5/msgs/es.msg | 52 + mingw/lib/tcl8.5/msgs/es_ar.msg | 6 + mingw/lib/tcl8.5/msgs/es_bo.msg | 6 + mingw/lib/tcl8.5/msgs/es_cl.msg | 6 + mingw/lib/tcl8.5/msgs/es_co.msg | 6 + mingw/lib/tcl8.5/msgs/es_cr.msg | 6 + mingw/lib/tcl8.5/msgs/es_do.msg | 6 + mingw/lib/tcl8.5/msgs/es_ec.msg | 6 + mingw/lib/tcl8.5/msgs/es_gt.msg | 6 + mingw/lib/tcl8.5/msgs/es_hn.msg | 6 + mingw/lib/tcl8.5/msgs/es_mx.msg | 6 + mingw/lib/tcl8.5/msgs/es_ni.msg | 6 + mingw/lib/tcl8.5/msgs/es_pa.msg | 6 + mingw/lib/tcl8.5/msgs/es_pe.msg | 6 + mingw/lib/tcl8.5/msgs/es_pr.msg | 6 + mingw/lib/tcl8.5/msgs/es_py.msg | 6 + mingw/lib/tcl8.5/msgs/es_sv.msg | 6 + mingw/lib/tcl8.5/msgs/es_uy.msg | 6 + mingw/lib/tcl8.5/msgs/es_ve.msg | 6 + mingw/lib/tcl8.5/msgs/et.msg | 52 + mingw/lib/tcl8.5/msgs/eu.msg | 47 + mingw/lib/tcl8.5/msgs/eu_es.msg | 7 + mingw/lib/tcl8.5/msgs/fa.msg | 47 + mingw/lib/tcl8.5/msgs/fa_in.msg | 52 + mingw/lib/tcl8.5/msgs/fa_ir.msg | 9 + mingw/lib/tcl8.5/msgs/fi.msg | 50 + mingw/lib/tcl8.5/msgs/fo.msg | 47 + mingw/lib/tcl8.5/msgs/fo_fo.msg | 7 + mingw/lib/tcl8.5/msgs/fr.msg | 52 + mingw/lib/tcl8.5/msgs/fr_be.msg | 7 + mingw/lib/tcl8.5/msgs/fr_ca.msg | 7 + mingw/lib/tcl8.5/msgs/fr_ch.msg | 7 + mingw/lib/tcl8.5/msgs/ga.msg | 47 + mingw/lib/tcl8.5/msgs/ga_ie.msg | 7 + mingw/lib/tcl8.5/msgs/gl.msg | 47 + mingw/lib/tcl8.5/msgs/gl_es.msg | 6 + mingw/lib/tcl8.5/msgs/gv.msg | 47 + mingw/lib/tcl8.5/msgs/gv_gb.msg | 6 + mingw/lib/tcl8.5/msgs/he.msg | 52 + mingw/lib/tcl8.5/msgs/hi.msg | 39 + mingw/lib/tcl8.5/msgs/hi_in.msg | 6 + mingw/lib/tcl8.5/msgs/hr.msg | 50 + mingw/lib/tcl8.5/msgs/hu.msg | 54 + mingw/lib/tcl8.5/msgs/id.msg | 47 + mingw/lib/tcl8.5/msgs/id_id.msg | 6 + mingw/lib/tcl8.5/msgs/is.msg | 50 + mingw/lib/tcl8.5/msgs/it.msg | 54 + mingw/lib/tcl8.5/msgs/it_ch.msg | 6 + mingw/lib/tcl8.5/msgs/ja.msg | 44 + mingw/lib/tcl8.5/msgs/kl.msg | 47 + mingw/lib/tcl8.5/msgs/kl_gl.msg | 7 + mingw/lib/tcl8.5/msgs/ko.msg | 55 + mingw/lib/tcl8.5/msgs/ko_kr.msg | 8 + mingw/lib/tcl8.5/msgs/kok.msg | 39 + mingw/lib/tcl8.5/msgs/kok_in.msg | 6 + mingw/lib/tcl8.5/msgs/kw.msg | 47 + mingw/lib/tcl8.5/msgs/kw_gb.msg | 6 + mingw/lib/tcl8.5/msgs/lt.msg | 52 + mingw/lib/tcl8.5/msgs/lv.msg | 52 + mingw/lib/tcl8.5/msgs/mk.msg | 52 + mingw/lib/tcl8.5/msgs/mr.msg | 39 + mingw/lib/tcl8.5/msgs/mr_in.msg | 6 + mingw/lib/tcl8.5/msgs/ms.msg | 47 + mingw/lib/tcl8.5/msgs/ms_my.msg | 6 + mingw/lib/tcl8.5/msgs/mt.msg | 27 + mingw/lib/tcl8.5/msgs/nb.msg | 52 + mingw/lib/tcl8.5/msgs/nl.msg | 50 + mingw/lib/tcl8.5/msgs/nl_be.msg | 7 + mingw/lib/tcl8.5/msgs/nn.msg | 52 + mingw/lib/tcl8.5/msgs/pl.msg | 52 + mingw/lib/tcl8.5/msgs/pt.msg | 50 + mingw/lib/tcl8.5/msgs/pt_br.msg | 7 + mingw/lib/tcl8.5/msgs/ro.msg | 52 + mingw/lib/tcl8.5/msgs/ru.msg | 52 + mingw/lib/tcl8.5/msgs/ru_ua.msg | 6 + mingw/lib/tcl8.5/msgs/sh.msg | 52 + mingw/lib/tcl8.5/msgs/sk.msg | 52 + mingw/lib/tcl8.5/msgs/sl.msg | 52 + mingw/lib/tcl8.5/msgs/sq.msg | 54 + mingw/lib/tcl8.5/msgs/sr.msg | 52 + mingw/lib/tcl8.5/msgs/sv.msg | 52 + mingw/lib/tcl8.5/msgs/sw.msg | 49 + mingw/lib/tcl8.5/msgs/ta.msg | 39 + mingw/lib/tcl8.5/msgs/ta_in.msg | 6 + mingw/lib/tcl8.5/msgs/te.msg | 47 + mingw/lib/tcl8.5/msgs/te_in.msg | 8 + mingw/lib/tcl8.5/msgs/th.msg | 54 + mingw/lib/tcl8.5/msgs/tr.msg | 50 + mingw/lib/tcl8.5/msgs/uk.msg | 52 + mingw/lib/tcl8.5/msgs/vi.msg | 50 + mingw/lib/tcl8.5/msgs/zh.msg | 55 + mingw/lib/tcl8.5/msgs/zh_cn.msg | 7 + mingw/lib/tcl8.5/msgs/zh_hk.msg | 28 + mingw/lib/tcl8.5/msgs/zh_sg.msg | 8 + mingw/lib/tcl8.5/msgs/zh_tw.msg | 8 + mingw/lib/tcl8.5/opt0.4/optparse.tcl | 1074 ++ mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl | 12 + mingw/lib/tcl8.5/package.tcl | 747 ++ mingw/lib/tcl8.5/parray.tcl | 30 + mingw/lib/tcl8.5/safe.tcl | 909 ++ mingw/lib/tcl8.5/tclIndex | 88 + mingw/lib/tcl8.5/tm.tcl | 362 + mingw/lib/tcl8.5/tzdata/Africa/Abidjan | 6 + mingw/lib/tcl8.5/tzdata/Africa/Accra | 20 + mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa | 7 + mingw/lib/tcl8.5/tzdata/Africa/Algiers | 39 + mingw/lib/tcl8.5/tzdata/Africa/Asmara | 8 + mingw/lib/tcl8.5/tzdata/Africa/Asmera | 5 + mingw/lib/tcl8.5/tzdata/Africa/Bamako | 8 + mingw/lib/tcl8.5/tzdata/Africa/Bangui | 6 + mingw/lib/tcl8.5/tzdata/Africa/Banjul | 8 + mingw/lib/tcl8.5/tzdata/Africa/Bissau | 7 + mingw/lib/tcl8.5/tzdata/Africa/Blantyre | 6 + mingw/lib/tcl8.5/tzdata/Africa/Brazzaville | 6 + mingw/lib/tcl8.5/tzdata/Africa/Bujumbura | 6 + mingw/lib/tcl8.5/tzdata/Africa/Cairo | 304 + mingw/lib/tcl8.5/tzdata/Africa/Casablanca | 24 + mingw/lib/tcl8.5/tzdata/Africa/Ceuta | 258 + mingw/lib/tcl8.5/tzdata/Africa/Conakry | 8 + mingw/lib/tcl8.5/tzdata/Africa/Dakar | 7 + mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam | 8 + mingw/lib/tcl8.5/tzdata/Africa/Djibouti | 6 + mingw/lib/tcl8.5/tzdata/Africa/Douala | 6 + mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun | 7 + mingw/lib/tcl8.5/tzdata/Africa/Freetown | 36 + mingw/lib/tcl8.5/tzdata/Africa/Gaborone | 8 + mingw/lib/tcl8.5/tzdata/Africa/Harare | 6 + mingw/lib/tcl8.5/tzdata/Africa/Johannesburg | 11 + mingw/lib/tcl8.5/tzdata/Africa/Kampala | 9 + mingw/lib/tcl8.5/tzdata/Africa/Khartoum | 39 + mingw/lib/tcl8.5/tzdata/Africa/Kigali | 6 + mingw/lib/tcl8.5/tzdata/Africa/Kinshasa | 6 + mingw/lib/tcl8.5/tzdata/Africa/Lagos | 6 + mingw/lib/tcl8.5/tzdata/Africa/Libreville | 6 + mingw/lib/tcl8.5/tzdata/Africa/Lome | 6 + mingw/lib/tcl8.5/tzdata/Africa/Luanda | 7 + mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi | 6 + mingw/lib/tcl8.5/tzdata/Africa/Lusaka | 6 + mingw/lib/tcl8.5/tzdata/Africa/Malabo | 7 + mingw/lib/tcl8.5/tzdata/Africa/Maputo | 6 + mingw/lib/tcl8.5/tzdata/Africa/Maseru | 8 + mingw/lib/tcl8.5/tzdata/Africa/Mbabane | 6 + mingw/lib/tcl8.5/tzdata/Africa/Mogadishu | 8 + mingw/lib/tcl8.5/tzdata/Africa/Monrovia | 8 + mingw/lib/tcl8.5/tzdata/Africa/Nairobi | 9 + mingw/lib/tcl8.5/tzdata/Africa/Ndjamena | 8 + mingw/lib/tcl8.5/tzdata/Africa/Niamey | 8 + mingw/lib/tcl8.5/tzdata/Africa/Nouakchott | 8 + mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou | 6 + mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo | 7 + mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome | 7 + mingw/lib/tcl8.5/tzdata/Africa/Timbuktu | 5 + mingw/lib/tcl8.5/tzdata/Africa/Tripoli | 31 + mingw/lib/tcl8.5/tzdata/Africa/Tunis | 221 + mingw/lib/tcl8.5/tzdata/Africa/Windhoek | 222 + mingw/lib/tcl8.5/tzdata/America/Adak | 276 + mingw/lib/tcl8.5/tzdata/America/Anchorage | 276 + mingw/lib/tcl8.5/tzdata/America/Anguilla | 6 + mingw/lib/tcl8.5/tzdata/America/Antigua | 7 + mingw/lib/tcl8.5/tzdata/America/Araguaina | 57 + .../tcl8.5/tzdata/America/Argentina/Buenos_Aires | 63 + .../lib/tcl8.5/tzdata/America/Argentina/Catamarca | 65 + .../tcl8.5/tzdata/America/Argentina/ComodRivadavia | 5 + mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba | 63 + mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy | 64 + mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja | 66 + mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza | 65 + .../tcl8.5/tzdata/America/Argentina/Rio_Gallegos | 65 + mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan | 66 + mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman | 65 + mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia | 65 + mingw/lib/tcl8.5/tzdata/America/Aruba | 7 + mingw/lib/tcl8.5/tzdata/America/Asuncion | 259 + mingw/lib/tcl8.5/tzdata/America/Atikokan | 12 + mingw/lib/tcl8.5/tzdata/America/Atka | 5 + mingw/lib/tcl8.5/tzdata/America/Bahia | 65 + mingw/lib/tcl8.5/tzdata/America/Barbados | 15 + mingw/lib/tcl8.5/tzdata/America/Belem | 35 + mingw/lib/tcl8.5/tzdata/America/Belize | 60 + mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon | 12 + mingw/lib/tcl8.5/tzdata/America/Boa_Vista | 40 + mingw/lib/tcl8.5/tzdata/America/Bogota | 9 + mingw/lib/tcl8.5/tzdata/America/Boise | 281 + mingw/lib/tcl8.5/tzdata/America/Buenos_Aires | 5 + mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay | 252 + mingw/lib/tcl8.5/tzdata/America/Campo_Grande | 257 + mingw/lib/tcl8.5/tzdata/America/Cancun | 216 + mingw/lib/tcl8.5/tzdata/America/Caracas | 8 + mingw/lib/tcl8.5/tzdata/America/Catamarca | 5 + mingw/lib/tcl8.5/tzdata/America/Cayenne | 7 + mingw/lib/tcl8.5/tzdata/America/Cayman | 7 + mingw/lib/tcl8.5/tzdata/America/Chicago | 369 + mingw/lib/tcl8.5/tzdata/America/Chihuahua | 221 + mingw/lib/tcl8.5/tzdata/America/Coral_Harbour | 5 + mingw/lib/tcl8.5/tzdata/America/Cordoba | 5 + mingw/lib/tcl8.5/tzdata/America/Costa_Rica | 15 + mingw/lib/tcl8.5/tzdata/America/Cuiaba | 257 + mingw/lib/tcl8.5/tzdata/America/Curacao | 7 + mingw/lib/tcl8.5/tzdata/America/Danmarkshavn | 39 + mingw/lib/tcl8.5/tzdata/America/Dawson | 256 + mingw/lib/tcl8.5/tzdata/America/Dawson_Creek | 64 + mingw/lib/tcl8.5/tzdata/America/Denver | 291 + mingw/lib/tcl8.5/tzdata/America/Detroit | 272 + mingw/lib/tcl8.5/tzdata/America/Dominica | 6 + mingw/lib/tcl8.5/tzdata/America/Edmonton | 284 + mingw/lib/tcl8.5/tzdata/America/Eirunepe | 39 + mingw/lib/tcl8.5/tzdata/America/El_Salvador | 10 + mingw/lib/tcl8.5/tzdata/America/Ensenada | 5 + mingw/lib/tcl8.5/tzdata/America/Fort_Wayne | 5 + mingw/lib/tcl8.5/tzdata/America/Fortaleza | 48 + mingw/lib/tcl8.5/tzdata/America/Glace_Bay | 273 + mingw/lib/tcl8.5/tzdata/America/Godthab | 246 + mingw/lib/tcl8.5/tzdata/America/Goose_Bay | 337 + mingw/lib/tcl8.5/tzdata/America/Grand_Turk | 249 + mingw/lib/tcl8.5/tzdata/America/Grenada | 6 + mingw/lib/tcl8.5/tzdata/America/Guadeloupe | 6 + mingw/lib/tcl8.5/tzdata/America/Guatemala | 14 + mingw/lib/tcl8.5/tzdata/America/Guayaquil | 7 + mingw/lib/tcl8.5/tzdata/America/Guyana | 9 + mingw/lib/tcl8.5/tzdata/America/Halifax | 361 + mingw/lib/tcl8.5/tzdata/America/Havana | 287 + mingw/lib/tcl8.5/tzdata/America/Hermosillo | 21 + .../lib/tcl8.5/tzdata/America/Indiana/Indianapolis | 234 + mingw/lib/tcl8.5/tzdata/America/Indiana/Knox | 285 + mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo | 236 + mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg | 247 + mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City | 234 + mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay | 213 + mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes | 234 + mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac | 240 + mingw/lib/tcl8.5/tzdata/America/Indianapolis | 5 + mingw/lib/tcl8.5/tzdata/America/Inuvik | 249 + mingw/lib/tcl8.5/tzdata/America/Iqaluit | 250 + mingw/lib/tcl8.5/tzdata/America/Jamaica | 28 + mingw/lib/tcl8.5/tzdata/America/Jujuy | 5 + mingw/lib/tcl8.5/tzdata/America/Juneau | 275 + .../lib/tcl8.5/tzdata/America/Kentucky/Louisville | 314 + .../lib/tcl8.5/tzdata/America/Kentucky/Monticello | 279 + mingw/lib/tcl8.5/tzdata/America/Knox_IN | 5 + mingw/lib/tcl8.5/tzdata/America/La_Paz | 8 + mingw/lib/tcl8.5/tzdata/America/Lima | 16 + mingw/lib/tcl8.5/tzdata/America/Los_Angeles | 317 + mingw/lib/tcl8.5/tzdata/America/Louisville | 5 + mingw/lib/tcl8.5/tzdata/America/Maceio | 52 + mingw/lib/tcl8.5/tzdata/America/Managua | 21 + mingw/lib/tcl8.5/tzdata/America/Manaus | 39 + mingw/lib/tcl8.5/tzdata/America/Martinique | 9 + mingw/lib/tcl8.5/tzdata/America/Mazatlan | 222 + mingw/lib/tcl8.5/tzdata/America/Mendoza | 5 + mingw/lib/tcl8.5/tzdata/America/Menominee | 274 + mingw/lib/tcl8.5/tzdata/America/Merida | 216 + mingw/lib/tcl8.5/tzdata/America/Mexico_City | 228 + mingw/lib/tcl8.5/tzdata/America/Miquelon | 234 + mingw/lib/tcl8.5/tzdata/America/Moncton | 342 + mingw/lib/tcl8.5/tzdata/America/Monterrey | 218 + mingw/lib/tcl8.5/tzdata/America/Montevideo | 261 + mingw/lib/tcl8.5/tzdata/America/Montreal | 366 + mingw/lib/tcl8.5/tzdata/America/Montserrat | 6 + mingw/lib/tcl8.5/tzdata/America/Nassau | 279 + mingw/lib/tcl8.5/tzdata/America/New_York | 369 + mingw/lib/tcl8.5/tzdata/America/Nipigon | 264 + mingw/lib/tcl8.5/tzdata/America/Nome | 276 + mingw/lib/tcl8.5/tzdata/America/Noronha | 48 + .../lib/tcl8.5/tzdata/America/North_Dakota/Center | 279 + .../tcl8.5/tzdata/America/North_Dakota/New_Salem | 279 + mingw/lib/tcl8.5/tzdata/America/Panama | 7 + mingw/lib/tcl8.5/tzdata/America/Pangnirtung | 252 + mingw/lib/tcl8.5/tzdata/America/Paramaribo | 10 + mingw/lib/tcl8.5/tzdata/America/Phoenix | 17 + mingw/lib/tcl8.5/tzdata/America/Port-au-Prince | 41 + mingw/lib/tcl8.5/tzdata/America/Port_of_Spain | 6 + mingw/lib/tcl8.5/tzdata/America/Porto_Acre | 5 + mingw/lib/tcl8.5/tzdata/America/Porto_Velho | 35 + mingw/lib/tcl8.5/tzdata/America/Puerto_Rico | 10 + mingw/lib/tcl8.5/tzdata/America/Rainy_River | 264 + mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet | 248 + mingw/lib/tcl8.5/tzdata/America/Recife | 48 + mingw/lib/tcl8.5/tzdata/America/Regina | 58 + mingw/lib/tcl8.5/tzdata/America/Resolute | 62 + mingw/lib/tcl8.5/tzdata/America/Rio_Branco | 35 + mingw/lib/tcl8.5/tzdata/America/Rosario | 5 + mingw/lib/tcl8.5/tzdata/America/Santiago | 291 + mingw/lib/tcl8.5/tzdata/America/Santo_Domingo | 21 + mingw/lib/tcl8.5/tzdata/America/Sao_Paulo | 258 + mingw/lib/tcl8.5/tzdata/America/Scoresbysund | 246 + mingw/lib/tcl8.5/tzdata/America/Shiprock | 5 + mingw/lib/tcl8.5/tzdata/America/St_Johns | 371 + mingw/lib/tcl8.5/tzdata/America/St_Kitts | 6 + mingw/lib/tcl8.5/tzdata/America/St_Lucia | 7 + mingw/lib/tcl8.5/tzdata/America/St_Thomas | 6 + mingw/lib/tcl8.5/tzdata/America/St_Vincent | 7 + mingw/lib/tcl8.5/tzdata/America/Swift_Current | 29 + mingw/lib/tcl8.5/tzdata/America/Tegucigalpa | 12 + mingw/lib/tcl8.5/tzdata/America/Thule | 224 + mingw/lib/tcl8.5/tzdata/America/Thunder_Bay | 272 + mingw/lib/tcl8.5/tzdata/America/Tijuana | 284 + mingw/lib/tcl8.5/tzdata/America/Toronto | 365 + mingw/lib/tcl8.5/tzdata/America/Tortola | 6 + mingw/lib/tcl8.5/tzdata/America/Vancouver | 320 + mingw/lib/tcl8.5/tzdata/America/Virgin | 5 + mingw/lib/tcl8.5/tzdata/America/Whitehorse | 256 + mingw/lib/tcl8.5/tzdata/America/Winnipeg | 316 + mingw/lib/tcl8.5/tzdata/America/Yakutat | 276 + mingw/lib/tcl8.5/tzdata/America/Yellowknife | 252 + mingw/lib/tcl8.5/tzdata/Antarctica/Casey | 6 + mingw/lib/tcl8.5/tzdata/Antarctica/Davis | 8 + mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville | 8 + mingw/lib/tcl8.5/tzdata/Antarctica/Mawson | 6 + mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo | 257 + mingw/lib/tcl8.5/tzdata/Antarctica/Palmer | 254 + mingw/lib/tcl8.5/tzdata/Antarctica/Rothera | 6 + mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole | 5 + mingw/lib/tcl8.5/tzdata/Antarctica/Syowa | 6 + mingw/lib/tcl8.5/tzdata/Antarctica/Vostok | 6 + mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen | 5 + mingw/lib/tcl8.5/tzdata/Asia/Aden | 6 + mingw/lib/tcl8.5/tzdata/Asia/Almaty | 56 + mingw/lib/tcl8.5/tzdata/Asia/Amman | 248 + mingw/lib/tcl8.5/tzdata/Asia/Anadyr | 248 + mingw/lib/tcl8.5/tzdata/Asia/Aqtau | 58 + mingw/lib/tcl8.5/tzdata/Asia/Aqtobe | 57 + mingw/lib/tcl8.5/tzdata/Asia/Ashgabat | 31 + mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad | 5 + mingw/lib/tcl8.5/tzdata/Asia/Baghdad | 243 + mingw/lib/tcl8.5/tzdata/Asia/Bahrain | 7 + mingw/lib/tcl8.5/tzdata/Asia/Baku | 242 + mingw/lib/tcl8.5/tzdata/Asia/Bangkok | 7 + mingw/lib/tcl8.5/tzdata/Asia/Beirut | 270 + mingw/lib/tcl8.5/tzdata/Asia/Bishkek | 57 + mingw/lib/tcl8.5/tzdata/Asia/Brunei | 7 + mingw/lib/tcl8.5/tzdata/Asia/Calcutta | 10 + mingw/lib/tcl8.5/tzdata/Asia/Choibalsan | 51 + mingw/lib/tcl8.5/tzdata/Asia/Chongqing | 19 + mingw/lib/tcl8.5/tzdata/Asia/Chungking | 5 + mingw/lib/tcl8.5/tzdata/Asia/Colombo | 13 + mingw/lib/tcl8.5/tzdata/Asia/Dacca | 5 + mingw/lib/tcl8.5/tzdata/Asia/Damascus | 280 + mingw/lib/tcl8.5/tzdata/Asia/Dhaka | 11 + mingw/lib/tcl8.5/tzdata/Asia/Dili | 10 + mingw/lib/tcl8.5/tzdata/Asia/Dubai | 6 + mingw/lib/tcl8.5/tzdata/Asia/Dushanbe | 29 + mingw/lib/tcl8.5/tzdata/Asia/Gaza | 275 + mingw/lib/tcl8.5/tzdata/Asia/Harbin | 22 + mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong | 74 + mingw/lib/tcl8.5/tzdata/Asia/Hovd | 51 + mingw/lib/tcl8.5/tzdata/Asia/Irkutsk | 248 + mingw/lib/tcl8.5/tzdata/Asia/Istanbul | 5 + mingw/lib/tcl8.5/tzdata/Asia/Jakarta | 13 + mingw/lib/tcl8.5/tzdata/Asia/Jayapura | 8 + mingw/lib/tcl8.5/tzdata/Asia/Jerusalem | 148 + mingw/lib/tcl8.5/tzdata/Asia/Kabul | 7 + mingw/lib/tcl8.5/tzdata/Asia/Kamchatka | 247 + mingw/lib/tcl8.5/tzdata/Asia/Karachi | 12 + mingw/lib/tcl8.5/tzdata/Asia/Kashgar | 20 + mingw/lib/tcl8.5/tzdata/Asia/Katmandu | 7 + mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk | 247 + mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur | 13 + mingw/lib/tcl8.5/tzdata/Asia/Kuching | 24 + mingw/lib/tcl8.5/tzdata/Asia/Kuwait | 6 + mingw/lib/tcl8.5/tzdata/Asia/Macao | 5 + mingw/lib/tcl8.5/tzdata/Asia/Macau | 46 + mingw/lib/tcl8.5/tzdata/Asia/Magadan | 247 + mingw/lib/tcl8.5/tzdata/Asia/Makassar | 9 + mingw/lib/tcl8.5/tzdata/Asia/Manila | 15 + mingw/lib/tcl8.5/tzdata/Asia/Muscat | 6 + mingw/lib/tcl8.5/tzdata/Asia/Nicosia | 257 + mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk | 248 + mingw/lib/tcl8.5/tzdata/Asia/Omsk | 247 + mingw/lib/tcl8.5/tzdata/Asia/Oral | 58 + mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh | 9 + mingw/lib/tcl8.5/tzdata/Asia/Pontianak | 13 + mingw/lib/tcl8.5/tzdata/Asia/Pyongyang | 11 + mingw/lib/tcl8.5/tzdata/Asia/Qatar | 7 + mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda | 58 + mingw/lib/tcl8.5/tzdata/Asia/Rangoon | 9 + mingw/lib/tcl8.5/tzdata/Asia/Riyadh | 6 + mingw/lib/tcl8.5/tzdata/Asia/Saigon | 9 + mingw/lib/tcl8.5/tzdata/Asia/Sakhalin | 249 + mingw/lib/tcl8.5/tzdata/Asia/Samarkand | 32 + mingw/lib/tcl8.5/tzdata/Asia/Seoul | 18 + mingw/lib/tcl8.5/tzdata/Asia/Shanghai | 23 + mingw/lib/tcl8.5/tzdata/Asia/Singapore | 14 + mingw/lib/tcl8.5/tzdata/Asia/Taipei | 46 + mingw/lib/tcl8.5/tzdata/Asia/Tashkent | 32 + mingw/lib/tcl8.5/tzdata/Asia/Tbilisi | 60 + mingw/lib/tcl8.5/tzdata/Asia/Tehran | 45 + mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv | 5 + mingw/lib/tcl8.5/tzdata/Asia/Thimbu | 5 + mingw/lib/tcl8.5/tzdata/Asia/Thimphu | 7 + mingw/lib/tcl8.5/tzdata/Asia/Tokyo | 16 + mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang | 5 + mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar | 51 + mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator | 5 + mingw/lib/tcl8.5/tzdata/Asia/Urumqi | 19 + mingw/lib/tcl8.5/tzdata/Asia/Vientiane | 9 + mingw/lib/tcl8.5/tzdata/Asia/Vladivostok | 247 + mingw/lib/tcl8.5/tzdata/Asia/Yakutsk | 247 + mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg | 247 + mingw/lib/tcl8.5/tzdata/Asia/Yerevan | 245 + mingw/lib/tcl8.5/tzdata/Atlantic/Azores | 349 + mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda | 259 + mingw/lib/tcl8.5/tzdata/Atlantic/Canary | 248 + mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde | 9 + mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe | 5 + mingw/lib/tcl8.5/tzdata/Atlantic/Faroe | 245 + mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen | 5 + mingw/lib/tcl8.5/tzdata/Atlantic/Madeira | 350 + mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik | 70 + mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia | 6 + mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena | 7 + mingw/lib/tcl8.5/tzdata/Atlantic/Stanley | 253 + mingw/lib/tcl8.5/tzdata/Australia/ACT | 5 + mingw/lib/tcl8.5/tzdata/Australia/Adelaide | 273 + mingw/lib/tcl8.5/tzdata/Australia/Brisbane | 23 + mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill | 275 + mingw/lib/tcl8.5/tzdata/Australia/Canberra | 5 + mingw/lib/tcl8.5/tzdata/Australia/Currie | 273 + mingw/lib/tcl8.5/tzdata/Australia/Darwin | 15 + mingw/lib/tcl8.5/tzdata/Australia/Eucla | 25 + mingw/lib/tcl8.5/tzdata/Australia/Hobart | 281 + mingw/lib/tcl8.5/tzdata/Australia/LHI | 5 + mingw/lib/tcl8.5/tzdata/Australia/Lindeman | 28 + mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe | 244 + mingw/lib/tcl8.5/tzdata/Australia/Melbourne | 272 + mingw/lib/tcl8.5/tzdata/Australia/NSW | 5 + mingw/lib/tcl8.5/tzdata/Australia/North | 5 + mingw/lib/tcl8.5/tzdata/Australia/Perth | 25 + mingw/lib/tcl8.5/tzdata/Australia/Queensland | 5 + mingw/lib/tcl8.5/tzdata/Australia/South | 5 + mingw/lib/tcl8.5/tzdata/Australia/Sydney | 272 + mingw/lib/tcl8.5/tzdata/Australia/Tasmania | 5 + mingw/lib/tcl8.5/tzdata/Australia/Victoria | 5 + mingw/lib/tcl8.5/tzdata/Australia/West | 5 + mingw/lib/tcl8.5/tzdata/Australia/Yancowinna | 5 + mingw/lib/tcl8.5/tzdata/Brazil/Acre | 5 + mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha | 5 + mingw/lib/tcl8.5/tzdata/Brazil/East | 5 + mingw/lib/tcl8.5/tzdata/Brazil/West | 5 + mingw/lib/tcl8.5/tzdata/CET | 263 + mingw/lib/tcl8.5/tzdata/CST6CDT | 278 + mingw/lib/tcl8.5/tzdata/Canada/Atlantic | 5 + mingw/lib/tcl8.5/tzdata/Canada/Central | 5 + mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan | 5 + mingw/lib/tcl8.5/tzdata/Canada/Eastern | 5 + mingw/lib/tcl8.5/tzdata/Canada/Mountain | 5 + mingw/lib/tcl8.5/tzdata/Canada/Newfoundland | 5 + mingw/lib/tcl8.5/tzdata/Canada/Pacific | 5 + mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan | 5 + mingw/lib/tcl8.5/tzdata/Canada/Yukon | 5 + mingw/lib/tcl8.5/tzdata/Chile/Continental | 5 + mingw/lib/tcl8.5/tzdata/Chile/EasterIsland | 5 + mingw/lib/tcl8.5/tzdata/Cuba | 5 + mingw/lib/tcl8.5/tzdata/EET | 251 + mingw/lib/tcl8.5/tzdata/EST | 5 + mingw/lib/tcl8.5/tzdata/EST5EDT | 278 + mingw/lib/tcl8.5/tzdata/Egypt | 5 + mingw/lib/tcl8.5/tzdata/Eire | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+0 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+1 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+10 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+11 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+12 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+2 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+3 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+4 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+5 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+6 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+7 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+8 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT+9 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-0 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-1 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-10 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-11 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-12 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-13 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-14 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-2 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-3 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-4 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-5 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-6 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-7 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-8 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT-9 | 5 + mingw/lib/tcl8.5/tzdata/Etc/GMT0 | 5 + mingw/lib/tcl8.5/tzdata/Etc/Greenwich | 5 + mingw/lib/tcl8.5/tzdata/Etc/UCT | 5 + mingw/lib/tcl8.5/tzdata/Etc/UTC | 5 + mingw/lib/tcl8.5/tzdata/Etc/Universal | 5 + mingw/lib/tcl8.5/tzdata/Etc/Zulu | 5 + mingw/lib/tcl8.5/tzdata/Europe/Amsterdam | 310 + mingw/lib/tcl8.5/tzdata/Europe/Andorra | 237 + mingw/lib/tcl8.5/tzdata/Europe/Athens | 268 + mingw/lib/tcl8.5/tzdata/Europe/Belfast | 5 + mingw/lib/tcl8.5/tzdata/Europe/Belgrade | 249 + mingw/lib/tcl8.5/tzdata/Europe/Berlin | 273 + mingw/lib/tcl8.5/tzdata/Europe/Bratislava | 5 + mingw/lib/tcl8.5/tzdata/Europe/Brussels | 316 + mingw/lib/tcl8.5/tzdata/Europe/Bucharest | 268 + mingw/lib/tcl8.5/tzdata/Europe/Budapest | 283 + mingw/lib/tcl8.5/tzdata/Europe/Chisinau | 272 + mingw/lib/tcl8.5/tzdata/Europe/Copenhagen | 264 + mingw/lib/tcl8.5/tzdata/Europe/Dublin | 359 + mingw/lib/tcl8.5/tzdata/Europe/Gibraltar | 328 + mingw/lib/tcl8.5/tzdata/Europe/Guernsey | 5 + mingw/lib/tcl8.5/tzdata/Europe/Helsinki | 248 + mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man | 5 + mingw/lib/tcl8.5/tzdata/Europe/Istanbul | 303 + mingw/lib/tcl8.5/tzdata/Europe/Jersey | 5 + mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad | 261 + mingw/lib/tcl8.5/tzdata/Europe/Kiev | 251 + mingw/lib/tcl8.5/tzdata/Europe/Lisbon | 351 + mingw/lib/tcl8.5/tzdata/Europe/Ljubljana | 5 + mingw/lib/tcl8.5/tzdata/Europe/London | 372 + mingw/lib/tcl8.5/tzdata/Europe/Luxembourg | 313 + mingw/lib/tcl8.5/tzdata/Europe/Madrid | 294 + mingw/lib/tcl8.5/tzdata/Europe/Malta | 299 + mingw/lib/tcl8.5/tzdata/Europe/Mariehamn | 5 + mingw/lib/tcl8.5/tzdata/Europe/Minsk | 251 + mingw/lib/tcl8.5/tzdata/Europe/Monaco | 315 + mingw/lib/tcl8.5/tzdata/Europe/Moscow | 260 + mingw/lib/tcl8.5/tzdata/Europe/Nicosia | 5 + mingw/lib/tcl8.5/tzdata/Europe/Oslo | 271 + mingw/lib/tcl8.5/tzdata/Europe/Paris | 314 + mingw/lib/tcl8.5/tzdata/Europe/Podgorica | 5 + mingw/lib/tcl8.5/tzdata/Europe/Prague | 272 + mingw/lib/tcl8.5/tzdata/Europe/Riga | 258 + mingw/lib/tcl8.5/tzdata/Europe/Rome | 301 + mingw/lib/tcl8.5/tzdata/Europe/Samara | 249 + mingw/lib/tcl8.5/tzdata/Europe/San_Marino | 5 + mingw/lib/tcl8.5/tzdata/Europe/Sarajevo | 5 + mingw/lib/tcl8.5/tzdata/Europe/Simferopol | 253 + mingw/lib/tcl8.5/tzdata/Europe/Skopje | 5 + mingw/lib/tcl8.5/tzdata/Europe/Sofia | 258 + mingw/lib/tcl8.5/tzdata/Europe/Stockholm | 250 + mingw/lib/tcl8.5/tzdata/Europe/Tallinn | 255 + mingw/lib/tcl8.5/tzdata/Europe/Tirane | 263 + mingw/lib/tcl8.5/tzdata/Europe/Tiraspol | 5 + mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod | 254 + mingw/lib/tcl8.5/tzdata/Europe/Vaduz | 245 + mingw/lib/tcl8.5/tzdata/Europe/Vatican | 5 + mingw/lib/tcl8.5/tzdata/Europe/Vienna | 271 + mingw/lib/tcl8.5/tzdata/Europe/Vilnius | 251 + mingw/lib/tcl8.5/tzdata/Europe/Volgograd | 247 + mingw/lib/tcl8.5/tzdata/Europe/Warsaw | 296 + mingw/lib/tcl8.5/tzdata/Europe/Zagreb | 5 + mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye | 252 + mingw/lib/tcl8.5/tzdata/Europe/Zurich | 252 + mingw/lib/tcl8.5/tzdata/GB | 5 + mingw/lib/tcl8.5/tzdata/GB-Eire | 5 + mingw/lib/tcl8.5/tzdata/GMT | 5 + mingw/lib/tcl8.5/tzdata/GMT+0 | 5 + mingw/lib/tcl8.5/tzdata/GMT-0 | 5 + mingw/lib/tcl8.5/tzdata/GMT0 | 5 + mingw/lib/tcl8.5/tzdata/Greenwich | 5 + mingw/lib/tcl8.5/tzdata/HST | 5 + mingw/lib/tcl8.5/tzdata/Hongkong | 5 + mingw/lib/tcl8.5/tzdata/Iceland | 5 + mingw/lib/tcl8.5/tzdata/Indian/Antananarivo | 8 + mingw/lib/tcl8.5/tzdata/Indian/Chagos | 7 + mingw/lib/tcl8.5/tzdata/Indian/Christmas | 6 + mingw/lib/tcl8.5/tzdata/Indian/Cocos | 6 + mingw/lib/tcl8.5/tzdata/Indian/Comoro | 6 + mingw/lib/tcl8.5/tzdata/Indian/Kerguelen | 6 + mingw/lib/tcl8.5/tzdata/Indian/Mahe | 6 + mingw/lib/tcl8.5/tzdata/Indian/Maldives | 7 + mingw/lib/tcl8.5/tzdata/Indian/Mauritius | 6 + mingw/lib/tcl8.5/tzdata/Indian/Mayotte | 6 + mingw/lib/tcl8.5/tzdata/Indian/Reunion | 6 + mingw/lib/tcl8.5/tzdata/Iran | 5 + mingw/lib/tcl8.5/tzdata/Israel | 5 + mingw/lib/tcl8.5/tzdata/Jamaica | 5 + mingw/lib/tcl8.5/tzdata/Japan | 5 + mingw/lib/tcl8.5/tzdata/Kwajalein | 5 + mingw/lib/tcl8.5/tzdata/Libya | 5 + mingw/lib/tcl8.5/tzdata/MET | 263 + mingw/lib/tcl8.5/tzdata/MST | 5 + mingw/lib/tcl8.5/tzdata/MST7MDT | 278 + mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte | 5 + mingw/lib/tcl8.5/tzdata/Mexico/BajaSur | 5 + mingw/lib/tcl8.5/tzdata/Mexico/General | 5 + mingw/lib/tcl8.5/tzdata/NZ | 5 + mingw/lib/tcl8.5/tzdata/NZ-CHAT | 5 + mingw/lib/tcl8.5/tzdata/Navajo | 5 + mingw/lib/tcl8.5/tzdata/PRC | 5 + mingw/lib/tcl8.5/tzdata/PST8PDT | 278 + mingw/lib/tcl8.5/tzdata/Pacific/Apia | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Auckland | 285 + mingw/lib/tcl8.5/tzdata/Pacific/Chatham | 257 + mingw/lib/tcl8.5/tzdata/Pacific/Easter | 275 + mingw/lib/tcl8.5/tzdata/Pacific/Efate | 26 + mingw/lib/tcl8.5/tzdata/Pacific/Enderbury | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Fiji | 10 + mingw/lib/tcl8.5/tzdata/Pacific/Funafuti | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Galapagos | 7 + mingw/lib/tcl8.5/tzdata/Pacific/Gambier | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Guam | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Honolulu | 12 + mingw/lib/tcl8.5/tzdata/Pacific/Johnston | 5 + mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Kosrae | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Majuro | 7 + mingw/lib/tcl8.5/tzdata/Pacific/Marquesas | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Midway | 10 + mingw/lib/tcl8.5/tzdata/Pacific/Nauru | 9 + mingw/lib/tcl8.5/tzdata/Pacific/Niue | 8 + mingw/lib/tcl8.5/tzdata/Pacific/Norfolk | 7 + mingw/lib/tcl8.5/tzdata/Pacific/Noumea | 12 + mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago | 10 + mingw/lib/tcl8.5/tzdata/Pacific/Palau | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn | 7 + mingw/lib/tcl8.5/tzdata/Pacific/Ponape | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby | 7 + mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga | 32 + mingw/lib/tcl8.5/tzdata/Pacific/Saipan | 9 + mingw/lib/tcl8.5/tzdata/Pacific/Samoa | 5 + mingw/lib/tcl8.5/tzdata/Pacific/Tahiti | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Tarawa | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu | 14 + mingw/lib/tcl8.5/tzdata/Pacific/Truk | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Wake | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Wallis | 6 + mingw/lib/tcl8.5/tzdata/Pacific/Yap | 5 + mingw/lib/tcl8.5/tzdata/Poland | 5 + mingw/lib/tcl8.5/tzdata/Portugal | 5 + mingw/lib/tcl8.5/tzdata/ROC | 5 + mingw/lib/tcl8.5/tzdata/ROK | 5 + mingw/lib/tcl8.5/tzdata/Singapore | 5 + mingw/lib/tcl8.5/tzdata/SystemV/AST4 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT | 5 + mingw/lib/tcl8.5/tzdata/SystemV/CST6 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT | 5 + mingw/lib/tcl8.5/tzdata/SystemV/EST5 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT | 5 + mingw/lib/tcl8.5/tzdata/SystemV/HST10 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/MST7 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT | 5 + mingw/lib/tcl8.5/tzdata/SystemV/PST8 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT | 5 + mingw/lib/tcl8.5/tzdata/SystemV/YST9 | 5 + mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT | 5 + mingw/lib/tcl8.5/tzdata/Turkey | 5 + mingw/lib/tcl8.5/tzdata/UCT | 5 + mingw/lib/tcl8.5/tzdata/US/Alaska | 5 + mingw/lib/tcl8.5/tzdata/US/Aleutian | 5 + mingw/lib/tcl8.5/tzdata/US/Arizona | 5 + mingw/lib/tcl8.5/tzdata/US/Central | 5 + mingw/lib/tcl8.5/tzdata/US/East-Indiana | 5 + mingw/lib/tcl8.5/tzdata/US/Eastern | 5 + mingw/lib/tcl8.5/tzdata/US/Hawaii | 5 + mingw/lib/tcl8.5/tzdata/US/Indiana-Starke | 5 + mingw/lib/tcl8.5/tzdata/US/Michigan | 5 + mingw/lib/tcl8.5/tzdata/US/Mountain | 5 + mingw/lib/tcl8.5/tzdata/US/Pacific | 5 + mingw/lib/tcl8.5/tzdata/US/Pacific-New | 5 + mingw/lib/tcl8.5/tzdata/US/Samoa | 5 + mingw/lib/tcl8.5/tzdata/UTC | 5 + mingw/lib/tcl8.5/tzdata/Universal | 5 + mingw/lib/tcl8.5/tzdata/W-SU | 5 + mingw/lib/tcl8.5/tzdata/WET | 251 + mingw/lib/tcl8.5/tzdata/Zulu | 5 + mingw/lib/tcl8.5/word.tcl | 146 + mingw/lib/tcl8/8.4/http-2.5.3.tm | 1039 ++ mingw/lib/tcl8/8.4/platform-1.0.3.tm | 270 + mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm | 236 + mingw/lib/tcl8/8.5/msgcat-1.4.2.tm | 510 + mingw/lib/tcl8/8.5/tcltest-2.3b1.tm | 3375 ++++++ mingw/lib/tclConfig.sh | 34 +- mingw/lib/tifftclConfig.sh | 57 - mingw/lib/tk8.4/bgerror.tcl | 276 - mingw/lib/tk8.4/button.tcl | 637 -- mingw/lib/tk8.4/choosedir.tcl | 291 - mingw/lib/tk8.4/clrpick.tcl | 696 -- mingw/lib/tk8.4/comdlg.tcl | 303 - mingw/lib/tk8.4/console.tcl | 957 -- mingw/lib/tk8.4/demos/README | 46 - mingw/lib/tk8.4/demos/arrow.tcl | 239 - mingw/lib/tk8.4/demos/bind.tcl | 79 - mingw/lib/tk8.4/demos/bitmap.tcl | 55 - mingw/lib/tk8.4/demos/browse | 66 - mingw/lib/tk8.4/demos/button.tcl | 36 - mingw/lib/tk8.4/demos/check.tcl | 33 - mingw/lib/tk8.4/demos/clrpick.tcl | 56 - mingw/lib/tk8.4/demos/colors.tcl | 101 - mingw/lib/tk8.4/demos/cscroll.tcl | 110 - mingw/lib/tk8.4/demos/ctext.tcl | 147 - mingw/lib/tk8.4/demos/entry1.tcl | 36 - mingw/lib/tk8.4/demos/entry2.tcl | 48 - mingw/lib/tk8.4/demos/entry3.tcl | 187 - mingw/lib/tk8.4/demos/filebox.tcl | 74 - mingw/lib/tk8.4/demos/floor.tcl | 1370 --- mingw/lib/tk8.4/demos/form.tcl | 40 - mingw/lib/tk8.4/demos/hello | 22 - mingw/lib/tk8.4/demos/hscale.tcl | 47 - mingw/lib/tk8.4/demos/icon.tcl | 52 - mingw/lib/tk8.4/demos/image1.tcl | 36 - mingw/lib/tk8.4/demos/image2.tcl | 104 - mingw/lib/tk8.4/demos/items.tcl | 285 - mingw/lib/tk8.4/demos/ixset | 335 - mingw/lib/tk8.4/demos/label.tcl | 40 - mingw/lib/tk8.4/demos/labelframe.tcl | 80 - mingw/lib/tk8.4/demos/menu.tcl | 161 - mingw/lib/tk8.4/demos/menubu.tcl | 94 - mingw/lib/tk8.4/demos/msgbox.tcl | 65 - mingw/lib/tk8.4/demos/paned1.tcl | 34 - mingw/lib/tk8.4/demos/paned2.tcl | 76 - mingw/lib/tk8.4/demos/plot.tcl | 99 - mingw/lib/tk8.4/demos/puzzle.tcl | 84 - mingw/lib/tk8.4/demos/radio.tcl | 59 - mingw/lib/tk8.4/demos/rmt | 210 - mingw/lib/tk8.4/demos/rolodex | 196 - mingw/lib/tk8.4/demos/ruler.tcl | 173 - mingw/lib/tk8.4/demos/sayings.tcl | 46 - mingw/lib/tk8.4/demos/search.tcl | 141 - mingw/lib/tk8.4/demos/spin.tcl | 55 - mingw/lib/tk8.4/demos/square | 55 - mingw/lib/tk8.4/demos/states.tcl | 45 - mingw/lib/tk8.4/demos/style.tcl | 152 - mingw/lib/tk8.4/demos/tcolor | 366 - mingw/lib/tk8.4/demos/text.tcl | 88 - mingw/lib/tk8.4/demos/timer | 47 - mingw/lib/tk8.4/demos/twind.tcl | 197 - mingw/lib/tk8.4/demos/unicodeout.tcl | 78 - mingw/lib/tk8.4/demos/vscale.tcl | 48 - mingw/lib/tk8.4/demos/widget | 394 - mingw/lib/tk8.4/dialog.tcl | 210 - mingw/lib/tk8.4/entry.tcl | 652 -- mingw/lib/tk8.4/focus.tcl | 181 - mingw/lib/tk8.4/listbox.tcl | 519 - mingw/lib/tk8.4/menu.tcl | 1294 --- mingw/lib/tk8.4/msgbox.tcl | 413 - mingw/lib/tk8.4/msgs/cs.msg | 70 - mingw/lib/tk8.4/msgs/de.msg | 70 - mingw/lib/tk8.4/msgs/el.msg | 86 - mingw/lib/tk8.4/msgs/en.msg | 70 - mingw/lib/tk8.4/msgs/es.msg | 70 - mingw/lib/tk8.4/msgs/es_ES.msg | 5 - mingw/lib/tk8.4/palette.tcl | 246 - mingw/lib/tk8.4/panedwindow.tcl | 188 - mingw/lib/tk8.4/pkgIndex.tcl | 2 - mingw/lib/tk8.4/safetk.tcl | 277 - mingw/lib/tk8.4/scale.tcl | 285 - mingw/lib/tk8.4/scrlbar.tcl | 427 - mingw/lib/tk8.4/spinbox.tcl | 568 - mingw/lib/tk8.4/tclIndex | 277 - mingw/lib/tk8.4/tearoff.tcl | 165 - mingw/lib/tk8.4/text.tcl | 1156 -- mingw/lib/tk8.4/tk.tcl | 590 - mingw/lib/tk8.4/tkAppInit.c | 136 - mingw/lib/tk8.4/tkfbox.tcl | 1815 ---- mingw/lib/tk8.4/unsupported.tcl | 297 - mingw/lib/tk8.4/xmfbox.tcl | 963 -- mingw/lib/tk8.5/bgerror.tcl | 281 + mingw/lib/tk8.5/button.tcl | 637 ++ mingw/lib/tk8.5/choosedir.tcl | 291 + mingw/lib/tk8.5/clrpick.tcl | 694 ++ mingw/lib/tk8.5/comdlg.tcl | 312 + mingw/lib/tk8.5/console.tcl | 1033 ++ mingw/lib/tk8.5/demos/README | 46 + mingw/lib/tk8.5/demos/anilabel.tcl | 162 + mingw/lib/tk8.5/demos/aniwave.tcl | 106 + mingw/lib/tk8.5/demos/arrow.tcl | 239 + mingw/lib/tk8.5/demos/bind.tcl | 80 + mingw/lib/tk8.5/demos/bitmap.tcl | 54 + mingw/lib/tk8.5/demos/browse | 68 + mingw/lib/tk8.5/demos/button.tcl | 49 + mingw/lib/tk8.5/demos/check.tcl | 73 + mingw/lib/tk8.5/demos/clrpick.tcl | 56 + mingw/lib/tk8.5/demos/colors.tcl | 101 + mingw/lib/tk8.5/demos/combo.tcl | 64 + mingw/lib/tk8.5/demos/cscroll.tcl | 110 + mingw/lib/tk8.5/demos/ctext.tcl | 147 + mingw/lib/{tk8.4 => tk8.5}/demos/dialog1.tcl | 0 mingw/lib/{tk8.4 => tk8.5}/demos/dialog2.tcl | 0 mingw/lib/tk8.5/demos/en.msg | 97 + mingw/lib/tk8.5/demos/entry1.tcl | 36 + mingw/lib/tk8.5/demos/entry2.tcl | 48 + mingw/lib/tk8.5/demos/entry3.tcl | 185 + mingw/lib/tk8.5/demos/filebox.tcl | 80 + mingw/lib/tk8.5/demos/floor.tcl | 1370 +++ mingw/lib/tk8.5/demos/form.tcl | 40 + mingw/lib/tk8.5/demos/goldberg.tcl | 1733 +++ mingw/lib/tk8.5/demos/hello | 24 + mingw/lib/tk8.5/demos/hscale.tcl | 47 + mingw/lib/tk8.5/demos/icon.tcl | 53 + mingw/lib/tk8.5/demos/image1.tcl | 37 + mingw/lib/tk8.5/demos/image2.tcl | 105 + mingw/lib/{tk8.4 => tk8.5}/demos/images/earth.gif | Bin .../lib/{tk8.4 => tk8.5}/demos/images/earthris.gif | Bin .../face.bmp => tk8.5/demos/images/face.xbm} | 0 .../demos/images/flagdown.xbm} | 0 .../flagup.bmp => tk8.5/demos/images/flagup.xbm} | 0 .../gray25.bmp => tk8.5/demos/images/gray25.xbm} | 0 .../letters.bmp => tk8.5/demos/images/letters.xbm} | 0 .../demos/images/noletter.xbm} | 0 .../pattern.bmp => tk8.5/demos/images/pattern.xbm} | 0 .../lib/{tk8.4 => tk8.5}/demos/images/tcllogo.gif | Bin mingw/lib/{tk8.4 => tk8.5}/demos/images/teapot.ppm | 0 mingw/lib/tk8.5/demos/items.tcl | 286 + mingw/lib/tk8.5/demos/ixset | 331 + mingw/lib/tk8.5/demos/label.tcl | 41 + mingw/lib/tk8.5/demos/labelframe.tcl | 78 + mingw/lib/{tk8.4 => tk8.5}/demos/license.terms | 0 mingw/lib/tk8.5/demos/menu.tcl | 163 + mingw/lib/tk8.5/demos/menubu.tcl | 92 + mingw/lib/tk8.5/demos/msgbox.tcl | 65 + mingw/lib/tk8.5/demos/nl.msg | 118 + mingw/lib/tk8.5/demos/paned1.tcl | 34 + mingw/lib/tk8.5/demos/paned2.tcl | 76 + mingw/lib/tk8.5/demos/pendulum.tcl | 196 + mingw/lib/tk8.5/demos/plot.tcl | 99 + mingw/lib/tk8.5/demos/puzzle.tcl | 84 + mingw/lib/tk8.5/demos/radio.tcl | 68 + mingw/lib/tk8.5/demos/rmt | 213 + mingw/lib/tk8.5/demos/rolodex | 206 + mingw/lib/tk8.5/demos/ruler.tcl | 173 + mingw/lib/tk8.5/demos/sayings.tcl | 46 + mingw/lib/tk8.5/demos/search.tcl | 141 + mingw/lib/tk8.5/demos/spin.tcl | 55 + mingw/lib/tk8.5/demos/square | 62 + mingw/lib/tk8.5/demos/states.tcl | 45 + mingw/lib/tk8.5/demos/style.tcl | 157 + mingw/lib/{tk8.4 => tk8.5}/demos/tclIndex | 0 mingw/lib/tk8.5/demos/tcolor | 367 + mingw/lib/tk8.5/demos/text.tcl | 88 + mingw/lib/tk8.5/demos/textpeer.tcl | 60 + mingw/lib/tk8.5/demos/timer | 50 + mingw/lib/tk8.5/demos/toolbar.tcl | 106 + mingw/lib/tk8.5/demos/tree.tcl | 96 + mingw/lib/tk8.5/demos/ttkbut.tcl | 87 + mingw/lib/tk8.5/demos/ttkmenu.tcl | 56 + mingw/lib/tk8.5/demos/ttknote.tcl | 60 + mingw/lib/tk8.5/demos/ttkpane.tcl | 109 + mingw/lib/tk8.5/demos/ttkprogress.tcl | 49 + mingw/lib/tk8.5/demos/twind.tcl | 326 + mingw/lib/tk8.5/demos/unicodeout.tcl | 94 + mingw/lib/tk8.5/demos/vscale.tcl | 48 + mingw/lib/tk8.5/demos/widget | 734 ++ mingw/lib/tk8.5/dialog.tcl | 215 + mingw/lib/tk8.5/entry.tcl | 665 ++ mingw/lib/tk8.5/focus.tcl | 180 + mingw/lib/{tk8.4 => tk8.5}/images/README | 0 mingw/lib/{tk8.4 => tk8.5}/images/logo.eps | 0 mingw/lib/{tk8.4 => tk8.5}/images/logo100.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/logo64.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/logoLarge.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/logoMed.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo.eps | 0 mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo100.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo150.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo175.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo200.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo75.gif | Bin mingw/lib/{tk8.4 => tk8.5}/images/tai-ku.gif | Bin mingw/lib/tk8.5/listbox.tcl | 520 + mingw/lib/tk8.5/menu.tcl | 1299 +++ mingw/lib/{tk8.4 => tk8.5}/mkpsenc.tcl | 0 mingw/lib/tk8.5/msgbox.tcl | 453 + mingw/lib/tk8.5/msgs/cs.msg | 84 + mingw/lib/tk8.5/msgs/de.msg | 74 + mingw/lib/tk8.5/msgs/el.msg | 86 + mingw/lib/tk8.5/msgs/en.msg | 74 + mingw/lib/{tk8.4 => tk8.5}/msgs/en_gb.msg | 0 mingw/lib/{tk8.4 => tk8.5}/msgs/eo.msg | 0 mingw/lib/tk8.5/msgs/es.msg | 74 + mingw/lib/{tk8.4 => tk8.5}/msgs/fr.msg | 0 mingw/lib/tk8.5/msgs/hu.msg | 77 + mingw/lib/{tk8.4 => tk8.5}/msgs/it.msg | 0 mingw/lib/{tk8.4 => tk8.5}/msgs/nl.msg | 0 mingw/lib/{tk8.4 => tk8.5}/msgs/pl.msg | 0 mingw/lib/{tk8.4 => tk8.5}/msgs/pt.msg | 0 mingw/lib/{tk8.4 => tk8.5}/msgs/ru.msg | 0 mingw/lib/tk8.5/msgs/sv.msg | 74 + mingw/lib/{tk8.4 => tk8.5}/obsolete.tcl | 0 mingw/lib/{tk8.4 => tk8.5}/optMenu.tcl | 0 mingw/lib/tk8.5/palette.tcl | 248 + mingw/lib/tk8.5/panedwindow.tcl | 197 + mingw/lib/tk8.5/pkgIndex.tcl | 2 + mingw/lib/{tk8.4 => tk8.5}/prolog.ps | 0 mingw/lib/tk8.5/safetk.tcl | 279 + mingw/lib/tk8.5/scale.tcl | 286 + mingw/lib/tk8.5/scrlbar.tcl | 429 + mingw/lib/tk8.5/spinbox.tcl | 574 + mingw/lib/tk8.5/tclIndex | 277 + mingw/lib/tk8.5/tearoff.tcl | 172 + mingw/lib/tk8.5/text.tcl | 1175 ++ mingw/lib/tk8.5/tk.tcl | 601 + mingw/lib/tk8.5/tkAppInit.c | 143 + mingw/lib/tk8.5/tkfbox.tcl | 1867 ++++ mingw/lib/tk8.5/ttk/altTheme.tcl | 101 + mingw/lib/tk8.5/ttk/aquaTheme.tcl | 75 + mingw/lib/tk8.5/ttk/button.tcl | 85 + mingw/lib/tk8.5/ttk/clamTheme.tcl | 137 + mingw/lib/tk8.5/ttk/classicTheme.tcl | 108 + mingw/lib/tk8.5/ttk/combobox.tcl | 429 + mingw/lib/tk8.5/ttk/cursors.tcl | 35 + mingw/lib/tk8.5/ttk/defaults.tcl | 117 + mingw/lib/tk8.5/ttk/entry.tcl | 580 + mingw/lib/tk8.5/ttk/fonts.tcl | 159 + mingw/lib/tk8.5/ttk/menubutton.tcl | 171 + mingw/lib/tk8.5/ttk/notebook.tcl | 192 + mingw/lib/tk8.5/ttk/panedwindow.tcl | 87 + mingw/lib/tk8.5/ttk/progress.tcl | 51 + mingw/lib/tk8.5/ttk/scale.tcl | 54 + mingw/lib/tk8.5/ttk/scrollbar.tcl | 107 + mingw/lib/tk8.5/ttk/sizegrip.tcl | 77 + mingw/lib/tk8.5/ttk/treeview.tcl | 382 + mingw/lib/tk8.5/ttk/ttk.tcl | 172 + mingw/lib/tk8.5/ttk/utils.tcl | 254 + mingw/lib/tk8.5/ttk/winTheme.tcl | 76 + mingw/lib/tk8.5/ttk/xpTheme.tcl | 64 + mingw/lib/tk8.5/unsupported.tcl | 297 + mingw/lib/tk8.5/xmfbox.tcl | 983 ++ mingw/lib/tkConfig.sh | 36 +- mingw/lib/tkimgConfig.sh | 57 - mingw/lib/zlibtclConfig.sh | 57 - share/tcltk/fileList.txt | 1265 ++- 1112 files changed, 113128 insertions(+), 43749 deletions(-) delete mode 100644 mingw/bin/tcl84.dll create mode 100644 mingw/bin/tcl85.dll delete mode 100644 mingw/bin/tcldde12.dll delete mode 100644 mingw/bin/tclpip84.dll create mode 100644 mingw/bin/tclpip85.dll delete mode 100644 mingw/bin/tclreg11.dll delete mode 100644 mingw/bin/tclsh84.exe create mode 100644 mingw/bin/tclsh85.exe delete mode 100644 mingw/bin/tk84.dll create mode 100644 mingw/bin/tk85.dll create mode 100644 mingw/bin/wish delete mode 100644 mingw/bin/wish.exe delete mode 100644 mingw/bin/wish84.exe create mode 100644 mingw/bin/wish85.exe delete mode 100644 mingw/doc/tcltk/PORTNOTES delete mode 100644 mingw/doc/tcltk/license.terms rewrite mingw/include/tclDecls.h (60%) rewrite mingw/include/tclPlatDecls.h (65%) create mode 100644 mingw/include/tclTomMath.h create mode 100644 mingw/include/tclTomMathDecls.h rewrite mingw/include/tkDecls.h (61%) rewrite mingw/include/tkIntXlibDecls.h (73%) rewrite mingw/include/tkPlatDecls.h (62%) create mode 100644 mingw/include/tommath_class.h create mode 100644 mingw/include/tommath_superclass.h delete mode 100644 mingw/lib/dde1.2/pkgIndex.tcl delete mode 100644 mingw/lib/dde1.2/tcldde12.dll create mode 100644 mingw/lib/dde1.3/pkgIndex.tcl create mode 100644 mingw/lib/dde1.3/tcldde13.dll delete mode 100644 mingw/lib/jpegtclConfig.sh delete mode 100644 mingw/lib/libtcl84.a create mode 100644 mingw/lib/libtcl85.a delete mode 100644 mingw/lib/libtcldde12.a delete mode 100644 mingw/lib/libtclreg11.a delete mode 100644 mingw/lib/libtclstub84.a create mode 100644 mingw/lib/libtclstub85.a delete mode 100644 mingw/lib/libtk84.a create mode 100644 mingw/lib/libtk85.a delete mode 100644 mingw/lib/libtkstub84.a create mode 100644 mingw/lib/libtkstub85.a delete mode 100644 mingw/lib/pngtclConfig.sh delete mode 100644 mingw/lib/reg1.1/pkgIndex.tcl delete mode 100644 mingw/lib/reg1.1/tclreg11.dll create mode 100644 mingw/lib/reg1.2/pkgIndex.tcl create mode 100644 mingw/lib/reg1.2/tclreg12.dll delete mode 100644 mingw/lib/tcl8.4/auto.tcl delete mode 100644 mingw/lib/tcl8.4/history.tcl delete mode 100644 mingw/lib/tcl8.4/http2.4/http.tcl delete mode 100644 mingw/lib/tcl8.4/http2.4/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/http2.5/http.tcl delete mode 100644 mingw/lib/tcl8.4/http2.5/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/init.tcl delete mode 100644 mingw/lib/tcl8.4/ldAout.tcl delete mode 100644 mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl delete mode 100644 mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/opt0.4/optparse.tcl delete mode 100644 mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/package.tcl delete mode 100644 mingw/lib/tcl8.4/parray.tcl delete mode 100644 mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/reg1.1/registry.tap delete mode 100644 mingw/lib/tcl8.4/reg1.1/tclreg11.dll delete mode 100644 mingw/lib/tcl8.4/safe.tcl delete mode 100644 mingw/lib/tcl8.4/tclIndex delete mode 100644 mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl delete mode 100644 mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl delete mode 100644 mingw/lib/tcl8.4/word.tcl create mode 100644 mingw/lib/tcl8.5/auto.tcl create mode 100644 mingw/lib/tcl8.5/clock.tcl rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/ascii.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/big5.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1250.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1251.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1252.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1253.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1254.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1255.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1256.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1257.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp1258.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp437.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp737.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp775.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp850.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp852.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp855.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp857.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp860.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp861.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp862.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp863.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp864.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp865.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp866.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp869.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp874.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp932.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp936.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp949.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/cp950.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/dingbats.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/ebcdic.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-cn.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-jp.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/euc-kr.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb12345.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb1988.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb2312-raw.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/gb2312.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso2022-jp.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso2022-kr.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso2022.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-1.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-10.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-13.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-14.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-15.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-16.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-2.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-3.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-4.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-5.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-6.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-7.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-8.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/iso8859-9.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0201.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0208.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/jis0212.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/koi8-r.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/koi8-u.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/ksc5601.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macCentEuro.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macCroatian.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macCyrillic.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macDingbats.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macGreek.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macIceland.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macJapan.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macRoman.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macRomania.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macThai.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macTurkish.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/macUkraine.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/shiftjis.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/symbol.enc (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/encoding/tis-620.enc (100%) create mode 100644 mingw/lib/tcl8.5/history.tcl rename mingw/lib/{tcl8.4 => tcl8.5}/http1.0/http.tcl (100%) rename mingw/lib/{tcl8.4 => tcl8.5}/http1.0/pkgIndex.tcl (100%) create mode 100644 mingw/lib/tcl8.5/init.tcl create mode 100644 mingw/lib/tcl8.5/msgs/af.msg create mode 100644 mingw/lib/tcl8.5/msgs/af_za.msg create mode 100644 mingw/lib/tcl8.5/msgs/ar.msg create mode 100644 mingw/lib/tcl8.5/msgs/ar_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/ar_jo.msg create mode 100644 mingw/lib/tcl8.5/msgs/ar_lb.msg create mode 100644 mingw/lib/tcl8.5/msgs/ar_sy.msg create mode 100644 mingw/lib/tcl8.5/msgs/be.msg create mode 100644 mingw/lib/tcl8.5/msgs/bg.msg create mode 100644 mingw/lib/tcl8.5/msgs/bn.msg create mode 100644 mingw/lib/tcl8.5/msgs/bn_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/ca.msg create mode 100644 mingw/lib/tcl8.5/msgs/cs.msg create mode 100644 mingw/lib/tcl8.5/msgs/da.msg create mode 100644 mingw/lib/tcl8.5/msgs/de.msg create mode 100644 mingw/lib/tcl8.5/msgs/de_at.msg create mode 100644 mingw/lib/tcl8.5/msgs/de_be.msg create mode 100644 mingw/lib/tcl8.5/msgs/el.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_au.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_be.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_bw.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_ca.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_gb.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_hk.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_ie.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_nz.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_ph.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_sg.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_za.msg create mode 100644 mingw/lib/tcl8.5/msgs/en_zw.msg create mode 100644 mingw/lib/tcl8.5/msgs/eo.msg create mode 100644 mingw/lib/tcl8.5/msgs/es.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_ar.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_bo.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_cl.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_co.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_cr.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_do.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_ec.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_gt.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_hn.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_mx.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_ni.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_pa.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_pe.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_pr.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_py.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_sv.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_uy.msg create mode 100644 mingw/lib/tcl8.5/msgs/es_ve.msg create mode 100644 mingw/lib/tcl8.5/msgs/et.msg create mode 100644 mingw/lib/tcl8.5/msgs/eu.msg create mode 100644 mingw/lib/tcl8.5/msgs/eu_es.msg create mode 100644 mingw/lib/tcl8.5/msgs/fa.msg create mode 100644 mingw/lib/tcl8.5/msgs/fa_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/fa_ir.msg create mode 100644 mingw/lib/tcl8.5/msgs/fi.msg create mode 100644 mingw/lib/tcl8.5/msgs/fo.msg create mode 100644 mingw/lib/tcl8.5/msgs/fo_fo.msg create mode 100644 mingw/lib/tcl8.5/msgs/fr.msg create mode 100644 mingw/lib/tcl8.5/msgs/fr_be.msg create mode 100644 mingw/lib/tcl8.5/msgs/fr_ca.msg create mode 100644 mingw/lib/tcl8.5/msgs/fr_ch.msg create mode 100644 mingw/lib/tcl8.5/msgs/ga.msg create mode 100644 mingw/lib/tcl8.5/msgs/ga_ie.msg create mode 100644 mingw/lib/tcl8.5/msgs/gl.msg create mode 100644 mingw/lib/tcl8.5/msgs/gl_es.msg create mode 100644 mingw/lib/tcl8.5/msgs/gv.msg create mode 100644 mingw/lib/tcl8.5/msgs/gv_gb.msg create mode 100644 mingw/lib/tcl8.5/msgs/he.msg create mode 100644 mingw/lib/tcl8.5/msgs/hi.msg create mode 100644 mingw/lib/tcl8.5/msgs/hi_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/hr.msg create mode 100644 mingw/lib/tcl8.5/msgs/hu.msg create mode 100644 mingw/lib/tcl8.5/msgs/id.msg create mode 100644 mingw/lib/tcl8.5/msgs/id_id.msg create mode 100644 mingw/lib/tcl8.5/msgs/is.msg create mode 100644 mingw/lib/tcl8.5/msgs/it.msg create mode 100644 mingw/lib/tcl8.5/msgs/it_ch.msg create mode 100644 mingw/lib/tcl8.5/msgs/ja.msg create mode 100644 mingw/lib/tcl8.5/msgs/kl.msg create mode 100644 mingw/lib/tcl8.5/msgs/kl_gl.msg create mode 100644 mingw/lib/tcl8.5/msgs/ko.msg create mode 100644 mingw/lib/tcl8.5/msgs/ko_kr.msg create mode 100644 mingw/lib/tcl8.5/msgs/kok.msg create mode 100644 mingw/lib/tcl8.5/msgs/kok_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/kw.msg create mode 100644 mingw/lib/tcl8.5/msgs/kw_gb.msg create mode 100644 mingw/lib/tcl8.5/msgs/lt.msg create mode 100644 mingw/lib/tcl8.5/msgs/lv.msg create mode 100644 mingw/lib/tcl8.5/msgs/mk.msg create mode 100644 mingw/lib/tcl8.5/msgs/mr.msg create mode 100644 mingw/lib/tcl8.5/msgs/mr_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/ms.msg create mode 100644 mingw/lib/tcl8.5/msgs/ms_my.msg create mode 100644 mingw/lib/tcl8.5/msgs/mt.msg create mode 100644 mingw/lib/tcl8.5/msgs/nb.msg create mode 100644 mingw/lib/tcl8.5/msgs/nl.msg create mode 100644 mingw/lib/tcl8.5/msgs/nl_be.msg create mode 100644 mingw/lib/tcl8.5/msgs/nn.msg create mode 100644 mingw/lib/tcl8.5/msgs/pl.msg create mode 100644 mingw/lib/tcl8.5/msgs/pt.msg create mode 100644 mingw/lib/tcl8.5/msgs/pt_br.msg create mode 100644 mingw/lib/tcl8.5/msgs/ro.msg create mode 100644 mingw/lib/tcl8.5/msgs/ru.msg create mode 100644 mingw/lib/tcl8.5/msgs/ru_ua.msg create mode 100644 mingw/lib/tcl8.5/msgs/sh.msg create mode 100644 mingw/lib/tcl8.5/msgs/sk.msg create mode 100644 mingw/lib/tcl8.5/msgs/sl.msg create mode 100644 mingw/lib/tcl8.5/msgs/sq.msg create mode 100644 mingw/lib/tcl8.5/msgs/sr.msg create mode 100644 mingw/lib/tcl8.5/msgs/sv.msg create mode 100644 mingw/lib/tcl8.5/msgs/sw.msg create mode 100644 mingw/lib/tcl8.5/msgs/ta.msg create mode 100644 mingw/lib/tcl8.5/msgs/ta_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/te.msg create mode 100644 mingw/lib/tcl8.5/msgs/te_in.msg create mode 100644 mingw/lib/tcl8.5/msgs/th.msg create mode 100644 mingw/lib/tcl8.5/msgs/tr.msg create mode 100644 mingw/lib/tcl8.5/msgs/uk.msg create mode 100644 mingw/lib/tcl8.5/msgs/vi.msg create mode 100644 mingw/lib/tcl8.5/msgs/zh.msg create mode 100644 mingw/lib/tcl8.5/msgs/zh_cn.msg create mode 100644 mingw/lib/tcl8.5/msgs/zh_hk.msg create mode 100644 mingw/lib/tcl8.5/msgs/zh_sg.msg create mode 100644 mingw/lib/tcl8.5/msgs/zh_tw.msg create mode 100644 mingw/lib/tcl8.5/opt0.4/optparse.tcl create mode 100644 mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl create mode 100644 mingw/lib/tcl8.5/package.tcl create mode 100644 mingw/lib/tcl8.5/parray.tcl create mode 100644 mingw/lib/tcl8.5/safe.tcl create mode 100644 mingw/lib/tcl8.5/tclIndex create mode 100644 mingw/lib/tcl8.5/tm.tcl create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Abidjan create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Accra create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Algiers create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Asmara create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Asmera create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Bamako create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Bangui create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Banjul create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Bissau create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Blantyre create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Brazzaville create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Bujumbura create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Cairo create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Casablanca create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Ceuta create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Conakry create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Dakar create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Djibouti create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Douala create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Freetown create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Gaborone create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Harare create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Johannesburg create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Kampala create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Khartoum create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Kigali create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Kinshasa create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Lagos create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Libreville create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Lome create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Luanda create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Lusaka create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Malabo create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Maputo create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Maseru create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Mbabane create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Mogadishu create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Monrovia create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Nairobi create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Ndjamena create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Niamey create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Nouakchott create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Timbuktu create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Tripoli create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Tunis create mode 100644 mingw/lib/tcl8.5/tzdata/Africa/Windhoek create mode 100644 mingw/lib/tcl8.5/tzdata/America/Adak create mode 100644 mingw/lib/tcl8.5/tzdata/America/Anchorage create mode 100644 mingw/lib/tcl8.5/tzdata/America/Anguilla create mode 100644 mingw/lib/tcl8.5/tzdata/America/Antigua create mode 100644 mingw/lib/tcl8.5/tzdata/America/Araguaina create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Buenos_Aires create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Catamarca create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/ComodRivadavia create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Rio_Gallegos create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman create mode 100644 mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia create mode 100644 mingw/lib/tcl8.5/tzdata/America/Aruba create mode 100644 mingw/lib/tcl8.5/tzdata/America/Asuncion create mode 100644 mingw/lib/tcl8.5/tzdata/America/Atikokan create mode 100644 mingw/lib/tcl8.5/tzdata/America/Atka create mode 100644 mingw/lib/tcl8.5/tzdata/America/Bahia create mode 100644 mingw/lib/tcl8.5/tzdata/America/Barbados create mode 100644 mingw/lib/tcl8.5/tzdata/America/Belem create mode 100644 mingw/lib/tcl8.5/tzdata/America/Belize create mode 100644 mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon create mode 100644 mingw/lib/tcl8.5/tzdata/America/Boa_Vista create mode 100644 mingw/lib/tcl8.5/tzdata/America/Bogota create mode 100644 mingw/lib/tcl8.5/tzdata/America/Boise create mode 100644 mingw/lib/tcl8.5/tzdata/America/Buenos_Aires create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay create mode 100644 mingw/lib/tcl8.5/tzdata/America/Campo_Grande create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cancun create mode 100644 mingw/lib/tcl8.5/tzdata/America/Caracas create mode 100644 mingw/lib/tcl8.5/tzdata/America/Catamarca create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cayenne create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cayman create mode 100644 mingw/lib/tcl8.5/tzdata/America/Chicago create mode 100644 mingw/lib/tcl8.5/tzdata/America/Chihuahua create mode 100644 mingw/lib/tcl8.5/tzdata/America/Coral_Harbour create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cordoba create mode 100644 mingw/lib/tcl8.5/tzdata/America/Costa_Rica create mode 100644 mingw/lib/tcl8.5/tzdata/America/Cuiaba create mode 100644 mingw/lib/tcl8.5/tzdata/America/Curacao create mode 100644 mingw/lib/tcl8.5/tzdata/America/Danmarkshavn create mode 100644 mingw/lib/tcl8.5/tzdata/America/Dawson create mode 100644 mingw/lib/tcl8.5/tzdata/America/Dawson_Creek create mode 100644 mingw/lib/tcl8.5/tzdata/America/Denver create mode 100644 mingw/lib/tcl8.5/tzdata/America/Detroit create mode 100644 mingw/lib/tcl8.5/tzdata/America/Dominica create mode 100644 mingw/lib/tcl8.5/tzdata/America/Edmonton create mode 100644 mingw/lib/tcl8.5/tzdata/America/Eirunepe create mode 100644 mingw/lib/tcl8.5/tzdata/America/El_Salvador create mode 100644 mingw/lib/tcl8.5/tzdata/America/Ensenada create mode 100644 mingw/lib/tcl8.5/tzdata/America/Fort_Wayne create mode 100644 mingw/lib/tcl8.5/tzdata/America/Fortaleza create mode 100644 mingw/lib/tcl8.5/tzdata/America/Glace_Bay create mode 100644 mingw/lib/tcl8.5/tzdata/America/Godthab create mode 100644 mingw/lib/tcl8.5/tzdata/America/Goose_Bay create mode 100644 mingw/lib/tcl8.5/tzdata/America/Grand_Turk create mode 100644 mingw/lib/tcl8.5/tzdata/America/Grenada create mode 100644 mingw/lib/tcl8.5/tzdata/America/Guadeloupe create mode 100644 mingw/lib/tcl8.5/tzdata/America/Guatemala create mode 100644 mingw/lib/tcl8.5/tzdata/America/Guayaquil create mode 100644 mingw/lib/tcl8.5/tzdata/America/Guyana create mode 100644 mingw/lib/tcl8.5/tzdata/America/Halifax create mode 100644 mingw/lib/tcl8.5/tzdata/America/Havana create mode 100644 mingw/lib/tcl8.5/tzdata/America/Hermosillo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Indianapolis create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Knox create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac create mode 100644 mingw/lib/tcl8.5/tzdata/America/Indianapolis create mode 100644 mingw/lib/tcl8.5/tzdata/America/Inuvik create mode 100644 mingw/lib/tcl8.5/tzdata/America/Iqaluit create mode 100644 mingw/lib/tcl8.5/tzdata/America/Jamaica create mode 100644 mingw/lib/tcl8.5/tzdata/America/Jujuy create mode 100644 mingw/lib/tcl8.5/tzdata/America/Juneau create mode 100644 mingw/lib/tcl8.5/tzdata/America/Kentucky/Louisville create mode 100644 mingw/lib/tcl8.5/tzdata/America/Kentucky/Monticello create mode 100644 mingw/lib/tcl8.5/tzdata/America/Knox_IN create mode 100644 mingw/lib/tcl8.5/tzdata/America/La_Paz create mode 100644 mingw/lib/tcl8.5/tzdata/America/Lima create mode 100644 mingw/lib/tcl8.5/tzdata/America/Los_Angeles create mode 100644 mingw/lib/tcl8.5/tzdata/America/Louisville create mode 100644 mingw/lib/tcl8.5/tzdata/America/Maceio create mode 100644 mingw/lib/tcl8.5/tzdata/America/Managua create mode 100644 mingw/lib/tcl8.5/tzdata/America/Manaus create mode 100644 mingw/lib/tcl8.5/tzdata/America/Martinique create mode 100644 mingw/lib/tcl8.5/tzdata/America/Mazatlan create mode 100644 mingw/lib/tcl8.5/tzdata/America/Mendoza create mode 100644 mingw/lib/tcl8.5/tzdata/America/Menominee create mode 100644 mingw/lib/tcl8.5/tzdata/America/Merida create mode 100644 mingw/lib/tcl8.5/tzdata/America/Mexico_City create mode 100644 mingw/lib/tcl8.5/tzdata/America/Miquelon create mode 100644 mingw/lib/tcl8.5/tzdata/America/Moncton create mode 100644 mingw/lib/tcl8.5/tzdata/America/Monterrey create mode 100644 mingw/lib/tcl8.5/tzdata/America/Montevideo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Montreal create mode 100644 mingw/lib/tcl8.5/tzdata/America/Montserrat create mode 100644 mingw/lib/tcl8.5/tzdata/America/Nassau create mode 100644 mingw/lib/tcl8.5/tzdata/America/New_York create mode 100644 mingw/lib/tcl8.5/tzdata/America/Nipigon create mode 100644 mingw/lib/tcl8.5/tzdata/America/Nome create mode 100644 mingw/lib/tcl8.5/tzdata/America/Noronha create mode 100644 mingw/lib/tcl8.5/tzdata/America/North_Dakota/Center create mode 100644 mingw/lib/tcl8.5/tzdata/America/North_Dakota/New_Salem create mode 100644 mingw/lib/tcl8.5/tzdata/America/Panama create mode 100644 mingw/lib/tcl8.5/tzdata/America/Pangnirtung create mode 100644 mingw/lib/tcl8.5/tzdata/America/Paramaribo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Phoenix create mode 100644 mingw/lib/tcl8.5/tzdata/America/Port-au-Prince create mode 100644 mingw/lib/tcl8.5/tzdata/America/Port_of_Spain create mode 100644 mingw/lib/tcl8.5/tzdata/America/Porto_Acre create mode 100644 mingw/lib/tcl8.5/tzdata/America/Porto_Velho create mode 100644 mingw/lib/tcl8.5/tzdata/America/Puerto_Rico create mode 100644 mingw/lib/tcl8.5/tzdata/America/Rainy_River create mode 100644 mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet create mode 100644 mingw/lib/tcl8.5/tzdata/America/Recife create mode 100644 mingw/lib/tcl8.5/tzdata/America/Regina create mode 100644 mingw/lib/tcl8.5/tzdata/America/Resolute create mode 100644 mingw/lib/tcl8.5/tzdata/America/Rio_Branco create mode 100644 mingw/lib/tcl8.5/tzdata/America/Rosario create mode 100644 mingw/lib/tcl8.5/tzdata/America/Santiago create mode 100644 mingw/lib/tcl8.5/tzdata/America/Santo_Domingo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Sao_Paulo create mode 100644 mingw/lib/tcl8.5/tzdata/America/Scoresbysund create mode 100644 mingw/lib/tcl8.5/tzdata/America/Shiprock create mode 100644 mingw/lib/tcl8.5/tzdata/America/St_Johns create mode 100644 mingw/lib/tcl8.5/tzdata/America/St_Kitts create mode 100644 mingw/lib/tcl8.5/tzdata/America/St_Lucia create mode 100644 mingw/lib/tcl8.5/tzdata/America/St_Thomas create mode 100644 mingw/lib/tcl8.5/tzdata/America/St_Vincent create mode 100644 mingw/lib/tcl8.5/tzdata/America/Swift_Current create mode 100644 mingw/lib/tcl8.5/tzdata/America/Tegucigalpa create mode 100644 mingw/lib/tcl8.5/tzdata/America/Thule create mode 100644 mingw/lib/tcl8.5/tzdata/America/Thunder_Bay create mode 100644 mingw/lib/tcl8.5/tzdata/America/Tijuana create mode 100644 mingw/lib/tcl8.5/tzdata/America/Toronto create mode 100644 mingw/lib/tcl8.5/tzdata/America/Tortola create mode 100644 mingw/lib/tcl8.5/tzdata/America/Vancouver create mode 100644 mingw/lib/tcl8.5/tzdata/America/Virgin create mode 100644 mingw/lib/tcl8.5/tzdata/America/Whitehorse create mode 100644 mingw/lib/tcl8.5/tzdata/America/Winnipeg create mode 100644 mingw/lib/tcl8.5/tzdata/America/Yakutat create mode 100644 mingw/lib/tcl8.5/tzdata/America/Yellowknife create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Casey create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Davis create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Mawson create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Palmer create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Rothera create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Syowa create mode 100644 mingw/lib/tcl8.5/tzdata/Antarctica/Vostok create mode 100644 mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Aden create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Almaty create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Amman create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Anadyr create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Aqtau create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Aqtobe create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Ashgabat create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Baghdad create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Bahrain create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Baku create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Bangkok create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Beirut create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Bishkek create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Brunei create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Calcutta create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Choibalsan create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Chongqing create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Chungking create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Colombo create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Dacca create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Damascus create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Dhaka create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Dili create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Dubai create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Dushanbe create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Gaza create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Harbin create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Hovd create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Irkutsk create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Istanbul create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Jakarta create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Jayapura create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Jerusalem create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kabul create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kamchatka create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Karachi create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kashgar create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Katmandu create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kuching create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Kuwait create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Macao create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Macau create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Magadan create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Makassar create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Manila create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Muscat create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Nicosia create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Omsk create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Oral create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Pontianak create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Pyongyang create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Qatar create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Rangoon create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Riyadh create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Saigon create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Sakhalin create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Samarkand create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Seoul create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Shanghai create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Singapore create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Taipei create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Tashkent create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Tbilisi create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Tehran create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Thimbu create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Thimphu create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Tokyo create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Urumqi create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Vientiane create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Vladivostok create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Yakutsk create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg create mode 100644 mingw/lib/tcl8.5/tzdata/Asia/Yerevan create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Azores create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Canary create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Faroe create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Madeira create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena create mode 100644 mingw/lib/tcl8.5/tzdata/Atlantic/Stanley create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/ACT create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Adelaide create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Brisbane create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Canberra create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Currie create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Darwin create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Eucla create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Hobart create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/LHI create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Lindeman create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Melbourne create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/NSW create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/North create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Perth create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Queensland create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/South create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Sydney create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Tasmania create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Victoria create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/West create mode 100644 mingw/lib/tcl8.5/tzdata/Australia/Yancowinna create mode 100644 mingw/lib/tcl8.5/tzdata/Brazil/Acre create mode 100644 mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha create mode 100644 mingw/lib/tcl8.5/tzdata/Brazil/East create mode 100644 mingw/lib/tcl8.5/tzdata/Brazil/West create mode 100644 mingw/lib/tcl8.5/tzdata/CET create mode 100644 mingw/lib/tcl8.5/tzdata/CST6CDT create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Atlantic create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Central create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Eastern create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Mountain create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Newfoundland create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Pacific create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan create mode 100644 mingw/lib/tcl8.5/tzdata/Canada/Yukon create mode 100644 mingw/lib/tcl8.5/tzdata/Chile/Continental create mode 100644 mingw/lib/tcl8.5/tzdata/Chile/EasterIsland create mode 100644 mingw/lib/tcl8.5/tzdata/Cuba create mode 100644 mingw/lib/tcl8.5/tzdata/EET create mode 100644 mingw/lib/tcl8.5/tzdata/EST create mode 100644 mingw/lib/tcl8.5/tzdata/EST5EDT create mode 100644 mingw/lib/tcl8.5/tzdata/Egypt create mode 100644 mingw/lib/tcl8.5/tzdata/Eire create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+0 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+1 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+10 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+11 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+12 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+2 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+3 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+4 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+5 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+6 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+7 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+8 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT+9 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-0 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-1 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-10 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-11 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-12 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-13 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-14 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-2 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-3 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-4 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-5 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-6 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-7 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-8 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT-9 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/GMT0 create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/Greenwich create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/UCT create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/UTC create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/Universal create mode 100644 mingw/lib/tcl8.5/tzdata/Etc/Zulu create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Amsterdam create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Andorra create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Athens create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Belfast create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Belgrade create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Berlin create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Bratislava create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Brussels create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Bucharest create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Budapest create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Chisinau create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Copenhagen create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Dublin create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Gibraltar create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Guernsey create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Helsinki create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Istanbul create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Jersey create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Kiev create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Lisbon create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Ljubljana create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/London create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Luxembourg create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Madrid create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Malta create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Mariehamn create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Minsk create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Monaco create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Moscow create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Nicosia create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Oslo create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Paris create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Podgorica create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Prague create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Riga create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Rome create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Samara create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/San_Marino create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Sarajevo create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Simferopol create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Skopje create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Sofia create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Stockholm create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Tallinn create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Tirane create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Tiraspol create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Vaduz create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Vatican create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Vienna create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Vilnius create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Volgograd create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Warsaw create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Zagreb create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye create mode 100644 mingw/lib/tcl8.5/tzdata/Europe/Zurich create mode 100644 mingw/lib/tcl8.5/tzdata/GB create mode 100644 mingw/lib/tcl8.5/tzdata/GB-Eire create mode 100644 mingw/lib/tcl8.5/tzdata/GMT create mode 100644 mingw/lib/tcl8.5/tzdata/GMT+0 create mode 100644 mingw/lib/tcl8.5/tzdata/GMT-0 create mode 100644 mingw/lib/tcl8.5/tzdata/GMT0 create mode 100644 mingw/lib/tcl8.5/tzdata/Greenwich create mode 100644 mingw/lib/tcl8.5/tzdata/HST create mode 100644 mingw/lib/tcl8.5/tzdata/Hongkong create mode 100644 mingw/lib/tcl8.5/tzdata/Iceland create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Antananarivo create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Chagos create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Christmas create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Cocos create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Comoro create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Kerguelen create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Mahe create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Maldives create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Mauritius create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Mayotte create mode 100644 mingw/lib/tcl8.5/tzdata/Indian/Reunion create mode 100644 mingw/lib/tcl8.5/tzdata/Iran create mode 100644 mingw/lib/tcl8.5/tzdata/Israel create mode 100644 mingw/lib/tcl8.5/tzdata/Jamaica create mode 100644 mingw/lib/tcl8.5/tzdata/Japan create mode 100644 mingw/lib/tcl8.5/tzdata/Kwajalein create mode 100644 mingw/lib/tcl8.5/tzdata/Libya create mode 100644 mingw/lib/tcl8.5/tzdata/MET create mode 100644 mingw/lib/tcl8.5/tzdata/MST create mode 100644 mingw/lib/tcl8.5/tzdata/MST7MDT create mode 100644 mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte create mode 100644 mingw/lib/tcl8.5/tzdata/Mexico/BajaSur create mode 100644 mingw/lib/tcl8.5/tzdata/Mexico/General create mode 100644 mingw/lib/tcl8.5/tzdata/NZ create mode 100644 mingw/lib/tcl8.5/tzdata/NZ-CHAT create mode 100644 mingw/lib/tcl8.5/tzdata/Navajo create mode 100644 mingw/lib/tcl8.5/tzdata/PRC create mode 100644 mingw/lib/tcl8.5/tzdata/PST8PDT create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Apia create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Auckland create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Chatham create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Easter create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Efate create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Enderbury create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Fiji create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Funafuti create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Galapagos create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Gambier create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Guam create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Honolulu create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Johnston create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Kosrae create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Majuro create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Marquesas create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Midway create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Nauru create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Niue create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Norfolk create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Noumea create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Palau create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Ponape create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Saipan create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Samoa create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Tahiti create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Tarawa create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Truk create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Wake create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Wallis create mode 100644 mingw/lib/tcl8.5/tzdata/Pacific/Yap create mode 100644 mingw/lib/tcl8.5/tzdata/Poland create mode 100644 mingw/lib/tcl8.5/tzdata/Portugal create mode 100644 mingw/lib/tcl8.5/tzdata/ROC create mode 100644 mingw/lib/tcl8.5/tzdata/ROK create mode 100644 mingw/lib/tcl8.5/tzdata/Singapore create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/AST4 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/CST6 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/EST5 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/HST10 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/MST7 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/PST8 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/YST9 create mode 100644 mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT create mode 100644 mingw/lib/tcl8.5/tzdata/Turkey create mode 100644 mingw/lib/tcl8.5/tzdata/UCT create mode 100644 mingw/lib/tcl8.5/tzdata/US/Alaska create mode 100644 mingw/lib/tcl8.5/tzdata/US/Aleutian create mode 100644 mingw/lib/tcl8.5/tzdata/US/Arizona create mode 100644 mingw/lib/tcl8.5/tzdata/US/Central create mode 100644 mingw/lib/tcl8.5/tzdata/US/East-Indiana create mode 100644 mingw/lib/tcl8.5/tzdata/US/Eastern create mode 100644 mingw/lib/tcl8.5/tzdata/US/Hawaii create mode 100644 mingw/lib/tcl8.5/tzdata/US/Indiana-Starke create mode 100644 mingw/lib/tcl8.5/tzdata/US/Michigan create mode 100644 mingw/lib/tcl8.5/tzdata/US/Mountain create mode 100644 mingw/lib/tcl8.5/tzdata/US/Pacific create mode 100644 mingw/lib/tcl8.5/tzdata/US/Pacific-New create mode 100644 mingw/lib/tcl8.5/tzdata/US/Samoa create mode 100644 mingw/lib/tcl8.5/tzdata/UTC create mode 100644 mingw/lib/tcl8.5/tzdata/Universal create mode 100644 mingw/lib/tcl8.5/tzdata/W-SU create mode 100644 mingw/lib/tcl8.5/tzdata/WET create mode 100644 mingw/lib/tcl8.5/tzdata/Zulu create mode 100644 mingw/lib/tcl8.5/word.tcl create mode 100644 mingw/lib/tcl8/8.4/http-2.5.3.tm create mode 100644 mingw/lib/tcl8/8.4/platform-1.0.3.tm create mode 100644 mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm create mode 100644 mingw/lib/tcl8/8.5/msgcat-1.4.2.tm create mode 100644 mingw/lib/tcl8/8.5/tcltest-2.3b1.tm delete mode 100644 mingw/lib/tifftclConfig.sh delete mode 100644 mingw/lib/tk8.4/bgerror.tcl delete mode 100644 mingw/lib/tk8.4/button.tcl delete mode 100644 mingw/lib/tk8.4/choosedir.tcl delete mode 100644 mingw/lib/tk8.4/clrpick.tcl delete mode 100644 mingw/lib/tk8.4/comdlg.tcl delete mode 100644 mingw/lib/tk8.4/console.tcl delete mode 100644 mingw/lib/tk8.4/demos/README delete mode 100644 mingw/lib/tk8.4/demos/arrow.tcl delete mode 100644 mingw/lib/tk8.4/demos/bind.tcl delete mode 100644 mingw/lib/tk8.4/demos/bitmap.tcl delete mode 100644 mingw/lib/tk8.4/demos/browse delete mode 100644 mingw/lib/tk8.4/demos/button.tcl delete mode 100644 mingw/lib/tk8.4/demos/check.tcl delete mode 100644 mingw/lib/tk8.4/demos/clrpick.tcl delete mode 100644 mingw/lib/tk8.4/demos/colors.tcl delete mode 100644 mingw/lib/tk8.4/demos/cscroll.tcl delete mode 100644 mingw/lib/tk8.4/demos/ctext.tcl delete mode 100644 mingw/lib/tk8.4/demos/entry1.tcl delete mode 100644 mingw/lib/tk8.4/demos/entry2.tcl delete mode 100644 mingw/lib/tk8.4/demos/entry3.tcl delete mode 100644 mingw/lib/tk8.4/demos/filebox.tcl delete mode 100644 mingw/lib/tk8.4/demos/floor.tcl delete mode 100644 mingw/lib/tk8.4/demos/form.tcl delete mode 100644 mingw/lib/tk8.4/demos/hello delete mode 100644 mingw/lib/tk8.4/demos/hscale.tcl delete mode 100644 mingw/lib/tk8.4/demos/icon.tcl delete mode 100644 mingw/lib/tk8.4/demos/image1.tcl delete mode 100644 mingw/lib/tk8.4/demos/image2.tcl delete mode 100644 mingw/lib/tk8.4/demos/items.tcl delete mode 100644 mingw/lib/tk8.4/demos/ixset delete mode 100644 mingw/lib/tk8.4/demos/label.tcl delete mode 100644 mingw/lib/tk8.4/demos/labelframe.tcl delete mode 100644 mingw/lib/tk8.4/demos/menu.tcl delete mode 100644 mingw/lib/tk8.4/demos/menubu.tcl delete mode 100644 mingw/lib/tk8.4/demos/msgbox.tcl delete mode 100644 mingw/lib/tk8.4/demos/paned1.tcl delete mode 100644 mingw/lib/tk8.4/demos/paned2.tcl delete mode 100644 mingw/lib/tk8.4/demos/plot.tcl delete mode 100644 mingw/lib/tk8.4/demos/puzzle.tcl delete mode 100644 mingw/lib/tk8.4/demos/radio.tcl delete mode 100644 mingw/lib/tk8.4/demos/rmt delete mode 100644 mingw/lib/tk8.4/demos/rolodex delete mode 100644 mingw/lib/tk8.4/demos/ruler.tcl delete mode 100644 mingw/lib/tk8.4/demos/sayings.tcl delete mode 100644 mingw/lib/tk8.4/demos/search.tcl delete mode 100644 mingw/lib/tk8.4/demos/spin.tcl delete mode 100644 mingw/lib/tk8.4/demos/square delete mode 100644 mingw/lib/tk8.4/demos/states.tcl delete mode 100644 mingw/lib/tk8.4/demos/style.tcl delete mode 100644 mingw/lib/tk8.4/demos/tcolor delete mode 100644 mingw/lib/tk8.4/demos/text.tcl delete mode 100644 mingw/lib/tk8.4/demos/timer delete mode 100644 mingw/lib/tk8.4/demos/twind.tcl delete mode 100644 mingw/lib/tk8.4/demos/unicodeout.tcl delete mode 100644 mingw/lib/tk8.4/demos/vscale.tcl delete mode 100644 mingw/lib/tk8.4/demos/widget delete mode 100644 mingw/lib/tk8.4/dialog.tcl delete mode 100644 mingw/lib/tk8.4/entry.tcl delete mode 100644 mingw/lib/tk8.4/focus.tcl delete mode 100644 mingw/lib/tk8.4/listbox.tcl delete mode 100644 mingw/lib/tk8.4/menu.tcl delete mode 100644 mingw/lib/tk8.4/msgbox.tcl delete mode 100644 mingw/lib/tk8.4/msgs/cs.msg delete mode 100644 mingw/lib/tk8.4/msgs/de.msg delete mode 100644 mingw/lib/tk8.4/msgs/el.msg delete mode 100644 mingw/lib/tk8.4/msgs/en.msg delete mode 100644 mingw/lib/tk8.4/msgs/es.msg delete mode 100644 mingw/lib/tk8.4/msgs/es_ES.msg delete mode 100644 mingw/lib/tk8.4/palette.tcl delete mode 100644 mingw/lib/tk8.4/panedwindow.tcl delete mode 100644 mingw/lib/tk8.4/pkgIndex.tcl delete mode 100644 mingw/lib/tk8.4/safetk.tcl delete mode 100644 mingw/lib/tk8.4/scale.tcl delete mode 100644 mingw/lib/tk8.4/scrlbar.tcl delete mode 100644 mingw/lib/tk8.4/spinbox.tcl delete mode 100644 mingw/lib/tk8.4/tclIndex delete mode 100644 mingw/lib/tk8.4/tearoff.tcl delete mode 100644 mingw/lib/tk8.4/text.tcl delete mode 100644 mingw/lib/tk8.4/tk.tcl delete mode 100644 mingw/lib/tk8.4/tkAppInit.c delete mode 100644 mingw/lib/tk8.4/tkfbox.tcl delete mode 100644 mingw/lib/tk8.4/unsupported.tcl delete mode 100644 mingw/lib/tk8.4/xmfbox.tcl create mode 100644 mingw/lib/tk8.5/bgerror.tcl create mode 100644 mingw/lib/tk8.5/button.tcl create mode 100644 mingw/lib/tk8.5/choosedir.tcl create mode 100644 mingw/lib/tk8.5/clrpick.tcl create mode 100644 mingw/lib/tk8.5/comdlg.tcl create mode 100644 mingw/lib/tk8.5/console.tcl create mode 100644 mingw/lib/tk8.5/demos/README create mode 100644 mingw/lib/tk8.5/demos/anilabel.tcl create mode 100644 mingw/lib/tk8.5/demos/aniwave.tcl create mode 100644 mingw/lib/tk8.5/demos/arrow.tcl create mode 100644 mingw/lib/tk8.5/demos/bind.tcl create mode 100644 mingw/lib/tk8.5/demos/bitmap.tcl create mode 100644 mingw/lib/tk8.5/demos/browse create mode 100644 mingw/lib/tk8.5/demos/button.tcl create mode 100644 mingw/lib/tk8.5/demos/check.tcl create mode 100644 mingw/lib/tk8.5/demos/clrpick.tcl create mode 100644 mingw/lib/tk8.5/demos/colors.tcl create mode 100644 mingw/lib/tk8.5/demos/combo.tcl create mode 100644 mingw/lib/tk8.5/demos/cscroll.tcl create mode 100644 mingw/lib/tk8.5/demos/ctext.tcl rename mingw/lib/{tk8.4 => tk8.5}/demos/dialog1.tcl (100%) rename mingw/lib/{tk8.4 => tk8.5}/demos/dialog2.tcl (100%) create mode 100644 mingw/lib/tk8.5/demos/en.msg create mode 100644 mingw/lib/tk8.5/demos/entry1.tcl create mode 100644 mingw/lib/tk8.5/demos/entry2.tcl create mode 100644 mingw/lib/tk8.5/demos/entry3.tcl create mode 100644 mingw/lib/tk8.5/demos/filebox.tcl create mode 100644 mingw/lib/tk8.5/demos/floor.tcl create mode 100644 mingw/lib/tk8.5/demos/form.tcl create mode 100644 mingw/lib/tk8.5/demos/goldberg.tcl create mode 100644 mingw/lib/tk8.5/demos/hello create mode 100644 mingw/lib/tk8.5/demos/hscale.tcl create mode 100644 mingw/lib/tk8.5/demos/icon.tcl create mode 100644 mingw/lib/tk8.5/demos/image1.tcl create mode 100644 mingw/lib/tk8.5/demos/image2.tcl rename mingw/lib/{tk8.4 => tk8.5}/demos/images/earth.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/demos/images/earthris.gif (100%) rename mingw/lib/{tk8.4/demos/images/face.bmp => tk8.5/demos/images/face.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/flagdown.bmp => tk8.5/demos/images/flagdown.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/flagup.bmp => tk8.5/demos/images/flagup.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/gray25.bmp => tk8.5/demos/images/gray25.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/letters.bmp => tk8.5/demos/images/letters.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/noletter.bmp => tk8.5/demos/images/noletter.xbm} (100%) rename mingw/lib/{tk8.4/demos/images/pattern.bmp => tk8.5/demos/images/pattern.xbm} (100%) rename mingw/lib/{tk8.4 => tk8.5}/demos/images/tcllogo.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/demos/images/teapot.ppm (100%) create mode 100644 mingw/lib/tk8.5/demos/items.tcl create mode 100644 mingw/lib/tk8.5/demos/ixset create mode 100644 mingw/lib/tk8.5/demos/label.tcl create mode 100644 mingw/lib/tk8.5/demos/labelframe.tcl rename mingw/lib/{tk8.4 => tk8.5}/demos/license.terms (100%) create mode 100644 mingw/lib/tk8.5/demos/menu.tcl create mode 100644 mingw/lib/tk8.5/demos/menubu.tcl create mode 100644 mingw/lib/tk8.5/demos/msgbox.tcl create mode 100644 mingw/lib/tk8.5/demos/nl.msg create mode 100644 mingw/lib/tk8.5/demos/paned1.tcl create mode 100644 mingw/lib/tk8.5/demos/paned2.tcl create mode 100644 mingw/lib/tk8.5/demos/pendulum.tcl create mode 100644 mingw/lib/tk8.5/demos/plot.tcl create mode 100644 mingw/lib/tk8.5/demos/puzzle.tcl create mode 100644 mingw/lib/tk8.5/demos/radio.tcl create mode 100644 mingw/lib/tk8.5/demos/rmt create mode 100644 mingw/lib/tk8.5/demos/rolodex create mode 100644 mingw/lib/tk8.5/demos/ruler.tcl create mode 100644 mingw/lib/tk8.5/demos/sayings.tcl create mode 100644 mingw/lib/tk8.5/demos/search.tcl create mode 100644 mingw/lib/tk8.5/demos/spin.tcl create mode 100644 mingw/lib/tk8.5/demos/square create mode 100644 mingw/lib/tk8.5/demos/states.tcl create mode 100644 mingw/lib/tk8.5/demos/style.tcl rename mingw/lib/{tk8.4 => tk8.5}/demos/tclIndex (100%) create mode 100644 mingw/lib/tk8.5/demos/tcolor create mode 100644 mingw/lib/tk8.5/demos/text.tcl create mode 100644 mingw/lib/tk8.5/demos/textpeer.tcl create mode 100644 mingw/lib/tk8.5/demos/timer create mode 100644 mingw/lib/tk8.5/demos/toolbar.tcl create mode 100644 mingw/lib/tk8.5/demos/tree.tcl create mode 100644 mingw/lib/tk8.5/demos/ttkbut.tcl create mode 100644 mingw/lib/tk8.5/demos/ttkmenu.tcl create mode 100644 mingw/lib/tk8.5/demos/ttknote.tcl create mode 100644 mingw/lib/tk8.5/demos/ttkpane.tcl create mode 100644 mingw/lib/tk8.5/demos/ttkprogress.tcl create mode 100644 mingw/lib/tk8.5/demos/twind.tcl create mode 100644 mingw/lib/tk8.5/demos/unicodeout.tcl create mode 100644 mingw/lib/tk8.5/demos/vscale.tcl create mode 100644 mingw/lib/tk8.5/demos/widget create mode 100644 mingw/lib/tk8.5/dialog.tcl create mode 100644 mingw/lib/tk8.5/entry.tcl create mode 100644 mingw/lib/tk8.5/focus.tcl rename mingw/lib/{tk8.4 => tk8.5}/images/README (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/logo.eps (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/logo100.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/logo64.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/logoLarge.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/logoMed.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo.eps (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo100.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo150.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo175.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo200.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/pwrdLogo75.gif (100%) rename mingw/lib/{tk8.4 => tk8.5}/images/tai-ku.gif (100%) create mode 100644 mingw/lib/tk8.5/listbox.tcl create mode 100644 mingw/lib/tk8.5/menu.tcl rename mingw/lib/{tk8.4 => tk8.5}/mkpsenc.tcl (100%) create mode 100644 mingw/lib/tk8.5/msgbox.tcl create mode 100644 mingw/lib/tk8.5/msgs/cs.msg create mode 100644 mingw/lib/tk8.5/msgs/de.msg create mode 100644 mingw/lib/tk8.5/msgs/el.msg create mode 100644 mingw/lib/tk8.5/msgs/en.msg rename mingw/lib/{tk8.4 => tk8.5}/msgs/en_gb.msg (100%) rename mingw/lib/{tk8.4 => tk8.5}/msgs/eo.msg (100%) create mode 100644 mingw/lib/tk8.5/msgs/es.msg rename mingw/lib/{tk8.4 => tk8.5}/msgs/fr.msg (100%) create mode 100644 mingw/lib/tk8.5/msgs/hu.msg rename mingw/lib/{tk8.4 => tk8.5}/msgs/it.msg (100%) rename mingw/lib/{tk8.4 => tk8.5}/msgs/nl.msg (100%) rename mingw/lib/{tk8.4 => tk8.5}/msgs/pl.msg (100%) rename mingw/lib/{tk8.4 => tk8.5}/msgs/pt.msg (100%) rename mingw/lib/{tk8.4 => tk8.5}/msgs/ru.msg (100%) create mode 100644 mingw/lib/tk8.5/msgs/sv.msg rename mingw/lib/{tk8.4 => tk8.5}/obsolete.tcl (100%) rename mingw/lib/{tk8.4 => tk8.5}/optMenu.tcl (100%) create mode 100644 mingw/lib/tk8.5/palette.tcl create mode 100644 mingw/lib/tk8.5/panedwindow.tcl create mode 100644 mingw/lib/tk8.5/pkgIndex.tcl rename mingw/lib/{tk8.4 => tk8.5}/prolog.ps (100%) create mode 100644 mingw/lib/tk8.5/safetk.tcl create mode 100644 mingw/lib/tk8.5/scale.tcl create mode 100644 mingw/lib/tk8.5/scrlbar.tcl create mode 100644 mingw/lib/tk8.5/spinbox.tcl create mode 100644 mingw/lib/tk8.5/tclIndex create mode 100644 mingw/lib/tk8.5/tearoff.tcl create mode 100644 mingw/lib/tk8.5/text.tcl create mode 100644 mingw/lib/tk8.5/tk.tcl create mode 100644 mingw/lib/tk8.5/tkAppInit.c create mode 100644 mingw/lib/tk8.5/tkfbox.tcl create mode 100644 mingw/lib/tk8.5/ttk/altTheme.tcl create mode 100644 mingw/lib/tk8.5/ttk/aquaTheme.tcl create mode 100644 mingw/lib/tk8.5/ttk/button.tcl create mode 100644 mingw/lib/tk8.5/ttk/clamTheme.tcl create mode 100644 mingw/lib/tk8.5/ttk/classicTheme.tcl create mode 100644 mingw/lib/tk8.5/ttk/combobox.tcl create mode 100644 mingw/lib/tk8.5/ttk/cursors.tcl create mode 100644 mingw/lib/tk8.5/ttk/defaults.tcl create mode 100644 mingw/lib/tk8.5/ttk/entry.tcl create mode 100644 mingw/lib/tk8.5/ttk/fonts.tcl create mode 100644 mingw/lib/tk8.5/ttk/menubutton.tcl create mode 100644 mingw/lib/tk8.5/ttk/notebook.tcl create mode 100644 mingw/lib/tk8.5/ttk/panedwindow.tcl create mode 100644 mingw/lib/tk8.5/ttk/progress.tcl create mode 100644 mingw/lib/tk8.5/ttk/scale.tcl create mode 100644 mingw/lib/tk8.5/ttk/scrollbar.tcl create mode 100644 mingw/lib/tk8.5/ttk/sizegrip.tcl create mode 100644 mingw/lib/tk8.5/ttk/treeview.tcl create mode 100644 mingw/lib/tk8.5/ttk/ttk.tcl create mode 100644 mingw/lib/tk8.5/ttk/utils.tcl create mode 100644 mingw/lib/tk8.5/ttk/winTheme.tcl create mode 100644 mingw/lib/tk8.5/ttk/xpTheme.tcl create mode 100644 mingw/lib/tk8.5/unsupported.tcl create mode 100644 mingw/lib/tk8.5/xmfbox.tcl delete mode 100644 mingw/lib/tkimgConfig.sh delete mode 100644 mingw/lib/zlibtclConfig.sh rewrite share/tcltk/fileList.txt (99%) diff --git a/mingw/bin/tcl84.dll b/mingw/bin/tcl84.dll deleted file mode 100644 index eef8d17dd5fa92cfaa9663ed9dccaf2e9a832202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 822887 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

oPTAkjYoZ`DS^qz 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%0AUM6J~{8jYW^7iCYSfqhVOC0MWd^G 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

(zA&E9#{`f*idKmY8atvU@x8oK?;` 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 z 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
kjz)C-2A3Z>ND^2|CyLf7L%4b5`v75pyDU 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
t6_KCLh(%;2bSA30Y0O5yIK!B2Aadgl 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�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

e$E z@LT(rWlQ`>XcSO5P~X?-41Kk)!xfqch0ZuUOww%F%sxqng-;U3zLCab6VbzQ8R9_V zu@U|OY4Rqr{IK*&4D?Lnw|U0B5WEtj%fB5w&A7r%qT;7|g@4VL_A`}o$KSdI;%4x- zO3q~<^C#nt_;Rn!sL5xIC+sXrF*+T6fOK^ZDdom(KMAALuq`r{OT z@}=Zk1o?cqHs9Fj;T&(L?N4JaDn+Fw5Vd^|5Ao@Y+o?PDH{ly$-k3~g#49rXr^hUw zz#;$<`b&xkR3~vk$KdJRm9}qcZaD7NtC1NjN0@}*b*BdhX7&5imT8LtiKl(yCOHC(SV8g9E`sR6_oRa?NN)+x850gqkMd58?8Y6 zVN8VjkJYPGNu`{ZZ@M?J%AVge9w2=&s65kbAjS}G3J`In8GO+gAOEqKFlwyx;WT?a zVvOM#{wpqY@)(}dv}5kDIu3|KW3!5_ajM{dIeqb_gS?rk-KDX>p>ld7sL`_pX+TOX zkJJqda>ib(9uZTZ)Ou#T0{ueelq}f+v-J^s(%C4MpN2hf`|l38c{wY+dKROErB7BM z5{mGkNbd>{WWnHsK+V^P3Y3*>4G(0q`RVRX+L)Em9xa;ZWMhjK0pI4cJKAXQp|o?< z047Mq`5yRAb^Yd306-Jv)JVpCqVTJB?Pt4}*B*G9fyex@WnT8RCX~w^9Ya%cEr+LBM6SWUG0XoOgURZJcx$JYL^k zxUXZtMc~ahvt%ph(VolKmb539Qj_!2nwVz-J(UG>H9Eucu+hkqZfkiy!@pJXJED?b zzT%Swc0Nb2tDAG8$>6VyFtbU{n&1pwWZZxhHgikbqkX|sj4N}9oc>%aC)O)9k~Zd7 zoCi&@KX3uCKd?c9qaW;X+|w*A#W(Du$?-=Lf5Pue*LfuWG&Hwmc*xx+mf?399^Ro` zv=UEH58WomDpvEI?Q|zG&*uM}Pmb2TGz;8Ge@U0}B1ppOH=ahX!SCC+yJq?)BV~Ha z&&hJ{LvC@q+{YqGEFOjZ(Dr8s8nx13)Bj^F z_K6rpoT2;ZmKa-=QE(d2i**Btn2$U7XbDqZ1PSDEVAbKW1Nz zB|_Kx$tUT$9*m1~K2gR+`}})w82);FtKj>&nj4Jp1>_T3iw1C$O-lW+rW$|lW@N-? zBZi$1lSQNI{KS`-U-G`{>vV<28kPC9ojzhV+35})u+2kzjJsZD5EurcGRu2z*%7-b zSzg)_98+1|)6~b(O=p6{)!)-*`~9Ty*KYkpUxOx`lJYQlxn9{An^esNnETk6XYhLH z_aLqboZ3U2y=qxj@bGlXhuLzVh_rCf%58!+neQVfO8A|8K@2?=!1dh6!d`cTj+2jv zcfBbuCFaWwvniRmf16gF;9yks86M-}2D-@8CH*2S*L6tsh!li=qpn6r6g<1V>+t8T z!}&siQCGnhhdKlj7aNsTv{0ptcNKztF_l@Rq!HE9twfu4zSLJaUuswRB4nxwo+If} z^X+(!w1lPZWlrSrg8UO#dAIsVF8VmWQskn<`zq?^#ATw2NPPfNLB=y=yorZ0*Y7gD zn=t5U7^8?7U9rfx2kRW&I=8-LM`E$kofuci>-w=f`Mt!e%D-8i??B5?e$DYaSJ=L* zdRJy%J~4$wcjy~}W5ny(9Xx^1`v|_oEyEh*b9QLeBIh|-MJfhWI1z$N8>Zpp{WiB< zf|l8f)0l2KEXTjU8-PUZIJGN1Mi_H4SZKs1z2QF$YH&l4+Z*{O$C@ppCgscVjk!}S z`#FO)Z`o0M`-bX`dis{tQ>bCGbaQK)&RL;zQh|nO)3?)ZGsu@RdO6yNFG%nvIjX<4 zG1Wa;MiJkM2%W{od`61)xgIs#T*+R;mD~evy|oGsL5IC$&t$U00^ZPv3V7-)Y_dJg zz|IVyRqeEahWLB6FxtX#Nj~g3e9Bp=DSHl|^4TwR?}YU$=mV1 zOGkE+oN#-(e-Tk>Zxp#&bLSSo=d4rTr^l}wPn;omEGrZ3&6BYqmf@c_$+)QJOc`1$n2eTIrW0S;pWi_@fEnIQpl@a!G=qELN4*r@Uh0+nf zTNax%1f>NQXGq}iZC)uR=T#0iIR|SjJtSt;nVL94M1^tD5>cfv=ux$WcUO3b-7#C; z5$<;+DioQmDc=?v(>KrL)i1OOX@K;IBPbEvLHV{@Hy=%VSOj`5>P_?$R&TuPT(UT# z=cJzvAE`Zr?2;WvP-jVZ=R9V)CGCVu{-&J7uav(zZQT0<6B_*fTVPx&h#>}En536x z!ZM!H;C@{)ilzDI986a8%lm`JbHS%jE4EnsGaSQ_pLpEPqny|UqXF%R->Q@Wwf@|e z=aDL3LX0t7y`rU3hlatxqo+>mDG|aN-p~S8ygN_fTKQ9qWj`djfbmPY1;v*PuoLcs z*v;HW%iBrNxId*}k(+n|vldZ~-M>Wef1J;R+>D9cs_f+tsJq1SjQp`r;tVh1hg*7h zExV;V^(B6sBj_un#PeGJqxkcre;Hn#?ba4Ph{a#*U+dyfeZ;H+GbHFx;RkLumj$)R z76-rdsKaier_`>!pDMM>vDZ?&+}u^fzrvNa;F;RjG^agQm$vY@jKMrCgCW%#bxKya z6qAw(5_p*SUiYmuM*$?hHCAv#Wf;^V$Bkp4JZgP4+<%HT|4q6``lGo6V|~UFo^^Q8 zqra}*k#HawwvXmgzE$6-Z$U8Zm?Wx-(C{1(HzGXPaNGss%l!G?wDCt)I?~6#%%Mg+ z$#X00dpdW~gOU&^0gz^y0rjrH|Kc?6;C)|2{d?=tnRXbw%4qMs#0Ym(mmUFAHd93P?=7trbztQ6lUAI z-}E^8=8M`lmi9f+`P5^WNp_lZhiz05(1hb$mU#Y|$JrxuYmo)?%LuS@$}jjbmrZ)F zo`}Lk@16*3CA9k4$+*bUqI(bknq2qVr%Zp5h{X~+g;mZ`5f1Ea z9B0_bwgdQ)tUIModAOvlXof$D$Ul8U{|yQhJkR6y4IKsA&x}dKgXk#2ioSraQj0ul zr2_F70S=cjR}803U6A?i_L8mY)@YQ;?a`uN*V6m@(Xr_7Qkt`e#nCw+hen_g^iWk} z0Quq*LvuLWUJ1ccYmDiA8V@euZS<^`A|zETS+EuBbEt?G9W8kss>-{xNc$kmt5K8) zM&Pv+fhW4e>Dbr{LZL!@VyBJD!EyFN-ii)-$3BW|MV;Jn1?;FvCETz)V(6|M>);5&rtnQE=lA=|hc{6Q&qf zSHRJGKH_F2HCdnn(h~4vajKhDMTE+keVv`rR~u0QBfLw77b!a^X9GrWJ(o6rQ%1iR zpx=l1B#OgE@r;!_l)}92no<%E0(ie~JON zRs%N`7o6ix-;9gKf(v?&$^~a0oeR#)gMkm|wVAkck*U6ElLq4YKk-(@rWUrIiK_jnsr-xo}&_ z+vK6P z9lqRJq-d0l>QYly4eT)QYJ68_g~K}e0-(H0THYfM4@|1rGx*l zbEtB0rtjzM!*aw_pcm0yIRHkLEL-#Rwl?ieodq9>*ku?cI(j+J&RXtL=&&BhF(2>! zoSCw=aaH}N=F3Azf76ny#{I}9Zf=~R2eK{ci}dPo<=@sKR{=z?i-@&1wPF>rVrc;} z%%_p<7+C`rHW5I=?c>rpb}@1B`REz}=xXW@$!`ywgCt5Y{^czmAk;aZy`l*A`*?J^ zggb5T(a?Dpqw{z7GCDuEy^pDlJAT~dM?mMsGG5QBy;lCC&jPi}0|~DPKI4R2Z&Ew& z-eg*u^{+h6NcU#qy%gZeJ_`ZV32pQ@d((GEss0%Z(rR)pnl$>$pgR=9+QhRzJqh(m za{4#*Bub+vRO*Mo?Cc8Y)R%B z^sDs&tKA0t`kVD@CH-2x{(w+;GfI87u(O}T2U7&2cd0)<_5oH1ul&f?mEMpJ+~%`% zPdH8VZg-k3qd&{GWvqGYz>#^StuvS}_A|sX)uh9HM|SfbH?P>8X?0`SJe1wqe_*5n zr_62b=F&YJG*uge$BWxf%;>y&^U3a-+I9@p#GB))zh<>$COE zcImD@R?pe)sk{C^aCh~pyE^kCFbl=EGW7=Gc^Qg<2x3UCB3HBzyZ`BN*l`qZ(~M*M zh!62%YyJ5yhg2$76ezb;C`v2rQB5NVMB>{lp`i`lS-g7$)iEPV`EMUGU}j?+*ZvV~X(UI)Q=>8`e4(#W4;0g{ z#thg5O4(W$K*VMI?=N_O0hfQ6KB5_)MV=m3v}S8YlZMYCPgawMs0ob$LcV#8Erg2*{aHP@iNr?chEEQlfA^`k#xd-Pm(~TB>*X!rkcMXnwJ>I;W&v&My z(aZOFaCS6ZzrNC#g!S;~Q!Dg9zA;~jt`_}EJeeE^+Mx3-6=Rm;kDK?hXx9-3{apcvY(C!^IFR8^ zc6MCy_kU6G_pK2G#1?;5Gt5Sb^jk@rLB^AxvRTHhPl7_qapCAdeI(Zf-xaVe(raQ7 zE1x0qk3<|crew~(Co66Czxe<}WS9DNquY*fr71DPQhnaV1~MfyI6vSI9&SvClrZ_s z`+)hqMSn-&YTIKD8&@Oy-sc^V4>7LDeCK_ZM&eKYfz<9-g#;F-t?o!S!o~lM=s53v z_FpWf<(&+HE>IudH5A_D(F677IwsA}^@xE^g7~NHmiW{0)UIU5s{edC){d4lzfaHB z@LDwB7at$$@X)WUv?k5QNnh(6HCC`C27ssa6s0|jZs!R_H){*C0N}MeQj|ma1m@1gJOtV?3*U1x&MlI*3ty$5Ef>}| z<5L#~^_y?dr#4AxG4t1EhJHra*7QZ-6@NFKI^Xa`fc1}zCc!TPsoOG|%=sc<`XQP$ z`I`tR3mylIYW+75ycYZ(*Y*A&pcBG1^#{;gDEmsZZ}@~Yi8$7{nB>Mw;_3O|)G#W! zXhP1a1+??paz9DoEQfG?k!_fKo3~-5Gk7X*!C~St<_(831P1eZn5^-1FuciW{s>1x zTU+Dl0@6e8^1Vy@Q}MdS7_AH`6yTGg{UWMx0by{5jYAhI2_RM+6mw`=`KjCU_D@Jk(2>bNG*= zn74VV-{FuH`c-pPBvzRb$YsCGfKQ)P38(5wRk-B}d5wTapG42S`lJfIC;t0al1a5j zO&r`q(()CZK1YT>Q_F6zSYh&P)D0L%s;=XMV`mc`7iLx zIa;KbRv7kXd@b%aI4S8^61LIt=|YIDK^v(-tIsJc;gPy6W2y&%KcqLMLB&AsX_=rQ zGcsgGhRmpCJ>UbV3B5X}#0B93`r>t$o&(n$EpqHAj2qr1=bVkFoG12?T$R}N`|M}2 z6h9v+fHSGRbDpHu=E-nm=pPk)G2HJlNAr)lTBLzMaSo&;EqYL#3K$B*x@7o+zaZdz z>|0slBk&5{u$-J~&Ag;dU-8xrO}uj%EFIy4qqWFIZdoe}gfLxmTHtg@#@oLlboF1< zxw(-3I|rUkT6A`5L?v4%NCRzgCs9XseTpx8nT51kb1@E9`u$q;yQvlgWqdOJZJvt0 zL5r~e4*QCeN?K)9=jwqf#KH$^jOu)@?djJ8b+IZ-`#oQ0>8&z`q&a-&10D2YHXwuK zpvKfjIes@{Ks91p725L7w6d*6_+h&5L}YTA-UCC)nn!U1RmtIAS*0!SQK7xh8!=TW zpxBr?C$k$grExe1xFI5EYp5YLQDu|zCFyJ52DcWuH=A*-%=mGobDK_ctj~YZ*|+=(uMAgQ_d|mXuUdzULk5ZI{)*vc;nOn%rQCeobz8 zhy>Bsfr$%0z{VdUZDXGc7g?d>Kryg4n5vu#s^Rm$Ej{k2b=9o)s+|`pz{y>ZF046Q8;R}n6F(ntnZUGrt z2hl94MXmtxrEy$?I(#P>cd=ot=e`4T8?)vCGj2qVk$G%FTen!6;25VRqj ziuRs6CyTkbG-O*^pi-Z=j4!J6c~7c=xI$yXZ|&FB2;D;RjPXR8iTB$j>x`Q#t)h4L z02K@4h5Y~$$5No!-G?r_RYh8>Dzti#L0RSVajR`oGKVz#PC}YREG#gwiSL`m4(zy* zMsSvb2AO|8m?A2Fjna1A*t%#ycq^o|Spi=AnXM0`-Mm5i6SQHk=}&u3)U9*|-f5 z@A$y&>{hcVpW@ddPdHcvjNdSdnGfHu_GytRhuDhycTOE=PB>(PU44Z;IOBJ|NT7P} zAnz?4^{py$q&C>?a{5QZys%wDw{R&iYk5>2^BH!csxZHU zRSA@t2LQ}zFj$omNi^W=UY&0st5-FweLI1;OupfKEp!`X92G0LE+33=HTpp(l24Y| z6upuNEcIyq^k91L)E`O=Wq!n*iFfY77B_Q&6jQ4vNEwpoE~F=Q<6fY00v8k|3WR$r z?R>T2-3nL-!|aM zFx?Z~5j+iR{O~s3yGZ)NbUZ&O`+nJ4MlhaY7)5nS<~N#O2H~sBIm~|^`38Jq6y%`8 z&{(Le)XkP_rMrRWxI0MBixy37*$w%C6F?vyFosBC*n@=Dta=L0yjZwee@<+PznxxN z{p`S4NoIiI!_hNOL>uLHA7A#5ksd%PK{2J?wXDa7uQ)9J%=^g0EZGHlgcdr#+vagB z#RF^PmVQg{=KE>&w;yRg&8p`fI^mHS+*|0okjDT$bIfh*BtUd@DPE*6JWmsf-?`f3 z;Fl$wyGP|mw#U3e$#m3=-$GaGT1MuZXxaTF&FYaw5JZ>wInsEA|4}CdJrd;+FBHr( zPV`!uFvfTDX41r$8S_y?OA`a&lkDagl)=eO_`djM(7QRs}R&YEL! zQQ?o@_ZU5@_99|SrJ>=x6SwhgU|)(~(Cw=qI~u=`6u8D(G|S`{)U5RA&6sJ_b2E!+ zpoI(HA4LsTL1s{)zVY3EA+huXx{JiV)qbP80P^r|nQ6WwEgOAxfhtyb)QxM{fuc~IkX=x=3eDG247_>gl{3ZhxIa690F#);Ti1NSt^YzId%I`1<5kBy-gw-y(Q-!|PSf zTM5FlzKr{Nz@xLbd3T_c-m~)Gbq9*^r(}ozH;hDouo?f;)M6q>wr8hH>8tQlAI&UQ zG`9GLztQBT@Fxt!`V}7;q$OK9uVqI5p*(vj4VBbj9g`$$UC#ss&Ro%Ay}SHB!85qw z8u!7mh}A|9`TVUK@K&$-Wb!Rzo-doNuQMg(tTDL>8;w=Cs2FC01x8%~q8qrvT%8A( zf8@*J=+@9JX}gO?q!Q*>If80((`(1w%@QqzA35ghdVDlIJlEC-M-xT)k z;a<=`UEfGBs1N3+^@ogW#oTY_qa5I?U{gJH6{Zqy!3%ii>mb+F=zsRTj>!nLWV z)0e8n2|i1=^5dryRY^R-1TvTZmqbX=SC@)%@-6|!e0zALJj|<-fgfHak!Q&FJfu~> zIyhEUDZ#QTF*{R!>l%@dfc9HSJ1M8gUY3KM7cO@PGdJ7BQfT=F*B@V_MHV^)^SP)O zKPH7Mv}c{00Kw%c6UVF@jcbs6V`4GMEy1kt3(mgvF8uZNt#{+EYZ>2mFXLYxZRJG2 zw({b9=9fXgr(>6IOefpiL?r@PS*sfUUly6uhqun@Qe}k`cMzD&3AEOk`QvN}(#HH0 zrAEE#I@yAjJdDEHC}>^5J0R#s%=UDm_EkD+#!qs`7A&LfU%m+cOMMjma<~2)B(rPK zkJBf5Gvwhu&e`M&ooW2C%($t-xFp}1a1ImIeqZG~z=!Y=`T!B>n(+GCF48w?dEdi? zfBds#azge~K=lp5qWCwTVot6SS$H|}UBdnSPbt(5j?&NK_k+TUPv!@Z*=K-EA9`3B zW%cf07;A2!u#eUJpk(KQO!hXv=}{S@;_t{$^FktG<(Ip)=qOzL#-l}tV15U;#>jx% zO4AW>ApX1MYGhjEX1tU!x?7e@uRl#H|H@1CS1y}2RZe|$m3BLRl^Ba?*;H1!RlKBj zowjHa)nmAJ$7MP29JvRVCmI(t#3nlRNew0KEkiDJcsobj>JrsTf`G&pBfqcMytMf! zyWBDa5m37gmb&;Kf5-x7QOgiCKy7iSdb+rMOpo3Xe#;rkZ5hgzJ1s*_c?X8-U>#|j z&;&_p>FoH>*YdWb(gEjM__%yYi&XJx(u-O4Jrdnr+4isFb% zg7~N>JPxgGo4zq74y2qAy<-?MMj3&Y-IUHImSdaD6gbi|5M9-U>xDK^8 z@85g}3lWoWXf3)Eja||hcO(Kq)~5u~fiI`^z6(vBjWBo?L^!!BLI`QDXDqjm8oq_& z-gfl?O9I|_dX_TK%4ZU@!$X=D`4q=R^X}xM2VZC=VSVdY>FIMJ&`~v@c^3ctxX6Z7 zYrew|=9*eB5#^gcPSliCG%-ZC_XA+(s5_WH|X(L;PB<-Gni z^ESF;J$;_fCGTe3%uc~C^oSwQ;L`F$6K~?CAp9APL`BTys;x2362hX(U9e?m3uMXyIp1|EY(pOVUvgMjbghiDit1>9{5^0W$ zd38xfsZ=B6g~o`HpKTyZyQ3S&he%n)E*HKMIY5U;IFqCJiGNX+6D_i2nC+ug=K!r} z=bbaksW#^_n%G>cqr<3@{|Tl_Ekt(FGWdNYuR>zO3!Dq8PN>i?;$O4QNfLt0rdf2v zJqxOit%zOVLejsBDz$}>=1kYbYH?D-to01143m^{HZ_SS; zL%rr7k^gQ790TORXq90lJTzL1?5AGJ2ers`oI5wi+9g8#O4{+x-RlfB*k1Td>TLptg~*+VFm)bb*Drw> z)G`2q2YVq-#g!$IYnVuqVJ%|N|JR=q9=J%0z!r1;%<#bI-<}^H@LU%R5BN+VGIauC z$0?s%24HH?!VmKG@w^-R_!{m8TKG}EMv4zDf(>(&ELj7fbH9DNWq>C>AM;W6?IvNq z`tuNy&Lxndy`+*F(TULefou@p$kQ16?3Mv+oZ#w`_QV3czoVbeS+urpi=_jZZmJ>G z;c=RUAY4blARuy%vF-`lC_<8uy4_mEx>-^-3;iP#e z!+)t|HzX?BJV)Hhw+npTj)s6bAWx zAj=>z?H2r;w~2q|NU`SdV7?X^!fNyZ4wmIzw`z3Jt#4yImFgRB~q)N`d7anwK z(LgdOrO%2?@S9lJp^j1K7h21k*3Wxw!z`7W6?oVi->^5Cw6ananO{$){A)%u-2DJ= zOm2(JF|_xQ<)|pWbRWx>gm3SQzP`BYKsUVMLgnbARTHYj+D76ZK%Uha`j11ts{TZV z*rqwuTl73}2R>*lwiFH$7lSKMtwa}IW|5@T>@aUpC3)Wm1w~sp#hFI`xJu+kEpj&9 zL^rbqz8;oC@p0~_NvL?0bfb4;43Aw#sOvEK8Yl+FO!P63(+U`^El#x-fin zaR?W6Idlc8!N=`K5S?KtrgjlOwBGnl0VduE0Ey4t$JbuEX8Re7WCbou#$D|9yO3}z>pJVSr`2TP+X~B7og0a`)mb>p%aE^^UqwEzz?y(-w zSJ;@LOA0#cB$K!zOj@g0L=Xore!W(Cw!#8nzg;1Qx6<-AnRylI zuwfu1IhIi-2zSi)ph~4dCog3c-vg_jHx&=KFOGrQ$tjFQV!`E z7a+Z(mj1fnLF}nC^}J|%=u+dy-sldZ3c0}xj1yt>c$z7z6`e!A+j7{S91p|PDex*Wog+UZVwYW{H2I8pCH z+JtL!jo&G*q3UH5^Kfp`vy3TTt8#XrfIk<27gBeiNbdQVg$FzakE=W2m)kk=Dh~d0 z)lry!btya>M@iMgAHx~GKpCMq0~bsZmGiQwRe@PRq*e7ToI*~ttla+Q{lg-)lA1WW zq@D9J>vrYBR^~690Tl34^&*0t^V;7smr*1*nnVz;$8r&H;AZ1;AE)r9H8@c?XBN8# zO(2#0P6q;6f|nT+OO5HAp7gJ*vFh7{0cntD`M15}c6KF38|RnN`(K}M60O+8)QU~? zB`4N}A=~h8Tw_;svKVAr`Uk%}+Bbb$}%n7ge>6qA+mYs4auI*-tn6`NrrigE)z^ z4sGBjR!3vWWh1+I{n){=YJ63S+f`zm*PSs8xjJ8t3Xas;*;}~nvwA3%9tx}>*at`> z2GzhhVZYFzwwxwilE}E(YEJ?V_2BI1!AK8MKh$scR4+(5vbQkxMp}{VvrPXmqp~#I z?(4GZ`Oxp&u9Uxubv`JyI2s5MtBYBrF4+n}8Y)rfRJsb5h6i22^TLB!q4SOEqKxx8 zPMDj|Lc`coh9Q85wkmskbwT=@iwt&Xuz%x}DeVM^^tQ(i%m1xQoxyyD1oD7q88?8Y zflvl~a}P`QZ3IeIE8iA6fLe0ZWyVw_9i68)q)vxr2z)v$C&Rk3`+t8ymLu`3 z^{WWK9_42A`=L*_+`rN&eWU zzn%=_B*yD~gdqLt2(mT2-m7ZWBJkyPX{$xywvu?q=BHBNNXgV51-Pd`tt_v*aKFUc zVm}}gPz@<3-son1l2^aLN5pJmPM6v*9@;Mkb1QTBT94x}{4_)jutG||HK;;Lb9z-s zY38Auf*Fh>z}6A+OUv#e@aQM~C<081GW?QAMdGN96_%Y3ry$z1KV~aK;&v`umDfBt zOO6wp2Y;?bUg3-1Y7tn+n+LDeB4IRbB=w=eU%9$$kUb{7t+R2FC*pp~?T5Qb7H7!* zaFaA-Fk+FB5g9TfLk8Wl9y74d|N67_4(*Qj9mu%)7_DUaX8j}NTjhcf5q}xID{>YW zc;g6&&*&BTh4aGwqqRGhqQ})wqQ`dqBmFhK1HFDZ$svJxPHmo+{sH0Di3hCqbF*7V za|h34bPyUVjpwg+FzKXMN71XJc=W5SSNTg%fyuAs?n~OcN3$391p4HvY+S*R!}OLv zV@|bq;fPLGw`YDo#~!hpM{LH$9*;5KT5+gtW5yVYGRMGQUOAjLZI^Vi6ed~>B=H>K zy1NzYK$Ig8KA7E#9)soKgRWM9BKWQFL1!zV8azFGFsl`F4xSu7=x)V8gU3y3y`3;7 zIHom5e=xt1_$%}Uhn_h`EpNkOt?g{BZH(47-BtK+j_s`V7ilZccWG^AVPX~=*!F45 zUqD2m)`s0uq_vf4ZIfIy)||otZRI7dS%j>kw6?8Z zqZWBk01Q&>(U$icZojttG$)?9ke10w*A~N*7MOogLJ<_lC;o z<{M5stW)$iORsj7v?Iz7v@7*Wp}cZnTVgxld0_j2*AuIc@YwtxP_aHdH_uJkqj0_s zxdUhE_5ON3XK(b+;dAx|&ihnmAZ0>5&8Xhrz`mnZG@jWsznQwY&(F~7*}zv2Dk<3! z^PXJ(qV^DR|MGup4}tmDMt3OpsUw`Nvz(^gvB3fUKyuvNwlo=TWLLp|EYf>v7{!I~ z)6doW`7e;9z-b9QMNW~!CKVXPJh)^pGvOGT4!#JDg{ zYA^%HM^kGsq&O!M+u<~KHs(NJn2CAl^_&N#j^<*{_>>@Q3!G*V_VA@BAf|5w&wRw^ zCr;leMT7`Yyq~A;aQnmS-EWM0m^Q>tk~z*?;BnyZOY=RBH_ll`cegkBkI`0E`Hz`3 z&f%Sf8NHGH6z&r>-jVkJdZo)_0xg5h)ZyI!HAd-^9aoR zf++TLvZRl&ELi@+t>5c-XSBYJ&_nMq@?tzZ6dzjN6`Nk!F*rKf7jhlgp{<62Z=I~n^r-WsiMy6?asHOonB))}j*>=+mwO@_u(BU(=?`Hf{xdDp&9f_|vyS5D44V;i&wY%G6Rh6hZW#z3outOIM7(S~wT0}10aY#mJ z7OT20y$!yn7x_Pl@|FS+$Dgw36n!(h>X7p;_gV4r!6SY}1Un*F85Z-zkXA zITV}TUp{n8S9mC?MeZjE#-=38<67hnu=AB!v&u(>j@4EMT(ionU0UQCr$e$ge$2?P z=FahtKPN#(TRFaDv$k>+kCsl!`!90hSplA0U}SND zhK9Mt)bI3|6x4#N6)O@kQ6%um_;)3nEi#!zzd_?5u2|sI7KUjApn`Rvk_}p0z5hxO z!YcnIg`G&I025{T^V);fvbeNo+qDSXQek}9B1@=H0G>8tZ?HUOa;zenaGj}B3t&Or z5W8hO@7`ffg@g%JVpm;+t4Rh9mvuyP(ya?{RZX`Va8ZX_SK{gtgQpbyCI|s;)Z@|j zaWyRoA#VTV@J6?JIXLJFURLvG!hT6Ln7b2n)Nb`7Zk5<%PpHWJ2Iz&h@+I1##)GqCD#1`p`9Y#*>8gajW4Z_cHRgH4);70tIQg~VqWZ1WRR~K@Zd2N(_D%aOgIaSRdoysN~d2;5c+eQa({- z9=fI8m)@jHVja{i`1a_j069#@Qryr9r$_iguflLI7N}H|f$HSCG8zd7_`)*Nuga&l z4yF~{v+k$KZ!NpI&hlEWqTCnZP#upJ`38%bB_JVXgmVZ8V6g(@ffxa+!NL-HDOt-k zdGQkB?2~vu?_M1aD#RGS-z;@@qwO23{O37>9_`tHa{*l{_mryWo^{2fI?;McfPS*d3d+FWf&?oB!?6Tm@pu z5DBc;k=j)6Kd)@6Gt^0Afh5YfsSZct3!4!p5c&&^{1b;ztssIwNw{dP__9NbtQloP z#H~f)e@7Fof`Ifmg872}DjJkI3-=c@gzPv#QJ9Va@Xpt3ZGheJqEHyRPMijb$GBaR z6EqNH-M^otLkM!;7XVBNf~BDy1|kC&%S%!gz1w{oqlL3&Jr=H{omrD4C|Y=jjK6G6 zoisQk7~>_LiYampHtZz#?=3xWU|+T)Ov7}A8~w#D^J^F&T}Ah33r`uvBP(0Soyj0@ z>@Q{w8{@{{Bk+0S7PzNt#J}tW^z1z3-Ls8JzdUE6sjO&CEZuJH>N~F@R_k zSXj{>%w{}cj2Lf>0tIAtEj>4|k z70$%h)cIf|eS}SYZfk_$M2<8eoLYDXALoysyQO6F>gm0ljf@X<6I;;Tz9x@@#D|3_ z?4fS}-nkV%(sGm;Q#~rrMa*q*iB*xWi+Q9@+mbsGQCmrDYM`TDN;KQtK=Vz-GfHvznB05$R`*$(K^h6eK$TF}o)d#n68<@hew|FG37hjm8qi&|re)?SgZ3tfrgH8WmsyR_dLd^nE&8yNCx*lpmDXC( z>Jpqw&Ak7^-uuT#RUQ4~yPFMJb@9d;HEPsYw;F21q>VO_XcrPgw5djkkZKC4QcGK& z=RZPALpDobLPyMnKNhRi0oHLAFz;dHc4wqWFp6GIZ2BosGN5H z&oLDTb3@k>VXAo)?Ew1gXr8U&CW&D`CXR*C8FUM;Dw!6KJHeOAF`3Oql&|rNF|MOa zeHDw?hv_%niP*NWRaR_m&Y-h?`_Ktu3$*6gb~VS$GubC3Pm9h_%c>w|2U?)ay@MP) zw22Ryr)%jre)t55nnWNZpXXB@g;+G3NElaMP_q{~&b-JW-v(||Y=g=BiBVNk8L1Q@ zqHvVm3JHd;;fNE_ajS4Gb(t>Zspa53>cz)Vso2NWq zQV+MGqDDU{%QcJOzO`ygP&vegCK-1!WubT#qaT%WAcv#X`Xc|rhr?S7WJ~7G+~i;2 zkE`=`FU@7 z7*{bd_WNQr^=aaeYIr{x#-S-=38lig3swcIwAHN8ir%FU>Ua6ga|q&SDzw?2!}a;e zXJdEeQqMYH_>;>I(hP9+khHy(;|t(plIu(Sd@OVwyPYeyhi*8frNW)fSKs+zX-_P? z;RGumjnQ#}%eL+79CrnC#GW^?@Q02MY8j{VahL z4$G=B-N)xqO9z128!#%1q|6pvTct(|e9+k>| zf4aT{Twmb@nf1v@M2xn1Ix!h*KYxB87;9xc-5ZN;$RM0L4^Q8(%KkI&3SOMn=f0AQ zusz1@U~8Wtse~@Gb=!L^U;ltKz1P#Lnm>yfcE{*OHV{~`=!avT>FLy=*6uh&K`89L zb=|>Qz-cSk;P6(LrsxBt>?hAQY6^|n`F6tuwep(K z_t8yspk?2f4s=_9#lBvyAZ>Nd0<@4ko9Ykxo%N2cX1|Rpu0tp{ig_|>W&vu1_(ey% zr`0j)EpLIb_FKekku7}$1768!MVRwKKc8;hCOOX8&=H!E>0eb-U@Q*MC|7*YlAUZ` zsdv$E*BVv%6$e^A;8<_@;cIBfk-~|_y9VQ3<8&MxA#|-vAG=P@hY^Zn@q zqrWg_=0|sja`k$D@+k>Gk(%jC{x(emD4vX2Hf$PiJ`V>A_3A*IV5m;naHD%zu&mW0 zuw%x4zywBk$n4)kV4JFN%zORj{n_EJqF7}SRl<)}JrqQ_eN?j2xHi{t@lr=(P_%RH z+0tM+BXZs&gSgYsRS+uV@jt&&H;Wu&X${vtv_-@Vh-ozboF;B8#Ao z&JR?2!|yexL|!kCb}o6=vPCXuNTP@%RINp@?LR~kH(rt0_q9Tz^Ljqu^uezU51&)0 z?>J8&YhZ!25i@91;f#T0GDFYsaAdeRlVMzAPz z>1){-Q&m{S>qH(=RfIMYv4p3%TXMhy20|JPRE{y$p|33G6@#-Kuj0^8Sw*XF8hG)ylADhMluyhH` zpi^aFZXaP?rml3i@k1Od2_JPW{;8qERA)>tv-w+v_W><3oxYt`@#>O;WWQ0s>6fo`l2ZffdXy$sXS2GRP=sWrj2VMbQi_0J4&;%z^E^l zuMP}bUp=)ftw_{|IwROhzfN`d$5qsOLnlCmZ~2J*eY%4PN98hH$+uZvLHs4; zT<;c7PovtAi~X;*^epG9%B-|XlW}~S?f*(QLf0A*w@s-GRf-K} z?eq(n;AFAbG)qXruh%*3ENtn(Svct1jDfbh+?6ex+FG+lu4s9lE~zV8p4ncVHR6g@ z@pjU;znA6OUj4<9E0Wvv0c`(c2Z(e$LS(Y^Cr|u>q!O3*yth8QAHqwm_S^|=hpz|) z+YVnO$^1s#;_NVanN~IZ8tu8PNN4D?+H<`>SxH61X98pA@SC?FbJWJ?Kv)N z#`H0*+w#3gLACj*HDL zC(Qj@2GEui*!#14qe?jtO80f zBE5@Atb~X}i~Nk=Vt3in=t^ibc-LuJHSfb-f$=tBE8zq>mukZa-2tauJCD=p%cuYfDHWr zOBYqKrvuG&%P>z7H55MSdY}GQqLtWqTlp1WD2ROv#n@K$_MR^hr@8H*->CNpy4Pwm=3I#sALtnZD zdqkj~S~pAE$G0tV6C9rbXWZS<=7a$|jd=m{juanPNbEkUriG{wg2$FGkD5^CJJ|Vu zZc9we$-a)qge9}N_~M&Kd6Xu9q=w*mWuGkV+}NRbc*idJ!HMcdBZMvHZ&9J{9L#gs z5S&lV!!tqc8tkX?CZyuhf%X0(zkN>B{A@}!w!7m>>2R(gzGeQ7k|G6eULg6vc4QlJ zxq{s}N*^i#BEI(BEEgeSd)5`_j8#dA7f~#wn{6*xa`GEp|Rru&xOKv4l zYMtOmrea+Dj`{XRGnPXBj>G6<_q*0SF2xvM?Z9|i+>^+yj7iz{#-`&wHvo0Z(f!sy zC9*r7OKQaL>G@CxwD3uNF>jES;8=B}nNdtyvEEB6F*F1@`DsWT-g;hx8n8pnThooo zX$L!b&}zM@>)_c^&5N4%rp^2Dd07;4Tv5xd#5&52CH^Rk()poTdLq0ZyQU>c4WgS7 z%;%H5`Jv0H;rxm-T1;bFE`3r#pR~k>_$)ux;ev1{i9!`UA3Ui=o|fsDF5J>Z>nf}U z;8C#55EwCU6eptWC9@v>xS)Bg{rM^wq@J(h1gfZk`n+5f7!sSh*A(dA^D_iB`T79@ zpu47!Y2a{9cMS`(0Bm9YQ{GUXF(GVv!`r|d~zsyp}rj#1Cr@VKP%w98TomaYHmUwFx z>#srwBXFt{PkjVxS81ZocMGwJc{w#>E}|&vZ0kS4&FiSnUPw{sEd`-6+vxwgZVR~5 zx_-bC=`R>!EeEGdBG<~AQ)u|~muT94Ra>@0reUE04Yl=GUOrqirIj>L71(HxaYte4 z9>O3gg%e?Ut7ur`4P{qV^euV6qECxpFA|4cCbTSs&fDm(INEX?M`ob)iV6M?Xrd~= zVzA{sV>)bX#`N@21Bcm=6WBo*E--vo5rvZ0im)rN+4G(wLwTQ9ul|)6CoPJtlNQzO z^lXhcxjEX?@-KX44-?nuI8ofe3riAiMuACbD~>V2#Dq3x!CY5><0?0%I0#jp<0G>o zl}cq+WquKl>@#Sc@T%O6ZSjY;@Kz$?t;OnyrW@F>l*^~Y(MKpyr9Jm-VI!V$ItS;# z_A^c6MCb_Ac3Kcm2ru%w*WE>6geDOC!ug?klA;R`CtK(V`x{D$ldS}x+k&xU3(FSG)L0$s(>RY*W{)9M zKM2q~cC8$;q>#q0QZ{^PU5!1=sIFvtV&dmGHbk;NVdVm&3f8JiWiJ6v;6a=UMoJo@Q7aHA(zzkS^OV5_mR#?08c+zMJ?@6v_zHo2Pjqhvht zjx`>L?5Cy2!<+~zw8p?pVO6mPh|kiIxSa= z{E`X|aZu~nl^^Qw>fJcX0}tL5azv55#09k#4Q`i+PZ9w8T|#34K1C3ZQJ?PfjQ{B? z9{F_Lsh?LHqe+C;e?;%A?5$|b?+wLdE6srGnj(AB;a;OuB1|PAE%Zw{s;e>}x>5H%==LHgl z@3Cd<9Pm%45g?%3dDs|8dcx-qHk}LXw_4Z_Ik0cx2ct^EdH*FNaDit?d9&4dh;D3!+r{Ox z2&QZ;`dfHJ-r$Ad_6hvF(ia|FqAh(CKK^MPQ;XyameRI}-`(J2Vf{4V1f?oPgb5E8 zY7xX$T2>vn7+~A5&_ude7iGr;!9l+#6n9)i-BN+~y&Ji6q`ckM;A7_x?tq-6G#8Gj zXj?Co2)=wBUpyw_7)?BUK*N>3V<5^i4x+;E_|+FQhUUd08;%{cOQ~%Wdjk&rn@tkn zf-vh4F`6|boTaJBr2z7#1x==@yM2(Ie=^J?qbB!-pHC~1qlWNHmb^(?99$Dt2VMkU zSRL4pyQc$vxO+N~z}>TfUR*W={)~rJMd4w$v8Ya4ajKgSc(fYJ18;k{N7fP2!V5(c z?pS%UIP^iss%B6Be|TIDGZ+q8*y#{|A`G~d)6RlPXki2yLaL|x|AT(KP;{YR9O+ka zgB&IgS)DvC$z2UYfIncub1$}>12#cYIDFz-Sov2j^pz0NBe6~{tLC;OvJfX;InaDp)-5fd@*(y1u z&etJ=AYWF6S1=VRrVebn;X<(_o3D(>`}^+(K{wOm^l16*G>{e+BsjV`7j!Q;E*+5E zt|9C~_|j;C3a5)ZYcOMfxq=paEd~xz+N0`FVr#YGy)Ux@UNgH?hx(ax?3meJP7DLG=!w3 zjw!H3pHWCJL-%@vx+g_)n~8X77D7AMTaFE55K7~xZx1z8B(+%7nxAU8)W(DNhogp| zETA88j9_Bp`;y4;Y1r&4lC2~*nO6<73PM$6eEI{#rrKg&I1CEOT5^S=)s1aLBrh;! z%;#(c?3QWP470j}&RQam9DAlJ{Gb;F=Ro)!4^ztqzBi`&!rh~~N$L-cauoR~Xp|S| z{j}`*jj2TyRYh6^@!;6G-D~7z7Ax&p_bABPnFw^lg^GDAF5tHc*xOF#FNTf<_+~j8 zkb&T-qiKALg|74dXhCfEeqJ| zVuxC4oeL*{gtjbJn6aFpi)j^3{Dkzb&`c)b7c7>gUJuGDEE3dOUdy3rSa2Y*(`bhd zEgFP1vnrR5yVIxU??>#ocV1(w%%Eh;@y?ibmOwv9V#e4{gUG z5_*d8hFTO$@1gDRrwC1@?lgFC%ltSJScxwp2y+lVdcGDp)6H{`P-8(y1sc@|C$9U$ zNb1n`w#6=2=tM)>q$)yOpN8u5S>jsH)D#IU!~4~N2MH_&cIJ(p0G7AoIP4k5y6HD`a zu7NgeP3P)eEoa&D1)Hv4^W>_Wg9d+KjRfy`gZ1#uYPpH<4ff5=-2?Wb+^9QNVw;p7 zSNJJCWcAdx^fp@En=LCl1o=jbXNwQT0*i`odLWytd20aGwB-`Dd|OokiZIVi3kQxW z)HwNRoR%p#ekm33I8F3{$Pkl4i|)wg-#-4$#D~1sTJ#M!&zs`XJyKT_pPCRRub+Cd%b`4(?VuR-Sxuu4K8<1GII2WL+-?UM!j=tqE-A&D$Z z@u)W;tx1F@fcZHI{o?P)B{kJSo(4jjie8e~?BRonCE>x8w*1#0aU^8sU*%f#pF`<< zyXEF>61LtE@BG&Pt?YTU>NVKb_uo)go*`c+)PX6f)=v|2` z_e;3dKPvW(5w{3grR4d-Z%07Gpc4|+=L(O}BHxAtyMezvUyGgv*PxkB5*Tl)TBP{o zhk#pL!A_oFlOnj5`RY+2MWwP_sW$IAE-h9fg-ze)Q-{>2J?r>0l0Z7HDQ3RmH}5|5 zDSbN%D*4?fRbut*%O9kBwr%9s?jX3F*?ahy({kJEGA-wF zy&6-{8%Lef5}}IC6|!g-bG&R4ls3&FvRMCZ&_<>Z(VAu)Ar&l@Pyjo|S3YvE#58YV zB2ZJYcDaoHYwxFlIYPA(p1~ZPBTtM(PS<0@)INL9l@S?zxlRyZaI^(J!SxA*_mUw^ zH#wSKDNQePG~LEcw@K3ts_A-X(_6oynyw4fyLXtAj~o;ASN99*%>yYVE@+XtM{Lxa z#!-t(LT8{x^M8%l4?f2azRh2>m7t_+#2$0Rk~a4qvfj095xQvEZ)P9)#ARvgeS(M? z2du_go|5Is{MoQg-_0L8*-krPu_N;fM?dA9`1^Y{;-ko^LNK=h*B<(9e)VwrW%3Aq z2YC`+a#&^$mb3LGG=tDNYgEO3Iq~3-J$v->BPzkQdFOkda+Uwedp2GnSelW6@!7xj zTyA>5A5nHPTus>cue)5XPlb!u-nH9=3~S~Nd?Ni$)MeOKzniAt(*~s)^RYp@zQ<8t z=SQD{Ynr!#HRT1YU?1Lu8T6@rzK7>AmNu)Hr1Jc}nM#inttjP`>Qa1h}T@~50cnh{=x@5=XRkw3}TC?7sD zfjY}IO)WB(kiJ-_OK7PkEi&UcM#VGyoyWKzXD77CFHr4NcX;qDZAAh`#MS%-$%lL< zjSXLT5c6KOd4D!%d2V2}&5&SCm{owq8Z+M&K1iN&c%h6Gw#q0pu|wUWWc(4rYqy7I zb_~t61{#bd*w`-{QZ1FjJEIOt4jUEfV;dwR?!A0QZuz}9(t*ZHJJrF7@MY(P>PiPt zB4(%6q!|1DMiQgxowk@R+Rx3Yt2O{#s@r%v%5~1fRKys-96pD~OB98=`OFHrGKr};#I5U@+{M# z(E*bJS3dZ;6jlPx4F@g;Dpd#L-0u^dC49uWI<*qk{VAb9i56y`3#=O}+ps+DZpi_t zscG;ODNiq1*mZ-kCwj{9{C#!lJM>+#(R8mrs3XF|GtKTwrRZ1GZjQ^gUytMXb3 z@Gx|$+LWJsLK-G`%`^m>YK(ii?M`Z&aGAQw2Tm+o5?(FRz(2A=lcSh|jCoXBOM@DXd;S}un(+V-r1vtmjvLhP!R^3yU+5y^o*fKH z=)7>bf8p5(h1wZ9jmG2IG}_sgP0Ls>57$}-J=O9hg09)P-4`7Q71Mw>R!q?%9|^l` zrVkqpoU4L2=kfZDUgJ6+widtjl9*+P%`%a-I!$_TgtSPI*^TAH5y_me!<4-(q;CP`6tKn2@q`54aVTnnJfB4Gz45xk}};)Rb-!X-MzciZxLJ=iFK5 z(V||G0h1=Ey>z$n3=UW&&!(#9S~v;wA*(rM6$LA`$i0NzX%&B6vd;`0W^=jcB8Tsj z%w6WW(dCfD7a-6?CwRa+x@~f2wl0gTkrf_1e@UKE%p`vp0-w_U_DBR`eEZ&tdZvQ->Xu(UHKu?3e!0!UD0#TTIQC24S8c)Q0TB`wGj)OsLOAX<#q!iJ5DLE(J{ z%I!l7o#eZVI$&GDEENXjBT#t4FEKw zjHLDzP#w2nDr(U{4vAT$q2y8}*E*!huN5WNT9uE+57nB1Cf2jm1dF7Z4k;pek5K=+ zIX@h+BmUqt-|0^%I&$h^b2frDvNJ)+ZmH(P4ALPIi{Bw_q1#+KY=aTGYuJImfVqAo4dGWE5DsP8 z5JnNBSz#_(n=QW!0l5>rJaYk6wbJfMnc2)$vvn?dkgF5B%^#(iHbC>vkON=&=0%Po z*JRs8B12wB4}<1}G?tkm7}Ii_IV19;M5-s8RqYlKEnTLkB6k7^c$Dg72L^3V|L#KgH4=@S1E+wVwwwLlkR5bv2K7GK6( zV!@;?^X8#+BRNi>a%skKBOI11ai-l!iE6}-YML9f<7@h3_NFOXYvtB*rL|US?L+R8 z(9{o)FbCq+l)zS%r%O1fM8Ucg=4s0ji=z+&E7PLSLVa$wACho`O5j@V4q-s!;R*+(25%{T8JNx#Z+l$w@j-aKMY^XOBa^jzM1I9 zSIp}VFkLXyzh}^837%mW5nWwcQED9>&-$ynoDXqFvLb7(fx*d$<{e%L1M=sjFR zkU#tVp){FS@j=Oh3jSsPP4H(sWhJqiMe%i;%u@aCAO*ShEmAa;!lOJ`_x=BFlM|1muu? zopY5Pj16U6qtDrTmpO6E0(w`5g^goZ_T4nQD{T(^borr5@=h2(Kh&5PWAj7hbAG6N zU~rWXAsc8($2(j^pJh*IDeAf%{_uwci}O*vmMa|T&X*k?|{dS1E+`wD1?jP2wS^5dg<9(^{HmYgEaAswfnr@eV6h&vCa9MwBl)q9Fnug|LYGgiH?SoM}my}pi9>6^8GwP+9L z);8^*tX!C|Y*M{`RWA^_?o1ojJXL36GH*jmz59o_UT??A77!Dx0@ZoxVOT3W^=be+ zX?RWe4O{UGkPilD>tR$wHXwwZMtH(R>A@Va{?9O0g4klufPjc4Od)dpaIz!hO{=(I zJ*dv??w7!Kl3^%VU`U1`q;%2;q>|)|oA~nFN@x34zNA(Oo&LM`b6mzUw5)fjwtHF- zZl~ztk88UYlex&a&P((2I@v23lX5A2K2`Xi5mZL7#o5f5I7F)wUlKhpAuCg1dJbSp z8C3;Fy}#o17H{%=eTy+IAjy^j`m_LNaB6v8PaDsq&KUvXh}j7J6wj*mV4j;{hkS?ehbN~(ay!kLA`pVA}3Tqi!+2uHzbT1e){56 zBge9DOqu2nooifAU2pl2+U;<(TiO%0(y!?=bM;sB9jR%As$71MnZ^yQC=5=>z0Fm< zZFwO1G-7{M^ZDq!1pNHMTm5Dc6wh=#;A7-V%I}i%PU-RpJ!l|!SC?}0;7v6|QDEEI;yi7N3A)SGLfXj0u>mMvgAQORbPHUS5P~ zum_(W=9tsE1Y_XUHh*kf5OsbO0YC0}yAm|{9k7vdUSCL5u6Ifh87qwOW2Pfc{HsOa zDz27I@gj&?n0^R3vSGt#b94!3V<>B>!?61{1d79*yii|Xf>nGPR2E_&wO(qo(x`_A zWssZHq8xp)LBh>QR9!>_1R>EAiGLy&`yDW2WSl96doPUfNp!Eqjh7tW)*4l&ApS6mr^I%N z=#RxFCcYquIGrDp1K@eFYKfs66W><<$0E-&EL!ddGKZER9R0g=x&g2`Ys&voV^HDRLg33#jFKvc&gC>%{ z1a~WO7_X}e&DIfh;JRAD9pPOoREpiw+!xxZz$TUfTls{bR2s4>HLpuKS4_5tt{oQn zO=1n=Y&!S=_FNKo4ymKL9wQega{bPHhAOwIN_ioXwMcn+9CuGk_`9bAt8v#9Xw{z$ zwBbpkm*?;?CNCC%yQv>@saD<}X=QKa=2$hmwPNI(g=02Y>q7)TaBvbKF}`Zd_A3XG zRjL*Gxl-nQ;!H3>g2hmR?j@P2v})cK+gW%)W*DWZV<(SNqj zrO)=Kq0Qx!2BPMyl&-VQH1|WHxH;md?H~#kV$E-+?EDt#{G)1tI*|Cn2i5}hT~Rd} zXo0H8(IQb7q?XVP#kbm^3#dpO%+={8QxX7`^aG zo*|XB1BYsz`jWGXu74vb2hL=F%1`x=$=?weFMr2s$NaRP+wqnCA4BUjnP_borLX4m zLP&i1LG&^_=m}jN9?S||L!^Biq5$OUy(Ddgk!gZv3Q}}<*RkddF`&v}-dfEqKww9d2KiHX!82irEP7E!0aD-aV{E(=oi<)(=YS~w!LM>hkLe_)0ZUa4BdmL1r{ z!5)%&veaq4&_o#sw-$LBgS>Tt3NuEtq9FNzg`yxD>DQeo5-4m4Dis863WA?A1h_N* z4l$9xWII7(>d9FyvlDt~Yi1<4K|lHncsbI&qsWOUav?oi`^=@XL>XD>N#jlY366O- zZl9yN&Bv67ghlN8Z*t{Y4*J|<)mKL=Pkn}3nV#bKh&LeX^(=_!5}-_n2sNz`U3&nF zL;F8eN2|Q*JP8)Z+9qDE3n@ryx_`pjBtY}wuX zt_j|8KfurSX9TuoPw-ubx_b`jU!3dKRv;p`v4(rFM~nPMu;fh(Z9YE9&2j@m6z368 z;U@v%u!P2#%NSsekzrHAenXe@Uaffr`JBPW7hb`9XQfe7RJsSqyM-a=jApzUI=k4Y zDUnyKf7X=Y=Pxh}V~nh`iKY zQ;XRkW1vGa%e04f*EI2aYhd(mseZ><ulnYq!_V?P0_tCys5egT6Bdh9$pbG4zgNhnUQ^X}AD+ zYIRSvbIDn@$(22cM(6Y8nW?Ovn4Xzb469q)I#2GpZ=h{Qk^*TEQ^HHMW!`&qG=4kR zdve#K)F>o3ja$BKboupY)d2*z-;_?&kuLua>aQ6c(|%^t>i`ZLA6v&Q|0Sz@OzGs+ zCwN@usmhDnvZ*Q`zI53UeP48@Bxx0*Y{n@>X6rL!I_K2aNzo_D^ucQkk%>D!)FnJoNeNW>RGZ9AzvcZ zkflYJW0z(ee$`g)GH<1KHka@zE+LRvEL-Me^mYF7ar?{F<9=zDLSJZyJR~Ys1|bS& z8jd<;rNuLP$ha7Wal85w`3jrrc9DD zW14pq#TVl^Q_V1YS$jDHgV1boAkoa;6e|6O7STN}HT}vB??b^;B{@#wJ1IAN>R`v9 zi(ZsiFE+zMWxO8bmG%&%D}e5sVXpj@iuQY)7_xire9NiNNDnJbrha+xoe1#$_=WszJY zWd_qC;C@tHSF7ve>iV=Ry>{UGtSh}%h^@XIC)?z3X?v%7`=Yw`s_UQCwNG7PHj~NU zzF$3hTU`&xb;T1dM*71~xft8+AFAhD)$<+d`Jj4^dArut_F1YD5;0$4io$f?HlwqKj9B;a4^@LDQAxP#iM{f$o!r@FHk0G?R)|02!lSU<%CA&}M| z7G~zR4k>yaa~lCN%u7Yyoxu+5hNQ%Sg8|H~J~m%SnkN5Erf(>{zRoD^`S_3b9L-oi zXRP&nV*O7Yb<{5r+dlUDMUL;oZzJ|I@`Kjul2Noed=%O2oQXt(+KP5yNV4r%QC0k3 zQhSqE=5F4fot-;b#a5Y)4G+hhR}7luyU_S4MePBGH?eU8tPMpmZ?EBvuDs}k-0tpSd$fe)AShyMhcuPiU!!!dFWj3E1)C)C(| zC9_-ON>+NRfNPq2?!{8qw|_p&hZDJRTf@W_5#4;jW!u5ad9eOBjLuhUz^STdL6iT#eA+t`GR?hrfHGA?L3m>&VcqgfqAL_RGSDjGm;qp`#P>Zv49 z!5^vPmzR!9Ypp821akwlD3~^P{D)J zrxH5ba6+$gb}v;h*8<(d2Jd%4fW9`;DIs zrz|T-^fio274Ir#7@zp~MindH-{qgIG0xzhtRYU}pKKfA!&kN?1Sd+C}X%-xtTS7>2dX{v87jK z=)c4fy#sAbGoh?5eSj@vUUOT2j*Imdwl@|szii_0vSnhQ$!ve1E2u?Zc1}NGk!;pn zzpqrzzT+&y%3d!UI&(*Lple*ChoXcp<#5V?DuYFwr#zua;r+uR?;t~M=nTv1cam6p z+@TBX^>b?>%Nv$`)~cfAU*R2|6S zla-bZh^@JmDxU@+j`L^$iB|RuDq1+Olu_SO?hIgSp;X@PltPfbfu)lvM1DkOo* z7@PFs*h;310L%g$=X_Sa((JVr5Q0-#`Wyt%P5kuP;gpd>*j;U5_d$Wy-EtpPqH)l6 zKfgBTvHjYm*0<^TX**!14hAo5tg;=fOoM}eLkc+p9NHT7$zv2g)&U*Mh~8yhoEmK( zvi-@3$F_)b26*GPKRAuW35)l>@d><_N{{9LQvZYaWMGRYbQYpEg-)~TK5<|R{YmG4 zQ~4@Bp%uG+Og~6v@E$0NRq^qB*hIZ&x?Qq00RFih0~sDtcTe#hJo<2VAK!8Q+0K>) z2KSVH%{0P(`BiCzWn-u%V1)DKmoL0E@21(vuNh)rxB%aqvxj(>fg$)ooEF1BS$7fK zJ*N*?_aWS`);SsCqwly~$#xZQmhP9)z4>jC&vCy9_g|5FwOe9Mh5CFmkaF^?8&ozk zwXJw8c;6>bLKLRZ`1Hn6bhOZI(NTzST3!4q5+i4D&#N&He?Um<&wiSQO)7rfd}IH>)+_0C5XWmfX&fZn7(2}@#b1`% zo0X;N8IeVO7QpJDQ1UEyI&a%TmwGFC1kJ<{deYqguHBD2u0j7>(><{Egt5t@Zd zx*&j-a;@|kOY;R)*yUd)G@STj`*6zq8A%erNb)x^2@(P?Bpl+f4y`W}#4?;S`qB>D zcR;5DYiS7oGpI#=?_ttw)VFMY>l}CQEAZrR6hbi{!dUc~ydBU$v$C3x+GkF&BDXcg z*lR>hv4cLIl{Ztd<}nkw+%8h$PEX_)sE7mepHtp5?bNtTxERh+ibKq7MR}-GX8B%b z4}Cr9*}hlUgg3CShwGn1^@Dup5-dt>Wpc*s&BG5=o{Jx--H+6-4Px1Fpnm6);S|q| zQI*{M?^F_{O3dF7ZnYOMDJ6CL=t)QT#&mQ{JD!CZQ;%xrY3DQSlj+{X^wURDW-irU z`i}Z`6ML4OxRhsuW?bHMj)lSAXD=_z3(}omD<}U5*8SO=Y4aawXx; zX0FFhCX>jfddy7{&!@pjXAS0^!<-&GjZD>qvv$ZPszskPkzB*ud5vZRBTGApuz|a2IL?6?O2w<77dXz2izIi)$s=59$`P(B@){Prn)-_0gJThG6={*b z(W6=|(nQqT|8ATOmGO2^VSn~BSSz;lZ6Vqel*HRR`7g+}e{Ib9y}9pT|IU4Xr*}E#SKq{E0TQvLy_a#peU>^q1R z4w$Q?1*>uo7WnyrD`*tU>-Ts`D)IL1+-DMGXmR0${+)fB>85=@)l&KngM0gb2=5~f zz8@TT*S^0A?_G2I*Gz=VCGK)|T5OE>TRnNYcEmkIo7V&Ut-qXIe@B!W6s1Ck7@`kpl89jkTl&cqTAXy7ouPF z@pi>W8{=Fh{c4W4ms^#?^^cmPr}NOns%VZ2r}uF{Oz_>GjWLZ2ba(M$x0MG~0sI|2 zde^@Fx`(?|GIsyarM3@qHoKZQv^={3q065;9Pj3K>K;K@bUQ-97e-zZ0m^VWK8KCi?hZr!y*WUl-W5VY4_FfDE?>Qvc z7v$L=l-M6Ubtt2?)7|XQV0D|OwQ(<2Z^z`0o;RfS6XP|F+~u@fa*bP&-~@aF>a*z2 zY#SD56pMFxZ6!PL=Wve8>{IX8F?ViozJE3>xEfUy{Q`HTFMbeq_G0OaBfL=es4)?f zZH(CvbiBCoS6IF@$Jtq;Z?pa=N*a<&{<~x7pOOF1VXOb6Y3+`!8FY5X^YOmqi&P5b ziqNtlesC5nN;>c^bwI!Hhdf?rs8!^Rbw{lHI{G%{EyEttHy-^HPiC9`ABptwnz78^xDV*#ZJ; z0sU$SG}=7pOfOI0#`v0EmzvjWq?m)}qwpdsyod`o+l4E$xJYw+%?_910&5sAl0Mkj z#42S<;(}Khn-UD-!&y8Dn)lA7@3VIhy7#UCr>19(#Bb$9a6EgEbrSk$0j(EU8deLh zSrvdv3ex}aM>#;&Qv%}Zzz+5NAv~AE@$u|Ft{>yP_YzdO_h~7gu4blu&i#$pPwS=f zPN`hhO-8}ay~`QG{+=RN zLmClgjSxw=v%3hsr_$p__n3N3fkIxKsLXvIca8(Zmgok8I4Z zlp>hOh4g)wLdi~`1ly%r^j-YDFCnF#IVNf_ckg3?CJKQDJv1TmFn;2FqvuNW&qM5< zkLjq)7J0-Q*5bHUl}u)toBccWZg2>h<~nm!VF&t(w*_qrtof_h1J+|TnQ1-Nq6)_V6gRoVAKhM-DO|uBFaPl#F+dHED@6zU^n!u!*B6m%(yQaj!7iE@O zlELW8_tN^%HxY#BY=+j7k7-D0JSP1A4M{0>=b==JG!&#_m-gtUZiJuh7#4ZeJR%~^ zLUm6+5j8x0{vc*&H1{SZE+Mh-I4OWsqbo&sGp{*f%b!kblGgrZK`{DgUO~X96^aC} zyx4R^(Q!%D`Qnriv(ybM$xPzHMKt8}<XE^Sa zr2ZII1wXDK zJ@h^C$2w&U9%DK0G4LewTZduV`-ekMZNGx>&8hl?-eI$8VDq#$4%6YiDA%`zpuU$E z>Yec)u^4)9r@CXwZ1diGl??wQJdgi~hw`@{jPV~BReyoh&n=POLM-(keY^U$I@{=b zvu|hLW>qi4(Dx4#0C%$N$gRh@?Y=kn?cBFnwS373sz2)d$Z{(dWSfgEO~5&P@gJmX z_^?}B)fqnQweod-KxFie?Y*`VPVj-`8B*qNr$h`j>-nxME zYO?_>O)+C4F4<&Lk^CrvwA9hla@FLma*yU4;iTJ|D5f>2d1k6nY7WFM7 ztQ|=DbYJfH)L-^~$}jC*KJEydl5o1n!Ucoo#AVPs4l-jOipl5?;MgKSIE(nkDRQGK z(#A!4M;GyrQ{)0woW=re%okazfw-Wp!?Ic}D zUaKsf;X$t!>5y#(Uq=bifO%+m^nR_w{uvSb=d)t?TpfTZ5i7=V@4MiGou_XzMCpKA z&^^1_1m&EzlwNF5@OB)q{N6+kMh&mk!Yx{5wz&urT1}&|xSV8mn+w3a7QQCvHrAkv zv4`<@pvx<{{ra;T33??>wgx7{SUK4;R2KKo4;1gY(My-f16_q$WRjx^=BFo0vv+pfhV^{$4Kyrw$LAlaBYEA0wJ2<9ftfp291mG!v?Q*XFeL1;d;#D5_w3Aa+;CZwc%7si!1~-Qdug@kW^^2W53y8 zR|zpy5tpFvuGJ#DQ45=(O8111ctRD?&d??7SyGNnT5fDP;w)Tahu0OPAz11bLd5AE zw&WKF5?!x(*ek>`ntl=BtiheJ<^T`L0c%K>x&PfExyU_gNRCm02T2hk&4~Bj!Hf{| zm6a;Eh7ZcU0y1akVcd1`-P7vskGNaI+wps}=r3@`uKd`a{2|?iZw-!^$nXIEIM5Yr zx#^z2w=p{7!&sdJOw4_AGd&pS^0k~X(3Pu29(VMDUoU{*#ygM*LQ@{d)1t+*8tbTr9b7DpWij@g!{lz1JU zu-9Xe8DnF#e~aP*9W3rH8fF(oSypxgiB@WDngJtQ@fQ${d0CpRI9mG29*>;Ew$OXt zNE*GoN`A!XCCt7y8u7oxs6EV16uUznz1Mh{_f2lY$ zZ#Yj-TmcrYUb(ITXc7^K%?@xY7ok#os!BU6jtYm-SFpauQ(5P!c=zN{`3_(1$EjYv;gkTXDm?+GwdQH6Jr{IWHft;3npF9HZ3T{k6MW`PDYo3q zt8ip)j*K|QhsK6DZ*`zhS>0u`3u$Sz`*3rf@!wr7l6Z*boVY&Iu99RGT{_K?% zyt6fN8S{AhH8)U#GRfmH-}~NVHTI4}@qW^)I{C$kB=%XxtDgRyYwmb2-cQY!EA8R7 zbD@%n`#?5HYT9$XlE|BFQ`Rr`F|hZ#v@f1>3uyF(|yXqM@x18ehVYL>1O|w z(Jb3+tTuOYn*{-G7L#8!*|H}2BdV9iY|R^_{(d%n3O^0Jw>BC<1k?A2|3~;~bl_)UZ@Sq}#E&B1tl@F+vv}WV{D{0Z-_3#=!bBj_ z11@T#dT}TZe5WH6OGBWJ3fA^x zJEwkM&t6ob>TYz@Ep`RfL}GHfZaJs237lMJPfX9Jum>xd;Z}d=R`)8Bh(LEg9zqn{|q)bG37O0vQUPAYvd8uep zJYsDN)Y>1h0qjZ-Z;U8@K#WN?v%-hn0DSQssv1?0E|?-V|1gkZV0YXV{|BpGyhX4J zjvMhk1U=rygFabx+p{toKAvt@R=lo7KSFc#W$snf=#u{uqjPkR((m4J$%f`v-K?7o zxGl^oq%Z?4QJNTj7xwqaB2lCUiW#H=9~@G32&>4(K^9@Yo>8MJ#{6`2#i&YZZX8>k z8Uf7Qxq}kR=1Di?vU|3I!zx)O-bbB|oRE^O9{elaos3I9rgwN3KJ#;%`-)ouxNinK z)}n}BERF?>Z2aDFTD;G^OxS9 zLg?aeGJOidoz3PST{dYb1sqxv%c$nBhozY9(_uNhz;yIiAXHtE!7s)lZ0I!6>n2)gxO-LvIbtcadNTx8Tk0F=XA- z_cutEYW2&6&GH}10CH#C5^My}aVCPHM9vW5kzdd8e8L-`| z@@t%x|KHJqHDGtBsy{d?GzbSt&}vAGH#=S24-$?CT$)FZn1g?*x;?xWhW% z&hpxjo8>i}p`yC-aG71MwgZ)e%m<6z*1I_Sg!MXJ{*_+F*=LLwDpJGuN{>lG5w(S$ z1=lS6UK}oFO@UzeXe#s{a<1Rt=px2%d@}DUjdn;Lunno^DxMKzQa7zoU(q6MUYEmn z&YPtSR4o^QEutfe&)M>CA2rtUpw+KO!Sj+4NW^QOp>;9V#BMD0B&A$N>V1!*B!?)8 z)5QIo``)CLw;-@@3;aOve_X`m#=R^(VT9PLH#bqSTdddAVy=g^=!Ssf&=qfvR0o0` z?}}7JBAnt+aZ3d{^orCVPE#GO%lwwb5*21vg+Y(i)T;M+@;-6NL08(M`A=e7VV3kf zS_E5za_Xkztjp|FrDN-r0&be|gyD_KUDvOeoTIUf@`-m^*}=W?*k2^?a;G8t3JlDx zfpVM}Bz}1hi2Rj}Jp-J_2sl{)CIqMU_~AhWPkI zxzR4?szM&U+i1@f9u>I;Yc z2O`^-rq(}lnH;fqj8JB;%{a+sqbS@gAd=}o(bC;cRE%L%=Efo3ui=4DZL%8+jiy<1 z@e#K7N_^X(I@?&O&Nf!_v9Z=bz`YG&uz*7CxvWU1I;~$2&^8@NocmIaD?IWIEdsqF zJaUWJjl&}gLf3!`s3-<)xcA6mDE zYN_bd_vx?cn?HE6p|5gLX@6C1h8ZK@C2lOY_ay_AJ23PNO1Tf4v4`@^&DpvF@ z)Kk@rpMTwI_11a$&1 z^Zegd56_?Ne{{Q&e^&945*@gEA$`8@DcnDmzJC<=4>->M(LKlhw9fzGzDeCzi|ba| z&xz4po|3HsJU9;z&UHNa3?5{sYBtiNeZPgYUumavrFVpWT*6#}Fx0mR*7mXK_1} zH3G%v{#jO!SVN!)hiGC*BnjUE#^S-B(#)-D3=jJ5n3@VipQd7jPt{q8IZj=UPE2LQ zFCn@~W(mbaj*c+j`VfnBT>ue>iU`h_SJSJCW8PB}FzGHLZoS4`B%HX7K zF4@cX9=hM2?7$Ozl}uQ_CjB+})A7pD^ZWSy%eYG(kl)Ft)7D_i?DYH!s`^TS)lhC zXoso~Z*A@3^RK>jy;JzWyY1g_+K!L+Z}^?lzkvYxbj}Sm^`GXm@w^bm0v@ZWcXoeV zUj+A`MFi(C=eC!C!O@G8Pg~nU|6@;q-;6js1xRrHj_ecq*19Ss#ew->^yHqm*FPsCb@d-|Uc4GmjcAGG;f)9{SZ#gDL z9@GaD2ajN248aYJwnB@-oFL?$t$?q~s9A&&sKmg|ZpJP(BCYYhG@QPTM|krUndBti zsqCj-x5?w8xjJ)!+VPy(NV$mRw`zqVxyN$+*5F`L-@b zgmqq*&t;yDM&Cwm0tB3>R5C?*bU;ZJIDiz;BCz{)S2eIXUg#X-O79C;&(i{iy`_oZ3-)fNBl4i3b|(?C zkasg#c9}Gy^KRxwmu~H5hB9|Ezc4&{H?!nVJVlx^cQcP4RJ)mwQFzv7$S8CJGRa)n3ME^IoPrUvQ|HmLAe2{MHj{9uB-PLufC#_&jYnj(bnSaZW#O zFXI!dJ`rUU${T^oC0EPQ*>c%Zn$MzQ853j!&#V9!*Ku07fr>~_O$f4isxm&h34yIi z4H4(JOKk5NPOY1{MT;T7 z{iK5ggu>PGKaV)_QOpm_FGYeew^^}Sf2q}@Z=3WNHgBqUYJ?u6y<^U`hXreB5&3`SJdJe~VA^S=$I# z#P_g0eV@suj;A|wT(U!L?E}4nEgu%V>_T_!vfHDV>~wybRPrWQ@-0<~oX6;=7ya+@ zi)+#^Yb><)0-H?2Z%iEuazwfFCIJeiIP`g`b!*v~6iJQzJb z1(5W;1iLT1)sORX@{i-xCf}4B`iQB|{>-r-GunT3T5aFo_SOXo_HCiQ+*li*R^Rs~ z-3Rt)!`7yc}? z<{&jXtkeaG#R-{pz!9WIWa5JP%#5u|I=g7hyRu>@(Y9sY0# z_4!|dit>(H;9UztUp(r2}jRSS{a&*x;gUO31fDa>;F~B2_0ZK63s% zahJ?rX|SUZ<@%&Ol zcl67?iN#btxd+eXxAoR^tIzwh`Ed_TeMiB4J;^8WHu-Y8XmXjtR~kk0N#~#+9f?Y1 ze)4skbh#6cG#Y|P*~2_@C>=hk%)B31O8=+gE#k-=8l$P#%asx zf;tuRiAV@P%omHZc#?0WD~X^SpQr=BciQ#|B}(NdpAq|negDHz_xIAh#7EO#wG0e6 zFIe#?kNH>TX_2@~85sIqqYMoHNt*rTY+yJQ28L5D14CZ_{6O9wnn!d!)xgQ=w1Huo zD&zP<85nxRz>v!ZhVz^T29=_(FZ*eX&PsLNp!<=17vcMTbmfe~iO!3&T*`v*WumHQ z=);w&FJeES9z`dQwja!g{ICE-iJ-swX7dzL(IG+=jI|#qc<{j})xRLaWUviS@D-a3 z_}8SrCVx9#IePvGzlX`7fK3MZ%49%SGo;|jFd58I-3Y(kWFXscD9}Loo5z-dMnXFz z;(9F-c8QswmX@GWciK!)9axaI5lD;=Z({#eF%TdSo+Yu@v&7y&H8zH~Hg!RN@~!*x z<(c+@L(hM_ec<>1-`fX9!EMHQ%V2E3bz66=qBH3s_WUFJR~oCXg_i5kHQK2fKo5GqfCw)!N>Zvp9zt zz~n9z2NIvXK%)JNm*5`-w#eL6Ccc1%9T#Ld;f>U%9Qg$h+@7m%$gIBWd`I zqfC2CUPt}&xPH6S?5g6de?8aVlv)2Rne`){rXVWv+Q_K-eN?}>dBoa(IHtXzOzZ_n zex`r7Iy~Z5CIU7cD67GzFc^f+BeoJ`v%r|}?ra%Y<6=_7>c5^%bnZRtv6{|S9w@guRN(^7~12I7*uJ@!uMwwMH? zhED%^bl1|BXxL{dF-}F@x@x0n@%X#|Kkz-Wqaj@$1i&VRAy%%9s-j8TSxT-75Jo0- zgMbo0|6JC%@uXKO0Phw1H?3b^JNEhoGl{; zo2lYEtRG{lxqY5+4q0WK4n zgqFpp)Ut4{2gDLLcJLXSF!;0S%YzoP{%@s+5w3L5ceW(RYpcIpa*aSlwhaN!csylS zAfg&}uuV;uGcPps9NHR`Mx{B`^jitT*%9l>L0de*0}@a69DJR7w+C0fyRFr!TCCb+ z>hdm!KJ8=bN5+0^{m6m$GUyHHE3#<{ef2B)TF>+qY6Z~OA3~{EY(l~XZT}t)`E=&S z8kq(b8vP}4C>AP@Y9U^-Gs?^9k3KDsQ7Uzz~*t1(`U zS0M9Yb+J10Fw;{gc~%IdwSjx#Do_H z7GvKR+PNgnYytl*VrOX%q&FFBf;}Z+yYLk>o@L(Cj!sn*#qOJh?`9RSjavgOg&Wz% z%@^^msU(XjSAHLw%!+d z+SS`_w9Qay{;JxCg1GE`zQ^j_eekcne~it5d(n$9&ZHM*y)W{(k6^UyPqask`T5w4 z0xqz-=lR}09ef@S{M614>hg>_s;{&61$iI4Uc8>3m)nCos19y2c6~7ci(YZZo~Mpo z5ATud@l8SB_k6J?pUe~y&g%e8o@g1hBuDG`yVt!ld?0e`AuaTn8xR)QewzT-ce8Ie zYy-a?5w@^(taOXvA?CQRRT(ouNl~F7IUvGA(2E4ogPjgIzlj;S9=<_0FZz zAx7S#W4+eBr&RoqrKiL?oZcngB<^yS%Ms>iQl8P(+a7CZh(E&zHT^FI(zK;1CMw}?q>Z^hW^K5zMPX2!CMbhvk#oVSVN`|bhnL`68Kl5u0HF||0n&sbE}GT+!KLkcE6i@rN_zb_+ZhSkp^ z-9Xo$AE_>4X0RG&kC1EST=2%~967YSwM;%R=^QNCQtC#UL3!pNz`$=b4X zOzf0=PUR=74_x#?C6n&Oal|^zz^7$T3~=b0-wmXK5&er6@3BsA%j9F7J}va$E~q+6 z%|*JqKNWFzwK2hKx*shH{J^X&HYWH+m~5VCCLU(3p7@gt&v*?pwx%=K4|ONU$qubU z%Ub{<>pm#kCnjk@M5^7iG9nY`x;QeKu2W-t)K4I)Ei-Q{cK4+EVSc9kXjMCsCN7YuC8^5x$KZ?trO!}_NKafmG8RM z9Zvj>6GlA#-U*3?08rQ#__UumG?gsIEMpo_>auG`+6lINIhL5p`_WIhoqd5Zkx7H# zXAihQ25YJFL$sHoJcP#Dn;wfpky-in!Ue%WPs{I2h793w;ul1}i8qhFK&TbTj0GF| z#SoS2usWf6Wi?C27-de_M_k&mVBz_J9TR=3_2-n<(%8?@hPhi_Kf5Cou~AzjWXDE> z;Z&|W)hj%etSrN7&rqBqII+SF-tHYc7s&$*e(OT0(lC21B*$3e28WfxWLT$XKDX{3 zNaMfQUzwqgYIr5)Mz;MGA>Wk$aoIZ9wEfk_)t8Oo^v8z72uoD6z-HV2>a$r6`zugy zvlfDh?$<*9bh|hIF%0E|bguG_4K7Difk zbL}A)FRk&?d7_|!%aG~3JmyjIOhIfSn03+r=j%X%-3CWqP1&39rzWQv4DSy3u`!KD zC6~qAvXz=^QB|bIH5e=Gj7{*xnmbj6xu{SoDBowSMHQ_icWd*HsRX>+YX;J_PQomW#fb zV|p9E=k^!L>4f@zB7JXtDcvO+n)VK@vNMy(Vfjmj#rwF$&1Xvzl!Ge!HPv7|2t+fH z?a<92lt9=knOkA+4#f1>tbW_oFQAQg6D0d2T^3D{1eA2?_e%~+6g;GU-*idD4+%#a zWqZT5FK`Le_*XfGicS6ES8LS)25!#Vm+DgU5QyhWly0pW}y*6ew76lVE@vSnEeO|ciO72 zdeX%Mnxp7_9;Tk649Zm!m*W6oL5E9V*d@oA?AwI1hH1~F8GztPH_;fnAQo*ZShT6V z*-ZpE;NVHC zsqPS(1A{bECwsp5)+lq=7YksN6%McSA#J^U-hgdSC$nuTgiw<%2(fex_VG~q7|t68*T9Cr$?7(w}?|mpKp4(mQ>=u~VF_n-%Wl^QqQ{P0G2?4kWEx zM1cUqpOgv#ikb5uA;65}B2;Q4WWLZ;!_L?t=qY_mPWM{h#PQdGa_$9NUZ#sXa)_a* z(PbSL-9#eDw9yI;B!|S46Z_U?*s~JNZDgC)xq6cUU!{QVHz(T+#Mxfq-cM%9Y(>Pf z2?y6mYa?445f4-CqaPR6kl;xPZ$^^AkyzsN; zPwf4Wf=@S?IH0+C$>gXR3WHnaGKu}KCvt9i?3OfEGh>ltqzIwbus zB?j!royO!cV=_3#Bie)1-N3oV!8R7%i3kOEz`P><_(eIcDI~F@ZF`z8visk9uJQ8F z4;DE-U}&{LiBS1`BoNPASjhYf3U_%_`KeT%06nfXo|fhihdC|H-OqQnG}l6R$0qwd zDzM)w{$@9UyL?}8z(W%d?hbs)_~X!S{ry7emOX~gV<&cR$5aO6p33bDKQ(+PPs=y4 z$qleBscge`sD)r+hbbm$`75&5$W-)ZH~U2$aIj;iHk6re*164ApYnwS-$SbiS=5K53+&=exoeqaz0YzHG?9z&!Nu%jYI;YR(&>& zYmNak239thVzg5g@m_{G5Mo(M#1f~f!P$D%VDPVlDe4Bct&&Q&<{(EnT@ab5(pFu} z7$?{W8l{EL!;@7?qBxu62!14S z3Bjr1qD49KAWZ?zGuah8{k4=kO_hWFNUL7q)>cA%ESbwb5IRj#6;TLUM`boWHF`>R zMZBFje|ONcvetJTHf1}Qraf!#4EJO#J3fznoR{4ZEj&>zyOxP2pPAJgC&0B@4_QzQ z*NaNdB~8c9fp+{lpS5R@(Z-(=bxN%}@hD@_(rB`@2eE96)v_Hzj~y%Wyz?_x@fiYL z?|2ycu4o6}N{f|Rv@;}r%EODblospXWU*d}#d>9L_N3U;vWfaDmw(vI$2J@#ou(E*^ojt~gI7 z1zWP9UKf$~NT4$hbbWDwqv$uND80k;MT*|bvc)R1E&)XvMuop1)mxv#*lFh;`hKix zo>!+eZDhidC4_~OZ!=-hM<6T?d3WjI!m%#sOUI4HLGBzv7GkT*@N6Q?lFP&cz?&*l zc|QwF6C30}HtuD4$(@}lVBTv>NzB;3Z2rg=epourFq%lSkA*|n$L&i8Seg>&L~YfP zY=&Kxxk4HV=vC$I=6!JiQ9jqU^soRp*IcSV?K7A1JV~zNSK zs%3hHe@5BTZGeyDLn7Xq+hz{a__ICUAGOOMsxqp+<4FK0d?c_@eHL6$krh}U9H14t zm4IfvP5p0X`A!cG5}Esvd+2$K{b3Zk29LIeh)Ctz$Vb`TQm7gaZUU6t_PZa0x=bM$ zRbVzJ_;3)}tovf_zKap7=J^$zSgE*Y>^wh=GW-EkjyVSeDf2bLh7zIOtLGvZ`VUKF5+%;qHo+ zx5qpj-PB7yNF3SJ>-p-u#utC81ZOo`=$ly?{4)_5UL;gC2Fyk+Fp$gF?Epw(spC^& z0poWS;G|j&`m~{gZgt6^ry3_QBdc0PVdR{H(1NTqqTg+^YUg=Um`Vh?N(*%kq`oAO zRaLGAifADg;L;q&Q2dJZP|F++r#K>}xj4g`m0mAwt@>OT$xU3Vr+G&!)*AH^s z5q#L7`lr74(*#Ks!A%%M7S|%$PQn}18=rUlOpo7OB* zqv4umL-7D1p_1m)&o%roPt7NyqR01tGAD%&^@RS>U4r19yj98x(l!aC;*atKuaOC+ zMa)&^W=wEndV+s?mSciT+?f-+>;Zltb~x6z23RN0od|+fW>U8Bg(ru~tFeih`Q7H9 zPn334x|kXgweO#0Q-K&NvtB9E34_No2e(Ov2#t~`cN!M*8 zAgDER;)7!A2LibYnZ7ELefz#6bjH(H0y^`p<&tHuHyd=OuU;?io68n=WgM@!EWKr& z$&KEBf|U_v);DDL3Z78O!#n=US;iakE!T-un`rNQc6&_M-dje4OSR>oYZoO|XgQTj z?p$uAiZe0UJIPXj(t1K#KJSzR|Cb&b-aHi@DD9ia~o7{+gCb<x@?+LX z#tIeJ)@E9QDW(M*S1Ze}xyCr1*p{!d{=ZXO^|T8{l;-`+pR^KxQlI(|{7EpypRk#X zGUFirq&IGKT9;to391#o02DbRcw^9B)2H&$QK7@fd(PXz*@a@gQfCa|t6}Hr_whvq zJ%ACNzt0c5SlglbBJT3fFDr1@=Qnp+#$Sr*go^UO?G-E$6?t?v5K_Ap&sG_KEj*lKd zvt1Nx@&()Tu59VCk+kKz!ENJ=SB<0B-)On|Xy|SMta(2w|G-l(nnnhp^#f1`j{?^S z$8A&&$1201cw400^81Apn8c9GVz?SjKdq;vVLAf~#%1+?QYGAn0r9I=S zx>*bToo=f9fti?Ss1@Y10INfis~?up&N8oY1^+UrEoY~RYe0LOgwu7mS9UJSGA6l% zr5vgwiQMicG%aJ!VVoYnAe5s7dcBzNeDsovQZ4jL7ZdY_@+0MpZrp?NWBg67@^zvP zK?H2rxWLaA#J){;`E$kBMTu}&NXqY$`XND|hAM2J8|e2g{@kgp_xM#jCPaI>8wRxI z-7*{tc37)9v{T|06$Z-sY?3wA-pD*RhH+ysHH;z{CtOaimsAjA`lTd?b;3V--&B4q zmc1Hc%>$Tca|v1if`;1{pKm=s$U9E~v?!Cfcx|vNuks1jajyKGFjYnNb_4w64d?Eq z%t#l=7P=+Ylh{URJi~ziZLwhVT>ap3c~(2tjFKe%%-B$g68P zY~Fjw#U%bhW_&X3n}(IYlghvOvC4xa8$H)s-95?VwdL(t(thf4<#}1cC6%THmj2Q9Y&R7fq;Xea&gM+t7vXS86T=BOE4t`S$ z@s`vKyO{~OdF32u5IUAk1rwM+9}yeP;udSbtN9B zS{G&W^{Gu)4EgNTAb*AluyD4$+H}T`Lq{M2oN-41e+fH{>`fSy(XH^CJ5ra3r}IA) z@0*{)qfCa^W*N{4-4MUf_$$S3SNK@q zO1hUr*67p;j%ApRbYL6A%q&iYB53ij8)P0kw&fGF3*g{nbA_BU-M6t(rd;gpj;ksfz1^XiF5-z{=aQ#^3$E(INKi)K!dG4CA z%u+UvWq!PFEOV9(xZ9xnai^Sz{>z0h-*#;o;$;NvJRLxY(X2CAGI%$eQ@ zQCAiRv{ij>j#Y7ghO+X5g@LM+vNDiDAQX%jUf>pyjJTc0p-LK;wgY@fEPmgo-fx;u z$YLF$2b=D})g!oCgR7t5>KC|zf{Lo;&o@4)R;-|&jdws3>rIII_84<*D?rt$HK z50u)ZeECNgiO?dpP=eu2&hraGOl=eI(scDC$4W^+hOLG%b#T0jJy$&Cb5AvVbw$c`m zfO0#q8hFFU9j^^$1aNmR-}Uib%e<6-#mtm{MU@$pe zUvh@>7a_tfaR}AX9L?Ts*~A|I!*l21t8g$yZ7lvJ;d^q5o+Rv>Qk>+_tRISaY;V7u zjn$B~Zip&t8W7&Pjb1$J4SWf{p0!?c)T2d#F=lnKQR}nnh~hlz*TNC1>#-#~V{Gn9 zXh&~9kGH;-8y?LI>^7@Q6CJcuT)>sJEO^vMYz*jhb*VW;cUb$VCbSS6GjlTzb3@E% zYWA$Jb6ce*%|krxzX2|fdSL#r*x_Y@{`?Fiw^~oEi%F;t2$i!s{_d3-$g|^7MQXl$ zC^Zd4OV(>L1LeucTozrt!JVGqcAkNwSvi>IMV8FFbtZZw>#6>0gVxOqQ>YL9*01r3 zSB}wN(rt9OcWXuzAyIZ)PtuS3eGat!s6TL_IincS{JPUaIu1zYX`#Q!fGxzoQ1E_D z;B6ryV5I)+K`VP;h<-@yIa2e2_? z-2cTwX%8nVQ|{cUY9wxVQKh*OmBecH9*w!}gmz)#c3s-NuqB}v{k-qXn|sINO*jYR z+G3kYV=C;{-i`l_GYJN_wJLLAC0mH!in)^KZKugL)+M{#?ZJLmqE^|1@_1t29{!{{ z?Vgh2p`5{WqzZE_lhAH=du7k!Ehw308lHJ8LdTEiHiGykcXCHcP4O1lSoW1MdB%`5zX4W$i#e%sy))BZ zBUZOJ&50eyz=vh~9feha=)FjG3tJsdcH1s>`-oPQk>HuHtLRUl3h}OcFnFU=3v*mO z@#H`*A+hu}Zmcue0N-SH3N3`x@YA#q+&2&vC-4Q6#Jo+=K2ntxT6jOM8kzemW!*Uh zt9(7)HcRs09#+6+#q5K)GdbfYY-=W=$NjSxo!K^<-{QIL&-bnok01Z&E*9c66aELL zH04C`I^QXoIlQ0mZ1!+F-@U2so*h&U7EdWL%CPgvZt{xtaD#OgNcMBQ4gGjfc~H=x zO;{qwPu+|pt!eov^X);rh1&;LxpYsvl&BM*92R#o>dwmKoW7EtTe4 zW?G3PejlCK%T~{E3?UKF4fVtbwYWy`#8~-3o*0X~Rd+4=Vs+)og`Xc{e=?Fk zNnj6rN#2C25V=Y}%%>#xeaVvsFFX$Fw$rQkR6G1T?#Ptq#U80Si}9WfEjH_cEIx)T z6LTPKmC8(18a@KG-=Zqx?F@g~{7AJY*u{(lQJHyA&rF8yJ~x&V+zBlt%bm9eT&}4t z-BcpPI%{QAo5e=8Ew@m!%kexJ__7*aDGP-8YM;bQMSquMsbvt-TeF0u{r58Vg(w>j z-!zSBUYhbR-G<@GelS-V-K#hlPVf8{sDb1BdObcN z(vrm#9s3!my#V+L+!3|G4^bODe40rYOOYgOg^!stpz259RDa7Da|&EYLa%_L23hbT z>bBc0>Zp}(-~y-K$K7_YSR$w%juCQ&7?nf9o@?IE#ByKYo8|2y+!#2c0R)=OHryZI z2_$XFJ-)LJm4t7>*R=>I)KtPuX+4#!^_A=*PLeTB+&AJ6ws0#=?ph#Vv%8ixn2{gW zA>I-Sj3u$aydOPhHQkMFHj|tQhIVFec7JuI|4bu^7>y)qG|=x%sLDwuS_!{K+JINc zq!iHQO1aEer-*(*HWkg*8y|g}?Qrw1!{O#E0}eN}84fp6tL=0n6_<3=*1cI;$Th3$ z)R{f-BC3#~|L%b#4^VuF;tRqq9J$qpj|IwXi9c|m!XSJkp?y+`u;R7aPRB;Jew2OBxY6OOlF#MH{*a{@t&IYUNF{ z^G&m0zEwT|@1t@kQ&Kv_f7-whlAQ|{QW+C0Zec^5MjfGvs$fz8n8KLK@hL+q>QY3* z2{&jFcce5wckuMJd==uB7^)#@JuK9ObLC@ijv5g0hB2cK(qh2#A0GK=gBTVyXN??U z3I0057EAPA1{v+{KO^i++&AKePZ3oApM4w^G1# zN2*+jtkoq0l>>`UgpX*;?}S01S1Ugd@opa?oGE7@q)%-$pWvxV#h3FQG~xDA`07x9 zpnCWNS;j~42ZD2>(;ujE0Ny~Sgaji>Rk5@h@s_}9KI6RDdr<7>X@h@{$X)o)>MQr3 zc*w|VByzL#yPxgrbN2R!_eBaxC`MqBSk2(k*r;9=%`OZDns)E4@}fUhn-T;Wy4t1iWQz<_o@@VVO~cZ4S~8A>;TO#4o>lVOyqC$ z#{Z4uP$L|N5Xw|YwYBi_Ju84Phq6+|UtV*V*Bl*A7>kX#CUI+EMZk zMximYw4}q`kFYmWiw)sk8&byz%|cM?9ux$?yLiGPBF`cS?0;(dkH%aIlUfSyI*Zpv z&53@F%_!M4J%O|Fu}IJgf!x+6(daiC53nle$pO~;Hi|CLIzRK|gx!A57Bbjq{EWW< z^f0jAw__7hmYlGzhjOpL7fq{trFFU)M*oR! zMilqO5p1b7gjqD+V&99$;xzC3?|jz1e?foZN%!76|KQ%cpnphpi=TAAQu)fl$18hV zzZLB8RPNOxP(hi0;8negQI_LRdH*;;=)vCB_hO@r?vnmk;SO5FvF07V^y)7Wmfveg zaNUgldH2yXedPKQznAZ=A0{*0NUW^nQ2ShwA4=tLn9mtA4}e?c5W#7X zX?Xb1_ZO_CJ_Ri`^DMCG2=C^ci+;&Rm1Z1QE_Dq(15EATzY(PCNBKlj&H3r5wU`$}BSh@`WWr-!&2GN)Z!TkUv@_6qHMA;%UE?JxZ zhkAlgwDmlqvfzL_V}Ds>rfT>;)lf-=wa_nRk0~3&+I%g%jMlQszZ;nkyO)MoDvL1K zxq0*pcV;*n%z>$q2Ue^27X07)YVsmdgCW-I^U_ep$sw~@ReHSs@1sz-VXN{XU;wu2 z-qw{YGGXe>?7>Ty3U3yxPB(h>0NB`WGHz{H+4zTVS zYTvqO;KS`(Z+5;P!M=5p<2~%5piLh>_{ijtxaM*hwIQA|LXp3zsf2D8lS5(3qRM2LHRl$+hpaREA;Czk2*4FXA0)3$;~5K3!Sxz*F})wej>!nt*tD` zQdI15th-erplRVVgfp)aPi7`jA$?AopzslxO;|#-0_c7m799K2&*uZf-$A-OKsz6- z%qn1Imbjf!Xm=!~zJ|!WS}xfpI<*{WCZ2nPm*YGeQRbu(1(keJs-w1<^RHqjpjrH|^$^t|fUwiRYD8eAg9<%o}Mv-fm;$JmaZjT!J0oGUK=;4?+NiX=CH6<+djLCTWvNYmsH-Ba z4rS<*C+eYgms&zU8DW=SmfGc)rFMB)bZI9=h}x~EczXP5Abl4zc4BaBjJ$v^v(j!* z{=RCTJzugsfT!^}2i1IqPC!q51Us~CU#Pn3U;(%z87u%j9%t=W^UI6biF)-Phw&)RYHVO*zC~n%SCr+hsVgmyXr2J3;ZH&k22uxqII1+0(O4Y?|Nb z+1=A++fBb|$0CPq^RHq_l|Mx6@g=^Qgs8aZr^g3_omh&qjJ%Izs()8whN=GPY^vYk zLI^M#UwJ!Q>kEZ$*y1JPZ)7AeXQTaA9Z9hoHjcvUfSzlEz^B43d_;Tw$)~oSS(9O} z?|@B7H-_zQH$3I-77T4f|3}Zt+jn{}cc|Yw9n=oTYKf;DhWtOCk!i?(K~fp=BY8zE zyPyWitQhG31?1T2a;4g(PYUXA0(=gx&>jr=J@OKk{B=~}%KHXCz>L3by3>q*bF3$^ z{df;e((zX*NB}P7VZ%WO4h=^)TRgE+up%S}T66yt$P2A}HeAe5> zhvbbAOAg5uG|e^U8XdGsvNUL+tFls&vC_g&=n>S^gJZRW{3uIXiC~#2)$bT{0vk^L zT~u#4-CzPJHm+Eb@kys#c9wa5r5;Z`=}I3BBe^tTW(^iqMHUxwTGtiTIIZjGrHTHl z`b5j@jYpgnBHo6{XA)Xy!=MTX<%<^AjAT1#>&I1j4lv0Q9Aaadcll`e90pV=1qE(K zT8G`3vOkD7opjlTz!f!Y(;Lu&{hm!Oako>SGNj`Qt;4_zmwn=BG?_I5@cv zT`S+HDcb6sqI88gX-)y24~63Es6wZ`L#p!qv@cm(P7OUwm_NZ`9qi>DT-gWnU7c-d z8Sof8(?<^fIK?{g8tZSUus88sN*|D$?ogiNq$)YxXXUEn35XnbcGc^+ z_c)s7BaC25VUU+n7-Srpq!tu&6+SCGkV5nA1VgqnOM~^r;b66XeljD!8^JjDfIpw4 zB`@2nEj@h7#q^BXoOK*)mnaxd>;?|GON5L!i6GON%^V_??Ng`J6K%K^)c@?u+&p7^ zB9&`a*Bcr6r*?UG*fps~>}8O4=J1uNVwe|+RubY;4); zES^XJZ3^~(OQQWcOsLmPQYO@ECppRBI5no=wsFiNTz@0&BHs_(8SJ0e(&0G2cl1Yh z_NQ`qf0lg3)pAcvLIwF_1ynOa<#*vp&)6p>vBOhQ;`bRtziNs=Cb5M#^RZF8*fP0) zRNZq@Idtoq@*~%lCueRU@yA7ibro?QZAr0NXri^z;AL9b=;iIFku4_d%+bw{v;zeB zx)IW0^YO?w+=g`Ql#lF^YplpeUXW`LhDW;P`Vg*Pl54EgM|$KM1Vei!yN~XchjeVl z5vkmP?rXe!i=%Rc{Hb5M4ZRk7fn$V2=yOD@0ybeN<_dmPexx^U$dP{efh~X-L^ir( zvt`p*fVIdOYRqMjVqy8SkwGDKnai+1iI-f%r_i((#R!4$g2Z0?Vx4_~@EK6>MWcoBL)qTHuboKo^lU`kPry zWDuy2&u@wRY@_S8qhB3^?{*2xi=B)BQsl*fULSam09%AK1AZ&Ss-m7(uRWxqU+2j>+cR4eIu*Idn_?HqSOE`^+Cf%8PiHbR6;?sL9Kv z|M`7m^RCFvBN`Yx)g75q0-^j~%|DnguaAO-hLhU?yNDC)PzI^obz*tjETR3BG z6Utv=m#^XSn^7*Pg>O5Zek%fEz0&C5KiBhohmU9>=tW_U&|8~>C`l*BXscShaGHxv zVj1FX+i9+P6eiz#4*;C(H#!aJ0|$)?o*ZTLEXrm#wo{wpnO}wwco&|^G8mjOOWJ;^+XaSt`y{3vAQ9Sk6xR z01e${20(f%st1r#@$*uRJ(#%9A>&)kLylH18FH@;xj%Qv{l!D>VPNRIZy$31h;1dP z2m_%g!)Lb^`n|KCTKIEg_-%Sn@I^oD5m;WAl>%*KgUC;|1zKv^DgYi9@Y`-)UPbqx zdq$8*gyO9i*5*pGVU~(91LJf>pj16^H}~g|>Mfr%rhEH>bcm;@DGw%ci1jUGY6FwE z#2E8>FJ6QM4?q|ytM!GJDTKJPy0kTB3W2DsE?&6T6hd5CUDmqYtS&O^N{Ml51I>~& zg901HY@%U;5KBT0r3x89v(gB`F$$F&^8+@pP=uEn0<{EOU(Iq3GCUu*vi0zauQzYX zWBDHAIK$%{hqeOzG7T~DMntv=ngTT$@v+Cn9Pmt-@+>*UN36}}gc?H#r}g{^HgtY8 z^Q%{m$yW(_Yh8JYi$pVvY>*=1QhIwp=ttjXE@bu7S5d+tm$mdH9|9->mon%-Lmn&G zYb*RozE|+qB4u)~=0ICfgnOC?e<=@z?t(w8$kIYShGqE?=B0~kg?$=^hDEY(FoMX; zQC+}4!)7iKp`z5@X6_q}y^p`$@YomZ~z1kxPK!c9@pcI2B+%!4`rQ=}GrU zM_sA%j2+i|IRqWCt|Y|5`rt8%;v2ko41PDwV9jD)9>5S@XV7VA<*sr6a-4V&j`fW zh^4J;h349;EXC!63eEN?Gka)G!ZstLh5nl=IYu9OweZoC4lq9V9f4e4^me%ba{F(+2>Yc04KG4i*yl+wU z#Dq+dlb9zJTfME_1OiLBQT zxfuxFt?$wOmeVKaLWvZAns_#0Rmu-A2F$hvt#c-S2&KSsC-hm9T7@`S?{JAl0UM2TZeHS^@MDROCl4b8r2Qr zpxS;gnPsEoTK+Ue2y!uN?M6qSoO=Bw?yGaKG{#)7%O%Nz{3=yY;9+w@UgAOeKrm>_ z4^_9hPRY5Dn>k>g0@g-zGV1^w3h!+mg;u^a)V%4{Q{;9qU&PO1w56Z|U_#m+M0L$d z8Re={Q?^?^uV*-;%1ysTIYp~ie=OidqiPP&oBKZmc<27_fVXw80$%hLy4dojYE3}- z4(=RX_GJ)w8KrYmQA=V>P;Xe7}VB!dKsVi@9R4t zn>xH%x*AwOl}F+@t&XC_OrTN(I5_!W2}ezd5=jG ziRka@6cV)6rLfIv=;w+-Lmli7y=}B6y~_r+Iq$N@wTWo0h~MsAHmwz{fSN~}#5zbW zQ_$yo_BcsyV^4>>yJwq|$az8SDqS+Tvr{Xw`3AXBW z9xe0$Ix)@(DEeGjMF<~WES1q_>WuNVeFl?7Q&8b2fzvgH4%(j#JH z< zNGmp@IWDft7rk0_*%WJ}_!XBy-P+PZMHO0nefXdvH5}!XPhs&YGHEt_oBT0E|A0QLU)QlP^=TH&vufF}DtWMUH`L_+S+Y{MgJv z^}1eim}T}AQA@arVOcNnMXw{Bqy3EuyEhW=XDYWYv1jTNNw;5SoOR*rbZEiNTIWBk5*sDkYZ`ro&aA|y(Np-h^e>90%hv4TqZ7%4nS z2G$zMK^WrfZ;@6{vho#e1xCJ_;DC?DH|tf4ixD3q?Z=b627Wf)(E+_;@1Pd?6&0^W zxkU$-4x*2N2HN~8qPJ4dq|Y_VNKbk7O!$u+f@efxxccmlHxAuzf`qvqG2)pvelvGe ziy$8p^_q__l3M~-@E+t#GYB>(#oesQm^*@M1sdIgj-jx0E?>?**I%0BQWc}G5+=;% z&alTiI|VMTf=G~mytdNK!gV!IhGK|Do(vv}-`XekDoYQuR(l_jP}ah2mPB_OY`^=5 zakrk$x@h&W0mwQX(HKM>&M}hY0UxQamO9o*aeTFO8_L0xkI5;G?N>4vK-)STk}A}# zQK;)zs9U8_H^U1>+-R5e66O`+JQE**rZR1b-l32%eoOiAQzx5{L6yK?w(80lxlmP* znXEo!chnod_Eai-lNKJEOxwnnvtL=;!Ygte>_+)M&i*dvS4$6bD#Z1S?*tOK3K(i_ zuhR?M3~OLG0k6=_TNy8f=NP)l!1*>IP^Hvssc-2vR1VnsBCUE6(rOcpzw?b`a-(?# zAN1tKvcUZ(K7%sq{nzPz^r7_o8i|jGUGkDL4mzF3qX7Rl6^jMwR5MU0d~EUKAE95M zZ@t+YsHI!9XF6|bcn!=7OnbaN@5Blav%yC%+B@FD`+bi0KD@u>>ePMiLAn=ue@*#5 zrkF1Xy})KcU7T$;G@47+$@-nep1wpdQN~VtNume7SRp_DT+?7Ao&!SHL?CL8)O_DH zB%72%dr4Z~Xh={2Vu^xrFJz2ma5gos%oV3-91}72Pef#-&Ae31tMf^it=Ailb-0Zc zvX(%T6>7nTWR1Pvo{*)rfqq)@%XfqJPT1d1^2@*I%k{FXSaFC7-p8Akvm@8K`F8I_ zF8Lmnd_v}AgOsc@-ccoIy7|^o5=EFBDy^KWmoB`4K;&#j>Y(l-nr)-@3{v=jYiiUR z_8&SAwoIkejlY=ndi{BOM)Q3Vyv;lOtPanNtYB9zDsOG4M@{88l5Gy&>2s@TU|LJ7 zQTqurLu;hVjl9g=Smxbp2f@GM1#(l1U(+lE`44vnMvL6rtj{7z{`BBxo-1O-uJW-j z&MdbU0?VSUyj?w@cMWv8Y1Ui7ik}`wwwN{gDXQg4>IkyN)M(3LX`kt@S+Cbr*3;{H z-M?@&^=}R+gGxoV@-65a z+rYOyW1H!>C%cLMf}C9Wg&YVvcWjE%LI)Fc2O6*$p+H0oD2WFOC`Hg6nA>d^WAla9 z)6E@h7i4oVpSBoITV0ihhF?{+c;e*B0c{lsFh`InPnI7e^qNhpjfWD@OSQ<4lw%Vk zXx_wNJ2J79R=(Bxwl$xPJ0@e&6xZU|DAA8hDrY^6^EE-G-C3C8XVX)6r>GF|74Z;5 z`d@y;K4B1s9tj3i5t*ClbM{WP`SYSfQ9Ym;YnQ1S!iCUqYDx&DG~>Hssn5hNeO@Hg zj)=CRcM4C|C_Fiv0JrjCsB3{Mz_AeH3+p6^4{!LWxKfHR^fp4wA{6M$o}&<9!o`9J zj036pR}()E6Q4pbd}s#rdFhY6|NdjbQ1xZA^UFP-cYFzzEA)M-8lo>MNPhqxR+W4l zJRBu>csk?ZlY|~t{VARee9iVYY=%}S4{y0tv|c1Mjq-lb;i z=_Sr}t*u;%zWiUV?biN}v$lJARV#t$4zI6SAK#q_e2a&R2*Jlf+`k+x)Oa$P)SjWv zD~xT!>Ic@_%E31-%5f=}Q~!CLIC$B5`v4Iz@ulj@TqIF@k^JN$=G0fDX2)Ky!W13(OhnrJZ^+2lTmxc4OG8FJGtc zaltz9l+qrd$t{XxR5@8oC&!;yZZ~z}{UjVF{n1xx9BO7Am}uBuo`i+ZT$nQ=HBkuY zBuc-+InB*Q|53CNqu6xIH|E|>nZ>4L*VTs;G!!yKmCi-m}rJ;bgMq(C; zm5%k5lPt#crzy{KM*#G>EH3+rsbMoVJ1z5gYBa(2(-WN|`D1SOa36X+%tF6}pN2-7E7+7gm0Z3?XJd;c zO5!33<(CZ?(Kge*bQ``Dia!>Qz$YP2%Vz%6#mSDe@av;pt}!e4kroP^P92f=w6Pt? z1x(kEO+BN%?KO@0Kit8?{XsZ8+W>*Hvn?$ z^d*1-8YNT{%A`CFXuLI-mtiR$T|-Zc z2woL@lS_}s2>_wLD?g?HKuc(Y?x!b}YxoC2o-w15cic=|SLnKX7(ZzW5+Sk!?1$15 z|Av@f0g}jij2WY{y1)U=69(X=8}U`pu}EQF;tbS>F1ztu#5U;+>(On(kH@O26`BN3}yl&>y*P7cBz*Qk#> zu2J^5v{kRtVyv}$x8j@0%y@Ij5OsU{J?@4Fl6r=JCA-3cJ_^3GD8@G<@77; zK#p$(f81?pA;ZOe1k7vQJ5#V8{CBXqk_|d+q{FsKO)TDzajB?HjKMI z5`{nY>5oYX9Ta{OpdkYDZpSuF^j?Z&NC}Q^4W;nAaPs-@@IF6_u%3Q%>9(ei7FjScAT$7T4=oQQdX}u2=BU z(Z;#BUc*Z0O~1K{>v6h_~~ML?gu#d~!wn37p-rMRfqn>SYCqET)%;aK^qW`n zR~1{9$XDaqek5O&ZCoc`!Biw4=IZu3vE5LHX;@MmZuo-tm`lPkVKMTnB0qlay%h8G z9HhnawApn^j3fz?7v@}%AkRKKCHdkrX|dTM^o!x-f4-{}1t_%Du}{zzW~9W9R>ybN z%zrsP$z*id%n+^CW;A7Gi#0BD_3c^+F~ZVZeT4_IT3Jzf8;NOGZ-Kz3WVL7!J>58Y zB1;{O_Ji_$G{@lm+t`IDq=PpRiEaZ+X18G8>6bX4d)*?<;bh+W!n+@YSq>)C4h!eP^*pqln21YsG?TD z#i)7?T#RxpSRuJH_+pOGjv9ToEdCmOmaN_yy*c`rTr}Bh&mS$5ud3`dQxR1-Jub?q z{7F#MP2Bg*yll7fk`L&uTX?-U>kHa=vDfQ?jl9wu^?93`r24XGso;F$)=EM3hAq{C z>h*2BHtY4ejl4D+^_oq2(sHS+$5sxR0XY@Xk|n1cFHTSVJtd!JDiHZjQ-$J??$DKOpxKPp#hAZ{AiB97F&w057Oq)u{0G&$-#+Cn6{6IBCa; zdVyKpYOq@@Yl_(|c8yE%A`CF}OTqiuXQ&RYGdKu4el#&yM*Y$L; z2WSzPq;a2Mt^8$hJA`KbvcBpDTPZ(|3iQs^#~oie-evR8Wn!ChxI%c}M^*fB__xm0tKgP(wp|KtTrGD#db$>V#07hjMjHOp4+AZx z)I_SzGTOjrnA7!%l0(4jF{gX?_E&Z;Lda~|cuICeyg5i%((R5Lx9i4?Vxzh&xUF9K z8b=Fw(eB+J=~tEd2fHoj>O#@{3nhlHQ6qXq$F41eGqCOGPdcF%!8Fgc1^F28e+dOs5%MUK9Tp*rf23jJ=X zLu!>l32bLb&2{|sLfKKkz=`7wZ1|AIEMQXg!ELQwoZrS5t!os*!h!y2vX5&c2Kk4r zE6gAhPpa(|Y*vgqBKZo^xd*VnWf=E!+=|+Uk5UXz)6Gdbg5e#H)HXPW@Ar;0{!a_d zaEbbvpT8UbIfo8UtWU>-u@_84&4X0q1glr|Z?g?aRQr2T+N_X?(L&!9H!ELs0YTIH zU4}gv6ER6BK%ekoz9btk|Feb`q$C-Lw-@m63yhtn(!~e#{I+@iF`^EtNhcU+WoZ|~ zXEOs@(re~9k_sTHhBnEqqrJbkPT!~ic3P#50Q{|Hq^#XzF z2+eB1!ie>Lsad-qsJ42a`q@bfR=~qIEE7 z`pVnKk3q#+=x1E#6YARs@zsND%KXzJcT28u&l>JJ zoK!1on_9Ds+9m~QnsfN)l2ffV zL)jh|pADoRy@*Gyj7OXB=+A>{{o_f~Z`pPgb^*n0ELO zStd&O-IjK-vfezBULV0J6PW5-^q+I-1$JuP407hmN5;$JgyE8w+T(*U&Kp>Z! z!Q7VW@c}Hs>KYDK%?t@AMPO!xlOix9LOTTSsQ6v2ejir9zf!-Cs^9he8%(;5r_odP zi`-e=#9gg!_VLdwxtlFNbL3~P{LGV|fcz|wpH}=BCa(q#XJas%6F8q{+`k1gZccQl z9aI(rEp)%jCHDA;vDHYErpOA*MfrOCR!&~fQqD(tjj)QLxA`TfA$dHmjTlo!|rmDNNRoE;g zPWiO-#HI4N&ZQB|!d^h#m_u_okD6>YVEt2DVJ@m+D!0~c=RGmkE^#rUj?+R9yP2*b ze2=-7i5OAG1|eby>=*tsUE4OoRpsrK^KrUaAz^?j=M$|un_wFunU~hjbzt0S>Es`% zMPRnv1NS`aa;0M6XMcigt)g0&|1{NJ%T>lG@p(_Xxf&p`dMDpkbDhm%^*gj8>>Es~)nPPG)df_QG(A@@q`DRu z&32If5x!;nj>-+0QcB8RtJPaOi|H_ODV&@2VF&F!+|Lpx^041=ih+=OS_ z{FRV^QE5ssU1;t&&iA!i@n^Z*N3`$gj5q%Km8X&;HO^}6+FAGjsQPU}RqGR|_n1r! z4}B|UgSNX?fH{FqsFcHEs0x1CN`lJWR0jWqg99u_GkJi0M1Ca2k$}NqWUS|) z?>@5@6YW*i(t65!+RY;dNhAzwilE_o>4iD7Sn)9KZrep=1y={;GbiijgN%Rd<2N zoJz4hz&C0c`v(I|0jo)YC(nkQ4X1c=*{P(p85K;a^!E(Cl$wx4>vN?Wl(Ee-I^ z$H8Y;5;Lwn*onyJcZ&aX6~U#E*%Amr%m+qbHHlW66=+j1-TWly53S?LfcbHaD(_d= zi+1xf=VAGiysql04>d}uXNtk-3b|}BI+U8idWo?apf?{>MxbRS`%SUpDcO%{#1t~Y zK=6&J#c3BKBBkzbp1x_`68ot=TV1EiZ2b@YZt_UYMdr2GCkxY4S3pl9`7`J$-=4%g zdlGZavuQLb!hu-i^&FE9+X1btI&&q) z>b6G+ot}kAppZr?tcimhUMYTTY(}Sxhjm*2fF564G_=bR7QmftDqI0)ia(uv2dV?Um4V6q@J_TAwS~$IZ15Fhu>SJ-8vC^^LOf z^VQ)}{7+O5eGkWsD)&i4C0c*q!?6ML-2IG})Q-CgEb!}i?(7>!s?0a;QCL~PfJt%3 zxr#e>^YDyLu828ky2`Dbmm9d4C{Sg*HQU_{ZW$Z2KprSTh*gT2ORW~Q}{<`V%R$C+1QeHNQx zg(?VYS8s?P3kXfV%o*L79A%`kdvR8zAxT6+UxcX`mQtNnQM3RVCMB;zlpsP(kqLYb1BfNVXBP~?4nt0S;_tb57K_|n5%1;9716`b zxOoZ-98+lgfv2yYv7oR-Vy93mB|kck!*j_fMRyP!v#=!;D(pst^TuAkHMdhhO@PW-nA zfeai4$}RMqm?t(dk9|T5ln3cKeHK86Zw}Ib^#;Q_$DCg5EXZT?nfE;`OFUnVb*Vkp zy);(juFuSWQp3Cyc0z9qv1}*S_57u;UN1yrvFqw$6B~M7r+fWiN9?)=>xRS-`551% zzMojvN7eQ2?wi;kAJZ2XCz8&5XOh3B$!O*+9(+6E)Hc%k_j7pKIWCkdB?e5aH zxPtvRYoULj7Q}V?GV~h#w`-vr`NAK#N@a*Kk$I?<-N3x|8I3O$t@bK22V6O#gqd)t zzE9|gwsJ2%#b;+*$Ulv+wBn`2>fAR5B!NlgyMfV5zCyA9B%4^zka)B&K$G^t@o4|p znEStqM_W&;{C%&s>TP;?YU`_1OXY6kAi{i%773yW9XFRUrO$EVF)ch(%66}DYs>^Nuqu|f!}RSPK$jTp;NGYsa3{q ztJW2CzY|w3>(j|p6

q+W>TVa!Y?>?g&17m@IkNo+Uo2KJT+e{#3IqNhFPc3Has!%2A@a0+epW}_Ky@nDCASU$s_&Ufmka|!Cc z@V*5Ffp^l*D<*V!h0nAm9?TY7jdPTDr;vmn)M(2?5; z?&i4LtOsznPH)D~dVLNa)=D0g8m2K>=8bdB-!Gxw2hIu~2%KrI<(*+)%NOnV;+)o$ zzlZzeEUA`jm-?1&L;GDzzTyhJRQar^11=POE2kT;U7(b^&_U1h$UI;BOP8(OZF!iU zBdH4%FD>^Q&FO-z!egA4F06%brHMvJqJwT$z(ZLF-`xW&VmwSGH|AfX90zObm>5+_ zY}*y-6e_|UY2K5zYZF8{SH~)g99$r8#tu~kOwh3Pg z`*fkozM#UbaKsC(p$FRCeEJW~`YJc;>HQwnS}hBcpZhUM%SWQ;UxOgR(GvPOKvndN zop%i%W)xAU>hJ||MQxYJGxjv5;pJ1ws-Cd{JmvA`#=S$vE73hN&AEyORWMl^n^m9W z2ohCE`x$FmtuH0jz!C`-fTBtYs$xRL3S1d3@#;+0xIp5!^35+-i?Y;%47;`hBo0;S zcI$O$G;8PCZ&^)psLhYVhS#`bZC9vKMz4_z$GkX(p}dovDD&+{T$vX2!@sh&Q1fly zp^B{^P-|`9!_~J3Gh*f9ANT+hfoIizKcn~U;9+nUc`P`9eMXFtr4Q4)gO=nixo4RR zr;d+Om3lnV;`>kIJ(|4Z1IPcs@bPa@v;UKU%=u4snW1duyp|2`vBM2UD>Q=uNnWKJ4NPlV?l(5DBst2dh9ch zk@@_uU>N`Uaq2&Gx%YonKPK&N;2%c`&6T~FuYJ51q6OBs$1l0-RFbQ>V|f1{)f7QN z#VW=EQKXn_`M8<{?c=@2U!}F}%c}F51z8QgV_lv=_OUK^;0wG;m2;6<%kAvAll7eN zxx+T>=(Z5$l1|p9Jjf>m^m$1yf6Q?r?){F(HSF7TJX0D>u)VR%-p}~B1g`ziC9_fm zyrdesogrsjnpPl?iaH`~@zbk<%G!cfzfoIQexR~z;klp>g{JobbY$sCx67QFZ+L%( zFb@T-Z{l65riOy@eZg%-d~VQ{>Bw!~SUAPlx!@A|c(v*Mnc;nC%ALm}wZ6*Ez!)PP zQPfxjk-EUBEwEa_B+krFytq2#YQOZase5 zQSe>kT}FT6x754D8yV~8n)3GNc2VmHN{xdzg*j!JLK66-aJ#YH=n6o=G|nuy@ei$- z)r|BV|3Lnrz>UUh=BL94TK-DXUY<)C*KKv}&&u0^hJYWa;S8hLXz-fTy+(u2obEFk zat+Z$L(e3gPcnC`)ROu?KSU*WZn9^DL!I`-KQGO(RERenAa#xEk5)GR>6f!x=(7>to z#_8n;;&;5w*{Fcu<2GW{#xUDS1=6m7Kl41hhPB;3z*M3o#XrSxZOI8AX;~Qgo|l2! z6Fw5iF}`Slf24BuSC6coIEFck_?vI@M`L#8;1Nq~fT_~D`Z9?E8R(u%f%3H5bZvTvJ_f&J<{8}z ze!xTHWtzo21L;PK!uz!4uen%CJ01Jj>4TA>V(6DG@Ta5Z{3#1(QCT+w3F@Gumec5B%Jfp^6rxEV82&ecF4_`t4D6~^8K^mV{@QrBNTsm zQFD6#ibx1L>~*D174ABPebc0-BD!8#P1j#d(hF@B%w3mf5&1$ZNEmHE;rbM}urF|q zV^F(Og`aqrs%)puFyx=Sn{s0WL#qiLZb#eee_FXti}+x&CT zdnQkXdi?iqv4)|Dn2nso8cbpD=iXz;$*+upHa6?3fuZ&~^rkl+Yx4EJE&Ft=AurZcu=D?L z_wMmgRae9COfm^044x538*S84N1N1WlNvQsXgkT|CPs-8A!@*=sHjmCVG%-Jb08IRKT>%Q~Z_iGhOjl!O!K2zZ!miqxh%6 z&smCpI{Y|TOD*j!ju)Vtw2_O^C64euJszBRhA9dPxpqCDKs!u!R>{dBn3 zXP%|Wh#dZG^P}_WQHJ@EWa#s>_Md?zt^Q|VnEdAHoqH9`AY4b2o&n3st!bBt zvntQ)&bJ$aPjdI=_U?SA@!;6jd?!s$z6*c4^V1UErSZFT{K;v?0*jq++tkd=sd$>nQhW*6ebuH@sN6IDkz?jw&cM^Zy%3jflW zukKD5Tp_0Zf$o+3EZ9?%Be!HJ`ISN&kv}a~#rOi_HXH;U@>UhidzJ##yR^GQdacN| zu%uEghDR_#DC>4_TX9bYl+MrP+H;lsDy{bEs0LXvK-SahqXU$3=%elq6@$5VrUYP^ zci_Q@{gWzBDvl-&b}H772sYS$sH!t6V=|N)&vd}6G5~iP;8wYe=}>0obr;#SbgB)_ z+~1<=;6OZbrAN6GV;SX2A$$(QRqcI@kpMlXE|WqePd1~C#Irb_BZG(H(xTn;1@2ef z9l=9M(vm;pz8U^E?VbfGc?C8p^qduw+X*o5M|(UxEvN>F9B4C%yIB!yzF5kvysZy8 zs9b2QT?)^_#;_yM2|P-Hj#UOXRJG{yF&O@^k0-yHO`ADDp7TOMP z>!IzCdt7yt9^Z6pU);=)-`8D~CKl^{?&OqQ;H&_wT&1W=1B=i`nC0fu%!F?m7_?sy zzLu$L2ZVhl95Mst>`1hFvRn@uW4HHtbTkn&g!@GVbCyh z+uf;-B#6`+>=4__R12OePu3W4V*qblH4s0z2|38x(<#VZUhqFYkhM^THwDHWM`}$3 z!u&KZ*3MyYC`rcP^)wFF6S6>6e2PzeqsA>FOH`cK?T0l5^`r|-s-txktn;MDBbRuT zi51H1YAJ-ajcgqzg&MGCcyEv53+E5=(`fVPa3jqgc#Tp)!it$ZAZ zA=EM9h?c)@814*KVnW-s3x!o0+oJ)XQh2W5pS%4U{!d{1_cQgoB#Sm?K(zI+8LNNS z@E_%gj|s03xFu*iEWMU*TUh8hM^kg771B94SC|LE&`}l9MAhBg7pG2y3gYCTOc4p` zYx8FtZzcs$mUdj2*gronj(h!p-F~L0m*f%$!SK?;cor8%E7Op_>dOL9s%?P67@cDy zHwGZJtLpEAH9!QoGi4S~TiD+4tUUv$Zc5!GLsB}M0>qyUvXZ;AhCXqtNra~`1}S;@ zKA?r67;&*B6n~nfx~F z-NB6><>HE9Zya5!#0#W7%Ei@qXeotm!owA=)cYVK*-Som`67uFtL`=R&=d9~C-X2H zAB4nqq;hB*XfaX&&nwIZHpD<*3RGjHwB#$e4jwupEqVa4XmezW?QwZ)&SqlifEZ4( zk<&I2{^XU*pfSH$ffIywlv+!0Z&J(y&n}BTv;(y`$6I^-@?b5_WOxNMz4l|&?NJy$ zl&4IISrM$BB6OO(A&Ev2$79W7)Ip`dEmSwu?kH3LNYj`Qo+wi0@p%sgM#X0-HBwXbL%aAAQACsXeD%*oSSX6Q;%#yC!0L8=uPCGS?fBy5v@LByY}SzZKY6 zP-%22uFWjfj|jS`+DfW~jGR4d{yB+`^jRizc_@!B$nLb5O*%;^-m0eJ#vxFbJO&a` zE*$CStgMPitnG6O&QxmnO2b%wrIcrd+vldp8-p9O#QZ4*mBNl*!*Jxg?hug(nkVUs z5`*`qA z-c7e?qVX{?s?jgD@%bQk)aaa^Tmaxy-|5q{P5v`+I@IU-ct7FupsxC-5PjC8rf+)< zoxr;}FXn{Kl(#0)IZ)fMM=R+Ho~?AzaRiifX{_@vfb_!aDg_OnlCHW&(;tcI)Ywbn z{6|gv>`GLK<@8LPzq<~jM8VR~t@KxT9br_OciY$S$Ib9lmi{%j$q55uHa(7{}y>km2ODwpJ39(NX z*Q5oN{3x$`7kzOt-)8ga7<5}&aA6WcM#5sq^Ayxtj8wZM*n)m$GP_J+m!d!~7u zE(8`)7OSZbcz$0Ge)mPfi<>qVCWJswN37;kNJ)^=v4TmaU_>nO{p0WWxD%8=W3XLG;%Ox7A)5 z?vWO^BmYvcuXBCphVFvi&bE%vJKyZs-MOXX(;aViZrQOP=IaY6bbqQ8nhT$H?v#5= zpci8?5OI1Mv{;d5mzKPPueOj95->FJo9-(70;TEV;Cd$x_8oDKE)z#hUq7vdDo+M* zU!G*SMOu6svN%27fjN12e!}tto=Pp_nG{op7Qz_n80NJ*nI|^-Z&*&=fx7o#Gb*Re zh-imFkJILFKzx>aX)Ev^l)@QSG`=uBM7UHm+o2-sK1&gM18xFVohu2q1*>CVOXRk=(U{FMpU@F zBivJaa`(3GiFV2#Mc@2feN&S^0H(Ff89g?@W4ER?mDPEzHqTaA%d5VeMEZVPbnC~d z7A*&SBPxWE@~r-n_bVG}9^o?jH}O^DQ{s!*Yof^G@F4c4R>RunR5~oQ#~y{E$*`Im zCyNq|UutA<3RE^oUy~-k*SVL@A6n?twT|>OF6D~6?)*~bogY9=cSp*!$;3LQl6bE1 zj5Z)dwk~oYPF2Qvy7SAm)&D?HFBLo-H-CoO7<{Q*RSAs5GScF(+BuLT-{-;ICqFAv zY?bfIkn^(@{RaOs`l zu0>kuHdUrx`)aC1oUBG~c#porSNI8jil2;wPt5Wj`g5SFg3m_Dj{`oZGg3M?y%!r5 z{?Si$#WBN0n!HgdB;|r@mBnvzjz(oh4ao<5&I?e?Ip5?KjmlbOLZx@V6#6F)YER%| z)UgfI|6EV>{SvE@jD$xZ`sABdjv)i@gIno+^tOMcVx_Q81eD9&ax~`bssED&<8FqD zMETs_t+l&*=F_v2Nryt$H}MKt}GN}WSB^!LQewwBPLhqi{v7X+#` zRq4IO9XL)f_R;&^wes-*-ch6RU$OtYxTo?BVnmhc+0~-fhsjJfD?|OXP@OQ;%A?WXV3H(yG)%@Y~ zYlBW>`3$y({k0<<0MccZatr$Uw*_*7z3~8cybN_@%TTu?_QewKRc_p!j|Jd6K=ll*`lPXa?<_=WKeE#Pa ztc8P2QH4iM)fPa$iv;q0@)95)9$s*1KvD74M?kbF8Xw-Q#II~{GqyahHf8Meae?1S zYXJzhfiGzJ+#sEABbJyK~29%%hWzE&#k2GV6C=xjiMX5@XiEhPC5U(mhFU zrCRv-MA!q~T}>s$mm~yqZdtM8^Ls11JL!X&O@q$Up!QA-&$5>)T=S-=u#1~f>FIOg zDf6G*ot=9-+bCiQ;4gf+CDv}XXTt+n_IIiSQk+hC3cCtC-6aS*CtgCY0%d%b@IUPy zp>cFUlu(qbGbV}`C269_%=?wQvnOd!?c)2H*JHgglJxGrQ7g2I-rYSJYwz4*dQyTF zbhg10jgBu(zOLhJkx*Lyu$~W*4$oZzvjQ-Exos~>-@;E%^ zUhYZ9yXBrdGF*^f^-u=oH$c9zpappbzMWkug)cyBoVXM^7bRGKsZ!!oCKq=5%SkU@ z2G!*zlllkK=#|PgUP+dFSlm_o$d5`5CnO0e9L35~K(jKqPK&(YaVC+J=?mXg=`|Q-DW*NNESj9D zHTis-Xfi|vjCvgac7%f>)2_Q|$QQeh*4DQPAfYUek*(2|L)4KIU$dx^JwR4HhZhM3 zUv8~lpm7T3QOP2QRI;)xWEbM-fz62{MHbeY6j5{WOW>kUsMWP>{G7N zZLt&kh857IHUwBJX(i0(Q-Fs8$r!g3#w~?$YyJkr#ugA%@}Lg};n1O$ z5Yd=weE^RoWy6(0^gZf$ERH96@}~I2LV4eh=vx;w(J?v~y0=4x>(U*&)LzVa4UhSO zc)3gcR6N$cR=4Wkk*1O_V@>$mnS$SJZ|mH$<5Q}23tj=)Ti!R=pAV6QTx7_IyP&GO z0JS&n&bDxK$7g7f4gWJbw{*OTDISH#+~=IyvHR-sxn~Ra!US#Jjy9ps>$%|p zcZaawEvSZ#F!KirRa2qkkv?}M@(c3jtJLZHP?@0X+rHmFZ|uGV|2+849?Ux~Fha8@ zhH}CPhW3Yv!QC0aGXPDRE^mttd`%d^3RMxof>|oTbP6oflFdOOz=4c|XmggK*@p{R z1y3c?#22r<%a}HZH7Dmz5Hun z*iXQ!nw~0vhl}71^l@|_J>QP??S|)QA8eEa)N;qAo(y{-0D>>K^dmZ_c@fdv20X$;?+NL6n zba~gIZH*M6o%_}d*p0p4Nf9()R92A^xK~>AAl^~bIPWHD5eYZvC(reH56!t>nOkV> z^=_PV*V3K>pS^ax@~;`N{10w|iL*$d=i$?_m-yx-%a{0+f{d~LLb&u7Li1z&rFC#w zsuX08^_SsgS#Z41ZoI*7V z>u_ZN#`*6c+yE&9$?(b4B>^D0{Vo;$a5#Q=kcuN1j>{j)!dhu=S;V#)%|COxbYfiY z@*a^l&B@gLV}xv7_=IU^Ab(fe3cvSA-Og6q8d}!-j?zEF{v6j2+MjE_d2EM13S|+r zNx}1S?|}3~^Vk|sw)BKB(&TuGJj3&5Dilm;EXYmsZcfhkdH2n&R`Lt2>%F_?PF83l zdNw2ls=YIPFjX^s-rEY{_qIas>{6J}*`+9Oc_)^^^~5p|7ChfO_Qv`A&?%Vd8;vsn zRf}3>Y8yK=Jp@g#ZEMARcZ=0gso#^Vcj%{>(l;?KfLI!J4l{9dmWWRYxZ z@8buLWPYqPaJ*F{SaVMg?~xY1&mvD6e2r!g){Xda6w`{OWqzm>mxB;^ywWhv%F39q zMU%hD$HIF=3Kd`liz(9EiSp*;faa9EFe9&@uKu zsOZ&&)(+w)#{1-6I(CFT)QY~K4%9ZFRU}B397~DXpOmdMppR(8@te$bbS!?XlJ8R% zW87A2Z|2s_brIVyWeoDR7#Ra{D|O>Hh1O{1R^?GNUCYGa5FVLBBV?@GbsBW>$>#7@ zDO8UzL8S*f$3hiz(U!#nqdP+0jKlbz^?Xxm9k>q`D5vAFJ*CWUh|k5~!1HqLax3QwKBORzK;dZ!**=ak_BFIw#8Og1e`qg0XWi6bWQ@lxtE8?G1Nd2J%-l z211^&$H2V9uL3ELU?5J^bcrY-6W6372dwR|n#vHPUJSPKCn$`R1BKDTy|3Gd9V-z1;)H-FuEGvkP4+g1A zi+wKlXz?7}vEMVk`fbWYw_NN*PbPg$*yC5EDHB~0{}3M@qjqJgGu&0XHqw9*Q4M1G z1}?keTma=3rC}@F#EwzYq8Nfg?tq8iaC8^r`_1^h2w_-TA~;@vB|s-8zQR$={d-Qf zS@7UR6FN}tFHIw>+W4nLve^@B`@gN0SOZ?&J$@h_dx>e0OMYLeAKGrXEAV>~N;$6% z`EV)?qz_)fdicOaT8Wj}c{a{}PVO8_v1cy1hoaCmh$wWAl8%`=$Pu-|?X_;D*aLV7 zv`UyugANb}95AVXVo*u3Hss#;8$P|1sr!w3NwFlDYo z+MaO+5bqWA`tm}#!@89Qn7&l*^N}umD@6`+XqxO!m~9?kkxsBBrwdw>S75WXi+a}i zq>zfmi%qtG4G0Enbt}jqiZlvB`)5~*O}^14mp>_d{s0Ac$goMFCW~NioQ+LWgzlL( zP|djF4SuSTF7_#>`07RocZzXjKG>Dl;1_(*wTWFRw6$3NPpd@*6kwGs4BDL_%&8b- zqP3Xp{&SkuRZwL9r--9c2rY@B(`26Bv(71nX3>K@6^~XTw5!T|mXM|JF-(w!Df$*Zr<_5<4gImW2L4349;H|AOl@^b;dbXdezi?q0QMi&tmb(oJmm> zP2%^?#?vgcTwRUs8XG%ai6?gLd|Q-gUTecHZNpcQBCZMp^F-0vS?-N4?WM!2+eyPV z+%kENG`O1QD(&adpMOmR7}oKUJhaoR5lTxk*})#I`e=%S*B%~tXV}DWYPB$ES2m>b zR3q*%Ge1}xlLypP$A zx{t|QLHMK!ay`P}(-A#>KT19x498{Oe9+qrs*OEs_%F(Ajb13u&BzL!EYg#My$&gK zvK0@|j|*H7>^)Hmy-0V*1a1rVj+8=+>28b^nrpEPYdXGENkvMFYomv_Dv+U@5!V8k zbHZjrw{F}i3kf{E^un|xl1#CV_@}|yX-UlYEGM~sNHn+CzXL)(mGrr&cb$pS!$fya zf!kV}f}P!^N1aO0xj`rC0BbO7osMN*V{TR{b{IQ{hDHF3dTw0!ce#|s#7sPjb7Nhn z_|vTGVS>d3`O{?)0M!smXQAW5L>Guq-Ys?KDYMhO@7DbSzEsYGl10AE&EEC%euh=F zDn*5G*D5W3O0#!jTu2&rtm!?B73?bmcn+(+V+hVeIiv#!g@#hMAWB8$A7YKx>;(ql zzBv0XC$hmv7S*#1!PMkms5ryzffL!i5NlF@5lq$m4O)i!vyong_FGzYbsiV_)20P3 zL*H-to50x$isX6BkJo9`q5WlYcfU~XR<0>Se|P*!o`DWaj{l+Edyv{B>W;w(P(!i5 zhW7-r6n~j$x2Wug3M(_qWG?zx0>A$>sY{!6eQ}+=+w%D^sy7%QUs-fNWN8>oFGe4k>Bcd2UZ4qPp`c*H~{qe1dSGBb|Gi%NrZ>Wx&seO zORi%|Rd*~W|c+1Nf1tnytVE^+z)3Nv8JX%=#l|1Wtu2OVWY9uZPisitAoX zz_*K~*G{TG;+7r(zM%fdF_iE&u&e&aNbzJeKk3+%4}w{V2N#O>b-26|J0RO0ERf-9 zLV6B!q%c1?UDBc|WR0s}<#ka#!0;|xpVNkV9Q4G41t4#x-H%4D0Ou($*n74VMxPfL z0cAp3q`(RQ*N+dwB{^4DIfX?6Dmb;cU0~b9R_Uqb^Vd5 z+HH}7B)Y9S(Fz4>-yJ)_!=VE}dQo$*zotIAwGo}wKm3bWIHzZoZ>ob;BzTmImTtM` z!&MpybwBPI(PPkEc0meMrWWs=pi1&Gx5H6-;6k**3&pHh-ChZ3Bx_go+NQ zT4xknrWGqBb365(cw!sr=I-R|S-WAX@F@XmAA49-vKt=8R*D+}G^TN%o#S{~^wU|B(TqwQvv!|CnJK6~Xh7>|!1e!E5 zKrH)PD#@guS}Y0ne#%s8Ap9>P_)4*x%&Tr$iSOoSV>}I)xBl=MfqUx@!+JnZ`TE0k zfw}dEVNrF_-RV-O9WL^{o9DF$=Q?fj+_ctWlH;ThsSu`SMQ_4X?G~@!2CH3qtvT47 z1pH~S6VFTZR0IrF{-FIDs-61`15p+D3?Ql96I)haCt2%M)QCR)4D?vBNUz(Q&9RVb|OXsA9JsvpT?@s<`CQPo`PLsW+2$0 zQ0~+hWU{>)*Vuz8wXoWUHP$5_$n@E*om&BbLlDN89rrd&P{ zJ(dza2=mBK#mfShT;K#K-y0w}(oJxPxWKJGJN@7vi~29r!f5ANLcbs^3euw650d6P zjSk3AhjEotP>#!8EDix%=G``DhNiEFZzES*0b`Ma-J#rKSIQo-1g3alrw!530FsUW z&;^Hgs&q-AG%Mbxv9~Bx;S9H7R&|hr92QETE|@-Odo0q619g9dvJOq=@lLRFnsxr3 za;*Q1s&ts1bMEyxHSHte)H@+P@GlmXoYlIKexzb|2Y#qfwh$#77-ufI{`Dm*djMPB<-CCDe@2bjfU_m?qBsuo>jO zp@CGnN2~wf0M{Q|f#zD#8wZ$)!4ocJyi>WGbhR|aS_>GEeOa?sdGvg(L=~ROJC&If z07!ijOLXBN&M8$UyJKg;d<1?4a}hWnCLnMg4o8;h{Fc5v6~vsfFt9bipm?{`z7?5~ zgqN|;{IO3ixo9H$;#L3$PRg2zEJ7aC8{0YmRpUHFW3H%07HCmJu4F}JQ=K?DzPqoo4 zo>y3uN@r{#RH~F>>ubeOO9EfLBLi>on9uu`8i{SAAN3}dr_ATWRi-EwlijefUaph? z=+?j#GU&$m!<0&%%$P>x^kB=UqD7V7ofUm-VvfntU~y2FcF6bIbDCRAs2{@}rz(>2 zI4W_JS5Rex0_8jS<()3?IY1tX6(SSS`_bAdGGC}p;t%3}ffNoEP)emknVG9d(3adG z+LEbOnQ9%bU7Ekv5+W7K&y)hETw;U2!+i>KSvx=W7ph&p)&|>dNfz|K)TWGpK|qjy z7H1g~hTaZi{-HkRI0~_D=#BbYTrOQXJsgN!%n#6`oF1S^XzozsL9@O(4iE$lWqG2j zdvyXB7#ZB)(6U1nS)!QB0LajKDTLlDT7BNbQfM=FXguY{AU#2W4Fx0-O~woB-S3n_ z_gRR|w&Mt*>R-M)SDs{pRzHf)+5v=GVI2rGbW%SzRQo>)1(yoA0om_SO0d>sc}A{W zjC_S%o|Ov&=$-8fOvK1|I;hlos$7~2Aj$bQXuo!WQjiNGk!U_V-!vYr1q3Au@f6%k znU_m3f`OLhw8x%sGv?eq3|FG&la`C_^31epm0HD#Fa)RFuYkl6+W{eyAc zi0X&0BaSdZa%jZ8*YwFBty7b}`D?@vT$XF_;o)sA<&yMBVZ;)PC`rQEgt)6)1$Px4 z{dDRe50G@27CJyaxDj{bz!Ok%jt$T)sM_QrsA;f$ww8}*28_V;NDXCGs*>M_QJN;V zB4t-nN!=ivRxf!GXFG6Gqgbv(6XkFO2VILJ${kPTYBxtXb%_HtIHuR%zCf>^j}&^? zQK#5pe*Gc8{sWqml8@y&amAcyyk)cAKu#P1hLy{yc-91$p@nin*K| zaQFgO0+ywFi#>HI7?<#Kxbt|6v*sR9D6nM491M-`_7-Q)-3i={?xc=bU?i&P0_LI6q$nphB6aI^fpunNCt{nx&5?de3uo zN?8rFSGTgclr++s3Ec|DRSy4YTal;%M%|VcZnF?NTNmt2l@`1X58|G1FO-bR~a$99knCZl3h zqyVCbiz{@GIB14Q>-EnuuhNH~a)M{XIU-JlE9_>Pc#-%N*->wer%YOOX%a;$sPfG4 zVpa$!r(A(ut&&1-vGS#g7#UpB{ygHE?uJhJq|l>D%;TU`A|S*#E1Xhj8qq{NkMIDA zo3UMmHpo-D;Z7*ly{$9a&H0{y!rdWvBYC@{v$^AoZic^e3sSg_jh$^sHv%9nNP4Zlkg3IxC8;nvL88opy55q}H6^3q)PYTZ- zAm!1tU=vZ=K&N`kKwQh8J59OT89Ujq&(iVjDU=n7r&R&PzCA*9RBH!UgfVInKgBxK z&-uK2TCkB?k-{-}Ksh?ei31}dft0&Tee4LuNSYx~&oLNN8~Yc+9D}1u-QPzwP38)JJ2)QVmGVZBQM$sD6}>D(OzpqEGTVab#Oyb5s(mILp zYjzrN!y_mJ@S_D3n|3!a&A8n~(A@MuV6?9F1CFmp%jB%A#->#-3)LBec*$$i9$RMCZ-78Le>d5&ydUlV57kkwG~isHWjT#@fQs4? z!T&}6er@DYoHy?_s5ehYQpv$+3TY!>O%mx$B1#9pf5A*EyNks&uk=^{&R*ewd}gI_kDYM^8({ye#% zSG?<^2ibB1ZluZ@GU0B;YbpE)KH=nH|DaY@U=!A8IiJI^F`>1idzlBvLCdJL2K!}) zhiH?)NYdlkdpu#ue z36j{UJD6nReIech16?WZeRyB%RM93vP^jba@{+vZA@pbr9o&x?CiRgOh(CZNOM2TCGts~VUM$A@VG3t7^x5NF%(OH zGZ-r?h!1?*`=%7aD-*xl7H}MF^;vLyFm9ChP5Es)q6pS`Dum97@Fw`KPo^nJlt1Qg zKuk2*12-UnA-~P_rQ&c#3Y``glvN7%4kY?}P@M|;K@AUY_-d4e2*SWaME6PCUgybc zthNxgQwCz&vQ&$@8M#PG{2cshZFmpED|ZHt^~M4tdy0HkDU8-9XpUYOCpun^ZoFGy zo#iw~p9bDUp$w@#1wL!wH{M-=3o#TA40lc&+7Xm_9ONcT0rXu++pCE3+T!I-E-3Gd z{`}oIW-rPEaj)8dFdePpZPBR@r-~(qMi$N${LVn^T^Vu&i@KignCsxb!z6BUDh04ANVB?k#Z#} zOvjC%buw<^$`lt{kfCRMme=-h;F9t8ealm#ZpR_s1x=j)jz~13TfbB;6GM#_xO1 zE`^`f7IN)gWvWlPqtqLdBIU>l78fd$FhgLucPp~aQsg)IbW%23F<9RNteMV6yfH3rpFWy<;x+;ytVi62VH91g3@ z+!|~?l{pm8w9L(XV^8qKvs~04mp4*tg&wpaug+YDMbYvG{#R0p!Zc1Pfx8g$R+((J zLCImUR3@jeD9#m;66{>{jbr-I;zaI&(VwPF^o#`-YtEU_RF(IVj5&yw(~&M72T!WK zmt;$kepNym~X!irhLhp@p$kC-$B%e<`1wwbVH5EzrLIy zswR&F5A}#mHDI(dp^pT)o4&w&ZiPI?*h3l3@u`=Yn4%1GhM|Xe1NJeqkj8pCD*LgQ z*x3?SVrMIt^u@`ulk>A**dI6H8)4#eNn*2}los6C&-T;d_PP0}WvHN37;a^f2T&*C z7(?)|g%|H5vz}s3}iZ^Es0CjlIEsJM9eAZfA#y^GlBZY`HpKD@L$)EWjxKoDr z1df%n%8O#G#h-lNl7l1F{t=ryOmv@_gJXB*%}VmV&e!H$4gy_8m%%qo-QSexO9&d zU4DGz_)}`#7rk*fuwaRhYQxDG>}Vtq3-$0hgFqq=hMwBX62UPLia%!Tr_mMAElLKx7P%vJ6zT|onZWozZY9XnEihFHF6FBVMIn@FtDVq@&Ms`V z|1cR13oKB`qFdI*?WIT?9>ysRx647~+yci2H>AlO*QjT16#GlsH7z;q>^)=D1;`(3 zWPeSHM?P+p!rO+H*IKCS(5 zEVlAUvv)7B`XrCED8nU`_Roktisy%oGuWnhuqkoTLpBQqSf9VUEQ$2hFHrV7%{Uv+x{fuFjXO&z zI$3=GHvv(HbhsGl|zEJ*fLYK8X*MISSNsr{Z{B}>%>?#WnHHSYM@S| zCO}6#ROE`1tj|s85%e&jPp~LEra6Ea5B8(ARjw3TaSD8OSdK>DYKg~1R0(Qj6De$k z6awQMVND}#_AXDf`!}gTQ{|SxD3g{Wcm&v!o7|YUWI5D(i4=O_YyyuMV%$t0*34o% zqFoz=PE3O)PYN}q3uu0K6lk6@pn1#$&4i;ubJuAI&3O#XU(Yh2senzM+%XuMOA#8h zLJ9W6*89yEF#-87_J9Zi*&LiSQP-q9%y#OC7!% zGO}_|xG1vNq<9nwa|->fQ=dVrz5Wp}ODAv*l(~`HuFwZ(W%YFqHf?tef#-Uv0qA>J z>rn&tXxY(vG_(dcD(;HOg>lh7w|T_Z(YHJKQ)I4Q>?7qPeiXg(6D{cOAE}OH;P%#Qg*LB+ z4=1^m@vd-NAg`yuT`z^Eoo(T>h7yM{aZcy~_Ev+UNWItpcdsfI-J_<|LQbCYbkW>&n+0o1(#=u$y#4KGb~tSwa6QX zo#n4SHfFi?urbSbcI%;)@o8ncyluR+u-^gYOI@*1xIe=E9=P{rJy`p#QuuhEY*y0bNwTdxFh(5|BTev-tic(-fF8O>0k})M5H|4#{ zDTUq`r7tk=4A|}e1otM=rhWPf5tz_))7LM*Opo$M=~(LhXFWYyJWB75_pWLwbho(_ zTFgkHgCp^}imqcL=`{_9)TPbOBm_iXfF*Cx5de+Q1DfU@!}JRcPjr(s5LX)oSzU5( zx(*a93Pr&6-YImteu74s|4t0q9x43A$rg@oG!)Osc5(CZdIvxpV21jxUO~c_3W7%- zU`*VwB3>e^=x7$ro-`89JRWSr>aTjmlKsHNgjpa?lfW@lW#P%9K?1amIm;8hX{T8D z>OoP<-;O^D#q0XOK)qE54b;0~n>N;eg{P4#`%wd@K4qaDbX;VzBYOH9nkQ)s%l#Ng zXPlT?Qav(!1e8WR*w+bd^y&a%P5g*X^zLtp$3-PUnT>!LyhoaG*{=|aBgq8o!43`9 zLp@^Ll`(=!92~9B4pe?h6On4Bc*v+DV03~8gqpM@O!Kr}u=0syR@QMk;#W9nWHBhA zMv}Jk;F307prNr@D<$l|nj|P*^r}tCMC&H}On~?YHy!3K^Q4(75Y_#Gv~-(gzSUzP z00a86m7*WmG2HWOjd6}V#m&;7Vu&=tD>{a+647G~nl4lv=^}`%y5>94p(JTR`wnVBhv&A9MDMaEFihFq{yLfN!c(f!mO~y900L}QQG&O z0sPi)4fL4>)HgOp_-}}3&wQkzlr#d#zelOe@^;SIsrWLKN!i}5b3OtYB!C)*TSpK8 zHO#A&d1j!3ROXZXKwkPvj#Ag_{k4AG1V*XbCMKD`b zifKXxoAwN<;j3>9Jl!GDw7PyAp1#t;cp5xGOqq1Dz*Bnyo>FyxSgzrzYY?6;HR0*8 zul?WS>50^#KI+hN=TY!9WvemOUmh@~I`ScGsP9??_5eXQ$uLOJBg;H=%6FNY^eqO1 zs*w<+V=U3dFHc~A<{c0-g=+`C#%f?R@a!;nldm5&?w4htne0^DxXYmGUdESlgVt0q z9Yvx^#m)PCsZ#7iwQDyLww?WQu}|yMq4zaZJ%T4ho(I8vMRW{MlP74p7%9ReYhdrz*!1HA37ex>TQme{}TXUZcT&} zP!H`D)#jb1Q-ALa;4%-LO3hIHE)6nZ2poHWAhc+uvQIIfIAH4be|E!HPwW){WuI!% z<#&HIcKZQ%rQo3`D(=^k^(|rSHOn?FZ-^-ftJ73qIgu00&_XehT~b>H~mz zbP!Fl86QkxElUau;aYXf`k7u`osRJa`BXP30L54d#583^NaZUqO_C37=1*Q`m|G;x1?KGM`;O zAP`ob>5@C5C%&Xx*u#9#5qqjU*!KIlnS-(p4B=I1UK(Pwr@K}TTu1rAfbnmtLOCC; z>6U3dCkj186^dx1jx-beycq3MLwEG^Hyf1a_?Ur|tKQajzy4i_$|lAErDd`HY-Wf* z*maaP-fcD7cxji>#$>&X$Fb;gGGkC5wHW$`L2Ly2VOCL`Tz!&4iE@xlSD=(Zdu>wq z_uL*C9f=}PNujV(0D^tRIE|jYjEhwYtu#r--@U0pcu-|!R6!mMF5VT4!^<6T$-F=b z8>!&7PhqTKYI63hrO;l34fkAw_{2I7hl@uhMQ0SB+nUUiH(Nc*z}~aT7}!awF|Y$V z*gh5AI9bRZG?=)*li4%juL#A9b1OpqaNa*Zh59)~17%+n`{gi&mgFu~k%%W)Imh?Z z^o>^2-2F%C)YBV{PR)-Royvqx#ZFdyZe@BN>JRM48S`}M7VdEEPFg8L8HJp-CJF|H zr>Qz`Zf|s4ZwduPs&_51ma%mDzal`lnlMOT3l4?ETbs5UeL0)_9nOXCH(RtXH1`i} zcf`4UV>WN>JDujH9{TDiV-ne5jLGd^8Dnw+^jp;fUJc844@C{ye-PjS-y zJadmb%rn>VohJFE1=j27xL(Wi!tH@kiqD6ioF^H}_QmyL*>>ja$>~`|Tk&uVo*dA3sg-#* z2qk`*nZ9T_5Dbm}l$}DKa#t#mdx}b2K;BB%rlQ4$G8#)Z-URj4rZnDl122Dpb6P}C z8}VR(X%8kMc>EIsYaHsHFNm#6WPX5&5-X-cXY7y)H4^Kmg)Y?Dy8W$!1A69@xS=#Z zXd^+TcepL+2agFu`%#dt!1|VwZ3_tVUXXA>5D)$Z-kkegoXw{(=|=_GoRw?rnqWKS zGU|Tx%xB=!4k$SOFSrx=)UTjwUQM`&_U(wryZE49pvCslo2S8uu9x5Ayq$_gxjY+C zz}lXxk=_+Wjoe&zCagUn9lPB`a->6CpEKd_-2+H%@qDO z&E#s$_&zcB%>{jnOzDpR(sxAv{FgYZRKq>> zS5x3JK~IwAtv9LSJr!kw^upy&REqu$JST>rGk?lgMQZ z3+W7=+V*{5_5K8~_FyVHA^Z*9RqVqY%+M*CMwS1bGC*v7D<3=Aa@rYEleWdB0UbmA z_Y9kQcn|HAukzH|l@iCWSof5LH8PKlFyq1hVkO3zzwsi{NwwOo7K=fnNq7;CekQ!A zy`4Q+?RJZ$o6D$8M-xR#Uo-aaj80?!-nt6*?`q@NzkGQ--Yuk|VrGnZ@GvNRH;Yv; z7wS=H{({IoDKoR>_cFI;?iVC| zJEsI6MAu2vFi0`7vP!mKN)Kc;$QX)E`p5H-ALP*lf|3h$~TX zh#f+F?A=S>HR|7`4gcNNy@Z=sAEt|=EN+-OdjAMo0J=|{6y68CpY(@asT2}eCm#03 zGpCtVKH8c#mfx`evD~Bc0T2HPZd*kKxE!j8b)*rk^XOsV$NlJ^6WM@Syrk29 z%#!}gExe>Vlc+~nM*Tfbh$YH3yjQ84f%>Z~ufC)z!a;-maYhe|X*o z>mfBRSlHXwB}(#w??B$D_XE@;0(~uGN?k=!6wEYsqx703)V#3JbG{T>kW7@8NWgtg zn-sdxiXq25=buwMl192nW;eLP;ixsTMP;69V_!tZm!nw`kCRAbqYoxA<;Hl0&(}A{ z*Gi%B2yOG~%4vogBQkA>8pGHX)+BCHgSLi!abmLYr7<$(V^AYfv^pD~U+#C zzpspe`_bM4TkSW%{fC#Jze9eOoD6?BURrB@7XC=DU1?cZ;W=NueZVBx4B2^!a9rl5 zF#iK@JYtU)*`uA2D-|@3b2d0^{rU(OY436l>Rfq;hKaH}N=gxX92x*`C1A zkgnR%L_%4GnVKZ(WN&FV=GN3trE0OvvCeh(-7Gs(OQ$Rt^InNOXI#;+EIap3F$Ur%W;mg%OzDF1m zUW=9#AMfKq8QwCW;pmnDm%nEoTmO3)zL<*sH!M+aUq2rzAK7YPE%yxiNqUpNQ3oHQ zt}UXjWk#i!S~4|WLTSW~W*(AWdQ)yu>anMpn`JV|ZbA%ydMge63l=jNv`aXK8T!!T z0W+pe+sdOv3P7FzM${Q3=jg}sDCeAqohfmwLA_>9eATK1x14YsfI6-@(;zRL#tclkrK#o|_~v44v+_RlT$ zUKmo$0ou*S9D*<0%9p?tW*dYo`5}Xw5lkT;kVYSW84v)2Tap;npjmKf`j{cTOvLn? z-=V-0Zdi;I51JAZX-+>AtAQAvql|Y4@AFv#XV413NDIVLpuCqs*v`3j?eWWfO+6%&cHMPl$h^AR5=tvNA%ezqQBX-}nB~QwF`~ z{Nxyc27O7L}m4 z@%szT!0*#rmUiPSd_gdF3x-j>afB9sB@zB9XTo#yzbkW^bJ|3F*Z}nbVb4}7?Xlyj z{6t&CHqyIq-to#cc6nX6t9B2xOW_cww8;C&q4A^4&B`eBsn6VGT^GYd&zav@4{D0A z=v7yyTCAA6@fv%$D{vNkI@9Ledrt?sppWy=Hy6M+I97U=fkJXaGX-MR$6L!^&u)1E z$~By()Tbfi?XxMfve5~)b|U5-$=p#p29bl3^=eLWE#819YbLs2W)X2kBxApi=t~u; zoJr4V{(dk%I5t_%+XV6f;rQTq?h1*d@={j{25h>=GBKx_^LYhw+E>oF5!OyHJ%uw> zxWq3(o~-!lXd^Aty*p!T+Hd>Oz zDy2HG#%&kDQ0sSDXW(7bMoj5_azcKJ>N_|;g%Y%+2qX;JQwG;}@)VmzFSl|hmvNEF zL(uj;80tv3hp$x|Z*PHyE@3qHH zq1;RwQ%}FjR6B*^NRxMjdul&XMkv>^BSu&UEUZCrQl(9InUz0*GU0gbb4r+|t6hGC z+H4M7gi9WCK!$PtOlzXXSk>`>u`t5{cew(rYYmxnw(O0G_Wj63|HNJd1qY1611$u`TXdOBP9fEcorglVt zV0n|`ci;e#ciRlRJQMN091FcV0Rtr4e8xn&L|;zHz~>l5+1259%S5H$0V0@biHB#I5M-iH~3Kpj{MtbmGse9v^>{D=k*wDuQsf zHGO!agQvCr;!)ax1CLpeO%~g|)ncMMCYMere2SGwWEmP$hL*vN6vVs)InAv1guR_a znT$wDJlKmnnp;{-jJ6g(DZ=q7Z9_Aj*5{oIJP-vHg#GN?+EKwePic}ADovqMxb15G zR-zA%#-*CS71nk%;KR+e)BN5eQY4m4z!wtmXCd$pykbE|ENJB*-1@!1vq($OWGM5K z2~y|`c(!u;je^M+hO}1AMI}Kh(tTSLG5X~5%5zo7bAwYfe*?~Di>agRWI)YdFgIpF60+FHTA&gvGWrYzm3uS!++D z2Z0k6&NF8th@jMEAN0p5)NIBY(5Sj0Q$Fqt$ z(?gx{n9EGXG8}^;5&&9=0SWe52`?xf#LAubQBp{kzG#Q`tmzuet0=cf;h2?%Vd$#( z7VoyH<sEEVAH)h-T0_J@p)gR&ItD({5 zVxAkD2cr>E{J~`WZg`pjMBu#Az`d9q`=7$1lGug2|J;vxS(L70PVt1>8^mhk^7 zwk3{2ecpM2G6d?t1d2hNftDyC+82)`2PP?nBI9RChT<#Ln4gB!fp|{)@a+hqi;Plq z@9{LGtsKgdW9a&_Vvi-HA44c$;z$)h$9xG*{aNiN9=pxlUz&G2^_p_vwW~AYLW}Ad zQa8G94qAEAYtB%6prrorIZ`Oh6+01ksJB%FhHGfAUydOtqA!0Opp<09dRCD&M}{Jj zm_g}MEQx~xrE5Gs92*%qj}7D0U#i473TSE={8t8q0R-}m9<@f7kLK@Qgz$-QY_EDS zb_(jFfE6UQ^$Q$W_cF@yjv5msAM-ziNI6I`vLZFGmwk=8=w_P#tZB&(Fc&kk|_E)X8m2p&^q*`mS2jfcF;Bu_x1;lHyzDr@#SF*>$Ko=+(m`EIDZ2U zL`(3nYo0%+D|pxv8%g>f+mn9pwz(0G{-xL+1AMOCg>6Ohanj?Lqakay;&Y(q=4BZ? zCb7*C8%mf4MJRXaFXh(Qik#+HJJBnoZMK{)1?{2eEwnuMDuu$h#YV_I*!Ve$?Qv}O z8?81!I{b2gH~P@KZQgd#KiQ#onNnYJiv)Zn<~F47c}+V!NBPLCAH#Sy7%V0L2v$XD z*2hJPk$!l9%LUZSxW^CA?Trr)L!)vNX_Q7g(rHZ(ia#@mY5=-t>$RYP49u$4XHltg{a*cy*ZicGQ+&z7dxo*P2_Q1N;VzJC&nV@IOn0heumFN&=fUw#2E z;y_1&Yq4F66h=8q&%BNqI`m4T7K=qcOibt#>TykFa(`@@o&~fN=<9FMWMNq)1NC+$3ubDG|Y=JY}cUqToV_PIhTM5E&8zo z>3s=jZ{BM4Sg2xkoOf><9?t#93RKKmIS8IBCr=`}jVVU3?=T8(@7_73Iz7YK%C>(d zVx6`{D#-rB2(&tA<+KD&$Gc8gN8TfWlw$ARI^?s2x&)COie#Jx& z5S$vO2QW)W4`7Ob9w5*1%uSjP8!IDog^u(`(u2X-p@*Xf`$r|v10dQ1Nr60Moqw?C zYh1KN?6sIL3#pi9B8Y+Gqi6gg)xsp9k~BDLUWYCPjvrD#2!}42gMH0^ zIoMwgJJ?@;|6r>)*smt$TN#IXp=7}{mkFl15IJUzT@L)7w!E~Phh>#>e*~)xY~bp* z5+pxeQX$=qU&Mg4iC&uIzS*jX?hkO^13U}I1OH*a zutAMdd(<*DSiyA5Xw(J+sh)`&^pMg><9LvwUyVo*0~QRBRZinlsGIsq2N@Q!ti%wz zj_7MI2~R4|Fz~`tVCnu-DuOYJQO${qarN6*<=s5oS@Ozh_;`pRd#;9TvHl*0MVry$ls})sNl)tRiN@$)G`%>&50AMihI6a@QQD2MB z?|Mk%rJ%MhKygjS5jxMekghb4gYY%p`y*CYaDxZ4RN;DZufheia=WppU?Ntzxh!S2 zM1SR@E~DZ-;2^@Az0t>$QZ4d&z;im!Oj53}#eG%b_S$cUe7inz2?BU@IyKd# zZ|@=7`J~zriq8!t_6^PFoJFuBr=2S(eqOi>_W-2!bI*=wN|Pd!x`FH}$~@CXFIi zR?UqMIxpw=lOox1Bc7J^d5sD#lhl@=p|6~REy9G8-Gb}mCdmESebe*MnA(ZP5_K64L`%VD3LS)uT>{=k_a4CmV1{|&dqAZ#H?7_b%@E9&kFaoN&mD}~ z`ZO99!>A|L9bIm&aURu3m5m<_9sX47@Hmf#a!HJBglX!Z`x*2f)6n_mhE5a>0jIJL zgtpbax6m=ABlZXl-!>TZ)lJ&7F$BRnfp*HUwPPU~of+P2k?#$KV2JzeO+{w~Et((|^L;{n}jP34QuVFLRhiT0J99 zHU6kIRs9=UQ)S{=24d5*eOlMYsY~^1U##oLRyv9+t)LjLKeo_EUMf_so+6rzaOf6N zgJ~YrjafWww&;j#;Ugl{6Lv8}CUT$Crhaoo10O0u#h+#TC@z0cO`*k&^1-92Vs8Md zk|pyp*9>rC|Hx^Nr72+~)X!N1W1dG&NeYv{;O*}4p4u6oo4_g0}GB6T|qH|f)vH%9yULKv`=!-Q_bqSxye^5&tA=|B2M4_zn_ z_whrb8}+0_Ijqe@J!<*Xcl(5;EZctLe9!99=KE@#$Slv`CZex(_Qk_Hr10hN9&I;% z%}rFOPaHw#qu9Tw#+;tmON!r(Sb4!AGvfH&ijQzdwOb9PoSl)Igku%+Ybn8(Equh= z(`znHj}?nLSDPQ$KiLx*$?Q(@bQeo!H*KM6W3RpppRzLfdAKjd!VPMk7}4@weQ`kx zd3IddMi2AaM9s6juHK+il0tPcXGAMqbs-`_0UgpR1xRS&t`Mn&Qs5Jq(QLwuFc4$SolRnqd4j6Gn@&H7!6WuDuoXW;xx<%c-*V~ z+$!|TV4Q4B%+5Y2bb#EC8bGW%K!t9i82D4LQ^Utl`2lw7 zzTOm#om$V^Tj)XzW$EJ}t;CnIS#g9@OgJLK8XjxGJZaI7UOf^g8-mb-=(p1|HsHyY zB2(}>9=l&DJk1diDFt2HxDc&xoTzOnuV$uFaM^t+Vu6VQ#ron1wq_85oA5x^whLnc zA(-6yC#btBJk4p|c;2BD}-csNgCFE=#RCBqF=2 ziw+sn#b{nI6r-}lBIoT)=N55Ci#iT!gDr;o&2NkvdHM#=J=PdO;hJl7&>U(SVH1CH zzSW}D8m|53C|f}nY*6qYHEN9H+siz8Fs?iHcav#ZuZ7V4qHhhTm`DGK{q*z<>gVSN zhSWHypT2;qS7TZn+!zsO9jB&vn@T>DG*J+4#%`Z|> z=M#PZIGDcs`gF$%2IZ%A>(cKAb<6RC-4fH6`vcSWuUymgy|$mGFIVmVznzEW-=^s6 zf1|NWkmlWd}O#?1flXB zWe%dB_34sBxa(_z#wVaCRS4j-jwMy$#({^xtneKT*8l%M|aV>9o)yPkXQ+3vaL9K~Vzm8vZmGTS+{abw54 zvYw6JIn(^{c4qqe2%ueVK(fG8Z+io4$fPZnG?LO-Pq+$b$#MSk+?o+XWWrXY4X7AU=(noL)7ATM9=rC?n-U}X zm`6g-L|@C(d$f@MEwHyuzI_iUSl$Zn$C4Zo*VHAo)B^63DKN zJ??($YX^71hFf&XchG;{<`bX7eWUC_I^<@}4W^0w2%$<2<4Sz0(9FP7{ZyW4tsMLX zy9;Skr5#v3w~gOJ0PW#ptkwjz$%82UZDV%ZeY)hIMPF&b@9&9rf*OS^^ywvkQ7^eQ za6Ge)BLBN-Pii#_GJMvtEC`8pfhf5ZdKBL5QLN71^G57~V@^y#yK2LO*mJL?QxJ=a z1KrR%puJ6{@ik~X`_iObxu>CV;|ECD8_M(2koSdxm3td}yW4~38&B2-&)=Qrr?qa4cUy2KN84!&o=+g15!+>~>7a4#ZScRm^W`mBpT#A0&0K)v z(tz2JZ(S%0(L{qTus$@JzN}n7o@s)!urJ}HJ;ze`d(X$*F0-N3Iw(t&PfeRUX$sax z`e$!LfUDCi_D#o>XznbwRtngL)F9%{`a;$|6$wK|DkQ~f6_MIW>^Y`BU^EV_4U9;Y(LhY z{hP2c^;v}%PLl7(&1iESwl`WBB5H}6?;yRlogyUDPLgHqg={4>)X>&M4! z1#H=I#;y`|nK$`cz74J}Yiu z_ffhJeKdWaE+pOzYN1C(q%UECaCwT$5v4cXOX`+C;731q9*~V1o~yp(GB+`AT?chOJapp}xPkBm0^s`iJ`Fd6g{; zTSEV@ztXofCs40W>#t;Zp|3m9O@9?uR_nR_Rcs+}51Lg0#hvt56*1VZD>19`fxKVx znN_$*7%;0!ldH_Z#5y8YoP|(vI?>RK&gHIiLYJ5vE#jGL1)2QaN`Cmv%*{RrW)URw zW5eOeWj)rXQz=I}%5GjQ>x0_(quoU8#=7GgSCfxq$v?b2xPA&xv0zsRqg-gRc`#9p zop7+krK*DF#r|YD8aWkQ?plYFiuQi+2xpRO$@hSJ*86$ka#NMT$X36( zgI2dM-L4T^1Y-{_+ZQJHo5PUNrhRFzmr5y$By`}@ni!s zK*2CoNWWnT2-06jF-0nNlWYR0XPjR*E*D`ln<90K2b2ic@(Kux&r@@J<_?-GoP`v6 z#RzCbk*%$~Uk4N4CgzkhZU2IHCZ~zN4;@X}m^s&FZn2TG&Z~ZVLgYLM2!%aE%0MDRDJFz!#t4Z_rWX4&RTw9j%-YH9ykh=ZoihJcO;wlmu1k zxW>h&5zh|r|S)@2L&)^WtN{CKSd2k-XCaG^m*^~hBXr#B~TYP$Vs z%B=BAMaTRx5?sK-P?rRp-414TTL@BIQ`q54kDUh2qX{>_!dy&q3}l}*7n?2zsAC87z`+-zy*DQ?Htx#d-l`*3n9=i?})&&9LmfEd)I z=`~RPWEzZlx!>HAstG3Z^?JbC`rQoB%XUS!`rtBy`?odu<{oK4c75`1X?}@q;Md|n zVnn+D7s_1;KbV#EzzEYD1pq^7oK4yX_zlTr7y5~~R0SD7HNC`jh50tpL+s;Qfx#?Z znYv|%W_0&b0g1oF33r|R*VzQ8^%^HkIc(8R*{eSIpB9DMC$d+2x`=M%+ERp;S(d_e zalbhN%1H%gH~^e}Z~GS$r}`Fs7q+fxajBUV=y(xpqcC`}5LOVh8NAY$$x_Xw1mpY| z`_zO#KpP^J!(vq}7DGp5Xb;XP+ne;%MEZ*&U-X9$#XSq+o^3@ghp5qnmy3oynYQSvrSiBAmUdWCSyl%i{@Yovu>BrAI@Y9GK&NJ5cL=Jn6 z^_=`HG);ZA5Vz)jL7yXsPd1{r@()r!Uv=R}o)P^!|CnS%_wtX)Msyed@XAf0$l<9* zw8y2ZKZzeSt!?=P5zgg{dt};GNIg^yKI*+VI z^cuZ6-#G(sy|OUTZ{a=?n}Bd8;*1Ch^&~|leO3()zG*sjGj0E%4Tm`>Z*U# zVRK#Q%ViI`molQ@(-^NK?af@uRFVc@ySqKtlJaNkEmY|V=uki#us`Chl z`RXFi`6q`imtr~5o^X)b2ymitXf=MN101k+o>(%Sx84^nj`U-Jp2TKRm%!1HmNMLh zD)y$SsWP6(J>R{$H~jPHuJBt>qLZ)izrAHW$=ze)1(|T+e?j|(mfD`7UDx{-&EaFq z{7@?aTNFJ9Jj{QY{fRe5b#8zfR$9a7m{Ok@ZQC&ix;!}D6n3LCRe1NvnQ$P8xws2;dqzYN5N#2oxFJzY%Vdse^7=LyV zKy#Ge9N?85#`mo2!5QDtZs{W1ceH7?R@Hsl-<9P(Kj&i)D1lYJVyAR$2-l(KBZ=HC z*4dE}W9d1mU~GgMC2b~OO`>s}l4&--e-ehfZtNb%wX>Tb7VHYaxu|f=cdKBQhvOiC zX>gm*0y(aIkEEGjqHdMceHh!-u4~FIXRcrIFkfwpzNhOO(d+e*gqn<&j{W_3%7So& zLXV^i%}oi_z59ClT*aS5SIejKv+7rzO zl-P=@Iv)tSY_e($7RCeK;hKOuTtT~I3NZoNSCczVC$f1l@As>{u{Xl^5h4m>)OtNW zYjV1q^@RYaNRfF2OG3(GBQcxguQK~X%cq$9swNgc!(p}5YaS%gJvJOKnA!2k?E7-l zhO1~yGgY(4$ybbvBT1U&jr&RdgY;+9e7x4fc~$H!4IZk>axY(1Fn1(2LVtY}AZ6<} z55uuBtgBNF{%G5Wh^ML*GGHSH`mS&cv&{P?WA)EmF1aK$QZ@`{vo^n9UG7qI0GtR;U>wSk4{NUS>_{9m#ULF25$avUBGR`&PTJuq3LQ8CO64ga{=1t`lo<3nMby~ z=24SW%V_~KfX1kqRVp_!a>~*rw8gLZp3g7+qj&1%OYpNZ-G&JlkFoK%s9=9JbF#D~ z8?x*20aadd*T~_xY@6Mknlt3so`Sx#7(`mv!6NVnbAH=tEY=C`)anm^Jv6FKE8ah?hvb zaD>Exhp^GoY#C@_J*efkb99qsdsWvM4B+A4gO}E6WA|Ivfj`i{<|7CCUA$%GO8+{_hoLp0x6I8xkMpj z@oGIkDwuRXZdQ9Dz2FQ*%B{X!5P8jw)t^kO{~}i3O@hlJ+k)}y?`aFhqCD-U3J#K1 zx>&Zs!Jq9@&tr$TI!3PaxMhM}TQS?dxWtFF+Cf)$g#t9v7wI{1-XRJ3`?!bY9sQd7 zZkge6VgIF_szSFCSvgsO(iE9)^K|=uPG-^_9=0Bm%0~jCG{tD0qaVOXQ}%$%c4iNl zCXh8`RaHPZX-Wt}9IxgRsMSqDt%~AHAg;%&L(GXglVGMN?Fg_JM$vgGVE{RKJYt^w zr-vn&*_$4=Ld#p0Qf445F8lpWRyfTg5qV++$ z^)9gHk}*|Fbk*OyZ`EsQrL4D(XIFjeU8#EQ`&K<_5&WMxp7v9>GbL4dDw(oW6`Fht z$_WU)-yQc`j2P^-00*4t9pE5UhtE_H@1X;NJQcYTMPwbyhVg;JLhDs9Kga&fSjVsD zWY#e#lZjrOg8<)Yd>CpCHlfK6P?aI>b?A(t+F;Yr*;dYRdmZObJpB8d!*4kz!~esv zEQFX(!v{Z;hFT|XXtlGUX}Y1vu`D>WQbUW=4ONcCth^}>%-V5OnyAbkOC>e&$zuYV z>)jd9OnFB@^GyiL$l-mHZ0A&HYK9!J8myO{sBmGknB`tVBJXxM`!j@#>Euv#bd^r5EU>gR;usJ;ul9dWjYtW92@s zuZ%c#L5?bzKK+Jq1X}!dpwgaELZvSp)A5=h&vhMO#X>{q=^z+}X5~1W(?cW*0LEgg z{eDdm%qEU!%5ktC=YmX-N|HBkto2vJc1o-cq$TqKP3QlQZbX{|j6apWlsjImzyOmoR zpfGvfhz?zmnbVC}Qwp)~+-iZ}SPMfL%ga*1R;L(Q{O|U%9_wboD3LEnyoLxSkEUOG(xD>CdPsgMWvJJ=o|%b}XS-^^e5_MPOgok* zp6oiHbh@D5%~&KeBlZh(6z<7n-^UmHd z;7;#rOp6_T#H&AXRC8^3=%p2wKfCNx1JVb-L_=TO0_54%wUzVM+vgu*+7Rc9#M|G= zWi)FR)t;f4wuovoD6L{_m`WEIv9AN3A7fiyRx`iY#s}luiN~fgLDmc8@L9-NK&If+ z+lpsI2={%q9XamUXN}fY8!#bF=!4w5pL>h_38ZtoU>I7&R8{~0?X;fac4w@J>K8e2 zQh3F{PK!}z9#J`wUQc{=YIJn;(7=bcbiLY1|AnkWTRN$y@T4u4Khm3{>PlQYH+_ZB zF|sH3LQICKS|FHMc{oq*Nu+1vL_%4Wj!$Zj5sWbxM~F}k7BAK=rZD(c1QQk1l2}c% z)Fi3;`K+qzscN!M;FtSXO)woW}-;^g67{>P%8v)in3P$l+6#PEQ5n zp6~nof-khc_btvSlX?g^tr%y07JG(cvYHnDer(AhAs0hPod6<{+#^oL18%qL*_2p; z9M)xETJlMSraH~EA?clI^!9nFxb*7dspK}rYkZlYYohsE^zJwEu0G{7LH%rizHE>$ zCA#!Ch*2ja(%Kz_WgO92icHZ(Za&xJvM$H#YQJjEw=Grd1xWl1_sqPke@nGpv^FCC zfEZPlSf5CLdQz*n`}b>qj?G*S_<~blcX350FX z*tgC!XjqpV)1C!i+H^T0RLb>VtW0K@L>A0FB$bts%#@*dMhuaBtd~Z!ya_E&Ds3R) z^Wsc=avY&n5aK}Mh2QfGIjvBlUHC&a)DJ!6Ck`X?A5;3!$J8XokF^Y4($Zngfm64A zwqUhFyiM4qD?OF0vjIlWZT5L3t^9!csxQ9OpPZrN|5K}TBHM8ogoYDSkEb%xJG0J- z8FTjD_y={Pm*@kO&TIY7@tAL8M9&@LgZV7`e*qh$(3LNkI0N(R#c56G45Irpr-#mD zBwAL?Ck37y909?=&*QtquX2*FI6#aqO8kjw#hMX*Kr zcB;!|haePB3bek`FD0;`soOZnMQboWw%6PiKAZh%!1O}_Vu!=C5FP#}yf_81z2Sq* zg`^#{2Wwkm{?qpD$u1WM*~duLWF2(hyefcz`{<3s?fcD|g7k=TWjuPesoQ>yv54zN zO+I1p3POi|OYd1!b#n;vq**f0w757-{GSLcVGn0o)xI3yRDZ zl%36JvJ4N~2r!LA)hg8GK3aHU?Rp+E0j1|C^XS@&dH1cOh58Ek;{Ry=3-vaR>srv3 zR%vfb$mJY(mXLez)koQsfkV}}*l~RJpn<^?)%mHe^Aet!OQKqllH1hqC5Oond@Dlr%-z>Yr1E6M9LDy9jDiS-@L)@P;z@D06&wzq z1G&7b50?%f6c44sm#g>tL2Q44gvQP1BS76kIe5#6`2ftS*3(K4~L7IpGk|V`lCK zN>j}RwkPIavfE5_068JAh>lR{|s zI~E{`74co;c=7vj`lH``3H~BxKVwB3wRfeb>w2434kSK{_z(->2Ra3wVS9*7Hjklv zK**TppQ&3bWDPzj-kzta$+mn*{3-M);Z5(-xGEgu;(*;gj&=wID4^Ozy#&3?qXC!; z{Uj$7&wxLzZ)~ZIKXAssb58<3YKi>ORK~A!)1j>Rn5y|2#gXWqvjbb|Xs|GhtG z!8m_Vb1<=Em_syP7(nEu)DN?t9I+YJ}l@*GzZN&LC}JQ)Y1C4&_zPCJn5#Q`f z&yczkop0s3B8t0B+W0K4MEECpFYu+=PA%u4AWiuy0#*a14*Xk12K3YY{Pd!J>f|S8 z59y_Y%dm<(=)%s)4^4Bl8Mz_gHln}cI^9wy@$wJpDVNE5O`23*Fa)borpYTwx#-8O zS$!2BqlG(p{({u2>v*=}{P|;2_c_wL<6Ru@E);U^-?(mcg5aB3Au17nv+DtXEQM=z zInZuzLE;D^YA4&yB_Ad6o0D5gie>DHVuvaYACWUssWE-R9f+&+&_jkuUXZde2 zmCIM1EOoR83yEHzz5C6fGj}J3&K_s}lJ%8H{v@m1!kkX+$G?@8#RKXVaJ%9i#RIc> z*6B64Y(2`c8JmQ^^5>0vd)&P$0#;w#8_r`(Uz2-auO~>tEB(9g@a~;MAEKI)Q2OP! zCKyYGUWqN6guM|LGhVn#l8DD9k;ge3E6IxQ;#&+*SIb?I{i6?8n*0==GQ5g6U${s~ z9VK;?t|QHgT~_?x;%U*vqw4tXbbo3_t^hV#-^KD~y@F3K=x#$TOHB=xjMNPQ83^Oz4}WkBs5xKV%}cYiQe9fB zC9UF@X@1yN?g16Yk`)h{y~TgxgqjhdIqW=#H4d3Fyj{Fv$ z>R?g9rNYT-E+P`Qz;A#QkQVK)2idSd2AYq7HU{m)+4}5UE{ntZ``ybp=2R=O#`Eo7 zLZ4N)0y)a(20K2XE-EC9Svx!#qu45dZ&SBI@-8NVX54h{WP5zGjp%Od8Lq5ijBqV1 z3CMsrodO1-Vo%F2zlwFsFQ1C>s&>qz}yCiB9X&;Xan);HMa)xWE?5$`%L;=F1gC?Gq78OZ5$bF|b_!>QS*2 z%j0{ikEJ3%!LW{7T{y<)Ax8ECCaoN35ZBma2#~1iD)@z-g%Le-RNraNLZ`SWA=F<1 z&n9NmpYH&q41JpT74|;ZqUu7K?6Vm6^CQJuc;!6oAcd7#L{C=~4@k4z*yS?`VKsUd z7&qN|oR8MBsP(@$Z)^=fpi9 zqUkjT8)^CCfwO2*y?Xa^b<(T|$DYCQO%8L0Ru1y(Bb z<2WYX#J%&7Cr6rbvx9JBaJGFVxq#Yo{~isa#mJi;`dO)3S%WKtb0TDI-KMl>?~OzQ zwHq0A8*5&|25+J64@UO8BmeS5M%!om3I&%xbC6%Hm#gAd<|{g%$Kj`da*gxyJ@VYp}vtzs0@dn_BHBnJPElocgA@ zKDYuydXj3QXGN>d_XtZ<@i91Qx9f?A->(>;}-!&?be_j0Vwf- z3u#AxUc7X==j%!7p7~6*&V>+&Su^01S1P`GeDTb%AwXJiLeHdp97{H@l%?RNGi38K zt8KE$0&z?5N+o_%?q1t`gLiiWZQMJkOhMdt7X4@pHW75%OgVIEDt@kbH`M?s1L_D3 z1Z626C>~^FCgviP60p!rBQf_9f=6&fj*^IE?#+ywM%i1Rwr(6+JGmY zb|2OU{7v0M*ZJh$*ax)whCGsfbx|O;GnChTpS0lZe)#(IK@{@Dq;BSD0R%2)Y-3@@ zH=!+@jmHuCPp=CvyHA3L=?!KtP7PGK_~Qb?nGjlk!;p2A?N!h4%8{0|qj+R?d2h!w z6OMSjI_N1ZdV;pa&#~l|M(VRy$%4oBnv;#_86@}2Vt5GZqOM394NFv46^$dMm{ z#_CR4Gh^jr^geQQsyTS$xw0U?bS}s_8smZ{(E$qrL-$lHDu8p7 zU&HkGT};sew5%nh%n}`l+YZ_d%QPMEt5vK%uzmbN`Q=d!tnPi{27WA5XTzV%XkX6>`f~G(ee%>X=_77P=?3ON zeO>i91CNa{)LC)DTm^iL+xeYk>Wh}xMZy2vJ#Gk;C2GU%0_`eOw$%W4pp->RwFVG3`O;#DDx}$HWs>1r6LiFfoj-bri+C6PUS$Ap4gx zwZe{AtiwDoar;DA6So>(sfVtm_YrYC3{TT1uXq$ASp(aa_`s@phFa1DNcZ6@LWjWx z5M(G0BFc8YqI$j(hAkq^H+-MFZDjOp>Go8*GbysTM*VhxFk{z)Bcb^iv*8GzzPTK& z9bU}D+`HLR>9Ql3G)g<8+oT<_2!`v;$C!r?CjLR9qL?22^z_qz!63Vs1Dn*$q=ILt z8iW^%BHe|#olgPmcp<&XzX_mN^!(%RF)-cex~xVo$u#Pya2Hju$};UK0c#JbB2#b7 z&{q{uP*}noHD@(&B-*r_a)IUQK5n$zm->g{WYZ+7qO)qN|N`l!*LM4!Z1MNd~3?{%Y4eKzEWHM&hk@v zzv}vttzOP=b3tYK^X=9rR)b7@Vl^PathD_3yl(o=DfuA--xhL_!U9>$xp)y7dn+=j1atQW)n_N zmHFcgt-l60OjG7ye+~SjQhbneKiqtV)Asg=w%NhmEJwSWk-QdRL!~#=pqkrayF!%@ zdqP!_{YOoH-+k~ck6&A+JQ?%yI#2|*!$-E}n}Z9i&%K^TW0=YNB0D@2G@xprttFot zb6-^aJ=)YGa@5q2_XDh zlTv&gxgu0Pt*t3H&63hGqGm`9+GE4OapwWncH0fFDO+ITZht9?YEcZvs0%M z{U5`B>NV<)fz=|e+f9GWb6LCDdZ&Ay9C|7J+sn2lS1JhyK!W1JG3?yk&*3N{BTJ0f zwde^PWPZN28l<&d7ZvwI+K|Lh1tZcR5f2Rua(dSJK?$IG7dycd8Gbq##E(aUa7s7- zqHfVA39KwIT{8Q-UdJf|?VgWBHUSoSp)-C4aD}QR=34|W?emhJSjxDyM@a`tHzd6% z>7{EchM?)+bTssAYzeV*-cj+a0A~j^2Eh43Mkd}A(DF_3rkEi=;m1%aKXDBjY1u)? z(^oOG+ubKfSjq=?8wpkTq)#oGAZ^`xv76k=WaU4hViD0+!I+Y zWX0Hg!H%WlEf+G}?b(AxwsZ}6Bl-^g!9^*)1bqu2Hr!ju)r=T?>R~pF0=qd^%s;T= zuiXe7IcRce>+7Q_hwnMxA(;`3w{RRoX9x^nHPPhD?Xpijf~mGlJnj=4lq{U&>49#i zp$cBj|(4Ak%KNdJ=AJ!>1M{O ziLvQmHa6KoO;3zc$j1W(!?`%vhZ$^QL=vCs6P za5I|g?%c!h4d{0BbL@5_*X5Ij>NTDifJpQp)WDir>%0^@7ub_n{;Rx9 zY}d3G$872`d8?LZIUg;x!5sH4P(Kmc?(p@m2quE`Y;IF4nUHLy z)jcAZlt0~t$?|*IlJFfy%f!WvvA)oz^Prxb(}TB`uY`x{Onc)*K-#jG21dkz*F~*ld)G>sFRaU1 zrm`Yv>p($l7h8JZ;gKK8OWX;}yalp$Y*)B2vxn|KfIXxf&T@Qm_ z)9i|GZV&wqC3L3Mm-<*?x!-&{yTuP3AFuE7-3-$iGcptm%Kobi`yZ|h6^JmEM`#^t zL`!AR6UFsyI4!`43sJUQu~oe6+Ra|f?-=WTj@tG~B+u;xO<;OV1K`U8ICOvQeLDO* zmF{AQx@h-sO0#b8SSxMMo_ncq9GP`XP&PGAbOY`IbsMYn107SLB^LjSk4Q*o#NEsP z$zdj%ujb{aJLF?|Ty2k%xzew;vr=dLU$5aDLQMv;7Rc-#UoB57hkBX8SKKp;NhE!CCxEJF^wP_QF=#9<9oz7I;}+<>=eZ)!g88_Om7f&3LYK}L zhL(PkE(66(YBUNcn9KGFIcIJ{h^Va8_e5zx`tj3x-Iw?(-SqXh+8<9TOhXR-hmcg zaPfKsihIp@MH&5FG5te@jsmVggK{URLYyzbV!^qDnpc2AMjS4UgpB6FvR!RqiJ&sfyjDI>`?@g z;v?3#Z2aW!^+l2x7S9;*yrA{>QT<#iyV*Th-rIf-z)}1hktxm_BGiY+%&z|`#JN{Le&tQ zMUd;rbMG)4f~uhiPsZB2HF6p8TU=}(5d%LL^-@u7D=)x{<;%?x0En}cXK{|#4`=L^ z)L6IIrAeCjlz152B({wt-q3*$AmU(43U*=1S~%-Rp+r5jTTZ=-;TBm4^n_mp%#8IZ z42abR#tTF~)BVf+&fRa8rQo^Rb>M&~6fLaqH1WTUY6Vl;_F&}@N3tJk4bBWrA6^0N z&11wqK|DLs5pb(|xS`YJ+GjtFLlp*R=|MR-P!yrMNK22y}RR1IJdyJ`9=@u7&BPv6F1v1I;xzLc~8S% zDZ`JRGl{uK;?oKC9h!{@4MwcN1496yA?E{Gar#pXA_ymMJO<%JoAzRl0?hR=c;~8m zjvOnY+LnImIFYds&SYAFkppaZ&3S&Ly#C6LT(ka49$@Ty^lfM*3=%^tVTjnhbC31P z{(Fp7OF=E~sbGyr!qCrZ4K^B4+;_zm`RS%SSLdvALp3J5SZu0n*P+?0) zDI1Q6R=+OvB19A*GIHk9yza9EyFF?pYkp~}P#|;NckTfC;E%wp?DbV^5Way}P7^6i zFxlOvy>q8)?_6We<#`fT!(53^MzjbbgD*JNTF1H{;S;i{;|`EF4HOboWC5dp&dFRh zthDYs&bF(xh|}HHo@Gs8`@s#z9lh8RjhErPRXfo8vF5!baNkR;LzX&p+@|*{d07d0 z&dMFT`nzAn|A$@$4y=3(pLg$mbN5cX7}|YLc+&Nrp~2mWAwq!9(n8?xpPtHd?QVxz zwKllW&SKKKyDiwdw>3DQ{w^HK+tJRspXLv(gz;c^5B2abZqQiu5c(LTO@E}gH-4F$ zkZsL#@b#(jAiq;>u%u&hygAQ=F=nuMB;J%V2M!Hv89DpIy|I+}{IcA*?{r)zgGcd} zt`vcyGqO8HYgb~dJ(?qc>E57W7{901E!exWn;6PHm2O6%N&>~&kMK@y(tw#w9N7sN znZoYg!PfvF4Gm+}%Q>9#Wai7s-Otg7=Z0RR4|@o5UJrjLec3{Jy`_+hH!k<3yd)51 zZXVc+tLaDdfy}bB1Q)@XNv*7OkHP3f9?e1B#?C$W;uVpGk334cQ0OS55bcK+o3nZ( zp9o$N3Y$69$r@z(VKj4)9FZ5KYjqpPmtkDN9uYv8Eqol@NN-9lb%ghGe|-o}HtZf| z-9o*ma#OhJdrynNcd@w=W@}pGmGkNEFe_GGBgSXN^`O$X_LS`+idyS3*7wE+LLZ8B z6sAJ?Qn1j7_E9b8{gnDeYF?#2D`jGL=VSa9(_$%aVWoSp(p-u2C+jOm9Ghk1*JQK! zH?eH5)2Q&yVYhrX+pt^yJ%~uO(t#msUOvvt2e&4lSm+e*elsfrOOK0dw54f|Tm`~b zyy9(Y_f3S4zXybY?RBzyS2CeEnD{yrKmKU_ZPYRB%{vP=|j7%iemyo%fmky z4D_cs>%P7nub?eBgEqlTx3T6AIlNgbva%BClyPQXV%EJZ4tqF_ri}`Txohcde@xVO zBU+Zj#k+gv=)|kv_%Yv3S_G8sOH0YyyB7&%(e`GDC1=sp%`d3Q8+-hDe)GFtv)w_M@R!i82QB8tLKRc}!8d~V@uMaR%*NX^1UE-1Y+WjVDJEH)c18h5nFgxC@pb-Q5 z?~D5Hp#JOEG$f$^!fx2j=aMV)>EG@vxRnC_I&=@#VRyphB@!}t8$_n3*kZf}$LSkg zuCG)M-NWYWHGBee8+Kl{CfHwJ>*ANN*U_J4^3=|MJi)VMX0#Bu@vRdk&KMk07BgmR z*uZw#J*fGRpnTnr^2C&TpI#w(-65}i-GxUy;VG@$^XW3JBXIDm)%U!aGw^Z5nGfFxHUF- z%VEjDMjMw%%VfeII!EcAr3anNQ^^3jwqk63>ZTxsenB*!ec>m{y+%e(GFIV;HWiGO zbol)1uq%&f8JEhmiT>fWWj@b1fZUK`;u)Y`P*@UyJ^R>oKL4iu&C_^0Vr^BG_e7I0 zV(Vq-7^Pav$^)q_Uw1o3N$N`5blM@ta-RhGC+bItR6(81G-96vUCS$^@e@qZ%Fqgy zsjB(Bx>-bJBX*C$O>@akY{GpH^Oj7DLn~7!Wk&QQE_dU$CpJHio|X(d zY7@trz@Z~fs@SlmHlQ&3?Ext(Ou1a-W9=0?Bk`kG_!uoCMDv+f1}-?9!Xoe?C+vG# z{Kn}PZ{ti+98SUB*Jn%gZc&K5erY1Ge7xgzT5kg}fWAH!IruUca@GFth{f48KQav{ zo@+#}B4}vvYg|w(cF0z;?^m_N#bFOV(z6-8X}ACUiac@bIz|l`Yx}0KN8N{~Wfouq zTjHpCdGC#r1+1{6Ngc(&Iql8!z!uKRzXjw~)=j2R-%Cys_>H)~h3Jn}V`{*&WmuswDhfzmwpW=iqbYeTukXJ)keK})`VWF3E zK`tMaVXc|x;j{F`n|qp>;0E}-#cPid%IoKr>uuTaK3nO6RC?m-*SwX6jo9U0hTmcw zamA)mm$cijq}{@qTD_$2Z<@Vah@YlOpwZUrqcX+l4$OLjj@gAn3kazfNwW z#=5^rPeyEQE`yFyz?o|vLPC7KxYfX_BTFYlyY_jx8>FLL@|t#I{G=QrADL?KWjCbO z+u}cR{5T$*XdF)u$T-}3^08gg2nxrm-DWg+p9>~& z74oApS4Mem9Sc(W(&Ptb7g)@Tx4Nb9@l`x?qt*Kv)FJK&By%rZ-c*jiWf z=UnClMrnDFVrVh>n9;`XV;BVI?h zP6mT>U(UZCIhtog@19I3cb$z}f8`Nx_S!oaiFQ5RXeHc{Mzk^bLBey}xYd36PqMn_ zh*7)E{#adPy>mp5FzQWX%|>(~C(>GQvHp5g!|&~>4yd58UCwJgb~J;7&rH?3B|0_D zb2dk4V$Xs*+SqwJXmg%l$h*Er!cq}j@2e-sqiJvV%Wx%0R>j;=eg|4GqDaG@_)HHj z{nM}RTkV~Dl_1iI_QU##_QNB86o|cbg!koo*>bufq+e^p@eF#h>lO92n5MwLyC>Of z&bB^rN(INRJ!@}f2ECDusFW9)3TkC`;eib(>w7Yt!gIj-$np1`O7}!ldG!x6m5&}t z_o$?3`48FMI(j@;s>P#r_?|_Ao(P2wn{oWE;C@*oTpW8u=H{cH59?`W{MK)2=JkGD zKERgyYx(I{YkOS$4fWkS7=<=GEwALLfC2WP=H4&~J@HUpcBJ|YuVJGb$NM+|IBX8t zTQCkHfBwBd1nQ&p#}Nh#i=i$$)At5??s&oQDsRHCyz zc+M5!BFy8YhrsJ6+ZS=3`t@?Yu<^3KvJq{|Ju$_mk(BLx>PaCknJn?oXA3!O%dO1} zkJjccdu_(@O?x&UK)z2H6~%R9kNO&7ItgH+qRT#H`UhS-MT6N5kA!WZ4M7y6$& z^%)%^fqe8(dZDqvWB1N|6YZU!NCUBd4Kt!WDARUmq0ma z4>lQ(_Pa?MOx|BMOe7~1Y_XCwf=x$kMw_42%@~C0wb$-jB$Hd8mn1f8juJ_|&=kU8 zy?KKw{c6d{uN&x3@zOS>F?#57Vjzb04+ar0Esrs+d?=2j0z4F@AH2#G}~P7@WPk zJy;LxSN&jK5w&XDz-o851#9=V23zQFz4Z$;(84jr7zn43j-^yk@=sA}0> z0%`?;a;Ej8x3%{L`*Ea!`k%1fZ}kiIJo2ss^Zer~UOBGfr*y?7?`nQcg&=$VEF+xv zH;753K@P{|Sm2b;CwwC{2 z&GW|XGTg22FlgIs&>kZ0XWjgEhEG-(LVxL`H~rP(DnHO)%@au6fU@6w`+c_PL_O!} zo-ceSvyYY*lI*{l1L@uvjC;PoHSCJYP@xm+0)6FsO^I0~qS zH^m!x+yE5~_JUpXceV}h6c3@7C0N)d?)`6AjhuB~{_|Jv8n3zf&pd zdJRWM(2~c}BCGp&W}h=0W*g@Bu{>QoIs!i2SyUH>KHKCH945*3@0I}djOW(&Lt{CU z?kK~cHn4kY;8tc+bKXj&HlErc;=C1jFN0eRg@P=|g&Y($Upo^<~{O-Jr&S|dWHy;#7k(sfc&|=)<*ERO7Dz$NYl^jWm zHT}GyLAACF9$71>_fYiZKukZ-cm;N7BS+lz;LXUV!@B_pL9E!k?!7^+%U%fZ@hi~JgnV`?fVN>O=RB> zFU_*=|4lYPcV&yV@5fBG?;~hYmVN(SjTagF{;a#Secxa7f3xp1i5h3$|36#z)ueI8 z`Ty1yp8+FV+M^v#OZ(o)gqHR|bgZS_m1SxFJ8XPuOZ(XZMww;zfDJD3kMv26`+qXt z(!S;%HkB9sZzgs4ztUc)l9pDtjj_o8rzZ5|&iA#+m-Qrn*>!+#5#1GR1Rc67cqN`5 z;T#w0kzkuUZBNJhr-SU_!1naG2>P2VFJra(3b)IlON&k2wx`#5v_GNlTMParwmltv zNe@bTP%?n7tr#2I)7=x;)6sooWSYS~PpM#R9oy4M#z-5~(^hmU%>zs$Mz%fOHXb|* zF{f_4ddt*QivZG$ZZL8D8Ic1f=ZM)Mwp6Scs3GR7P8ZBq?H|*#h-_rjRrquJU^5A4130k8@F=8f9mf4gM(9{$ zpM|BB&sN$T)@vK@15UKkeaZ^X$TDIZVrSeukIlCAITK+U&ax*&wVO9F?YNJI-=3*6 zcp?mE>*KGEYwOwT!1wQK*kKNKeijc6mn+T)TA#DmhiPWS{)POU{)1b zFCG=Lk+EugLz}G~z!kG~U6$EeL;COc(kA@jC~L|gdl7j%`6TwnSYyn&7{gd>&Dfqk zV?>|zu;SLvfb);>RW!7t!q7Pe`*b z=oY9p>jMQhQ!SJ)-yn9$XvQuH1FYSI*d_HXWf&xHlAjQ`SGzR)R@er~oG&t$TAv~6 zrr0Iz2GkurE|;yPxCi4pTshY2hkQa^5Y$rn7z<_M^qa*zskcYQN}0ZN$X3c<9~NQQ z4LiQ-a@dNyPGBpp$`__Iyp?JS9W#5ykKZ;DuRNiVID&Vo1m>4-PT2inQTM_6;a;0=uk>q81sx(R~xt#2I@ z(;nYOjc4q8Znp2;M=ukf_}Liyo|z5>$0okSo;7(+M!}*Gv4*~5VtL%VhAodB@Ti2z zob8SolX>h+u@HuAh&nBgUmPB@E)&}bZ#tok@TbGvcoT!;ZV+^BFvN*Zp zi2MEj1utoSOxFAIL#ec_4DWyc6KZwkd;e8ilXY7s^OC=hVKKYfz;C76p5auMb@B7= z^!Dnn5+$!HZC!Lbtcy=!nBSX?JRpz0C)UMhVO?amLMU}i6xq7??rjoz7SV+kOVGmZ-BJ{(OMviCjLDSRyngT zbd8$6?qk#av7Mp0q_V@xC_Oa=)Vx+RzuIi#J0Sg)UM6=dRzYK3XsqCXWHg_l0P@^LEFiv5pT@SXD=BT zNQwX1T!vzQs7T$;L)aV2Psd+Z7yHWRc&;r{3kqX6TuJlr8m)_0PZZeTcc7SA z<1_orC9rq|&8xh2`i|Ta73a>)zT_YH{$zKdOJ^0}MM+Dlw4_0*dEdvT+u3YNXyZT= z;ZWOUJ849QIb42b=wxC_m-u44!tdBUmS5uu|Ev6ZZ}=Z-zK53c1Le)$P@Y=gOTLYR zh#D_`zD~R4EId}hGoesA#XUQ{n)t+VMU(r-fIA)Ag{-x#C}PS4e0qr+Wme}6T@ zM9uMX&fq|7XMeSqp;YY&`^;vqNoa$c_Umwgy~$@kn#1!LKAbe9)d`(Y8af&(m0nsz z-@5Yr&~zkr=n20U;TZqri#_2t?F1{8zT`i$@53~6`-lQn``^!}zuLo-$Wb+ZJt69t zM(;NX&Gmc&JfDD`&-nguZ*R<0{4|x5W&hHAeChchG*V_JNu95PTRg$=T|CT6kNok< z9~pb4U;YH-Prm#qz@G?GUg-OD)Na2ET_V!{wXV4v(HrAyD=U;*WRxThj!7Vv?KYLe z!qsJPm?hyW`bYjT$%q~U(YoAQmLlx@yiUh=2fC|cry7Hcl{+%>5hMBqn3g=TPFV1$`_H>vIWBb>gr*`R>e8|im*+FFg#UX? z__iC-Q^2M;PsPKY&>WT(XPz9Y20h=}%3CT`CsP97Of7n z>H-W6V?H@v{WsXLRyG2NM?P#sN5z!ZD5ZmdA<_&p9ZK_B2^t}jm~~meh#rD1LIZ+y zJ1^eTxC(v#YCXqbCXI`|6E`oKmFHL2_@2`GRz(~htBB;x zFKl1!_MphE#IV0GB7K|vaY@yUFqOF22a8=PR7Lt*qE){{PYt~VB3R28E*Ep->;sUx1k%K8sx(ODYH=1Arlz{ugGGR6c)BdL--s<7WoKQC ziEn2-`vvOu0(6@h<;O2Z>YsINeHh+8*@*uAnEu|mo?ez$`Hkq^Zp8ITu`*`f!et}) zXmz73pDia|yC{zl#q7h`IDb|V6rEC4s;XwN3G{2!j(yf{c`w%ee_i)qwu`voI__TgiqIX#s%Kr? zE2_%4&PD7AlYd%#p|%o4(Sf?KiytE7EOiySB$EoB=p{iGH;jkrsojV^V8d%3Df|Uy zwT}lJVl^mH@}QV|I*vi@bC%4fk`}ZvK4>6x`&!M>l=a9l(F|h?kEWqREY|T1A;!MB%J6@JUbhI1S*Wl;DG=B#A!-WOSSbv@wVbAy)0! z>A*!B$n&-7F19u9znOBJ*Q30eb~#R`)a8BnlOI*Rhu)l>&F{;byrEg;^F5)D3RnHNL#(!22|p#G z1L%R~o#406%QG|4r^#V5@NvGxO zj;E{BB1eefL*3Ky zYOkyZ&Gy84LszIdD+yw7lRIE|wEQL1nK1q7}w=qV#2fB|Mm8`_dV z+hgS%STqiao@DJCz5c9hXQ>)No5X7DtG)-hdks$0X!6L$(nNF~mn&1$y-wxyo+c;0O^%ekgtNJ z|1S+Q-sCp7o5;8F#Iz_8o8Hxp!PConIuC!G@FvzvQX%>e1?NL$_^TT>Pk*P+FNd6I zPhs2;?`#jAPJ#upDp9w&j&6x+7MfL_Z}z)B{;BPiIW9*$9K?&6?LkP3Ps=GZmbiyR*c7`bg^?11g`prxIR+Wf3`D}}+ z@}i_y0%z3cWEw_@D3VA#+g%^$rT09{d$z$-2~53e84=cNMT9O8B=-d~m9lFj|46S3 z(py1W`l_=^ReO>@rB(1amtRU@^*`>irhtmu^wZ{#z)MJD1ZX3=NtV~EzQaByR3(2T)`;ZH@`y*aA%6>55sDucm=u~}9otgZA*ch499|^NHafv#MfcyFw zW1XgTW}l{ZV5ufmsC1yKN$q5s`#pVCaI^M<7V>?U`5rT05-{=y8c3?ri}6K{lXkRL z-nTL!8zeN=9>QIdGfOumo;xfT1Hy%RtG1+w*2+Qv60=%@GmM*F6n!1vo0M#ApSg#& zr#UcoOPhO=uQMd7X8hh{ia-{nCW_7@vH{Tq93Ez(AeZa>lSa4QwlKL{KSVf7|*aMZEnsgmuIxXf5 zLe)y*s-?Ie3`MLS)U7tL5GC29>ZMoZHASJbd3uBuFWhky;rL299N!G^Hv)d&IyH&J z=8ukXGOr1k4KQKOpxuoQs2U2ZdT)7+H@wT_Fc3g_m_>^8PGh1TuN5O`B1+o3nTf_7 zujR;lp2QHn6a$8cIMiiw_nf0+(Dwzt+`kZs|I(+9lTT&|KwK zmB7Sc_ah%(0%@d3xmhe02dffByBV33T~p+TpR=pzffiyL)UJRV7aCsB7u#h%AO1=5 zpd%hAWDgTzw>_(zZ_lxN!t^CP;J=9dPn#Mb!uWWHeD`?k+7h0%~gNLDNCnX#btWJ)o>9;&nhE5 z;T4Kmi-8bgKqiTOEx$wdRW+{&!>MkOr}`2|*_xFnp1CH^mHZjKLPNA?|nI zayt)txYteM)uF);Z|`~ywvF(IFXYtpQpWL zX^zZb*qb3S_n)*_b&O3MG#*E_8(}xw#5Hud7vjbV^$)b|<<95&B$#!bhtt16XhfT7wc%7v6zf%jxfl zO}%662Ij1~9(0>#0FN-<8&CM7yF$-(9{H3J<3*6boeasUigd2l(8H2N+7mvB{l=No zei(P3caDMA#Qg)%90Xz|HPX?*R!KNHfTeUfw8Ndr%{USLE3@3t{oI!qzQ$=aES=?P zXL3CO>sfnd-t3w2Jaq26>t?0rVMO`DHI!-YDD2G%r*o$mBn&)%*YWsf-Rr-yJIXQVcUsT2@Lsn z9MyB><#u3aoxi-^W2{Cve;gZx4wjOnZ>(b@Gb)%1=%|M)Xsd-Cpxv=7|Ig z&NPJc6OK`E0dh?Sto!i$;tIU}gHTWOwq?{YkjL>}b7CWQr$9E4I8PkCcx6nY^xThT zxBa86=me;_#N$2gc`}Wc#4S^hxu1IHx}~ix$qpW zmJN6>Gyi`Q{>&kglE}S^^wc4{(`xYPZ**xseds%RfSlEk8fWj8NXkLe5kERI(+K&T zwlhVd3GI~U-z9)=hdSA*9_C%7qeV7rm{@{{WxWf) ztCzHsH5hKEJ>1ze+~k9TUuk<>^ZeMZ&{^vU4=)Lr&GQ{P0)GnsQ#H3xiQ+NyLwT>+ z+>%wk1?9!;P4gE*i;-zlBaH>uVI&q6h<`?#S%;YmDUH|6%zkYyS=?U}!l2ECO-kA; z)G)MWtU1d2jm0C@tm5#WncpP6hZt(9bqHaT{1gtwVSBCbt+bO9ZH!m>lTX@0X8eYksdZ1gg@|W(3wKz6GYp5qHm3RT zezU@UgBH}B5K*pE9O7$aYa!?La`t+Jl}8rDRe_GnaT@=RDFJ6}Z&JAqJ(%6p+n?d}X?zWr;^^hypx^+yW4}4;MF4_%g^pWiH zT$+Y~3U%s&MuOM7)Ya^$L%Q1)+3II=NFSQJc{JrnjKkjl!i!VQC1zjp)>M_pe9jy& zFZNS4RI=lVdq^mX^!WR9ehVLqUafqykkrr66qSoWy15;o*>F|lv~#K%eg!A1YkX?b zY;zJ#xKY}x@v0_Y`JS*hc{!fVURB*#J{UfP;OVI1fz^gEQp2=oPmL)4px2mp$;#^&sOHWmdMz+4% zqV?6wf@-mcGwd--yDpk`f=-lu9TIIgH`0g4?#75_SBJkQceQI_VydRM)YuG_<33nE z82T6%D-#k;Qsvq_!_C8+q0ZzG>fIf>uf)UB;Q#0C?c<}WuKnRT$q5WFdPW^>)Kp_T z*2G55*i>Z!2;>D4 zu(t|W+bF)^OK;~eqEu=K1Tw$%U3;IIGXbo9{&@U+3}^P)XYIY$UVH7e*IqC2Az7g^ zu#5I{YWb@N*56BYR$*5)-+?hTEWp?PjLOodsqr3CB~4Fje?eu~a{_}R1oisa2iBvb ztH!Hpk>d4d$MQbIr4#VE?$_wmr{i`S2~7j|D^PEY{axw$r_kIn_HXa{_4qwb{f>SikynhW9(Ufhx{Q!M^TiK0xUpgNrZs# zDTiO=kqf9nCSYulTJX-N;*JZKZ0k(M#o8XL8!@WaeunwobWiB-a7yr?(FcCglHxyz+e4W8tXGB``*5KcIBY@=oNM=&YWnx*p+)z zjF0+_7YgHDkx9l2TYj;U8jDqH5tAm!P86W0qBM|noZ&ho6dP*#@p>K(fl06F8_NTb zYYLX?DR&rSCS7RSR5epq}Rbtz`Ds@$hjmB2bC{hF8tyGkmI{g>J zY{wVdP<9n(ZSY-Pgxs!O^3J$o^yg3}wfdV_UER(;umIPpRM|6FNnIj6Lu#?u^PfZ741cTg232PJG{}y<$dk?rl^OHs$WY^6}5!+0S}$ zr&c^~zsbvYYWBlgo-@vSMI{|aCKg26s5{gJIV;jP33({QWuET$i_C8A(`233yb@gA zZ#KHkMvt`iFO&BDmD0W+y6>{`mratUn@chcXz);rdF;Pc{-n>J@uern= zOUEtngh?)IPDY;Bv0p9v25T|HIIi8Cr{g7W}d{5hVSNbv%!?~}AlcvdRYhg%{ z(&Zx7RYPK*3AUkpFhVt2PhvauC}b?1AuGa@9ZcZiLe^qcy6oIfn8X>}iNIj&Z^f}c z70QG*HMVnaw~5J%EB6$6t2Irh%{WxUnmu-H4@+dz89*g0ksk+pOxT;gMqOz%V&`d` zIHB?8E0I2dK5o3F+5FhFxC6V&t8mdQCy9d-KaVd6Mr28;S2#8+X1@AlpMdf`Y2XJw3(?+Y(!hI085@DOW3) zM&g@=uB^v+lfPNq?juU7PgWUhU9|frd$ZY~^zy$D&@hd+HHl0V5jI`*!XqnnCGk;= zuRr9$8Zlx&)SNT0d=Xlq4<|myMaGH|7a!`HV}Cn{@ACCy#+}&3s5>ouvEOlg>~G$v zw|hsC2)lPLtR8Q~ACg9`HOxv{sZ+IXQ6Q#y%6mESRi%;maRJX9`i@lw*3w_gX54C; z`fH^%cWnuJ++SPjlEbVNh2}JGe{C86uJ!lVR`6HP`R6f7Mm%&_AQ<>%77!7)YiwY0 z6j+n`X%;eR5Nc-e7MGG+T+5;jSOhFE)MMDUOf_CO&gQm8Vl2HJ&FCX#dpF|r5 z>nQ3tYVSrc=jgKwCyt9gC1fm>?=dI6K-{crBj&s1dlQ+C%UFcj!U{@ntgG0zMfNEQ zXSSqly0-j`&6lgSIz79rO?b4Yq$M4_;9E+q4y>*@_NRi0G!Gr9T$2?+lPYJtbGc`? zwNRi-BRb;cK=rJnX|5$_mGojw!xrh>cn(}%MP;^+OKK<;~A0o@Z7%uSuRIE4UZ7y#q0GC}dfSLN%et4Ym!mu_$sHr8kL;Q3W!wmTX+hhA(X8(dR z4)X|m`j`B334#_0$EZeWeeep8u^c%+cxvl>!J$ZD0}TfOWWvw8%6rrY1<{RmnitgE zI;7Qk(=UN8v}SMmSq$G=0?XOBq~$ImT1m*#vVqFm?Q%)T@%iDuqUC$w0vmzdUyx9L;MD~Wan+pHAk zh?z61Z9I~EaGaUK2j%elYhnU}?M~{J2WfE?2KUY{Fh^`qSa@pxn2Jrfr97p*jE$HT zOSiDe0Mk3szV@m1vf08p(3(U6b7MvEtn!nR1xpmx-H=M$<+RV0_Y(_f%0N)+E#)ui zF<9s6s1~=tW#o~rz_uXCKgL6_MSYpx&cNu$Vw%6s1CxdnGt3klCz*q>4HZlZ>s{}C zR>apK`TX0qhp9jhiO@rEzvMVSQBPoV@@lV`?~0AM(kI#H-FkO$i?IU6@3lnCy`{ld zI!}Z_d?1-B>Ecl=zlGTJ(c}I-AVnJ z;6TTCbD(^a*`u0iHoYoFk3`5}i3H+MBlV~1$i%YStdY6qW#);d2Wax9dNtUKQ6u#2 z`8g#_WfAY3IxQAIar73ykJ)+oZfE=iT!)PT6apcySEu4!R3_?+Ir;YJ`>3qEtorCx z;~Ujz0g$YH@|e>u=MS5&>uLmmf|avKv(cp zTI%H+X%!>pi_?DW(!j1P{zAm5UL#bA#u^a{(QHBAT+Dqa6?HJPT>h~uYksEiSI9!y zMjok8OviztL`*F)`^rbOtwHpdW*sIV$r`t@jLi}-ux&x4Zd=9{3oU$L3YTvoWHu(7 zH6!`!Y%>I|(cE1=WNsbTZN!m0v03`q!?$0#+aoE>eHU|5nlo`9f@A8Lwt}|ojW&PT z_EtYMvuDDGWMUK5AbvNfM5zeU0F`F-Z#0vWz=q~{j1{M5_`a;vo_W}NG*L%iMn{ch zvm|cY@!Tq_Hkw<@heFgl7~i2 zovtu`F2%<$1vyC+72}vtY5ZK8hm^;KJ$+&utxlg`!t~h1M+0UiGM2ez`nLo?;Y8*~4QvZ+zWg$dFGL4LxL*C@ z_yj9#s_A&hAtUayGmtmOHhPU0icU7W#V>Vs1oT@Zz$j_ ziItJB^o6VDmN($<)%M1)ZZwC@e1#4)c0du~qm0;ojnX8KtDl!PMx3N^w552F3=yMs7 zjP)K#)aXh>`tFN4oF})HgzqN1Tq)Gb*q#I<$5&Nz)%j2t{8kPW5FDgNe{OQ+U`15S zz&v1!Hh}1rQJ9Ml<`=3CwK9}QgLPJxYhP+^l>9odo!1Yo!;s{cLJHkwqUu4>{$Mtg zxwo?_q0E~WUM{Ce?Gpxx71GI6iOFTLp`zRF&iE5E z5>lhB!~_KmP?jnv_3{fam`1bC$6Z{e?Cl&Z@pEBhTuvBXjvoi3vh~dvgsqmZ@TVr~ z952%!8_LKu^70Fh%y&y)bk0%3w!awX{Nl&iFWlDC@{7at>QU}h^oCrIbn8yk&fYWg z{TN9pt(Pcx1=fE+CfXIL9(9SvVb&)~7M2To)#O}Ok}wEWJc)`~%KhomwYbZWBw#wc zK?zW)3S2}2kl9ai@?hj5$P%kD?W+_KVA~1F@F~(z-0xgW5W(P?h}F zM8Lf(gX#GdvEicI{ww4E`CP!1dVhykDgx0t^i$ht7|O<)nu8pHOX{mt+|nB~sBNDNbg|DI6r6}5`d}_*mHu-KsNNyzplW;e<}^EVnUx%x%Qn(;RFQ8umYnR9F9(h9 zyZh2h$zo9nbKy({zerL_C8j#S3{f+g;Hn%x6|E_s`^ch3{6nCXAA=LtHoL)(#j zi8C0jGN^dZ6VMr*MY|ON4`j67WS(&W6s}6uUMf{WIXZG@&)lWvLky9x2ckz?pYSsY ziSe#TL%eHV3Bk_6Tv#NR?*GUyYR*bd*P>e{$1+D5akx$O6}srzyzeD|?08Y~vsk96 z;{@tI61$lLskcXDgq>sopV61kM@M8Q=4N)n)1bsL~5$sauxbt4a?_2p(BF zUzIAjURnBIs`R(?v%f)y&X-=6$d^;((WYtP#H*xtGvlp6&(c|zs2*}T96C6~^Tqn= z|GNJA>&;Djcbc2JhfeL@Ux57KIzca%&_6oJ(7(aZ|LFRn&=L1`?@Yj{lyDwnIME1I zUrNg|_2-MIc#)Q8RAn-lW0LV=+;SK_p&IcikeW==J#6F2l+r2DkN=yb4S`(nMn# zW4)+;uEfttF6(afdu~`>EM7~$S2K~s?_(;VknB$ z4y%r#iHLyUgPqs*#AcHdHM9AT%A|1xUzlwGP#A^~f3JY>963wDy2}A;(@HvTRZN^r z0Cxh!QdeHG?1I)@Ym(7-uB;ZgeLY|CDuEAN@ZFDy;=VNMx z!2cwH%D5^0As~-N<~C=z&AG6qO8V~UeqU#^NwE~&W35<)xyhX7jdl6VA2qFKo;B68 z<{q`L$&<3Fa{BN^jmMuFiL*w#f;c=ajxnMxO!7$g4rGu9Y=YTe%LyyFOQ<*_WDc+z zwQ%c@SywFT%Iv60J=Xq$oq9VO;K`4%Jb z2aI(xS3wNj$;Gz4Oof_k_`J}s*oJo7j4XBZc9?Ky=QU9_!ur?TO!(}Xs6sYVC^6Y2 zI&)d2*=u=5ki&Fu$Pso;}Pq*u_61^=fkTVX)`2rYV+Olm?~V;rg3 z73H9IvV}FBo@5iN6mtIlGPpf&8nSAbZ=K|Gqi~IChSox7BXOipHNM5H&5P@y0u=5MO({u#=wuySpJ{`b9EKR6e5I{z?2j z0FhO#aY?Fc?<2}x_gF$Y4zO&RHBN%`M`BzPiEu}owlyN#B0(#lvN(5)4Rl$r9?XnN zmrI4Ksc_)}jd0inVwQaptHaV0Yproqy$SwDHNo3VRYcw@XoIsQKlD@On z4KpP%#GdEdp9~^aC^vbu2T%243JyhsUwsWj&C{`N59}q?*FFd*3@4H60 z-{C;UI(RT^f8uc>*ZNO2HX??cxasLs@~qlkQoq@orHROQ>7kYB!9rNyB-D~wOme40 zNJZ(jJM^gP&^{RkIAlW4K^?PZ96W66q5Rg%RqN1$)4#K1;}wVhwle?QU4wbw&X(UI zd!6buE>QkMfm-_nQ7^$;|2t4|{xWOhylqVG*g;tOMmsc8>jW73sPoKaEZ9RKrii30 z2MB_F#%1;@MEO+>$Rnx85Gkoo6gHZLv=qk0Hu%ilSIz8QnOiQHFS|H*9+C0yg}NU6 zcf#PCd}CK8LLkC2WBG67+NfFo^wo!ph;N^|%_Bv`w~trf5=aU#G}c%W(m1ZYXNkuf z*c=-!jCc@PI`I`EZ*dV~wI`eHD5j}@{)5KfL+2wo1ar&h1&W8COXpV?D>ZPqvD3g<&AM$wB`Cd^I>Q@K z@LeN$o;+Zd#d_e-U7GgNsRW=WCWgVv7P*ifAg%(*3!xnwq2_&;!WPg2zhiEYtU zxlcyhzy69ku?{!B#)_X5NN6m7(U}r5xZM%00peBXC5x4rDPjNi^NaZSjb??^RddtP zKU1ln6}t!6DY}|q?WSKW3Y72J^8~HcWSol_o#E%5WSKg47jP;unm8UT2X|3yDV@yu z)ieI3YeQ!G93~eIeI}#@6rIrVOUExciGf|~uUM>%p4WXJ*EhF>GBT=fYez=1ldyE90!2&bGAddB_+pO? zMbG!ehlJqE>2!^FFl{RUg*!47IW3V*P03 zFwIb9|H5jL8^3cIRGC?`5+IZa=#j|w(Bn$$VcsM(gW zy3#mBj;L|UZb7!UixIyL5yoiD^Yla}`VLSd>Sm4df4LX_FLw($CC*9Mbmed+u+93a z3b1Z-+x$xR{v(g+ez=cjx0xg-+DDRY&$~JbWt?Msbv>8PsMvv5ZlR|)t!MW!^dqqJ zZ{|Z^ypPi&0B~|{jS+uIQe;J7^XflK*5K>>GbD=^P5{9Wn>frNCmc9rFT}hd377zk z?d*yAx`xa%AAXL;VbadVZkL6{|JV6If$W3@Jl3OB~Im_}y?Ww>YdE!?~ zzcyR}t$j;Po@mg;C>OYj`CpMq4v=YvKt1OAxhQ>ujZc`x*+bsj*Jsmmcc``gbM#by}3a&Ng$)JUzC--MjbA zOAhhd891t9iNkNl_r~V8zFE0M`R#ZP@3&LEoAJ+@tgR}>~)1ZFS4%rji;N{zpUR9<%X&mr7 z=Ug?x>yTeNTSom3=l_=eMQRp41by`L#@t-STiX;qL5Vs<8p%w4DpkVj?$#smz&uy>&#!8>9!WtjZf!!m*dKwqH+an(-DP@PSF<-fkVqGW|kzjcT|X(@LP6^2CvQECed7p6Ih;raYwN^Am~dNJ@*yh z3ew?Snung1wm(|zj^YAprXGGT$C_C;q(+Wbn0b$}E(74)^_lKEw1S8s&IaC}`38}H zOx}YlVEvQ$UL@Q-mYBZ2j+^e>JZ$u?onKSKGsDMjVsmNaSSn;=rE|`*U!dAC-Xe|? zhu<8%L;8PJ5|@*nx_+8rL~X0!?jA2xls;Nj9CbXlp|W?S2t`1Y(2k3ra+J!uSc_SJ znY`Zo=>zz2C4wOpUvJ*UI@KvPiS2xILul^UgjS8DhN#;mtce}Fbts1iD$zD=9ZJ7OFwMJUYj<&Lzr$BK-K}bk ze~;NZWcO(aqyT*CK$dm$K@~8 zrQNUneQ$rY3-mCT0PpRWwDDyG*ZlifBmOh=VKJ|XCVxfw04F%F%H1!vuu*6gD{kAA z$c3=eO;Y=}>~vryb=?8><1dKJ5|=e1?FuWg8=A7!m9lV`pWCS!T!a?2$T6Z}7EE21 zK^)tpnGLfRZ2)qlc@*e_yGGrj0ZR??WmV$h8nKSWylvuP4(`9HLr;ds>&Xh2!U3;I zWARMLk@|Qot@Sg5rj}W8Ec#s8NDR|QUIQNOH2YACQIY}1o%Xs|)yPuHIg=91M zEtfB%qbYkk?j_A%kM#$r>9}_fa_`RI-r?CQL3bJ=X8uWx&}DC8*KOmAH$BPVsGB88 zMww|F6#DEKSzZ+ngHKnWz6NA@N^KzFG{&D4#27|_$-u2OBT@|{C5)7(l*+CJ_fZ{B zRuou!4`j_;Y3*X>9`Zkge_k_R@;|1r7toXb$5FD8nt#s!sK$M%5Oo|=p3RHzz)>@>wSjZ0XBnsKS zkX;k9W3;U3Z|_QsvHEMH0_ydP`Z8O}yn|kHUlY76)OL*3hc&ShM-}&%sUI054o!l% zr3^CFuh8R&(oPoImpIpuOfb5m^&CC^emO#EVVe5Vg9kFAzJ^{by&GMwpM%GT@p#8v znAR`R6ao{tcNYSEnn)bUh~qFr8%qTVWi$C^7IMgHNF=7z6jYeX#joHY6(U>druiL} zzkDh|D0G%Q?&r10&&$RZsrI0$hNGmI7#I}OO3k74@gye8fHVb&5<`XRDRgK;+V;?oqw$n&5 z1AJ&gfx*~8jZjs?M&s@Nu(ABNE~&jDF&!Q?w!Zu%p>(hh&Q?LV>eNy5FiP_X1gsj4 z@e?A61daxcu?U+96@@aZCRQEeET9BJ>dp^=6FXQKITx~dyT5fU53|khu}?g1*7;(SlW?RMa=Fz1 zHq&TYRaVDZH+Mm0byR2YqtE7>u$Qx)F%fZtQ-N~A)q{l#&Y@{(B9lq~!Orwqq4KMc@Mk3ZB;qQP?JQZevc6ZpJIDW7K%$qijAr5vr`_*gFeXE5 zGQG}N7t&%w*HUq%5r5Rh#;29H7;)^+c#InH%hltp(f<`}nCI>&;!C~N-y(86KqxH> zcFD-Z(chZvUsNVN+E!N+K4q*g+mdd^p~Py9&Fyc>g-m5(PELX|4&t9cYt(1GL-ZWW zj5UX-17oQ=x4pV+3Fm}Up^@*9cYxH*@lq2JS1iNp}k`=Up6y0f9-6K9{)snt%6U_8)v5vDO4jqG#5OH z5%|=!<#Aj_(5E--(_PZg=BxO$&0ht>z|Hh*a@ve4K9~P}OcA8^Qfz_91Pr~^!f(?l zqDhxKC3X^j5kEuViSLsApt)IiflJ1*>@izpRxJ_;W)McplCZ4U9x0Ig8nQCpD!y2g zHOZw;mTl)w_89S33SBZCB`*KjSp}6@$WFaq#GNclY>rg26{&2mhWCHk@t%2~ucBei z5no&=87`!mDfFG3zc|9`znat)?-j}%saehJ$#$O+$FP~ zq@DdzFYR7+0D^)_Iq;JrwyXDWP|-Qs>V;3Uc!3x`M4XLu&T;K1axMHyDKDq1?qTWP z!)jZg2Lh%-(K)43a|-(vYIwH!W-ht>ER|e-D7EjOvQ{l>{a{97SLAqcM=P>p4{9t* z(Ue6m9L^}D{-Kb?k`_J_9f|{)NZx{xC+l|(Mn|ov$hTs{MOaOXUG{2v%CVZFryO=A zfmc`tPNfHLH4osz!Fj`|H2D~ z`NZ=e64m^9EznL!ttS?uhih^WVBUTN5g+u_pkpG&B>bnB_3(%PZXaDn;dVJ z?{<%o35DheJ>i+j!eW(ma6eyftbUP*r1Mz_vC0%KHC}#MiZAydDN4rSq(z`*9!T@tf7OaC6H zd}7w9dm@YTbI|}cVbbs?JAm&UN3TnV`4Z{zeEx=?*2%;2tZkqFcRXXC|E;P6hu_aj z0^7mBX#c25>T7kED|eUH>8ox#l!qK_f=u;(f(K+Ueq*4O@JeJ!uP>tEL2 zI>`4`hz#HAZ=&yJnGv>QYa!yAA-)m2b{4MJt7!>+XK=C9r-hgyM}y)AHS|w|m|mIK z7Wul=J=}{{>Y*+4iux*!RjX_du>cFt8-_oPKvUEVO=k-ZU9k2r7r!dxFeFtM32rL zvXMy?S1Ei~7)Jj@LrCr&3Lx`_PuH-8XiZ>S0HO1-yOqfL#j?IS399o+eWer_B!9s= zs9kmdQ6R!pTXcl^lqo6SygZWUy;>sleS>qdMEe!UputAnXk z@aX0&y<3OMA<_`OrQd5QsJXn~Y-fMvMt&(p7j{-P!^&Iv@O_h$9e; zm@silsgZzUfm(;!8P|~K8SClK#JXxDKEHt9+`|>t$Xf{UfT~wTD*#svIK{olE`a!u zjbIo8H~RFD?vjmC?bI*-rgI{bWXoCjx0Gb{nVN^>RV6yls*b=W`B2&D_9o z9Bj#1^i7&fRy-aSlgTi9ST%C2T&nSa1n*Ooc@*n;q;e#T4pW9CL;I=oXt`P6&M2*f zJVcb_02Su|`Er1~HlV{#Nx@wQ?A}h~yio0if;f@$n$53CE$C(vg?#~1^uV+q)BLKqU$8h~1sU`NPdi1JGKJ?FqF&fuRYk51V2H9L_t7Q&t z^7#k$%l^>wzAl=JV{@41xd@G(jIdRDFuzKU@cS)YzPraJH>R$Mbv2RW@@bK+hO$Nd z6YE0Jzo}P5o)hcBM&c4^lzTx|ci$cgSNLVcaLvVBg&MDaGBaM5C zNn(wJN2w<3S%-OaT0@U>n`?1@eVNOph@0i-+rjFQ_b_(ttYOZQZ4RWq_I^hCt?=1^ zRd5TxBIlpQ_5WK;(tymEQt!#NXN&0A`cshd>dTmVoL&0*(qVZgOwC;LzMXUNkkN6H zHAsqw#$Prav6m4f{2Pg`Xc=v4vkBr2?`1nSDxmPQ@9A(0WJGNH|qgwmgLOMxA4O1Q;TeVzRAoexTMPQK1iXzuo6WgIHVZ8QldENb`raNLgK z_*@JnRkT2O%`Kc4#{N&n`O|388{Y-CVlN0ilvgy(>JQBUQ%&OK zY_D=ellY^fR}Qj~5W4cI#sMKmGz>u&=4dAIzuCeZ$t3ipD~e7qaxYlZ|$#_x#;8ai|HO@ zLTj@3<7A=~T1}lOuQ^9~eJY3n8in$;%e=;8&h!}Zc?VhPA@j&7h{TAW{5=VOtvR*5 zu?)#Q7>|-8nhCJS&XZhBP7bXDQUK(F)!Cgc=+fZ0V@6_g$3;Q5<%v|8(kgW&Lt4sigWDo!izzyMv{~X=_?%i# zG?{We2Dx5zgKe+W%XFT8lJAPszgUT60LaEt;)imHWn!83&24Uh?q%nY9 zr}YHy?vhyXM<$s3ETc#d?A=0jPU{W+>~eZfBr$anm&d^aTD^#@mB zcZ+<(X;MvwfshPP?QhQP+1jEc%@$}uh3`>af zV&S;SQ3!wF5m9$~f;f6&lfN=@o46JENRbbz#FdvBx6T5uSd;kL*KA$tc-+eq*?0eY~u zI*N$4HNn~%BmRbqm$R+#3YqqWpG22*LxEj*D)4{0OB@Z;yZbRqG_=eIy33A|Pk749 z8?_M_>X&JPROUEylFR&o$3on8xiQ5sS^3r$W|i8y)YMu~l3<~9x(LUs)PcsW>>5&E zz740~Qbcipu`D`u*S1`zFrZ*<$Vi+duj#|V+OUy85(leFm3;2F!}2!g{J-h0!6mHG zHR2QGhy3CcYAbzDUc5a;pAqVP8`0=YJ$PejqdMV5YWcgK$&}& zO5RRn87UR>JmMO6@Eg&itoL2=J}&r;$T8-d;wogq-IE<=eX&_r%tt?_#Jr;)Z)o@5 zn#nl$yqF9I+a<Ji z{gt`Bj{B5(4~pk^-qT&yX_?QPZ(CHccCkXE*qrRP&Xt zK)GZ4PB8B4iS0YicDnM$_8l9U5ZiZ5MW5}TztMSwpW%H%JSp0 zQzdugTofy5W*4z0EJ@^uE=vq*=6k3P z(ajicU}s*%i5Um-(?20Hvh!V&RX!1zVWvHgXF-zm$1UyNW%dbh*B&A}g^27hc_{{I($^E{;tiy#KLu)7uW&k%9~lFY2;<5P1xCxgrbH&++9^0-;dc2pLwJh03oE z>g?eZd?Q+x{=wTMdC6>FQrnjL@H5@@He22P7L>w@$7rmj2gt9g&P<8>*O!Nu-Mn-4HoCHZ(W7 z=B=Yr%UOPK^vmz;SJR>WS{QUi@1(|>-Xck&Tl?p|)^b$n-^;;)Wjl{trX=3(Y*qDyiNd(JAQ zFZUs+tKOq#gFvS@9=0zmfQd2UGPewPCnMmA@OTf^(YjR3bM$pQ_0_s8%a4#hD;Z{M z8i*mtqh%jas~p>AN*~EaQ;7!9nKwRu+j@7$!?&G1P~=+S@xIaSKP9lucrolh#deV| zd85r=vi)TGdrE9WnYo4e&%o)Zo!*j@r`RjX?6X&e&wNek(&?0+*lzapyH)z`H)$U zWmTdei2921O=i7cTt?@c$Q9-*>9OJxKRq_s*~52>x@vJpskp^2rZkrKi@KWfK6BIF zf#A@B*MqwkY!!7OZBuZlW0R;0Yu&+rbgV}_+WO-3i+o=jVQpZsJQW|>UHd%P=C7LA z25(eEi9~qs@yK!A?hlPqS*~Sb@D_N1Y|-E$89B||N$1TwAsECqdH;t`_53S3Rwg|E z0EQ@m?SaAcmu0oby+$HUES&2a2{tXiq_m!@z8gTO<4e{<%Ny8i?o6Mc=8LOF{Zy@% zkP=YM?f4}4scP#T+3>4$EY4)2-sF$8Jb46TXZLO&9a%I!-oo!J&N;0o`DkaG2oe`C zR|cm>_Lg`==a&N6&FZ}Ub#kU!*x#Vic5OX(F0D9R;a^>PabmEeNu9@kfaB}=Xof$B zb-xz|{M*rZy^nw~BI{V!##PiRfB%OB?<&Aru$l-Yq!iaQ2h}dAyPnPqlvc&INF!LA zYCv`R5qSxOBtN;1W1Wm{=tn=y7?d8@`cSK!ms$q<~T9E1+@?h7lXl#FeET$0r-|@=Y`nilX}ok@Wp*R4>G^z0zOZ zh--Yq>*#`Zm@dqtE&$CB(%e*IZuUwSmTGac4`D1)@}~`$Ae$gfCXR>}} ze_a*NZL7rd-NTs-2O+^N7YrTQa_Uk{-?tA%-p{mA$SagnhiWjWWFv}oH^}Kp&dm_n z5vm#_CYHm~q7UxWkvo(0t^G zlFktrGKbXsyk30NCg{dlKQd*)xP(})i0 z*~;2kQHQ%tHP7lCRKDy$_Pxsis0r^D4d-TXR+Ljig$O-ki`xDb=;T1QOk>BlB-k$kor=m5$YCg03J9dj@(Z; zUnr-%fMwSQtjsQTY}lo|VgKLvXn4KqJ{9z!6`WLouSz6Z5r*;S*@ z!%Duv79?vG^nU`?wx8@&p_@ z&+QmSI03vR@oz?};&Jtdr*R{+UcU~^!QLs^UkMqhliz$J)pwBpvPGLN1)dIga@Pe8GK*W$Auyq!&@{GeiC zN;`cwZEQSW41Es>-b4*xX_4yAN?EFjCdh5{)j+0 zk4p-S_!$~A2zO@sBn{?W-29V0SLQ{j`2g^(1xZ94I-k zt@E)JIlm}tK9{j~CO3cQ!v!uYEG=v_xiWTg%c|45xhXXhyBY2W9QXV1NJJJZByK}; zwkEjVwsVd)IB8TH%OBL(+D;nAIs=2T+13l*h5OGo;>e1$aQ|5{=5(NIwg0*a-c_Hd z4kz3Ee)d@i%LFBWBHfK0+D$v4F5=7kIfmd$DlzWd45C8}!B-1hGKOHd05+mBo)LAP z;|M?}QU!G<%uh*ZFVl?WIFwVz{cEeQV>dH9R>3E7E;!id=XT{6v<{+|)1fpsX7+Wf zf$$Jwq|)e8w>=GqSruE6cIJ$ISmT+3awY*EuO92-jEp%N{}a7mHMqhfV~$2f$0Xoe z(_A>;!;Vq$6J^m8*d>FYIzzmvpe|$9ja}&(9p9NYl2xZr@tSJ9Ymqg>2@lNvvxWcKeJD7hR9X`7WE;mHA<#0KPEUnH*5)0PNT*S|H+?n2k zYAh#Vcym`Wp?a*jX!~D*T=JA-aJOU6n4#MpHsb$zFz5EcDv?lyA_K=hK|QF&<#7E$ zQ2G)elzRhn4Xl(v*D6J{-nAfC$%EQ>THNU1k!aRPSde5JJfA;=4Zm{?;YFF)-fdk3 z8_o`UUS}Wt0=T%t3FyWHjEf+TJ93UE z5t}LZa`&9^B&P?ul*fdas*Ah-EJc-5MO|62zAQ2!&^5S7BGJQ=DDB8_N#Wavl`@`R z4Pn=2@5E9_?r39A(h%AHv9Y9^ z-YuH%#z7`x#P++5_y#PwHP~_mqXw&EqQ=MSGFz*m>;lgK(+_MW^n6QPT7}EBZyGC} z(J;E`g#Jlm$iR?2zpL}9*`JdY z{vxGNh!pt)L$qRN1Fc_hV27<|4)DPjj87eY?fg4BMl$SzTckuSEx$7Fjn)q!(h3Vay-6J_*2`HVedb?jTo8=j{(4*Y5Jbhu&A|~Pxe%S% z6zkH>eXz$ai**%iAAcu0m>7)AAy96j@#Rpv1$HGe9p}=~dY@BYhvABrLbj3BUN?Tf z@h5vnXn!cx!pC`Iy~W>&z7yD%S05dN?1y2)f|rLbI67HkkOPEbH*h1a=D^k=uHIu; z=NMM}0nV4fee(loDt)XdFzbA^;`_c>5A~hOPvkiJ3;vG2bKJ!`ulW8@c`E(a;GPBL z#HBOFa%kv?-1o^FjAEbmso7HOrO|&U`Vnp5)8$2)n^u?^MAboJ&V;VBq++i$?WH!f zJ~T|NqRqr+Y9>;|4FwC@cl6h>V}ANw@Yg}C|28;f2KQmlpMOzcSK3`0+lWtVB^HaI z%Kb>R7I_n!X%$7riEzD#c^82E%vJNcl zZwnH)oPQAv)@h_|BFyW`SB@lI#bABiI||DOlKLWLp{VZg`a@p%4;%aTySQIn67=gd zoCs}K7ZmaBRfP76C+Lx*uh5vbG3lfnUN$jQkyNbGl_+-T*Jf8K; za5oCTx_TCkd^TZV_Wbfu_L>nY4}V6o=j^fE)GTDUm>nExN8-oUV2gj2k<1iw&evIi z!E6Hr3XPbNw`peH1{g?0#iHdxPi((tEIUW%DXcR8LRB#>RQ*I<+tNtn5ey&HX%gvg zMn)58i&5VZ1j}bE1MSm?vl5#-E@#H*V{A_iY!+;{a|{hEQZZ^!CAncdJ%;-_8$%)V z%x?b>jl{Z3?1^iCF?k;&Gq^J{frJXlBb$q<(YC-YNj$+n8OcR1R_wLn3Xs58^YEH3 z)U`he&xK~&g}%h*NX<$$Z~u$Sm0DT|lE;+yB=y&U-tsLXobZWh&Dxe=`0GB5`s+UN zouO7;nmy?lB7Q{tF6i7j|gA}K%TKQo^RXZDN^J4QL~xGpvs5K zd*+>#8x-}IfCXE<#T~R7y~T1!JsFwnyoTpIa-tryXm}?U)9z7I{#h_(Brm~WHe%%@ zHZO<;wh^-0XpUzG+x)YQWQyLtQPfFC6(;8p|CM3WWC%5645v~K%h&=s084*RdTvQ_T|mP@___S z`%Tdku!zi*6cr=>aQQ%phea*3D}AGE-$=5HDB>A^Qoa{EYkCs5-g1nGnruvL>nNjd zT8!VnV-EaeZ#!ozYi8e#rt&Sp-udI{sabU-T1;}q zEZr=K_2|h-`T?^q8RxauZ55b*4W{<|DsRcrvTq$vQ#HeSc-T&n&@bbIUeg+y+ZI8H#TUTwjj&8e{+b-s| z9X&()c;8y-*4_-ZRC3#us_h6ZIY^al7ZzKO9LQwe9(a2IS`glvA{^@k>$2G90yO1A zqQ&hif0Jpj#jOY5?l|8};eB?UFqhyJ9kDt1xx}T;)yp@T;d2kfc9vlKS@1U2Ft6Wb zGr8%+u8yy$2IqoMW8L0Zk53Ryl$aXrsLZ2w$B0dqB<1xRNfyNs19hdq>GOjhhy8OF zZGdE8Cr_TutGzL}6T5U0@4UX<2#!NJ{{=z7ayUp+gzVZS3t1DT+ zh(qI!)sx6XpJD_>&h=;!T04(n_n~S;+-3Mvfj^Zc)aQ`3b%cp~RuDeY%le1t-1fjw zM%vc21hI3re>Ee;iP;P^{I+iVo|afZ=WVjP#0u_HD<%CGsgGcLAlLwzh#6kWs_raKAA?&HFG9Cux8BMiz`7+`BOsYv8zRcM;vMdl&?^Ay30!F04Pl&4}}?dGOO>Q z6HSZDnfL{vJu_x+e+U6uGyNe>2-+VimH%+mi~f+bQ3_Sce=6iZ)$$*CyP_=%wJqN=sNRC3&8bkHPcMQc2yRcwPwb1=}AUL&TLq@T9+GgEx&hn)VtU$}kjmD5YJ?FYKn zY*jizx#(Iyr~Oh#`^9{Y!(@J!Jxy`ch$zITabMEYu{fq)Oouhd< zk*7zB@ycGU@Q_+1s3j&U12<*fwzr>+AnNr_)Qi>~FuSn>?cVc*xI>o78j+*>VFvB$ zY{At?zwW3vy8n6g(of~=(Q6j%2a2KnV-f(mJS7J>@-TLt+T+oO#li?d&w9A;do769nPdQg<5-QLSlfAjv7Z+Wn zvluI=aI9oj3Bh^)*xPP8U~a{9^#SOfUt#}9*1)y|DR4^5x5S3V-s)2m?U550OX=BZ z4s_8p(-cecufm?gtw)-G6&A6u@*BP8G3HHPYcXL-0b4?h&Sj3}Eq6ECigf{OY^QF0 zkB3Y6r{!iXknBDW)->I`iMTl40ILmNI@?;OWYJFRIj|WknhqTyQ-20ax3e{Wze9g}&TsO=9|I%5BHB0IxmrDba8>_<>M$=FiqrvQGkC;f=?ykf^Y z67{+`PPiu4l}04H_W4tfZe(>RpCCb3Ua0M@+aK2*@sR9z0WF;VxLHi`z|Q|a8%Ky= zg0|xulzJS3hp2N7smYJTi`8`afKy0qSa#bHX1zHDXWag5&gN#`r&A|>k}YJZym>Wn zpDOqS>R;}Jix)wUSlxvW7qVH!T~Os|Lt3x66AMAxr1c5*0}l>#6c8M!M;3jE-@EBI zZ@j?=A>11AorSz`ng{C|i6cBNMg0=w0_tQ_ji-5Ktwdwx!=f=%zK2M$OgxTu%eTUW z_%ctq73?vVAvim~!>y>fDRuNm)aQm$aaplw@CAE_@Oq$_7PYw4Ce(kNX0mP;;0fo! zEcgMmqD@C|gA(xok7*0aG3E>1iPqT?i1fFMot!lDgq>86p78^WYN|O z3mcMh{Z+>DUX4F16La;X{v8qS8^T$U5Hq=iHeF}YOhM!l9kB-SY_ zhbF0lgmewBs{*^kO@7{tOGz+qC1!S8h4^j_1V3VElj*0woYpTNqUc9i`KSE(`C@XF zc$iJT27-vTjl&FNB7gZtF}Yei{E~dt(*gchQI43>rGwoCk#U3F?uf2Y<-u+(a`Ire z9zpW0QcjbTx8A8@^i=u;iWeh+EPy1Xr%pvsyRCFI0;{Yd7}2j13<$nP;u(pUQtC=6 zw3;cq9yoN##F?c={7V`Wh#yG)K+-BgVlV%z%Ox2tDmSsz1F4Y{>ab@OG|Nz!vcbgN z>uItVxQR{NF6S?LGcT*}7K>wPpd~bs$X0WKWOZeMU9`mD@_il@b;gQs;~HTQ^Bd?A zx9HZlMr0f|P&S(gdHksx*Jd(PjYqK6jcCRrh*zFKGysSHXhfwm=x<&=E%fd$D23)`0AAA~AW+cYb;mbPi0DmD- z5}VqH+!Oh1)p~h^9gm#%vCL1soK^x?0nsysm;Q!x+cFePqY}2M{+qsR9Rh*xBAcB2 zI{$t8Njn~fjCCSy^suG7#0jyX6U6O0;v*gtnHd{8&WOM7!folXM*LLC3GyT|b)VPJ zhmTF{Kepqt9#z#Wri^lt!9Azx7N0iqqn<8QV-x`pfbH zs`-~X36Q*D(FWIFFM~4Bh8KO8vtH@RB{))1)y$7eb%#oVo%{zI8Z{%)MW6J;M^4JK z>r3g}0p~%XE?!J{?Q!r$jD^OLc~1@@QG%OdWGjLpkp#R3(D0=~O9PuP z4`i^1!t6Gyp_|z5pKHpH=~YG&D#v7-e@1%RN@{vWcJ*eA``}ui@Q-u37VbNXe?@P& z*jO=96>$Erh5KgGn}z%4DbEebuaJp-?tDaU1)qy7ZStQX^wqg3khWBAvv=XXv!f;* zqO16e_EGT#`RYFGpIbfzoS&`Zo{3~wvo&sWCC z?J@QKXX?5Xz5wCahE`^8jI|w-b;7VBqoi8MU?#xHf!s@f4$7b+h6YYoLqo5$FYX39pCZ*!HhPNd`tcv?Cl+E<~ zaq^D3MDpMkWffv1?xn??di7)0wN#nCAPpl4x=PXplAg)ta?=Wxq1-)%%1Yx+e$a^m zbvzUq@fLmk42?75Yw*xtAlrb&2e=)l6o^17?R=il$7q9@ z>8$Hix*sBD&uE(@3}u=;L^R|1Qh6B&EHo(yH1ySa{+ExcF9#**z{PXv&N0ldRn7L^kS&ebW|`l@oY zR9`J>nE{`7Kr-N3#T}bQ@0`aYmBLFjd4bKV|MzZ(izaLkW!A3IOU!x*reS@7%p_>& ztkVuK0kYH1&#_=8X&eX+^gSODuxKqT8od@~M#oQ1>gVtpcnf#C59&-(oVQQ4&!JW; zmvF|A#?;>-hBueu?sRU6X!L1s#&#BHukctQGGF1*`V?CPi}@YxM!{Qrks{hM(jSYd zrJ}xA+te7`68$)MN67+9p*dNr$pa&!Ikrop`5EZz>r1p$at@uk#M}zYKxJxXl6CIz zzeBFS(X-^b{Aap6yQ-$yuueg0%r1XG8omCD)cTjV2#tia79;)}!eeUNPPVeFPJM@Z zZnYjbq-&mB*W65aFf^)hNr2mOom+}9m(VI!Stoo!D1#Y|q0~E|oUfo%TU&;qGr$+# zWWCHN1Fp!kd*~3a98=)38j;w5qZ`vFmFYj?B~j)3cY9OR{#w9}_Px908pcZRj0Fh^&dh52-Lx?-^W_2~Zh7%vpm#fbx6K|L|n zb;VNSVna9HHa6o=wB6@{mM5~VhWfPT2KoaCflNLOQ<_)GC~%Iw^I8((Vw>IRM`D}x z^iN4vP2V5eT##OAvLimh#fZF}@q3hi_`_=8BwSl(49UGe(4|K1>wKDCuiYZ+cso<- zD~VLNWqJHgn%KWLqa4;?GLS&ZK&5T9`X#wkI+9>e6Fxspyl%iz zvW=C%(XoL+Ybnt~>Wp0sr#dhQU0$<~xRLckSak1B)%;zp%4Z3n^(&gl*gj&8PeY=a zT4OywB)`n{pw4T)39~fa&ur*GO7^29+mAElctY!3_tI2+F5?(JL8C;*Wa4=ilMjpJ#5Y(lTM(Gk%LEEDyx(Cdh)ZTJbtgD z^-ap5aBb(2n}6$zG`~OrB6;q}phiK7_`Rz>MrGT+9e~cu0doC2fL!;D0<`M@n=1S6 zlh+bVYPIaupsx>lcepU11VYuVAq-?;F$V8O*Ord$212R!Pkp(T4`rTU!ne2|}-TZC#*wIty$ z+JL_FCgXlKH_Z8WJb$-hG>_WC>7>tb^7yHc0AfSqZ<|NFaQ1_Qo=KyoK%IGSd-#DnU8iTwc;P}`uIYFpzf(%Vf6!Yr8sDY9R-<%5c=p{tIbYk z7|U-jbY+90-$>7E=zmvmkCEIzmL^RGVLlvcw%DjaUZ6v815SE76fH8kv#K}>iS~xX z627d6t#;jb7lL@BVW^Wf%Pnd~tha!@d}AYYFmaO%zG~Y8ikOKUq{}J%o<2J$BTn;> z?uRLEGY;TmSbY{9htF5si_6@%B%(a&^|28;*#rpWx&sf$6Jz=bsu%rvQbj*rW@iZY zAfRVc*1j}#)B!E)y})Uih5RBl`#s$9iV*8r?tolB+GAnXLEbM8B^1}vu>S}4?L}KK z;%_sOYYKR6wB7D-Op-G;65?bnVIIbKG7}FaGIb46s z)>Le_1_!}zBQA)>V4D&dhc~eu2Teps4JWom#`PC4tElHg5K`vi5LDmj&>X79a0sG_ z`wf`dB$*(lVZ@qpKnY}#Ko@$ADDE8ifr#pU&MDP z3$-tD@yy=A2BxcScV7Qvj&*f|{O#_%>BmYmtMO;<;XUA%{fwWU|3})p zz(-YG`{Q$x0R|mBqXvyNYP8cfu~8F^nrUL4JP9yrkbo%B(tE9?Hf^I$EY=W$Gt=hu zWB_}yRZA@t+uQciVq0zuppXX;u(vgapNdfHtG06(vG@w%mHDslTKmi+L2rM*zn_m} z&pG?7z4qQ~uf6u#>tU51XP(o9h5Tc|eV-%MP3a=|fb<>tjM92rBEiVh3031ihtj$ef#xY2f4aY_AsZwrCJ3n%I;nXyhTGG-5ovv?$pj;te0NBAPP{Q#94JjMV*?(Qb&v88W-^(m`5b+cTbOY*j_ zkIH>GQ0=D?xQ0f6J<_5QiJ!LU^tMwD2(foQN^AQYNB9eNN8qaN6xBcDP*nfi;j}Nx z<%>H z6qO7gAJ4tdPVd<25pI;ttw&;u_lpi)d2eJmb(jm?#x5*R#9SkCTtLM8DO!rAS)wYhTIS7~fTX7|_I+gqyR_}u!p6RGcpEtotI7Cje`+!o#BeO=KEfADN8 zF>B=tOWVEU)K0S1U z0Xy#)fB#?h_h)&t9Fp$PjX&e-{m!m;@YAU0m3l=+bBZK~_)Wp)r`6_!ByeeL;CKAG zqGb4&TJVhDf3tHnj|NZ3FSCM^b~&&7O4To&T)405mo6@Ry9%t~BdS6_&^^R|edb5w zH41h=X~2ySa5DRejN>&V7|J%)CtoKH!7=imAuobN&s7^*)q3XM;xv`#si` z*#3xfn{(y5pB~LV#^m-tNpj2i1af=-eXhJaSvmI;D({3t-S3E*_dK{13E{##QYF2e zVK1&Etq-A{*dSXS?MXD_YKd4}WMal1rzm+CDw?6t?kwwjwB(|9oFIAPIBsT(^&f&* z>P?Y*VpqJx8%rat`g$le)=lEQ6ru<&C|1Hdga@#KcJ2y2iuBo0NmOIn`HDp#GM%eV zeb#vUJs!t;6L~XN^QY=Mpb^aPvR4=bPCEUoEH?it*7WaXPk|`l)WZdYL61`g(NChe zUyoj;F%q4Egn#Q_GGhhU2PV0ndgNoyN;kg8478Jfw%!2QG4fppbI2MIyCQp9&ootE zVTnVcg0qk4EAay*L^)GS4%=~v5X`b}g;OQ$B(ihr^Yg^C2VbET%HG?NC5#y%(KWMlzd5C2Bv zSB>x-W1q1GtL7x1+1BqPc;9rJb+!~-2Tr~Sc1-k#rQk*8eV(le8ETeMV1+$D-#o+D zzszq86z(OGUc+yEw}Phc)Ys6)#HR0SV1t<#>hrMicVDjWyv%p4|1j&I*kDV}8=c$G zif?F{&)8csQaC_RHwje!syygjBoNPo?R;NuodTD9(R$F}boX~!-x?9J3IF=A3<8n3 z+sU)vXwLSSbKJ8;UdAA9%Vq(*!E7paf~(i~b`Nn~L42Vp4fl zD3%-Fu2keqI@ah%ieRv!6^%Um-jAR{d(@p`_qNV4DB8BnP0_kl)WVInfoFsDsN5c8 zF1ANbwb-8gyDYZphnP&lOeRZ~oti{k)|}&f=G&I{=!8vaz^rwgLgAOQdFG?63-Q<% z;evfYvZYB6e)J9#3oqb*mmP|RBr4e_Q^L!L0j;>WEtQH8qZ(ty8!p{zkVMi(ypa*d znhJQFW~s+)_Rvc4KvN3&pp+ng_lL@kGARTqx$o4@zsZC~AMYScKv&v8$MJ`c0b2Ag z0bLC}rLDeKuRb0q*GwL?u`iXTbFah?KK@f`>nHzLZP8LFlSzfq*vEGQPc5Bf0yD_z zzGQ=aY8=VzGRNx_n6#dqJ(1*K4lum!cD!ix<_V!m2pL6WHq~Vi+ocCdc&LJDw=9~> zTkJ-4i~X~A>|1Qs27cjPM!ON_+jDXiFNl8*n}gY$>x>*~y~u3Kbwv`b=bEKR=;JY) za%ttay0Gda!wI!2yT$&# z@ngUD;Bz)J8(0;3#|_`~K|i|zm<@UK>+}!;jEGuYIgo7j6iiOt9P(hGc6>pY zF6Fbm`WMAcE0PG#Gw;ZaSBpPMZ4kAK->JqJ{398iS+#;uheSH4ueexa-=4s; zj=N6xsPmbTlIHp!RnnY_{4~L0B`HJ0?uAxw05&q;L*&qeH`4f++f%|(gCcB#IzBcI zwTEt*a|#S(6m~|d7V(S7FWt!yiPrBkC$#Mg2NtoNaFg0Yu7{u07$?f!on&X!3NhEwdf zN)FkxkEzZw9hq~jVlW}<2(V$t5p|A_uJNvQ2-h^L3PQb$Qdn^szRS72D&gYGljH!f@Rw&j`1d z1CGGV-Qjypk8=E2=eCa>#+@HGj4X2b-7_E|KSr{K@3pq4X?T8%yO=#RK*W*?mYuQX zFA4*TLv&4;uPX>#G2+-ZKi@(kKC$~5D)khFBsx^+Pm0)wn zvx65-3|U3MI?687BbPwe2?NbGZyA9sHJ2ATk&&JMfRXjQ|7cQc9sBiaCoh*MOqf?E zRX;LCIbO+NOs)U-X55q+IG`m5C@SFwaV=VwK2%CE4{N1*mfA!&T|q-;qG3OA^(E$# zT-t_Q@dYeJooUVxPCSD-@y#9)@SpIL?NCr5sH`bHk@>93mKa!S3farNAp^@v7K1JrLhZT?jdITZZ-MB1}#+Kc}nNqdp7 z9jVRJb4;;8Q$@$^IqfkaDI3!yS4@S&d;8d_7Qw&3w6>yxq+VtH;mq{AcfW9ap6oeE z;3CYPa4^?8_f!p&v?jZ%*-!x9HL>B~J^xyx?zq9KuFR3?IhRJnvXrSV|0>yIq&WK) zu4vnQIK9^YjMFn9CiK#N})89nuZ+TYgD~x=>-${DMA@IH_sp* z`4(2qpc8_F!-|UH7KbJqhMnTA%T_AeOLk5H`ZVZwgOCROoM#vlR*B_VF<8m=OM{gN z9N;i2bC6Z8GEM#}%2sm)t=TNMbrj(T(3B}*)@xGhi}@H)Z|stX#M0=D&*qZ z#uAs&;*J*^>?h9Q)7d~ptwMO7CWD=hlTrW2j+)Q;UY#Yq<}5@rxc~=o|M)aHPMY|E zDE+_6_BThqiMC|^3FJrenzu|?Gqhf&nk{Z~GI0z4c#@~?r06}hMBT~ENcn_RnnOC# zMP3?RnCB34C?i_F&t+6QQz1wbH`8zQz5>}Wz+tO%py;X2HTD^IAX-X>o4d-tlf%#N zbD8HvhFkA4=jZzNw@!@*xxYp~$(Fu-tw&T2$+R4i=-8D6o&J1Yg#4MO67t7qITk<5 z%yS0qZrtjBpq0AZ_@gN(d;<8-^mwz}ugsXUH7X)u16&i$dZeKZm}hdr!Ghr8$jFi< z#1%R_m}Fg1=jFbkcBk=T;YY-)qRw*u^>X2BhWOSt5lt*GB-(7g3B_B7L1EL5_@HH+BdKYLPm5f9VJP^is7B+dCwAV@wNJ^>u9TH2L7SATJmJk7% z4mL1hAi4Q<{E|57BsH`8euJdBztKhVGheAuM}z0`5uo*|l3rY{fuSh>AO%T*SC9mR zge)FlI#ze_%_{dWHuU7RSB{yy)bg0g3kPUFcSzA`OBK2QLUZN}9QNG`m{MLRBjvG^ z*kB1K{H`$1HD`>EVqYqxj`T%-W;9A0?~J{$G{NzcgV(dYnu0B^YU=zZOv;qt&#JLc zO*?`SHydyg%%%m-n5L&+qxDPM5pA3jOfSgsr}9!M zRST0TRSO43mP_FIx3E9)zJ%aBoa=zL9&3|+jN?3tGue&~lD=Aqk>_`mIrPYJOhh%C zBeS*SgC4Vv!)bP z`C(qrp#0Gz=Rt70Kc@t_X%`U`ru#ctBV8a^gx#p(*y46*cv?hU8c(ybn6g^v`BW%P z@_{0cYBk%D`M*QcH8@VcP>q-?rx_3Ch2H64T@UX9E|UrKiyetX{H=*SeW_XXloO9; z#P0$;JtDRyEbeUC{TLrIGeeCdR=%VgIBir}QjdS#6SGB@2_L3EC-N!^09jyISu)oAbWu-Oq*S z{P#a}yhv&cV_%Or9aJH{L#S{21Mp_M#p4MHsZ!o~QF;@7=*aDu#{t#QUNqEA4J9)(#%@4EzcVg0=eKZc zB$=$(Rdb~a%}RE>aq~T|WLP3#Vwuqvrtv0O29++@6U+&UHLM!=%dvF}70ZC4N$thzh5F(v$rtBlzJS3o%hMf# z%D?N8y9oCa+vCJ@Hc!H;+{7=Cg*1@h8`~0v_Y3`O&Clxvx&kJy^%xu6Utms zWk;(I^-j?{FN1;!5xRHvjY-TPed7^qsSP=i5o3^gTGn1mZT#tkwDETbjKG4@hmmi+%qT*9 zuK%Ez8cON6D6(2glQYhA4#25@g~LTq2o2#>63%Al_fPz z4Y|o)x9TOsB-rA+Avsc>auDKnzL^ueD5Jr%we4p=PVI7ko{}qi|8bcN7;R9WWIpVP zhz)mepK7c^5Dt$9fyvr_eiF<>0_Ny30dtlDGt6MrNjPQ-7{B%A80hbk$1%ERXKe;N z09hzNHYp%ba05thG{6~E*swBICqOE!pN#PZFpnrPChX2i5m5BFQUok`{9}ffFZKQa z02{n2CE*1VD!r2>*C~rNhiKHhxB|SEG21Ei52u3}1`^+}_Zor4;*5LC{g1mv9gu1t zynv)&nM(CACKRhk`hLLKvgC1fEsXCK{cMgr?iS|*Xdb)l#v_Me)QxuvQ67sfH5LkR z=1oHK+wf;;{;iEC(*{HjKXEcivL%UaKTKkRR@vc4nn{gASvC)pYwP1^RP-Spdst8D z3or3Om~)&V;U|;rbqfr!blbZ7ad*<~oe|)#Pn<}X7v>o|qs~WgCc9<6@e*yrMQJWd z4LK!yd>_!Ld5yuPMRMN=EuHi66h>la^Haiy&v$f4@qN(t%AoUUKsWh{Id<)0CO-s1 zsNsWp8>@P9w{+Zfx}4B4QBwEwufb3v_$k9SR&L1UsPLg3MRtOv)EiEXs7HQ*rf%>? z_O#A1=M_YTTW>IHS!6yR)G@CJIR(txV$4|~p2%0?9r{fLPK| z$%li4L?DKoXf4Za(OQ<O6+VhbXpA?1+- zwW%#mp%@EtGt^0=Um6M@5RF`(uht#B&Q@O&O?ZCnmgZQlWo-d0WzR&j>DcgV>(2ru z-&gBt-D2Ke8b6Jg%M{p1F3gV{Xno(D=PB7kB!WBUT5*L-yJzM*hFTUFKZtY2gW7TO zzvL@V>EVLj3dujjD!TT2Rd4P4+nOIMCGw)LD)*&NO5bydDd8ONuGhmaIoQG?@Z(hc zu99Jn-;>Yr)ssp!zO{VNZU>M6-N7m%lbH6Wg$q4Yb#K-6Y255#J8Gt zu5C=>nX85HABcVWE3zgeX0(Y6QlhSM8Del6d-xR%>bwaEhmL0jy=b>FTIY(+9g|cs ztknVxXRH7|{QdEr1f=9ZY|EXTp(}^^sz)uu;%#c_u^$ID7^~io*5a#9l>mm&4GI*G zpd0V8^$*HE0U9)D(!Nw0clqvf1-~lf^5J;>I9q=h1I7}k(c&5(XFNy#h%VgEheLBl zsZpJ8>@&Vp8e4uC2bp}taR}|8XOK=4*~y|g!-E*~YWYnE98xkwR3N7fp(~$5ZxSDJws$}38GP4tD3r&rC4 zX*pos#Xh@NbEHrQ%DD(p73BPvtI}9j z8vNi|75~O5IYI4R3L6?HrTreiPqB2R^;we0&<~{D*W5vG_&&jwf6E-g>Jac0I?Yn! z4yQ4>XVDFld9&+zy>7BFVTp)^OiV_K6L%6OgLS-?OZE)b@!BRJWC zzU%VjPrm%|%AW%HQzU=H(WtIeA#NOIVRq&bK1NLE1yCH?k%NP(Z8n8DTrkGbA$g_X zP5Sz_X5h(3X83~&nf03XrOt#)M)JEgXUY*2yNek_P0&mg1$ty51}NZk6}PIc@cXv zsqZQ|;5)u_c8Y%VZs&!YuO(!vdG9as>fIe3YHyBR1Pl=H3i0oU$4T!5)pxvYdr7Z0 zhRQwHtx+=9gz-Qy7KI-p*7fZ~GKR+WAN!SzA}cL!ABa|;VNIv6RxN)A)&nKO1kaCt zt?{B3N#PLeO;JM_o4n8(MtZ6975M#(7vZu@Il>zoyt(+bfe~t56iMJ5Kcdd@tv8Yw z6zOfBVb&5SYxf)brta1wXfu@1^hbITN$e4I;@^q!t;Gh$$J@xY09%{K7mr9&-CAgj z5T=468((<@jT~t|mwO4=158M(y#*i<(ZRdTht$o#QW5^(y`vIjYcvqVEBt%lP#oKRO!zT>4qRc#R zEbksggaYCer1)& z`edqW283P+)2)RH?~((Xo7cFL$vMY$VFv1-YQX+_JZ-?Pf+96S&Ngp#D*m)TTAd)dqS9#$wBKrKdbcNZ>^t9f zCA^R9AcR+K$)@`L<;UP7ZD_%v<;Ng$wVy%F0g_qig2+Qu8LiWTh3&V7#^18I zm#TCdqa68GsxuC(^{;fBx4Mj%LvQMR31{D%PGgR1>TAYmd>C&k=}liEEA(b|-?Mjqpp;UsBA0;q;j&ix>3Y3aa zx*VlTP`V5yc&%>1K4G1K(&tffqI9W45!sePln$eWZN>UKN?>BvUr@quTf-=Q2BqC7 zVHdKtq4a5#HlcJ0O20OZKxqj|*yF5kqI5n=ccSzu zl#s@J3nGEDJ>M2=iB=s-=b}`B(m5zyiPChGkbP|nc2Mg=l+H#e2c@%6It`^WQF5S! zO_lNrR(t)O4Ti2L}>sfJ+d&(2V7HMHb$*?p)N_upYxFLeXfZZmjlS0qi-B58Ht}| z#9~!c@j70uuFmYbYTsDf!G*?Q-i*e{$1t7WnY;%V?uIktUL09W$&P^dm-!@;`7Z_6 zVKZ}BIt8x`jb;VsV3XB1z9yfRa(q|0Y%#$I$0ZNLIosGz$B8yRcaMM1`biEj+CGI~ z`u5#-9%_kW!}vU8lbItH2@h@gy3?UuXzVMz!#DT{zksFUuVfnEXEK z6i6rb{uo@{CI@q9%bR#8r#+x&vU~%nc@y!r*wEMc?)rl9FSp|5ANXbK@1fj~*3c3L zIo3G_k_(MGTYso`*Lcs=yGg+6d)+m42&J=)DR_ET-VIDvY^njCTbLXwZ$e&JOpso}+gU@umEbeIye5 z9qJpsNyR|_qGHvE84o(?qh6?|$+yB{?9xj7AOAe@=hi_UTF zeO;S`)@VEQy>Cp%dxp340&^Pr71`5zy?FtiL=LoWj(^WSAH0~+hr*BczAha=Ploo! zF5b(1u&$-?X5TvN4Z>7LK@=?)0J;V0<@12ClQ}}k0it~0aq78$X+!#Xl~yV9a!5c*FEA5xf}wX$>qSH#fkM z`eDbenuj&~lZAh>=@1a`Ue8EvcjP-n8`0z~dluuh_fBs?$w;LU;4rEM5Ec0lh#bcW zC?@hHuu(q(8zG?%vZg?th=mKeZPr(v4m>8nn;jl@AWlUHj1|$__-V$`&aMj7K+N2N zHhZzC?v)Ie(A;?avDY}%OZhY2#nS0gJ^C6|D>+oY!Fwk?S{hgtg7=5 zchll@KHQmIO>^cp?5UMEx<}30~5&A-XKQO z8F}gnw?{*4?nZBE+Z8GLMoeBfEoU#oZCf$5z#q7yy-)CcMX9fE=>a+tpa~NSq%N5o znrD6EKx9ue@1Z5<&rn^|yDm;3vwff;br5p;XGHTn@mCRH*oLEE)Nlg6B%B9&;xDAE zb@*N)&#V03ar7E`LXKV;XD&3AI=QMlG~A`Cxri-f5;OYrP8=YRIZ6L%Z+XC*pN!jr z>r;AApof3s;Op4DgdXk#y#_c3N3QRM*7Gf7P^V$jyTfiweCOmk{pqd%hzH*;`-k4$ z#V?k(d2W2K6+z4nzw!p4ZvsL`D2Ay31Hy0~jF8T*cKG$0zzrdTmg2 z-n)2+HeVBY>YKbpIDO=?*o3uueW(xa61f0TWIOZaS+L6(RS3nC9Vb>c3sjbG9) zyy*c(^aQWGjHp8YK?P=LZ!yv($6rxx#)! zy;C2^FS+?2wlxORe6KE@>g(cf+VYa=UzNYy4$Qo|n+7Kr7lVdLN#rzE3Dc{ZNt~Rb zhHp;&d=2M~1)k>C)9MrQF{d2`A?!U2ADSU#Rt$UJaVi^)51n?htgv^~X=hsrdrzR8 zEoH|fuDsg&Hz)so-I?52s3nZOaTxR`rhhpfLAuk70X;G`J2mJP<$Cyh`dx9c9)=xT zMN#Wk0x~r@Z;M~-ar~rVF_Nm4o!bU=LC7EcZj$6Z8JZ4eh&Ide& z8-(d>V8&8%2#dleT&8`BAq4=qPXV~s22iLtB*7_{V*7=PYnB`+6fUO;*D}@!lSOh; zVV?||8Cq8cSKX7&RrSa{+IYT8ObWcp#0A)DW`d9Pjb3zQDAex^y`HUDnhA%2)yx+4 zjYGVES2JUzU$S*J(tyK=D2L6|X?E#}*Jd_~5%wLN9C}kTknn4@bX9y1n$+d)0_gN< zbA$CI+~FGxiPGE1+(NO>9Iw$&e4pq- z7ym^>Xx*Qp#DcYMj|Iyo+4lJUxM3@APE9FGtd!cr7>wG+_34zq3d&xk7}(6Z0IZi? zs2BU?Le>*p%&Gu>*O<~1nEX~qA;{IqrDLDsB@Ej*YI_kv_d58Op`ND+7J zxZTaCze^0cbPXDE>Dpq*r7MIlYy=R#+&#Chb=y~Fi!cj$#4=TCw;c_9ZB30PF^Iit z;WcwhTzVKIp?3mNF^O<8ZHn(qy*&SeB6gUw*UFSlc(K4t)u7x~%jjae-V0iG*hlgeM!zM$5_|gXEr^7BBQR_oH0t4e) z0=9wY}E-#Q1o|;-BVRw}=P~)av%~_Ky920Nt8CL@$V|MA&EZf{sg} zcDO1syzVJ3RphSg8Cb$#UyG~qle>h{DvRiVCY`#JVey?gm#`p9><^=&G? zhvI1Kek#6?VyyLfW5}@c8?0-%6zYyu^l!cPN7^>-FsHZR5s47f@vdIq_`-T%ziuu4 zQ#hpUTMs1d`vc?fZ6Z1{>Lnu`6`ykG5u}(K54rspP*beOQ-dqVp>~l2%r3qH7yr4u zb@|29JalY1-!?sfsnYq(4?I^)OOqL(ZR5(k(DSdD=J}XPCB5rWjWvqX8Tv!0UA6oe zc5s6qEt|ymt=5Byar!p5(Qi(3Q1x|(FQ4WiiLT$6j?%gY`bXj8S*DwH}< zdJ3hr^be27dOwwHwG8f;i78%yXEBf|O&=9$I_TdjgMaw;x8<4B05e*tF>H16#9Y#^ z^67xRbP``WuNwlSNeQ`wwwe-|_EhYTVhlv9G!hS9h{c`S%Y_5Jf%`_`Ru*wcoQ!?< zR~h@+Oe}IBK1titcQC8w?8hDjP%e*mwB84~!x002Sk>881X{R*(1H`@Z)4LSqz$HZ&jW zdhM~Z{WIM>oW4md_KT&bhf-lsr2CVhE8gMeF!!13nOCzh5POp6_%Z^Kk8w@vS0V>E zUwQjgp)oD^Z@v$fUP%KIoSB$Z%v1o98HiSo#cH4$)#EQvGYSw|j&H&GL2I+uCm+V*wAH2gL(c0#%=BCAgjDXHucS7J zpyKi^snvo*sXDS7oEqf5DQaUUS>oBRt`*6dD{ueiS~mW48McKhwmC1=CqCU~-U#Ot zbAFzAho^A&dT=visBpJ&0r-LMx%JG|Rulm`v%q!u$4_VZ=;`!~z8GTefq%Dx>Go_@ z*Q3cubd!2ErS9e%w<8YaF10bLhzWeN z6Ye-OAp$p;=g{UJ(1w`NnRV{{xZ1(1bc4nKLjxdP4^+g>OWscx7z586XVZ2WV&uYEfSw;-BO6?s1ZxxGQp!uiP{V`^i*Ve{pwZs6QLe*0Om0klITuDx#0&Bp$W?g?_v* zKgwF4N5=4Vm{{sby*B8hzUeEm7eah7>s|D|raa)S(N|7`zVJBaN?-XI8pPT9iXTo9 z-B<(d*$W9kV^S_FIn){OE@VE!(iS}aFuVG8J9j8cpiOK^1;MFr)I~j8n8x`bPy~|u zh%Lf6X^*{ z=eLa4CV~<${DsADc2O1L#Y{!xTD39c3n;uIPCwygIa8G$g<`B^MDPAC=8FTAw0Rd+ zXCPoox~Pot`7Y*^$2f{Xp>d}5(3l)XL&fN@Yh%)R=tH}*dGx6vRGtW0;nj6FIHfEe zJ<>GEAueMyR+*jMZjVKgTze$@o=UY2Ibfk-p9^^0RGl^jgu4KbeYmftS7@>;1h|jR z=NvRiD{a*~CUFTp1z)qnGry_r1Rnk#w@0%pj zuZOJ2GM!oHDj6}ZgM7o{B4d9wOJ~!ur>=)shQO}bED(_ZvHo@bo3-A-e-rB=@bo}6 z*Pb1%8e5NTIyzgf@r?^0C+&T+=cG=%!%)eA_1M>A+eScJC^aHj^93Fh4LZ-7SEFbQ zMn>B2=6%sO82mD9qr&eIICC1rB_xmd4FAIJ89J)9yM2?eo9p4X@pw9#pkvYpu_;Fq z3EbLr{ew`6jKrrg$l0-F&_^9u_8tTSw^zdJ)j_*2D(8H|N;gv9ql zw8dn1K604%fktm-XB5jFJ6`7_Sjy&1Cv7Oyc)oS*F+yt+Be;3Y9@djImazpNC6J0p zqfuZp{&kqR*qa#U>6q`xaJyUYo`h+Qt)ZtZlfwfub~*iG5@X5&>Dz=&Ll#W8a{_Up zX1S2HXg@P)mE{a3LPYZmdRvkM$15&5cJ+GrS(e|LjQwg5V=odS*1R#5<%9>zx&;Gz z_^~5LjRC&lcoEq^=!nWf8DW5s)WzC9ZAd7=H>9sT=19>+?7a^;#7wC_nsYk6>_Xz$ zSQm{|{G4^5sM$0+koSflz%_ozr1JO3q2OoNG4&BQd>1o)l8Ewoz`dGle-y19i+vWu zK8HYA>rS#RxTPeq?Lj4Pakqs@2GbpF;9P|vycnZ5ZYOC|6)}A58ip~%>mGA$+AUj> z(_6O?HEdcN($SJ0B$YmbKLS8+4gc`BS4xIF8*; zudOQ~(+*fpjCU-y1$}G9d_avm@7Zp`^p@>U5*iRv+f0?QqKz%-R-xFO9$%EZnHRWg9NnPI|5Yzqn* zR;B{8bpxRar(2j8s&HEf0K(?VuAUugh-2TX7i&ZN)-LU?jOn^dV(M4sm}i)}5;SbxWGZgz2mlOlb^Ax8>& z6G6Pk85z-6;JB6)EheJl*TbCfx&n%-g4F)uJUclX$%?;~ifNTTKe3XL!s14=k`6+I z#7dmE69K-zRp=F&ez#VGG}BfUWXMV4u_+4a^FEuXdsKeb__Erp##~4NYGAu$q>Gt2c=sMwI#}YZJ#0MrJNM* zhf!~7E<&2M<{5ovZI1Rz;UE#;F6w74tcsc3#uT}o7Fr5AYh&m_V0rDcQt=AlsCBzD zezDr0^zN+Lof;iBoaf4)b2>G%)>EnV6E}R5CO*%s#cV^PnHT9@wp}Sd2~HA6gMIrs zX!(w2WoJO+X3n#z0 zuqCO8Ho#G?f~jT&TeH$)Dj6v`#D+ms?i^T^=IX9T{^^+L@UKVSr>7mqKiyhswP~ja z2oP94_BM5G*`&^Sd(|vl=}1Q zYC|Wp^%Zaz#&1W@-`BDQwEu+hS7VUF6Mpau{YU-!4|>b`w}IIQzut2Yw0?@$SlPh< zoSAv>6qg*yz~Wmqq76Mmj(!-x2t1)G+6NKTOz+m%PN#Fg+9?-bNHVqkUD?+_sc=JR za56N6l_@hs2B@aFid9uR9qL*g7hC2U?*b?EEx}LW3Pi*LaFHf_e;UTo@F-;8x9_*< zVf-Ak4X8|+L2VXQoYpy@hp#1UjG$2BMhOKiF2zf(fv-};%aG(!UrCFiHAB6+D z1fD1b*+g;Ko8yflr@?(=@gfKG72ngi z3&kXsu0W6$+HFgtwF$mt)V~+U6BU0?(k5s_zJ2;iJ1znqjQV!BpRRrw&lkey0u{v^ zAd$Sd!sVrJ4TI97@8E|7K@?-98})Da{qeX7$1KuF@7dH{mnzZm;euslG z;Luag=^Npta;J?%qqmvlz_Zj(TAZ}f%L<7ymY-xDK;$+Jk6$jQ@zuMY%;J52ajKs? z9Q-6l-?*E}0hd{;IaaLJN60L)_nTZB0k*aW74O1)lY=QGC=;iRaWhfAWmM{veyBI25T`yl)`sm^;bA#6ArzaKp-g!N+%R1n-r~_ zdktSY1Bg{Fyv&;%-iF+gL)+WdsXKL=8tX47CsygTR-aVYsYVU26ixs~|1P0-TS@YL z7VoTIj*a(M&MVnt!nT$KPAb8a5$@mt+Ry@Q8eBvJAG;cfU}3{M&v=p7=q(6pv-}-I ztR=d+B5iYXi8ugj?ULd8;I!pCic$=`q_+fuXaTenSER+CX}x{IKDCJJRD3!(-2$e` z{T&Za3l5w@ki@AB&DIBB!M>5!Y{stP`y%gMYd;Bs9>$@$WH{b40k3(>6TE+(#;A1G zR20wnBuK4QjTlSBFCxh=m;~12M?Vwt*PmJga&M+GJOy5F)l?H1eGW&X5Ry$2`tu z?~b!P3_+J8huSZv#nvXL=_apR-?;NJRgYOn#$j*M6dt0sbQXD-S>#7xk^hyI z#v+dx0nS|w7TLx4f*sjIi0y7;AEVTgdA~&a^omBp#&?qWWt(x5wnst(F5eQ4Rl20G zOXK>W?sE8I@6sbtkt+hCY7Z7hdI|4}Ws~C<;VH>sHyZtYZ@OsD8G>Z_*pcHToJU5M zy+IVYM9rbC1{hYabAb&K%m ziZmWA@*TIJ4izlZHF+Ck*Uj^an_;Y{OkxqJ#*LdvXn8H15M!Ee*ke0!Q;fCUGn zY*?-!h_1`1b|G$FwHrb7syztCXNS*4{Ke`#2_X2ZYn%>$3cVbHFqwG@XT*)uTZC?} z&NIH`RKeC%fM))H4d9WCqT&0K3B67y%mfojeeW$izT7EOt`JW($b+UIN6+v!2OBN@ z|L@a_SASBU&PAUllc<*5Qp<=Mx2dy(Gj_{0yu+V8zTfconSv)5sRzbL#`dno_YBV9 zq2Xnp>}lH2TsY1?!4x8OnUxhr7D94YInBx(qlzAQ2CF}fJtjd)? zd0G4i`bCG(kJ#@74Dg0}#c*Rk5}6Pl6pJK$X|B<4R=UlZF0tvWM^??<`o>*aKmT&b zU+{4Qs^vxIcRYp98%vz#EJW$2C-sGW#w^!JwOhkAtseP{Y{!d6G))hmOZZTS^rst~ zca=9x*2CBi0kGtd*^tNA#1-IyHTp`39=L_Yc9E#dsZY>UPDYBFexojrad?TO$^}SS zS~yUMpbLxW>l%mY(I4rHywG~~NWVu9KL{e)H}$X{zK4aj&|&T3-JwzKygkOgP+!(m z1V$(ePUX6*vKf~$I#2_h48XEje>|u?KlKAW@@3#T%N2ps zP^rFR1uP@)brQAYjf)4`kGuYQmncZ2-oj2io)Z)=z)Q&*2j?YE6= zvzMcH-$1WkD16CypD3nhc}GVFUL84zmrN`5QeRwQIwFKO`d z?AbGk5v21I&|5U8Bbw8ochAspz28rTtf;di+L-0(J2t6vo@2s*EZcL6!JrmOQv*Vk zx=byT7$f(|We<{&h038F0TyJ$ zMX1cW^8^E|x32=I-(Dr>n==_h>392=S0&GLyuQ%c&RPv!?X1n3xZ3vp3#*M*^$DI% zYGB!aa+~*f;(t;FYc5{WH<TR<>G*z z+>psXY<>|?Q*@6#MSqus51&Y{@t<>>_j=;5*oeRv9Q?w(u|n^zoMe+mjnL}GW$CC2Myplt=%r6;1AU_eZ=%g${RvYbgjm#k7vFywc zP$Ez|d!(|Y2FNFT<#>+T}nb`akd1K$aOcc() z!ie3U7a3`N9w6-FT%OtDBrp|e`hUP%l!P}{lnL)b1@EO4Jo)W(!*D1 z4$1md1J_gPpl9m<$>*D2`kC8KOE*p%$5MvvP)kymZ7Y(G#wG)uI*y}Vmf&C~xS=U9 z#ivK&X^9m-YpEdT&u8iGG^&lL?^9*oYA~$^mPdo(Dd~-`Wc^|tbR=u3GuB_n;9ox9 zWgqPFk&X0sj%4GfkJohBsU9Iv74R9Qk-di$Ho(fIP)3>N(({ZLZ`p2()J33P@wk#Np?FPX9u|93Vh-37$!lIo zq<1wqJdC|pCu#2cm!{Di@=0Afo`(NOfb(n`&KDXkQ|k@%doT&>i{oJ3p2zSCYJUMvy5!TI0%)+X!# z_(`}5P)9&58uZJZ)~_#T^oy_Tll}T{2lp#dfR%JTuO!CsI|{=BKHn>#o}RDRYhk!sika z?~U^}4A#{+nAgyT??*{RY(w9W2_bgLOUDvMUA;M<2A7VZ`o?~9eg#Gt2Q}e)u_r!9 z2hBU+$vEAPXU}o*eC9$oM+=>wV{kS~3rABtsZEYI?66H zb_OeHHI|vxP-%P?fg8=5XB{|)6QmgigK68GDG$)$Zb#F?R8*IeUSnt zbF>3Amb)|U4^Xeh+oFf-oeq`mJPdggMW-HaQ^hPgJ*i^8&1{N294KB74{Gwp75z4> z36@i_gJ5$8B|7Ev!7}v581=OeGFg!?AO|cx+AsGRNUh_IKaimuz#v}MQGS^o`59n! z&(&=0gC6;cHtwPwDyMc36E3JAi3@FG4d)SkuTg~fgvJpPit4bIL$ntkX)LzBdVhSixF6cI`_(fMsfP+9G_*wk=mR*D)HWKE=o+)Qf7OQ(kX zbZYQgAD-k%D>H7-HEQz)Yx5J}`?Z_`-FjJ_V~yKfMwNT8%EK?Ka`@#IdD+G+%ye$a zBnXm6-dQj52w_^v`_X8|egpxCFS3iGoN%T zizSvh+i?AX%<~0V+osbimAkvmo7eN1Ct16n8=TZr^dxsNXLBhPdcOE1j{w5*mTs+i zQVG8Zan&rgj6Xy?|S*7kpws&4ycnn%z*L5Q<{bu<}<|K=yvrvHFyCjK1B z>NiUtAd|@ythSNJ@y4IRFqVvL{ez(I-uypLy3?%?;wuTCw}6l1=P7)wuP0b=X=aG- zp116Vr~h1mF7jG8rxe{Odo5$vT(iMr`g48#Oo7<3^L)Fhyc^oq8!OB^+|i1MLw(ty zw~iZkxP3?O^BS*){^S&Wp%(6?ZD_2Q{U>`P{jF!xF5^3T@7tlboE(t(_5tIYZX=%h znXdn#N$rpH#wSOs5|tPCw~iXSGvm9;{VT4R%xAo8N;jjz2z%FZ$xo#xxl}_X7=@TO z)f-)s0_{ryV~u1%o6%s1ZIL;nkxK08Gh=}vwi)J(CPVIL%o&ReWzaFB06R$o1mX=| zwoKdPg`OPgKGN@9FUPBMN2=V;;5nhAXSAOgtv-SDh2I4&NPPXOdULh+Ls>>Ha|T?` znVIkX`B7X9aYWEHUT`zB%X@qMc&`IAYoY`^9}N^n5 z?s8??d;av~(L~04F5iKd_?~7kde|Tb`45C3}csc;v;*)w~V<{XkATtZy9ft>&kC^cI;wOpM9#XQD;RGsa8r zzCAm9Ko6rcdUvg(<9MP|?&tOHd0J;9Nsiq&WOW9-i_{5MAX7&lO<`k*lM#kCF{i$> z-{|X$!2`IsbKl62-hCJ`9ssh>a_QX%5Wh(8evZ)8H~v}cV`bP83sxO18b9r(3VjEs zbgmXW##LIBtW=Cjz%Z?b_MALi1b2xRWdxjT|4p6?iQ~7Z?@bSfs=y`qD(TFl_KZ2b ziH1NzOxZ&_ooeEJ3S8GN+Sn6e`zy?znzN--%yTWolUAfta){&-gnHF_y62KEWvQ zGdhRO$FmnsK%a#3MU|)CsDj6bHegnHNz~3x)aRqgo~QmfIkk10o%;ym#2e}S^$ucI)9kV)Ux(x&JeAzyrJ9 z(9}ws;o;vqG{szIQ%g1G!)&WtlWW{p%6A&YN||?Gk?%b@L)^tTdwLih(VwpI*4-89MeK!Zf)BujvI;kLMn53| z4@kehahLvd(0h&cTr}rq?I47FZMOmAXs2J>85wD>;r;aK8qTTWyiwr5gVy5mT;wtut*_i5EWk;Ckw;56k0-ZXq$wK4K-&9Dmd~(+sd8z*REL zgXrX3cCbG^M1xns5uJJe3HK@#sPT-|m5+9>LT7KRfbJGCLd`ool(GFE)4!VBV;02&-ON4+znx$dAiAaVYKKAP)=&2kpt0+<BED)qeRh+|~~Dno7^C;q^rk5Dns8(T_$>2b7?(+V*4eV-m#^W|LJ;G3UA zG!OE>qXLQ96L6qGRH`J8ScRZ0214LaPkA*XS_)2>R&7F-?v+@&7d?s!m`X9`Ra(5} zvt`|0sTS=u(Y!30$Ob)nksPiY@LAzL`cU79jO;FLzkEt?IHWbk`AUbr@;8c6F!2QE znC&%@M7z(Z^IMOP$x;$xWJoU~oN_d;j2AyAg28BPJd0_{LO#y&I=>#}M0EsVfr5Qa zd0mYjoda#EOrB9!V^xi%`xEhbgH_V%l;QUpvN4N79xh{zv{kQ_DlBaI%gnPvF(=~V zt>#T$|L*Umuq*~Mx#j(dgoDi)pW)w}R1t=j`U=g(wO}?%A|ak}a4fdM?2_hZmPPg$ z;(Vuv-+;d7)*|-hrjrSvnNr=L5#C8evLw`dQQv5G==BpcC_yM}lue{D$7$SJU}&h= zpSC5^!e~+g7ReYytKZ4f;EB|$Y}@q6x3g37q}aVGNyV)6MDwt(QM(P=5OVK|_gU2W z5LH1<0|uDRnfk`PbjU$}w0_%0b7860M`iR~SCmR2Hv#bid{p=l`YT^G5HTL{cpymANpZX(mJ#8<0}N zS=rp}HPRB$^!-(j&ePHmtWTH!YrKtoVFOM(U*pVLfwcD}duXShrf;h~8FlZ(gF*}f zkfSyBMS6ESlu7!wnoCd8@JMmG7z;Z)c)&0Z9 zjs}8m<~>TQe2Ghss4Zl1C&yP^O#5Jo&Ko`?vMLrx&4&;Vwv7iJJq~qhNmU z$D%3bY2+XMN+-fUAn}S~BwB|Q*#XXTf%Z!FScq7T+0*nDcWbG|AZyn5=lD6)>BXJr z!SyU-KBL8Bh<>Q(Ju#l%qjzWqqGtBC*P@E7CZhI&1d%!R4Iu%3Hp#)%Pso*5;k*+d z>ThD|r?-BMsh?&5^^+?gTHgV4KRvQsdKnsYYJFG{@Q2A*5sH@e?lmqfh0fgt`#NiB z5rAUt^K{eW4J4Z+IL?{dOcE*2!x|p`!lCpD$g?M4ZovA7Ou#A3oCqh|(&^wN?FGWl z__qY-*;_2yyiK;#E^fpYm~u?^?TXJ#?+`>W>5#qx*<`p=Q=7aCI(Lut!Z=4bc`f+T zM^tzro-s{F9B}h%J)c$>;t~fqbJzlI^R!SuDdu&(VqP_1UI}JiHFeCr zXdE)RS4$@MQuDWZ;`~+7{Dlz`;a?uU51Hm*p_A%#1eO=t0c$e-2_0RguY8>f{3I@FL?pD|DO)KFq2^EcvMD6S3^0qGZJE_S~bCsjz&dm4C)*PRDZbN|WKAI+{q- z2QQ&#zf3;+=tv?#4>lwp{OyQR4>ww`9I>64WHYngJu<;xiS-lB-XcS?Nfgrw7A|{G zM1mOgC;E|PfkP2jLb^5=1mfr6paMD5*vH3}3OcVJu_e;CSg5V4@r^FKEO^NTd(a69 zCvd0do8@nNE1GkyufP2-_#N5PI+gzB`@ZH07Bf6mX`AsJo@)oo=Xlzt4OaRA)o)bR z#Gho*zri2>v3hFEsfn)~Z!e-;xrI`eKgoY+-u|ih&1dL;%s_=XCpR)2%vIA&3x#+8 z!-yggpOoCI&AEB1mXfKkn6=%g_0%MXtsf&EjpvbZ8J+J(4dnx~#%^Y{)CX|wIK2g2 z?TFdxfmooTN^{HgP&{@>ZRQqL6~0=B@jeMxRJA*X%OBrS1A6vRgB^)bId(dS!wrXA zyk~^(6*;m)uvc&ljrI?mWGda}y&i>)>Z7l=MqimX1=8YV`8MoG?iJ?U`LKw-Ezk7l z5?wT!cY6x|NJO-taCgaYc{7KsK)%FA8iT&rMN|9ruwx3sB8kC96NltMD#WJKiA4mb zXJQtb<<`uvdF;VnEkh;~0bA`Mb8bcGBrVy8^wn@9r*k~4F|e}A*vPs`6CZdVl^4Jt zp0BwZv)QI5_-VT@vRnFQIomu09TVca&80^dYN?ro79gOnfO0m)tix%8=+80FGG{_H z7GO7_8s96_wfc5k10lV4eIWsW*HQPR6o|zhLf=LU$O5hFPl;^d1Z4G}pvE&y(DJDs zIVX(iZ|r{B(ZEGwqomkT7k2JULto) zDIzi88rt_~Jz|c@J*Dq%w;q9YPqK%R7Lmx*;PbkXRchXvV`}=wm$ZH8bl;m<>1VjO z(}}TYM7+cOPKSN+i0lb|Ble{~(5ZL8rZ0*1U^FEInW*KBqx8Q;YrKo@A|hCX)AgNq z(cIoeiwvjem_<Pg$X#!KZg7)#Hhm%(Xuc)3Zv^u467{13RB z$php4wrzIv_jqP7WYuWi9|(Vc+bXCUiCR|+i7_h_Iy@sJHEH@^%XX-dZJnliH{y3Y zgKnGk9Da-CQ+0o!*d8A)q5P8JR&{ZE%2$%jqI8&dlt1loBxgZMMTon%L4ZJ>uHu_# zL!7yC6!YfmRBWo8=k5FVLH*n;^6w2fzN32dQ%KDHTWC~d=-HPWjacQ!_>2N5h5HQ| zT+1Of=RI6+Z!9O!0ygIRYfR{##N3vh8Wohli1VBSz=Kgh>TbxLYg2E-#ov*;^1hKWYnTEZuQ$V z`n4MCIeE{de4od9f_~CuHCmI8LQMpn-Cde3U1~#MHj5NlYNO10jKhWe_)dF4RMm@p z3ln+l?v2M1)+HyB#B8@E>x&`S{H(g3Sy+;pQK?&_~8aKGD_l|QIwMWyg2duB9#M5+r z8Mh#EFs(M6BQ={BJ>y97qI~+q(z*CMSKiSNq(jj9^*sPKj~yf z_>>^|O922ltbJlgyG*4%TX@aR}n_u@B*V?U$eS~io$%$7@ zhMaf-zW-9Lc}u=|lZW+YGxE$Y)2=6ak;yE;9wI>{9-cW_IS&SH zTOoK-w~=_bgvCR&$a3LL9s}8HVnr&0Sj}`IY-f?8Cpur{@JF^6ciKlgo_qiUDfB$=eJCrSBD%Jntlihu|)3n9}HNBq6k!FDzl{yg*-p1dBFlHj(g$ zyPXzsRx-gT;3D4aUF_S*cR~o-0gcRp!bWck?ndDbGfuuVWw}Cy<9oh6%XmJLXrGg= z&usPvS+LN%16Mo736y-tsy52Dlt8&8U7);)gvc$#mwIH*Ay+Tf;1{_#(z^_*ycQzi zm0yJUM!*}O-({MlbO}K8y@^&DJ?C+O3M~PdvW*5MVLd&@%#Ft)N&J|@yOg$<8s)WJ zNnBL%Sec8vj1At09CD&(UMe!pT_itz*C8ssoxeH;3qU`ue8sDni=<>KUgUas9_F!) zhA2TY)dt35q*lpP_z_#PpSd!lr;LzPw3{NYT8Rp611{ipr+F|;%Hb>Q0m060a zO;r>rN@-=q{GgV5P<=Nthk-Gt$J^VT8U>q<)}-J{U>&28VFKl(u+}UB@*RXy{8y$O z_b6CGBY~n8yuy~Py7<9Ow*4;)S4Y$CTQlUVW+odJs)&S^C=w$1s+x0`M(=0&syr!Q z6(||xa$5pH9I>Kw`3j2KB9X87oviaBTPERWERPhOQohQp2oY{vWm~>#nJSsVgk_--TdX|IS=zZ8OIB5Cm3#93cs{ej-o&JnaeI+{oZNV>&!WQdR1Md}IP zn?OJ;Le!xG>n@Sw0fgmvU}=4Ol-CZLDm-Wil2!#C*5~-%)1!C5-1Vu^gdJdkHj1=n zdQZ{JbHE9qTDn9oK_VB}_&#==#l;{TUVeF;QDF){5d2Q;;FIdm3FKH0a+lG?jKW@- z8i!jtS3`V-lCGYW;n*OruG(rXJc zvqh5K4EmVsu}4Bi94;(#E40|DCE4#D6G?Wq+j=m~pYjA}mtm=u?Yjn|a;I6+YhKoY zXv#-E_^(&1b0ddv+aotfX0_{8b*H25E~|5>bQmc7f3&>|cvRKZH$IaLB+9@U+h|iw zHMY~1w5iSb#Wqt?8<^abXro-DuPO4rT1#u{OLazLjRBk)awiD;kzXUgiGZCxu6Px6-Xynv-=xW~Fb|yF;BH{n1b-Up3Ydv_1pGpJz}5 zx#)fV1t!(UzW~^e`4{4Qe2Rq>Ka=a}t|?no=WD zt=E*n39P2vh&1Rm6-J~{uc=VI>Zxd(GSyVCU}zrGR6 z2P08fWPj1JcZKCEhzF>fgu|a4t^Mo?z|;yk+}CbGG>-j}mfRzPH5v z$kSI?6cR%X%Wk3DN-2@!fs}7Plv~$Xyy$A2p$Qv0Z0+mN804N0?J*bP^5$DSObvMS zJ?HAL-*L!FfI}BLj#jLnaj8;twxTBYBVn zvb|!l+?C$7ZMXT>zPq)=&uGW)QR0n2RlQTcmuTKz(SsZJ_=53GzBdQ=5`o)%0+wED*m%a&Z6mRz0-jq$CjivpJXMKLYMWbvp1gQ zuF>O#|KImGR;}-+^tkWC|HmF(UFDnq1$kH0OduO+!GdF2;!K~-98$guM@10q z3v)(&VJwVl^mOh*`X5L;;w|dnGXEqQVkJJw*HTYRF2#wWUEa^qEqSSaxeHQZO z^$lNGr?-E5aYvxj@ji4qQ*|o1oZauz5B`7YcP#py7O^|tI-=u~{*8{+n(}fo$p7U? ztQB(&CEqduDcVeHt5&W>TQYShW6?SKbPhhPCFER^BvpZKG~oscNYksel6DJQBD81N zj#y!-KTNCzsV!%xR5+K(GbTnHC`$j&>-{cGXP)0s-{sL&)F1DL8^&U%A>H@8NcaWS zxR&}bhqviGKAx!Y2{&S{dU*9GnfimdDJB@W|lQjgS{v6 zWlAN5L*%eOSArFIlhZz`@q}|@yQs%-#20(nh!j&-+l^_#Y3+LFHwrVg#Z*)gkv?TMXlw5L5X$TbrGe9Y0AEQHwS@mN;lP`@FJ9VhxM1h-0}a;K%ue;mvxZXueq)OB3K z-^(38-w~Y&uAM97)VtGz8et&GEn4EcV{943u#>hTGPVUJlDgtuIojeMjA6E+Z`>eX zp_03@fGs{n%p0Uz<|qsxnML17uV{-85!aFXXx@CSKa){vU~*f`7eB8s$J&6F`CV7D zt_i9!>9@0Um}LdrsQi=6kBK^4=b1`_lsy5XnzAsYX3ZBxxL5BXy*E{UvSn!-$}8ED znw+8b;+^wB^DTuL*1O77QO<@VtSNW71iPg0H^4hpFyE-D{EF`uOIfbIy)jjAjZssD zdoqqx!Nqza#g1>v<*cUK^+n=#xWMfl14>B%Q}jf8y80$xW6F08evBpZ`o>v!ftH&V z1NZV3$vwDh+g?$B6cLt|-W&w0+AD5Ogy4JMerw;}U3Y6Y55PW>JP4N7qp0-WFtK3w+vt9%99nwZ^-18bmNS8k2uxw%K7H+N)sS&^feNA2z0x)0eF8SFzxO+tCIji z!1^Ww3w3Gs?y_0hD8TwZ1eAq5zWHi$hHs&3en29vy(nX!$G8ZKTjT3Dl#AZ#4;89u zs|WNojB5Id6wpdXia|#r*RSJEbXxrvyh!Ge`{}5I6Np)R1irHuu*3>LS{2&37Cc z(z`RZZor#GxCpWAX0Ytb_14^c{4*B+_~Kpuuv&^#c)%9OY%wkRpi4wkO2k`duvihuB&@bMLnA zz~sxp9DxzM>oDd4;atxM2Bu4vC^1bma|t1ROZ0TT+>Qi*DWgf{<}vCEIn8J0 zZThCib?Vgn;_&z~&KX)ytwoC3q{t;n8z=Qg3VpG&V9Y|Q6$vQ2#>01!zh{_b1CeX- zsf9j%Z{%Y(d|X<1q<8hG{$hwvn`qRKFc3X%K?UvapV9lqwBo%r6ZL5Y#?`@O|K4eZ zTH=Qw^R*;9d%~COu|-Qx(x1}J?vbc{_Fk>#DV@Q*kyWw8<7fXJrHgw zjb7&lYAce@dstknRsj?`;!)L)ta9?G<_l++pmtZMx08jDh?GK>z@Z=hufrLg`#Gt* zst~PqR}}!tczD%0M-XR34^J_!FHdHo1uXBBYKggC1RD##)O*tBY|Ui)Yy3H}G2yF& z(Ql-r&VvsIH)`gJWqh(xd3kbMbOK@`&b}NX%g4Z5EBNdBdJ}~NvHvH{3~0$$Y2WXy zwInL-W~77D68{bJ>$3=+*wS&l%oa(CtI-)ky6$^B7x&6ZfT#{1(h|+=2CF5uasHA8 zgWs0yCCTYS>|b2&)$ZsiI{59axV{WB}7y_wly~Ba9VqY!}*Q)hy zL=FCo-dqr-iFcyzi*=kl4f;z)>I>J|ZT)gYTaEh|pq#!U+@~c@L2HEVw|7e37^}V9 zW0EXGTKwcFY{KS?Lvo(76HtsDPh%=$iNBj66W(I}9oki-G5zySTG0)F=OomVUh*WI z2qM$d7uxs31KN^%`0lK9CEsPxmYMesjm-bWmex{i$5p{mbcHm2XZ~#wFuy)WoqEG z@ZGhg9{y9to1@lm)a7^APLz8r>FW}$Yt;F>Ys=++1ut}!PmeV~Q_;mXnv$~RFf{fl zY^RY>x4Y&JW>Dg6U5?x?CA9^|#$`eSB*jC8mRO2ea2+V)8aVhsQc&bR;19&c*tXM@3XmZBUAQ-w|9bv8l+kO8JH|fX zx6~FN)E0ullN*n5Vm-a9!>^vICwI~l0>=g|fwb#JE*F-l*Af`J!7k*X&S(6Ds_I-I zRjtyLsg!Hizl2UNBl3I#IPCd;qFdz)HvyycJ}XyRI8RF=OhIMZLwdFxe%-pv|v{59Da=4`MI*;F*+Kb`)7w795pyQRT)I zpK&2@65)8I%&sd;M6WWBz#G<&GV4caZx1be`lDyDk(}itG)TXdeXop=BK<=4z0%&_ z8F_GaSO5(xRdDNuzxj;noN@)`@6qr6aIE)=VK!2>S$o?VCxj5^F0;pM`7jar;j ze4dtJ-9H%4fUk+*-q6nUp+mIq-;sRI$XBU6g5c_)4v=)KM#mhnDyDq5`#f&xq(GgA z2||P$IN+hO_eTcmH9c#&(%z3ZfOWoG>`yuU7x5V6koK)M1d9-gM<8lD4hgIhZ8@BF zs}3A1}j_t2hu68&}GKFGMxPV0OtG#8uO1Tl6#^#8I(e4hPT1qs)@$@Vgue4 zt--l_5qUy5657n<*k_%~p~`JDZKzgy4N20bvug)(aNtn{)Wc2JTx zHMkXg^gg-F5@QlMW0~vCp&K(&GBfTGg;ebMvq)`)VQ7gdK5lkSCWl+QpqzxU@kS2h zGeX@nRg0LGURO>(n_P|4cYwRk9+CjpX?%AsPqZoHMFYk~6~SBrJvAo5C5ROv zXnY`FTe_MCaCBYj_x?b*Q-2eOG#@>nB~dvbBQ-4;XOXoab&f!|@;tQ}jDlPEF#l9( zua!-9K13Hcr#Ea6aIg3Ak~bSI6^2YP*~uapQm?WEc9V~{m1Hf%C;v|i0&%3O&` z5lrlX7G26z6!A_jR0|-vFOaPunrZao(#n6)triBbfamxLUf!jBU;FdVh{l zMK}@DY}D0~H+W@Db{*I|Wg=;)5J9iX+uO4%z4yY2q_s9Gu{5UrYCKPKdT?&Iu{er4 z%gym~s7YYzwGF)!IDW1#z3n4{6-yTfnFQ=NNUqqxTeeC#g9P}yavKt(q7C0yn_=gp z_)q=E=LT5q*i)c$By`vdzVKjkWXpZ@-Xf`e@N7>1vx zKQGUEy$*iPE4NWJ8YK7*&tTl`Xsdj^MKWRYex2;l<*qr?SZ)5@9ji}xLg?3B$HJ`nch&OxCX0oSXg-vY4ge)UqW6AV z9$W?}n~$J*f7Y#=F^zL7!n?HO=b_{*ILc`V-LE_|IO5hALZ4x6Lk$`B)?1P@+5dd|1Ae=LSoWKoHV#@%sQ;Oj z4{(k(mNt8PNI$aj<*=r$CEvyliCl)C8~JAiem=-QIiCnKUmQQg>W$AEQyRiO(F@)7 z5q+akenZ4qWNBA_0Z{hdXGAW`h!zuibZWY(O8|v0x=9Yy#m4@_vuHi!UQr>S8Z+ z&|-AfU0W%C8W@#o^V2_WlO(>-GC^nZNd^&Gi%cPUPr4O#usdTD3|M{22p-@!T^I}! z_RzKB99?RClDQ4K1ydnpuJ$B@6N8~|2$Mxm#wZEhD=i|5>6pwMT zs`_k+d+3YiYdP}A2aeZnLXLq9ZOMoIfn|uG&S9rKK8o6J%=9_nwgg;haylPA~!cBm>D*30z!^DGt zfd#(-$*y?NW$@jrmMy0P4QlOw_VA<#wW#40Iqqd! z;w)R=&&P=!V2YL7%e7>xx_Im+!*)zbJm}{_gunkBpBcMHKreB#_Qq9;LE<$;A7s|w zNbf$g9FuKT0BUk3omExTMCn{>I$GkKmFc&Sc5sTN%`4%wC=W}Ge zeby|e^GcYH4!N8B=W$LuT4E^QSq)y9<+6~R{Z^=Xg5Qm&;iI4?ntrN}XwpU#r7V!i z*0ZkKqpFMnSg94kVypjZiJE-(ge$Ny!R>xTK`>0UYg)Y|X*obt%B_ucCcs>H8pMZstd%)z5Jj{3C3 zPe`b$rTNn^M1M9oN5%?(qi#d`nfqJ-|LT#?M3$e> z?p$B6Qqt@ysw-kBtdY*jgXVS;a64L8D#YrR;FHm*QobK+@*Jqr^NUwzrwlfK zB12;AY0OV0tkjZl1X?aXVPak;Kk>p6kG(Lnq(6&Hymg0YP}7O#^b3A2&=NO{_pp^c zhxP5nSK@M2up)<1xiW_ryE;d(&Ev7+b@hRgba=-N$LXr?je1{6Pk1Ze;O85xQLm9r z+X6>oVZYHT(p>{1RI@Bme%KJQ`|hT#Q^dl6T3bo9S!j_uk=SfDL#L8!*oAFJ!-)&)%)T`=?Q$$Q?#HX>%!g&m2mcxF1R#3%fP8l4X z>@RUht4fx6V6#nH1$%AMYHbsn!t#!z?XC!u!YwqIUVOJ}%N#tEy=7#thL@`?^UN5V z_%WGvQyvUi1tl@j`OP7FA&hBNq!+7Tf~nQIOsz-!LpL$9yO2$TePzqOGf`OcmOy8^g}@N1tbV$~OG~Y$=;_oq^Uu^Gn=+%+67qO$OHF;xyQNsGpHe^?k3x zc7fGMq3B+PyjS+SN6e?5Yn-o04J;q+s|s&F{1|G5o>dR)1~y@8v#dd=3Aeu>$)3fByuE{j!9e_}5+DE{SlGWZ|B-8Cb? zU;A0$?`a#;;R1iBet?Zxi7!EYIFirL^ZB_ln9B3yf?RIM5v-w0DdWo9D@Qf1*y{jRM0Q$e%kvxnt6;Kbe0IMF^M3VN5$G*#^nUd|CIWM5A zFrZplKSq94b}0S!Q?vv#3(OaZqgu6410WA-r8yy&AL#fr-ke%(-U?afGjQkwAL9@s z1zUO&&kw3i?g#=WIil1ULQC2y9pe>~w}>!7;+b3liO=jfZ1i6n^1dfq3%Zl)8^NXm3a-j>bnZgG!jPv^THDg#O@;*d5 zQQD;wng2YVCgh>cNo%CB1mlU8!g+T} zVhmHQ!B*B;6P9y20~}Tg-?D6$vqN0RlSe!@$4ze2lIIddA(^BV=)X^fj0B9P&q^~9=EWok&v1F%+ z@r#Fjyu!+Gh?m1JwBjtci9^AYJMG~2y8^uMm_MLcHy(T;{DQV(qxr}IJKj*CMyUT8 zoL>&Z5Qv>>fto~Y65L>U(LoJ*FiT7P=zt2gKrRG5V;ZAd$qZH>u5B9!x)QvKLJ9 zf&HH;0{KT5fv(v9nIceNbP?z*>5DISwtQWQK;gzfwg4n_C_I@2paaKyEK?hinj#`K zuBzvj2;_HWn6GAMuG(*NfU#Plm|k38|Bxt=<{(rJrRprVawxIJBdSiS^+fo=Lpe*8 zkJCjHGv^cW?2q_;v2hERutrP&Ax#me&!Np=RaycS?MXYSK*mS#fkT@Y@ckb{v2fJA z^SvHR!Hd6J9Q{5GSiwR+oPOjFqA)&o9Al>9DxmYK1s%ENF_t2%-e)eBltgYUe#^^TX7TIvx5M+ryg>Y2tZ${3 z7y}f^3+>lM(I@2-Ss<0g!#x=QiI3e1AvfIl6wBS>FGi&2nWu8C0|C6m5$Z-`A?e#E z7*$2R_gNp)@7oCym2fe*88_;DB1Fphg*^%_v0H*@{^dwc7&em7XOHAA*GO(rBS~C2 z#*$Xt^2GUoPKcu1C$5Yjr5R6b;Bb{sd6(ANz~RGWx!3&$}5KrEI9gx{F!`0 zPAe<}x5JD+mKK|GcwIPCLHwR$8IqjF*;by$LVdTn=ARjq&|w4>!eX8@^nb$yF8}BM z4HGD%uTs_Q3y=?Q%B+_btCz<8^Z#5~zJH9zQkIA7$)sN{7lPuqtls83AKUdXNOA~I z54LKFUHx`Zu+E2+iS`{uZ;a8DYGZ^{V>TYLh0=U2aZj%7C9VRPwR4a`49icrcA_z> zfKd-IVikFUZ?8J1BBLO3{S(=UJokxQ2HZp;UwEApV{w@$FuwGdtCZ`-s|-HC)~Jhtc~E2sL+AXRVGt z9%UngOgI4Qu($;tXEdad^K&|HqSx_rRATM9$3U@ zvMq#A3_|%l{L1`NLMe5cfVRUg&Oh0Z%@f`+Un6#c4HSM!YlqpLH9CupIii=N;|bIh z?nvCV&m02=)goa`yXQ&(2_!hL`0R`iJpn&uKs(*PCHjsWd7t>)+OpGYDr`s3-z1+L0o9C znC&s29pLaH+p_0W-&I>dsSq6}Kl~Zn#ys#*Cc`?XU)m&5`It8VxcC&Pzpu^N?lmDx@-udOi4ajn|XT zneDDUg8kPy`>+7gI+m&zqm3_p4W5X(CVld3Nm+C7$DGtAn{mjXP~s!%k;;s*@wmFi z6B}a{fyOX1x4!RT+`0PgY=5ULRm{BeAQxjy2;lu4_p23v=wgoJ8KM%}>K&v8&*4;x znB8Sw2hFYgjg0NIOHghifs_R4oF8Y+zmn#U898%zrRlj`&3UNlaAr$wu4Ob579UZi z1H@8-63||S&x*O|BCIMbS9E`N!OMruRk%2hza1X#*pquK(p_O1T)pk0m`NhiHyNq#bCYfZ&W%-xKM1UlhG&>n<7g|L`CxDO!w5Z6=@7w>HyPAMMQDn1KAl`Cet(&{)<9V z_b2;dA-m(yr+I^s@bTTZcsr}}CA8!1bA%`F?)2(kv-*=bK4V*21XXQMG{ql?Cp-Wv ztV!)Sva+g2DnVu~U}UQW3jwIogRJ@$vy- z9!({0LMKz0SMmWXRS8z(U;#?7BG|z;&IId*e3;n-RV8)t+!#YGl&qe8-pT74r?jM8Z1+v6M3)` zFYZcq8q)&vpSJr0HRDFFMx&gyB5VA=8$NzCSykU<`448re{mp5O`$QPNQc$Brl5rW zlx$2P0sPik63V5G z72g8lo8R%il0ec&A0+Bu6YzG0Z}83MJbWpXk;~GJVF6`7Y@~Rt$=8TK=lNC#ra_9^(|(wn^@Z?T;g*)?N?9=d6cw8+{3{ z=rU|NqcvF0=g9p|$85RTtP@7`ei7ndicd|`S3C%zJUUl@lO5XL1*7}|-HUhnvzNrD zccrTMlUejw|0b|?Eqm2PeB3W>_-E#voM+oAnCS88dLkFWs6{+o_KMHd$J%tWv9Q-L zzS;YM%$H^{%RnNcreHC1X!Q5XjMPh$fVZf@v5q_FavqYhVwGCGsO=|ym>k_*Rt&YBwo6R7Q77R zy7>H3Zxr6VoduoB_ zigAI(xp<{@FSSd%rC<_uG5=Acnrn~<=5v1boGFWQdtY_n=hrtF%aA>$f1@`R=-*fz z8)ta>7k~wOW4`z%e-{rrzTKp&<^w$W3gEY&D`ev49 zrc9)LU8qa+5daMNI@4IjmF^2kyZeGshdTE~MpP9Hq;CO#>I%oM7T~%)yi2>ft9LAFPmo6SL2$x?`?9)!vA(s7{kc{AetogN^_!6vQajnrSH9R7 zo)(RMQJ)q~P0kP>VK%S?&W;A)n8S2srv5TKqN#~T`Ml}#df$fhX~uZcoWm*eHoNE@UaVg|8+wT-j#0_*-$(A>61WjVa~e8{jfqz;pE4e*+D z^7*3d&U3G&` zKcv5w>~HyzF{3zqnBjDI@VtIl1 z_({fdY`Dv4Nd#Wl^-!AFv256;bf5ugG?PLb)M7!h^STMp{2hP)Ncf}qry4au#al9s zrNsPDgcJb_9rU#AZ}OqG7)cOW575(Tc=?&LkVE0BjQL#&ek!LgA2ntKQ_A0-n**?|F zikVMa{Z`6%1tTX*x6=t1jM{457I$yEb0{NOx}zcEZs0|75B;j0$INOGAF;|A8dz4) z`S9?ShwU5-B(L$k+Ih}BJ_PNU@`yU$bS5@=@(?R!`_VLa5b7kka1lt1QCke*@k0b^ zHwR05kFN{26>IHp4+&`bJiN9@8guQ9PR6C!&Xh25mLQy`@KqwACL6pjOd7I;4dMH8 z`~Iq-OqhpqLqdjRUI#R2D@J*WhiM#~XM|HGs0HA+yjxYa`a!isOD`R=N`%p+Im5a# zk7Kol+4(#}@|*X^k$%RjB{-Q)q`~m4_mMQITS0HrjYxe;9gpQ=+%VzDqBMveFn-w( zG+3chThQs%^wAt@h8pCCkl&SF-1NQCK7Vnkd`^@tcCCK(Wn$t%2~P2$AZCa^X{6^9 z3O|-9yrS*j9sq5hN6X%2L>e)K?*V3!26z98Rz`n7S5@qjzutEaBUhPOlufYyn<$eR z%f5Fp?m;E&2tF#tBO})eRRzI4rS(WgSAA%S7YN+Fzjo!Pn4xc05icvSGhQJWOf+s( zR-K?Rg*nZ{T#tkmK#Bt*CU1xQo=HiWURXIE_41I5j9g18Bgub_sKe~Ufe( zwwxz0QmWfpn>GO{Vc@8w&!bN<%u>>J*waaVn%7d zO)E66C(fx4Xo<&iWUpJ;rj%M?G^N4JvK>A^1+mqC_If1iu}Ho7SsZ4Q0$#b7Et21S z)Uilry;m%HQ8A6G*sHa}$fDqtcoox$6id^xPlxwly~;@%N`q?uSvnV-Fb&wAtk~QQ ztVdzdoY+~SpY)~r0;b9gradvGL}<^g$1+*)zQ=FDdol9A5Rfep6M&Q3hJ!e94_>;B z8PrZKamx^^CH@Z3blq6|1+ z;yHAf2MH)oTl#2LI3?(VdDjr1cBi)-K{zsip_IyGMjz4=;2toRcX)FI5d{IzZK+$K zJ?fK_w8ONG!ElkJ#~6!l$7)NzF~n@p-R&2KY=0Qu0tLbJ$4if8%#)QA!tb)^0`q#d z_yW9Rk>!sg<4{Y7q<>U}u)u+DBSq%>Lz2J9eS3>}TE-cOQ@;lKP&4U5t-%V^I2D@` ztOiqDv4U)tBPevG!*TKSREI7YVtU5axj2y((yS%El;g26i_ahOpE(D+pb6UToE&Qx z&CFqv_*aiB!A)1kUj-|yI6~x`MX2W_BTv5~pOoj01>a-b2y`r~%(H4~5fwA4O0$;< zk%W50Pb@VOK-^=*4qOC{pw5ImM-YhUa|^+oc3Zt>4NMX*MJCEFo;d8?2#zQtdc4EAwN>2$i6zn-nT}=Xj?9rim&u22 zJ)-n_w~9P1E-a%g_DZptsQpZfm+!`^(%{;@V$uxGanWLZ3p!Pw!{maoRQ+O{7`C3c zk<`wy9mUOZ4J5x8w`zUnImaA%U+jCWG-6cB#GgDJ4udy=S;hAa>HK45acug^fR;R! zX5x?}tg5`YGACMVEba90d3F->r7sF#+3mkk6#1`P@s{@2(1aFlLeFlq*h*jYG~*uT zKzp?0@1>>fu9l+D#rF-szfwjf%nfn#XpgjoCNN*-!PUGbkt!j91-!I%EJHl_Jw7U` z5FXF}7RmdCct6UPY&H=ab)}-o0YTWCJbn0hVj|Z@jUToc7q#kr-mTspFz`$_>WU}P zpZR0tit}5A_J{URQ-@LEb3lVU4rZt5@K}w@{f0 zB|sXDIvCex@lsVAbrbbwOP%Y#iDl;041lx@RQWA%v$~-33Zx9MJU(ftt2QpV%($@1 z+o_{&>PD_c)?i#RD|)t3H^;cfZ}8~{fGCjt-M5Eu3|#3|XCRyet=30GAxG~rYW-lO zZ{ak2C&xS$8`BkV>Nx9)AsM@1|7&1wBXKUU1C}d*HKCh7>WH8j}-A=0q3m3># zu~FCLJ%|%JHR3|!hm!8PiTLRD5|~-5N?_;52xTVaN{xohn_l>pL0hq@H<22T}fXs?#-wWQ*@+kX9bjr0I$QoFd>oKlX z@-PnILBKF$707iHKFIbtDpZov!#fXzu1WBzjPd@W3ZkVc|L01!>WZLFm!m7bF&as|=;+}L=b~zx z#oL9+S|$4aMa!{FKaVUQ$HyFGYf~5;I;E%58|tF~wV@EWNw?fN2u=fk8iWr`6N4qF z6gwvOMZzAkQ_3)@@e9YuH?ry3`1Zk!Geo}i^Ro_TTzpK8mNqLe3Vj=kp-v%6qR4CX3!L{uOM<(& z^P@1#>WL`PpEC2Z!Hn3dBo7(Ek{3i5*9$*wYx7DNKtQ4t)p1g;f?xt+>MUwgp<8s) zp_?|n{QT)Ov)2z>jYWx_HZWbAC^5>?deCa!-Hp{gFTF*Vy~N3_{v`6qkW6S5x(YA9 z9R=!Ja!_m-mP|v6^fejg8#6XT0D(f+`G$+9N|BH zgqT|^luC$GC}c`y2=YnJ%CEK!L4uiO&8phG8eH#^CiB5Vj{5f80*H&Kkh=_7HJuG# z;f3~fgx~Dwc+~AQJ=&XyA-8N%uo;aQoeXN(4KgUpF{s*14=}Pfg|->QcbVxn1dB>G zsy)aYk^>JE4PgK>KeqB*j%8R0y-3gZ9?6(LKgMb}7HTf9G6a$)rdUdp(_x~it5>Tq zTqHU9TSFN$dPwERj=x`u+_mfhL&6PA+pp4xMKE?pFKoMvS}qIsw$|JEd6k#mOxTgX zWwbb_36g%f92~jaG7+bIpGVJ`nPqy5e`>h*hR)HBnDkd1d-WvhZ~pH8hh8GR&${;~ z>BbxmEvI3H)Mc?QSx5p#UVOkGEsqbJ5WONkaFUjIm1)&+T7t7R4;(MH83W6M*U?Nf zpXPNLmlW!0eRulociCa4uGrf}YE(LX#=C3~DAo_^=~2EjC%i-WkW?DQ1M#iJx){Z3 z#8almC66MvkMZ0Bj~oeXqrd(9u2)M!^Q6g0)}ZxsPRoM_W6+VQN2sAY0*}{8R|sbPiH*E7EQgTm8S9s4E1)Fozv;pa8XmtrP;WX zdbH0oO@V8P&JjZ5b@-FDOcoiEeP$dEc&figb zl_YWzIRTymuZMQ(Q8r~-DSm(|b~2u`sndz^0dMr{qH-|*!V2*GOZ6S>e?tw?)GOkf zD!YuEek&xmUeD>>t!H^iEvTr1Q2r;icMKediw>?{x|bU!JpY4Z%VW<-E9hg7D+r>G zXw_Q(V}7fErr6=W@|cT)vBe3dNlB$M`hbaIQjamhTs{y3XM=6YxCx^%&xDz2mRGE2 zDRtTbcG|uumk(OPUC}WMDoUf@2cHdfK3^dNkQ4azJe*b)`;s*p^B3r(uDITOX-IWJ z`c_c!Hs;vhL>F`~{7Urq3%=)x-KB5T2hy*;oyl;v)`jmgY*qxDAhWFqw&3d7;AOe2 zz(-+3IO5e;1zDt96>P=hHNiQ#hy;b#a!S(Y>$bSl@$<)&Gv>Zus)Ro^KJinuI0Cy+ zZy^cdD~9Scbfh<$+Xw7V%qUbYY2*) z`5dhtwglCy@b%B=IRq-Pa@0fo)j(6k=uKPbNz?@2rcC`^cmh*V;5T?D@<2jj5j|9QY03nT=+V+o zy7etYY3Z-^E~2qA+<;Z(#xJXl6O74C-ag|h;`$|9xbN9k-%A2^-*Z*pbKHG@$LjlM z-1n){ck*-Gce&Mf75CkHBey-#@3B%rv7cGwCwp1Ze*7Dt}mQPDA9?DoHa!5;4p&vZLQ{QA4@($HT$6b%vF5&4L z7m6poh4ikBwy*`7XQ~xj`Wj8)nR_4e+m(F9Epx;+;qWK(2#)5C_&T=J2U-$l^iY3F zhG5}kRH%);Ejk9RZLwZl{X2MS9BqjY!jp@&rRxIV)A{RPr*@xv7o*8Gt;73lr$k^$ zu30r7oYq!aL20vja5)_xV{q+19O7b-?xAIwZ>{ka+T-IixiYB!h3c&IcxTM1>yO1Z z`;A+meTVjhhjbWZNs_!_R%(s7D8o0T`YzY@SS6ivaDz0gTlVJ3tRCI@<)MrkUHC>c ze8X6s|3<<`T34%YjL95fVO&srE=(8GgO%w&NJb5Q8kxvXr#VlPcp53vyW$mIZRriN z9U!n&hWa_s#a=4OJOs|^j_uv*5pD8Zq=?P6MsY!r?LPAe?G=5uJ%B=eS`ps=YCus( zK~P2O;+@3~LZ}}2h%N~NGl`(sn(rOZ`AUtnO4J&_!h5avzmzJdFeVp= zH)=~RIDyC7{s?xl&aYUFsL$ZWdn5aHZH#Zv3Eu(mYKebnG_tK@^@Vt%WRy@RJH%S! zPe1o&CS#8XrngFS+89M-&d#T8y?V8<7PAX>i^wr13aEj+Ht;x`(*5Q`M|sP~Uip_B zWof^Kh_^$FUu8{#zX7+H?+1H$S(n20U=X)Xu&II364i%FUQG6D?Nzutt7YBH88c?+ zJ%`@o;z%VM!w0n`FCvG;c58lL+Kv5de(f+1QCm9acn4}wxdU3FbDTx^?9~qFR;&Zj z(r+xrNeAytEwOjdbz(=ThMkF{R&&!JdKlC3^~XUro;=JuGvTplpMNykrzQ0x{N4il zy};=2{pS&m>uX*AtjHKyvPV>@X~PMuNTY!E*Tt;BDGd&5;04Kl4%w8zkcyqO9BfYi zQH$}*;*vM@7xW%OXUB|yQB`f+$qz4tNL=de^uAEC(OQ-&Xr2>ctt)w1t$eC!Tt*)- zZU%KI*_!e#&|mg;-f`%&2OiK1&{uf3)_w(AxC1vydwOW4(?X~}eJQnJo-tq}?M=uh&KSDtGca`jM;3;D zBzd5iR4!1Y@-5tJEH)$`71A^PcLeZw+rGIcEwu7hi8yPJa4Jr+0_n zo1dHdc}7o{3;>kXFzAOm3Deu3=jgBS2Rg`ZmDZjbW20*7$KG>E1g|DCdFV};Q+8wE z=>>hR%{!54^MyaovPtIhERs28ILWjqA&&%uA8Z@k@?KG}XPjtv)1Ywf=Pogj#p z^yz%h63+I7cE)wk(;R)PvK3ZA7>Vs7yx9|-U@-(%Rekp26zhk<3@!Yw`zwdSZZX?G z5xSIIe)!*zGa5g%kaOlI4*6Uo-<%gUe%xY^>b>2&+q)6ebjJ-j`o{2w+TESu*R&NI zwWoF_cSIM1Tv)p_p$hyF@fa>#cdFGc>1PV{s7J{Z>XU5#ui)54FYe1xFADen(}~JE zOqx(|=2?j!RqM$^_DrTV8B?pj8H=WhPS94z=6&<7CDLo4Mw9r&QNl)(k`F92`SwS4AN@Bf8g>fqO(|AfcQlrJcb>CQ+w~sZ zzy?76lVvXxN!@eMZj+!7oryF(LU1uL+7i0i^zpwZoL+yx8tuY^jv%@s2=&d(`#2-9 zzDq2Gz28FE$#MicdDszb$`x0r-X1Qi-s?g{+d-I-@q;f6Wy0*D9Xrk%X;p3bfVOni zSo<3|ibS2o*Sn&psC}JT3@uZZoD+X}?YS%Z?E0u^m?yPu^x?1gATyRQ;n|alWbC4O zB^%7s4%rK^XG-xK4Z+4;t-leK_l#+L+$!@|9c0 zUUjf#6#VhaikR<=UQ0mM;JdUud<9Eqevn8Mr4_I^Fv4E zSZHw*wzD*#I8J>$!PjTl^L+ei#! zR~QSqPJQ1(u3(=_Gt(Ad=$SRyzafk6&cQPM7t*QoO5usmPFw=-Jm`@ilM%z=6dD#qf^f*f6Ux`w(|pi&S>>?s#Kx*S5XW zgN;^Q>Vvz|ySAgY=iS;Oqz>8J!?iC19g)XJJ-nTE)iAo~c#<$(+-Y8mF|qE4@pL%5 zL{e5Ydi!KhG5|H6Ip!4^SI&vilzcnE*GaBPqx{W6NSE5`9s1VvlLT&a-Ur-L)2EZR z^WSqabtaxfLa5iwbCJcVCg1!X(Tcsh&3&{K!oE1Rz9<+ zG;rJj_4Hkj`{_=3+PmKw^yHTKKu+5aNzI&jvTb$~$?9R*YY0o7Mb3E7=`lo2k7_Gq7(cOP{`2b=&sDT}a$gB`2~7|MB3 z?{*%_1^b8Xjh+{rL4Tgl0%w5z`i*JqB&2h}r~LGX*R$Jh;{F3JoypvG(EfN2lUkx+ zbN&SdD+dKLC+}yD;!>hVAzr0vYsa7YJ}(^Xf9Bj?Y|GF#mH5omdmRPiFUEhgq_^x^1hd?lDOG>Ajvp>wZf-y<3Hh)QY40!N4o=UtY zruJ;tRraZwR%HH>-bYQr-w^Q#zpgDgki%QB{jacK%8EdnNMbXYSAoJ1<V!T!rb-`Yhmtq&)HG(6_G%tQ<)nMDupVI zZeVzX1!7$;p4~{R2Ir@vEDrf%`z#~`JDXNaT2~(6L|4hq>+(bWgc?zLqJYEJ7g~)S z=K4V!1@+q)sH+Z$U-0b9j#;3CJaErTKpS%!M78O`7IDcjP~XRq7&)LCZh#EnX8UceVDA>GJg_l+#CPl@U`Lf|*w!M@t5>32GM zCEJqXtQq_ft(f!sCXzQO#6ZgfYY9z2|I(B;3`f!Hc`;zSi{(x%w{{A-S-A~yJK zua#h`IanOZ=%qoNr*V8XLTu*GHShB9?tv}7=y|pF{!a_8Ny(8jkfGDt{ zNKTOXh8OC`?BcfX8MWCuhndWfGN(@bq+jHATOn3CpL}Xwnqj02@+^}(qnGNh5cJ_< zR`N=6PunGvRs?ZI-Iiy_57w=!2?hy%$&f#~NYfL&vMuU=p6gMUTYR}n;Kex|(r@TJ zu6o{~J-x4G`hU40yp}vn{~9xkQnkfKTQQTN>BAO+?F_ZW;ei{j*RdWO-Tqj$ za++v?xggW7j*i^o`OJw1K6Gu=e?y`#tO^fEf30_L_gdmBcrv?1-)OXhbeHUoZ_5eK zjJAD|P;YSr(3}~~hF^VrTY!MXuLD$l>BC(hQkFw?|0b`NJVr8*_^X3CGb&nz+-gS& zWq`?NSir?-uOiZ-_jWl&Y#Y|*a9l^E42O!@k$xjqfb^R)Gr9V1eRh$NSFh(0v0GX< zGGrqJLnTkw^nl8>s$)(ruMm(xwo&HPaW`!Q^B?qacdhLDjr5!2&DlMrtHUSrRJ#rS z9dKc34o>X$1((?sdql4-R4ucEAn}RUzRaf8?$}R^TtbpdjH?SmJL5y1wi(9MK$btH z;k(6{nA{)xt}%CBa(}eUSa3hjJ^D2R{}#jh!T5zIyppMLbFd)xoviPtgkPKgjDt#i z8aZH$<^;nnq>K18UhmctbLm&_=4m`nc(z$nrH=zyQ#1lo^Z@Dkx1oXfru>V|*BMkQ zzPw0B^i7wrH6$*6O%fRi0&voa{Ep7Y`N+O7Hm2jxkK1Q-nOh}dN+L0fmbOUdHhv(FqRvsC1M8Bg&pR>{4U-7f~zw9v|tDWv96GJ(2ZL z8rQp{wGNOuXL1&koj!)|Fbvj?lNRj6kwj}7$5>u{Bta(O{=gkR-}AWp)mFSJ9cl>_ z7`JA$K1X1izjpi+epi!b+7&pY;&pfo%&(AwhRAk6EN=N70W~us%|$svsUMlm8RQc0 zkKq%bM`_JF9`(AGLSex2V1cw!YUDUzR>?ez#2u(q&vPEJQ^IoTry!W_Uo$`wnO9qS zC*8lVnqNuqL}O>r{k9U-gE7UopyFH6lhF{~no66TZpRb+)R(#@`(rJ+6#YEQPnm_K z)&zMuqblep&lS3;hPKkjqsD7%3kW2_8wsXURYswF2SDnRXR)iYl1N!2l7%Y@(m-)4 z?hsWqcbf=yob1Lc9SM~{hU{ZE*8mZRA3u`OH){z;ZY8g_fM!KJ_W?y-y-mNTSIFK-OzrWL}I zo#z_Q7j6QjkgBVKJjh&98cffb11}M;w&+}(;0}zP-+FZ2cb-rM0aOjuZ{v~L3{$x> zDg#UH!{>ma0yyiaee?}!ZFt%5W)lvRnO=5OQiq%)Rf>!LDw7#G*+0v?az?-!G}^y* z!KHc1HAMl=itr);dWCiwH!)ff64Vc|x`7TtJJVkxrOiAmOX`5>e_hoR{(zDL(?248 z(R}QfXo&u~jOb|TYwFhEPx%(QfzQoy*4Vf|^KQT@wn=F zA!NAyu?fbnd9I{|7G$_q{Rm=%m=08p&2EV0m#iw0EWZ@l&iwfuCe{eGzPGr$bAV=yBg=|o;78c%w|C$zWz1AD7Uf#NxaeY1iG!mme@WV7-$ zWz`!+HXFQ+h|cmL$)xwTsA$bG=N!xEx%Vx{DTD;nDe)RJGzgB@sVooY}aC=0@WWjM?0mi=Pk`><&f#bo82$h#M+QF5ogDp-gI zt3-ic5rj^z3)OD9#Ha}v<;&u21v$}a&X8EB8yg=Oqa_fw01xIlY#4tXaIYyy+Nm)S z-X9%j%x*@I>6R>6LTM<{p&=a_GA={Lv~UxKth9RL{CUZ3(ckwk;yeOclA~v4N2%S! zWcr!Ob;sgcq28QS1#&KIH4fev<}ygfu&7}b4PP1&Xqf^5@vEzEbL(juK z(bM&f#sU}&sjEKH_HJXtai<=~H_$)3j5zzvux+w;uUt_pnm#4J_eJO%wOFn{cTdUZ zEkifX!i^`WedH!V#b%_#Bi{V2sRX>K1<7q~XDNJ}7BGB|8w>9B2v4L7aMrJ$?}6W! z;d`_emnXeGm>7{czl#P76)nu~IGnXnQQQifeU8NzCUD}i zLK;v3)YM^F1@x}rYzXNDfao3j?o?SavO7TI30PttwDOk~8Y;!!98oD#@Pv>=ZFZJ6 zcdKGN|Q{b3`EViKXI~D{} zwN6Y#OM82f`!8w~A1_s2sJuAPXVcLL_KCmOY-^62~g zs0=?-{HP3M(Mx0xmLXdX8qc*^Pq($pelpSlKJNYm*&xE;4l^hy|t>%oDe{2-$x_&DQkd~00qk9R|M zWuXLIvSPaAu}5i^J^Ez_ zAHxT=#M6+nZ)GB}Gj>34XW}t0-@FI+WlRyj(GoB@@2IQ~q{r^sd1!)t`)znYr1d=$ z=*kP&k^6ogP*mlh$#D(s%1uLDx=bAz|A{&@&pzgAZJQW#>_u#RE>G%@Ojk9>-K`a8 zxArTv)+ZU$(|@IB<}7JC-HnUOanYAH4qKDtTv}}GrpB!k0YBqWwx3-Aj*PB$57UhV ziXs`cQRfSOpfd9P{6bmH1|UT{vu(2qkQPpA;P%vl(F)|UN+X&BDg-!y`prI5%lI=-L z2YM%f9wjsS5iQY4_hewkGoUV7;tmh1f*-8$2P~=1Vm+|B8GNpcT% zQ57*k+SWbkUfL|?cR=_SVFckmq1D#<5?D4yPc{}T<7crxV-d$&-N>2*U0|10{ zJ3aiT<$MQ0XGBOui2W4O=+cfswix9BU^Sv=MDi`d8j2i) zs;snY3%%@(}O5SehNLP8BPyo z0MgBej?E5x1iQyF{&lW;)@^i5?kC}j#P7v zStM2F>pd5D>HX6}o$7GP5L=EbF3K7&$}qVNcuFmI$&!p;W2xHeD~>euURqX`@|q+~)} zK)>GC9q}`s6s@G8mvu*qan&6Wqirs&6y2N1J#kQScO)P$z$le5s+Um%rE;f?KY{f_ zRJTxPccfe%RmdM$jpsbF%<3^Ad_&~*ergxDbTn>9#oUxpS z_%~|PzOq^dY}qO2P9}|eVlNRDP&v*(de56e&z|CE{aWHmTK{4F69UZgI(i-nq>H$V z1|lzul+a(u#GB(klr&StP_&47G-#)Nd+r=b#fhHcZABSXwyw6BHHO&*G^^vW1wHYK zG0{Tme2jm3+Dd= zAI+ZZnr^ZfO8*ViNV2nSmDOwP_Z@Shd2$enTMnJzv<5Q?1gR;R_<*PF6k|5c)$r+y zfj#s@_ZgGv8SSPt{h@`bEzpvUtTVW=LTR?bRBytXn%@EuWIv0nq8J_XEU)O=;*sYf z4BgrySX%0}B*<&1vv-W+A*h4Lxh87l$XhDYXYgVCmjO^F^{%HMf(~azYdly;x$=MoXAjQPA!sO1D zQ;exZqi>0~6nLWFr61O&+VBHv@#?~4f6Eue6w_T*V1bPH>kl0BCq2R-slndoviv0+ zd7#RYTl>4c5DN@sZXhtdP9WIDpjC(B&g79df2AhsS;K19>(eO%8no%Zfy{x>7E?INL; zNOS>T{${5*ilw1yPkAc;b8&U>6fJQHt<8eg;3>^o;u`hyCt6~?`gx_6SfGAZNmf$r zsp-K}?pyZY_y8h@lh06l_uWrdhDUqa*BIZ2lf5LTkLGANPV_-S7%YevGkWX3DR=%(9fIJx$v4H)>EpDDTTfBkFL9z#@aE)^+xm}fq!xVy?Aup zf;GdQYsstR+^Vq~Ze2wB6#gmlbadSuH0jIwuQP8@BguJ*#9JiU^4XJ}`tAvjTaaQo6P zPR<3a;eI#~npBquM|P!J0vbJkEy+&&i1!imj(Db}qq=}R)Nf2K0QWhY5IbmG7cl%! z8@FHsgx{P0RpSom%9Dr!%>QEU1+C%t+CC={8QxcLQ(KCDYQuf=x2jNxcEgz`D@MybzUSk_y(FFl2ecjWBgb+n$(tYZ{=>*pQ3rFo`WM- z(yq4uAeT05Mdpm>xj$M#` zj3~0yN(fk#+(z=}l#zqyCESwxm5BK_Xm{nV!>Y^NgecQkZ+bKG1|F=-xVa1;R5sT4 z-a{*esn&Sf%Ho?E^gbb1*@tCEq$BsOn}--1UALUC1;1>4s#zudht1|Ya%cjQSIPc^ z1s#`LWYm_y>fjUNQZFHY*|AB$020yWb&PJ$q02`5zL7T)1)GDjl6&akbd?((=@R!q zzOP=<7|9@^Lfgj{eyj&ogBv-!lSY-Y?N3Ppnf$D@vcF}I49DJWOkdGx+lGD!L`KtQ zvOjv7BoE2T53C=IZ)#SG36@-GLpSwtQsx(piAGHU@t@cx;~vp3v?POaHLgUq)wwoD zHcSXmtsQ;`G*u30NPlva$Mvb^$LYa|+*%dl!N8XQOy8q4JGM5aUrjS{Z~*+OK-{Sp z@R-~vwGEHunc+4#nwfceh7)Wgk6F5qv5XCfxAVU%@vpfS4{Ng4id|G3%9;^paW3S= zByD&ml}XWH#SJszBAZfqe@DF5>9PDQ4ZM=Y4UoX@Lcp8PoK}WeAV04bt+qaFdkWkv z4qfi`zxLP&!{efnxBiQ6SuRdKsmNoDTwsjYb|9s3mZhYUN`cz`TyZ#i_ivTY>QhQ3 zmx`0>Eoa+&z5i&&JZr@In3Y2#ZWRt$nzmz~5}R5j$@YyPrX?c&`4prBmPRVc{z-tC z^|2F$ne6p2pDc$oH6A!KqdB=Vid?6OK6)fr} z%*i;|6xz==)yy+fm~5_+cLHl~@9;}jss^!E2@fr|Mg2;_7iF9J?WmL(G{B}t#h=Bb z6d|LhMV~@6iZVIu^(b+}g^Hq0>}L`r#rcrNJeUF6={@NyB|j-|EA{d>-xE8}3`^6I z*QKn;L~g&-a@M5vX?RCku<6e6LU)So8~;#4vu|va8-+Gynl%#5Yb<(hJPDvV{1axf z`{|)$B$~--W)0ts4zSo#bUx0Z%Ttpx;T>(K8?#kdhf#f-Pv@{^dO`QyHici9pQb-- zFp37kL!^R1*Ge?nFkha1#cIG=~7919O$;5M9RyH0`EbFQ+*iSnKEDKYr`E z*D<2zpx<)-_UTsgHc3|b@AQlm9Pf7^1;=|H4#;aXmdIFayB(|;4Nm0i+z*6?H24_t z8k0L)=BjVR6cDc%Ln`3$Zs`jQPDEqLG{`TXi>%3wM!_w{=d6hv1-FAjitPX{bHnS& z4u=zqb?>Q}X3vx6J$$BG0;%;o4k=;SL?A5^$i4EkKM>n*O~Q+fyR#tIV|)86cyKbo zZRPZPvw2lUa?j<{inKjWaGPf=9|dl%+$CiP1a9y*pozmhU~wt6;(}elG9h`$P61DE zJ}}0xuRk6?d?X4U&vay7e2YKcn@gxrZgtxftO!Bmt|SFhQdgJpFqEMkXRYOnjWd$_ zW5*e@=Oy<ku$a%ZZv5Yr zeG7P0)wTc3WPkxiPSmJTQ%&2kO>EjGZT`KPl6ohZywuc22^2N8T+8*+np!L~8a0H+ z%qYk01Z-`6)LOmuL0j9Z^$|cIBtXDd0Ut#X#n$SKgNmpjK$7{d-&*^enMtDU_4{OU z_St7Y)?Rz<_1bGC;`Es8Nb5VQZ)02HsM;`NPdWNRkB%f)#;Eo-pH zz%3E3%==e+%&mit@IgfN!A>|vL;$t$QAkc=>WfsoCHZ#=NVoob)K6r{dG+#&Ug}oO z@r3eJ1H2XWXNm0}aQ#OlOkK~lJT7=HS=&;=?=(pGo#oo-k%h-4Ghy@ywdf6@7n3hu ze{Wbe#r0^k`}Sem_8#ZvJc#=N80$qJO57yg22o$8f7t=Re(Y_DbNjWU67eSrU-EUg zuhDEmXl!yEoBpL9Ay};agTTVL;o?yV827Kh9+%TPc4b;e7&;$O$2xtT#GZ6m@TqOb zh+l9sLdBl3Hi3278ESPevPdMNKW2$x;js+Q?HcvDfjI`Ifza7&HQ@Fo6!1~?iRyM zbQ-92Lm>hyv^hDdVx6%Pe+@LSEfbvV3_3G2_9P^*OsXR~&?}T8yaah}Ue2tIYe#cA z4O@3htT*|kQ9-Vaj0ZO(R78VU5MV?mhuxL@XhbiohgN#co;6;Hpy< zj%;EvF@=3DA%--ie}czB|o6iGHkp50H&vzR$!aiP{^s)Dz?WZtFy5A4LUeX z_5qWauBY(+Ff)R!I3&V{a}EjjDwPla$x9AvdZ3{~gHK+3IJ1v0@z5?x-0=m6Tw|98 z;*v*N!%yRW;umk*lt28P%${zSld2hmI2-trGl-=t9N8x^EBVI7Vj!~rVzOaKhiCa0 z+i%9(GWml?dGaCjJ8kG+o{-jrn|)0d@$z!(H94&>{KiO{J%5{W*#{hHOR-Ohfl7W! zLQA$WU>ha~--Gd8AeH7yrB4WE`Q@YbQbevTavISyEDXb!)uI>IJta2(`Y=%KGlvj@ zI1W84ydpE`J_gbMsl~YMl3oRwgI6HqMlQoeAhh+h!ch%7;JGsRNhaJ^X~;y=%x@xH z?ahN6iuuLy083sq_-~vRbrLW1$k!!K%4rDc_il3Fu*BQS#sTjH`yfxx@a@B_zVA$S z9kKDCVh^!sa`_=&A|on?B{HTI%W}eN3e`xSG0ZWL9{7vbj)9Z`6k9{?<2Y6Lz6Yim zj3D(YH?;2G5Focqs0(Z3i>B{Ob0t}C()B>qvdrrGXgclMKSOw+EpM}k*{@)2=}S9J zua7@*CZ@l`h}ur8;U<00h!@o1qr6PxJ~W3QL#)|KLL%)q(wh#kF`Gdua|(QL+)syDNr#TIEI*p_G$#^iQs4 zT@?Mf`mWybqV%)lYaREoeT~GrKO%b$7Z{NA+q6nl6Rw9`oPNXdm#gUg?T+$e^6mRe zU%E{V#QMY9yTf;r(5@!w2M7EehkIWf{v z7uyvo@n7o>e@K6v9@}n2t6aSNP8-sk zNj9RtORSl^ z@+`HQZ*GmDl`5MqM<;$zvvwCv&H! z!%h7*xJ?%zWzKOkusSt`CV;K}RR&=6?Uu(rQMq5FAK#Rz!@&npvRI2%&amjwo+1Eu zAw#5+NLpMH9lP~qQ8n9<`0!;u;w?2+SB=V6VI3L2?+~FGi_iN!@xtwg)5+r@JUftr zvTvLcI`!u<-@i4!$-ePh`L410V7))+j8*LfJzA}^kI8dHI(-YEo~|^y{Y29e_2AY* zz6HG7*0}@*W#>gkU0u!bPG6llXvH(=9ODu-zf+sz>V9qARnLMu&bB5amUbcR(Q8XK z>5yCXS(orwh^Dh)Eqq*J+ruv29$r5Cxm{nSsWVP(9CkV2X~&~9qF1{ZS01u(r6LV% z0b*?Jc}T{=`t933o98f3Q+aFlT{R_t?ZP<8Ck-Ep)btJcaXEM8ytPtD_aAU%oere_tuF2&xS zhc@ZEVUDG)V!Vfc)Wg4ov$Z+ab5CFbz9_N8C*FH-nvsFqqDkT}+i6VY;zVx3FhL_* zX&&bK2!e$`mIw8QUm)pS(QM+>zX{)>k6O9#XGH%O%?y}>+H3v>?V4F)L~n3@s^>gC zR%OW3mJ*wH(j!7OS#}!&DhlwH=~5je<^J3FO#I(_EVd>`s-a zLe=87K%y5_^K=?M{SZEIL*WI9=$C8TPVyaLDVWUb^-*f~dyORM^#H-la zljZq{43qq)gaV*9~^Hs3TY6bvEe5|sYp#~gT4b0UIEI7W)VrHC_EEwvj2e!vR3C!L8AZzeS>?d1F}pxcNDVPADTh!2SX}24_YvL7=>eo zv2%tD1LpM$%tc7Mn0WSvAv(otjnxAC4>NPD7Ra9YmRF)c31v>5sm z7YA7ZacjY7I`wO@*JnzXQK`75WXgVwGPrQB`TYjoVjh*3wRsX>K6-?v#*pyPm&p%C zg;TLO(SXlEXt0|WC8Buf)}XEPZ8p47Dh6jQ+s~J^p2v1mwZ*KIal+;jd)J8F>R^Y{ zTYQf?g{{z*-$I&Zt4@?`-zM`~`6sk|aZV9yAFq;Ax;`@E?D_*W8odBazIBNji165tkLH~xB3o+IPzOT1aI&^iP_lU*}9Va?==S@&g0UQ0F;xv)JWknLikp&%?3C&Gv6{F4|9b0C)1ob53#uD*7u7;4>#kMl;b za%O+e$9j7tE+D2F`l%Z`hFFVAOz+Yi)A${VBY1t5nqpqzA#S(FAz;q$$^R3(jSFru z&yy2tk%O9Cl216g%jAomG|mRZM7w^e;Pv%U`Q^)(6}tu+3IGP;kL9OG*yLh)^2tw$ z{FKR0xr=`)pJBx*S;Sa_?&?Q9fAk3F++B%dfAQ&}4y=4o7Y>do?hp|8=!2FFIW(`Q-c>+E22 zU}%&7owo05%4LiyeLtfzl6LZy&2}0ooSeG>leh$6vhoZZzfpU07A(&sSsdpy#J8#@ zyppVP;^MImUA$=7zbKN<(-}6A9qyEkR?tA|P^J$Vu~M_BFw(bS(-f&ZymJe0OLPd;l9&Bi_?HJmvxfG|+g zGMvdluFahJ^ZY0C*pKp`9K_@o{AY+Z(zVP{hcA_@QTE4qaxmmuw}H-`GLjyE8=u2+ z=F?jY0OQoVm=cF98#8N8YFm@b-#+`!k#s7aRnR$=&hnq;R$73v@8*`ZqO2;nEPyg( z&BenHmRsC3E)L_=9Un~~8-C0a;T{4$ev70b{+RRcX5Ekd^50##_haRL7@Yb9!+om* zq0e(9=THG+8At!%aAf=QS{K0VP-dz@=bo_$LFRrI40Ni2clmnMCRF&bF^0ovC}d(q zV}8WoyS|B2t{dVz>!DjLu|*ADFQ~X2RCfYYWQyhF`&Jp2prLTW;c=wO(1eW4*s5S; ztodfM9$%+^*7?_Y^OL8gZAJV<@tj0kj(OK#n=OYWtiAR6zt~&!^{U+eu$}_}Ia&j9 z&<5m$4af-_kP|jAPk!WR4e&wR&;IZT@=Z*_D&`AznJbn$m}ywGLO$B?{}bjPY{9z69N3;Dw}yYLg3a_Zo8)!+`4-9P^m7Ku+4M6_W;#Zmte8BS z764|-K0{@xr?LvXD0n2RVCLJjBk#y6cxMvTSe{kzG8J$r8Xdn$#>*TijpZ^+R0ubz zh}as!XR3&>|JI61V>)(*IZ2N*YyA4v73jM!x9lR6-J4t1fHJnOds|Sic>S-r(sJ>*n6(tz!t#94}jK!LKd@kT*Uaw#QMH zDSm|jiQiq<@Gyn-D$1SOH*{xn(b+NF*<97olxZaParWBWz)h{;(KJug-dn@c9yZUF z<|S>B&7C4m4)z3u&&h?&)})4wT>Bdj`(F%aU>`+-Hp^ZojWCklSS>K+I_8u6?Y42Modp)<0Qj}ey<>%QPdRzNm-i;seou#3x zOWXvGyc~@{{9c;Z7QUh${;vPJ!jQqdBvIsl^ohL?Qx4NY2k57s)|-B6R990h9sZ^| zuQ|3o{B<>_CAKSErY|;%4zZB`ElA>W3pE?=u~p`&|CL5)9Mzd|-1nh|Ly7d1hb(6H z+gq;@6k2&TqfnU-$u3M-?)Kith}g#6%@@UGyFUH-(^rphg(BXkXqJ&`qu1edNQEy+ z&-h48a3xayTlug+1p|Cb=DZSEM&GxVoa?-Q&>HmwJzpvf=uJsI*Ja*4P9MS&-Xw3z zGH)L2pedeY@=cJE#9db%u?9!89ix|ZqJsf-y%1(2w%x%}Ly^fP5-11doB(74lgsNh z>AprmeBmdt#ZZ}F;mX7H;-AZhoXAmBtR3RzhExe1R3@&Qfo3E;hHE#EZh^SfnbE7>o#gI6byK^hKhJUyZDQujn~P>44X&5bq_A(sB58PV6&2i za)u@g{}S2eTmvZNu9sxRTLHkN-^jV&BIkWO5woROz5DUiD4eE4QwRArj5F+wY;G3} z0~;>xbj044z&e!CrF#-LH;-W$0%2wtV8v;YZy-Dp#n0BjUrb*`x{6#z^h=P+Cs!~f zs(+tj3IuZai@f7s~m1>hR; zBS&1SsK zSSt)Ao?nr&RE`C<&N^QY*UQ7j{A&sp2xu5{2)^#NRB(vE2b*=^fPw*Dta z(iZy2eh^USz&v&nY>~4%)eQC;g(GlV&v4E>csEnOij$O-Zi6#c>5kHEJdR+e035H> z&w1bP;MrPB;GJOJi*OLkDIyRjZyRMxa5FWeW;px!jvV69q*dFBVVYtw>t2hbX$)c= z_as9Y${mE%;i3E+gLn@IuAta;oq90`iKaM#?$-74MeW~&Kn*!)>7DR@8q0d8!6A+Ed zMZVac@J9?7A4-yWM?}AOU6C{Vs<;;Bm?FO30jC>$3O}x|%fztJ5K>MQBB{?4e@2wF z<1n*`#cXJo*6)K?q$n zM~B3c_EV2z2$TM7^(RqO#+@;ou9GVun2UV5bYe2D4~pcawmu}_hC?%LbryOD`&=Q9 zCB{aca)~Gm0QR5}z);U)0{R`lgT&>!zU`VfG_bCeG%DQ4Kt_sWr2tRZE#5)oFQjBg`a4nUGreD0hNIEHwaaC0H4ku7^v`ak7y0UUI3r6F{sDS5 zz{>5RLpw~b4>gcA%ad4+E^HOXnba$1VbuPuiO39kO;g~|Ik}Ud@tyEj7xAO1r&f_{ zTLE$zBEFpocgVMp4nKx?J0}ZV>fn>NUEK=i%6~9)0({R~ov_Y@rf`(g@W~trr(NM= zv_)T%2*Ub}Db@&Iwaj8Uk$iE@xl99)9p2OwhTkNjlS^>^%yY8xn}MwwC5lLPmYc+x z^<1G?DwL0}FqJB(DZGiBiJJ@rN_Wshap?}{HYoqWVRH0NCp+gk`yzdODN|WNOl4r6 zo<@=6+?Gl3Sa?%$oSJptmRAMZj-B809j)EARGF|%q*oQXg+tx}f$E8y1l(+GdJ!(E zPmF3OWWu7cZmh6fX=dwpA2WI*%D(P5zvsI-{WWLxM?~XR&9O(%1tFhcofI3VoD2yj z^oRLR2F1)Tz60zxt)_=$c!ZAHrKJyEl3^gH7QZvg9FpPlNi_rXiOZY)<~j65V)C#^rQ` ze>BErWyfD_8R*;&XYyk3j=g!Q4FXl|r*fz7Cj2~)3&8ke0QZ9N$AiAxaI)2Mm>aN~ z6@#n{2*o{ zXK=`sYZTBv2X|As8RRepJ%Q)Pxg8Wu;C65dCP<^-LZjECW{Kg`25z^pp4*1U3HR12 z36(M)Cs)EpPoi%oUmneMM?iEA%hSRu#A5sq*&PA#p>pE+vmb)Cz*fQnYwAF{Mz@Z` zQe83l3El}`euL#SHyf(8Z^GF-b9@tymjzuHfaR9(BXQwBhT#GTy}sFR!MtMEnoeuM zKti@Meh*qc30||o(^LGs_DSe{_TTVHaNB+a3m7pP@_XLgifnXhO6rYr+DI<%bQbrWo_|882_>#I2i zo-mY}$&8FTvw2H}5PhwTFAnBSz&}`)`x$-O?)^~Aio@j2HFJTiTEPRD3+3Doxh$OR zk*Q7hoVMX^;O}Uj5j}*tbkb^|vkhA5u6cuyPqGbRQWj0{W!hUH&P={+?w7M9X#SU* zJ;9oT2AYiAZWiB4{DE-|tZEAX979~msz46;oNq+6e+Zyo@8+9OMM5(-j0{`X5*eV; zS?O%seUY}^^S3?;Kq_rYJeaY~{bW?aDY++XB{?Yk*E^^imw+BXwy~gNH*x_T?8$l>8hT&7 zaC4$BV%Lt9-0U5ZA9Nf|JwO%Mp@R8{th7WB<+V7QS)H_Dfso$F!M$eO=f}ep+;DdXOKE^Xq*0V>+C;7s( z#pM#}xd#Is9!r1AJghr8X_HIjgMaBC@wDS#`9~DxlG}`b#1Q&#U{;6&8WxSe@&(qc z0jaDLUw>~5lhjaPYR`!ddSxC+>_j4W4)%|bkeXdKqF`BR4>*k&Yf?fJuK9Vyslv5o zRhIum!Gy!N{U^qAWMiv-lK%v*QLQ_n*PEXl&5`x+AL4Zb=3dp&jPM!10gSHhluA_{(lKqAMMesQI8&JC~}d?>SQWIM3ZT`{%ZVO6Yah*ZH9}oYF26@-F;l zc6-{l0VCBKfmN7 z4(S-#Hp%2R1j##DXTR`03-UC#)Wcc$1Aq34-Z>l(>?d<0OR5~|J1xd7y-abYL{_3D zq_kiPtTI8@d~h%~aVzI}^Cc7Xv>8`V|BPvVw@o!R`TLCS2QX&uIi-E(4tiZlQcuOZ zEToq09Aa6zTs3wQ0r@Bwf4TQSz}l*hpKlo;Kx^YcC4MvjgW>y3NQ$HCqO zDhAzrk){7I+0-XGqTjqlMBG-;%n;Zjl@snH5q%YDm4}NPW)<(oy@)|vN%Yhb(V!xb zL3SfeifY8g?!wfMRE^tTQ?@wItbrn>7&buj%1U*9xvKHT-L(*!o&9n5@tCYxQ>7Z` zIS-gMbyQ;3G|?B8&VE%>Nc)n&gyE?gPrRUZW~;BH3nxNJz5gejM)!N7spgDd%KLk& zex=X6uq3>UyDwjSlUY-qy1~4#N}XSZ7Iep3k`G^Pih#CS{PGU>&YEioq!;r3V4pf!F z;!J@b`G04X(_wnD3KBrOpzCKTN#1Y&$4Hi9bn2iOA42{?X!pW1Dtcwq81Pk4X`DRF zk>-8jZPOWO*4}@@4vK}{|m?S9;vU3;NEU$BPL)??Bm|9eJTifJQnh- z+jn3JV-Vr!8pcCWJDXcgOW2gmj8wKZaD%>x(Y|XqZBFj#72%f^0vDpF!JRxGHaGAa z73n!Fv=Zq88Jzj3578{?^XA1}w1-}BfK_LZLIqCf;xc0YI~j*^aq4)Y2O2+&*nCtD6#I9C_c!Pfbi&`Y zsiJr7T)paS$<}xM7rp6nunDqB-NZvQZQmr3Neklcn@!OWqA`|9yliHzN4RPX*D~ZM zF8ik~_ZqQhG2c6VcRMn13hIcv;81Ty)Pr%(?&O`pO7m*-b)^0|UVXbmxgVZcXhi>K z5`v^3TylU8iE0u`k+c?fVkK{_PFX?_lV$h%B<@ee_O&<4sut+*ysg@3-dM((4xsmM zHjlk*R_t`xxt!_?Z730h{_EvoQOPaa%$mj>mb*{$#?@%XUQh1bvgV@m^?#xF7(u%x ziFH1?gJ55@La(X+B`DqNka#}F;vk;gDKVg5r**5Y7$mS5-9tEIZP0w%twEFAC$^EM zios3)aK(c|83wt4tp@MFQdG$cT2;|YO__D9xp<1m zy8xct|Ki1-`j87NXbxc6K2KxI$*1JLoi@D3Uu8t^b2&I&)BcJ*GuwPsi%((xwi&TH zZ^wHm7K3=x`3~*VxsDtnuTeIO$oIYB(hKFqLRrcI_%zUB%_j`3=&jg}xkD|Gh18#h z&f^>U)!%7%&m<1gyu3MHpl`T!KLM5`SjM8L(R~L$m2;Y1V+Ar)FcDo!1ZHE=jng$H zm9!d~w!biklY_CKE+w_ZNu*&}g58CnViw&DD^FE}KSYbPasjVwJfYA#!TvroX!)N2bK9Z@cPbX*zVQnjCq@ZBD`4$bdVt)je$Pq<%iU zk0}VX5N|tWl(52o(C9{w6ZAu9yWbAg(^7~z+dH@gEO8)?=$cgBS>K68TijvoN*xd4 zuP@TtBoc)mrqi+~?W|1$K@8K84B@cYp>D-X=Z@re0mK`6fg z2(8i7-lHc=}&00m ztd0TqBUq;f|Dw(%%i-B@7iRMb>NKluTZ0%!t67XJ)aO|`v^DH_1HVtm=GyOuK%A>k z6QGI*4L~F;T~>vM-nJ?vpT?_9n55(dK(ARHNhG<+zCR(W=h6Y9G{3m;B&QS9GS&wahrXtYe1!9E`l?@@qJmBFN{6Z?Lf%!+meH=LEKl7(MqirA zpS7r&*wx81Yl}mCd5wUQ`06Vo$ivw5E`x6(B;u2z>iiK|w8VQ)y0VuGrT}EGD?o;g zr1L%Sqx$|wRLt$S$WMSId*c?Jg{4f@c1HdebKOG{#SF{$-pO;@~Ik=AlfyRVu~ zQA0Gz9`428@Tj|{PW=#hy6VgWPGnV|Te_tb-al;wFzBVL=;O-RApKizME{YO z8IT^{MRQf4g*ihwn6?1jwaR8n%--WmFcR{z42(Xj*S$w)=iybcw-BSf)<&CtP zl1Lm_P-D(E*RV*Ggr9YSTqx`w9^@p%#Y%vQJ{QiV3>wl5K5?(bWC44$~G zF79<{K45O?J2b{R=Yi6Mt}++TrG4?rGyS3CMMK6tK9=n9if{a?ccp5b`uXGdBusYvD|AEDmOSi%(4o|%q zgMFURRGcWZR`XUtDSPT*pF4CSLAKc0>|2;CUsLVy8T1{!?J#1OU`FURH$4_6Tx;R@)6kg8>G{We7S&)7@bzU7HkG{N9ho)W)-KM zq=MqO+n;xf&iZ9sX z_C+?k_fXNxoxUqxJ8V2r=evT)S)h~z%FB*%crT+_wbT3Z*S5dhPJgxe7SQh%3K2QI zF8>FejUa30Q;Oq^8{KilyCmw(aj43j?<6~=AP{$-Nk7%40B*T6;XknCq|$>dM%NJU5;yYH8DB4LY$ckk3A24GWxAenP zmrD>~<`0C4gV$>t)m={ZMUFv9D&s3FU#ef2em`Cfx+#0g)l8bLOS zOx*tYZdDaeg+ul5FtRT7|CENH8t0OT zbq|7!iwg!JF7l5RsYck;#W>Day7J|I)kJeCrG}ChX?~3L7$}#kGQ|RwB7us&wI;Ap zjoR4GsiC<=hVDB%htgKtQqpt{T*tNEUjr+U0Tw1#o_r3BVznl zD-xg{Z`l3^k}0#!gvZYwoKX-jOo^~jZ8>#yOvd(cZXKj^-5F|DC($8)imGMudlZA_ zn0?IO5jvEKkQ*BeO;aZ-(A<3UG&P}1kvYij%USv!v(I?kRU7RM^%@&`BZ;Yzp)0PQ zp7zDcw|Mil|B>*AgX?y0_G;;HTq8t6*SP45wI|U(rcM)NT8dr97b_p;Cp%Ng`akVq zr^(3EZg#+rJndv$jXdpQS%Uc0xFEWv)rW0D;lgNgRQ&bx6|bn7-*4UDs*_CRkt%OS z-XOqf5i&nlge?9rSA=9)BZN6b9_PUe97jg zQ>!DP!?;@8SjQy7Ws!(arB-bjGI4JGku*p5Y34LP|K5gf%iho@KQ|=NU-{{}@OZbD zEPI8hz^TDIIYEuO)3*&He$vM=H=guu2Fy5(4T9^K5Bhp!LhVNPJ*aVu51|X##_M*JtOk zLHCiNsm2Y6UqSfq+otiq+Sl`48I_l+JtLzZlhr}HmB|>yvn*#AoaiNMAe@CGM!UA> za;xc^q-pVgeegr{K|L zM1SdG)gSel^b!rw1WCgDa{S^b13|TP#&&fz(@5}?abB*4R;A$+GQ7!%EDKam2BiKg zJC{6a69&@?4{m3lTRxf|8=UtiqmqlFyA4brE%M5SJZ=w=k%TQ-RFh!Nqdt+%B5tj6 zPuy`E>jLImlUmRj8F3ih$AkB4>EOe@ncXGkEBC|xd?R}LWT=NeUXn<@KcW-Ae1*DQ zvvR;I=_-CRqK7r=(%v5nEV?q!-$rbH{Bg-g!NY7Nw%C31Ck$1i1IC*8;8r$VZ3@j) zSHR(B#L;zzYJd*6D9axnqKEsJevh17wf+~E?5DB?$ln1LmU!%WN%$XenvJu7=qvQN zEsUbRl5b1i7GvcOr;V)Zem>x})2wjDTePwAJtre0kCy`_8PWILw*RJ{NP{?y*9piE zJwKdAEGojZ;VjLTz2-?2>-9+7_-Z=Mqu#`;J;{hRdF(N*XP|46wN7i-+{v}WR^B@# zPgVhrbMY|{$V+_JdMhKhC=99b1&MiIqU zcfIinaaOCqSxK5M4bSzRvK_~6Q~0ib+72~hQ-+yk)34fvaI*Sz$Qdd$mVeEy_v>FL z;g38c*2s%8*@%9FN_rj`Pe+rxM;WsE8HOJXXY)v6)!%sowKq#?j?su@G-_}`WcIf~b(kr4aGRu30gM5#rA(WqRZ=2WWlsz~bHO;T^$lK)V! zY4Lq*XWz_LUt8xHL}aSXZKXTt{oExdK>~@pkA+6d$wfwdiib%<3-v_>ElW7%LaVRU z<|nfptJ{-@hBEiHgw>P=QNTc?3n*OQ@X3)3SF8kZ73 z*a4c9fjWJEum58sHs>gBLZTXb2C{u?+U?Bgm6_c_XHIgGJoeh)K;A94cuJbWdhk1} zp*;)?A^FA;O_n1Ln|@~al;me5=T-Ou8`a!4s-8E**Ig1{zTf4@?%b_vSkr$7k++In z$eTHOy~*b#^9IkN)+=@di+E>UKHQDbXth&AXiPbQGRm3uter`x zUR+dFR!uCb70rVH=x~D5NZx!X1GBT|@~)(9^+?vPY-m$+cvC%)$6#!>eGY-fJE8cj zCV{u11sY-}uKHKmTOOn3C7!)ebei^h{zhJKnn5EVj z+cb|+l0!r7p-w~_?V&#Lan?|c6}ZBfJKXN`vsb+X`S2Pl$E0rv5S zKF}WDP5;*T7JX!I_P97>@i#U3pYqLrew2Y~R~2IGdxfh)m$AWXrV~Rd4@A^7(&~A+ z#D&;=-n@l7Qw!?UHBE8vaiz~%ln}w<7A`dBhFI)}*OtUAyWn>&*p_e^aYd#@jz}Rq zfj!}DLecgl6AH&iR(@EE)rTgj$v%SM<`giWPo9Oi0}ru`Nk?4r{^87Wo!^vwa9-6y z6%f+2IyoPeR?$0>B;LoitIFj#jfIW4E{|P2 z!J-ir$KEGNKBO9|OW_8DOF@O~>{(vX+YssW`2e&s;}-GVDlww7gvAqp&n5hiein$* z(q?W_0rn6-mY&%_mpDCM=>jV;>fEYFSCLjf(y|M_0&n2$QF0e7`Zg~~rK<6j9wa(h z1)Ny&L*EE>x&Fb?Uq(V%B4bqCB&iIEYiNmARtL znM6tFR7*;&iwvcW=!QdCw=XRcLDNUByKLW77XOIl;nSU3A8`9l-S!E2FEa9jF2%>m z)3_z?`dDj}zQ>7zyq1)^$eT7)IN+Ui*qbr5-b~jZl0WRzT6u2Sh`>DtN zPe{N1{eKtffBt?3o-H=XELg74Pc5vb3(Z<$T9dC)MKG7f%4u0N`ocCR#^08F2XaD9 zQF0@ME=-|t0~U4D(CM5xqe3=Bo3E@C*}<5tUvxSY`4KNIrV&g}zOt3sqO3^k_1gB}oRJL)NdP?|n|O@wI_ZOt1nC zCQ#L#>>lAR7OE?%N>j=I7#@2aW>qGhCPLVKb|9EfO*jUE62)5rr?5iPy8oVWHu;pg z8GWCQH^v&dkk->*R6u7G(ToOfxLC&vM?hkP1L`LPy5)Z*QKO1zms_GjccIMK&8-^I0A$5xGUNlI^B4D+dZouI3_<*1mqWu4X()04?`VG{wvnI5i1z_X=LaJvW?*L)H4stL}-h(SI*Tv zE?co~`&&sGFinjtZTYgzn25f>@cr-gM}~fEL~&F_h8Bi@yAcY8)TE6r0HeVh>kUm8 zf3#RPK;7VdltlfPJAG%uE_mi%Iv`*ZjHO`}EP1)zSF(rbDgB-ay4v9%yEf3XcX;*| z4g?q#%(=9t1r@z|b!2Efs##*!!v`;KeoHL)rvIV zPG#rxWL-KZKSE?bwAsL%5?B>r9;KxzRGq%EW!Le1LV|Q~P$&Li{|Mi&o}tbyh;0v_ z1jnc;9P9-?JO%U_N2c>%=?(pKuTx#|zVEOP*lN zE+)(_AgU*jPzDCB$9yTzfV=M$#B z+`IQe7|F`^7FP6%Q>CRpnP_jkc9=KC_SEK8du#GjTeIMkIdAeOI!eZ!Hxr#7wO(}* zLCZT9tT-F?7VZt^>jQ#7+TtB^tjK=it@Qo;$aNlK_HGi4y4S|Bmi&0g%6J*_dH3d- zAL{r^d)d5Fo(E?uJ^#E&zdODvJvusiXvb&!mi>Jx{TE6e>RYOe?G?tQtSQxs(Q%XZBIW zMKmyEU#~NR94g3!ZfK^1Bme@jSD||hr(K9BpTGVC;XCL9f6x>DS?XzXa8|{3Bm-?` zbA5rpxJaMBDwwr*zCj=dHdx>y+`zmC9E>R9j64tk(ZY2sLK)gP{TyEo`=c*oe=V{W z5{E;vJ{){}Xk3!7JHe%hm@cx;J%{MaS) z#(nkZxH|jpA6s&FZXM>Y@!xFRZkq)!m3E14Y$C47#DEQq3YpM}1^F5DYy z^)-dpqT(B{C46%x&Z7ZgBtFHvE%trJqKJBCF zP8@!0B%OMID+r9ZXStIL7CBM4hALc7U$Z(#>cEHk+B`?br=iT3D1K-p&GFXMlQ~t1 zhxp-`sLk%+j~T$1$5h?;2vvPWoH|P?IP}j#V*WUr z$#HyUbJ{kX+65bj(~+6e&9jUc6wZ9D3{f4tzQoj@xf~J`cihIS z{%q4~e}&clW4QqMdE`i%8h>ac8(OC^wD5X!{Rm#)Jo4#%*GhGk~|AdEIAC+7`M zg#Jj?ZVKCJ-JwtPJ)yxAYolo=_Z?+>1-<1pvgv?C?szfmVsUXTtd*0KM~+ITS6~}m zqet*xc<9p)t$4UmKQ!W@ZbTlwiHEJCHse01Y|aC@!EH3q%mGt}v-|~BV0RpoZ=Ty! z!XgomT|S~GvmTQ<{;0*4H? zaPY7?@!N3w(igbRfieEBpU@1VI{jL8l%=2_u2K>W9giL95l=umF zdJ3P?XG#IdpZB@=qtteNU*Qi(%fN{ZbbO3Ia>1o`LDlcM;C#E_Z-3%~02cs_-X9gU zC~j%e`zdRXE<#kZ{K56796^C$f3QI>*!K$f1zTnK#eKOg{c$nBf60Cy(;v>S;UTQI zU$pBNGrPI(d+isq@M0kOa}>jswfV;$D%eaYy_!%&6}G5WU7je|^M% zdFihq{wtsU8g?K$2V&XMxnao!mJ~wU#3$R{ZSGD~iboh)!I{8m)9&P^Vtc~gHH^+T zNz=D*yCmXy*KzTk^4uE^S=C@wC!P}#cH=U}EXw7{vjh*bKU5q!k{4RI?8rl#rsang z(2(#cPF>T+`_r!FE^gt0vZJsm-=tQ`d+OHpiQP(L7x!oSu}F66)|~qZ z5E_dio=p>urd^eI4-)T`nymrL-US!B~^{d2+g=n~Zy!}veZh`7}B4cAYhn76JlJH6ka^Rr=ie#ZA=U z8&Y;@I_ES>J(W$bW>;)SMr8A)wYSm8km}T`YU(I*yYNWRqvO(1e;g4;ht)(Dxbc*?kxy2l~%D^=aoIV=fa$$L} z&-LMbA+Pbo&+(F3ZPiDc00br8cB%_Pzsb&X?|wk9`(nFz2BG<8fsl=NEW)wD5*+C3B8z$q zB?gCt%IbKr%z{>Hp@JY-gvg2b^4mTkuD`!kqS zn0hXEz3BYydH5+7w|uOGspIHdmCN2{aI~@DYNav_5E9}r>&SN+zv(p|Pf*SBc>9-K ziGSjZ??-?M%?6dTk~nkOIuD)_p({zO<(IFRI$=^`-2wV?Yiv*;=9dc9`q0NlE>Bb) z(Pt1ntYuZO#AwNCn@t!K#hW!>8#CXtP6+K%a|+EJOok>!wic&Su@}RKR0B4^0o^|p z=M3So!!kdU@8UnD{W7tu+iY!NR#HXoN17R zmt2gnuu!vVTUUgJd)eQyDuBO<$Z1o1+=5O%s(+ibiA#wIc6tLZ+Mk*d`9b0PvdhCC zAs5Tv9d`4Z-kAdXMp9+yi3&Re1YlE3G^TRo>{gL364Tyi-&~?@|HRHnJB{xB^v59b zB7_&JFl%*{M9`*wZV^xbUShDb#`v`ZqDcE6v~q4?e&l^uWQ!-3?yBRajOdkVJA8h9 z=ByDN?bhU+wD|wjkJT}4O>&$!C>b?SrbiB+kUGIWe+U?6ZDFL3LGu1!ltJM%VmtAg zK11!v0x?mns9A-Befi=2>T-AN-OxWHGiQYM;e=uRM@jgFSgX$$eokHI0XGvwk4zb# z1TB2p08=yx;~>>viK5=?!0enn{jFTL7}Qja2;^ z?w@Pq0nP-WAK`)iYMShl+bqUZz$t_^ltEX4s|C(2?+Q527@Yu|>#Ck+tt!Kny%IA1 z_~2&X`64Ni<8404{s853Gi}aPkqTsDO0*Pa6s_Jo=IQojbf-^ZSe16w$Y$Tgm-Npv z`#0@#NA`Ony; z7})?TV>)z}3Y7Epnpkg_Pt7Wc^!YOSL{|+x4lL!G^q>FS^2MovAXGu=fgl@^I7)J8 zl7FE)G+75I3A9nkhl$gH>T^U=*%sky^$UnTa%hC zV}s)DoKC+AmsF(94+%30<8yqG{*nzCLr(sIa=$Bda!q8bj|Sct>G%1YeFcl(j_3^I zcwQ)y1N97<)QzjOeZ+ho))3>1-Cv^1BDkGk(^)27V7!eMamYU}kS*$lEok2j-(;bCbV!;|sZ!O8~8% zh}S))-oD&=2v?Z;-I^KrQCOd`_4nu2Z=n}S2nAX8Gd3+E$$6pqA}bMK<8%0f?!|sY zZ4&Hi{t6^zU;Qq3MYJxMCpq+SmZz4oPj5hYN7l(4 z961aH^K_)EI9(_Arfy?8kq6CSh;VfyFq+tBm=+HtzT(X~Qdadk0S3uQGk{axQ873W zV9GKOD4WDTLWl#EDCEyz|8lSe*bJ7KgFVv#jLSGW{$B{UO5pJNkh>u=I;HC$a&ekJ ztJpQrC^qOu4>#E;K2NO->+&yqXgn*ZLh`O$-7Y8cpea^+jM!(=tPXBkujkaxyZ}vW z%2a#q(a+>c+&OdLO|iTW5-IoZ?mS1$E+I-T^6j|6es|~?H93Brr9sHE1Gd#?lZ2iBU1q*QOJRPmB)JtNXts}tN(=XXVTu2u z5+i!gC^98rO#l-OG67~+QU%*+;dkJUMtynmDzwnxK9}Z5@F+<1P`T(%5pDUBlGGEK z^HTgR5iwZjUn2^^6xJrMxui(0O88sA+?I!qRpPMA;y|Jpx`t{*`7ZDIif$sZsfuW3 zRU*2IFOzOHqJMBP9+y|_QMKjj0$_>YNM*bM{x*ry+mWN$lJ7W1HIe7KI|D%w)Azsu z(E$-qEjVFlQHyfozn^JDBcLmNvc9@@i)ty5+Nb66pQyhuyT06Bpw0Dt{U?U>%iAQ= zDW*oP)v5D6(i-$))qa-|Jv-CJe%)uQBJ!_mHB+r=M)YS{wLs3FqV`KiW#0D58WK%| z$%*owTlD3LFtC=;5&@h~*}0Z(FbLF&f>wWm_{j_;mIYws{ORnCwNt)QK9 zBVng^a1-yB8?*Myc4$MxZn!J)-eLcsvqD{Z?|ejihh=P^nie^n4*#BJSp`kCj*l#l z9)GRJ=>9RNYOAm6T$+7yz8DbgmrJu>UOndJ1KBU{63kXjZW1?mJhAOYcRLH-I@Yzr z_(gB5)*JeQtPHX2efejnb}N`c0%)@9Jv4VV6{q^lLI0VlSF^jjB)hxWqm0mrTYm|R zB!tEC*WK=B;-v90mAo8iZ^;w0*J%2#U6`K~KlMB1qFZALKF#nDID@l!7~JgGs%lGA zOB+lB9$Zmq-~%zX$5?^;5Rs$v^(E>u zq@|s{lL*xpJ6TzHCtp`ZnZrE9_rCD=SNP^v=nGso^%;h5gYo!`=ys`cSXY>|^zfPC zx6BVqkJ4zmCas(A5WYK}abioj@c_FB6`74Onw0vSKzaPLAVoM<#Ht7q0+>zkBMusk->!7sA5m@W4Rx_%^`&9 z-Jg$GgC|6~$r}FHc~|(Sh0nlHi7|o zo489aJv@yu5Qs=*3*)o9650YoRl#01Zvk4H>Zy9C%9&!3eQpMzDb! z{$}_k|7hrQ=AiL-L%N!V(^pNS>BT1@?|J^w@Z0*B*g84aA7|q6V;CpOK#3cAE%XJO z9^lOj)({@c9>TQnKd5m!Q1wprC~ZZww$Q^z)9GM6N8DU`opYKII}5C6zpI`;Px>`m zDR1_SX5Rc2DAexr^h|n2q+QyU^U&TKH|PNNv?b@6+ET8tGC8Vgtvs_Ax1u-of%H<7 z)j#YY=!K00r#-`NPi~3%PF-DfgG(p^ZT{44T(8YHZ@vE+Hj=x=8JbSC^H8tT=V8Lv z#`fhT)TkN$WZC{QsG%NZ+XZK#lhf}`F-JUUSw>2n%*>aiSM6tOR%i~%8Cs0FKmg(C zng2|d{GaWTs9QsH8IB(=%_?bj*=7vEilYaE;3inEL8H$cO8hfL zaM%)imx)QoIa1M^TaicEFRm@w-)DmCTUM&X{e#rp0oK<{U^eR+v;ZsWjWN-i*fOc} z0v1VlvM~*CP?IMB{h_?@t?}Rp&-Hwn>juo#h@LO_T|IuhA!dRxPMUZ#5Pqw9AUR9O zSmdZHbm}_Kvw~V^Ktl5%=*>le2rgEYnjHZo++te z&|Kn)55!t=p|)|z2HVAEPs=P!a|+Pwp2}xst&(uTn-DJ;f$mLanOO}J!I+YcQTC4k zvJz{<+KXGPsATs7N!?TZJ3`;a$V#7zw{hge{I!>Bu(0bGojI>8b!A=0Q#v3_j!kFT zX7q6}+hgg=HP^}VdEydDo16Lh|Dl;I`SiPU%&oA8s1A259r{nz==C2k`@_>xKhoz* ze{4_at19U69|(VlkR?HnYOErzq>Pg{g(i!lY@mVVe{CcoTCn2T%x#!dFOoJjRtfft zHgRb!G+c;!mwFt{HhNPJ@P5KBYjLYu^x^7Xg)eKXdQd&Hfnev;$?h}vC*10I<;V$t zUA~0FU!R=T{!bF+d)lS0Ed73NJnP83s!`SAg{<>UxDEs=p+5W%{3&r+;|RsuAZaf; zWH6OhP`9tBU-V+}W8kmUWAIFI?oc}X2Na$ID#lvLi@Z?&m~ho2LK`-AE!=O zWgaNqar>dPKe56&*-IAF&v}4oI>7PwFB@*@A(pKLBW5ruo_jbPf9*TiCns3DJ5dShH zl%J~>;XcDW4#2z+wy0HubV%nL(f{X!QMuw>HuyHtU%Tj-sblu4nNI^~PByTYEaKu0 z#jDHlr7Mis(`}_Y{6mW;QwMFOe^afx_9Hw$0*v!OyfPoP-CTQa={7{DR*0VdoC+31 zhCId%Tbvwq@C6W(GPop?2a!!>~tEMv>H@m_>Eo;Qh0$*-K zVxbPn4a0UmOTp?VHC7kp5$+zyLPNoKLg_;MQzBUXx8xZkRy>Ybh3fKRLVFeTnJ<;T zXCgTKbEU|!)NCRI2Rt!V9&kdjrx;R`&jm8$(|+?Ob6WU1LT4ex=QYRysflrvkVady?O<*V7EKFJ3D_ti_brDsW2h zW?Gs?xRlzE+mjJ{34@UM<*ojfDyaH=E&i5jBf3{w&ChDpYaynzxZsk^h^`(Mw8}q!)9OlcccSd9Y#-WQuCGC%-kyg~fCzB>P91o2vG+`N@d=9$N3m=^uYb zz=$CcynkVx5kq38bCm2S%fd77_tV74mIh;~BiW<<6xJ&;{# zp03oA%#-ftJGT&J!8h~hn`UQ%U%oYx{WA5(tctB1@q8Y))V}ihH|;yB0FF{kBw6VlpZNX^ePNwp7S00 zt0h^L>HO2+k~|5l=l(KN?(mnG117v^=ekv-lDL!jU#i?J34e`NCoay&tk_Qfd;!c` zNOM`lX@MKW{Win`j&StMz;iQWc=<}pxAN243_WP;UueHpJ2JkSYd92R|3ILKUj_>0 zN822W<)=)3N_f9j<=$P@cfbb%a$z)3fKtT0zQns>=>?vAXRjG79|$sa9tc)(6FP(? zL@ucGZr?wgW-Ghoz|m9AjhC+4IUoq%&WpWkbpOW1w5ruY>CKiTvG>p`@=XrZGn7?*)j+)fTEv^kz7HbX^3D3H zir#^GfqA{ayk1~lhdktTNR2KDE}?1q2gcjnx?cSEo~fBlf%z4yG# znKNh3%$zwhQl==}mV@DWSD;dCYCc16q7%%<~BU*fiC}KPp=^83}#w z8=~o%Jjd@3-k?u&MSFtZm`qb0JPkJA6DKzo1-)$Klgkh*Zy!dwtvf$uKG3L5WvdSq zw?BdkkX~boTbt_EZgjH&F(~E&>-NH|TZYqNBFvmHNjWG21-gmIbH%m7F&gzMn~nnF zq}>_$eBJEwYQ>BvVk%2-aJ=sEtt+BGd;!d^0Mfq3*a&8>-fAAZW<@R8ZY}Z@xd`bl z3+atEq*oA%6d}po3obvN%8$3oH`&Thkn$`@t&r2G8M-qYL=LN!&m%kmIV+)#|Htbd z6J5ouc~-wJ&W2i+R%m>m*e3VNMDkJtN^!@y;}E{IJjXcAf^r-|InIJ|rVYyLh8aq> z0pQ|@l(>u#$`k48ip_{h{k+p;5M_%p~bS6?Qn!e=iDA{H~+ zO9T;xwviX=)IjE^-)O{TJq*e?47&$tjZ>;a!=9pa^M+9(ep#FGt~G=k?L!D2;UVT3 z!$-`e=Fx8Q&}!w5*4~13M68a5BiN&g*R{OP_M-eX&%W--3ffOv10PzJwXN@^S1&o< zu*_%0rl0#Ln$?Fmt)948`{D(e8iktV4vkNhXD*{@$aWsejo9)rWb(g3>vACV+gFkL z?I+>Ele`g3RCw@2Z{$0?$l2F&I?Mx6Tx!zu^gz9{t)jLx_`W_J+-|#marr>IGxT?@ zwlv)3)Gmew>o=_zMbbH2E>a84`25JS5Z#QgS9?qb)&Z~Re?LnR{A ztKFT|61<{=RQ@i$c@u>RYM>UUn4J#u(rA3{W!$--kF{%i-ZhRl7pWj9!XpBmrBsZKEC_#u69;7H{}f<$xNwza ztxyD~i#S5^)LL1ZRkFF(TXM`4T64*n|KbyfK)HUqOWPRU{ZClAzmW^+jJJgF&Rw0= zEM9b0i%?iCvWhtWc2*b3hX^RuBA`^46Zt~Vn^o~n3gpb$oxqGi){}#Xxei$cV~zbF zhlW&Camc&ks$8~c)$o8a_W8%vYKkv1?ene|6ce_c%|X?|FlWjgn;P0^m#~%o3P>!l zVB-i0VYwr3^AndhayrD5!ExTm_dtQfkt1{Y$#`$%8UEt-Mot;$;LHe-0Dn2o8!bor;D(~Stvo?xafT%dHvfyf~t?NntfEGkBzF2ow?G7 zKHF3Awl|6^@MZf_G1$K^FE@N@2S)uu>0A11QT^5YSwhapsste$0)MiCPDa;lv8O^3wDpo+OI)4mGPhQ72%)OE0%{%$2t;(OcWIZIo zF_|DpM~RN7DzQ-)*9avon#bEs5`x4Ak}*4N&2%M$&6S@UrGG6`OOH=is>{PW4}w`W z`72>#zXn3Y79#g@qX}XJjgE(v1>?}#w}6~?H5?=c{RJ$4ikt%(|738#m4UrTU1vG>b9t^GP{+> zRV!W2Oe=6mK`SN3tivK&6|C*05z0B-yE3w$gG_<0Bk(IC{7ga;fa(Ip0)4S+B`Uw* zvUg|_!#jVa9e6*8v|2KE$VjQ0|5yY5HL9$`YMSO^o7e+KWI=kgD?P-JjGrDcp?xnK z+Mr(^Z^z?twm~2#VE7V}5$`ypCVv=7acMO0j|N<2>2I5GwU+08)Bwl+gs*{x&L~`>F9M{+C6HWH_-#*BpF6w*}io*bSv8}pG(@?+E6;y zxU%p8fO?K7L73+^KEK-%gbPeT_~C9P2>%YNWN))Jhw~TCrluNc;;s)5J88I01koI7 zxxu@l3(IOaXJIuQGU6YpCdV**S?PIns>d<3kZ!XH#>w!e<_@`E8*63?vxyaL*wdQ* z!p7=UWH6IqsJ)tV0BFi{VLhr^flEnDS=X%`u+78yF`F@Ff$7wZnidlL#C1MaClcsX z_{T$bBGL63NM{?3l8imJZuGG=^!s|+eSavKgL0Ix<1%HOjZP)wYlkPUyb0Ww|y z@h6vkWZq~k1Hxqs|3(^w$tPOkBqX;Jl7DO_5hin3`(@2ibXu=vvFN5uOz zkWL7;K3&|z7_KJ26;SRRJ50BWXfP@HnL%G>yR^>eK5w*92nS)gK2kex9DGMDOB+SA za)~UXizc5(6PF|P;(2d+;6DI-6}`#ze5uW5PNRY>fA2Z|0&i@h?EM8XQP(}X>*3L; zy#0Rxb}%oEYt3EsxI7s!1dqX#ct!5XQU;aL>*krq!rzoxjK6bsn)oZK=6tOM90ZpI zq_HuWe8z^sGU0H6! z$lg!a5$>lld2y1r<{}Q;NMIFuBaK2?h58K7*#5rf!j8 zgFp$qnK@lFmW{BJ@4e!;7QahLt@iqLE=hcLRLiK)JXVE#(CTmgb2#Iw!%Gn_X=gi` zA7KBO{ib4BbLq=KUAa3nE`FOlbH{`7g>M$$&%S(hByZ#~YrfQph{AbJ*;v>EyRLXW zOq1)be_idDb;W?#vX`OB1**wp!FFsTB~q^BsB#gr+<|Q}*t z7WEicA??j2~~#Xx(8Bwl4fd+>u;*BQcp^3GHF* zj&ywL0+av1AE`jE_J}_cNv598S~i5un0Yl{$?UN?9=(eaRW4lA&cs_Spe@|Iz>l!2 zn7X%rG?YoMhs)jt>b`h*FHAmg1}@@r#m%rU;nGBtT)vO33}RI9d-#ou1);*|Hmx&s zDlIZyogiwxI9QW>s05)sD(#wC^W46*atNrEYIUAbk!frABwakC`OIW*_n3!uHviix|+VdP1LwiSin!_|`FKaLIeSdY}1`}6sCe7z}doq%$UTcOoj5qaUEm-9w zi?+paQJUAKOR`) znRGr9;M`9+gQXCj6wW^n-P9u}Cv_it%w-bcVoBU)x$IC|spsg?TpJB)9r3wBYf99B zJK^&)5K`Ji?n?(^#EQ<>s(tZUces7Z2;EsdYdn8kuV~dBXG(5X4jYsF$?v^BlxEM& z7Ww_mWy5LXRFmuE3s?2U@9t4-m^URwd)m>oXW5)gyxsG|p)`A1;DN-jpr=2fr)<3b zgE#{PijtFtc*fYmL_9;g(q%k6!mRfpJLUhI{y8*C*8Pjty$Jsuevxmjq1%&q?q*%-Xf9@P65Y(sqtthTG>I8i~W2%anDAhwrJALAuMCC)()2rM7vh7UXMxS6=i8xqE<7<;2P;)Imd%=z<#yhyn`IY%)) z+;YT8;UrEI$bKA8UNd9~e34DV;`*G~&Xp|iN4#i)D9IADF*w4BW6(Zf8^$T7&G${( zqk`LT$OinCUmiFRIfNyjYFCB=``Qi zap^fn=gDoc1SIv8J?&_``b8ejj#nI7he8JQcnkVy6`Jf#E<0#PBXXgNIB}ZRt~>13 zc)s3y+~va}8n+%~d}rn^{cvyAB=Y7{2ye;awP1scdEiLpQ*|Zxcd-~@*V~e7FCE6S zMMGcnf$w@3WtONEI|w+S$rAa zl9Dy8-0IEpdUb)>dfIG#@JCW!(2`+t(tc???=2;Is`j^hPWgfA*-o`bR+pPSov0c} zF3+l&Ey_|&;wwMkKI_+h^(~J`+N#f{&#y^K&%u3Gnth&Y_Idi}*K|wf!bElBnu@ow z@wl^5)ihCPs|l{Y`pu)YrRrIr*?H5((w0!?k7L!jUi68b!l>=1eCcYO7SWwTIjKxz(0_$?V>CRkIK^2il3(&H(h zzU@-e?_owMdUnf&K;3GcG2WXL>lau+Xc(XS{5-55NrEOHydPlaP~csGU<0G#In#vk z?O1R0VytWU9~M>AmWL()0Ts2C!F%|qq(%ZdE3CK`R@6+!OL^xD=*0t3<)D4;h-svJ z?5jMv#u;iP0N6~8=Q7f2&s8hJ^ro>p z$%wiKCz;frR!aOWWN?E0g7j&9E{nb4@)Lq5>CK$f#-5gj2x}yl$HH7cxYg1tx@M%*g z+2S2&Eu2=8@1zo-h#qHND>Y_aF`Vw4TFUgv^#iEiIki$i;(Aj-`oAyyw~3mF&J>bnTh99 z!rZD+k`)OEy1=CiB)WhnF$g-~60{#rYxA{FpkVBBaLkXt>Q(u~IR2MlW*>aX0)Sij zW&6s~e0Hm>Re}L9Nxte%g!?mQkHREOUQ1VLHG69nrBt+68o+hMbJZ~<9{MCg4 zKG+^^A0IxFLu1rD{%|@69jgcuDq8{l^8Sr=bQ1{agT1`9UY3SGN`3{PC>6$)e5P|K zZS;aQS7>7(|C%hzB+RZ1?NQ>>k=d8?S=36@tB1Z(t0U&VXDv!gws({vyGJxMGE zVcg2R{+CYVw4Kmcu`xP7;>CN+&y|`=u9G;``q04OgQiL-jKlN2} zzQedG6m1KgF%V`;U}(HPvxpe!2Oye}69?0Zp>D?S{nl?=Ji}2W9AvkYB5>KPVW(@G z2`UEHyqzKU^po>H9ZVxWtBrlaJ%-0Oom*E)_lm4uvRkfhhWQ$oOT<(&{ybuTd1e+< zS_-G2hdkbaYvJyloOZ)-x}NxOUJ~IuXh?7fgV}f*&tL055N*^-3uNh3|giTh)a zv&y=^?l_a`?Z#iMZtn|1?-O2zm6n@KryY*=oj!hoI$uxkOs6MwYqc&#kPM%cCKwe_ zCbu5pgV9{=7PlGI*Pj({)UOvt3zr}7i#AiYkv>f4D(*n#7M|`i!#X2vaP(rR1{|3F zHTrh2)&-Egkpol|{(q-Ld$f0H`LLA*0AQU&+e4@5@^ciuD<}!Tix~Zfc|Fy-)Y^_a z)Y^_@Mkuc9Fi<8pK-cPGu6DU zBQJxj@{s4T77jPbzJCs;74-eXmY{C#ukRX%Aa{N_DnY0+M6)s4?Ty@zUfwWpJ;Czt zp3qB^X`F{Q$@W3t4HdP=d85tr(|8uhVbAT?NBFQ6HIhH3{y7ndm>OKkNB)!GR1@xv zoPbIf8k}`njiuISRHv<Ph;=&9NyY-!;?ZH4tMH3o34bA&^iZDd2MKR&-k1!R~O| z*FhAq8o$_4c5kGWuxb9xj;!^Do#jpavhwiZv^Vkr6xb<^;lsIdU{kT|X+{asGF|MA zb^%mf7Z<}62IUAU5VB$Ts)p#{3fgT7FC=Jbm>z# zqUgzZo#<=v=P{4!OTti)XBrAzeXofPU@w86a`6qU3 zQ~Zg4aLHezWLxhhdzr4@&3&Z)tCGbq10=RRK5uTKR~Z>@yS8_utwR4MDoTTR)k(!m zFp|W3kIySfZ0p|An>ED(5d++YlFB9*jmaF+D z5ce3kUTgj~2e*qo@>c>SeaY>c`(7V~5!r2gR04C242Wn0t}OWGW2xBs^#w|wD}-CwYz zH6k8}98Y9$!Jyf38E}n(%uDMTnbE(1LKw!ZD(*3=oUW=Y;ws&vt9Zt!@?o7+xm0*A zKmR0o?Gd))UxdXFF{6BV=<9tBYg@BZfyr7Ss#s@W>0xe?4-w%#7?*P!w{cL&a#|)= zqe?6Gyd+OsC2`uYU)3Ce)|;;dO5pV!Z-t|A6;vb*U-{LsDMS_*-DQ;~I!!w=?At12_*$ z|2%W)m(ZFo*>)v3zirv_4;pQmM#*u`q=8NoK`>5R)TFi zp}iMfc%z+8xIpN&%(3sr$=TKQ;WX_d55s9Qoh!nlne}lAR*(MB0s33GvVZoIs%>d>bLAsn-#;*!-0R<=4Wd0PGAyoyVb4jZ8^ z`Aq%#7@XJsr1kI~nWX6NFodv4 zI_v}y=C0d9x9H&m@~ue^3ps_ptA_{W+u3?p7EUP7GHgN%_VX`e!+FEzsdn-c@8NW+ z+x)c$zv9|}`TOtq{W$$5v<;p)luj+n41NtgqU2~%RkDxw58kSTaUJMFMrdP9#Eg3sn0?FtoT%0 z0d#2(^NIIT4Evt5R_ZmswAm}gbK_jeF<)KrY0FO7k#yWNZ05k6SyAZ%2RTpncksNd zZDK#Y%a5VG8dXOwGg#$ULmTbkxb1jLPnKUuv*@thn&78yqF*Jc6e{-N{ae6UIm^2o zmw+no@-F```mE;Mwxm(ac-!VOx>+s6taw|%ZBqLuJBb$egxDI0(ZZ@uG6-j|CeB2G#H%3MIxftywy4v~VPG^@#( z0i<8|gF((Li%WGMIx_akI^NC3VLMjg3y7vhG&ZodZtfNEOM~a=f5P{JFV_R4D4gZ^ z!c47;AgJX4fqJc*x~_He7K```&9bTf;`_9z4g|kU&q|!NOfAk@w;Cg`CrDu2(k?-B zK5EFOHoO2c5<7!s>aiPc9cQU>3i($qtv z?Ze@{1+=B%TtUh{K ztn1%p)!PXONxddb`DHoZt#&KbAJHxpOx`6R1bwk76aLd7J1^FCUq}B3eO>+UQx8%U z52?ep{`dP++5Pk?7+&Qc1jT-Nu(XRG5V%GIjzJl%dMj(tgxn}pYttT-s1il^j#EkX z{TWp6Dob4^oqwJ|`Z01!P-lI8`;C44)%d$5zu`2So*x-8&$IhrTj<{Rvp2rNzc7%n+BUEkH*hk&B7F)-CwOVa zy-YS!8iW5?AH0=x#x+B{lBU!n8h2Z00w6TCWDX*ckPCCZSgYDllK)um#BSEHQX112 zD|18WnNjp>8V>F_CDEJuxi(<4E&yF00bS{I+U{Ro#AixyR-*-B()-L~(tF>y79wb( z_x`SESI7n6WeFszVOM!S!75GoIH$Q561nvFWeWyxIK|7PjjI&UyASDIzTZ@a!dv+@ zZ<4ekx)M$Pg5FO4^r;d!-O}%8>g)+!O5)!|eVckW3-Ko2d;GTVCJ1@daHneXwuyZk zdp}6*#n&_FT|vS{-SvLRFK@rfejlpu)!u(dFN=Qx2++_gy?YWVZrQsScjKt)Mibh_ zcS@R$gx-z`eUvA(nkFMzV1-c~Sl!hF&8kLX!5Ap?I) z6Jg9=?=JdYo(N--d)w)IAQ5K!ge3Xv$D{h>dw+2PK}DqZZUj0*9_orZI@$7v!HtS0 z9Pi+~R_AH$3Vk3DNKev7-^RX;(nH_Y-j2Rk`u~y0xw%3yYlQ{qv6x>#ndcPq`- zql{NxpuKzgUm+ZJ(10H0179&_Z^Qf9uW)h`xx`~uI*d7W|7dCP#pva*obMyiRLlYyZD|GjqVH1QBIB@zAZkDV>dbHSWRAGZxW}@ zr2aG@hZfYjvVk@G&}>i)7%6XAPki`okLg`Jc3(s;4Y-5MaCzdn?}$_8=MNda&DA2* zDKH7PZM7C`p&S^AKr2ei!}+KpmpI!aZpO+{oGe~Mof69uR?>lPX@Z$QVEO?HeHN>k z^(B;ap89%@!#LfNC-g8pEQo!5!?X|tbF|H-J-{1*fl7PXINOvrKme(~>*3W>*2M&& zEDchV<>^f({X_h$QTO=e9tyl%^Yy1#$c!(dzv21$PW=(~9&9+*kqDH=CVf8N^s zcCfTgT|EA1*Zk^=Hy0eIy_w1rM#Qd19(M1`eRGiZ9Je#+9Ml0VK^=2BNiOOD95n_m zV<>wDS1Ri=t2vWgk*iS^)I>FlzqRg#^r$^A8Co`LVn)_y6i2s(PF6-`UEa2CLeY*y zpa^lsV}T~Eko}f1rlj9b>vTDmWDzHDvs?x=82vFHrUb@rFS34+cM#NBYrA$*fIIQO zLqj{p?0ytKgMXNuW%^COHquom>bW%iUsLg4gQts)=_yyRaKZtNznk)}{Uj5?DEOrS z-^~6FjguTcbyOTZMqJi)v z(i6Yg*#9a>h!%;|op)y6I5*Ko?<*qcl;X^B``3N+sJ{yh_KoxKYg6*_a)EJDAeC4t zGE0fgKLt?$3zV4%=e;f>g+fh|czMEi=Ht?XI`nqxe+Jp>Yj`mP0{Sl&VWj!rN8Hy~ z{#Pb;H^RZWL^(K@N&&%IADqYG0mGWY#c?QUStmpVjcZ-;+rG+tGul8G8@} zApMmzHQDo7h>d-e&tWP19JcsNSaYCh9LJJGd09`Qx>QuMhc^lkx0A?xJ536^RQGKy z>lxTI)%(CkncZvY<+X`E{pX;hfsKLSwc*__Y5XfO6NEb#TcH^Mo{fYu@1-jFhVnVTO zVy-G@JFf#`yI-POv4-PwG`9c6Twi7mQ&$*s&1HzkW4C$j^x?F=)D%JF*@QxRrV^mZ zNOT#lE~9DP1QeL}R~gV)ZBEQ{hPHGQ1I;jcqi|BzR^3pr4x0Ms@SDCY;yCl%im1pD_-{Aw@mOPh_w#9wT}rick4?T zyR?1oaEQuIBBn1^a~>fJ19c{m_3=#S);AA3yJPh^V!xLCb;WiI9bG-pXt`iI$l@Ko&ubQjA%FIJ^GiCyeUJtmK}7w{kzW4Q@*W*U=X zg>EsgJ3I8cppE=!_;cEb(s;}|_O| zubA>xFYyhhAw@hO2#hYr+rQwK2%{*IT+5d%8$=4RHx;lqwaY6_{YEv_%1!--n|eeL zRHy%()tNA$b9QSYEcYho4YB7HA96867<+3`;&52uZ*)9gFyUPCQ7 z*xHQ#gZ?IzxC$_EZ>a}N`N^#P->7|ah9R=PKCP_l3hiC!3?7kVYxJsOYBRuRfH(+6 zc*M%GZLtUZ7(HB|ae082mfXa*@iF{K+73=POEClddZ_pZ#b@lDSKV_A>3>s;l z(lbMOcfpdAgb475LJ|S!a|(TueE0*%hd(e6Y#T@%Y}iJ6J$?Q_zXk!B>Z9Ad%eT-7 z!$+L4n_UZXV>ge}dM6%;HKw(0$sDjTI-tEdKR4z%rL2u0e4@?S-a10iEeiLgD-7?7 z*BmT*xi=JSW6i=9t7CGw<@6j{)j?DWBJ67N9(thF&DWQjz7E17-?{G)u}yUlylf>D zfQJ={GBedBmRaP>Ihi}JDoJyquE<37YDB7#37ZQ2qtc)JsRZDvWU$!|+PVpZX898W z-;WSW>D$TH8j^4L5_haRz3$9y>gE}>ZG21d8^F9aLqOuuT*E2O+)PUOxfq1D(HnUM zhV>>st)HQpt|-dsF1^xR@V|vu5K5>)96vz6uPHKO!{&J**IR!r*D_;;tquIuZAQs6 z&*W+{Laxh&^KBaYN<1eB1LivbB+f5*s^`>eIRwRWXtRu18+tP97bCJ4y6rv zP$uf?tqsb%^a%%VNppY$AU0&{+T=M^{2`Xiz4w; za~K`C3T^C#q}PY_`f-7*Tdm;VuG<=aJ>U7F8Bk~e7(9W-cSr2s;2eDR&nxP9u3*p1l6DiVU}x3mmv z_-Y?9&n|5_#s^89zNBZ6VbX{P(B$$qhrkON zl5oXGLh%45Z23+Uc!<3Lf@+QBVFh_doOt4i&-x2bkvr~Kbhab&e#gB-*!qPkAU+ah ztSi9I8af*+TKgp2W-i%s#5^F0J()ahkR9x&NE_=uaGEhjCB?Yp1FBqC0>YtXZ{>cq z_=tq3NOkd%-&mCL6o=POJws&Qx)&%U#ewCVRbqB{o;}Y<_y#(WEAT~edU;WN+MZ?) zH}7Kc6=j=Yv1|Nb@=lHk>ckM}9Vf*VfZN2d;aIl3?SbzOC;dQ*K!`#zWFu@t7c)a@5GMh3)WNErg!i zWScJL>%?m4-`SDW4QlrP0oAo` z10nj>-?xn;D|n1uVc-#8Gd&K zGmWJmrA_~PQcnAD%a)omwNoi`9hC{+Rge>mxBePi+d{0iu&59VySZ&X&qt95TXhrx z;!@k>yF}Lz_q1x8c^DC{2G|hm3Qg0iS($*mVQT218%TV@BaY2++zzKLf2E3* zff2#o;HiKXWZ%q5w781BQG^~TYZC+(d81K>;=pC--n7bBa~Pov@j->4C$T2Jw&OmE zEJHuS0li4luH;8a5MSc*A`LR6Q)t3t8ctVzB$f>Iob+#m`yA9qCD_t>UwV}&H+j{E z>2&IiKY%iV<1qdc%i2blC3s(A6d#5Dj26~n16xCU6sRd-rnEp=*IKoAbJ;|7kvWuq z8W>7yx$V5c$}froh7-*Lh6w{~MREqmg>hfiPC{)#r#e3f>s&@k*!)9^wYT`_qKN~# zvhk#e=8FUxc;x}4wT?%Qms{~CVP{H?|EcAlA3_iknu21L9RfHme|eB249#tm&-yfY zc6d{<)=fPVeLZ{}ZIRW5sUB^B=!NwTTus+i`esr_D%p+`^cQ)T?{+#QosdVLY71yy z%Ci^yhtrWsgBw}sWJ+24_kM|{ll;=BP7cxa^$mk;wL&R$Lq3}2W0rhepTi%bN>qy~Q7x)OHLDVd%jYK^ zTg1Ob7pX3lk4f@TE*~}W0ryOi=&_xV7^B4W!DP=cd-I;pb1@c9M9S93NIcKuWE|(mzqCU} z8~4i>Nin42q&M%#3RqM$7RV4`4P-u}ZBuLau6W!j`Jakkx{+#Ebbb1}P%J!5Lez)j zfd|^JXXmke&4XNsGq@7(hBKju=g=S_P4K9$)o+^Rjr@m8L66$%U1t>&o_-(ysCJJ>vB7F#*eNIPu&FJ)D#cQ=4oH9#g3xJC~v8EEIcga_rg1pEzc@CLD zM&EtrMEc^(&H2kwfW;Ld+h>o{ajuy_{c-Sf0m0>6@po&|R_(|n?ZSG))J1P}TgV?+ z3?@R;xqUn|Dt{mYhG3kO@7O9o2QsUgPoQ8MNv|x;<^9M*2tg|}9jK950?r<1AeMDhro+7>nTY$dC*xGS01#`pfa=e90i0 z{|oxBJ)sD+}~3M$>(lL{8U^t26;8u#c5-o@gDFaDf4S85fE&zdjQ z3-xDAvBoxGVTrW6#nx__wCjyjn)+o*JzWgp}*$*D$Gj-D9L*b{T7G_q1P@~1rJIjWKSM$eOP z?0MqsDG|QKE9LUXF6TMSRKO5#^Dh5$9>cgy)(SeSc=MhK+5^(in`-8x+q7$DD-g9S z=4w9-YISqG(UbBZt0br@5J6&CPz> z+>{(rbAyO?Y7rcy_r{~F7b?_baN>*S?NrMzm&R;#AGWWK=fB|U_-xR=I-dQ4t7F69 z=+&{#m9;vaHCM;Pc3B^N`)P%=1y9B)@~AapIlJGSi}M4^3&gwRN`8Pfv>t1S?F%qO z(P9G4VAn^Ec&v2FR{=KZ!5*MtFc?VGlVWOQl6sqI65x3u!&uw6lkIZ(G~3XFcwT&24A;Iv79O-y!_!}o8a^1XQ^QkV zkQ$yH;GsMv%)_?vpj#8E_pBLAv*p!Kkfr_6)ifMs*_gLeSvC$HW|P!CJ8eFatEB%z zzw!QIMi0=)W^o*ct1)@}#>;q{-Vnvx7BQN0d;qmJiDcRU-xPQq1q&%;EJj zWwuxn-0_$KC3(iMGn+vhx1~*940vt4_}l^eOhO1Uis@0=z`9?cwVsco4Q+=s;NN_lZ8^$ss0kHQ%dECR%5@r>gy1&9~yz(YDW+=RP9L(;|;Lk21iG zD*iJno{-k9r9QzqYN=1=2TE>9Tsc3X+7~fBQ9WOkd)L8d@vMfam!gg57?Hyk258WH zIMJc|^xK>CK!bi|z#pIMper>Zt$Y#G@F3(SC?;$sh)h z4IlFY8C*y?7>mo&h>uDN80*75q?2LeGJeQSC^}F4cs|Ez%{*YIIgZ7VeSR>u{V+Hi zw!^Q%cK8F>4$rgfd-`SmXixBD>o>S>@1OX_oS5AHxL?@`Uk(2nNI9Zc2cm5YcW@1D zfM5MtCd-w2e0M$1 zJeI97wd!bN4%-7`R{U8Pf|mtP>BLVCI%M4OiqkxH$&OyLa^XXpN2Pi_=v9JZdd3dot91T z_=VsfxSYpwj@bNThk>Rjz#7<{CF=tUi-Ri5d3%=KR$rNxp(kbHF6<8{tS?OHd{z{kM9tPN$`Wp|zr zUpSbK?hDRj&)^1sDeiF_GW(D};ct`rpJ-RGO8Zd(b+A@%%-3hzlRp-u8wxNtWlg`v?iA6wJ?X1l&q7QJ7^DTC>z!iF|b%6(rB(z4Nq?wSX z{($8^og@SUF#zlwq|Ji!AoU>1>obJuhC5D%8IO=tE5>%Yl)|R#`#*I$Qhy-aTOOh2E>M~Y zfr$P(?EaGfraZh9d|_LDBl~_}t}YkNa#2=2!h`a@3tllQ{#=J1DA4#NBF65pKEAfu8AA8jrA?FGTFXbJ68T3`n({Ng3= z62ED^+Xp%h{>W@sOHs?jU&^#l0qUhTe-S=^116}>g$mlUyuepvFN)L?L^fBH^#E5s zzCVsbpgUc{4hU!;E!v9QpwG5H`rsi;ul`kWi7Rw~cK3=}*KJAKvd)rSkr!;}%4NR!9w!UDa7QA!54K|cX}=G@ zR{4j3jpzLi{Cd&v!n=E1`W>!{hp-2EBRHR{c<2Cs|A4<^Tk%HV5K-|E?#M)AOdUaCcxhj zevw-{iJM;Vx-Q8=;-~DgjCN-GU$M7;5}M7tI}`7|aA#%QnRoeBX+9XYp%_>EtXYT` zDj;G-$$YmL;s?`z{k)Q;zMyru%m2N zRO2r(MGtS}e*u(i@gCl^0$wul90F;{Qgi zEu?Med;D;-cg3kr>^l1G_&1MOs1Iu5GcwQZYHSlt8#w!!7Ewv8ZV-Ur)SN1mYO&4dThLzo6?3Yf)B zQ)kd$%!7(G@d)L3%JL%cF;ntTTbt)MO1)rx>j)}%m*Xk~JQ#M_V((xjffWH9LeI0L zVjCBZ99`~hF}zRWEjWi`YRin3ar~r$d56**XGJyDfyQ#@9WvvoV&rS?+Qo`;{@P`` zJd#h#6d#+#o?y=%J|VlqEk7g)4xcc;!==aFN<5P7?=*MKz!#rc`lkc8Pz=6puFLr zFf6ngPUVC<-LMHGW3TPLIZMH+Jr%7<+Z?))LA*7O{TF8_|3w9sCqC&h@n0l-Uhh;y zGd|lY@`!?Jhfv52PzX#Y_1?&88#oIWp`*yvc`!NtMLZX4h${TlG_XaxW{o-QCNYL# zLVr)Q03S&nd=SByDoqPkfCRUExPUhKD_Jc1%I!SQ0X!oS7)>Ov_!Jg6p0CzTn5oQt z;rM4X%Jr%-umfOECCzY~1Gc=Rtu$v@&9E2R2{_vw%nd!PW}vKx2CX3$be24%X61U< zF{Z*By~u?_Rho{SE}oA14BE|F|0#5}BgamWoyQ_WFU!(A_G#mI z>`i4|Yt7XW4`8siUHH=b`31(*749 z-{fCy=JdU)G8M4&-8*1>JZp6n81+Oc02v(7vg z0hJr$hm~7yj(5pof-!!Q!kx)zARp!kDY%T-kz;n^H#+EL<{ULC^Kss>Yg8Ifiqmqu zWH<6jBOT6Ys{0B^j?gzt2o_Eg$!$Ls;zRbLWpE&FAremqak|bV-b5sBA>3`&8uynh z5`XBhsMagR5CZzEIL;fH0*=qZ*S@kI462>l z*wTRH3Js(uUnd|<;w7(mQ1Y7}apYgeAwjs>MJ_Sd@%MLIT9RU=oH2V09J-AAkj=a8 zWa|ymv8sBVl1fO~sWw;p99k}*(yCpt>XX>g3jOPSr?{R%*JqnX1IvvtR>7%I!o4@h zwV}uNG2nHBV@#Z4x%Xw*ZH>_4ozG@X+;M~AyB|5z$yoLyLEB*mlQI&kB`5B7I>K$^ zY(p{|?avS+`F`VT zILfPYYe(a`m*04@-*EI=n9aY9bI?UTdQ?&6@n`5*2%WLIlSJZi zCokT~ifpg7zp8EQt&Ez8593@bKCeV1JGpZ zIOyfd7M&n-q$)W(Yvi*32FNuHs=kSMgKh;bFF3OfsGu z;a$`;&X^MobHV01pTk+_Holj(pXY@47IGOCV1om0fPLv_YNku5Wv(=@fp3-?ct1zp z$Ld(4OTPYR&|K(Z;4M>#Z`0=06K?YsT$5>yX{yCE{F#9<>H!7$fs1ecX+8~I9hu3qH{ z!(ChtREEWE{E8v1a}A8BWo@7S@tTg6)7GPXIUo|qpsfe}ld`(dI$~n0WD7r($HTIB zD!!Y(d=f^ju?mDhR8L}~ab=~Z*E;oTPR;zl#(+vBB{2+OL<@JAW8&f*dj(`;jqv5* zxJ8p4p;;zZnmRw)wqRDw6(}2M-8!0Bk3}fh+@2SE3 z?P00%A?`fM*FoENlBDG$x~tTZvP%unEU!NgC1{x@z3)Mi3VH%%J<01-Px{sKVT8WM zqb0Q3`Dg*c#**wI6>9Ib?{>v#&*m5UlHY*IWUo!W4vJ74PA2~!yR<1JnTBbZJG>9J zX;TnGxQJOmt!hE<0G&F6Ur!#u2tf z7iC(NiPbiS+A_GH?ai2#9_?Q;o#%wl_k-E_&TMmoU9lq;;HmgI9LV7Lpf?ht^I8T$9>MK>Lyv|DtGET zsQ0VU4d+QxPr3HJhu#u|)S6c73U79^f6W%jKZ?_yI*&fpr`7rNsnl$~KD9urD`2`R z?+h@H?F zxs=g6zgk}~zhcLNN}^2dqnL+jGmBqUxtv?V<&Kb_Q;mlHsTO1}l4&;k+|g}!;%pA- z?r^?9YE19|alf*z@Day?ZxNr1HM;EWv9MTNLFx@2P6==HRJ;V%Nm09bhU9X*;&0|Al z)QCTJxsTc@BaX_GLyY!EZf%NB+oE0K>2!h(gjLGOAm>Z<>!=WVL$9q&Z52sme%g$e za`_sO7vYyP2J6!aI)ZJ2 zA^9e4xYS0)a^w;j2x1W|n%1-u2^AiksZ83{(oiS}3!WNm-5UX2ZA zyx!;{-c;OK?U@S$YYpo?%-vsw0#ywqfh2KV1*T*l71tQ0A0Ml9Ry;#B-u%|PxpMGK zb_bAy;^Yq@XI1-T_-g*DeQAdcA11!c`es;6CJpb=^{xA{)mRi>^rGQ}QSNHm8qV-D zSL=Lf8~LD98%D*es9~doTd(&KB}BWlDvx%tFPM{dif1MAFH6>CGuv`NU16=kl~(7! zXrk}-{w+7s77P*^y&DcBfANOX5gxftl$`L$E#62wf4L)gD@ZDSIQwe&dG7j~cXDF*ccyQdpc|&U-`;cAy`%Nc*#(!R^Cde;Tnl zZV1WHa~ZzixV0NUAVhR`WY13~pSYD%GA6FHG08ML^AL+?g-QflIF7^mfh4tVi@sIh zrEgQ&)H_-9!NLMxWsl+Pp^)UCrA(!0d&dkB24glqA*1%JqSq_|C4@`Bh|_YE zerb?kTZe#h9Kb5fhZcXqK{K0eEq~@`)j?!(??k>oZ^9GaRKzg=Z3>p^H@GY_wk-^q zf+E8C38?S0t~``BeroMJD&C*?XU4=VYw8HtEbG;Zux%;bZ1Tj&KE}vs?#s57r7J$Y z=X*rqezo8I(&63U4j-E1eQ+bGABS!u_gajcx^XQC_? zk{CzDVKysB=a}XK8c4-~&^c&0Ox=K?6%b&*wv3F8@PRL+C2Ssa*Z9v-=pp6z5!-%I zKMt93@Y;GbcO2729=b_AhE8}HwaEU%)03%CL6O6c0>vRVn%s1}$hHK&=PlQ~?+y8N^@o?XYM z>VVl9Fc1(s6_b@O-u9t7^{ZLWr)Kfghw8*7i(HG;oXgnr{bG*r+ZIn*kMYfsv^{^o zbms1~BqptUY>!6-#~{boAf?>zWPL07;mt#7ZAr1LujTOKF?H)qnYV5jO6yBX1cYM! zad-gg%i$PCtoNZw`0T?sTrTkbX`}uSShlmr*&XxLvop&Qb}3t46ykU^uJG~JEN~5lG5S3d3 z59$y72B7tb-|9AKW7f00Fe`N_>(d{4L|S4hQC<-$Q7t_xdh;-6Msg)TTVub|H*3nP5F74{lk1ox(ZUP`3`qD``YU-C_ zqrx-~(ynC7y~Te1o5~Rpv_wdL*-5a3FD+HS265cFbdvg&;9s&WdZTZEG?$jEUyJbT z;o1C*x4tT$z7)G*MOA+A1g$DxU%^3FyS&l$Xy#&i9pndERk1hvTY!I4esrJ8qHtv) zPSsc7>&1Rl!uZfn3m#RK(By{ns?sR34pvQ~kDusOmGm)7ud1PsAL}C70`1 zbu8z7bFagpzIx^f6(X)`Y>q#`hnVupNu}85bSZlY2L0-8kURPCbRdYIs$q`1j3)~_ zV6x(Jk&6)H4FMcBI8K`2lNnQCp>yoNDh3c_2Q8hDl*?OAGe>9iz#7l786{sGVCecKvB-|-Hg3%uIVG2mejxqI zyko~D39PJV4W4Q0>ZsNUocwYl)jdAa65R)HROzcq!kzAM;JyQE#*tu=SL63DQ=;8M~~9iESx%D{&KA z8UXgI1KPvz3D=f3^3R%eY*}5}q$qdke5MVLefcUPY%zrN7g6MPcF)bwfQ_XQV77}NO5QVtd6 zjxTgL0-5)N|Bv7MOb4L+cz50eakWuT_}-xuUbmIcl0g24As%ERpw6%&px(g_dZBNs z&`L+stAtjvGCFd@_y5calvXz4GI zmzwEymZ)S})ur;|4hspGn;74xd|Sxg z47!FTUW=858oH;TnEBzeyA!L%_Utf8dMx+3Np9W}8%&Q~@s>Q(8ypFFf8}migVWniI_2$@aa;$$M>KYH8-ajdfl)M}NS-2uOO~l)E8+ z>G!g@*X4~YQIm{MRg`qxdzZ=U=ufaJ*S2I{BKR$0)e=$$=EzFoqkgw~FWWu8|6q5f zmMAV@~4aLl_%Abdk=6`2@V%;+HUMTDbDg=VBnLp?Hl2} zEwo1FYnutOpuVg!hxx!a^koPkuRjDiMBC!*CioxNs4WTbYxDH$Bpr3Ac6d{Z$q(bR z988%$#m|(S8=~DJ{xt_9(x;zNHlXL|fo52Yv9IUrRj|Mn={Yp6U&+>4m~3z7v??`N z>C?(Mp^(*^Eq_@946!}hDnG)2>G%0(z^&_Pe?5M!@;Bnw%cMyM#9OinzhCs%d;<79v3I9@RB*aLoFF4wddUz{l(oSU&n3S6vo zGYHbRE&#S}0`whv0V%Yr7zVx3r9I&H<6FS3Mf}AK=%hUQ?WCXR7uS~}{(Sz1BFLCV zAfa|lN@(iN`i@=7KC6Y&Oi5@LuwGEZqb=5@9X$FP9(Cf7pMLyqHmTr)-iYC%PXvy= zuZ$po1E+MLx?@K8%Nb6_g)6!GPGKm_BMSMipZ^w_a8c8j?Bdn1>|sHs%WR6szx4m3 z?ArsQs*eA6lO-&$cvnqvwNazpDrwU;Yg5fOXhU8^j2I<6l&G|&{bHM1l)D-=1aNoN z>tTVm*xHu1*1r7qYpdU1sRcv`2@=4nJX#4Limh$;vY_E%c(cFx%$&Qs30S}74|4b3 z^O!Sd&YYP!b7thz!pAY%cndWf7LbkD6ue553Hik~VC+voFph6EFNnSbiP&wPqvDRm z;)>g~Y?fHcS8WqW;T1cl7sDH0=rxeDA7w56{HutKwPHbJx7R)L zHhUfQf3(n?vn7BbI5bAkJ^8l0%G8nOa7y^*;MSIXNNY=+iB68!t#Jv*-PSvxwHK(7 zmAXlf1G_i#UFmzwx{otPwBkcyaAt1(TmSbFy>OP+J`9F|V_NwNsxsD5i!h2QaZuq2 zY7{4*Ji<<>XPc<<96+{zew%cZOB|5ffF8TOCX`gGQz+uF$y9?KV0i`*7e_ z{JWVH;GKnb)qeo|+2-V<5%|hkYB?5@%u?Jn#hv3sn;fvB_*XL7c8nuK4P-35A>Mtb z3m0UH;%Ou9rv}+7Lqg6^c&~j*LN}p;BUO7G9;tbq=99ul9bTz%R4eyTE+RbHtE4Fn z!XE1CCNR+$KRR487JOHJ1>{#UZ$M)ig(!K1nk0UYKG}fBZg-Mu+$-3 zJ=U!g!2RIr^f-qst859D&iQO;qf-p$fu5h%2ye%hwMR3tWW{8c3#Hq)W>DJ{uxoMs zX9+{@G$D`+oJ*ZO%rU4Z&wY~+@rPrK2-K=%7Hq^3Axkr2Crp1(JuzKo8_B+kjo8KR z3}Q;U@XDTm5Q}w%#DF&oB?u+8fRgxR^^2k}SNSB9P41Qw8-SQwC%JMcNT0j**mn!n z@TN%}hWahJARWvY6J#&jyIsiA=|Ep5$tP{uepbSlN)7@&rgoN0gFFb!xs*h5)o1~! zNXZ>+2+=`%W)_GS_4JF#OC2BB<#MGPgQIOj#5f>_!~wKZ(py5iqW!63XXIy|zmKmQ zt#abxJuh?h6#gs=!p&23^(8+NU7a=kKd}nYAGusfNu^6lEA!W(N$qw)^hA3hM|$&E zl2f8M$AHj!wbKgnann8x9TCX0%u*;Y=;3JxTuh+b$<#$)g!Hqg>RC z$0uf`#H!Vw&`8UQisOIJNp7k_8%g(PDX}rw04cFnq{Jqc688x2X-xk3Pb?+Exg+_x zD^I4yvT^#OG2z5(X{Q-CN%GO*KwE=tB%HBi*b;1o8H9kDWxe6d>aOijWXw4hd^xm` z-x3^6Amz(YMC2)TP5?F8dh=aQHWX{Uz96=20QWcHRuX`V8X>CNS;m~7a~6rdt;7dS z)vCqc0gei6svHw^pviVxq)|VxC>mp5lv%k=X6_$_((D0GrKV#XMD8;x+k>qZPAzA7 zjitDn&@ZekhTL6){B`d3^mn_hy{6C61YvQZ24=Q5_jl)+BUOQN&8zs95d#bF@AjbJ zEG~!))%ryfzxWlu@SDS=&Ru3@f4A3Z;eJW+9o`$c7y)PBbN2vBV<`?z_9KA|aoTUE z5p1bZyFM22<(fhx_We9w=1|0DC3J{=Vj<#JDT>`6w=w2$JcwWq2>*!Uh2S15_hQ~W z5Lrr-$cLgPdu%hU<8Rk{6TXVd#^6k2VS#Lv#i366jhK-|#-eYzS)!iVF`Sy6S#q2j z1V@3}e6jIDZJF<}+TfMwb$#tsKDH%b6(u|uXaE`L96)^ z`v~TwLBLWc!7I_*W7Gj4UkUC6U)2dd_O2gz!2>$Ky51XI3-KhtSZgM%Nl!lA(`XIM z+^uKDT7a?kfnY6lyQ(h~U!vxqpPk|OLY@C3X5s?D9dX^4g9eE7;v^^*J^|*jsNO`n9<{ zdaA%mI{qB1&$rn(<8AQ?!Lepe^HJ)}o#`X8bfCZA65i6n&A}N);$6I`4Nj;1e3)ap zpH5hsk&yhXIV(&ASy*w9Qo{L8YAnY?5VP1RUDL!*fGzMphl%dm1Chx&ADuU^d z8DP@A#j$P-1;k4jHI=l+j93RYzGk-0macF$B;71MHxqHSbFNRnv)dO!$!X1?qCHrc zJdVrIOS!RBO&U8OH5uM%UN5GNmE4?En64VBxn@RdDL2I2b|zLZ4ycm9KPtXW^&yt+ zyCct`F)GrAny6)o@n2VP+SLriX)pQpqjHEv3+2wxR{H`@O)!i|cKpfJ3kTp4Vh*oG z5glo(p>_5>S!Xi{M?9mRhpD5fwta%6TexxAr8rFHp!v^5X9TC87MZu1aYf+q#d-nF zRKju!HQqdWybv#vYmV>*?KX)5F<^`i!u3Gy^U^$J>~5Z3jfH{NRAc6gyb?@4GK0(| z`5ZXOC+82ujuc(RdAjpRGUkZA%YvQwlgSsjLDoS70a|M;ge_X>l-}R=8mn)IB`f*e zU${}GGnAgojP15O0Kaln5U;eB-i0N-Y>Qk&)UPDTQ z1*2c5bPm9j05*RehM=WToj2qOEQvLHgyFtN3(C?%%r{~%XzE`cBZjHb@}sRGamFTz z6sBmc+`f}gyjT~_->Zu*k)jBsl1Y^@C3yzxvCFkQBk3}}oKEXV^h1nAA26)Re`*H6 zWVap5I|FfV7RF1dV+rB9%()+soA+bor}qxvBO{QdBF}jA$C;v8C&ID;MUD7ZPfJpZ zJmZn61G;a?gPybU>b<^9JR1&`tnXjs=E_)8vp07b{+xEq3O$4yF@zc$6{mjif zcLT3YVYiQRp4aDKv|lmZ#r_N}!KRFd1~HyfPq{JK4UX--NuA3&74)fQhI^`LRnv2A z?=8u?-=1`Ge4v>(E291BHy@t^eq$xMpn)0e#o1(#*ua5}rKp6Ayq zOs^r-Ps;W4+~Sj%82c-ybMFt%-#4a!eF;_t8|cAJ9IUi}IapZ%b1<0tiGx+(PmIF| zic1$Q@~Q$SWRMdKg1BlUEaNjh4p&?CQ-`a4MSBh-Rnk#rXfur1?>u<;nh|?ph)Yr> zb?3PxRnk3PUFLzI`i+<0kg9ghP|X+*8+f1%cKrExARP=>q@pL<=;32{c)*B%D(}pt z`}m-xi+t@)J{os+7)ux@BzM#nFtz&hpe-F}1$)dZq{7>8z^JA9=Md(f5K7i8-s|vB zBmN6Fb4@geyrn}j%k+sXD@3O+g8S(%2kbaG)R%K!CeqjviSM`|XG(H%E%7&*S0(eR zWL}lb>-=?~0qrj$P|zNm8MS};(+-ILjz#MpWUKx+-3;cqE6&1k-NvJ*JOs?njHa67zLG`n5F@tQmqG7(aKWXgom&MbS(nJ2nb_BH4(gnb$?i&6(1RC)^O|?} zvOrL{x-jMQzu1)GW$Ry|@F1zjb8;ZfJnigGB%V(7fD)ceW!ZY<$D#e9v<5cMSa{WW zT9K+;%CFj6CDzyio{7Y=pi5|xA%YxI`$H!j2u*I4!0AbTccbv=W9PZ#63T+0AK!ez z#5R$s{bU#L7(K$>s+|3dx-OPl@#OL|pS$Zkey~H@umAf(~O~ogq#bBL< znE6^cY}O1vt;_;pA@VCAzq|!m-onq(8K4`S1V6)Z2%>Ne}-L0*Fg9rKsKMqppA(1tAPxn;B??x zf&WyK*U}kEjM#53;uXb6LPN>(-$|$Kw=$GYa#%Iyk6=Sedw<=6#HytF*U`L3QC;u1qCn}ZQ5)@e>p=KN|44C(meh<)MM_ zmB{kGJPY3l>@>Sp9FvWJgB03VW#G%+9;!?ZT&!c#84eao=gjrOPmOdrn{Z;4EP@3N zB7Lgb>u`ofv6w&vd9qumw@;EW@j73w*LjlOt-(n^XDVo1oF>x8C!NXLUd_C6#-iPS%3jKLLUr{p&u}&<{Rl^ZGXXcXSHWth zUiQ0FZ_=V*)RR2=Vzwuzi@{{V(r2cp99WhQ+n0mF3_u@>6Nqj6GmD88ObnR`Iy*Wh z5|Hc(B9%1&&3w+CGnm2Xc;VlnBQw=mSOmy3206g>BRfc##4;SkDV#Nhy#57uP82_Q ze+&Q~&ETaY@=V{({1vPV?DpC7GyF>5r(!RV|IY3`v~fKzHw_9Mjc%OR5_bT9R*dm+ zDl=XppLzdu+J5YVtQ@p#fE;9gm>l%PO9IpW1B92QB5~_&Lk`N%vTb}>*I98uWG8qb zU%S%f;){RG^&5P~3+^#vj98k)>M_?DvB@;#G1nTg7SgiEToxHV?*TXcx^5IV?A1_; z;`Ne`=x+JweOcoqfo)%NAhV~u1S#0jGFyXZrt@pJvnOQ4B9?VE^pfBc_e zPA|rdUx)EpvpG5{9Ag1NcKJMcG+VO(ehf;js@i5 z1%wIur*!mxHj1s^L8w~WhlM&X+mbBBAHA26d>8$P&0hL5YW5p_IsBDb>$qHg${g2e z#<_i*;jjDm5`P`tcZPhv=J){pp@08>raxS9k^tNC{(sE2-};kG-)B>P$uI_XAeu z{(b)$B2Fnn#D@2{t7W-eU4rgmiq`Q|?Hi%to)|&>j$r<>We|J3<%DyeRM@Ni=JD(c zaAW(G<9wqP!+(=1+ke`dPU8%~roXC=<6+jhj72-?XLggHhnhWmGv`0V}rUCWzoOa7E- zBrg-Q)O&f+)3Ak-60DYr=a^nDvLnQIsWHp>Vs=!{S1~Upyp4#jU*^j)v5fS@SDK`< z7B=-L_(WPOapd=aLf@JVQ?jtmXMkeaT6M{1*NL z)G~iu5Uj|DSHHD@qYSiPrk>UNs4f`ljAILak~{i7wum&#Srcdz#xxQcwHvX&I;P$> zuK1Yr3tZr=nB8% z&?~k|R%|kKDSur_t>kDWko_f~QI4RTdLk`{V^O(NPrKk}M=;F*qv$zGBouB8mRTE& zMc)MtGzZH@h=Ya^o9`Y__7we0>j5_g+i}@zhR`|C9u_RMm&onFGX!@&+i}2H_}pnn zBgi2_EmZ$fCW)i&X!6xA$uABA6$WR<1fRxCMM1PGS>OCGS#%~ z)3Pjhku2lB;HCYNuq<5g4t2f+wSlIRU2+Hk)nOSWO&FpjMB42=1w3Xm;XyzV%yaU1 zTs&LP7p%3F^jUhzF5p^P>N64tr6s1oXJv)Og4gMJO?W<=MNxyubilVe2?wb^xm=DX z5^NP55y^y`T><=-^sb@Vt|!}0OFkoT!A!!6c^}a@b?DPOJUx2#4lfg>>&%cdA^z4? za*zPltPB-Py6h`}BfSu6Y4T}zdfdZV<-fcF7|MU_xZaE|RgL;m!&%&sP(@?!UTaFj~N{lN!JLUG}=yfJ{)*iobk+ zmg%(#A|qFnO7zPkzY67-SAOBt#@?R#&%`$GV{qjECvA(*%8^8F~k{qJ7y8Rbs(Xgq7JWT2S|5yb3qhj=9>Whl)E|DfduQnyzLFIw7pr1vtN&m8w3RF%)3_z(7_ z<(n0E{WoLYdj2%ag;tGE)p-!5vd)X-x-CMaHBxF3GNIVhGUvt76T=y6;+->RfcUnF zJwEJd$YbB1naw%qM$i8FgJ$~6a;^*f%o}r#%iP1$UgP5oY>sB&M6>+gm(%IgYKNaB zR`H&eUR*WA<=lkM*>UX)POtSkZ9ofOI+9Lnwu>w7 z#A{2o5NCZ?KW|U%G+wybZS@lA&pUpt5nDl18Ka$Q2#fmhPBl{Vd+$n|YDR{vMtr=pdSafz*-G^c{?GU~mV(6(67O zbV)m|AHI*&2AEScNstH1cKu~BTAX~KpsiH zPeV8CD+kAwJrB%f`xYpOZ(`X=?>G{8FvfuZ-nOkL<7werD)@;8- zaOtUm?a*cQSoIoHm-GzCJJwTEn8$wt{KpeKNBXepz3Z!d!`D}hboIDECfU3I7>u-a zsgAIkQ*GQwSEJHiDXnntGGH}%qLSI$>PNiklpl&sRz!WNSSKAD`-r z?~2@`Ci~-C&6{)M4{cMoc&y2O!Xkb72Och|C8IN{y5)<)ZT~M}U&be1vn}_vAhAB7agEyazu=Czf}m!&zl{5jMdsrm={)Z~1cK;NKZuRl9{ejv&pK4ji7=ze95C)|f<+E#bu5Td~3 zbj9By?^?aLfp+wGfS-|s=kTV;`PN#(+y2{l0FJ-iX2KnPJHklAWjudqV=6^`r}C_B zP6-q_V)dq;b?%2|@^`cci`6yi4uANBIVwxvgpV2;R$cf+v_$DJ07I zJRuf)$jjkFkv{9R`cga{`8!RtP7XsOTk4FgPGjm>dfAyX+|(+p4_+J`E8831U|wK# z5p{<*(0ImrtZENUiG3HWCG?9VH2O8|)PVRm5--sc+NHGsRm;(mi_}byYV)c|UNznu zKGtzbYO2t~wYZvU251qxU!hM4&xPTmbBk5pwYb9?c_)0YFY`{e5qR)>h zPjG$(3f?ALzTD}mbEyV@_*FB^^nEkzsS^UXf|1sHs0S6G*&QF>O8lqevxs7B z(Yq#ZPd)EYDNB)-c}J1{Ngs%R)q9LZcN6FAsmEqWl2uPV?_=EPgh2RKulcT!d4Tbs zPt9(t9P2e-)8udNlTJAC#PzS(@;l-LW%2X_adijw*atQC zIp437c%Pz;codWOYI#1Eow%>?<65Bk%JI-qtXCJF_ z=2POentWBRiF$7#^s1q8SSSKU>?$a0<7rGCMd}tTtAhkgYG}C3v{jXtsP+S_%zvrd z{5VNq)vm@%9Q*=3-}8^_1=s{>z`X_XE-cT=KmRx{z_-G)e35r(cjs^~aa=_l&Dqh4 zjo2Tt{y11$F~*f#^aB<)-_v^fMkkG{t#(&yLGm!1@xn&J28=zb!$=)qN#LRb;aW& zH2^An)SQjFgp%+$Z~NzZ>UfQ(uFwx^sD`qqj?<3}0yPuQbDGCqeHv*pWJm~Dg;bQc z`%wY0KDAl?sTBk6H_Lps(0sPB?m=_u;<+4c#P$O3-|)rvcYKEC zGPIFq^W&J!5#cf;){T!mqX&e?|HInEh39TVQU$^pffU+L6IDdm3-W}U(|EFB5Qk^StjBs)e~!FE3j{GCgXn;CrXoTIEskH&tRX7FXw}FG z{fdZ}HV3OLxfs=dx9WqY@z)rqDWR)&>zcBU=;@N7P zM8xnJ3ptI(w+q!x9+DRj=a5*}5`05CQ07GD-RgdS_>IWLsjtbFesTD(B*e+Kj-9bO z{02!MdRKo_jgwt{9PjFX0ly6Ym9~z^t2`qC$4kF3+d^bDGoY;!hmp|iYXB*I9|gx1 zsS72e&}T@rDPbWG8z;#xhp6v>HHDURk+r2~oZz+=Ug21&H}M8PNqwFMh4|urRqrPa zB-< zb0i8$y6kMd(e|LvExui}DY-a+JBez|&ZwvOtSJz0teXOA6TTXSUUJeF4&-rIp_k}n9kyQLDA@aysYX5+wi=aQ`G4{c2i z(I_O@eu{@^c1n>>%*vt!QN*Rd-nR=mBQ{AZ4C8-8e|bMg0RM&6KWX`bOF2tVvifUo zKFYroDB);KW3bc{&j$AxJS7$Cmd5$VlQ5Dr2g{8`oPwp1*66NqV{lArWKZo+0D-Hf zvL#sFegF;_XbYA!JkXdB43-uLG+UC&cceb4>CK4U@7AKZ5o6v%B=tIr-{Ej?#}2}M znaYEdy~(^JCKnZgJqFTykNdWyB(sDfrLxV`@o)v4->dW z<`kzro};QPeU10@uXUTF)m7>d$q--`L6&U~R=6AEF01^}LHZHP<{N3SXg2b^LI46t z6-7KVrIE*pFPGoYR@YD1a-03IBwor)kC@loCLEp9M!Je$hW~`y$&q3G9IM`AZX|#! zl;=lk-V#|PW9GL9%P}FwqJ*ruG4t19K7|+E>r+2vn2G-Ov9N=<5-hG-Wphq-;2 z=gONr=0xF;K4o%VYKVk>tNgL_P^(a>v*h{$iIuG7($zk9`D14*lkf}!%S(7(1*BH? zPn>9F>aY@XBfC~4X}N989bd7|B(s7+E4Ib36i zs9|y+Z9p6LE$M;!b*NKElqyxNyz%?_Y!8TVjC-S9j+Jt>dL`{9vM|zsnt&E*i)IR6HHoNqnUTmKs|4M314Zp>*`Lt7AMN9hvO{{hsf* z&7sQkJ0}z_nUcc-rWe|cL-XVfY-xY%nM+8mI-d=BmAiZ0XnYtvhi>>SfZq6Bs2`}I5}{o% z%!0Gs=+hG(h`^Iqlu(Q&W72vFUIZjiou~+7T6OJiueIjwai&j_xO1 znzib7uPR6lt;{#C61YDI&-9vCtbE`ApKN;(_l@d4d0@~O3o7#?uc`Y$BCB}D$6?al zwTPkx!;dGp?!W-zu;D+Iu{jsn9e|-AT;roj5W}3i%f351LVn~aybu5i+Rq8+M?T1( z=n+s4!j!O$;X64Pz6l=tU#AA@`v?|P1unsU_tlbm7($5FzSn7 zkJCK;0?}f$q-?{8vK8wy)ERzA(}8fOv}JckCs%rR~5gFT*x?Ow|U1nM!BN0K$4 zPaL66sWVdlKBUq0=`my>9Za+*Hf(u({)lB@=| zS}$X@LvH~%lc*JF(V6YJIoL{KY4>trX-|T==TlSDlaYTwKSvt*pRirSW7T-9+dTRx zk?PIV8DXu7h|4uIQ7aij6e5~ot>?h9V;@icbk*h|vXz}Z8MD~{5QE@JfEGqSaI?sT zldg!*zQe8a5%6q~`gQ~cRnoR=h_8X7J`Py37DQMw%@M?p#t`5nvlY@}SpuYRe-apQ zhTaZ1Iv2$4Dgw-b=WtRC60_2RIG_z~M>m?2KMZLsR19I5yG)d2-{^3cZ(&hyC7Edxi8G&N{$MOTj&_Duj`bM{PM?a%ls>k@Z*j@N zG+@~3oPMg=;NZVgvwha4)QIp^5`9$)9T;rHp60Q-tSwfVPO=GmCyjrKm-D@<`~BEa z@Q4B2;kB+)^#S*|01e?fYJ8Z=59gU-Y5LIMrbkfAFnCk*)t*elvVU~Z{*n5H=84sw z)V?$ondae4khGOxNFW+Eieu#F#nff7nAb%k1i`Of4tBo2#1z=-`BVq<+F(j_fKaO6Sf0|) zg(OMO#_>om%RjmF$e<4~7I9dlQK2-a9AWoQ>}8)soRJ3$Y3mz~VRm>Rp8O3(rxaSJ zIN7I<=--DFmEEe|zvTpy+~Mj(yOdsEihJUQX_<4;zhM1We_iY zkHi3fD(MXO!^XGl3=kLJhzI0l*R;ykNAymM}W5yOC;o+A4QzVJ?Ktfym0>Kv?h zV&~QLVr|Dkn9_V5(};(#ez4ocT+ols$K`Z>4btl!O_tFg$(fRE@Fi)`pWEQv=W_fp z`jW@s`BVTsp`j2ysvVx>uXhhLK-3r7Ul)14mLIL z1$R|}py~rwO@O9HlPSOL3Lf~ytUmtb{V4RO8vR90M9-|(ks|08|A4yXJ_NRhGL zQ*%7FTX=XNc>q&DkRl{;L!?Jdz^PFu=DV3X$P>`uYqH_ZLB1wM+5BaWdD6&CiZ<}sY3=`nXG!cis1^9?xI48%98 zIo`YQJ6iMdCu)`Ry_VToN?HQ-_ z$nyy5Dm_Hob4WyndVlJF0Cu&a!6198dZPHqv%4d|%!w}8_8#tU_>7}3^is4wG>by_L&B7Bf$ z#|)SA(i-E1{8(qC&w9J${lvJDSpp~&w>7?JQwTyG0?D!i5^N!RGI)^S>0S@tZfF(3 z5$WvK*Iwgu&3h<4+=!z_?k*cjTf3>@GyrYnz}PU0`qjCXpO9cRu`EPH2*(FzGYp#% z$Eh;U3{&8}JM}LbXt>E^4yAW@>|}hRsm<}NsgYJcTxZ;xW)7))afa@5_gU4vfr?ew z5x2hOFp8RwL_+)oc5gxg`WoxiNVvzFi-d=7%0)u#gwRreMrdCrlo4POD%0Ka{bnxV zP8J*`P7e>d#R}fSBq|3Qx^;fLBEGtU^Gs84m#7&@eZq=coC7hzI?h|t8|};;hINOx zr+`QDGGLYrfdC!8qXhG769Dt)eKQ}Cu%R13U#oYCckr|JNHtE)rXy# zU1i{_&)=lsHFNtxB>-pJbtzGJ<38ayG-5UnN4zG-EnFpAX z*0GVrdT!j#gj4p&io2S z=Ox;+k=kj`ZD+RE{(4%w=fC(%RBstj-5C%2V`5c7BI}Hl^QmNHIG^mX$0=4oj`rkA zj(;0@Oh%V1>${WNcfsGu&%OOc zkqCPvWA7n(`$e|4MwZR5WL;&X^)~Dg|J3s_(N{Uy7fI2$^6UMPE5NhId7M3fAm&H3 zSsrBKU_YNDy+i=i@g3B0>d(3Kk?~(;JPkQJimu$1K@k_o*`GB1U@qaJGQk_)7>S63 z+3h6ZsPn@&<9vXf*pH^Xi^C(}yvg=2T0|F7AA54Ad4exIBJwtU8LH`Ex$gru>=etm zvJ*}{Xwi?c1*X0e*e=GcMfQQAZua9rjIuzk^Wg>ah{f7Tjr zc5zDEe0@{=>$fm}Bgv>L<3HQLejS?#nTM^--HU-9lk34Cgb9>n->lIrhxVE=4_SPt z1e#AxMTQ#bYcq^5JvC!o^3%KA<&q1X3U_jopQ=2WwrZ+&40(!1AL+C8yt_m2UhrT7@~dz=+L%6Ei+Is=xb zb!OH-Rrq6oxHV$47FydHtUMa~r^Ln<5>g&d)Rjfw@`0uuq8ltFUL{t)@IBsu=2x9e zbA7WjM<2+3|1y0~{c4cBI?4KL#$rGONfUmVS`4UFbwxO7#MpjGGE`YONiq~1r>e^; zTZ6@Bi(X%KWh%nK)Ki!6d=l3_njGb@p6tSUiX6!72s=jnG-Om%37a0eBsn?KruczN(eKK48+%Ey&xecVR%QRrF5&UEVs}U@n zzZ-_j+nCO?G@iqc!C$_|BYBv~Xl-<(w|{LO@yW-Rx*VRO>1o4oiwnt;XyM}s>8RK3 z6dh_?d(%bzuf;S4G;);NtFq{fIA&mlE2oz*YZv@&8DD`*~z!gbAa@~ygN^-~vyx{$9Y zuZDfcy(8f1foauZS;V9L%6FwVElJplQk_{zC!(AQcAwNa} z$nZFth^ncD;6(*CS5lXA{*`*`%=2}V7_rIc>o{89w z;Nc>A7=s7M=2dvOBq7I<$;S>+%|2^qauH;}M*+|?d1inpF!?Gq%EANsY?ov7=!QJ& z(d-nOgQgJGzJHc#`uv5~?_`}#MXj76IBHbYeszBZV0rcf_68IBG`6JEP4v9W6O69& z>~0BG?W%_yNKX~XuN+p$+NFDbVl(&bl@{FHRIhAe1`+{bbn@+E84#4j;Glj+$2;FTKv0yS zKS>bAz5iDm{V9HPNFTBB-9wV}|Bg*N-s#=AW7F=xy}f7m&Yv2O?4hzdy59WFJp6s< zt&KZ2?zG?D^Hbx|mAa7~8<+o*Dk94K?jLZejk~9`?bsMf6FmOi`i2!|ps-qUyz`~b zcrZ_MR>F0bQ6t$Eah3Zd&xz3A9X|UQQGxF4f1J)B1{DRJ4w5g7m6)%YV6Ouk#uciZ zMtAoP__4d!E)z|uarLqfSWwJ~@xZHUKx;T2%V}WndT6EkGpzL%GP-Ohpr)(uGAkNC z9gfI|xVfvkpigJmA4M`cI|$L5sf)i`jXo+nT@Z^ zycvZzQsEu%?AZ8L_wFHO{WN(SdtV{!Q?=bYXzFlBa>v>?zcP#F?Umhoy@hcKS<$=1rDxxxV%`xMku`n65KB+`WTs$nsi+*6tuGw$~Be zEOvC57mt46)7b_&@Ira+Y@X3ij=X7Y4{a5O4>L^+(J!)^PaG>2$c;I%q6- z93|>K>L!oX9bP;5zD~F|5*T3Ly|0Wm_OFER@R)~z`qEeUq@&xsjT#8=Fo#f6sZEs= zJl4U;=ixnE?{jZfQ@r5eQuo~O1W&|A?^TD_O>BHl(mI%AWH1^c7*e37B0Z zRuNN@PWrOj(kU5}Be$?*;gmtN%?AmSl`+1iY$CCE8PNNySLJvQo>B>T!`IiIqozgvB!vkKAkqc%x#c73>eG;&H?;^b&$lZ3r=gK6M8-28jpDo zU=kF_-9H%Qj$3ahNA~j(Um1@0&gJ&ZYt`+L^B+-lENDiS-VDI(dp7vI2fGg30RtB7;4oGcS@<2) z_Hf!0(C0kOWW>Z1wkvD<;#@itYm28WyBNcjDw|f&klx)M}V10w-Pn>X-TH7qnE=d@v zb>t}A({T5Mj~lFk(VGSiTmUMRVT9khw>W&-IyCzt`E9JuN8M<0SoEm-z9BW?6Zh^T z9iqYbNoSlYMH+$NL@j5*E0kz&XtgAX^-Q4m>D@Mn0p8ScB<+UHZ?yYm>c}5HG20t$ z4;BrJ45<&FzBj6naHf%H69QPtYtyVg-arS~YeO5g2g0+#c`^hzBD4|-n2C13Pw|zJ zS*psXstOsg$AJY6A%{spj1k#i09O)GLc+b)dL!|ai1{3K#zmcXWt;2iQu{nVW6z1&iA|` z#?a*Jsq-&>WSGCFu5dbDRFCed3zR)R%c6sYH#Gnq}Qj0vr~S=FCOX#Q;(!au$4(nct#ut*Y@4A z|6^UWvyflLKEAE2ez4!K8s}AamMa6abAM@KqK7ER{hB2a_Mn&4k}eG*60s)}BN@yh z8N*>(J~VpBzVq5I_6##(kAOhO(e!@W^CFwB8iS3*jDnT<0eq6R`a3^Vn<*7Rfc-+Toa`)1&v$zsB5M=Rt z(#$GrRelK;VWU-+dR`&3R||D?ZpmgVKlKz2@c^dED_L)aQj2M+!6H(eKp@W=ubNm+ z;77ZF8$hnZZ@~hI0K+5rKFJM5*IT||@*ei;2uvGf|81p_w@{O_2A zl&Xiy-F@(Nc-h4(V+^{S3FC7G->rFUEiig}LwuJJe;SV$gu9G|94V)f@N&HuZZrto zYi&!k5A~FE6JhyiNw!~_ruEuc((TACxNbFRG%Q4Ffds68K<>BtN;Yd&IfgJ%!4qFs z$g)YbSCayw%RuS@{og*D6vw(+h_XA;Ze1x+;Dp@sG7Q$_M1nJDGDLiAq}J;S6I1x4 z**fs)5v)=mg40GuqXG0?Mf#%c2i58eQvigzT)FiGuJsp(I#>SJ*S{_rGA6ZdG)BNP zTUGK_!dGQ&II`E;u=ePsdWdU}=aqC}WF>F#*i5}0|GV)ewx3Ab73s9}xRG{UoYYR@ zu5`1Eu|N*S{(Xy;Xz?$ZV>stNV`H${f-s03;2sa$O}-24T@v34F~c0LF2bDif`YI4 z!&oZxRO*Tc@}Y2a<2up;%K+Xh~0sy9G6DI+()i)BRFnoYY5jTi{t&)Asm?#0!Byt_81He zor+2~{~_k-k$vi$yiWHx}C!jmRQfFBFXVENy3FN_84v^K!P;^pzx|NzC8q)E`uP7csgn{3^0bL>&%N zcesayt6LvKjgt4G?_qlwjkB|O+Kgzrl$8W|zX^eUN76a5SCA$Np5xK6Z*LHix#VskAXz{py=sa4!m` zc3PX^X+Q!`!jreXfpMdNH*-rFWtAcPn4yCOn!F705 z;|=YyBseZTNN_co`c=U_QgUgq*ZJDX4bmrsoRjG9OC`!XzW#;3lHwrw6mh;E3vO_8 zp=Sjm#AKqEee|c}GwLR9co@J^1Y;aR z3itFQ4?rxC0wujb?bYWnYSAm{Ph4<(k$ZzxU1U|4QO_6?^+AJJpqpih5;@R0?C*q; zcxPUxvH?~lJ}{bc=|Zr-!vlryHzMZ=TI|&0B0#&S_M2Rrk2qU$)OFe@(W527%ajC2 z1oiANGC#vI!pPP3QM{b&&}8zZf2PygnN8kkV^?~zKj*ZU@PSs;Y&d_fRT2Y{wgU`3 zJibV7AA-$NL2jf7p|hVSjHPdZT`nQxU?%j9xbR6Yqfy}UOfU~0WJ|hU` zZD@g$w-rIu`{b=(M0;QQmVj<8ly>sG>S>KJkrDBO#3Z_DzfJ((JJRK(PIVhG*E!iK zUce-(s!P>Hp{*ok)s2pCG>fThuay0>lm$Q~T^1U3cWpVYZY;%RY=WyczR`NktXu3J zrRs~^bv{*J96s8SXZ5K1V7Rvfu~X_tSJnkO@~yf6Df_Cyr^X`s!3e&pY!MJ@2Iim5cZcc0}AQKxDCtQGs8q)Grn|FDxTucW;bPw7EeXG@C6Sm8bW9KJ{1#csDi<&+F>roYCMBQbALYW_o{@J;`P~@#@f824 zk{{2y5xww2PsTCHkv}Dho034CM8*JD6+J8$Ks!dU1aQ7y?BORd0wZ=GqB!&Q>0;vO zl@i>uqtMcrkl)Vve_?#9S)wFDb9kbs<6<0M#e!@Xy1}CZ3TE%K)f7>)*DIO*aE+(q zS|!aA9EBR4>S2wL>AZmyYt%|}sF$^0sv1ZkB?2ZWtm9%T-6~+>_h9=@&FF0Tm{We1 zl#iXQd}+4)Jg2-V<>#HPd>IFrqVmnb_6|Q4ZgVp;Y?uAHrkvY@O@Rhq4D**JhKcYo zn{`HeW4L@{aAx=hE?e7@nzTls7egnl(Ia&bnfFn$IZT?#w@_;~g-YHmc}6S7rqcE*}LE zX-CvH4B=wM{ts0AmzhztW!FP=u~WV=XkrLdeul9`X@tn7mc-zU_{77`h`r)*<)nK+7bH#=IAR>iYB4VM zI=pA!*Drqcx1Q_17mx;U;W7&*eLSUy~ z%jDMv`2~fN`mdA$81eZZ@W}#Dg*yhlx;^~tY^!y|tEDVnDVb`E(@nA@hukSc`?!T< zb_D8{QZ>xI$r51GnKpPhx+&2E;=9aql^kBH0Bi!I@?5UWzQJYzX~eM%Jf39I$1AI= z1YJBUt!?1e+8`%x5J;F>HiS1D3x9%B1rpS>oG;>~nq1`GY{_$YoOiA-S11ql+gBXs z+oQRcw|d}uAsM@5k2B&2@?B2UOr>`c+KK*LoMtZ}3w9->W&zJzOylmqJOl+fu zEvXGkRE*1oyXTN-Z|$_>7>)!6Fh|Ih?)V!>wl>A5e#Bb<3Fj}<3ofD_#}*)Wi$fbM z9ccU42hMEcl0IqUac+b7z{tLT+s1qEGi>bU)akb`gdxsjB$|B23spY&wtwQp0DH)o zVMgrpL}}H=3wiKoxARXRQg`$Oq9%>$Fr1}W+j|%<^m=!g09(YWtWBS84vsON>q->5 zX&ShIXNNuSbar79i?$X0?w`k@M~qncv2@yQ1E(2VVRfzDd#QW#mZNqZZUx+2!TOb$ zaJsBX#dZ1Jk z+dJi(=(2W&)W)ySE{92OF4;tEGSPdIF@$gKPR(~|yY05u(1()aY>Fh7EBk76?+Cq> z+N+P|+JD8nipggl%N<=7Y=86kP}vqM zNM5SCA|bMRa>84D?7W`z8uZXq5k6>sjMxXP*O`O-WWyV2*pkO&&dqyX7gZ3w>qyz} z{x`oWmv)-etP0iEK$BHASRNFBDygUu>vFNRZCJRTDEw*cTOUKpL`XUak_;#uNKHgP z-%pG%_6_>dUsvw7>dMTa+GuFaF0Z>DIX~B5&>RA%hQr}Q=7prm)0TG7k|V}3)?3Lh{+0T>y{xi5SY|BvOqvOu zYtm;4JBAAy2b1SfIVlv9u~euk90!b6FbLO|KjSt(|BNT{ITCCzgwz$H4?!+5Yw6=q z{egadA-d;~RbQ^E%dIz_@t7YEQw!$DsLZ*#OjiGU#v571ZA4z7?<44^(+QANcz;jTbTngL;^3oxba->eFh0tto^Exq4^718Z#!k9Yd_~Q>_iO*FW|}h{i-o>Twh{o?DA{ z!ed*E*l2{57>lE!(W&7M#N5}x9C9bIUjn=*T7uIp396j5>Ud-IEg$KU)-C5u(z|?d zzfLTd6Y*zpXZ}Fi3fP*q;=eqVaU6B@3j)v@TVel5o5kUGBFo79w6UP^6sKvpqb!#~ z;Fk2UZD`W`ED?%5j0?s0BUe;CQGGN0CIY67cKj*aGvKk>*NLUR!kSuPZwDJ`WUrDk z;`b$|a0!zZ*_z+*A}h@$rl}lrC*2qN_C^NsiV3hQ{XxmUYz`5o7VgVor1J1$Wz`Yc}!x@x8EHKjOki2Rr8Xi<}EsqfJx z$4OD~tBG)+C@bMd_`H`LqJV#B9V%?$TcO$tx2Tu7crgVQj?Ds&!AqC$8k3e z(Ltm?Z|Vu_MptTM<~{@XRu%hN!CL@MY3(##xB;+#d4HV88o5o?RaiTdt=qL@mESo- z8ZP7fxR^M5*-r|s<@ide*-h|_TcqqKu@pp=C0vfwv2B+!}t!`?dlk6 zxryV~HA+bUXXUAL?fcSa#>1@D-e!nzC*F^(!7&-S`zO;~L%7#ih}gHPqn4C_qiS+v z_&8y#aBjY}{U&YxpIo7;0~RhXj)zls@7&Npf3oqVd}kR2s@V&ijYC~jNmuB2lgkiu z;zmkoy>G<%V>O>Y-sZJ#_nOzM`dVvK2}uVnBqEH3uDv0AbnYeA4!##--l%TFF~AP% zMz5+WRad$D2)cKp4;HyQ&f)b^7);+%=&tiF&Rj3AueD1FFUiV&?WO>tzR5A4A{ysLjEMcLXSaFW_pwIL|{gxP2tY<}lzlfTfC6Z!% z7ZFl>!aCEbaX)MSIQJS|>{UFAP6}c6d$8EHzlYeQ?%%b=` zUIdz9fT7ubLD+kH|9tK;@{AsPs6To9kRZ?c1EX|y1qrEUuuX$u#72lT*`}%rqemeQ zlo_$fSa8ks?p}X*J^YA_SPfpGnJwy;fcj>WdviExEc%S7P&4RDnboJRFC!K4bqi+m zPdoAM3!}#o3$GdAGBit=i_4+beUE8U<841s*aI&MIW-V$sJzi!PgjHGDAUZ+~b>BoIy;Chz+0_vWCwb|WAdcpLL5#gP4 zhW3mV8IXJ1k^IY=Bk7XX;Pen8{I#=5rIGrSFh|7}LI4!9>4o;B`bIdA5!2GEh{M*_ zidZ6^L#!@-`Ey4&72ywAmfRC6~WOTQ`lSReV)z zv55_kH68zBp%3im_KK4_eG~!TDsgGKnKiFV9iP-`)sBSax}LKj{PwMo4(q+vLC2#)Kk)iV6n%*>gDD)Ps;k)hteyJm9n@EKp(9vc_Q+8LcP?fpu_CpQFKmG@ zP+!-puH{CK>RtG3&FqXHO*_bW2EsB4knC?4+Dfbz5i>LyA*)3oQT`?MxL4z*a2WMp z=ss2gH!#2E8sh(jZq@vO7z*v;4)3B4;T_~Gc>#Zko}S#+(Xz&$_A2|nM+S*`D8x;) zqa_lw=4_MU!pJhL2`X8;SnqDBz?n;YYwBV(+aI1?Xy%csM$6T`p0^UHzyx5M`6;|a z2A2(U-_YzOwH>!JGj3wnf(&OKXJN5j-Q5&^bxxjT38*8JdY!`=eheKV?-HrWU{-GduqX zcgoi3E0!H$_O0$}VlZl&i4P93zS(RgiG$5D7B0XbGC;HpUVm2~W4#d(&Rc`CEcWKe zuEQc#-OLW-0kshG&A7b z@FXBlTTe513NtAEvufBz1rZ zrLiuYG)?m&)Yn9xn&ne@;R4!Bhw@Z5tJyvxw6;?Bb}9=WqssQ+7-MNye6xvw(PKE+ zff4(;i|4r_;kf{Oi2W*|^%1BD`s6v%8}6QSE=#hca4{okOcZ%p%qK>2ZF;WD)iInJ zY@FYNXQmlANLC}BD3 zJ81+89E=zXIEEwE;|+`(YW4x#gKl*E8yiSv=wTn3vyDB}AKy<1Z!%(>{0@G(gt!7e zJA2t`;ae`oUb7mHKtzn6COxMQj9^q$k*YaDW9Ptd z7Y<2s23#Ag4fiO(^{s?|Ln!czZ- zU`Z48=d!5QEGfDi$LV?IWa|}h%3bJTqHq53Cf9Jki99bYDql^gb+0Aetz@mLDRplk zZGKpI0_h-scFQsOuM2pjEovq6c2Y0S1A{{jEZRL@iG0kC<>~mA+OhbwSJ$W{9;NPW zp`G`@{D*w#H1a0zE|ZDN7Q3McPqoA&-ozfv+_1h#-CfKa8y0BQQLH8hGdpvAF^uTK zj7i7$(WZh)xXo)f;OJ;0kpWWsVlE28c}8q?fioB4ow|_|AQ-W0ArQ*kd|nt{t(xrN zP8wx`Kvb~Y%#B0BtTkdKVpD8l;vfnmRrWl#HGsn6BTh-$(7AYFpE`LqVD2p739jNa zmpQfct8WBL`sC6TYG}862;>ue_B*Hej5M({I8Sd{$-2+Ea%{+1 zy+MoiuYaf+c|xiElOxEd%r9RWDS`sxakj46-7l$sU*zg?nL8`o+ut~>X&*FwLjYE@ zJDL)n;o;s6kF}#@i`C3Ig<3+pAjXP=r-rLo-CL`w8~MHl?bLj$3~AS3=iEc z7i-Wd#*sXoPp}S|M`DTXf=hX|2S+dQHIN9Zz2SPV5&r`}`@;1;BmNth;_id2vVSE{ zOfyZ)-6sbA?mNat>0*ct&eUhbSuHNqdn^emg)Pq!844J(TIclc;175oWa&dLP7IPc z>ODD?CwQxhlql9uwg!F)9Mb2JFnIKgB8POdXlY1U74EDk9fIp!aSR$qNm#_^(C z%LmkG5viN?BGPdGSt;KV@vBxtfXq4tu%~nP>`QpLjE5!t7TPmJEEp{)YT-*Nz(!EU zh34J3Qnk4RH;$TF_|UCGw`DB>Ne#7>=%9{6%=~6af7(8M;_O4bFFV9<4jN(`!%?4u zItR;yGb|(mgN=u#CHEL>GYEGsvM{Ev`MxuCJVc(NphF8{7p?vO%)NVjRMpitK9fws zAVbfnQPUbV)v+a-+N7dQN*ECcvbqwa#Gx@sTb0B3o|O9((CjDHQHl%Ju_LHj(y;vazV2-wz?xVdh9A&Qdv8 zEk(FYz^U6j66<44n*$f9YXGc7sccp1c`9Xm#keAiZBl;W7EJ&)u9Gh+T%O4FXZ5So zy?O2-CgnJFneX-`o-f9vsvX7U1Rk7na9>tV;5m< zZk8(Zy6qO$yR2qL;9ezgZ~lO4w2L=Wt!$=RM0GBxMd5715%KY^A}WIjQ+5 z4wDJN0P~UaIp*}xDwaL{wo4(E5UZ}C<9GuBs6>a* z%)a~*U&*coJLt!Mlw=}A9u46bdl!TccSu~R;Thk^SO0Rjt4B{8o})T2se&4MVNs11 zcpqcAt3fn&db@wCy{|pZd#Qdu{w~~UpzrMlMuZX2i2R#sJNyIb5}Lt3Ad!H*?;g{J zZ@t8C+>$OzK+!0U4DJ(sSU(hbC>)DnCc%qi$N2jvj2Y_nPb1e6o9DQGMn$bLr7~~J zulhIO=H4GkBcU6)11G|-uTwnWnmiNjA9MI!gwg4VNO+Y;@3=DD({qp?=UpD|3D#E+qHWsn(Arxd_zO*r(4F`T=3rX^d9cc*pCP;O&-r~;-2*T4LHzofD%Uk=+baE znu$IY?vB2Y>JJ}}FV?88M38>Xqb(l`O~Pb19nNT7GXJa$SSIuB_cxcxMk_w3h2Sk4 zTGk-cFK4xZ3%!BJ7h7V8T~a!MPDo=38~p=z|KDt#6$RXNJqHpXLM+$02$4Xo+AoS5 zT@tqM!Y68J@Oh^Cm6K@v-m}24^o<|PJ1K)#iDD$RQe{zB*u zeqm+2gTi=}fDZABqgJAMUuL{KQzltpEaL%S%-0Gea9&*w$8F3%pX~$$Qb&Vg=A)Fh z&?Dxiz&`|^(}BpVoiPb!mCG;SJy}s;!AL1y-@A}TSK-Rr9PC?gCUP%RyWWk#-QH7@ z^zT*PMhW57XJKZ&k_!RM|NRSRHPzui3nKso6j-R~lj$eEhDr#KI%*oHew|ptZ*a0m zS3s|D=nMtK6J+2=SMh#Yyq{Hh;*g_5*Y~hkfJ&G^qNzAy>d%N})idk~qOTXDt3}Fa zJm1RLR2ixsMA(R#g|Q8X2*cNm?dO95Gkha`-8uanbBDF07_)UV=RgqR)i8fstEhi7 z5eYQ{)tQW7@g@wnBUH&$m7&c(`c{Mm44vB`JZ=ezVCFgNzqu60-TyW;uaWi}?v zr~CtB^tJ^VYv@dC8zRbA)G~_-7I*2LpFQb&)_}Q76W?xE8qe`s&^qTG)Sms+5FZ=k ze?Ug`LohnJqE_E*lvU=n8)Y-|wudUSV|aTnAX94pR9g-|3j}V1N3`CqFXKCiXSr1v zEYvlqHVHCyj4op5N*GiBz#tT(Ff*w!?!_vz*;A$V>~`2YHG3M07c+`<5W=c~Em0Ua z(^%3dPqU0Ayy-v;W*b}~uU#QmqzuyAdZ~(@7$1v~(BoHlrv*O3mu7rPCj1g)1~v41 zg^8HE5%+u`V?hRooM)h}{Rx2Ds=uqZefFdltd~=DK1})=^d-v$0=4=dc@9eyL~8UU zm}&H$P$h>(3JP04`;(5yhH1F; zuV=fMnR+EhK(D}({%i@;GQ?Y6zRhOogCGm`8TD+!q2vkYVlL=m5o^MT`(X4&Bq{P% zI~AH!pm*wlM^ zY%$qsEG*C^&I3Ak`*tOGiDhh-6Z!KqAb|6~L&Ps@oe;n8#aQr}#hhy-`4jui({jKH z;`v3~>^=i~iCKCY24Ll-h^{ayIdvc2BQRk(dM!c>@!Mj_`EMExB&2O3Y0IK{IYt#* z+qf1pBdFp{wCV|jmeB$)3!9sdGwCFG&gomE$H^+r3!(?NTHjXx?P`GJ;-4O4A@#W)EISjA;-z~LwZ}@t~T>5`<68`rca-~ z1IMateT)89|31B2-|?%w9igmw#akDo={xM7Aa>UUXwHRbjdMbcY;^EOVwBkbxE@_W9AAW>jxF`S$))e)&WlZxeGN4j{%7PM&QR}ZO~m%|=w&tLejIl6d84>4PZWveh9+RgL$WwFle9P2^D<6W{`{U83OZ>A|OfRnB9{B`D>*G_-Aq6Dr%X%Aui_6I8pB zwrW$hP2!P>hZ@6_PU68KWgkaJ2AMPq1WY2;3}yCWJllbKiru@FeIlaEJtHfM-XkYH zuFfh~r@`f;i2hsSdyE4~T9UlBtci%NCCzi(#P{%m7F*4Q_M?pZ@!uvwYs%0`(7$9) zt)~>zg}{Fa&$QX&v;_YW67)-UlXOA9mvEbv9to@qu!^1PwWl$)n1$!BKbh#F)>C_h ziY3}a1E#JJu=SGOu3HvwMeFsRlJ1Ph`uR{%LWc_O1CmT}JAIq2g=*3TxC)cli-m)b zolacY{6#!Ii~1g^-%f0fuqC)NHC~1#r3yIoNMzd|ss4<3eSM-Q(r^%vwrfkDWj;NQ z#h-EXaj0cZT=da`_tIC6E8!o+bzp%OSO_AbFtcx6vj|p7iiCbOP05P7B|9bwjpo}& z*`8H}KgKG=RyWD4U8+$;fl{kwRIYUA+lWNek*|3PB0hCy=tl6M-h!{0YyA z&Z}_cw$7_0a6mS=LdK6eAw_T!B>U5Q2BCyNETiRYd{WEa1oKrV#(&q@TSG5{7UaEZ zl-1CGCcCv~qp14b-=rMp8h$Q^80P1SGJG2O4)Mp%Qa-Th9ZJAs0a*fdMy{mwgR8d1 zXY*cFJX5WB`4ddJ>gnK??>*PR{o4U+SBm4sy-aU$C&8w~3;k>nxy&N?ocD@O%yEKm zet$@AJTO`)h-<9AF8+j|^>zBn=iE}$5QFfEtYuU1xPn;P#fv)`AngFicJ0{?{Rk~= z9q;!10&DL1p2*+&Vliu(#-7G5HcK%D3s0A*lV`nR8khug4Gwk`?lyCV*wKM`g=%&L zyWn|B#v)*pj51UP>gwPtQKwp-U!6?lRu9Rx@$YXo#L=7(%1gBt*%+Y^Q4?g%zn;%E z=`c*uVF23nslt;1jK4=y!l7Ib8FRK)dH|hq$O^kff&>C^V*^(iac7LQ@my2 zZN`<3ytd#@-yw-+8CM(?=)Yi@zst-4;0Ge>x5Z-7mEag63^(!?jy!QH!F)zcMDwKy z{ZR7={SY;T#9_gm-e0IQWUgWxIqD3Mt=LDFQI&Ik6~r#&d!?uIt31qAs&dn-kcZ4t zXd?26R4HkJ)CI%f{;1yFHgFcbE6Qs>|JKI&uokG%yYsftuIqvU)@6u7__qb;wl#T* z&NA3q09V$4(t%M>J1O0LavVWB+58 zE%BiLtiQcz_h1aMOiIA*K?(H*CB}>*ON;B!Er*6k^fCB=z*A1Cs&O1aGIhg%#hh_J zEP(8|1*xty*13~Dz)sA5*qCJBp--(bt|~qMetbRuejEQ6)r#8}URkPF*BX;64gP4X z!^gbsQW;m&gk0&^q}6qLb-m#ir(EBqJsHo@#tP4v6P__U{0qP$d>w6=IS7ZV&!~<5 z8HhEC+DT%qb`K}#_rg!;ex{J!P$flbK8?k`v;%;#f{zbp>>Z4mtq604BOp)T`~b^k z{cpNXWcsR&&;53s8;*18oIOzlHw)a^`gWvgk-#|YVcg7@8byq~D%=I*t}I~{bN=^g zhGTJ-2TyRIAueM%Lr<%EVU*|M&x3ZRnnffyG~^l$IWS!2s19?oIs2?#SpT*Eq~Fd^ zu+_$@GRS@Ty1J6mIbz)3iPP>KJg5@rS{(3~tJoP+yt%jX2twYdW> z1cL-+C?8O+K5{>E>{LWPyHU>V6W3r-`1~YhBcPnlh~pnZ%(1j5ODUr4hAQ|}wGZr=uZLA+)bQL$@=(+<_U95%4|T49lP$K~+4saO&vbp4zg192qM0BH zAxDs4z2V^_66?DljcE*y=Ms*tQOwCB^T#VefQUfjs?>a$|E5B@aQB*D4DcyKLI$gt z2x)6y5abr1uMnWSl94<5$WRMZyQzyCIA<8=r%XnsOdA&e^<-o!jjwm$JsZsC*1V;< zH=ASZla8+$TA-YFcFTJ*48gMNVyu;MD(o9l*w>PG*kwUcA%{6F#yG&p1XH{fmY)AO z$Q1rc5;7qNG_4e!*-8A1JWqRKaS`LlW-Y)$uB73@*oKnBtmk*HyX3Ga!_m6Bhvih# zYAr*JoU+Q1(JK8ZI5JOA@eIpk3Ib}OuJDA(0aeR6hBKUH>7vW$kKhh3h05H~7Ylcq zv7^Z#nE5Y3uxor02-=Sd2>7HFd3J0Z1npYzDCQ;cGWdHIjom^Ks3FQ-*6zdNfP-^S zX*3^hZO0|UF}>ZqUVLm-;0-KjqpYLLurqxH3YwnbI952c0N>Rr9PuKxj??O@k!AeI zMZZgIu1~*gb3NQ2!ytAI#eu|QQNzvx*}z;lMO@M(?5TJbIrsZKm-~l!f4fu*p$0yb zy;54PiIPW@9P?>Im;{H-Y{{8uD#>&id z_;%UL-l8787xA7q1_+iUk(bh*^K@2ar^^IKiI}YD_0Yx;)!@q-y_YI!Dqd%_OQ_1w z#?Jnv@7}Y9Ha>s~4y(dxR3Qx&9%6i^zko^6dw7u`xnVcCH$Fs_Hf%bq?B*;9$!pyl zu?%9?$3}}+?=tGLTQCa$5xe*F1!wq=q_toSUabYQ^&d(1X0*IbPsoqag6RZzM)xQ3 zA#r?XqkaIT{e=^DSug)F)araGPJrC zFn|{rqE{eQQDTQp;&ZTLbAy|w&i61q)OH_JM}tuhn%NzMOC7U)fv1y zCEF0}^$~`)NM!-ODi?;bzqhHqnXOFi#^t?1C$a3}H?)Vv)VIdQ7N6eJsMP{`(^6{3 znf98v{mH_TUFP!KiQ&-SnQ0z20Iw!gNO(=2UmiYhv%=zeo{M za3skcyfdD^O8IBQ%ekKIN{~1#UzdcM1x#ie;CMWNG0r=kFWYN95N)AMh+I=Q1ho?( zlY?fi&+OtaJNc8#D7`vSfCqDWI34sZJaJbpo19Y0&p9 z_k76sYI5Y52#eNfqqVE|8B_A@ud~Th-e?6@<81U}QEikOcjX)Qyv=#TA;$&LKPr7H z#^la>H{|$s^q0yW2dZCau?YL9t$Nr88x<3cIk`AVapbg$eEUGq@*(52DJ3jyLs`Mb zU7P4Qx%ga#!fWC#^!9_7nzdA93tCN zR4`+bRHg;LMnL)rM5z-0Q~4t6nP`9kI{_Sl8XMMec1wIlcKfa0B z*<@^#{NQfy_l;6#VOR7kMxE2XwRqRUDmc6BAli5^R7S;|{!MOufY0|-HK2>i7SB&f zGo6#2yko3lg*yv(6DPagS-fq*KFM9+dp~bm$eZnw)4cMughBO0_y|L*`<29dcwZu; zguNs0GyC<<=#z>2N?bNgWU$d{(gcYv>e<@zcd;r1GRaP!B+20?+{Aj{5+bGL4sS)_ z0b`Cc*yr`gDlEQ)^HWZN<>G+03YU6$o%UBHGVS}Q7pjWsTlk?Xw!pp5W+Fza2NM)A>W4_&t zqq9@`Bw)taN^1naoMu3Jz|Q5wm`IeFLBDxBXcddMF8G|*HBBFPO*|hhiWlxQ5SyHe zj#-^vhib)Je0}(oq3!2L-RiM zw%*=v$hGm`ZsZ#V7ax9G<{VLiJ9agF?SC6+qJUXBO7>5Cr{oLG+Z=raLc=Hpq7SNk z$C4vjZ1&k$-Y9cSs&;rULQj|77)#`=D!maJUp{;{XKKG`)n3|efLwrA5q7&Uf5HPU zP+aDW?qYZdG;kA8?N(G18c3+7XqYjNJ;#z}k4r;(qUD94$6SC#)8;>MTU+ zD?TC#rSslpo9rT5hItNq85CJrgpijDD*8Z;vqF_$5nsz{=4PR$0#|YL_D;QzQ0eE# z#i8Qp+`pqX)r$UF)EzwW&g(fF(RB1m*iR$wEaSZzU4~copF88L!57{|{eNd=I*9A} zw!~Ti(r7ksoBir|6_k(FIHO{}Xu+#Vg_5czn8AA_TU&W1WF-4WK-Z{e58Eu_N}Q}d z8zvrg2&4k(Mc+)&jGkcm_gGl=xx%uFWcpeBg|-sgKJN?EM7y;7d2^lmE<)Slw|tK1 zG+O@(NAY%Fzj3=$n(%dnDlc?}?qU!}Pb(hqwp-|R8740DD0sm4VO}NA7|!bMydNay z?8TDJpF?YtMLTRB%s050LIJTmSxpC7+J-!(w+QGYrk=>9DxCImjF2-i9MIoF_GPG# z`oknwOjMnii^cmVJ8yPkd8pMpuV>1W6@_(Sc4s*+Bv-fKzj*(8IlV&hVm#wv&0W9) z9Szu0lgdSA*MxQX#xLH43QDO)rxMf)DQyBBX{u}qLJb9>v7Xxssf1yy%(5i>TG3gE zR%`7Apm_D7(R+RepJ_Y16SS8~?IpKJDzlO%U-r<(c|;&W6?QpgY=(Z}cj#vY_oKaJ zFDcamMNT|!w{kyd!I!D<$aE3%Rt->l>9j>hzNH0VKA>&{B#Zs`%oE3qsLQTUzdnIW zl$@^xenXEXRJWJTaut$aKJbSzDI@T1AZTs?_*wUpM)QlV8QOT4noEW?m*B)0PQanN zG70RnO_+M<$!ROP2o7eMC^GmChn1#8O`4gS&}nxWl^`r?t}$MeRfNfMt;bXRiFfRx z;tRCE`Z4k4cx5q&ZGu<|CTzD`$_AWY_}aLMm{+R;F_W4Xxm3%2N0LJt)UpygNza*r zE25`r_RJ35l|esqHm3v87;gmobU8+|2CxcCMzlNKEE@Qqc^sp%L zYgsjd;&SE4^0l0*&xY&8i-ObD{Kh7BU5?NL64Td;Ug@OogueWaikW?K+Z|fLai*dF zvUGF{Zs1S+{AnYIr0=xQdMQ@oiJWzvXyyjS@CL$b+WE5)jYeWn2mACY%n$LU^(v?L z!swZ*T%t@$2^uPYrA2MOmiv1XdUP63zECwrE{JVF@t021g7fX8Vd`CWX65$3E>qNjpBjBLt#4);hXelk#cFEG<-Vdl5r z;2Vc9fu|5@d*<_<2EKgpIv0T_;QYd!(765yl{%s)AKL-ij_;YhDSPIP*Hs53p+?Uh zZG66qctd(GDEXH6JlTlevy(UB8+vkTt-HBF?>3gydkjuumYKJsN|oH<9mhK$Uv7N|ovdlaU|CxW^3tP>k!!{%LK#`T zl^DmbSrI>S)z_x<@H|hChW_+XBi~1z(IXDxDVk&8#hTed?RpgIy2AZm7X6Z*Z@x@!3se4?#bj`a>a;3D-wlZA9pAg z(_X6g{3zJE{A4YV3(KUpj##&q%E|B{Ne-fnIgWK4os^vZoHVwIAhT&i{D zeK?*Ki{&LF!;n8I`>hFb3oX>fEk{@{?x0@LHW2w<2v|ylOO@W_cA4G!EP41u^NJxB zhUCvv&GI20Ge@lW%dmpnUE+_x0+U#7y?KXHTI|HwSyGY@n-35OZx`RzCdAQ(#W2%< z(SOylCp+uEf?e~c)A1$~N6Tu& zpG&UbgQycVr#hoMLsMe(#lI=*n(I3Hdmz&Cb98LHz1032x&Nz;v<-adNXH;5aQx2O zqF0c#Fn_$Xg``2PKmUx5XqV8*`qHVqHQ2Ccs4j*W(=^QJc(KpIK@C;)d>9y&c%>aOWnHNsBo*(HFZL#KH?72N13yDm+!M{QuDw1 z_cya@9Hw!S0almmI=<|O%^NJeAtdUY6DaOn<`o@orY!kMyH@gncIA|{v9B-sXk5{pS`Z>>IHz+P{JWnIGl2lqqPCAvP_rFVAPw*PLNyR%d# zS?$oT&(f*4yIj%7biTjNm91=Lt8YP?=0;^9LVJ7u(pW62V|2>QoXr=Wm)lr2!(+9t zy1I<~T&g>iE|?2nL`^8I&X4PulF1woc-g2gIE==4EOl$+W9enGd-cbJ>%GGYzxlpM zsdpK^6)+BrO>5TMgFAT|-mePEV z$gE(3;l~n8f_uo+&TYU@*^e*<+<|Xksq-|C>P6wa!z-v zUp?^}eT%wJf`Lwhjwq?M9z;`v5h@&Ai;QM*_cyF~tni<0m}uPp5NJ|7B)z`X-ah|Q zK8zvgQ?s0&WH$|G55)TX@JvthO*i~VYg6oRVjN`qf>H8VbHrGFLw(n9HfQMID~)uN zrl(RWWj;X-^ZIZAc^zIqek8TgoB8@E$MEwYn>?23PnPt~%OuOChPdv#1Ec2CMoS#p z31zKF6{EB|g#MM#7=32-$o$lxPaaX=yJ2$0>Fb<>iK`^yoqX?URJi=DbqUhWHUTHE zMsg+H%J;zc{>2qpKGVO+Lu3pg_>-E7zJqwd&B~-U&7uxW4`|nFD^;>T_Mw>V)HYnp zw!=?vWVqz}2Y=+P^AFyt1@i0=W#>rRdjH_kNsq?TC|7XcKhcwDnfCqT=8`FkdZsIZ)0aLb5aeJ_2SIQ>V-=@$mmf=mlw!*vz9NMbO(lErFp=1Lk zxa25cW@v$LJJ{4CcSuYK4nwSqn_1)hj%(v2-Y5(rlg| zZ(%I8FqQ#zS;{C@4#!8~&;lKH_6?XZB)$RAf0!Q)TWw@$t5(|4L{mx=Q&O7Pl+I23 zEV+rt<4t60tEO`k{*)%1RA2){&Pl>+#F1LrbBAuLi{Br}0;vy%<9Tr~aKx@^X60V3 zQR*sQwpzAgzW2Y1mpun2a}lBrCJc>4>L{JU6hHY2oetolcPc>=r)o8rW}QU*6Ngzt zmfU-}c-n~6B)f~pp#`8Hu^?hJz*dLE`*YH`Dz|VOTxKIH*V9aCoA?Lm-2Lrz?18yj z;E8m#2Lw0uA!UE`J9%)J{jmGTLCC~`iVfn-*)SahhM2z0xcNj*C)joj2KY}(H*=NgBr7N)LYNaca$-kL7oZ_Usc6$n4)PC8n-PgJS zeH688!9Nf2S!9s~Ekq?~WaMF)>?H&zfkv);B#p?K9781TeEqxDe74SH2&ElC_X)E6 zx6!)COxfTNoiTiruZpRNMVrJyk`RkXkjXrsX?2VnDVAob1`j1uQA^V#8lXHXX;56XR5hyfB- zII*0E1{rEa{v)>NNoqh_@ZnwhP~5(7zxf7AOwPiIt^zAi!H?e>P8i_x`6{Gr3k)wu zd*Z%B)vT_cQK>5zW5msH$?=NhlDG>B4h3yS^~f`C@EjU+2uC3om4w38ZdBK*gHdN0 zTN}~g2I)W}b*{M5-$ zz5F!DPow9Q9(}!lq^xn85NOa{W@;9I*<}MW+F8l8`CR}(tz>hh2Ok;B9!Q*NCIKlGm zF)HB05wTw}7~^!OTJU0iI}wjl_>uj9*b5u^NVTAkA8YY=4?ou9@i+X~h(}I2h}@rA zu!|p?@Yu_bUOaxrkD%W{Cm4+%n1sJLCa21}N#jdnf}hJkGHS9JYhv$Vylv+U#AKR* zug2p3sR_G7nRmb$OSX?o`3_(NICDheJBYj-tbZFq`+!nl*Kkt%k(Nh}#1zb4zubaZ z;5AURzNGp$aD4zVux@zN@d2uVKMo&vd;oRe!Q+1i`~!=Q{~e1G_{s6VW2FK!j{hCY z7brXacdTh3|M=gr(1FvA|DCya+Ht>IC=obtG~vIW{9PeQVE3rsM?;%F#8+Yq4Wicz zuJI3?yzsiv{8%uy;BvKJt8BzWj|7QzfemMcsvLS7@4RfW$FRd(sQYe*-l4zo1Am(% zxN~9D$h_P@EY(wS>)GVV4#pO~95-3W_pB++Kfx_|;)EWFTIlO9Bv}Dj^kDJ+k~9|G zYoJunANKGDc+tbo5$in@@$-xa&h6UDE3kzE9*~=)gVHgEwe_zt|wt->3yV zEZpCu1>Wa}Sy}*oL@f8OXwy)k)w++^eVPcjR2K@iif}@JFkp?l%k^ zRSp8*9u@}yMYE4Nuc`^bS))LXBbbsQQ(C+UlkcDdtKO!q!q|t3yEc}h$%Ay%^ta$q zT*?JNbg<2K@N{8d4nVNDk-edk3a*C}9e_LJxS{tVU3?z*oIqd47qJz|nVDD(6TK;t{la zrls=^t?<~ShEo+`R~RX_=^a*%(%M?ZNE!(6UVCVXb<*IGR|5&H) zD@r-I$_~U*mo|%^!^pfFjg=}cexPHRr{-b=6mJ9${^hhRa|UjW#mq;949Tj+rTUG} zr!3p>5Fbl0FjnlOY0G|;e$4R75p0sT_@lT~-mFGutY(nx)B*=H;~1Q&1=7dF|H{w; zUms_)l0-6=LhqR6iFkiH5R1pl_}5!#Zt%Fv#nG*7QXyX~N=w#7HH{1iU&dk0%&r)B_h&v5TTvSb;Lt?X)W>0 zBbLeu!M0mwf=em;qDt0YsZ->@({YHmoMYpWuqo4tMw(IDSgMPiQXw)w!%PW@Jyc5j zG&<=up}T-*1;&2C3!K%N(<&)DC&+_m50V7oJ=3CcOXf4_^N#OZf~x_$7Wm5eI5`(f z_>MGvHTp7F#CKWzD8F%D3cmlHiea0ji6iL<)IXHixy=?_Y7QUU=EEs%?zBmp)Ig^# zsm*k>xvcVpI6+F+0(s*S*!ytGMmWaB&O+Wh-bp&Pj~!qwXGpvj9Fcuh&;)>NlVB%T zu8sPU!rhS@`eLz3jh@E4&ow6grb5v_BU7!SVlmKbp-}VgINPbqF5GGU^GKXp#oc>< zmon$_{y4e%ZhsO9$zV7h1qs=`=9!o)?j&m32GoTi_~XR`G4rCs$9D2|N+;pIcqcpi zj_Kt3F|1Rd{Ub)CJ^9hdy?oAcyk;#r`g6Qnyc-PlP!ZC z6ia1I)apbYJ|r1)WpM&ceSD7>X9WFYtm>)|@7v>ndjhZa&B|8jGR}na1jC!w= zNf)?BtsowJF`4FgS(tVuA>WT{2ja*VSV0W<=|!!vjas06AP$+r*t!}TVVotf`TT~v zF=({KW70+2XSMqFr32O^MCyy%krL$Btd{w@bTP1Tn7h9?W>t$@H~tC5)T+MlIf6nk zuC(C2w)D4%N_@^2iS;{%V_kkA&So9Z6z_8;OAf!yWJ;dJfw>f?%C^o2!gs|})SaLq zm~YFW-;H!#eKK>H-3C~P@F3Xvf*gctJB>OtrcOk*p^xx5qXb@fjl>FBkKh|qF3zajPeIz<0N?U_vnFo5vZLe78yZ z;n_wt9o>C5a10dR)jU7nG@hHUmgnWG;yL*)F>akjt$f#5&_t~i@H~8Z#*AiazONWdSID>nCF9kNxy}rcA0@q-+Fpgc^>iz-8X@8o;*k0-^My~v-hBC1t}NX*#~(|q74uMug9`!OeO-aRt>P_a$07}PL78~OTDsr`Z%*FY>hNU6}O`8 z_We&1BB2tTYT5M7q9Vs~!k@mG#0g`E;<65LQk$worM^2&&S;^f6d{e;NnkiV3?<&?i5Zvj9`cnq!gl*;1iDw#**?hA#*S@R*h*>`~$eg9dy zfh-3n4iVy_PUFWg=E;jtk>&H9jL`cRe{T-FO8!wi*X8>=@#T;Vi&yQMZ2~||w}FwA zAZ-aw%iR6Stzz1efLIcn$7RPO-;TxOe%)Xd9!Z8#m{#!v+7hdevy4xeiDjJs@qfIG zPrjbCj71+Otw!LHF-&@rg?q*8Al#R!G<|V)36L}-x3=$~9K6*~XpIm*1~}i$8{ZLm z`a*_Vr0ik^$-qkonO#CFu($}I*8+Ds8DIq5=WGhNgS~yaS-+XI^G0XCe<~lqE zSnd9P_$b<4ci_tj&iap12+oQF$!k@bksyP0wLhSxNfvZI`A7sE)#wO$hk-<7Z`*am zrBCXQ%PVCPr>rK+yt+TJyRm+9-7t?nL5*huibEn_H0|p*olQtLC4?aV*by*jLI z6@L*L#60AK_BeJbuG3aKlIzr`I2`?@U6cg6S6!y(dm@*8OC5<2Z)pNM@LYnZE75Z; zD!p#gmr!ZGzs?iC9|CS6?M|Ho^3G(6wa}_N8Uc#_GE`kN8opPiuKNG{AqlW6Ooa4g z^sF1LZf$Da>yqo%q3-v%Zi6g*ed-#j!9l>|Dv&BqMuO8X>VjWZQm z2@vhwN&@K8MZD5#lKJT67C15_?wyEVa3QneGXQ`7Xu$WT0{@?nCjq~kh^;YWKAo)e z&prk4`NrM+2qdsCv{YF_JLP2YuQ5`m=FA;9E-dA^%1M-rPb8`Om6WPeQT1_nB2>He z#jtAycUjD_p{gh7ixG;@{N<-2)`={UAUux9bFCvu&eWPOCpnjF5CUL{F&6cqm3?c1 ztgvye6fu8*v~{g!yE+IZ+Z)3K)=3AQGKcX4N8Xm?cr)VPud>uD@dsA1D?A*6{6Vmr zzILbAW7z$XF{}=o!gyX#!+%^tfB4_;*STPbbu-1t>{FlxoU67#~3%NIkfP|IE>Y+xa0^53>HR%%cap z`C)<{WY^}heEq?Ha1~&93p>sP+3~fkNDuC}^C>ULn!BhF>E3LVZ^qfaML2yJ>| z4A~UG&kcW0gcTW1zF< zjR?U-(*|NDF7Bulx6FDDhPm=U`0QS8lBDysPFcNDy^`IuMsM+hD+g3U0@&FRmUKFx z7qWFamf?r6L|cV;=H`y0$@U2T{mLNM%kDn~dNYT0nn(n00tdU#VcVj7+yb8FKjQG- z;y;oh9#5h2!>sk~LNiA)wSXJ=`wOgGaOZ+kjg`DkU0#=QCYI@B474wJ!1pcct3V7F ztT<-NXQTZ@G_%-y{*@p=&giqo^#ywOxv{;pYLg3CNi@+DITiMm*C!g$#rWT&8bXs+ zL&oHZ{(+2nKPlX4OfERrb{5gI?IZxeH2g_)(f+Jt{7hR+nFL<7X7v+vqEYag3*g1f~=BehIM2=^nu&KQhGEL2%hB0tgxX(vyr$khUW zkPXO1OIOnC%d>C?9t0ga)3_p6?~c0r76J3qv>?{dD9tV2?%UtDnBV#CDDLszPS9QV z+>_%Zgf9g1OzL3tAsLf#gpJ(n7=(j7hd5(H>5)@x!NYvl>cXA=O}QLBfx`%eNU&rt zToqxFLE~;Iv@2D78UA**Tr7X5CcuOisdF-0Pg0udu(vOgmx6^|!d zVNYDisCcsXf-j}SldVZEG%}v-vk-V%U#XX=uyM)1iYL3so_r5h98dP^Ut@8NYg_STAGt*0$=>X+jS^4x$uEf~%j?4NWW}&mV(F>ydGTO+V%Tbh zm1V~-)XQV>c(OY$jQxA@WQ&JHfq4<=hQyPV*!D`~k4$)3L`cvXS8?qBQ#{$O zwae@*1aN3%!-^-%*!qNptzQ~XHf3=~i6^@;8JT{Nh$kDhL2zz)6`fcSW1HjlkBP{# z|7DNg48N_m69=43^6WUI-nX2QHr|4#6UbwW&JJ5r!)u=a9Refjx@X&i!Cl< zY}u>@aA;5s7xt|yOp}|!H5cMxgnz_3F*sN)W01(QilQVd&CdIOA5`|pe;8CY_;S+h zUr7lnd-V(P*|%%Kv{>vv2rA3GDCMNs9AP!+)km%TIaXxZR}|K{Tk6vk@w8j!YX50; z*>|TTw%V6Qmwf{#=63V7e=oXhd^RJa%XZ47f}=*4-N?~p5y4Q-h+lgS2YZe#%bjr} z_0(A$ZpU^Q2j8{SQ}ltP^WeXVFMBru(}>5Hb*IY|zbwA&QmT;>UzQ1CBED?DZG38c z*$^r?tO}=5g*01Id|611$?;`5HQ|N_sM5ODGUZ z5?^*ZJ#lPXK2eSq z?y>Ar74GpriXS=d_zfPau^LR^!;BV)IF?f@DzLZ%zZ2|!sm&tKNkc~%KY4P*8xK{U zKy$3I%j9g6s!1AKAPC8v=J^0j#s6QyY2vfToz_=*TJWEx^+V4Senbcq5U9oD15e8e z?(|(T`UIFVC87pf+sKLqmK2OfZ!5y@&aCc#sacbV*io+63c)h2F2|NM{i`PPD zwX2}w1b1h(`?*T|h$~NZwyhk0sp!EuFrwnZx$>DsAbsit{knYKr=8UWET1fx7@M4L z$hZtO6*U7H`r=KPtmGGYz=KMNych@SYiXjkd&h3+S%AVhR@AytYTzD(3MBF|RK^v7 zdyZ43DLwI?#T`S=Kn^Jtxu%YqoSa3Bwp|O<+F3Bl8-3AyTyiwA)L5f#vQVXJ>FaLcX*-pAX2 zy_CpT{WeipwU^xHT-2NF$!pW6=F)FxHA~2Pwa0uT(ND^P0JY7F`3P0GTW5(v4p9S^ z98jJNk;GXlxslxCtTq}~XRN|5^W&joDYMFMd{;5jW>-$brvC| zAueDJCcR+)2se%UtQy2H@EBKQ!IYZyxJ!5~#~4fSm!4@r8Ys&(zDExe>;rn5@$(76 znD=D=&vVkf3!p&VWp71jEGk+CM-XqGwh}Tv0#Q%pK-BDbnggdQhk?GSU;idI;zfT2 zS)NpIX=*=b#{mE4Q!k^IFY_R-H_a(0+712W6&^j3M?FUa!r#X*O@PR6Gb>_zHMZ2a z#P}HkzU1T$=6x1&oE&}B$mBm?4OO0Ei>^-MSI6dmuh*^o?+Ydx*Jr^W5*k3GI^PbX zjg|KSMiZgKEsDpSMl1@%oGwr-C0{>&%xS(iif{tnQ|ZtAyzRzSu8<4yzl+m+Hy2MS zQV}QXIn-H^sy>nFi!_HYB9Z5BWZDz?m)nR*>2HvxEPZRyOtM~nIj)z`2Bi_3(9+J(ZeN>{>8$H>N z`YyloGJ1R;4KLBqu$`NvW*)sGGu%zR3G17a8YG&2c>0HaC^a*y6o5bo(|<;wFe zplV&_9@=MWfb=%J>(M**2_VgOw#QMBxMOFyn@S^#5`p6b1&(G~eNF^AP>e z=srXTXArF9|7h;#D1dPhn0mHGw}ivg^gmGUEb4H#`9p4ii`K|vH@&Tp#~$;0(*A|R zadnDCpFC{Nmd)a{S27wCb;8*xKb#p(S2Le`YPiB3HtFg1xykz@Jf=`)IQNuzf%B8- zUtw$UR_~8x9tOHW7t}lnz$_nzCoA-{5Ys@T71_Jc(%d#y3`N(5t5ZtNz1AwBEkVXG z-W}%8pd(g6k$fR*6I9(85e^WN^tAT8{%H66K=t0E+R~e;X~I;ZF7#j8BDC1yrbydnLd@N3;| z+7d*vrjO3>!NexChV$s$uh3w4p)~(qY=$l@T$ZQ%qwY6)+pSEzOWsdjhjYUY5BHW> zr*@n4A!apTx#b3JH|8~z%%YVDo5<9O8jur5=n z^Pbk;4~Qs8O(~)+*$hmk`WC=jWCtdX?Fo71G?!aDA^v{?zmEhp0*9Fq<1JAQroK~x z)X<-B$E7j5nYIvN;@rG=fj`af#E#iNIYf4IiTrwKV_T$mZb`V@9WG0ZY3>D}lVt*} zxnB>LXNSv(sK}ou$uw_;o2mpaSiFRD&p}?mgW-RI)SMFT z1zZUw-{2S8vX6iU-3a|>;oY=2G^wuMPpN|~JzaZd(GbxYwcFjUI=rI_ zL+#yX73*#5iSUPcXVCfC^5l@SewCj-klS;^Yrj^ zTlg$6+3C*k^^oR|2^L0O5Y6Z!Iin6;b@l8Gw)S>`cz1u+)3)auJzIH=w^4^@(OcS5 zdrW%17G$Bjof^gO`{8Sy-tUCR(2KJOrd2k4pX}^@58tbtz3HI!7_C@ekXnN-4OYWLdG!7obHJ&(VT@dZXQQx8N87pdwqyilR{;bh~o$Bv!)0h@6!Z-hib}bmd z?a`)uwgZr^m5f8()5sp@kwKWCZWY~I@=bI)Mr}-72a&AsfsC!YryV1uC00GZEyR2u z|A7z;g5u%b)XoO}*0Z(B{JzkrYvW{x;E*!m6#A(x8;|lmLJs-TRPD`eTw=_lJsr%( zNPK#udw&mYmEQiIj_x-}`T{M;?%CY^UylJzyShJy;6xiMyY~}%+qDNN5=3|su|r#$ z&LGBi;4Y}Kp4aH#8{Jz`Sf;sbrEKEe^kJ*{GnQdE6cvF<778)plt{&3YD)#vpKUCz z379rZ_ZBBuXA>~>bXA$BD*XU`W=eG_M%J?_bu>$n8d(W{^SlaI<~GLpmd?w`W#|0> zBkt*nK2CzxHW9RbNCFjdJ@vGkwfJc>&xE)pq;Os()eJ{h5HyH9VOZvpqr4bB(vo>Q z{VA9oy$7uo)+nRQsMFv0M3_D`o}pUXcz2f3=cKT`RgaMOVUIPyF}!`*?) zU|27^*%?K=`y*%eS-yPUTXbwv&lLZleL-GQJO?Trn!^zQQQ^QBu~_kd?{fVR3NC!_ zau%(;d2IZvBJXhjxQ`s7fggkb#ANl(@AwMnJPjo*0^X&hX~NsWoz`3WuHLg^E4nR7 zUL;b{K&5B)WIPU1QR$fjihzB;hseSnl48J@2|;_e?wLR@X3Nng7yFwSG$C<8r2AGy zOhI02=xNp-+P!rA6zO@-P0sFZy@&B$Nb#Nu_nvclxAuMlO8jf8OuVE`u;4^0Rnz?` zPA0uw{!I@n>X#OUbA~V<{jM>?v5TrS*qA`kj_9oXkjtpD@ruidXK9o<2foCw)Zr9 zGPRd0J(=BYw~V*BZowM$GuUdO7{(-%Y>yd*}!?qQC?cm{43^ zfC2^nO-`jRo_-a_bC3``#LQ@I>S-Mti$B&@;ht*xZimOe$w6S8!1VsAP<2{QL|#tb zBj;TNFhzW{EdORlxMBhc99todzD882t@}0nNzdDOEeePlZN+kLr59W2Eca%27yWx3 z65yWkEi~WW%~;7jQ;Ot)b|2wZ&ue?8&|2)7l1oqH!0CwBZQC=Ypr?y4HK}rYZ(A4! z6F1*+I7U-gc^UJ1iR2^kR{6vMEmtFJg^;o(x41`Jh5P~2)MRr!arxnjo=BOz-80b> zF3si1*+!k4ljm0I9(``D*4&(XY6|3m=Jqw3PYpq1Pt628Ipb5SDIz>eRK&clcKX}h zG}M)|c~b6cI#hn3#ryg4`(Y214aNf=)}XHUwAxtrxru)4JE4Y}oI(30JzV+Lp@b|Q zh{7!50Q;=hYJpR!2nbDRa+<%>p^F0}OhM&*A!G+D5=ozTI2P>lj;99C1pmCw>EGjr#)V~o!gy5e7gdK zMio%)ycU+IceDtb__WsOnNQ1gfFy*i^a&EpqrQ{xJdvr+eo)6uEzp|Iyo?Hk_mBut zm<|!*e7sa5a`0?^m4l1$m=<^}{dmA804rEWe(hyApBk3PYy@lxY$^bc5mBll<`4(< zGZ1TzrZF%XlIphP0q|tdC4gICd5B@jCFKvRd~X}Uz0p&rB(hc}$pwU@Qbqj|012$! zLL?hK4Lu!u#&4JRtx4}^%Ia)SfPA(VWC;Q5($fLZbK!O=6z`_%m=)?)E5vQJ^=z^V z^5S%;QFX+pwk@%S9pKpJBE7188JJ9e7opj164M1F z^lfYRs{jTNycHCL8rn*;dX4_!^gjon-xij%LELy3f5$(bF?|9ac&`gX5i4jk5{D`| z4X>$+9LX%nhOC?xQU&-PB>U6oCVS{f%xP6D&_<-+SnwL2U_ll{Vx=^*7aIcak za~-a!oQXyp+=xT$57q0oy^fH#z^(p*WoRl%SaD!5exF#gcoXQC&}i#G7L0jeP5Cdz zdP&k)OP0}4zX{W&QHGY0GBo>U^^C1!rxBRzhb(>2F8M#at!EC2cEN1s2Xp)&|GXh> zF_nFQo6(+a*X4ywr8L2B6n(ZcDQ1)Nhdpe9zFz!!vo0PtPguwS;6=Uq~Df=uaZ6~j{tcjQO6H zB1e2ADjEvL;fyStWm9>t{0Gz2CVGwvm?tIpVFgZF?Vy5>IfU2ouk|;9JS;xo1Z;T+ zI!O}4_=kW5C7!9!m&;$MwVLrj{l1noV6`edds&>wZJGt+hU67#h`+8&UXe15LEk{2 zuT4yNW-{mtMgcwGT&LhX$Aa_CHwk1EKnlCq!Z+o5l(uTHZ^3QhbUMcqlTs}gwu0XC zWV?ueHQQvS#MOe3nG_1sJ`yi`1qW4y3rM(v0COaF0=DMUtly^%ZMSGs(tft_Mg|$8 zZOvlWdLanUu)Gyc-;=Q&Frfp-uA6v{^Kl%AzkF3*&IxBG-u*@1&4xZH{__GZDAZ)875QI&~ie+|O;r;4`*AIZi2e zmf}*hXK#YGE&U_fRODaiXkn|UXRudkxbZQ3geAM@J-bXYd3a0L+Y@6BXFSK7Kt2Va z2wpvM(Ch}J-Sd+D*r~EUUfM9fY26plVcis^GcO1Br}|yNtbj$uQkHxQ7|H3}Dm*-L z;td1`aS#+Q&P6YJU>Ckfb+EOYwsW`eeB96xMO6YQoiJ&s*UjXS z=TehOW4`oP^l^`p5=BU`WJa8Ssr(*EsYIJ?i>%{pqW0JF12rmTshez+zh<=ZGf^ID zoS9U71Zw?)026`*h9)cyU=397|(SpzIiN~O2Ux{_! zGmB|8`kO<~GchbL4a>a#DBlA#pa27?R28eUid{C-LTUh+^)WZ5_?OUr-T)=VG%-}C zP5l@qpV945J|`luu+9>+E8u~f*`8W@#Gh5RI0Dc0gsa@5@XrCksY<%_@}HXy6)5Wm zh+sgu$i8FhFa^h@AB}J(8$4tyK@PsAZUs>GDN!n1J;JM6 zuoi~-tiOU~LA`bK#D2%X=SQ~hw+8+`bvIQX1To4x#}ul_4U3&2Je?xrk4PA}rdT46mB)mem!;2EO*L{;r34$*8f+o5#Lk;}ABhLg zeZ(UJP|~1m!@9O=52|qIo8(fffc+7a>!-=1b?dY(bx25L-}MrHI2S6LUo zZ?qu6*n_R!G06Gg((RI1I-!3Q zd#Q9Pk!c{bgUi3k2?I*82Xc5|FPw0)u-OvkFsoScB8kFOc__|cBIS-=An|F(1-rc2 z#x#eKR->l{TNixanC7&e&(RZBn=lN$JjTH?I(%JXfOPdW*C7M45_%TVo9OE!{{G7d z`!E0g9Lw|=uDWhR%%`(p8f__$)tq=b4A2gP4}uP3OhUwppo9&nsjB2#mF?J%$i?d4 z>|mcHc2x9oQY_a9eX#k@;etTmb3bYzh88aSK zt@<{OfENlqL?2^Q-N;YnR*q&CxTEbO${#cSYldX}7p9Ec$K#wwx(e%H{P6|Y*TTGHp zj8k~u6TNO3bSOU}N5*)!FQa9A#(43&sP$B~oGgF9Wixgk4pRNE0;F0nkDt@{xgXtq zn63pO;K4$#C7Y@dsg2vuai$EXvQ(v6cEW>`Gi>n+jl3MDuIoFI!H$z(C6aDg-_;-j zUk6DYhzIFgdu|4MUG-Y2Lpcc^cZdH)pQo~V+ky;s;23JjN9itPsYKbo4O?Z|fn({K z3p137s|wSC1Z3c7@rcnUN$Zt`u?-giOwHo=mU{3sKNyB_FQ5XTwp^kBYQaU7LRJp{ zz}SW74y~O$ViG0sfnn0-KKheWF-6~2@aII-$zZ4((ZZ3VRtxZeF`tUlS6md)2e*B@ zVOtAuz=rlbqJcaJZ?1nJog4F>8f<0YddIK5Dg(~HvW>tTQ|(=lmbf(TjYI5%maNk9 z%CWzSi-cb$uz5uSo7<)_%6c39!}GL&@@Go+nQ5SY*W8&g!e^$|@|o$Z;x!g@8pXp$ z>@Nq#5s=0)kXEDs$#<{#>u@8e&q$Zj0+#2jp|!sp0bDp+Q$6$>-7E{UE1qvE8NR59 z?4sPWh!y_*wMHd}&p`%@M%w?gU=K|DAL!ELsqv1HobSbJYXFgY&Tx`TB1$ur90M^> zpNuQl3HoFwLwx&4BUx=js~+|b5Sc)<1Z^dbcm9FfwZPrb^$*;k1)fY(=ZRcspWw{N z+@fF_JKSv+KY-0Fg2Q$DQa9Rsi1!0QDisXy*!5+r@6x z8F}&gq=+dn*JYDBz0W^zlNNxDoVE%|E&sqdTJQ$?(nmxx&0EIl^g=&@16r;L@ke{9 z!X6+=Y|&k5Hs9GaRsX=vTHp&bu+nK)^BYIC)OxT)jq7pChw`xuMf;vt+ma`ivVpm8 zE%=2^9_?BXIvSKK+`XnXgM}wCjZU@4r`1@iXd5pG-)r-dNHYOnEGEIBD>-?iGqr1+ ziE(y7*bP6)uy!+zclpg)@bY1qxwc_DjOZt$#F1NNooH7DPsMSgQr0oo+;&tBA+Yyo znP9#B>rq5_07MI4mBMP`l+u1}+EO z6U1n6#C};orOj_0jW6B_SUg&0Oo|uK`;&!dVZfN?MmB|RrU5%t4UW@~bq#)-zHeYJ zaN4NmKZxVM0@H08Tdw)e5QmDWm(g0$UKxZf9t#G4p+f5vrO7pakF;oY);EYKG_YC3 z(~jaP-3H6Ag<5dUQFh(RHE*X9lJ5q$!N|&-rL1GK36KT$&y17%+U?%D#Ya%FB`uSv z=Y=H5=Gu~S4{bKm*JWmk@1K9~FaQi0;(@6|(8h2mm_vNt@Ul$KRuO&ex!!C0+8r%p zsh;n>zIJDe3s3L1e1(4c+TFg_NA%K{o~Ccs+r62aZRdpQ>?EbFIWbdtmsCjjaI&MGvP@DJ=*aTJ(a2)PhJV*z#5S5Pd-J>u+B~{diZQ@abH5sw#XY|5b{@ zx%6nxlKma$4-ovp7a*3G*pbf?j)}&GXT9UX z={*O3JXD0`{8M-lAkYH)u-UK1Hc# z<@Me|qjTi{@hiujO-Aw$hpawDOkJSR@}O=97xt{WpZ1C z^)G7oUL>67l^Q`ocgt1QHmnqdM=A@^`?!C`ye%U|V8-tumSmHs7&wDBnq|L5{jK>~ zrjlco6kDnUswJ69ma+ue=xPGo!fS^%KANdWHs?YGz#Li-DGF$uwZ{e6YBg4Cq$EaS zuwU)+zju^I>~C}ETRNC2L?0druP0LB1wLkZO!2)D_;=l? z_}B6Uc-*`%MZgFCeFXgVzk`5?-PMvYM)3{2isM*Q^8Mljf|9vonC-pYG&=Twtmn8* z4jNB3WGnw+C%ZpN@FsAW{5x)7hV$0mr=c6yf*_nv?e$JE{H^q4Z%38W=3SY5pJr54 z8U_yc@Quvdl6NQ%-irmJdM~m*(f>9#WmJ^rZO@D7W2ntL)>_?G(yuT7DZlqAV_mmR zc$IxvFBq*cb)KRA8>#1R-Q(P_QQ%k`vUq;IX(j-gF z_sKQ0)A)%ac)<6nk#5$xS)$~iB?~tHE?g8nPQd0aM=<7VOTec1R=0|(Qk@muXH>hOc{l1D!JWPn z^;_LWdS^9*NT<(T1ff`+Bl=OQKAs0jau<}e5XU&-r=D)$im1Zz+s6uV>h_)j_466{ zBUwL6)k+thATgq?)o-Sua;?-FV*hEJf)|DGrNDXH72N5~PFmmMG_OnFVO;5?@qb2j zim!I~J`Q$yPk~!@8A9F5aIZ0HvSaVj%ip89=tmYmnnnWd{)8XD8eVKQjD4bK=zS!* za}9&_$gz`?bc+TLHMrZiyRh~5iBYHiPwWr)sxrVAb;dJ%m1C4*4U4o5(}|s2fWUxS zV8Fpxln;!8eH)SC{8?H6mu1>ZRN}X*|3IA-*(JOboghT`#Lja>UMLqncB4b-dc0Qx zOxjD^=SmuDP1Lhm^hNkjDR{Xguz2|!gD1`6cZc~ zP_Zn@c|fIdOfw#ZQnNw<^>idH%`B}4oM$m7oKXhXgc6H+ZoQrOY`uuC$d$PVUZ#BXw z_CDl$9lFHMr5y|Mya}_!{(d z+7Nw;XNXUV4}H0^ollBCjUf3eMlSISZ7RK=C%}x8>HfSc>gRa-tv8*&^dgHRTua5$}9}G0_$p z`5q`TK*4%1fBP3P@^smnVsn71SGr67ebwL>ooRB|_`b7$u1h>sb;xRAF7eH6Dkh$! z|6STfB57vD(Tpy7HF0Nf>-;{uIvd|K*hV^O3-l}zmzgfHdo+F+qf|lw-i?v=`PZvFV#>r{Kwh5#10`VpXuYuq6+15TEz&KUfZGxe%-r!*1Au`;s zN~*7#wCznXbhBb6TJ&!al6I5^_Owe%aG?q6wm9YTEo~-Rbdi@ubOzG%17hJ097Hs)9xzsD!9{ zi?KV60)jn989P%8J=WNnHffA7c6I|I3u!^>88u1ahDTlm% z3U!pvgY>d6qwH2z4@DGrl!IbsiMZoW!->3NTjbzhJ#v@GtflZL<*`|Ad}o|zNnw5R zGSot%!l&+evV(S7$1*p`TLo0wEivjju6Duvg2C>mCJ<;vCH$=xn%lpCT0AnomwOaC1WpVE;K12F0 z2A$6=_Mh6J*xMQVP-W+q5yVTnp_irP2k}L6LodDICo)&H1Y;;Oh!@5DWV^;U$0$Hf zqHx5Wi9BSqqadJ=B#QxXWoe<{T(YO9uOHZy`0tNIqet0icXt_cRA2A?K*uA^nHSb6 zRm{j&v8sbx_YZQ8Y_gpkBV2xHOT|2i_s&VWniU^H;~Stjdls#S9XFY4f2KRt)?c)| zMZH;nyU1$BLHeTG<{%yMdgb@gjltHBSjgEnJJQJ*Knq=^{Ra(6 zH3#Sj@OqcV>!QP=KiVrf0ViT^y2&K;+Fn9Y-kpz|Jq%)u=4s&1FX*IWXTv^ZmdwaE z63H#fb`y*jjJ8XX=*|M|m*jKmmZWexFUh5nbTB5(Z4fQRC*RXquT1l0X)2#`BeW{U zqZQAf(1R>AdKb^3c<`Zy2NeN~#?g9=LAReLqg|vko$|MJiRIIbv}|WRlh|yUPqgp_C4YR-PUR zy3QX1)Vr+WHs)w=gBl867LxT|^d^`gh9+TrQugw$Ip6nz_fBKP1GyO6#w0Myr_%Ba zF}o}V1K+y`wGp5EAf`zk6kJ2C8!oVu#w$K%!zOA{;Iok$4)`ng$}z-bNq1Ms*OP`d zxx}3`4`SFvvm6FKfnu1O&nV5E#W3_^ol9IFYOMm19`se^!r|2B`H#YRdnyLebd!a8 zvvq%^*LF%U8nShl`H5C*kW;*Qt&>F^{Qzea3O9^u18DG4DhHF6`oKAve5lBds#AKH zNz*_5JNx#E{i!$kCaRk~`R3(fCo{t$PwJf+ju>`%y3)Z~PdCzzqeAFq81E5xD{eCX1i{Xi2%$!L~i+AD7v*Ge(RV9uBqP?hNwV0IOjw-Tuwy7MH=)VQOzfKFn@O zHof9|^W_Wv38{G0KJ*!Yc7_akgwekMJ@#gmJ$5--rU8Uus59Ie1AMLbsC9{5Na5~^ zf=7?F{CzB14L@xP`BaGrs?VA2CMVv&>v!Zj@mfuH{7IU@Pq zHXf0$8AH8zZ#9sf?J)QBLk;9jJ86aSWmVqF8GPl&>B&u;pPI1qNhvy_S=i@ML;b=w zTB|gJWU;-B+A~8sZ_z?MFiiT;IMB^MHFBt?{1}5g{YxU7@TV;AqOA3Hu581&F6xTa zdY7?_ry!cPl+Lg>XlEjk!hL$q00}oUEu1rX;^W{)k8Bd8=64 z7#Kz`X&5X|1iR5!M#M7%p7f0ns-`>9#~7L!JJH0rx3LpVYx){H(d)8)#!jKAcN&UM zkF_&SohdvHh^J{XWb@=z56m%XQ+RompRst#&OB)ckriU3{iK8V_c&`(_6hRfA4`rA zn?S}s;n60Z1GFQzUO$za4f~C}9*0fm7(boZ7>35{y~U%kp2g@|((bDEhJ93(#>>s< zmKIsV|gdDH^q{nzcW?ve7c`EF{|hSzNqm$W+R(u(~s}SrZ0~sTg=0jxy0_H z(*d4*zLbJ4Hr*HXyFYKrTw;Hqiy&C_LdwnJ3N?9h@I!6=zfu?JywX0hV?}+Q7BVQ+ z7~+cVNhe&J?-6DU(a{*bHXZWDN!~QwpZPG~XDBAWT=-2Fr5!1`KNNXJK7#Tfzv#(y z5tyQx@WPjtc==$KXY+7zprc(^d-JXJWc2@Zr_9WsRO9oPF*hd~#d{-V+$)r-9N{u;aBSJ@hSNQu6Bw6zFOlH#OpU$K~m63EA7Q=xG@Lq4g3T~ z54f)yWz5DU?gd*u*GoebOI;-%2{fb|Cfd`08{^d|3e3c5$5Bk3`$z{;nm=kWJgyHYz<;JO3X5{Cm8KeQYcr#`S8K3{q07W%|oHiJ45HW*|% zm;=Iu!qN&`%_p_<6dzQoY%Az{B$`)-{U_45nBy)W4;DVgAOFe7M|J3F1mvUYB7$a7 zGIzG8xtd874f~AI6fOR_QTNOku1+I^VJiJKRxdmSPekwnT;jS@neE{kb5L)nPL)6} z-15%aWSur;bTEd}%uKs@@rH^oe+bXdK+Bum#YY|7mp(8T(koCDzjt`gMP~@qS(b|E z3G_0TSToI~Xi_}3))SGGzci(2rR0vS{lqN3-9-=W7sM8pk%F?aK`hfWt5#9dMvDU( zU({oed&m}MJr@2}yZ)!Su$bzpgSLk1bY{~wq)+w21M>0fVeQM!g>xUvO9qC}H3PPn zQ%*q+p_3Kuym}=*c!520U~u7fdA;F1%J?@SF4H4dvUtJAY?`*pk(d17Paf5UztD|V zzItFQdW-AfCNX-WlYS@tDQZDM@X6c}zTBSon|#V*QpNT-^fE|S^xHJcyZn;}b||lh zwl6^$^SLEv2zGMEV?8TA9bT2Y9V?yr7}H)=-b1!b-X{AdRVfh#g(jL*LyC9S71qFQ zRc5x%_K56HA3n98uV#H`vt@?UkB=DSLQh3Op!{Yvc)(zmM(r-KZ&KNv;^`Y_cKIR2 zCl48nza>^9x&w07Y#UyYk~8kjPFInc?WHI5^dNOa#0y6SyCTcY;u+E~Tb`*3PSbiw zhEGa-SO>}+-bHoQ^_|GZ{&yo^dq=y-a<*c1iMs6ly!ax^spz)NU1E<=;&jIq2hjT( zZPe%SJ<=WHvcw5X6^d}&;O zVi99pioZ5|lxQ!8N`aaFMOd{u!1)9 zx#OACRnj4alX=4!>FHbJ@l=y-v>h|7q%(14kqs@=!>471Kt51179{^6o*$*B1*o~6 zc^7@P(^k{@8A1Fr2ee!{!bx8+-T2UqG<2*{5XYdcqU#iE%Xp8>3R z_lZxxrii(2+NBvb+7;$eMFDHcHEQy`)~V~vJEL_QiY#q;V^1e@bJ0ffS(F~j6Q$w- zLz;;+SdBV7YN}Jf{9z>86p$|ATF&R%w^c5GSjP9=lbg$Yj;r=Jh)tnG4dT-l0sOIW z${!8IEINGy9{utDhKwc`V$9X(Gb=8$>7fYPfP(f;OSfyD9%RFB$4HMC^HHy^Ad)`2 zNHbXJ{->=Lov6HHbU)qFqxu6ZOS2V^)xn1_l+VfhiQxV+X2N)i1h=s<+@U;IP(btH z=^6Tr?zBs6gpBoHODWc^o~NlYlxP?NYSt9r2owv%+Hq!HQKlS) zM#w}iItMEh0x|aFmiO|kFvZh(PaDw!@Zw$J#dNuURo*_q$eC#Uv6qfIh}o2*-_aZH#AQa=Qf(KtjC;*m$ zMLk)hC^wXtZDZ2h#bUjDe^7)*`{|0Kh#mfrKgv5b3^lb=F7|~lo7FY6!raGCoqFlX zQ>TtS=FjWX#JoW~v+pUN+4tb@+qgy66=Ptk_o%hy^&Wo>BQNrG+_vX-7QifT%9Nm< z>F!CJt7{+5FZ`m6FS=H|2`S$9+;ZJ)p33{JTTVbrB&VX{%dCb0+3<9;Q-ac1=7d7li%hPxk066j8j?bX6}g4RLi{9EjVQHp+Zk1KEH)4Jx|49||8{eHTGs{V>sFTUhi9G%{6CM0S#U#hj`Ers&`#n;3HSd+B z+Q?T%yl6OU=;BwFY8zRd<~+KzD@(PfL!F^ZKv}Ae4xJ5Mg3D6%bcos~q%1W&s)w-) zhImmg)fmz{=3BZCosui*?F!5HH!*Oau*Kw;Szf=k&c8)w>Y};T(yY}bSUqnizCYC6 z(~~cH;ojfzGxTbQ>pvg!PH(#yBM$&yZ4>i*VllQNTH7F6X(5tq6xJ+K`af0rA7JPe zEd6)>kNLmu##8;PW=8t*t$6>0cC@F<1n{>{B0c@+15fk<$^_hx;R`=;>8O`+VHbH} zqxeok#Tz1g>^FsHNLN{b%YfLN;{oyJw!`?EGr1^y@rLI4=!*MANuzu16@nYp<9d4S zjT(Au?{H#ldF37cUTD^SKb!kUes$+J=tVCeRfDrm{mb@Krb5~56jrvMG8IZ|r*QgK zc6E9~ywk9<{gkPK^oCBO=nbRl6r4_D=~W;cx*0k}$aj5UayN8}EK9ecLk~lziDl`w zku{7#-UdExT$av#_cU~xQkJeGg_mJ!G*{@!)XXrISFY(EWb!pkoyAQ7Wb!jit8ud zVf~eVuT<$@u=EdI$C;EGad}a-rt%RaHC|-jQUe?LhoFSG+r8X&+Jz-&C9{x??D- z*#9F~JpORj%Z|q5rN0-vKcy$WG=;~%8*|ne$~T0d z*Nr3P_tygOUnk#(=KIt8(g29pRbieXsLkjtyx_9w{I()H#GQ$Bv&4s`L3A(M z-N;n*5sw>iA5zZJx-TY5S1sWpU3`0DPeQA{^ z#^=oT0LF*zUdADw{QhvQc4B?Qxje?Q284dzAkU&JygckT273CRj4C&b_bl2%O*mg@ z7N0Ap?ooHXe-Izj^Bm6`&n~CRaHoZ|qJyC7j04>Z+tIATK(|6)vvqw;&vWw}kC5~d z&&(sJ-Q@7DVlChNy*wdeW9%h+EI+}thSP4B9U(b-TC z66m52DS}#EGgp3MaLy=U3wN^%y&9y2Zxxq01iJP()klVuWy+fwnoPw}z=L4%no?~&mlaID`c}CK}H^Z>mGlCA*dQP-u6`x3^ zcwFpEx6RiFqna3nTmDgGvTqdbjl$W~G`a|{9}2$s=&@Nlzq^BH6RK5j`IPybk+ZyS zq|oaTt&-?(7+*p_CSBqI`+#1636%J7M!AiwJnLL>q35e{7xH|;Q@)8$DwfIUM5WR!K1}S3Ac8IS$}-Q%wG;CcarVrz z14c7G=Ct3QlH{b{!@qVLS<%~crZL~u+2wqSHqf3oDde;F?kV#Aj8@Nr=tP_w(k;Vw zy{ulQYNLa?wFtJI<(9?N$aHC?pwxwl?|)kRA)HzsTIH@Q7pg=etQB7}w4_5KWfn^G z=60es;ep+rCvmZz(T{&}7>TZCb4tS2oLQy*j}y#PoJ#-2H3b+e}jDI963?pvyQ>QKH#h24@-CLVHq479Ut>~e^E5A+!Hsoth4n^ceUF_Z-#VrqoiuE&!kMv7iq`upf8jk@ zqyZ5kI(8n};4#O$NmKZei)%$%#K-cRr@WCN-bOEoD&srL%D2=-?u;vQiJNSrEr9&n zpslDBlaA_y#1irH)S!yg-M*j}AA#G8dMJ$Nzly0KZl7mX{v=XzqID5-v$qr$8yeD! z%E2;&wCCw*q$F$Sq4uJJNMrnB$d>wgF{S&cc~`V ztmsPSITK|86SZr1@nYSWV|=F^zKFd?#7;r$F=h09>uq9vykfems&ZqVbI_I^6BKKb z$=hmG@vJFLXYiX9*NJLuxbrX7&zfe#aHl9sma~G)kIN`+;nLT}Qq>Ky5leFSZJ3xc zkF^v#O-ME6D&F1AP>(WH;m?o6{cA5KGsy0=TB3BD=g?|Tp`V$*SpA2{5IQ-FD?R6{ z9ek?Js!Eh`=IkQktSGy(VhXNS5uCz$a!q%48A8L%0b%^ZsujsBo_fK!XHR>0w6n7d zPjoSBWT|-y10Gqov@Pg)PU_zjuDDWW~P}#T=>FpQ4yu6|+t;J1ge1 zivRhFIb5;dOfer+%>5PfFvT3In9~$+a~%h|Eykzs$NONLFT3pJn_ zo%qnmz{jzCHld%v*^{r^$=61xX)uZ{Wpv52Wb0z?X?azIwia?ThT1P74=~bmr-uQS zgmB*sb!bI#NdUFa2l=}+wp>H6k_2<=iZ0HPzdnYm^u~Gg7AJj-AB(JO)*EY*!T7#? zd?))QbO`SYGcEHsuusnyC+ba(`k4D>@g#BN^A+>IX4hXx^-fe7Juk7#QD5*kWYz(nCUo@2U*%3%VyV}cTTT0B$Vbmdt@3Rt}WU)W9xsLM+H1G5#iu}+LazvCv zQ5T!cwr>J{1eurt&otU=mq8tn-je{R$rf%PiB;Rp^ycX-pI^5nxoJ(eU zIb`{sh6~ML+IfYE{u}lEicVO+Plx#APf*buoUtZ_9l1vrKm49}%%$^!PWUCxfzR<# z3o<${B4bA91cIS+a^gHFGCD66XIF}|yAl`hvunlKBylz+aS=beSs2q26DZSmKA5N#0cb;3_EgctP@Gc;%y>BkZa-`dQqsCo3YM3 z{>G4dVl)+&ULF}i-h8AM)XZ3C5mbo_xJ5snfQBGnLz&^^s|RE5+q{_K>0y&;-)UxS z(-1g#d(w3thlV)%78Q>*1K%T?N0otZ9?0Xz5En^@JZ|D9(jkwYIGT2mF%&IhD7G?& zX2!>bh-nsco%_ovp6*jTnWF-I@{p%rq3Ip^I$=dbLW{U8p#9(tsfK!#?D0YNOG>CK z9i&^LC$r1~hWiD6^pxmH!-J@eMH~71Z<_M)zTqNDLwlxYY`lJIAu*-~dxKb1*km7$ z4f%#Fqs|y$Z_c;WCvM{1UcGqJx8hyQ&SFt~5d|=XKkqn>hGZHuJtWX3HF+#H)y_nhIIgoFJ!UqpeZGZ4Frub6WJ*6Yx7YyLGo+xv*L7S1V@-w zvme3E#z?k={73Sxl1u{gi;LMdaG%M<_JA=)BRc?=mY!w5({-<;u{_Dsbp2!7*d@CD zwqMx|y8f4A*q#02p6`>rA`{c43f4`f^JeA_e)IYz<|WO|Ig6Pur-`-UG_n9`?;UVi z)28fw@+TmG^#_aFwq-*>Q_GfY1ZaHiHTDU3K6wWFoa`N0$fl9K1K+WDvbXw6wt(zS z=);zPLw`+R>m`%H1*K+|3VwUFm}P^L517~~u-9}WyOK)r$k=Vkhp7~wj5(xHd@}ZY z8pS7L^})Q+udpVd`D;(+3l@L&D(eWEM$}_(gT~I!vp!rO$_5d~_hlcFy^llLXtFn` zGm9X59o}T0gTsEf#b!v(C;Ru$vVTghB6kHQwu#&w+{kv5yO|SN28e>ovLy3}NY|4@ zr0aPi()CK3i05Kyz7Hl(cVZ3)ob;J7W-ZqB$fJV6M0QMR4ChGy3 zXE8Pi{HaA28_D&IMSz9#C$lNw>|L{&5e#W>WDCJJd-PyyBzMwvvJbOE;5>GO9X}w# zb>V;rSHS@ht}?pLb{AGH9rwMi7IOtnKRC13K;v*7YmqL(**0B-yR$UEmoCEHKV5`- zSh@)J1n`hKg2jNlibt`z;9}E2wgen!Y|l2Oi~HI`{F<>tbluMwJ5JXf!Pq78uQPIP zy14H@!Mz>KtXhVX{x%C z#C^EVWsV@*Yi4fJ{Ho;ZVDWPX)(SM~KVuz1qhl!RChhl;{E+xtG5eJGvx!Y1jxsU> zIC}JG_Pyjn$t99&z*pv&**3}jlG&j9^kQ}zbc-~xYoPu;BfA6s)}R4PE$Y0`wb zfv>;*I;#&hZ{D0W0=*F*Z-CXRRbwr|mZ%5YfN#C^7V8B1`T4OBur2Dz9$@?S?O9(i z0QKi!FfcHX4FfxO?##x3UAuN=xiL`1M+aKeNMtQ3rjieitzi4!L>yWdeiPoB&i!7so3lGO%l z)~w0uf?t3AHG2h|Hfs2!NkNw_BFU<$r3glT)uoc ziw9S(T*>BvYu2n`3&C~k*0IH4Qc@CI1wQxOb8G{+Y11aQ72L9A3)>AQCnvKsaL0}v z?00bY?%ga8+`D%#I|c6Fzn|rUX=!QfI+&4>!HU7m%uH4ay1KfuhhSD#7PHNA(&yyl zuo~du!-tt3JbLsfs|y}Kew@7mo;r1kH3ZL`Im4QP=g*&KEy4W!eAWiMeEBl#1lFxv zmvsfNUcJiR0}BcYSRb&csECDuw{G2HAAuz$CG2DH&Ye5#A6e9IC}k7D^73-_HTdAc z12!Fe^ym?b&!YB;vAN(n^P4O|npY6fzOE;teceJt#kot`JD4TPnJG(@vm;reoSn)N ziE>t!CCb_3EK$zvO`@DRnM65z&Lqm&izZRdJWQgTH8zQI_J&E6 zGhdS^XKhWQoCTUhIqPN;7#fv(+Y1&NiAvIZHN)a<eI*`l0dOvPC&tlr75Hl5A1VR%MHFmXs~Z*|uy^&h})Ba&{nFl(VdCQO=HJ zi*j~4Ta>el*`k~kWQ%fkJ6n{q(ri)A9%YMiW|t$%nPZM9XSH)gIdjVq<*a^=C})jw zL^*pSN0c+)98u2N=7@6EDMysEkQ`CYdgO?5);C9#v%xu{oDItnu3MbXmgZ1De;-?)L;d_1mJFIlZ)W=>Gl}Civ%DPYpRQnM zKvVb}b_F!H`H$$lHwob%*agW#vj4!u$|da&3qA)H7w%;qpeb`1YYrL>5v(1! z?&LMr6)cI4X1&0C)Hg%O{<&#v++m9UJQfEYIdX)}0p}FYVT+`B1^K^qAN!4%Fq!QI zJ$_rwa=;nc57>DyHp0wqgP+g*iLpGv+F(-JdDbA0;xC`QnJ2>G5AMBfX2IZZ7m8UA z@aGg08wieyF|y%#BAgL?}3ZAnAi|-9NdpPD&l#v^IpN6K~s}C%oQ}cf5_aAiSc{$V{)7f?&x!bg@AJ-&al2cp`m>CZmtPnPuO6qrB4%&vonhZeI^aC1)+vpbG_(b~vr z9~ako1za=D%$kA!oK(!(fQC^f76K0LYGi$ni*O7-F2WIYT!drBaS@ImkBe}u0AGAD zf^Cu950;uAFq7m7(0t`0yCiv2vivyBJLECj6EyFzh1EPk^A2Ayw-cn_!d@kwU&oqD zwvp@#7Uv|g-sEnRk$ph!CJkZZPEb5Vvk8)4N=^qKmtJGDC4U6ReES+(EV&j;F?V3w zz)i(%*naS5q`&C|joTWqlXTr>sAq^6C*F|eI~0ze8GAtCh-1w5B*HO}F~^g_o~vYi zusDFRrl6@cW39+uL&gHY(-Fs6SF#uLfb}4IlM7itvNt-D4JCVB4QwQxFIde!0~b78 zz@~y5sJw$`BIdFLsb4Sk$>7iCpIPcjQI500DW)mx6xiF?n_ZFa?|?f|f7qOI(yxbE z56(yZQ6C(E`lIa)9NN{Z+~A8tK3LmE9!!AB|;q zz;g-bSUK6-X=abf-uhx@cN+HQn^+CdIKs$Wz@+?Z>}APDV1h>pdjnkPZDy^&@0t~} z_TZO|Osq55=OrV1_cWDr#@?6gdz#8SV}rm1n266iY9r?J&wLeDqYMzS}pE89-?CIzy6 zWN(x|%OrbU8?nP@sGcukrzJ0OnpqL}RZ20t2aa8CVvoVMBaE#2SttF+15Kk5t@U}8PNuI-F$u(UrCOh>yi9^8(0_m zmG*uC&FE(>mRxz3`U{0@{aNZSWU|d?slQ-gJI>O$=4+NAc|^Vty@S|iiYYc|1EoLpi9`j7BJ^0ozBMSlZHqT<+&r$u-gS~%_>X&Y; z?>SLE2A!k&<#iSgp4@wqjUsz!_x?fl(C$qpduaD!$R6%*7U@6g%H~QgBzs|jYzf)x z;m_8Py|)^%O<+KNF53;VQnbUwtHtaH@qme)Cr&rALUKQ?n3aIJ9&^}3$!h1}e~0-@ z4;HtX#a;$YEhe%?ps_(u<^z_V-^5yzz3V$z2eNl^J?l*NcFbqp$=+8ZSTE9}J{oXd z^n-^>M)32DeSTil%dyfti~K>soJankU@jtmP%xKDdw=%}R?IXA)i1ZzhYu8M1o`<+ z`a0k(koH9_1!+Gh+lx;0jtkR+^e$jMkRE390_hRAmLR>k76g(mtakB23QOH0i>@4F9m69nav>Wb$JkU15bc;DSQ{jddF3e-r_61D8|wE!D^rx zq*sibE@6Dip8loa{5M}SmI*R22ebi?fm6ZL;7srwI32tM#(=lLIIt9)2C~cOpMg5i z9@K-jU>(p7tbbX!Z+Ka_Yc1_}llFT{`vWhF>xYAeud4{K@{72N`U5iks<>|xcmZ+) zQl{vt`loPCIXD&Fd>{_icjvnFh z#h}sSMttfKG5*t!JR-+*8#g*~aQpTR8hq*Tg`k1@`RJbAaaZ@a{{;FCB&V?3usORjjV+aIS{tyc3RV zYRss**=0x}Jt4gyy&>U{4Z9g+b#2+4#Tg8UB2f|wxa!mu1j zF61yI4{`)@6msle2q&#Uy8eYdOQjGx!A74n#YV3$Mw$D;hM(Sd*GZpw*Sg;L=^pxH zkTsCsAp0SQAV(n=AXg#9kh_pSA@-#x+mJetS0G-HR*(Ql2qYBp0c0HHbI4T4H;^A7 z3n7V+HKig9o57v(I2HW8isM}H1mrxVp!DfFkLr&$-r_hk!%-id=BQ5q^D`aw-Z(A+ zsZL{u9QAsL2gDl^011U8JV1Y>nXNw5*S5m%6*#vRvI(*Sk^)J8Ag*2VP_(0#-~ET; z{L9Sx=TXIv&gVWxKMZmSat%@hxdV9!v44U#98wqZ8stq#TS!+(FUU~H7)T^!5@af5 zCgfYl0>~=JHb@%eFytbn81e|BGozmYaf8%{G=;Q;bcXbV426t@d=80&%!T{{Sqb?K zvdc{Cr3gFZikapTsh{DDxNz2cLE1pNLP8;fARj_LflP!{^cD%%;0Lk}tR3t(b0DAl?5c-7g0zv|B-HzfB;u z(`P_xzi<5u{*(TR^xxK2`0rpV(#aWo@;B~lOE=`cj^_9kTMR)n4U+wa?o@KYfA;h2)s12P!LHTYFM*l-*>%Hwf3=KF0#GZuwo7k=J`MdP?O zKelBvar~S-{uam2%j55HTt^-+#PJLAco~k}h;h29D0U0U<#~w^vI1|VG zRdxg@562DV@i`nf636-i9E*BG&;GP^mi3CBIodhvMgG>Y+BkNV=iPDqB0sig&-yjB z6Y)vE7Iq>X>E~xB(t>{N?I=BkCQx%6%#Vew5IUBQ-_acRqGRb%U(N9lI+hpyKyy5r zj^#jNtmZh9j%6YKTyy-jopZ&wBUW=fLvuX4B7QKA(;WY(IsVnok`|0D(Ht+waezEt zqd8uW<7j!jNprl_PUL;M{oV4IZaGaJ(`{zkJ-Z&ulWB0q?(fT<<#$Q?cU`)@Whctc zT|1G6kL*Mm+uA?vrxVUmAF>We{m2(VN3a1%eMv8n`jc;h)PHORQh%ZoSO@F|Qom7z z7i}uc9^gRmRWKZ+KI3qZ`i&oh)OY*@r2gXskou4lLF#9I1yWx#2BiMx46whMKGueI z0-Os{AMGcQ`f0y_)c;%xQXh0RNd3^?KgJL@;Bl~(q#t+!Y$w?fJP8I#b^%X;Z%e)l zo(A8S>*$mAdLZk1FwO*!RufeSOESG(pd2@cmq5E7J(PQo8Wcu7I+&h2Ft69y7DpjDroQE ztZx9;1YZN)97MZT-$Ar#jU7aL<^$3TsqGx7KZtk(n}F|wO~HZS>)=q3KA12Zd;=T< z(p!P!!8gH)Aa&;_gFfICkY?q+0$YO7pf5NLYz4-GZ-LXn*5FLg5Bvu72WL4@-;}ZM z!M5NckX{*01lxlvzz*OBup^l4AlihTU?*@lNOLNC!60xSNPUu2urqi7>;h&uQ2!TW zJ}?CQ9qb00z_-C1@E!0lNE>TWyZbJ91m^d^V_*;Pgah@VQQpA!!82e_@Eq6+ya3X! z))&D(;AOBccopmiUI%Hj>q2kU>j#3j9H?K8dJm*su1cd_ zz6CfAd>8x_>;XoA?}PsUdx7J@KHvnfA4pRw1HdS75cnB582lU@s-rOn`XJyW@FQ?C zI2`-}{1lu5P5{3IzXHDk4PXK|A4~)j!NuTma0$2pTnZ+G%fMaWaxfiS0cL~rxr&oI z8sDG|2Uml|;2Q7|NZGFdcjVW`K5%XfHrVkT(3T4IZNV0%_}UFOc3*e-otju(v?k z{W}n(9rE4HffD;3V)k7z>^N zLhxmfUhi)V7J)6mo1i~<3k(2heXu)t8|(*`fP+B#gu#d49dI;ApR$Yq?}1amQZNRj zt=YZ>%fTPP`{1wOpWrg^0k{@?2quH{Wx`bOF?a~151-|NsP@?zFwusl<&p2fLU0NA z2e=Hp4=xAI;3}}XGx9g+09W z0|$WgmVY=%yC#hWY5S`PkhUfK9HehL$AGja)i)sRfH@CL0T+U);9@WxTm>EklfXk@ zGDutT?*((fbnq}}0`tJ5;4$zbcoHlCPl3hY8So)^9<;BC`~o_Gm%-=2Yv79@?HlC* z(s#JLz?#mjsc&5k)Rp;5=_J(AP!s( zeh01s7lLcR#o$_SJ-89v3T_4WgWJL1!JS|pxC=ZF9smo#bnqT{415Bf1RZOkynwaA z^I$#jD%cpj2DSuC!S>*Nup9Uo3HfiU;B@dj_&s<5TwGg>L)U|A ztI;>s5N}`>xEH(#?gNX#{h-Zrh!@ZmOamK%2f%hhUcj2*3D6BZ3BCrN z0-J-U!M0#N_%?VE>;ql`!@VK}FSrd%0aL+!U^ciPJPoFT z*TFRKE_eVmgXy5t3&>xf8+Z`(1T(=m!9!q2@OSVXFbnJln!u01Z17Vs2b>J%g44mn z;P+r2_$zn>Tn!!tw}QvOec*8lCwPLw37!ORf~UX-;AyaWU6ecUdGIXw3V05D13VA5 z0WW~v!F;ekc#*;fUZU`Um%%CE6>uha6`TiN0~5gO;5x7X+zu9kY2Xd;C|CsMgEuLB z;4SbzSPa^`As>P+UMz58B7J!z%(!yJOG{t(;etLI>@JVf8asT3}%9kFC(9VFMz*;uYp-$Gtflg z0kgplU=G+F%mw>^hryv>9ykU(3Pyp)z!>m27!RHRe*{lbxWQ8tZtxJ=egOVK z;Rf%3pM!TPyx=_wFIWmL1Ixe-U^#^sybq>=e}XygqMkepChCyB;9{^GTmn|Fhx`LR z2QC9&0hfc#z!hM7a3%O2xC#shSA*lhHDENj7W@`m2mS)C2iJldz0=1$Y|_2Ft*A z!G~Z!@DVr^d<=dJKB4;{cQsI-g8ASK@FF-5yafITUIu>#uYkXRSHT3Z09*nVg3G}h z;1;k5Oa*U(x!^7EJXj3gr0{_c!4lBX1NjPk5xfI>fp@{y;61QCSPBM%Wnee39DEPF z5B3EU9npUT7lR|fCE%yvQg9-;42%JngWrNHzy;t+a51;6|_j{0;mA+yp)ZH-iqZBHw_|fm^|s!EIn8kUr@62DlS!1?~d7fV;t7;2v-| zxECA?rh=b=X%v3&05}^=2N!{v;BxQ~xEcH%Ob4^T6QBt!1hc_1FbAyO0QC|05_lMV z6U+mHz$0LP@F;}?JPv*Wo&cl3Q(!cB8Z>}sz@Ndh;Ck>Jm1u!2h0WX4f zuOVN7&w-c02H+LY7rY9#2d{yl;C1i=umGF@7J@Ut8{k~92uuKPg3G{L;5x7v+ys_@ zDc~Pq26zWN3f=|JgZIE2U@2G*mQnaTk-xxN;C=9A@K3NI_yBATJ_O$ZAA#?KkHKN! z6Yz7;41NVJaYFkKE(hm=E5TpDRp2r(1zZR22e*Q$;BGJt%mCBDT<{Qh6wCrof!Sa_ zm;+u1kASzq$4~XF*r+5%>z2@66ci;6<=CcnRzbUIu%CSHQvGRd5t| z4U7V>gVA6CI14NUe*|xUE5RagGk6o+2i^h?gT>%k@HTi8ECI{GKfr2@kS<_t@Gj^9 z-UFM0rC?jI4D1S)gFV6f;1KXn@MG`+g|CrlS1i8{O`Y|DkZzEkO`l#@?T2%NA;Td5 zfJ}l!LuNo`L*_$%g{**VfNX*6g``8WAV(mlAy*-{Aon0gq3pu~=dL8_G!IAzUsrcV#{7PI{|2k}KQ`WZ+dwnIV6Kdm>z^a8? z{wAR$+prBRx(`cf$^z=J6k8TxQ~8%dpf%d4{@<@JJulk8N{8A!+{>Z{+dSN38#TDv znmvwvhB~a-z>fE`S-Xav?8lN;v(P>)$%*CGrN0Q+%BHMc(-)e$q5-Yb+_jnbcVbPS z3jfV!hdzC(EpBQzqK=LDyWi2SOEsHmj&{|n+1T3IO|M30Dzp`U;c(4rx`74_P`YM5 zi!*07Xz*9kr_buue5XxRpV0{8?mZY%Goor(Evud4f><+PNkv5Ji znQMPm@Fokb!xEIF%=Jcjg`9&FLXy0k^d$|P^hxec`p_4|Gt;Fw@8ILCcZ0md-Z02XUMWIRQB@uj|RIGbcR; z#5!7t;=di_Pv~r0IO`o-2>uUY8hdc+pJES3`c?)sfM^Zo0T|AdZ$=4FPwvfOU zmEohgcCCMu9^IfH42gimNdG2Ed*?OrG9S91TUf`9C0>@v^B8KejX2&0*#+4r{Ts`y zf7PTL^3P3^4mQ}tDCnj@Wh9kDmW3rR(`3zd&4lg}vTY*n1he#*h}imHB|yTGf2o9{M0i zh_47At=lCj{*k@z(D&5XqxHFD#U5R^AM`^ZBOss1@O4-0QM!$X?rUFBevQ)JK_Xhu#(Psj*xDxMEKm9^^g4P4qY$E0O?-=tNOY_ zp&u=;JHC}zudB-5ROn_xzHKGS(Yz|`QTon}?>{T!L)_wV-Q-|Y+W-|fr)toDV%cNXRMnyjZN{%*3W>z~`u z-}w!2Aog`jX~O`jXSO`p}cMdbY<_uitCS-%BhxV5?8Kg7d|; z`ur0(cf$5xj%Iq7w0CRka9i4hSuMmKFyV@xl$JCh{a8hxz$*1rUw@(K*DCt&6uq;? ze+plMM!&ALs5hv7if$qH$l0j4r@GM+etN%mn?|47TD*^OK=MQ^X% z|3yW=lv&^39Yvp{=pFs6^?K$0U-q-U|8Q1$|CDc=YVt`=ju+Qv9d3P3wPK zjXuavymvtEBjx>f)#yY0M0=ri-&b)zN8_IEZ@6;(l^XXH{wR%}(&r?zPM;}?dq3%Z zl=MGF(d(4>o2BSoZG`_}GXKm~^zvvc5mhw$Mav!efhcRpS z5sE%S(Z_1^bJ~jf#qy*4GhcCU$-ldNMgICl(KD$}^8JtHFKwQ({KDId_uo8f+UdPp zIq5x|?DXL^kgpu<^bxh}c>aiXfld#p4c+s0`h@5I_549?=7{#sPJc?@2^#$u?XA<7 z+)r!&?D!}BcZyz{z7&58+E*RF?r(|s{b&2C<5&OI|9$+<=^*OM+}G^%bKu_`53nBW zzliv4DB?Gzg`Ga%ALh<>`jU2t`v6FX$~X>af_QIUb(~Z9f9Ozk{!jB4^>d=4Phi&h zd!3@!w!h^6E{#63LuL9T`-}K9Y4k@si1+eHzgFr`Y4le+i1+eHpWrX{vb(9#mvs>D z4Qk8xLyg|1uN_>1;)uA_}0eWbb|1!X57 zP@GQ!J%YvYv)WDXKxe*JNkSjgZ*83PDLuhZ`0+OU?=Q;doR94Ep`&m<0_Q(LS^X5c zPb$k}^kDe+;j_!9UtrbcGpoJGU%`t0B(rWmLKS@iv(A4*6}{Sjj#Bhjn05NaYV_X) zR+jIS_9Fd$P~2O}7loh7*FuecMc~urYn9^OQobzrzfIAfW!Cq9K+&t^@3^8*QuM`& zzJOWZzgfBea8`N$bp2XEm3r48QGZ$7lj0?fzG0Ac{YC!2uFpQ z*4Lk*=$X{dk@+iLqn{U4SwB$x|5w)!|Iz+4xycW%4Bw4lu^)q0U!>?m6@8ha@2}_| zDSGXk7wM~Yw$_Je^i=+8DSBs(p88iWDEa`6p8Rj1=zSG^b4Bm1==~MFo1za;^y(Z^ zS4E$o=zA#oV2zIMzn`MFPwvla^jCU`{W>gqnn$~#(U}BdRO+(==XQ|=b81FX3YOrzl1){`lLRN`p`k5PV?v|_CxW$ z13!bD^r0p2{}$@P+sL1H?etU0PAPO{kaCPS9$?)6@LwO#QGRONukwE1>?ihjvD`1k z$6FeGhkljmML*u2^{YC)ZU%|;?AovD^vDkq{f&1O|F!v<_T}rXxbM#@)B8W09%1C? zBb4n&e;rp`S;53sJUDI5oJ?il1EIi%Ge#$LDi!?p??S14aCJDf%d!kAuvEEEy>FhqC<0|1CI|2{{Y7 zJ+NY5MgF7s{R8Lh2080pA@v7|{eiUZy>TvRP-Xm3ePsJLdQ1AyefEKF7-T$T@*q(k zSbn7c3g>1)eu5+ndb&PYigOzwy9bHzYwJrYADK9R7;+MF0g`4T$J-%d@Au0%R|L5O z`EyX^UWW9e`s@kLIfpsxUknrJ(@v8<Mid1d>M4}!$kgH5hlvF?KAXLKEgEaDSmcBw;ys4k_}0g@skiD z>hohbmk+rSCd$Y#C4b(-`G*jj!OnVz!D4?f%a7bU;oQrRrh`TNc`EMxaQgk}xc>&{7iruFYux``{bi}M_;D3&$R|Uc^@Z?v0yqgW74i*a{!kGY z-r>&r){u6PPLOVp_aS{D;gFG#agZp;6v$M_bjU2oJjf!*V#q4UZ;%v7I^=iAamZQ7 zCCGJ1G2|}f&v0>VGid*TICcV`gSbKJK^n;OYlg#LNb+!D-UVhrax`WOE$6hqfDz96 zcSeZwkHP9Ao%OXx3iBr;tFAM(KT5wPBgH&>uW*kLSBKq3TX;y0cj2C0O<<(KkU5;d|Xx8KYo%fw58w`T<{ff zs8$x6nwd#gfo5-Gvyr5<#U;I&xk-jhW`x`<@JrxD;J3hEfWHGX6X=_P4+9H;Lx4{KVIT@D2daQZpab|k5C@V# z4j4>u+P3te41jIG4}quq*!@+QuLHm9E1s8`eyl&QooTh+Qhbcul=AztZuiTz9*eg7 zvzb=;GsXRryxDn-TX`?NdhV#xOYLzH_?19A(4A+wj(|RThQT`K$(d_wdZ^rP z0&h#+Uv|3O?pE%!&Upy*qrl_9&-2C4eaupRNZ;$gUzA*HKu)gv3-hhLfcF)={5vd= zf7IW682kf)PXM1Ruv{pRSPHicylUX6f|q~hUWArA2K>#yS->SqU+^3b)zcfm+Xg&l zgu5vqNAY_ZygvYM7rcBf55$kkcgDbc>-_`%d?|KL=o64xF~IFZhuf?8WG9o4W6ZAiU*@GA>23emuC!~kk<-Xv3c#zxW0ws5RK#ubH5bzEMS_i#) zKyz@j9T6P^KLZ>OoT>Ef7brKfo(tX;z>UCNN^bum<+}~M?SovtFDSVY#s8Jj|NRlX znM3~aJypr+@}+wE0mvLY#QoojA(lH+$?0^^xZDI@2XHj7Ny+Is_f75IIjbJi2yJ(op`)fuz zuLXTGaO*JlnRml{V3^B^_~iG;us^B%JQv8Lmtg-j@O$7b;GaP0=K0n-2Z=tJs( zwVS>Ee@yuE?|*8%`>!6y{;S8Q|LSo^k0Zs#kexl#jURgK(BplH3rZQt-}$X>A9t07ih?&vN~F1N{F4{sGKA8Tk(!d@}nf zKbd(eVXgr_d-AT!BL2=hD2E%UiOtxZ4&PzzK5q0e#r zC|!3!?jhhAB~NjB74+Yfox-wCnQt9%3fmXMT&n15n2kW2vTuah38YV%J}pD1@P5>Z z$~;|}7oEa?2WD5#*OmO(DZGDmWgx5}WxraPH!5?B@^`y3?^fox;h*e34%nXz=zm`M zd-)V@liGdA(68Np3;NH%+r&F{zBLEf_tfe0=Kj+#p97u%b^tE`zXARP{OvU5?{w$^ z-V5x1x?fl3jQQ5Yt+T92K(>a9XSw|2z&i;z8`vJ((;DsC(<=Xh|8LGwKlYU~rtilt zRlL0weJ$`^VA~n~d7*yf87J@_0v=Uilid3Paun_p;Qc%hwhs42!9maU>opb6@Izk zc^dslZx1I!^1t!j8|F0=?%jkS7^!hAo``>33)jRimjKjc3fCGVp zflmQTfKLOJK*Rad$LZj&&bP{d!-3U6Gtdrv4(JB@fz7~)Uu7M0m0qGxhue9;MZnj- zT0D%=OXgb_178QO0d54o1KbYWbIC693eU);Xyc8utu1S2TO$p#t?|#yw#L@Zwpv?e z@6sV){$&BaIrfnLF@t~8rT+7J^wH z4}SdW_{;CRsN>0st@*#qKezFbMK>jXxBnHNd-kwtA^Oh;3i|XUR!b-#_r1_6zSl|H#L}-#PY=bI)q{@gd(zy#Ap}H~wP9ox^X>I<4*p z3$JlrdH+||J+0;U6)_ZJ>dV=)t(H@xYgWuKz(C+{m1*-1bn=UFkfdi{{b8TEC3Dy%7MeL@Sbrnuo1RNhnRO{Qns@ZxIQ_h%(vVAn&IDw&+;Pf%mZC}S3?p2M&s@VF*)IV9 z>VVu#C3l;l?{3hK2GTKK_|q|6M(Fqj9}4Gr`28*L7BJ%`p7&g>_%|KP^O;~i?xp1P zSwAx$|Kq0V^YMV2{#;CD9_U#|q~%|CA{zAmJ=zUSuo z)(3$DfQ2`+T=2aC={p#_!+|3K=jP(;J(3#$?{wfRz|}VwUuRNz+z#Huz;icy`4XHb zQ=Oay|F5J6n0-s}`FXJZ?{$lRU9Iash5Hfk%5UL%P<@NH&M==~JE>K2n-pKyQ|jwC zfENeSz-A>kDyG(hlfXM0xZoBq+>w9`wWG_x`zCN5aI=#8k>ZaX>+QF11@AuK$G3Rx z_#WX8m*^+J-vLYjuPS}P^*8Bz9lW=JIp6l`{euC0B=-UEKk;q9+;|bWCE(Wpt%lrw z0lD4nXEuJD^MdFu(1~wzA4B#O=-jub_5tRz8T?a#Gl4Gw7Xw!VHv-=VZUgQCegHfH z{1TV|UIyL({tUdW!gv?v>@BEcTU48b`Cj0IKxj+xc#PhPFoCb%%6y`)1HP^7l|y@4 zp}{?^kvxzC4UA>IJu9l;ciigNT`8vSgHio?z>uSGNJg(yHz}Pv&8#BN?uP%b>NTH- z4gEjAb^8A07lC+CpBsz^)xTE*a*L*s`*T39*#08P{mqb@xs|`i2-eeG)n_W-VtmTq zeYg7Ku|`ad2c>^uK(4Wf9L0B8K(3;Q-0qgEyl)|(FH}U1o<>7%<5qt^tRITsX9N0Z z%qdo%sz!`AOsAX#ss5Mf6erofD9&Eh0zH#YNH)949CpR|WLZy1Q6; z+z^nPFQ(R?-EF_5`#Xldd$xN0tNHA1d%O?+e+WFP^7wJ!nLvDZr+rd7pAF<2y>ker zQ?}2oeto*#nR5Rf?fq{7Io*zTrytYt3$|m@`-iRn^?LQA`-eAy*|%Z5xsAV%(f$s+ zjl-t-%|W170*wIWf4L~0uhfrhfJ_3&-^SlxYPmC&KHWcjS;<{`8-I5bl%x6U)wj)` z5_c_ky&-qoPULi7w72qer;(0>#ng1reEkRDKMFhv{PH&bZYP-Ul-?J>dlQ&*`+V!e zxAXV1T5j>}Ui?0F`}FbCeTVLEqL5t<9DX~0Pf{$O$xqAeTy96-&fi4^<*5E7z#9Ng z1}HuwVrn{QK72NK7XX(6W4H5ny~V<%c5}_`Ty7Mu9#4p`>kEbZ9q{e}et0|Qvu>}! z{%||^zW`nUbo&pk6XZM+{I`KQcW@Zfji(<3{{Z0QcW`=(wHN9S4+Xy*SaJu?p+bgS z=3ku8kX+^%Z=JsqI;(+Z;3%N$j;Uo&PZI70U>Nu!a4PU+;48p4fLnmAz}>+8z(Xp| zPXIfV&O@isO%JuR*1HfskORJWmw!EU-d*gM%JnOtuLHgZJaCtPTzXQ;(b%#B^ozjj zz~o)U*PRsZTj0&OoAv2%_4-Qdqjs_P-P5;=eeU+;KDraRx0F8l{VwD_2}FPucXPPG z_odViknWX0J!N8}KzEg|n3xih=9DR>hzQy(nQp5+o1YDu?1@{Z6JZ=H+e&8u1+~E6Rir=rn z`vdUiJ)8$57krOM&)>nHbMJiXefN6$wghD8Twnffp0eHpkI z7*lfhDE@@1eQFTwdD z$-M#oJHXs+o?IxPkLZ2C{|Imp5Z=ae=AORRR{`FqfvRm@{6+$Dl+UZdZwJ0$$c+Z% zcDJ8TKu2a9=Ns9Fw{e{r*~WQ(8q9OHG4H%>+z)(Z8}m<7?w6CSqUopdN7L^QQ-8bZ zzWG)!kOl_s^ZE<(p?o_5ywiYlfeY^|-Vac}d@*=e0k;5m-shDAJrCdK^*`J1o4&t& z(vW*$Cvq3x=gqsw&nv(mfq&fR^~>f%{q4Kp?J+*z+8cQPILl>(zn;i@O2(%T_dmwH z{_zu_7Xe{lsnQqR51gg^tO44AFN_x-4@fQz-l@PP<6i!i3;#oMH-Uc-@DpH%(ihxc zq5jYZ9_kEs^2K!}_+W_7d z3_0p+gZ(n~KQZw7fGjYq!ZqK)(L?R=i{PCFTxg_&=4iqG;%net1zi7quY8N07r7by zyMZ4Wa>4T*l#a*1e+GEo2)8w$Z+F}GyYN5rey?89yR&k`zU+QazZnmbTV6yicz%fD zTN#j}v=>X)8bj_#rEjM2Kk}SW5xF@< zyZf-gCkOwV{tjhp*JT8`?`r@^m&fWxIeqe6J$YO?|S^`r;TBV*7;2Je7Vv`>7c%^T=?^O zck4Oj>k$uf9a{}^^wmAA%GahJ|9|&G%rAg9fp>w~56!pU1MCNU0$2n@9%6mV9%7lp z4SNmnnTI^L;M4jexW9LfHD=9`{BoG<;Woa<94j=3-Ns;k9&Y7(&#^WETgcpVj-hXI z6`LQg?3T}p$|GLC5dWW^;;!X2pVn(MMpJ)JXC0^vN)5L?l-o0p%(tEeUIbo!#7j%- zqnJMfp9MBO%I@7Tt?D^eC9v*iSi1pnAPMAw&A=Cd(|~h<3xG?0Ry=>M-;Q|_a2s$B z@Br{A@FegH;HB-w{ppAL*RjVund={$+V1J0_IINpcgJJ?@qOY;UcbA|ko)0dJZ=a3 z8yb%u3doT@bNnEA%Ilv55 z-N5+c)6^4P2vjgM*af7vKQUk4H#&MQ+US?}v_fahu|`it8$4%@HTk7EaxX7*5qMuk zo4gdfOVBPaoiknZr#zHDPd(v}o1U|6KcDZLd?CR9wea$a_`eVE#|%ET-**E1n*#iO zp7itoV(=+`2O9jvPkQ%_K6pOg{}l=NPYN&o@_rqIU;E_L`$p>n{*M>_^mhdK=C^0W z?+Wm*7XI|*0{krj{y72uUkyIR|B68RHwiEO6#k6?|1S%F{(Z;b-}$6>AO820|9cJo z51*WRU-BaX|D%R~ivKSI;a?x{|Jwjxx80kR|33xzlL7yK5AcQJkE!x6dCKF@dCI#F zl=5d+=l6E!KE0jY0XqMwUANDP^XFLGFZ%b|Ckbx4dU|wAkniJH6*8;2uI)7e#UP<%MP2lwcX+zHJyM&?#!22R_nvvdC z;eRL{=YlsHNQ+L#<;tDrE!Tm*8Tc-6hte0^AD^ZCkUlE6A1k>r#lO!ej~(Dm0IwMF zD-Y++>=4+4J~P!FtohUK;f^ig^AfOj15tXP!fYx7l@yi6{s60Bs?*j&ala#*T{t7*(fcItK z5<_l0AVc|bC3stadnsHccaQKtl-@_d`z7#e;7uiWuJAvUfA4@dW5;}JF7TcmEO)%( zZ@Jjp-~9l12Lhkm!F7YiHIfa^=azt91GMh&>R+YsKP2~g@NFQz!^^*7`)obn=XY>F zG@{}+s`$E|Qv622y9~H$2iGf_Lk8nV`F9iew*q$p_bGk5dtQNLP5b@u|6`SJWPf}I z*FmD61N|cKJK)d2TO{+#sePOI$a%)I^R0b=j{%FH<@c(k)9_a*zMiL3x!1w19oPi) zJj?q5rv4P%HUpC^|}mcU-MURdkuI)@y|5)r2kF0&3%sb@Bf_t{!pq*6A`T5pf&vW^`?|J|IrIgMO!|h<80;qg`>h}q?aO(hKK=yh6{iKw?18_SD zIOlmTqjQCSe)<)-U->+j|1Hn+d4keu_*6fLuj>cp&o=OW0Q>}a?0Md=)X%QwS0Xjf zveNUWZ6i0nFyHzPa2s&X3mpG(m_G^7Pb>Sg0sG4^P5DhP!v06Bzy8E?rtwMt+^HPy znLo1|{fz!~>fCAsI!1wS0Ji|kOFbU7r!8>12Y3j09C%0g+ndS%mExQ2?G?Da{^IoQ z?M>ys7@x}HZRLOVOXxRV;`yh3s6D+8ZutN9@+D5+kin$zZMZux z6%U{0HyQ8-fa8FXm-s$Y{ZM_nK>7bV@GT%@@G1Ux!R>zF$G~=AO~C&XaQijz4q&~E z`WE0H2)8g$3A6zF1@zl+D*$H#mjjl;r}Ft4+`j#?7r%=F{>Q<4;$_ZX@_$8%SH9En zb@`I2SK#&+p!Ajb);!>9LqCyw!)<@y5TG0w3xr<*w<@6N6)xXP0{%C`y$d+z6%N0` zsGsCN3-=-5gjcwHX9o121otxx{v3l({nfc}zld}LR|4jpT$F#`g4^A%aQ;04Gg;!V z|0e%g#n<^m{nd+bd-D}9|1u@)zBB$T#V2!*SLa(FdX?MPp)m6${{GD5Q~S#s;nQ;j zc&mYyS6P2!Ab-}w-3E?P{6!_+eu2zixF2uu%LDw=;C`OLuQ2%3cU}VbZvfW-H@?b$ z-KgeuEq=V zKH_4}gM*-cS0e!GH2C-e)w+|LFifWbi3}o_)*Tw-Qf(b4C1@0(|`q6+OGk zKkH?r=asqB=HKgv?n=l_YS~xkT9vPX{=1jIL<0AKI7YW_%oZ|(&U|Lg!?@3(6HXn=pJ!Kb=#d4R9yyVO7Js(q0ENwJsf|1Cw! z_I)k)Z~rv-^qB3B!kJy-@#lknpYYl@@%Ik!_cQqPyf45v`w#ki6dx(^hi~=|yGmbX zE~f7aF=Z9X`(r9ii@ihq%)8tn$O=StExP*RlAL@JCB7{Lw0HpP0GV zv|-UxxyN2^e^LjUh9YWXM=E#1XARm>G?l}#ps78RpA!^K&zS~&p^^`ti_p){?z-xo zn{M3G+EhQwstlJ}t-x4^u(li}tW8ViSe2)gTIG+-utwjVVU_=MhBfiC8P;TSrnLpw z4vhBCv?_rNFbTfiFAl*^`J*$ek?ZDJnba)H`pFz?)3GzH*33+6e8C)R?7%rz`N!v2 zp=*$r-3a?9CDxYSQp;*8wI-L$vO>#eS(z2HtkHvJTjlRXc<0QvtVicqqgTzdD!&F? zTxyMf3uSp^sg>z2wMJWjrL(MY_?v*g*5$LUi60^U7tOQAZbUg|XIW#PhM!NBS`+UI z%NjuW_0O`ltU{P8kmf(lw#GVVS(8YA`4y$srkiG3p|eotPtUYQz5w^T5T^>n;iHH{ zqQsg=B5wO3t~buK%I^iQ4B?*)T|Yn^*1|-bwtutK5?3OAKSJ2oLGA|R(;4%uiN}z4 zkI%HmPKS=qBMu06d@JG{oo$H~v#m*_*LrA{RsJyeH)DMmnS*?vWsUSA+zO=O;S#GA z@gI9+mbK}LIo9@{K>vxzN91AaFOhGbhAyOeJTlwbay!h=AZ|INVH?T;`XI zLRvq(hZWj?4{Q6mv#m{+&9+8AxQA7~-yT*gFp-&MZATg>ke{tJpplQ22y+YKI8lwT z5XbT_mRK32ZQ=%$)deNi2;w?&J>mp}P|oF4k6?ztA0e5`QBEl15u|4<4;}GYmVo;t z%n-tx`~~vv`_OSUhUO>l|A(Yn-A@lh? zta0cVePE_Fv5&CEJ|L{}$G!I=6Hm>s#-2et`Na%t(+;$mXJ=T}1n3uMSgoi7qi9Rz zXiJsfn{9=@1b+qC&xW5Rs3YgYJP&Ox5C30-%u3WDVC+id6Y_Kn^>GXGZ_9@e-#gI` z?uQQKd-*G9RkLaC06KTrIzMTtPxh|6DWs$A@{x#YxGc* z!zWQ+&w)E=0gM3Kfys|U2Y8jAgc~ppx6mTwEllflwA~Lt<`AUqOoVX;WKV~Azpye7 zAdlCg-#Q6>3uMbrDzU`#!W#dTuts2xJcqEJ#&qiu$WZv_f<6`gK#wAB6KK~~8sQ?W zF}Q8%haL51;!yBl-*htUrwM6i7;9z9iS(F#9OozRnSq3I3qvD8ilnT<~T4~ z54u5Etw3ls_%KI+QJ@^CBzIs87)Rb&&^u24K~E5B(B~r^m9_q@U|oKr`|}x`apY|V z^=kY$)D4vLB#_CVJkLWo=a*R9DG#Bibp&C)in4kEdA$MQj>GIj`3vOJPa%Ia@)Y@z z`965)N5@eXlTU$G4@&R>e0_D7APvpTU;vPfZ?uBxpI<|MI8%G_#?PsGe=|KB$ zM;q9Hd_MtguoZca@nrjU^m}Qv=i|^ezY2Q~_=vA{1KPwl&_7TggubK_{bG3mdaBTW zu1C8%9`eAJ7W5_S;MR=3Ya{xDqtU;75&Z{rj2(e7p$R&^guFz&CeKBmdJg(}$X23F zggP-+AwMRNj`1Cc$IIxG+Gz}czFW~}eHQUqJ*^8TkNPn1XKVe|>7a2*)EVh^hl@tf>IzV1Lc_oHkPX5|l1 z=I0^IM_{7NCLc$+qwKc;p{tR%l>qw44E3cyML&5y`s5SPXJ3Q5{3WCb$h-&XTZs1g z8Ksw^7o^z z-Hr0fA{_LCBd?;4V?3U`&HKA26E75hMN&R@FS+KGGU2_fm9V!PZX&Xm^*Px447W+h z6<|N#aI+wHG3>VjbT*0RY$3Sa1N+N{+&KLH4)z)IJh$y|n*)0k*jM@80=MP!c<%XO zG5yn{WUS4cR`Q!vZmq}7bmyJND!0)SJ-5xuEtB*7o~reo;>n$>{iaG?w+ocpMB6Oa z?Go+x4A1Rr%5Bs0v)nMQ)cUO1uH1FXZTrEV+s(>t%!tda+U@W;uG?KY9iR8y?o)2# z$INl(=ReT#JI&Mg6Yci&95;SXX}@3hT?^h+R-@~=OTT9(Ms8w#`b3MOnmD`vh zw_dr8ES%-KeO|d$-sri-lv~E|o6vE-!IR7DFb>(nbvs_USvPuaXK1;fcy8xueZTPB zF4u7}!o5zpP2S*@`OR?4+~Jii;SL?fUS9m}gIndhez^zT_!YmK@85Z}ZhFjjvnP&x zzqkkC_Y-_Vk4|03YQ4dCzyBRiES<`wla5%vxI)trk?aj5%41j)1|TeLUaSnM`zL?d#voEI6Wy$ZDeOR6cQR0lD9s$itm&>!(=4K3l|Ri~4L8!alZO z_uHsFjzNYEI%3dKgNE15g{;HBVKyRcMA@hiT~4CM5nYKK!c#_AnGt11l?mab9qXgt zRIC@dVki64sko?C_A0i@456RUKmvu6mvmVEM&xf){#FReucMSmHa(c)-!K~yHll1G z=t4F*JeW?$Ju2*x5s!>|B$}lick*0BHAGhXsIW&yJTmH$P|#~<^I4~ma||+U&=G@< z8Z>!L$I|Ek9FGcnWW*z*9!VWZ)=u(on2iVl) zRK%sCE(LwVc1r$)> zFTrHL-Q%S4He1q3YS@MsBr(2i0Q1Oh@7l+igs+%FZH&L5m~l-G1GP(seB=O zY$2VYeCD5B%+4WOT=n7xjtLiZ;kk^QNOilo14R~E$p{O{MM-7T47pM!F0G)g>0(RiaSmwlu4xen9B7H zbLFdrt(BZL5q7DFOGRC(LQ?I0!`0feqQj;oVp^i61&uV(ud2BuD9(v~&IK~5zNh0o zy1%HEbhV!h8+62=qXu0ex)WKaE1SR=;8J0ajCf?!BjGDa9hVvr>!pPU#O`#~$>miO zu9p_B5IuGxmFr4p)1s$04GH$TnrQY(y^s6}%ioCnjmqB&;dM*x>&G+bycvg3f5J@x+;_i>#AT~6|Ad* zbyct~mRQ2NmawiRtZNDDTEe=PC`s0}gmo=pT}xOOvzD^1rL1cy>srdXma?v;tZS+A zz`B;QuBEJt-IlSgWvpu%>srRTma(p7tZNzTTBiK5u4Sx?Ez4Qga@Mt+buDLI%URcQ z*0r2tgvR>x#0jDC>$U9_xy-t|;q@vaTrWin1;itYBRgtgC`` zRj{rKCBnKYSXTw>s$g9etcxXteTMtZNzTTE@DTv94vTYZ>cW#=4d%f2?a6>tf4t z*0r20rth!d$Mq8&kJNvegu^gnhP%&ldIB5Kf|}S1rt#J(@60k=Db``dn-%N*1OT@H9O$)WSe!bFe1gTnfB86YQ zBv)ow6A?{BHBkW~n@*>c5mshInNejz%!wxo{UKxPO1a2(p=hf zuO(`i4DG1;rMxx0a^O|H?6;ewOO+QTc95mRq*~vamaxwj@!6t2TZOW)*k_CQ zY*C+0D{Al09Ur>G)u-Zd$kRMwwJp|{OCc0b%x`5H;} zCvy4WP&Q4fh-~vwVULV>WYi;3_UTy6&LvVJWe?cLq}A%JSz6Wy>9A>un3kw%sUT&; z@`uv_9=Bz5MWLh}b3{ur-bg0zDaEsPmylZ@wLU8Bkr9uKdSr!Adr)l1nv+)hBx$ur zl2-d8X|*@PdnADNpCI{_Q;4wMm@4Zl3vyF*}{Hn#BYuIt*ptbls;S7Z;kk^QNNWkBx4WT zRIM^#5xt(sjAO@o(Tj9BSsE#0`x`2#o{2A5kslc+76|Bqm9W6?RM~PU+3)sdi#Ig-k-Pc2d}wa3~MeCcBzO6^*D3M=XMQ~>a?!>^I6By%?F*h`3g%Q_{*QMSJ7+tH^kr|zs(SaGAm(g(z_BwW+f5U7<*od-05;Q!@ z-%zeU-RB57`n5|^ts~e_g*U7wfx~M4H>{?9!)n&Yvp+7}g$ozPhrA!rK8&L4uP)^C z=~R2K9fxkyX$__cNt!As*Jxbsi<^ScxSV1Ns`5+dHLK|8%dB?tER@5du8@qU4$6mY z#3Cl!Nh05GXF}a+bd>2VEoJ2+&z%46$nPC++HW5NJ<{EM>9?vXBe~V@bO@{LC}GtD z-M|oV0Py;HVZ8&qe}k}=0Q-R60h|u{4qzMb2(SaVb_2iXT^JYb9aS9-HKKZ5M@LID zxgCCtutI&px&h|iUtp8m?5F()G9MhNVPo*=*7P7f~VPJ6ca8-3pZC(B9H4UFx z+t}3H(t6~&w)T#7N3B14qv(?Pmg6Li9DyHTypq#bS$X!5u;vd7>w7T&F~lah@jGYs z97?1HP}cH2GZ#Z^HXRGakbzD-M6bl9h@DKtLu=MI`>sf4e%ZmDXk6$?VCbUuUx zV3r#fm`f*}n0%ogPdhm(4`&GN2J>$!i2l$55zBl`KBhY1D{x)ZRq|bYHJ2S*YHU6j zP?gE7PiOmb8JdMv+p)f$Y`Q@2hh;kIrE8#O`6?e149Y&WiQ&V1+X3vv$9uXeoy_ zkWHYh^65}FnqA07D@Y=z^SyRHl*pN_A--5_s3N+CBvyu`LCqtPLqqAIH#YE<3JqeG z*PAX-Vso2q`5Zg``gG;a9CFanPj?PRz3my4buNZ>0Um)q|N*9POJ06Om{UH-`87GG7icHPf z-TL53*2&9$BxY0Q_MnSa(%soKmY|{Tggm3diKfFu^wEj_DAjnhGktHOzey$Wch#fM zBI&#AW(n`__>rAx`UXwkYd6ENlZ=fXFOSG(hZ8-ibQUX&KKw_lV@^^?cSR4Qk*4`q zxw!Ewf0@s&SG~-4HrBq(_dGShr0_Ss%-=b6!qjJ=nsC)?%86;`LV*&wr|T&wPc`LFu9N?fDAd z8?_Hi%DeZ!;)Pq5NG0+KJ1Hx>C_}A7y%A-;!$}`oSRNVD5a=fhjvQ;}U4_$odA)*YurCmto(S)5;P9EB#dXpc{AVE6hII6X#i7U$b;Uz)y z`%ekoEfXV!PJzM{fBA;6t_Cu|XD$;~4a|Ljx4$l|tv3oQ4wM6zT_da+Fdx4`Sa$+Y zjD}9Vv=FUHOk~lTnX!7XBVzHZd$Q$ZC z%KDvL&hDWzaL7G3UzAWt4Ri~{hqei8EwBnW7I^G#VLf**@?&Tr9q;OlBbU=g6CA8|F+{zcNK)Szn06rb1y2W^N#jlwu|)qs{bh!V z5@WZ##^b$ZwH<#yaBig#6*XQgCfx7iFxOd^bGYkY8LCQV9UBWB8_G2|Uz1 z->@s#85w}bNZ6jy?$0 zXeB&%@X5KnkUDDTJvQoncVY-L2BJjV8A#A}iqp@IT#-y#)T9d->$0LFfg%@coaBI$ zPsD8GGAcrxa&q_bo1gLbmRJ`7;|lK>G-2*OetQsm?}GpIPIxXKIxgIYO+v}O9!>aA zz#hbcUGR78ghzN9*nk;y18umjlua_xk4);P2FUf?>Cfbc^+cM+NOWRi7k+4(hv~XL|<9(QxS`9ZOkfzb88me zkY`m=>_zg*>ci!J4bq{B;=0$G5~~GR1k7H|Cb?CwE3w`SZ0jhoRyLMc*TOs!pt)7M z>@C$1Qc9#dnKzs;TgjkRB6vB+@4#dLooQYja;3hCI@uJ)R@&f-_4@k`p2TrKP?JPg zBh1L_Q8#r0%#wR4}EUfK%XP@j&WI`p6hrV1F8H+Ugd?qAx`x;~i%{1h}>q5@SlB1Jvw1=In?$fLC z`D_9MBebLacv_m%HMMf=@#gzkrzauLK?kHlF$7$ypTi z$Z_}bjwDmgU`S4B7U-25c`i%Jj8uBv(cJGi1KZ>SfNmqY7AxBE!BlxM$1g;BrqxlnpArG$h#X)C0XiBzAiH^>Cc@cL_!)vD`G75Y1L zJh0^NC4W@1<#O5Fqq<>ts!VC24Z!%q7{g5&>bmZQ$fPbracafhj}{xP6J}RkipnQnNMA? zPH%hOj`hi5O-HB>>89?RS}sWF%F9m@0x`-NE1P2rs9Gc&qYfKuM?swo5(%@*Ny>>j zxAJ~!m0r#$vE!APQoV}!t$E!`$}qa+1`_5$1)4{R;!zKAJyYHzQ~mooEbn_6QMBgh zNV3_8?tYc9skHOL_6C($lIn-h+e9jJgen-}27(C#2IGFr-IJnQ?riBABzm%mxS%bv zjNBvQ0bgi;WYSbo614giZo^|LolD4`i!3UE{q~TYFZ3r;(nKC-5eSWna&0NJC)&pm zx|Rrx^NG#W)yfSh$;-K!Ol00sA1t{IROoMz)N~00IaX<8X45@LrW}?%<}#=H)FEp2$NGCg;wZ>jVUDa*&RXY710>*tucUu99Ft!ZqiYwqZ5s;XJj z&|D{7TAG@wFb8t`y+o=Rl{y;&QR}4A)Z&Jei#;S=h$ec{JiUP-Pzz`rSQ*mQyiC_~o`}$fE!O(ncB!B0Lf*1} zbmxa19+K}@^pK|Nof_2SoF*iD7h_BlGB$c!!t6BM{0{`+7LecBC_;~++_{i_&TD>C zV(sy}66@aImRQHa?0U7tIt*q8_Q}^uth<5gmrJa7Un;R4237;tzFuPeR(^we_uz8h{&iA5dFbIkY4_i$w_{fBI51e{w_7&xqQu+f>Qs z#Hx{Y-^T|P2~#cDloG`kDz*uGCEDC z=Fc=r$3whRUZdD*4i?iQD=|G1D+SGnFiOi6@B(-8pe9T1?pb#-EhqD3nKXqi0&JQ) z(_G5+j(E;n?O>JWg(p=~tyJ+v1W@(n&7E7Tc4lRfuME)|daCOJF%Owcn}$6pjJt6! zC`7uyE74O(qxQI~2f^j$3dxdN7*`dlD%&$4*TW06k1XbA=nduU#*WA3xR3doJC_oo zh-`i^O&i;ol+g-7%hDpaYIUjg_4-olIG`FR2d=LxwKBkgz@KYMtp|Yt;LsYrlclw- zp{c5EqiCj*^X{$(fXSj;JLM`rcRI-MK)D!P*h!Wt)kl3wbr$@*R(aXc64s= z*--xLstr!H>%OkJwyv!ak?w45X>aIgXlXW_I@UDQtZlAqZxt@|#;a z8fv&wa9-6{H8nJDRP?&WMy6`2T6Gw*0IJ$$zIC)!HMh&cs7DoEC7Wwr&Ex1fDv?Wc zC6bB!@VZpGD;F#9$rtU|N^g(RoeZ~3<<%EV_f|Te*^h3Jk7rqrv5*cqb#*}@J5^z1&gIitWj!j9%@*TR`Yo-ex=zJAzdC-yPK0(f6turk2=Cbg%mDRxpVeC^XS_?F# z<4D}|qP;iKofnPiSf6M@PKqW`mCTFku*wdY5kpo7v+SX1^H3&*L46ef<>cjFkB7dXuw?YcgJ`52} z{OWv|=&E>JDx>;qQ5Qq?BgQy@L^-DzkQc=H5)GrtH#3~2Eq7fqDh-idZI4T+;8m9LK7lYAB8H!O13Bz zJezI0rNKp0ZFHC_rz#vv>-GmJX|xIXR!#o4iS`1z2U01`HnC=y?QFIQKHudGVO`QM zjxD4y{p?B#Ua-=uZxKfYN41AE9qhs65ELB(X5p-?$g-bGQr(smJIbxkM6QnxRIAM? z+8hF%p}ss$r)qP(qFjVUL_|e}SR$5+Wn#HlA$PXuOmTmLsU&r>a?6iC6SS#Lx@TXo z9I6u4qDIsTjFMutSR)$5XT)03D4Io!Xcb2a%>uFz1Sc&ilaprs$!p$mr?El z$x%_RI{L9hB1WBMKW55UTjXMNHb$me`m;rsh>5sxM7QV>y&@rw5q%;l`bA2lMMfMe zvLYw)q96vupcoRvVzUgvQK4qpW`vf<0+EKIE^4u6!NjSfkl9apnv^#U$u(?jSPVPz zsue7*NM(+X28wvXc4%vjGCniRVPJ*SjVw*k$1*(ydPC5k<}AP>R+e?|aHbdP^rF?F z;SfC>)H!rORhA?dA?E72LWalWd@p#e&6a&re}SrkjUhkNtIC_tg+XV`i6d}ZpgVSb z^&_yj!&8nqw<5?qszQM1-m5qgRa|`CNoPn@apqQe8B-;1 zaH_(DN=K-Ueb=$?I>UFJ=dFQ-8d#{o5Nhy*>hkDUIm8y0Z(;csL%u}`c;5PTC)$$k zO46M{VjcTl$G+DYzSnu)HZr%PH;sXb&g*3}!e);)vuwko&B5B9e_Q5+?TDDp35R_< z?AtMXJD#@$3nf@6VF)EWAqP2;;t~$umLq{#EY72)KQ>kEojtb9VYn+V~%cR(rHnkQ^OO^!+GVr_(&rRqWm49o@ z=Hzl$b9_EyFng7UUSF-F?hGSE56d58@M>ITHHPbIF9@?`vG;bvDdq~s4A&mlwa2WG z>^)~V_1T$>jRH`~Zs6+P==M9RmtE~vKCbjxZC4{h(ruo~LyxNPEMA9YyF*=?;x_0S z;zqMUahkQF7Ui&3JFHWF)^UjI6yH{6LRSJ;WkPXMZm+H!`m{qq`6;lNiCfF#jp~6hFF|1^U z6?a&<=L_^g3Db`rC!Uk9@}zSW8x3r%W224@73f+evsMYMRZ?q}*jgpmuH@R+D8Y6m z*scWIm0*Vw>`-zYO0Gl6btt)JCD*Lvnw4C$l519SYm}T0ca4%;qvX~oxh5soq~w~E zT$7S(QgR!W+(yOUsNCC>dz#E*tC)^y#(U(J-?lmoT+*9b1c`umF z9%<<7=`}2QJ3mM}49eQ=CF5Az&4oUXq!ouQ2P2)Sv{!;gRv5WYx!R8za=}Zak>}ku zeVk#tI^s6!h+*%ub6L|a<$c0FNiVyouDG^BU%|^fu9NLfwku($I^)OC<_W58I+d_H zdtj@<3_O{HWFjrr^=0i8iTR}BImhE9JaRbUs)f8JlLnnK=se2QP}&Dp^{|snXA8L; z@pG6Np<8n!y4j(Xo|8?>*}rzK{Y;&qWHoGV{2N-lsQIL7(Pg=u29Mm>;HrhZCL0a9 z*`Pbx*O*Gzg5`^U`{8d--q6_6?04(%%QUnUaqt#cL7^b0rKzE& zEfB=IBEc%Rc*5t~CmG@#iYp9RZUHruB~fy-BsZ#+tHo}kLp!UTcitgx@Z?AgLUc< z7UFq2MA@H6+F7NfJDo}nC%OfF43xmkArVJMB8y!Ye$7 zo$euV+V)o@G9kmSjIju!myC1(v%8RrsbqHN`DSk54XP$dLDq zV?u$-k?l&;d92>Npu?A0c@IA-VIH9mN=d#I$6hMwa&}-Li_PfzuL!7DYHMSi3%p-iJnBB$qZ#5 zllk6+@M2?)g z6W#e2oOkl&0mNPon(3SjN7FfHz)5Kf^;V8t#8ay6d?Cv=*Bx~?k&PuC86ny|LSvKx za~ymwPCr?dJX`48CNpK%K=s6tFM4Ds+^z$TB*+__0l}bS2IIMW-%9O*UY^hiZnQ2` zc64NP3QX2b(d!J^^7L|df{xx%l)4H@x~YU6WJRMB;D#GlJJ*rE=Okx0ZJsLB8l7q_ zEFE(69>q~kIx7sTtGtl$+vV#PsUc6*JmrP#>SrhP_hyt$g#j0-QjP)Y+y-~~%7V_R zOXyyr*FoQd+LT0QI-GxTo32<;`{~LeI}=$7UGxD>o+bMWIqJdqJ&Cf&W0lb7H`~J)b6knMCi8~J z;dES+a)Q)ndx4uYreuy^vLCB$Wj9F4N)_B-4KfE6eXc??Zqif6O@c>B#%7G8UXnbz zuh6YYw0~D|uGdqXx4Xp}<;>GGI*ZF^RjQK7>O_h@)iSQ#k>B&BQ+%#9CU@TOG|`Fm zRy$8$TdfRr+41DC{8KLZY(btS9pEETA?i=_^6#v)$I$1d_dWOtK} zxI6=9Mg&hPt>Q1wxzg=Me9OVdh~{8qg#1Eo_`ys#?64z_n3@k>ER}YSsFxo1YK4G4 z`H=t}la(ih`C=e>!j?`i>jUZjViy4&xlq47EERRpbu;~R7%lFlJ7-+RVCD>0PIbtx zjwDwGtLGriwx-JMycWClURC<3(&?^a=tGL6yh39)>(OxSVy?n)jr>!EYnG#8h5w3H3fiHb7*G_8zJ&&v-p zgerDXhRC3Z%6O?-#uZYO$#1vll)4;Js3yxV2Fg_RE9;jw{rQO~%gAdp%d&L5QT`6G zF)Ye*bSJc|2Ou#Gf_DC}sw`LNQlD>?x9GwPC#hlP8 zm*Ov`%)cA8N=dKs{CVPjf2vR6D!xh`a$jZMslnG=p+3?*aUraFlJspMMN0Wi#L-x| zkf=R!*@Tc$+&vlX26cj#MyM%{3Q-^DmkM1meMns>DIFEslF3l_h8CkrMz&_R3(y}h z7=4nyu*ST`2G6HAms)QRms+L3y+fteTgR7L-v&N;LaB8O%nt%j9am~S2f4F=I>=R? zTx#tDJbO~9)e1a2QfgfV90`oV-<~jkeqyP0DX=Fn`o&V~{eb@i&Mx__L|(P|L#UNd z`%vv#_s9CH!c{1X8DB27O3wY?kK4agYF+RprZ>WT?fl|$&>qmDU{t)<|2QEeWH>o_RQ|3M}V;6XFBXg0m9|}KzHo~h0{T^i(Ft@_* zBQUQ4)F+tg>IF4$>hHbu)iL$h#s+9&FZkM7am& zxL>5N2wS?VIaJJQ9jw9PAzgh{Y|QUA;HN#Y`Cs-^kLiT+p}sBZlG_>~{{DzrQ)PFp z-SxcdPnV?Ffg&Y0E3_v5OMCP!9e>EXfHT?s2w&fE$lu6My{SyyL?F8l_aYY=_(7Ei zQEz1nU8uS=z4LYI0~#*_{CE9z=KJL2On>8~uUp)mZ=4$KE==wl`P>7Be{k1vrfqrW;w z#|PP{VuQ~NVyN`|8)R8mJUFEG0A@oHx?-94sF?SwL}>iw9!{J32zr^E7!{bqM2#l+ zuR^NDn=)$HaId>CGDJHWSyDUIiL=IcLt)Q&N} z`-ISPck-YN{^(Pb!#$xcSu`@!bu-FpO%XTGGvD0iTIB}_o)@;7rOlTsdj2tt$NExq zV9RytaGlmnbqb3zzUYB}Kj8)ZA`Vel={GuXIV-Nq?Yr@vWy)c68PC5TG7{%b(pLhF$Yts*iiCvyP=FPWaDgP zdTOR=DNZxfobq;qR`WUjZI{35`}eZE-RJOJk|_BBis*2uGP)v9$RDn6M9Q6J`mBO1 zM`?>ol*v5?d3MXA*11#}%1O>~c%~!x8;mknsY~d)EL9(+W}W=IUd=$WHl}c?9&!iS z$mDvDR5t*)chq$8r%3WtGjGPwp)x9FjtmGDpL9yOq}aji+&C-r1uNRD)%W6Moeahd z%-8K$&rHo{3=@;w6)D|jrBNmpM(C)r(2%qQTNJy%?*dUz93+ZC~#7 zy^5!MVi~Bmxxoe;+>o^U6bCiR$Xg}zVnw;URWd27mkfUqT(oxn>#EwSB+7z8$y-~! z<(TI@Oh(@B$?0|xUQAa8j8qGG|M2)KHY*<3&%M`hYYp9PsO;nVo97G4&6Z#nD`xqS)m?Js4l_B?wPa&gFfgt2j)0CRbs;G(a~^ zVX;P29lG%$WT%E%Pi~(0>-S^-@$5B?Dm`M=im$a@S^ul^@8k4%aqqYD*~CzYzk|rL zZQjDg;UzsG{?#`uIU&f?RA?J}jjQl{odQ)htM#m6`29rmL#!#WJ801gH$U?%XlIWw#~fMWqDmKl{$G-htT!(*hoU?+mLH=7n%Oa9_?hb7Y)u0G)npp(S%sRsA&j;hlQmdB(MDGp1uadWWD^{3M$l*{m_=wvX>k4zm8 zrw)YTop1f|@usd;H4f@$QrdT3jy7+#t6OvXW%(bvmn#SHnY@c*tl z$&o|u%O>Z|8r{CJOkWr1lJW%-UwlumeN#@7_mt%9Ouu)cOLEmPEoswTRTUzK*uc71 zelyiW@1D3|m5_XgG*7nCXm`l_LBg^nVge~btZD1$+R7(ch2clI@X(| zD;RjYg;vk9_hPHj$$6rSLj1=nWZWpX5P?CVid|QOdAr;amRZaj!4#@cc`dj22W|N} ziO$hDe52-IHX;9t$HIm38VRQ|D ziI}H-VcK7d%%{tr7Rs9hSN<>d-UK|Zs{9{6_aKq=5PP1-cj zw4q690im5_Ch3sL%rHxn&=x8P$X*svL8KxoB4`vvRFEnn$Yxa*aia=?B1%O-#fAUp zecyBLJ$Gi3wl2^2=kxs2e&*hD?%9|3Z14LXPj-{MkUqk?y7qKGZ==I?be=~FE>edt zOi&DU-J~6Pp4Uw83#r>9RSVOj2y-cEn<5<-HL9ELz=(>6Kf-zx18fI6qQ#zoA&nrDKR}4Tw(-(!P9gjWPrWW55V?GGv7Hk@>y0=m-L2RvMi;0!s|; zhBaoNNKfZ!A1Ij6bHhu}y%Ke?nTB4NepO4#!l)l`snYoaA2jF#%(|E+UQ*_Ko-VJm zRF7~^p@)-Ajq2=Kz9_{x>#tjq|_n&_oJ3yp1$AbJAV1AmYMIn^xH4b zxI>REXUhJ^j`RX4-5o8SH%qiF*2PdYv$RG=F`x_Py5m_sZAj746|8xXVOqr8pwtMw zSjTj+2^s{ApT$i@eT)Q_v}==wVgG2@zcBw@zF#cOImTgi7ThZ1kA4EqoikF2Pdf+pc|Ky zcDSA=gIX?*(RH1-A(PJdf%>ULI-5y-T_`k<8jUvxA5-x`FH^`{UqBRMiT=E)S@_o9 z(Ny4}Kby&5oJrCL{~ZL~Y!XitnpJW7;|NtvD(-F2&XL$AE0t0ZxqQ~LODAI`q0v?@ zxuRo9Jc%lxAQ<9_vU;d@2sH&#bX1aMiKoy9&pAIao);s&if~QQpEd+_AnD{EQ#jl)*`6j$>pbxnBxM#t;ufI;mQegOY~XK{Ve?`VDc>c5L|8-@m!}&{ ztdQ|$aW>hXKD5=bZZQ5QDsyTMWy_q?<=4C2C#fb($_=X%%}{K{ ztN&fo8`DB5UQG-Wti|2TGSjL4XkPN;=f+MKWrvF(-^IN)zq;2?OL?IkD~Cd65${hp-LJIi)Dg7^mUq+jwi zfatTd?(q88CroRCA1dULpjYdf4dNix;$d5fi+u#OCS;YeuG?#IVn>RJOi)bH=9;`2 zGrd_og+7d>@zA*7SM`K#GwA3wYU0*QZJ&7_XAS5(wQN#k(d1bs1dAk#8)_7?%;HaZ zqwv(CEltvubww0)YpYtNNXdRfDAlHzh%MXnE-%!Tn~LM5BpYugnBnNCp&Voknqgu9 zgMVBn$WY8pIuWz{kVB)A_fX18p^YYn{3(nGIM7AeEYd%C#6`njno z^lLA-YC_@oo5b3_iQU`3#eQ|0Kb(iixzbLH+kLDsJUrG}S{6#Z<9EM0>}}hA)N;gQ z_YBY3{8Y;WpICI;pZ@V>nlJIW51&a-y60Jb^LTkwYrK30AvSSKC4D$aR{cq1knVrX;52E4fc|Co>ESuVuYF15+he}xicddS)B61us zA2=9z53nCF9Z(a!`#mbE1q|8`8 zc*Fb!#Ud3JI#ZLK)AWE*z?`GniZa7CZT=?c_K$|fM!hXTtXJ%T_a#b{H#4JZ+~XVK z(fb-_A9|>z8CvIm^8$e>YrS>EO{zwng#2(x!6@ zVW$ei%L{o>gQJcH4U<>ZIIFR7)}Sboo|PY>Z3WWw)7Y;P^P80K<>;gFdOR9ToNjkH zyvv(*!<^;$R&7g0`7iQ`tJlhd?lQL7JH%Q4D5@Axc7v~&*J*C+4;~8 zIf3yM-LR|peUZGkS?|rX2TD@3ab=!u`dOZ-ZvtMr!~6eNndxQ|=Uk4ZRQ=S5#jbfj zg*{4pw<<#Wx9du*FqE=*ftZ#L4A2#m$~+HgYVsYXY625$XW zZVls;@#3*2U*gP7r}SNME5y)a8#FhbRcK;S(u}QJu{9%uc(jU3`?QNotSl}Fu_&pB z@GaT@I``j53Cmq`6Pom>6o6rf9hD+5e6eAZaZGZoeBq>V-sxKun;XW$;g1!CI943u zSaAq?jN=K2lHu5{GmNjYV_uHAjqak<`(Nt4?^PQ&s#DYqHB;?BL+!u6+Mfb8H=*h4 zW@vw&6&drG9vw8B02p1e#8k)3^j%tBg1%4U%y$Qx%u=9}IkxV|-JK+;9u_$zp|Jxu z9yp0h%iVh?bGMAHa1^D$;zVZm6ME=Pr|BNBG4H_rCkYlKlZZpfJzY$rb0jd#Z!ysf z7|mqp7=%u-5sK2Gm=*)8<=IZOOmECssr$RAD-_A#t*2BoCmXq?{g2YjMUAojJzG#8<-0G19n*S zP{R89(xY^#pP8VK>gQN7Pp8Zolw3xqVkC%|Ga_Rg5^bH!ja>>pc^Z|_gAmW;%^aTQ z7aTUf_~DblQkHMaRKcV|IG7c0wa{-$875M?%XxHtB0i$V_*dkUv(dqPT19yxfQlh~ z=X@m>uL$sEGR9EK1BJ3tLh-n6=)EJFNVS+M^G26v6STe^(@#(f+6Nlrhwn;qY;LU9 zcXgQ%T8BXj^WK;|eR~lo>7}WhG*tgfkx_?dAB9ob7<+T~Jj(|1HKIrhttMq^SL=sU zYYC?flNc^f4#`o@ccbZ!ZgE^tB3g^Wp-b3kGaqRS%7<>t;pX?j& z%}B#5tt^Sn2;te+Wk~`@CrBW#AH5b@Jhn_yR+Jj4KfCC-Q4Df}z$^7XBiKVLE&t*f zb}iQf1xaOcLDg#|-@FKG@}xOsnj_wgw{SqcX%P|)WEhPzEzKx9mIF~z0Yj?=EkApD zJew}L7F_37%NY*E$Lh5_Z#^dO6neef!d_22MRao#m6wr`R9U%dfmW0HB2SUaJ6Uc)kta_r~|{FR6?aj;V}X0lTl_*#rMq!~T8v z{^O%6BNqTyBfKSee*MVGNIh`&v6Yc!Kt1pz@HIeLe{1L%RSQ9rxi+}mQTmb|qs{8O zR{1YcXT9i|B#Q#jqD{lOoL_I$KF`3f%EY6*hV>%^7`#5XN5 z)leEzeAT*+yEHVfgIOX91ra(9&xR6Az-OZsvfkTEhxpq%%X>Ur)(-0>@zx^)E7x82ggRr?X zRBmH4oH3+?7(;Rf(_sIiOugPqV0DxmmYYQNO{a>pudis)T1rOE%b0INA|j{hQ1B*m zZIRCw@ob^C`XT9)cS(u7>j1={mk<0tJRJHoJZyhN6_6e%OdBwzQsy>QMFYO6ZTc<` zWN|&ENQcMo64-i4?s`eD*wK9kbiWY)a7pybP100R!VDv`Z~n$KF{cLP$Xw}1cCb&! zor|uICX$?{ko>r5!df>KMkC*jD~+c1#zI)X%Jw%-L%9#gbGhDL&M9SnHUFMqF8oxD zif`XNnE%UsLIp{s{T*270nVRps6Cfyw{CMvrTIlX=7h_W-H0}fqVagl)8)&ZO1Ctn zPP+>8S)dB|(}yY}&jMEg7Xb5s2=M%sm60C-+K)TQ9DREWq;!nCIa6%q5kP>+#+V zeB#o|$XuWj?>q7QBEDSF@n=_qtwYVD+V4#79|C#rj0lL*^t3le^aLPWb=8ZRmr*Bf#^(eqTjj{HoZk*3WVn z!?$rfi8SfRc)~6c?JH#GxCc|)n8Zrk|ASu#9RZH{MrFjjf8*=&Zk}X!fc5=H);D^8 zR@)0}Car#@py&B20`%pS6yLVW$h&|a-&Gm85jX~T1MtWFGId0)fz{ri3oSS6-tO;#?gDw>n)@pw=Kv|-uP{Fe zJOJDUd=@wtn2v9r_S2)^55e;tfZn>$`{x=~Naobf`0m z#xq=2O3_$ZMcH0zRZe!%SS{XT6%X;zOgfwQ&*7DrdwlbvB6IVwW8E&w-hJLX=>U-(mf^i-+KdDrl~9|ctduPwlxg^QmX^0!zLr;9lmWWTsm7H>3qv`)XyR?Nxc&c%_WpH(!|U97P#R(I0C$%=Zg zo~awwGpzt#WJ`Fw6$kJKUjy>cCJuwb^IsYzSpNIaWAFXVUX6Rt7t_v`9^G#CP|Zsr z616=sk~Pwt(h4oGwB?k0r9yl9fw&CwBU* z(w5vq%yf*TzX(%6)LJZakLlzT@bOirgxVsBY>_ii>9$NhT1>KA!sXhMe{)sjt-ysq z@0+S3uL4g2--G$OH&#XN2W|s40TsX<`&C7fz#aQmMJ|3zRphBDKIM&<41`Bk-e} zg<7c>FM98Ync3p3{?XroSVW5NmY}MW@hn{_-@Rga@A9_gOMA%wwuMy@!hMrq+kX(- z0i^7>Lc9={*`Fwqm6cK<;EdquL_DUC)qI7w?P4vLv3Fy6u6?G`mJj0cEAnUl4pPEb z(nZIg`81YfEXS!2C2Q+F)v{qY+RyS;E&3(LeP@&AzqQ>f8W{>nT5)={WXD}`18Wk> zaTE7nbs(M!|6vjqkMafs506xFv>C0{7}pV(Vmwx(h}e%rv$2rFx?Hidq7yUH97{a{ zuZAk<;~y;oo66;xKqlfGAcw5?b!eoKm<+LPmkACvFTQ!AKauxZb7QG~wYb=xb+EF& zlV~BI7NxhGNw%%`IBgz@zwwerD`cnK^+of%y*tQSvQ@Is51Q}gXsJ_3C0JK(Um}mL z9ghxs{bPM}XIP$2e)^+>X-ohLSz;$1q-zoS)c|G=IpQD9C+G?dq>XhSNBMp?ROG10 z5J&sdm~4zihtqU0lw2RD%QVz*PNF5GIQ0Zy9Dl zOZ*aPWhKKM@laQd{&n$2v`hXwVu6-NZ;`zua=y#WAZpV4bB$4Pw85&7 z9qU1xNGCaq3-LqAUdrifr(7=A_d1?t~%CUiCP@PgLUDCeEVY_KA{P(`PrbE)Iu4&F{Uov|zIhLUtLWES9z0R^bq^FEk zMVf$rj#fn;1g-{-2MQaiA}0U~fs0PBiX4Hb2PAUoxpNOaqM=zel`vJXWO1#v56%{% z?W&gc!{{{AV!6`1Rx-usN~c?JhCxT^Gac|I`g44ai#1L($JcB%#Nzse^;Gc9D-F8e z*+-Kcb=jjBaV9S6NQbo9x74Sg6rUESu4PB5@U(2gka^lv?z}Px#DC*Soa9iMywS|b zWRKtd9I}Zs$s6ZqU04-41(1#w&F9mcV#~sy-BX+Ay-e;S zyWYu^za;6W9pDWe+1BYb$J0xLFD1K>lc{l)vwZ$-6vh|22T0{c6#ikpg;22ODJcHwq930# zJ>Ur8{%}=Q=n16IJY5bMW8sECaJLA zu6mCYcj14Ifd3=)9{#6BL%S z^5q4Sp0K^d;LAWT2S!L?lJZ*V*NoSOzoXc!EL~CbH;AQ&)`>sQzg4D~;e#B7-SVu@ zq!ir;s~fs;B1Th;nc+aqX)hmsgg+UUt~9YOXlAwIG!4ba_?AFce=1!U9XWkEvGr;3 z4p}qDd6$;<;)zlZCewYO%|3Ugm|Jv|J~<1KxmsVk5H`7ap0$=&UU3k$9?yGq+$LPZ z&Dvt-Y?2=H87V9YNVf2GdXs6ot}#?U38N~o1tVc$IOU}aEWFD1dgRm!6kym!txRFY zH&n!3lF7!`C(=PuXp(@?%oFp&6rC3VJUa4YOb?YZLN?IKjef)}T4(>z80Nh}F&)@& zV7+(X=z-kC4?N{S|D<16G+(0KUqBb&Cfh}w!{{^8PBi&6E-A=HQ;Tx9ldd_CKl7@W zTzV^2Mxq!oJ7MWf`-M3fvZR9eD@o7Oo_j746Zub{2Pa8m4qcW)`!sqrS9?lrBc(Sa zL#%~l0(MBEze0C0&dovrj7VqYVxoD6FOFiYQIB7^rn9gQGjb|x zhb$AN@r?;0?_BYot{&Z4g1ONv$^$J^eTf+@&}@{UQA;xkR)+tGhG5idJ&n-1#H4t` z;R>ZM8z!|KyC4$z19R|^PiGo?7Xe= zXB`LX9cGG^X8{R1upeMwy5U&hl9zUA{v!oBJXr2bt&~?L}nc zETM%a6L{fWD5fv81R&Z&yHXiifD}>*I!p5RsLWg&<5G)12j_!u+HRDKYtT5U9XI+r zxJqeCCx{lrY)ehAb6;ms=}hLEB)pKMsMfD8TP^a`_dorcvF^GNd{ zL<_yPSPL)K_`(}hMWRcrQcE9Ph@n=|1(~#Tqy^V-lnAexjMUB~4V+oEMhZS5{s28XrRhDclYyF`K4Yk=mb77Lcvr0ztA#sUC{6Jjvpn*u`CfF$`e`eH& z;H)E~&f&p@uxT3(?WPf8Ckxsht5OBHFB#>2bWl$X{U>;m|@95Z2Ejz;-? z5^sB7&r=;4a@-E1?&gZ019}eH|+2EBJ;0d{weSS;9lTP;8x(Xz;(cffD3{510%pN z&<~sdEC&_=M*_{jfxtU~eSvAfYdupUF9W~pnK)m+#J9(Rhk(0*uK`~GJ_TF@Tn3y6 zYyxsX0$2mA1dat-fy03Y-~iyQz#D)n;BN^3kHE7)HR_vC3Ambuns)~X-(rU*BJC6O zq=DxFrq_uOpDLm<xdWtT_MwN?@Yo?a)JmmM!rg~?s{7DD4YX3--CcGGm9HsPobPOO#3P?} z8_~Qz2((O?G$ag1M-#(^VIHm!e%>s{NNkg|MuOgxPcEq-2*2r-Pg?D6rA-H-ln!Uo zd!`MR-e&iH=5f|)BRThNo8 zfb+T`5O!_ItwSM`I+;Qrreqn-4%%>f8t!=BNr}%DGQ={D`L<4{k({;)sy{uL!WeGV zlhRs_^}Ne$q6j;oA0+o7xkYADcgiXvKmIVCF-hQ1XiaSws;Et$EDe*n&`Lzcc!B2=UBvXqOyy9#cWp0`umdM8lao^H0XEr$aRy5tEJ-^cmiEKQ__X-E5 zsNR5LN4jc@yjrax_@X}*HICrBf9zhg{~_n^)I)^c#XV^s#qL9ko>D((SEZIB1;AQy z{c{#fn}*G$r*gc}EjBXEW7UjWjEo#s4iCz;HFqWBO!u#sRv_WEd-G zEh#1KrLRD9Ql(xylXM@dC8U7+HPN%Z5Rw{ZT zl`@G(j*5KAK_90=FNCt?X)|}MU{0=^c+qUUbQW)MP;d}srO*7PWWE*8nVBZ-ddiIK zf~1t_tI3QhPCeO^@<5`0_=zRxC_n|OO#8yEYjl&yg#vOBmDf_- z5xJ3)9507p=^Y|F;(iU=P#2^v7JB!oH(P}CNbIVus6b1KMXhMl8-94T800Us2ccVw zw_%g~*VNlLnv#-C>jI+>N_lo=OFR=sLmFQ6=8?a7;O{U{SR(RH-B$}-+s)LP%#_5N zn>1copc0MZtqRcwK%ey{4KXv35_n^zPclVi9iBuJWdJRa*ViWlbPtpEQLDnEtntGB zb*}X>Krr<2yaUrwu1PZ^>yKulTHl6JEZlDtA=sm#4n$E16M4V#>^R=2ma!Baq!-OtJV-CT7f8Y+3JGrYEFZ&kChPNXJ(mOoyfN-ox*$)_cJD7ruda zPneL(E06p?mlxa>w^J#LQ(3;A=6_T4uY@=0|B%8K#hNA%1!ISN+mgI? z(Q8le+DBX4G_{ZC`A`?n4tnecx8=)xpZ2*d z=e=ID<6!B7?ALn>M(gE@tf*0~LyKnZU!Ns~&tHqfnIM?bbBbVUXjXG_Qk4(^9iEwM zD{+816c@ICoS~QQ9EP~mv9KOCJsIHrD|^nM!!*Y@=EKs+c`Dz20SllpBnk_F;gRFEuI>AsBLQGHef~T)W}yBOpTlYywox^@;ux; z3;Wygegkk2@ZkKZks4(hoNjNrso8(|{^Xhr=8Bp8Z0o%lWP|Sh^L0tcHaG_E;I5;b zCvInw+jussur~A5+{QTy)v~^ce*5_qBMF7fGj!cwWWR$ph*~YyphODO6QuWaF$%|y z-bU%9lhH-yG=zn}3K=gK+$^jAbOf5x`9vg-PMIDUU@pnNXwmh zBCpG1bcj)T9p>a{bc4)+Bgtm=&5)o%v$^5!^Va@-5;pr zm+unPsulT%gx;_|!T?JbMz4$a4~fXNGJ%sYR9f575tj55f5eZ*VtT+&Qu8kn%jSI< zb|7#5_wev9qS;iI{9_VSNU_zJ&tJ-Io+MawCYci$7WAa`VQW55f(tZu2Ae3F0fPL> zCJJqT&;{&qy@|qU&owIHA!2u&T7QgW`D~g}G;#_&DL*8G;%zTvSbs1p{Ixu@Bl{W; z{IyX`oM_E#sTtKUppk8BEVeu=N+B929c8r=ASyz?aJ0Fopv_2JI?DQ03kMhg*vXs^gZ~C#&a0=|< za=1Y>cJhSYe{1*OL@W4zlv@8=fP@| z>#E>YPi*}et)96RP1!_4{y?&jTUWd!)~ir|?PuwplLTpEIS1p zL{BSVip)O5utE&WZ9_wvFAP`uA=ihiU?Xet>w2QObvhsPYVtzwloNVV>U;E)KNvM; zcr8*RNLIQ^@V3e(=cLd{a?QG(B-gCrNxzCevu}r{m5Rsok#IM?OTP>426kI+$}~lv zjl+l=kkTW~Wo;C<(>z(xB87jnFhcOjsQUKkywjIMp^FM=CysBi#+t#FOYug^O0i5N zsiM@2f1Da2L|zow@Bc3LG^{;!|F7U9yWwU_8M_Y_nK$o7IREYVgJpM#+=9`4M(voL z@Qd$^OgWNg7#-ujBFD`tlO(F7_w#vg-)sOBQBWqJ6iB%Vg|!2$L>7VNcU$z++T7LW z^BhpomasV$x0b3!eTf+W4g0#@N08lB%8_TRc-_m#^Sb{lb!tYRY&dzJ_~#hSP#4tP%SOtm|95Z7)J7DrOtb2bz~4Y4mcX92lfSCeMfcV zC&0IWabSzanLrBoz}u@MC*!#kI2iaN%+CPV0S~>qI&uW?HQ)x|B4DGoi)rMC+PEZo zP;HI*b;N`ty2CNYR^A3xqWRfh7u4lU1M|wLpx&k4>hcP&m#tj7G$a5LE74#r^CRn& zAawkLhL#_R^Nrm!?2z(KyA4V*+a*)==6qmrB8gB6xp>z9B8@Vezv?X;;gW;L$XWtdYs$IRxDBC#H3-9-~HA5!rVwkq>UQ=j0&MEp$5q^d{zQudx~ zSmq<0iBp%TokwLVe5kp2d`NFmYWC-{?9julChDSa7@&QFUe zVqegU$0`d=qulVm8&E>sh)(en;goR!=l`lz-(E)g(78 zzJ|iC_oTGz!zu;L0Bib}oi$(m0u3(V{MB+iwVtw+JCzBcc%Uc>#4M7`+TUL*>GF_U zxpyI4PDN^(E5FxzGjx(d^4%>n!*bxYvSmaU)sU)?UCrZNTG7=WD?6E)Bs8iFA4m(u=}>rVWu=C0XM#ON~^D zzxtNOgq5CIjb~Z^60PL$Hmc+j*fF08pRa?_oR2Con4;2@$*jFb-ri?DmpgPg@8w$kPq!{#go> z9C=5@%T{j4n3Fr}1D?TzbBMu_8j~Mwk%b?Vu`jXE ztyY3dTQ?hpRqq?wOY1D3&&(=H@>!mA^dQvu)*G#^yk%vWZ10o4i8~!z44?UxPx>fhoFm&{O7S zb5CEZKEPs?d>uL!6zc?`C-? zJiqn$Zwg2x0{Nv*D_;Ua3|;P9BnioT5_;xZKapLi#oL7M+1eXNq5=wJFI|SZfV{_ zUGk*dN~+bw#v6F{xuP5!N_jLZ-u2_HH*=-0%<#2?*}6tmbi6w9_s>^HuEF!wFH}c9 z4_poCjc}~X2U8;DhG}ay(XS`nAjL9d_$B)vqrc)uw>vScD1UR&?h@))n8A(NFf4K$ zW7WYGF8|_~#h<*)zHr+<5cfAc;(;cST=zms*se2u&*Z z?v-}g$&}im1J-+{v+`n;$wM)(Hwb0D*Uyf9;!;n1bNOgJ?Nl&BkKU>aHhc~9pI44p z)C#TgEaJe)QC^rkki?bw;f=QQV~iiQ%0#RD1Q4;QRds{H2inY(&L?}GO_Hz_^V!36 zH>fqVhDrdG1Jrb7Dv>ukQS#25X!Pn4Ga9|rihKUB*rbC#8iUpn$Vr;*(=|f?ZLV^X zx2siZ!8fWSPkp;OlKW0|WF>GoaKLwhHBZ;drM;cqOBbomWo;`|Z|jPVMZG<$x3gvO=@9JK@a#{NtHuWC6rnS3!X=ht&Z|Cx5WL(v`tbO?^72Jg_x96F# zJsqs)2kV8y@PaUc%RJ=xgf=Gi6)nELgT67WBvdUg3}RTB;Ukrs@ff}&mo~pJDAS&s zzn!U1W=QtVzR@6%^AKKDUz|RCDph{83dXeH+Hk#8H{OE}zB)&Hk385pugmF5R7$HD zHQPAFN|!Kn6!K}GMK;IxA@l^s*08a8H%5?<5Zk{noJ_ZI@l1n9+FGVxbd=F6@pF z-)_i~P9Wtsk?>xIE|3|-uw!0&>Ja6>Ou9DdqiI7Q%^3PfZO1Mq6I=`Y zBjsN@XPDbma-SP3OZ!jC4ANwPf+wBeMkh-!ub}Aa^-ee`S0L^J{^8AhJ&!M=40}SI z%JQ89GrlPWC^j#O`b+8k?2z6#n`4s7*FO_QTMz~`UMd?k!&(es59e6;qo5YY^Zo05 zDp|DEtk3sETCIz8sFM;!Bbk6X(UJJ!d#`fLh|fImG=#=IlPF^u5Mp8dWo9~N)zBOK z`RE`%(k}^#(9L|pbw|5{)QRCz^9~~cm`i&toC#=)5P+bq}LP34UV`=)$(R9=wNU7e1`uL^C z!5L$4f>EnN5f#l!$@ZGq)S_$-*U<bb`2IT!VwtPZH!>m~Gh-OB2@En>nSt|Q7suukCg6)hP03WN2!RTnQ8!aEo2 z)RzuIYQj_H(5iuw9Ap8F*1Vbm<%hXpQQIA%F6a`2;Sx{f{>C##G8QO~Qnq7TSDFg+T=KBsB&S4Tb6yJ~C9z~}G$!pAWC(<%(@Rrt)Z zp`qUMW2*PWBc7aJdQ$f5J)X>IC#iIQG$-WUl!y6>K}x8Q6c2SsEk=``OfrF~>mV^xAa0)!Qw!Rk zbY(2;&Bo)4k&vat?2(Q7%GXnA5*AmJy5X}J%T2fDZrGJO`rav37#bz`!Nf zyzI2%nOuC3HQ!9+mZ=_P+N#ls+;Zf5S|@z!?dRNNRo~uAB_aNGyGTgepCo>2L$!4| z**~b8Fke#lI`F_afSO|NgTdA!#pFQ*mTDB6FAlGB!7JcN-c+2 zXTqgXwFH9D`zxfn&hhq1{=+3H* zW(x`CPKxhD3$yHq?h~EoXDUcG3pS`?cOe4iUml@Z300|kJ6sCU*TGrjE*d*E%6GZ> zW#wne8zD8#hz={BLDIdTH1!UAQ}5vu`Jn&tATg0!%U#e|bvrHV$7-D-&ro3Y<(P>n zSL!Fod5q6(SYkmJs@i;))|H|)rtG246k4F5V;sVNKl0DF_E3L{4kZYO2KaUvxx;e> zUOY8nji%Jn=op4{ape!o!r{ZL5Pnl92BD~o=lP*E6v7HRTp$G=t+ANBb&A##G*00Q zZ*UH!0fV<7->&vFsC#cjZe3TNaV5{iLATx*@pRj>DX8!nHniRSjos9c3-sUD8B!bCm%W@t6ud)tX>)z zT~;^BcdyB+h&C$ZZnQ#*wp>JYGf^6Ui@;3e#9kZOAlq@;hSt%x&)x1$ywl@vv-#m_ zN~Aj*f7gA@q+Q$k?CZt{4Gr3ZU*jYjLlG5iWKzaur_;~4$sjcmQAWZ7gFy-~ZL_yX zg+5vv<_&#=KJTBs9p2>cQw#(SN>vgW$=`+~VjN7Qn*F!gK3AfBce2^eZ^()(Yg4?T z%+|N;YuoCLcsH8bjON_dXN5d3qw*V(n^bu{K<=z|#9OEJ9q*jk|%HB`O*MJd&% z<>ZzLyGei{?ZMzvj^2tte>5_lOO&iB&b1Qv{2sVvbsfFy5;+qdB`f%xi=S4&a*8yy z>46gNg1u<27xBlhfk#$=pu?3O=2xe<_l*;jdW&>J@uAc1TTJXnnutjfy&JbWe|pc& z1Yn*hQEq$bRC0{&Cam{Fu|mB!oTjXjIy@e$lJTf0$s;Y&S-P^?Q&<_(B$;l}LFE_t z#&asT98Z^%$@m~$@5GMi(imyFQVLWwMpIs`eG?*{ya^qcjwk$Wd2>|2^b5UDGpqB!S32EM!MXYFPk6MKJtfha2wO5rH03ez|0m`= z;e-`Wdh}O&)??-WUzzxX$H@QS+-FrHWzBrT!UsIBfrE0h8l9Q&G-%iEC!YpcfA)NS zhkqaGQ{LG3|GLk*4*k958+Shb#FHC;dbA4hPggIno@{^bv4@}Ey7r!y*Ef9W+7~|a zT+2I8j2-#p@<&@<{9#vLWc9CGOgyE0-64+iiGI=14`B!cJ>s|7EtG1uE&A2z^!3W5oOJRW{K1lXuks4xw;ACFJmlQAP3`?nIG1dO+ zRlTQ=2kN~N?o;_-N9Qlp5v0YO%Evv-h-YrPwLbc+d9{|rLG5V$n8;G;hFwc{F7Dnn z$MxP(+z;pDt@Z#8NPnT(Gum`&L~d5Di`Bz4qWFq#zN&j75pCHq!1RrH*Nfz&tnBl5 zN=YV4BTR`Tbm&x*1q|R;hbQ0P|M+Nq2`()e%*ORwCKoTn((;|!Sfby4Cm;SRS}NVTCErcEL@HSFG)PNO zj97X5qU8E|1|r_bw_N67!cfI>>d_S4Yn)AIvI(Nn`VM!h$JK^AFrl}M<=Z^EZG6W$ zH4(x~z;nR(S%Or2M9t&vE>tS3qL&6^34?K-_!2iNMA9bAhmH9JEtDjRpm}JvHWr-W z4Ioe78s4TuQEGCx-L!89T4TAVzg{fDdig3Ox`$xc?|tb3c;W@5XDPY&a`{4E&aUqU zlMB^mXU7%|H!OKd?@aNDH)*;ajHid=bmK;+D2nxr1qWe#^KOmIvDhDfv~Hlr^kghW zOLw&rAL)G^nm$!ObCwJU;o^w70Enkv>h}2H_Kr|`DRG^#K$=uU=+Q3Y19R*Fb`Uu ziKkdzUW`4Ms~Y35Xir+09#yiFOVh!Dv>F*!M(ZcbdW95$^15G%)UqYOqAj#q?BPHS z*|4voDbSGD1tAKewAveVPa~kpB!G8Ea#e|X?M!Vvad3eV4LX3L0b@q9|<4P@Cgrb z&L#&yx1yr=8TCs0J40(|Sxvg*L73FMd8A0RH8}!eOQJHt(n|4pxak3$s3;!gn_U;Pu8zVyImIWqLEx6Xu3ajyfwjC(@y+dsr zb{G7w(!uu?63KibK3C;*(j+4X`b>^!RL-N%X);3! z96)B<%<@4ZLn4{D@_t2>NUBXa=FKDB5cB5s4iN=ZQD4J0W*iNoTcJS@8$PWZ84k!~ zqo;cNlSIRHYs@hZT!~JPfD$EG;CsDa%`=sMBPl|nJDXT8A=8Z(toT|ME#*(7i@FbG zp>Iq_bzsg5Wk5G5^!D{;e2}pvP<}DNkkSz6`#NL6?R&XK&RfIM&V?OqZL1EM-LPm$ z!|aBhW0oG%(9yeOMMGETvJO}yj*&xVugR@Ldx>Rei;`C*M<30rlk~t0xLLDk$(o)e ztt%F_&s24}d3A+(MsqHWkXat^*4E_?#4NnAaTfj$_V+VnF*qx6$lSwbA(jS-r2)}2 zV#GmdwPFoMV^ga)Bg)G$nr}+HxtTM){q>36|Nr;D^f%*{m5b?l*qZ5lhvwTW1Tz*) zS642buG9&@#;I!i1vM%%Hce%^r>XJLX=+Donp$w|G_^TBO+~tNH0+y%F~5N~Ja+Emyf}`ykw0s#N9-m~X05P1n_^1p`yn z+M%gxJmaX%3#-)HPgg4M2Dn=Qe7;hxeYg_gR;rzsRjI9Wr>Gt9yX~~8Y6sjexD4qi z)TkY;i0{ZMHU5pMYA4Y2@oLq*szNO|6KO3>#o}?QTClN3d7BU~p5x1_)RvW1Dsw`W z>RwibaH`ZcVCUskYCE2hlVRRcrFP(bd;`9p2z$8Qc?QyQ4APN6{NI3^_gAZ}^QS29 zQ^;pmjoN&%Qrlnes+|`hT^FOnURbFj4D`|YP9jb|WTYmmOLRH_9j zNA1`P`F%sR+V&H~|1{$ML6zE!a^A8SX}lFcd3Gb7wS!ZYItgXjfp3eDmz6cD`y_;U z1Iq9#sQ23uE}rAxnyNBio~j~u!~8MW-->sbyYEC9y&v&oS-&$|qt?zuoHMF15Tk5h z7daMoE0F%ZtJTi8z;7O51KT#BOp&h5$Kl&Dn4dz~Y?`XJdzb}F?6>2LZ`h1&W^g=!i?o`=zHPzIZyLAqb4MjLk2mL{b89JJ4y&}Pp= zTcx&NgFJo~?;FvcH{dxP{&u1dybOQ8n5MS;7JcC#Xy1Rpx8KA3cL2|(=clP|g?LUv zAJ`Xt<>-vMro%Djd?0zYf(@qRPHg4?Z|5ZBpo_XPZX58ofdci8WQyUfD~V{g>a z9F!aCYs)ozsiu4IZ9CA1Fusg-cq+aPqU;k$AJDxHZF&IT@V*VtaeN!6C(K*$Z8OR< zf;OY-T-Ci9^ZP9*Z?wAw&nOl7rBZ8Gqg=P)d7-1cezdtE^u_6}+6p(Dm8-mmQC=sa z&7qt#--6q>xN6%)N{yopZhalv@1y98=KybY)s9OXH4eKSZ-V_#5YD#|H{30_$3b6q z)Yb>_g!`R8bkKKTM%d$cE@(#DfUUg<_jsh`P}FN9>^=#}rD%F-VE74wE)%0M6+VUFe{9!zS9pA4|+opjQBrDZ8upL)%2cf^l{Y91IXX?sE2jb-;s}b2_FEa=MZ_UCwKpR!&|dF+r0aH+^<$vn zpuw9@L0aH%=huDDtrCl8sT)DctEPSiu>UeMnAK})`e@TViax1bM=ql{)F zy$_--J%q5ok8-L(nCs9dP!3ywZTF*p!QIvek!O_U_$bQaM`**KH`|{^IF#4l;r#*l zrFMa_ru(O8H@`rdB4`6hM+Re3H|l8H>?vydj45jTHsom^#Qoh$we1+hlS7)(7I$DQ z+&Xir+KPJZJ{j~BG(UoL?))Z=L8#|D@cjzZ=Msplm_@gLC)R~9!Sb*|fi?l8{9ChPlCQ&jLAm2PlhobB+ zL%+Kg^!ift!#wH@?Wi05Y60>ZIR|x$w$t=$)F0|GvIG4A`532iLOa@lIlxww)6Sca zuCLGBeDjSc6Tm~C$^cF1^B(+c z2E1#~#;Gq&N1dU37rcfvLs9`y2esLzw|UJtkMv$X;F#kWiWalw88xt)V>^9W~u*n!4x1GXUS4C2cy zLtN(|F3hbKcnBZn?(<>yLAb&99j`~YGvOBHw>g6MXVJ9bCQ^qs{v4i|w={vKN8oqc zdqLwDpglhgzcpwNn_-7BWWij--3R+Y^sj?K@ApPs9E!A~ov)=lF903H`<6|J2XnJ6 zNK5xY@HY?sj)1>kAx@zCg9snvL*!hy7szKD((xq90q>iCjxv4>_uCBEOsQz6IC;T9(-lX+u4Fu-~>6X@>n)@>h@cH;iwn_ibc{Z#&XE@0=59x0G|Wy0)7m<095o%S9=5R0p1rRK4mccG4DDG2pkP`0jq)az(;{E0Cxi42Yv~>0!&LxS8oRzfO)_Y-~=EIYz8g^J_URk z_zv(W@C@)0;GQ~N?FYOUI2>34^Z+T~OyE-Bezdw?f^-va*tUNDfIpA-=>yk(_a1d}La15{-7z8!~mjE9JJ`dajJPJGoya=e_ z>FN!D2OJ6<1DpV)fU|)sft!JE0N)3m0{#qCr4T331S|x4fEX|WoCkaixC!_w@IByh z;2GdgKt+1GdLwWUa0IXfI0YC3&H=6hZUk-z?gM@S`~{erL7N3;0EYtYz==QxI1BhN za3gRB@FU=tz$?JC)26F80ZqVS-~=EIoC90~j04{Wo&cT${z2}uhzB?n=m1UuhJg*h zxxjV6=Yeg&!@$pg7lB9)eHmy5mH?}P1TX?z1Y8H)415Rp3Gf0?l?UAc8iAvLV}Mma z92f!41Fi$U20Q>f4g3|DRzMv9^}tcUa$pUR1FS+86EF|x0FDP@z$kDI@KNA%z-_>HfX9JnfWHH;--P&qS-^Z?DR2Ui0?q<11Fi+e zfxCep0#5=j0o7+rSNj6>z|lY#um(64*a%z#d>Hr)@Fn1zz$3uZz)OI8CTJpXAaE3L z9B>Md2Hp=`0$dM#0k{L$4*U{$1*qDLb^sg%%mWq!tAQclOyGRrTHq$&OTaeZVc-|Q z?}5Jod%b_UdK*v+904o=jt7Q;jldS*6Tmp|b>O?eBfxKfzX8+Ff`8y3U_P({=m$oC zi-Bu^TYx)(hkz%6KLGy(UUxRi9cTnvfaSm`KngemxCHnZ@I~O8z=Oa~f#-q01Jgf% zc!5?R2IPUWfy;sGf!l!Z0Y3%)2vnYf@&aZ8^MNiP3KW0~fR6$<0(SvF2A%_61@<}@ zbr+(~0keUH!12I3pa5J1 zTnpR`d>yzKcocXF*a`d{c*8{~Q{YHo32+?H2jqdXfJ=do178BZ3p@<$0A2<5x)^Z- z2Lp!#9Y8-&05$`c0@naH1KWV@zz*PLpyCpY3BY@SxxiB3eLw;@2e<;b4)_%C1>i2= zao}m-W#BcS=2Da~&;-l_x`0(c3>XE@1+D@<0gMA*1MUVM27V4a1N;eaw}8$9?*^KI z7T{Q56|e@#0Gok}fvbTVfLnokfyaR70p~Kzae!K27BC+;1~>^w0vmzzfGdIPfG+}f z0`~!r0KWoW0R90~UygYI&;T3>bO61;8ej-G9XJoT3b-D)1^6cL0PqCxE8vg7KY_ij z09^nYfCa!(-~?b8I19KI_&jhA@KfLqK=qZFPXLX;e4qnYORW@KGm;cDy|09pjxLA>QptPl4@9`R9a=! zX)3F7Dz6G^y&7S?;HRq%YNOhu&QNEn&FcN?EOj=Puji<9)p_cJ>U?#9x=>xDE>@SQ zOVt*2nYvtEp{`UPQdg-DtBSO9!^>KBb+NwUGu2-K_H>gjkPpi+U8`Wpk zP3m*%W_64Dy!wI~S6@_LQn#uvtFNfr)K}H*>TBxj>Kp0~b*K8Kx=U?S-%{UJcdPHH zd(?N;z3M*oJ$1i&0L$x#)WhogYPRI(0^;`9v`ki`S{a*b+y`XlgKdKkipVUk0W%Y{sv-*qrt9n)a zP5oW{L;X{|hU#}5*QszSohoOFGu5efra3jvUe4>B>CWq&H#iYzZ)YE8UuQq(jn12# zH#=`}-s-%~dAsut=bg^GoOe5(v%gd89N@gisdL`z9O%q&W;zEs2RrpngVX5Da+;iG zXSQ>QGsij9Im|iSnd=ONjYgJwMg~ z&e`gG!nxl0q;rGwDd*G9XPg_I&pJ0bpL1?@ZgD>Ee8CxazUX|(xz+iy^A+bd=c~@` z&exo;JKu2baPD-z>D=XPbH3$#+qv8Mj&qOmUFTlsKIePR{muiM3=f2T>llx}(E$&<0x4Cb3-{HQ~eV6-g z*K_xGYuy9f_qcWLd)))w8SYH?AopOm-feIj-C1sv+w9JE4{_(Xhq{Nkhr4s#BiwoJ zk?v9M(e8Y=#a-aGx(nSlx7}UjE_OTIC2psCjC-uR)a`PYxy#*d_c(Wj+vE1SE8XMW zRqkr{1ouSuB=>#p$?hrc8h5Q5b^F|YH|ECO0e8?{=O)}!-61#W4!bEg?PlE5+^m~( z^KQXi?~b^m?wEVJyTRS)ZgS6X&vZAt?|08~&vrlHp5vbDp67nhJ>R{+z0keLz1Y3P zz0}>}UglozUg2Kpe#pJb{jmEH_oMFB?ltbm+-u#ByVto}-A}mJyPtG#a6jdK+Wm}s zqx)I+Ciiph&F(Gk=iM*3f+ z+;6*gyWer|alh-{>)z*n&%NJ$zHg7u(fyPA zlKZmziu-5xFYaI6SKYt4e|P`k{?mO8q~EDnf&K zyuRWM6_JX)EB2|_w_?AFH&(o<;>{Irsd#I}+bZ%ybLTY1lEjMAsx>Flosx@~>kD?t zWV&A%VvLaWLelxynObV;tRS)GUKUBSZAu))`-gmk2n%RaJ458;)7;{IQ z6kzzSMO|4a0CL?)e8QH+P>-;%8!OVIVTY>qYWPO23&NPSDh%6bw0;=79^$m=5zR5B zR;1y~SX%+54p}Hb%*17?Uzy7X zugrwEDxFQnL@x-{SQ~TwwewYb*<4%)VA*C9ez4+;Bl4qeOC~bJR48w4q~NBI(Iy=) z-2z+4$MvP5WX_DWreYn*bYC>Nh}A7?b}ve7A~i_S#bYFeVm^rSLQ(+U9?eI6>qVo9 zyxioM_3cDoUnv7wV1*{$HXI9?SHuTM}Nae8Jyxt)y_ts2C0%#|_ zKKdqQV`7OsV-kK%-#~0hzDe{kY7=Wwq<88J=y)uhn)7YK8P)xR5+0cR^tPvcZnkA< z7WIQ&HabH6B+ts^0^NGOLtLAo#>6(d>iE47O(qe1zf_}+)&4?K>JwOt%IV&r#ffCH zJDnUGml9KOe3%YPeJVmOr z;%02%5@AR2yfk{<8GUm%T@^DRH=KzzNRFQ?n5EG#99t%Rw8OvcODLRWt(nhlgD(BR zV)=kJ@-2IQX>vW-IqlHx9!)?@!Y#RsrNh{Q$ONfg2%?~pSpxcJWrnQGs6xg>-Xhc; z#C=UHiFDPQnE6{g+a~(j*{X+G*;&a0o25|_U6c0Pk&X6+8Y@|d-biBBTwcigmC%{$ zPZnZvjzkG3XE@jB?|HOPriZ$Ba=vr%{=82tI#cV@Lva}ye4}=aPLLZL?oIoBi3Ypg zbSucCZ!pn!MG*>*Rc$016|(70=kl6?9@YrE>_Eh1*$^(GS5ln0;!iv~DgDmY)TGON zvPMQSmv_Y!*K(zMl6g%q!6I)ci^Yj}GL|d(>L;z(iSTvXF)WKS#ncUcISWGB1F*KS z246`n6N8}8#4^-kL@RnIEU~e}!l3I{q!>&^ibsrb!>mLO7VFaaG@9!1bjhaQZn(4A zk%)yAhi?6$v}rp-TJ?b7r^Gk=iQ&7s(&(DKLglC_8C9fW>M8UMOLHYtFQ!`Qfq|~T zMj9R$J=tXAn!(yQ;S}51E%=U)E5r*z^cJVH7?X`oF??EqTnWiz`3kZK505LTzEgg2 z(F?I&qnG!NWti%$AUT2Fv~`C@?+}lcT#~(Mxi&-F^>FzIW;URl_q?WX?|*jn_0->fp#2^e}D8 zF6`q;t}$9NxZ08@jqRGW2R1U*Cv&^3O8oD3J&^7kZOzola< zg-PpD>dLmK6=x|Zjh+3Wj9J)&+dJjQEKa!6KZF+ zh4h(F+Yzgvj*QkPzdMm7x@{^*WKTS98;~v`_`VG%I53@XJZTISBO(g?N*u*zJHey} zx+@)v%TS>$SCh)7z}E?ukrbB`Ar1}py;?R)&sWmffC!T|YAlG7WBQ%ukJ+BQtaif| zIc>98R>r;y>X>0OwHaSwe#n;IiobNHGq(5cLT+8FX-LMxcCaE&g2~#@LvzqfejOX( zhbZ@|M1GxL#mI9T$qFaCu-=c;GBB%cX*{4Ny`cFpZDWK1SCIBf?W`S>gY+P;@{9#{ zhJePvZjqL|x5+N7Y1u>x5))0Rd3otib;XjV95hXBZ}Y7>`%T*Q#8vd3n>%#r1bSt*$GVa-g38G~}i^!AY zb*Om^uV7Uow0bBP;fgp5x`pCEZq0HM2KvnHDdc8lYS>E2nnT*9&6#TQEjrr7w8WS9 zU#P=?v>g?Ek|Es>2C|!wzL#3w&OW~ZJ9^r*DYDK zj8@WX7RHlFd=Lt_#@|gdhVUm6`?YL%Efbja&Y5n({@PF5mzjI%FSIx&$E7w_s{Ic# zvho~3TNbCFJLm69`8IwP8VkMa&WP z26?8aztGNvJ+ZT`t?8Yy9vZPdO9Qpam#L}FfHY095{IboY@)9qvzIm2gl|}SN+;n>^fv)g@h@3G?R;WvDP7ft-nTZq4G@0>?~=a z)o_;0D%o!w#=PK{x$lq>$AcbiHq%>IeCMV^tT zE|C)tb~MdbEXUKycyZW^NZ7T+F_%t>EpJ*S`b+G2GE8eP%L-#x*k*Y$R>mD{c@fN? z7RzNs!AB-)MY**55nD{`AI+vDt+EK}is#p*W0o!7LF5~Y3rWmGEKHYeXGLoP84$C- z@4Uv}Y}Qqk3oNbL3|aX3)TcHR)TZ9FE~++dTU2dgTUu>mZ`R`4SXA2DGAM1a2$!ke z9}ha2wg?JPPssFU3>jHDOm8~e-`ZJ4C|4yLLB9`a4>q;61x?rF`dw{hmPc$@B-%QR zv1B`*ZNt&>u2PVCF2BG?GsI9T#3Gam+7UC|sjtvswzhqm36+x;Q$tihvcOK2EIicDY+dD~b*}p9pnhvN7jvfuYEY zmV(zttIv0s4gHY8I(`dV20^w(Gk#g{{Ke0hye}N{$01`?6o6In9p=0sWGG5SNww2@ zh_3IJ*F~lGVHSND4O{4H@y$JQOhq=PG3nQEoMZ!v4H{<3Um90Oc=^F*J?q4)-|WnL z7i(y+@@EDq6Y4Q(tXZrgK1Qqa44J}7>*@-dmlcMCV^I^XQ5_R>`3`fU5i*#Gg>PY3 zsJ|`^4B@DQuGB$0gREH8HiTWTz%Urh@Hzs8Hlaky(NR}dV8kTKN@idYgdCczk=ZIy zeqWUO|JZvI@G6SzeYkQHARtRXkcddaj>yut_wL)>H$Z?O0U`+yR}!+2NJwH5G$=|` z)VP9*3W|z~BPuG6sJI7Z1b0+)7zY)1Mjgd*iwfNDt?KT(ahqkv-{kv0&lJ2leNI(( zSD&srbxu{^?zzs8;!0wx#zdu2)*P}Km2Q=0(we)S*_GLEFQN>6ACN<%uB5Iq$`Pb( zB-;D3$Fp!$GO08=(|MJ#JDp(jkz+ZrDWi^uMGIFuw~C6R>=|1ls;0If%+VF2SPRC! zU>!L_ZuqT0Q8N4WKv4qv+M@_do8b6HcPqE1rq-*I=rm?_%#}tsYGkLC zN1Jh560y)WAF;VMA8kz?iEB_DHf$bk-nCFR7d9?78)G>fQN(!If=HLN`Iz$2P0nsG z5!FmPw>qXzlEW2=g*=Y_fPjkWd+<7{^cDttk% zz%|Z{&s)$i7LoqE0|c|D*3kHgt|i5kKD7o7ru2Y)qQnXJ%#S)ReQ#IP713p@f*RV; z!fa%bf52q z^xa#LusXlEyv((ZY+Wr<>+o`!%e$>Rst8=D+FJK^fQx*@k`5M;-cD!TitFeD0rf8H zOu~h?^VkckYytc9q`hey8%pOiE2}H#FPQK6j&2jpFN-$r;0p31^DyDb zFDCKg8q?nq{IouWmaWyAhgSRUQJ!otW%NiQPWEZTgyDdpR*kBhn^QSVj*OUEoH zCo+7|)#a$?5oX(~CQii)qKsAnd-q-x?^yXLNnLSueU%-1hr7g#>e9G4n@ZTb(8D88 zSQ0y`&ZwU2xCV3%_Q0VpZf14{eW1&2EcRDKB6YKQ#{^NqtV-Jha`I=*4{z5ddI258 z_S9y6_!%8q^;+A_aK26owyL;teiX+h$lOPFYMp5-`#@1w;$}o12Jy&5|4Wb)?wg77 z5cZZ9*RjXPVzZq&uJFSmG1BlMnbe-ZavzGRjXWn9FLNJn3$sy2vF9Qj8(!;7Iz$c- z`w(9=o3Ko{%8o32<}e?9YWo&M9mp2M9o-g2j^y$O9%)u_U9}w>*0N~}=NU`JM83c5 z8U!YesdVhqX|-%(AY3|nMxZt(u&V*L0a+r%Bo5hJ%vTE z%`wx#G-Gnv!hH7Z0A;4+I~!BkyS3e0NJAbv0~GFoRFYp&>_kzFb03vr%z`;|*Kl6k z3LKTiFO|8E%rc5Pp}#wkOl{;bBX$=fv3@OE6L;UW=n80|$YCQ+GvgwUH?i%hW#@+P z6yw=rqprQPo3@)*PyyC`qPW(1jEQd205YoUQzPqUvDtk4^enutg-gI@(W4%-tYytG zGVW8pI(naQvveN{VnR0M&|p6*%(!sV$!9mUq^7iNjPp#WBc(xwV_O`FeVWK)DYXUk z-Tib$)-jMX>Z7!0Z_O&MpI%1aJzcfX?&z!_TVbv9iCOi-l|$y zTj40r5lsqb+5@h`IM4VvMPufa3vEqAF3Yh^^hmLju7%V>jHxTJH`qh;;jMamGcto& zNT)Pe;pnG`3*EKxs6t`3p7CMlyKq8HT}hceQ9!*yR5fOnF~Ze5+s*|!lZ1@AYvpW* ziL}F&H8NvD3rvifPNPhC=qU`xEo`eAW0XByQr0~r!qr-8Hwwe^1gzIncGi^mwOuAX zprwR`5$)6Y1#|&>4V!VUJ5Wd;4?q`p??zP2U+8q2@Z(g4?qi@%MnvEkyFwc2=TM&t zn>97_7SuY8J`#i%9uPSfMn%Yl^rsijjbcHevpRP3T;WyX`!vN$(P6+;!kW>gv~(OktNF^o6bwpdxg!IwGk>{&38dnS(vdyZ^qR)RfzhGJ!2PC+rAoQ=pD6NUw&*e z150~VbX&=fngB!K?$p4I2I+PO{C4oJquVEcG1~9Vr6wPQ-JMgNBV}%huc%MpIr#or#75p3!O$m zpAw>>ty^;b9J~2D{bDwID8yd$!=1`&K*Mctf8azP25PXM4Q?oQf386DSr z?SSlR$jF@$8F{7)SpivQlx)PaUC2hrvhRw>av|IKr!J%@O11;CR>*co$-aTC>0X>S zO1AbnoENfncSqF^vh1~8$mS^7qLwb?^tDlSi%XsF??UZHDqsV!8Q2c&23moXhj3mX9T)_t zKn_p#(K0DfCI9CJfH|@0Imks02_dUfjr=JpcJSD76Hw`a$ps(23QAd0GoCUkK%klI*PGC3i3DUuw4Z#0+s=5fQ`UbU?;GLmVK-XNdraz*+2nM0W1QR0c(Jbz*b-fup4Lv zQXj`P0V4nd$N>t0QlJrN237#;fEHjIumku8Xa&-qfIa{bC;%#eMxYs34y*w-09%3W zz;1wS#C|{~zyaAnDNqY60+s=*fOWt#z;<94@FS4&By3?>KrvKTc|JkMgzu2XVlctx=Wi!!m@WJ0kc{)2qXPX+wkb5c5LPj=O zNJZpyVlR%*pI=i=Bm26Vs`~Mb^k`8}f}&gsp=GkG=8mTyyr9qP(>RWhj`XV%?jsa5 z3`5yY@v>Qj97SdBQw&bI&hfHY^muf>gXWE`Y#3{Q_bQFn1<}eev<`C+h)ti%z7x}z zL{Iq;(x14KJ?>|z+#Es%9FUhij>-o*^6YVA$S`+%Qe?l;j*LAmR&7t-(bui9;_f7|XkdC*vG>eoa+nsdJ=klAYI3 zlbc76If2;IQ1r?sIos3NXJOEn$@uC8^P?w*$Bp!_OkuQJyKYo?Oqi%g(7RDH~T@TTfOIXHuHY(h>47 z<)_#`*rC_*80Dvy71x#3JG0${JRT);^gD_D-UsOk*5=s7(rS`tDDM=aQ@nI0{5d9L zzZ@hl(QPP~J_fagwZn!Qws6n1Mab(^=7yy8WlZ+AD`S1Y{*|-9k0I|Ql+PmD6Ub@h z-gD&>ic4re_-izeMzq7_oyV%^KD&wicsZS9p>5=!1TD(xAK#I@N~*NI#GN7}WFOnM zzgU@se$VF5-A0MzON#lSCP_((%qVtFvge81;ysh>NfYtoKTGMGL}!ZT zxwnlRZ}aTdX0UDAcBj?BmXJ}DkGk&y<>T&~!eqD{Iy>YPRHDc}AetkV{!B}E!^p1TdbpPUq#G_mhGn~Ws+N%oqeGY1DdG->|)iEM_e z)|ryGr!jE6-d=e){;}aaHiJq6ly`plTkR9 z^X<8O(k02RFnxB)y+^&7%>Mac_(uWQw{Mi(SuJ7TTGgqX+IThrL+=;m7gSZzXEmJj zj;FHR8oCrhmCpL`G%CYM7gRZqSVMXimC@-Nr~-C?P2yaf#QJZkU5Jo-C|^K-;>dp5 zOdg{AOy>hzNDoKxbP#+l$$m)%Tem>|%MPDQpN~O$%i(8KvnOWAzNAU@*<;7$=hELo zFSPqpCtq$&_%@)P-5Brc9euz@j~3xa`lc+X%C2PJoyzi|{nak8r@O)}iI4|<`3d!W zdU92LLtRNN-Jb1kSC1ic*mhMJHpvNOcE!Tl8fG5`k=e6Lac$LQjg?fufuBETcFBUe z+4GBGJ!{Bp`@2%eTR~=*)zwwk(Ea{FW>?nCA>?b&`jQ5A^X4Yau5~uatx5Jb-R5JY zyn}65Gp3iXcuozD*2f3i4vinjC{Ox<)>P6@l$6xa8#mNf(m>xW!}-d~tDJFB_LW!F zpwnu;@>;rhRt{OvS5Bw6Nv*G{X0D$jb-ww<&aEPizWHVIart!nJi6`J>I;3ftj{d= zg%3k6_Cd)w@uj}A>uLS2^VL_<262P0K3r(Iul{VRh?{)%^(DpCY`>d*RK>;YxGUIp z1+!}_+4g+qC*10@Zv)-F!)ML_468PYV8avpKZ&h zxXLTFdD;uKq{URC_^tEpX3>j+PAWX?P|b)CtnaWZ;c zm%{HVkG*{OMKLm3j9f*WbwTGsu5o$iLarrIk3fK5N@CX$?nC6N~F);Ecb z8*Fh0{>#J!zk5X+rSeEM;mg=OJEil$Q92t}peptYIJ$t4js9eR#gFQ#ubWRFL3hTG zLAH!N7fWyIkSLy3d^8)E?2lrOW#iGpde;HUc6c0(-OcgQy#3%j{E&(6Y7Z%hY}?AE z?Jpu@&t9^J1!x&!Z?JE1q@b=6~`jtsq_$tWk=ST@zmPE%uJC>q#xt{U%&8GYf zQ9SLd)J353o0y!QaSU0T1m|#OWgY$PC~hOu#Y0K%L(64l)UH096nTi57T6HQ(`$Yz zDQe9XX>$?{P9t68^`yMAvU!o4yEDmsCX+RAcFvDtWvmbHPI8?$=Sd8tf4DNV;jfbH z-zmFx<+~)?wiVRa9fit%NQ!=iiETrFNump|k@|$FKg-@l6?GBJH;A0qXYVMtP^Nb+@+<=xe>G+_|`ZzWi|eA56ESevKgd@(*aw zN<_xar$ua0jL7QkQD+Rv_R%N!BC0vb=l(pOKCML`8x@Wcu1q*jw=Nm^5WdSdpdR+Y*zJk%CHMQk7}44HfAa`w@=>-EX-Wp+K-+9YLExJJIul9tFBF*{KI8UAfquY}bdRkfv@R=_z)-IMD8(IiNj2i$ISCZA_t6 zhkps$3v?~$F`zA=y@~xRcYzKBZ3P_!n%15)4F(+sIs`NebSP*c=rGV)&=WwLL5G8`20amU zBj^awZJ;ATcY}@sB^^l9XpnSJ`WbExlzt8{2b9ip7J&+&ji4gvGEfP0EvO9I0;+)S z098TvfNG$rsia8<%>)gAs-OmF9;gXg0cwHbrZojYSAb@Lt_P*g%vR8`pu0fnqDd<# z{e)gxN76JNbQmaYFj=4zK?^~1Kx;d)&)1P=(33z{gH8tB2ujD;ZJ<*?cXy0$cS)op z8d&;qHWx1+<{?)-ZgB-|8XX;UVAcA#e4Nr}j-O zPxp`y^N_0^@*EF&p@+P}L*D2iZ}yO{@Q|Br+dhUdB{}{ zd5(v?&_iC~A#e1MH+#rec*xg!$Txb(w|dBTc*u8q$Xh++sTqmo=^pZ79&*(~p5q}e z^pID0$QwQ6%^va<9`dyw@{Jzytse3nadPUbrS*dE1OF~j`P~N`CzTF~D>TR=Of`9KPX)~btpKe6tpkO#-LwpJ1?XDP^`OsyZUucCbQkCspsk>-plLne*B^`P z2OR>M1$q)_A!s>hE$9-^X3$ljt3g{pH-c^h-3Iz0=x)$&K*`ahX+LN>Xlfr^Kj<-_ zIiQ0;i$KSMHiFIpT?V=YbS>yjpe>+(0^I?+9&``r3!tfpYqo=Cf_?$2g8mCM4|G3h z#Q|}TV^0#aUuI7{)qa@mlFhA>ZmD-{B$O?ICaVkf#nvEKm245A%?# z9`YOyd7+2A!b9HZA#e7Oukets^^kA$kZ<*n@9>cC_K>%F$WsR(lb;!%a^`;?2miriJWU;Z;BnaeqDT33kMgY^ z<%bQXQ)pw!3{rr9)5uhkPuh_&WIFy$BeURMjRlua#*=I^J4!wqJf%}fSI-hNNFGT+ z?ledXNGjW!2;`GV;7=hvn8ZHs6qL_p-vcec);LI}jM~njPbz}z5+$S8GoH+3=c798f;vw^xhd>kWV35@%O*3O z7oa{iwXdKv<7R-%Wp#+$fuoQ^uglhHF3XvSGO_Y}oQqyNy?R@o=iE#C_^IFuQ43o8 zscipt*pr@X21<8ecXX_C_UXu*2>BH7r(oOOC!6@Awt2Qap4FxR?PC(t;Z&S`607&r zm}~A7ZWYmOG&QQN*!QSol*GOB(WUIWp31IswsR%9j%0d_B$?@BD)c&q9VeSfqtD)s z-JKciezj-Xn#x*8F5~RBM9-H3E|-<-N=^nH&%S9p$+^bp`xI%@(dX$H)7I_l>=Yw& zuQax#d#zNzx$Mr{{Vo;d$FO?3eX8Xc?_qnVM`yG4n94YMM^3>#qW3k0-35BI_70_O zx`1(!cGs2NgFKIG>y{ul+7_jS^S!K9YPf`Z4?Bb<_Wes?_j^37Oe(H5zSY`&jOORE zo}J2iV|1BzsOK1VO*z;uB(_bPf|7--F0_0;tC0_Rbd5p%sS6R4NH|sf9Lul%C6?db z8q25t7RwvI$MUs%WBE1vV)-5WWBJaw3(S z{>Ndl{IKD%{OKpg^2N}$=+3kz)DTQ6hu;}}JN>{=~ z@u#2KmFQ9BSDfCJ^o+1%T^!#M$8V40cgOL2gQd_x@H9LKMU z7sl~b zaePx8zdVj#8^=Er$8U?{Ka1mADsJ9OzmET>;6^Rg$Bx4nWdg6oTFeU1x4@?|Uen94dVTECo6|9|~QP5ejVr zb~(CgrMhzTwF_v4&h`T#=q&`Dg<7#+8?`exB{e}$ErhgNZEr_|wl$hu>LxE;9BJAc zgbFeuZHt1+C}=y2hnw13XVH3z*IB#Owm#{0bV_jf|5i$*7guNTdfdM_vR_;4jHXZv zu}_{!=nnx2JwXosevgk5&ADR+e#u259Gb8w9AWRjBz?DbKXqo7JV13(U3<&MD(Ly5FvWLFMfsnrd zo11_vAQMQ7lwte+hlwP`A_KCt4pCSP1Vf?j$mov2qWc!$OS>FJR}YCR3Ht=ygI5J`QvpK`WWr0e*~?-9^ez;CE!}%_WpJ`iqtl0XSCl@u+)U} zwm?^_p{r$fKV%h11oEHjEV|!O><_}uXFylf=6A6B;unG~PlUFzXKq@&-$wkH8IS1X zsf;5`(KesL9W%Y)rnb=8;t-wxC1mzK_8SB;>nFt5y$G4{E-(Y2+f+vLXc<~IWY=$T z=s(w4ysnNE^fw-D(KqAUQFrvmV^`RIT67FW{WI4`bKBdYbaJQ^-+nd^wEcb;uCM0$ zXRR4F-12SF&S;`~aAQitu%FSV@nkfpjOMwqDBXvqgo-$V)S3|+Pg1z?WHhME&3AQ4 z_iYQExi*Z(-IX^Ha^iMEPFNm65aVeHoQ~`PgiPx}$fWBDDJ>^Nc+J+|LDX?rsfpOQ ztSA&(J}eYk))DlC2&j%$q=!Q5b3>ukDWTAsL7~v~si9D_-_~7Q=q%Vu-(h3p{aXn6 z`hG&r0#51U$dloV`D{%41ojN_qV{$jGj{y}I_nTRz~5jXaWoE1=%+0iZKJbx9@yvj z9+Y~Oq3KXMIaJ!SI586GDN(t$&>2l*mk@Fn;-l&4i^JCva?CbDI;|#T?}c_grIe>~ znorBo@^rt%nmDqw68_gD^tt}%m)9K~3cWlu6l#|R8`cCLEM!y4Q#sA2tka{Uh1_lSlocl`{S z4yueJOsyFae=OQZOXRQ7vNW}|&Zu9JnG%csOKil;X<3>)F8_#=>w8fw{ocma{#dy3 z=(1iqYf5;9f2_`^Ur*alhh2npS#QSy@$mtb(L7qljRy{;i^ECL^V;!k%=P!<+nO5_ zwAC64O<6!@6Cr6pY6~GLfNvM-00iAWiT+6_=nusIpt&HLfpw2?} z`qLKRQ{ekMpfg}Ebhh7FgQD0^b#_U}oK-F_w{-9kH~ zFS?*Fd$=%?PdDlN5^~T07o`(YgMK=3mz{S|WgJFo?TbE#_;DAG)Bh_)jZYZ7~#%4nWz``tCWwrFQ`Njx>7K~2y7c^ zwDZ{hP|KD9y6RS7iOiI@{DC%C}Dk(g0%9mb6fKULy_qNy`Ya^-sDEmATl~bri`&MY z(Uja|$K0KZFm}RraTptm&;VP|j+%V2*aTV0)pnnz>7cqe%tYrW+&KMHIB8qpq%DPU z>xXt^E`9%%gc1L+rw;ZLmwfWDIdz60{ zZ53})AC=BqO#2rhbH5;@{tZGF-X8Ha=r)znJX(g9{i9;^=(UqW>Bogzp6;8{24etA zMGji*ShGtLeB35y?q?U!;_!q%QDTo9sm`v4(#avy9Y8l5Uu4*^=B{95&WDbtyIk4g z5PMXQjvLf3`7%Uxmf9vdD{|39NHORfLf_F2o4??H{J)vvb#}N)YYUyV(&zmVPxj2S*OX|?nUZC%DN))EI36+ippyt0cNyXU zV(0bSWBbAfT>KFxx^_u%k?ZeAttqu;*nCTh-51l?R9mZ#}}i$B5?Jr5K!W(Ff`1RtYqZ9@Bd@$v)5 z)=s2tVs!U$e`eb=p{pWbm%T2)^s~$6**q-;@>wOxf3CA1Lg7dKLwnu?mPXcsSs(1? ztebR;taY+r6XilEe-t^YP5Y)hASO`?UyMuuhQP1**`|!Y%*l6f5Oo|`at6b_6t&O| z>{-ZN4{$(vDyR8-o$_rJqk9G6u01NX&PL+RphQ*Dow(CY95CHzi^4Zj*MFAkj4vIyBPXC^kAYokZ47 z+~j%T|3UgCWUrC5ICh>ml=7cC`EKgkMr$ZBiMFG3XRfE8L(?63f|T&0|J?*1l|Hn` zo@a6AIFf9hJcFcwvUDhWXCU6pCgj5J2vLD_ATEVbHeEAf9k%_;JAmiyIYv6)xQxy% zX4rEZ%LY1gkd|HUyN~RB=)P^Cvmnslf#%?ZINIMS*9ZN$Ult)55@;0GXdFrED$`m{wDtZQ-Y!zu_F)J(|HXgfVJVXjpB`7=sWi|lo~lqN#j zHQ8$?K4<@gia3Il0h`qAa$GywRgbx$P&3-kHA}(6UIo7oh1!8`L0kJY7z+Jsu?>Wy z4EsWDqcb;kXd&#IL21xgW~z-bDfaK_D0O8tpO&NLX*!5H4m(B9)4I>=UHhs1d|tZW zrj)1hEnmjY)26nSPur9j>^&tOd2TwWG7cj}zh5L8)bDrURfZ<2qyM%&V~KV&v?X7v zy*5YZx7%kq&zvUsnq{&Mahnw8#{nQ@- z=qwdFONGu-Gk_qF904uI;;ATfY$KhybNgu%V5@)>zy~DJ`Tv*D#$Jk)q4*GbL7QO~cO^HF@uSDOoMBld*9WO<{lj#r|Ib`y(RrI|| z^!-Zl@lv#%YdVD)FtYa)?3A95gyI}>s&N665vgiQJq>>DbXy3F47 zfQvuEpqVM5(C+KnzMUPaq5WUBvqLpBuXffJI-|a-3;HZ= z5p=T^?P^H}LN2-7#zolP1X*#qT_$>;126u_lKWhS`>Yh3*CrlF4uzkka?w`5-J$E3 zVPE1fK+Dp7XgZWm4wd#?9y>ql<$Jh@p0lO= z7KW4`EoP77%Zr8ba>~f%C46~%Qe2RoJ#I*Ouk7q>zpvdGTH!q8%MDmJA`;sBI`@Hk+O!7YFvq|1{A*+jLWM|I+TaZ0|dU^4T@^Z?| zEH9gmyz=fdW^^wvFYYztEfUj`sKeg<*)@E#7oEV2Xk zU)eF{fGZ(!_oq9c^vXy9dVr2Aqj$hbBL`qRgwN*g;1peE3!M#@5AR^to9(d7;aMV1 zfsQu2j6{y;UTgS_QC0mvPKm9*la}rURs=(rH)VvjG`$H-3w?ThF!brm8KLhtcMJXc zNw-kz$4lvhdVBXbhCU9di$4za4erUfJ!22))~%IfEZt8s-eeDRdnDS<>5_IPiL~<; z&)PQqf$copxJXC)7SkKH%x;O4qQJ_Ic7bK!m(c>qqZv+X=*U_Dy;mKVIk!FB;^LF* zVf+I8@F*d_UrNZYz`j=r+50XbAO3@o=jRf#6nRY=uIYkU&!jEm_J1dN-f)`!n0B@0 zVC`x%+1fEB-#YlGSP)sUS7@S5L~I&1_Oh>abNp8X&793kiJ|B?po!atGZ3mDfT(*aMmHHMH%Yuo+CfmJx)E2lTFS>*-M?gB$CYXR-^7bv_RL5 zo5(cweL*|9`ROd*$MVPFDyng1R0HwlhO=^A*>9+ZI9jruO<%aoSd{5Z(ws8WQKp!b zLO(S)Y8BIO>@n-vF}twxQ&GABd!5U)I**KE|LkPzq$631oNi<+(@C+D*TnKVklV@S zq$g>L(sNQ$lcS&4$z`a2QIwwZlUF-=`>z+V%bOKq=1hQTU zWXB|s^-ds5Par!sfvisg*>MSEeG|xzPax};K$ej}mYG1-KY?sO0@;uRvVjR?gA&LF zCy)(IARCrIc0vN#@C33G6Uas+kc~_r8j^T(m85X_Z00|du;bL?c$I8qrl|lUZYKN2b}r*}j5A57 zGc7rnowXQ8aF649I|Rp=hgL44$Ce_;_8RhFcazXQYEY(@c@ztw0e27D!b;e=sW(Hf zsu-aD*f=)w*RsFGQMDTta}6_rI$TAh?kY;q8u(fNCGhnGl+Q)ExvbXoxV5N*eJvF@ zGD#rIB=-S4w8r5`nb05g?2fFiBalNAV{G+%5nPt@_HKmo+bIk!W3MPzH2V~Ya6jzrPSJhOPnFAJ<)ei_- zos8o8`m*_RsupHq|LS^kz=FDJy}qQPY<_Y5$oZ8ebv5-h%$J)A@lCt{xnz}J{B^8wo zWhD&@>QJ3RRYqoY@qBC-lvIr>m^bR&%K8e(8Wz?OlZS;{LEizE$=s z{nTu=RIO9bSC^|#sPC%#)$Uqi6rf=)3iw_0EBefE8#8+!5FucsuZQ;Mc&>#z%_|7=ZEH%$J zUodx>d(0E9Z0j6rt@XI|s?7y7UD-|K(F|Ed2ce=mMGuklm(BK~atBK|)9dH!R* zmoQWqC6o%63U3JC2q|J0X!tJa8tO`Lw&(jIcdCDhe~b9Nc%pQMR4ZL3t&yk;LG4Tl zSH+#j`S>CH9DXi;KL02`QJ5<%7VZ^m?(rCD90u2)ag$Led1hm6feo|$bu6x<#B z7ajQWY|raqPVq1DKkMJ+?N?fh@0e2ke zPt%{*O9R9hV_aoyMSJXJ8fJ-kvw4)&-{Pzp*0t6{)+XycD=&C<@W$Xh^d7DzWE;pJ zF2J41HE>sO+tKzW_;2$+=ilK^;thTpKaX$VFW{f$zvPcbOH+i?g$sq{!X3f};ZtF^ z@V(GYJYM9)>Eb!!TJcfwZSf1Sw=_gLPr6CEL+T|TuUxOZqa3fEp!w?Jg?^QOlb#mv2WAAy0v`o_4-7T}#w6ob<2j>?d4_qRxx#$P{K-tSdRcue z$vWLyZ@p>#6Z*~wn&?eu1}_NS5nLO5Cir^r@4;__^!?b)xSm!1C;cz@zx6+jTK~XX z!kNNK;e8=TJXhQ*rb=U^>Co+OQks0MtjW3ZYI%oTr>sG9Bk#Gf4^*fY<*$vM-Ly09)3o!iR!h* zj+zE>S=>~vhP#+s#a}PnER4_^v{8C-;GV$!fqY{Ijz-uGpb_N?}c)t zi1w=XH?0@if0@1#w(k@D=)kDJxIkXu&cJ(tV&ht)4y~xw>J}7(SpF zkeO$Zv?ONF+H==)f8mDuHUBdIQhtfhTkIze7LUWd?tt-Qko=SKqwV4Eq_9JX@67&B0bAE0tSI%9_y~TaSwf9&0m-^p?{XL!+d6WN;=fr-}&C*NK zm(pO_knfNmkS(>dc7nD@TcrQ4pAu*Yya-LDz~0?xtTKK#ip=-TkImz)Tx*tfGJ4$? zR9~EZu4lQwafSXH{agJ%`a`hqllf}?3jSLD1^#nb!sCVeg?BN2b{2bysyIfh7uSeS zz(#x}>e6QEO}&T;Hmf2Tn5HF^)6Ogza5mUSe9-71q<%l|fRJ#O&Xx@C){H$^Ksc zfqunr!TMd~zlgt@e;94zU49?mO~?|a2&V}p!sWthVXg3r@TM?btQDKZ8^w*{3*wj3 zUg;>%YD#R3gxrp>*RanC*{}WkL54qJ@T&@5xXiUC|SyMWi~vG3*lw_p!}|UseY$^ zu62g}Ezsxd7wdQEe}T`iQ~yy9>5l{+54;q3Gq5x8abP!EY(L{fLo~)2ImR@j*!bGm zhuRgIr&#A(AHs(82nK@_g4YCJp>3qeZX;>jE8H3WQrP4N{C`t_QZsOeRc*X>k#@Cq zyY{)Z4|ZXkeuh3zzZ7SFP=8(jN9k{LA^37`vb2|H}WwtHQIwmEu$4Kg1rACFP*cpQN0lT&jGbq^l#<4eGJl z5KY$dv@-2tZK<|gdqR5yUe`|;bC1_WeX4$%Ua4QAuh9RD7WS3y3k(hDus)jt#~Xg* zVvJ~g&44+_yvMxX{HNJ$B?XTUt_W@kz7yOF+n+?9L4A_AbWX;2pUstVS8^|MpTd_K z?HB#C;7u*}f9P-K|H5-Mu)@10@9~=)GdSj5Z*zIsCcOAD5KEuo0 z7Z?YQ@n`ub`pf;Ia1(sHc48-Spjd-(_6l(&tom-TRqP;jhOb;MWn&EcNj^&Hsl1|m zql{3;V6?qgeNs);`e=XFp40~DoIcN}#VB^E@wTzo=wuEsMRS~4VV-R^nU}H=t%ubc zquD3caX}?$z!J|5E(u;2d^kw9C9xHQI_@%9k8e4jpZ5p-r(%SC2R_2L{#3p@KZu{f z{KqE#A^4Cl@>}`eq0^_tP2x`R7m-LErGe5gX`B?0$I8X(+3NN1p0^l+S!SMPK4Lx# zA2~m`IM^J#i;ZhZWC@7CO~weY3t|0O|78Cu{ww{D_)p*`U{v{vPZE~G19=?&+eYbY z=`8tvxdZOa5Ou2hsM;QWeXdrlJ*f8%oD{e3QlE>MIy=zg0VG$7_SNeC={=nqH{a>1*}PXg6I0{Q?66W8vjq7uXWm7Z8k1#*fBO z_zG{Ee>HzKPp~Ffr&?!Q8?9%py;f&<9U@xMqTtQc{~pI0kGL%WdpaH-L4k6rQlykARm$_I+q=pM zXvGC;g*sndq+SC{FH;g#m|=HJZk&2d(am2VYU z)z(7mHtTNK=oafEc%Mapf;M&%PFMeV2_2OIMy zBBl@2u6l31uYQsKjQ%}Fo?g(->4A3xNyZ%G&qjN*vpLzEVJ?Bqe!$!e3;4Ntjdip2 z3R=Qa=Z^Lu{j`q1CAG3kSAr=n8S83)}bN6v6{vQ4p{lED;@uKjt@UzfW93^Q| zvviB}fV5uPCcP_tj@~s(=9Fw@k}?BrXs)tOc?8}|jy4yu(LIQcmSQ}i-atcOd0-_h zPZ#4DqtK{;HN3@m()b>Jc(ZvO>@)T0yTA&bWK~&tnul7x;x2 zaGRi``~83S_u#YnyZFuguNY5EVX9CpTp-*7JJ3PY#L41K;xpnl@dxyQW2NEJB&iV5 z_r21uQb$>oZ46pSx1SGe4g4c;A;#^a zOwRns{LK8u{5nV3u+C;afsc*v zeYqL@6a2jxC(jr6NXNp0*UC+>xPOs9lm{vK(D+Tt9m=EVvjfx<)I7CbU5G-5p$5#SDZ;{}0J0&fKN2l^P7A$q+T zo^y-Q&FqQMK4>kmuClHPlGQ%4hTVf6oWz|9&-oMXUl<*R`VIeh|H<%>D&a}r;{TKX zS^pS5hyMi;b}{b8DDiA@iFmvCu=ujLLrlR~G*S`~oqizgR{E&@5s_}u_G?|?v%RHX z99R>$FVNFC7TUPk*bM*nAFv=D%@fRQbCOw!R=mQz4=s4IRbpKLTe!pW1v7)wF?L-U zd_4Fod=R%^jp8P8)458{&;JSD{Fi(>V&{N(65_GTQJ06{$GEE z@*?>X`9}F!`F;6kd7vUGtx8BaRqdt?!-)2w_D`)NdfAEkM17UM0VBl+`VWZq=LK#K ztO|SwU;I|%F5^Ae?q3iS^@n{ppT!-&S@a{QG!{LYJC@t#zfu^FX!jF&x4ce$R!xVO zxZHRU;|sx9{0PQ+yKT*Y9v{QVejLy9m+~v%v-^Zz!f@e3;d-e|c~|{K?EqUVAR0S^ z*{BtW8(T2q{!Jf?`n(+YA~4)M-AuLySV3#Nb*5En-41VOi}kuS2O||7<9#gVUCWjG z=OI#m#XlTsY zR84(M`z!jzFIt-3Pgl?;|Eebk&I_Dx4nl-L*NEsG)iU83;R~Uc*ax21TVh9PjC3tx zz`=-2&X$|yb%;-1mES|n8R>56^;>x3Z10U(kapu`C(;+x<#DyCTxRKS)2SOXt!) zXHoG0#B^C0>l*wcUBfdxEDI!2P^ljV8xW%3er zg?bmP!{h3U>Q=Rfb{uR&jdrbeGe+$9w2!rJdVhU{E(TT^!_nLJBIdN~c^x+wEph`! z?me)&JbxYEUDz#)iUwczD)n{kHRB886?2qzIn`%TGHdU1xaa)m2-}4BMZbEz`hmfl z8xX}VwQfbfeZtyfmD6@uo6P#_VtAMD_;>n)d@i5QpUxNa&+@zYUP2#S)j7gq;VJQT z@jdZO>1=6{^qBNCdh0Uz7Wpmo)KBG1_%VgbVr8lF0etUPjE!k(Uv-!&t5a~-uF+QF zda46gz|P)-_Eo=GgVFId^DV?Q4_KrrnSG+>SZ)MY!OiDZ zanEtDao=!1aY^vIOA$w}^#9}^&8w*CS^QG|UKV?8=l_Pb)5`Z2CJ3F`OuLRdFjK4( zmm;3FEzbM!K{`qOq@mIb=}f5!yMKlY&Z7ucjPwG_l{x%xf&8~V5UK0P&%88{(uZs793 zErEOCcfS+(2{wI%ah6eU>@Yf;yUpLti{ZJ_vGq7ax(nd*lV!dJ*EBZ`361I&G!4 zR$H(A17nM!m%*Cv(o+Hx0*_$CKNGRfD&rBO(41#>#t1JV`Z~wD#=6PcWbH&-NC{$G zU7bv)N=QF$3M}`F+|OKzzutczqK+s1oBZeVcfw~JDM%RUzZNoJQ=S&z7WatVqybWn zR4u(O5&3v|05tcQ{35Kuzhp(JQ_fWu!DqTgxn8+lxf>SeX=RJ@j`ET6wepLStagJB zHB=SUpgLKdrIx@0JYT(By+OT0eL#HzJ>*S9nO~|us3G+zjH3g!5t^h~+C)Upr?3&V zLAyY^41IQmwg&g(N!*dQv=6i|wC}W5ElKaBAC2*1us#Y_ElV%aZ%2IbuKt_eB_Ia^ zfgVObW1unG5REKjym7K|hEZwM8Rr{I5C`03++nPRww{9L@v`v-Vy91yZ;YRe{YD2f z%{&&d6?@*c#z$!vb(NqEj_h;zT#xD*T!s zX5&U5SjY>wHQamfbH`)kx!nIa`jW`!@i$ zPhn(z-@lBl#hoEtEYHY)J^}g|u@frM~Z;c;}R%4&xGdq}F%pPWMGs7Hg4u}76zxf!VLp^wA zkUkMngnIZnm0KX(f{}ADBEot^Lr;qz!6z1^GU+Vb-<@=Z1(q^boq@RcJaw)1GFtC& zjFuDiBK}LHrx`xH2urYBEm(9Hl zUz3REi6=>?O7+qT_%k1~b<3f$gu8pGyaEyMX1Rw_tK0zJW|rEhu2q|~Up1e8tbU4q zlYXbZUVk60d060rz){9bqsDl^_>1wi@w+k19Aowh_6z!hGpYBKl|l+|&L-|octD@| z`|+cAzi^qjPRx)4as@n+QHZ4o z`2zDsQmjE%mUWBusP&eW9vlf@dTsC(#He%}Phq~Oz%_7>V`S*YH}e+>4+?J!zX>Oa z`QqcEDw)zrsNc=dv?Py_C&3q^V^@jtobtOeP&L#G)V*qFZ366}s!xZOi}g$NZSYci z2R;t$3mgv*>NUi6DJ=a2A0@~_P}n5AB77s{iI>9e z-zR>LetWW1j@IzIbceiCPDf$;%dj>`ZngZ7cwgjda7aR8(&lo3}M_VUb?^yj2t(ONk2Hy(qL#&rVUZbku zmUDlBo$TWm{ZsuF{xukvUh{wA|J6U1znOo8-@*Tj4+xjR_xf1qBIbyv9br2Cj^OOu&sI$~dQG+j4O}kBd6JBhi{wKXvpB1<^a5v66-uSzbZO$;uVdb}*`{3Cg zXN|Nft;?(x)_3rcdk3xH#Na8xYcaN`kj*%EJ=e^w;2z*MqvsHRAAbP8R6AaR2YVXg zoF@=Lzs>LFk3ys~Mwl;LD%>ihiPOYFSgy;(<>DIgDOl~#VYdl<+7l54OqEWT>R?xI zlh#QuB98l9I$9nKFX{sMns9_%i}C*z^&MPAik7LJpq;FJrkxLe@R2|VqqA|LaS5)X zw>j2qGJh~z%?sg?Y=?IgvW^W73l^aE4XA%B?GNiy*s}tnU-SPCulppl&@#S}zlaYC zQ-yPd>xBD-4}|Z8eL|LKAl5k_HQEaA={WgB*o7u|c01L1+5=jN{+|AK{W6Rx#qi3m zHQ4-rO9~q|B<@0PhyN7*bm45_4YZvf;W2iEfAc7O-p{1r%CpK?wNhP%cJZpZT|EXq z$uN!6W@_i+{=A@nt+#{smm8Q9I6LrE;Gco+#)(F@QEXfaf8t%E%6!~ZtqSWR>pJUh ztHt`lBEjy#6N5RyIl)_kk5Q{m$hH(VPWR*{a3x$5cN;AGi~jz61K(fLr15MG^Gazo z#*HbksCU8&9i{YE`YKbDYIs*0l&jUZ)X&uYh?!4-<*U^eXpdn;8LuzZU(r9+j}MFr z%!lURM4LU&e87CpB)d}BoFE;Qj+P{8oU{Qx=eyFU(l^p?7%h9LC#wt9Th-?gt-P*& zs{Rw!zY}^wCw+>3DdO;l^&R^6@N0*gQ_U~wTJ9d(jt)X>Gz$Jt4ZPS-_~V7sgiFwt zUK0L}-Z@e{O$Tf1Kyi~qTzDwQ!+j@dBj?H6LDVM>Hbybf+FIcHQ ztiA^?cb_^?dl&5|h~D=Fu15-3f#$$cYRinrF*47>I5`=%eRxm{76$8rFSD7oc5IC5 z#!W?ZcqR89?8cq^cl<=56fNaxsZ6ex&z0B1+wZ9~C|BbizXW@JF|KsHcDMGs)*;X< zFgLI;@Lb?U^z&iH^~Ofy1B^;1n48S~W-r9Bd)Q zzSUe;|Iz+Y@V2hxuAIXIf`lPg5zteRSkhRHAtlVK{XOohoLio&D_ zVG@ck6{0ZNqa^%}^Stlt?!2}N&-3}czTe;P^W3iw^EsaL`gfl1L-cD4FgI_~Fk>t^eI>n&@ib;z>pH&6#-o$1idx54$1y+TFqeePmZ z!PntO)_PykHR3i@AD_$5=Ii)x`BWhj*=h%LvLKa6A4+|Ym)@68R-RVctKHS9>MXTL zy;1!^oud^&(|xEn=p)f5H^UYEZ2SRVKgOI2&GIJne>^nhT~?FT)$ZY3=X^x2mDYyN zZ?+P~z-8|d4hm<8cZm;*&x=2Z{}SuqqK}hLkQMn1c>)yrI=JC4&Ju3~7hs#&UcgnAWu@|aj zuCXf^Sw`344jP?N=ck!7&D)?l-Y`GI6%U%7tiH%gnsoyl>DSgz);0D6_6zo}w&a`v z)w;;(4Gl8X{n_o}C4o1gx#%`@?z01*#Gk=m%-;ZIuox=jO@15y6MT4Qp^sn+BZbR^ zV&Q&a5fsBlsy^F@T}21ks!Y5O(fykEvG|?XTIweCl{D#0>3nI5G+VkAd3rsZ04JY> zxH=z-aW6PH56<>NtpGaVDZ@5zG{@l%zqQYH9&~1TZ$P7jIQ+A)Qr;rZR-RW5D582U zB5|8KN~?sIjMcm8qv0W!A_KNI9QeaqjRz2i&mdd0He<{I=2$ZiD)VW0iqFjbW?O3z zGIcI;bgDhs9`C$_zHjFabkp63+y=Lu_b{|as1Gvv2L2P_Jh4c8MEo3HW;pcxBhu5T z+~2?lpDK@&dn&`AhL)p3B&nCElMxHgt4&a0*J$PNN*(k8`UCoMOSsM<;(6jUX#PrZsrUgj(Y46A@p7WN7YvvHm-vol*h`=o z#yLE4*4ggk?h1E<`!DwdD6Vl{IkfN|x~|=ZdbbJuD|qsK{BP7LR)Tpw;by-RH7N@! zv`HSQ@NlWODvv@L->g0i&%ayktBrytz61HQQR_v${UiGG$O~UU2mT8xDhXQj9Mq*7 zjd{ib#4EY8RP$WK>RTpP+lG3kCS0)tGUi!AmT;T!3UtySQ50*%Z^am?4_HtkJqSN_ zhx~}lBiaQh+ER?^HuFZ*frqVU;e+3?Hd|4sy@ox)9&P7AV@&mKf!}UJ-_g8>-^72% z$BCzj=ZJH}+r_mQ)vv@f#OKTMYw}LnP|i`ZlpNHi=hRo#*VWDHR_K^r(29-F{fE>n z?Go)u?Gf!`jf3+&SHBqUceVa1;_gpfGjfc_5OZscSB=k&ort_5#PXfyD~PxxYqC{f z&9QF8T@ttc88T45eVttjH`&UuoOCA(zM$Nh@6|qQiFLVM1z-H8^SyJN`v5Zg%kG!%aBqy4=iPx?ME5E-g!(p_ zSHb7A__6#1emcJZF1d@40v68^-i4-$7L!o3XNk9p>*3lDp}%XD_o3?l(Bcrox_-8v zqhF=Z$FqK{e@ma%Gy1vDQs3Q%&QoR~9^VmarPGyCsO|Z1ONm;4u;5AUeeH2088LVt zp1sx@Yk%dD_sK|&JixbuTF4M`g%Tl$uA!6pyacJAWMH&+N``#9d_ewPK28~VJzrm?KVaFUx)-~X+^gK{-6z~t?nd_$cL$j8yW1Zg>~y%W>E2ad8S3M+$Ua|rzmaE* zYs*#AoY;v!nIFtsd=@_gzU)U{5nSP1VU}>cun)bMDP9N`-Y;$!dq}5AcS=j8e0iHZ zL>aEkgL324Uh3KE1!@l5WWJiC_cW8u8_XZfXe${R=|bxk>l-V^POy908kFNT_9BdI zlbz*U;#}*@bsl#9<@ANpnCaaJwr=qD(%RjYuGOE+zl^-lLFgi!E<7n*CgnlH-X(RC zPn1(-OU{rVl()*C$%o_)N|JJ_BEl1mS7yW6mMcq?RfzU4l^>KtN*A?{YO3Sand)5i zc6EVTtv;iU)23<A|9Wv(>$nWLe{mLj@i z!M?lf#n2oBoRQ8Dcagi+-RXAprg+z&Uzd_h!?&et3(=@CIs9C>&j;a5-r_&tzvO3u z`KyFDF<-m}wPdAOhD^3pdQUn}o-LQiYvd^-8sqmY@xSR~w^U4c+)6Vtku6RWAiQ zWcceJ;rU~z1IUH`s<0ojpR-?g-gUln65Mm#$J~|hy5G46-6W6qxXiXRw=d^E#u#=J zZWrbYmiV(0rw&G4l(qBq@laUP^jZ2my-HsRJ^m%M_&zAVE=GdUm+pvipjXc^a-sQe zGAc1DTdnqp{RMWleV%)(Tj4&52yX)h7Dq{w zph9n#7D+3mm(dG5rJtoX^2zcA@)Y?l`i8gY@&Ece)#< zF$H=3Zs@JW#>d7E<9j2@Y-h%sJyClHnX)<3yckh(rAcPimYdI;uOjDv04KH^QF8#! zX&^?D%*>t+7ED52%txlY!@38mk?dh1J4RPR(|%xWvl^`LtbG<|x3#<2U)o=T9|!F} zG5!u*VQ3*8d;HupjI5mdit5tBRIZ{0?> zr`O**#j{ZdM|$Ui`)_%lLvysHuT=G;TptPF{2~7X-&YWYX&9eM;W=Tw@PY6zp_P~@ z@?xeqR=f-z`g!p!agR7a8Vbkrq_k1`4Kb7k-Iytlk;luE<;&#)xStZaOkN;AF28_^ z^DeT(E_uJ)Mu}4r6^*Wx=PEOl66Gwp2r>OC|CX za4}otee##eH_9S)iMmRC8QSd5{#W}j5Mw=N{oAq`NmJiDX308;3e~*9kZNg z={!@4tK*Jyp;N9!ZdvNS<$eYpwf0W*WIRC*vi$AdBOce-mhOcez)#`}pjkfQzd(N5 z$6pA|aTA{G3E@TIBRpT6c(S-b{8fyWB^H1|0tJ12o-n4#3WDl~p+Y6kvi0Zy> zHu|NOu6dp0S>DCy>6^X#ycOPhGB#X0daoT&-Bo@#pU>aVFXNwv}jP#x8@>ezhr-9pW@`esc&_@a=N*_T)`dg zE^xbg1>PL5*jwpwaqXyI9mQwz6Z!j~(_J{%DZ+B0PS_x961L-BPY_Q*gq|nn(zj)P z5s#B}X^b>Znj&wIx69eeBBh&}st(b*>IwP>`c^&FxCD9o4@8q?7Q!j51UEZby^)vC zvX+qEazH`uq^cSBVWuXF-pagnnVJjTWOc66@bIbn z?o|(}{q;NaS;j-CPE*Z%bA|buxyjU!dGg8bV5IU$?x29+lwR~-tb{8`3&-x$weB*Ir1K1j8s^)a$gGW(g zH=1W!cUccwA3;^_v*PT*P-W-X1#lhr*z=KN>+BD}4zjM<$2rZp!nqT5^Lgier^z`9 zF_#B*{D}LMTZbCC&ppn&#Jk$N2drN0eMsjB+HrgFryHNjXYgbA>)|Js@N4<6`2BpW z&`;2XbD-(35o%E-e-}E6eMDP4mqufaxJv9Gb&?XKo-`&egGye8TG=GElH=q7vJS;H zL%vgSp29)C2vaA#+ zH=u5->LuzU@Q&TJIok86z`9Xt6qq+7;{GtZSyQbip%0g#_xIRWgHyLVzc{_!Gu`{$ zYWFL|vq*O=mO$TsL;AV69o=WyjyL&h`R9aq@gi|LvgH?IBl2Z`=?o~1h0=QI9qBV^ zkJMRCmNoerRLlG1r{$NR_~R54clExqRryt!4Da;1x%S&@H~ z6X8hKD$CRl)o;{c+U?qE?K5qXK3l(AU!xZpW#H^1k--&!rRPMEQF3dc4gPuhDp>t*(I zdypeK1yH+0SG1$+1~-WF#ka-H;y%<;R~jMxDX#%jzEK*LQ^T(F3XE@0bGG>ua>Fh& z1&TYzy48Bm>R|V=Gwd-q>z#BS>I$a8m1k6muEVk zDhR?|!g=C&@ptKXxwo7md+;b%Vw7HyQ1Y5+u6M{%avdj2C-|gG5vGpz3SH-^5nZ_42K9wY*!7QQ{Q= z+WZz}weqKu05zTkAO9FC%&$=6qBcQ$TZ=_)tI=bOG-H{u)7XcqmTZnSmzv*z`3{&= zWk)$rIxC$b_X&3$dUUV596Tp83^9}|(fn!1FiYruh1;^ts$5cUF2U zigKQMoqDZSif5UkuZHvLXN)nX8FP`-qRofRLuOZNgmoEw`2Fypzgjw70l3t@!Y)MK zpKF)f_aXCdwHv{e0ZuLIj^|zn{q~;wsVhNYJWAdhjfXP1#%0EB#tP$UGutY*ZnoOls+|rGcf0d|GthOBQ}W|q$0r=k1aLGdK566VQxeV7W zcbmR(c{u$=(=bM@9~%NH}VfcU-u9cVWO~A_)Pd7 zRcavo=}Y4E%3{>b*Ob$>bZrf?)L82x`x|?vlj`2#mV@1E-EZ6zJqM~d&nxuiLE(J? z9TG$5PYU@*_&538{B1&o@FdQ=M`(h|iWgJG;iyJeieHI8h!dqNFy8B=uJS;6FzR=O z@(@_)sw33#s5js0zv%6Z6OGA60X)TG=%57f;#@GJEqwjkR+QZVZeB$eA8B8MD818O zW4~{IZvO~pAMKpv^hI5sL5DU-KS=vgAN$IKWEt5aUA|Vn0WSPCxgC6We`Pp)_if63%2IIq z9pzm0eD!YifXabqk7&!Z3*nxN;9#FI+L}FZ=X1>kW;M8Wyfxe!XO&p5LA!rzt+&6l zbDc`(b9#qM+|_Pp?-cJk?{2Re{rRc)Gu?9;L$yRS-;Y0o&*2OC`B0Es_`Uq`LZZ+g z)hJWAP{;${ZW9&>&j@cqQ|^RUHM|^MtR&by7EFurh+~*D1khEmz)v zO85z^{9YZey`lZ8wSs^D6rO52a`s)QZ>x~Cx0zpm-Of~AiL-*7k*Bqpe zq*`R7-k=}SJ!1-Le}%Ee*lc#T&c+#TvdW;-|Fj1<^O3pUa|XGxI|}jp7~Jk_?it<{ z=;zhYO*`p+ff!ovNAr{Uc&O1!gr&mULW+2nxKsQ|>@3+*rgReW`dxCJ{GPl=zDrpK z-{zrCj#uAO-&ar2Ue|VLe5VhN--tsB3DQBaSJ|}-7w^l4=qH>e6N%>8wQb*_$^;`4@=n61r zOhR36XZAIRnHSU5zbcH?yXIHsBi0D}2XN>-r^b1~Y3-imUhX~wo%xQt1xhp48|O{& zo`=Hy(c|hv_Z832fr?))^cE%Ybn!7U9{IgYdO*rV)-F`8Q{GfIE1!ecS?X2Ll6%x9 zwX^oVc0fB;OPww$vH)PE$#NJN&1{&8GL;Y|ccm<0e26jKrujd>2Uc$w~0%5;!6BO{n zVw2cY8iHDNyHp`9kZk#4c@|h*iMxGHK2b@5W62a>^XxPGOnw z5o*G5qAHe)Z;17XxGbqqzD2%U9;g_~e&tNH0xEZ%c8YPD(aM}{-wL&`lVN8G#u8(k zc>~nV3+89$uW%;Ip#8tIL^!9`?t|`P_jyEfsyEcT01D0& zp@Q9_CFx`IvHGR@4D`Ez412a&28P91Qe=eU3owbgCoBxLYg>M5jnj_2-<|1d+ z3SSA0LYinw9vstbD8W0WO6hrNB>LPV2@OJP8!k5s#4~Z{}TcPBe;4C{yr%A)5 z9H{G?<%hwc@8y#f5iydh+@mZ~Rw-XXQ}qCIj@QqCA9}<%&75Q|M8^5f9D!cRx9+rF zM-BSjinASi86t>tlAUXu>zxhInho%|yr)24w5PeBtf}?plleucggf}I!b#A)dxS$` zlysZa8fxNNd9A!b9jE1xmG2t30Q?rF@|5QodJW)Jf{)$RdkSE4Hd%&`d~NKo2cd)3uS>Ioicq zj(#mXJZ8injS8KMqXFIKOh@1xzU?pC|Q;XI%%)<)|W z=vV63>Sg*p`a@8-oAp0*)wlrl%P~ipznT3pHZLOw$J#xRgJ;{PB4Q_^4lD|NH$!oI z`dt>sLr=~?Ew~e&^djLN;VnerF!4Oysex=QbC^f3Awsm4U( zS-6m1rjGHA@&>^Fx2NC1GlOp{b%fh@t?Bl5d#7FL9)KTjPv3!x;Y<0a`RDn~{LlPB z{sdv3SSNSVdTDF*D~x=2s5OS{j==f)c`3NZ3i##r^!*k?n1qa0B0M2HEv!aHive%9 znP*$)JCmJjoigV>C)wrd+S7IEwn8@{S?B;ZzoGu3{jNQ3EH_@lopv`p^GB|eR>6cVLZq&=u89pq$rygCD;+^BZYPC*_%6OO;Ye8SvsuCl(i z24gJmvA=+NkAo|}$tiX2gf@z6K@hV%YIa#>|S9()PQO`w`J)$mGUsZc)W!hKT2z@y! zWE*JV$KdB5v=$+%zOrI$vik75N50>cJZpP?17c?y4dZO%3*#x% zw$FfDc+qaMySu~OTz8in?InA|kY`Jv1J`@I;A1<`d68(I>`>3-KjfDRtAskCUg#?J z5=V#`;uv_^66AvA;x=)WR4!kj+z2JSS@~4iqr|IeYCnCR9&K1gwsDd<*vvo;ddA!Z zO)DY0O|j?L)%NrDXHb0wPARQ79jFd&&rji3q0S6~V!vB@PvS6kP4F4}l+*BB#p?T7 z9NAlpJaDb`rSq7()x8)#vIEs$6?}W)Y+(a*&0O(!F%}u{5veUkq(9WbOY)cUamu4g zjq-%LUj1184zYN$HU_-Eitf4jRXbT9hDx7wtc6@~&hB^x>CIqw@^%(d(}2oe8ep34|Ox8*JJ0`*1o$aZKu^2X{8a$IHy>WeRj51WXZb)Ed8e4#Q=c|={R zzNoIl$bN+i(n{L{?bu5np!2$`r|a4JZ2dYY$%T3~qHC@Gy57m?X$&%+x8Afqw$|8Z zICp?q3!JB&HO`yxRC&_*J9k?yH{4-$rTXfgl8E|vY zL-p(u;-LY1NGD4Qs?OEY^@x$j5hb5VyQM?OG~M7ztC8`)mw%Hhpt0L)12yt~_tm(| z`Px%(X8Sb*JvBuy)JygG`n!lw)yOh#gFmf>=H74ghC@Bo904y-XufEEU^bc$*-PwI zcAdQip1;u+oiyh`IKo=KRfYK|+~Zc$veKcsuYqrP z%z6rA@dtX|afUh5oC4=esLb=c8D61R?tSEaM^-B^_}7r>dkU%Gb`53DC&C{>J26gl#q$u4SBTe(_lVij1nC;dlh2WJq1N13ZEQP$!)wkn?~KP#=(6X@GO6QNjUtM?)YY*u&Bnb|H{Urp48YNNr$nc7@! z9#qT1CZclA zwdPritrgZfuzrWN&uV3NvHRMY_IUedyUKnF5%8k@hW#Fx)C6ap;7Ewbvz-f}Zs$68 zI*-D~zKqXOq zVi&QmC}Jc>ixb6}$Z+$-#o`Kaow!-tA?_1fNnNDAk|+(8Mk6QBl;%qFP=8lI@ovVL z?vq-{U7&hJd8j;^x}v%AJbAIa0!m=ByhGkcXPx@O1q@Y2!zaze_|8)nD=XlsH!C|( z-CC(#)V`{y4pm2El*t~ldFo;)#Q$%Nv}g~tN81yj=;qqL(|} z2ysG!kR+r)d+9=&kS=5j+39&RR0OcyheL2|??V!l`?7K^2Dwv}R)xJ;}SSBrJxM)>@#VuQF_Y!nZG z(=k$1*UP%0*GA;4jh?;Rv zW8^q+KS@rJd0Cg!D7>O8X-c}1sbnKtOi}WcLin3frCh00s+48$TdS2iWusD$4AP+NhSNQu zaB2*Ed4ie*2gIv7G+Mfvsb;G=>J;RaLa3`!wH&^zN?oSbs;kvHbt81-R#c(g(C%bL zH%5!o60{^O1yxmtgH4CN%!XH+qUCFaTCrBDm1~t+m9|W))mCeD+D5Hj+p0CtxuF9Z zr^o1VdV-#$r$DpldKy$qCaQ4`>Ty0QaxrRhxn8MP>B~@ER_k^8M)>iqs4~0tM*V=! z88JqjkzgdzcZYN%%}6&gp)YfcDeybwTL?>ya--6yqHlArHtLLxM!m7sXh2nJG!7V? z8Dqwo31*U+V)CYLrkUwxCiF^ zoE2lmSqWB>m16OhZl$5ZW?I=+4&8HCXca>pmRprpm9@+w-!fQdZM5pGtyTlHU88lt z;_MhZ&Q7qC>=c`~bvw;YM{dlvbL=U0zFi27RBD&QNmar1*TR9+*&FS8d#l}G?}qX? zfZ7@3#5oC0l9S@_jt(V~?qoXIPL4Ch$#)8!VtA)=r_!l%mO-DacIv1`+3GYnyP;1H z(EYn{Zi1WSrno$uYnq$xX1dvKjyuK8N3Jb)OQ8rWp=6f1wNSHl?nbvBHM7Cp?KZjx zT+WN};=BYe34W6IbT7?I_cFa~F9(V@A6lXqN~heb^s2mNUahyg_qKWssI!ek zV>CeHw+`_?j!yvpQ+S@&kpt2x|8t=I^Z7!)7{2zudEo!wd0^PT$^E~}`$nUQGCmrd zj|J=F!FU;*x54^hl=oR+{#bB77u+uZ`-{N;5}E-jkOLN))yM)h$O9{p39_uQR<4z2 z6<9^qR(CrXvCG{HPH+NRWGtAH3$EmW zEd^c?KL|Q)ygVMm7 z0`R5?%qanP%D|oq@Mj?yR1FT*fJH08qqShtdT?nI*t7+F+73qT0;l$ZRZZa4AuuZ% z+=>Oe;=!*(Ff17yO9jhh@XQ9&hJkAtU|SaWHWrM_1?Td>x&rX7NRUNa942OoW5oio zNGzc{(ASFV#ZBTCal5!n+$+XQiBhtZ3cid5TMEFHGBBkYJXs5tYyn61f+5l1M-e`706kn-KN85c7wW z7&RX8o{DH6M&rCfU8q*8HR?)r?f-ae|F_2dFRpQ1M=mD%zcuc^HSWK8;D2=Z{*n)hp9T{O4a>8C@g(l>ML&yx#$PKZ`4)Mqj zJZiiy^QsJv+FHz|`GplNzTbf}6v@ z%?z+J56mn8H!Hx)g<$4duyQ?kxmDW*R_+BaW5LOIurfuL!O2X0EcloUMwWn$W#D5C zxVRE*+yW+U2NxUlLttVwxR?wcrh<~DX2!17lVN>ip%Bmvpsszj`vsZ#sYr(2|dpkI_3#>X|M}t$bU{xv@ zC4*Dsz1e)H2rQ}wi)z55P2kWLu&4;KVMlA{vZ{1t(I$2N{gW0vpDH4@KZY z3D{5#Ce(lnO^E(Oi2pb!)+A`w6h!|pM1Kb2KM%2Afaou!E6r;W=YEX)aZRGyM%5dO zikFL;S16aD;+3K1)u7(3q~Gzp1@&$_Dqf>}2=$IA*%T!e)h+{-E(^7;0Clbim2M%b zTs7+4YGpmD+$Pkyy{K_bsB-bBaETG#OY!zV4O4PNrsBGI&)pmg|(Wq&$ zsA{RGXfk+{g?cs?6)j&YLOml5GKNno!3Mp^_z{iY0?H#It39HRXB* zDi`6&TGXw2%9LHGTL*N)lvva)!W0=*D;-?P2U993OKMQ52urr0P7#(ILY0c6JV{2C zB0R}Jjmn`+DGj@@DzK!^Tu=90?>6_MHpQYY#ara<1Hu#=m5DGV7j=m+rHt}qB`Ol( z$#&Eu!jouJBf^tZ)S?X3p)C3>z6D{%EJPKmMjcv@8ng+F*^3I)1ir+h{v@IT*{D9l zz?L{S9<@XU8*DHk3)N&S>ParGD1;M5s46A2sw_lZsYYd~aaW?YggDX!Zp4EZS@3=p zs2eq4!6xvafqXkDV!tE#T4*j7-cCl`7r?<)!MUwOMc9Hk=itiX5#=&{<2ws}s~FK; zgV^38>=l}XSTPicEc1fl>j#MZR%yuM!8R zl?dI%A2Fko7%hPQs-WI$3vxJzn2d+cN<~bj(Qot4K^8AY7O&A(B7<*1=5EsB={H?x z=vm0v1yE0Ah`}o4Yw`_rTlBqplOB(#lcAF`5OD=GJD1Wukd-t?*HD$TmS$?AleR-C z?SfX?8;L|RQ$X^zj3~@93lM)R%`M2!d(9@qTs)MJY-J!blkb9FiRfyu_973H??6wY z--Vcgs474-mDv@@zIBMCEy%o0cB~VRY@2~xo8#m`vs5?>scNZlR#M%vo@U)9WZQUT zTNz3v3sF^oSgJr2twii>fhuW&B8i6@A-|oHg^XGN1wx`|C6ot=Aug>Wx3D!?H#P~OBwIH@+Z>{9!q3}DRx)yTnl%iLA_rc=S2*k8 zAc(#pylSKhCkEW&Z5z2dH>_~V;2A358kR-$jjwK+Ynv>1g|T2<5u8E^yuy(+PFzIc zG}kv3;Vk}F`lh+MsS4|x)vUtF>`1;YxP`u%a#U^8@R#Z)pRzTmaLDeQkjgol#>o$> z9AD#Xg39-Gj<0fjjpOV3DsZ@ls{5d_59#{GW_msmjz1ZmKQ*lEeYWR->tz0}mR1wO zb)V;ig}4&(1R=&` zM7+TiD-Y}`pk6$re9BRo7Q&H-+(Las0qvrmJmeXO5{iX0kEh-|q={tsbK4#Uhn_)| zQ4Zx>KGjDRP)F5v4QknT@T|!`1g4RSmgppdXXLH+v8ZYVVV0HA`c_LT+ge)NHiB=2 zZQJQ@8#YmA9_tb%l|Z>CgLA%$DuJsggMO-kuh@vH7n*556rN@GXV%lg^XUa};babd zVR-hu;qY8}PDieS{5~$6cOojFU;XmJ^W^^AxIZ86&w=~%-u_&-Kfhf9k4?B%1BXqR zwgvv0@azyOBw<=+gkQO|O6F7LRfJku8_`_5z_h(^)Ul|M@$l0!+=LA`Jr+(n7hbvq zUZM<~BXi)55tr;Ui7+Tj&ZaYF3&Z}QKH?vICi#_;%$AXAnG>m%zLO{kI|-jtYn3`$ zH|xPJ!YxueL+m1zGvqGPB9)V{tOOO4{C?&xS|5|4)xe^NeS`WRU~A_g=AMU=aOM%Qe|IAXI%Uox*AI4K*T>LMI2-( zU#5jKX2?yBMa~S(yp$svYwTL8P&OiOZlxOKkj*(nqa+}2rqS;%BoRr}32_5Nn}l*@ zJ&j9}Cu1TxlBcnmO(T=&6Oto|KJmR}XgzYb>#s%n>yM!|M-rJtorG2xYa?rn;cQvl zk^FQAa;5JYnrF+>NWQH7#~HJp=1Mj;4@V}6%VZjf8OWf1)+GL7AshzDoLiAKIjLpF zER1B!n((ZnKht=$yjdU@%0+aST~)wqkgQ3(EYTl{N)lBcBy;+ClVr*DbiU<4IKIg& zOFoTp65;jgc6f!9@QjM@4|3oRN}(!hBQucA=O2lhu;FKqHvhOWG6Q+!`N!;|&OpXd zO;2W2j-)9HR zdOe*%-$G~559iav*>qT>$`^+-W+l}0%JBTkcBtuSDCt!AU=p!eQZ}veMN%=1+G=ST zjas6jcSmN#ebszeFB4}>qLygpN*cFE)6KqW&J5^g;*9^PaxM>R=cDOno>9&r2V6^a zGl_A3&XB0*zw*6)w3FOVw1Te?e4p#by6?M$k)Lk#eBHi`TyI=i?Qaqq{wKO0XpHK`4udXN*D zUnGu|XcSTr{CYs<7fDU<=NO4+CG(8FZ}qD~1)M9X5Wb@JwY1Nc!#X;oVEkE0e?HRp zv3{-awM>(Hfa)24--_>N{e3FFrXjmi7Seg9)nHg%#MMT$c2!3%r46YczOp$y>y$PkBMS{LE$mcSfrV_+8curE%EFqz%E^*=vPbs(Y${aLESNJiiz>kJ|Pof&c9 zxr_%tT6OeSBiIVLJ2J!NYfImeC;p|%%!$l}6$IA%$|G5ZtYrB5lgyC$s~UdhA+u%v z3Wu*s$;_FbiIVAxyPuDI7v<-rTqsxHPZcq)e_0FHUmwX;zT09eJUa(K=HF83$_iWc zbC|mCudS3uwC~{+mRe?wWuv>vt&ik5f6mU&b6%nWB&-Iba=(|2Y zL+%Rh;H&LOekMFT2S|3mAKt^~JHR9F;af&?CE2kT@`Isl8S;do9eN>O7}}Xfydl{W zP=Sm|b_5VTL-qsgf|en>0Yd9UDbxq1)9>EQrTYNLDiN94uYr=Oqu)}qo$dfQL}&FA z=$<{Y`kz6wDA~DJM0Wr!qAQ4CACt-!{+o;h*U*tWM7o_>3-P~4 zv;w+n3%!HAvJ4G148ArCDk@j;6;g0lLP#y8MRb0a_J2bj^k?{*=M=JMv?F~V_dm(x zzB{dH#&0eumVSrbzn6nZj!FGDvW%~Wj&w)=Ud9QjreVj-JRBcOzXP1CnfnSjL-RBH z+K2;c`8+M}uw_QWi8EvA_n7%}bRqR#p;RjVj+W5+JW&=c$IhSgjHTaCd^o?b>wv*| z!o#b#p%pgY{rdBVzN7G0+{j)8;w{+qod0)f<>4CiR~h^7LHUPCh~|{(F0$ zgX>!VX+IpR_W%6|E&f|o@!zj_=&Ryb`c8Uw#AOEOl|!?9A)iRrOOLFz4l9hmVt-4< zlj0D|MYrNO-y4$|9e-Di?~=*vj=#gkcg&lPFjxNXa-ijtA7<;qqs*>vqVwxpBQxy& z?wvy|=Gv3s&5x|;n`h~NN7emRpa0*JagV0;h~JE*I^oDl9{)paEd36SBd^G?^W2r< zUsYPJE|x1mp7=i*4M*1@{%)E)>P-tHJ0<7H~OH;q!3g$IqBfpz;VZ7)=Vo=OLGA9rYakbPrr-aPEYH3E}^4McZ&KK7%LD zn&tmDy?Rtq%QoR>PvHD#$Aix*n0@J`!H1_-DC+3X?%#8$4Y^i(F7#han}2Z6Nt}Pr zM`#niXO;8sx!{V^XH1_pBX4rxrq2lfrPreWbs_$#4?o3`&P+ZtIp*pVxrw7c?;ai< z@>zg?(m3|ak8$*82beZ5adg2ybS;XI-@QZ`V31GnPh9}nP5yNpi~NFr;sQt;-1)G; z)jI)63bg43BsEnBE#+cshk5_e0SOS}|9r$Rr>Q!e8giP#bbTKS#CTMT=)IJrNvj6=>7q*^j}U zR{pcsCAMf2e)bt$R6+{$}=aP;cEpyN&O>REQp`*yv$?sbQ9wPFje8OLk zavJy7)q#BbUic|4o7CbNIPMM-z4Ec2;(oL#SJ~*T#-Ak3N5*FlpE-H*h|}|Rw$0Nd z!UM=F_){N1-Xnb&Kt3gBHdy3a5>WwUKk3x~(iVf689?HJT2avHq8Ux5wAUP(B%qHgvAaj8vSHkfCwMN#q= zewBUfczzCT>g*O{Vf)YZ;NN(z;QvnB{DbFumOEUDE|@x9%563n8*qnd?y;ZZ0}|nW z8;a}zQX4>iBE2z;McU!kYKOB(4)bZX{ZM2q zkcL^u?$sG&?@0mM8%3lyX0yocK;o`qkq1bdLKbTm!@mUagcG_k&X)}jC>P<3U zMJ%!vNL>Vp=&@P;Sn#mx8pnQGj>T5)@cc%&O^dNOdOSBI`D0PvqR;%XAkH>07Sk`C zdKohqdr6O7cl4h3pDWacT#FprjDvnf>;Bg)ES22vkE#ur?ZKl!W)`T5BaWa^|D z(}C0{vq#M${oJ2Lt|#XS_s`L0geuV{v$#12>o}i-Q>RZYn4CLU&EZ&9K0!t&fV@DS zB7m$1(ij-`Eo20X*%ADXw7H4R#(x4yx|v1dkV&~)SR@HZLjXx7ZBAmZl?H?lAX((7 zQue5cKr#but^$%DKyC+;R>2-sNv>7JKE-k%+vW$-W(j-d<742# z0!Q@%QvU>dlmsO6Y4)fyfF#xWNTd?o;Im*O)byo+(f3&p8J(zl{CgnVa zS;CLis8#sWKiDSBf^p4Q(A;~E##2<)9y=#oiZ=Pru)T3TdG-}7avN#$EQ{O+q;WNi zECND)r0y`Xg7j*g--kX6NUt1@=Q?t&*V&`q1yc7qI~HG(@p^+r8i5qQ!ya{zT>V`Z ziAH@Y4j}PB>fU3KBp~JWEJCVU-1{uzk)s001wa}iNW>G>`mu3eAC7yGV?Tau)cbK5 zRm?U2_^}b`pJPzKp1nYn#eZ(Rkko)c*qy`S=*iS^a^zcWAYw__%r-A$H(IE>sq0xE0Wt;HmJRBUI;WMTe z1emLKVD5(^LxAM_&vk@5B%gE1v`7>?UK4N+P5Sv$_B?BW)PBmI=WQT$fi~L-@)?Wl0h07Ni~I{nRRC$-5l4N&A_+j!8dzi? zkoqrK#0Jt3K!yW}+rc8|0^tM5I3Ts(u*h_Bt#4W6HXz)0EbDv4|UiOh#bBD}C=n{b3Lj|xQina$_XPQp{fMTMT?XgVq-maH&EF}a~-9}F2zx4acpnQ29ngdMQ_CUy^fXww+a_QsPW z>bkMW3#5NeV3Bu8&j*kOAaw!cXM%KRk*MQ{?q!h#APoWJ6d-&L7O{Y&MUcqaRu_MC zeul2;#jziMbRxYGmEMYL_W4_*6Ylwg!Ja3}o`E>bAkXFB;StW`SBIo1wmM{!MX5yg zNv8m*>d7M40m<*ha``^eWBu7Si%I{au*kDOl1^rkjik*fEb=M2=Tq1-Hvwr(Wsx?= zlfBgJQAt4R1s2hOB#A6?!SPJ5QX~&ZvCg)+6-apic@RkEne5e{AX`U9vdHV?sFCbZ z+ksS_%eMJ}+|OvXO~+1XGn#Fa2&686NI;U#V~;u;2p@Qgi9pf<$SiW6z){8IS{Jm4 z)gFGVrZ^loDG(tM-P_BLRj$RSWvs@vXys=TK9Wi1M;&d3vwf>TJZDZVMDAcB`d&Om zarV*UnS2(ZP5FiFv)2Nt4?OSiKGuYG1sEVXCyWP$X*f~0pt*noQsd$hg~6%>&CJ@mK;ZFH+vo) zNbMzT8;=|nKr(^UU&6+74v@HUY@4frqy>;WfaC{|`Q%ywWEnZncotbr?l6FC1X3J8 zwvsdFG#~d+Z;-J#r_IsUfd1LIr?qSo9{03U{c-QzvQ2p0mEgFKo_yKV!0O32q&NJh zILZj_N1KKm_Ss`dKu=(iu0S#a$N(V40mK2)7(mVfk~Xn%o8dre1IQTCW?J)64)q}!9pZ;B;n+{hQ6?_CRj^Hq zQ7-11e|)CoM3}O$Wt(s$T+%EOCQlEpFkgYE;HMv(Dc7P++Vtj68aj$xy=#jj{3mVr z8}Z!mH{!V{_!RiR+!^d#U>WW(^B7MNne7S0#sc!}GuUyj0a6t}R+DiLAa4O_3?QEZ z$;oGt@5q_2WRZhpF?%K(Ke6bxoSAH!1cJ;8WE&uH1uSBaHUVTfkh%ae21wFu7MTR3 zIDlLQgujYKO36`Iv&j9VO(Bas4J0#yL^M()5?XhF3*gw#zZVI|n0*@T$9!;K7;O`d zmUo*)%d}>DDmHax?uQ#cVsgQmlV(iM2|w4-vfsy~pZzwGh$8!h4o4KptLXt`HyN)v zY#;tYdbNm+gcumd#sJa{NZNHQ(ucGOAg2OpxSl<;6HnH^SR?}oeJ< zAlH&J-^gC86iCuswoL_);+t4xF}ddw_NeE8#NEsyuam0>kWa{Y?qHE`$&=p8A_sxw zEMSqg-8k+*fXm51VgfyX8jz%i*`v~c@K3TxCXk%vERqAH_!$FO9H7xQjxmEz#38X%N90XFemPI52W^W_NcfM zafffPNIxL80YnCpwvk1Klf9mAv1iT!lD~;d-XLyiW}KBo5^zp+Ux|95Qx=AASnUlAUX3->``qJpf?V( zXHEbT_Zy200>TFnvim0UH}*Va|3Yn~O+?|-%!aE+U4Ik2dFbHqr)3V`f`6y7O%Bhm z`mBta!ZrUyX3Qcv{Nau*=6}LD{Et?F9G=~LkK*Ncikv`?%>j}hK<)%m7Z|~ZfvgW8 zPXQ?o9Q6X}=K%5skd1+(J^->SfP4w0Dsa^IKpOmhj^d8^`Gef^A$Ghvb;o%ENM9he z0Ym^&7r0hB5dL?z%~*1tKUicIkoo{}2av`9QbmxcR$;`iapXdWuT@L0-ikTuRdV$< zk)yJQPR`52D7R(X)RQ)0By^syfHVZ!{6y|B@LazGNsD3IoOluC%W`6sfrZutEAzGa&*zxdWZzh)K8o;a&Hy|@i0ks07t z$Bf=jP9o#VKKqYA8Ujd%9%Rn|i}V1(ox~!i0f`GBCXl26a!wC2(kzk#BrSmC^&oT9 zEOIT7oB(oX4>Hm$G9O5B0C}QibOJ>$s*Szl73{7n}Os9ka<9g z14wluSv?8FJdmmYvJpsa0NDkkE`a<3q&|Qg4{kIBkp4g#gU=3xOJtGEo}?cG&kiIh zfXo2G2asYQX%WQdX(;9icUFg*F`vkLTS*)}$1&%7{hWEEHen8)*ZOdcYq9Ygp9G)Sfm?}v;Z;? zNM-<0fiwn?5#*?Tfzbhyl*}Smk@F<8_go4jKhUNcNO=Hx0Z2mtd4pVQAd74TQZ!N;7%v7eR^ z#d9s@23tf_T+7G|XMXagNhtH5-Xc2usGGn<-H@4=UDZ79hTUnU{mrkq|l$xx*7$A8iIWa`mYA zsL)%jOq+ku8}*Lg8|_=SXcO*@WlV1jojScm2D%?lQQn8`jYT9j`m#t3kjwzGiu7Rs zd98P7SMXuveIVq$$iqkjIZpuD3xw=eJ&gPUWb6PIX_bUK3?L@~sShAzPA1Z06iG&# zIOpimOFkCblsoL0jz}U3mOW1vko*8L9!PBfnF^#afXpUm_SiF*0m)2bkxC#rLs(=v zkhGy}MtTVdKY~TxCP+Ga)Mr5Q)BQH%ht0TP!pwXw|4jC%J!sPqK>j30jbxGbh=Rrd z(j5plioMn#AZY=_0a81PJt_-GT_%f61d^1+B3A*4JD)wz%|P-4$OAy?FJO^p$hERr z!sX0k{-#B$m!7U>2g?w00!55*Ya;LT^^ z38FaW6WN8*$LD)F&e1tK(5407kG^)?kj91iUUh2doqeW_|ISfsmhT0@g=2h9!5s`6 z#`cB|BtL+R08$@7E&$Ty3>KLPgbyGy$$0|E4M55RNEwjY0P-NYRsdN7q%nZ308(|! zvGen*c*9V|lLgQ~iNJ*qbl zzKm@%7)Wgy+a?W2&Yf(V^MMrK$+nq7&KziS9gw;JayL28UF=cwfz;o_wpj**o5vzA z1IfIXMLs0YRly>=2y$QZ2oLoRAl;HlCSj3*KpIE0h)LRHu*hg2nSt|M z4x}*9W)6@k0pvCy<&kTRC)>dADZeDZf@HEEfJK&)Yx!ewl$c*dj=G;6!FR|}m27N$ z4kZ5(ABntC7+}F((m#&|V!l6)3Lss8R0WU}AoT&n0770CKYaDG$WcpKWE_y3Cs?Ea zNO1tU2}s?OEOI}Pw5M2PDLHcliL6rH=f~>O1h9Z(Kap7VM=&Y}Z6*ZbEb^}6--y-v zd_Pu;k-OUk+k|7ad-UO0J$=ITtA@-BzLozno}w`@?r#Gro5&&`ll}=HyMPn~kbOX= z1du<0j13^MP)wNtBmoGwJluyziLriY6ZbUR^QR3U>mV#*0V!U?BBKcM28&z>q#=Mz zBKNbAMW&N8zr`X&S%AfXEYnZGpAkFB1`a-n~z}PrOih$E`U5jdVc@0N3aHM zs`j%z_A(iZUs>dBAW6Tm$fpGPokey7$^U~zej#J=CyPX<;3@FmOtcUribaxvHdpEGyv%sF#*7ntYy_@7UUJKvnSzkAL-_hnu(VPrb^zLt?Dj1MC?J1l2p9@s2p z1oLMxBbYxaMy|m)_vzhZ{^Y^NIDod!Dj<1A9z!yKl4p?kDA|Zwhf}f{Na_em-USjo zijt2oTfR)m=RitdrKJA}FovH%$)FSPIciG2b^_k7q~ug20hV<@N{n0pBshYS*+7bn zq=EQrDY*_vn2|eyq(-{)Sw$XmEIHErQX<*xm5k1xnnG`J)o~y4IsYxg%I89FVPoa< z3Rgadl8Hs`e8zW2@O<9X=FaC*n>$z6wYhV3O`AJcSGBowHP6Tou`SN*IafQ;<}4cd zO+W%cO5Va&9>;PFNMQmcyMcrzDbmX%2b~Bu_0;AVAi1fOoCw4>osx5aXx%^o532w<*T&gC}ykWqo_bVjY| zC2XvWdd!_st{ar*+L*QSYN&TLYDK=AR$hmXrp0LMY{VGOq49YeW7tA%{(%v@l9IkB zLC?LKlB0nXuAu~<l_uGx!S7%s_7m9QYm-uZcV%U@+?Novl2#b z#Aw{xb6@@**o5z+aef%1`U6Uy0up$DlAi%7Jw(ZCKyqs+c?Zeklza#zSY#srsy|7| z0mGoqPf>CNkTN5FAii~!oB|}s$k}+*)09lXM{qhRX#`TTiOv=kF>JxVA8VLz2X{7| zEk4~k=33PCguj0FU@v-i{tlfj{d7ZYE>Ay34Gth$lVyjtyX-x$?(T9@^8}^ zJ_n@m4kep_gesK$5lG-YN*lRB?GX-|AmslNd8L6sX(e9P;w5C;)j%6 z0Hnf53zoBklBQZwGgMjyBbm z2@%%{I--jBfkUU z`>2U2nzkW_z40zd)-Co<{km4-bf&n09M#ciEGSUDfco`+FSTZB?N8tSwP3)(f=BvjJyoQXrg2b5ML9G*ft=cFeU%Nk|UI0Zsb_IA9NbTnUUjw z6c{-j$Qni_14%X0k}m^NiR&8L-<>pl#~99n7*03nrrXP|kNMv3uAiaG?ZxbndQi95 zYtqJQuN!E4wME6_vq|ux#5}zki0=x^({5UD8Q6s8(rDa`@oA%EEs$zEB`;v)la%}x zwKA+tu`L+ci8dXS;P|tN)wvG@GB=;v9D!sJ&7W`7V!KmvRxSEY$$3DwvXUOY@hWO_1ClFgIXEH(8Cd}~{>AjD2Z8jvirV}bZ5Y{rb-slj^&24J@43ef z)qU6hOk624m#Jqzd9EPMgjRPUxo zh4H9Wl(b{X_fT>j5dXcD+zBLfFRk+$ASv6%eq!N!x&?m;W7tUs-E<2Eb#9n%bm`4) zL<@F*MbC}pHlJx+N`HX?MCt(C5McHIzR8u78QAH!9)G(z3I-Tvn9;3 zr5CrcvL(M4{XP7+&KCR*)nsmCWy@PMTih>Ah3(7WMg9fL_inP~TM>`j}7p3rT2p0Kj7Iqc`O>4f%d zdXZ}k{|b0fV6)XpKuV0@lSOO4P08tClV@ZS9>vH-Kq`#1;3L{gD9Hc`GIA}Dem7Eb z3)(Pp532vN=REuos{fL<;PXIouTZiHNcC0PrrWWGn<)7lh;I`;>aa7QWJd6JBtmae zate^rA1Ijsr2IA|jc4HX7D{43f)z>@0x2?bGnT{1{aDVsl>7upm64Z$%X)u zt^!gr`VyNwmUBd3VuRmN@D0*7cCY-U?v*oV!Rm|UjD7vb?v%hN8@ar*-v^>rGJzXJ(;!yOG(4%YCL zUfulyPEPl@t~?dd=;8j(^Ew)QEHrJbXpEuJm>+Y!%@gL+Gf90+((f$D%%MF;<11(3 zH3uCHy*@0ksGbfssS{|#rk#a%?I~#m5wy#*c?gJc5+zRo37wr&01%AR$IZ0jbtfG6P6>B&|;rNQIFFXmh$g%D##|RA);R z`o;MM-DI|O@vayvTMB!TExs3Yw)`9ZJ(k;8*>WDqmWhDi|Lm1bRhZS?o8Xf%?| z9qx+-zZiqx*0DV8CK_*pP2ii<_Z^r~jQkf!@EjVk!_EdT&Y?EP1M!cgr1oqQ4U>!q zQW?iG6G(mnB`rY8^;D|^NNTdXEtFpvpU)5KZms3Ch0m^oZL<$;Q7GxQFoczEi^o}8 zh+)jQ4!o#i(YO^z10w|>t&IE#NR^TG7#~J90$Ih#>p*gh{1Hf>Wt4n~QDx*4AYn!h z`X)f1T1L(Q;%DSsAbCbE1yW`t4y4M+LLh;gDY+gT4!&IM9oK$t5Y-Z!Bodrv$HT7g-)21~!`+ITna-0X=FM zkW!A4vw;M!rQ`y%VI&5m%*a(hDvaC)q{_&>NUqbw9%;>U%8N7IR&;`Wbjp zSlhGjzXO}VV=OcAC`RyS%5slWawL!s(h`>yi;b>yw69mFf-x*v5$mSi-^GZPXf*zf(Rh)Pz7xTVU(kMWIFRy2 zO1=st_)AJg0;&FzmV@7^Exn>iQ^VXQ^ds~twZXO45az{nIBGN_VIbkx=ut@^{@1Dc zwLtQW+=1$^)1w{);@eEglR!c?v1gf*&V+^|;k?SAoBgb;uAzCwtS`5*GNH6LBkiws zCae%vIujaLCd9=%I(~+2!6No+^!?4AGvO_a*cKYGzhYE>PsvV#sl4k^;A_%h>7QiO-Pilj?T3|N#>{FQ$e1c*tBTt}~v7al)RO?{7-w0<~ zN3u4u??Kx+Ry4YM)^TrgtXS4LR@vWtc!JtkIW~{vnD`+Z*h(0UBP}nw(6WC4kd4o8 zqVM`BlY9uIWD#X!eh+aFCB1NP{T_|sp+L%mXgS9LDSefa5kUN3qhuVA5F^vjW(Xyh zVabfN0Vy0$$+h+Pq#Px;VabgA0FPp19eQyBC9mR9HnG2xZbk!JXUbuQagjkcoe6d{ zYT)F@=*MkDCUigV;O}IqOxPyNu`=OimI*EHuM3+`wB}gryoJ77esz_HI7*CLl#LaK z(N_K!993nc?_?-vIE~ns@SQ2O)Mhx4@SRkB43Ns{)TSOtaWo|jKyqhL5(QE^lahI; zeikJ;R3Aght*CxBB@bcAtUl|o9A>i-Na!3*>{aCny4`CB!Me_%n>_;9?H=qUerv;O z_wrth0J-1mb|2PT*jVlUHgESylP5aO-UNH2M@5WvTdi^wIU`~`>yS45^(JVGu{~tM z)RtHlOC6`9(KIz3i$ozB6Kpb3k%~jCu_bsQ9b4YQ7Mw`q`~i^sBuaK+CfHagT<=~3oPv{Gjs`h|}G2U&fl;n(xdr$@~K zQoV?hxj=l4lw1WQe6bz*=1lxbNRBXz{CB~oY?G!`d|@n+G;+-54)lwW0{Z0~1;Ywv zc-0{pr4?dFt%alVj!jzGq?paqU{he^B|Pd9+l%DvM6BH~{64#!q)K|wRf~3t+3pvnF53zbr2ArP4xJz z#xWo@g|8dN*V$-h-%-_lum2A@4Db}_4+{q(FIRlm_)R0Fy%cj2jhmR-?Ny<1r6sGi)9N3}JXO}fAB<^MjN-&bJ% zFmgYTkoL5T`q=Ll^U}CAXsb9hBUK>Wn;!WF;lfOvRo;$#14&D^v0T z9<_>+&wv!~qvW9T!DbEh;us)-A5wBMkjj&kOaPL9j+WB^B*)q!jU_Yk9W41ZdellR znUOU>!oQ~EB_Mtl)z|S+jMu461xWP`N;{HOjF#)_V?xt-q6G&eBRbzsw=V4XNbDw zuAY3*PlD~mm}z{dJsl%$EKi$>r&HpY?Cj)1=4l)~T}3@zfGx;~`Odw2C|L$JYkxoq zKG9lWqyRSS8NoN>RTy~^Y=+%W$@4(QF!F04;Q?0GbrB8R{sK0|0W>p>3*e}ODLL{2 zTt`uI;sv<6pyV7p>JUn%0jc^ZnG3`?l#(m)sKY3^9mzmS9tKiAf|6&jK1b2M^D5S7 zFtvFL$u}tZ_yT+ekCK|{FhZV4$siyFMos{dA4bVH(Pkng7XtCsGf#npY+_$=9iTIO z_}PYW6l)PX!*%}Dg!Tg+YO+rm9<(z&yMK4z{7sS!pBiZvKN@=t`hITr`J-oiyFMnp z6{C8ddmK~cV0})g5vv``_pr|1uKW_dcX9p4^6MJrSDd{WvniBLwxzO0>Aar%#SgFr zr)n?k`!dYawU`NvJcGW^aJReC!a8RT6mP8E2j6Y28o#u$+P(A--R?h^HdcH(X?)y2 z6Aar1@FK-VlHZ|UjJyjZxQ3G5K>QC=a?A`kYBeRJkvza=2Oxe%vOo$<3*Rqlu##^@ z8>W6gknN9B@)(d^jJ$+eYbhxM30~Cw+=Sb^U=yB6N1KmP{bEY`Ho#bSF&zPp0+PCf zl9PaxFQG@B10;MYB{R|HQhHPz%L!9*HIPz-9<>b1iBg+;u|6?svkr)V4kf<=5}HGg z+6JV;$S%As)I!OA7hsGU(w*qO$+ zMT@t(M*x*$U{kZ?o3QF;nI=bo{xC}XkeWDGzxQGU$p2H-w|7kmW)MC~>Jgyq8Ubdz z-XM(YmK^ITpMj^lpK$le3M06ZDKmoWmVr-FGT>(h>TjpvDG_>H|GT^-mbF)ij3t&%~#XDETrF|AUmA z38cu#ML^1HC|Q6uk5Y0wkSZgO0LibVk$(Y*?=fmq1`=ZAuRscq(W7>v))UmGZzGiR z6eV8*5@zHCAo+Eg*sc74Zsorm)?F+6b@q1Eg8R_Q!OwLo`=yQ5%DoPtt(?iY?@x|y zB=s?gd49pjM6fCS#EMuqnQ%GS1UqR|GZ>#|DESVM!m~7n=JTRIrdoHR)^qfzwLr=* zP_iCvUZmtT^x`E-{*3jpiM?w2iEf?u1{lUHgKn~QR`nKdOW23j3EQpnN-tq!way8o zbwZK$Sk(2~yq}<_EItQa3}@p{i}qsVD6sMUl#-!92HQkG4^Z6DbDNHVql!PLQJs1* zekYWYW+0Vc(l*7r|NdW5n?+!g+f2!=K*DcO@(7STBhLc~zDdaztPdl9!TS7>l21{q zLdn6GKn-m&yJOCrSbBJ%!e-&GflZYiH5^FzT}sXXQhJY)dLU&+E(hZO6D8(57Fb*0 zlMe|-(s0ybM!pLqu+5#ls=Y9yYEFZdsX;gU3b4+WnliZ8#%)CQc5%LAWp4n6e3iX} zVa8v?ZLI7)mt^m>*;j}s?(PFG3e2y^fvjU>J&=uz`~u_rpPn=GZH)6S8s~qYmQ7~I zBbnh4qY5jz_oa{pqX$IKE8G+C1(K%f5u84VVIB5IwemAo5Fu-$(H~L z{12^R8^}W^%#EYL zCe@clV+fGoL6nRFQW!wV7GQpsmJrn61>%vnVdEcRXo{547=*S-g#hu1&tjJ$YBcIB~-M{_Oi7_11 zbL4-9ksm}O_BzIAkdB5v1M;!{^;fV7A4MbfUm&5QX*vBbgBTt|$x%RxgDLq2kifB& zoDC$;$mGjNR82AyNbW1tCJLmM*`$H^zDjGD0}?)-wL6lbw48geh9^?;7?65a@=t*j zPImW76=$=@4KfTfTkK8d23~FEi+q_I-H-F3gLH1}60NFp<4(3pX`bsI=wC(OnO|=J z$ujaDkW#?%w2S=FYm(flG-5k3@*^mzxg6rd$Uq=DMuq?hok__lKniD3awd?}IF=h& z4kI{s=a?6`wh7iz8(hJbn9VFKd8)fjmG2nm!;gm<&!C%qwr;oSQuy~6Zez8ne=qub zXn=0haecabi|iA$O%su3_fw0ws>GM0JATatzbemB@+}}$Ms7r#3ws_VR)CG~A{xW{ zF=C87hV8}3v)HCH-I3qT)L#Xg(j~N4zJ*$|=}{j83D2PfSB&8nO8PXxx{i@A0r9nJ zVn63_p>ETc;au-q2Hosy?>dI&?@k`aZT6u}3y119?f%Wczo2cJjJLC|jl*^#c;SDZ zMr;(2qV}ts_NoV)N?iM{$8bLz!)Jj_X)cZYJRrdYjo~$@m7q4aVpQ8Gxd%v&kskpG z&!gmd)Ut`aHg45z(R@I+-&@zdoA0IJn{12j$IRm4x-GDrzT8HCzlpTP^jLFt+WZK+ zsfkZV6j)o}Tm8!~Qi5;w-@pjI0kxA6d;{uQM(_=~1xB`DyQh0@<&VH7pQY{fUp#67 zCB85|WkHD_NPaOT0U*_@DH#i-axEq21Mx4R%^~ z+r)muLt5v?=%e9tgKqZoqIPaz^PkIY^!@I==%-~nH&*u&Hdb!*KG4aH8O@P|d+dEQ z4E6aLZ9yE3!;IiLe(4vK;FZ!MBY35B6C+PU$>C*I-{~e3Hi1p*W*XH$hVdJqv=9CV zNRg5L;Ctv+N{$1P%TqD}Nd7ijay^jna+V2bvx1Vj5quJZmU9)5%01NP7A)rhO6~>X zdytZ+fCOz~-#=ZZb7SPu;t7A98#?keYx;`!Z0|#Ey&7F?GIjt zU!pd+M)I?483Z=9jGPQ4$Vd=Kh>?r1WJcmZd@ob2t1-sEq4l{HNcDBrD}j`4FYI+x zr_P`1G2&gpdhXWhHTa0kA>2mfPxo_o$*=S0UeWS8e=er^lU*dn=O4pvibdlk^lS5; zGb+e3>J2!`|2rC=_kjd{N26L3g>mBz)=zof;!zdq=|Rvup?9gx zaX|8nj0948mmW0l0^)m5+t~MRHtRgRbO6jv2HkWX+U;(x{rYelD-VNvk%!^0 z>OB04w6XGVG0DS**h2A@<~A@|#qtnWl|@EyeHi!+B@5xGfcCwMT*d7suu1)i^;{rD zMxMYJZlmORAh|!&IR6S;XFIid2T1vSO7PcYsvl7DH?RqQ%rXJP@lR@Vz#NF-zbH8t zNQIFTft3GE$v1(dKA{BP-52*SE57R_vooWlrg#NIm8>J+zO=n%+&bqa*a#%}E?5qpfS;w=|w9zXNJL_8bqnL)1 zb&tEUZd^k;Mn}Na;6?B(D?Z)i&r@I%7(;#E03^i7Z!ltK(>TA2C7(@gJ_J%?WEV#D zoAjsyS|Ae`IU0y@4kf1mDKIh?NFYebOdu&nt^iUTOUac${NrhTZUa)Sqc#r$DNUs0 zIjrGiN`8eUpGV2tK!WGflK%>%JdN7?2Wxl%wHW}5tx5y6IR;2-CMDl!#pj49ISXwr zq2+{H@!KerTnZ%DM2|`W3C^bE+jvxzlI3UWr)dQjD?O08(b;bs&W~l>8Z& zl`Sk2@F+$Oj^kAtO1=`uD+9EKr=d+;6Z?v*na|iSK0etnUNh*X`(Q|qqBUVdJOg9( z!SG)6!RpDn5B`WhvS>Jcu;S{2b@2@QD(NKfBA~sfahIaDOVHCRXf$F#3XIGH5}r%r za~+nPpyVzf`2;0V8~k<6a67em4I`hTWDAg7nvy>ONo8m`JF%P&N_t-bk)KbG zIt)mTks(0xjEn+OWTXy=ZviFKfm9bztyUm`E2+(VAmOVhxgJYqWF?T&)s#GhbSGGoP_vJRRxod;LYb z4;o_AebA0ZS8rt1S5rsYSMYiX8>gt2;@AjK(Ew-|H6r=H5N;G-4kE@olD&{~T?8N68@xh$3tgPiwdmwSKQ{bek$qG0qdKx%-#$3**yrc(-k#bG55D??YRp&eUyjqqMQw;&@kEOpT=3oyBXw zi=y_To3>a1Hr0=)@2i2NKBnYZjN!*LdtU`oW@Ian3L`s!gsQZhzU|=q->J>fK#Gi< z0L1?fcjT297>&;U;x|o1UUbvSpMgzz z6m8`LQZPH5Mahv!&ZcB2kia)7ITJ{3EG6dw36G=X60{jl$rV7VjO2h+>L|$rDNdl| z0U)9CD0vo0nPvE^K>X9F&D*Fo-QA`tJ{aetj_dAO8oT70eujJ7mp09f*KImWSm`!h zO4{_o_Gr@GraLhj7xmnxedoc9b`kac2p|P{0Le2l4~Xw# zN|pc#GO_|lijg8}G4edxT;gsW z^GG=+`8~$)(w^JmL-h1A>gj)h7?)GxOT+)0DES(Y03)XZsm`WkG7x{1l1qV<8EM0E zVw5aJtvQt3m&Wg8QSw9@uZmFeGJb(@E+ubbISEQW01{;6Q>v)UeY$QhS!c{j*UH?gbE&fDF=}rjU#-`XA1Q4tziJM4{BnI= z#N2+AA@woIGni5K$kr5%XHtpCBK!ikGuFKXHdV)_J3Xm`(BY@;BqK^6|5Py!^OaoHPQJc$v1h1tw=`23`M9Fu76uwQ# zay)7YB@Y3~-9SrTk2W_`o8O@qw^H&xmV7%Uy*t2*J17|lB)6QBAwc{qC>af;!pI~b z!S7Mh2&BMB8<4=A%v022b(Rmy4V}suW_rd>F-uI9`>T1 z7wV&hdO@h~5b8cp>MMnMP^hmF>VpQj)%~8-`-rStE7S*yb}x%|4|q~vCVa0I>Z^qB zTSVl8p47Jq^<_eRr%-PYzK1-iuNLZ4g!($6UMJc;>`8r$P~XVt%OPN=6u)|EY}?-J?-q25nq-D=@`#glrYP&b5n ztMI+Q@V)9ueV|ZZFS2fkP~UQ(TisaWMSZ(a&kNso3H7Lmyw8*R2BDr1>YIi7b~(R$ zQV$9BT_W;fp}s@(_kbsLzfj*O)B{3&w`ljEC-wefZL>~9ez53qyX5@tNj)HZ-y(bu z3g4%Q$cH_t2Zj1}p&kOEYueZ^=(3ZkWlw~Qcno=fkJ(;P!Ef&3wTlw3-x|NJtfqK%JX+m>QSNI zU#Mq=`WT@e@}yoX)VGS9ual9N^SdYY(L%i<)a!-%LOH*CQtuS%VG;R_LVcZB)8;&> zFA?g)g!*!!-YMEW?@8S+=D3YQJs{?|ptw$3@T6W8zBdZ>lJI?rhSa&rgGIY<5bDE3yVuI=^Pbe#3f~)q`g-AeLik?wq+Sy0 ztwOyl)He%t;}I|FJ`wp&q3#!v?;|4b^Q68`_&!UhZxFt(lIQQ9)He$Clu+Ly)OQK> zfG72=P#-MRmk9O6a(?%uzEG(9h5AyVzD&;Vp43+f^*W)xR;Uk?*XKQ{FBa-Ug!(d> zb;9?QC-tGC$CZWpXwl=MqQ~VtsV^122ZZ`c;rm88zk5!1p45j4_02+kj8G4XHEr3G`V^tQQ>f1p>YIgn z#glqLsMm{jFADY1a(?%uK3J%45WWu+>O185`=ege>xFt%s5c7r4I=VBPwHER`VtZO z9WwIr{N0oK5HZ?p66&>Lw3*_JwAPb*huTl>&56uKK(Cg)2?ik7bC_Pmb&@OZSSsZMy}H}?CM+3R(uB6^k8GfXL1km`TyX1 z?U-JB^lRki{q|@xYM9QS8vgXCY2)^5pE7g%G49McjHNYr%+!l)cXtd z=-Ir6zfIhoh7wUQWT&^ee(L#NzP_Gl}S+PR9YcED5ryM;Z z5iNaw@x}GZ5%@kl)tkB>k+$d>_Anv^ds^*S@%hnSj7VRg@3oD4u|liv+4oUX_F{!r z@sydH#ay{e%#}M0cV-5~T=~LYWTsP&&P<}E&pp4m))|5MxTnlqy65?#wrccXW5wtF zy~xZj(D&M1#vc6|ncuVTqqgY$>0z#{ddkf8Uv_8alz#5aT-V#3nZpLUGs;-&MSY!6 zuM_HPh5GKp-ReG1>LsBb66&2oeT?wk?@7H=sMibiqEH{`s9QPz$zF^JP7L*!K;o>= zJ=cC={bEGH*z=eW)HUp3Ojy&q2OBFs`yaCBG2sjJy>@+1b+&wO*t74WHt77R=`U?8 z-w(Ha&o(Ez`1-4Vf%e_s^S58^_^dI+cZxm5r-$DnnWn!r7L+!YU&q;gwKO-kxqgTj zwx&a&9J|M*hO2jgIlU6MQ^5C155D6z4s3jnSvE#fQxj?#DVx}<0y{qcG|V54BAbj4 z)`|=2_=I|jkLCMGw(qG-tRtE{IUP$Ro1Fk$h<-h`=QdR~sD)>2Y^PInnqtm=0rgk1M=6lL0Jt94^=WO}kYT@Qz zsI~SmLfZA2WQbn_`9G?UeZ5X=$&zI`_I$BjoE_)(cds|Li?icFhq>1q^Lm(1^?Ji8 zN3S=CmcF+01+<`EZ{V9S_O#wutZUfAdSlyOoE<;q+w*$k3-rBq$6lNrFWIy2qjuP5 z#|KFpw_p2|nY%=0E)$u#Q)K24Co}c+I#24gVjaFws0YM4e1lLgdQuMx_02+kj8NYu z)JvY!`v~=wLfsJRA)#LOq+T!7w+i(-p}te7S3Ie=3iaJWJu1}e#JOkHlX^<1_Yr4* z38CI7)Qu;-s4o%fgM@lcs4ti2-JaA33iUN2@;;%yShTy}lll~)UJ>f`LfsI)2Rx|{ z66$M(`aq$+RQMkBq`p|F`$W4hl#v&{hdil=g!(q&`xK$xU#N#Yspo|HK;iph8F`_e z@}wRW>br#RVWB=osOLPX4-@Jop*~couM=69_oSW|>O(~2mkISw;d{Z8`fjnh$P3?h ziPc4|TwQol_X*!u3-$iO_tgK9`YNFw5RqRg)VGSr7d@#LgnF$|UnSJH3-yvG_5MP= zAR^ySs7K}6#*?~VsIL?1gN6Dkxwi47zEY?U6Omso)XQ>h<4Jv~P#-MRmk9NOT-!Y5 zMSY=A?=RG|vd77_jVJYlP&b5nt6WhFb-yR|Aws=VWSw8AuNGMs@T5LksBaSLwKD7E z+QyT5K&WpJ>cfQkdZ8Zjq`q3Hj~4A-kmoXTZR1JZ5bDc?@4LkuS0{W=c~V~{)cwNu zrNZ~Ma&6;DJuB4v3H6j5=Y@LSlX{&{-y$L(6zV(V{O(D8mQb$>^+usSOwR9~)EkBR z4x!#4)ctaP_oUuWsIL<0eT4cf5qWRwLxuW!p*}?Byj)#)QXeDK%R+s$P~Rd~7oOA` zg!*=&9un$<lU+Uo+wf!8CJzv<*5s7Q~e(gn#AvWPxS2k`>yRuPUj96w^>ODP2wCC&Cwbfod z*jVv-{_s6t!~X((uU*}HkA96Dvlq_{tkL-rr_9WM#hsah4{&GZl0NRtTz8~9 zqXM4P`w8{sqF3$~{i5{YIdmtx#Vr)We?C zhlZ^qBeS~^m_@4KqzFEu#VWGZJ zgHRtPd>`{Aw|dc&`gWn7745!NsMj9lRxf!{FADWBLVdMRuN&l6 zFMCoC3H7Za@^wOerHFjRlll&kbqj@hMP5-9Sy%O>?)SUZ*NVsw6l2{`G1eJB_M#pT zkzX%-A0i?@NJQS}Nxea+SA=@KP+u$5{hrik3H9wlJtWl2LOtL~eYa3wD%!m&M_SR} zgPznk3iSq|zFtON^!Jb_^-V&(QK*-M`g)-r_M|?q@O`0B zugH;Bw0q8zdaY0|iJTuQ)Q5?j&wEl|Db$Au-ItE~OQ?s1`od$}>J?AwA)&risMiVg zs_5@kPwExX?g^p3S+x5=5qaY$Ueu$)_o`5D6uwUpk@tC0-y&94Q8C(V5-Y34VrAv` zq`px2-seEKdP4ZVR`?$9q#hLQzDf9AE84wLjI=>d>ivZ8%SF5I7V0IDbs!+y8=4iWhV(cedl{_gjr-Y9(ECVZbF=Qw%(?n&Jc>dS=s zPBGfl$?Nl;)HewAkcfPz%z1hK?n!;CSl6`*-^;@Hyja(TJ*nq}@BM}ES>gLaG1{a& zsc#d$r-biYgzufg_nas7R=-<)r|^B2=y6feI= zq`qDBxU5j$Dtg>T(c`L~)U$pOd2trmD%yReXm_L2i+Vvsewb+Y0 zUa0qx^SdYYZKB;%LVb&9_aUO)3!c==LVcD{-yqaCi?OcgNxfdEZx*A?7`dtxqfN<^ z`e32HMyUIQ`bM#`Dtl62C)9%?@@s^8R7AewNxdZ0rwH|RLOn0ktDe-$Vs$Y~M1F(3 zY9v+{#xq{jTZQjCh59Vv`!0F@?nyl?)OQH=2BE%1-hcO`zDlSM744oE>f7b>b)M9h z3w6IxUn+Z?P!D=iul2jtOG16980Qzu=j%MF`-J)`q25QRZD|YcTehLM337j z)B~c&)ywDWJgKi0>Z3*06@+>~%rYfU>g$Diy-+U-^~Lh}I#22WzgvC1P#+?CTvYV9 ziYN7Yp}twDj}ht{<^6Y0>Z?WM144bJh`dik-uS5(^@`|m36b-g<+m5b>cZzqeW38Y zAk_N_-&c$N?)Rj=Q>f=eyRuPUj96z_ z>OFjmtx?yohi|c!diq9~6`%D3_xvrkFVOeeRNp=NHL~AQ)Vs~ z?~17v->+QN%bl5h4s~Z##glqYsQZQbQlY-u=T@(JQqKzYfkJ(;P!9`r<5@52DWUEY z>I;Q>NT~Zfsm~JXyZ3XeM}_(>@w*j%PwG*j-beVJ5bA#6d%%-=r%-Pc>LsDRQsjKl zllpq0K1--?5bA4$ddQRd8lhe<)QdvBL8ym4sjn64Q-u0Dp&k|LDNpK4h5AsTo)_vH zMb_m!sjn95bwYiuP_Gld=RK)!5b9B(zDcNW5b6a_>Z^qM7@@ves1Fh9MNjH0h5Bfr zUJ&X7g?h=8`a+>TNT}z8dRAmz*^~N4q24Og%R+stoZmgEZx-rVp}tk9_dm?7UiGBD zM5qrD>dS=sIyt|u_o7}F>M5bVMW`FXcb_NqO+q~()He(Doub|Sp41l$^}#}YiBMlA z=XX!)C7~V`>Klc6r<~tCsjn024MKgrP+uzNcTehhp&k(GD}{PhL_X|Ey;Z396Y43U z9uVp&PwLBr`Y@rsT#j{ee)pta5b8mpzDB6m%K6=sdQqr{gnFl(W#s(sNj)Ld`wR7~ zP!Ed87d@$mg}NcsTjl&N)JvY!8-@C={oLwdp}s@>2H&QEd%m{gl%uch5G}n<&|cIS zViSIKW#jg=D;wp-h^S$y_i$}zr>cPf}&&NH)=l_H6wUwUgZ27)$&u?cM zwMFMo55II)_LQ0H#c%K}?(5FXZH7BD2a8|Jt$0!|3H6*%-!9aL3H7Qc^-iI_P^edg zdVlfzgP-q3uXM`My^?6@HRN+&SZ0pEzxUKDv$}>o^vbP94>neO1{|^HUik(3Uc1BC zqhBMJ?AiBG8+!WvLCg1}ZQq;I*-W-$&K&-uTqog=u$aF4yRNf{&jE(`ovi<>_%vse zX|Nh-YoVn}E1gMe2lh8~=9~>)=&N(ROmZQRO^nP2qMvA0Bn3o2yQ0W#K*q469t5J_ z?4iidfRxwJa$X0L3aMXfQsf^%{H&b)7a2x^m2)hRa$ic$0ODshQ-BO)3W&Djjdn&Z+3%R5EQ|0-J)>UW)vBk+b$we@2jEn@5XP(vpNie@IT5Q;x zA~7J_SZ`VkWG#!~N+7FQ4If|ZJn^f@Pf`6<+Ja>uIo9L00olTQ-wkAwO_~zPmQw?U z_3mQ7Wpl*U&hvhXoCKu6$eBR;u#y{qgjjC00I57gNe2-94oO9B05Zm)_5Ba1^(fW)2N2)GcHe1=rPJ+6>vxW{r~SU=ylq2~V}R^ttuyRf&fNja zcOXSppGiP+tOc8Zl#ix0Oaj@(j=BRXP@2|&s$^5d^D>`jpik*uX!bAgoDn7IH*_$pfGr9g1? zG~VAU>8+uKS$WnJo8=N)B= zTo1%xHs8P2dGCQDk6r8h{<0!J2eQtf>RW(pVSfD`NQ%{`<~qavl|V%f2C|Bgqk-&Z z5gUG;bA3#aaX^N$XoP@tvZH1Lsj~KJ12UK$wHQc=jmCEYsbw}l1fqWzPmvdZ1X;vh z2a;!*@FyU8MXksuK>SSWfNw)q%~pGg90?@M>O2%knT^k*f#jH{As|~>ov#2gjOBCg z+s-osirfyQz#@M?mdyIskAdiS1S#_Jx6S{M8Gkd7U93JIeA~T(9k2u<&uqQ{B*bEP z7LX!aOPmKJ$D(l=5_Z%)AbfnjVTp4#s>r=SqAWg70|_#%SAlf0Xlwy8kj3zCOPqI| zDe^y9AC}?$zXPqz$dN#nvT{yB8%D+hDX_>-1G19U=Q1E!cGTSO=wD~^TciVs!PWrF z(1u0+K2&ET_ESJYhtg=2zT zjA1pL38c)%-YAeNU!?#EvV6V)h>yjm0AxGU`q6itx0)#OJdk>({w9zTJL)5>AuGAp z^)Pm@96K6Fkj;!I0;#e%*8Vb**evrL*c4d1zXGJhGU{z0`aSK6RIhjLQ!8RDHUITF zH9Tag^R_xgj$i6L$*jmIAbDmpd8zZpEk!N_vXI3v0i`2{NsZfP`6Z`V7c+mMur#0P9-TUc-P4Wn==7 zL5wsban1|cVr|fX)-NRL`dkS%Q`l^EGmwzMMgSlSZ32Ep+7101Sh}2bH#qMHu%ZE^ z#74H?-QXVQ{|Th7AFW{~mbHFKP?vnjjm|ex74ZXUWS*XWqx04&D;hvbY{YH^5@a=O z0n*9ZbTN<}Eb@6I%;pgw%MYOBB_KmtfByrJGE@Hu$Od+laTA2wWr9BVQ&bFVfiNK2}wmNKz1^lk5HXu?`J?( zGA|B?&R$`o@yXczS${tpNPvxX=K~3{R-OgKcMPp_0&Uni$l_(rbw5RJ0Fqqz}?hB=qD&ewqC*_vb|kbW#;7u@W8 z*Itp!Z+5<|qewfDB0K7OAYqpC-v?65)PDqIx9vsKoH>b(Osn;q$bQS_d9W$5c7N?= z=bcW9Yy}czzHh(T`CSG@cHiuLds>lxw}4+P4+r1kJZr7U89;`xI$r=}6SIllV%VD^ zStPbr(;RjEuxyXCO-+$RBH0|_XNcc{qn5E4uEKKI7_}CNpJnfQAOU9c8jvuv`7@9Z zt8?#Lp}#Y&F9B&~b`q+G_63CKJ~0 zMe25c@K(d#6nPrRM%FK015#kVzkRFoetsx3HK3MB#v+&=rWEPE2f%IcF^yT49 zfN2fMJ5MoLxdCJuD`zT@a$M~xG7Ct5W^)CQLYmqv1d?YZ--0DG^|e5Pte-vyB+BBv z8Pys2AnzUlKFK@J8(Zyu8+f$OVI#@kfb3-P8E`wqnW+x}vWnGtG?22LElt_DdG9a8);|}3O&yyV zBS2=ck{1AJW!Z8wkRl@mAbvLftOJr`k$(xu6jsBxupAb#f8bFp8olmtzNe|kz&o7Z zIa1^sKss4`Mgm#MYB&W5z8j&JO`3p|SnDjl!+FDuBDdgC%;r(74^w{zNbq~K$ZXyOl44pPq8E(R ztbkGCavIhCK(;aUudQ%?kw=l!fdpB$j0Limd2tbtA&kU;R9G*_0tqvlr7N8Km5M9} zvYyqs0A#B(zh~#p$ac)mMkH<))tQg>0~w=fP`6Z+6rU? ztKs`V>RB}U-U)=+90epeh(`4UAY0i8FcC;)CADb;vd#9QsVUYTwa(TJ+h!ry)H*F_ z&eT!s7k>Sg%`K?K{CWb&FczPUcj7-<-Mp*Vnznu|SC{iH*eqv$Re{to(s!lvER7;Z z0vX0^P6e`q)n_`8FdIc9NLcHnk+3@72qe$OjXQxXW^M5p9_6g`+RSyGQD#TI05*eI zeSW*reTNrYCdbYl{*In9zl`r2_8T=7ITXlfR_7CeEVOHA#u?73!>ql=fz3A3rkUnQ z`y8Xn>Kp=_9Gi2SfEdh+c|c0+%;j4^g3nWOB*aR78AzV>i#LJv zXP*8Ih@WLbpS$p1AL;MMnnZ1ioC2i6TJYSv)N>NfQH?+ftj=@pa(?|skt=~T^8OBF z5G#2NkP<7W1SDs#wVE>X()jdIt_@QjfazgR9Jl)fox}5%|KF)Uy<2Kbgat!%7V=f)`B+!DKf2l z?smQrrpRMhLl*gGf#lf8_687NO6@7~9uj^oe7E!c3q`)P%CLXcNRg9(q}UzabI^v3 z{4;_0SvheaQRdgTfUITlxfMu}<@0JFVdo5}IcYxslVkn#39u=!8a}_u`8I(fuK+2r zQTqs1L}4;O{wGpq!s6kH512+YDS9H@GJK?Zy2`n2S|yv z*9AZdZ_^q^fYdSd43Nz%Gj9Y^&sGvA6 z-@C{84G2X(1~QoS?)~pI?6+hnaukrwtd)-kvYut;>GwKsa8hJ4kQ8g3i-A;FM#bSySCLbIR9Ksi2NGs|=K{3h_rHMbU@@EvB**42TqxvO3+BLP4a=4lKz1`y z1hRzBDOhJR_ToyWBT-}}zX>)8cGSoBIZtR?(I^=9I{+2&0hz+bRUrB;vWk2Yh>wi` z=L1>8e7_vXVx~0@NQGt8EkFV+&Z~h$4N9H?QegG@EszvD>aRdnGqM{`TG6NcPkXB0LioKNdE>>j#AS50q~T0aX65ztaVNS zvWD4A2GYRl+yrD3v&jKTG2d?kQv9t}Z&H^$tzT)^UOWgk1vYLx4Wti?#?OHSS=N=& z3;S+qQ&S|9iKVk)R`PpblV|n$1W1T^dhlw3Kkc%%%lMU=EFQ z2FONc^WD|XbMK0*0J7oB)aDT&1!nW?YUk}|io6CS&wAxsKz6c-?Lxm;>m2r=`%YFZ zkPvIrDL{6yqvin7-(^r_F&@QMM7KTYyt4?}VqV5v>8W1^*KP3wu*o}P_}Fwa&O{Z~ zrauK6!_I`JIf-Nvayh`-^fjq z41;+w{vpHO6qx~J4bKE11*U!#kS**vncIL=*_coOl4Ijx5lETU@I@f2Sjm3?(vP+K zcC=xn=3&GBRU<_P04dwO61T4cDKRh31ma_Bo2f`x)?ET*Jv%A|WF4#FcOQ1X?`ioC z#Lwo+dw?|9M?DF9O?8RH)JVL2{Pczy*+@FukqVwV0x}{FZ31IqY+*cWG_}VTIy+5G z(PUHRio_L7@pjyAPPS)~iP-qoNPBxM(Xc2LGn!_!!sH&kFcTZkJ~S-b$#CF#u|>mA zGnyLaHsKz(%NSVn__pZqfN3#49RqdCW@fxS3hU!0Yj;{lHr0`}cPF>gz43`;CT8!= zjAWZz?Y;U)do&R&*LLco zP&(Oc7uf}xFhACwRit5VN_jXn*4{C$Bb!aOo3JjPNhKnS+%yKgCF!Q)lWpKQDPdA9 z*%r&D7m?y;G)KT;QicUAor_>tj{~_VlIU<~eKH-tGTENBxl=KxJoB#!iC7!>1nJVz z);K?f6jc zsgcZF`~Y&I#r|MoG97D4Cp+4sYJXg$c`n_ri)3138Oye#y&2ok+C#w(Q_I?$kzJ&B z8)i&P$6MmsG>LBDUod)3O-3!F8QFL$rH?>2#%8nW_-qJ!#;LU~r(rID>9H22kB*0u zakE(a?~JuGBi4d}%h*vE7tgjuQWMk3wmSUwN>ihmSnXr8$u`)T6w6)|&vZl*liTMc z&F}*mmrO@vX>)I4Iu;|l@ZpTs2y~f@*_TeMb6RvXWSyE*J);_iMa=fLQ6JxO>I^65OmCJ z)-GViqD(f{X0;BC-5qIILYyCIi&U0MgV=N(KOp^mWhc- z%T%lkUXxuAi{iwP(I1*0Oo(J>q&m{^WJhLdER%_}Km)f-j4!n6Ul)%gk}Y+y*&QuL zbiw$JjPgD+e3X$)M9sg4kG4kX8PE^gTQbAXFq3(FYcgq#IeNG@cj^)?^~vO1J7K0x zJYVn6bOUpLYGiH<1`6nVMkX>pHjQbG0PR>iXQ!F>yy1`-#&2d9N7Z(5)JS&JSknh= zD>xXT_Ce8Ua5$md|5J(ob@6lzzqGcRbx5B1`cbH*)Z{qx7c*Z#t5hr4s%3m(OAeY>(5Xk(r)Hls3SYM4P@Q3 z1f-AZ!cZAt*2ke_Vo?ircBsgOsY&Tbsx{u63E|4P3FW4x(Fz7~%U=D3pE!TfiAc{; zW{;TBoK7YZddXpWqN}9FDlo2(x3nhU|8xvSJ~3_fq4D5&dk2hRFycb7=_&DyI<_H( zeQ|ayYPD_()=Q333X{)12zm=zs*lxbB5JW{EXoEXu<3%^CGm9!CRDaHmL|I66Onk^ z#AI`a8la*U11lbA@To9D$B{I^>U&y;>9U#7_;JSSo{>yP zI%WZ@no7p5CsxUhm~IRh$m!ZeeR6&z8=r55)0&m7ZfO1oEX-wq(FFa|`pcS#bZ-R{ z>rY(2LkQz3TX$?KrRNkq!_SPQ+s!nA+=7gWH6-DW%pzRl2x8@iIXWpNSeM1;#A9h_ z21)N9_3*S7wN2 zBf>`H`psOh*x_Q7EAb{ zvo6EqnKK8e z>TJ#|LLFgJ+^55f8OvlgK4(!w5?1n1oJwG&2pv4D%1JBG&q*%k3T5qv}YS;Gt@`w04w?Mop@tSqa>PN$u>;(4UdDAJ{vwY>uR|&{{A# zw86S6)&MP#hJ%czxv@p&x)!P*%2G$H4r8T0D4Gj;YoegVpj0|C`#h^4*uAj5g@LKI zEt!m9JZg?5rjlaJg{Gx4J_+H%GoK4OV%E8YsRUy~%Gtw#1yAg)X$e>6bRToeJWF); zaXqR+fxD`e_1PFKS5$9w051DsU4ws`=UN#^J?GO4+u;wK^KsC2Fp|mb&OVIb*>uD? zFm89Ns6OdX>xtP`r?tSMSfF_Y5bq}S?VoV2kK z?JaiSC%X2Z&Hw@#6iL85o3h6fr?g}yuFu49eMTk$vq|xCiGB9b1XEI^xwU@g`E}+l z{?U+hRwmdn^oO7YxuHIr9JNFv?F`@oN*~>5MOE*sK>$vp%lVegk zuFi5UY|q$xR<-D=)k4!_^AvDO!dzC#C(EYc zV#OXBVdjWLX?REm&TP~EkW;_u$z)cKmw1|I{^{-^7oioMTbnRf^>jz&pd#61bCO@q zfJTB&IMaC06hpR%g1M z+zwSqBs5Tkw~dWP8GN$-rMg&3jpnKy)EdOO%42m7 zJ&eN=2x5XA7_U4eqIfYAuQ$wOXI(f_VrXb=g(*ud;a(dPW9cW(H`@fTjPnSIfPB7bGvQ~S}8ZP zYHrrTS~61a8q_5(b3LHOe>I8W4QFS_J-JXLzJ8jGxC&{+9 zh`xn00oJc+`-H2}nx`$t?WL6a#*drob0+ecb$QNBy0f&_%?>8#Ty|=jlW@E}q8dQi zX~*zvA!?t818AGA!c8w@s1Kc-Nyi{*=UCH$TFa^Gz>HutIrny8SI^lvjGb2JTzzaZ zZzgDh8Dt)7T|PRkj$G{ohJl?nhaInX?E4WmnKa%W1=ta!22_vQ*}SeJC0&?7Z{?vW zFMPTg6L3UbXZRWE^HHQfP&l`aS-W6Qch z-+s3)3)!yXzVc_Tc{R=Y0N?3o{RxuRUuH#|AgOV(s{$vQLyBzziR@gBnu@pYLy;^- zE`zr-aKu(as6L#os4pD%yy+54L{+zHXx3U-n!LQ{z5-~r zv{@L8^5&&ZGv?-{TnwhU=umD@W!>IHi^l^Ai#Ya?Sk$_b!5hQ$!3v30(>dr7zaM1k z^1DbZuz+yKuAX^crad|-k(`Z{jzB&vP?u_(;N&M`rdbBPrMs;VdTSrgm#jZq;Y_Lp z*BjP;3*^+PBgoE(kz{9Nfb5LYpTuxJu>LlOL-Pd884mTXJ(j@o3i`9Y;Hmy=_dGRH z=nrw^fi;{1oD%H;Oz)bFrffq@RG7I7hF&!Izggjo~gjEB*C|8Y8 z_ObS%p>zz!E33aXW2;!#UaV7)R1DY5iOB3&Vj3mto-ISot+D30UGQ`y8c%j*pKMFv z$ZpST8N5tj?^(mBz2B_X1NNmMI15V7wVxn>zHa_CGnt0ftX?eJXLH(2{a0V$g=kGD zm2-N-6w_a4e>`!`q2m~^^yAT%Se7$#GHvO%MXhTzlwK4`(_LJQx{$e`rNCN1IarO| zR)C|COzSjj2uk728NHL7Gbe+0jn$qRc4uc%!rsY7S~B`?Yw*R}qt>a0`8WL2khGp+ zu`VS78aLa#ZmJhVrlt8jkUmCVvalP-{6MvfvcYM2a{F{_NTbPoJOwA@hNSr^KA1vw z%}S`d##Vh`A#2@fG9TzM$7K~EwU1W{)xI8QRnO2*m6*HA3-!0Cu+x{C=>s};bofwX z$4Kw0+L|%3OVZ(zhdS=4>RNZytlFA;sCb^vf`jq%x)@G!X)*i*JONZBpp^>Sx|y$H2pW9_T(SUVy@&Oz#o)mg~0hbOGC+56TXI(XJDkDmqY z5Ze1BigtmxP|;=bSh_X2>$s-2cQ1DBTPG-H*_!D`>tG!dX`fGQt&!Xz`nEVhWX5%% z{oEg;u8yKenyLEBL8e8En(XN)Q z*{JGoef0>uRsjFi4TyhRt!F(x0KjfJwL_ZCDnK`p+65<7k!JhNP<#4{#U%4#IY(Hu zBGxOCX_&h}JsoN7>j#49b#3zleah{^W}uVlXcves%hV?`>}NKer!t+7rkOJ%FG%@k zT^+P)3=<>i!JIoiS*05|1QRjCRvXPQhrX$?Y-vF9_PBV^gVE zd(>%5Gezz0Z}y{Rs|Av6>K>NW39RceW;cMpCud`Ax)@b`3zClE5YuCOS3h*3_pLwd zK49;wZa_YEO@?*}^!g+#6V|aE&3NxwMc<;JYU1xDPQ%cd)vMx_LVhZ)96f zZbVvU#3JeD)(Hz!Y3qun{e+ONmin)G(?Gdmw}-Z{>tH{RsQNiy#5=XLicxWJEu!sw zHk-&y7}X2(e#VMJBpYvrbA9Rs-X}&+T!{J!r@StU^VPVfcPHZ4Bg_ZV;_Y)$Gow!Y z&D7yHbWT&BSVmUwOj_sKp?LHEYwXIJ+t`h@{!miavXeTGrZyhkvMfcUs-ns38NxekY+o;rHx8ecN7d_b@t)lZL>5hCVtB z$_AGFQkK!~UFO!@CfYD67AN+$j|ddzu4M$mxZfNK_!X}|SHPLPO(}y_^YoaNFf<;T z`7jJAZSK}-VA1+35MNE5W@(ktho#$uKbBMk;-q2FVw_?ibgffL5X!?SB1ZLMD-5T! zbRKDuC9~ogLgi3kRNnQn?falQwAw2;W2y+!KG9Uk^1DNV>++t6>k`GOx~{D@*Afb5 zfT#44>-4JHSWcSrWM5RdMh4&O47ab{DHUf4PKkAf1kdCT$Z=NtdPkC^sMA`lj~Uyh zQstBKB(0NXh=1vchkvVJnmlY6noBX#Q4%W9O~@hA@U;cVUF%3QnTCPo#>~KCUzQ;z z8Gu9;+6o`413bcfSh`5kC#yY)XPge(i_UGQq+oR%t9($IqB1*A%0W{TF8ul8%ybTn zQ)@C;p;9(3U}>4!EQ@N2gFmh^!`y1@+%N}oN;=ObDTEldu@V3WDk;J08~~SvdeP56 z@Im9K#34bVYWn3)edhL!&HT|Dsr+{HjoPH5Z<)%N@V|AIOC1zjzfJ%N{qucW-8I0n z@ZoQ;DQ1T4>6&4jB9=?6jXg3Bu)~FnjwJK& zVNPbw9t^olo_~^qEuHQA_Nmz@k6p3Bjbk_j@XT>C5--wPbd51&!mwxiP3KVkxovh$ zDD4p@xT~@C)JwJbRUzEdAq(2O>+0a?ZM|E(G@e{F-AldjBxKO1d6z1D+dMC6nqJ{D zaff3712%Jx!I9KY_DJSr^Q%J0f4#0ac|=SXv<94Nz0_+efk_K-MxK;e6iM@{f(*|% zso_HlQzC$aV0B+AX4E7IIa`~AkQftX00=uJl4Fg25tEVw*1p!X|5j!=*EMp&7Bq1EvI3Y0Ow3eRpjwBCJ>9+U z6gr6GBV*XjE{TP-h{TNcH{HE^JEE^7=9@QI8Ff;gE$J(||iVgPvOMkHz0AUyp`uw^6} ztFwS0gN5-Mh|TT-`scBQcame{JV#EM6~Wkohy}Vg{Qj0g!-5sxT)m=45C}FaF$5P^sh`M&e=%|=f#!C1e{|Uo4&oYVbaKzp32xy*g-b~jaLFy!*Ek~}(Xb*Psf_d@&K-;VPoFA4pAnAdW0hsxZe zMMg`Ym)L%IfNevv5V0ld*IYO|%tk;^5{Zx7T}nS<_8@==O3QJb@piIlI!R6>az(>u z=vP7R@T$XgCLGHGnrebJOEKM>Dm<9~1(r_J(W{`w-&~sI z521l*;}5899s#0t_XH3C!R^n7Ci1bmsJc{ZRb?8PaAg#$^zmm9BBQ-L5X! zmBZX3JPrV=d{I{aR6F9>9HgYGvZyq3_Czq7s!u5wD;nkZ7}iAn?JoM77D3fM@}N>3 z>Y|jYj62U$-OUaaBxd$k)l3g9Pr;V&$T3(DnjVQL$G11X(?76uoR`>tl3*-6VW<}* z39V5-otT7xae)R(vZfJ&H`5xtPA6Tp=Wr-b)6NgoH?r$$p%HBtzBgb4MKW~(A5_;c z-|S!JW{h2d0b1gTzT0nhY7(;IpAR)(=Ja}~yNWVmB=T>@A`<;km%(MdoGnE0Z$Q1d z3dw~;z#TTT4w})~cK)XMj@y06hoqK3U9kqK8(c+xgH9U0m1;&P0Az#*faTLO$&BWM z-I1*a)NrhhlPK51C7fm;ex%;=TP-B*HQNN+OHjU#C8eK;hf5$k*61hZj8}m>RyEI@ zNju^>9v<#&-BKFsMn42>*p=2glo5B`PzDu8eDwT|oSYJczbXOQJ>mvl_uate>CBI_ zF&0YR@OAJL0~6yS`oYdBt{B`C8G@By5UU)DDlX`(x;|s)Mr>L%2ggmt79l=#OpZ_L z$(VH4&1wa2hb_r`ZzEv-?eq7lT8eB;3veNRuG#h4GOGjXKPPRD&D0!_LJd zV;>xFRpZ)^7#*b`odp{qqCkYW0_6W167rS`AFEA6Eeo}E4KP?7vPh}kSCPf-x*n~= zO(L51;r6)sUIO1PUz&Ph?9mo?pq#RDYcmbs=R0v`DS2@3QD~WDayZ~KZ3UcUUw~l$ z3M-VRPBgU{2D)6GFAvE%nt>I$7Ew;M27*-bkX8#Xl8F6g6R|#(?p1M}XWyGkMd#|& zn&)}m2xA{*e{xe4J18)5$(FjI)A3XDre{qfyw#+A*9T0X2>*}+_arO86U zh0(&G^v~@F4~J?`KdRPmKIudFd`L&tRRcW^7zqdMbjwO)ysceypCW10qzY(2w0q(`54`m!IS~$Wk)E!H682 zi#3A3JjgO?eTf05J6`-24(VL~f*g3L?v`ccLr^~Dg)3qNnWbKxi(Hpe#Vd8P&N27W zu;$Pg{B*n(7tf%j(Wx=V*0o*)Bx>5rO|uJq87-Ih2lLA0dCrI`OhY!)JPgzNVA0zm z0$DmB%5jfa1Q0g_b&fJ1Kv0le>Q%dEg;nukWJSs#q)EvD z)L{D4Ty```<=@`>mS1f*eLQPDO3Ac@pR;k~Oa5weCNnN!O_thj{U@lC)uN`zeysLv zW9tJasz7yf-!v#yO`qE>Hllge7KmRG=$36koc_cW-Q5+n2;knFh3@Xk{uB_s5{hTy z{@Jy@Y6q~YCK1A|QB4BLYD1F)U?N@i1D`KPTRGr^ZLDe>gmgTun9!5p0rxBOf|4Vz zq*P%OLGDb2=A%c}<$Uo{EtR^a>qH*ObuJv|%;Vl5f(Yhff?Bvf-41DgRRQlZd1#up zSW>wK-;PMcubdO9dwfl_4i~uVx31b*h_od5A{y$w)?er!?$w!$w%nGTg70BH!P$>i z3^D#(IDYzMh+=GpQV<6;ML)5`f)AoKkxv{QDrym;3scm}H=~udURHVx+Ec^T!BoK# zHIP>SfxZS7vRI$u9gB7C0mi6Ma*v+n04=;Cekr&KGrom;Wc{p6@= zbOQ1yT$?n(4ukSjWlcT7=c;jO4)s}kzB4j(%jY^NTlAB^XI46f6tnWA*A}z8P>?2a zSCVTG-nU9Sq?U?^iF(JhUGgDzlyJ>mOij&$Hhq`C=Hv@#?V7-9RvX=$aOJ`MulYty z_m=8K64?i%wv?7B58s8OC%_}S;%NW{K%S5<5=tQ-LUd88z(XkVI<2atr)W{mt>jz_ zGZM-rT22PB1Dm)m56Mz~Vf`awk*5tCe~w0r60e5Zrj0YHR4oH8?FK!9#@q7{7BVd7 zc$<>T@KYm6;&vyO=%@XY)1@GwBUd>_tMwz5 zD?>AsX;+)zq&C4u?Ed(~6!SoX``29&dBCXGs{=|L9Q;>@N-?3@Oa@@31J|Z(Q|j_A zkK?uR18)DH`fmT{XD{5fQl4pEi|f6=$V6N9w%jtX>B5v)XR}`X1rJ0b;}ck-woUfY zz5{l>TXEzS=9vLY*Jw>)i<3P+%Zghq5F%}kRO$s8ic#g7ROh6uo@J4B5U5GlbSBV+ z>arpv+`KatXQWu2qJ>qxY5pql;Ib z3%5Dh?T3f?9$R6E&~wlsg$`P*<)k^dGbL}k8fCf0f9fAeMXh8nbT+VbCO_e+xL65M zS9;M?YN|)bTDeDbmWn=!`M9bN-8(M(w+F*13(JN01t=i7v3kxfH59i zAS$xhD6Pvc^TTw$QuUd)IK@=S8hz(0uEij93?TP z((P`M*UFdz!HX52Xd7M+Am-iTJ@mQ?wQJ2b?leZ1ucV%%dW$^GH)c=Ll?X243d=mj zZDNjFOe=Se_%xPHun@`2v;lzB8Zso`A(_sYK_@sfk1*()cuMY8dB#vzTF3Twm*K$0 zdshV*(+^|lm7HY)t6|-d4o-41#LhfUiMm_wYo30leT%e6R}2HL#tnths{TW46!hy4 z`Na;=v2Ri&ph@!T2ev>!lp%9cua!^p`(wBCv;0ClD5h}9f&X@X2ff#R5MRYqM`{D9 zUK3Zb0rAnfVf!C#i(HeAM_qmOLW?kmS3;Hv5S><$R%HOwt(F(wwu6(K4zT6qWwU4A z0x#EA=FVsTk6$#!L0GzY&(;=EAF9OS5&qcw7hfnz|HCV??^Q@W!fl?0Z9>c(7Bv&} zI>DOlQ*`jrl*@U}5w@ZfqiIDQ@iGcdrwzxdh}7fNM*1;eTw~9e=*K_-y{v_}+M%1e zJeDnf#~r1hI_JCw#5!j{PD~qS`!=_VQC#17A0wAuBbpgCLn|=WmB+k`EPH3HA zMC#_N%u1yM#|$uRZ}cR5nAYY zNz6T3KKAIs6|I(|Pz(q#(+mixPz?yMpcyn+Pz*}u^zt+FdKExMD?j~8*a#|?%G*bn z4PUvPkI>QTTOF>uv80^Jr|Wn|7mv7O7hK)Tt6l;muff0TjVGSIsQ!&t2H3$h)hp1H zW-4bGt+=RB5-8{cDtJuOpy4j23Na{P>n>I{eId+2Kl7o|{5229_JuWc4rumSTByS9 zxCWMEWLA)B8u^J$isJkgvP^K}uio06SJE0t zJFvfOeu)S}!tr8#&)S15lY+8b%s2B~0*bkKcg->hB<8_k4&#z&Dt|T!pZK6R03NeX zG;OmnXg5LhkfvIh*fSIZbIJ^;a5 zk@y6Je(wP%gBJ`>*ScTIxBSJ2P$pb>JPZ%7#uP0L!9wm*ugo!C1;|Th`0LPs^b>#O zAtb;96rq>dlLd-#9@3^){l}@y7jnY!1BfS;tA7bciG))oZe>5(ypl9Od1+pwE`n)U zvn5MT(&tM9^XEzxN{daTKYsaEf;4B#jxWNFpoN0=RsH$5zs?SHCa$*?E_81AHKenB zTOF6ppBV5bxWxUL8h`zK&Nl_m+T-&x9zUEhsC|JW@xD7)#PjU9tKLZ5;>SM9JS!4x zm#^ouhOa@GZ3%ncXjfzq9moIt>8$c=LEw)_p7SIWXxujJ|s>*{mEY* zC_(D&e#S>lyZK?n?*R&2o|MKzzq2Mn%QsSgj; z>FUt&d5&v94;|*?hV?p6hxy^1$2Gf}-aqXhTk>9CGt07NqFf1)Ojs0=8qxlO< z%>nIn7Gtpw@JYJ!A4$G{#Ba(;4XEPrW}ai!SWWc|>ehbEuDWD!cR7%DC;m;NfyHuz zAlmm^!3B9ZXS&;6UZTM6#|?^FLTW)lT>>e!z#|4F{$9U@9=M2uvOGrx=@CwB`6_uU zLEB)5+u|f8j(WV*h*|G5EF>*WJ{SxZ!aRfu?v@B3p>7hpzed zzyr@#Htl?0&%MeGb#<|SAIY$~O`A|GwyE!wq^`gpLtxk9r5ZZ!H;fUwphIyWdcaYo zx#>lI><((3V5}b{MD%@%iw(dNg(UW5Sj3Em=uxLWqjvV4;#=v6-6smax)t2yDFW55 zdE4ZooBCHSb~59yvcoQ7VFf7`4hi-X*_{DFaS@S&O&7Q^8nz4oF%6KQ9Z}H97)+@_fxHYAu>jL7Op>CYoAYZdRCUUxV%Z zpUr``;U~FgVfIUCINLTxkh1Z5Bu);(F|m+un}qL^-!E{REn-D(n$1!f|7aN(%Y8Rw zwS4)hSBq{V81UN4-aE3nC-GWmU(R2kRwB#59`8Boh(pNb;1jsdV@?^V>vbU2+2Up0 zc57a`JNNEXX>QD~4GA8{;?-`MZ>`{QAlS5L2TG)Qe!{!c5@{u{aPZ3$hRI=o2B@ut_!BCz5q}D*u`b5DGUL=y?H3&{ zWwt|whp2hRPY5x|&BFRH#8@W3Gx2sWD0_Q_^O#Jl_4h~!-tTS3iPZlD9cmM5yu9xl zC*xV&JlXHR;~4~Kv`0GoM3~2o-b@p4i}-ZgxkxxM6!^l|S`+<${ruOEb+>?$Rfot5 zFji*zTcJq`;QjBo5sKXsF@aJO#g5Z!*nBQcb18cUuO^k8FMrMVb)@yNU3~>H{w2Dqwc)pRP7CNbn0u~4EFnely z+pWHTC)+d=>uIt0`ukNzzw)G*-aeuWZ*P(NJj)AQN%oXemd%+84Y8D>5iw)Rka=i|JIvFW*PYxw z8KtH2z?9_@&M?Xu`;bUBaWB}HcqF(?{c)Lk{AniIKg?MlI-9A3fUYe5ywRla4Z% z!Q;4mE04z3Awmtjh(KaySYvf(qkKm< z`b+K4f1v;wmQlxdGBr;tVz}PVWHiJ4DnIkrYb8Wp%JI`9{C= zwK!{bYrThRnp4KjakGIuC`?@YJL&WmB&I1<>cd7XTs(G zsA`9w+!nOJ@;x?tJ^XcRyVF*O!HOtll^>`C^Oel;CW_1wJQ<8Wo_Eu%KCxyn)3y-c zGU~b{FSdcC1^IF|aH>sfG^n3T*d-=B^lB7#vx&TefyXyY=p!jaUkIZeC{RqQ;Ag0y zHI*zQnsQh^#f#a)6m^gav+2zhKDRAD3%Llim}x2n_MytFzYi$qq_MHQz=$Th;==mk zg>s2PY$Z0$zq!oKJ}O9;(p(h9;`pQbF9_u)Pfz?clUOpYpknYS_LQ$gGE~nBWSeVJ z=QxWu40ybMI8QbD4vSq5Te~(vQcn^q7Q-5~K!1g3(?exNpMNElO^HFVV%tsz8BNS+ z2-mqwKwwkgIWGr%R2hQ5eWa&2rMc=MNVZH+6#op2t#{DPiT$c>Ask9bk8bifXmH+P zZA6-}bY_T5RHmLgX4`f;cUo5P;7zp)!$qsh zp(q~UoPDk0IK4!fZxm65d9n^UnU#BPDNGBrJdSxoBJrs}(m#x{E{yHixqQ_%9Bq`1 zCbJ|1T0N?@JjCN?h^Oy)VcG5bIvvm|?7kuiokrUbD z>};zoZQ)5@5&ZvjA_`5RK;t2`eOXoAGf6eLV_)SKC}reuI)s#wD}tUmA8N?uZC{B@ zJt|9m++5Ya0y=f|HcB#u#8Kcwu|Pf5hOmv^b~YsMlrl`W#v5{B{%j5S?Pb(8U?Auz z5DS6WXUbUL07+cX>2c?4!rW1jM!wIxruIdj1KBM#ZAN(RJYSO?V?`iU6D@qV&8%LN z0Tl!~E*kKmLn;(2QU6+~!f4tIpLOb_72}n0tIKs`k%U=QDLdf!qzmqrOcqyGP+kqqFfVBQ!aDko(6?sqQm?`;Z zbf&AquAg(zzVgFcIic?TV1F{EUR8T$w>^_5S1=&(_W5n8$?cndyq}8i=wN2Q?$-Y5 zL0p*Uz61@)%SRp^?@fx8F7=G0N}<)Zg=_I3^Ao2N(O?CwDVu@dGHGUmQm@dH3VpbR zRiwwW()wkC8@q}^|FFyV1Y`i|$EaZffMKz2-D3RhxL4&WxjR-xzdJ zV)bP5JRA4*J0;&x-AXtG_lR=bQ|#O7MOTTwF+|Kk!@ef+tw#zv=8rTNk|i??d4GB) zzwv;YJ(Hz62^kPpFbyaEhk2b>Ku#u~!24wWC zQt!`)w)UR;$bai5(Ra0ti=CV7bLM3u$^@$CXLH*d()g)Y2?&bsb<-@5MW->v-S*RQ?ydx^?#TwQrx&$X4`zP2*@)k`YB`@I=g zpHo^o!BA~~Ab_boUYqqZ?eKq_kJqNH zIKuP)kN?g|Ts=EMzwzId3P2dEHwgJRo&Gy##@7>Hr|XB_(`4-Xa8p`PE<$h4xlRi1 zc$2WvKT*?m)9>#ljx85C=Ns2w&ut%vcEZ|`{>?>uS4(@0Bf^#TdHVf%VfhH!`?i#0 z915|uyO?7_1Arqt{KOKYwhRsd+12zuI~OG6=a+f?wKL)JbrAsX6^s~_iy=k zsrl;EDVHR72CbWe$*eDw`aL}~dkx*XGHiV%V0Ib-Gica7t@LyQ6+@XNYwP;cqoF1J z>9vU~tdoe1!s#uE$<~L%bTv}CIR9UAL~nfRx>Ky8bbsQX+09a#A6`F_Nt~sbWrn@r zu2QXTi^;EsbY>)b20cq>d%|w>J*{=4Tz+@v>UXcW>T6f74QjZj@^jttzvQC*iS8jD z+Ajf)eZ|j8HT$(YOEu@LY&N@CfXv*WWmbP2g^mHfx~%=$vQo|bTt0m3=!x?^YSDg< zu7+4d)%81HqbC^_7pnbBSD`=i)#T3dm8fq`4w!MmY0S_~-LSt)l{Y2#`cCN|lxml* z^vbVt%f}4V;qsqD`N2H=68)}prqUQ)eD91U_v%Eps5xjRjP_8fms-8$l;mE2DD_(a zxy8cE%@(~(u8R#O_Xc`K`rakD(f%KPUCMOUlY6ruFj0B!_|5nERzb%0tT#u^dc(ex z3ULvC;%n)CewFy0Sz+AUu__$SE?!My*?oNb$dCK}rP{ve{n}3arVy;YQK~hvk-F=v z07piR%1qR#pkLjt;{F5a{!scHv|Vq|t4e+d;@K&c==DlMvIQHA8Xn!(I+NH*|WC6R@P`WWOj zwV`Jh|Aj8C^7OWzbwjL<`ut#$?;RrO2K!LV{wA)6`U1F~itF{}@c6ys?Zi*0NpO!~ zucIuz&Dg~!4&`j(|MHJtxVrb()W?vDLN5J(8chFPk8;9P1$hte^$^V-n zuel(9$lhoR;Y48%HD@2a9O0qwd{s_*KiZI2GPJP|81e~69P&yq*s2TB5610RW@baeRNWpJ%S$!yyYP)ErdzbLswbz*Z=AffUw{sqjQ895|-J zFZsA|{%lv1+uWeWYkt13@(eBf$W);6T0O_Y37R`iMs{(O+93M7NCA<Q>$3cd*RX$6y^hFV!5t)M(;KrhSd`ngi%bS+0i?h$3Fl0B~r$V{ApN-H;0 zC#ztA=WC}>yqH^Ua#cZ15!0csD<1%omV^>gdgfp#^&20TP%pZQphdqNO5d(=pCr1= z^XlEFAldURhNOl1%mV~tQNY+ABS@^)Ks#}LYv7hsNku4xmyfYesJXrch0uiyK(d*o z5~uV*tRG1+o;h)#E{{?6MTswBo zOs8qa6#{OqwKVhGYdeGzqN7j5jEkv6fa#I{<66!s@Em3ZrMt@Jp^`U57MlDql ziNh9Jpca$sDh8?YZ;3zpvVbZ#5F35pq6f?k#KVH=mCz(ythb;TECdCDH?c_kft{#7 zv`N1P5$2fcWJ^|p+hux!-KivvB)fPSOpp?Ad`alX=ZanA5}N8cr;D}FpFbGq(y{hx zook4ydvXl|jFJ<{#6Qkz<|)-2n3Ka^2caoY*MG$znabWIdug$fXM$QP3T8Y00F_Pi1Asj(E99Cv|(O8Ax{E=on;7+#-3x{cRk1z{&7EZMFPE^F~ z=~UuTEqF`HNam3WK?_HoiO#cBBDu4P zJgTS>Ayn7Gc_FOU6J=t_Lq4k7K;(%Mm^IckooHZ$7X3&Vx#~!aJk4d~HoZ`6<}q>4 zImtssiD_(Rg3N3D0$Grq7>|hHmQ_k+)iA@=T7Zl|O0H`fyWwBP*Mcd14&IkI+vH?;leWN6908Wi5az&%Q+S#gl(U7ZAY`XId>R0b2rd zib?E|(4%)!ryX+eitI~X2cBiNkj68_!N`&RTzf>y6LPJ6Tv{8=O$318y}xCLYabrg zUm^UW4-G0-M%`2rxyq9b$0vdo9wbDiS?8rkiOQaOaH*W@?MbR%Dcz`g++78YPSsj@ zjm#!ptho_4CegQ9%QF$I_A&ynARbcJU$=!LPTh6esN8gGxdDO0Q(=bndHRhTopjxm z{LNqJ`5|(6Q?F1Dqqkxbkl20(R#j^)i}2mWB9%`lp=VQOSQpk)?P&y7+?rBDW>@+T z#du-h@;83w${ECfUDSSrd#ttQ|4L)=*hCmO(|X`OOtM{x@|8R%Vn*#4{bjYWZEdwh zF>|c8h|JeA7G$k#1#j)}ktiamKwwbAmE2K<)F?*{Xzgw`x|Iarzd<-GyP|%rZWC}s zrJ~lN)q>3iE>X{a+w1z1?-fzQ9icnc(tWJ1KfNt<2ZC|sP^C1EaPqz4(5)BIfU`zs zE)j|fq|Pg1!85&XOWh^_MAw}RQIzpfX5HN_d`7@eT8E=P$!M8r<_|ABQPC z-9qg+36v={fDZ_s0wS~;(6fu^GC8M~DD)rbRTy9m{#tiGq_Gk9L+kG4bhT>ArI%is z`LfU4xaSRX8YZxIzeAMy11y-PRexC}oP|0mUV^ z|HAExZJJyPcHfyJ4Ntwl?KtunYk z4Me0FzKzx*Ftl$o)$TB#Ai!dTkgmojZr1raZp5meGdB;|r~B4ExsR$v`O)L~kLnBN zFIA6$i#!g(STWA|AdHW?5oV@#inQDZlD30kGx`MK&HFV$CHEVp`JY2oW*+>&3UDlS6IJ}) ziN>hQc0f<>+Ub6pz<9q*`vBT<9?@jV6ik=-_X$3H9}ah1GM-20@_62-P96^O*z4EHVwsTXn-0LNnGUI$ zVo6$q%d7E}gdl+xv0#tIsRN>mA}>eKtk%RB9{$3qWCfjlfGwy>tF;LOvZh37CS-yq zRBtquyo*bHegJUeYJQ?6`}dzFW=xHiSYNlFikE0k(>@RQQofvJO{q7d zOuV=g*e3>`)!OcS?f_e_cGEP80KM=Y6~C~{YQ>O%ow&30Jtjka-8O;=^JN+fy{Lo` z)DVNGGj9dN{io6 zp3-pymJxPwesqx8i`5k4zgsxc5+zkZ3da&NTWFzuNa(g2@^gTf*ovOc39Pp{gAijE(%gSmzA#@v$$`e9T! zL%`^$lILUn^GnG**fq6o)0DbVve7!p{F_Ap*4FK^Zi-qhO}@S4H@0-JmDXfkQbP?k zfEl6xmw-<%VO#5D*sjU@mC& zaO?n|{Q;m@Y#H{HTS)-z>-TYqJKgIhE6H{l3D(=t(s|a&BE;v}|4_-Re9GY^;yq!By2i#Ya z>Ezi^l|k4IXus7pP8MHNtZh#jn#8}ilQgpb+81yi5#+Vzlk_w&;GFJz{KwLFU}3D>m*gJC@kE~tJy)9P{Ls^KB`d-T2FUbVmAryqRKxJK z@qG1d(X@H%fLLKxS-+n;#oR#nKEU`U)bVNp5uMNuE^na8z?i-M;eciid7{a)5RdzI zv0IJ$i}+Gx@)9*$T|{?mS9tkRZ>eUE9y@+Ja`>H}kKfx!9GU~x1HdZj=#1`ra&Pre zX0pF=?;JltsE4Qyg0u}*N2L0VMq;7fVnY9ohdAgi@By)=Sjin`&S7LrI1hbIW==b< z-3;^{@X#l0OPE7*%MIi&S<4ONc$v$Lop`v~co#qS8+-At#F`UG{$@AT*`Mw=Q$~ue z65~hbvP|naTV5Toq^_kJlqM``f_kUFgSkKm2d?I$-hJVo$;lmWjjr>Vd>=~v38U~z zawO{*njW>Lbfvc>mb($n%rYV=mLkyA_SQeTW|~V32xEjXW)jsFY4Yqg{!JMR_#J#Q z%xejcgdR?DIm|&^FO=)D(3%w21H8Ci;IS3p5#ujl36KEa{{4A=O+l6T@OEOyt#5AK zwEd+QcWmE!cj&fn7a@`2n?U}sHNRgIG{ys@bBi&)r3eI&(Zi5g^SM=6j<;BoBGw`l$&{T|y_p*F zJy8wCK;CU5+m6fJ2Exjx>@0A>RtKq#YkSFvNq-##evA>+Ys84Ttfd@2g5{lQ@)PV3 zJWpm#crNvZ{q`S80>vtoaM2&kA-}yV;nH`L+W+8T|{@ zFPg3g8lw>{%)tudIWNy?eU)GHbsC)+{j_Sbm8Dr~vXh&Rv-J!MJI0RZ5@{z!?Fh1D zg_+FaUITHIpuN7%pATE7fq*z%`B)B!N`?zTBcW$F6a5_Xjt5wUVfS)FJmvj~6RbJ2 zkzn(oaYPT1NA$E?Tz)Xhg$Qvif&rS|l!yzP%?+hCm9P#`{gQlTYlVjW*nPU@0<@M$ znUY}zm9HLW7%)CNb;5D1Hr;tZ;sk|5YnCv}ht@1~r$L1`J>o_s93|z2mUA#87lGiI zWIh8bjyct2IWSiNpq|!$&ZjvW;WcnP!@8R%!lI2@Zp!-ltJk_yo0v%$XQnBD`JSVR zQN0mm0lrf~9_9AdT9S9L=}E?IZ*8D?80W}}{(?i}e&Ow{FA+!9+I>Bx&~?+dMIxTz z&%ThW6sc6ietBlG*0D`DlI!&6dyNQ9?OIIhyF>F0LjMbIKObY=*g?IHoV(q@n_E8w zDB_6nA}p;&y5?ibp5Uev0NS@8*)6$C4_;)#vx{*QY(@_RMAiBp}Q^AID} zM_eJ;Y4lPnU7_?mT`=^(^Nd7BC}YdI`|rTj8!pxeXTD7{NxuQV)x*{Q1N<#yw2Ihd zG1+VW`^9AH98XNj0yg2H3!?HlVD83}Q0hPMu(g&5(@Xf+Hvb=Vzbz8o`uOlG&nKwt z<3ztrL_wj!f9r|{T|mLeIZS{bTqwx@`;n0UjemK_?{bm4|IZ%sAIz88LEV+v zy@DWXDGx4A;y@%TLJFs;kV0!Y7EUr{9VWuY^Pew7Pt#%OImsZgAkDCJMq_2CK{m6j zcjr&8X*24!>l=_6zC=?qJSVI}Bv-7~UVwiqoaIGKrkF9q6V}$8a+cR5%@UB=OPPb1 zca-q1H#pie+dlUX`QrNnL^mRLVT1_^MK_`aO@ZiE6?$1rC%6*ldVUUsoo%|Y57?Kzx#%1< zW)FNKC%QwaOCYdvl89iZlG0GmSd;tgub_R@g#ig^5~mmLdFhcS=Sw!%4tn zo&S(R*Wxq%`I^Ex`@N&!b!sQ!b?G`y^RO#}@L`pvf;1n`Bp1QM$ADHEkn^iUl616g z;C<4w8tBe>?_GdBd=y;2x0`VNBn@=?@b+P6`+MqQ!G46nk~=FfebrhimO86cE|HPE zsmzzS#kw7uu<@NaCy^{3lN*HiM3Ra2W!Qzjjg7nKY_)F3U>o<{@;_FQ6^T@DCO>N3 z_7<4>?D*aI-vJfoG1rHT>|KfZDA$ZYW^t=pfM*5*l1)QxpXxsMtR zE&2}D5u~?wLO;F|chqB)dfXjabRpg5^{OAO*Jrrb(85Y&0#VPqLwEOwR`e(P{Tw_= z?(C#lJB>W+F2YlcaMVHgiO;=R`)DYYrkeNGO49w5x@=}vwsFrbb!Lr`Df^6=ofZBk z_gnh*#gf>d+Xuf}%0VUs6ndkXn|zIX=KN3HCJRk(B-C~gYU9+|wB)+ZLC%-?FzT+t zpY*oGFBT`)1|rsk^roKCU!vm?Gjn~G{@mZ%@`bsP)nuB{BbGUAk`OMF%pUITn z(D+o(G6FqJPI&F3_q;GM%*lcYwY)++a{hPO@q&X57oSW;&d@-JPV^PEeg>7P+k_OM zbS%q}9fLD?tKS}Y$sc-n?Nd9(Z>ERcGtFj%ajOa+mC$buKOz~|J$~~@ym3$H$3AK( zw4!YL5*i<#hgPf|*b$f+TCpY97T({1EWNyUGtEgQc)s-T=K<7{wwjAW4_{oeVbX+g z8zvp6&3jqPYTEeCp@%OD47?nmTe=^=8GDH;O&>3KJJ%m7h(=*QK@I1(G(o!0RH8nD zi!Wd0(&+D_{sJBBxtq-_iVu4DW1Ei7B*YLb^UubRH}O#RvGRi>b~4;DaZX>bzfn& zRNx--5cid4OC{a;^O`iw7K0vXk=&yyv!#k_>2hCVw$$)_K<;bJmRi0K%YD7sQqT95 za^GOKH1K^y?wib(Ccd95_Yt!tf-ZfzE~92kl#38-xNkRG+T~v7`*VT&5`s_LQ5$$#p>vJXzzM8xDE-=H{@yiIkvZk6KeZ z%np6zDJu=US$E_`!=vGPrw4K1BfV;H+7GGti^}(bp;eaN))NNrI6uwhx7$~Ey_wT= z;jH|4FS8faQx)e6CXAZVL0>|*O3ZPigZ@Mb439Q_bWq1-z-$YQ4hC=;G~0rsgJE2T z&9?C9U?ncg%(k-8!3ZwP&9?GAgUk;lSW#}P7#;HAveIm;93A4O4YSSIGYA&IU6t8Z zH9Eu{)tGHHqeI+Lt=U#PI>a5-n{D-@L)=k=+14;R#2q!6ZB5k3T(T?9MK~sG^H4;9z|*zC`|3)NP~b5kYn%vWFY@-`uS58(I^+8{x_F(3-Nl(JDV^;kLUu7!e+; zLdH}3jr)7oQy+POeRsWdapAw@&X|Q*SGUnly>}|r6epf)a&s8aa0eM12o*-zSL~L^ z`$K2@_`NxV60pdmb;$BrZQ}+(@dy0`{N-$n&%~NUZ}3XDzGVQ&ox}x;L6>cg;kbo5=IsL zGL<1~KYBAY-NM^?$*js=5=DBt+wWXVw!Oq1O+=&!5iCk5B^Tx2%RbgIJ$+69@a$woK#<04A<~3!!G~X3AuPL`8xS{D$k@zIItnn*)!Z33Q z@9Y~KzGv_Tjf6Bg`_wr^^a)(GCy0%dYCI&adu~y3_(ZCYgyCT0wUs^pCBueLF2%|z z`s`q>i^89#JJluF~c_@v&s1WU3xN%ZND9sK5nN@1`ZFVk`yrTx|ivc89 zeU5IOtJSl{ABIEePv8j};)xV9${N2?7D}H)4@MSw{O;L0QNi_4qzQlyMIuZetU%`F z`+51UElp%mok0#P{Y+pvAnOyvtSk_UmgpMR$B9q&-mYsSPfIKFcEbHKmmB>c;Btf0 zOII80YpymBSTdIx?AF|Gu(REY1juSj9$KoNsvt$?twWQpd?!UnUB3EhB>#s(sj%OB z_9QglU=r>cwJ?N)d zr>kG_RUos3pK%}~WpMfe`4>+v*0tm<;bOD3DYWPZ1jp9mh8HJ>37XKu)AZ28T_vH1 zBam1%mu%CKlKuRq7dA;ibQ?Y7=xXKg#uwIZ?SH;BLN#C5^uoaQ;&!@vPQsyo#bVm< z%G1*$7m=Y-Jv^`jqOoF+Lu^tpu&?4+;>l&28h#|UBa`O>OqST!- zz|2C%7~)Fyt3L*YDlE<018E{rLYAc2+Zz0@VnRR%0lyt`zqLljF#mNL!*`y#oCl$j zM)wt?7vT0gPhXz*1YynZ5OnlRJyEF62u+w)S1=@%mX^W#w#26!c*`zcJKa9s+w&0l zjCN!tuS5snMXIfLU?F?KLNyp(QsrP`t_6GFy;Q5Uh6)d&k^OzrNPYut3l$7UY+xlf zP)mikqJdRMXrP1}h|uj$6#3~9io9Z>NYgP)49UMty@D65dUAG!KeXsnA5RPRpM&Ey zq!M63xWtMepKdzCO`?W98@lM|Lm^fWM9RJQFa}V%o~yN%tD#CdVN+hd0LpLV^0mhR zYDT{T>{pDFO9uA(5k2P=*ywk){AXa(jDB(cBTmrx)=EH~M?5lH0FCwGa z90;X%%dQcfI8sUdFk#Bs3Mb&?M=`m>knq`>HjGL8=3gPf3R{b=@SN~InIFWo! zk`j~Z8~vda0$Ao%H7MiU2p2)$4lq`JYv#@*mF(PX$PsdX{0)4TYgMUSXZQ5c~z0#B9ja4 z*iUpTJ7`L6dW#%QA=&VuG$Mt`{lz~xE^FKsC$gb^$+uN0`B9^rn(9jTXA&oo_nqnS znIjgq2y`2>e1ixjuO*Pboa{BaeJFTJe{!Rb?q>N+v52}(*)?FFo_y7hz~)ytbPOXZ zK`JPO*U25esQ!K5oQ>|{5Tag(^XF{7*c38y~Gn*uG# z(a`OC_L92ac8IM6fczbD>@3zW738S#6fbw4#rxJOd0y_UKA#z9oVTsA6PGmu}DCFMV6*< zgc!@$agKt*JAwBQW3^FZaAaGzx89~nWzeL|Nen6b^XX{tEGbOp21zi$OB{{Qjy0O7ybi(MA>bsrS`~p zB&h0JmucpP#M#LU!im!}tz{#D5!Y7tH;<4~&*?+Z=RRKp$V*XM1xM*;El-$-Kt0jze%(sBFQca6L z`b%`1G^i!}w=c6}TSZR7Slkd^ z{ADVdMGBjx8ppaohwG#g1o1pa)p>N1Pg{8$hWk4V*8;>&kdv)E{8|{xVl#DFd zC60~VvI05h9Lc##Z|O1aBUkwi;w5V#ziPa2T7qO$r%FE&G*Qh^>e+xhQ)S71&WVz* zA_x0)8@<$Z2?sKIk72)F^(j70rClh7t+bS@5Wh4=zGxs+ayPSwU`c`gyv> z2LXLT=VZHG$@hv)2}X5><}XFB5A<^zyw)8zIx}JuVqBS&>w~KOTRSvP*hX#MD`z1; z&)d5N+Z)Jw{+$U}n<#LY2Y^fKdC_JgCYn z532A7;cWL81!oK07w_NBQSr1fM(qd&gfE1F^ib*}h~`{{?XT&YQjtG`OIe)``c;Qd zzULbt$uj2*i+6(3B>WH|eui~6@+#vb?YwxMDf}Y{nP0?=zCe?dB*(A0X@I!h;>$sj zUgqOPgyIgT z$w)FUocuo=A=O9CG*2|j<7#!gAM%0uBD7m^!BgyzEu3U{jg zVGb3d;tSp4Tr>&@WE50RLI-d#>^Z9VlKkRc+FDq+DToGY3{E3<`ZQ8l9|iin${B>;Q;)DpEpN(>|C-o42FK~tD@P2Q}774iU2=UqJ$ zbB4(JQk6gm{n!?*+r;M(C?JD5_{&6ux*3X}+vjf-ZUT82%*dl+vszQs+!yLx3&TNrBLcizb)@^Ik%BOlU>__{Rr!gvTSq-DTo{8^y71XfyC=u?$hS zH}4j?A;#i>9S*G+mST!u><6U8$2jq3&}+g$f>R7<+?Zf zn+$vUZr&{#ke)#h9O z)X;P_a30!IZ{-i(9ig5-`iI_<{+8s1#aNvdltiI;ZfNPZj(|#keq-N!s{ob$BcL+! zmWN923`*L(Jdjf#sYl2t&voO5*aMHcVA}`Zd><6=crzavLpA%Hr3jtO6&lTRYS zHurYlW}kgQCr9i$Zw|2Gg5zayR!MB^F&DG(xNx8PEa&NW)QK8T!gXVxDWe}pjm$zI zkS^KmnQkp*NN{=t+2)N%aqYMn)aX=@bPAMtJL6U11YQI5m}ZYOx#ZL}9|sgHSsD(JO?Evv(N6+qr71Z4BuoYRQZ!C9`Y9#=;y<{0R} zcA^?s(2_O6oW87b*&tWR$gxAEt7r@MM_J|^D&9=rlhnl6sBVnMX7H! z0Uc*gp7D`-;T<-N7%`UxhIE6RTFst4nWJ=LFxDJ!H@g%%Q4ure{Y1=s_eWO}+C8%1 zp(gR4Ja6oSnmDQ_HvbF7u0k{~3pgKo$Mf;>#YoQ8m~shRps>$epP1;nOri8;;tl~B z)`cC`)QE3mgcxs$!QqFgQNlKFj7k{~X*@rc$O50jOLIUS-(~MPk56&-RCLgN@us}U zNDFubtGFsE#Z!fX2J0mRCs?H99i}fZNZ8dc>sDJAEoEp(?q6>2GNR_0Bm zauJTo%AU&>DCFv0ac{i&%$+e6B&`?(JyTAmSXAzEP_U+=3CZ3@d^1?`CO35h={zN&5l*4TtlLEx_vqoC{Uw^l{oks>(e}2CG1=P|AKb` zK|QVe7b|7ngpZD0hX&ez&1)ZI5Z?9L2O5MozE)_(n5Q~7{EJD;*d^(mi5{O-bIF3( z7v9Lk!_b?U7}in*8(ALC&P2o5#4CHypj3PVAWJ6Z^OIeT`RCkpKuLa)c=-aw6jNSt zKAZizS!mY_2Rlo4^71$ox_xVeSxyk(KDa6-;(=i?x̌dS*vq|E&+}1+`EU5nZ0yn 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

RHfI9 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 z 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 z%0A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 literal 0 HcwPel00001 diff --git a/mingw/bin/wish b/mingw/bin/wish new file mode 100644 index 00000000..d1397371 --- /dev/null +++ b/mingw/bin/wish @@ -0,0 +1,2 @@ +#!/bin/sh +exec wish85 "$@" diff --git a/mingw/bin/wish.exe b/mingw/bin/wish.exe deleted file mode 100644 index 78b492eb40aa308fe1d72cafb692efad48c446e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 28237 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 diff --git a/mingw/bin/wish84.exe b/mingw/bin/wish84.exe deleted file mode 100644 index 78b492eb40aa308fe1d72cafb692efad48c446e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 28237 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 diff --git a/mingw/bin/wish85.exe b/mingw/bin/wish85.exe new file mode 100644 index 0000000000000000000000000000000000000000..a02cce54b124ed6e7d414d5b9cc721f9687ac05e GIT binary patch literal 28077 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 literal 0 HcwPel00001 diff --git a/mingw/doc/tcltk/PORTNOTES b/mingw/doc/tcltk/PORTNOTES deleted file mode 100644 index 5224ba75..00000000 --- a/mingw/doc/tcltk/PORTNOTES +++ /dev/null @@ -1,8 +0,0 @@ - Sun's Tcl/Tk for mingw32 - Version: 8.4.1 - - -1) No changes for this version have been affected. -2) Builds OOB using MSYS+MinGW -3) configure --prefix=/mingw -4) See http://tcl.sf.net for information. diff --git a/mingw/doc/tcltk/license.terms b/mingw/doc/tcltk/license.terms deleted file mode 100644 index f1dcaa52..00000000 --- a/mingw/doc/tcltk/license.terms +++ /dev/null @@ -1,40 +0,0 @@ -This software is copyrighted by the Regents of the University of -California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState -Corporation and other parties. The following terms apply to all files -associated with the software unless explicitly disclaimed in -individual files. - -The authors hereby grant permission to use, copy, modify, distribute, -and license this software and its documentation for any purpose, provided -that existing copyright notices are retained in all copies and that this -notice is included verbatim in any distributions. No written agreement, -license, or royalty fee is required for any of the authorized uses. -Modifications to this software may be copyrighted by their authors -and need not follow the licensing terms described here, provided that -the new terms are clearly indicated on the first page of each file where -they apply. - -IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY -FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY -DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE -IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE -NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR -MODIFICATIONS. - -GOVERNMENT USE: If you are acquiring this software on behalf of the -U.S. government, the Government shall have only "Restricted Rights" -in the software and related documentation as defined in the Federal -Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you -are acquiring the software on behalf of the Department of Defense, the -software shall be classified as "Commercial Computer Software" and the -Government shall have only "Restricted Rights" as defined in Clause -252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the -authors grant the U.S. Government and others acting in its behalf -permission to use and distribute the software in accordance with the -terms specified in this license. diff --git a/mingw/include/X11/X.h b/mingw/include/X11/X.h index 7755cacc..bdc4f136 100644 --- a/mingw/include/X11/X.h +++ b/mingw/include/X11/X.h @@ -33,7 +33,7 @@ SOFTWARE. #define X_PROTOCOL 11 /* current protocol version */ #define X_PROTOCOL_REVISION 0 /* current minor version */ -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) # define Cursor XCursor # define Region XRegion #endif @@ -669,7 +669,7 @@ are reserved in the protocol for errors and replies. */ #define LSBFirst 0 #define MSBFirst 1 -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) # undef Cursor # undef Region #endif diff --git a/mingw/include/X11/Xlib.h b/mingw/include/X11/Xlib.h index 252b11d2..3af3682a 100644 --- a/mingw/include/X11/Xlib.h +++ b/mingw/include/X11/Xlib.h @@ -27,14 +27,9 @@ #define XlibSpecificationRelease 5 -#if !defined(MAC_TCL) && !defined(MAC_OSX_TK) +#if !defined(MAC_OSX_TK) # include #endif -#ifdef MAC_TCL -# include -# define Cursor XCursor -# define Region XRegion -#endif #ifdef MAC_OSX_TK # include # define Cursor XCursor @@ -42,11 +37,7 @@ #endif /* applications should not depend on these two headers being included! */ -#ifdef MAC_TCL -#include -#else #include -#endif #ifndef X_WCHAR #ifdef X_NOT_STDC_ENV @@ -64,7 +55,7 @@ typedef unsigned long wchar_t; typedef char *XPointer; #define Bool int -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) /* Use define rather than typedef, since may need to undefine this later */ #define Status int #else @@ -1206,7 +1197,7 @@ _XFUNCPROTOBEGIN _XFUNCPROTOEND -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) # undef Cursor # undef Region #endif diff --git a/mingw/include/X11/Xutil.h b/mingw/include/X11/Xutil.h index 8812c809..e42ed5d6 100644 --- a/mingw/include/X11/Xutil.h +++ b/mingw/include/X11/Xutil.h @@ -29,7 +29,7 @@ SOFTWARE. /* You must include before including this file */ -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) # define Region XRegion #endif @@ -848,7 +848,7 @@ extern void XXorRegion( _XFUNCPROTOEND -#if defined(MAC_TCL) || defined(MAC_OSX_TK) +#if defined(MAC_OSX_TK) # undef Region #endif diff --git a/mingw/include/X11/keysym.h b/mingw/include/X11/keysym.h index 027afe08..a8f14089 100644 --- a/mingw/include/X11/keysym.h +++ b/mingw/include/X11/keysym.h @@ -32,8 +32,4 @@ SOFTWARE. #define XK_LATIN4 #define XK_GREEK -#ifdef MAC_TCL -#include -#else #include -#endif diff --git a/mingw/include/tcl.h b/mingw/include/tcl.h index 696076b9..35f5132c 100644 --- a/mingw/include/tcl.h +++ b/mingw/include/tcl.h @@ -1,8 +1,8 @@ /* * tcl.h -- * - * This header file describes the externally-visible facilities - * of the Tcl interpreter. + * This header file describes the externally-visible facilities of the + * Tcl interpreter. * * Copyright (c) 1987-1994 The Regents of the University of California. * Copyright (c) 1993-1996 Lucent Technologies. @@ -10,10 +10,10 @@ * Copyright (c) 1998-2000 by Scriptics Corporation. * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved. * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tcl.h,v 1.153.2.29 2006/10/05 21:24:56 hobbs Exp $ + * RCS: @(#) $Id: tcl.h,v 1.242 2007/10/26 15:17:55 dgp Exp $ */ #ifndef _TCL @@ -36,51 +36,56 @@ extern "C" { #define TCL_FINAL_RELEASE 2 /* - * When version numbers change here, must also go into the following files - * and update the version numbers: + * When version numbers change here, must also go into the following files and + * update the version numbers: * - * library/init.tcl (only if Major.minor changes, not patchlevel) 1 LOC + * library/init.tcl (1 LOC patch) * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch) * win/configure.in (as above) * win/tcl.m4 (not patchlevel) - * win/makefile.vc (not patchlevel) 2 LOC - * README (sections 0 and 2) - * mac/README (2 LOC, not patchlevel) + * win/makefile.bc (not patchlevel) 2 LOC + * README (sections 0 and 2, with and without separator) * macosx/Tcl.pbproj/project.pbxproj (not patchlevel) 1 LOC * macosx/Tcl.pbproj/default.pbxuser (not patchlevel) 1 LOC - * win/README.binary (sections 0-4) + * macosx/Tcl.xcode/project.pbxproj (not patchlevel) 2 LOC + * macosx/Tcl.xcode/default.pbxuser (not patchlevel) 1 LOC + * macosx/Tcl-Common.xcconfig (not patchlevel) 1 LOC * win/README (not patchlevel) (sections 0 and 2) - * unix/tcl.spec (2 LOC Major/Minor, 1 LOC patch) - * tests/basic.test (1 LOC M/M, not patchlevel) + * unix/tcl.spec (1 LOC patch) * tools/tcl.hpj.in (not patchlevel, for windows installer) * tools/tcl.wse.in (for windows installer) * tools/tclSplash.bmp (not patchlevel) */ + #define TCL_MAJOR_VERSION 8 -#define TCL_MINOR_VERSION 4 -#define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE -#define TCL_RELEASE_SERIAL 14 +#define TCL_MINOR_VERSION 5 +#define TCL_RELEASE_LEVEL TCL_BETA_RELEASE +#define TCL_RELEASE_SERIAL 2 -#define TCL_VERSION "8.4" -#define TCL_PATCH_LEVEL "8.4.14" +#define TCL_VERSION "8.5" +#define TCL_PATCH_LEVEL "8.5b2" /* - * The following definitions set up the proper options for Windows - * compilers. We use this method because there is no autoconf equivalent. + * The following definitions set up the proper options for Windows compilers. + * We use this method because there is no autoconf equivalent. */ #ifndef __WIN32__ -# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) +# if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__)) # define __WIN32__ # ifndef WIN32 # define WIN32 # endif +# ifndef _WIN32 +# define _WIN32 +# endif # endif #endif /* * STRICT: See MSDN Article Q83456 */ + #ifdef __WIN32__ # ifndef STRICT # define STRICT @@ -88,26 +93,10 @@ extern "C" { #endif /* __WIN32__ */ /* - * The following definitions set up the proper options for Macintosh - * compilers. We use this method because there is no autoconf equivalent. - */ - -#ifdef MAC_TCL -#include -# ifndef USE_TCLALLOC -# define USE_TCLALLOC 1 -# endif -# ifndef NO_STRERROR -# define NO_STRERROR 1 -# endif -# define INLINE -#endif - - -/* * Utility macros: STRINGIFY takes an argument and wraps it in "" (double * quotation marks), JOIN joins two arguments. */ + #ifndef STRINGIFY # define STRINGIFY(x) STRINGIFY1(x) # define STRINGIFY1(x) #x @@ -117,21 +106,20 @@ extern "C" { # define JOIN1(a,b) a##b #endif -/* - * A special definition used to allow this header file to be included - * from windows or mac resource files so that they can obtain version - * information. RC_INVOKED is defined by default by the windows RC tool - * and manually set for macintosh. +/* + * A special definition used to allow this header file to be included from + * windows resource files so that they can obtain version information. + * RC_INVOKED is defined by default by the windows RC tool. * - * Resource compilers don't like all the C stuff, like typedefs and - * procedure declarations, that occur below, so block them out. + * Resource compilers don't like all the C stuff, like typedefs and function + * declarations, that occur below, so block them out. */ #ifndef RC_INVOKED /* - * Special macro to define mutexes, that doesn't do anything - * if we are not using threads. + * Special macro to define mutexes, that doesn't do anything if we are not + * using threads. */ #ifdef TCL_THREADS @@ -141,83 +129,87 @@ extern "C" { #endif /* - * Macros that eliminate the overhead of the thread synchronization - * functions when compiling without thread support. + * Tcl's public routine Tcl_FSSeek() uses the values SEEK_SET, SEEK_CUR, and + * SEEK_END, all #define'd by stdio.h . + * + * Also, many extensions need stdio.h, and they've grown accustomed to tcl.h + * providing it for them rather than #include-ing it themselves as they + * should, so also for their sake, we keep the #include to be consistent with + * prior Tcl releases. */ -#ifndef TCL_THREADS -#define Tcl_MutexLock(mutexPtr) -#define Tcl_MutexUnlock(mutexPtr) -#define Tcl_MutexFinalize(mutexPtr) -#define Tcl_ConditionNotify(condPtr) -#define Tcl_ConditionWait(condPtr, mutexPtr, timePtr) -#define Tcl_ConditionFinalize(condPtr) -#endif /* TCL_THREADS */ - - -#ifndef BUFSIZ -# include -#endif - +#include /* - * Definitions that allow Tcl functions with variable numbers of - * arguments to be used with either varargs.h or stdarg.h. TCL_VARARGS - * is used in procedure prototypes. TCL_VARARGS_DEF is used to declare - * the arguments in a function definiton: it takes the type and name of - * the first argument and supplies the appropriate argument declaration - * string for use in the function definition. TCL_VARARGS_START - * initializes the va_list data structure and returns the first argument. + * Support for functions with a variable number of arguments. + * + * The following TCL_VARARGS* macros are to support old extensions + * written for older versions of Tcl where the macros permitted + * support for the varargs.h system as well as stdarg.h . + * + * New code should just directly be written to use stdarg.h conventions. */ -#if !defined(NO_STDARG) -# include -# define TCL_VARARGS(type, name) (type name, ...) -# define TCL_VARARGS_DEF(type, name) (type name, ...) -# define TCL_VARARGS_START(type, name, list) (va_start(list, name), name) -#else -# include -# define TCL_VARARGS(type, name) () -# define TCL_VARARGS_DEF(type, name) (va_alist) -# define TCL_VARARGS_START(type, name, list) \ - (va_start(list), va_arg(list, type)) + +#include +#ifndef TCL_NO_DEPRECATED +# define TCL_VARARGS(type, name) (type name, ...) +# define TCL_VARARGS_DEF(type, name) (type name, ...) +# define TCL_VARARGS_START(type, name, list) (va_start(list, name), name) #endif /* - * Macros used to declare a function to be exported by a DLL. - * Used by Windows, maps to no-op declarations on non-Windows systems. - * The default build on windows is for a DLL, which causes the DLLIMPORT - * and DLLEXPORT macros to be nonempty. To build a static library, the - * macro STATIC_BUILD should be defined. + * Macros used to declare a function to be exported by a DLL. Used by Windows, + * maps to no-op declarations on non-Windows systems. The default build on + * windows is for a DLL, which causes the DLLIMPORT and DLLEXPORT macros to be + * nonempty. To build a static library, the macro STATIC_BUILD should be + * defined. + * + * Note: when building static but linking dynamically to MSVCRT we must still + * correctly decorate the C library imported function. Use CRTIMPORT + * for this purpose. _DLL is defined by the compiler when linking to + * MSVCRT. */ +#if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec)))) +# define HAVE_DECLSPEC 1 +#endif + #ifdef STATIC_BUILD # define DLLIMPORT # define DLLEXPORT +# if HAVE_DECLSPEC && defined(_DLL) +# define CRTIMPORT __declspec(dllimport) +# else +# define CRTIMPORT +# endif #else -# if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || (defined(__GNUC__) && defined(__declspec)))) || (defined(MAC_TCL) && FUNCTION_DECLSPEC) +# if HAVE_DECLSPEC # define DLLIMPORT __declspec(dllimport) # define DLLEXPORT __declspec(dllexport) +# define CRTIMPORT __declspec(dllimport) # else # define DLLIMPORT # define DLLEXPORT +# define CRTIMPORT # endif #endif /* * These macros are used to control whether functions are being declared for - * import or export. If a function is being declared while it is being built + * import or export. If a function is being declared while it is being built * to be included in a shared library, then it should have the DLLEXPORT - * storage class. If is being declared for use by a module that is going to + * storage class. If is being declared for use by a module that is going to * link against the shared library, then it should have the DLLIMPORT storage - * class. If the symbol is beind declared for a static build or for use from a + * class. If the symbol is beind declared for a static build or for use from a * stub library, then the storage class should be empty. * - * The convention is that a macro called BUILD_xxxx, where xxxx is the - * name of a library we are building, is set on the compile line for sources - * that are to be placed in the library. When this macro is set, the - * storage class will be set to DLLEXPORT. At the end of the header file, the - * storage class will be reset to DLLIMPORT. + * The convention is that a macro called BUILD_xxxx, where xxxx is the name of + * a library we are building, is set on the compile line for sources that are + * to be placed in the library. When this macro is set, the storage class will + * be set to DLLEXPORT. At the end of the header file, the storage class will + * be reset to DLLIMPORT. */ + #undef TCL_STORAGE_CLASS #ifdef BUILD_tcl # define TCL_STORAGE_CLASS DLLEXPORT @@ -229,11 +221,11 @@ extern "C" { # endif #endif - /* - * Definitions that allow this header file to be used either with or - * without ANSI C features like function prototypes. + * Definitions that allow this header file to be used either with or without + * ANSI C features like function prototypes. */ + #undef _ANSI_ARGS_ #undef CONST #ifndef INLINE @@ -260,7 +252,7 @@ extern "C" { # define CONST84_RETURN #else # ifdef USE_COMPAT_CONST -# define CONST84 +# define CONST84 # define CONST84_RETURN CONST # else # define CONST84 CONST @@ -268,10 +260,10 @@ extern "C" { # endif #endif - /* * Make sure EXTERN isn't defined elsewhere */ + #ifdef EXTERN # undef EXTERN #endif /* EXTERN */ @@ -282,15 +274,12 @@ extern "C" { # define EXTERN extern TCL_STORAGE_CLASS #endif - /* - * The following code is copied from winnt.h. - * If we don't replicate it here, then can't be included - * after tcl.h, since tcl.h also defines VOID. - * This block is skipped under Cygwin and Mingw. - * - * + * The following code is copied from winnt.h. If we don't replicate it here, + * then can't be included after tcl.h, since tcl.h also defines + * VOID. This block is skipped under Cygwin and Mingw. */ + #if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID) #ifndef VOID #define VOID void @@ -301,15 +290,14 @@ typedef long LONG; #endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */ /* - * Macro to use instead of "void" for arguments that must have - * type "void *" in ANSI C; maps them to type "char *" in - * non-ANSI systems. + * Macro to use instead of "void" for arguments that must have type "void *" + * in ANSI C; maps them to type "char *" in non-ANSI systems. */ #ifndef NO_VOID -# define VOID void +#define VOID void #else -# define VOID char +#define VOID char #endif /* @@ -334,21 +322,23 @@ typedef long LONG; # ifdef __LP64__ # undef TCL_WIDE_INT_TYPE # define TCL_WIDE_INT_IS_LONG 1 +# define TCL_CFG_DO64BIT 1 # else /* !__LP64__ */ # define TCL_WIDE_INT_TYPE long long # undef TCL_WIDE_INT_IS_LONG +# undef TCL_CFG_DO64BIT # endif /* __LP64__ */ # undef HAVE_STRUCT_STAT64 #endif /* __APPLE__ */ /* - * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, - * and define Tcl_WideUInt to be the unsigned variant of that type - * (assuming that where we have one, we can have the other.) + * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, and define + * Tcl_WideUInt to be the unsigned variant of that type (assuming that where + * we have one, we can have the other.) * * Also defines the following macros: - * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on - * a real 64-bit system.) + * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on a real + * 64-bit system.) * Tcl_WideAsLong - forgetful converter from wideInt to long. * Tcl_LongAsWide - sign-extending converter from long to wideInt. * Tcl_WideAsDouble - converter from wideInt to double. @@ -357,12 +347,9 @@ typedef long LONG; * The following invariant should hold for any long value 'longVal': * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal)) * - * Note on converting between Tcl_WideInt and strings. This - * implementation (in tclObj.c) depends on the functions strtoull() - * and sprintf(...,"%" TCL_LL_MODIFIER "d",...). TCL_LL_MODIFIER_SIZE - * is the length of the modifier string, which is "ll" on most 32-bit - * Unix systems. It has to be split up like this to allow for the more - * complex formats sometimes needed (e.g. in the format(n) command.) + * Note on converting between Tcl_WideInt and strings. This implementation (in + * tclObj.c) depends on the function + * sprintf(...,"%" TCL_LL_MODIFIER "d",...). */ #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG) @@ -370,10 +357,8 @@ typedef long LONG; # define TCL_WIDE_INT_TYPE long long # if defined(__WIN32__) && !defined(__CYGWIN__) # define TCL_LL_MODIFIER "I64" -# define TCL_LL_MODIFIER_SIZE 3 # else -# define TCL_LL_MODIFIER "L" -# define TCL_LL_MODIFIER_SIZE 1 +# define TCL_LL_MODIFIER "L" # endif typedef struct stat Tcl_StatBuf; # elif defined(__WIN32__) @@ -381,20 +366,18 @@ typedef struct stat Tcl_StatBuf; # ifdef __BORLANDC__ typedef struct stati64 Tcl_StatBuf; # define TCL_LL_MODIFIER "L" -# define TCL_LL_MODIFIER_SIZE 1 # else /* __BORLANDC__ */ # if _MSC_VER < 1400 || !defined(_M_IX86) typedef struct _stati64 Tcl_StatBuf; # else -typedef struct _stat64 Tcl_StatBuf; +typedef struct _stat64 Tcl_StatBuf; # endif /* _MSC_VER < 1400 */ # define TCL_LL_MODIFIER "I64" -# define TCL_LL_MODIFIER_SIZE 3 # endif /* __BORLANDC__ */ # else /* __WIN32__ */ /* - * Don't know what platform it is and configure hasn't discovered what - * is going on for us. Try to guess... + * Don't know what platform it is and configure hasn't discovered what is + * going on for us. Try to guess... */ # ifdef NO_LIMITS_H # error please define either TCL_WIDE_INT_TYPE or TCL_WIDE_INT_IS_LONG @@ -424,12 +407,11 @@ typedef struct stat Tcl_StatBuf; # define Tcl_DoubleAsWide(val) ((long)((double)(val))) # ifndef TCL_LL_MODIFIER # define TCL_LL_MODIFIER "l" -# define TCL_LL_MODIFIER_SIZE 1 # endif /* !TCL_LL_MODIFIER */ #else /* TCL_WIDE_INT_IS_LONG */ /* - * The next short section of defines are only done when not running on - * Windows or some other strange platform. + * The next short section of defines are only done when not running on Windows + * or some other strange platform. */ # ifndef TCL_LL_MODIFIER # ifdef HAVE_STRUCT_STAT64 @@ -438,7 +420,6 @@ typedef struct stat64 Tcl_StatBuf; typedef struct stat Tcl_StatBuf; # endif /* HAVE_STRUCT_STAT64 */ # define TCL_LL_MODIFIER "ll" -# define TCL_LL_MODIFIER_SIZE 2 # endif /* !TCL_LL_MODIFIER */ # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val))) # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val))) @@ -446,32 +427,21 @@ typedef struct stat Tcl_StatBuf; # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val))) #endif /* TCL_WIDE_INT_IS_LONG */ - -/* - * This flag controls whether binary compatability is maintained with - * extensions built against a previous version of Tcl. This is true - * by default. - */ -#ifndef TCL_PRESERVE_BINARY_COMPATABILITY -# define TCL_PRESERVE_BINARY_COMPATABILITY 1 -#endif - - /* - * Data structures defined opaquely in this module. The definitions below - * just provide dummy types. A few fields are made visible in Tcl_Interp - * structures, namely those used for returning a string result from - * commands. Direct access to the result field is discouraged in Tcl 8.0. - * The interpreter result is either an object or a string, and the two - * values are kept consistent unless some C code sets interp->result - * directly. Programmers should use either the procedure Tcl_GetObjResult() - * or Tcl_GetStringResult() to read the interpreter's result. See the - * SetResult man page for details. - * - * Note: any change to the Tcl_Interp definition below must be mirrored - * in the "real" definition in tclInt.h. + * Data structures defined opaquely in this module. The definitions below just + * provide dummy types. A few fields are made visible in Tcl_Interp + * structures, namely those used for returning a string result from commands. + * Direct access to the result field is discouraged in Tcl 8.0. The + * interpreter result is either an object or a string, and the two values are + * kept consistent unless some C code sets interp->result directly. + * Programmers should use either the function Tcl_GetObjResult() or + * Tcl_GetStringResult() to read the interpreter's result. See the SetResult + * man page for details. * - * Note: Tcl_ObjCmdProc procedures do not directly set result and freeProc. + * Note: any change to the Tcl_Interp definition below must be mirrored in the + * "real" definition in tclInt.h. + * + * Note: Tcl_ObjCmdProc functions do not directly set result and freeProc. * Instead, they set a Tcl_Obj member in the "real" structure that can be * accessed with Tcl_GetObjResult() and Tcl_SetObjResult(). */ @@ -480,25 +450,29 @@ typedef struct Tcl_Interp { char *result; /* If the last command returned a string * result, this points to it. */ void (*freeProc) _ANSI_ARGS_((char *blockPtr)); - /* Zero means the string result is - * statically allocated. TCL_DYNAMIC means - * it was allocated with ckalloc and should - * be freed with ckfree. Other values give - * the address of procedure to invoke to - * free the result. Tcl_Eval must free it - * before executing next command. */ - int errorLine; /* When TCL_ERROR is returned, this gives - * the line number within the command where - * the error occurred (1 if first line). */ + /* Zero means the string result is statically + * allocated. TCL_DYNAMIC means it was + * allocated with ckalloc and should be freed + * with ckfree. Other values give the address + * of function to invoke to free the result. + * Tcl_Eval must free it before executing next + * command. */ + int errorLine; /* When TCL_ERROR is returned, this gives the + * line number within the command where the + * error occurred (1 if first line). */ } Tcl_Interp; typedef struct Tcl_AsyncHandler_ *Tcl_AsyncHandler; typedef struct Tcl_Channel_ *Tcl_Channel; +typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion; typedef struct Tcl_Command_ *Tcl_Command; typedef struct Tcl_Condition_ *Tcl_Condition; +typedef struct Tcl_Dict_ *Tcl_Dict; typedef struct Tcl_EncodingState_ *Tcl_EncodingState; typedef struct Tcl_Encoding_ *Tcl_Encoding; typedef struct Tcl_Event Tcl_Event; +typedef struct Tcl_InterpState_ *Tcl_InterpState; +typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle; typedef struct Tcl_Mutex_ *Tcl_Mutex; typedef struct Tcl_Pid_ *Tcl_Pid; typedef struct Tcl_RegExp_ *Tcl_RegExp; @@ -507,52 +481,46 @@ typedef struct Tcl_ThreadId_ *Tcl_ThreadId; typedef struct Tcl_TimerToken_ *Tcl_TimerToken; typedef struct Tcl_Trace_ *Tcl_Trace; typedef struct Tcl_Var_ *Tcl_Var; -typedef struct Tcl_ChannelTypeVersion_ *Tcl_ChannelTypeVersion; -typedef struct Tcl_LoadHandle_ *Tcl_LoadHandle; /* - * Definition of the interface to procedures implementing threads. - * A procedure following this definition is given to each call of - * 'Tcl_CreateThread' and will be called as the main fuction of - * the new thread created by that call. + * Definition of the interface to functions implementing threads. A function + * following this definition is given to each call of 'Tcl_CreateThread' and + * will be called as the main fuction of the new thread created by that call. */ -#ifdef MAC_TCL -typedef pascal void *(Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData)); -#elif defined __WIN32__ + +#if defined __WIN32__ typedef unsigned (__stdcall Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData)); #else typedef void (Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData)); #endif - /* * Threading function return types used for abstracting away platform - * differences when writing a Tcl_ThreadCreateProc. See the NewThread - * function in generic/tclThreadTest.c for it's usage. + * differences when writing a Tcl_ThreadCreateProc. See the NewThread function + * in generic/tclThreadTest.c for it's usage. */ -#ifdef MAC_TCL -# define Tcl_ThreadCreateType pascal void * -# define TCL_THREAD_CREATE_RETURN return NULL -#elif defined __WIN32__ + +#if defined __WIN32__ # define Tcl_ThreadCreateType unsigned __stdcall # define TCL_THREAD_CREATE_RETURN return 0 #else # define Tcl_ThreadCreateType void -# define TCL_THREAD_CREATE_RETURN +# define TCL_THREAD_CREATE_RETURN #endif - /* * Definition of values for default stacksize and the possible flags to be * given to Tcl_CreateThread. */ + #define TCL_THREAD_STACK_DEFAULT (0) /* Use default size for stack */ -#define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default behaviour */ -#define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable */ +#define TCL_THREAD_NOFLAGS (0000) /* Standard flags, default behaviour */ +#define TCL_THREAD_JOINABLE (0001) /* Mark the thread as joinable */ /* * Flag values passed to Tcl_GetRegExpFromObj. */ + #define TCL_REG_BASIC 000000 /* BREs (convenience) */ #define TCL_REG_EXTENDED 000001 /* EREs */ #define TCL_REG_ADVF 000002 /* advanced features in EREs */ @@ -569,67 +537,62 @@ typedef void (Tcl_ThreadCreateProc) _ANSI_ARGS_((ClientData clientData)); * matches */ /* - * The following flag is experimental and only intended for use by Expect. It - * will probably go away in a later release. - */ -#define TCL_REG_BOSONLY 002000 /* prepend \A to pattern so it only - * matches at the beginning of the - * string. */ - -/* * Flags values passed to Tcl_RegExpExecObj. */ + #define TCL_REG_NOTBOL 0001 /* Beginning of string does not match ^. */ #define TCL_REG_NOTEOL 0002 /* End of string does not match $. */ /* - * Structures filled in by Tcl_RegExpInfo. Note that all offset values are - * relative to the start of the match string, not the beginning of the - * entire string. + * Structures filled in by Tcl_RegExpInfo. Note that all offset values are + * relative to the start of the match string, not the beginning of the entire + * string. */ + typedef struct Tcl_RegExpIndices { - long start; /* character offset of first character in match */ - long end; /* character offset of first character after the - * match. */ + long start; /* Character offset of first character in + * match. */ + long end; /* Character offset of first character after + * the match. */ } Tcl_RegExpIndices; typedef struct Tcl_RegExpInfo { - int nsubs; /* number of subexpressions in the - * compiled expression */ - Tcl_RegExpIndices *matches; /* array of nsubs match offset - * pairs */ - long extendStart; /* The offset at which a subsequent - * match might begin. */ + int nsubs; /* Number of subexpressions in the compiled + * expression. */ + Tcl_RegExpIndices *matches; /* Array of nsubs match offset pairs. */ + long extendStart; /* The offset at which a subsequent match + * might begin. */ long reserved; /* Reserved for later use. */ } Tcl_RegExpInfo; /* - * Picky compilers complain if this typdef doesn't appear before the - * struct's reference in tclDecls.h. + * Picky compilers complain if this typdef doesn't appear before the struct's + * reference in tclDecls.h. */ + typedef Tcl_StatBuf *Tcl_Stat_; typedef struct stat *Tcl_OldStat_; /* * When a TCL command returns, the interpreter contains a result from the - * command. Programmers are strongly encouraged to use one of the - * procedures Tcl_GetObjResult() or Tcl_GetStringResult() to read the - * interpreter's result. See the SetResult man page for details. Besides - * this result, the command procedure returns an integer code, which is - * one of the following: + * command. Programmers are strongly encouraged to use one of the functions + * Tcl_GetObjResult() or Tcl_GetStringResult() to read the interpreter's + * result. See the SetResult man page for details. Besides this result, the + * command function returns an integer code, which is one of the following: * - * TCL_OK Command completed normally; the interpreter's - * result contains the command's result. - * TCL_ERROR The command couldn't be completed successfully; - * the interpreter's result describes what went wrong. - * TCL_RETURN The command requests that the current procedure - * return; the interpreter's result contains the - * procedure's return value. - * TCL_BREAK The command requests that the innermost loop - * be exited; the interpreter's result is meaningless. - * TCL_CONTINUE Go on to the next iteration of the current loop; - * the interpreter's result is meaningless. + * TCL_OK Command completed normally; the interpreter's result + * contains the command's result. + * TCL_ERROR The command couldn't be completed successfully; the + * interpreter's result describes what went wrong. + * TCL_RETURN The command requests that the current function return; + * the interpreter's result contains the function's + * return value. + * TCL_BREAK The command requests that the innermost loop be + * exited; the interpreter's result is meaningless. + * TCL_CONTINUE Go on to the next iteration of the current loop; the + * interpreter's result is meaningless. */ + #define TCL_OK 0 #define TCL_ERROR 1 #define TCL_RETURN 2 @@ -641,21 +604,23 @@ typedef struct stat *Tcl_OldStat_; /* * Flags to control what substitutions are performed by Tcl_SubstObj(): */ + #define TCL_SUBST_COMMANDS 001 #define TCL_SUBST_VARIABLES 002 #define TCL_SUBST_BACKSLASHES 004 #define TCL_SUBST_ALL 007 - /* * Argument descriptors for math function callbacks in expressions: */ + typedef enum { TCL_INT, TCL_DOUBLE, TCL_EITHER, TCL_WIDE_INT } Tcl_ValueType; + typedef struct Tcl_Value { - Tcl_ValueType type; /* Indicates intValue or doubleValue is - * valid, or both. */ + Tcl_ValueType type; /* Indicates intValue or doubleValue is valid, + * or both. */ long intValue; /* Integer value. */ double doubleValue; /* Double-precision floating value. */ Tcl_WideInt wideValue; /* Wide (min. 64-bit) integer value. */ @@ -663,14 +628,13 @@ typedef struct Tcl_Value { /* * Forward declaration of Tcl_Obj to prevent an error when the forward - * reference to Tcl_Obj is encountered in the procedure types declared - * below. + * reference to Tcl_Obj is encountered in the function types declared below. */ -struct Tcl_Obj; +struct Tcl_Obj; /* - * Procedure types defined by Tcl: + * Function types defined by Tcl: */ typedef int (Tcl_AppInitProc) _ANSI_ARGS_((Tcl_Interp *interp)); @@ -688,8 +652,8 @@ typedef int (Tcl_CmdObjTraceProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int level, CONST char *command, Tcl_Command commandInfo, int objc, struct Tcl_Obj * CONST * objv)); typedef void (Tcl_CmdObjTraceDeleteProc) _ANSI_ARGS_((ClientData clientData)); -typedef void (Tcl_DupInternalRepProc) _ANSI_ARGS_((struct Tcl_Obj *srcPtr, - struct Tcl_Obj *dupPtr)); +typedef void (Tcl_DupInternalRepProc) _ANSI_ARGS_((struct Tcl_Obj *srcPtr, + struct Tcl_Obj *dupPtr)); typedef int (Tcl_EncodingConvertProc)_ANSI_ARGS_((ClientData clientData, CONST char *src, int srcLen, int flags, Tcl_EncodingState *statePtr, char *dst, int dstLen, int *srcReadPtr, int *dstWrotePtr, @@ -699,7 +663,7 @@ typedef int (Tcl_EventProc) _ANSI_ARGS_((Tcl_Event *evPtr, int flags)); typedef void (Tcl_EventCheckProc) _ANSI_ARGS_((ClientData clientData, int flags)); typedef int (Tcl_EventDeleteProc) _ANSI_ARGS_((Tcl_Event *evPtr, - ClientData clientData)); + ClientData clientData)); typedef void (Tcl_EventSetupProc) _ANSI_ARGS_((ClientData clientData, int flags)); typedef void (Tcl_ExitProc) _ANSI_ARGS_((ClientData clientData)); @@ -716,15 +680,18 @@ typedef void (Tcl_NamespaceDeleteProc) _ANSI_ARGS_((ClientData clientData)); typedef int (Tcl_ObjCmdProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, struct Tcl_Obj * CONST * objv)); typedef int (Tcl_PackageInitProc) _ANSI_ARGS_((Tcl_Interp *interp)); -typedef void (Tcl_PanicProc) _ANSI_ARGS_(TCL_VARARGS(CONST char *, format)); +typedef int (Tcl_PackageUnloadProc) _ANSI_ARGS_((Tcl_Interp *interp, + int flags)); +typedef void (Tcl_PanicProc) _ANSI_ARGS_((CONST char *format, ...)); typedef void (Tcl_TcpAcceptProc) _ANSI_ARGS_((ClientData callbackData, - Tcl_Channel chan, char *address, int port)); + Tcl_Channel chan, char *address, int port)); typedef void (Tcl_TimerProc) _ANSI_ARGS_((ClientData clientData)); typedef int (Tcl_SetFromAnyProc) _ANSI_ARGS_((Tcl_Interp *interp, struct Tcl_Obj *objPtr)); typedef void (Tcl_UpdateStringProc) _ANSI_ARGS_((struct Tcl_Obj *objPtr)); typedef char *(Tcl_VarTraceProc) _ANSI_ARGS_((ClientData clientData, - Tcl_Interp *interp, CONST84 char *part1, CONST84 char *part2, int flags)); + Tcl_Interp *interp, CONST84 char *part1, CONST84 char *part2, + int flags)); typedef void (Tcl_CommandTraceProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, CONST char *oldName, CONST char *newName, int flags)); @@ -737,37 +704,34 @@ typedef ClientData (Tcl_InitNotifierProc) _ANSI_ARGS_((VOID)); typedef void (Tcl_FinalizeNotifierProc) _ANSI_ARGS_((ClientData clientData)); typedef void (Tcl_MainLoopProc) _ANSI_ARGS_((void)); - /* - * The following structure represents a type of object, which is a - * particular internal representation for an object plus a set of - * procedures that provide standard operations on objects of that type. + * The following structure represents a type of object, which is a particular + * internal representation for an object plus a set of functions that provide + * standard operations on objects of that type. */ typedef struct Tcl_ObjType { char *name; /* Name of the type, e.g. "int". */ Tcl_FreeInternalRepProc *freeIntRepProc; /* Called to free any storage for the type's - * internal rep. NULL if the internal rep - * does not need freeing. */ + * internal rep. NULL if the internal rep does + * not need freeing. */ Tcl_DupInternalRepProc *dupIntRepProc; - /* Called to create a new object as a copy - * of an existing object. */ + /* Called to create a new object as a copy of + * an existing object. */ Tcl_UpdateStringProc *updateStringProc; - /* Called to update the string rep from the + /* Called to update the string rep from the * type's internal representation. */ Tcl_SetFromAnyProc *setFromAnyProc; - /* Called to convert the object's internal - * rep to this type. Frees the internal rep - * of the old type. Returns TCL_ERROR on - * failure. */ + /* Called to convert the object's internal rep + * to this type. Frees the internal rep of the + * old type. Returns TCL_ERROR on failure. */ } Tcl_ObjType; - /* - * One of the following structures exists for each object in the Tcl - * system. An object stores a value as either a string, some internal - * representation, or both. + * One of the following structures exists for each object in the Tcl system. + * An object stores a value as either a string, some internal representation, + * or both. */ typedef struct Tcl_Obj { @@ -777,18 +741,18 @@ typedef struct Tcl_Obj { * must be followed by a null byte (i.e., at * offset length) but may also contain * embedded null characters. The array's - * storage is allocated by ckalloc. NULL - * means the string rep is invalid and must - * be regenerated from the internal rep. - * Clients should use Tcl_GetStringFromObj - * or Tcl_GetString to get a pointer to the - * byte array as a readonly value. */ + * storage is allocated by ckalloc. NULL means + * the string rep is invalid and must be + * regenerated from the internal rep. Clients + * should use Tcl_GetStringFromObj or + * Tcl_GetString to get a pointer to the byte + * array as a readonly value. */ int length; /* The number of bytes at *bytes, not * including the terminating null. */ Tcl_ObjType *typePtr; /* Denotes the object's type. Always * corresponds to the type of the object's - * internal rep. NULL indicates the object - * has no internal rep (has no type). */ + * internal rep. NULL indicates the object has + * no internal rep (has no type). */ union { /* The internal representation: */ long longValue; /* - an long integer value */ double doubleValue; /* - a double-precision floating value */ @@ -798,76 +762,36 @@ typedef struct Tcl_Obj { VOID *ptr1; VOID *ptr2; } twoPtrValue; + struct { /* - internal rep as a wide int, tightly + * packed fields */ + VOID *ptr; /* Pointer to digits */ + unsigned long value;/* Alloc, used, and signum packed into a + * single word */ + } ptrAndLongRep; } internalRep; } Tcl_Obj; - /* - * Macros to increment and decrement a Tcl_Obj's reference count, and to - * test whether an object is shared (i.e. has reference count > 1). - * Note: clients should use Tcl_DecrRefCount() when they are finished using - * an object, and should never call TclFreeObj() directly. TclFreeObj() is - * only defined and made public in tcl.h to support Tcl_DecrRefCount's macro - * definition. Note also that Tcl_DecrRefCount() refers to the parameter - * "obj" twice. This means that you should avoid calling it with an - * expression that is expensive to compute or has side effects. + * Macros to increment and decrement a Tcl_Obj's reference count, and to test + * whether an object is shared (i.e. has reference count > 1). Note: clients + * should use Tcl_DecrRefCount() when they are finished using an object, and + * should never call TclFreeObj() directly. TclFreeObj() is only defined and + * made public in tcl.h to support Tcl_DecrRefCount's macro definition. Note + * also that Tcl_DecrRefCount() refers to the parameter "obj" twice. This + * means that you should avoid calling it with an expression that is expensive + * to compute or has side effects. */ + void Tcl_IncrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr)); void Tcl_DecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr)); int Tcl_IsShared _ANSI_ARGS_((Tcl_Obj *objPtr)); -#ifdef TCL_MEM_DEBUG -# define Tcl_IncrRefCount(objPtr) \ - Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__) -# define Tcl_DecrRefCount(objPtr) \ - Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__) -# define Tcl_IsShared(objPtr) \ - Tcl_DbIsShared(objPtr, __FILE__, __LINE__) -#else -# define Tcl_IncrRefCount(objPtr) \ - ++(objPtr)->refCount - /* - * Use empty if ; else to handle use in unbraced outer if/else conditions - */ -# define Tcl_DecrRefCount(objPtr) \ - if (--(objPtr)->refCount > 0) ; else TclFreeObj(objPtr) -# define Tcl_IsShared(objPtr) \ - ((objPtr)->refCount > 1) -#endif - /* - * Macros and definitions that help to debug the use of Tcl objects. - * When TCL_MEM_DEBUG is defined, the Tcl_New declarations are - * overridden to call debugging versions of the object creation procedures. + * The following structure contains the state needed by Tcl_SaveResult. No-one + * outside of Tcl should access any of these fields. This structure is + * typically allocated on the stack. */ -#ifdef TCL_MEM_DEBUG -# define Tcl_NewBooleanObj(val) \ - Tcl_DbNewBooleanObj(val, __FILE__, __LINE__) -# define Tcl_NewByteArrayObj(bytes, len) \ - Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__) -# define Tcl_NewDoubleObj(val) \ - Tcl_DbNewDoubleObj(val, __FILE__, __LINE__) -# define Tcl_NewIntObj(val) \ - Tcl_DbNewLongObj(val, __FILE__, __LINE__) -# define Tcl_NewListObj(objc, objv) \ - Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__) -# define Tcl_NewLongObj(val) \ - Tcl_DbNewLongObj(val, __FILE__, __LINE__) -# define Tcl_NewObj() \ - Tcl_DbNewObj(__FILE__, __LINE__) -# define Tcl_NewStringObj(bytes, len) \ - Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__) -# define Tcl_NewWideIntObj(val) \ - Tcl_DbNewWideIntObj(val, __FILE__, __LINE__) -#endif /* TCL_MEM_DEBUG */ - - -/* - * The following structure contains the state needed by - * Tcl_SaveResult. No-one outside of Tcl should access any of these - * fields. This structure is typically allocated on the stack. - */ typedef struct Tcl_SavedResult { char *result; Tcl_FreeProc *freeProc; @@ -878,49 +802,47 @@ typedef struct Tcl_SavedResult { char resultSpace[TCL_RESULT_SIZE+1]; } Tcl_SavedResult; - /* - * The following definitions support Tcl's namespace facility. - * Note: the first five fields must match exactly the fields in a - * Namespace structure (see tclInt.h). + * The following definitions support Tcl's namespace facility. Note: the first + * five fields must match exactly the fields in a Namespace structure (see + * tclInt.h). */ typedef struct Tcl_Namespace { - char *name; /* The namespace's name within its parent - * namespace. This contains no ::'s. The - * name of the global namespace is "" - * although "::" is an synonym. */ - char *fullName; /* The namespace's fully qualified name. - * This starts with ::. */ - ClientData clientData; /* Arbitrary value associated with this + char *name; /* The namespace's name within its parent + * namespace. This contains no ::'s. The name + * of the global namespace is "" although "::" + * is an synonym. */ + char *fullName; /* The namespace's fully qualified name. This + * starts with ::. */ + ClientData clientData; /* Arbitrary value associated with this * namespace. */ Tcl_NamespaceDeleteProc* deleteProc; - /* Procedure invoked when deleting the + /* Function invoked when deleting the * namespace to, e.g., free clientData. */ struct Tcl_Namespace* parentPtr; - /* Points to the namespace that contains - * this one. NULL if this is the global + /* Points to the namespace that contains this + * one. NULL if this is the global * namespace. */ } Tcl_Namespace; - /* - * The following structure represents a call frame, or activation record. - * A call frame defines a naming context for a procedure call: its local - * scope (for local variables) and its namespace scope (used for non-local - * variables; often the global :: namespace). A call frame can also define - * the naming context for a namespace eval or namespace inscope command: - * the namespace in which the command's code should execute. The - * Tcl_CallFrame structures exist only while procedures or namespace - * eval/inscope's are being executed, and provide a Tcl call stack. - * - * A call frame is initialized and pushed using Tcl_PushCallFrame and - * popped using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be - * provided by the Tcl_PushCallFrame caller, and callers typically allocate - * them on the C call stack for efficiency. For this reason, Tcl_CallFrame - * is defined as a structure and not as an opaque token. However, most - * Tcl_CallFrame fields are hidden since applications should not access - * them directly; others are declared as "dummyX". + * The following structure represents a call frame, or activation record. A + * call frame defines a naming context for a procedure call: its local scope + * (for local variables) and its namespace scope (used for non-local + * variables; often the global :: namespace). A call frame can also define the + * naming context for a namespace eval or namespace inscope command: the + * namespace in which the command's code should execute. The Tcl_CallFrame + * structures exist only while procedures or namespace eval/inscope's are + * being executed, and provide a Tcl call stack. + * + * A call frame is initialized and pushed using Tcl_PushCallFrame and popped + * using Tcl_PopCallFrame. Storage for a Tcl_CallFrame must be provided by the + * Tcl_PushCallFrame caller, and callers typically allocate them on the C call + * stack for efficiency. For this reason, Tcl_CallFrame is defined as a + * structure and not as an opaque token. However, most Tcl_CallFrame fields + * are hidden since applications should not access them directly; others are + * declared as "dummyX". * * WARNING!! The structure definition must be kept consistent with the * CallFrame structure in tclInt.h. If you change one, change the other. @@ -937,62 +859,63 @@ typedef struct Tcl_CallFrame { char *dummy7; char *dummy8; int dummy9; - char* dummy10; + char *dummy10; + char *dummy11; + char *dummy12; } Tcl_CallFrame; - /* * Information about commands that is returned by Tcl_GetCommandInfo and - * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based - * command procedure while proc is a traditional Tcl argc/argv - * string-based procedure. Tcl_CreateObjCommand and Tcl_CreateCommand - * ensure that both objProc and proc are non-NULL and can be called to - * execute the command. However, it may be faster to call one instead of - * the other. The member isNativeObjectProc is set to 1 if an - * object-based procedure was registered by Tcl_CreateObjCommand, and to - * 0 if a string-based procedure was registered by Tcl_CreateCommand. - * The other procedure is typically set to a compatibility wrapper that - * does string-to-object or object-to-string argument conversions then - * calls the other procedure. + * passed to Tcl_SetCommandInfo. objProc is an objc/objv object-based command + * function while proc is a traditional Tcl argc/argv string-based function. + * Tcl_CreateObjCommand and Tcl_CreateCommand ensure that both objProc and + * proc are non-NULL and can be called to execute the command. However, it may + * be faster to call one instead of the other. The member isNativeObjectProc + * is set to 1 if an object-based function was registered by + * Tcl_CreateObjCommand, and to 0 if a string-based function was registered by + * Tcl_CreateCommand. The other function is typically set to a compatibility + * wrapper that does string-to-object or object-to-string argument conversions + * then calls the other function. */ typedef struct Tcl_CmdInfo { - int isNativeObjectProc; /* 1 if objProc was registered by a call to - * Tcl_CreateObjCommand; 0 otherwise. - * Tcl_SetCmdInfo does not modify this - * field. */ - Tcl_ObjCmdProc *objProc; /* Command's object-based procedure. */ - ClientData objClientData; /* ClientData for object proc. */ - Tcl_CmdProc *proc; /* Command's string-based procedure. */ - ClientData clientData; /* ClientData for string proc. */ + int isNativeObjectProc; /* 1 if objProc was registered by a call to + * Tcl_CreateObjCommand; 0 otherwise. + * Tcl_SetCmdInfo does not modify this + * field. */ + Tcl_ObjCmdProc *objProc; /* Command's object-based function. */ + ClientData objClientData; /* ClientData for object proc. */ + Tcl_CmdProc *proc; /* Command's string-based function. */ + ClientData clientData; /* ClientData for string proc. */ Tcl_CmdDeleteProc *deleteProc; - /* Procedure to call when command is - * deleted. */ - ClientData deleteData; /* Value to pass to deleteProc (usually - * the same as clientData). */ - Tcl_Namespace *namespacePtr; /* Points to the namespace that contains - * this command. Note that Tcl_SetCmdInfo - * will not change a command's namespace; - * use Tcl_RenameCommand to do that. */ - + /* Function to call when command is + * deleted. */ + ClientData deleteData; /* Value to pass to deleteProc (usually the + * same as clientData). */ + Tcl_Namespace *namespacePtr;/* Points to the namespace that contains this + * command. Note that Tcl_SetCmdInfo will not + * change a command's namespace; use + * TclRenameCommand or Tcl_Eval (of 'rename') + * to do that. */ } Tcl_CmdInfo; /* - * The structure defined below is used to hold dynamic strings. The only - * field that clients should use is the string field, accessible via the - * macro Tcl_DStringValue. + * The structure defined below is used to hold dynamic strings. The only + * fields that clients should use are string and length, accessible via the + * macros Tcl_DStringValue and Tcl_DStringLength. */ + #define TCL_DSTRING_STATIC_SIZE 200 typedef struct Tcl_DString { - char *string; /* Points to beginning of string: either + char *string; /* Points to beginning of string: either * staticSpace below or a malloced array. */ int length; /* Number of non-NULL characters in the * string. */ int spaceAvl; /* Total number of bytes available for the * string and its terminating NULL char. */ char staticSpace[TCL_DSTRING_STATIC_SIZE]; - /* Space to use in common case where string - * is small. */ + /* Space to use in common case where string is + * small. */ } Tcl_DString; #define Tcl_DStringLength(dsPtr) ((dsPtr)->length) @@ -1000,54 +923,77 @@ typedef struct Tcl_DString { #define Tcl_DStringTrunc Tcl_DStringSetLength /* - * Definitions for the maximum number of digits of precision that may - * be specified in the "tcl_precision" variable, and the number of - * bytes of buffer space required by Tcl_PrintDouble. + * Definitions for the maximum number of digits of precision that may be + * specified in the "tcl_precision" variable, and the number of bytes of + * buffer space required by Tcl_PrintDouble. */ + #define TCL_MAX_PREC 17 #define TCL_DOUBLE_SPACE (TCL_MAX_PREC+10) /* * Definition for a number of bytes of buffer space sufficient to hold the - * string representation of an integer in base 10 (assuming the existence - * of 64-bit integers). + * string representation of an integer in base 10 (assuming the existence of + * 64-bit integers). */ + #define TCL_INTEGER_SPACE 24 /* - * Flag that may be passed to Tcl_ConvertElement to force it not to - * output braces (careful! if you change this flag be sure to change - * the definitions at the front of tclUtil.c). + * Flag values passed to Tcl_ConvertElement. + * TCL_DONT_USE_BRACES forces it not to enclose the element in braces, but to + * use backslash quoting instead. + * TCL_DONT_QUOTE_HASH disables the default quoting of the '#' character. It + * is safe to leave the hash unquoted when the element is not the first + * element of a list, and this flag can be used by the caller to indicate + * that condition. + * (Careful! If you change these flag values be sure to change the definitions + * at the front of tclUtil.c). */ + #define TCL_DONT_USE_BRACES 1 +#define TCL_DONT_QUOTE_HASH 8 /* * Flag that may be passed to Tcl_GetIndexFromObj to force it to disallow * abbreviated strings. */ + #define TCL_EXACT 1 /* - * Flag values passed to Tcl_RecordAndEval and/or Tcl_EvalObj. - * WARNING: these bit choices must not conflict with the bit choices - * for evalFlag bits in tclInt.h!! + * Flag values passed to Tcl_RecordAndEval, Tcl_EvalObj, Tcl_EvalObjv. + * WARNING: these bit choices must not conflict with the bit choices for + * evalFlag bits in tclInt.h! + * + * Meanings: + * TCL_NO_EVAL: Just record this command + * TCL_EVAL_GLOBAL: Execute script in global namespace + * TCL_EVAL_DIRECT: Do not compile this script + * TCL_EVAL_INVOKE: Magical Tcl_EvalObjv mode for aliases/ensembles + * o Run in iPtr->lookupNsPtr or global namespace + * o Cut out of error traces + * o Don't reset the flags controlling ensemble + * error message rewriting. */ #define TCL_NO_EVAL 0x10000 #define TCL_EVAL_GLOBAL 0x20000 #define TCL_EVAL_DIRECT 0x40000 -#define TCL_EVAL_INVOKE 0x80000 +#define TCL_EVAL_INVOKE 0x80000 /* - * Special freeProc values that may be passed to Tcl_SetResult (see - * the man page for details): + * Special freeProc values that may be passed to Tcl_SetResult (see the man + * page for details): */ + #define TCL_VOLATILE ((Tcl_FreeProc *) 1) #define TCL_STATIC ((Tcl_FreeProc *) 0) #define TCL_DYNAMIC ((Tcl_FreeProc *) 3) /* - * Flag values passed to variable-related procedures. + * Flag values passed to variable-related functions. */ + #define TCL_GLOBAL_ONLY 1 #define TCL_NAMESPACE_ONLY 2 #define TCL_APPEND_VALUE 4 @@ -1068,7 +1014,15 @@ typedef struct Tcl_DString { #define TCL_TRACE_RESULT_OBJECT 0x10000 /* - * Flag values passed to command-related procedures. + * Flag values for ensemble commands. + */ + +#define TCL_ENSEMBLE_PREFIX 0x02/* Flag value to say whether to allow + * unambiguous prefixes of commands or to + * require exact matches for command names. */ + +/* + * Flag values passed to command-related functions. */ #define TCL_TRACE_RENAME 0x2000 @@ -1077,39 +1031,40 @@ typedef struct Tcl_DString { #define TCL_ALLOW_INLINE_COMPILATION 0x20000 /* - * Flag values passed to Tcl_CreateObjTrace, and used internally - * by command execution traces. Slots 4,8,16 and 32 are - * used internally by execution traces (see tclCmdMZ.c) + * The TCL_PARSE_PART1 flag is deprecated and has no effect. The part1 is now + * always parsed whenever the part2 is NULL. (This is to avoid a common error + * when converting code to use the new object based APIs and forgetting to + * give the flag) */ -#define TCL_TRACE_ENTER_EXEC 1 -#define TCL_TRACE_LEAVE_EXEC 2 -/* - * The TCL_PARSE_PART1 flag is deprecated and has no effect. - * The part1 is now always parsed whenever the part2 is NULL. - * (This is to avoid a common error when converting code to - * use the new object based APIs and forgetting to give the - * flag) - */ #ifndef TCL_NO_DEPRECATED -# define TCL_PARSE_PART1 0x400 +# define TCL_PARSE_PART1 0x400 #endif - /* * Types for linked variables: */ + #define TCL_LINK_INT 1 #define TCL_LINK_DOUBLE 2 #define TCL_LINK_BOOLEAN 3 #define TCL_LINK_STRING 4 #define TCL_LINK_WIDE_INT 5 +#define TCL_LINK_CHAR 6 +#define TCL_LINK_UCHAR 7 +#define TCL_LINK_SHORT 8 +#define TCL_LINK_USHORT 9 +#define TCL_LINK_UINT 10 +#define TCL_LINK_LONG 11 +#define TCL_LINK_ULONG 12 +#define TCL_LINK_FLOAT 13 +#define TCL_LINK_WIDE_UINT 14 #define TCL_LINK_READ_ONLY 0x80 - /* * Forward declarations of Tcl_HashTable and related types. */ + typedef struct Tcl_HashKeyType Tcl_HashKeyType; typedef struct Tcl_HashTable Tcl_HashTable; typedef struct Tcl_HashEntry Tcl_HashEntry; @@ -1124,170 +1079,163 @@ typedef void (Tcl_FreeHashEntryProc) _ANSI_ARGS_((Tcl_HashEntry *hPtr)); /* * This flag controls whether the hash table stores the hash of a key, or - * recalculates it. There should be no reason for turning this flag off - * as it is completely binary and source compatible unless you directly - * access the bucketPtr member of the Tcl_HashTableEntry structure. This - * member has been removed and the space used to store the hash value. + * recalculates it. There should be no reason for turning this flag off as it + * is completely binary and source compatible unless you directly access the + * bucketPtr member of the Tcl_HashTableEntry structure. This member has been + * removed and the space used to store the hash value. */ + #ifndef TCL_HASH_KEY_STORE_HASH # define TCL_HASH_KEY_STORE_HASH 1 #endif /* - * Structure definition for an entry in a hash table. No-one outside - * Tcl should access any of these fields directly; use the macros - * defined below. + * Structure definition for an entry in a hash table. No-one outside Tcl + * should access any of these fields directly; use the macros defined below. */ struct Tcl_HashEntry { - Tcl_HashEntry *nextPtr; /* Pointer to next entry in this - * hash bucket, or NULL for end of - * chain. */ - Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */ + Tcl_HashEntry *nextPtr; /* Pointer to next entry in this hash bucket, + * or NULL for end of chain. */ + Tcl_HashTable *tablePtr; /* Pointer to table containing entry. */ #if TCL_HASH_KEY_STORE_HASH -# if TCL_PRESERVE_BINARY_COMPATABILITY - VOID *hash; /* Hash value, stored as pointer to - * ensure that the offsets of the - * fields in this structure are not - * changed. */ -# else - unsigned int hash; /* Hash value. */ -# endif + VOID *hash; /* Hash value, stored as pointer to ensure + * that the offsets of the fields in this + * structure are not changed. */ #else - Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to - * first entry in this entry's chain: - * used for deleting the entry. */ + Tcl_HashEntry **bucketPtr; /* Pointer to bucket that points to first + * entry in this entry's chain: used for + * deleting the entry. */ #endif - ClientData clientData; /* Application stores something here - * with Tcl_SetHashValue. */ - union { /* Key has one of these forms: */ - char *oneWordValue; /* One-word value for key. */ - Tcl_Obj *objPtr; /* Tcl_Obj * key value. */ - int words[1]; /* Multiple integer words for key. - * The actual size will be as large - * as necessary for this table's - * keys. */ - char string[4]; /* String for key. The actual size - * will be as large as needed to hold - * the key. */ - } key; /* MUST BE LAST FIELD IN RECORD!! */ + ClientData clientData; /* Application stores something here with + * Tcl_SetHashValue. */ + union { /* Key has one of these forms: */ + char *oneWordValue; /* One-word value for key. */ + Tcl_Obj *objPtr; /* Tcl_Obj * key value. */ + int words[1]; /* Multiple integer words for key. The actual + * size will be as large as necessary for this + * table's keys. */ + char string[4]; /* String for key. The actual size will be as + * large as needed to hold the key. */ + } key; /* MUST BE LAST FIELD IN RECORD!! */ }; /* * Flags used in Tcl_HashKeyType. * - * TCL_HASH_KEY_RANDOMIZE_HASH: + * TCL_HASH_KEY_RANDOMIZE_HASH - * There are some things, pointers for example * which don't hash well because they do not use * the lower bits. If this flag is set then the * hash table will attempt to rectify this by * randomising the bits and then using the upper * N bits as the index into the table. + * TCL_HASH_KEY_SYSTEM_HASH - If this flag is set then all memory internally + * allocated for the hash table that is not for an + * entry will use the system heap. */ + #define TCL_HASH_KEY_RANDOMIZE_HASH 0x1 +#define TCL_HASH_KEY_SYSTEM_HASH 0x2 /* - * Structure definition for the methods associated with a hash table - * key type. + * Structure definition for the methods associated with a hash table key type. */ + #define TCL_HASH_KEY_TYPE_VERSION 1 struct Tcl_HashKeyType { int version; /* Version of the table. If this structure is * extended in future then the version can be * used to distinguish between different - * structures. - */ - + * structures. */ int flags; /* Flags, see above for details. */ - - /* Calculates a hash value for the key. If this is NULL then the pointer - * itself is used as a hash value. - */ Tcl_HashKeyProc *hashKeyProc; - - /* Compares two keys and returns zero if they do not match, and non-zero - * if they do. If this is NULL then the pointers are compared. - */ + /* Calculates a hash value for the key. If + * this is NULL then the pointer itself is + * used as a hash value. */ Tcl_CompareHashKeysProc *compareKeysProc; - - /* Called to allocate memory for a new entry, i.e. if the key is a - * string then this could allocate a single block which contains enough - * space for both the entry and the string. Only the key field of the - * allocated Tcl_HashEntry structure needs to be filled in. If something - * else needs to be done to the key, i.e. incrementing a reference count - * then that should be done by this function. If this is NULL then Tcl_Alloc - * is used to allocate enough space for a Tcl_HashEntry and the key pointer - * is assigned to key.oneWordValue. - */ + /* Compares two keys and returns zero if they + * do not match, and non-zero if they do. If + * this is NULL then the pointers are + * compared. */ Tcl_AllocHashEntryProc *allocEntryProc; - - /* Called to free memory associated with an entry. If something else needs - * to be done to the key, i.e. decrementing a reference count then that - * should be done by this function. If this is NULL then Tcl_Free is used - * to free the Tcl_HashEntry. - */ + /* Called to allocate memory for a new entry, + * i.e. if the key is a string then this could + * allocate a single block which contains + * enough space for both the entry and the + * string. Only the key field of the allocated + * Tcl_HashEntry structure needs to be filled + * in. If something else needs to be done to + * the key, i.e. incrementing a reference + * count then that should be done by this + * function. If this is NULL then Tcl_Alloc is + * used to allocate enough space for a + * Tcl_HashEntry and the key pointer is + * assigned to key.oneWordValue. */ Tcl_FreeHashEntryProc *freeEntryProc; + /* Called to free memory associated with an + * entry. If something else needs to be done + * to the key, i.e. decrementing a reference + * count then that should be done by this + * function. If this is NULL then Tcl_Free is + * used to free the Tcl_HashEntry. */ }; /* - * Structure definition for a hash table. Must be in tcl.h so clients - * can allocate space for these structures, but clients should never - * access any fields in this structure. + * Structure definition for a hash table. Must be in tcl.h so clients can + * allocate space for these structures, but clients should never access any + * fields in this structure. */ #define TCL_SMALL_HASH_TABLE 4 struct Tcl_HashTable { - Tcl_HashEntry **buckets; /* Pointer to bucket array. Each - * element points to first entry in - * bucket's hash chain, or NULL. */ + Tcl_HashEntry **buckets; /* Pointer to bucket array. Each element + * points to first entry in bucket's hash + * chain, or NULL. */ Tcl_HashEntry *staticBuckets[TCL_SMALL_HASH_TABLE]; - /* Bucket array used for small tables - * (to avoid mallocs and frees). */ - int numBuckets; /* Total number of buckets allocated - * at **bucketPtr. */ - int numEntries; /* Total number of entries present - * in table. */ - int rebuildSize; /* Enlarge table when numEntries gets - * to be this large. */ - int downShift; /* Shift count used in hashing - * function. Designed to use high- - * order bits of randomized keys. */ - int mask; /* Mask value used in hashing - * function. */ - int keyType; /* Type of keys used in this table. - * It's either TCL_CUSTOM_KEYS, - * TCL_STRING_KEYS, TCL_ONE_WORD_KEYS, - * or an integer giving the number of - * ints that is the size of the key. - */ -#if TCL_PRESERVE_BINARY_COMPATABILITY + /* Bucket array used for small tables (to + * avoid mallocs and frees). */ + int numBuckets; /* Total number of buckets allocated at + * **bucketPtr. */ + int numEntries; /* Total number of entries present in + * table. */ + int rebuildSize; /* Enlarge table when numEntries gets to be + * this large. */ + int downShift; /* Shift count used in hashing function. + * Designed to use high-order bits of + * randomized keys. */ + int mask; /* Mask value used in hashing function. */ + int keyType; /* Type of keys used in this table. It's + * either TCL_CUSTOM_KEYS, TCL_STRING_KEYS, + * TCL_ONE_WORD_KEYS, or an integer giving the + * number of ints that is the size of the + * key. */ Tcl_HashEntry *(*findProc) _ANSI_ARGS_((Tcl_HashTable *tablePtr, CONST char *key)); Tcl_HashEntry *(*createProc) _ANSI_ARGS_((Tcl_HashTable *tablePtr, CONST char *key, int *newPtr)); -#endif - Tcl_HashKeyType *typePtr; /* Type of the keys used in the - * Tcl_HashTable. */ + Tcl_HashKeyType *typePtr; /* Type of the keys used in the + * Tcl_HashTable. */ }; /* - * Structure definition for information used to keep track of searches - * through hash tables: + * Structure definition for information used to keep track of searches through + * hash tables: */ typedef struct Tcl_HashSearch { - Tcl_HashTable *tablePtr; /* Table being searched. */ - int nextIndex; /* Index of next bucket to be - * enumerated after present one. */ - Tcl_HashEntry *nextEntryPtr; /* Next entry to be enumerated in the - * the current bucket. */ + Tcl_HashTable *tablePtr; /* Table being searched. */ + int nextIndex; /* Index of next bucket to be enumerated after + * present one. */ + Tcl_HashEntry *nextEntryPtr;/* Next entry to be enumerated in the current + * bucket. */ } Tcl_HashSearch; /* * Acceptable key types for hash tables: * - * TCL_STRING_KEYS: The keys are strings, they are copied into - * the entry. + * TCL_STRING_KEYS: The keys are strings, they are copied into the + * entry. * TCL_ONE_WORD_KEYS: The keys are pointers, the pointer is stored * in the entry. * TCL_CUSTOM_TYPE_KEYS: The keys are arbitrary types which are copied @@ -1295,69 +1243,38 @@ typedef struct Tcl_HashSearch { * TCL_CUSTOM_PTR_KEYS: The keys are pointers to arbitrary types, the * pointer is stored in the entry. * - * While maintaining binary compatability the above have to be distinct - * values as they are used to differentiate between old versions of the - * hash table which don't have a typePtr and new ones which do. Once binary - * compatability is discarded in favour of making more wide spread changes - * TCL_STRING_KEYS can be the same as TCL_CUSTOM_TYPE_KEYS, and - * TCL_ONE_WORD_KEYS can be the same as TCL_CUSTOM_PTR_KEYS because they - * simply determine how the key is accessed from the entry and not the - * behaviour. + * While maintaining binary compatability the above have to be distinct values + * as they are used to differentiate between old versions of the hash table + * which don't have a typePtr and new ones which do. Once binary compatability + * is discarded in favour of making more wide spread changes TCL_STRING_KEYS + * can be the same as TCL_CUSTOM_TYPE_KEYS, and TCL_ONE_WORD_KEYS can be the + * same as TCL_CUSTOM_PTR_KEYS because they simply determine how the key is + * accessed from the entry and not the behaviour. */ #define TCL_STRING_KEYS 0 #define TCL_ONE_WORD_KEYS 1 - -#if TCL_PRESERVE_BINARY_COMPATABILITY -# define TCL_CUSTOM_TYPE_KEYS -2 -# define TCL_CUSTOM_PTR_KEYS -1 -#else -# define TCL_CUSTOM_TYPE_KEYS TCL_STRING_KEYS -# define TCL_CUSTOM_PTR_KEYS TCL_ONE_WORD_KEYS -#endif +#define TCL_CUSTOM_TYPE_KEYS -2 +#define TCL_CUSTOM_PTR_KEYS -1 /* - * Macros for clients to use to access fields of hash entries: + * Structure definition for information used to keep track of searches through + * dictionaries. These fields should not be accessed by code outside + * tclDictObj.c */ -#define Tcl_GetHashValue(h) ((h)->clientData) -#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value)) -#if TCL_PRESERVE_BINARY_COMPATABILITY -# define Tcl_GetHashKey(tablePtr, h) \ - ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \ - (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \ - ? (h)->key.oneWordValue \ - : (h)->key.string)) -#else -# define Tcl_GetHashKey(tablePtr, h) \ - ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS) \ - ? (h)->key.oneWordValue \ - : (h)->key.string)) -#endif - -/* - * Macros to use for clients to use to invoke find and create procedures - * for hash tables: - */ +typedef struct { + Tcl_HashSearch search; /* Search struct for underlying hash table. */ + int epoch; /* Epoch marker for dictionary being searched, + * or -1 if search has terminated. */ + Tcl_Dict dictionaryPtr; /* Reference to dictionary being searched. */ +} Tcl_DictSearch; -#if TCL_PRESERVE_BINARY_COMPATABILITY -# define Tcl_FindHashEntry(tablePtr, key) \ - (*((tablePtr)->findProc))(tablePtr, key) -# define Tcl_CreateHashEntry(tablePtr, key, newPtr) \ - (*((tablePtr)->createProc))(tablePtr, key, newPtr) -#else /* !TCL_PRESERVE_BINARY_COMPATABILITY */ /* - * Macro to use new extended version of Tcl_InitHashTable. + * Flag values to pass to Tcl_DoOneEvent to disable searches for some kinds of + * events: */ -# define Tcl_InitHashTable(tablePtr, keyType) \ - Tcl_InitHashTableEx(tablePtr, keyType, NULL) -#endif /* TCL_PRESERVE_BINARY_COMPATABILITY */ - -/* - * Flag values to pass to Tcl_DoOneEvent to disable searches - * for some kinds of events: - */ #define TCL_DONT_WAIT (1<<1) #define TCL_WINDOW_EVENTS (1<<2) #define TCL_FILE_EVENTS (1<<3) @@ -1366,22 +1283,23 @@ typedef struct Tcl_HashSearch { #define TCL_ALL_EVENTS (~TCL_DONT_WAIT) /* - * The following structure defines a generic event for the Tcl event - * system. These are the things that are queued in calls to Tcl_QueueEvent - * and serviced later by Tcl_DoOneEvent. There can be many different - * kinds of events with different fields, corresponding to window events, - * timer events, etc. The structure for a particular event consists of - * a Tcl_Event header followed by additional information specific to that - * event. + * The following structure defines a generic event for the Tcl event system. + * These are the things that are queued in calls to Tcl_QueueEvent and + * serviced later by Tcl_DoOneEvent. There can be many different kinds of + * events with different fields, corresponding to window events, timer events, + * etc. The structure for a particular event consists of a Tcl_Event header + * followed by additional information specific to that event. */ + struct Tcl_Event { - Tcl_EventProc *proc; /* Procedure to call to service this event. */ + Tcl_EventProc *proc; /* Function to call to service this event. */ struct Tcl_Event *nextPtr; /* Next in list of pending events, or NULL. */ }; /* * Positions to pass to Tcl_QueueEvent: */ + typedef enum { TCL_QUEUE_TAIL, TCL_QUEUE_HEAD, TCL_QUEUE_MARK } Tcl_QueuePosition; @@ -1390,16 +1308,16 @@ typedef enum { * Values to pass to Tcl_SetServiceMode to specify the behavior of notifier * event routines. */ + #define TCL_SERVICE_NONE 0 #define TCL_SERVICE_ALL 1 - /* - * The following structure keeps is used to hold a time value, either as - * an absolute time (the number of seconds from the epoch) or as an - * elapsed time. On Unix systems the epoch is Midnight Jan 1, 1970 GMT. - * On Macintosh systems the epoch is Midnight Jan 1, 1904 GMT. + * The following structure keeps is used to hold a time value, either as an + * absolute time (the number of seconds from the epoch) or as an elapsed time. + * On Unix systems the epoch is Midnight Jan 1, 1970 GMT. */ + typedef struct Tcl_Time { long sec; /* Seconds. */ long usec; /* Microseconds. */ @@ -1408,21 +1326,29 @@ typedef struct Tcl_Time { typedef void (Tcl_SetTimerProc) _ANSI_ARGS_((Tcl_Time *timePtr)); typedef int (Tcl_WaitForEventProc) _ANSI_ARGS_((Tcl_Time *timePtr)); +/* + * TIP #233 (Virtualized Time) + */ + +typedef void (Tcl_GetTimeProc) _ANSI_ARGS_ ((Tcl_Time* timebuf, ClientData clientData)); +typedef void (Tcl_ScaleTimeProc) _ANSI_ARGS_ ((Tcl_Time* timebuf, ClientData clientData)); /* - * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler - * to indicate what sorts of events are of interest: + * Bits to pass to Tcl_CreateFileHandler and Tcl_CreateChannelHandler to + * indicate what sorts of events are of interest: */ + #define TCL_READABLE (1<<1) #define TCL_WRITABLE (1<<2) #define TCL_EXCEPTION (1<<3) /* - * Flag values to pass to Tcl_OpenCommandChannel to indicate the - * disposition of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, - * are also used in Tcl_GetStdChannel. + * Flag values to pass to Tcl_OpenCommandChannel to indicate the disposition + * of the stdio handles. TCL_STDIN, TCL_STDOUT, TCL_STDERR, are also used in + * Tcl_GetStdChannel. */ -#define TCL_STDIN (1<<1) + +#define TCL_STDIN (1<<1) #define TCL_STDOUT (1<<2) #define TCL_STDERR (1<<3) #define TCL_ENFORCE_MODE (1<<4) @@ -1431,22 +1357,26 @@ typedef int (Tcl_WaitForEventProc) _ANSI_ARGS_((Tcl_Time *timePtr)); * Bits passed to Tcl_DriverClose2Proc to indicate which side of a channel * should be closed. */ + #define TCL_CLOSE_READ (1<<1) #define TCL_CLOSE_WRITE (1<<2) /* - * Value to use as the closeProc for a channel that supports the - * close2Proc interface. + * Value to use as the closeProc for a channel that supports the close2Proc + * interface. */ + #define TCL_CLOSE2PROC ((Tcl_DriverCloseProc *)1) /* - * Channel version tag. This was introduced in 8.3.2/8.4. + * Channel version tag. This was introduced in 8.3.2/8.4. */ + #define TCL_CHANNEL_VERSION_1 ((Tcl_ChannelTypeVersion) 0x1) #define TCL_CHANNEL_VERSION_2 ((Tcl_ChannelTypeVersion) 0x2) #define TCL_CHANNEL_VERSION_3 ((Tcl_ChannelTypeVersion) 0x3) #define TCL_CHANNEL_VERSION_4 ((Tcl_ChannelTypeVersion) 0x4) +#define TCL_CHANNEL_VERSION_5 ((Tcl_ChannelTypeVersion) 0x5) /* * TIP #218: Channel Actions, Ids for Tcl_DriverThreadActionProc @@ -1458,6 +1388,7 @@ typedef int (Tcl_WaitForEventProc) _ANSI_ARGS_((Tcl_Time *timePtr)); /* * Typedefs for the various operations in a channel type: */ + typedef int (Tcl_DriverBlockModeProc) _ANSI_ARGS_(( ClientData instanceData, int mode)); typedef int (Tcl_DriverCloseProc) _ANSI_ARGS_((ClientData instanceData, @@ -1472,7 +1403,7 @@ typedef int (Tcl_DriverSeekProc) _ANSI_ARGS_((ClientData instanceData, long offset, int mode, int *errorCodePtr)); typedef int (Tcl_DriverSetOptionProc) _ANSI_ARGS_(( ClientData instanceData, Tcl_Interp *interp, - CONST char *optionName, CONST char *value)); + CONST char *optionName, CONST char *value)); typedef int (Tcl_DriverGetOptionProc) _ANSI_ARGS_(( ClientData instanceData, Tcl_Interp *interp, CONST84 char *optionName, Tcl_DString *dsPtr)); @@ -1481,124 +1412,111 @@ typedef void (Tcl_DriverWatchProc) _ANSI_ARGS_(( typedef int (Tcl_DriverGetHandleProc) _ANSI_ARGS_(( ClientData instanceData, int direction, ClientData *handlePtr)); -typedef int (Tcl_DriverFlushProc) _ANSI_ARGS_(( - ClientData instanceData)); +typedef int (Tcl_DriverFlushProc) _ANSI_ARGS_((ClientData instanceData)); typedef int (Tcl_DriverHandlerProc) _ANSI_ARGS_(( ClientData instanceData, int interestMask)); typedef Tcl_WideInt (Tcl_DriverWideSeekProc) _ANSI_ARGS_(( ClientData instanceData, Tcl_WideInt offset, int mode, int *errorCodePtr)); - - /* TIP #218, Channel Thread Actions */ -typedef void (Tcl_DriverThreadActionProc) _ANSI_ARGS_ (( - ClientData instanceData, int action)); - /* - * The following declarations either map ckalloc and ckfree to - * malloc and free, or they map them to procedures with all sorts - * of debugging hooks defined in tclCkalloc.c. + * TIP #218, Channel Thread Actions */ -#ifdef TCL_MEM_DEBUG - -# define ckalloc(x) Tcl_DbCkalloc(x, __FILE__, __LINE__) -# define ckfree(x) Tcl_DbCkfree(x, __FILE__, __LINE__) -# define ckrealloc(x,y) Tcl_DbCkrealloc((x), (y),__FILE__, __LINE__) -# define attemptckalloc(x) Tcl_AttemptDbCkalloc(x, __FILE__, __LINE__) -# define attemptckrealloc(x,y) Tcl_AttemptDbCkrealloc((x), (y), __FILE__, __LINE__) -#else /* !TCL_MEM_DEBUG */ - +typedef void (Tcl_DriverThreadActionProc) _ANSI_ARGS_ (( + ClientData instanceData, int action)); /* - * If we are not using the debugging allocator, we should call the - * Tcl_Alloc, et al. routines in order to guarantee that every module - * is using the same memory allocator both inside and outside of the - * Tcl library. + * TIP #208, File Truncation (etc.) */ -# define ckalloc(x) Tcl_Alloc(x) -# define ckfree(x) Tcl_Free(x) -# define ckrealloc(x,y) Tcl_Realloc(x,y) -# define attemptckalloc(x) Tcl_AttemptAlloc(x) -# define attemptckrealloc(x,y) Tcl_AttemptRealloc(x,y) -# define Tcl_InitMemory(x) -# define Tcl_DumpActiveMemory(x) -# define Tcl_ValidateAllMemory(x,y) - -#endif /* !TCL_MEM_DEBUG */ +typedef int (Tcl_DriverTruncateProc) _ANSI_ARGS_(( + ClientData instanceData, Tcl_WideInt length)); /* * struct Tcl_ChannelType: * - * One such structure exists for each type (kind) of channel. - * It collects together in one place all the functions that are - * part of the specific channel type. + * One such structure exists for each type (kind) of channel. It collects + * together in one place all the functions that are part of the specific + * channel type. * - * It is recommend that the Tcl_Channel* functions are used to access - * elements of this structure, instead of direct accessing. + * It is recommend that the Tcl_Channel* functions are used to access elements + * of this structure, instead of direct accessing. */ + typedef struct Tcl_ChannelType { - char *typeName; /* The name of the channel type in Tcl - * commands. This storage is owned by - * channel type. */ - Tcl_ChannelTypeVersion version; /* Version of the channel type. */ - Tcl_DriverCloseProc *closeProc; /* Procedure to call to close the - * channel, or TCL_CLOSE2PROC if the - * close2Proc should be used - * instead. */ - Tcl_DriverInputProc *inputProc; /* Procedure to call for input - * on channel. */ - Tcl_DriverOutputProc *outputProc; /* Procedure to call for output - * on channel. */ - Tcl_DriverSeekProc *seekProc; /* Procedure to call to seek - * on the channel. May be NULL. */ + char *typeName; /* The name of the channel type in Tcl + * commands. This storage is owned by channel + * type. */ + Tcl_ChannelTypeVersion version; + /* Version of the channel type. */ + Tcl_DriverCloseProc *closeProc; + /* Function to call to close the channel, or + * TCL_CLOSE2PROC if the close2Proc should be + * used instead. */ + Tcl_DriverInputProc *inputProc; + /* Function to call for input on channel. */ + Tcl_DriverOutputProc *outputProc; + /* Function to call for output on channel. */ + Tcl_DriverSeekProc *seekProc; + /* Function to call to seek on the channel. + * May be NULL. */ Tcl_DriverSetOptionProc *setOptionProc; - /* Set an option on a channel. */ + /* Set an option on a channel. */ Tcl_DriverGetOptionProc *getOptionProc; - /* Get an option from a channel. */ - Tcl_DriverWatchProc *watchProc; /* Set up the notifier to watch - * for events on this channel. */ + /* Get an option from a channel. */ + Tcl_DriverWatchProc *watchProc; + /* Set up the notifier to watch for events on + * this channel. */ Tcl_DriverGetHandleProc *getHandleProc; - /* Get an OS handle from the channel - * or NULL if not supported. */ - Tcl_DriverClose2Proc *close2Proc; /* Procedure to call to close the - * channel if the device supports - * closing the read & write sides - * independently. */ + /* Get an OS handle from the channel or NULL + * if not supported. */ + Tcl_DriverClose2Proc *close2Proc; + /* Function to call to close the channel if + * the device supports closing the read & + * write sides independently. */ Tcl_DriverBlockModeProc *blockModeProc; - /* Set blocking mode for the - * raw channel. May be NULL. */ + /* Set blocking mode for the raw channel. May + * be NULL. */ /* * Only valid in TCL_CHANNEL_VERSION_2 channels or later */ - Tcl_DriverFlushProc *flushProc; /* Procedure to call to flush a - * channel. May be NULL. */ - Tcl_DriverHandlerProc *handlerProc; /* Procedure to call to handle a - * channel event. This will be passed - * up the stacked channel chain. */ + Tcl_DriverFlushProc *flushProc; + /* Function to call to flush a channel. May be + * NULL. */ + Tcl_DriverHandlerProc *handlerProc; + /* Function to call to handle a channel event. + * This will be passed up the stacked channel + * chain. */ /* * Only valid in TCL_CHANNEL_VERSION_3 channels or later */ Tcl_DriverWideSeekProc *wideSeekProc; - /* Procedure to call to seek - * on the channel which can - * handle 64-bit offsets. May be - * NULL, and must be NULL if - * seekProc is NULL. */ - - /* - * Only valid in TCL_CHANNEL_VERSION_4 channels or later - * TIP #218, Channel Thread Actions - */ - Tcl_DriverThreadActionProc *threadActionProc; - /* Procedure to call to notify - * the driver of thread specific - * activity for a channel. - * May be NULL. */ + /* Function to call to seek on the channel + * which can handle 64-bit offsets. May be + * NULL, and must be NULL if seekProc is + * NULL. */ + /* + * Only valid in TCL_CHANNEL_VERSION_4 channels or later + * TIP #218, Channel Thread Actions + */ + Tcl_DriverThreadActionProc *threadActionProc; + /* Function to call to notify the driver of + * thread specific activity for a channel. May + * be NULL. */ + + /* + * Only valid in TCL_CHANNEL_VERSION_5 channels or later + * TIP #208, File Truncation + */ + Tcl_DriverTruncateProc *truncateProc; + /* Function to call to truncate the underlying + * file to a particular length. May be NULL if + * the channel does not support truncation. */ } Tcl_ChannelType; /* - * The following flags determine whether the blockModeProc above should - * set the channel into blocking or nonblocking mode. They are passed - * as arguments to the blockModeProc procedure in the above structure. + * The following flags determine whether the blockModeProc above should set + * the channel into blocking or nonblocking mode. They are passed as arguments + * to the blockModeProc function in the above structure. */ + #define TCL_MODE_BLOCKING 0 /* Put channel into blocking mode. */ #define TCL_MODE_NONBLOCKING 1 /* Put channel into nonblocking * mode. */ @@ -1606,31 +1524,29 @@ typedef struct Tcl_ChannelType { /* * Enum for different types of file paths. */ + typedef enum Tcl_PathType { TCL_PATH_ABSOLUTE, TCL_PATH_RELATIVE, TCL_PATH_VOLUME_RELATIVE } Tcl_PathType; - -/* - * The following structure is used to pass glob type data amongst - * the various glob routines and Tcl_FSMatchInDirectory. +/* + * The following structure is used to pass glob type data amongst the various + * glob routines and Tcl_FSMatchInDirectory. */ + typedef struct Tcl_GlobTypeData { - /* Corresponds to bcdpfls as in 'find -t' */ - int type; - /* Corresponds to file permissions */ - int perm; - /* Acceptable mac type */ - Tcl_Obj* macType; - /* Acceptable mac creator */ - Tcl_Obj* macCreator; + int type; /* Corresponds to bcdpfls as in 'find -t' */ + int perm; /* Corresponds to file permissions */ + Tcl_Obj *macType; /* Acceptable mac type */ + Tcl_Obj *macCreator; /* Acceptable mac creator */ } Tcl_GlobTypeData; /* - * type and permission definitions for glob command + * Type and permission definitions for glob command */ + #define TCL_GLOB_TYPE_BLOCK (1<<0) #define TCL_GLOB_TYPE_CHAR (1<<1) #define TCL_GLOB_TYPE_DIR (1<<2) @@ -1646,66 +1562,70 @@ typedef struct Tcl_GlobTypeData { #define TCL_GLOB_PERM_W (1<<3) #define TCL_GLOB_PERM_X (1<<4) +/* + * Flags for the unload callback function + */ + +#define TCL_UNLOAD_DETACH_FROM_INTERPRETER (1<<0) +#define TCL_UNLOAD_DETACH_FROM_PROCESS (1<<1) /* * Typedefs for the various filesystem operations: */ + typedef int (Tcl_FSStatProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_StatBuf *buf)); typedef int (Tcl_FSAccessProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, int mode)); -typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) - _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr, - int mode, int permissions)); -typedef int (Tcl_FSMatchInDirectoryProc) _ANSI_ARGS_((Tcl_Interp* interp, - Tcl_Obj *result, Tcl_Obj *pathPtr, CONST char *pattern, +typedef Tcl_Channel (Tcl_FSOpenFileChannelProc) _ANSI_ARGS_(( + Tcl_Interp *interp, Tcl_Obj *pathPtr, int mode, int permissions)); +typedef int (Tcl_FSMatchInDirectoryProc) _ANSI_ARGS_((Tcl_Interp* interp, + Tcl_Obj *result, Tcl_Obj *pathPtr, CONST char *pattern, Tcl_GlobTypeData * types)); typedef Tcl_Obj* (Tcl_FSGetCwdProc) _ANSI_ARGS_((Tcl_Interp *interp)); typedef int (Tcl_FSChdirProc) _ANSI_ARGS_((Tcl_Obj *pathPtr)); -typedef int (Tcl_FSLstatProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - Tcl_StatBuf *buf)); +typedef int (Tcl_FSLstatProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, + Tcl_StatBuf *buf)); typedef int (Tcl_FSCreateDirectoryProc) _ANSI_ARGS_((Tcl_Obj *pathPtr)); typedef int (Tcl_FSDeleteFileProc) _ANSI_ARGS_((Tcl_Obj *pathPtr)); typedef int (Tcl_FSCopyDirectoryProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr, - Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr)); + Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr)); typedef int (Tcl_FSCopyFileProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr, - Tcl_Obj *destPathPtr)); + Tcl_Obj *destPathPtr)); typedef int (Tcl_FSRemoveDirectoryProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - int recursive, Tcl_Obj **errorPtr)); + int recursive, Tcl_Obj **errorPtr)); typedef int (Tcl_FSRenameFileProc) _ANSI_ARGS_((Tcl_Obj *srcPathPtr, - Tcl_Obj *destPathPtr)); + Tcl_Obj *destPathPtr)); typedef void (Tcl_FSUnloadFileProc) _ANSI_ARGS_((Tcl_LoadHandle loadHandle)); typedef Tcl_Obj* (Tcl_FSListVolumesProc) _ANSI_ARGS_((void)); /* We have to declare the utime structure here. */ struct utimbuf; -typedef int (Tcl_FSUtimeProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - struct utimbuf *tval)); -typedef int (Tcl_FSNormalizePathProc) _ANSI_ARGS_((Tcl_Interp *interp, - Tcl_Obj *pathPtr, int nextCheckpoint)); +typedef int (Tcl_FSUtimeProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, + struct utimbuf *tval)); +typedef int (Tcl_FSNormalizePathProc) _ANSI_ARGS_((Tcl_Interp *interp, + Tcl_Obj *pathPtr, int nextCheckpoint)); typedef int (Tcl_FSFileAttrsGetProc) _ANSI_ARGS_((Tcl_Interp *interp, - int index, Tcl_Obj *pathPtr, - Tcl_Obj **objPtrRef)); -typedef CONST char** (Tcl_FSFileAttrStringsProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - Tcl_Obj** objPtrRef)); + int index, Tcl_Obj *pathPtr, Tcl_Obj **objPtrRef)); +typedef CONST char** (Tcl_FSFileAttrStringsProc) _ANSI_ARGS_(( + Tcl_Obj *pathPtr, Tcl_Obj** objPtrRef)); typedef int (Tcl_FSFileAttrsSetProc) _ANSI_ARGS_((Tcl_Interp *interp, - int index, Tcl_Obj *pathPtr, - Tcl_Obj *objPtr)); -typedef Tcl_Obj* (Tcl_FSLinkProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - Tcl_Obj *toPtr, int linkType)); -typedef int (Tcl_FSLoadFileProc) _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj *pathPtr, - Tcl_LoadHandle *handlePtr, - Tcl_FSUnloadFileProc **unloadProcPtr)); -typedef int (Tcl_FSPathInFilesystemProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, - ClientData *clientDataPtr)); -typedef Tcl_Obj* (Tcl_FSFilesystemPathTypeProc) - _ANSI_ARGS_((Tcl_Obj *pathPtr)); -typedef Tcl_Obj* (Tcl_FSFilesystemSeparatorProc) - _ANSI_ARGS_((Tcl_Obj *pathPtr)); + int index, Tcl_Obj *pathPtr, Tcl_Obj *objPtr)); +typedef Tcl_Obj* (Tcl_FSLinkProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, + Tcl_Obj *toPtr, int linkType)); +typedef int (Tcl_FSLoadFileProc) _ANSI_ARGS_((Tcl_Interp * interp, + Tcl_Obj *pathPtr, Tcl_LoadHandle *handlePtr, + Tcl_FSUnloadFileProc **unloadProcPtr)); +typedef int (Tcl_FSPathInFilesystemProc) _ANSI_ARGS_((Tcl_Obj *pathPtr, + ClientData *clientDataPtr)); +typedef Tcl_Obj* (Tcl_FSFilesystemPathTypeProc) _ANSI_ARGS_(( + Tcl_Obj *pathPtr)); +typedef Tcl_Obj* (Tcl_FSFilesystemSeparatorProc) _ANSI_ARGS_(( + Tcl_Obj *pathPtr)); typedef void (Tcl_FSFreeInternalRepProc) _ANSI_ARGS_((ClientData clientData)); -typedef ClientData (Tcl_FSDupInternalRepProc) - _ANSI_ARGS_((ClientData clientData)); -typedef Tcl_Obj* (Tcl_FSInternalToNormalizedProc) - _ANSI_ARGS_((ClientData clientData)); -typedef ClientData (Tcl_FSCreateInternalRepProc) _ANSI_ARGS_((Tcl_Obj *pathPtr)); +typedef ClientData (Tcl_FSDupInternalRepProc) _ANSI_ARGS_(( + ClientData clientData)); +typedef Tcl_Obj* (Tcl_FSInternalToNormalizedProc) _ANSI_ARGS_(( + ClientData clientData)); +typedef ClientData (Tcl_FSCreateInternalRepProc) _ANSI_ARGS_(( + Tcl_Obj *pathPtr)); typedef struct Tcl_FSVersion_ *Tcl_FSVersion; @@ -1723,207 +1643,183 @@ typedef struct Tcl_FSVersion_ *Tcl_FSVersion; /* * struct Tcl_Filesystem: * - * One such structure exists for each type (kind) of filesystem. - * It collects together in one place all the functions that are - * part of the specific filesystem. Tcl always accesses the - * filesystem through one of these structures. - * - * Not all entries need be non-NULL; any which are NULL are simply - * ignored. However, a complete filesystem should provide all of - * these functions. The explanations in the structure show - * the importance of each function. + * One such structure exists for each type (kind) of filesystem. It collects + * together in one place all the functions that are part of the specific + * filesystem. Tcl always accesses the filesystem through one of these + * structures. + * + * Not all entries need be non-NULL; any which are NULL are simply ignored. + * However, a complete filesystem should provide all of these functions. The + * explanations in the structure show the importance of each function. */ typedef struct Tcl_Filesystem { - CONST char *typeName; /* The name of the filesystem. */ - int structureLength; /* Length of this structure, so future - * binary compatibility can be assured. */ - Tcl_FSVersion version; - /* Version of the filesystem type. */ + CONST char *typeName; /* The name of the filesystem. */ + int structureLength; /* Length of this structure, so future binary + * compatibility can be assured. */ + Tcl_FSVersion version; /* Version of the filesystem type. */ Tcl_FSPathInFilesystemProc *pathInFilesystemProc; - /* Function to check whether a path is in - * this filesystem. This is the most - * important filesystem procedure. */ + /* Function to check whether a path is in this + * filesystem. This is the most important + * filesystem function. */ Tcl_FSDupInternalRepProc *dupInternalRepProc; - /* Function to duplicate internal fs rep. May - * be NULL (but then fs is less efficient). */ + /* Function to duplicate internal fs rep. May + * be NULL (but then fs is less efficient). */ Tcl_FSFreeInternalRepProc *freeInternalRepProc; - /* Function to free internal fs rep. Must - * be implemented, if internal representations - * need freeing, otherwise it can be NULL. */ + /* Function to free internal fs rep. Must be + * implemented if internal representations + * need freeing, otherwise it can be NULL. */ Tcl_FSInternalToNormalizedProc *internalToNormalizedProc; - /* Function to convert internal representation - * to a normalized path. Only required if - * the fs creates pure path objects with no - * string/path representation. */ + /* Function to convert internal representation + * to a normalized path. Only required if the + * fs creates pure path objects with no + * string/path representation. */ Tcl_FSCreateInternalRepProc *createInternalRepProc; - /* Function to create a filesystem-specific - * internal representation. May be NULL - * if paths have no internal representation, - * or if the Tcl_FSPathInFilesystemProc - * for this filesystem always immediately - * creates an internal representation for - * paths it accepts. */ - Tcl_FSNormalizePathProc *normalizePathProc; - /* Function to normalize a path. Should - * be implemented for all filesystems - * which can have multiple string - * representations for the same path - * object. */ + /* Function to create a filesystem-specific + * internal representation. May be NULL if + * paths have no internal representation, or + * if the Tcl_FSPathInFilesystemProc for this + * filesystem always immediately creates an + * internal representation for paths it + * accepts. */ + Tcl_FSNormalizePathProc *normalizePathProc; + /* Function to normalize a path. Should be + * implemented for all filesystems which can + * have multiple string representations for + * the same path object. */ Tcl_FSFilesystemPathTypeProc *filesystemPathTypeProc; - /* Function to determine the type of a - * path in this filesystem. May be NULL. */ + /* Function to determine the type of a path in + * this filesystem. May be NULL. */ Tcl_FSFilesystemSeparatorProc *filesystemSeparatorProc; - /* Function to return the separator - * character(s) for this filesystem. Must - * be implemented. */ - Tcl_FSStatProc *statProc; - /* - * Function to process a 'Tcl_FSStat()' - * call. Must be implemented for any - * reasonable filesystem. - */ - Tcl_FSAccessProc *accessProc; - /* - * Function to process a 'Tcl_FSAccess()' - * call. Must be implemented for any - * reasonable filesystem. - */ - Tcl_FSOpenFileChannelProc *openFileChannelProc; - /* - * Function to process a - * 'Tcl_FSOpenFileChannel()' call. Must be - * implemented for any reasonable - * filesystem. - */ - Tcl_FSMatchInDirectoryProc *matchInDirectoryProc; - /* Function to process a - * 'Tcl_FSMatchInDirectory()'. If not - * implemented, then glob and recursive - * copy functionality will be lacking in - * the filesystem. */ - Tcl_FSUtimeProc *utimeProc; - /* Function to process a - * 'Tcl_FSUtime()' call. Required to - * allow setting (not reading) of times - * with 'file mtime', 'file atime' and - * the open-r/open-w/fcopy implementation - * of 'file copy'. */ - Tcl_FSLinkProc *linkProc; - /* Function to process a - * 'Tcl_FSLink()' call. Should be - * implemented only if the filesystem supports - * links (reading or creating). */ - Tcl_FSListVolumesProc *listVolumesProc; - /* Function to list any filesystem volumes - * added by this filesystem. Should be - * implemented only if the filesystem adds - * volumes at the head of the filesystem. */ + /* Function to return the separator + * character(s) for this filesystem. Must be + * implemented. */ + Tcl_FSStatProc *statProc; /* Function to process a 'Tcl_FSStat()' call. + * Must be implemented for any reasonable + * filesystem. */ + Tcl_FSAccessProc *accessProc; + /* Function to process a 'Tcl_FSAccess()' + * call. Must be implemented for any + * reasonable filesystem. */ + Tcl_FSOpenFileChannelProc *openFileChannelProc; + /* Function to process a + * 'Tcl_FSOpenFileChannel()' call. Must be + * implemented for any reasonable + * filesystem. */ + Tcl_FSMatchInDirectoryProc *matchInDirectoryProc; + /* Function to process a + * 'Tcl_FSMatchInDirectory()'. If not + * implemented, then glob and recursive copy + * functionality will be lacking in the + * filesystem. */ + Tcl_FSUtimeProc *utimeProc; /* Function to process a 'Tcl_FSUtime()' call. + * Required to allow setting (not reading) of + * times with 'file mtime', 'file atime' and + * the open-r/open-w/fcopy implementation of + * 'file copy'. */ + Tcl_FSLinkProc *linkProc; /* Function to process a 'Tcl_FSLink()' call. + * Should be implemented only if the + * filesystem supports links (reading or + * creating). */ + Tcl_FSListVolumesProc *listVolumesProc; + /* Function to list any filesystem volumes + * added by this filesystem. Should be + * implemented only if the filesystem adds + * volumes at the head of the filesystem. */ Tcl_FSFileAttrStringsProc *fileAttrStringsProc; - /* Function to list all attributes strings - * which are valid for this filesystem. - * If not implemented the filesystem will - * not support the 'file attributes' command. - * This allows arbitrary additional information - * to be attached to files in the filesystem. */ + /* Function to list all attributes strings + * which are valid for this filesystem. If not + * implemented the filesystem will not support + * the 'file attributes' command. This allows + * arbitrary additional information to be + * attached to files in the filesystem. */ Tcl_FSFileAttrsGetProc *fileAttrsGetProc; - /* Function to process a - * 'Tcl_FSFileAttrsGet()' call, used by - * 'file attributes'. */ + /* Function to process a + * 'Tcl_FSFileAttrsGet()' call, used by 'file + * attributes'. */ Tcl_FSFileAttrsSetProc *fileAttrsSetProc; - /* Function to process a - * 'Tcl_FSFileAttrsSet()' call, used by - * 'file attributes'. */ - Tcl_FSCreateDirectoryProc *createDirectoryProc; - /* Function to process a - * 'Tcl_FSCreateDirectory()' call. Should - * be implemented unless the FS is - * read-only. */ - Tcl_FSRemoveDirectoryProc *removeDirectoryProc; - /* Function to process a - * 'Tcl_FSRemoveDirectory()' call. Should - * be implemented unless the FS is - * read-only. */ - Tcl_FSDeleteFileProc *deleteFileProc; - /* Function to process a - * 'Tcl_FSDeleteFile()' call. Should - * be implemented unless the FS is - * read-only. */ - Tcl_FSCopyFileProc *copyFileProc; - /* Function to process a - * 'Tcl_FSCopyFile()' call. If not - * implemented Tcl will fall back - * on open-r, open-w and fcopy as - * a copying mechanism, for copying - * actions initiated in Tcl (not C). */ - Tcl_FSRenameFileProc *renameFileProc; - /* Function to process a - * 'Tcl_FSRenameFile()' call. If not - * implemented, Tcl will fall back on - * a copy and delete mechanism, for - * rename actions initiated in Tcl (not C). */ - Tcl_FSCopyDirectoryProc *copyDirectoryProc; - /* Function to process a - * 'Tcl_FSCopyDirectory()' call. If - * not implemented, Tcl will fall back - * on a recursive create-dir, file copy - * mechanism, for copying actions - * initiated in Tcl (not C). */ - Tcl_FSLstatProc *lstatProc; - /* Function to process a - * 'Tcl_FSLstat()' call. If not implemented, - * Tcl will attempt to use the 'statProc' - * defined above instead. */ - Tcl_FSLoadFileProc *loadFileProc; - /* Function to process a - * 'Tcl_FSLoadFile()' call. If not - * implemented, Tcl will fall back on - * a copy to native-temp followed by a - * Tcl_FSLoadFile on that temporary copy. */ - Tcl_FSGetCwdProc *getCwdProc; - /* - * Function to process a 'Tcl_FSGetCwd()' - * call. Most filesystems need not - * implement this. It will usually only be - * called once, if 'getcwd' is called - * before 'chdir'. May be NULL. - */ - Tcl_FSChdirProc *chdirProc; - /* - * Function to process a 'Tcl_FSChdir()' - * call. If filesystems do not implement - * this, it will be emulated by a series of - * directory access checks. Otherwise, - * virtual filesystems which do implement - * it need only respond with a positive - * return result if the dirName is a valid - * directory in their filesystem. They - * need not remember the result, since that - * will be automatically remembered for use - * by GetCwd. Real filesystems should - * carry out the correct action (i.e. call - * the correct system 'chdir' api). If not - * implemented, then 'cd' and 'pwd' will - * fail inside the filesystem. - */ + /* Function to process a + * 'Tcl_FSFileAttrsSet()' call, used by 'file + * attributes'. */ + Tcl_FSCreateDirectoryProc *createDirectoryProc; + /* Function to process a + * 'Tcl_FSCreateDirectory()' call. Should be + * implemented unless the FS is read-only. */ + Tcl_FSRemoveDirectoryProc *removeDirectoryProc; + /* Function to process a + * 'Tcl_FSRemoveDirectory()' call. Should be + * implemented unless the FS is read-only. */ + Tcl_FSDeleteFileProc *deleteFileProc; + /* Function to process a 'Tcl_FSDeleteFile()' + * call. Should be implemented unless the FS + * is read-only. */ + Tcl_FSCopyFileProc *copyFileProc; + /* Function to process a 'Tcl_FSCopyFile()' + * call. If not implemented Tcl will fall back + * on open-r, open-w and fcopy as a copying + * mechanism, for copying actions initiated in + * Tcl (not C). */ + Tcl_FSRenameFileProc *renameFileProc; + /* Function to process a 'Tcl_FSRenameFile()' + * call. If not implemented, Tcl will fall + * back on a copy and delete mechanism, for + * rename actions initiated in Tcl (not C). */ + Tcl_FSCopyDirectoryProc *copyDirectoryProc; + /* Function to process a + * 'Tcl_FSCopyDirectory()' call. If not + * implemented, Tcl will fall back on a + * recursive create-dir, file copy mechanism, + * for copying actions initiated in Tcl (not + * C). */ + Tcl_FSLstatProc *lstatProc; /* Function to process a 'Tcl_FSLstat()' call. + * If not implemented, Tcl will attempt to use + * the 'statProc' defined above instead. */ + Tcl_FSLoadFileProc *loadFileProc; + /* Function to process a 'Tcl_FSLoadFile()' + * call. If not implemented, Tcl will fall + * back on a copy to native-temp followed by a + * Tcl_FSLoadFile on that temporary copy. */ + Tcl_FSGetCwdProc *getCwdProc; + /* Function to process a 'Tcl_FSGetCwd()' + * call. Most filesystems need not implement + * this. It will usually only be called once, + * if 'getcwd' is called before 'chdir'. May + * be NULL. */ + Tcl_FSChdirProc *chdirProc; /* Function to process a 'Tcl_FSChdir()' call. + * If filesystems do not implement this, it + * will be emulated by a series of directory + * access checks. Otherwise, virtual + * filesystems which do implement it need only + * respond with a positive return result if + * the dirName is a valid directory in their + * filesystem. They need not remember the + * result, since that will be automatically + * remembered for use by GetCwd. Real + * filesystems should carry out the correct + * action (i.e. call the correct system + * 'chdir' api). If not implemented, then 'cd' + * and 'pwd' will fail inside the + * filesystem. */ } Tcl_Filesystem; /* - * The following definitions are used as values for the 'linkAction' flag - * to Tcl_FSLink, or the linkProc of any filesystem. Any combination - * of flags can be given. For link creation, the linkProc should create - * a link which matches any of the types given. - * - * TCL_CREATE_SYMBOLIC_LINK: Create a symbolic or soft link. - * TCL_CREATE_HARD_LINK: Create a hard link. + * The following definitions are used as values for the 'linkAction' flag to + * Tcl_FSLink, or the linkProc of any filesystem. Any combination of flags can + * be given. For link creation, the linkProc should create a link which + * matches any of the types given. + * + * TCL_CREATE_SYMBOLIC_LINK - Create a symbolic or soft link. + * TCL_CREATE_HARD_LINK - Create a hard link. */ -#define TCL_CREATE_SYMBOLIC_LINK 0x01 -#define TCL_CREATE_HARD_LINK 0x02 + +#define TCL_CREATE_SYMBOLIC_LINK 0x01 +#define TCL_CREATE_HARD_LINK 0x02 /* - * The following structure represents the Notifier functions that - * you can override with the Tcl_SetNotifier call. + * The following structure represents the Notifier functions that you can + * override with the Tcl_SetNotifier call. */ + typedef struct Tcl_NotifierProcs { Tcl_SetTimerProc *setTimerProc; Tcl_WaitForEventProc *waitForEventProc; @@ -1935,164 +1831,160 @@ typedef struct Tcl_NotifierProcs { Tcl_ServiceModeHookProc *serviceModeHookProc; } Tcl_NotifierProcs; - /* - * The following structure represents a user-defined encoding. It collects + * The following structure represents a user-defined encoding. It collects * together all the functions that are used by the specific encoding. */ + typedef struct Tcl_EncodingType { - CONST char *encodingName; /* The name of the encoding, e.g. "euc-jp". + CONST char *encodingName; /* The name of the encoding, e.g. "euc-jp". * This name is the unique key for this * encoding type. */ Tcl_EncodingConvertProc *toUtfProc; - /* Procedure to convert from external - * encoding into UTF-8. */ + /* Function to convert from external encoding + * into UTF-8. */ Tcl_EncodingConvertProc *fromUtfProc; - /* Procedure to convert from UTF-8 into + /* Function to convert from UTF-8 into * external encoding. */ Tcl_EncodingFreeProc *freeProc; - /* If non-NULL, procedure to call when this + /* If non-NULL, function to call when this * encoding is deleted. */ ClientData clientData; /* Arbitrary value associated with encoding - * type. Passed to conversion procedures. */ + * type. Passed to conversion functions. */ int nullSize; /* Number of zero bytes that signify - * end-of-string in this encoding. This - * number is used to determine the source - * string length when the srcLen argument is - * negative. Must be 1 or 2. */ -} Tcl_EncodingType; + * end-of-string in this encoding. This number + * is used to determine the source string + * length when the srcLen argument is + * negative. Must be 1 or 2. */ +} Tcl_EncodingType; /* * The following definitions are used as values for the conversion control * flags argument when converting text from one character set to another: * - * TCL_ENCODING_START: Signifies that the source buffer is the first + * TCL_ENCODING_START - Signifies that the source buffer is the first * block in a (potentially multi-block) input - * stream. Tells the conversion procedure to - * reset to an initial state and perform any + * stream. Tells the conversion function to reset + * to an initial state and perform any * initialization that needs to occur before the - * first byte is converted. If the source - * buffer contains the entire input stream to be + * first byte is converted. If the source buffer + * contains the entire input stream to be * converted, this flag should be set. - * - * TCL_ENCODING_END: Signifies that the source buffer is the last + * TCL_ENCODING_END - Signifies that the source buffer is the last * block in a (potentially multi-block) input - * stream. Tells the conversion routine to + * stream. Tells the conversion routine to * perform any finalization that needs to occur * after the last byte is converted and then to - * reset to an initial state. If the source + * reset to an initial state. If the source * buffer contains the entire input stream to be * converted, this flag should be set. - * - * TCL_ENCODING_STOPONERROR: If set, then the converter will return - * immediately upon encountering an invalid - * byte sequence or a source character that has - * no mapping in the target encoding. If clear, - * then the converter will skip the problem, - * substituting one or more "close" characters - * in the destination buffer and then continue - * to sonvert the source. + * TCL_ENCODING_STOPONERROR - If set, then the converter will return + * immediately upon encountering an invalid byte + * sequence or a source character that has no + * mapping in the target encoding. If clear, then + * the converter will skip the problem, + * substituting one or more "close" characters in + * the destination buffer and then continue to + * convert the source. */ + #define TCL_ENCODING_START 0x01 #define TCL_ENCODING_END 0x02 #define TCL_ENCODING_STOPONERROR 0x04 - /* - * The following data structures and declarations are for the new Tcl - * parser. + * The following data structures and declarations are for the new Tcl parser. */ /* - * For each word of a command, and for each piece of a word such as a - * variable reference, one of the following structures is created to - * describe the token. + * For each word of a command, and for each piece of a word such as a variable + * reference, one of the following structures is created to describe the + * token. */ + typedef struct Tcl_Token { - int type; /* Type of token, such as TCL_TOKEN_WORD; - * see below for valid types. */ + int type; /* Type of token, such as TCL_TOKEN_WORD; see + * below for valid types. */ CONST char *start; /* First character in token. */ int size; /* Number of bytes in token. */ - int numComponents; /* If this token is composed of other - * tokens, this field tells how many of - * them there are (including components of - * components, etc.). The component tokens - * immediately follow this one. */ + int numComponents; /* If this token is composed of other tokens, + * this field tells how many of them there are + * (including components of components, etc.). + * The component tokens immediately follow + * this one. */ } Tcl_Token; /* - * Type values defined for Tcl_Token structures. These values are - * defined as mask bits so that it's easy to check for collections of - * types. + * Type values defined for Tcl_Token structures. These values are defined as + * mask bits so that it's easy to check for collections of types. * * TCL_TOKEN_WORD - The token describes one word of a command, - * from the first non-blank character of - * the word (which may be " or {) up to but - * not including the space, semicolon, or - * bracket that terminates the word. - * NumComponents counts the total number of - * sub-tokens that make up the word. This - * includes, for example, sub-tokens of - * TCL_TOKEN_VARIABLE tokens. - * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD - * except that the word is guaranteed to - * consist of a single TCL_TOKEN_TEXT - * sub-token. - * TCL_TOKEN_TEXT - The token describes a range of literal - * text that is part of a word. - * NumComponents is always 0. - * TCL_TOKEN_BS - The token describes a backslash sequence - * that must be collapsed. NumComponents - * is always 0. + * from the first non-blank character of the word + * (which may be " or {) up to but not including + * the space, semicolon, or bracket that + * terminates the word. NumComponents counts the + * total number of sub-tokens that make up the + * word. This includes, for example, sub-tokens + * of TCL_TOKEN_VARIABLE tokens. + * TCL_TOKEN_SIMPLE_WORD - This token is just like TCL_TOKEN_WORD except + * that the word is guaranteed to consist of a + * single TCL_TOKEN_TEXT sub-token. + * TCL_TOKEN_TEXT - The token describes a range of literal text + * that is part of a word. NumComponents is + * always 0. + * TCL_TOKEN_BS - The token describes a backslash sequence that + * must be collapsed. NumComponents is always 0. * TCL_TOKEN_COMMAND - The token describes a command whose result - * must be substituted into the word. The - * token includes the enclosing brackets. - * NumComponents is always 0. - * TCL_TOKEN_VARIABLE - The token describes a variable - * substitution, including the dollar sign, - * variable name, and array index (if there - * is one) up through the right - * parentheses. NumComponents tells how - * many additional tokens follow to - * represent the variable name. The first - * token will be a TCL_TOKEN_TEXT token - * that describes the variable name. If - * the variable is an array reference then - * there will be one or more additional - * tokens, of type TCL_TOKEN_TEXT, + * must be substituted into the word. The token + * includes the enclosing brackets. NumComponents + * is always 0. + * TCL_TOKEN_VARIABLE - The token describes a variable substitution, + * including the dollar sign, variable name, and + * array index (if there is one) up through the + * right parentheses. NumComponents tells how + * many additional tokens follow to represent the + * variable name. The first token will be a + * TCL_TOKEN_TEXT token that describes the + * variable name. If the variable is an array + * reference then there will be one or more + * additional tokens, of type TCL_TOKEN_TEXT, * TCL_TOKEN_BS, TCL_TOKEN_COMMAND, and - * TCL_TOKEN_VARIABLE, that describe the - * array index; numComponents counts the - * total number of nested tokens that make - * up the variable reference, including - * sub-tokens of TCL_TOKEN_VARIABLE tokens. - * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of a - * expression, from the first non-blank - * character of the subexpression up to but not - * including the space, brace, or bracket - * that terminates the subexpression. - * NumComponents counts the total number of - * following subtokens that make up the - * subexpression; this includes all subtokens - * for any nested TCL_TOKEN_SUB_EXPR tokens. - * For example, a numeric value used as a + * TCL_TOKEN_VARIABLE, that describe the array + * index; numComponents counts the total number + * of nested tokens that make up the variable + * reference, including sub-tokens of + * TCL_TOKEN_VARIABLE tokens. + * TCL_TOKEN_SUB_EXPR - The token describes one subexpression of an + * expression, from the first non-blank character + * of the subexpression up to but not including + * the space, brace, or bracket that terminates + * the subexpression. NumComponents counts the + * total number of following subtokens that make + * up the subexpression; this includes all + * subtokens for any nested TCL_TOKEN_SUB_EXPR + * tokens. For example, a numeric value used as a * primitive operand is described by a * TCL_TOKEN_SUB_EXPR token followed by a * TCL_TOKEN_TEXT token. A binary subexpression * is described by a TCL_TOKEN_SUB_EXPR token - * followed by the TCL_TOKEN_OPERATOR token - * for the operator, then TCL_TOKEN_SUB_EXPR - * tokens for the left then the right operands. + * followed by the TCL_TOKEN_OPERATOR token for + * the operator, then TCL_TOKEN_SUB_EXPR tokens + * for the left then the right operands. * TCL_TOKEN_OPERATOR - The token describes one expression operator. * An operator might be the name of a math * function such as "abs". A TCL_TOKEN_OPERATOR * token is always preceeded by one * TCL_TOKEN_SUB_EXPR token for the operator's - * subexpression, and is followed by zero or - * more TCL_TOKEN_SUB_EXPR tokens for the - * operator's operands. NumComponents is - * always 0. + * subexpression, and is followed by zero or more + * TCL_TOKEN_SUB_EXPR tokens for the operator's + * operands. NumComponents is always 0. + * TCL_TOKEN_EXPAND_WORD - This token is just like TCL_TOKEN_WORD except + * that it marks a word that began with the + * literal character prefix "{*}". This word is + * marked to be expanded - that is, broken into + * words after substitution is complete. */ + #define TCL_TOKEN_WORD 1 #define TCL_TOKEN_SIMPLE_WORD 2 #define TCL_TOKEN_TEXT 4 @@ -2101,12 +1993,13 @@ typedef struct Tcl_Token { #define TCL_TOKEN_VARIABLE 32 #define TCL_TOKEN_SUB_EXPR 64 #define TCL_TOKEN_OPERATOR 128 +#define TCL_TOKEN_EXPAND_WORD 256 /* - * Parsing error types. On any parsing error, one of these values - * will be stored in the error field of the Tcl_Parse structure - * defined below. + * Parsing error types. On any parsing error, one of these values will be + * stored in the error field of the Tcl_Parse structure defined below. */ + #define TCL_PARSE_SUCCESS 0 #define TCL_PARSE_QUOTE_EXTRA 1 #define TCL_PARSE_BRACE_EXTRA 2 @@ -2119,31 +2012,32 @@ typedef struct Tcl_Token { #define TCL_PARSE_BAD_NUMBER 9 /* - * A structure of the following type is filled in by Tcl_ParseCommand. - * It describes a single command parsed from an input string. + * A structure of the following type is filled in by Tcl_ParseCommand. It + * describes a single command parsed from an input string. */ + #define NUM_STATIC_TOKENS 20 typedef struct Tcl_Parse { - CONST char *commentStart; /* Pointer to # that begins the first of - * one or more comments preceding the - * command. */ + CONST char *commentStart; /* Pointer to # that begins the first of one + * or more comments preceding the command. */ int commentSize; /* Number of bytes in comments (up through - * newline character that terminates the - * last comment). If there were no - * comments, this field is 0. */ - CONST char *commandStart; /* First character in first word of command. */ - int commandSize; /* Number of bytes in command, including - * first character of first word, up - * through the terminating newline, - * close bracket, or semicolon. */ - int numWords; /* Total number of words in command. May - * be 0. */ - Tcl_Token *tokenPtr; /* Pointer to first token representing - * the words of the command. Initially - * points to staticTokens, but may change - * to point to malloc-ed space if command - * exceeds space in staticTokens. */ + * newline character that terminates the last + * comment). If there were no comments, this + * field is 0. */ + CONST char *commandStart; /* First character in first word of + * command. */ + int commandSize; /* Number of bytes in command, including first + * character of first word, up through the + * terminating newline, close bracket, or + * semicolon. */ + int numWords; /* Total number of words in command. May be + * 0. */ + Tcl_Token *tokenPtr; /* Pointer to first token representing the + * words of the command. Initially points to + * staticTokens, but may change to point to + * malloc-ed space if command exceeds space in + * staticTokens. */ int numTokens; /* Total number of tokens in command. */ int tokensAvailable; /* Total number of tokens available at * *tokenPtr. */ @@ -2151,94 +2045,91 @@ typedef struct Tcl_Parse { * above. */ /* - * The fields below are intended only for the private use of the - * parser. They should not be used by procedures that invoke - * Tcl_ParseCommand. + * The fields below are intended only for the private use of the parser. + * They should not be used by functions that invoke Tcl_ParseCommand. */ CONST char *string; /* The original command string passed to * Tcl_ParseCommand. */ - CONST char *end; /* Points to the character just after the - * last one in the command string. */ - Tcl_Interp *interp; /* Interpreter to use for error reporting, - * or NULL. */ + CONST char *end; /* Points to the character just after the last + * one in the command string. */ + Tcl_Interp *interp; /* Interpreter to use for error reporting, or + * NULL. */ CONST char *term; /* Points to character in string that - * terminated most recent token. Filled in - * by ParseTokens. If an error occurs, - * points to beginning of region where the - * error occurred (e.g. the open brace if - * the close brace is missing). */ + * terminated most recent token. Filled in by + * ParseTokens. If an error occurs, points to + * beginning of region where the error + * occurred (e.g. the open brace if the close + * brace is missing). */ int incomplete; /* This field is set to 1 by Tcl_ParseCommand * if the command appears to be incomplete. * This information is used by * Tcl_CommandComplete. */ Tcl_Token staticTokens[NUM_STATIC_TOKENS]; - /* Initial space for tokens for command. - * This space should be large enough to - * accommodate most commands; dynamic - * space is allocated for very large - * commands that don't fit here. */ + /* Initial space for tokens for command. This + * space should be large enough to accommodate + * most commands; dynamic space is allocated + * for very large commands that don't fit + * here. */ } Tcl_Parse; /* * The following definitions are the error codes returned by the conversion * routines: * - * TCL_OK: All characters were converted. - * - * TCL_CONVERT_NOSPACE: The output buffer would not have been large + * TCL_OK - All characters were converted. + * TCL_CONVERT_NOSPACE - The output buffer would not have been large * enough for all of the converted data; as many * characters as could fit were converted though. - * - * TCL_CONVERT_MULTIBYTE: The last few bytes in the source string were + * TCL_CONVERT_MULTIBYTE - The last few bytes in the source string were * the beginning of a multibyte sequence, but * more bytes were needed to complete this - * sequence. A subsequent call to the conversion + * sequence. A subsequent call to the conversion * routine should pass the beginning of this * unconverted sequence plus additional bytes - * from the source stream to properly convert - * the formerly split-up multibyte sequence. - * - * TCL_CONVERT_SYNTAX: The source stream contained an invalid - * character sequence. This may occur if the + * from the source stream to properly convert the + * formerly split-up multibyte sequence. + * TCL_CONVERT_SYNTAX - The source stream contained an invalid + * character sequence. This may occur if the * input stream has been damaged or if the input - * encoding method was misidentified. This error + * encoding method was misidentified. This error * is reported only if TCL_ENCODING_STOPONERROR * was specified. - * - * TCL_CONVERT_UNKNOWN: The source string contained a character - * that could not be represented in the target - * encoding. This error is reported only if + * TCL_CONVERT_UNKNOWN - The source string contained a character that + * could not be represented in the target + * encoding. This error is reported only if * TCL_ENCODING_STOPONERROR was specified. */ -#define TCL_CONVERT_MULTIBYTE -1 -#define TCL_CONVERT_SYNTAX -2 -#define TCL_CONVERT_UNKNOWN -3 -#define TCL_CONVERT_NOSPACE -4 + +#define TCL_CONVERT_MULTIBYTE -1 +#define TCL_CONVERT_SYNTAX -2 +#define TCL_CONVERT_UNKNOWN -3 +#define TCL_CONVERT_NOSPACE -4 /* * The maximum number of bytes that are necessary to represent a single - * Unicode character in UTF-8. The valid values should be 3 or 6 (or - * perhaps 1 if we want to support a non-unicode enabled core). - * If 3, then Tcl_UniChar must be 2-bytes in size (UCS-2). (default) - * If 6, then Tcl_UniChar must be 4-bytes in size (UCS-4). - * At this time UCS-2 mode is the default and recommended mode. - * UCS-4 is experimental and not recommended. It works for the core, - * but most extensions expect UCS-2. + * Unicode character in UTF-8. The valid values should be 3 or 6 (or perhaps 1 + * if we want to support a non-unicode enabled core). If 3, then Tcl_UniChar + * must be 2-bytes in size (UCS-2) (the default). If 6, then Tcl_UniChar must + * be 4-bytes in size (UCS-4). At this time UCS-2 mode is the default and + * recommended mode. UCS-4 is experimental and not recommended. It works for + * the core, but most extensions expect UCS-2. */ + #ifndef TCL_UTF_MAX #define TCL_UTF_MAX 3 #endif /* - * This represents a Unicode character. Any changes to this should - * also be reflected in regcustom.h. + * This represents a Unicode character. Any changes to this should also be + * reflected in regcustom.h. */ + #if TCL_UTF_MAX > 3 /* - * unsigned int isn't 100% accurate as it should be a strict 4-byte - * value (perhaps wchar_t). 64-bit systems may have troubles. The - * size of this value must be reflected correctly in regcustom.h and + * unsigned int isn't 100% accurate as it should be a strict 4-byte value + * (perhaps wchar_t). 64-bit systems may have troubles. The size of this + * value must be reflected correctly in regcustom.h and * in tclEncoding.c. * XXX: Tcl is currently UCS-2 and planning UTF-16 for the Unicode * XXX: string rep that Tcl_UniChar represents. Changing the size @@ -2249,34 +2140,47 @@ typedef unsigned int Tcl_UniChar; typedef unsigned short Tcl_UniChar; #endif +/* + * TIP #59: The following structure is used in calls 'Tcl_RegisterConfig' to + * provide the system with the embedded configuration data. + */ + +typedef struct Tcl_Config { + CONST char *key; /* Configuration key to register. ASCII + * encoded, thus UTF-8 */ + CONST char *value; /* The value associated with the key. System + * encoding */ +} Tcl_Config; /* - * Deprecated Tcl procedures: + * Flags for TIP#143 limits, detailing which limits are active in an + * interpreter. Used for Tcl_{Add,Remove}LimitHandler type argument. */ -#ifndef TCL_NO_DEPRECATED -# define Tcl_EvalObj(interp,objPtr) \ - Tcl_EvalObjEx((interp),(objPtr),0) -# define Tcl_GlobalEvalObj(interp,objPtr) \ - Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL) -#endif +#define TCL_LIMIT_COMMANDS 0x01 +#define TCL_LIMIT_TIME 0x02 /* - * These function have been renamed. The old names are deprecated, but we - * define these macros for backwards compatibilty. + * Structure containing information about a limit handler to be called when a + * command- or time-limit is exceeded by an interpreter. */ -#define Tcl_Ckalloc Tcl_Alloc -#define Tcl_Ckfree Tcl_Free -#define Tcl_Ckrealloc Tcl_Realloc -#define Tcl_Return Tcl_SetResult -#define Tcl_TildeSubst Tcl_TranslateFileName -#define panic Tcl_Panic -#define panicVA Tcl_PanicVA +typedef void (Tcl_LimitHandlerProc) _ANSI_ARGS_((ClientData clientData, + Tcl_Interp *interp)); +typedef void (Tcl_LimitHandlerDeleteProc) _ANSI_ARGS_((ClientData clientData)); + +#ifndef MP_INT_DECLARED +typedef struct mp_int mp_int; +#define MP_INT_DECLARED +#endif +#ifndef MP_DIGIT_DECLARED +typedef unsigned long mp_digit; +#define MP_DIGIT_DECLARED +#endif /* - * The following constant is used to test for older versions of Tcl - * in the stubs tables. + * The following constant is used to test for older versions of Tcl in the + * stubs tables. * * Jan Nijtman's plus patch uses 0xFCA1BACF, so we need to pick a different * value since the stubs tables don't match. @@ -2286,14 +2190,15 @@ typedef unsigned short Tcl_UniChar; /* * The following function is required to be defined in all stubs aware - * extensions. The function is actually implemented in the stub - * library, not the main Tcl library, although there is a trivial - * implementation in the main library in case an extension is statically - * linked into an application. + * extensions. The function is actually implemented in the stub library, not + * the main Tcl library, although there is a trivial implementation in the + * main library in case an extension is statically linked into an application. */ EXTERN CONST char * Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, CONST char *version, int exact)); +EXTERN CONST char* TclTomMathInitializeStubs(Tcl_Interp* interp, + CONST char* version, int epoch, int revision); #ifndef USE_TCL_STUBS @@ -2302,50 +2207,210 @@ EXTERN CONST char * Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, */ #define Tcl_InitStubs(interp, version, exact) \ - Tcl_PkgRequire(interp, "Tcl", version, exact) + Tcl_PkgInitStubsCheck(interp, version, exact) #endif + /* + * TODO - tommath stubs export goes here! + */ + /* - * Include the public function declarations that are accessible via - * the stubs table. + * Public functions that are not accessible via the stubs table. */ -#include "tclDecls.h" +EXTERN void Tcl_Main _ANSI_ARGS_((int argc, char **argv, + Tcl_AppInitProc *appInitProc)); + +EXTERN CONST char *Tcl_PkgInitStubsCheck _ANSI_ARGS_((Tcl_Interp *interp, + CONST char *version, int exact)); /* - * Include platform specific public function declarations that are - * accessible via the stubs table. + * Include the public function declarations that are accessible via the stubs + * table. */ +#include "tclDecls.h" + /* - * tclPlatDecls.h can't be included here on the Mac, as we need - * Mac specific headers to define the Mac types used in this file, - * but these Mac haders conflict with a number of tk types - * and thus can't be included in the globally read tcl.h - * This header was originally added here as a fix for bug 5241 - * (stub link error for symbols in TclPlatStubs table), as a work- - * around for the bug on the mac, tclMac.h is included immediately - * after tcl.h in the tcl precompiled header (with DLLEXPORT set). + * Include platform specific public function declarations that are accessible + * via the stubs table. */ -#if !defined(MAC_TCL) #include "tclPlatDecls.h" + +/* + * The following declarations either map ckalloc and ckfree to malloc and + * free, or they map them to functions with all sorts of debugging hooks + * defined in tclCkalloc.c. + */ + +#ifdef TCL_MEM_DEBUG + +# define ckalloc(x) Tcl_DbCkalloc(x, __FILE__, __LINE__) +# define ckfree(x) Tcl_DbCkfree(x, __FILE__, __LINE__) +# define ckrealloc(x,y) Tcl_DbCkrealloc((x), (y),__FILE__, __LINE__) +# define attemptckalloc(x) Tcl_AttemptDbCkalloc(x, __FILE__, __LINE__) +# define attemptckrealloc(x,y) Tcl_AttemptDbCkrealloc((x), (y), __FILE__, __LINE__) + +#else /* !TCL_MEM_DEBUG */ + +/* + * If we are not using the debugging allocator, we should call the Tcl_Alloc, + * et al. routines in order to guarantee that every module is using the same + * memory allocator both inside and outside of the Tcl library. + */ + +# define ckalloc(x) Tcl_Alloc(x) +# define ckfree(x) Tcl_Free(x) +# define ckrealloc(x,y) Tcl_Realloc(x,y) +# define attemptckalloc(x) Tcl_AttemptAlloc(x) +# define attemptckrealloc(x,y) Tcl_AttemptRealloc(x,y) +# undef Tcl_InitMemory +# define Tcl_InitMemory(x) +# undef Tcl_DumpActiveMemory +# define Tcl_DumpActiveMemory(x) +# undef Tcl_ValidateAllMemory +# define Tcl_ValidateAllMemory(x,y) + +#endif /* !TCL_MEM_DEBUG */ + +#ifdef TCL_MEM_DEBUG +# define Tcl_IncrRefCount(objPtr) \ + Tcl_DbIncrRefCount(objPtr, __FILE__, __LINE__) +# define Tcl_DecrRefCount(objPtr) \ + Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__) +# define Tcl_IsShared(objPtr) \ + Tcl_DbIsShared(objPtr, __FILE__, __LINE__) +#else +# define Tcl_IncrRefCount(objPtr) \ + ++(objPtr)->refCount + /* + * Use do/while0 idiom for optimum correctness without compiler warnings + * http://c2.com/cgi/wiki?TrivialDoWhileLoop + */ +# define Tcl_DecrRefCount(objPtr) \ + do { if (--(objPtr)->refCount <= 0) TclFreeObj(objPtr); } while(0) +# define Tcl_IsShared(objPtr) \ + ((objPtr)->refCount > 1) #endif /* - * Public functions that are not accessible via the stubs table. + * Macros and definitions that help to debug the use of Tcl objects. When + * TCL_MEM_DEBUG is defined, the Tcl_New declarations are overridden to call + * debugging versions of the object creation functions. */ -EXTERN void Tcl_Main _ANSI_ARGS_((int argc, char **argv, - Tcl_AppInitProc *appInitProc)); +#ifdef TCL_MEM_DEBUG +# undef Tcl_NewBignumObj +# define Tcl_NewBignumObj(val) \ + Tcl_DbNewBignumObj(val, __FILE__, __LINE__) +# undef Tcl_NewBooleanObj +# define Tcl_NewBooleanObj(val) \ + Tcl_DbNewBooleanObj(val, __FILE__, __LINE__) +# undef Tcl_NewByteArrayObj +# define Tcl_NewByteArrayObj(bytes, len) \ + Tcl_DbNewByteArrayObj(bytes, len, __FILE__, __LINE__) +# undef Tcl_NewDoubleObj +# define Tcl_NewDoubleObj(val) \ + Tcl_DbNewDoubleObj(val, __FILE__, __LINE__) +# undef Tcl_NewIntObj +# define Tcl_NewIntObj(val) \ + Tcl_DbNewLongObj(val, __FILE__, __LINE__) +# undef Tcl_NewListObj +# define Tcl_NewListObj(objc, objv) \ + Tcl_DbNewListObj(objc, objv, __FILE__, __LINE__) +# undef Tcl_NewLongObj +# define Tcl_NewLongObj(val) \ + Tcl_DbNewLongObj(val, __FILE__, __LINE__) +# undef Tcl_NewObj +# define Tcl_NewObj() \ + Tcl_DbNewObj(__FILE__, __LINE__) +# undef Tcl_NewStringObj +# define Tcl_NewStringObj(bytes, len) \ + Tcl_DbNewStringObj(bytes, len, __FILE__, __LINE__) +# undef Tcl_NewWideIntObj +# define Tcl_NewWideIntObj(val) \ + Tcl_DbNewWideIntObj(val, __FILE__, __LINE__) +#endif /* TCL_MEM_DEBUG */ + +/* + * Macros for clients to use to access fields of hash entries: + */ + +#define Tcl_GetHashValue(h) ((h)->clientData) +#define Tcl_SetHashValue(h, value) ((h)->clientData = (ClientData) (value)) +#define Tcl_GetHashKey(tablePtr, h) \ + ((char *) (((tablePtr)->keyType == TCL_ONE_WORD_KEYS || \ + (tablePtr)->keyType == TCL_CUSTOM_PTR_KEYS) \ + ? (h)->key.oneWordValue \ + : (h)->key.string)) + +/* + * Macros to use for clients to use to invoke find and create functions for + * hash tables: + */ + +#undef Tcl_FindHashEntry +#define Tcl_FindHashEntry(tablePtr, key) \ + (*((tablePtr)->findProc))(tablePtr, key) +#undef Tcl_CreateHashEntry +#define Tcl_CreateHashEntry(tablePtr, key, newPtr) \ + (*((tablePtr)->createProc))(tablePtr, key, newPtr) + +/* + * Macros that eliminate the overhead of the thread synchronization functions + * when compiling without thread support. + */ + +#ifndef TCL_THREADS +#undef Tcl_MutexLock +#define Tcl_MutexLock(mutexPtr) +#undef Tcl_MutexUnlock +#define Tcl_MutexUnlock(mutexPtr) +#undef Tcl_MutexFinalize +#define Tcl_MutexFinalize(mutexPtr) +#undef Tcl_ConditionNotify +#define Tcl_ConditionNotify(condPtr) +#undef Tcl_ConditionWait +#define Tcl_ConditionWait(condPtr, mutexPtr, timePtr) +#undef Tcl_ConditionFinalize +#define Tcl_ConditionFinalize(condPtr) +#endif /* TCL_THREADS */ + +#ifndef TCL_NO_DEPRECATED + /* + * Deprecated Tcl functions: + */ + +# undef Tcl_EvalObj +# define Tcl_EvalObj(interp,objPtr) \ + Tcl_EvalObjEx((interp),(objPtr),0) +# undef Tcl_GlobalEvalObj +# define Tcl_GlobalEvalObj(interp,objPtr) \ + Tcl_EvalObjEx((interp),(objPtr),TCL_EVAL_GLOBAL) + + /* + * These function have been renamed. The old names are deprecated, but we + * define these macros for backwards compatibilty. + */ + +# define Tcl_Ckalloc Tcl_Alloc +# define Tcl_Ckfree Tcl_Free +# define Tcl_Ckrealloc Tcl_Realloc +# define Tcl_Return Tcl_SetResult +# define Tcl_TildeSubst Tcl_TranslateFileName +# define panic Tcl_Panic +# define panicVA Tcl_PanicVA +#endif /* - * Convenience declaration of Tcl_AppInit for backwards compatibility. - * This function is not *implemented* by the tcl library, so the storage - * class is neither DLLEXPORT nor DLLIMPORT + * Convenience declaration of Tcl_AppInit for backwards compatibility. This + * function is not *implemented* by the tcl library, so the storage class is + * neither DLLEXPORT nor DLLIMPORT. */ + #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS @@ -2359,8 +2424,17 @@ EXTERN int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp)); /* * end block for C++ */ + #ifdef __cplusplus } #endif #endif /* _TCL */ + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ diff --git a/mingw/include/tclDecls.h b/mingw/include/tclDecls.h dissimilarity index 60% index be7eec68..c1621c09 100644 --- a/mingw/include/tclDecls.h +++ b/mingw/include/tclDecls.h @@ -1,4394 +1,6448 @@ -/* - * tclDecls.h -- - * - * Declarations of functions in the platform independent public Tcl API. - * - * Copyright (c) 1998-1999 by Scriptics Corporation. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tclDecls.h,v 1.93.2.7 2006/09/22 01:26:23 andreas_kupries Exp $ - */ - -#ifndef _TCLDECLS -#define _TCLDECLS - -/* - * WARNING: This file is automatically generated by the tools/genStubs.tcl - * script. Any modifications to the function declarations below should be made - * in the generic/tcl.decls script. - */ - -/* !BEGIN!: Do not edit below this line. */ - -/* - * Exported function declarations: - */ - -/* 0 */ -EXTERN int Tcl_PkgProvideEx _ANSI_ARGS_((Tcl_Interp* interp, - CONST char* name, CONST char* version, - ClientData clientData)); -/* 1 */ -EXTERN CONST84_RETURN char * Tcl_PkgRequireEx _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * name, - CONST char * version, int exact, - ClientData * clientDataPtr)); -/* 2 */ -EXTERN void Tcl_Panic _ANSI_ARGS_(TCL_VARARGS(CONST char *,format)); -/* 3 */ -EXTERN char * Tcl_Alloc _ANSI_ARGS_((unsigned int size)); -/* 4 */ -EXTERN void Tcl_Free _ANSI_ARGS_((char * ptr)); -/* 5 */ -EXTERN char * Tcl_Realloc _ANSI_ARGS_((char * ptr, - unsigned int size)); -/* 6 */ -EXTERN char * Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size, - CONST char * file, int line)); -/* 7 */ -EXTERN int Tcl_DbCkfree _ANSI_ARGS_((char * ptr, - CONST char * file, int line)); -/* 8 */ -EXTERN char * Tcl_DbCkrealloc _ANSI_ARGS_((char * ptr, - unsigned int size, CONST char * file, - int line)); -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 9 */ -EXTERN void Tcl_CreateFileHandler _ANSI_ARGS_((int fd, int mask, - Tcl_FileProc * proc, ClientData clientData)); -#endif /* UNIX */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 10 */ -EXTERN void Tcl_DeleteFileHandler _ANSI_ARGS_((int fd)); -#endif /* UNIX */ -/* 11 */ -EXTERN void Tcl_SetTimer _ANSI_ARGS_((Tcl_Time * timePtr)); -/* 12 */ -EXTERN void Tcl_Sleep _ANSI_ARGS_((int ms)); -/* 13 */ -EXTERN int Tcl_WaitForEvent _ANSI_ARGS_((Tcl_Time * timePtr)); -/* 14 */ -EXTERN int Tcl_AppendAllObjTypes _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr)); -/* 15 */ -EXTERN void Tcl_AppendStringsToObj _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)); -/* 16 */ -EXTERN void Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj* objPtr, - CONST char* bytes, int length)); -/* 17 */ -EXTERN Tcl_Obj * Tcl_ConcatObj _ANSI_ARGS_((int objc, - Tcl_Obj *CONST objv[])); -/* 18 */ -EXTERN int Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, Tcl_ObjType * typePtr)); -/* 19 */ -EXTERN void Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST char * file, int line)); -/* 20 */ -EXTERN void Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST char * file, int line)); -/* 21 */ -EXTERN int Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST char * file, int line)); -/* 22 */ -EXTERN Tcl_Obj * Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue, - CONST char * file, int line)); -/* 23 */ -EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj _ANSI_ARGS_(( - CONST unsigned char * bytes, int length, - CONST char * file, int line)); -/* 24 */ -EXTERN Tcl_Obj * Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue, - CONST char * file, int line)); -/* 25 */ -EXTERN Tcl_Obj * Tcl_DbNewListObj _ANSI_ARGS_((int objc, - Tcl_Obj *CONST * objv, CONST char * file, - int line)); -/* 26 */ -EXTERN Tcl_Obj * Tcl_DbNewLongObj _ANSI_ARGS_((long longValue, - CONST char * file, int line)); -/* 27 */ -EXTERN Tcl_Obj * Tcl_DbNewObj _ANSI_ARGS_((CONST char * file, - int line)); -/* 28 */ -EXTERN Tcl_Obj * Tcl_DbNewStringObj _ANSI_ARGS_((CONST char * bytes, - int length, CONST char * file, int line)); -/* 29 */ -EXTERN Tcl_Obj * Tcl_DuplicateObj _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 30 */ -EXTERN void TclFreeObj _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 31 */ -EXTERN int Tcl_GetBoolean _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int * boolPtr)); -/* 32 */ -EXTERN int Tcl_GetBooleanFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - int * boolPtr)); -/* 33 */ -EXTERN unsigned char * Tcl_GetByteArrayFromObj _ANSI_ARGS_(( - Tcl_Obj * objPtr, int * lengthPtr)); -/* 34 */ -EXTERN int Tcl_GetDouble _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, double * doublePtr)); -/* 35 */ -EXTERN int Tcl_GetDoubleFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - double * doublePtr)); -/* 36 */ -EXTERN int Tcl_GetIndexFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, CONST84 char ** tablePtr, - CONST char * msg, int flags, int * indexPtr)); -/* 37 */ -EXTERN int Tcl_GetInt _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int * intPtr)); -/* 38 */ -EXTERN int Tcl_GetIntFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, int * intPtr)); -/* 39 */ -EXTERN int Tcl_GetLongFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, long * longPtr)); -/* 40 */ -EXTERN Tcl_ObjType * Tcl_GetObjType _ANSI_ARGS_((CONST char * typeName)); -/* 41 */ -EXTERN char * Tcl_GetStringFromObj _ANSI_ARGS_((Tcl_Obj * objPtr, - int * lengthPtr)); -/* 42 */ -EXTERN void Tcl_InvalidateStringRep _ANSI_ARGS_(( - Tcl_Obj * objPtr)); -/* 43 */ -EXTERN int Tcl_ListObjAppendList _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * listPtr, - Tcl_Obj * elemListPtr)); -/* 44 */ -EXTERN int Tcl_ListObjAppendElement _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * listPtr, - Tcl_Obj * objPtr)); -/* 45 */ -EXTERN int Tcl_ListObjGetElements _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * listPtr, - int * objcPtr, Tcl_Obj *** objvPtr)); -/* 46 */ -EXTERN int Tcl_ListObjIndex _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * listPtr, int index, - Tcl_Obj ** objPtrPtr)); -/* 47 */ -EXTERN int Tcl_ListObjLength _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * listPtr, int * lengthPtr)); -/* 48 */ -EXTERN int Tcl_ListObjReplace _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * listPtr, int first, int count, - int objc, Tcl_Obj *CONST objv[])); -/* 49 */ -EXTERN Tcl_Obj * Tcl_NewBooleanObj _ANSI_ARGS_((int boolValue)); -/* 50 */ -EXTERN Tcl_Obj * Tcl_NewByteArrayObj _ANSI_ARGS_(( - CONST unsigned char* bytes, int length)); -/* 51 */ -EXTERN Tcl_Obj * Tcl_NewDoubleObj _ANSI_ARGS_((double doubleValue)); -/* 52 */ -EXTERN Tcl_Obj * Tcl_NewIntObj _ANSI_ARGS_((int intValue)); -/* 53 */ -EXTERN Tcl_Obj * Tcl_NewListObj _ANSI_ARGS_((int objc, - Tcl_Obj *CONST objv[])); -/* 54 */ -EXTERN Tcl_Obj * Tcl_NewLongObj _ANSI_ARGS_((long longValue)); -/* 55 */ -EXTERN Tcl_Obj * Tcl_NewObj _ANSI_ARGS_((void)); -/* 56 */ -EXTERN Tcl_Obj * Tcl_NewStringObj _ANSI_ARGS_((CONST char * bytes, - int length)); -/* 57 */ -EXTERN void Tcl_SetBooleanObj _ANSI_ARGS_((Tcl_Obj * objPtr, - int boolValue)); -/* 58 */ -EXTERN unsigned char * Tcl_SetByteArrayLength _ANSI_ARGS_((Tcl_Obj * objPtr, - int length)); -/* 59 */ -EXTERN void Tcl_SetByteArrayObj _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST unsigned char * bytes, int length)); -/* 60 */ -EXTERN void Tcl_SetDoubleObj _ANSI_ARGS_((Tcl_Obj * objPtr, - double doubleValue)); -/* 61 */ -EXTERN void Tcl_SetIntObj _ANSI_ARGS_((Tcl_Obj * objPtr, - int intValue)); -/* 62 */ -EXTERN void Tcl_SetListObj _ANSI_ARGS_((Tcl_Obj * objPtr, - int objc, Tcl_Obj *CONST objv[])); -/* 63 */ -EXTERN void Tcl_SetLongObj _ANSI_ARGS_((Tcl_Obj * objPtr, - long longValue)); -/* 64 */ -EXTERN void Tcl_SetObjLength _ANSI_ARGS_((Tcl_Obj * objPtr, - int length)); -/* 65 */ -EXTERN void Tcl_SetStringObj _ANSI_ARGS_((Tcl_Obj* objPtr, - CONST char* bytes, int length)); -/* 66 */ -EXTERN void Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * message)); -/* 67 */ -EXTERN void Tcl_AddObjErrorInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * message, int length)); -/* 68 */ -EXTERN void Tcl_AllowExceptions _ANSI_ARGS_((Tcl_Interp * interp)); -/* 69 */ -EXTERN void Tcl_AppendElement _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string)); -/* 70 */ -EXTERN void Tcl_AppendResult _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); -/* 71 */ -EXTERN Tcl_AsyncHandler Tcl_AsyncCreate _ANSI_ARGS_((Tcl_AsyncProc * proc, - ClientData clientData)); -/* 72 */ -EXTERN void Tcl_AsyncDelete _ANSI_ARGS_((Tcl_AsyncHandler async)); -/* 73 */ -EXTERN int Tcl_AsyncInvoke _ANSI_ARGS_((Tcl_Interp * interp, - int code)); -/* 74 */ -EXTERN void Tcl_AsyncMark _ANSI_ARGS_((Tcl_AsyncHandler async)); -/* 75 */ -EXTERN int Tcl_AsyncReady _ANSI_ARGS_((void)); -/* 76 */ -EXTERN void Tcl_BackgroundError _ANSI_ARGS_((Tcl_Interp * interp)); -/* 77 */ -EXTERN char Tcl_Backslash _ANSI_ARGS_((CONST char * src, - int * readPtr)); -/* 78 */ -EXTERN int Tcl_BadChannelOption _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * optionName, - CONST char * optionList)); -/* 79 */ -EXTERN void Tcl_CallWhenDeleted _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_InterpDeleteProc * proc, - ClientData clientData)); -/* 80 */ -EXTERN void Tcl_CancelIdleCall _ANSI_ARGS_(( - Tcl_IdleProc * idleProc, - ClientData clientData)); -/* 81 */ -EXTERN int Tcl_Close _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Channel chan)); -/* 82 */ -EXTERN int Tcl_CommandComplete _ANSI_ARGS_((CONST char * cmd)); -/* 83 */ -EXTERN char * Tcl_Concat _ANSI_ARGS_((int argc, - CONST84 char * CONST * argv)); -/* 84 */ -EXTERN int Tcl_ConvertElement _ANSI_ARGS_((CONST char * src, - char * dst, int flags)); -/* 85 */ -EXTERN int Tcl_ConvertCountedElement _ANSI_ARGS_(( - CONST char * src, int length, char * dst, - int flags)); -/* 86 */ -EXTERN int Tcl_CreateAlias _ANSI_ARGS_((Tcl_Interp * slave, - CONST char * slaveCmd, Tcl_Interp * target, - CONST char * targetCmd, int argc, - CONST84 char * CONST * argv)); -/* 87 */ -EXTERN int Tcl_CreateAliasObj _ANSI_ARGS_((Tcl_Interp * slave, - CONST char * slaveCmd, Tcl_Interp * target, - CONST char * targetCmd, int objc, - Tcl_Obj *CONST objv[])); -/* 88 */ -EXTERN Tcl_Channel Tcl_CreateChannel _ANSI_ARGS_(( - Tcl_ChannelType * typePtr, - CONST char * chanName, - ClientData instanceData, int mask)); -/* 89 */ -EXTERN void Tcl_CreateChannelHandler _ANSI_ARGS_(( - Tcl_Channel chan, int mask, - Tcl_ChannelProc * proc, - ClientData clientData)); -/* 90 */ -EXTERN void Tcl_CreateCloseHandler _ANSI_ARGS_((Tcl_Channel chan, - Tcl_CloseProc * proc, ClientData clientData)); -/* 91 */ -EXTERN Tcl_Command Tcl_CreateCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmdName, Tcl_CmdProc * proc, - ClientData clientData, - Tcl_CmdDeleteProc * deleteProc)); -/* 92 */ -EXTERN void Tcl_CreateEventSource _ANSI_ARGS_(( - Tcl_EventSetupProc * setupProc, - Tcl_EventCheckProc * checkProc, - ClientData clientData)); -/* 93 */ -EXTERN void Tcl_CreateExitHandler _ANSI_ARGS_(( - Tcl_ExitProc * proc, ClientData clientData)); -/* 94 */ -EXTERN Tcl_Interp * Tcl_CreateInterp _ANSI_ARGS_((void)); -/* 95 */ -EXTERN void Tcl_CreateMathFunc _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, int numArgs, - Tcl_ValueType * argTypes, - Tcl_MathProc * proc, ClientData clientData)); -/* 96 */ -EXTERN Tcl_Command Tcl_CreateObjCommand _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * cmdName, - Tcl_ObjCmdProc * proc, ClientData clientData, - Tcl_CmdDeleteProc * deleteProc)); -/* 97 */ -EXTERN Tcl_Interp * Tcl_CreateSlave _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * slaveName, int isSafe)); -/* 98 */ -EXTERN Tcl_TimerToken Tcl_CreateTimerHandler _ANSI_ARGS_((int milliseconds, - Tcl_TimerProc * proc, ClientData clientData)); -/* 99 */ -EXTERN Tcl_Trace Tcl_CreateTrace _ANSI_ARGS_((Tcl_Interp * interp, - int level, Tcl_CmdTraceProc * proc, - ClientData clientData)); -/* 100 */ -EXTERN void Tcl_DeleteAssocData _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name)); -/* 101 */ -EXTERN void Tcl_DeleteChannelHandler _ANSI_ARGS_(( - Tcl_Channel chan, Tcl_ChannelProc * proc, - ClientData clientData)); -/* 102 */ -EXTERN void Tcl_DeleteCloseHandler _ANSI_ARGS_((Tcl_Channel chan, - Tcl_CloseProc * proc, ClientData clientData)); -/* 103 */ -EXTERN int Tcl_DeleteCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmdName)); -/* 104 */ -EXTERN int Tcl_DeleteCommandFromToken _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Command command)); -/* 105 */ -EXTERN void Tcl_DeleteEvents _ANSI_ARGS_(( - Tcl_EventDeleteProc * proc, - ClientData clientData)); -/* 106 */ -EXTERN void Tcl_DeleteEventSource _ANSI_ARGS_(( - Tcl_EventSetupProc * setupProc, - Tcl_EventCheckProc * checkProc, - ClientData clientData)); -/* 107 */ -EXTERN void Tcl_DeleteExitHandler _ANSI_ARGS_(( - Tcl_ExitProc * proc, ClientData clientData)); -/* 108 */ -EXTERN void Tcl_DeleteHashEntry _ANSI_ARGS_(( - Tcl_HashEntry * entryPtr)); -/* 109 */ -EXTERN void Tcl_DeleteHashTable _ANSI_ARGS_(( - Tcl_HashTable * tablePtr)); -/* 110 */ -EXTERN void Tcl_DeleteInterp _ANSI_ARGS_((Tcl_Interp * interp)); -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 111 */ -EXTERN void Tcl_DetachPids _ANSI_ARGS_((int numPids, - Tcl_Pid * pidPtr)); -#endif /* UNIX */ -#ifdef __WIN32__ -/* 111 */ -EXTERN void Tcl_DetachPids _ANSI_ARGS_((int numPids, - Tcl_Pid * pidPtr)); -#endif /* __WIN32__ */ -/* 112 */ -EXTERN void Tcl_DeleteTimerHandler _ANSI_ARGS_(( - Tcl_TimerToken token)); -/* 113 */ -EXTERN void Tcl_DeleteTrace _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Trace trace)); -/* 114 */ -EXTERN void Tcl_DontCallWhenDeleted _ANSI_ARGS_(( - Tcl_Interp * interp, - Tcl_InterpDeleteProc * proc, - ClientData clientData)); -/* 115 */ -EXTERN int Tcl_DoOneEvent _ANSI_ARGS_((int flags)); -/* 116 */ -EXTERN void Tcl_DoWhenIdle _ANSI_ARGS_((Tcl_IdleProc * proc, - ClientData clientData)); -/* 117 */ -EXTERN char * Tcl_DStringAppend _ANSI_ARGS_((Tcl_DString * dsPtr, - CONST char * str, int length)); -/* 118 */ -EXTERN char * Tcl_DStringAppendElement _ANSI_ARGS_(( - Tcl_DString * dsPtr, CONST char * string)); -/* 119 */ -EXTERN void Tcl_DStringEndSublist _ANSI_ARGS_(( - Tcl_DString * dsPtr)); -/* 120 */ -EXTERN void Tcl_DStringFree _ANSI_ARGS_((Tcl_DString * dsPtr)); -/* 121 */ -EXTERN void Tcl_DStringGetResult _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_DString * dsPtr)); -/* 122 */ -EXTERN void Tcl_DStringInit _ANSI_ARGS_((Tcl_DString * dsPtr)); -/* 123 */ -EXTERN void Tcl_DStringResult _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_DString * dsPtr)); -/* 124 */ -EXTERN void Tcl_DStringSetLength _ANSI_ARGS_(( - Tcl_DString * dsPtr, int length)); -/* 125 */ -EXTERN void Tcl_DStringStartSublist _ANSI_ARGS_(( - Tcl_DString * dsPtr)); -/* 126 */ -EXTERN int Tcl_Eof _ANSI_ARGS_((Tcl_Channel chan)); -/* 127 */ -EXTERN CONST84_RETURN char * Tcl_ErrnoId _ANSI_ARGS_((void)); -/* 128 */ -EXTERN CONST84_RETURN char * Tcl_ErrnoMsg _ANSI_ARGS_((int err)); -/* 129 */ -EXTERN int Tcl_Eval _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string)); -/* 130 */ -EXTERN int Tcl_EvalFile _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * fileName)); -/* 131 */ -EXTERN int Tcl_EvalObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr)); -/* 132 */ -EXTERN void Tcl_EventuallyFree _ANSI_ARGS_(( - ClientData clientData, - Tcl_FreeProc * freeProc)); -/* 133 */ -EXTERN void Tcl_Exit _ANSI_ARGS_((int status)); -/* 134 */ -EXTERN int Tcl_ExposeCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * hiddenCmdToken, - CONST char * cmdName)); -/* 135 */ -EXTERN int Tcl_ExprBoolean _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int * ptr)); -/* 136 */ -EXTERN int Tcl_ExprBooleanObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, int * ptr)); -/* 137 */ -EXTERN int Tcl_ExprDouble _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, double * ptr)); -/* 138 */ -EXTERN int Tcl_ExprDoubleObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, double * ptr)); -/* 139 */ -EXTERN int Tcl_ExprLong _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, long * ptr)); -/* 140 */ -EXTERN int Tcl_ExprLongObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, long * ptr)); -/* 141 */ -EXTERN int Tcl_ExprObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr)); -/* 142 */ -EXTERN int Tcl_ExprString _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string)); -/* 143 */ -EXTERN void Tcl_Finalize _ANSI_ARGS_((void)); -/* 144 */ -EXTERN void Tcl_FindExecutable _ANSI_ARGS_((CONST char * argv0)); -/* 145 */ -EXTERN Tcl_HashEntry * Tcl_FirstHashEntry _ANSI_ARGS_(( - Tcl_HashTable * tablePtr, - Tcl_HashSearch * searchPtr)); -/* 146 */ -EXTERN int Tcl_Flush _ANSI_ARGS_((Tcl_Channel chan)); -/* 147 */ -EXTERN void Tcl_FreeResult _ANSI_ARGS_((Tcl_Interp * interp)); -/* 148 */ -EXTERN int Tcl_GetAlias _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * slaveCmd, - Tcl_Interp ** targetInterpPtr, - CONST84 char ** targetCmdPtr, int * argcPtr, - CONST84 char *** argvPtr)); -/* 149 */ -EXTERN int Tcl_GetAliasObj _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * slaveCmd, - Tcl_Interp ** targetInterpPtr, - CONST84 char ** targetCmdPtr, int * objcPtr, - Tcl_Obj *** objv)); -/* 150 */ -EXTERN ClientData Tcl_GetAssocData _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, - Tcl_InterpDeleteProc ** procPtr)); -/* 151 */ -EXTERN Tcl_Channel Tcl_GetChannel _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * chanName, int * modePtr)); -/* 152 */ -EXTERN int Tcl_GetChannelBufferSize _ANSI_ARGS_(( - Tcl_Channel chan)); -/* 153 */ -EXTERN int Tcl_GetChannelHandle _ANSI_ARGS_((Tcl_Channel chan, - int direction, ClientData * handlePtr)); -/* 154 */ -EXTERN ClientData Tcl_GetChannelInstanceData _ANSI_ARGS_(( - Tcl_Channel chan)); -/* 155 */ -EXTERN int Tcl_GetChannelMode _ANSI_ARGS_((Tcl_Channel chan)); -/* 156 */ -EXTERN CONST84_RETURN char * Tcl_GetChannelName _ANSI_ARGS_(( - Tcl_Channel chan)); -/* 157 */ -EXTERN int Tcl_GetChannelOption _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Channel chan, - CONST char * optionName, Tcl_DString * dsPtr)); -/* 158 */ -EXTERN Tcl_ChannelType * Tcl_GetChannelType _ANSI_ARGS_((Tcl_Channel chan)); -/* 159 */ -EXTERN int Tcl_GetCommandInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmdName, Tcl_CmdInfo * infoPtr)); -/* 160 */ -EXTERN CONST84_RETURN char * Tcl_GetCommandName _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Command command)); -/* 161 */ -EXTERN int Tcl_GetErrno _ANSI_ARGS_((void)); -/* 162 */ -EXTERN CONST84_RETURN char * Tcl_GetHostName _ANSI_ARGS_((void)); -/* 163 */ -EXTERN int Tcl_GetInterpPath _ANSI_ARGS_(( - Tcl_Interp * askInterp, - Tcl_Interp * slaveInterp)); -/* 164 */ -EXTERN Tcl_Interp * Tcl_GetMaster _ANSI_ARGS_((Tcl_Interp * interp)); -/* 165 */ -EXTERN CONST char * Tcl_GetNameOfExecutable _ANSI_ARGS_((void)); -/* 166 */ -EXTERN Tcl_Obj * Tcl_GetObjResult _ANSI_ARGS_((Tcl_Interp * interp)); -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 167 */ -EXTERN int Tcl_GetOpenFile _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int forWriting, - int checkUsage, ClientData * filePtr)); -#endif /* UNIX */ -/* 168 */ -EXTERN Tcl_PathType Tcl_GetPathType _ANSI_ARGS_((CONST char * path)); -/* 169 */ -EXTERN int Tcl_Gets _ANSI_ARGS_((Tcl_Channel chan, - Tcl_DString * dsPtr)); -/* 170 */ -EXTERN int Tcl_GetsObj _ANSI_ARGS_((Tcl_Channel chan, - Tcl_Obj * objPtr)); -/* 171 */ -EXTERN int Tcl_GetServiceMode _ANSI_ARGS_((void)); -/* 172 */ -EXTERN Tcl_Interp * Tcl_GetSlave _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * slaveName)); -/* 173 */ -EXTERN Tcl_Channel Tcl_GetStdChannel _ANSI_ARGS_((int type)); -/* 174 */ -EXTERN CONST84_RETURN char * Tcl_GetStringResult _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 175 */ -EXTERN CONST84_RETURN char * Tcl_GetVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags)); -/* 176 */ -EXTERN CONST84_RETURN char * Tcl_GetVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags)); -/* 177 */ -EXTERN int Tcl_GlobalEval _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * command)); -/* 178 */ -EXTERN int Tcl_GlobalEvalObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr)); -/* 179 */ -EXTERN int Tcl_HideCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmdName, - CONST char * hiddenCmdToken)); -/* 180 */ -EXTERN int Tcl_Init _ANSI_ARGS_((Tcl_Interp * interp)); -/* 181 */ -EXTERN void Tcl_InitHashTable _ANSI_ARGS_(( - Tcl_HashTable * tablePtr, int keyType)); -/* 182 */ -EXTERN int Tcl_InputBlocked _ANSI_ARGS_((Tcl_Channel chan)); -/* 183 */ -EXTERN int Tcl_InputBuffered _ANSI_ARGS_((Tcl_Channel chan)); -/* 184 */ -EXTERN int Tcl_InterpDeleted _ANSI_ARGS_((Tcl_Interp * interp)); -/* 185 */ -EXTERN int Tcl_IsSafe _ANSI_ARGS_((Tcl_Interp * interp)); -/* 186 */ -EXTERN char * Tcl_JoinPath _ANSI_ARGS_((int argc, - CONST84 char * CONST * argv, - Tcl_DString * resultPtr)); -/* 187 */ -EXTERN int Tcl_LinkVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, char * addr, int type)); -/* Slot 188 is reserved */ -/* 189 */ -EXTERN Tcl_Channel Tcl_MakeFileChannel _ANSI_ARGS_((ClientData handle, - int mode)); -/* 190 */ -EXTERN int Tcl_MakeSafe _ANSI_ARGS_((Tcl_Interp * interp)); -/* 191 */ -EXTERN Tcl_Channel Tcl_MakeTcpClientChannel _ANSI_ARGS_(( - ClientData tcpSocket)); -/* 192 */ -EXTERN char * Tcl_Merge _ANSI_ARGS_((int argc, - CONST84 char * CONST * argv)); -/* 193 */ -EXTERN Tcl_HashEntry * Tcl_NextHashEntry _ANSI_ARGS_(( - Tcl_HashSearch * searchPtr)); -/* 194 */ -EXTERN void Tcl_NotifyChannel _ANSI_ARGS_((Tcl_Channel channel, - int mask)); -/* 195 */ -EXTERN Tcl_Obj * Tcl_ObjGetVar2 _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, - int flags)); -/* 196 */ -EXTERN Tcl_Obj * Tcl_ObjSetVar2 _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, - Tcl_Obj * newValuePtr, int flags)); -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 197 */ -EXTERN Tcl_Channel Tcl_OpenCommandChannel _ANSI_ARGS_(( - Tcl_Interp * interp, int argc, - CONST84 char ** argv, int flags)); -#endif /* UNIX */ -#ifdef __WIN32__ -/* 197 */ -EXTERN Tcl_Channel Tcl_OpenCommandChannel _ANSI_ARGS_(( - Tcl_Interp * interp, int argc, - CONST84 char ** argv, int flags)); -#endif /* __WIN32__ */ -/* 198 */ -EXTERN Tcl_Channel Tcl_OpenFileChannel _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * fileName, - CONST char * modeString, int permissions)); -/* 199 */ -EXTERN Tcl_Channel Tcl_OpenTcpClient _ANSI_ARGS_((Tcl_Interp * interp, - int port, CONST char * address, - CONST char * myaddr, int myport, int async)); -/* 200 */ -EXTERN Tcl_Channel Tcl_OpenTcpServer _ANSI_ARGS_((Tcl_Interp * interp, - int port, CONST char * host, - Tcl_TcpAcceptProc * acceptProc, - ClientData callbackData)); -/* 201 */ -EXTERN void Tcl_Preserve _ANSI_ARGS_((ClientData data)); -/* 202 */ -EXTERN void Tcl_PrintDouble _ANSI_ARGS_((Tcl_Interp * interp, - double value, char * dst)); -/* 203 */ -EXTERN int Tcl_PutEnv _ANSI_ARGS_((CONST char * string)); -/* 204 */ -EXTERN CONST84_RETURN char * Tcl_PosixError _ANSI_ARGS_((Tcl_Interp * interp)); -/* 205 */ -EXTERN void Tcl_QueueEvent _ANSI_ARGS_((Tcl_Event * evPtr, - Tcl_QueuePosition position)); -/* 206 */ -EXTERN int Tcl_Read _ANSI_ARGS_((Tcl_Channel chan, - char * bufPtr, int toRead)); -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -/* 207 */ -EXTERN void Tcl_ReapDetachedProcs _ANSI_ARGS_((void)); -#endif /* UNIX */ -#ifdef __WIN32__ -/* 207 */ -EXTERN void Tcl_ReapDetachedProcs _ANSI_ARGS_((void)); -#endif /* __WIN32__ */ -/* 208 */ -EXTERN int Tcl_RecordAndEval _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmd, int flags)); -/* 209 */ -EXTERN int Tcl_RecordAndEvalObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * cmdPtr, - int flags)); -/* 210 */ -EXTERN void Tcl_RegisterChannel _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Channel chan)); -/* 211 */ -EXTERN void Tcl_RegisterObjType _ANSI_ARGS_(( - Tcl_ObjType * typePtr)); -/* 212 */ -EXTERN Tcl_RegExp Tcl_RegExpCompile _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string)); -/* 213 */ -EXTERN int Tcl_RegExpExec _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_RegExp regexp, CONST char * str, - CONST char * start)); -/* 214 */ -EXTERN int Tcl_RegExpMatch _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, CONST char * pattern)); -/* 215 */ -EXTERN void Tcl_RegExpRange _ANSI_ARGS_((Tcl_RegExp regexp, - int index, CONST84 char ** startPtr, - CONST84 char ** endPtr)); -/* 216 */ -EXTERN void Tcl_Release _ANSI_ARGS_((ClientData clientData)); -/* 217 */ -EXTERN void Tcl_ResetResult _ANSI_ARGS_((Tcl_Interp * interp)); -/* 218 */ -EXTERN int Tcl_ScanElement _ANSI_ARGS_((CONST char * str, - int * flagPtr)); -/* 219 */ -EXTERN int Tcl_ScanCountedElement _ANSI_ARGS_((CONST char * str, - int length, int * flagPtr)); -/* 220 */ -EXTERN int Tcl_SeekOld _ANSI_ARGS_((Tcl_Channel chan, - int offset, int mode)); -/* 221 */ -EXTERN int Tcl_ServiceAll _ANSI_ARGS_((void)); -/* 222 */ -EXTERN int Tcl_ServiceEvent _ANSI_ARGS_((int flags)); -/* 223 */ -EXTERN void Tcl_SetAssocData _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, - Tcl_InterpDeleteProc * proc, - ClientData clientData)); -/* 224 */ -EXTERN void Tcl_SetChannelBufferSize _ANSI_ARGS_(( - Tcl_Channel chan, int sz)); -/* 225 */ -EXTERN int Tcl_SetChannelOption _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Channel chan, - CONST char * optionName, - CONST char * newValue)); -/* 226 */ -EXTERN int Tcl_SetCommandInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * cmdName, - CONST Tcl_CmdInfo * infoPtr)); -/* 227 */ -EXTERN void Tcl_SetErrno _ANSI_ARGS_((int err)); -/* 228 */ -EXTERN void Tcl_SetErrorCode _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); -/* 229 */ -EXTERN void Tcl_SetMaxBlockTime _ANSI_ARGS_((Tcl_Time * timePtr)); -/* 230 */ -EXTERN void Tcl_SetPanicProc _ANSI_ARGS_(( - Tcl_PanicProc * panicProc)); -/* 231 */ -EXTERN int Tcl_SetRecursionLimit _ANSI_ARGS_(( - Tcl_Interp * interp, int depth)); -/* 232 */ -EXTERN void Tcl_SetResult _ANSI_ARGS_((Tcl_Interp * interp, - char * str, Tcl_FreeProc * freeProc)); -/* 233 */ -EXTERN int Tcl_SetServiceMode _ANSI_ARGS_((int mode)); -/* 234 */ -EXTERN void Tcl_SetObjErrorCode _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * errorObjPtr)); -/* 235 */ -EXTERN void Tcl_SetObjResult _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * resultObjPtr)); -/* 236 */ -EXTERN void Tcl_SetStdChannel _ANSI_ARGS_((Tcl_Channel channel, - int type)); -/* 237 */ -EXTERN CONST84_RETURN char * Tcl_SetVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, CONST char * newValue, - int flags)); -/* 238 */ -EXTERN CONST84_RETURN char * Tcl_SetVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - CONST char * newValue, int flags)); -/* 239 */ -EXTERN CONST84_RETURN char * Tcl_SignalId _ANSI_ARGS_((int sig)); -/* 240 */ -EXTERN CONST84_RETURN char * Tcl_SignalMsg _ANSI_ARGS_((int sig)); -/* 241 */ -EXTERN void Tcl_SourceRCFile _ANSI_ARGS_((Tcl_Interp * interp)); -/* 242 */ -EXTERN int Tcl_SplitList _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * listStr, int * argcPtr, - CONST84 char *** argvPtr)); -/* 243 */ -EXTERN void Tcl_SplitPath _ANSI_ARGS_((CONST char * path, - int * argcPtr, CONST84 char *** argvPtr)); -/* 244 */ -EXTERN void Tcl_StaticPackage _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * pkgName, - Tcl_PackageInitProc * initProc, - Tcl_PackageInitProc * safeInitProc)); -/* 245 */ -EXTERN int Tcl_StringMatch _ANSI_ARGS_((CONST char * str, - CONST char * pattern)); -/* 246 */ -EXTERN int Tcl_TellOld _ANSI_ARGS_((Tcl_Channel chan)); -/* 247 */ -EXTERN int Tcl_TraceVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags, - Tcl_VarTraceProc * proc, - ClientData clientData)); -/* 248 */ -EXTERN int Tcl_TraceVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags, Tcl_VarTraceProc * proc, - ClientData clientData)); -/* 249 */ -EXTERN char * Tcl_TranslateFileName _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * name, - Tcl_DString * bufferPtr)); -/* 250 */ -EXTERN int Tcl_Ungets _ANSI_ARGS_((Tcl_Channel chan, - CONST char * str, int len, int atHead)); -/* 251 */ -EXTERN void Tcl_UnlinkVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName)); -/* 252 */ -EXTERN int Tcl_UnregisterChannel _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Channel chan)); -/* 253 */ -EXTERN int Tcl_UnsetVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags)); -/* 254 */ -EXTERN int Tcl_UnsetVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags)); -/* 255 */ -EXTERN void Tcl_UntraceVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags, - Tcl_VarTraceProc * proc, - ClientData clientData)); -/* 256 */ -EXTERN void Tcl_UntraceVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags, Tcl_VarTraceProc * proc, - ClientData clientData)); -/* 257 */ -EXTERN void Tcl_UpdateLinkedVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName)); -/* 258 */ -EXTERN int Tcl_UpVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * frameName, CONST char * varName, - CONST char * localName, int flags)); -/* 259 */ -EXTERN int Tcl_UpVar2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * frameName, CONST char * part1, - CONST char * part2, CONST char * localName, - int flags)); -/* 260 */ -EXTERN int Tcl_VarEval _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); -/* 261 */ -EXTERN ClientData Tcl_VarTraceInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags, - Tcl_VarTraceProc * procPtr, - ClientData prevClientData)); -/* 262 */ -EXTERN ClientData Tcl_VarTraceInfo2 _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags, Tcl_VarTraceProc * procPtr, - ClientData prevClientData)); -/* 263 */ -EXTERN int Tcl_Write _ANSI_ARGS_((Tcl_Channel chan, - CONST char * s, int slen)); -/* 264 */ -EXTERN void Tcl_WrongNumArgs _ANSI_ARGS_((Tcl_Interp * interp, - int objc, Tcl_Obj *CONST objv[], - CONST char * message)); -/* 265 */ -EXTERN int Tcl_DumpActiveMemory _ANSI_ARGS_(( - CONST char * fileName)); -/* 266 */ -EXTERN void Tcl_ValidateAllMemory _ANSI_ARGS_((CONST char * file, - int line)); -/* 267 */ -EXTERN void Tcl_AppendResultVA _ANSI_ARGS_((Tcl_Interp * interp, - va_list argList)); -/* 268 */ -EXTERN void Tcl_AppendStringsToObjVA _ANSI_ARGS_(( - Tcl_Obj * objPtr, va_list argList)); -/* 269 */ -EXTERN CONST84_RETURN char * Tcl_HashStats _ANSI_ARGS_(( - Tcl_HashTable * tablePtr)); -/* 270 */ -EXTERN CONST84_RETURN char * Tcl_ParseVar _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, CONST84 char ** termPtr)); -/* 271 */ -EXTERN CONST84_RETURN char * Tcl_PkgPresent _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, CONST char * version, - int exact)); -/* 272 */ -EXTERN CONST84_RETURN char * Tcl_PkgPresentEx _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * name, - CONST char * version, int exact, - ClientData * clientDataPtr)); -/* 273 */ -EXTERN int Tcl_PkgProvide _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, CONST char * version)); -/* 274 */ -EXTERN CONST84_RETURN char * Tcl_PkgRequire _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, CONST char * version, - int exact)); -/* 275 */ -EXTERN void Tcl_SetErrorCodeVA _ANSI_ARGS_((Tcl_Interp * interp, - va_list argList)); -/* 276 */ -EXTERN int Tcl_VarEvalVA _ANSI_ARGS_((Tcl_Interp * interp, - va_list argList)); -/* 277 */ -EXTERN Tcl_Pid Tcl_WaitPid _ANSI_ARGS_((Tcl_Pid pid, int * statPtr, - int options)); -/* 278 */ -EXTERN void Tcl_PanicVA _ANSI_ARGS_((CONST char * format, - va_list argList)); -/* 279 */ -EXTERN void Tcl_GetVersion _ANSI_ARGS_((int * major, int * minor, - int * patchLevel, int * type)); -/* 280 */ -EXTERN void Tcl_InitMemory _ANSI_ARGS_((Tcl_Interp * interp)); -/* 281 */ -EXTERN Tcl_Channel Tcl_StackChannel _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_ChannelType * typePtr, - ClientData instanceData, int mask, - Tcl_Channel prevChan)); -/* 282 */ -EXTERN int Tcl_UnstackChannel _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Channel chan)); -/* 283 */ -EXTERN Tcl_Channel Tcl_GetStackedChannel _ANSI_ARGS_((Tcl_Channel chan)); -/* 284 */ -EXTERN void Tcl_SetMainLoop _ANSI_ARGS_((Tcl_MainLoopProc * proc)); -/* Slot 285 is reserved */ -/* 286 */ -EXTERN void Tcl_AppendObjToObj _ANSI_ARGS_((Tcl_Obj * objPtr, - Tcl_Obj * appendObjPtr)); -/* 287 */ -EXTERN Tcl_Encoding Tcl_CreateEncoding _ANSI_ARGS_(( - Tcl_EncodingType * typePtr)); -/* 288 */ -EXTERN void Tcl_CreateThreadExitHandler _ANSI_ARGS_(( - Tcl_ExitProc * proc, ClientData clientData)); -/* 289 */ -EXTERN void Tcl_DeleteThreadExitHandler _ANSI_ARGS_(( - Tcl_ExitProc * proc, ClientData clientData)); -/* 290 */ -EXTERN void Tcl_DiscardResult _ANSI_ARGS_(( - Tcl_SavedResult * statePtr)); -/* 291 */ -EXTERN int Tcl_EvalEx _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * script, int numBytes, int flags)); -/* 292 */ -EXTERN int Tcl_EvalObjv _ANSI_ARGS_((Tcl_Interp * interp, - int objc, Tcl_Obj *CONST objv[], int flags)); -/* 293 */ -EXTERN int Tcl_EvalObjEx _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, int flags)); -/* 294 */ -EXTERN void Tcl_ExitThread _ANSI_ARGS_((int status)); -/* 295 */ -EXTERN int Tcl_ExternalToUtf _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Encoding encoding, CONST char * src, - int srcLen, int flags, - Tcl_EncodingState * statePtr, char * dst, - int dstLen, int * srcReadPtr, - int * dstWrotePtr, int * dstCharsPtr)); -/* 296 */ -EXTERN char * Tcl_ExternalToUtfDString _ANSI_ARGS_(( - Tcl_Encoding encoding, CONST char * src, - int srcLen, Tcl_DString * dsPtr)); -/* 297 */ -EXTERN void Tcl_FinalizeThread _ANSI_ARGS_((void)); -/* 298 */ -EXTERN void Tcl_FinalizeNotifier _ANSI_ARGS_(( - ClientData clientData)); -/* 299 */ -EXTERN void Tcl_FreeEncoding _ANSI_ARGS_((Tcl_Encoding encoding)); -/* 300 */ -EXTERN Tcl_ThreadId Tcl_GetCurrentThread _ANSI_ARGS_((void)); -/* 301 */ -EXTERN Tcl_Encoding Tcl_GetEncoding _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name)); -/* 302 */ -EXTERN CONST84_RETURN char * Tcl_GetEncodingName _ANSI_ARGS_(( - Tcl_Encoding encoding)); -/* 303 */ -EXTERN void Tcl_GetEncodingNames _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 304 */ -EXTERN int Tcl_GetIndexFromObjStruct _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - CONST VOID * tablePtr, int offset, - CONST char * msg, int flags, int * indexPtr)); -/* 305 */ -EXTERN VOID * Tcl_GetThreadData _ANSI_ARGS_(( - Tcl_ThreadDataKey * keyPtr, int size)); -/* 306 */ -EXTERN Tcl_Obj * Tcl_GetVar2Ex _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - int flags)); -/* 307 */ -EXTERN ClientData Tcl_InitNotifier _ANSI_ARGS_((void)); -/* 308 */ -EXTERN void Tcl_MutexLock _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); -/* 309 */ -EXTERN void Tcl_MutexUnlock _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); -/* 310 */ -EXTERN void Tcl_ConditionNotify _ANSI_ARGS_(( - Tcl_Condition * condPtr)); -/* 311 */ -EXTERN void Tcl_ConditionWait _ANSI_ARGS_(( - Tcl_Condition * condPtr, - Tcl_Mutex * mutexPtr, Tcl_Time * timePtr)); -/* 312 */ -EXTERN int Tcl_NumUtfChars _ANSI_ARGS_((CONST char * src, - int len)); -/* 313 */ -EXTERN int Tcl_ReadChars _ANSI_ARGS_((Tcl_Channel channel, - Tcl_Obj * objPtr, int charsToRead, - int appendFlag)); -/* 314 */ -EXTERN void Tcl_RestoreResult _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_SavedResult * statePtr)); -/* 315 */ -EXTERN void Tcl_SaveResult _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_SavedResult * statePtr)); -/* 316 */ -EXTERN int Tcl_SetSystemEncoding _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * name)); -/* 317 */ -EXTERN Tcl_Obj * Tcl_SetVar2Ex _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * part1, CONST char * part2, - Tcl_Obj * newValuePtr, int flags)); -/* 318 */ -EXTERN void Tcl_ThreadAlert _ANSI_ARGS_((Tcl_ThreadId threadId)); -/* 319 */ -EXTERN void Tcl_ThreadQueueEvent _ANSI_ARGS_(( - Tcl_ThreadId threadId, Tcl_Event* evPtr, - Tcl_QueuePosition position)); -/* 320 */ -EXTERN Tcl_UniChar Tcl_UniCharAtIndex _ANSI_ARGS_((CONST char * src, - int index)); -/* 321 */ -EXTERN Tcl_UniChar Tcl_UniCharToLower _ANSI_ARGS_((int ch)); -/* 322 */ -EXTERN Tcl_UniChar Tcl_UniCharToTitle _ANSI_ARGS_((int ch)); -/* 323 */ -EXTERN Tcl_UniChar Tcl_UniCharToUpper _ANSI_ARGS_((int ch)); -/* 324 */ -EXTERN int Tcl_UniCharToUtf _ANSI_ARGS_((int ch, char * buf)); -/* 325 */ -EXTERN CONST84_RETURN char * Tcl_UtfAtIndex _ANSI_ARGS_((CONST char * src, - int index)); -/* 326 */ -EXTERN int Tcl_UtfCharComplete _ANSI_ARGS_((CONST char * src, - int len)); -/* 327 */ -EXTERN int Tcl_UtfBackslash _ANSI_ARGS_((CONST char * src, - int * readPtr, char * dst)); -/* 328 */ -EXTERN CONST84_RETURN char * Tcl_UtfFindFirst _ANSI_ARGS_((CONST char * src, - int ch)); -/* 329 */ -EXTERN CONST84_RETURN char * Tcl_UtfFindLast _ANSI_ARGS_((CONST char * src, - int ch)); -/* 330 */ -EXTERN CONST84_RETURN char * Tcl_UtfNext _ANSI_ARGS_((CONST char * src)); -/* 331 */ -EXTERN CONST84_RETURN char * Tcl_UtfPrev _ANSI_ARGS_((CONST char * src, - CONST char * start)); -/* 332 */ -EXTERN int Tcl_UtfToExternal _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Encoding encoding, CONST char * src, - int srcLen, int flags, - Tcl_EncodingState * statePtr, char * dst, - int dstLen, int * srcReadPtr, - int * dstWrotePtr, int * dstCharsPtr)); -/* 333 */ -EXTERN char * Tcl_UtfToExternalDString _ANSI_ARGS_(( - Tcl_Encoding encoding, CONST char * src, - int srcLen, Tcl_DString * dsPtr)); -/* 334 */ -EXTERN int Tcl_UtfToLower _ANSI_ARGS_((char * src)); -/* 335 */ -EXTERN int Tcl_UtfToTitle _ANSI_ARGS_((char * src)); -/* 336 */ -EXTERN int Tcl_UtfToUniChar _ANSI_ARGS_((CONST char * src, - Tcl_UniChar * chPtr)); -/* 337 */ -EXTERN int Tcl_UtfToUpper _ANSI_ARGS_((char * src)); -/* 338 */ -EXTERN int Tcl_WriteChars _ANSI_ARGS_((Tcl_Channel chan, - CONST char * src, int srcLen)); -/* 339 */ -EXTERN int Tcl_WriteObj _ANSI_ARGS_((Tcl_Channel chan, - Tcl_Obj * objPtr)); -/* 340 */ -EXTERN char * Tcl_GetString _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 341 */ -EXTERN CONST84_RETURN char * Tcl_GetDefaultEncodingDir _ANSI_ARGS_((void)); -/* 342 */ -EXTERN void Tcl_SetDefaultEncodingDir _ANSI_ARGS_(( - CONST char * path)); -/* 343 */ -EXTERN void Tcl_AlertNotifier _ANSI_ARGS_((ClientData clientData)); -/* 344 */ -EXTERN void Tcl_ServiceModeHook _ANSI_ARGS_((int mode)); -/* 345 */ -EXTERN int Tcl_UniCharIsAlnum _ANSI_ARGS_((int ch)); -/* 346 */ -EXTERN int Tcl_UniCharIsAlpha _ANSI_ARGS_((int ch)); -/* 347 */ -EXTERN int Tcl_UniCharIsDigit _ANSI_ARGS_((int ch)); -/* 348 */ -EXTERN int Tcl_UniCharIsLower _ANSI_ARGS_((int ch)); -/* 349 */ -EXTERN int Tcl_UniCharIsSpace _ANSI_ARGS_((int ch)); -/* 350 */ -EXTERN int Tcl_UniCharIsUpper _ANSI_ARGS_((int ch)); -/* 351 */ -EXTERN int Tcl_UniCharIsWordChar _ANSI_ARGS_((int ch)); -/* 352 */ -EXTERN int Tcl_UniCharLen _ANSI_ARGS_((CONST Tcl_UniChar * str)); -/* 353 */ -EXTERN int Tcl_UniCharNcmp _ANSI_ARGS_((CONST Tcl_UniChar * cs, - CONST Tcl_UniChar * ct, unsigned long n)); -/* 354 */ -EXTERN char * Tcl_UniCharToUtfDString _ANSI_ARGS_(( - CONST Tcl_UniChar * string, int numChars, - Tcl_DString * dsPtr)); -/* 355 */ -EXTERN Tcl_UniChar * Tcl_UtfToUniCharDString _ANSI_ARGS_(( - CONST char * string, int length, - Tcl_DString * dsPtr)); -/* 356 */ -EXTERN Tcl_RegExp Tcl_GetRegExpFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * patObj, - int flags)); -/* 357 */ -EXTERN Tcl_Obj * Tcl_EvalTokens _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Token * tokenPtr, int count)); -/* 358 */ -EXTERN void Tcl_FreeParse _ANSI_ARGS_((Tcl_Parse * parsePtr)); -/* 359 */ -EXTERN void Tcl_LogCommandInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * script, CONST char * command, - int length)); -/* 360 */ -EXTERN int Tcl_ParseBraces _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string, int numBytes, - Tcl_Parse * parsePtr, int append, - CONST84 char ** termPtr)); -/* 361 */ -EXTERN int Tcl_ParseCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string, int numBytes, - int nested, Tcl_Parse * parsePtr)); -/* 362 */ -EXTERN int Tcl_ParseExpr _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string, int numBytes, - Tcl_Parse * parsePtr)); -/* 363 */ -EXTERN int Tcl_ParseQuotedString _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * string, - int numBytes, Tcl_Parse * parsePtr, - int append, CONST84 char ** termPtr)); -/* 364 */ -EXTERN int Tcl_ParseVarName _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * string, int numBytes, - Tcl_Parse * parsePtr, int append)); -/* 365 */ -EXTERN char * Tcl_GetCwd _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_DString * cwdPtr)); -/* 366 */ -EXTERN int Tcl_Chdir _ANSI_ARGS_((CONST char * dirName)); -/* 367 */ -EXTERN int Tcl_Access _ANSI_ARGS_((CONST char * path, int mode)); -/* 368 */ -EXTERN int Tcl_Stat _ANSI_ARGS_((CONST char * path, - struct stat * bufPtr)); -/* 369 */ -EXTERN int Tcl_UtfNcmp _ANSI_ARGS_((CONST char * s1, - CONST char * s2, unsigned long n)); -/* 370 */ -EXTERN int Tcl_UtfNcasecmp _ANSI_ARGS_((CONST char * s1, - CONST char * s2, unsigned long n)); -/* 371 */ -EXTERN int Tcl_StringCaseMatch _ANSI_ARGS_((CONST char * str, - CONST char * pattern, int nocase)); -/* 372 */ -EXTERN int Tcl_UniCharIsControl _ANSI_ARGS_((int ch)); -/* 373 */ -EXTERN int Tcl_UniCharIsGraph _ANSI_ARGS_((int ch)); -/* 374 */ -EXTERN int Tcl_UniCharIsPrint _ANSI_ARGS_((int ch)); -/* 375 */ -EXTERN int Tcl_UniCharIsPunct _ANSI_ARGS_((int ch)); -/* 376 */ -EXTERN int Tcl_RegExpExecObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_RegExp regexp, Tcl_Obj * objPtr, - int offset, int nmatches, int flags)); -/* 377 */ -EXTERN void Tcl_RegExpGetInfo _ANSI_ARGS_((Tcl_RegExp regexp, - Tcl_RegExpInfo * infoPtr)); -/* 378 */ -EXTERN Tcl_Obj * Tcl_NewUnicodeObj _ANSI_ARGS_(( - CONST Tcl_UniChar * unicode, int numChars)); -/* 379 */ -EXTERN void Tcl_SetUnicodeObj _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST Tcl_UniChar * unicode, int numChars)); -/* 380 */ -EXTERN int Tcl_GetCharLength _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 381 */ -EXTERN Tcl_UniChar Tcl_GetUniChar _ANSI_ARGS_((Tcl_Obj * objPtr, - int index)); -/* 382 */ -EXTERN Tcl_UniChar * Tcl_GetUnicode _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 383 */ -EXTERN Tcl_Obj * Tcl_GetRange _ANSI_ARGS_((Tcl_Obj * objPtr, - int first, int last)); -/* 384 */ -EXTERN void Tcl_AppendUnicodeToObj _ANSI_ARGS_((Tcl_Obj * objPtr, - CONST Tcl_UniChar * unicode, int length)); -/* 385 */ -EXTERN int Tcl_RegExpMatchObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * stringObj, Tcl_Obj * patternObj)); -/* 386 */ -EXTERN void Tcl_SetNotifier _ANSI_ARGS_(( - Tcl_NotifierProcs * notifierProcPtr)); -/* 387 */ -EXTERN Tcl_Mutex * Tcl_GetAllocMutex _ANSI_ARGS_((void)); -/* 388 */ -EXTERN int Tcl_GetChannelNames _ANSI_ARGS_((Tcl_Interp * interp)); -/* 389 */ -EXTERN int Tcl_GetChannelNamesEx _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * pattern)); -/* 390 */ -EXTERN int Tcl_ProcObjCmd _ANSI_ARGS_((ClientData clientData, - Tcl_Interp * interp, int objc, - Tcl_Obj *CONST objv[])); -/* 391 */ -EXTERN void Tcl_ConditionFinalize _ANSI_ARGS_(( - Tcl_Condition * condPtr)); -/* 392 */ -EXTERN void Tcl_MutexFinalize _ANSI_ARGS_((Tcl_Mutex * mutex)); -/* 393 */ -EXTERN int Tcl_CreateThread _ANSI_ARGS_((Tcl_ThreadId * idPtr, - Tcl_ThreadCreateProc proc, - ClientData clientData, int stackSize, - int flags)); -/* 394 */ -EXTERN int Tcl_ReadRaw _ANSI_ARGS_((Tcl_Channel chan, - char * dst, int bytesToRead)); -/* 395 */ -EXTERN int Tcl_WriteRaw _ANSI_ARGS_((Tcl_Channel chan, - CONST char * src, int srcLen)); -/* 396 */ -EXTERN Tcl_Channel Tcl_GetTopChannel _ANSI_ARGS_((Tcl_Channel chan)); -/* 397 */ -EXTERN int Tcl_ChannelBuffered _ANSI_ARGS_((Tcl_Channel chan)); -/* 398 */ -EXTERN CONST84_RETURN char * Tcl_ChannelName _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 399 */ -EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 400 */ -EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 401 */ -EXTERN Tcl_DriverCloseProc * Tcl_ChannelCloseProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 402 */ -EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 403 */ -EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 404 */ -EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 405 */ -EXTERN Tcl_DriverSeekProc * Tcl_ChannelSeekProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 406 */ -EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 407 */ -EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 408 */ -EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 409 */ -EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 410 */ -EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 411 */ -EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* 412 */ -EXTERN int Tcl_JoinThread _ANSI_ARGS_((Tcl_ThreadId threadId, - int* result)); -/* 413 */ -EXTERN int Tcl_IsChannelShared _ANSI_ARGS_((Tcl_Channel channel)); -/* 414 */ -EXTERN int Tcl_IsChannelRegistered _ANSI_ARGS_(( - Tcl_Interp* interp, Tcl_Channel channel)); -/* 415 */ -EXTERN void Tcl_CutChannel _ANSI_ARGS_((Tcl_Channel channel)); -/* 416 */ -EXTERN void Tcl_SpliceChannel _ANSI_ARGS_((Tcl_Channel channel)); -/* 417 */ -EXTERN void Tcl_ClearChannelHandlers _ANSI_ARGS_(( - Tcl_Channel channel)); -/* 418 */ -EXTERN int Tcl_IsChannelExisting _ANSI_ARGS_(( - CONST char* channelName)); -/* 419 */ -EXTERN int Tcl_UniCharNcasecmp _ANSI_ARGS_(( - CONST Tcl_UniChar * cs, - CONST Tcl_UniChar * ct, unsigned long n)); -/* 420 */ -EXTERN int Tcl_UniCharCaseMatch _ANSI_ARGS_(( - CONST Tcl_UniChar * ustr, - CONST Tcl_UniChar * pattern, int nocase)); -/* 421 */ -EXTERN Tcl_HashEntry * Tcl_FindHashEntry _ANSI_ARGS_(( - Tcl_HashTable * tablePtr, CONST char * key)); -/* 422 */ -EXTERN Tcl_HashEntry * Tcl_CreateHashEntry _ANSI_ARGS_(( - Tcl_HashTable * tablePtr, CONST char * key, - int * newPtr)); -/* 423 */ -EXTERN void Tcl_InitCustomHashTable _ANSI_ARGS_(( - Tcl_HashTable * tablePtr, int keyType, - Tcl_HashKeyType * typePtr)); -/* 424 */ -EXTERN void Tcl_InitObjHashTable _ANSI_ARGS_(( - Tcl_HashTable * tablePtr)); -/* 425 */ -EXTERN ClientData Tcl_CommandTraceInfo _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * varName, - int flags, Tcl_CommandTraceProc * procPtr, - ClientData prevClientData)); -/* 426 */ -EXTERN int Tcl_TraceCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags, - Tcl_CommandTraceProc * proc, - ClientData clientData)); -/* 427 */ -EXTERN void Tcl_UntraceCommand _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * varName, int flags, - Tcl_CommandTraceProc * proc, - ClientData clientData)); -/* 428 */ -EXTERN char * Tcl_AttemptAlloc _ANSI_ARGS_((unsigned int size)); -/* 429 */ -EXTERN char * Tcl_AttemptDbCkalloc _ANSI_ARGS_((unsigned int size, - CONST char * file, int line)); -/* 430 */ -EXTERN char * Tcl_AttemptRealloc _ANSI_ARGS_((char * ptr, - unsigned int size)); -/* 431 */ -EXTERN char * Tcl_AttemptDbCkrealloc _ANSI_ARGS_((char * ptr, - unsigned int size, CONST char * file, - int line)); -/* 432 */ -EXTERN int Tcl_AttemptSetObjLength _ANSI_ARGS_(( - Tcl_Obj * objPtr, int length)); -/* 433 */ -EXTERN Tcl_ThreadId Tcl_GetChannelThread _ANSI_ARGS_(( - Tcl_Channel channel)); -/* 434 */ -EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj _ANSI_ARGS_((Tcl_Obj * objPtr, - int * lengthPtr)); -/* 435 */ -EXTERN int Tcl_GetMathFuncInfo _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, int * numArgsPtr, - Tcl_ValueType ** argTypesPtr, - Tcl_MathProc ** procPtr, - ClientData * clientDataPtr)); -/* 436 */ -EXTERN Tcl_Obj * Tcl_ListMathFuncs _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * pattern)); -/* 437 */ -EXTERN Tcl_Obj * Tcl_SubstObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, int flags)); -/* 438 */ -EXTERN int Tcl_DetachChannel _ANSI_ARGS_((Tcl_Interp* interp, - Tcl_Channel channel)); -/* 439 */ -EXTERN int Tcl_IsStandardChannel _ANSI_ARGS_(( - Tcl_Channel channel)); -/* 440 */ -EXTERN int Tcl_FSCopyFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr, - Tcl_Obj * destPathPtr)); -/* 441 */ -EXTERN int Tcl_FSCopyDirectory _ANSI_ARGS_(( - Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr, - Tcl_Obj ** errorPtr)); -/* 442 */ -EXTERN int Tcl_FSCreateDirectory _ANSI_ARGS_((Tcl_Obj * pathPtr)); -/* 443 */ -EXTERN int Tcl_FSDeleteFile _ANSI_ARGS_((Tcl_Obj * pathPtr)); -/* 444 */ -EXTERN int Tcl_FSLoadFile _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * pathPtr, CONST char * sym1, - CONST char * sym2, - Tcl_PackageInitProc ** proc1Ptr, - Tcl_PackageInitProc ** proc2Ptr, - Tcl_LoadHandle * handlePtr, - Tcl_FSUnloadFileProc ** unloadProcPtr)); -/* 445 */ -EXTERN int Tcl_FSMatchInDirectory _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * result, - Tcl_Obj * pathPtr, CONST char * pattern, - Tcl_GlobTypeData * types)); -/* 446 */ -EXTERN Tcl_Obj * Tcl_FSLink _ANSI_ARGS_((Tcl_Obj * pathPtr, - Tcl_Obj * toPtr, int linkAction)); -/* 447 */ -EXTERN int Tcl_FSRemoveDirectory _ANSI_ARGS_((Tcl_Obj * pathPtr, - int recursive, Tcl_Obj ** errorPtr)); -/* 448 */ -EXTERN int Tcl_FSRenameFile _ANSI_ARGS_((Tcl_Obj * srcPathPtr, - Tcl_Obj * destPathPtr)); -/* 449 */ -EXTERN int Tcl_FSLstat _ANSI_ARGS_((Tcl_Obj * pathPtr, - Tcl_StatBuf * buf)); -/* 450 */ -EXTERN int Tcl_FSUtime _ANSI_ARGS_((Tcl_Obj * pathPtr, - struct utimbuf * tval)); -/* 451 */ -EXTERN int Tcl_FSFileAttrsGet _ANSI_ARGS_((Tcl_Interp * interp, - int index, Tcl_Obj * pathPtr, - Tcl_Obj ** objPtrRef)); -/* 452 */ -EXTERN int Tcl_FSFileAttrsSet _ANSI_ARGS_((Tcl_Interp * interp, - int index, Tcl_Obj * pathPtr, - Tcl_Obj * objPtr)); -/* 453 */ -EXTERN CONST char ** Tcl_FSFileAttrStrings _ANSI_ARGS_((Tcl_Obj * pathPtr, - Tcl_Obj ** objPtrRef)); -/* 454 */ -EXTERN int Tcl_FSStat _ANSI_ARGS_((Tcl_Obj * pathPtr, - Tcl_StatBuf * buf)); -/* 455 */ -EXTERN int Tcl_FSAccess _ANSI_ARGS_((Tcl_Obj * pathPtr, - int mode)); -/* 456 */ -EXTERN Tcl_Channel Tcl_FSOpenFileChannel _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * pathPtr, - CONST char * modeString, int permissions)); -/* 457 */ -EXTERN Tcl_Obj* Tcl_FSGetCwd _ANSI_ARGS_((Tcl_Interp * interp)); -/* 458 */ -EXTERN int Tcl_FSChdir _ANSI_ARGS_((Tcl_Obj * pathPtr)); -/* 459 */ -EXTERN int Tcl_FSConvertToPathType _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * pathPtr)); -/* 460 */ -EXTERN Tcl_Obj* Tcl_FSJoinPath _ANSI_ARGS_((Tcl_Obj * listObj, - int elements)); -/* 461 */ -EXTERN Tcl_Obj* Tcl_FSSplitPath _ANSI_ARGS_((Tcl_Obj* pathPtr, - int * lenPtr)); -/* 462 */ -EXTERN int Tcl_FSEqualPaths _ANSI_ARGS_((Tcl_Obj* firstPtr, - Tcl_Obj* secondPtr)); -/* 463 */ -EXTERN Tcl_Obj* Tcl_FSGetNormalizedPath _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj* pathObjPtr)); -/* 464 */ -EXTERN Tcl_Obj* Tcl_FSJoinToPath _ANSI_ARGS_((Tcl_Obj * basePtr, - int objc, Tcl_Obj *CONST objv[])); -/* 465 */ -EXTERN ClientData Tcl_FSGetInternalRep _ANSI_ARGS_(( - Tcl_Obj* pathObjPtr, Tcl_Filesystem * fsPtr)); -/* 466 */ -EXTERN Tcl_Obj* Tcl_FSGetTranslatedPath _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj* pathPtr)); -/* 467 */ -EXTERN int Tcl_FSEvalFile _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * fileName)); -/* 468 */ -EXTERN Tcl_Obj* Tcl_FSNewNativePath _ANSI_ARGS_(( - Tcl_Filesystem* fromFilesystem, - ClientData clientData)); -/* 469 */ -EXTERN CONST char* Tcl_FSGetNativePath _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); -/* 470 */ -EXTERN Tcl_Obj* Tcl_FSFileSystemInfo _ANSI_ARGS_(( - Tcl_Obj* pathObjPtr)); -/* 471 */ -EXTERN Tcl_Obj* Tcl_FSPathSeparator _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); -/* 472 */ -EXTERN Tcl_Obj* Tcl_FSListVolumes _ANSI_ARGS_((void)); -/* 473 */ -EXTERN int Tcl_FSRegister _ANSI_ARGS_((ClientData clientData, - Tcl_Filesystem * fsPtr)); -/* 474 */ -EXTERN int Tcl_FSUnregister _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); -/* 475 */ -EXTERN ClientData Tcl_FSData _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); -/* 476 */ -EXTERN CONST char* Tcl_FSGetTranslatedStringPath _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj* pathPtr)); -/* 477 */ -EXTERN Tcl_Filesystem* Tcl_FSGetFileSystemForPath _ANSI_ARGS_(( - Tcl_Obj* pathObjPtr)); -/* 478 */ -EXTERN Tcl_PathType Tcl_FSGetPathType _ANSI_ARGS_((Tcl_Obj * pathObjPtr)); -/* 479 */ -EXTERN int Tcl_OutputBuffered _ANSI_ARGS_((Tcl_Channel chan)); -/* 480 */ -EXTERN void Tcl_FSMountsChanged _ANSI_ARGS_(( - Tcl_Filesystem * fsPtr)); -/* 481 */ -EXTERN int Tcl_EvalTokensStandard _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Token * tokenPtr, - int count)); -/* 482 */ -EXTERN void Tcl_GetTime _ANSI_ARGS_((Tcl_Time* timeBuf)); -/* 483 */ -EXTERN Tcl_Trace Tcl_CreateObjTrace _ANSI_ARGS_((Tcl_Interp* interp, - int level, int flags, - Tcl_CmdObjTraceProc* objProc, - ClientData clientData, - Tcl_CmdObjTraceDeleteProc* delProc)); -/* 484 */ -EXTERN int Tcl_GetCommandInfoFromToken _ANSI_ARGS_(( - Tcl_Command token, Tcl_CmdInfo* infoPtr)); -/* 485 */ -EXTERN int Tcl_SetCommandInfoFromToken _ANSI_ARGS_(( - Tcl_Command token, - CONST Tcl_CmdInfo* infoPtr)); -/* 486 */ -EXTERN Tcl_Obj * Tcl_DbNewWideIntObj _ANSI_ARGS_(( - Tcl_WideInt wideValue, CONST char * file, - int line)); -/* 487 */ -EXTERN int Tcl_GetWideIntFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - Tcl_WideInt * widePtr)); -/* 488 */ -EXTERN Tcl_Obj * Tcl_NewWideIntObj _ANSI_ARGS_((Tcl_WideInt wideValue)); -/* 489 */ -EXTERN void Tcl_SetWideIntObj _ANSI_ARGS_((Tcl_Obj * objPtr, - Tcl_WideInt wideValue)); -/* 490 */ -EXTERN Tcl_StatBuf * Tcl_AllocStatBuf _ANSI_ARGS_((void)); -/* 491 */ -EXTERN Tcl_WideInt Tcl_Seek _ANSI_ARGS_((Tcl_Channel chan, - Tcl_WideInt offset, int mode)); -/* 492 */ -EXTERN Tcl_WideInt Tcl_Tell _ANSI_ARGS_((Tcl_Channel chan)); -/* 493 */ -EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* Slot 494 is reserved */ -/* Slot 495 is reserved */ -/* Slot 496 is reserved */ -/* Slot 497 is reserved */ -/* Slot 498 is reserved */ -/* Slot 499 is reserved */ -/* Slot 500 is reserved */ -/* Slot 501 is reserved */ -/* Slot 502 is reserved */ -/* Slot 503 is reserved */ -/* Slot 504 is reserved */ -/* Slot 505 is reserved */ -/* Slot 506 is reserved */ -/* Slot 507 is reserved */ -/* Slot 508 is reserved */ -/* Slot 509 is reserved */ -/* Slot 510 is reserved */ -/* Slot 511 is reserved */ -/* Slot 512 is reserved */ -/* Slot 513 is reserved */ -/* Slot 514 is reserved */ -/* Slot 515 is reserved */ -/* Slot 516 is reserved */ -/* Slot 517 is reserved */ -/* Slot 518 is reserved */ -/* Slot 519 is reserved */ -/* Slot 520 is reserved */ -/* Slot 521 is reserved */ -/* Slot 522 is reserved */ -/* Slot 523 is reserved */ -/* Slot 524 is reserved */ -/* Slot 525 is reserved */ -/* Slot 526 is reserved */ -/* Slot 527 is reserved */ -/* Slot 528 is reserved */ -/* Slot 529 is reserved */ -/* Slot 530 is reserved */ -/* Slot 531 is reserved */ -/* Slot 532 is reserved */ -/* Slot 533 is reserved */ -/* Slot 534 is reserved */ -/* Slot 535 is reserved */ -/* Slot 536 is reserved */ -/* Slot 537 is reserved */ -/* Slot 538 is reserved */ -/* Slot 539 is reserved */ -/* Slot 540 is reserved */ -/* Slot 541 is reserved */ -/* Slot 542 is reserved */ -/* Slot 543 is reserved */ -/* Slot 544 is reserved */ -/* Slot 545 is reserved */ -/* Slot 546 is reserved */ -/* Slot 547 is reserved */ -/* Slot 548 is reserved */ -/* Slot 549 is reserved */ -/* Slot 550 is reserved */ -/* Slot 551 is reserved */ -/* Slot 552 is reserved */ -/* Slot 553 is reserved */ -/* 554 */ -EXTERN Tcl_DriverThreadActionProc * Tcl_ChannelThreadActionProc _ANSI_ARGS_(( - Tcl_ChannelType * chanTypePtr)); -/* Slot 555 is reserved */ -/* Slot 556 is reserved */ -/* Slot 557 is reserved */ -/* Slot 558 is reserved */ -/* Slot 559 is reserved */ -/* Slot 560 is reserved */ -/* Slot 561 is reserved */ -/* Slot 562 is reserved */ -/* Slot 563 is reserved */ -/* Slot 564 is reserved */ -/* Slot 565 is reserved */ -/* Slot 566 is reserved */ -/* Slot 567 is reserved */ -/* Slot 568 is reserved */ -/* Slot 569 is reserved */ -/* Slot 570 is reserved */ -/* Slot 571 is reserved */ -/* Slot 572 is reserved */ -/* 573 */ -EXTERN int Tcl_PkgRequireProc _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, int objc, - Tcl_Obj *CONST objv[], - ClientData * clientDataPtr)); - -typedef struct TclStubHooks { - struct TclPlatStubs *tclPlatStubs; - struct TclIntStubs *tclIntStubs; - struct TclIntPlatStubs *tclIntPlatStubs; -} TclStubHooks; - -typedef struct TclStubs { - int magic; - struct TclStubHooks *hooks; - - int (*tcl_PkgProvideEx) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* name, CONST char* version, ClientData clientData)); /* 0 */ - CONST84_RETURN char * (*tcl_PkgRequireEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 1 */ - void (*tcl_Panic) _ANSI_ARGS_(TCL_VARARGS(CONST char *,format)); /* 2 */ - char * (*tcl_Alloc) _ANSI_ARGS_((unsigned int size)); /* 3 */ - void (*tcl_Free) _ANSI_ARGS_((char * ptr)); /* 4 */ - char * (*tcl_Realloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 5 */ - char * (*tcl_DbCkalloc) _ANSI_ARGS_((unsigned int size, CONST char * file, int line)); /* 6 */ - int (*tcl_DbCkfree) _ANSI_ARGS_((char * ptr, CONST char * file, int line)); /* 7 */ - char * (*tcl_DbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, CONST char * file, int line)); /* 8 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - void (*tcl_CreateFileHandler) _ANSI_ARGS_((int fd, int mask, Tcl_FileProc * proc, ClientData clientData)); /* 9 */ -#endif /* UNIX */ -#ifdef __WIN32__ - void *reserved9; -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved9; -#endif /* MAC_TCL */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - void (*tcl_DeleteFileHandler) _ANSI_ARGS_((int fd)); /* 10 */ -#endif /* UNIX */ -#ifdef __WIN32__ - void *reserved10; -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved10; -#endif /* MAC_TCL */ - void (*tcl_SetTimer) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 11 */ - void (*tcl_Sleep) _ANSI_ARGS_((int ms)); /* 12 */ - int (*tcl_WaitForEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 13 */ - int (*tcl_AppendAllObjTypes) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 14 */ - void (*tcl_AppendStringsToObj) _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)); /* 15 */ - void (*tcl_AppendToObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 16 */ - Tcl_Obj * (*tcl_ConcatObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 17 */ - int (*tcl_ConvertToType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr)); /* 18 */ - void (*tcl_DbDecrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 19 */ - void (*tcl_DbIncrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 20 */ - int (*tcl_DbIsShared) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 21 */ - Tcl_Obj * (*tcl_DbNewBooleanObj) _ANSI_ARGS_((int boolValue, CONST char * file, int line)); /* 22 */ - Tcl_Obj * (*tcl_DbNewByteArrayObj) _ANSI_ARGS_((CONST unsigned char * bytes, int length, CONST char * file, int line)); /* 23 */ - Tcl_Obj * (*tcl_DbNewDoubleObj) _ANSI_ARGS_((double doubleValue, CONST char * file, int line)); /* 24 */ - Tcl_Obj * (*tcl_DbNewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST * objv, CONST char * file, int line)); /* 25 */ - Tcl_Obj * (*tcl_DbNewLongObj) _ANSI_ARGS_((long longValue, CONST char * file, int line)); /* 26 */ - Tcl_Obj * (*tcl_DbNewObj) _ANSI_ARGS_((CONST char * file, int line)); /* 27 */ - Tcl_Obj * (*tcl_DbNewStringObj) _ANSI_ARGS_((CONST char * bytes, int length, CONST char * file, int line)); /* 28 */ - Tcl_Obj * (*tcl_DuplicateObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 29 */ - void (*tclFreeObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 30 */ - int (*tcl_GetBoolean) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * boolPtr)); /* 31 */ - int (*tcl_GetBooleanFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr)); /* 32 */ - unsigned char * (*tcl_GetByteArrayFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 33 */ - int (*tcl_GetDouble) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, double * doublePtr)); /* 34 */ - int (*tcl_GetDoubleFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr)); /* 35 */ - int (*tcl_GetIndexFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CONST84 char ** tablePtr, CONST char * msg, int flags, int * indexPtr)); /* 36 */ - int (*tcl_GetInt) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * intPtr)); /* 37 */ - int (*tcl_GetIntFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr)); /* 38 */ - int (*tcl_GetLongFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr)); /* 39 */ - Tcl_ObjType * (*tcl_GetObjType) _ANSI_ARGS_((CONST char * typeName)); /* 40 */ - char * (*tcl_GetStringFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 41 */ - void (*tcl_InvalidateStringRep) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 42 */ - int (*tcl_ListObjAppendList) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr)); /* 43 */ - int (*tcl_ListObjAppendElement) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr)); /* 44 */ - int (*tcl_ListObjGetElements) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr)); /* 45 */ - int (*tcl_ListObjIndex) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr)); /* 46 */ - int (*tcl_ListObjLength) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * lengthPtr)); /* 47 */ - int (*tcl_ListObjReplace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[])); /* 48 */ - Tcl_Obj * (*tcl_NewBooleanObj) _ANSI_ARGS_((int boolValue)); /* 49 */ - Tcl_Obj * (*tcl_NewByteArrayObj) _ANSI_ARGS_((CONST unsigned char* bytes, int length)); /* 50 */ - Tcl_Obj * (*tcl_NewDoubleObj) _ANSI_ARGS_((double doubleValue)); /* 51 */ - Tcl_Obj * (*tcl_NewIntObj) _ANSI_ARGS_((int intValue)); /* 52 */ - Tcl_Obj * (*tcl_NewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 53 */ - Tcl_Obj * (*tcl_NewLongObj) _ANSI_ARGS_((long longValue)); /* 54 */ - Tcl_Obj * (*tcl_NewObj) _ANSI_ARGS_((void)); /* 55 */ - Tcl_Obj * (*tcl_NewStringObj) _ANSI_ARGS_((CONST char * bytes, int length)); /* 56 */ - void (*tcl_SetBooleanObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int boolValue)); /* 57 */ - unsigned char * (*tcl_SetByteArrayLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 58 */ - void (*tcl_SetByteArrayObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST unsigned char * bytes, int length)); /* 59 */ - void (*tcl_SetDoubleObj) _ANSI_ARGS_((Tcl_Obj * objPtr, double doubleValue)); /* 60 */ - void (*tcl_SetIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int intValue)); /* 61 */ - void (*tcl_SetListObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int objc, Tcl_Obj *CONST objv[])); /* 62 */ - void (*tcl_SetLongObj) _ANSI_ARGS_((Tcl_Obj * objPtr, long longValue)); /* 63 */ - void (*tcl_SetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 64 */ - void (*tcl_SetStringObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 65 */ - void (*tcl_AddErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message)); /* 66 */ - void (*tcl_AddObjErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message, int length)); /* 67 */ - void (*tcl_AllowExceptions) _ANSI_ARGS_((Tcl_Interp * interp)); /* 68 */ - void (*tcl_AppendElement) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 69 */ - void (*tcl_AppendResult) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 70 */ - Tcl_AsyncHandler (*tcl_AsyncCreate) _ANSI_ARGS_((Tcl_AsyncProc * proc, ClientData clientData)); /* 71 */ - void (*tcl_AsyncDelete) _ANSI_ARGS_((Tcl_AsyncHandler async)); /* 72 */ - int (*tcl_AsyncInvoke) _ANSI_ARGS_((Tcl_Interp * interp, int code)); /* 73 */ - void (*tcl_AsyncMark) _ANSI_ARGS_((Tcl_AsyncHandler async)); /* 74 */ - int (*tcl_AsyncReady) _ANSI_ARGS_((void)); /* 75 */ - void (*tcl_BackgroundError) _ANSI_ARGS_((Tcl_Interp * interp)); /* 76 */ - char (*tcl_Backslash) _ANSI_ARGS_((CONST char * src, int * readPtr)); /* 77 */ - int (*tcl_BadChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * optionName, CONST char * optionList)); /* 78 */ - void (*tcl_CallWhenDeleted) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 79 */ - void (*tcl_CancelIdleCall) _ANSI_ARGS_((Tcl_IdleProc * idleProc, ClientData clientData)); /* 80 */ - int (*tcl_Close) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 81 */ - int (*tcl_CommandComplete) _ANSI_ARGS_((CONST char * cmd)); /* 82 */ - char * (*tcl_Concat) _ANSI_ARGS_((int argc, CONST84 char * CONST * argv)); /* 83 */ - int (*tcl_ConvertElement) _ANSI_ARGS_((CONST char * src, char * dst, int flags)); /* 84 */ - int (*tcl_ConvertCountedElement) _ANSI_ARGS_((CONST char * src, int length, char * dst, int flags)); /* 85 */ - int (*tcl_CreateAlias) _ANSI_ARGS_((Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int argc, CONST84 char * CONST * argv)); /* 86 */ - int (*tcl_CreateAliasObj) _ANSI_ARGS_((Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int objc, Tcl_Obj *CONST objv[])); /* 87 */ - Tcl_Channel (*tcl_CreateChannel) _ANSI_ARGS_((Tcl_ChannelType * typePtr, CONST char * chanName, ClientData instanceData, int mask)); /* 88 */ - void (*tcl_CreateChannelHandler) _ANSI_ARGS_((Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData)); /* 89 */ - void (*tcl_CreateCloseHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData)); /* 90 */ - Tcl_Command (*tcl_CreateCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 91 */ - void (*tcl_CreateEventSource) _ANSI_ARGS_((Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData)); /* 92 */ - void (*tcl_CreateExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 93 */ - Tcl_Interp * (*tcl_CreateInterp) _ANSI_ARGS_((void)); /* 94 */ - void (*tcl_CreateMathFunc) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData)); /* 95 */ - Tcl_Command (*tcl_CreateObjCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc)); /* 96 */ - Tcl_Interp * (*tcl_CreateSlave) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveName, int isSafe)); /* 97 */ - Tcl_TimerToken (*tcl_CreateTimerHandler) _ANSI_ARGS_((int milliseconds, Tcl_TimerProc * proc, ClientData clientData)); /* 98 */ - Tcl_Trace (*tcl_CreateTrace) _ANSI_ARGS_((Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData)); /* 99 */ - void (*tcl_DeleteAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 100 */ - void (*tcl_DeleteChannelHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData)); /* 101 */ - void (*tcl_DeleteCloseHandler) _ANSI_ARGS_((Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData)); /* 102 */ - int (*tcl_DeleteCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName)); /* 103 */ - int (*tcl_DeleteCommandFromToken) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command)); /* 104 */ - void (*tcl_DeleteEvents) _ANSI_ARGS_((Tcl_EventDeleteProc * proc, ClientData clientData)); /* 105 */ - void (*tcl_DeleteEventSource) _ANSI_ARGS_((Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData)); /* 106 */ - void (*tcl_DeleteExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 107 */ - void (*tcl_DeleteHashEntry) _ANSI_ARGS_((Tcl_HashEntry * entryPtr)); /* 108 */ - void (*tcl_DeleteHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 109 */ - void (*tcl_DeleteInterp) _ANSI_ARGS_((Tcl_Interp * interp)); /* 110 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - void (*tcl_DetachPids) _ANSI_ARGS_((int numPids, Tcl_Pid * pidPtr)); /* 111 */ -#endif /* UNIX */ -#ifdef __WIN32__ - void (*tcl_DetachPids) _ANSI_ARGS_((int numPids, Tcl_Pid * pidPtr)); /* 111 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved111; -#endif /* MAC_TCL */ - void (*tcl_DeleteTimerHandler) _ANSI_ARGS_((Tcl_TimerToken token)); /* 112 */ - void (*tcl_DeleteTrace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Trace trace)); /* 113 */ - void (*tcl_DontCallWhenDeleted) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 114 */ - int (*tcl_DoOneEvent) _ANSI_ARGS_((int flags)); /* 115 */ - void (*tcl_DoWhenIdle) _ANSI_ARGS_((Tcl_IdleProc * proc, ClientData clientData)); /* 116 */ - char * (*tcl_DStringAppend) _ANSI_ARGS_((Tcl_DString * dsPtr, CONST char * str, int length)); /* 117 */ - char * (*tcl_DStringAppendElement) _ANSI_ARGS_((Tcl_DString * dsPtr, CONST char * string)); /* 118 */ - void (*tcl_DStringEndSublist) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 119 */ - void (*tcl_DStringFree) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 120 */ - void (*tcl_DStringGetResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * dsPtr)); /* 121 */ - void (*tcl_DStringInit) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 122 */ - void (*tcl_DStringResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * dsPtr)); /* 123 */ - void (*tcl_DStringSetLength) _ANSI_ARGS_((Tcl_DString * dsPtr, int length)); /* 124 */ - void (*tcl_DStringStartSublist) _ANSI_ARGS_((Tcl_DString * dsPtr)); /* 125 */ - int (*tcl_Eof) _ANSI_ARGS_((Tcl_Channel chan)); /* 126 */ - CONST84_RETURN char * (*tcl_ErrnoId) _ANSI_ARGS_((void)); /* 127 */ - CONST84_RETURN char * (*tcl_ErrnoMsg) _ANSI_ARGS_((int err)); /* 128 */ - int (*tcl_Eval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 129 */ - int (*tcl_EvalFile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName)); /* 130 */ - int (*tcl_EvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 131 */ - void (*tcl_EventuallyFree) _ANSI_ARGS_((ClientData clientData, Tcl_FreeProc * freeProc)); /* 132 */ - void (*tcl_Exit) _ANSI_ARGS_((int status)); /* 133 */ - int (*tcl_ExposeCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * hiddenCmdToken, CONST char * cmdName)); /* 134 */ - int (*tcl_ExprBoolean) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * ptr)); /* 135 */ - int (*tcl_ExprBooleanObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr)); /* 136 */ - int (*tcl_ExprDouble) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, double * ptr)); /* 137 */ - int (*tcl_ExprDoubleObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr)); /* 138 */ - int (*tcl_ExprLong) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, long * ptr)); /* 139 */ - int (*tcl_ExprLongObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr)); /* 140 */ - int (*tcl_ExprObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr)); /* 141 */ - int (*tcl_ExprString) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 142 */ - void (*tcl_Finalize) _ANSI_ARGS_((void)); /* 143 */ - void (*tcl_FindExecutable) _ANSI_ARGS_((CONST char * argv0)); /* 144 */ - Tcl_HashEntry * (*tcl_FirstHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr)); /* 145 */ - int (*tcl_Flush) _ANSI_ARGS_((Tcl_Channel chan)); /* 146 */ - void (*tcl_FreeResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 147 */ - int (*tcl_GetAlias) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * argcPtr, CONST84 char *** argvPtr)); /* 148 */ - int (*tcl_GetAliasObj) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv)); /* 149 */ - ClientData (*tcl_GetAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc ** procPtr)); /* 150 */ - Tcl_Channel (*tcl_GetChannel) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * chanName, int * modePtr)); /* 151 */ - int (*tcl_GetChannelBufferSize) _ANSI_ARGS_((Tcl_Channel chan)); /* 152 */ - int (*tcl_GetChannelHandle) _ANSI_ARGS_((Tcl_Channel chan, int direction, ClientData * handlePtr)); /* 153 */ - ClientData (*tcl_GetChannelInstanceData) _ANSI_ARGS_((Tcl_Channel chan)); /* 154 */ - int (*tcl_GetChannelMode) _ANSI_ARGS_((Tcl_Channel chan)); /* 155 */ - CONST84_RETURN char * (*tcl_GetChannelName) _ANSI_ARGS_((Tcl_Channel chan)); /* 156 */ - int (*tcl_GetChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, Tcl_DString * dsPtr)); /* 157 */ - Tcl_ChannelType * (*tcl_GetChannelType) _ANSI_ARGS_((Tcl_Channel chan)); /* 158 */ - int (*tcl_GetCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdInfo * infoPtr)); /* 159 */ - CONST84_RETURN char * (*tcl_GetCommandName) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Command command)); /* 160 */ - int (*tcl_GetErrno) _ANSI_ARGS_((void)); /* 161 */ - CONST84_RETURN char * (*tcl_GetHostName) _ANSI_ARGS_((void)); /* 162 */ - int (*tcl_GetInterpPath) _ANSI_ARGS_((Tcl_Interp * askInterp, Tcl_Interp * slaveInterp)); /* 163 */ - Tcl_Interp * (*tcl_GetMaster) _ANSI_ARGS_((Tcl_Interp * interp)); /* 164 */ - CONST char * (*tcl_GetNameOfExecutable) _ANSI_ARGS_((void)); /* 165 */ - Tcl_Obj * (*tcl_GetObjResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 166 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - int (*tcl_GetOpenFile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int forWriting, int checkUsage, ClientData * filePtr)); /* 167 */ -#endif /* UNIX */ -#ifdef __WIN32__ - void *reserved167; -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved167; -#endif /* MAC_TCL */ - Tcl_PathType (*tcl_GetPathType) _ANSI_ARGS_((CONST char * path)); /* 168 */ - int (*tcl_Gets) _ANSI_ARGS_((Tcl_Channel chan, Tcl_DString * dsPtr)); /* 169 */ - int (*tcl_GetsObj) _ANSI_ARGS_((Tcl_Channel chan, Tcl_Obj * objPtr)); /* 170 */ - int (*tcl_GetServiceMode) _ANSI_ARGS_((void)); /* 171 */ - Tcl_Interp * (*tcl_GetSlave) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * slaveName)); /* 172 */ - Tcl_Channel (*tcl_GetStdChannel) _ANSI_ARGS_((int type)); /* 173 */ - CONST84_RETURN char * (*tcl_GetStringResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 174 */ - CONST84_RETURN char * (*tcl_GetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags)); /* 175 */ - CONST84_RETURN char * (*tcl_GetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 176 */ - int (*tcl_GlobalEval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * command)); /* 177 */ - int (*tcl_GlobalEvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 178 */ - int (*tcl_HideCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, CONST char * hiddenCmdToken)); /* 179 */ - int (*tcl_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 180 */ - void (*tcl_InitHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType)); /* 181 */ - int (*tcl_InputBlocked) _ANSI_ARGS_((Tcl_Channel chan)); /* 182 */ - int (*tcl_InputBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 183 */ - int (*tcl_InterpDeleted) _ANSI_ARGS_((Tcl_Interp * interp)); /* 184 */ - int (*tcl_IsSafe) _ANSI_ARGS_((Tcl_Interp * interp)); /* 185 */ - char * (*tcl_JoinPath) _ANSI_ARGS_((int argc, CONST84 char * CONST * argv, Tcl_DString * resultPtr)); /* 186 */ - int (*tcl_LinkVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, char * addr, int type)); /* 187 */ - void *reserved188; - Tcl_Channel (*tcl_MakeFileChannel) _ANSI_ARGS_((ClientData handle, int mode)); /* 189 */ - int (*tcl_MakeSafe) _ANSI_ARGS_((Tcl_Interp * interp)); /* 190 */ - Tcl_Channel (*tcl_MakeTcpClientChannel) _ANSI_ARGS_((ClientData tcpSocket)); /* 191 */ - char * (*tcl_Merge) _ANSI_ARGS_((int argc, CONST84 char * CONST * argv)); /* 192 */ - Tcl_HashEntry * (*tcl_NextHashEntry) _ANSI_ARGS_((Tcl_HashSearch * searchPtr)); /* 193 */ - void (*tcl_NotifyChannel) _ANSI_ARGS_((Tcl_Channel channel, int mask)); /* 194 */ - Tcl_Obj * (*tcl_ObjGetVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags)); /* 195 */ - Tcl_Obj * (*tcl_ObjSetVar2) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags)); /* 196 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - Tcl_Channel (*tcl_OpenCommandChannel) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 char ** argv, int flags)); /* 197 */ -#endif /* UNIX */ -#ifdef __WIN32__ - Tcl_Channel (*tcl_OpenCommandChannel) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 char ** argv, int flags)); /* 197 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved197; -#endif /* MAC_TCL */ - Tcl_Channel (*tcl_OpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions)); /* 198 */ - Tcl_Channel (*tcl_OpenTcpClient) _ANSI_ARGS_((Tcl_Interp * interp, int port, CONST char * address, CONST char * myaddr, int myport, int async)); /* 199 */ - Tcl_Channel (*tcl_OpenTcpServer) _ANSI_ARGS_((Tcl_Interp * interp, int port, CONST char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData)); /* 200 */ - void (*tcl_Preserve) _ANSI_ARGS_((ClientData data)); /* 201 */ - void (*tcl_PrintDouble) _ANSI_ARGS_((Tcl_Interp * interp, double value, char * dst)); /* 202 */ - int (*tcl_PutEnv) _ANSI_ARGS_((CONST char * string)); /* 203 */ - CONST84_RETURN char * (*tcl_PosixError) _ANSI_ARGS_((Tcl_Interp * interp)); /* 204 */ - void (*tcl_QueueEvent) _ANSI_ARGS_((Tcl_Event * evPtr, Tcl_QueuePosition position)); /* 205 */ - int (*tcl_Read) _ANSI_ARGS_((Tcl_Channel chan, char * bufPtr, int toRead)); /* 206 */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ - void (*tcl_ReapDetachedProcs) _ANSI_ARGS_((void)); /* 207 */ -#endif /* UNIX */ -#ifdef __WIN32__ - void (*tcl_ReapDetachedProcs) _ANSI_ARGS_((void)); /* 207 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void *reserved207; -#endif /* MAC_TCL */ - int (*tcl_RecordAndEval) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmd, int flags)); /* 208 */ - int (*tcl_RecordAndEvalObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags)); /* 209 */ - void (*tcl_RegisterChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 210 */ - void (*tcl_RegisterObjType) _ANSI_ARGS_((Tcl_ObjType * typePtr)); /* 211 */ - Tcl_RegExp (*tcl_RegExpCompile) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string)); /* 212 */ - int (*tcl_RegExpExec) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, CONST char * str, CONST char * start)); /* 213 */ - int (*tcl_RegExpMatch) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CONST char * pattern)); /* 214 */ - void (*tcl_RegExpRange) _ANSI_ARGS_((Tcl_RegExp regexp, int index, CONST84 char ** startPtr, CONST84 char ** endPtr)); /* 215 */ - void (*tcl_Release) _ANSI_ARGS_((ClientData clientData)); /* 216 */ - void (*tcl_ResetResult) _ANSI_ARGS_((Tcl_Interp * interp)); /* 217 */ - int (*tcl_ScanElement) _ANSI_ARGS_((CONST char * str, int * flagPtr)); /* 218 */ - int (*tcl_ScanCountedElement) _ANSI_ARGS_((CONST char * str, int length, int * flagPtr)); /* 219 */ - int (*tcl_SeekOld) _ANSI_ARGS_((Tcl_Channel chan, int offset, int mode)); /* 220 */ - int (*tcl_ServiceAll) _ANSI_ARGS_((void)); /* 221 */ - int (*tcl_ServiceEvent) _ANSI_ARGS_((int flags)); /* 222 */ - void (*tcl_SetAssocData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc * proc, ClientData clientData)); /* 223 */ - void (*tcl_SetChannelBufferSize) _ANSI_ARGS_((Tcl_Channel chan, int sz)); /* 224 */ - int (*tcl_SetChannelOption) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, CONST char * newValue)); /* 225 */ - int (*tcl_SetCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * cmdName, CONST Tcl_CmdInfo * infoPtr)); /* 226 */ - void (*tcl_SetErrno) _ANSI_ARGS_((int err)); /* 227 */ - void (*tcl_SetErrorCode) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 228 */ - void (*tcl_SetMaxBlockTime) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 229 */ - void (*tcl_SetPanicProc) _ANSI_ARGS_((Tcl_PanicProc * panicProc)); /* 230 */ - int (*tcl_SetRecursionLimit) _ANSI_ARGS_((Tcl_Interp * interp, int depth)); /* 231 */ - void (*tcl_SetResult) _ANSI_ARGS_((Tcl_Interp * interp, char * str, Tcl_FreeProc * freeProc)); /* 232 */ - int (*tcl_SetServiceMode) _ANSI_ARGS_((int mode)); /* 233 */ - void (*tcl_SetObjErrorCode) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * errorObjPtr)); /* 234 */ - void (*tcl_SetObjResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * resultObjPtr)); /* 235 */ - void (*tcl_SetStdChannel) _ANSI_ARGS_((Tcl_Channel channel, int type)); /* 236 */ - CONST84_RETURN char * (*tcl_SetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, CONST char * newValue, int flags)); /* 237 */ - CONST84_RETURN char * (*tcl_SetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, CONST char * newValue, int flags)); /* 238 */ - CONST84_RETURN char * (*tcl_SignalId) _ANSI_ARGS_((int sig)); /* 239 */ - CONST84_RETURN char * (*tcl_SignalMsg) _ANSI_ARGS_((int sig)); /* 240 */ - void (*tcl_SourceRCFile) _ANSI_ARGS_((Tcl_Interp * interp)); /* 241 */ - int (*tcl_SplitList) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * listStr, int * argcPtr, CONST84 char *** argvPtr)); /* 242 */ - void (*tcl_SplitPath) _ANSI_ARGS_((CONST char * path, int * argcPtr, CONST84 char *** argvPtr)); /* 243 */ - void (*tcl_StaticPackage) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc)); /* 244 */ - int (*tcl_StringMatch) _ANSI_ARGS_((CONST char * str, CONST char * pattern)); /* 245 */ - int (*tcl_TellOld) _ANSI_ARGS_((Tcl_Channel chan)); /* 246 */ - int (*tcl_TraceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 247 */ - int (*tcl_TraceVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 248 */ - char * (*tcl_TranslateFileName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tcl_DString * bufferPtr)); /* 249 */ - int (*tcl_Ungets) _ANSI_ARGS_((Tcl_Channel chan, CONST char * str, int len, int atHead)); /* 250 */ - void (*tcl_UnlinkVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName)); /* 251 */ - int (*tcl_UnregisterChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 252 */ - int (*tcl_UnsetVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags)); /* 253 */ - int (*tcl_UnsetVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 254 */ - void (*tcl_UntraceVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 255 */ - void (*tcl_UntraceVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData)); /* 256 */ - void (*tcl_UpdateLinkedVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName)); /* 257 */ - int (*tcl_UpVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * frameName, CONST char * varName, CONST char * localName, int flags)); /* 258 */ - int (*tcl_UpVar2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * frameName, CONST char * part1, CONST char * part2, CONST char * localName, int flags)); /* 259 */ - int (*tcl_VarEval) _ANSI_ARGS_(TCL_VARARGS(Tcl_Interp *,interp)); /* 260 */ - ClientData (*tcl_VarTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 261 */ - ClientData (*tcl_VarTraceInfo2) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 262 */ - int (*tcl_Write) _ANSI_ARGS_((Tcl_Channel chan, CONST char * s, int slen)); /* 263 */ - void (*tcl_WrongNumArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], CONST char * message)); /* 264 */ - int (*tcl_DumpActiveMemory) _ANSI_ARGS_((CONST char * fileName)); /* 265 */ - void (*tcl_ValidateAllMemory) _ANSI_ARGS_((CONST char * file, int line)); /* 266 */ - void (*tcl_AppendResultVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 267 */ - void (*tcl_AppendStringsToObjVA) _ANSI_ARGS_((Tcl_Obj * objPtr, va_list argList)); /* 268 */ - CONST84_RETURN char * (*tcl_HashStats) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 269 */ - CONST84_RETURN char * (*tcl_ParseVar) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, CONST84 char ** termPtr)); /* 270 */ - CONST84_RETURN char * (*tcl_PkgPresent) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 271 */ - CONST84_RETURN char * (*tcl_PkgPresentEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 272 */ - int (*tcl_PkgProvide) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version)); /* 273 */ - CONST84_RETURN char * (*tcl_PkgRequire) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 274 */ - void (*tcl_SetErrorCodeVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 275 */ - int (*tcl_VarEvalVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 276 */ - Tcl_Pid (*tcl_WaitPid) _ANSI_ARGS_((Tcl_Pid pid, int * statPtr, int options)); /* 277 */ - void (*tcl_PanicVA) _ANSI_ARGS_((CONST char * format, va_list argList)); /* 278 */ - void (*tcl_GetVersion) _ANSI_ARGS_((int * major, int * minor, int * patchLevel, int * type)); /* 279 */ - void (*tcl_InitMemory) _ANSI_ARGS_((Tcl_Interp * interp)); /* 280 */ - Tcl_Channel (*tcl_StackChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan)); /* 281 */ - int (*tcl_UnstackChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Channel chan)); /* 282 */ - Tcl_Channel (*tcl_GetStackedChannel) _ANSI_ARGS_((Tcl_Channel chan)); /* 283 */ - void (*tcl_SetMainLoop) _ANSI_ARGS_((Tcl_MainLoopProc * proc)); /* 284 */ - void *reserved285; - void (*tcl_AppendObjToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr)); /* 286 */ - Tcl_Encoding (*tcl_CreateEncoding) _ANSI_ARGS_((Tcl_EncodingType * typePtr)); /* 287 */ - void (*tcl_CreateThreadExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 288 */ - void (*tcl_DeleteThreadExitHandler) _ANSI_ARGS_((Tcl_ExitProc * proc, ClientData clientData)); /* 289 */ - void (*tcl_DiscardResult) _ANSI_ARGS_((Tcl_SavedResult * statePtr)); /* 290 */ - int (*tcl_EvalEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * script, int numBytes, int flags)); /* 291 */ - int (*tcl_EvalObjv) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags)); /* 292 */ - int (*tcl_EvalObjEx) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int flags)); /* 293 */ - void (*tcl_ExitThread) _ANSI_ARGS_((int status)); /* 294 */ - int (*tcl_ExternalToUtf) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr)); /* 295 */ - char * (*tcl_ExternalToUtfDString) _ANSI_ARGS_((Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr)); /* 296 */ - void (*tcl_FinalizeThread) _ANSI_ARGS_((void)); /* 297 */ - void (*tcl_FinalizeNotifier) _ANSI_ARGS_((ClientData clientData)); /* 298 */ - void (*tcl_FreeEncoding) _ANSI_ARGS_((Tcl_Encoding encoding)); /* 299 */ - Tcl_ThreadId (*tcl_GetCurrentThread) _ANSI_ARGS_((void)); /* 300 */ - Tcl_Encoding (*tcl_GetEncoding) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 301 */ - CONST84_RETURN char * (*tcl_GetEncodingName) _ANSI_ARGS_((Tcl_Encoding encoding)); /* 302 */ - void (*tcl_GetEncodingNames) _ANSI_ARGS_((Tcl_Interp * interp)); /* 303 */ - int (*tcl_GetIndexFromObjStruct) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, CONST VOID * tablePtr, int offset, CONST char * msg, int flags, int * indexPtr)); /* 304 */ - VOID * (*tcl_GetThreadData) _ANSI_ARGS_((Tcl_ThreadDataKey * keyPtr, int size)); /* 305 */ - Tcl_Obj * (*tcl_GetVar2Ex) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags)); /* 306 */ - ClientData (*tcl_InitNotifier) _ANSI_ARGS_((void)); /* 307 */ - void (*tcl_MutexLock) _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); /* 308 */ - void (*tcl_MutexUnlock) _ANSI_ARGS_((Tcl_Mutex * mutexPtr)); /* 309 */ - void (*tcl_ConditionNotify) _ANSI_ARGS_((Tcl_Condition * condPtr)); /* 310 */ - void (*tcl_ConditionWait) _ANSI_ARGS_((Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr)); /* 311 */ - int (*tcl_NumUtfChars) _ANSI_ARGS_((CONST char * src, int len)); /* 312 */ - int (*tcl_ReadChars) _ANSI_ARGS_((Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag)); /* 313 */ - void (*tcl_RestoreResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_SavedResult * statePtr)); /* 314 */ - void (*tcl_SaveResult) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_SavedResult * statePtr)); /* 315 */ - int (*tcl_SetSystemEncoding) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 316 */ - Tcl_Obj * (*tcl_SetVar2Ex) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * part1, CONST char * part2, Tcl_Obj * newValuePtr, int flags)); /* 317 */ - void (*tcl_ThreadAlert) _ANSI_ARGS_((Tcl_ThreadId threadId)); /* 318 */ - void (*tcl_ThreadQueueEvent) _ANSI_ARGS_((Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position)); /* 319 */ - Tcl_UniChar (*tcl_UniCharAtIndex) _ANSI_ARGS_((CONST char * src, int index)); /* 320 */ - Tcl_UniChar (*tcl_UniCharToLower) _ANSI_ARGS_((int ch)); /* 321 */ - Tcl_UniChar (*tcl_UniCharToTitle) _ANSI_ARGS_((int ch)); /* 322 */ - Tcl_UniChar (*tcl_UniCharToUpper) _ANSI_ARGS_((int ch)); /* 323 */ - int (*tcl_UniCharToUtf) _ANSI_ARGS_((int ch, char * buf)); /* 324 */ - CONST84_RETURN char * (*tcl_UtfAtIndex) _ANSI_ARGS_((CONST char * src, int index)); /* 325 */ - int (*tcl_UtfCharComplete) _ANSI_ARGS_((CONST char * src, int len)); /* 326 */ - int (*tcl_UtfBackslash) _ANSI_ARGS_((CONST char * src, int * readPtr, char * dst)); /* 327 */ - CONST84_RETURN char * (*tcl_UtfFindFirst) _ANSI_ARGS_((CONST char * src, int ch)); /* 328 */ - CONST84_RETURN char * (*tcl_UtfFindLast) _ANSI_ARGS_((CONST char * src, int ch)); /* 329 */ - CONST84_RETURN char * (*tcl_UtfNext) _ANSI_ARGS_((CONST char * src)); /* 330 */ - CONST84_RETURN char * (*tcl_UtfPrev) _ANSI_ARGS_((CONST char * src, CONST char * start)); /* 331 */ - int (*tcl_UtfToExternal) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr)); /* 332 */ - char * (*tcl_UtfToExternalDString) _ANSI_ARGS_((Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr)); /* 333 */ - int (*tcl_UtfToLower) _ANSI_ARGS_((char * src)); /* 334 */ - int (*tcl_UtfToTitle) _ANSI_ARGS_((char * src)); /* 335 */ - int (*tcl_UtfToUniChar) _ANSI_ARGS_((CONST char * src, Tcl_UniChar * chPtr)); /* 336 */ - int (*tcl_UtfToUpper) _ANSI_ARGS_((char * src)); /* 337 */ - int (*tcl_WriteChars) _ANSI_ARGS_((Tcl_Channel chan, CONST char * src, int srcLen)); /* 338 */ - int (*tcl_WriteObj) _ANSI_ARGS_((Tcl_Channel chan, Tcl_Obj * objPtr)); /* 339 */ - char * (*tcl_GetString) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 340 */ - CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) _ANSI_ARGS_((void)); /* 341 */ - void (*tcl_SetDefaultEncodingDir) _ANSI_ARGS_((CONST char * path)); /* 342 */ - void (*tcl_AlertNotifier) _ANSI_ARGS_((ClientData clientData)); /* 343 */ - void (*tcl_ServiceModeHook) _ANSI_ARGS_((int mode)); /* 344 */ - int (*tcl_UniCharIsAlnum) _ANSI_ARGS_((int ch)); /* 345 */ - int (*tcl_UniCharIsAlpha) _ANSI_ARGS_((int ch)); /* 346 */ - int (*tcl_UniCharIsDigit) _ANSI_ARGS_((int ch)); /* 347 */ - int (*tcl_UniCharIsLower) _ANSI_ARGS_((int ch)); /* 348 */ - int (*tcl_UniCharIsSpace) _ANSI_ARGS_((int ch)); /* 349 */ - int (*tcl_UniCharIsUpper) _ANSI_ARGS_((int ch)); /* 350 */ - int (*tcl_UniCharIsWordChar) _ANSI_ARGS_((int ch)); /* 351 */ - int (*tcl_UniCharLen) _ANSI_ARGS_((CONST Tcl_UniChar * str)); /* 352 */ - int (*tcl_UniCharNcmp) _ANSI_ARGS_((CONST Tcl_UniChar * cs, CONST Tcl_UniChar * ct, unsigned long n)); /* 353 */ - char * (*tcl_UniCharToUtfDString) _ANSI_ARGS_((CONST Tcl_UniChar * string, int numChars, Tcl_DString * dsPtr)); /* 354 */ - Tcl_UniChar * (*tcl_UtfToUniCharDString) _ANSI_ARGS_((CONST char * string, int length, Tcl_DString * dsPtr)); /* 355 */ - Tcl_RegExp (*tcl_GetRegExpFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * patObj, int flags)); /* 356 */ - Tcl_Obj * (*tcl_EvalTokens) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Token * tokenPtr, int count)); /* 357 */ - void (*tcl_FreeParse) _ANSI_ARGS_((Tcl_Parse * parsePtr)); /* 358 */ - void (*tcl_LogCommandInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * script, CONST char * command, int length)); /* 359 */ - int (*tcl_ParseBraces) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr)); /* 360 */ - int (*tcl_ParseCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, int nested, Tcl_Parse * parsePtr)); /* 361 */ - int (*tcl_ParseExpr) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr)); /* 362 */ - int (*tcl_ParseQuotedString) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr)); /* 363 */ - int (*tcl_ParseVarName) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * string, int numBytes, Tcl_Parse * parsePtr, int append)); /* 364 */ - char * (*tcl_GetCwd) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_DString * cwdPtr)); /* 365 */ - int (*tcl_Chdir) _ANSI_ARGS_((CONST char * dirName)); /* 366 */ - int (*tcl_Access) _ANSI_ARGS_((CONST char * path, int mode)); /* 367 */ - int (*tcl_Stat) _ANSI_ARGS_((CONST char * path, struct stat * bufPtr)); /* 368 */ - int (*tcl_UtfNcmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, unsigned long n)); /* 369 */ - int (*tcl_UtfNcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, unsigned long n)); /* 370 */ - int (*tcl_StringCaseMatch) _ANSI_ARGS_((CONST char * str, CONST char * pattern, int nocase)); /* 371 */ - int (*tcl_UniCharIsControl) _ANSI_ARGS_((int ch)); /* 372 */ - int (*tcl_UniCharIsGraph) _ANSI_ARGS_((int ch)); /* 373 */ - int (*tcl_UniCharIsPrint) _ANSI_ARGS_((int ch)); /* 374 */ - int (*tcl_UniCharIsPunct) _ANSI_ARGS_((int ch)); /* 375 */ - int (*tcl_RegExpExecObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags)); /* 376 */ - void (*tcl_RegExpGetInfo) _ANSI_ARGS_((Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr)); /* 377 */ - Tcl_Obj * (*tcl_NewUnicodeObj) _ANSI_ARGS_((CONST Tcl_UniChar * unicode, int numChars)); /* 378 */ - void (*tcl_SetUnicodeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int numChars)); /* 379 */ - int (*tcl_GetCharLength) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 380 */ - Tcl_UniChar (*tcl_GetUniChar) _ANSI_ARGS_((Tcl_Obj * objPtr, int index)); /* 381 */ - Tcl_UniChar * (*tcl_GetUnicode) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 382 */ - Tcl_Obj * (*tcl_GetRange) _ANSI_ARGS_((Tcl_Obj * objPtr, int first, int last)); /* 383 */ - void (*tcl_AppendUnicodeToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int length)); /* 384 */ - int (*tcl_RegExpMatchObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj)); /* 385 */ - void (*tcl_SetNotifier) _ANSI_ARGS_((Tcl_NotifierProcs * notifierProcPtr)); /* 386 */ - Tcl_Mutex * (*tcl_GetAllocMutex) _ANSI_ARGS_((void)); /* 387 */ - int (*tcl_GetChannelNames) _ANSI_ARGS_((Tcl_Interp * interp)); /* 388 */ - int (*tcl_GetChannelNamesEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pattern)); /* 389 */ - int (*tcl_ProcObjCmd) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[])); /* 390 */ - void (*tcl_ConditionFinalize) _ANSI_ARGS_((Tcl_Condition * condPtr)); /* 391 */ - void (*tcl_MutexFinalize) _ANSI_ARGS_((Tcl_Mutex * mutex)); /* 392 */ - int (*tcl_CreateThread) _ANSI_ARGS_((Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags)); /* 393 */ - int (*tcl_ReadRaw) _ANSI_ARGS_((Tcl_Channel chan, char * dst, int bytesToRead)); /* 394 */ - int (*tcl_WriteRaw) _ANSI_ARGS_((Tcl_Channel chan, CONST char * src, int srcLen)); /* 395 */ - Tcl_Channel (*tcl_GetTopChannel) _ANSI_ARGS_((Tcl_Channel chan)); /* 396 */ - int (*tcl_ChannelBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 397 */ - CONST84_RETURN char * (*tcl_ChannelName) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 398 */ - Tcl_ChannelTypeVersion (*tcl_ChannelVersion) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 399 */ - Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 400 */ - Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 401 */ - Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 402 */ - Tcl_DriverInputProc * (*tcl_ChannelInputProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 403 */ - Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 404 */ - Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 405 */ - Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 406 */ - Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 407 */ - Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 408 */ - Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 409 */ - Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 410 */ - Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 411 */ - int (*tcl_JoinThread) _ANSI_ARGS_((Tcl_ThreadId threadId, int* result)); /* 412 */ - int (*tcl_IsChannelShared) _ANSI_ARGS_((Tcl_Channel channel)); /* 413 */ - int (*tcl_IsChannelRegistered) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Channel channel)); /* 414 */ - void (*tcl_CutChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 415 */ - void (*tcl_SpliceChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 416 */ - void (*tcl_ClearChannelHandlers) _ANSI_ARGS_((Tcl_Channel channel)); /* 417 */ - int (*tcl_IsChannelExisting) _ANSI_ARGS_((CONST char* channelName)); /* 418 */ - int (*tcl_UniCharNcasecmp) _ANSI_ARGS_((CONST Tcl_UniChar * cs, CONST Tcl_UniChar * ct, unsigned long n)); /* 419 */ - int (*tcl_UniCharCaseMatch) _ANSI_ARGS_((CONST Tcl_UniChar * ustr, CONST Tcl_UniChar * pattern, int nocase)); /* 420 */ - Tcl_HashEntry * (*tcl_FindHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key)); /* 421 */ - Tcl_HashEntry * (*tcl_CreateHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key, int * newPtr)); /* 422 */ - void (*tcl_InitCustomHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType, Tcl_HashKeyType * typePtr)); /* 423 */ - void (*tcl_InitObjHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 424 */ - ClientData (*tcl_CommandTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * procPtr, ClientData prevClientData)); /* 425 */ - int (*tcl_TraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 426 */ - void (*tcl_UntraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 427 */ - char * (*tcl_AttemptAlloc) _ANSI_ARGS_((unsigned int size)); /* 428 */ - char * (*tcl_AttemptDbCkalloc) _ANSI_ARGS_((unsigned int size, CONST char * file, int line)); /* 429 */ - char * (*tcl_AttemptRealloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 430 */ - char * (*tcl_AttemptDbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, CONST char * file, int line)); /* 431 */ - int (*tcl_AttemptSetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 432 */ - Tcl_ThreadId (*tcl_GetChannelThread) _ANSI_ARGS_((Tcl_Channel channel)); /* 433 */ - Tcl_UniChar * (*tcl_GetUnicodeFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int * lengthPtr)); /* 434 */ - int (*tcl_GetMathFuncInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int * numArgsPtr, Tcl_ValueType ** argTypesPtr, Tcl_MathProc ** procPtr, ClientData * clientDataPtr)); /* 435 */ - Tcl_Obj * (*tcl_ListMathFuncs) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pattern)); /* 436 */ - Tcl_Obj * (*tcl_SubstObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int flags)); /* 437 */ - int (*tcl_DetachChannel) _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Channel channel)); /* 438 */ - int (*tcl_IsStandardChannel) _ANSI_ARGS_((Tcl_Channel channel)); /* 439 */ - int (*tcl_FSCopyFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 440 */ - int (*tcl_FSCopyDirectory) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr, Tcl_Obj ** errorPtr)); /* 441 */ - int (*tcl_FSCreateDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 442 */ - int (*tcl_FSDeleteFile) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 443 */ - int (*tcl_FSLoadFile) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * sym1, CONST char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, Tcl_LoadHandle * handlePtr, Tcl_FSUnloadFileProc ** unloadProcPtr)); /* 444 */ - int (*tcl_FSMatchInDirectory) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * result, Tcl_Obj * pathPtr, CONST char * pattern, Tcl_GlobTypeData * types)); /* 445 */ - Tcl_Obj * (*tcl_FSLink) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_Obj * toPtr, int linkAction)); /* 446 */ - int (*tcl_FSRemoveDirectory) _ANSI_ARGS_((Tcl_Obj * pathPtr, int recursive, Tcl_Obj ** errorPtr)); /* 447 */ - int (*tcl_FSRenameFile) _ANSI_ARGS_((Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr)); /* 448 */ - int (*tcl_FSLstat) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_StatBuf * buf)); /* 449 */ - int (*tcl_FSUtime) _ANSI_ARGS_((Tcl_Obj * pathPtr, struct utimbuf * tval)); /* 450 */ - int (*tcl_FSFileAttrsGet) _ANSI_ARGS_((Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef)); /* 451 */ - int (*tcl_FSFileAttrsSet) _ANSI_ARGS_((Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj * objPtr)); /* 452 */ - CONST char ** (*tcl_FSFileAttrStrings) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef)); /* 453 */ - int (*tcl_FSStat) _ANSI_ARGS_((Tcl_Obj * pathPtr, Tcl_StatBuf * buf)); /* 454 */ - int (*tcl_FSAccess) _ANSI_ARGS_((Tcl_Obj * pathPtr, int mode)); /* 455 */ - Tcl_Channel (*tcl_FSOpenFileChannel) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * modeString, int permissions)); /* 456 */ - Tcl_Obj* (*tcl_FSGetCwd) _ANSI_ARGS_((Tcl_Interp * interp)); /* 457 */ - int (*tcl_FSChdir) _ANSI_ARGS_((Tcl_Obj * pathPtr)); /* 458 */ - int (*tcl_FSConvertToPathType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * pathPtr)); /* 459 */ - Tcl_Obj* (*tcl_FSJoinPath) _ANSI_ARGS_((Tcl_Obj * listObj, int elements)); /* 460 */ - Tcl_Obj* (*tcl_FSSplitPath) _ANSI_ARGS_((Tcl_Obj* pathPtr, int * lenPtr)); /* 461 */ - int (*tcl_FSEqualPaths) _ANSI_ARGS_((Tcl_Obj* firstPtr, Tcl_Obj* secondPtr)); /* 462 */ - Tcl_Obj* (*tcl_FSGetNormalizedPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathObjPtr)); /* 463 */ - Tcl_Obj* (*tcl_FSJoinToPath) _ANSI_ARGS_((Tcl_Obj * basePtr, int objc, Tcl_Obj *CONST objv[])); /* 464 */ - ClientData (*tcl_FSGetInternalRep) _ANSI_ARGS_((Tcl_Obj* pathObjPtr, Tcl_Filesystem * fsPtr)); /* 465 */ - Tcl_Obj* (*tcl_FSGetTranslatedPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathPtr)); /* 466 */ - int (*tcl_FSEvalFile) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * fileName)); /* 467 */ - Tcl_Obj* (*tcl_FSNewNativePath) _ANSI_ARGS_((Tcl_Filesystem* fromFilesystem, ClientData clientData)); /* 468 */ - CONST char* (*tcl_FSGetNativePath) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 469 */ - Tcl_Obj* (*tcl_FSFileSystemInfo) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 470 */ - Tcl_Obj* (*tcl_FSPathSeparator) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 471 */ - Tcl_Obj* (*tcl_FSListVolumes) _ANSI_ARGS_((void)); /* 472 */ - int (*tcl_FSRegister) _ANSI_ARGS_((ClientData clientData, Tcl_Filesystem * fsPtr)); /* 473 */ - int (*tcl_FSUnregister) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 474 */ - ClientData (*tcl_FSData) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 475 */ - CONST char* (*tcl_FSGetTranslatedStringPath) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj* pathPtr)); /* 476 */ - Tcl_Filesystem* (*tcl_FSGetFileSystemForPath) _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); /* 477 */ - Tcl_PathType (*tcl_FSGetPathType) _ANSI_ARGS_((Tcl_Obj * pathObjPtr)); /* 478 */ - int (*tcl_OutputBuffered) _ANSI_ARGS_((Tcl_Channel chan)); /* 479 */ - void (*tcl_FSMountsChanged) _ANSI_ARGS_((Tcl_Filesystem * fsPtr)); /* 480 */ - int (*tcl_EvalTokensStandard) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Token * tokenPtr, int count)); /* 481 */ - void (*tcl_GetTime) _ANSI_ARGS_((Tcl_Time* timeBuf)); /* 482 */ - Tcl_Trace (*tcl_CreateObjTrace) _ANSI_ARGS_((Tcl_Interp* interp, int level, int flags, Tcl_CmdObjTraceProc* objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc* delProc)); /* 483 */ - int (*tcl_GetCommandInfoFromToken) _ANSI_ARGS_((Tcl_Command token, Tcl_CmdInfo* infoPtr)); /* 484 */ - int (*tcl_SetCommandInfoFromToken) _ANSI_ARGS_((Tcl_Command token, CONST Tcl_CmdInfo* infoPtr)); /* 485 */ - Tcl_Obj * (*tcl_DbNewWideIntObj) _ANSI_ARGS_((Tcl_WideInt wideValue, CONST char * file, int line)); /* 486 */ - int (*tcl_GetWideIntFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_WideInt * widePtr)); /* 487 */ - Tcl_Obj * (*tcl_NewWideIntObj) _ANSI_ARGS_((Tcl_WideInt wideValue)); /* 488 */ - void (*tcl_SetWideIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_WideInt wideValue)); /* 489 */ - Tcl_StatBuf * (*tcl_AllocStatBuf) _ANSI_ARGS_((void)); /* 490 */ - Tcl_WideInt (*tcl_Seek) _ANSI_ARGS_((Tcl_Channel chan, Tcl_WideInt offset, int mode)); /* 491 */ - Tcl_WideInt (*tcl_Tell) _ANSI_ARGS_((Tcl_Channel chan)); /* 492 */ - Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 493 */ - void *reserved494; - void *reserved495; - void *reserved496; - void *reserved497; - void *reserved498; - void *reserved499; - void *reserved500; - void *reserved501; - void *reserved502; - void *reserved503; - void *reserved504; - void *reserved505; - void *reserved506; - void *reserved507; - void *reserved508; - void *reserved509; - void *reserved510; - void *reserved511; - void *reserved512; - void *reserved513; - void *reserved514; - void *reserved515; - void *reserved516; - void *reserved517; - void *reserved518; - void *reserved519; - void *reserved520; - void *reserved521; - void *reserved522; - void *reserved523; - void *reserved524; - void *reserved525; - void *reserved526; - void *reserved527; - void *reserved528; - void *reserved529; - void *reserved530; - void *reserved531; - void *reserved532; - void *reserved533; - void *reserved534; - void *reserved535; - void *reserved536; - void *reserved537; - void *reserved538; - void *reserved539; - void *reserved540; - void *reserved541; - void *reserved542; - void *reserved543; - void *reserved544; - void *reserved545; - void *reserved546; - void *reserved547; - void *reserved548; - void *reserved549; - void *reserved550; - void *reserved551; - void *reserved552; - void *reserved553; - Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) _ANSI_ARGS_((Tcl_ChannelType * chanTypePtr)); /* 554 */ - void *reserved555; - void *reserved556; - void *reserved557; - void *reserved558; - void *reserved559; - void *reserved560; - void *reserved561; - void *reserved562; - void *reserved563; - void *reserved564; - void *reserved565; - void *reserved566; - void *reserved567; - void *reserved568; - void *reserved569; - void *reserved570; - void *reserved571; - void *reserved572; - int (*tcl_PkgRequireProc) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int objc, Tcl_Obj *CONST objv[], ClientData * clientDataPtr)); /* 573 */ -} TclStubs; - -#ifdef __cplusplus -extern "C" { -#endif -extern TclStubs *tclStubsPtr; -#ifdef __cplusplus -} -#endif - -#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) - -/* - * Inline function declarations: - */ - -#ifndef Tcl_PkgProvideEx -#define Tcl_PkgProvideEx \ - (tclStubsPtr->tcl_PkgProvideEx) /* 0 */ -#endif -#ifndef Tcl_PkgRequireEx -#define Tcl_PkgRequireEx \ - (tclStubsPtr->tcl_PkgRequireEx) /* 1 */ -#endif -#ifndef Tcl_Panic -#define Tcl_Panic \ - (tclStubsPtr->tcl_Panic) /* 2 */ -#endif -#ifndef Tcl_Alloc -#define Tcl_Alloc \ - (tclStubsPtr->tcl_Alloc) /* 3 */ -#endif -#ifndef Tcl_Free -#define Tcl_Free \ - (tclStubsPtr->tcl_Free) /* 4 */ -#endif -#ifndef Tcl_Realloc -#define Tcl_Realloc \ - (tclStubsPtr->tcl_Realloc) /* 5 */ -#endif -#ifndef Tcl_DbCkalloc -#define Tcl_DbCkalloc \ - (tclStubsPtr->tcl_DbCkalloc) /* 6 */ -#endif -#ifndef Tcl_DbCkfree -#define Tcl_DbCkfree \ - (tclStubsPtr->tcl_DbCkfree) /* 7 */ -#endif -#ifndef Tcl_DbCkrealloc -#define Tcl_DbCkrealloc \ - (tclStubsPtr->tcl_DbCkrealloc) /* 8 */ -#endif -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_CreateFileHandler -#define Tcl_CreateFileHandler \ - (tclStubsPtr->tcl_CreateFileHandler) /* 9 */ -#endif -#endif /* UNIX */ -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_DeleteFileHandler -#define Tcl_DeleteFileHandler \ - (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */ -#endif -#endif /* UNIX */ -#ifndef Tcl_SetTimer -#define Tcl_SetTimer \ - (tclStubsPtr->tcl_SetTimer) /* 11 */ -#endif -#ifndef Tcl_Sleep -#define Tcl_Sleep \ - (tclStubsPtr->tcl_Sleep) /* 12 */ -#endif -#ifndef Tcl_WaitForEvent -#define Tcl_WaitForEvent \ - (tclStubsPtr->tcl_WaitForEvent) /* 13 */ -#endif -#ifndef Tcl_AppendAllObjTypes -#define Tcl_AppendAllObjTypes \ - (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */ -#endif -#ifndef Tcl_AppendStringsToObj -#define Tcl_AppendStringsToObj \ - (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */ -#endif -#ifndef Tcl_AppendToObj -#define Tcl_AppendToObj \ - (tclStubsPtr->tcl_AppendToObj) /* 16 */ -#endif -#ifndef Tcl_ConcatObj -#define Tcl_ConcatObj \ - (tclStubsPtr->tcl_ConcatObj) /* 17 */ -#endif -#ifndef Tcl_ConvertToType -#define Tcl_ConvertToType \ - (tclStubsPtr->tcl_ConvertToType) /* 18 */ -#endif -#ifndef Tcl_DbDecrRefCount -#define Tcl_DbDecrRefCount \ - (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */ -#endif -#ifndef Tcl_DbIncrRefCount -#define Tcl_DbIncrRefCount \ - (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */ -#endif -#ifndef Tcl_DbIsShared -#define Tcl_DbIsShared \ - (tclStubsPtr->tcl_DbIsShared) /* 21 */ -#endif -#ifndef Tcl_DbNewBooleanObj -#define Tcl_DbNewBooleanObj \ - (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */ -#endif -#ifndef Tcl_DbNewByteArrayObj -#define Tcl_DbNewByteArrayObj \ - (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */ -#endif -#ifndef Tcl_DbNewDoubleObj -#define Tcl_DbNewDoubleObj \ - (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */ -#endif -#ifndef Tcl_DbNewListObj -#define Tcl_DbNewListObj \ - (tclStubsPtr->tcl_DbNewListObj) /* 25 */ -#endif -#ifndef Tcl_DbNewLongObj -#define Tcl_DbNewLongObj \ - (tclStubsPtr->tcl_DbNewLongObj) /* 26 */ -#endif -#ifndef Tcl_DbNewObj -#define Tcl_DbNewObj \ - (tclStubsPtr->tcl_DbNewObj) /* 27 */ -#endif -#ifndef Tcl_DbNewStringObj -#define Tcl_DbNewStringObj \ - (tclStubsPtr->tcl_DbNewStringObj) /* 28 */ -#endif -#ifndef Tcl_DuplicateObj -#define Tcl_DuplicateObj \ - (tclStubsPtr->tcl_DuplicateObj) /* 29 */ -#endif -#ifndef TclFreeObj -#define TclFreeObj \ - (tclStubsPtr->tclFreeObj) /* 30 */ -#endif -#ifndef Tcl_GetBoolean -#define Tcl_GetBoolean \ - (tclStubsPtr->tcl_GetBoolean) /* 31 */ -#endif -#ifndef Tcl_GetBooleanFromObj -#define Tcl_GetBooleanFromObj \ - (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */ -#endif -#ifndef Tcl_GetByteArrayFromObj -#define Tcl_GetByteArrayFromObj \ - (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */ -#endif -#ifndef Tcl_GetDouble -#define Tcl_GetDouble \ - (tclStubsPtr->tcl_GetDouble) /* 34 */ -#endif -#ifndef Tcl_GetDoubleFromObj -#define Tcl_GetDoubleFromObj \ - (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */ -#endif -#ifndef Tcl_GetIndexFromObj -#define Tcl_GetIndexFromObj \ - (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */ -#endif -#ifndef Tcl_GetInt -#define Tcl_GetInt \ - (tclStubsPtr->tcl_GetInt) /* 37 */ -#endif -#ifndef Tcl_GetIntFromObj -#define Tcl_GetIntFromObj \ - (tclStubsPtr->tcl_GetIntFromObj) /* 38 */ -#endif -#ifndef Tcl_GetLongFromObj -#define Tcl_GetLongFromObj \ - (tclStubsPtr->tcl_GetLongFromObj) /* 39 */ -#endif -#ifndef Tcl_GetObjType -#define Tcl_GetObjType \ - (tclStubsPtr->tcl_GetObjType) /* 40 */ -#endif -#ifndef Tcl_GetStringFromObj -#define Tcl_GetStringFromObj \ - (tclStubsPtr->tcl_GetStringFromObj) /* 41 */ -#endif -#ifndef Tcl_InvalidateStringRep -#define Tcl_InvalidateStringRep \ - (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */ -#endif -#ifndef Tcl_ListObjAppendList -#define Tcl_ListObjAppendList \ - (tclStubsPtr->tcl_ListObjAppendList) /* 43 */ -#endif -#ifndef Tcl_ListObjAppendElement -#define Tcl_ListObjAppendElement \ - (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */ -#endif -#ifndef Tcl_ListObjGetElements -#define Tcl_ListObjGetElements \ - (tclStubsPtr->tcl_ListObjGetElements) /* 45 */ -#endif -#ifndef Tcl_ListObjIndex -#define Tcl_ListObjIndex \ - (tclStubsPtr->tcl_ListObjIndex) /* 46 */ -#endif -#ifndef Tcl_ListObjLength -#define Tcl_ListObjLength \ - (tclStubsPtr->tcl_ListObjLength) /* 47 */ -#endif -#ifndef Tcl_ListObjReplace -#define Tcl_ListObjReplace \ - (tclStubsPtr->tcl_ListObjReplace) /* 48 */ -#endif -#ifndef Tcl_NewBooleanObj -#define Tcl_NewBooleanObj \ - (tclStubsPtr->tcl_NewBooleanObj) /* 49 */ -#endif -#ifndef Tcl_NewByteArrayObj -#define Tcl_NewByteArrayObj \ - (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */ -#endif -#ifndef Tcl_NewDoubleObj -#define Tcl_NewDoubleObj \ - (tclStubsPtr->tcl_NewDoubleObj) /* 51 */ -#endif -#ifndef Tcl_NewIntObj -#define Tcl_NewIntObj \ - (tclStubsPtr->tcl_NewIntObj) /* 52 */ -#endif -#ifndef Tcl_NewListObj -#define Tcl_NewListObj \ - (tclStubsPtr->tcl_NewListObj) /* 53 */ -#endif -#ifndef Tcl_NewLongObj -#define Tcl_NewLongObj \ - (tclStubsPtr->tcl_NewLongObj) /* 54 */ -#endif -#ifndef Tcl_NewObj -#define Tcl_NewObj \ - (tclStubsPtr->tcl_NewObj) /* 55 */ -#endif -#ifndef Tcl_NewStringObj -#define Tcl_NewStringObj \ - (tclStubsPtr->tcl_NewStringObj) /* 56 */ -#endif -#ifndef Tcl_SetBooleanObj -#define Tcl_SetBooleanObj \ - (tclStubsPtr->tcl_SetBooleanObj) /* 57 */ -#endif -#ifndef Tcl_SetByteArrayLength -#define Tcl_SetByteArrayLength \ - (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */ -#endif -#ifndef Tcl_SetByteArrayObj -#define Tcl_SetByteArrayObj \ - (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */ -#endif -#ifndef Tcl_SetDoubleObj -#define Tcl_SetDoubleObj \ - (tclStubsPtr->tcl_SetDoubleObj) /* 60 */ -#endif -#ifndef Tcl_SetIntObj -#define Tcl_SetIntObj \ - (tclStubsPtr->tcl_SetIntObj) /* 61 */ -#endif -#ifndef Tcl_SetListObj -#define Tcl_SetListObj \ - (tclStubsPtr->tcl_SetListObj) /* 62 */ -#endif -#ifndef Tcl_SetLongObj -#define Tcl_SetLongObj \ - (tclStubsPtr->tcl_SetLongObj) /* 63 */ -#endif -#ifndef Tcl_SetObjLength -#define Tcl_SetObjLength \ - (tclStubsPtr->tcl_SetObjLength) /* 64 */ -#endif -#ifndef Tcl_SetStringObj -#define Tcl_SetStringObj \ - (tclStubsPtr->tcl_SetStringObj) /* 65 */ -#endif -#ifndef Tcl_AddErrorInfo -#define Tcl_AddErrorInfo \ - (tclStubsPtr->tcl_AddErrorInfo) /* 66 */ -#endif -#ifndef Tcl_AddObjErrorInfo -#define Tcl_AddObjErrorInfo \ - (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */ -#endif -#ifndef Tcl_AllowExceptions -#define Tcl_AllowExceptions \ - (tclStubsPtr->tcl_AllowExceptions) /* 68 */ -#endif -#ifndef Tcl_AppendElement -#define Tcl_AppendElement \ - (tclStubsPtr->tcl_AppendElement) /* 69 */ -#endif -#ifndef Tcl_AppendResult -#define Tcl_AppendResult \ - (tclStubsPtr->tcl_AppendResult) /* 70 */ -#endif -#ifndef Tcl_AsyncCreate -#define Tcl_AsyncCreate \ - (tclStubsPtr->tcl_AsyncCreate) /* 71 */ -#endif -#ifndef Tcl_AsyncDelete -#define Tcl_AsyncDelete \ - (tclStubsPtr->tcl_AsyncDelete) /* 72 */ -#endif -#ifndef Tcl_AsyncInvoke -#define Tcl_AsyncInvoke \ - (tclStubsPtr->tcl_AsyncInvoke) /* 73 */ -#endif -#ifndef Tcl_AsyncMark -#define Tcl_AsyncMark \ - (tclStubsPtr->tcl_AsyncMark) /* 74 */ -#endif -#ifndef Tcl_AsyncReady -#define Tcl_AsyncReady \ - (tclStubsPtr->tcl_AsyncReady) /* 75 */ -#endif -#ifndef Tcl_BackgroundError -#define Tcl_BackgroundError \ - (tclStubsPtr->tcl_BackgroundError) /* 76 */ -#endif -#ifndef Tcl_Backslash -#define Tcl_Backslash \ - (tclStubsPtr->tcl_Backslash) /* 77 */ -#endif -#ifndef Tcl_BadChannelOption -#define Tcl_BadChannelOption \ - (tclStubsPtr->tcl_BadChannelOption) /* 78 */ -#endif -#ifndef Tcl_CallWhenDeleted -#define Tcl_CallWhenDeleted \ - (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */ -#endif -#ifndef Tcl_CancelIdleCall -#define Tcl_CancelIdleCall \ - (tclStubsPtr->tcl_CancelIdleCall) /* 80 */ -#endif -#ifndef Tcl_Close -#define Tcl_Close \ - (tclStubsPtr->tcl_Close) /* 81 */ -#endif -#ifndef Tcl_CommandComplete -#define Tcl_CommandComplete \ - (tclStubsPtr->tcl_CommandComplete) /* 82 */ -#endif -#ifndef Tcl_Concat -#define Tcl_Concat \ - (tclStubsPtr->tcl_Concat) /* 83 */ -#endif -#ifndef Tcl_ConvertElement -#define Tcl_ConvertElement \ - (tclStubsPtr->tcl_ConvertElement) /* 84 */ -#endif -#ifndef Tcl_ConvertCountedElement -#define Tcl_ConvertCountedElement \ - (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */ -#endif -#ifndef Tcl_CreateAlias -#define Tcl_CreateAlias \ - (tclStubsPtr->tcl_CreateAlias) /* 86 */ -#endif -#ifndef Tcl_CreateAliasObj -#define Tcl_CreateAliasObj \ - (tclStubsPtr->tcl_CreateAliasObj) /* 87 */ -#endif -#ifndef Tcl_CreateChannel -#define Tcl_CreateChannel \ - (tclStubsPtr->tcl_CreateChannel) /* 88 */ -#endif -#ifndef Tcl_CreateChannelHandler -#define Tcl_CreateChannelHandler \ - (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */ -#endif -#ifndef Tcl_CreateCloseHandler -#define Tcl_CreateCloseHandler \ - (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */ -#endif -#ifndef Tcl_CreateCommand -#define Tcl_CreateCommand \ - (tclStubsPtr->tcl_CreateCommand) /* 91 */ -#endif -#ifndef Tcl_CreateEventSource -#define Tcl_CreateEventSource \ - (tclStubsPtr->tcl_CreateEventSource) /* 92 */ -#endif -#ifndef Tcl_CreateExitHandler -#define Tcl_CreateExitHandler \ - (tclStubsPtr->tcl_CreateExitHandler) /* 93 */ -#endif -#ifndef Tcl_CreateInterp -#define Tcl_CreateInterp \ - (tclStubsPtr->tcl_CreateInterp) /* 94 */ -#endif -#ifndef Tcl_CreateMathFunc -#define Tcl_CreateMathFunc \ - (tclStubsPtr->tcl_CreateMathFunc) /* 95 */ -#endif -#ifndef Tcl_CreateObjCommand -#define Tcl_CreateObjCommand \ - (tclStubsPtr->tcl_CreateObjCommand) /* 96 */ -#endif -#ifndef Tcl_CreateSlave -#define Tcl_CreateSlave \ - (tclStubsPtr->tcl_CreateSlave) /* 97 */ -#endif -#ifndef Tcl_CreateTimerHandler -#define Tcl_CreateTimerHandler \ - (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */ -#endif -#ifndef Tcl_CreateTrace -#define Tcl_CreateTrace \ - (tclStubsPtr->tcl_CreateTrace) /* 99 */ -#endif -#ifndef Tcl_DeleteAssocData -#define Tcl_DeleteAssocData \ - (tclStubsPtr->tcl_DeleteAssocData) /* 100 */ -#endif -#ifndef Tcl_DeleteChannelHandler -#define Tcl_DeleteChannelHandler \ - (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */ -#endif -#ifndef Tcl_DeleteCloseHandler -#define Tcl_DeleteCloseHandler \ - (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */ -#endif -#ifndef Tcl_DeleteCommand -#define Tcl_DeleteCommand \ - (tclStubsPtr->tcl_DeleteCommand) /* 103 */ -#endif -#ifndef Tcl_DeleteCommandFromToken -#define Tcl_DeleteCommandFromToken \ - (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */ -#endif -#ifndef Tcl_DeleteEvents -#define Tcl_DeleteEvents \ - (tclStubsPtr->tcl_DeleteEvents) /* 105 */ -#endif -#ifndef Tcl_DeleteEventSource -#define Tcl_DeleteEventSource \ - (tclStubsPtr->tcl_DeleteEventSource) /* 106 */ -#endif -#ifndef Tcl_DeleteExitHandler -#define Tcl_DeleteExitHandler \ - (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */ -#endif -#ifndef Tcl_DeleteHashEntry -#define Tcl_DeleteHashEntry \ - (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */ -#endif -#ifndef Tcl_DeleteHashTable -#define Tcl_DeleteHashTable \ - (tclStubsPtr->tcl_DeleteHashTable) /* 109 */ -#endif -#ifndef Tcl_DeleteInterp -#define Tcl_DeleteInterp \ - (tclStubsPtr->tcl_DeleteInterp) /* 110 */ -#endif -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_DetachPids -#define Tcl_DetachPids \ - (tclStubsPtr->tcl_DetachPids) /* 111 */ -#endif -#endif /* UNIX */ -#ifdef __WIN32__ -#ifndef Tcl_DetachPids -#define Tcl_DetachPids \ - (tclStubsPtr->tcl_DetachPids) /* 111 */ -#endif -#endif /* __WIN32__ */ -#ifndef Tcl_DeleteTimerHandler -#define Tcl_DeleteTimerHandler \ - (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */ -#endif -#ifndef Tcl_DeleteTrace -#define Tcl_DeleteTrace \ - (tclStubsPtr->tcl_DeleteTrace) /* 113 */ -#endif -#ifndef Tcl_DontCallWhenDeleted -#define Tcl_DontCallWhenDeleted \ - (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */ -#endif -#ifndef Tcl_DoOneEvent -#define Tcl_DoOneEvent \ - (tclStubsPtr->tcl_DoOneEvent) /* 115 */ -#endif -#ifndef Tcl_DoWhenIdle -#define Tcl_DoWhenIdle \ - (tclStubsPtr->tcl_DoWhenIdle) /* 116 */ -#endif -#ifndef Tcl_DStringAppend -#define Tcl_DStringAppend \ - (tclStubsPtr->tcl_DStringAppend) /* 117 */ -#endif -#ifndef Tcl_DStringAppendElement -#define Tcl_DStringAppendElement \ - (tclStubsPtr->tcl_DStringAppendElement) /* 118 */ -#endif -#ifndef Tcl_DStringEndSublist -#define Tcl_DStringEndSublist \ - (tclStubsPtr->tcl_DStringEndSublist) /* 119 */ -#endif -#ifndef Tcl_DStringFree -#define Tcl_DStringFree \ - (tclStubsPtr->tcl_DStringFree) /* 120 */ -#endif -#ifndef Tcl_DStringGetResult -#define Tcl_DStringGetResult \ - (tclStubsPtr->tcl_DStringGetResult) /* 121 */ -#endif -#ifndef Tcl_DStringInit -#define Tcl_DStringInit \ - (tclStubsPtr->tcl_DStringInit) /* 122 */ -#endif -#ifndef Tcl_DStringResult -#define Tcl_DStringResult \ - (tclStubsPtr->tcl_DStringResult) /* 123 */ -#endif -#ifndef Tcl_DStringSetLength -#define Tcl_DStringSetLength \ - (tclStubsPtr->tcl_DStringSetLength) /* 124 */ -#endif -#ifndef Tcl_DStringStartSublist -#define Tcl_DStringStartSublist \ - (tclStubsPtr->tcl_DStringStartSublist) /* 125 */ -#endif -#ifndef Tcl_Eof -#define Tcl_Eof \ - (tclStubsPtr->tcl_Eof) /* 126 */ -#endif -#ifndef Tcl_ErrnoId -#define Tcl_ErrnoId \ - (tclStubsPtr->tcl_ErrnoId) /* 127 */ -#endif -#ifndef Tcl_ErrnoMsg -#define Tcl_ErrnoMsg \ - (tclStubsPtr->tcl_ErrnoMsg) /* 128 */ -#endif -#ifndef Tcl_Eval -#define Tcl_Eval \ - (tclStubsPtr->tcl_Eval) /* 129 */ -#endif -#ifndef Tcl_EvalFile -#define Tcl_EvalFile \ - (tclStubsPtr->tcl_EvalFile) /* 130 */ -#endif -#ifndef Tcl_EvalObj -#define Tcl_EvalObj \ - (tclStubsPtr->tcl_EvalObj) /* 131 */ -#endif -#ifndef Tcl_EventuallyFree -#define Tcl_EventuallyFree \ - (tclStubsPtr->tcl_EventuallyFree) /* 132 */ -#endif -#ifndef Tcl_Exit -#define Tcl_Exit \ - (tclStubsPtr->tcl_Exit) /* 133 */ -#endif -#ifndef Tcl_ExposeCommand -#define Tcl_ExposeCommand \ - (tclStubsPtr->tcl_ExposeCommand) /* 134 */ -#endif -#ifndef Tcl_ExprBoolean -#define Tcl_ExprBoolean \ - (tclStubsPtr->tcl_ExprBoolean) /* 135 */ -#endif -#ifndef Tcl_ExprBooleanObj -#define Tcl_ExprBooleanObj \ - (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */ -#endif -#ifndef Tcl_ExprDouble -#define Tcl_ExprDouble \ - (tclStubsPtr->tcl_ExprDouble) /* 137 */ -#endif -#ifndef Tcl_ExprDoubleObj -#define Tcl_ExprDoubleObj \ - (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */ -#endif -#ifndef Tcl_ExprLong -#define Tcl_ExprLong \ - (tclStubsPtr->tcl_ExprLong) /* 139 */ -#endif -#ifndef Tcl_ExprLongObj -#define Tcl_ExprLongObj \ - (tclStubsPtr->tcl_ExprLongObj) /* 140 */ -#endif -#ifndef Tcl_ExprObj -#define Tcl_ExprObj \ - (tclStubsPtr->tcl_ExprObj) /* 141 */ -#endif -#ifndef Tcl_ExprString -#define Tcl_ExprString \ - (tclStubsPtr->tcl_ExprString) /* 142 */ -#endif -#ifndef Tcl_Finalize -#define Tcl_Finalize \ - (tclStubsPtr->tcl_Finalize) /* 143 */ -#endif -#ifndef Tcl_FindExecutable -#define Tcl_FindExecutable \ - (tclStubsPtr->tcl_FindExecutable) /* 144 */ -#endif -#ifndef Tcl_FirstHashEntry -#define Tcl_FirstHashEntry \ - (tclStubsPtr->tcl_FirstHashEntry) /* 145 */ -#endif -#ifndef Tcl_Flush -#define Tcl_Flush \ - (tclStubsPtr->tcl_Flush) /* 146 */ -#endif -#ifndef Tcl_FreeResult -#define Tcl_FreeResult \ - (tclStubsPtr->tcl_FreeResult) /* 147 */ -#endif -#ifndef Tcl_GetAlias -#define Tcl_GetAlias \ - (tclStubsPtr->tcl_GetAlias) /* 148 */ -#endif -#ifndef Tcl_GetAliasObj -#define Tcl_GetAliasObj \ - (tclStubsPtr->tcl_GetAliasObj) /* 149 */ -#endif -#ifndef Tcl_GetAssocData -#define Tcl_GetAssocData \ - (tclStubsPtr->tcl_GetAssocData) /* 150 */ -#endif -#ifndef Tcl_GetChannel -#define Tcl_GetChannel \ - (tclStubsPtr->tcl_GetChannel) /* 151 */ -#endif -#ifndef Tcl_GetChannelBufferSize -#define Tcl_GetChannelBufferSize \ - (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */ -#endif -#ifndef Tcl_GetChannelHandle -#define Tcl_GetChannelHandle \ - (tclStubsPtr->tcl_GetChannelHandle) /* 153 */ -#endif -#ifndef Tcl_GetChannelInstanceData -#define Tcl_GetChannelInstanceData \ - (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */ -#endif -#ifndef Tcl_GetChannelMode -#define Tcl_GetChannelMode \ - (tclStubsPtr->tcl_GetChannelMode) /* 155 */ -#endif -#ifndef Tcl_GetChannelName -#define Tcl_GetChannelName \ - (tclStubsPtr->tcl_GetChannelName) /* 156 */ -#endif -#ifndef Tcl_GetChannelOption -#define Tcl_GetChannelOption \ - (tclStubsPtr->tcl_GetChannelOption) /* 157 */ -#endif -#ifndef Tcl_GetChannelType -#define Tcl_GetChannelType \ - (tclStubsPtr->tcl_GetChannelType) /* 158 */ -#endif -#ifndef Tcl_GetCommandInfo -#define Tcl_GetCommandInfo \ - (tclStubsPtr->tcl_GetCommandInfo) /* 159 */ -#endif -#ifndef Tcl_GetCommandName -#define Tcl_GetCommandName \ - (tclStubsPtr->tcl_GetCommandName) /* 160 */ -#endif -#ifndef Tcl_GetErrno -#define Tcl_GetErrno \ - (tclStubsPtr->tcl_GetErrno) /* 161 */ -#endif -#ifndef Tcl_GetHostName -#define Tcl_GetHostName \ - (tclStubsPtr->tcl_GetHostName) /* 162 */ -#endif -#ifndef Tcl_GetInterpPath -#define Tcl_GetInterpPath \ - (tclStubsPtr->tcl_GetInterpPath) /* 163 */ -#endif -#ifndef Tcl_GetMaster -#define Tcl_GetMaster \ - (tclStubsPtr->tcl_GetMaster) /* 164 */ -#endif -#ifndef Tcl_GetNameOfExecutable -#define Tcl_GetNameOfExecutable \ - (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */ -#endif -#ifndef Tcl_GetObjResult -#define Tcl_GetObjResult \ - (tclStubsPtr->tcl_GetObjResult) /* 166 */ -#endif -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_GetOpenFile -#define Tcl_GetOpenFile \ - (tclStubsPtr->tcl_GetOpenFile) /* 167 */ -#endif -#endif /* UNIX */ -#ifndef Tcl_GetPathType -#define Tcl_GetPathType \ - (tclStubsPtr->tcl_GetPathType) /* 168 */ -#endif -#ifndef Tcl_Gets -#define Tcl_Gets \ - (tclStubsPtr->tcl_Gets) /* 169 */ -#endif -#ifndef Tcl_GetsObj -#define Tcl_GetsObj \ - (tclStubsPtr->tcl_GetsObj) /* 170 */ -#endif -#ifndef Tcl_GetServiceMode -#define Tcl_GetServiceMode \ - (tclStubsPtr->tcl_GetServiceMode) /* 171 */ -#endif -#ifndef Tcl_GetSlave -#define Tcl_GetSlave \ - (tclStubsPtr->tcl_GetSlave) /* 172 */ -#endif -#ifndef Tcl_GetStdChannel -#define Tcl_GetStdChannel \ - (tclStubsPtr->tcl_GetStdChannel) /* 173 */ -#endif -#ifndef Tcl_GetStringResult -#define Tcl_GetStringResult \ - (tclStubsPtr->tcl_GetStringResult) /* 174 */ -#endif -#ifndef Tcl_GetVar -#define Tcl_GetVar \ - (tclStubsPtr->tcl_GetVar) /* 175 */ -#endif -#ifndef Tcl_GetVar2 -#define Tcl_GetVar2 \ - (tclStubsPtr->tcl_GetVar2) /* 176 */ -#endif -#ifndef Tcl_GlobalEval -#define Tcl_GlobalEval \ - (tclStubsPtr->tcl_GlobalEval) /* 177 */ -#endif -#ifndef Tcl_GlobalEvalObj -#define Tcl_GlobalEvalObj \ - (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */ -#endif -#ifndef Tcl_HideCommand -#define Tcl_HideCommand \ - (tclStubsPtr->tcl_HideCommand) /* 179 */ -#endif -#ifndef Tcl_Init -#define Tcl_Init \ - (tclStubsPtr->tcl_Init) /* 180 */ -#endif -#ifndef Tcl_InitHashTable -#define Tcl_InitHashTable \ - (tclStubsPtr->tcl_InitHashTable) /* 181 */ -#endif -#ifndef Tcl_InputBlocked -#define Tcl_InputBlocked \ - (tclStubsPtr->tcl_InputBlocked) /* 182 */ -#endif -#ifndef Tcl_InputBuffered -#define Tcl_InputBuffered \ - (tclStubsPtr->tcl_InputBuffered) /* 183 */ -#endif -#ifndef Tcl_InterpDeleted -#define Tcl_InterpDeleted \ - (tclStubsPtr->tcl_InterpDeleted) /* 184 */ -#endif -#ifndef Tcl_IsSafe -#define Tcl_IsSafe \ - (tclStubsPtr->tcl_IsSafe) /* 185 */ -#endif -#ifndef Tcl_JoinPath -#define Tcl_JoinPath \ - (tclStubsPtr->tcl_JoinPath) /* 186 */ -#endif -#ifndef Tcl_LinkVar -#define Tcl_LinkVar \ - (tclStubsPtr->tcl_LinkVar) /* 187 */ -#endif -/* Slot 188 is reserved */ -#ifndef Tcl_MakeFileChannel -#define Tcl_MakeFileChannel \ - (tclStubsPtr->tcl_MakeFileChannel) /* 189 */ -#endif -#ifndef Tcl_MakeSafe -#define Tcl_MakeSafe \ - (tclStubsPtr->tcl_MakeSafe) /* 190 */ -#endif -#ifndef Tcl_MakeTcpClientChannel -#define Tcl_MakeTcpClientChannel \ - (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */ -#endif -#ifndef Tcl_Merge -#define Tcl_Merge \ - (tclStubsPtr->tcl_Merge) /* 192 */ -#endif -#ifndef Tcl_NextHashEntry -#define Tcl_NextHashEntry \ - (tclStubsPtr->tcl_NextHashEntry) /* 193 */ -#endif -#ifndef Tcl_NotifyChannel -#define Tcl_NotifyChannel \ - (tclStubsPtr->tcl_NotifyChannel) /* 194 */ -#endif -#ifndef Tcl_ObjGetVar2 -#define Tcl_ObjGetVar2 \ - (tclStubsPtr->tcl_ObjGetVar2) /* 195 */ -#endif -#ifndef Tcl_ObjSetVar2 -#define Tcl_ObjSetVar2 \ - (tclStubsPtr->tcl_ObjSetVar2) /* 196 */ -#endif -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_OpenCommandChannel -#define Tcl_OpenCommandChannel \ - (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */ -#endif -#endif /* UNIX */ -#ifdef __WIN32__ -#ifndef Tcl_OpenCommandChannel -#define Tcl_OpenCommandChannel \ - (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */ -#endif -#endif /* __WIN32__ */ -#ifndef Tcl_OpenFileChannel -#define Tcl_OpenFileChannel \ - (tclStubsPtr->tcl_OpenFileChannel) /* 198 */ -#endif -#ifndef Tcl_OpenTcpClient -#define Tcl_OpenTcpClient \ - (tclStubsPtr->tcl_OpenTcpClient) /* 199 */ -#endif -#ifndef Tcl_OpenTcpServer -#define Tcl_OpenTcpServer \ - (tclStubsPtr->tcl_OpenTcpServer) /* 200 */ -#endif -#ifndef Tcl_Preserve -#define Tcl_Preserve \ - (tclStubsPtr->tcl_Preserve) /* 201 */ -#endif -#ifndef Tcl_PrintDouble -#define Tcl_PrintDouble \ - (tclStubsPtr->tcl_PrintDouble) /* 202 */ -#endif -#ifndef Tcl_PutEnv -#define Tcl_PutEnv \ - (tclStubsPtr->tcl_PutEnv) /* 203 */ -#endif -#ifndef Tcl_PosixError -#define Tcl_PosixError \ - (tclStubsPtr->tcl_PosixError) /* 204 */ -#endif -#ifndef Tcl_QueueEvent -#define Tcl_QueueEvent \ - (tclStubsPtr->tcl_QueueEvent) /* 205 */ -#endif -#ifndef Tcl_Read -#define Tcl_Read \ - (tclStubsPtr->tcl_Read) /* 206 */ -#endif -#if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */ -#ifndef Tcl_ReapDetachedProcs -#define Tcl_ReapDetachedProcs \ - (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */ -#endif -#endif /* UNIX */ -#ifdef __WIN32__ -#ifndef Tcl_ReapDetachedProcs -#define Tcl_ReapDetachedProcs \ - (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */ -#endif -#endif /* __WIN32__ */ -#ifndef Tcl_RecordAndEval -#define Tcl_RecordAndEval \ - (tclStubsPtr->tcl_RecordAndEval) /* 208 */ -#endif -#ifndef Tcl_RecordAndEvalObj -#define Tcl_RecordAndEvalObj \ - (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */ -#endif -#ifndef Tcl_RegisterChannel -#define Tcl_RegisterChannel \ - (tclStubsPtr->tcl_RegisterChannel) /* 210 */ -#endif -#ifndef Tcl_RegisterObjType -#define Tcl_RegisterObjType \ - (tclStubsPtr->tcl_RegisterObjType) /* 211 */ -#endif -#ifndef Tcl_RegExpCompile -#define Tcl_RegExpCompile \ - (tclStubsPtr->tcl_RegExpCompile) /* 212 */ -#endif -#ifndef Tcl_RegExpExec -#define Tcl_RegExpExec \ - (tclStubsPtr->tcl_RegExpExec) /* 213 */ -#endif -#ifndef Tcl_RegExpMatch -#define Tcl_RegExpMatch \ - (tclStubsPtr->tcl_RegExpMatch) /* 214 */ -#endif -#ifndef Tcl_RegExpRange -#define Tcl_RegExpRange \ - (tclStubsPtr->tcl_RegExpRange) /* 215 */ -#endif -#ifndef Tcl_Release -#define Tcl_Release \ - (tclStubsPtr->tcl_Release) /* 216 */ -#endif -#ifndef Tcl_ResetResult -#define Tcl_ResetResult \ - (tclStubsPtr->tcl_ResetResult) /* 217 */ -#endif -#ifndef Tcl_ScanElement -#define Tcl_ScanElement \ - (tclStubsPtr->tcl_ScanElement) /* 218 */ -#endif -#ifndef Tcl_ScanCountedElement -#define Tcl_ScanCountedElement \ - (tclStubsPtr->tcl_ScanCountedElement) /* 219 */ -#endif -#ifndef Tcl_SeekOld -#define Tcl_SeekOld \ - (tclStubsPtr->tcl_SeekOld) /* 220 */ -#endif -#ifndef Tcl_ServiceAll -#define Tcl_ServiceAll \ - (tclStubsPtr->tcl_ServiceAll) /* 221 */ -#endif -#ifndef Tcl_ServiceEvent -#define Tcl_ServiceEvent \ - (tclStubsPtr->tcl_ServiceEvent) /* 222 */ -#endif -#ifndef Tcl_SetAssocData -#define Tcl_SetAssocData \ - (tclStubsPtr->tcl_SetAssocData) /* 223 */ -#endif -#ifndef Tcl_SetChannelBufferSize -#define Tcl_SetChannelBufferSize \ - (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */ -#endif -#ifndef Tcl_SetChannelOption -#define Tcl_SetChannelOption \ - (tclStubsPtr->tcl_SetChannelOption) /* 225 */ -#endif -#ifndef Tcl_SetCommandInfo -#define Tcl_SetCommandInfo \ - (tclStubsPtr->tcl_SetCommandInfo) /* 226 */ -#endif -#ifndef Tcl_SetErrno -#define Tcl_SetErrno \ - (tclStubsPtr->tcl_SetErrno) /* 227 */ -#endif -#ifndef Tcl_SetErrorCode -#define Tcl_SetErrorCode \ - (tclStubsPtr->tcl_SetErrorCode) /* 228 */ -#endif -#ifndef Tcl_SetMaxBlockTime -#define Tcl_SetMaxBlockTime \ - (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */ -#endif -#ifndef Tcl_SetPanicProc -#define Tcl_SetPanicProc \ - (tclStubsPtr->tcl_SetPanicProc) /* 230 */ -#endif -#ifndef Tcl_SetRecursionLimit -#define Tcl_SetRecursionLimit \ - (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */ -#endif -#ifndef Tcl_SetResult -#define Tcl_SetResult \ - (tclStubsPtr->tcl_SetResult) /* 232 */ -#endif -#ifndef Tcl_SetServiceMode -#define Tcl_SetServiceMode \ - (tclStubsPtr->tcl_SetServiceMode) /* 233 */ -#endif -#ifndef Tcl_SetObjErrorCode -#define Tcl_SetObjErrorCode \ - (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */ -#endif -#ifndef Tcl_SetObjResult -#define Tcl_SetObjResult \ - (tclStubsPtr->tcl_SetObjResult) /* 235 */ -#endif -#ifndef Tcl_SetStdChannel -#define Tcl_SetStdChannel \ - (tclStubsPtr->tcl_SetStdChannel) /* 236 */ -#endif -#ifndef Tcl_SetVar -#define Tcl_SetVar \ - (tclStubsPtr->tcl_SetVar) /* 237 */ -#endif -#ifndef Tcl_SetVar2 -#define Tcl_SetVar2 \ - (tclStubsPtr->tcl_SetVar2) /* 238 */ -#endif -#ifndef Tcl_SignalId -#define Tcl_SignalId \ - (tclStubsPtr->tcl_SignalId) /* 239 */ -#endif -#ifndef Tcl_SignalMsg -#define Tcl_SignalMsg \ - (tclStubsPtr->tcl_SignalMsg) /* 240 */ -#endif -#ifndef Tcl_SourceRCFile -#define Tcl_SourceRCFile \ - (tclStubsPtr->tcl_SourceRCFile) /* 241 */ -#endif -#ifndef Tcl_SplitList -#define Tcl_SplitList \ - (tclStubsPtr->tcl_SplitList) /* 242 */ -#endif -#ifndef Tcl_SplitPath -#define Tcl_SplitPath \ - (tclStubsPtr->tcl_SplitPath) /* 243 */ -#endif -#ifndef Tcl_StaticPackage -#define Tcl_StaticPackage \ - (tclStubsPtr->tcl_StaticPackage) /* 244 */ -#endif -#ifndef Tcl_StringMatch -#define Tcl_StringMatch \ - (tclStubsPtr->tcl_StringMatch) /* 245 */ -#endif -#ifndef Tcl_TellOld -#define Tcl_TellOld \ - (tclStubsPtr->tcl_TellOld) /* 246 */ -#endif -#ifndef Tcl_TraceVar -#define Tcl_TraceVar \ - (tclStubsPtr->tcl_TraceVar) /* 247 */ -#endif -#ifndef Tcl_TraceVar2 -#define Tcl_TraceVar2 \ - (tclStubsPtr->tcl_TraceVar2) /* 248 */ -#endif -#ifndef Tcl_TranslateFileName -#define Tcl_TranslateFileName \ - (tclStubsPtr->tcl_TranslateFileName) /* 249 */ -#endif -#ifndef Tcl_Ungets -#define Tcl_Ungets \ - (tclStubsPtr->tcl_Ungets) /* 250 */ -#endif -#ifndef Tcl_UnlinkVar -#define Tcl_UnlinkVar \ - (tclStubsPtr->tcl_UnlinkVar) /* 251 */ -#endif -#ifndef Tcl_UnregisterChannel -#define Tcl_UnregisterChannel \ - (tclStubsPtr->tcl_UnregisterChannel) /* 252 */ -#endif -#ifndef Tcl_UnsetVar -#define Tcl_UnsetVar \ - (tclStubsPtr->tcl_UnsetVar) /* 253 */ -#endif -#ifndef Tcl_UnsetVar2 -#define Tcl_UnsetVar2 \ - (tclStubsPtr->tcl_UnsetVar2) /* 254 */ -#endif -#ifndef Tcl_UntraceVar -#define Tcl_UntraceVar \ - (tclStubsPtr->tcl_UntraceVar) /* 255 */ -#endif -#ifndef Tcl_UntraceVar2 -#define Tcl_UntraceVar2 \ - (tclStubsPtr->tcl_UntraceVar2) /* 256 */ -#endif -#ifndef Tcl_UpdateLinkedVar -#define Tcl_UpdateLinkedVar \ - (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */ -#endif -#ifndef Tcl_UpVar -#define Tcl_UpVar \ - (tclStubsPtr->tcl_UpVar) /* 258 */ -#endif -#ifndef Tcl_UpVar2 -#define Tcl_UpVar2 \ - (tclStubsPtr->tcl_UpVar2) /* 259 */ -#endif -#ifndef Tcl_VarEval -#define Tcl_VarEval \ - (tclStubsPtr->tcl_VarEval) /* 260 */ -#endif -#ifndef Tcl_VarTraceInfo -#define Tcl_VarTraceInfo \ - (tclStubsPtr->tcl_VarTraceInfo) /* 261 */ -#endif -#ifndef Tcl_VarTraceInfo2 -#define Tcl_VarTraceInfo2 \ - (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */ -#endif -#ifndef Tcl_Write -#define Tcl_Write \ - (tclStubsPtr->tcl_Write) /* 263 */ -#endif -#ifndef Tcl_WrongNumArgs -#define Tcl_WrongNumArgs \ - (tclStubsPtr->tcl_WrongNumArgs) /* 264 */ -#endif -#ifndef Tcl_DumpActiveMemory -#define Tcl_DumpActiveMemory \ - (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */ -#endif -#ifndef Tcl_ValidateAllMemory -#define Tcl_ValidateAllMemory \ - (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */ -#endif -#ifndef Tcl_AppendResultVA -#define Tcl_AppendResultVA \ - (tclStubsPtr->tcl_AppendResultVA) /* 267 */ -#endif -#ifndef Tcl_AppendStringsToObjVA -#define Tcl_AppendStringsToObjVA \ - (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */ -#endif -#ifndef Tcl_HashStats -#define Tcl_HashStats \ - (tclStubsPtr->tcl_HashStats) /* 269 */ -#endif -#ifndef Tcl_ParseVar -#define Tcl_ParseVar \ - (tclStubsPtr->tcl_ParseVar) /* 270 */ -#endif -#ifndef Tcl_PkgPresent -#define Tcl_PkgPresent \ - (tclStubsPtr->tcl_PkgPresent) /* 271 */ -#endif -#ifndef Tcl_PkgPresentEx -#define Tcl_PkgPresentEx \ - (tclStubsPtr->tcl_PkgPresentEx) /* 272 */ -#endif -#ifndef Tcl_PkgProvide -#define Tcl_PkgProvide \ - (tclStubsPtr->tcl_PkgProvide) /* 273 */ -#endif -#ifndef Tcl_PkgRequire -#define Tcl_PkgRequire \ - (tclStubsPtr->tcl_PkgRequire) /* 274 */ -#endif -#ifndef Tcl_SetErrorCodeVA -#define Tcl_SetErrorCodeVA \ - (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */ -#endif -#ifndef Tcl_VarEvalVA -#define Tcl_VarEvalVA \ - (tclStubsPtr->tcl_VarEvalVA) /* 276 */ -#endif -#ifndef Tcl_WaitPid -#define Tcl_WaitPid \ - (tclStubsPtr->tcl_WaitPid) /* 277 */ -#endif -#ifndef Tcl_PanicVA -#define Tcl_PanicVA \ - (tclStubsPtr->tcl_PanicVA) /* 278 */ -#endif -#ifndef Tcl_GetVersion -#define Tcl_GetVersion \ - (tclStubsPtr->tcl_GetVersion) /* 279 */ -#endif -#ifndef Tcl_InitMemory -#define Tcl_InitMemory \ - (tclStubsPtr->tcl_InitMemory) /* 280 */ -#endif -#ifndef Tcl_StackChannel -#define Tcl_StackChannel \ - (tclStubsPtr->tcl_StackChannel) /* 281 */ -#endif -#ifndef Tcl_UnstackChannel -#define Tcl_UnstackChannel \ - (tclStubsPtr->tcl_UnstackChannel) /* 282 */ -#endif -#ifndef Tcl_GetStackedChannel -#define Tcl_GetStackedChannel \ - (tclStubsPtr->tcl_GetStackedChannel) /* 283 */ -#endif -#ifndef Tcl_SetMainLoop -#define Tcl_SetMainLoop \ - (tclStubsPtr->tcl_SetMainLoop) /* 284 */ -#endif -/* Slot 285 is reserved */ -#ifndef Tcl_AppendObjToObj -#define Tcl_AppendObjToObj \ - (tclStubsPtr->tcl_AppendObjToObj) /* 286 */ -#endif -#ifndef Tcl_CreateEncoding -#define Tcl_CreateEncoding \ - (tclStubsPtr->tcl_CreateEncoding) /* 287 */ -#endif -#ifndef Tcl_CreateThreadExitHandler -#define Tcl_CreateThreadExitHandler \ - (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */ -#endif -#ifndef Tcl_DeleteThreadExitHandler -#define Tcl_DeleteThreadExitHandler \ - (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */ -#endif -#ifndef Tcl_DiscardResult -#define Tcl_DiscardResult \ - (tclStubsPtr->tcl_DiscardResult) /* 290 */ -#endif -#ifndef Tcl_EvalEx -#define Tcl_EvalEx \ - (tclStubsPtr->tcl_EvalEx) /* 291 */ -#endif -#ifndef Tcl_EvalObjv -#define Tcl_EvalObjv \ - (tclStubsPtr->tcl_EvalObjv) /* 292 */ -#endif -#ifndef Tcl_EvalObjEx -#define Tcl_EvalObjEx \ - (tclStubsPtr->tcl_EvalObjEx) /* 293 */ -#endif -#ifndef Tcl_ExitThread -#define Tcl_ExitThread \ - (tclStubsPtr->tcl_ExitThread) /* 294 */ -#endif -#ifndef Tcl_ExternalToUtf -#define Tcl_ExternalToUtf \ - (tclStubsPtr->tcl_ExternalToUtf) /* 295 */ -#endif -#ifndef Tcl_ExternalToUtfDString -#define Tcl_ExternalToUtfDString \ - (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */ -#endif -#ifndef Tcl_FinalizeThread -#define Tcl_FinalizeThread \ - (tclStubsPtr->tcl_FinalizeThread) /* 297 */ -#endif -#ifndef Tcl_FinalizeNotifier -#define Tcl_FinalizeNotifier \ - (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */ -#endif -#ifndef Tcl_FreeEncoding -#define Tcl_FreeEncoding \ - (tclStubsPtr->tcl_FreeEncoding) /* 299 */ -#endif -#ifndef Tcl_GetCurrentThread -#define Tcl_GetCurrentThread \ - (tclStubsPtr->tcl_GetCurrentThread) /* 300 */ -#endif -#ifndef Tcl_GetEncoding -#define Tcl_GetEncoding \ - (tclStubsPtr->tcl_GetEncoding) /* 301 */ -#endif -#ifndef Tcl_GetEncodingName -#define Tcl_GetEncodingName \ - (tclStubsPtr->tcl_GetEncodingName) /* 302 */ -#endif -#ifndef Tcl_GetEncodingNames -#define Tcl_GetEncodingNames \ - (tclStubsPtr->tcl_GetEncodingNames) /* 303 */ -#endif -#ifndef Tcl_GetIndexFromObjStruct -#define Tcl_GetIndexFromObjStruct \ - (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */ -#endif -#ifndef Tcl_GetThreadData -#define Tcl_GetThreadData \ - (tclStubsPtr->tcl_GetThreadData) /* 305 */ -#endif -#ifndef Tcl_GetVar2Ex -#define Tcl_GetVar2Ex \ - (tclStubsPtr->tcl_GetVar2Ex) /* 306 */ -#endif -#ifndef Tcl_InitNotifier -#define Tcl_InitNotifier \ - (tclStubsPtr->tcl_InitNotifier) /* 307 */ -#endif -#ifndef Tcl_MutexLock -#define Tcl_MutexLock \ - (tclStubsPtr->tcl_MutexLock) /* 308 */ -#endif -#ifndef Tcl_MutexUnlock -#define Tcl_MutexUnlock \ - (tclStubsPtr->tcl_MutexUnlock) /* 309 */ -#endif -#ifndef Tcl_ConditionNotify -#define Tcl_ConditionNotify \ - (tclStubsPtr->tcl_ConditionNotify) /* 310 */ -#endif -#ifndef Tcl_ConditionWait -#define Tcl_ConditionWait \ - (tclStubsPtr->tcl_ConditionWait) /* 311 */ -#endif -#ifndef Tcl_NumUtfChars -#define Tcl_NumUtfChars \ - (tclStubsPtr->tcl_NumUtfChars) /* 312 */ -#endif -#ifndef Tcl_ReadChars -#define Tcl_ReadChars \ - (tclStubsPtr->tcl_ReadChars) /* 313 */ -#endif -#ifndef Tcl_RestoreResult -#define Tcl_RestoreResult \ - (tclStubsPtr->tcl_RestoreResult) /* 314 */ -#endif -#ifndef Tcl_SaveResult -#define Tcl_SaveResult \ - (tclStubsPtr->tcl_SaveResult) /* 315 */ -#endif -#ifndef Tcl_SetSystemEncoding -#define Tcl_SetSystemEncoding \ - (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */ -#endif -#ifndef Tcl_SetVar2Ex -#define Tcl_SetVar2Ex \ - (tclStubsPtr->tcl_SetVar2Ex) /* 317 */ -#endif -#ifndef Tcl_ThreadAlert -#define Tcl_ThreadAlert \ - (tclStubsPtr->tcl_ThreadAlert) /* 318 */ -#endif -#ifndef Tcl_ThreadQueueEvent -#define Tcl_ThreadQueueEvent \ - (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */ -#endif -#ifndef Tcl_UniCharAtIndex -#define Tcl_UniCharAtIndex \ - (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */ -#endif -#ifndef Tcl_UniCharToLower -#define Tcl_UniCharToLower \ - (tclStubsPtr->tcl_UniCharToLower) /* 321 */ -#endif -#ifndef Tcl_UniCharToTitle -#define Tcl_UniCharToTitle \ - (tclStubsPtr->tcl_UniCharToTitle) /* 322 */ -#endif -#ifndef Tcl_UniCharToUpper -#define Tcl_UniCharToUpper \ - (tclStubsPtr->tcl_UniCharToUpper) /* 323 */ -#endif -#ifndef Tcl_UniCharToUtf -#define Tcl_UniCharToUtf \ - (tclStubsPtr->tcl_UniCharToUtf) /* 324 */ -#endif -#ifndef Tcl_UtfAtIndex -#define Tcl_UtfAtIndex \ - (tclStubsPtr->tcl_UtfAtIndex) /* 325 */ -#endif -#ifndef Tcl_UtfCharComplete -#define Tcl_UtfCharComplete \ - (tclStubsPtr->tcl_UtfCharComplete) /* 326 */ -#endif -#ifndef Tcl_UtfBackslash -#define Tcl_UtfBackslash \ - (tclStubsPtr->tcl_UtfBackslash) /* 327 */ -#endif -#ifndef Tcl_UtfFindFirst -#define Tcl_UtfFindFirst \ - (tclStubsPtr->tcl_UtfFindFirst) /* 328 */ -#endif -#ifndef Tcl_UtfFindLast -#define Tcl_UtfFindLast \ - (tclStubsPtr->tcl_UtfFindLast) /* 329 */ -#endif -#ifndef Tcl_UtfNext -#define Tcl_UtfNext \ - (tclStubsPtr->tcl_UtfNext) /* 330 */ -#endif -#ifndef Tcl_UtfPrev -#define Tcl_UtfPrev \ - (tclStubsPtr->tcl_UtfPrev) /* 331 */ -#endif -#ifndef Tcl_UtfToExternal -#define Tcl_UtfToExternal \ - (tclStubsPtr->tcl_UtfToExternal) /* 332 */ -#endif -#ifndef Tcl_UtfToExternalDString -#define Tcl_UtfToExternalDString \ - (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */ -#endif -#ifndef Tcl_UtfToLower -#define Tcl_UtfToLower \ - (tclStubsPtr->tcl_UtfToLower) /* 334 */ -#endif -#ifndef Tcl_UtfToTitle -#define Tcl_UtfToTitle \ - (tclStubsPtr->tcl_UtfToTitle) /* 335 */ -#endif -#ifndef Tcl_UtfToUniChar -#define Tcl_UtfToUniChar \ - (tclStubsPtr->tcl_UtfToUniChar) /* 336 */ -#endif -#ifndef Tcl_UtfToUpper -#define Tcl_UtfToUpper \ - (tclStubsPtr->tcl_UtfToUpper) /* 337 */ -#endif -#ifndef Tcl_WriteChars -#define Tcl_WriteChars \ - (tclStubsPtr->tcl_WriteChars) /* 338 */ -#endif -#ifndef Tcl_WriteObj -#define Tcl_WriteObj \ - (tclStubsPtr->tcl_WriteObj) /* 339 */ -#endif -#ifndef Tcl_GetString -#define Tcl_GetString \ - (tclStubsPtr->tcl_GetString) /* 340 */ -#endif -#ifndef Tcl_GetDefaultEncodingDir -#define Tcl_GetDefaultEncodingDir \ - (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */ -#endif -#ifndef Tcl_SetDefaultEncodingDir -#define Tcl_SetDefaultEncodingDir \ - (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */ -#endif -#ifndef Tcl_AlertNotifier -#define Tcl_AlertNotifier \ - (tclStubsPtr->tcl_AlertNotifier) /* 343 */ -#endif -#ifndef Tcl_ServiceModeHook -#define Tcl_ServiceModeHook \ - (tclStubsPtr->tcl_ServiceModeHook) /* 344 */ -#endif -#ifndef Tcl_UniCharIsAlnum -#define Tcl_UniCharIsAlnum \ - (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */ -#endif -#ifndef Tcl_UniCharIsAlpha -#define Tcl_UniCharIsAlpha \ - (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */ -#endif -#ifndef Tcl_UniCharIsDigit -#define Tcl_UniCharIsDigit \ - (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */ -#endif -#ifndef Tcl_UniCharIsLower -#define Tcl_UniCharIsLower \ - (tclStubsPtr->tcl_UniCharIsLower) /* 348 */ -#endif -#ifndef Tcl_UniCharIsSpace -#define Tcl_UniCharIsSpace \ - (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */ -#endif -#ifndef Tcl_UniCharIsUpper -#define Tcl_UniCharIsUpper \ - (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */ -#endif -#ifndef Tcl_UniCharIsWordChar -#define Tcl_UniCharIsWordChar \ - (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */ -#endif -#ifndef Tcl_UniCharLen -#define Tcl_UniCharLen \ - (tclStubsPtr->tcl_UniCharLen) /* 352 */ -#endif -#ifndef Tcl_UniCharNcmp -#define Tcl_UniCharNcmp \ - (tclStubsPtr->tcl_UniCharNcmp) /* 353 */ -#endif -#ifndef Tcl_UniCharToUtfDString -#define Tcl_UniCharToUtfDString \ - (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */ -#endif -#ifndef Tcl_UtfToUniCharDString -#define Tcl_UtfToUniCharDString \ - (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */ -#endif -#ifndef Tcl_GetRegExpFromObj -#define Tcl_GetRegExpFromObj \ - (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */ -#endif -#ifndef Tcl_EvalTokens -#define Tcl_EvalTokens \ - (tclStubsPtr->tcl_EvalTokens) /* 357 */ -#endif -#ifndef Tcl_FreeParse -#define Tcl_FreeParse \ - (tclStubsPtr->tcl_FreeParse) /* 358 */ -#endif -#ifndef Tcl_LogCommandInfo -#define Tcl_LogCommandInfo \ - (tclStubsPtr->tcl_LogCommandInfo) /* 359 */ -#endif -#ifndef Tcl_ParseBraces -#define Tcl_ParseBraces \ - (tclStubsPtr->tcl_ParseBraces) /* 360 */ -#endif -#ifndef Tcl_ParseCommand -#define Tcl_ParseCommand \ - (tclStubsPtr->tcl_ParseCommand) /* 361 */ -#endif -#ifndef Tcl_ParseExpr -#define Tcl_ParseExpr \ - (tclStubsPtr->tcl_ParseExpr) /* 362 */ -#endif -#ifndef Tcl_ParseQuotedString -#define Tcl_ParseQuotedString \ - (tclStubsPtr->tcl_ParseQuotedString) /* 363 */ -#endif -#ifndef Tcl_ParseVarName -#define Tcl_ParseVarName \ - (tclStubsPtr->tcl_ParseVarName) /* 364 */ -#endif -#ifndef Tcl_GetCwd -#define Tcl_GetCwd \ - (tclStubsPtr->tcl_GetCwd) /* 365 */ -#endif -#ifndef Tcl_Chdir -#define Tcl_Chdir \ - (tclStubsPtr->tcl_Chdir) /* 366 */ -#endif -#ifndef Tcl_Access -#define Tcl_Access \ - (tclStubsPtr->tcl_Access) /* 367 */ -#endif -#ifndef Tcl_Stat -#define Tcl_Stat \ - (tclStubsPtr->tcl_Stat) /* 368 */ -#endif -#ifndef Tcl_UtfNcmp -#define Tcl_UtfNcmp \ - (tclStubsPtr->tcl_UtfNcmp) /* 369 */ -#endif -#ifndef Tcl_UtfNcasecmp -#define Tcl_UtfNcasecmp \ - (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */ -#endif -#ifndef Tcl_StringCaseMatch -#define Tcl_StringCaseMatch \ - (tclStubsPtr->tcl_StringCaseMatch) /* 371 */ -#endif -#ifndef Tcl_UniCharIsControl -#define Tcl_UniCharIsControl \ - (tclStubsPtr->tcl_UniCharIsControl) /* 372 */ -#endif -#ifndef Tcl_UniCharIsGraph -#define Tcl_UniCharIsGraph \ - (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */ -#endif -#ifndef Tcl_UniCharIsPrint -#define Tcl_UniCharIsPrint \ - (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */ -#endif -#ifndef Tcl_UniCharIsPunct -#define Tcl_UniCharIsPunct \ - (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */ -#endif -#ifndef Tcl_RegExpExecObj -#define Tcl_RegExpExecObj \ - (tclStubsPtr->tcl_RegExpExecObj) /* 376 */ -#endif -#ifndef Tcl_RegExpGetInfo -#define Tcl_RegExpGetInfo \ - (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */ -#endif -#ifndef Tcl_NewUnicodeObj -#define Tcl_NewUnicodeObj \ - (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */ -#endif -#ifndef Tcl_SetUnicodeObj -#define Tcl_SetUnicodeObj \ - (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */ -#endif -#ifndef Tcl_GetCharLength -#define Tcl_GetCharLength \ - (tclStubsPtr->tcl_GetCharLength) /* 380 */ -#endif -#ifndef Tcl_GetUniChar -#define Tcl_GetUniChar \ - (tclStubsPtr->tcl_GetUniChar) /* 381 */ -#endif -#ifndef Tcl_GetUnicode -#define Tcl_GetUnicode \ - (tclStubsPtr->tcl_GetUnicode) /* 382 */ -#endif -#ifndef Tcl_GetRange -#define Tcl_GetRange \ - (tclStubsPtr->tcl_GetRange) /* 383 */ -#endif -#ifndef Tcl_AppendUnicodeToObj -#define Tcl_AppendUnicodeToObj \ - (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */ -#endif -#ifndef Tcl_RegExpMatchObj -#define Tcl_RegExpMatchObj \ - (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */ -#endif -#ifndef Tcl_SetNotifier -#define Tcl_SetNotifier \ - (tclStubsPtr->tcl_SetNotifier) /* 386 */ -#endif -#ifndef Tcl_GetAllocMutex -#define Tcl_GetAllocMutex \ - (tclStubsPtr->tcl_GetAllocMutex) /* 387 */ -#endif -#ifndef Tcl_GetChannelNames -#define Tcl_GetChannelNames \ - (tclStubsPtr->tcl_GetChannelNames) /* 388 */ -#endif -#ifndef Tcl_GetChannelNamesEx -#define Tcl_GetChannelNamesEx \ - (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */ -#endif -#ifndef Tcl_ProcObjCmd -#define Tcl_ProcObjCmd \ - (tclStubsPtr->tcl_ProcObjCmd) /* 390 */ -#endif -#ifndef Tcl_ConditionFinalize -#define Tcl_ConditionFinalize \ - (tclStubsPtr->tcl_ConditionFinalize) /* 391 */ -#endif -#ifndef Tcl_MutexFinalize -#define Tcl_MutexFinalize \ - (tclStubsPtr->tcl_MutexFinalize) /* 392 */ -#endif -#ifndef Tcl_CreateThread -#define Tcl_CreateThread \ - (tclStubsPtr->tcl_CreateThread) /* 393 */ -#endif -#ifndef Tcl_ReadRaw -#define Tcl_ReadRaw \ - (tclStubsPtr->tcl_ReadRaw) /* 394 */ -#endif -#ifndef Tcl_WriteRaw -#define Tcl_WriteRaw \ - (tclStubsPtr->tcl_WriteRaw) /* 395 */ -#endif -#ifndef Tcl_GetTopChannel -#define Tcl_GetTopChannel \ - (tclStubsPtr->tcl_GetTopChannel) /* 396 */ -#endif -#ifndef Tcl_ChannelBuffered -#define Tcl_ChannelBuffered \ - (tclStubsPtr->tcl_ChannelBuffered) /* 397 */ -#endif -#ifndef Tcl_ChannelName -#define Tcl_ChannelName \ - (tclStubsPtr->tcl_ChannelName) /* 398 */ -#endif -#ifndef Tcl_ChannelVersion -#define Tcl_ChannelVersion \ - (tclStubsPtr->tcl_ChannelVersion) /* 399 */ -#endif -#ifndef Tcl_ChannelBlockModeProc -#define Tcl_ChannelBlockModeProc \ - (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */ -#endif -#ifndef Tcl_ChannelCloseProc -#define Tcl_ChannelCloseProc \ - (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */ -#endif -#ifndef Tcl_ChannelClose2Proc -#define Tcl_ChannelClose2Proc \ - (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */ -#endif -#ifndef Tcl_ChannelInputProc -#define Tcl_ChannelInputProc \ - (tclStubsPtr->tcl_ChannelInputProc) /* 403 */ -#endif -#ifndef Tcl_ChannelOutputProc -#define Tcl_ChannelOutputProc \ - (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */ -#endif -#ifndef Tcl_ChannelSeekProc -#define Tcl_ChannelSeekProc \ - (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */ -#endif -#ifndef Tcl_ChannelSetOptionProc -#define Tcl_ChannelSetOptionProc \ - (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */ -#endif -#ifndef Tcl_ChannelGetOptionProc -#define Tcl_ChannelGetOptionProc \ - (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */ -#endif -#ifndef Tcl_ChannelWatchProc -#define Tcl_ChannelWatchProc \ - (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */ -#endif -#ifndef Tcl_ChannelGetHandleProc -#define Tcl_ChannelGetHandleProc \ - (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */ -#endif -#ifndef Tcl_ChannelFlushProc -#define Tcl_ChannelFlushProc \ - (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */ -#endif -#ifndef Tcl_ChannelHandlerProc -#define Tcl_ChannelHandlerProc \ - (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */ -#endif -#ifndef Tcl_JoinThread -#define Tcl_JoinThread \ - (tclStubsPtr->tcl_JoinThread) /* 412 */ -#endif -#ifndef Tcl_IsChannelShared -#define Tcl_IsChannelShared \ - (tclStubsPtr->tcl_IsChannelShared) /* 413 */ -#endif -#ifndef Tcl_IsChannelRegistered -#define Tcl_IsChannelRegistered \ - (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */ -#endif -#ifndef Tcl_CutChannel -#define Tcl_CutChannel \ - (tclStubsPtr->tcl_CutChannel) /* 415 */ -#endif -#ifndef Tcl_SpliceChannel -#define Tcl_SpliceChannel \ - (tclStubsPtr->tcl_SpliceChannel) /* 416 */ -#endif -#ifndef Tcl_ClearChannelHandlers -#define Tcl_ClearChannelHandlers \ - (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */ -#endif -#ifndef Tcl_IsChannelExisting -#define Tcl_IsChannelExisting \ - (tclStubsPtr->tcl_IsChannelExisting) /* 418 */ -#endif -#ifndef Tcl_UniCharNcasecmp -#define Tcl_UniCharNcasecmp \ - (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */ -#endif -#ifndef Tcl_UniCharCaseMatch -#define Tcl_UniCharCaseMatch \ - (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */ -#endif -#ifndef Tcl_FindHashEntry -#define Tcl_FindHashEntry \ - (tclStubsPtr->tcl_FindHashEntry) /* 421 */ -#endif -#ifndef Tcl_CreateHashEntry -#define Tcl_CreateHashEntry \ - (tclStubsPtr->tcl_CreateHashEntry) /* 422 */ -#endif -#ifndef Tcl_InitCustomHashTable -#define Tcl_InitCustomHashTable \ - (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */ -#endif -#ifndef Tcl_InitObjHashTable -#define Tcl_InitObjHashTable \ - (tclStubsPtr->tcl_InitObjHashTable) /* 424 */ -#endif -#ifndef Tcl_CommandTraceInfo -#define Tcl_CommandTraceInfo \ - (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */ -#endif -#ifndef Tcl_TraceCommand -#define Tcl_TraceCommand \ - (tclStubsPtr->tcl_TraceCommand) /* 426 */ -#endif -#ifndef Tcl_UntraceCommand -#define Tcl_UntraceCommand \ - (tclStubsPtr->tcl_UntraceCommand) /* 427 */ -#endif -#ifndef Tcl_AttemptAlloc -#define Tcl_AttemptAlloc \ - (tclStubsPtr->tcl_AttemptAlloc) /* 428 */ -#endif -#ifndef Tcl_AttemptDbCkalloc -#define Tcl_AttemptDbCkalloc \ - (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */ -#endif -#ifndef Tcl_AttemptRealloc -#define Tcl_AttemptRealloc \ - (tclStubsPtr->tcl_AttemptRealloc) /* 430 */ -#endif -#ifndef Tcl_AttemptDbCkrealloc -#define Tcl_AttemptDbCkrealloc \ - (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */ -#endif -#ifndef Tcl_AttemptSetObjLength -#define Tcl_AttemptSetObjLength \ - (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */ -#endif -#ifndef Tcl_GetChannelThread -#define Tcl_GetChannelThread \ - (tclStubsPtr->tcl_GetChannelThread) /* 433 */ -#endif -#ifndef Tcl_GetUnicodeFromObj -#define Tcl_GetUnicodeFromObj \ - (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */ -#endif -#ifndef Tcl_GetMathFuncInfo -#define Tcl_GetMathFuncInfo \ - (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */ -#endif -#ifndef Tcl_ListMathFuncs -#define Tcl_ListMathFuncs \ - (tclStubsPtr->tcl_ListMathFuncs) /* 436 */ -#endif -#ifndef Tcl_SubstObj -#define Tcl_SubstObj \ - (tclStubsPtr->tcl_SubstObj) /* 437 */ -#endif -#ifndef Tcl_DetachChannel -#define Tcl_DetachChannel \ - (tclStubsPtr->tcl_DetachChannel) /* 438 */ -#endif -#ifndef Tcl_IsStandardChannel -#define Tcl_IsStandardChannel \ - (tclStubsPtr->tcl_IsStandardChannel) /* 439 */ -#endif -#ifndef Tcl_FSCopyFile -#define Tcl_FSCopyFile \ - (tclStubsPtr->tcl_FSCopyFile) /* 440 */ -#endif -#ifndef Tcl_FSCopyDirectory -#define Tcl_FSCopyDirectory \ - (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */ -#endif -#ifndef Tcl_FSCreateDirectory -#define Tcl_FSCreateDirectory \ - (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */ -#endif -#ifndef Tcl_FSDeleteFile -#define Tcl_FSDeleteFile \ - (tclStubsPtr->tcl_FSDeleteFile) /* 443 */ -#endif -#ifndef Tcl_FSLoadFile -#define Tcl_FSLoadFile \ - (tclStubsPtr->tcl_FSLoadFile) /* 444 */ -#endif -#ifndef Tcl_FSMatchInDirectory -#define Tcl_FSMatchInDirectory \ - (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */ -#endif -#ifndef Tcl_FSLink -#define Tcl_FSLink \ - (tclStubsPtr->tcl_FSLink) /* 446 */ -#endif -#ifndef Tcl_FSRemoveDirectory -#define Tcl_FSRemoveDirectory \ - (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */ -#endif -#ifndef Tcl_FSRenameFile -#define Tcl_FSRenameFile \ - (tclStubsPtr->tcl_FSRenameFile) /* 448 */ -#endif -#ifndef Tcl_FSLstat -#define Tcl_FSLstat \ - (tclStubsPtr->tcl_FSLstat) /* 449 */ -#endif -#ifndef Tcl_FSUtime -#define Tcl_FSUtime \ - (tclStubsPtr->tcl_FSUtime) /* 450 */ -#endif -#ifndef Tcl_FSFileAttrsGet -#define Tcl_FSFileAttrsGet \ - (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */ -#endif -#ifndef Tcl_FSFileAttrsSet -#define Tcl_FSFileAttrsSet \ - (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */ -#endif -#ifndef Tcl_FSFileAttrStrings -#define Tcl_FSFileAttrStrings \ - (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */ -#endif -#ifndef Tcl_FSStat -#define Tcl_FSStat \ - (tclStubsPtr->tcl_FSStat) /* 454 */ -#endif -#ifndef Tcl_FSAccess -#define Tcl_FSAccess \ - (tclStubsPtr->tcl_FSAccess) /* 455 */ -#endif -#ifndef Tcl_FSOpenFileChannel -#define Tcl_FSOpenFileChannel \ - (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */ -#endif -#ifndef Tcl_FSGetCwd -#define Tcl_FSGetCwd \ - (tclStubsPtr->tcl_FSGetCwd) /* 457 */ -#endif -#ifndef Tcl_FSChdir -#define Tcl_FSChdir \ - (tclStubsPtr->tcl_FSChdir) /* 458 */ -#endif -#ifndef Tcl_FSConvertToPathType -#define Tcl_FSConvertToPathType \ - (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */ -#endif -#ifndef Tcl_FSJoinPath -#define Tcl_FSJoinPath \ - (tclStubsPtr->tcl_FSJoinPath) /* 460 */ -#endif -#ifndef Tcl_FSSplitPath -#define Tcl_FSSplitPath \ - (tclStubsPtr->tcl_FSSplitPath) /* 461 */ -#endif -#ifndef Tcl_FSEqualPaths -#define Tcl_FSEqualPaths \ - (tclStubsPtr->tcl_FSEqualPaths) /* 462 */ -#endif -#ifndef Tcl_FSGetNormalizedPath -#define Tcl_FSGetNormalizedPath \ - (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */ -#endif -#ifndef Tcl_FSJoinToPath -#define Tcl_FSJoinToPath \ - (tclStubsPtr->tcl_FSJoinToPath) /* 464 */ -#endif -#ifndef Tcl_FSGetInternalRep -#define Tcl_FSGetInternalRep \ - (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */ -#endif -#ifndef Tcl_FSGetTranslatedPath -#define Tcl_FSGetTranslatedPath \ - (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */ -#endif -#ifndef Tcl_FSEvalFile -#define Tcl_FSEvalFile \ - (tclStubsPtr->tcl_FSEvalFile) /* 467 */ -#endif -#ifndef Tcl_FSNewNativePath -#define Tcl_FSNewNativePath \ - (tclStubsPtr->tcl_FSNewNativePath) /* 468 */ -#endif -#ifndef Tcl_FSGetNativePath -#define Tcl_FSGetNativePath \ - (tclStubsPtr->tcl_FSGetNativePath) /* 469 */ -#endif -#ifndef Tcl_FSFileSystemInfo -#define Tcl_FSFileSystemInfo \ - (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */ -#endif -#ifndef Tcl_FSPathSeparator -#define Tcl_FSPathSeparator \ - (tclStubsPtr->tcl_FSPathSeparator) /* 471 */ -#endif -#ifndef Tcl_FSListVolumes -#define Tcl_FSListVolumes \ - (tclStubsPtr->tcl_FSListVolumes) /* 472 */ -#endif -#ifndef Tcl_FSRegister -#define Tcl_FSRegister \ - (tclStubsPtr->tcl_FSRegister) /* 473 */ -#endif -#ifndef Tcl_FSUnregister -#define Tcl_FSUnregister \ - (tclStubsPtr->tcl_FSUnregister) /* 474 */ -#endif -#ifndef Tcl_FSData -#define Tcl_FSData \ - (tclStubsPtr->tcl_FSData) /* 475 */ -#endif -#ifndef Tcl_FSGetTranslatedStringPath -#define Tcl_FSGetTranslatedStringPath \ - (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */ -#endif -#ifndef Tcl_FSGetFileSystemForPath -#define Tcl_FSGetFileSystemForPath \ - (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */ -#endif -#ifndef Tcl_FSGetPathType -#define Tcl_FSGetPathType \ - (tclStubsPtr->tcl_FSGetPathType) /* 478 */ -#endif -#ifndef Tcl_OutputBuffered -#define Tcl_OutputBuffered \ - (tclStubsPtr->tcl_OutputBuffered) /* 479 */ -#endif -#ifndef Tcl_FSMountsChanged -#define Tcl_FSMountsChanged \ - (tclStubsPtr->tcl_FSMountsChanged) /* 480 */ -#endif -#ifndef Tcl_EvalTokensStandard -#define Tcl_EvalTokensStandard \ - (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */ -#endif -#ifndef Tcl_GetTime -#define Tcl_GetTime \ - (tclStubsPtr->tcl_GetTime) /* 482 */ -#endif -#ifndef Tcl_CreateObjTrace -#define Tcl_CreateObjTrace \ - (tclStubsPtr->tcl_CreateObjTrace) /* 483 */ -#endif -#ifndef Tcl_GetCommandInfoFromToken -#define Tcl_GetCommandInfoFromToken \ - (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */ -#endif -#ifndef Tcl_SetCommandInfoFromToken -#define Tcl_SetCommandInfoFromToken \ - (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */ -#endif -#ifndef Tcl_DbNewWideIntObj -#define Tcl_DbNewWideIntObj \ - (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */ -#endif -#ifndef Tcl_GetWideIntFromObj -#define Tcl_GetWideIntFromObj \ - (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */ -#endif -#ifndef Tcl_NewWideIntObj -#define Tcl_NewWideIntObj \ - (tclStubsPtr->tcl_NewWideIntObj) /* 488 */ -#endif -#ifndef Tcl_SetWideIntObj -#define Tcl_SetWideIntObj \ - (tclStubsPtr->tcl_SetWideIntObj) /* 489 */ -#endif -#ifndef Tcl_AllocStatBuf -#define Tcl_AllocStatBuf \ - (tclStubsPtr->tcl_AllocStatBuf) /* 490 */ -#endif -#ifndef Tcl_Seek -#define Tcl_Seek \ - (tclStubsPtr->tcl_Seek) /* 491 */ -#endif -#ifndef Tcl_Tell -#define Tcl_Tell \ - (tclStubsPtr->tcl_Tell) /* 492 */ -#endif -#ifndef Tcl_ChannelWideSeekProc -#define Tcl_ChannelWideSeekProc \ - (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */ -#endif -/* Slot 494 is reserved */ -/* Slot 495 is reserved */ -/* Slot 496 is reserved */ -/* Slot 497 is reserved */ -/* Slot 498 is reserved */ -/* Slot 499 is reserved */ -/* Slot 500 is reserved */ -/* Slot 501 is reserved */ -/* Slot 502 is reserved */ -/* Slot 503 is reserved */ -/* Slot 504 is reserved */ -/* Slot 505 is reserved */ -/* Slot 506 is reserved */ -/* Slot 507 is reserved */ -/* Slot 508 is reserved */ -/* Slot 509 is reserved */ -/* Slot 510 is reserved */ -/* Slot 511 is reserved */ -/* Slot 512 is reserved */ -/* Slot 513 is reserved */ -/* Slot 514 is reserved */ -/* Slot 515 is reserved */ -/* Slot 516 is reserved */ -/* Slot 517 is reserved */ -/* Slot 518 is reserved */ -/* Slot 519 is reserved */ -/* Slot 520 is reserved */ -/* Slot 521 is reserved */ -/* Slot 522 is reserved */ -/* Slot 523 is reserved */ -/* Slot 524 is reserved */ -/* Slot 525 is reserved */ -/* Slot 526 is reserved */ -/* Slot 527 is reserved */ -/* Slot 528 is reserved */ -/* Slot 529 is reserved */ -/* Slot 530 is reserved */ -/* Slot 531 is reserved */ -/* Slot 532 is reserved */ -/* Slot 533 is reserved */ -/* Slot 534 is reserved */ -/* Slot 535 is reserved */ -/* Slot 536 is reserved */ -/* Slot 537 is reserved */ -/* Slot 538 is reserved */ -/* Slot 539 is reserved */ -/* Slot 540 is reserved */ -/* Slot 541 is reserved */ -/* Slot 542 is reserved */ -/* Slot 543 is reserved */ -/* Slot 544 is reserved */ -/* Slot 545 is reserved */ -/* Slot 546 is reserved */ -/* Slot 547 is reserved */ -/* Slot 548 is reserved */ -/* Slot 549 is reserved */ -/* Slot 550 is reserved */ -/* Slot 551 is reserved */ -/* Slot 552 is reserved */ -/* Slot 553 is reserved */ -#ifndef Tcl_ChannelThreadActionProc -#define Tcl_ChannelThreadActionProc \ - (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */ -#endif -/* Slot 555 is reserved */ -/* Slot 556 is reserved */ -/* Slot 557 is reserved */ -/* Slot 558 is reserved */ -/* Slot 559 is reserved */ -/* Slot 560 is reserved */ -/* Slot 561 is reserved */ -/* Slot 562 is reserved */ -/* Slot 563 is reserved */ -/* Slot 564 is reserved */ -/* Slot 565 is reserved */ -/* Slot 566 is reserved */ -/* Slot 567 is reserved */ -/* Slot 568 is reserved */ -/* Slot 569 is reserved */ -/* Slot 570 is reserved */ -/* Slot 571 is reserved */ -/* Slot 572 is reserved */ -#ifndef Tcl_PkgRequireProc -#define Tcl_PkgRequireProc \ - (tclStubsPtr->tcl_PkgRequireProc) /* 573 */ -#endif - -#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ - -/* !END!: Do not edit above this line. */ - -#endif /* _TCLDECLS */ - +/* + * tclDecls.h -- + * + * Declarations of functions in the platform independent public Tcl API. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tclDecls.h,v 1.128 2007/02/23 23:02:53 nijtmans Exp $ + */ + +#ifndef _TCLDECLS +#define _TCLDECLS + +#undef TCL_STORAGE_CLASS +#ifdef BUILD_tcl +# define TCL_STORAGE_CLASS DLLEXPORT +#else +# ifdef USE_TCL_STUBS +# define TCL_STORAGE_CLASS +# else +# define TCL_STORAGE_CLASS DLLIMPORT +# endif +#endif + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the generic/tcl.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifndef Tcl_PkgProvideEx_TCL_DECLARED +#define Tcl_PkgProvideEx_TCL_DECLARED +/* 0 */ +EXTERN int Tcl_PkgProvideEx (Tcl_Interp* interp, + CONST char* name, CONST char* version, + ClientData clientData); +#endif +#ifndef Tcl_PkgRequireEx_TCL_DECLARED +#define Tcl_PkgRequireEx_TCL_DECLARED +/* 1 */ +EXTERN CONST84_RETURN char * Tcl_PkgRequireEx (Tcl_Interp * interp, + CONST char * name, CONST char * version, + int exact, ClientData * clientDataPtr); +#endif +#ifndef Tcl_Panic_TCL_DECLARED +#define Tcl_Panic_TCL_DECLARED +/* 2 */ +EXTERN void Tcl_Panic (CONST char * format, ...); +#endif +#ifndef Tcl_Alloc_TCL_DECLARED +#define Tcl_Alloc_TCL_DECLARED +/* 3 */ +EXTERN char * Tcl_Alloc (unsigned int size); +#endif +#ifndef Tcl_Free_TCL_DECLARED +#define Tcl_Free_TCL_DECLARED +/* 4 */ +EXTERN void Tcl_Free (char * ptr); +#endif +#ifndef Tcl_Realloc_TCL_DECLARED +#define Tcl_Realloc_TCL_DECLARED +/* 5 */ +EXTERN char * Tcl_Realloc (char * ptr, unsigned int size); +#endif +#ifndef Tcl_DbCkalloc_TCL_DECLARED +#define Tcl_DbCkalloc_TCL_DECLARED +/* 6 */ +EXTERN char * Tcl_DbCkalloc (unsigned int size, CONST char * file, + int line); +#endif +#ifndef Tcl_DbCkfree_TCL_DECLARED +#define Tcl_DbCkfree_TCL_DECLARED +/* 7 */ +EXTERN int Tcl_DbCkfree (char * ptr, CONST char * file, + int line); +#endif +#ifndef Tcl_DbCkrealloc_TCL_DECLARED +#define Tcl_DbCkrealloc_TCL_DECLARED +/* 8 */ +EXTERN char * Tcl_DbCkrealloc (char * ptr, unsigned int size, + CONST char * file, int line); +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_CreateFileHandler_TCL_DECLARED +#define Tcl_CreateFileHandler_TCL_DECLARED +/* 9 */ +EXTERN void Tcl_CreateFileHandler (int fd, int mask, + Tcl_FileProc * proc, ClientData clientData); +#endif +#endif /* UNIX */ +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_DeleteFileHandler_TCL_DECLARED +#define Tcl_DeleteFileHandler_TCL_DECLARED +/* 10 */ +EXTERN void Tcl_DeleteFileHandler (int fd); +#endif +#endif /* UNIX */ +#ifndef Tcl_SetTimer_TCL_DECLARED +#define Tcl_SetTimer_TCL_DECLARED +/* 11 */ +EXTERN void Tcl_SetTimer (Tcl_Time * timePtr); +#endif +#ifndef Tcl_Sleep_TCL_DECLARED +#define Tcl_Sleep_TCL_DECLARED +/* 12 */ +EXTERN void Tcl_Sleep (int ms); +#endif +#ifndef Tcl_WaitForEvent_TCL_DECLARED +#define Tcl_WaitForEvent_TCL_DECLARED +/* 13 */ +EXTERN int Tcl_WaitForEvent (Tcl_Time * timePtr); +#endif +#ifndef Tcl_AppendAllObjTypes_TCL_DECLARED +#define Tcl_AppendAllObjTypes_TCL_DECLARED +/* 14 */ +EXTERN int Tcl_AppendAllObjTypes (Tcl_Interp * interp, + Tcl_Obj * objPtr); +#endif +#ifndef Tcl_AppendStringsToObj_TCL_DECLARED +#define Tcl_AppendStringsToObj_TCL_DECLARED +/* 15 */ +EXTERN void Tcl_AppendStringsToObj (Tcl_Obj * objPtr, ...); +#endif +#ifndef Tcl_AppendToObj_TCL_DECLARED +#define Tcl_AppendToObj_TCL_DECLARED +/* 16 */ +EXTERN void Tcl_AppendToObj (Tcl_Obj* objPtr, CONST char* bytes, + int length); +#endif +#ifndef Tcl_ConcatObj_TCL_DECLARED +#define Tcl_ConcatObj_TCL_DECLARED +/* 17 */ +EXTERN Tcl_Obj * Tcl_ConcatObj (int objc, Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_ConvertToType_TCL_DECLARED +#define Tcl_ConvertToType_TCL_DECLARED +/* 18 */ +EXTERN int Tcl_ConvertToType (Tcl_Interp * interp, + Tcl_Obj * objPtr, Tcl_ObjType * typePtr); +#endif +#ifndef Tcl_DbDecrRefCount_TCL_DECLARED +#define Tcl_DbDecrRefCount_TCL_DECLARED +/* 19 */ +EXTERN void Tcl_DbDecrRefCount (Tcl_Obj * objPtr, + CONST char * file, int line); +#endif +#ifndef Tcl_DbIncrRefCount_TCL_DECLARED +#define Tcl_DbIncrRefCount_TCL_DECLARED +/* 20 */ +EXTERN void Tcl_DbIncrRefCount (Tcl_Obj * objPtr, + CONST char * file, int line); +#endif +#ifndef Tcl_DbIsShared_TCL_DECLARED +#define Tcl_DbIsShared_TCL_DECLARED +/* 21 */ +EXTERN int Tcl_DbIsShared (Tcl_Obj * objPtr, CONST char * file, + int line); +#endif +#ifndef Tcl_DbNewBooleanObj_TCL_DECLARED +#define Tcl_DbNewBooleanObj_TCL_DECLARED +/* 22 */ +EXTERN Tcl_Obj * Tcl_DbNewBooleanObj (int boolValue, + CONST char * file, int line); +#endif +#ifndef Tcl_DbNewByteArrayObj_TCL_DECLARED +#define Tcl_DbNewByteArrayObj_TCL_DECLARED +/* 23 */ +EXTERN Tcl_Obj * Tcl_DbNewByteArrayObj (CONST unsigned char * bytes, + int length, CONST char * file, int line); +#endif +#ifndef Tcl_DbNewDoubleObj_TCL_DECLARED +#define Tcl_DbNewDoubleObj_TCL_DECLARED +/* 24 */ +EXTERN Tcl_Obj * Tcl_DbNewDoubleObj (double doubleValue, + CONST char * file, int line); +#endif +#ifndef Tcl_DbNewListObj_TCL_DECLARED +#define Tcl_DbNewListObj_TCL_DECLARED +/* 25 */ +EXTERN Tcl_Obj * Tcl_DbNewListObj (int objc, Tcl_Obj *CONST * objv, + CONST char * file, int line); +#endif +#ifndef Tcl_DbNewLongObj_TCL_DECLARED +#define Tcl_DbNewLongObj_TCL_DECLARED +/* 26 */ +EXTERN Tcl_Obj * Tcl_DbNewLongObj (long longValue, CONST char * file, + int line); +#endif +#ifndef Tcl_DbNewObj_TCL_DECLARED +#define Tcl_DbNewObj_TCL_DECLARED +/* 27 */ +EXTERN Tcl_Obj * Tcl_DbNewObj (CONST char * file, int line); +#endif +#ifndef Tcl_DbNewStringObj_TCL_DECLARED +#define Tcl_DbNewStringObj_TCL_DECLARED +/* 28 */ +EXTERN Tcl_Obj * Tcl_DbNewStringObj (CONST char * bytes, int length, + CONST char * file, int line); +#endif +#ifndef Tcl_DuplicateObj_TCL_DECLARED +#define Tcl_DuplicateObj_TCL_DECLARED +/* 29 */ +EXTERN Tcl_Obj * Tcl_DuplicateObj (Tcl_Obj * objPtr); +#endif +#ifndef TclFreeObj_TCL_DECLARED +#define TclFreeObj_TCL_DECLARED +/* 30 */ +EXTERN void TclFreeObj (Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetBoolean_TCL_DECLARED +#define Tcl_GetBoolean_TCL_DECLARED +/* 31 */ +EXTERN int Tcl_GetBoolean (Tcl_Interp * interp, + CONST char * src, int * boolPtr); +#endif +#ifndef Tcl_GetBooleanFromObj_TCL_DECLARED +#define Tcl_GetBooleanFromObj_TCL_DECLARED +/* 32 */ +EXTERN int Tcl_GetBooleanFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, int * boolPtr); +#endif +#ifndef Tcl_GetByteArrayFromObj_TCL_DECLARED +#define Tcl_GetByteArrayFromObj_TCL_DECLARED +/* 33 */ +EXTERN unsigned char * Tcl_GetByteArrayFromObj (Tcl_Obj * objPtr, + int * lengthPtr); +#endif +#ifndef Tcl_GetDouble_TCL_DECLARED +#define Tcl_GetDouble_TCL_DECLARED +/* 34 */ +EXTERN int Tcl_GetDouble (Tcl_Interp * interp, CONST char * src, + double * doublePtr); +#endif +#ifndef Tcl_GetDoubleFromObj_TCL_DECLARED +#define Tcl_GetDoubleFromObj_TCL_DECLARED +/* 35 */ +EXTERN int Tcl_GetDoubleFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, double * doublePtr); +#endif +#ifndef Tcl_GetIndexFromObj_TCL_DECLARED +#define Tcl_GetIndexFromObj_TCL_DECLARED +/* 36 */ +EXTERN int Tcl_GetIndexFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, CONST84 char ** tablePtr, + CONST char * msg, int flags, int * indexPtr); +#endif +#ifndef Tcl_GetInt_TCL_DECLARED +#define Tcl_GetInt_TCL_DECLARED +/* 37 */ +EXTERN int Tcl_GetInt (Tcl_Interp * interp, CONST char * src, + int * intPtr); +#endif +#ifndef Tcl_GetIntFromObj_TCL_DECLARED +#define Tcl_GetIntFromObj_TCL_DECLARED +/* 38 */ +EXTERN int Tcl_GetIntFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, int * intPtr); +#endif +#ifndef Tcl_GetLongFromObj_TCL_DECLARED +#define Tcl_GetLongFromObj_TCL_DECLARED +/* 39 */ +EXTERN int Tcl_GetLongFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, long * longPtr); +#endif +#ifndef Tcl_GetObjType_TCL_DECLARED +#define Tcl_GetObjType_TCL_DECLARED +/* 40 */ +EXTERN Tcl_ObjType * Tcl_GetObjType (CONST char * typeName); +#endif +#ifndef Tcl_GetStringFromObj_TCL_DECLARED +#define Tcl_GetStringFromObj_TCL_DECLARED +/* 41 */ +EXTERN char * Tcl_GetStringFromObj (Tcl_Obj * objPtr, + int * lengthPtr); +#endif +#ifndef Tcl_InvalidateStringRep_TCL_DECLARED +#define Tcl_InvalidateStringRep_TCL_DECLARED +/* 42 */ +EXTERN void Tcl_InvalidateStringRep (Tcl_Obj * objPtr); +#endif +#ifndef Tcl_ListObjAppendList_TCL_DECLARED +#define Tcl_ListObjAppendList_TCL_DECLARED +/* 43 */ +EXTERN int Tcl_ListObjAppendList (Tcl_Interp * interp, + Tcl_Obj * listPtr, Tcl_Obj * elemListPtr); +#endif +#ifndef Tcl_ListObjAppendElement_TCL_DECLARED +#define Tcl_ListObjAppendElement_TCL_DECLARED +/* 44 */ +EXTERN int Tcl_ListObjAppendElement (Tcl_Interp * interp, + Tcl_Obj * listPtr, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_ListObjGetElements_TCL_DECLARED +#define Tcl_ListObjGetElements_TCL_DECLARED +/* 45 */ +EXTERN int Tcl_ListObjGetElements (Tcl_Interp * interp, + Tcl_Obj * listPtr, int * objcPtr, + Tcl_Obj *** objvPtr); +#endif +#ifndef Tcl_ListObjIndex_TCL_DECLARED +#define Tcl_ListObjIndex_TCL_DECLARED +/* 46 */ +EXTERN int Tcl_ListObjIndex (Tcl_Interp * interp, + Tcl_Obj * listPtr, int index, + Tcl_Obj ** objPtrPtr); +#endif +#ifndef Tcl_ListObjLength_TCL_DECLARED +#define Tcl_ListObjLength_TCL_DECLARED +/* 47 */ +EXTERN int Tcl_ListObjLength (Tcl_Interp * interp, + Tcl_Obj * listPtr, int * lengthPtr); +#endif +#ifndef Tcl_ListObjReplace_TCL_DECLARED +#define Tcl_ListObjReplace_TCL_DECLARED +/* 48 */ +EXTERN int Tcl_ListObjReplace (Tcl_Interp * interp, + Tcl_Obj * listPtr, int first, int count, + int objc, Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_NewBooleanObj_TCL_DECLARED +#define Tcl_NewBooleanObj_TCL_DECLARED +/* 49 */ +EXTERN Tcl_Obj * Tcl_NewBooleanObj (int boolValue); +#endif +#ifndef Tcl_NewByteArrayObj_TCL_DECLARED +#define Tcl_NewByteArrayObj_TCL_DECLARED +/* 50 */ +EXTERN Tcl_Obj * Tcl_NewByteArrayObj (CONST unsigned char* bytes, + int length); +#endif +#ifndef Tcl_NewDoubleObj_TCL_DECLARED +#define Tcl_NewDoubleObj_TCL_DECLARED +/* 51 */ +EXTERN Tcl_Obj * Tcl_NewDoubleObj (double doubleValue); +#endif +#ifndef Tcl_NewIntObj_TCL_DECLARED +#define Tcl_NewIntObj_TCL_DECLARED +/* 52 */ +EXTERN Tcl_Obj * Tcl_NewIntObj (int intValue); +#endif +#ifndef Tcl_NewListObj_TCL_DECLARED +#define Tcl_NewListObj_TCL_DECLARED +/* 53 */ +EXTERN Tcl_Obj * Tcl_NewListObj (int objc, Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_NewLongObj_TCL_DECLARED +#define Tcl_NewLongObj_TCL_DECLARED +/* 54 */ +EXTERN Tcl_Obj * Tcl_NewLongObj (long longValue); +#endif +#ifndef Tcl_NewObj_TCL_DECLARED +#define Tcl_NewObj_TCL_DECLARED +/* 55 */ +EXTERN Tcl_Obj * Tcl_NewObj (void); +#endif +#ifndef Tcl_NewStringObj_TCL_DECLARED +#define Tcl_NewStringObj_TCL_DECLARED +/* 56 */ +EXTERN Tcl_Obj * Tcl_NewStringObj (CONST char * bytes, int length); +#endif +#ifndef Tcl_SetBooleanObj_TCL_DECLARED +#define Tcl_SetBooleanObj_TCL_DECLARED +/* 57 */ +EXTERN void Tcl_SetBooleanObj (Tcl_Obj * objPtr, int boolValue); +#endif +#ifndef Tcl_SetByteArrayLength_TCL_DECLARED +#define Tcl_SetByteArrayLength_TCL_DECLARED +/* 58 */ +EXTERN unsigned char * Tcl_SetByteArrayLength (Tcl_Obj * objPtr, int length); +#endif +#ifndef Tcl_SetByteArrayObj_TCL_DECLARED +#define Tcl_SetByteArrayObj_TCL_DECLARED +/* 59 */ +EXTERN void Tcl_SetByteArrayObj (Tcl_Obj * objPtr, + CONST unsigned char * bytes, int length); +#endif +#ifndef Tcl_SetDoubleObj_TCL_DECLARED +#define Tcl_SetDoubleObj_TCL_DECLARED +/* 60 */ +EXTERN void Tcl_SetDoubleObj (Tcl_Obj * objPtr, + double doubleValue); +#endif +#ifndef Tcl_SetIntObj_TCL_DECLARED +#define Tcl_SetIntObj_TCL_DECLARED +/* 61 */ +EXTERN void Tcl_SetIntObj (Tcl_Obj * objPtr, int intValue); +#endif +#ifndef Tcl_SetListObj_TCL_DECLARED +#define Tcl_SetListObj_TCL_DECLARED +/* 62 */ +EXTERN void Tcl_SetListObj (Tcl_Obj * objPtr, int objc, + Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_SetLongObj_TCL_DECLARED +#define Tcl_SetLongObj_TCL_DECLARED +/* 63 */ +EXTERN void Tcl_SetLongObj (Tcl_Obj * objPtr, long longValue); +#endif +#ifndef Tcl_SetObjLength_TCL_DECLARED +#define Tcl_SetObjLength_TCL_DECLARED +/* 64 */ +EXTERN void Tcl_SetObjLength (Tcl_Obj * objPtr, int length); +#endif +#ifndef Tcl_SetStringObj_TCL_DECLARED +#define Tcl_SetStringObj_TCL_DECLARED +/* 65 */ +EXTERN void Tcl_SetStringObj (Tcl_Obj* objPtr, CONST char* bytes, + int length); +#endif +#ifndef Tcl_AddErrorInfo_TCL_DECLARED +#define Tcl_AddErrorInfo_TCL_DECLARED +/* 66 */ +EXTERN void Tcl_AddErrorInfo (Tcl_Interp * interp, + CONST char * message); +#endif +#ifndef Tcl_AddObjErrorInfo_TCL_DECLARED +#define Tcl_AddObjErrorInfo_TCL_DECLARED +/* 67 */ +EXTERN void Tcl_AddObjErrorInfo (Tcl_Interp * interp, + CONST char * message, int length); +#endif +#ifndef Tcl_AllowExceptions_TCL_DECLARED +#define Tcl_AllowExceptions_TCL_DECLARED +/* 68 */ +EXTERN void Tcl_AllowExceptions (Tcl_Interp * interp); +#endif +#ifndef Tcl_AppendElement_TCL_DECLARED +#define Tcl_AppendElement_TCL_DECLARED +/* 69 */ +EXTERN void Tcl_AppendElement (Tcl_Interp * interp, + CONST char * element); +#endif +#ifndef Tcl_AppendResult_TCL_DECLARED +#define Tcl_AppendResult_TCL_DECLARED +/* 70 */ +EXTERN void Tcl_AppendResult (Tcl_Interp * interp, ...); +#endif +#ifndef Tcl_AsyncCreate_TCL_DECLARED +#define Tcl_AsyncCreate_TCL_DECLARED +/* 71 */ +EXTERN Tcl_AsyncHandler Tcl_AsyncCreate (Tcl_AsyncProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_AsyncDelete_TCL_DECLARED +#define Tcl_AsyncDelete_TCL_DECLARED +/* 72 */ +EXTERN void Tcl_AsyncDelete (Tcl_AsyncHandler async); +#endif +#ifndef Tcl_AsyncInvoke_TCL_DECLARED +#define Tcl_AsyncInvoke_TCL_DECLARED +/* 73 */ +EXTERN int Tcl_AsyncInvoke (Tcl_Interp * interp, int code); +#endif +#ifndef Tcl_AsyncMark_TCL_DECLARED +#define Tcl_AsyncMark_TCL_DECLARED +/* 74 */ +EXTERN void Tcl_AsyncMark (Tcl_AsyncHandler async); +#endif +#ifndef Tcl_AsyncReady_TCL_DECLARED +#define Tcl_AsyncReady_TCL_DECLARED +/* 75 */ +EXTERN int Tcl_AsyncReady (void); +#endif +#ifndef Tcl_BackgroundError_TCL_DECLARED +#define Tcl_BackgroundError_TCL_DECLARED +/* 76 */ +EXTERN void Tcl_BackgroundError (Tcl_Interp * interp); +#endif +#ifndef Tcl_Backslash_TCL_DECLARED +#define Tcl_Backslash_TCL_DECLARED +/* 77 */ +EXTERN char Tcl_Backslash (CONST char * src, int * readPtr); +#endif +#ifndef Tcl_BadChannelOption_TCL_DECLARED +#define Tcl_BadChannelOption_TCL_DECLARED +/* 78 */ +EXTERN int Tcl_BadChannelOption (Tcl_Interp * interp, + CONST char * optionName, + CONST char * optionList); +#endif +#ifndef Tcl_CallWhenDeleted_TCL_DECLARED +#define Tcl_CallWhenDeleted_TCL_DECLARED +/* 79 */ +EXTERN void Tcl_CallWhenDeleted (Tcl_Interp * interp, + Tcl_InterpDeleteProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_CancelIdleCall_TCL_DECLARED +#define Tcl_CancelIdleCall_TCL_DECLARED +/* 80 */ +EXTERN void Tcl_CancelIdleCall (Tcl_IdleProc * idleProc, + ClientData clientData); +#endif +#ifndef Tcl_Close_TCL_DECLARED +#define Tcl_Close_TCL_DECLARED +/* 81 */ +EXTERN int Tcl_Close (Tcl_Interp * interp, Tcl_Channel chan); +#endif +#ifndef Tcl_CommandComplete_TCL_DECLARED +#define Tcl_CommandComplete_TCL_DECLARED +/* 82 */ +EXTERN int Tcl_CommandComplete (CONST char * cmd); +#endif +#ifndef Tcl_Concat_TCL_DECLARED +#define Tcl_Concat_TCL_DECLARED +/* 83 */ +EXTERN char * Tcl_Concat (int argc, CONST84 char * CONST * argv); +#endif +#ifndef Tcl_ConvertElement_TCL_DECLARED +#define Tcl_ConvertElement_TCL_DECLARED +/* 84 */ +EXTERN int Tcl_ConvertElement (CONST char * src, char * dst, + int flags); +#endif +#ifndef Tcl_ConvertCountedElement_TCL_DECLARED +#define Tcl_ConvertCountedElement_TCL_DECLARED +/* 85 */ +EXTERN int Tcl_ConvertCountedElement (CONST char * src, + int length, char * dst, int flags); +#endif +#ifndef Tcl_CreateAlias_TCL_DECLARED +#define Tcl_CreateAlias_TCL_DECLARED +/* 86 */ +EXTERN int Tcl_CreateAlias (Tcl_Interp * slave, + CONST char * slaveCmd, Tcl_Interp * target, + CONST char * targetCmd, int argc, + CONST84 char * CONST * argv); +#endif +#ifndef Tcl_CreateAliasObj_TCL_DECLARED +#define Tcl_CreateAliasObj_TCL_DECLARED +/* 87 */ +EXTERN int Tcl_CreateAliasObj (Tcl_Interp * slave, + CONST char * slaveCmd, Tcl_Interp * target, + CONST char * targetCmd, int objc, + Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_CreateChannel_TCL_DECLARED +#define Tcl_CreateChannel_TCL_DECLARED +/* 88 */ +EXTERN Tcl_Channel Tcl_CreateChannel (Tcl_ChannelType * typePtr, + CONST char * chanName, + ClientData instanceData, int mask); +#endif +#ifndef Tcl_CreateChannelHandler_TCL_DECLARED +#define Tcl_CreateChannelHandler_TCL_DECLARED +/* 89 */ +EXTERN void Tcl_CreateChannelHandler (Tcl_Channel chan, int mask, + Tcl_ChannelProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_CreateCloseHandler_TCL_DECLARED +#define Tcl_CreateCloseHandler_TCL_DECLARED +/* 90 */ +EXTERN void Tcl_CreateCloseHandler (Tcl_Channel chan, + Tcl_CloseProc * proc, ClientData clientData); +#endif +#ifndef Tcl_CreateCommand_TCL_DECLARED +#define Tcl_CreateCommand_TCL_DECLARED +/* 91 */ +EXTERN Tcl_Command Tcl_CreateCommand (Tcl_Interp * interp, + CONST char * cmdName, Tcl_CmdProc * proc, + ClientData clientData, + Tcl_CmdDeleteProc * deleteProc); +#endif +#ifndef Tcl_CreateEventSource_TCL_DECLARED +#define Tcl_CreateEventSource_TCL_DECLARED +/* 92 */ +EXTERN void Tcl_CreateEventSource ( + Tcl_EventSetupProc * setupProc, + Tcl_EventCheckProc * checkProc, + ClientData clientData); +#endif +#ifndef Tcl_CreateExitHandler_TCL_DECLARED +#define Tcl_CreateExitHandler_TCL_DECLARED +/* 93 */ +EXTERN void Tcl_CreateExitHandler (Tcl_ExitProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_CreateInterp_TCL_DECLARED +#define Tcl_CreateInterp_TCL_DECLARED +/* 94 */ +EXTERN Tcl_Interp * Tcl_CreateInterp (void); +#endif +#ifndef Tcl_CreateMathFunc_TCL_DECLARED +#define Tcl_CreateMathFunc_TCL_DECLARED +/* 95 */ +EXTERN void Tcl_CreateMathFunc (Tcl_Interp * interp, + CONST char * name, int numArgs, + Tcl_ValueType * argTypes, + Tcl_MathProc * proc, ClientData clientData); +#endif +#ifndef Tcl_CreateObjCommand_TCL_DECLARED +#define Tcl_CreateObjCommand_TCL_DECLARED +/* 96 */ +EXTERN Tcl_Command Tcl_CreateObjCommand (Tcl_Interp * interp, + CONST char * cmdName, Tcl_ObjCmdProc * proc, + ClientData clientData, + Tcl_CmdDeleteProc * deleteProc); +#endif +#ifndef Tcl_CreateSlave_TCL_DECLARED +#define Tcl_CreateSlave_TCL_DECLARED +/* 97 */ +EXTERN Tcl_Interp * Tcl_CreateSlave (Tcl_Interp * interp, + CONST char * slaveName, int isSafe); +#endif +#ifndef Tcl_CreateTimerHandler_TCL_DECLARED +#define Tcl_CreateTimerHandler_TCL_DECLARED +/* 98 */ +EXTERN Tcl_TimerToken Tcl_CreateTimerHandler (int milliseconds, + Tcl_TimerProc * proc, ClientData clientData); +#endif +#ifndef Tcl_CreateTrace_TCL_DECLARED +#define Tcl_CreateTrace_TCL_DECLARED +/* 99 */ +EXTERN Tcl_Trace Tcl_CreateTrace (Tcl_Interp * interp, int level, + Tcl_CmdTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteAssocData_TCL_DECLARED +#define Tcl_DeleteAssocData_TCL_DECLARED +/* 100 */ +EXTERN void Tcl_DeleteAssocData (Tcl_Interp * interp, + CONST char * name); +#endif +#ifndef Tcl_DeleteChannelHandler_TCL_DECLARED +#define Tcl_DeleteChannelHandler_TCL_DECLARED +/* 101 */ +EXTERN void Tcl_DeleteChannelHandler (Tcl_Channel chan, + Tcl_ChannelProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteCloseHandler_TCL_DECLARED +#define Tcl_DeleteCloseHandler_TCL_DECLARED +/* 102 */ +EXTERN void Tcl_DeleteCloseHandler (Tcl_Channel chan, + Tcl_CloseProc * proc, ClientData clientData); +#endif +#ifndef Tcl_DeleteCommand_TCL_DECLARED +#define Tcl_DeleteCommand_TCL_DECLARED +/* 103 */ +EXTERN int Tcl_DeleteCommand (Tcl_Interp * interp, + CONST char * cmdName); +#endif +#ifndef Tcl_DeleteCommandFromToken_TCL_DECLARED +#define Tcl_DeleteCommandFromToken_TCL_DECLARED +/* 104 */ +EXTERN int Tcl_DeleteCommandFromToken (Tcl_Interp * interp, + Tcl_Command command); +#endif +#ifndef Tcl_DeleteEvents_TCL_DECLARED +#define Tcl_DeleteEvents_TCL_DECLARED +/* 105 */ +EXTERN void Tcl_DeleteEvents (Tcl_EventDeleteProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteEventSource_TCL_DECLARED +#define Tcl_DeleteEventSource_TCL_DECLARED +/* 106 */ +EXTERN void Tcl_DeleteEventSource ( + Tcl_EventSetupProc * setupProc, + Tcl_EventCheckProc * checkProc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteExitHandler_TCL_DECLARED +#define Tcl_DeleteExitHandler_TCL_DECLARED +/* 107 */ +EXTERN void Tcl_DeleteExitHandler (Tcl_ExitProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteHashEntry_TCL_DECLARED +#define Tcl_DeleteHashEntry_TCL_DECLARED +/* 108 */ +EXTERN void Tcl_DeleteHashEntry (Tcl_HashEntry * entryPtr); +#endif +#ifndef Tcl_DeleteHashTable_TCL_DECLARED +#define Tcl_DeleteHashTable_TCL_DECLARED +/* 109 */ +EXTERN void Tcl_DeleteHashTable (Tcl_HashTable * tablePtr); +#endif +#ifndef Tcl_DeleteInterp_TCL_DECLARED +#define Tcl_DeleteInterp_TCL_DECLARED +/* 110 */ +EXTERN void Tcl_DeleteInterp (Tcl_Interp * interp); +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_DetachPids_TCL_DECLARED +#define Tcl_DetachPids_TCL_DECLARED +/* 111 */ +EXTERN void Tcl_DetachPids (int numPids, Tcl_Pid * pidPtr); +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_DetachPids_TCL_DECLARED +#define Tcl_DetachPids_TCL_DECLARED +/* 111 */ +EXTERN void Tcl_DetachPids (int numPids, Tcl_Pid * pidPtr); +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_DeleteTimerHandler_TCL_DECLARED +#define Tcl_DeleteTimerHandler_TCL_DECLARED +/* 112 */ +EXTERN void Tcl_DeleteTimerHandler (Tcl_TimerToken token); +#endif +#ifndef Tcl_DeleteTrace_TCL_DECLARED +#define Tcl_DeleteTrace_TCL_DECLARED +/* 113 */ +EXTERN void Tcl_DeleteTrace (Tcl_Interp * interp, + Tcl_Trace trace); +#endif +#ifndef Tcl_DontCallWhenDeleted_TCL_DECLARED +#define Tcl_DontCallWhenDeleted_TCL_DECLARED +/* 114 */ +EXTERN void Tcl_DontCallWhenDeleted (Tcl_Interp * interp, + Tcl_InterpDeleteProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DoOneEvent_TCL_DECLARED +#define Tcl_DoOneEvent_TCL_DECLARED +/* 115 */ +EXTERN int Tcl_DoOneEvent (int flags); +#endif +#ifndef Tcl_DoWhenIdle_TCL_DECLARED +#define Tcl_DoWhenIdle_TCL_DECLARED +/* 116 */ +EXTERN void Tcl_DoWhenIdle (Tcl_IdleProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DStringAppend_TCL_DECLARED +#define Tcl_DStringAppend_TCL_DECLARED +/* 117 */ +EXTERN char * Tcl_DStringAppend (Tcl_DString * dsPtr, + CONST char * bytes, int length); +#endif +#ifndef Tcl_DStringAppendElement_TCL_DECLARED +#define Tcl_DStringAppendElement_TCL_DECLARED +/* 118 */ +EXTERN char * Tcl_DStringAppendElement (Tcl_DString * dsPtr, + CONST char * element); +#endif +#ifndef Tcl_DStringEndSublist_TCL_DECLARED +#define Tcl_DStringEndSublist_TCL_DECLARED +/* 119 */ +EXTERN void Tcl_DStringEndSublist (Tcl_DString * dsPtr); +#endif +#ifndef Tcl_DStringFree_TCL_DECLARED +#define Tcl_DStringFree_TCL_DECLARED +/* 120 */ +EXTERN void Tcl_DStringFree (Tcl_DString * dsPtr); +#endif +#ifndef Tcl_DStringGetResult_TCL_DECLARED +#define Tcl_DStringGetResult_TCL_DECLARED +/* 121 */ +EXTERN void Tcl_DStringGetResult (Tcl_Interp * interp, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_DStringInit_TCL_DECLARED +#define Tcl_DStringInit_TCL_DECLARED +/* 122 */ +EXTERN void Tcl_DStringInit (Tcl_DString * dsPtr); +#endif +#ifndef Tcl_DStringResult_TCL_DECLARED +#define Tcl_DStringResult_TCL_DECLARED +/* 123 */ +EXTERN void Tcl_DStringResult (Tcl_Interp * interp, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_DStringSetLength_TCL_DECLARED +#define Tcl_DStringSetLength_TCL_DECLARED +/* 124 */ +EXTERN void Tcl_DStringSetLength (Tcl_DString * dsPtr, + int length); +#endif +#ifndef Tcl_DStringStartSublist_TCL_DECLARED +#define Tcl_DStringStartSublist_TCL_DECLARED +/* 125 */ +EXTERN void Tcl_DStringStartSublist (Tcl_DString * dsPtr); +#endif +#ifndef Tcl_Eof_TCL_DECLARED +#define Tcl_Eof_TCL_DECLARED +/* 126 */ +EXTERN int Tcl_Eof (Tcl_Channel chan); +#endif +#ifndef Tcl_ErrnoId_TCL_DECLARED +#define Tcl_ErrnoId_TCL_DECLARED +/* 127 */ +EXTERN CONST84_RETURN char * Tcl_ErrnoId (void); +#endif +#ifndef Tcl_ErrnoMsg_TCL_DECLARED +#define Tcl_ErrnoMsg_TCL_DECLARED +/* 128 */ +EXTERN CONST84_RETURN char * Tcl_ErrnoMsg (int err); +#endif +#ifndef Tcl_Eval_TCL_DECLARED +#define Tcl_Eval_TCL_DECLARED +/* 129 */ +EXTERN int Tcl_Eval (Tcl_Interp * interp, CONST char * script); +#endif +#ifndef Tcl_EvalFile_TCL_DECLARED +#define Tcl_EvalFile_TCL_DECLARED +/* 130 */ +EXTERN int Tcl_EvalFile (Tcl_Interp * interp, + CONST char * fileName); +#endif +#ifndef Tcl_EvalObj_TCL_DECLARED +#define Tcl_EvalObj_TCL_DECLARED +/* 131 */ +EXTERN int Tcl_EvalObj (Tcl_Interp * interp, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_EventuallyFree_TCL_DECLARED +#define Tcl_EventuallyFree_TCL_DECLARED +/* 132 */ +EXTERN void Tcl_EventuallyFree (ClientData clientData, + Tcl_FreeProc * freeProc); +#endif +#ifndef Tcl_Exit_TCL_DECLARED +#define Tcl_Exit_TCL_DECLARED +/* 133 */ +EXTERN void Tcl_Exit (int status); +#endif +#ifndef Tcl_ExposeCommand_TCL_DECLARED +#define Tcl_ExposeCommand_TCL_DECLARED +/* 134 */ +EXTERN int Tcl_ExposeCommand (Tcl_Interp * interp, + CONST char * hiddenCmdToken, + CONST char * cmdName); +#endif +#ifndef Tcl_ExprBoolean_TCL_DECLARED +#define Tcl_ExprBoolean_TCL_DECLARED +/* 135 */ +EXTERN int Tcl_ExprBoolean (Tcl_Interp * interp, + CONST char * expr, int * ptr); +#endif +#ifndef Tcl_ExprBooleanObj_TCL_DECLARED +#define Tcl_ExprBooleanObj_TCL_DECLARED +/* 136 */ +EXTERN int Tcl_ExprBooleanObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, int * ptr); +#endif +#ifndef Tcl_ExprDouble_TCL_DECLARED +#define Tcl_ExprDouble_TCL_DECLARED +/* 137 */ +EXTERN int Tcl_ExprDouble (Tcl_Interp * interp, + CONST char * expr, double * ptr); +#endif +#ifndef Tcl_ExprDoubleObj_TCL_DECLARED +#define Tcl_ExprDoubleObj_TCL_DECLARED +/* 138 */ +EXTERN int Tcl_ExprDoubleObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, double * ptr); +#endif +#ifndef Tcl_ExprLong_TCL_DECLARED +#define Tcl_ExprLong_TCL_DECLARED +/* 139 */ +EXTERN int Tcl_ExprLong (Tcl_Interp * interp, CONST char * expr, + long * ptr); +#endif +#ifndef Tcl_ExprLongObj_TCL_DECLARED +#define Tcl_ExprLongObj_TCL_DECLARED +/* 140 */ +EXTERN int Tcl_ExprLongObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, long * ptr); +#endif +#ifndef Tcl_ExprObj_TCL_DECLARED +#define Tcl_ExprObj_TCL_DECLARED +/* 141 */ +EXTERN int Tcl_ExprObj (Tcl_Interp * interp, Tcl_Obj * objPtr, + Tcl_Obj ** resultPtrPtr); +#endif +#ifndef Tcl_ExprString_TCL_DECLARED +#define Tcl_ExprString_TCL_DECLARED +/* 142 */ +EXTERN int Tcl_ExprString (Tcl_Interp * interp, + CONST char * expr); +#endif +#ifndef Tcl_Finalize_TCL_DECLARED +#define Tcl_Finalize_TCL_DECLARED +/* 143 */ +EXTERN void Tcl_Finalize (void); +#endif +#ifndef Tcl_FindExecutable_TCL_DECLARED +#define Tcl_FindExecutable_TCL_DECLARED +/* 144 */ +EXTERN void Tcl_FindExecutable (CONST char * argv0); +#endif +#ifndef Tcl_FirstHashEntry_TCL_DECLARED +#define Tcl_FirstHashEntry_TCL_DECLARED +/* 145 */ +EXTERN Tcl_HashEntry * Tcl_FirstHashEntry (Tcl_HashTable * tablePtr, + Tcl_HashSearch * searchPtr); +#endif +#ifndef Tcl_Flush_TCL_DECLARED +#define Tcl_Flush_TCL_DECLARED +/* 146 */ +EXTERN int Tcl_Flush (Tcl_Channel chan); +#endif +#ifndef Tcl_FreeResult_TCL_DECLARED +#define Tcl_FreeResult_TCL_DECLARED +/* 147 */ +EXTERN void Tcl_FreeResult (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetAlias_TCL_DECLARED +#define Tcl_GetAlias_TCL_DECLARED +/* 148 */ +EXTERN int Tcl_GetAlias (Tcl_Interp * interp, + CONST char * slaveCmd, + Tcl_Interp ** targetInterpPtr, + CONST84 char ** targetCmdPtr, int * argcPtr, + CONST84 char *** argvPtr); +#endif +#ifndef Tcl_GetAliasObj_TCL_DECLARED +#define Tcl_GetAliasObj_TCL_DECLARED +/* 149 */ +EXTERN int Tcl_GetAliasObj (Tcl_Interp * interp, + CONST char * slaveCmd, + Tcl_Interp ** targetInterpPtr, + CONST84 char ** targetCmdPtr, int * objcPtr, + Tcl_Obj *** objv); +#endif +#ifndef Tcl_GetAssocData_TCL_DECLARED +#define Tcl_GetAssocData_TCL_DECLARED +/* 150 */ +EXTERN ClientData Tcl_GetAssocData (Tcl_Interp * interp, + CONST char * name, + Tcl_InterpDeleteProc ** procPtr); +#endif +#ifndef Tcl_GetChannel_TCL_DECLARED +#define Tcl_GetChannel_TCL_DECLARED +/* 151 */ +EXTERN Tcl_Channel Tcl_GetChannel (Tcl_Interp * interp, + CONST char * chanName, int * modePtr); +#endif +#ifndef Tcl_GetChannelBufferSize_TCL_DECLARED +#define Tcl_GetChannelBufferSize_TCL_DECLARED +/* 152 */ +EXTERN int Tcl_GetChannelBufferSize (Tcl_Channel chan); +#endif +#ifndef Tcl_GetChannelHandle_TCL_DECLARED +#define Tcl_GetChannelHandle_TCL_DECLARED +/* 153 */ +EXTERN int Tcl_GetChannelHandle (Tcl_Channel chan, + int direction, ClientData * handlePtr); +#endif +#ifndef Tcl_GetChannelInstanceData_TCL_DECLARED +#define Tcl_GetChannelInstanceData_TCL_DECLARED +/* 154 */ +EXTERN ClientData Tcl_GetChannelInstanceData (Tcl_Channel chan); +#endif +#ifndef Tcl_GetChannelMode_TCL_DECLARED +#define Tcl_GetChannelMode_TCL_DECLARED +/* 155 */ +EXTERN int Tcl_GetChannelMode (Tcl_Channel chan); +#endif +#ifndef Tcl_GetChannelName_TCL_DECLARED +#define Tcl_GetChannelName_TCL_DECLARED +/* 156 */ +EXTERN CONST84_RETURN char * Tcl_GetChannelName (Tcl_Channel chan); +#endif +#ifndef Tcl_GetChannelOption_TCL_DECLARED +#define Tcl_GetChannelOption_TCL_DECLARED +/* 157 */ +EXTERN int Tcl_GetChannelOption (Tcl_Interp * interp, + Tcl_Channel chan, CONST char * optionName, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_GetChannelType_TCL_DECLARED +#define Tcl_GetChannelType_TCL_DECLARED +/* 158 */ +EXTERN Tcl_ChannelType * Tcl_GetChannelType (Tcl_Channel chan); +#endif +#ifndef Tcl_GetCommandInfo_TCL_DECLARED +#define Tcl_GetCommandInfo_TCL_DECLARED +/* 159 */ +EXTERN int Tcl_GetCommandInfo (Tcl_Interp * interp, + CONST char * cmdName, Tcl_CmdInfo * infoPtr); +#endif +#ifndef Tcl_GetCommandName_TCL_DECLARED +#define Tcl_GetCommandName_TCL_DECLARED +/* 160 */ +EXTERN CONST84_RETURN char * Tcl_GetCommandName (Tcl_Interp * interp, + Tcl_Command command); +#endif +#ifndef Tcl_GetErrno_TCL_DECLARED +#define Tcl_GetErrno_TCL_DECLARED +/* 161 */ +EXTERN int Tcl_GetErrno (void); +#endif +#ifndef Tcl_GetHostName_TCL_DECLARED +#define Tcl_GetHostName_TCL_DECLARED +/* 162 */ +EXTERN CONST84_RETURN char * Tcl_GetHostName (void); +#endif +#ifndef Tcl_GetInterpPath_TCL_DECLARED +#define Tcl_GetInterpPath_TCL_DECLARED +/* 163 */ +EXTERN int Tcl_GetInterpPath (Tcl_Interp * askInterp, + Tcl_Interp * slaveInterp); +#endif +#ifndef Tcl_GetMaster_TCL_DECLARED +#define Tcl_GetMaster_TCL_DECLARED +/* 164 */ +EXTERN Tcl_Interp * Tcl_GetMaster (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetNameOfExecutable_TCL_DECLARED +#define Tcl_GetNameOfExecutable_TCL_DECLARED +/* 165 */ +EXTERN CONST char * Tcl_GetNameOfExecutable (void); +#endif +#ifndef Tcl_GetObjResult_TCL_DECLARED +#define Tcl_GetObjResult_TCL_DECLARED +/* 166 */ +EXTERN Tcl_Obj * Tcl_GetObjResult (Tcl_Interp * interp); +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_GetOpenFile_TCL_DECLARED +#define Tcl_GetOpenFile_TCL_DECLARED +/* 167 */ +EXTERN int Tcl_GetOpenFile (Tcl_Interp * interp, + CONST char * chanID, int forWriting, + int checkUsage, ClientData * filePtr); +#endif +#endif /* UNIX */ +#ifndef Tcl_GetPathType_TCL_DECLARED +#define Tcl_GetPathType_TCL_DECLARED +/* 168 */ +EXTERN Tcl_PathType Tcl_GetPathType (CONST char * path); +#endif +#ifndef Tcl_Gets_TCL_DECLARED +#define Tcl_Gets_TCL_DECLARED +/* 169 */ +EXTERN int Tcl_Gets (Tcl_Channel chan, Tcl_DString * dsPtr); +#endif +#ifndef Tcl_GetsObj_TCL_DECLARED +#define Tcl_GetsObj_TCL_DECLARED +/* 170 */ +EXTERN int Tcl_GetsObj (Tcl_Channel chan, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetServiceMode_TCL_DECLARED +#define Tcl_GetServiceMode_TCL_DECLARED +/* 171 */ +EXTERN int Tcl_GetServiceMode (void); +#endif +#ifndef Tcl_GetSlave_TCL_DECLARED +#define Tcl_GetSlave_TCL_DECLARED +/* 172 */ +EXTERN Tcl_Interp * Tcl_GetSlave (Tcl_Interp * interp, + CONST char * slaveName); +#endif +#ifndef Tcl_GetStdChannel_TCL_DECLARED +#define Tcl_GetStdChannel_TCL_DECLARED +/* 173 */ +EXTERN Tcl_Channel Tcl_GetStdChannel (int type); +#endif +#ifndef Tcl_GetStringResult_TCL_DECLARED +#define Tcl_GetStringResult_TCL_DECLARED +/* 174 */ +EXTERN CONST84_RETURN char * Tcl_GetStringResult (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetVar_TCL_DECLARED +#define Tcl_GetVar_TCL_DECLARED +/* 175 */ +EXTERN CONST84_RETURN char * Tcl_GetVar (Tcl_Interp * interp, + CONST char * varName, int flags); +#endif +#ifndef Tcl_GetVar2_TCL_DECLARED +#define Tcl_GetVar2_TCL_DECLARED +/* 176 */ +EXTERN CONST84_RETURN char * Tcl_GetVar2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags); +#endif +#ifndef Tcl_GlobalEval_TCL_DECLARED +#define Tcl_GlobalEval_TCL_DECLARED +/* 177 */ +EXTERN int Tcl_GlobalEval (Tcl_Interp * interp, + CONST char * command); +#endif +#ifndef Tcl_GlobalEvalObj_TCL_DECLARED +#define Tcl_GlobalEvalObj_TCL_DECLARED +/* 178 */ +EXTERN int Tcl_GlobalEvalObj (Tcl_Interp * interp, + Tcl_Obj * objPtr); +#endif +#ifndef Tcl_HideCommand_TCL_DECLARED +#define Tcl_HideCommand_TCL_DECLARED +/* 179 */ +EXTERN int Tcl_HideCommand (Tcl_Interp * interp, + CONST char * cmdName, + CONST char * hiddenCmdToken); +#endif +#ifndef Tcl_Init_TCL_DECLARED +#define Tcl_Init_TCL_DECLARED +/* 180 */ +EXTERN int Tcl_Init (Tcl_Interp * interp); +#endif +#ifndef Tcl_InitHashTable_TCL_DECLARED +#define Tcl_InitHashTable_TCL_DECLARED +/* 181 */ +EXTERN void Tcl_InitHashTable (Tcl_HashTable * tablePtr, + int keyType); +#endif +#ifndef Tcl_InputBlocked_TCL_DECLARED +#define Tcl_InputBlocked_TCL_DECLARED +/* 182 */ +EXTERN int Tcl_InputBlocked (Tcl_Channel chan); +#endif +#ifndef Tcl_InputBuffered_TCL_DECLARED +#define Tcl_InputBuffered_TCL_DECLARED +/* 183 */ +EXTERN int Tcl_InputBuffered (Tcl_Channel chan); +#endif +#ifndef Tcl_InterpDeleted_TCL_DECLARED +#define Tcl_InterpDeleted_TCL_DECLARED +/* 184 */ +EXTERN int Tcl_InterpDeleted (Tcl_Interp * interp); +#endif +#ifndef Tcl_IsSafe_TCL_DECLARED +#define Tcl_IsSafe_TCL_DECLARED +/* 185 */ +EXTERN int Tcl_IsSafe (Tcl_Interp * interp); +#endif +#ifndef Tcl_JoinPath_TCL_DECLARED +#define Tcl_JoinPath_TCL_DECLARED +/* 186 */ +EXTERN char * Tcl_JoinPath (int argc, CONST84 char * CONST * argv, + Tcl_DString * resultPtr); +#endif +#ifndef Tcl_LinkVar_TCL_DECLARED +#define Tcl_LinkVar_TCL_DECLARED +/* 187 */ +EXTERN int Tcl_LinkVar (Tcl_Interp * interp, + CONST char * varName, char * addr, int type); +#endif +/* Slot 188 is reserved */ +#ifndef Tcl_MakeFileChannel_TCL_DECLARED +#define Tcl_MakeFileChannel_TCL_DECLARED +/* 189 */ +EXTERN Tcl_Channel Tcl_MakeFileChannel (ClientData handle, int mode); +#endif +#ifndef Tcl_MakeSafe_TCL_DECLARED +#define Tcl_MakeSafe_TCL_DECLARED +/* 190 */ +EXTERN int Tcl_MakeSafe (Tcl_Interp * interp); +#endif +#ifndef Tcl_MakeTcpClientChannel_TCL_DECLARED +#define Tcl_MakeTcpClientChannel_TCL_DECLARED +/* 191 */ +EXTERN Tcl_Channel Tcl_MakeTcpClientChannel (ClientData tcpSocket); +#endif +#ifndef Tcl_Merge_TCL_DECLARED +#define Tcl_Merge_TCL_DECLARED +/* 192 */ +EXTERN char * Tcl_Merge (int argc, CONST84 char * CONST * argv); +#endif +#ifndef Tcl_NextHashEntry_TCL_DECLARED +#define Tcl_NextHashEntry_TCL_DECLARED +/* 193 */ +EXTERN Tcl_HashEntry * Tcl_NextHashEntry (Tcl_HashSearch * searchPtr); +#endif +#ifndef Tcl_NotifyChannel_TCL_DECLARED +#define Tcl_NotifyChannel_TCL_DECLARED +/* 194 */ +EXTERN void Tcl_NotifyChannel (Tcl_Channel channel, int mask); +#endif +#ifndef Tcl_ObjGetVar2_TCL_DECLARED +#define Tcl_ObjGetVar2_TCL_DECLARED +/* 195 */ +EXTERN Tcl_Obj * Tcl_ObjGetVar2 (Tcl_Interp * interp, + Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, + int flags); +#endif +#ifndef Tcl_ObjSetVar2_TCL_DECLARED +#define Tcl_ObjSetVar2_TCL_DECLARED +/* 196 */ +EXTERN Tcl_Obj * Tcl_ObjSetVar2 (Tcl_Interp * interp, + Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, + Tcl_Obj * newValuePtr, int flags); +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_OpenCommandChannel_TCL_DECLARED +#define Tcl_OpenCommandChannel_TCL_DECLARED +/* 197 */ +EXTERN Tcl_Channel Tcl_OpenCommandChannel (Tcl_Interp * interp, + int argc, CONST84 char ** argv, int flags); +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_OpenCommandChannel_TCL_DECLARED +#define Tcl_OpenCommandChannel_TCL_DECLARED +/* 197 */ +EXTERN Tcl_Channel Tcl_OpenCommandChannel (Tcl_Interp * interp, + int argc, CONST84 char ** argv, int flags); +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_OpenFileChannel_TCL_DECLARED +#define Tcl_OpenFileChannel_TCL_DECLARED +/* 198 */ +EXTERN Tcl_Channel Tcl_OpenFileChannel (Tcl_Interp * interp, + CONST char * fileName, + CONST char * modeString, int permissions); +#endif +#ifndef Tcl_OpenTcpClient_TCL_DECLARED +#define Tcl_OpenTcpClient_TCL_DECLARED +/* 199 */ +EXTERN Tcl_Channel Tcl_OpenTcpClient (Tcl_Interp * interp, int port, + CONST char * address, CONST char * myaddr, + int myport, int async); +#endif +#ifndef Tcl_OpenTcpServer_TCL_DECLARED +#define Tcl_OpenTcpServer_TCL_DECLARED +/* 200 */ +EXTERN Tcl_Channel Tcl_OpenTcpServer (Tcl_Interp * interp, int port, + CONST char * host, + Tcl_TcpAcceptProc * acceptProc, + ClientData callbackData); +#endif +#ifndef Tcl_Preserve_TCL_DECLARED +#define Tcl_Preserve_TCL_DECLARED +/* 201 */ +EXTERN void Tcl_Preserve (ClientData data); +#endif +#ifndef Tcl_PrintDouble_TCL_DECLARED +#define Tcl_PrintDouble_TCL_DECLARED +/* 202 */ +EXTERN void Tcl_PrintDouble (Tcl_Interp * interp, double value, + char * dst); +#endif +#ifndef Tcl_PutEnv_TCL_DECLARED +#define Tcl_PutEnv_TCL_DECLARED +/* 203 */ +EXTERN int Tcl_PutEnv (CONST char * assignment); +#endif +#ifndef Tcl_PosixError_TCL_DECLARED +#define Tcl_PosixError_TCL_DECLARED +/* 204 */ +EXTERN CONST84_RETURN char * Tcl_PosixError (Tcl_Interp * interp); +#endif +#ifndef Tcl_QueueEvent_TCL_DECLARED +#define Tcl_QueueEvent_TCL_DECLARED +/* 205 */ +EXTERN void Tcl_QueueEvent (Tcl_Event * evPtr, + Tcl_QueuePosition position); +#endif +#ifndef Tcl_Read_TCL_DECLARED +#define Tcl_Read_TCL_DECLARED +/* 206 */ +EXTERN int Tcl_Read (Tcl_Channel chan, char * bufPtr, + int toRead); +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_ReapDetachedProcs_TCL_DECLARED +#define Tcl_ReapDetachedProcs_TCL_DECLARED +/* 207 */ +EXTERN void Tcl_ReapDetachedProcs (void); +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_ReapDetachedProcs_TCL_DECLARED +#define Tcl_ReapDetachedProcs_TCL_DECLARED +/* 207 */ +EXTERN void Tcl_ReapDetachedProcs (void); +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_RecordAndEval_TCL_DECLARED +#define Tcl_RecordAndEval_TCL_DECLARED +/* 208 */ +EXTERN int Tcl_RecordAndEval (Tcl_Interp * interp, + CONST char * cmd, int flags); +#endif +#ifndef Tcl_RecordAndEvalObj_TCL_DECLARED +#define Tcl_RecordAndEvalObj_TCL_DECLARED +/* 209 */ +EXTERN int Tcl_RecordAndEvalObj (Tcl_Interp * interp, + Tcl_Obj * cmdPtr, int flags); +#endif +#ifndef Tcl_RegisterChannel_TCL_DECLARED +#define Tcl_RegisterChannel_TCL_DECLARED +/* 210 */ +EXTERN void Tcl_RegisterChannel (Tcl_Interp * interp, + Tcl_Channel chan); +#endif +#ifndef Tcl_RegisterObjType_TCL_DECLARED +#define Tcl_RegisterObjType_TCL_DECLARED +/* 211 */ +EXTERN void Tcl_RegisterObjType (Tcl_ObjType * typePtr); +#endif +#ifndef Tcl_RegExpCompile_TCL_DECLARED +#define Tcl_RegExpCompile_TCL_DECLARED +/* 212 */ +EXTERN Tcl_RegExp Tcl_RegExpCompile (Tcl_Interp * interp, + CONST char * pattern); +#endif +#ifndef Tcl_RegExpExec_TCL_DECLARED +#define Tcl_RegExpExec_TCL_DECLARED +/* 213 */ +EXTERN int Tcl_RegExpExec (Tcl_Interp * interp, + Tcl_RegExp regexp, CONST char * text, + CONST char * start); +#endif +#ifndef Tcl_RegExpMatch_TCL_DECLARED +#define Tcl_RegExpMatch_TCL_DECLARED +/* 214 */ +EXTERN int Tcl_RegExpMatch (Tcl_Interp * interp, + CONST char * text, CONST char * pattern); +#endif +#ifndef Tcl_RegExpRange_TCL_DECLARED +#define Tcl_RegExpRange_TCL_DECLARED +/* 215 */ +EXTERN void Tcl_RegExpRange (Tcl_RegExp regexp, int index, + CONST84 char ** startPtr, + CONST84 char ** endPtr); +#endif +#ifndef Tcl_Release_TCL_DECLARED +#define Tcl_Release_TCL_DECLARED +/* 216 */ +EXTERN void Tcl_Release (ClientData clientData); +#endif +#ifndef Tcl_ResetResult_TCL_DECLARED +#define Tcl_ResetResult_TCL_DECLARED +/* 217 */ +EXTERN void Tcl_ResetResult (Tcl_Interp * interp); +#endif +#ifndef Tcl_ScanElement_TCL_DECLARED +#define Tcl_ScanElement_TCL_DECLARED +/* 218 */ +EXTERN int Tcl_ScanElement (CONST char * str, int * flagPtr); +#endif +#ifndef Tcl_ScanCountedElement_TCL_DECLARED +#define Tcl_ScanCountedElement_TCL_DECLARED +/* 219 */ +EXTERN int Tcl_ScanCountedElement (CONST char * str, int length, + int * flagPtr); +#endif +#ifndef Tcl_SeekOld_TCL_DECLARED +#define Tcl_SeekOld_TCL_DECLARED +/* 220 */ +EXTERN int Tcl_SeekOld (Tcl_Channel chan, int offset, int mode); +#endif +#ifndef Tcl_ServiceAll_TCL_DECLARED +#define Tcl_ServiceAll_TCL_DECLARED +/* 221 */ +EXTERN int Tcl_ServiceAll (void); +#endif +#ifndef Tcl_ServiceEvent_TCL_DECLARED +#define Tcl_ServiceEvent_TCL_DECLARED +/* 222 */ +EXTERN int Tcl_ServiceEvent (int flags); +#endif +#ifndef Tcl_SetAssocData_TCL_DECLARED +#define Tcl_SetAssocData_TCL_DECLARED +/* 223 */ +EXTERN void Tcl_SetAssocData (Tcl_Interp * interp, + CONST char * name, + Tcl_InterpDeleteProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_SetChannelBufferSize_TCL_DECLARED +#define Tcl_SetChannelBufferSize_TCL_DECLARED +/* 224 */ +EXTERN void Tcl_SetChannelBufferSize (Tcl_Channel chan, int sz); +#endif +#ifndef Tcl_SetChannelOption_TCL_DECLARED +#define Tcl_SetChannelOption_TCL_DECLARED +/* 225 */ +EXTERN int Tcl_SetChannelOption (Tcl_Interp * interp, + Tcl_Channel chan, CONST char * optionName, + CONST char * newValue); +#endif +#ifndef Tcl_SetCommandInfo_TCL_DECLARED +#define Tcl_SetCommandInfo_TCL_DECLARED +/* 226 */ +EXTERN int Tcl_SetCommandInfo (Tcl_Interp * interp, + CONST char * cmdName, + CONST Tcl_CmdInfo * infoPtr); +#endif +#ifndef Tcl_SetErrno_TCL_DECLARED +#define Tcl_SetErrno_TCL_DECLARED +/* 227 */ +EXTERN void Tcl_SetErrno (int err); +#endif +#ifndef Tcl_SetErrorCode_TCL_DECLARED +#define Tcl_SetErrorCode_TCL_DECLARED +/* 228 */ +EXTERN void Tcl_SetErrorCode (Tcl_Interp * interp, ...); +#endif +#ifndef Tcl_SetMaxBlockTime_TCL_DECLARED +#define Tcl_SetMaxBlockTime_TCL_DECLARED +/* 229 */ +EXTERN void Tcl_SetMaxBlockTime (Tcl_Time * timePtr); +#endif +#ifndef Tcl_SetPanicProc_TCL_DECLARED +#define Tcl_SetPanicProc_TCL_DECLARED +/* 230 */ +EXTERN void Tcl_SetPanicProc (Tcl_PanicProc * panicProc); +#endif +#ifndef Tcl_SetRecursionLimit_TCL_DECLARED +#define Tcl_SetRecursionLimit_TCL_DECLARED +/* 231 */ +EXTERN int Tcl_SetRecursionLimit (Tcl_Interp * interp, + int depth); +#endif +#ifndef Tcl_SetResult_TCL_DECLARED +#define Tcl_SetResult_TCL_DECLARED +/* 232 */ +EXTERN void Tcl_SetResult (Tcl_Interp * interp, char * result, + Tcl_FreeProc * freeProc); +#endif +#ifndef Tcl_SetServiceMode_TCL_DECLARED +#define Tcl_SetServiceMode_TCL_DECLARED +/* 233 */ +EXTERN int Tcl_SetServiceMode (int mode); +#endif +#ifndef Tcl_SetObjErrorCode_TCL_DECLARED +#define Tcl_SetObjErrorCode_TCL_DECLARED +/* 234 */ +EXTERN void Tcl_SetObjErrorCode (Tcl_Interp * interp, + Tcl_Obj * errorObjPtr); +#endif +#ifndef Tcl_SetObjResult_TCL_DECLARED +#define Tcl_SetObjResult_TCL_DECLARED +/* 235 */ +EXTERN void Tcl_SetObjResult (Tcl_Interp * interp, + Tcl_Obj * resultObjPtr); +#endif +#ifndef Tcl_SetStdChannel_TCL_DECLARED +#define Tcl_SetStdChannel_TCL_DECLARED +/* 236 */ +EXTERN void Tcl_SetStdChannel (Tcl_Channel channel, int type); +#endif +#ifndef Tcl_SetVar_TCL_DECLARED +#define Tcl_SetVar_TCL_DECLARED +/* 237 */ +EXTERN CONST84_RETURN char * Tcl_SetVar (Tcl_Interp * interp, + CONST char * varName, CONST char * newValue, + int flags); +#endif +#ifndef Tcl_SetVar2_TCL_DECLARED +#define Tcl_SetVar2_TCL_DECLARED +/* 238 */ +EXTERN CONST84_RETURN char * Tcl_SetVar2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + CONST char * newValue, int flags); +#endif +#ifndef Tcl_SignalId_TCL_DECLARED +#define Tcl_SignalId_TCL_DECLARED +/* 239 */ +EXTERN CONST84_RETURN char * Tcl_SignalId (int sig); +#endif +#ifndef Tcl_SignalMsg_TCL_DECLARED +#define Tcl_SignalMsg_TCL_DECLARED +/* 240 */ +EXTERN CONST84_RETURN char * Tcl_SignalMsg (int sig); +#endif +#ifndef Tcl_SourceRCFile_TCL_DECLARED +#define Tcl_SourceRCFile_TCL_DECLARED +/* 241 */ +EXTERN void Tcl_SourceRCFile (Tcl_Interp * interp); +#endif +#ifndef Tcl_SplitList_TCL_DECLARED +#define Tcl_SplitList_TCL_DECLARED +/* 242 */ +EXTERN int Tcl_SplitList (Tcl_Interp * interp, + CONST char * listStr, int * argcPtr, + CONST84 char *** argvPtr); +#endif +#ifndef Tcl_SplitPath_TCL_DECLARED +#define Tcl_SplitPath_TCL_DECLARED +/* 243 */ +EXTERN void Tcl_SplitPath (CONST char * path, int * argcPtr, + CONST84 char *** argvPtr); +#endif +#ifndef Tcl_StaticPackage_TCL_DECLARED +#define Tcl_StaticPackage_TCL_DECLARED +/* 244 */ +EXTERN void Tcl_StaticPackage (Tcl_Interp * interp, + CONST char * pkgName, + Tcl_PackageInitProc * initProc, + Tcl_PackageInitProc * safeInitProc); +#endif +#ifndef Tcl_StringMatch_TCL_DECLARED +#define Tcl_StringMatch_TCL_DECLARED +/* 245 */ +EXTERN int Tcl_StringMatch (CONST char * str, + CONST char * pattern); +#endif +#ifndef Tcl_TellOld_TCL_DECLARED +#define Tcl_TellOld_TCL_DECLARED +/* 246 */ +EXTERN int Tcl_TellOld (Tcl_Channel chan); +#endif +#ifndef Tcl_TraceVar_TCL_DECLARED +#define Tcl_TraceVar_TCL_DECLARED +/* 247 */ +EXTERN int Tcl_TraceVar (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_VarTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_TraceVar2_TCL_DECLARED +#define Tcl_TraceVar2_TCL_DECLARED +/* 248 */ +EXTERN int Tcl_TraceVar2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags, Tcl_VarTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_TranslateFileName_TCL_DECLARED +#define Tcl_TranslateFileName_TCL_DECLARED +/* 249 */ +EXTERN char * Tcl_TranslateFileName (Tcl_Interp * interp, + CONST char * name, Tcl_DString * bufferPtr); +#endif +#ifndef Tcl_Ungets_TCL_DECLARED +#define Tcl_Ungets_TCL_DECLARED +/* 250 */ +EXTERN int Tcl_Ungets (Tcl_Channel chan, CONST char * str, + int len, int atHead); +#endif +#ifndef Tcl_UnlinkVar_TCL_DECLARED +#define Tcl_UnlinkVar_TCL_DECLARED +/* 251 */ +EXTERN void Tcl_UnlinkVar (Tcl_Interp * interp, + CONST char * varName); +#endif +#ifndef Tcl_UnregisterChannel_TCL_DECLARED +#define Tcl_UnregisterChannel_TCL_DECLARED +/* 252 */ +EXTERN int Tcl_UnregisterChannel (Tcl_Interp * interp, + Tcl_Channel chan); +#endif +#ifndef Tcl_UnsetVar_TCL_DECLARED +#define Tcl_UnsetVar_TCL_DECLARED +/* 253 */ +EXTERN int Tcl_UnsetVar (Tcl_Interp * interp, + CONST char * varName, int flags); +#endif +#ifndef Tcl_UnsetVar2_TCL_DECLARED +#define Tcl_UnsetVar2_TCL_DECLARED +/* 254 */ +EXTERN int Tcl_UnsetVar2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags); +#endif +#ifndef Tcl_UntraceVar_TCL_DECLARED +#define Tcl_UntraceVar_TCL_DECLARED +/* 255 */ +EXTERN void Tcl_UntraceVar (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_VarTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_UntraceVar2_TCL_DECLARED +#define Tcl_UntraceVar2_TCL_DECLARED +/* 256 */ +EXTERN void Tcl_UntraceVar2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags, Tcl_VarTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_UpdateLinkedVar_TCL_DECLARED +#define Tcl_UpdateLinkedVar_TCL_DECLARED +/* 257 */ +EXTERN void Tcl_UpdateLinkedVar (Tcl_Interp * interp, + CONST char * varName); +#endif +#ifndef Tcl_UpVar_TCL_DECLARED +#define Tcl_UpVar_TCL_DECLARED +/* 258 */ +EXTERN int Tcl_UpVar (Tcl_Interp * interp, + CONST char * frameName, CONST char * varName, + CONST char * localName, int flags); +#endif +#ifndef Tcl_UpVar2_TCL_DECLARED +#define Tcl_UpVar2_TCL_DECLARED +/* 259 */ +EXTERN int Tcl_UpVar2 (Tcl_Interp * interp, + CONST char * frameName, CONST char * part1, + CONST char * part2, CONST char * localName, + int flags); +#endif +#ifndef Tcl_VarEval_TCL_DECLARED +#define Tcl_VarEval_TCL_DECLARED +/* 260 */ +EXTERN int Tcl_VarEval (Tcl_Interp * interp, ...); +#endif +#ifndef Tcl_VarTraceInfo_TCL_DECLARED +#define Tcl_VarTraceInfo_TCL_DECLARED +/* 261 */ +EXTERN ClientData Tcl_VarTraceInfo (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_VarTraceProc * procPtr, + ClientData prevClientData); +#endif +#ifndef Tcl_VarTraceInfo2_TCL_DECLARED +#define Tcl_VarTraceInfo2_TCL_DECLARED +/* 262 */ +EXTERN ClientData Tcl_VarTraceInfo2 (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags, Tcl_VarTraceProc * procPtr, + ClientData prevClientData); +#endif +#ifndef Tcl_Write_TCL_DECLARED +#define Tcl_Write_TCL_DECLARED +/* 263 */ +EXTERN int Tcl_Write (Tcl_Channel chan, CONST char * s, + int slen); +#endif +#ifndef Tcl_WrongNumArgs_TCL_DECLARED +#define Tcl_WrongNumArgs_TCL_DECLARED +/* 264 */ +EXTERN void Tcl_WrongNumArgs (Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[], CONST char * message); +#endif +#ifndef Tcl_DumpActiveMemory_TCL_DECLARED +#define Tcl_DumpActiveMemory_TCL_DECLARED +/* 265 */ +EXTERN int Tcl_DumpActiveMemory (CONST char * fileName); +#endif +#ifndef Tcl_ValidateAllMemory_TCL_DECLARED +#define Tcl_ValidateAllMemory_TCL_DECLARED +/* 266 */ +EXTERN void Tcl_ValidateAllMemory (CONST char * file, int line); +#endif +#ifndef Tcl_AppendResultVA_TCL_DECLARED +#define Tcl_AppendResultVA_TCL_DECLARED +/* 267 */ +EXTERN void Tcl_AppendResultVA (Tcl_Interp * interp, + va_list argList); +#endif +#ifndef Tcl_AppendStringsToObjVA_TCL_DECLARED +#define Tcl_AppendStringsToObjVA_TCL_DECLARED +/* 268 */ +EXTERN void Tcl_AppendStringsToObjVA (Tcl_Obj * objPtr, + va_list argList); +#endif +#ifndef Tcl_HashStats_TCL_DECLARED +#define Tcl_HashStats_TCL_DECLARED +/* 269 */ +EXTERN CONST84_RETURN char * Tcl_HashStats (Tcl_HashTable * tablePtr); +#endif +#ifndef Tcl_ParseVar_TCL_DECLARED +#define Tcl_ParseVar_TCL_DECLARED +/* 270 */ +EXTERN CONST84_RETURN char * Tcl_ParseVar (Tcl_Interp * interp, + CONST char * start, CONST84 char ** termPtr); +#endif +#ifndef Tcl_PkgPresent_TCL_DECLARED +#define Tcl_PkgPresent_TCL_DECLARED +/* 271 */ +EXTERN CONST84_RETURN char * Tcl_PkgPresent (Tcl_Interp * interp, + CONST char * name, CONST char * version, + int exact); +#endif +#ifndef Tcl_PkgPresentEx_TCL_DECLARED +#define Tcl_PkgPresentEx_TCL_DECLARED +/* 272 */ +EXTERN CONST84_RETURN char * Tcl_PkgPresentEx (Tcl_Interp * interp, + CONST char * name, CONST char * version, + int exact, ClientData * clientDataPtr); +#endif +#ifndef Tcl_PkgProvide_TCL_DECLARED +#define Tcl_PkgProvide_TCL_DECLARED +/* 273 */ +EXTERN int Tcl_PkgProvide (Tcl_Interp * interp, + CONST char * name, CONST char * version); +#endif +#ifndef Tcl_PkgRequire_TCL_DECLARED +#define Tcl_PkgRequire_TCL_DECLARED +/* 274 */ +EXTERN CONST84_RETURN char * Tcl_PkgRequire (Tcl_Interp * interp, + CONST char * name, CONST char * version, + int exact); +#endif +#ifndef Tcl_SetErrorCodeVA_TCL_DECLARED +#define Tcl_SetErrorCodeVA_TCL_DECLARED +/* 275 */ +EXTERN void Tcl_SetErrorCodeVA (Tcl_Interp * interp, + va_list argList); +#endif +#ifndef Tcl_VarEvalVA_TCL_DECLARED +#define Tcl_VarEvalVA_TCL_DECLARED +/* 276 */ +EXTERN int Tcl_VarEvalVA (Tcl_Interp * interp, va_list argList); +#endif +#ifndef Tcl_WaitPid_TCL_DECLARED +#define Tcl_WaitPid_TCL_DECLARED +/* 277 */ +EXTERN Tcl_Pid Tcl_WaitPid (Tcl_Pid pid, int * statPtr, int options); +#endif +#ifndef Tcl_PanicVA_TCL_DECLARED +#define Tcl_PanicVA_TCL_DECLARED +/* 278 */ +EXTERN void Tcl_PanicVA (CONST char * format, va_list argList); +#endif +#ifndef Tcl_GetVersion_TCL_DECLARED +#define Tcl_GetVersion_TCL_DECLARED +/* 279 */ +EXTERN void Tcl_GetVersion (int * major, int * minor, + int * patchLevel, int * type); +#endif +#ifndef Tcl_InitMemory_TCL_DECLARED +#define Tcl_InitMemory_TCL_DECLARED +/* 280 */ +EXTERN void Tcl_InitMemory (Tcl_Interp * interp); +#endif +#ifndef Tcl_StackChannel_TCL_DECLARED +#define Tcl_StackChannel_TCL_DECLARED +/* 281 */ +EXTERN Tcl_Channel Tcl_StackChannel (Tcl_Interp * interp, + Tcl_ChannelType * typePtr, + ClientData instanceData, int mask, + Tcl_Channel prevChan); +#endif +#ifndef Tcl_UnstackChannel_TCL_DECLARED +#define Tcl_UnstackChannel_TCL_DECLARED +/* 282 */ +EXTERN int Tcl_UnstackChannel (Tcl_Interp * interp, + Tcl_Channel chan); +#endif +#ifndef Tcl_GetStackedChannel_TCL_DECLARED +#define Tcl_GetStackedChannel_TCL_DECLARED +/* 283 */ +EXTERN Tcl_Channel Tcl_GetStackedChannel (Tcl_Channel chan); +#endif +#ifndef Tcl_SetMainLoop_TCL_DECLARED +#define Tcl_SetMainLoop_TCL_DECLARED +/* 284 */ +EXTERN void Tcl_SetMainLoop (Tcl_MainLoopProc * proc); +#endif +/* Slot 285 is reserved */ +#ifndef Tcl_AppendObjToObj_TCL_DECLARED +#define Tcl_AppendObjToObj_TCL_DECLARED +/* 286 */ +EXTERN void Tcl_AppendObjToObj (Tcl_Obj * objPtr, + Tcl_Obj * appendObjPtr); +#endif +#ifndef Tcl_CreateEncoding_TCL_DECLARED +#define Tcl_CreateEncoding_TCL_DECLARED +/* 287 */ +EXTERN Tcl_Encoding Tcl_CreateEncoding (const Tcl_EncodingType * typePtr); +#endif +#ifndef Tcl_CreateThreadExitHandler_TCL_DECLARED +#define Tcl_CreateThreadExitHandler_TCL_DECLARED +/* 288 */ +EXTERN void Tcl_CreateThreadExitHandler (Tcl_ExitProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DeleteThreadExitHandler_TCL_DECLARED +#define Tcl_DeleteThreadExitHandler_TCL_DECLARED +/* 289 */ +EXTERN void Tcl_DeleteThreadExitHandler (Tcl_ExitProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_DiscardResult_TCL_DECLARED +#define Tcl_DiscardResult_TCL_DECLARED +/* 290 */ +EXTERN void Tcl_DiscardResult (Tcl_SavedResult * statePtr); +#endif +#ifndef Tcl_EvalEx_TCL_DECLARED +#define Tcl_EvalEx_TCL_DECLARED +/* 291 */ +EXTERN int Tcl_EvalEx (Tcl_Interp * interp, CONST char * script, + int numBytes, int flags); +#endif +#ifndef Tcl_EvalObjv_TCL_DECLARED +#define Tcl_EvalObjv_TCL_DECLARED +/* 292 */ +EXTERN int Tcl_EvalObjv (Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[], int flags); +#endif +#ifndef Tcl_EvalObjEx_TCL_DECLARED +#define Tcl_EvalObjEx_TCL_DECLARED +/* 293 */ +EXTERN int Tcl_EvalObjEx (Tcl_Interp * interp, Tcl_Obj * objPtr, + int flags); +#endif +#ifndef Tcl_ExitThread_TCL_DECLARED +#define Tcl_ExitThread_TCL_DECLARED +/* 294 */ +EXTERN void Tcl_ExitThread (int status); +#endif +#ifndef Tcl_ExternalToUtf_TCL_DECLARED +#define Tcl_ExternalToUtf_TCL_DECLARED +/* 295 */ +EXTERN int Tcl_ExternalToUtf (Tcl_Interp * interp, + Tcl_Encoding encoding, CONST char * src, + int srcLen, int flags, + Tcl_EncodingState * statePtr, char * dst, + int dstLen, int * srcReadPtr, + int * dstWrotePtr, int * dstCharsPtr); +#endif +#ifndef Tcl_ExternalToUtfDString_TCL_DECLARED +#define Tcl_ExternalToUtfDString_TCL_DECLARED +/* 296 */ +EXTERN char * Tcl_ExternalToUtfDString (Tcl_Encoding encoding, + CONST char * src, int srcLen, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_FinalizeThread_TCL_DECLARED +#define Tcl_FinalizeThread_TCL_DECLARED +/* 297 */ +EXTERN void Tcl_FinalizeThread (void); +#endif +#ifndef Tcl_FinalizeNotifier_TCL_DECLARED +#define Tcl_FinalizeNotifier_TCL_DECLARED +/* 298 */ +EXTERN void Tcl_FinalizeNotifier (ClientData clientData); +#endif +#ifndef Tcl_FreeEncoding_TCL_DECLARED +#define Tcl_FreeEncoding_TCL_DECLARED +/* 299 */ +EXTERN void Tcl_FreeEncoding (Tcl_Encoding encoding); +#endif +#ifndef Tcl_GetCurrentThread_TCL_DECLARED +#define Tcl_GetCurrentThread_TCL_DECLARED +/* 300 */ +EXTERN Tcl_ThreadId Tcl_GetCurrentThread (void); +#endif +#ifndef Tcl_GetEncoding_TCL_DECLARED +#define Tcl_GetEncoding_TCL_DECLARED +/* 301 */ +EXTERN Tcl_Encoding Tcl_GetEncoding (Tcl_Interp * interp, + CONST char * name); +#endif +#ifndef Tcl_GetEncodingName_TCL_DECLARED +#define Tcl_GetEncodingName_TCL_DECLARED +/* 302 */ +EXTERN CONST84_RETURN char * Tcl_GetEncodingName (Tcl_Encoding encoding); +#endif +#ifndef Tcl_GetEncodingNames_TCL_DECLARED +#define Tcl_GetEncodingNames_TCL_DECLARED +/* 303 */ +EXTERN void Tcl_GetEncodingNames (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetIndexFromObjStruct_TCL_DECLARED +#define Tcl_GetIndexFromObjStruct_TCL_DECLARED +/* 304 */ +EXTERN int Tcl_GetIndexFromObjStruct (Tcl_Interp * interp, + Tcl_Obj * objPtr, CONST VOID * tablePtr, + int offset, CONST char * msg, int flags, + int * indexPtr); +#endif +#ifndef Tcl_GetThreadData_TCL_DECLARED +#define Tcl_GetThreadData_TCL_DECLARED +/* 305 */ +EXTERN VOID * Tcl_GetThreadData (Tcl_ThreadDataKey * keyPtr, + int size); +#endif +#ifndef Tcl_GetVar2Ex_TCL_DECLARED +#define Tcl_GetVar2Ex_TCL_DECLARED +/* 306 */ +EXTERN Tcl_Obj * Tcl_GetVar2Ex (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + int flags); +#endif +#ifndef Tcl_InitNotifier_TCL_DECLARED +#define Tcl_InitNotifier_TCL_DECLARED +/* 307 */ +EXTERN ClientData Tcl_InitNotifier (void); +#endif +#ifndef Tcl_MutexLock_TCL_DECLARED +#define Tcl_MutexLock_TCL_DECLARED +/* 308 */ +EXTERN void Tcl_MutexLock (Tcl_Mutex * mutexPtr); +#endif +#ifndef Tcl_MutexUnlock_TCL_DECLARED +#define Tcl_MutexUnlock_TCL_DECLARED +/* 309 */ +EXTERN void Tcl_MutexUnlock (Tcl_Mutex * mutexPtr); +#endif +#ifndef Tcl_ConditionNotify_TCL_DECLARED +#define Tcl_ConditionNotify_TCL_DECLARED +/* 310 */ +EXTERN void Tcl_ConditionNotify (Tcl_Condition * condPtr); +#endif +#ifndef Tcl_ConditionWait_TCL_DECLARED +#define Tcl_ConditionWait_TCL_DECLARED +/* 311 */ +EXTERN void Tcl_ConditionWait (Tcl_Condition * condPtr, + Tcl_Mutex * mutexPtr, Tcl_Time * timePtr); +#endif +#ifndef Tcl_NumUtfChars_TCL_DECLARED +#define Tcl_NumUtfChars_TCL_DECLARED +/* 312 */ +EXTERN int Tcl_NumUtfChars (CONST char * src, int length); +#endif +#ifndef Tcl_ReadChars_TCL_DECLARED +#define Tcl_ReadChars_TCL_DECLARED +/* 313 */ +EXTERN int Tcl_ReadChars (Tcl_Channel channel, Tcl_Obj * objPtr, + int charsToRead, int appendFlag); +#endif +#ifndef Tcl_RestoreResult_TCL_DECLARED +#define Tcl_RestoreResult_TCL_DECLARED +/* 314 */ +EXTERN void Tcl_RestoreResult (Tcl_Interp * interp, + Tcl_SavedResult * statePtr); +#endif +#ifndef Tcl_SaveResult_TCL_DECLARED +#define Tcl_SaveResult_TCL_DECLARED +/* 315 */ +EXTERN void Tcl_SaveResult (Tcl_Interp * interp, + Tcl_SavedResult * statePtr); +#endif +#ifndef Tcl_SetSystemEncoding_TCL_DECLARED +#define Tcl_SetSystemEncoding_TCL_DECLARED +/* 316 */ +EXTERN int Tcl_SetSystemEncoding (Tcl_Interp * interp, + CONST char * name); +#endif +#ifndef Tcl_SetVar2Ex_TCL_DECLARED +#define Tcl_SetVar2Ex_TCL_DECLARED +/* 317 */ +EXTERN Tcl_Obj * Tcl_SetVar2Ex (Tcl_Interp * interp, + CONST char * part1, CONST char * part2, + Tcl_Obj * newValuePtr, int flags); +#endif +#ifndef Tcl_ThreadAlert_TCL_DECLARED +#define Tcl_ThreadAlert_TCL_DECLARED +/* 318 */ +EXTERN void Tcl_ThreadAlert (Tcl_ThreadId threadId); +#endif +#ifndef Tcl_ThreadQueueEvent_TCL_DECLARED +#define Tcl_ThreadQueueEvent_TCL_DECLARED +/* 319 */ +EXTERN void Tcl_ThreadQueueEvent (Tcl_ThreadId threadId, + Tcl_Event* evPtr, Tcl_QueuePosition position); +#endif +#ifndef Tcl_UniCharAtIndex_TCL_DECLARED +#define Tcl_UniCharAtIndex_TCL_DECLARED +/* 320 */ +EXTERN Tcl_UniChar Tcl_UniCharAtIndex (CONST char * src, int index); +#endif +#ifndef Tcl_UniCharToLower_TCL_DECLARED +#define Tcl_UniCharToLower_TCL_DECLARED +/* 321 */ +EXTERN Tcl_UniChar Tcl_UniCharToLower (int ch); +#endif +#ifndef Tcl_UniCharToTitle_TCL_DECLARED +#define Tcl_UniCharToTitle_TCL_DECLARED +/* 322 */ +EXTERN Tcl_UniChar Tcl_UniCharToTitle (int ch); +#endif +#ifndef Tcl_UniCharToUpper_TCL_DECLARED +#define Tcl_UniCharToUpper_TCL_DECLARED +/* 323 */ +EXTERN Tcl_UniChar Tcl_UniCharToUpper (int ch); +#endif +#ifndef Tcl_UniCharToUtf_TCL_DECLARED +#define Tcl_UniCharToUtf_TCL_DECLARED +/* 324 */ +EXTERN int Tcl_UniCharToUtf (int ch, char * buf); +#endif +#ifndef Tcl_UtfAtIndex_TCL_DECLARED +#define Tcl_UtfAtIndex_TCL_DECLARED +/* 325 */ +EXTERN CONST84_RETURN char * Tcl_UtfAtIndex (CONST char * src, int index); +#endif +#ifndef Tcl_UtfCharComplete_TCL_DECLARED +#define Tcl_UtfCharComplete_TCL_DECLARED +/* 326 */ +EXTERN int Tcl_UtfCharComplete (CONST char * src, int length); +#endif +#ifndef Tcl_UtfBackslash_TCL_DECLARED +#define Tcl_UtfBackslash_TCL_DECLARED +/* 327 */ +EXTERN int Tcl_UtfBackslash (CONST char * src, int * readPtr, + char * dst); +#endif +#ifndef Tcl_UtfFindFirst_TCL_DECLARED +#define Tcl_UtfFindFirst_TCL_DECLARED +/* 328 */ +EXTERN CONST84_RETURN char * Tcl_UtfFindFirst (CONST char * src, int ch); +#endif +#ifndef Tcl_UtfFindLast_TCL_DECLARED +#define Tcl_UtfFindLast_TCL_DECLARED +/* 329 */ +EXTERN CONST84_RETURN char * Tcl_UtfFindLast (CONST char * src, int ch); +#endif +#ifndef Tcl_UtfNext_TCL_DECLARED +#define Tcl_UtfNext_TCL_DECLARED +/* 330 */ +EXTERN CONST84_RETURN char * Tcl_UtfNext (CONST char * src); +#endif +#ifndef Tcl_UtfPrev_TCL_DECLARED +#define Tcl_UtfPrev_TCL_DECLARED +/* 331 */ +EXTERN CONST84_RETURN char * Tcl_UtfPrev (CONST char * src, + CONST char * start); +#endif +#ifndef Tcl_UtfToExternal_TCL_DECLARED +#define Tcl_UtfToExternal_TCL_DECLARED +/* 332 */ +EXTERN int Tcl_UtfToExternal (Tcl_Interp * interp, + Tcl_Encoding encoding, CONST char * src, + int srcLen, int flags, + Tcl_EncodingState * statePtr, char * dst, + int dstLen, int * srcReadPtr, + int * dstWrotePtr, int * dstCharsPtr); +#endif +#ifndef Tcl_UtfToExternalDString_TCL_DECLARED +#define Tcl_UtfToExternalDString_TCL_DECLARED +/* 333 */ +EXTERN char * Tcl_UtfToExternalDString (Tcl_Encoding encoding, + CONST char * src, int srcLen, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_UtfToLower_TCL_DECLARED +#define Tcl_UtfToLower_TCL_DECLARED +/* 334 */ +EXTERN int Tcl_UtfToLower (char * src); +#endif +#ifndef Tcl_UtfToTitle_TCL_DECLARED +#define Tcl_UtfToTitle_TCL_DECLARED +/* 335 */ +EXTERN int Tcl_UtfToTitle (char * src); +#endif +#ifndef Tcl_UtfToUniChar_TCL_DECLARED +#define Tcl_UtfToUniChar_TCL_DECLARED +/* 336 */ +EXTERN int Tcl_UtfToUniChar (CONST char * src, + Tcl_UniChar * chPtr); +#endif +#ifndef Tcl_UtfToUpper_TCL_DECLARED +#define Tcl_UtfToUpper_TCL_DECLARED +/* 337 */ +EXTERN int Tcl_UtfToUpper (char * src); +#endif +#ifndef Tcl_WriteChars_TCL_DECLARED +#define Tcl_WriteChars_TCL_DECLARED +/* 338 */ +EXTERN int Tcl_WriteChars (Tcl_Channel chan, CONST char * src, + int srcLen); +#endif +#ifndef Tcl_WriteObj_TCL_DECLARED +#define Tcl_WriteObj_TCL_DECLARED +/* 339 */ +EXTERN int Tcl_WriteObj (Tcl_Channel chan, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetString_TCL_DECLARED +#define Tcl_GetString_TCL_DECLARED +/* 340 */ +EXTERN char * Tcl_GetString (Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetDefaultEncodingDir_TCL_DECLARED +#define Tcl_GetDefaultEncodingDir_TCL_DECLARED +/* 341 */ +EXTERN CONST84_RETURN char * Tcl_GetDefaultEncodingDir (void); +#endif +#ifndef Tcl_SetDefaultEncodingDir_TCL_DECLARED +#define Tcl_SetDefaultEncodingDir_TCL_DECLARED +/* 342 */ +EXTERN void Tcl_SetDefaultEncodingDir (CONST char * path); +#endif +#ifndef Tcl_AlertNotifier_TCL_DECLARED +#define Tcl_AlertNotifier_TCL_DECLARED +/* 343 */ +EXTERN void Tcl_AlertNotifier (ClientData clientData); +#endif +#ifndef Tcl_ServiceModeHook_TCL_DECLARED +#define Tcl_ServiceModeHook_TCL_DECLARED +/* 344 */ +EXTERN void Tcl_ServiceModeHook (int mode); +#endif +#ifndef Tcl_UniCharIsAlnum_TCL_DECLARED +#define Tcl_UniCharIsAlnum_TCL_DECLARED +/* 345 */ +EXTERN int Tcl_UniCharIsAlnum (int ch); +#endif +#ifndef Tcl_UniCharIsAlpha_TCL_DECLARED +#define Tcl_UniCharIsAlpha_TCL_DECLARED +/* 346 */ +EXTERN int Tcl_UniCharIsAlpha (int ch); +#endif +#ifndef Tcl_UniCharIsDigit_TCL_DECLARED +#define Tcl_UniCharIsDigit_TCL_DECLARED +/* 347 */ +EXTERN int Tcl_UniCharIsDigit (int ch); +#endif +#ifndef Tcl_UniCharIsLower_TCL_DECLARED +#define Tcl_UniCharIsLower_TCL_DECLARED +/* 348 */ +EXTERN int Tcl_UniCharIsLower (int ch); +#endif +#ifndef Tcl_UniCharIsSpace_TCL_DECLARED +#define Tcl_UniCharIsSpace_TCL_DECLARED +/* 349 */ +EXTERN int Tcl_UniCharIsSpace (int ch); +#endif +#ifndef Tcl_UniCharIsUpper_TCL_DECLARED +#define Tcl_UniCharIsUpper_TCL_DECLARED +/* 350 */ +EXTERN int Tcl_UniCharIsUpper (int ch); +#endif +#ifndef Tcl_UniCharIsWordChar_TCL_DECLARED +#define Tcl_UniCharIsWordChar_TCL_DECLARED +/* 351 */ +EXTERN int Tcl_UniCharIsWordChar (int ch); +#endif +#ifndef Tcl_UniCharLen_TCL_DECLARED +#define Tcl_UniCharLen_TCL_DECLARED +/* 352 */ +EXTERN int Tcl_UniCharLen (CONST Tcl_UniChar * uniStr); +#endif +#ifndef Tcl_UniCharNcmp_TCL_DECLARED +#define Tcl_UniCharNcmp_TCL_DECLARED +/* 353 */ +EXTERN int Tcl_UniCharNcmp (CONST Tcl_UniChar * ucs, + CONST Tcl_UniChar * uct, + unsigned long numChars); +#endif +#ifndef Tcl_UniCharToUtfDString_TCL_DECLARED +#define Tcl_UniCharToUtfDString_TCL_DECLARED +/* 354 */ +EXTERN char * Tcl_UniCharToUtfDString (CONST Tcl_UniChar * uniStr, + int uniLength, Tcl_DString * dsPtr); +#endif +#ifndef Tcl_UtfToUniCharDString_TCL_DECLARED +#define Tcl_UtfToUniCharDString_TCL_DECLARED +/* 355 */ +EXTERN Tcl_UniChar * Tcl_UtfToUniCharDString (CONST char * src, + int length, Tcl_DString * dsPtr); +#endif +#ifndef Tcl_GetRegExpFromObj_TCL_DECLARED +#define Tcl_GetRegExpFromObj_TCL_DECLARED +/* 356 */ +EXTERN Tcl_RegExp Tcl_GetRegExpFromObj (Tcl_Interp * interp, + Tcl_Obj * patObj, int flags); +#endif +#ifndef Tcl_EvalTokens_TCL_DECLARED +#define Tcl_EvalTokens_TCL_DECLARED +/* 357 */ +EXTERN Tcl_Obj * Tcl_EvalTokens (Tcl_Interp * interp, + Tcl_Token * tokenPtr, int count); +#endif +#ifndef Tcl_FreeParse_TCL_DECLARED +#define Tcl_FreeParse_TCL_DECLARED +/* 358 */ +EXTERN void Tcl_FreeParse (Tcl_Parse * parsePtr); +#endif +#ifndef Tcl_LogCommandInfo_TCL_DECLARED +#define Tcl_LogCommandInfo_TCL_DECLARED +/* 359 */ +EXTERN void Tcl_LogCommandInfo (Tcl_Interp * interp, + CONST char * script, CONST char * command, + int length); +#endif +#ifndef Tcl_ParseBraces_TCL_DECLARED +#define Tcl_ParseBraces_TCL_DECLARED +/* 360 */ +EXTERN int Tcl_ParseBraces (Tcl_Interp * interp, + CONST char * start, int numBytes, + Tcl_Parse * parsePtr, int append, + CONST84 char ** termPtr); +#endif +#ifndef Tcl_ParseCommand_TCL_DECLARED +#define Tcl_ParseCommand_TCL_DECLARED +/* 361 */ +EXTERN int Tcl_ParseCommand (Tcl_Interp * interp, + CONST char * start, int numBytes, int nested, + Tcl_Parse * parsePtr); +#endif +#ifndef Tcl_ParseExpr_TCL_DECLARED +#define Tcl_ParseExpr_TCL_DECLARED +/* 362 */ +EXTERN int Tcl_ParseExpr (Tcl_Interp * interp, + CONST char * start, int numBytes, + Tcl_Parse * parsePtr); +#endif +#ifndef Tcl_ParseQuotedString_TCL_DECLARED +#define Tcl_ParseQuotedString_TCL_DECLARED +/* 363 */ +EXTERN int Tcl_ParseQuotedString (Tcl_Interp * interp, + CONST char * start, int numBytes, + Tcl_Parse * parsePtr, int append, + CONST84 char ** termPtr); +#endif +#ifndef Tcl_ParseVarName_TCL_DECLARED +#define Tcl_ParseVarName_TCL_DECLARED +/* 364 */ +EXTERN int Tcl_ParseVarName (Tcl_Interp * interp, + CONST char * start, int numBytes, + Tcl_Parse * parsePtr, int append); +#endif +#ifndef Tcl_GetCwd_TCL_DECLARED +#define Tcl_GetCwd_TCL_DECLARED +/* 365 */ +EXTERN char * Tcl_GetCwd (Tcl_Interp * interp, + Tcl_DString * cwdPtr); +#endif +#ifndef Tcl_Chdir_TCL_DECLARED +#define Tcl_Chdir_TCL_DECLARED +/* 366 */ +EXTERN int Tcl_Chdir (CONST char * dirName); +#endif +#ifndef Tcl_Access_TCL_DECLARED +#define Tcl_Access_TCL_DECLARED +/* 367 */ +EXTERN int Tcl_Access (CONST char * path, int mode); +#endif +#ifndef Tcl_Stat_TCL_DECLARED +#define Tcl_Stat_TCL_DECLARED +/* 368 */ +EXTERN int Tcl_Stat (CONST char * path, struct stat * bufPtr); +#endif +#ifndef Tcl_UtfNcmp_TCL_DECLARED +#define Tcl_UtfNcmp_TCL_DECLARED +/* 369 */ +EXTERN int Tcl_UtfNcmp (CONST char * s1, CONST char * s2, + unsigned long n); +#endif +#ifndef Tcl_UtfNcasecmp_TCL_DECLARED +#define Tcl_UtfNcasecmp_TCL_DECLARED +/* 370 */ +EXTERN int Tcl_UtfNcasecmp (CONST char * s1, CONST char * s2, + unsigned long n); +#endif +#ifndef Tcl_StringCaseMatch_TCL_DECLARED +#define Tcl_StringCaseMatch_TCL_DECLARED +/* 371 */ +EXTERN int Tcl_StringCaseMatch (CONST char * str, + CONST char * pattern, int nocase); +#endif +#ifndef Tcl_UniCharIsControl_TCL_DECLARED +#define Tcl_UniCharIsControl_TCL_DECLARED +/* 372 */ +EXTERN int Tcl_UniCharIsControl (int ch); +#endif +#ifndef Tcl_UniCharIsGraph_TCL_DECLARED +#define Tcl_UniCharIsGraph_TCL_DECLARED +/* 373 */ +EXTERN int Tcl_UniCharIsGraph (int ch); +#endif +#ifndef Tcl_UniCharIsPrint_TCL_DECLARED +#define Tcl_UniCharIsPrint_TCL_DECLARED +/* 374 */ +EXTERN int Tcl_UniCharIsPrint (int ch); +#endif +#ifndef Tcl_UniCharIsPunct_TCL_DECLARED +#define Tcl_UniCharIsPunct_TCL_DECLARED +/* 375 */ +EXTERN int Tcl_UniCharIsPunct (int ch); +#endif +#ifndef Tcl_RegExpExecObj_TCL_DECLARED +#define Tcl_RegExpExecObj_TCL_DECLARED +/* 376 */ +EXTERN int Tcl_RegExpExecObj (Tcl_Interp * interp, + Tcl_RegExp regexp, Tcl_Obj * textObj, + int offset, int nmatches, int flags); +#endif +#ifndef Tcl_RegExpGetInfo_TCL_DECLARED +#define Tcl_RegExpGetInfo_TCL_DECLARED +/* 377 */ +EXTERN void Tcl_RegExpGetInfo (Tcl_RegExp regexp, + Tcl_RegExpInfo * infoPtr); +#endif +#ifndef Tcl_NewUnicodeObj_TCL_DECLARED +#define Tcl_NewUnicodeObj_TCL_DECLARED +/* 378 */ +EXTERN Tcl_Obj * Tcl_NewUnicodeObj (CONST Tcl_UniChar * unicode, + int numChars); +#endif +#ifndef Tcl_SetUnicodeObj_TCL_DECLARED +#define Tcl_SetUnicodeObj_TCL_DECLARED +/* 379 */ +EXTERN void Tcl_SetUnicodeObj (Tcl_Obj * objPtr, + CONST Tcl_UniChar * unicode, int numChars); +#endif +#ifndef Tcl_GetCharLength_TCL_DECLARED +#define Tcl_GetCharLength_TCL_DECLARED +/* 380 */ +EXTERN int Tcl_GetCharLength (Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetUniChar_TCL_DECLARED +#define Tcl_GetUniChar_TCL_DECLARED +/* 381 */ +EXTERN Tcl_UniChar Tcl_GetUniChar (Tcl_Obj * objPtr, int index); +#endif +#ifndef Tcl_GetUnicode_TCL_DECLARED +#define Tcl_GetUnicode_TCL_DECLARED +/* 382 */ +EXTERN Tcl_UniChar * Tcl_GetUnicode (Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetRange_TCL_DECLARED +#define Tcl_GetRange_TCL_DECLARED +/* 383 */ +EXTERN Tcl_Obj * Tcl_GetRange (Tcl_Obj * objPtr, int first, int last); +#endif +#ifndef Tcl_AppendUnicodeToObj_TCL_DECLARED +#define Tcl_AppendUnicodeToObj_TCL_DECLARED +/* 384 */ +EXTERN void Tcl_AppendUnicodeToObj (Tcl_Obj * objPtr, + CONST Tcl_UniChar * unicode, int length); +#endif +#ifndef Tcl_RegExpMatchObj_TCL_DECLARED +#define Tcl_RegExpMatchObj_TCL_DECLARED +/* 385 */ +EXTERN int Tcl_RegExpMatchObj (Tcl_Interp * interp, + Tcl_Obj * textObj, Tcl_Obj * patternObj); +#endif +#ifndef Tcl_SetNotifier_TCL_DECLARED +#define Tcl_SetNotifier_TCL_DECLARED +/* 386 */ +EXTERN void Tcl_SetNotifier (Tcl_NotifierProcs * notifierProcPtr); +#endif +#ifndef Tcl_GetAllocMutex_TCL_DECLARED +#define Tcl_GetAllocMutex_TCL_DECLARED +/* 387 */ +EXTERN Tcl_Mutex * Tcl_GetAllocMutex (void); +#endif +#ifndef Tcl_GetChannelNames_TCL_DECLARED +#define Tcl_GetChannelNames_TCL_DECLARED +/* 388 */ +EXTERN int Tcl_GetChannelNames (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetChannelNamesEx_TCL_DECLARED +#define Tcl_GetChannelNamesEx_TCL_DECLARED +/* 389 */ +EXTERN int Tcl_GetChannelNamesEx (Tcl_Interp * interp, + CONST char * pattern); +#endif +#ifndef Tcl_ProcObjCmd_TCL_DECLARED +#define Tcl_ProcObjCmd_TCL_DECLARED +/* 390 */ +EXTERN int Tcl_ProcObjCmd (ClientData clientData, + Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_ConditionFinalize_TCL_DECLARED +#define Tcl_ConditionFinalize_TCL_DECLARED +/* 391 */ +EXTERN void Tcl_ConditionFinalize (Tcl_Condition * condPtr); +#endif +#ifndef Tcl_MutexFinalize_TCL_DECLARED +#define Tcl_MutexFinalize_TCL_DECLARED +/* 392 */ +EXTERN void Tcl_MutexFinalize (Tcl_Mutex * mutex); +#endif +#ifndef Tcl_CreateThread_TCL_DECLARED +#define Tcl_CreateThread_TCL_DECLARED +/* 393 */ +EXTERN int Tcl_CreateThread (Tcl_ThreadId * idPtr, + Tcl_ThreadCreateProc proc, + ClientData clientData, int stackSize, + int flags); +#endif +#ifndef Tcl_ReadRaw_TCL_DECLARED +#define Tcl_ReadRaw_TCL_DECLARED +/* 394 */ +EXTERN int Tcl_ReadRaw (Tcl_Channel chan, char * dst, + int bytesToRead); +#endif +#ifndef Tcl_WriteRaw_TCL_DECLARED +#define Tcl_WriteRaw_TCL_DECLARED +/* 395 */ +EXTERN int Tcl_WriteRaw (Tcl_Channel chan, CONST char * src, + int srcLen); +#endif +#ifndef Tcl_GetTopChannel_TCL_DECLARED +#define Tcl_GetTopChannel_TCL_DECLARED +/* 396 */ +EXTERN Tcl_Channel Tcl_GetTopChannel (Tcl_Channel chan); +#endif +#ifndef Tcl_ChannelBuffered_TCL_DECLARED +#define Tcl_ChannelBuffered_TCL_DECLARED +/* 397 */ +EXTERN int Tcl_ChannelBuffered (Tcl_Channel chan); +#endif +#ifndef Tcl_ChannelName_TCL_DECLARED +#define Tcl_ChannelName_TCL_DECLARED +/* 398 */ +EXTERN CONST84_RETURN char * Tcl_ChannelName ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelVersion_TCL_DECLARED +#define Tcl_ChannelVersion_TCL_DECLARED +/* 399 */ +EXTERN Tcl_ChannelTypeVersion Tcl_ChannelVersion ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelBlockModeProc_TCL_DECLARED +#define Tcl_ChannelBlockModeProc_TCL_DECLARED +/* 400 */ +EXTERN Tcl_DriverBlockModeProc * Tcl_ChannelBlockModeProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelCloseProc_TCL_DECLARED +#define Tcl_ChannelCloseProc_TCL_DECLARED +/* 401 */ +EXTERN Tcl_DriverCloseProc * Tcl_ChannelCloseProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelClose2Proc_TCL_DECLARED +#define Tcl_ChannelClose2Proc_TCL_DECLARED +/* 402 */ +EXTERN Tcl_DriverClose2Proc * Tcl_ChannelClose2Proc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelInputProc_TCL_DECLARED +#define Tcl_ChannelInputProc_TCL_DECLARED +/* 403 */ +EXTERN Tcl_DriverInputProc * Tcl_ChannelInputProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelOutputProc_TCL_DECLARED +#define Tcl_ChannelOutputProc_TCL_DECLARED +/* 404 */ +EXTERN Tcl_DriverOutputProc * Tcl_ChannelOutputProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelSeekProc_TCL_DECLARED +#define Tcl_ChannelSeekProc_TCL_DECLARED +/* 405 */ +EXTERN Tcl_DriverSeekProc * Tcl_ChannelSeekProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelSetOptionProc_TCL_DECLARED +#define Tcl_ChannelSetOptionProc_TCL_DECLARED +/* 406 */ +EXTERN Tcl_DriverSetOptionProc * Tcl_ChannelSetOptionProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelGetOptionProc_TCL_DECLARED +#define Tcl_ChannelGetOptionProc_TCL_DECLARED +/* 407 */ +EXTERN Tcl_DriverGetOptionProc * Tcl_ChannelGetOptionProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelWatchProc_TCL_DECLARED +#define Tcl_ChannelWatchProc_TCL_DECLARED +/* 408 */ +EXTERN Tcl_DriverWatchProc * Tcl_ChannelWatchProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelGetHandleProc_TCL_DECLARED +#define Tcl_ChannelGetHandleProc_TCL_DECLARED +/* 409 */ +EXTERN Tcl_DriverGetHandleProc * Tcl_ChannelGetHandleProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelFlushProc_TCL_DECLARED +#define Tcl_ChannelFlushProc_TCL_DECLARED +/* 410 */ +EXTERN Tcl_DriverFlushProc * Tcl_ChannelFlushProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_ChannelHandlerProc_TCL_DECLARED +#define Tcl_ChannelHandlerProc_TCL_DECLARED +/* 411 */ +EXTERN Tcl_DriverHandlerProc * Tcl_ChannelHandlerProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_JoinThread_TCL_DECLARED +#define Tcl_JoinThread_TCL_DECLARED +/* 412 */ +EXTERN int Tcl_JoinThread (Tcl_ThreadId threadId, int* result); +#endif +#ifndef Tcl_IsChannelShared_TCL_DECLARED +#define Tcl_IsChannelShared_TCL_DECLARED +/* 413 */ +EXTERN int Tcl_IsChannelShared (Tcl_Channel channel); +#endif +#ifndef Tcl_IsChannelRegistered_TCL_DECLARED +#define Tcl_IsChannelRegistered_TCL_DECLARED +/* 414 */ +EXTERN int Tcl_IsChannelRegistered (Tcl_Interp* interp, + Tcl_Channel channel); +#endif +#ifndef Tcl_CutChannel_TCL_DECLARED +#define Tcl_CutChannel_TCL_DECLARED +/* 415 */ +EXTERN void Tcl_CutChannel (Tcl_Channel channel); +#endif +#ifndef Tcl_SpliceChannel_TCL_DECLARED +#define Tcl_SpliceChannel_TCL_DECLARED +/* 416 */ +EXTERN void Tcl_SpliceChannel (Tcl_Channel channel); +#endif +#ifndef Tcl_ClearChannelHandlers_TCL_DECLARED +#define Tcl_ClearChannelHandlers_TCL_DECLARED +/* 417 */ +EXTERN void Tcl_ClearChannelHandlers (Tcl_Channel channel); +#endif +#ifndef Tcl_IsChannelExisting_TCL_DECLARED +#define Tcl_IsChannelExisting_TCL_DECLARED +/* 418 */ +EXTERN int Tcl_IsChannelExisting (CONST char* channelName); +#endif +#ifndef Tcl_UniCharNcasecmp_TCL_DECLARED +#define Tcl_UniCharNcasecmp_TCL_DECLARED +/* 419 */ +EXTERN int Tcl_UniCharNcasecmp (CONST Tcl_UniChar * ucs, + CONST Tcl_UniChar * uct, + unsigned long numChars); +#endif +#ifndef Tcl_UniCharCaseMatch_TCL_DECLARED +#define Tcl_UniCharCaseMatch_TCL_DECLARED +/* 420 */ +EXTERN int Tcl_UniCharCaseMatch (CONST Tcl_UniChar * uniStr, + CONST Tcl_UniChar * uniPattern, int nocase); +#endif +#ifndef Tcl_FindHashEntry_TCL_DECLARED +#define Tcl_FindHashEntry_TCL_DECLARED +/* 421 */ +EXTERN Tcl_HashEntry * Tcl_FindHashEntry (Tcl_HashTable * tablePtr, + CONST char * key); +#endif +#ifndef Tcl_CreateHashEntry_TCL_DECLARED +#define Tcl_CreateHashEntry_TCL_DECLARED +/* 422 */ +EXTERN Tcl_HashEntry * Tcl_CreateHashEntry (Tcl_HashTable * tablePtr, + CONST char * key, int * newPtr); +#endif +#ifndef Tcl_InitCustomHashTable_TCL_DECLARED +#define Tcl_InitCustomHashTable_TCL_DECLARED +/* 423 */ +EXTERN void Tcl_InitCustomHashTable (Tcl_HashTable * tablePtr, + int keyType, Tcl_HashKeyType * typePtr); +#endif +#ifndef Tcl_InitObjHashTable_TCL_DECLARED +#define Tcl_InitObjHashTable_TCL_DECLARED +/* 424 */ +EXTERN void Tcl_InitObjHashTable (Tcl_HashTable * tablePtr); +#endif +#ifndef Tcl_CommandTraceInfo_TCL_DECLARED +#define Tcl_CommandTraceInfo_TCL_DECLARED +/* 425 */ +EXTERN ClientData Tcl_CommandTraceInfo (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_CommandTraceProc * procPtr, + ClientData prevClientData); +#endif +#ifndef Tcl_TraceCommand_TCL_DECLARED +#define Tcl_TraceCommand_TCL_DECLARED +/* 426 */ +EXTERN int Tcl_TraceCommand (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_CommandTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_UntraceCommand_TCL_DECLARED +#define Tcl_UntraceCommand_TCL_DECLARED +/* 427 */ +EXTERN void Tcl_UntraceCommand (Tcl_Interp * interp, + CONST char * varName, int flags, + Tcl_CommandTraceProc * proc, + ClientData clientData); +#endif +#ifndef Tcl_AttemptAlloc_TCL_DECLARED +#define Tcl_AttemptAlloc_TCL_DECLARED +/* 428 */ +EXTERN char * Tcl_AttemptAlloc (unsigned int size); +#endif +#ifndef Tcl_AttemptDbCkalloc_TCL_DECLARED +#define Tcl_AttemptDbCkalloc_TCL_DECLARED +/* 429 */ +EXTERN char * Tcl_AttemptDbCkalloc (unsigned int size, + CONST char * file, int line); +#endif +#ifndef Tcl_AttemptRealloc_TCL_DECLARED +#define Tcl_AttemptRealloc_TCL_DECLARED +/* 430 */ +EXTERN char * Tcl_AttemptRealloc (char * ptr, unsigned int size); +#endif +#ifndef Tcl_AttemptDbCkrealloc_TCL_DECLARED +#define Tcl_AttemptDbCkrealloc_TCL_DECLARED +/* 431 */ +EXTERN char * Tcl_AttemptDbCkrealloc (char * ptr, + unsigned int size, CONST char * file, + int line); +#endif +#ifndef Tcl_AttemptSetObjLength_TCL_DECLARED +#define Tcl_AttemptSetObjLength_TCL_DECLARED +/* 432 */ +EXTERN int Tcl_AttemptSetObjLength (Tcl_Obj * objPtr, + int length); +#endif +#ifndef Tcl_GetChannelThread_TCL_DECLARED +#define Tcl_GetChannelThread_TCL_DECLARED +/* 433 */ +EXTERN Tcl_ThreadId Tcl_GetChannelThread (Tcl_Channel channel); +#endif +#ifndef Tcl_GetUnicodeFromObj_TCL_DECLARED +#define Tcl_GetUnicodeFromObj_TCL_DECLARED +/* 434 */ +EXTERN Tcl_UniChar * Tcl_GetUnicodeFromObj (Tcl_Obj * objPtr, + int * lengthPtr); +#endif +#ifndef Tcl_GetMathFuncInfo_TCL_DECLARED +#define Tcl_GetMathFuncInfo_TCL_DECLARED +/* 435 */ +EXTERN int Tcl_GetMathFuncInfo (Tcl_Interp * interp, + CONST char * name, int * numArgsPtr, + Tcl_ValueType ** argTypesPtr, + Tcl_MathProc ** procPtr, + ClientData * clientDataPtr); +#endif +#ifndef Tcl_ListMathFuncs_TCL_DECLARED +#define Tcl_ListMathFuncs_TCL_DECLARED +/* 436 */ +EXTERN Tcl_Obj * Tcl_ListMathFuncs (Tcl_Interp * interp, + CONST char * pattern); +#endif +#ifndef Tcl_SubstObj_TCL_DECLARED +#define Tcl_SubstObj_TCL_DECLARED +/* 437 */ +EXTERN Tcl_Obj * Tcl_SubstObj (Tcl_Interp * interp, Tcl_Obj * objPtr, + int flags); +#endif +#ifndef Tcl_DetachChannel_TCL_DECLARED +#define Tcl_DetachChannel_TCL_DECLARED +/* 438 */ +EXTERN int Tcl_DetachChannel (Tcl_Interp* interp, + Tcl_Channel channel); +#endif +#ifndef Tcl_IsStandardChannel_TCL_DECLARED +#define Tcl_IsStandardChannel_TCL_DECLARED +/* 439 */ +EXTERN int Tcl_IsStandardChannel (Tcl_Channel channel); +#endif +#ifndef Tcl_FSCopyFile_TCL_DECLARED +#define Tcl_FSCopyFile_TCL_DECLARED +/* 440 */ +EXTERN int Tcl_FSCopyFile (Tcl_Obj * srcPathPtr, + Tcl_Obj * destPathPtr); +#endif +#ifndef Tcl_FSCopyDirectory_TCL_DECLARED +#define Tcl_FSCopyDirectory_TCL_DECLARED +/* 441 */ +EXTERN int Tcl_FSCopyDirectory (Tcl_Obj * srcPathPtr, + Tcl_Obj * destPathPtr, Tcl_Obj ** errorPtr); +#endif +#ifndef Tcl_FSCreateDirectory_TCL_DECLARED +#define Tcl_FSCreateDirectory_TCL_DECLARED +/* 442 */ +EXTERN int Tcl_FSCreateDirectory (Tcl_Obj * pathPtr); +#endif +#ifndef Tcl_FSDeleteFile_TCL_DECLARED +#define Tcl_FSDeleteFile_TCL_DECLARED +/* 443 */ +EXTERN int Tcl_FSDeleteFile (Tcl_Obj * pathPtr); +#endif +#ifndef Tcl_FSLoadFile_TCL_DECLARED +#define Tcl_FSLoadFile_TCL_DECLARED +/* 444 */ +EXTERN int Tcl_FSLoadFile (Tcl_Interp * interp, + Tcl_Obj * pathPtr, CONST char * sym1, + CONST char * sym2, + Tcl_PackageInitProc ** proc1Ptr, + Tcl_PackageInitProc ** proc2Ptr, + Tcl_LoadHandle * handlePtr, + Tcl_FSUnloadFileProc ** unloadProcPtr); +#endif +#ifndef Tcl_FSMatchInDirectory_TCL_DECLARED +#define Tcl_FSMatchInDirectory_TCL_DECLARED +/* 445 */ +EXTERN int Tcl_FSMatchInDirectory (Tcl_Interp * interp, + Tcl_Obj * result, Tcl_Obj * pathPtr, + CONST char * pattern, + Tcl_GlobTypeData * types); +#endif +#ifndef Tcl_FSLink_TCL_DECLARED +#define Tcl_FSLink_TCL_DECLARED +/* 446 */ +EXTERN Tcl_Obj * Tcl_FSLink (Tcl_Obj * pathPtr, Tcl_Obj * toPtr, + int linkAction); +#endif +#ifndef Tcl_FSRemoveDirectory_TCL_DECLARED +#define Tcl_FSRemoveDirectory_TCL_DECLARED +/* 447 */ +EXTERN int Tcl_FSRemoveDirectory (Tcl_Obj * pathPtr, + int recursive, Tcl_Obj ** errorPtr); +#endif +#ifndef Tcl_FSRenameFile_TCL_DECLARED +#define Tcl_FSRenameFile_TCL_DECLARED +/* 448 */ +EXTERN int Tcl_FSRenameFile (Tcl_Obj * srcPathPtr, + Tcl_Obj * destPathPtr); +#endif +#ifndef Tcl_FSLstat_TCL_DECLARED +#define Tcl_FSLstat_TCL_DECLARED +/* 449 */ +EXTERN int Tcl_FSLstat (Tcl_Obj * pathPtr, Tcl_StatBuf * buf); +#endif +#ifndef Tcl_FSUtime_TCL_DECLARED +#define Tcl_FSUtime_TCL_DECLARED +/* 450 */ +EXTERN int Tcl_FSUtime (Tcl_Obj * pathPtr, + struct utimbuf * tval); +#endif +#ifndef Tcl_FSFileAttrsGet_TCL_DECLARED +#define Tcl_FSFileAttrsGet_TCL_DECLARED +/* 451 */ +EXTERN int Tcl_FSFileAttrsGet (Tcl_Interp * interp, int index, + Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef); +#endif +#ifndef Tcl_FSFileAttrsSet_TCL_DECLARED +#define Tcl_FSFileAttrsSet_TCL_DECLARED +/* 452 */ +EXTERN int Tcl_FSFileAttrsSet (Tcl_Interp * interp, int index, + Tcl_Obj * pathPtr, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_FSFileAttrStrings_TCL_DECLARED +#define Tcl_FSFileAttrStrings_TCL_DECLARED +/* 453 */ +EXTERN CONST char ** Tcl_FSFileAttrStrings (Tcl_Obj * pathPtr, + Tcl_Obj ** objPtrRef); +#endif +#ifndef Tcl_FSStat_TCL_DECLARED +#define Tcl_FSStat_TCL_DECLARED +/* 454 */ +EXTERN int Tcl_FSStat (Tcl_Obj * pathPtr, Tcl_StatBuf * buf); +#endif +#ifndef Tcl_FSAccess_TCL_DECLARED +#define Tcl_FSAccess_TCL_DECLARED +/* 455 */ +EXTERN int Tcl_FSAccess (Tcl_Obj * pathPtr, int mode); +#endif +#ifndef Tcl_FSOpenFileChannel_TCL_DECLARED +#define Tcl_FSOpenFileChannel_TCL_DECLARED +/* 456 */ +EXTERN Tcl_Channel Tcl_FSOpenFileChannel (Tcl_Interp * interp, + Tcl_Obj * pathPtr, CONST char * modeString, + int permissions); +#endif +#ifndef Tcl_FSGetCwd_TCL_DECLARED +#define Tcl_FSGetCwd_TCL_DECLARED +/* 457 */ +EXTERN Tcl_Obj* Tcl_FSGetCwd (Tcl_Interp * interp); +#endif +#ifndef Tcl_FSChdir_TCL_DECLARED +#define Tcl_FSChdir_TCL_DECLARED +/* 458 */ +EXTERN int Tcl_FSChdir (Tcl_Obj * pathPtr); +#endif +#ifndef Tcl_FSConvertToPathType_TCL_DECLARED +#define Tcl_FSConvertToPathType_TCL_DECLARED +/* 459 */ +EXTERN int Tcl_FSConvertToPathType (Tcl_Interp * interp, + Tcl_Obj * pathPtr); +#endif +#ifndef Tcl_FSJoinPath_TCL_DECLARED +#define Tcl_FSJoinPath_TCL_DECLARED +/* 460 */ +EXTERN Tcl_Obj* Tcl_FSJoinPath (Tcl_Obj * listObj, int elements); +#endif +#ifndef Tcl_FSSplitPath_TCL_DECLARED +#define Tcl_FSSplitPath_TCL_DECLARED +/* 461 */ +EXTERN Tcl_Obj* Tcl_FSSplitPath (Tcl_Obj* pathPtr, int * lenPtr); +#endif +#ifndef Tcl_FSEqualPaths_TCL_DECLARED +#define Tcl_FSEqualPaths_TCL_DECLARED +/* 462 */ +EXTERN int Tcl_FSEqualPaths (Tcl_Obj* firstPtr, + Tcl_Obj* secondPtr); +#endif +#ifndef Tcl_FSGetNormalizedPath_TCL_DECLARED +#define Tcl_FSGetNormalizedPath_TCL_DECLARED +/* 463 */ +EXTERN Tcl_Obj* Tcl_FSGetNormalizedPath (Tcl_Interp * interp, + Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSJoinToPath_TCL_DECLARED +#define Tcl_FSJoinToPath_TCL_DECLARED +/* 464 */ +EXTERN Tcl_Obj* Tcl_FSJoinToPath (Tcl_Obj * pathPtr, int objc, + Tcl_Obj *CONST objv[]); +#endif +#ifndef Tcl_FSGetInternalRep_TCL_DECLARED +#define Tcl_FSGetInternalRep_TCL_DECLARED +/* 465 */ +EXTERN ClientData Tcl_FSGetInternalRep (Tcl_Obj* pathPtr, + Tcl_Filesystem * fsPtr); +#endif +#ifndef Tcl_FSGetTranslatedPath_TCL_DECLARED +#define Tcl_FSGetTranslatedPath_TCL_DECLARED +/* 466 */ +EXTERN Tcl_Obj* Tcl_FSGetTranslatedPath (Tcl_Interp * interp, + Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSEvalFile_TCL_DECLARED +#define Tcl_FSEvalFile_TCL_DECLARED +/* 467 */ +EXTERN int Tcl_FSEvalFile (Tcl_Interp * interp, + Tcl_Obj * fileName); +#endif +#ifndef Tcl_FSNewNativePath_TCL_DECLARED +#define Tcl_FSNewNativePath_TCL_DECLARED +/* 468 */ +EXTERN Tcl_Obj* Tcl_FSNewNativePath (Tcl_Filesystem* fromFilesystem, + ClientData clientData); +#endif +#ifndef Tcl_FSGetNativePath_TCL_DECLARED +#define Tcl_FSGetNativePath_TCL_DECLARED +/* 469 */ +EXTERN CONST char* Tcl_FSGetNativePath (Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSFileSystemInfo_TCL_DECLARED +#define Tcl_FSFileSystemInfo_TCL_DECLARED +/* 470 */ +EXTERN Tcl_Obj* Tcl_FSFileSystemInfo (Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSPathSeparator_TCL_DECLARED +#define Tcl_FSPathSeparator_TCL_DECLARED +/* 471 */ +EXTERN Tcl_Obj* Tcl_FSPathSeparator (Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSListVolumes_TCL_DECLARED +#define Tcl_FSListVolumes_TCL_DECLARED +/* 472 */ +EXTERN Tcl_Obj* Tcl_FSListVolumes (void); +#endif +#ifndef Tcl_FSRegister_TCL_DECLARED +#define Tcl_FSRegister_TCL_DECLARED +/* 473 */ +EXTERN int Tcl_FSRegister (ClientData clientData, + Tcl_Filesystem * fsPtr); +#endif +#ifndef Tcl_FSUnregister_TCL_DECLARED +#define Tcl_FSUnregister_TCL_DECLARED +/* 474 */ +EXTERN int Tcl_FSUnregister (Tcl_Filesystem * fsPtr); +#endif +#ifndef Tcl_FSData_TCL_DECLARED +#define Tcl_FSData_TCL_DECLARED +/* 475 */ +EXTERN ClientData Tcl_FSData (Tcl_Filesystem * fsPtr); +#endif +#ifndef Tcl_FSGetTranslatedStringPath_TCL_DECLARED +#define Tcl_FSGetTranslatedStringPath_TCL_DECLARED +/* 476 */ +EXTERN CONST char* Tcl_FSGetTranslatedStringPath (Tcl_Interp * interp, + Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSGetFileSystemForPath_TCL_DECLARED +#define Tcl_FSGetFileSystemForPath_TCL_DECLARED +/* 477 */ +EXTERN Tcl_Filesystem* Tcl_FSGetFileSystemForPath (Tcl_Obj* pathPtr); +#endif +#ifndef Tcl_FSGetPathType_TCL_DECLARED +#define Tcl_FSGetPathType_TCL_DECLARED +/* 478 */ +EXTERN Tcl_PathType Tcl_FSGetPathType (Tcl_Obj * pathPtr); +#endif +#ifndef Tcl_OutputBuffered_TCL_DECLARED +#define Tcl_OutputBuffered_TCL_DECLARED +/* 479 */ +EXTERN int Tcl_OutputBuffered (Tcl_Channel chan); +#endif +#ifndef Tcl_FSMountsChanged_TCL_DECLARED +#define Tcl_FSMountsChanged_TCL_DECLARED +/* 480 */ +EXTERN void Tcl_FSMountsChanged (Tcl_Filesystem * fsPtr); +#endif +#ifndef Tcl_EvalTokensStandard_TCL_DECLARED +#define Tcl_EvalTokensStandard_TCL_DECLARED +/* 481 */ +EXTERN int Tcl_EvalTokensStandard (Tcl_Interp * interp, + Tcl_Token * tokenPtr, int count); +#endif +#ifndef Tcl_GetTime_TCL_DECLARED +#define Tcl_GetTime_TCL_DECLARED +/* 482 */ +EXTERN void Tcl_GetTime (Tcl_Time* timeBuf); +#endif +#ifndef Tcl_CreateObjTrace_TCL_DECLARED +#define Tcl_CreateObjTrace_TCL_DECLARED +/* 483 */ +EXTERN Tcl_Trace Tcl_CreateObjTrace (Tcl_Interp* interp, int level, + int flags, Tcl_CmdObjTraceProc* objProc, + ClientData clientData, + Tcl_CmdObjTraceDeleteProc* delProc); +#endif +#ifndef Tcl_GetCommandInfoFromToken_TCL_DECLARED +#define Tcl_GetCommandInfoFromToken_TCL_DECLARED +/* 484 */ +EXTERN int Tcl_GetCommandInfoFromToken (Tcl_Command token, + Tcl_CmdInfo* infoPtr); +#endif +#ifndef Tcl_SetCommandInfoFromToken_TCL_DECLARED +#define Tcl_SetCommandInfoFromToken_TCL_DECLARED +/* 485 */ +EXTERN int Tcl_SetCommandInfoFromToken (Tcl_Command token, + CONST Tcl_CmdInfo* infoPtr); +#endif +#ifndef Tcl_DbNewWideIntObj_TCL_DECLARED +#define Tcl_DbNewWideIntObj_TCL_DECLARED +/* 486 */ +EXTERN Tcl_Obj * Tcl_DbNewWideIntObj (Tcl_WideInt wideValue, + CONST char * file, int line); +#endif +#ifndef Tcl_GetWideIntFromObj_TCL_DECLARED +#define Tcl_GetWideIntFromObj_TCL_DECLARED +/* 487 */ +EXTERN int Tcl_GetWideIntFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, Tcl_WideInt * widePtr); +#endif +#ifndef Tcl_NewWideIntObj_TCL_DECLARED +#define Tcl_NewWideIntObj_TCL_DECLARED +/* 488 */ +EXTERN Tcl_Obj * Tcl_NewWideIntObj (Tcl_WideInt wideValue); +#endif +#ifndef Tcl_SetWideIntObj_TCL_DECLARED +#define Tcl_SetWideIntObj_TCL_DECLARED +/* 489 */ +EXTERN void Tcl_SetWideIntObj (Tcl_Obj * objPtr, + Tcl_WideInt wideValue); +#endif +#ifndef Tcl_AllocStatBuf_TCL_DECLARED +#define Tcl_AllocStatBuf_TCL_DECLARED +/* 490 */ +EXTERN Tcl_StatBuf * Tcl_AllocStatBuf (void); +#endif +#ifndef Tcl_Seek_TCL_DECLARED +#define Tcl_Seek_TCL_DECLARED +/* 491 */ +EXTERN Tcl_WideInt Tcl_Seek (Tcl_Channel chan, Tcl_WideInt offset, + int mode); +#endif +#ifndef Tcl_Tell_TCL_DECLARED +#define Tcl_Tell_TCL_DECLARED +/* 492 */ +EXTERN Tcl_WideInt Tcl_Tell (Tcl_Channel chan); +#endif +#ifndef Tcl_ChannelWideSeekProc_TCL_DECLARED +#define Tcl_ChannelWideSeekProc_TCL_DECLARED +/* 493 */ +EXTERN Tcl_DriverWideSeekProc * Tcl_ChannelWideSeekProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_DictObjPut_TCL_DECLARED +#define Tcl_DictObjPut_TCL_DECLARED +/* 494 */ +EXTERN int Tcl_DictObjPut (Tcl_Interp * interp, + Tcl_Obj * dictPtr, Tcl_Obj * keyPtr, + Tcl_Obj * valuePtr); +#endif +#ifndef Tcl_DictObjGet_TCL_DECLARED +#define Tcl_DictObjGet_TCL_DECLARED +/* 495 */ +EXTERN int Tcl_DictObjGet (Tcl_Interp * interp, + Tcl_Obj * dictPtr, Tcl_Obj * keyPtr, + Tcl_Obj ** valuePtrPtr); +#endif +#ifndef Tcl_DictObjRemove_TCL_DECLARED +#define Tcl_DictObjRemove_TCL_DECLARED +/* 496 */ +EXTERN int Tcl_DictObjRemove (Tcl_Interp * interp, + Tcl_Obj * dictPtr, Tcl_Obj * keyPtr); +#endif +#ifndef Tcl_DictObjSize_TCL_DECLARED +#define Tcl_DictObjSize_TCL_DECLARED +/* 497 */ +EXTERN int Tcl_DictObjSize (Tcl_Interp * interp, + Tcl_Obj * dictPtr, int * sizePtr); +#endif +#ifndef Tcl_DictObjFirst_TCL_DECLARED +#define Tcl_DictObjFirst_TCL_DECLARED +/* 498 */ +EXTERN int Tcl_DictObjFirst (Tcl_Interp * interp, + Tcl_Obj * dictPtr, + Tcl_DictSearch * searchPtr, + Tcl_Obj ** keyPtrPtr, Tcl_Obj ** valuePtrPtr, + int * donePtr); +#endif +#ifndef Tcl_DictObjNext_TCL_DECLARED +#define Tcl_DictObjNext_TCL_DECLARED +/* 499 */ +EXTERN void Tcl_DictObjNext (Tcl_DictSearch * searchPtr, + Tcl_Obj ** keyPtrPtr, Tcl_Obj ** valuePtrPtr, + int * donePtr); +#endif +#ifndef Tcl_DictObjDone_TCL_DECLARED +#define Tcl_DictObjDone_TCL_DECLARED +/* 500 */ +EXTERN void Tcl_DictObjDone (Tcl_DictSearch * searchPtr); +#endif +#ifndef Tcl_DictObjPutKeyList_TCL_DECLARED +#define Tcl_DictObjPutKeyList_TCL_DECLARED +/* 501 */ +EXTERN int Tcl_DictObjPutKeyList (Tcl_Interp * interp, + Tcl_Obj * dictPtr, int keyc, + Tcl_Obj *CONST * keyv, Tcl_Obj * valuePtr); +#endif +#ifndef Tcl_DictObjRemoveKeyList_TCL_DECLARED +#define Tcl_DictObjRemoveKeyList_TCL_DECLARED +/* 502 */ +EXTERN int Tcl_DictObjRemoveKeyList (Tcl_Interp * interp, + Tcl_Obj * dictPtr, int keyc, + Tcl_Obj *CONST * keyv); +#endif +#ifndef Tcl_NewDictObj_TCL_DECLARED +#define Tcl_NewDictObj_TCL_DECLARED +/* 503 */ +EXTERN Tcl_Obj * Tcl_NewDictObj (void); +#endif +#ifndef Tcl_DbNewDictObj_TCL_DECLARED +#define Tcl_DbNewDictObj_TCL_DECLARED +/* 504 */ +EXTERN Tcl_Obj * Tcl_DbNewDictObj (CONST char * file, int line); +#endif +#ifndef Tcl_RegisterConfig_TCL_DECLARED +#define Tcl_RegisterConfig_TCL_DECLARED +/* 505 */ +EXTERN void Tcl_RegisterConfig (Tcl_Interp* interp, + CONST char* pkgName, + Tcl_Config* configuration, + CONST char* valEncoding); +#endif +#ifndef Tcl_CreateNamespace_TCL_DECLARED +#define Tcl_CreateNamespace_TCL_DECLARED +/* 506 */ +EXTERN Tcl_Namespace * Tcl_CreateNamespace (Tcl_Interp * interp, + CONST char * name, ClientData clientData, + Tcl_NamespaceDeleteProc * deleteProc); +#endif +#ifndef Tcl_DeleteNamespace_TCL_DECLARED +#define Tcl_DeleteNamespace_TCL_DECLARED +/* 507 */ +EXTERN void Tcl_DeleteNamespace (Tcl_Namespace * nsPtr); +#endif +#ifndef Tcl_AppendExportList_TCL_DECLARED +#define Tcl_AppendExportList_TCL_DECLARED +/* 508 */ +EXTERN int Tcl_AppendExportList (Tcl_Interp * interp, + Tcl_Namespace * nsPtr, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_Export_TCL_DECLARED +#define Tcl_Export_TCL_DECLARED +/* 509 */ +EXTERN int Tcl_Export (Tcl_Interp * interp, + Tcl_Namespace * nsPtr, CONST char * pattern, + int resetListFirst); +#endif +#ifndef Tcl_Import_TCL_DECLARED +#define Tcl_Import_TCL_DECLARED +/* 510 */ +EXTERN int Tcl_Import (Tcl_Interp * interp, + Tcl_Namespace * nsPtr, CONST char * pattern, + int allowOverwrite); +#endif +#ifndef Tcl_ForgetImport_TCL_DECLARED +#define Tcl_ForgetImport_TCL_DECLARED +/* 511 */ +EXTERN int Tcl_ForgetImport (Tcl_Interp * interp, + Tcl_Namespace * nsPtr, CONST char * pattern); +#endif +#ifndef Tcl_GetCurrentNamespace_TCL_DECLARED +#define Tcl_GetCurrentNamespace_TCL_DECLARED +/* 512 */ +EXTERN Tcl_Namespace * Tcl_GetCurrentNamespace (Tcl_Interp * interp); +#endif +#ifndef Tcl_GetGlobalNamespace_TCL_DECLARED +#define Tcl_GetGlobalNamespace_TCL_DECLARED +/* 513 */ +EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace (Tcl_Interp * interp); +#endif +#ifndef Tcl_FindNamespace_TCL_DECLARED +#define Tcl_FindNamespace_TCL_DECLARED +/* 514 */ +EXTERN Tcl_Namespace * Tcl_FindNamespace (Tcl_Interp * interp, + CONST char * name, + Tcl_Namespace * contextNsPtr, int flags); +#endif +#ifndef Tcl_FindCommand_TCL_DECLARED +#define Tcl_FindCommand_TCL_DECLARED +/* 515 */ +EXTERN Tcl_Command Tcl_FindCommand (Tcl_Interp * interp, + CONST char * name, + Tcl_Namespace * contextNsPtr, int flags); +#endif +#ifndef Tcl_GetCommandFromObj_TCL_DECLARED +#define Tcl_GetCommandFromObj_TCL_DECLARED +/* 516 */ +EXTERN Tcl_Command Tcl_GetCommandFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr); +#endif +#ifndef Tcl_GetCommandFullName_TCL_DECLARED +#define Tcl_GetCommandFullName_TCL_DECLARED +/* 517 */ +EXTERN void Tcl_GetCommandFullName (Tcl_Interp * interp, + Tcl_Command command, Tcl_Obj * objPtr); +#endif +#ifndef Tcl_FSEvalFileEx_TCL_DECLARED +#define Tcl_FSEvalFileEx_TCL_DECLARED +/* 518 */ +EXTERN int Tcl_FSEvalFileEx (Tcl_Interp * interp, + Tcl_Obj * fileName, + CONST char * encodingName); +#endif +#ifndef Tcl_SetExitProc_TCL_DECLARED +#define Tcl_SetExitProc_TCL_DECLARED +/* 519 */ +EXTERN Tcl_ExitProc * Tcl_SetExitProc (Tcl_ExitProc * proc); +#endif +#ifndef Tcl_LimitAddHandler_TCL_DECLARED +#define Tcl_LimitAddHandler_TCL_DECLARED +/* 520 */ +EXTERN void Tcl_LimitAddHandler (Tcl_Interp * interp, int type, + Tcl_LimitHandlerProc * handlerProc, + ClientData clientData, + Tcl_LimitHandlerDeleteProc * deleteProc); +#endif +#ifndef Tcl_LimitRemoveHandler_TCL_DECLARED +#define Tcl_LimitRemoveHandler_TCL_DECLARED +/* 521 */ +EXTERN void Tcl_LimitRemoveHandler (Tcl_Interp * interp, + int type, Tcl_LimitHandlerProc * handlerProc, + ClientData clientData); +#endif +#ifndef Tcl_LimitReady_TCL_DECLARED +#define Tcl_LimitReady_TCL_DECLARED +/* 522 */ +EXTERN int Tcl_LimitReady (Tcl_Interp * interp); +#endif +#ifndef Tcl_LimitCheck_TCL_DECLARED +#define Tcl_LimitCheck_TCL_DECLARED +/* 523 */ +EXTERN int Tcl_LimitCheck (Tcl_Interp * interp); +#endif +#ifndef Tcl_LimitExceeded_TCL_DECLARED +#define Tcl_LimitExceeded_TCL_DECLARED +/* 524 */ +EXTERN int Tcl_LimitExceeded (Tcl_Interp * interp); +#endif +#ifndef Tcl_LimitSetCommands_TCL_DECLARED +#define Tcl_LimitSetCommands_TCL_DECLARED +/* 525 */ +EXTERN void Tcl_LimitSetCommands (Tcl_Interp * interp, + int commandLimit); +#endif +#ifndef Tcl_LimitSetTime_TCL_DECLARED +#define Tcl_LimitSetTime_TCL_DECLARED +/* 526 */ +EXTERN void Tcl_LimitSetTime (Tcl_Interp * interp, + Tcl_Time * timeLimitPtr); +#endif +#ifndef Tcl_LimitSetGranularity_TCL_DECLARED +#define Tcl_LimitSetGranularity_TCL_DECLARED +/* 527 */ +EXTERN void Tcl_LimitSetGranularity (Tcl_Interp * interp, + int type, int granularity); +#endif +#ifndef Tcl_LimitTypeEnabled_TCL_DECLARED +#define Tcl_LimitTypeEnabled_TCL_DECLARED +/* 528 */ +EXTERN int Tcl_LimitTypeEnabled (Tcl_Interp * interp, int type); +#endif +#ifndef Tcl_LimitTypeExceeded_TCL_DECLARED +#define Tcl_LimitTypeExceeded_TCL_DECLARED +/* 529 */ +EXTERN int Tcl_LimitTypeExceeded (Tcl_Interp * interp, int type); +#endif +#ifndef Tcl_LimitTypeSet_TCL_DECLARED +#define Tcl_LimitTypeSet_TCL_DECLARED +/* 530 */ +EXTERN void Tcl_LimitTypeSet (Tcl_Interp * interp, int type); +#endif +#ifndef Tcl_LimitTypeReset_TCL_DECLARED +#define Tcl_LimitTypeReset_TCL_DECLARED +/* 531 */ +EXTERN void Tcl_LimitTypeReset (Tcl_Interp * interp, int type); +#endif +#ifndef Tcl_LimitGetCommands_TCL_DECLARED +#define Tcl_LimitGetCommands_TCL_DECLARED +/* 532 */ +EXTERN int Tcl_LimitGetCommands (Tcl_Interp * interp); +#endif +#ifndef Tcl_LimitGetTime_TCL_DECLARED +#define Tcl_LimitGetTime_TCL_DECLARED +/* 533 */ +EXTERN void Tcl_LimitGetTime (Tcl_Interp * interp, + Tcl_Time * timeLimitPtr); +#endif +#ifndef Tcl_LimitGetGranularity_TCL_DECLARED +#define Tcl_LimitGetGranularity_TCL_DECLARED +/* 534 */ +EXTERN int Tcl_LimitGetGranularity (Tcl_Interp * interp, + int type); +#endif +#ifndef Tcl_SaveInterpState_TCL_DECLARED +#define Tcl_SaveInterpState_TCL_DECLARED +/* 535 */ +EXTERN Tcl_InterpState Tcl_SaveInterpState (Tcl_Interp * interp, int status); +#endif +#ifndef Tcl_RestoreInterpState_TCL_DECLARED +#define Tcl_RestoreInterpState_TCL_DECLARED +/* 536 */ +EXTERN int Tcl_RestoreInterpState (Tcl_Interp * interp, + Tcl_InterpState state); +#endif +#ifndef Tcl_DiscardInterpState_TCL_DECLARED +#define Tcl_DiscardInterpState_TCL_DECLARED +/* 537 */ +EXTERN void Tcl_DiscardInterpState (Tcl_InterpState state); +#endif +#ifndef Tcl_SetReturnOptions_TCL_DECLARED +#define Tcl_SetReturnOptions_TCL_DECLARED +/* 538 */ +EXTERN int Tcl_SetReturnOptions (Tcl_Interp * interp, + Tcl_Obj * options); +#endif +#ifndef Tcl_GetReturnOptions_TCL_DECLARED +#define Tcl_GetReturnOptions_TCL_DECLARED +/* 539 */ +EXTERN Tcl_Obj * Tcl_GetReturnOptions (Tcl_Interp * interp, + int result); +#endif +#ifndef Tcl_IsEnsemble_TCL_DECLARED +#define Tcl_IsEnsemble_TCL_DECLARED +/* 540 */ +EXTERN int Tcl_IsEnsemble (Tcl_Command token); +#endif +#ifndef Tcl_CreateEnsemble_TCL_DECLARED +#define Tcl_CreateEnsemble_TCL_DECLARED +/* 541 */ +EXTERN Tcl_Command Tcl_CreateEnsemble (Tcl_Interp * interp, + CONST char * name, + Tcl_Namespace * namespacePtr, int flags); +#endif +#ifndef Tcl_FindEnsemble_TCL_DECLARED +#define Tcl_FindEnsemble_TCL_DECLARED +/* 542 */ +EXTERN Tcl_Command Tcl_FindEnsemble (Tcl_Interp * interp, + Tcl_Obj * cmdNameObj, int flags); +#endif +#ifndef Tcl_SetEnsembleSubcommandList_TCL_DECLARED +#define Tcl_SetEnsembleSubcommandList_TCL_DECLARED +/* 543 */ +EXTERN int Tcl_SetEnsembleSubcommandList (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj * subcmdList); +#endif +#ifndef Tcl_SetEnsembleMappingDict_TCL_DECLARED +#define Tcl_SetEnsembleMappingDict_TCL_DECLARED +/* 544 */ +EXTERN int Tcl_SetEnsembleMappingDict (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj * mapDict); +#endif +#ifndef Tcl_SetEnsembleUnknownHandler_TCL_DECLARED +#define Tcl_SetEnsembleUnknownHandler_TCL_DECLARED +/* 545 */ +EXTERN int Tcl_SetEnsembleUnknownHandler (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj * unknownList); +#endif +#ifndef Tcl_SetEnsembleFlags_TCL_DECLARED +#define Tcl_SetEnsembleFlags_TCL_DECLARED +/* 546 */ +EXTERN int Tcl_SetEnsembleFlags (Tcl_Interp * interp, + Tcl_Command token, int flags); +#endif +#ifndef Tcl_GetEnsembleSubcommandList_TCL_DECLARED +#define Tcl_GetEnsembleSubcommandList_TCL_DECLARED +/* 547 */ +EXTERN int Tcl_GetEnsembleSubcommandList (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj ** subcmdListPtr); +#endif +#ifndef Tcl_GetEnsembleMappingDict_TCL_DECLARED +#define Tcl_GetEnsembleMappingDict_TCL_DECLARED +/* 548 */ +EXTERN int Tcl_GetEnsembleMappingDict (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj ** mapDictPtr); +#endif +#ifndef Tcl_GetEnsembleUnknownHandler_TCL_DECLARED +#define Tcl_GetEnsembleUnknownHandler_TCL_DECLARED +/* 549 */ +EXTERN int Tcl_GetEnsembleUnknownHandler (Tcl_Interp * interp, + Tcl_Command token, Tcl_Obj ** unknownListPtr); +#endif +#ifndef Tcl_GetEnsembleFlags_TCL_DECLARED +#define Tcl_GetEnsembleFlags_TCL_DECLARED +/* 550 */ +EXTERN int Tcl_GetEnsembleFlags (Tcl_Interp * interp, + Tcl_Command token, int * flagsPtr); +#endif +#ifndef Tcl_GetEnsembleNamespace_TCL_DECLARED +#define Tcl_GetEnsembleNamespace_TCL_DECLARED +/* 551 */ +EXTERN int Tcl_GetEnsembleNamespace (Tcl_Interp * interp, + Tcl_Command token, + Tcl_Namespace ** namespacePtrPtr); +#endif +#ifndef Tcl_SetTimeProc_TCL_DECLARED +#define Tcl_SetTimeProc_TCL_DECLARED +/* 552 */ +EXTERN void Tcl_SetTimeProc (Tcl_GetTimeProc* getProc, + Tcl_ScaleTimeProc* scaleProc, + ClientData clientData); +#endif +#ifndef Tcl_QueryTimeProc_TCL_DECLARED +#define Tcl_QueryTimeProc_TCL_DECLARED +/* 553 */ +EXTERN void Tcl_QueryTimeProc (Tcl_GetTimeProc** getProc, + Tcl_ScaleTimeProc** scaleProc, + ClientData* clientData); +#endif +#ifndef Tcl_ChannelThreadActionProc_TCL_DECLARED +#define Tcl_ChannelThreadActionProc_TCL_DECLARED +/* 554 */ +EXTERN Tcl_DriverThreadActionProc * Tcl_ChannelThreadActionProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_NewBignumObj_TCL_DECLARED +#define Tcl_NewBignumObj_TCL_DECLARED +/* 555 */ +EXTERN Tcl_Obj* Tcl_NewBignumObj (mp_int* value); +#endif +#ifndef Tcl_DbNewBignumObj_TCL_DECLARED +#define Tcl_DbNewBignumObj_TCL_DECLARED +/* 556 */ +EXTERN Tcl_Obj* Tcl_DbNewBignumObj (mp_int* value, CONST char* file, + int line); +#endif +#ifndef Tcl_SetBignumObj_TCL_DECLARED +#define Tcl_SetBignumObj_TCL_DECLARED +/* 557 */ +EXTERN void Tcl_SetBignumObj (Tcl_Obj* obj, mp_int* value); +#endif +#ifndef Tcl_GetBignumFromObj_TCL_DECLARED +#define Tcl_GetBignumFromObj_TCL_DECLARED +/* 558 */ +EXTERN int Tcl_GetBignumFromObj (Tcl_Interp* interp, + Tcl_Obj* obj, mp_int* value); +#endif +#ifndef Tcl_TakeBignumFromObj_TCL_DECLARED +#define Tcl_TakeBignumFromObj_TCL_DECLARED +/* 559 */ +EXTERN int Tcl_TakeBignumFromObj (Tcl_Interp* interp, + Tcl_Obj* obj, mp_int* value); +#endif +#ifndef Tcl_TruncateChannel_TCL_DECLARED +#define Tcl_TruncateChannel_TCL_DECLARED +/* 560 */ +EXTERN int Tcl_TruncateChannel (Tcl_Channel chan, + Tcl_WideInt length); +#endif +#ifndef Tcl_ChannelTruncateProc_TCL_DECLARED +#define Tcl_ChannelTruncateProc_TCL_DECLARED +/* 561 */ +EXTERN Tcl_DriverTruncateProc * Tcl_ChannelTruncateProc ( + CONST Tcl_ChannelType * chanTypePtr); +#endif +#ifndef Tcl_SetChannelErrorInterp_TCL_DECLARED +#define Tcl_SetChannelErrorInterp_TCL_DECLARED +/* 562 */ +EXTERN void Tcl_SetChannelErrorInterp (Tcl_Interp* interp, + Tcl_Obj* msg); +#endif +#ifndef Tcl_GetChannelErrorInterp_TCL_DECLARED +#define Tcl_GetChannelErrorInterp_TCL_DECLARED +/* 563 */ +EXTERN void Tcl_GetChannelErrorInterp (Tcl_Interp* interp, + Tcl_Obj** msg); +#endif +#ifndef Tcl_SetChannelError_TCL_DECLARED +#define Tcl_SetChannelError_TCL_DECLARED +/* 564 */ +EXTERN void Tcl_SetChannelError (Tcl_Channel chan, Tcl_Obj* msg); +#endif +#ifndef Tcl_GetChannelError_TCL_DECLARED +#define Tcl_GetChannelError_TCL_DECLARED +/* 565 */ +EXTERN void Tcl_GetChannelError (Tcl_Channel chan, Tcl_Obj** msg); +#endif +#ifndef Tcl_InitBignumFromDouble_TCL_DECLARED +#define Tcl_InitBignumFromDouble_TCL_DECLARED +/* 566 */ +EXTERN int Tcl_InitBignumFromDouble (Tcl_Interp* interp, + double initval, mp_int * toInit); +#endif +#ifndef Tcl_GetNamespaceUnknownHandler_TCL_DECLARED +#define Tcl_GetNamespaceUnknownHandler_TCL_DECLARED +/* 567 */ +EXTERN Tcl_Obj * Tcl_GetNamespaceUnknownHandler (Tcl_Interp * interp, + Tcl_Namespace * nsPtr); +#endif +#ifndef Tcl_SetNamespaceUnknownHandler_TCL_DECLARED +#define Tcl_SetNamespaceUnknownHandler_TCL_DECLARED +/* 568 */ +EXTERN int Tcl_SetNamespaceUnknownHandler (Tcl_Interp * interp, + Tcl_Namespace * nsPtr, Tcl_Obj * handlerPtr); +#endif +#ifndef Tcl_GetEncodingFromObj_TCL_DECLARED +#define Tcl_GetEncodingFromObj_TCL_DECLARED +/* 569 */ +EXTERN int Tcl_GetEncodingFromObj (Tcl_Interp* interp, + Tcl_Obj* objPtr, Tcl_Encoding* encodingPtr); +#endif +#ifndef Tcl_GetEncodingSearchPath_TCL_DECLARED +#define Tcl_GetEncodingSearchPath_TCL_DECLARED +/* 570 */ +EXTERN Tcl_Obj* Tcl_GetEncodingSearchPath (void); +#endif +#ifndef Tcl_SetEncodingSearchPath_TCL_DECLARED +#define Tcl_SetEncodingSearchPath_TCL_DECLARED +/* 571 */ +EXTERN int Tcl_SetEncodingSearchPath (Tcl_Obj* searchPath); +#endif +#ifndef Tcl_GetEncodingNameFromEnvironment_TCL_DECLARED +#define Tcl_GetEncodingNameFromEnvironment_TCL_DECLARED +/* 572 */ +EXTERN CONST char * Tcl_GetEncodingNameFromEnvironment ( + Tcl_DString* bufPtr); +#endif +#ifndef Tcl_PkgRequireProc_TCL_DECLARED +#define Tcl_PkgRequireProc_TCL_DECLARED +/* 573 */ +EXTERN int Tcl_PkgRequireProc (Tcl_Interp * interp, + CONST char * name, int objc, + Tcl_Obj *CONST objv[], + ClientData * clientDataPtr); +#endif +#ifndef Tcl_AppendObjToErrorInfo_TCL_DECLARED +#define Tcl_AppendObjToErrorInfo_TCL_DECLARED +/* 574 */ +EXTERN void Tcl_AppendObjToErrorInfo (Tcl_Interp * interp, + Tcl_Obj * objPtr); +#endif +#ifndef Tcl_AppendLimitedToObj_TCL_DECLARED +#define Tcl_AppendLimitedToObj_TCL_DECLARED +/* 575 */ +EXTERN void Tcl_AppendLimitedToObj (Tcl_Obj * objPtr, + CONST char * bytes, int length, int limit, + CONST char * ellipsis); +#endif +#ifndef Tcl_Format_TCL_DECLARED +#define Tcl_Format_TCL_DECLARED +/* 576 */ +EXTERN Tcl_Obj * Tcl_Format (Tcl_Interp * interp, CONST char * format, + int objc, Tcl_Obj * CONST objv[]); +#endif +#ifndef Tcl_AppendFormatToObj_TCL_DECLARED +#define Tcl_AppendFormatToObj_TCL_DECLARED +/* 577 */ +EXTERN int Tcl_AppendFormatToObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, CONST char * format, + int objc, Tcl_Obj * CONST objv[]); +#endif +#ifndef Tcl_ObjPrintf_TCL_DECLARED +#define Tcl_ObjPrintf_TCL_DECLARED +/* 578 */ +EXTERN Tcl_Obj * Tcl_ObjPrintf (CONST char * format, ...); +#endif +#ifndef Tcl_AppendPrintfToObj_TCL_DECLARED +#define Tcl_AppendPrintfToObj_TCL_DECLARED +/* 579 */ +EXTERN void Tcl_AppendPrintfToObj (Tcl_Obj * objPtr, + CONST char * format, ...); +#endif + +typedef struct TclStubHooks { + struct TclPlatStubs *tclPlatStubs; + struct TclIntStubs *tclIntStubs; + struct TclIntPlatStubs *tclIntPlatStubs; +} TclStubHooks; + +typedef struct TclStubs { + int magic; + struct TclStubHooks *hooks; + + int (*tcl_PkgProvideEx) (Tcl_Interp* interp, CONST char* name, CONST char* version, ClientData clientData); /* 0 */ + CONST84_RETURN char * (*tcl_PkgRequireEx) (Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr); /* 1 */ + void (*tcl_Panic) (CONST char * format, ...); /* 2 */ + char * (*tcl_Alloc) (unsigned int size); /* 3 */ + void (*tcl_Free) (char * ptr); /* 4 */ + char * (*tcl_Realloc) (char * ptr, unsigned int size); /* 5 */ + char * (*tcl_DbCkalloc) (unsigned int size, CONST char * file, int line); /* 6 */ + int (*tcl_DbCkfree) (char * ptr, CONST char * file, int line); /* 7 */ + char * (*tcl_DbCkrealloc) (char * ptr, unsigned int size, CONST char * file, int line); /* 8 */ +#if !defined(__WIN32__) /* UNIX */ + void (*tcl_CreateFileHandler) (int fd, int mask, Tcl_FileProc * proc, ClientData clientData); /* 9 */ +#endif /* UNIX */ +#ifdef __WIN32__ + void *reserved9; +#endif /* __WIN32__ */ +#if !defined(__WIN32__) /* UNIX */ + void (*tcl_DeleteFileHandler) (int fd); /* 10 */ +#endif /* UNIX */ +#ifdef __WIN32__ + void *reserved10; +#endif /* __WIN32__ */ + void (*tcl_SetTimer) (Tcl_Time * timePtr); /* 11 */ + void (*tcl_Sleep) (int ms); /* 12 */ + int (*tcl_WaitForEvent) (Tcl_Time * timePtr); /* 13 */ + int (*tcl_AppendAllObjTypes) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 14 */ + void (*tcl_AppendStringsToObj) (Tcl_Obj * objPtr, ...); /* 15 */ + void (*tcl_AppendToObj) (Tcl_Obj* objPtr, CONST char* bytes, int length); /* 16 */ + Tcl_Obj * (*tcl_ConcatObj) (int objc, Tcl_Obj *CONST objv[]); /* 17 */ + int (*tcl_ConvertToType) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr); /* 18 */ + void (*tcl_DbDecrRefCount) (Tcl_Obj * objPtr, CONST char * file, int line); /* 19 */ + void (*tcl_DbIncrRefCount) (Tcl_Obj * objPtr, CONST char * file, int line); /* 20 */ + int (*tcl_DbIsShared) (Tcl_Obj * objPtr, CONST char * file, int line); /* 21 */ + Tcl_Obj * (*tcl_DbNewBooleanObj) (int boolValue, CONST char * file, int line); /* 22 */ + Tcl_Obj * (*tcl_DbNewByteArrayObj) (CONST unsigned char * bytes, int length, CONST char * file, int line); /* 23 */ + Tcl_Obj * (*tcl_DbNewDoubleObj) (double doubleValue, CONST char * file, int line); /* 24 */ + Tcl_Obj * (*tcl_DbNewListObj) (int objc, Tcl_Obj *CONST * objv, CONST char * file, int line); /* 25 */ + Tcl_Obj * (*tcl_DbNewLongObj) (long longValue, CONST char * file, int line); /* 26 */ + Tcl_Obj * (*tcl_DbNewObj) (CONST char * file, int line); /* 27 */ + Tcl_Obj * (*tcl_DbNewStringObj) (CONST char * bytes, int length, CONST char * file, int line); /* 28 */ + Tcl_Obj * (*tcl_DuplicateObj) (Tcl_Obj * objPtr); /* 29 */ + void (*tclFreeObj) (Tcl_Obj * objPtr); /* 30 */ + int (*tcl_GetBoolean) (Tcl_Interp * interp, CONST char * src, int * boolPtr); /* 31 */ + int (*tcl_GetBooleanFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * boolPtr); /* 32 */ + unsigned char * (*tcl_GetByteArrayFromObj) (Tcl_Obj * objPtr, int * lengthPtr); /* 33 */ + int (*tcl_GetDouble) (Tcl_Interp * interp, CONST char * src, double * doublePtr); /* 34 */ + int (*tcl_GetDoubleFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * doublePtr); /* 35 */ + int (*tcl_GetIndexFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, CONST84 char ** tablePtr, CONST char * msg, int flags, int * indexPtr); /* 36 */ + int (*tcl_GetInt) (Tcl_Interp * interp, CONST char * src, int * intPtr); /* 37 */ + int (*tcl_GetIntFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * intPtr); /* 38 */ + int (*tcl_GetLongFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * longPtr); /* 39 */ + Tcl_ObjType * (*tcl_GetObjType) (CONST char * typeName); /* 40 */ + char * (*tcl_GetStringFromObj) (Tcl_Obj * objPtr, int * lengthPtr); /* 41 */ + void (*tcl_InvalidateStringRep) (Tcl_Obj * objPtr); /* 42 */ + int (*tcl_ListObjAppendList) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * elemListPtr); /* 43 */ + int (*tcl_ListObjAppendElement) (Tcl_Interp * interp, Tcl_Obj * listPtr, Tcl_Obj * objPtr); /* 44 */ + int (*tcl_ListObjGetElements) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * objcPtr, Tcl_Obj *** objvPtr); /* 45 */ + int (*tcl_ListObjIndex) (Tcl_Interp * interp, Tcl_Obj * listPtr, int index, Tcl_Obj ** objPtrPtr); /* 46 */ + int (*tcl_ListObjLength) (Tcl_Interp * interp, Tcl_Obj * listPtr, int * lengthPtr); /* 47 */ + int (*tcl_ListObjReplace) (Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[]); /* 48 */ + Tcl_Obj * (*tcl_NewBooleanObj) (int boolValue); /* 49 */ + Tcl_Obj * (*tcl_NewByteArrayObj) (CONST unsigned char* bytes, int length); /* 50 */ + Tcl_Obj * (*tcl_NewDoubleObj) (double doubleValue); /* 51 */ + Tcl_Obj * (*tcl_NewIntObj) (int intValue); /* 52 */ + Tcl_Obj * (*tcl_NewListObj) (int objc, Tcl_Obj *CONST objv[]); /* 53 */ + Tcl_Obj * (*tcl_NewLongObj) (long longValue); /* 54 */ + Tcl_Obj * (*tcl_NewObj) (void); /* 55 */ + Tcl_Obj * (*tcl_NewStringObj) (CONST char * bytes, int length); /* 56 */ + void (*tcl_SetBooleanObj) (Tcl_Obj * objPtr, int boolValue); /* 57 */ + unsigned char * (*tcl_SetByteArrayLength) (Tcl_Obj * objPtr, int length); /* 58 */ + void (*tcl_SetByteArrayObj) (Tcl_Obj * objPtr, CONST unsigned char * bytes, int length); /* 59 */ + void (*tcl_SetDoubleObj) (Tcl_Obj * objPtr, double doubleValue); /* 60 */ + void (*tcl_SetIntObj) (Tcl_Obj * objPtr, int intValue); /* 61 */ + void (*tcl_SetListObj) (Tcl_Obj * objPtr, int objc, Tcl_Obj *CONST objv[]); /* 62 */ + void (*tcl_SetLongObj) (Tcl_Obj * objPtr, long longValue); /* 63 */ + void (*tcl_SetObjLength) (Tcl_Obj * objPtr, int length); /* 64 */ + void (*tcl_SetStringObj) (Tcl_Obj* objPtr, CONST char* bytes, int length); /* 65 */ + void (*tcl_AddErrorInfo) (Tcl_Interp * interp, CONST char * message); /* 66 */ + void (*tcl_AddObjErrorInfo) (Tcl_Interp * interp, CONST char * message, int length); /* 67 */ + void (*tcl_AllowExceptions) (Tcl_Interp * interp); /* 68 */ + void (*tcl_AppendElement) (Tcl_Interp * interp, CONST char * element); /* 69 */ + void (*tcl_AppendResult) (Tcl_Interp * interp, ...); /* 70 */ + Tcl_AsyncHandler (*tcl_AsyncCreate) (Tcl_AsyncProc * proc, ClientData clientData); /* 71 */ + void (*tcl_AsyncDelete) (Tcl_AsyncHandler async); /* 72 */ + int (*tcl_AsyncInvoke) (Tcl_Interp * interp, int code); /* 73 */ + void (*tcl_AsyncMark) (Tcl_AsyncHandler async); /* 74 */ + int (*tcl_AsyncReady) (void); /* 75 */ + void (*tcl_BackgroundError) (Tcl_Interp * interp); /* 76 */ + char (*tcl_Backslash) (CONST char * src, int * readPtr); /* 77 */ + int (*tcl_BadChannelOption) (Tcl_Interp * interp, CONST char * optionName, CONST char * optionList); /* 78 */ + void (*tcl_CallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData); /* 79 */ + void (*tcl_CancelIdleCall) (Tcl_IdleProc * idleProc, ClientData clientData); /* 80 */ + int (*tcl_Close) (Tcl_Interp * interp, Tcl_Channel chan); /* 81 */ + int (*tcl_CommandComplete) (CONST char * cmd); /* 82 */ + char * (*tcl_Concat) (int argc, CONST84 char * CONST * argv); /* 83 */ + int (*tcl_ConvertElement) (CONST char * src, char * dst, int flags); /* 84 */ + int (*tcl_ConvertCountedElement) (CONST char * src, int length, char * dst, int flags); /* 85 */ + int (*tcl_CreateAlias) (Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int argc, CONST84 char * CONST * argv); /* 86 */ + int (*tcl_CreateAliasObj) (Tcl_Interp * slave, CONST char * slaveCmd, Tcl_Interp * target, CONST char * targetCmd, int objc, Tcl_Obj *CONST objv[]); /* 87 */ + Tcl_Channel (*tcl_CreateChannel) (Tcl_ChannelType * typePtr, CONST char * chanName, ClientData instanceData, int mask); /* 88 */ + void (*tcl_CreateChannelHandler) (Tcl_Channel chan, int mask, Tcl_ChannelProc * proc, ClientData clientData); /* 89 */ + void (*tcl_CreateCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData); /* 90 */ + Tcl_Command (*tcl_CreateCommand) (Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc); /* 91 */ + void (*tcl_CreateEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData); /* 92 */ + void (*tcl_CreateExitHandler) (Tcl_ExitProc * proc, ClientData clientData); /* 93 */ + Tcl_Interp * (*tcl_CreateInterp) (void); /* 94 */ + void (*tcl_CreateMathFunc) (Tcl_Interp * interp, CONST char * name, int numArgs, Tcl_ValueType * argTypes, Tcl_MathProc * proc, ClientData clientData); /* 95 */ + Tcl_Command (*tcl_CreateObjCommand) (Tcl_Interp * interp, CONST char * cmdName, Tcl_ObjCmdProc * proc, ClientData clientData, Tcl_CmdDeleteProc * deleteProc); /* 96 */ + Tcl_Interp * (*tcl_CreateSlave) (Tcl_Interp * interp, CONST char * slaveName, int isSafe); /* 97 */ + Tcl_TimerToken (*tcl_CreateTimerHandler) (int milliseconds, Tcl_TimerProc * proc, ClientData clientData); /* 98 */ + Tcl_Trace (*tcl_CreateTrace) (Tcl_Interp * interp, int level, Tcl_CmdTraceProc * proc, ClientData clientData); /* 99 */ + void (*tcl_DeleteAssocData) (Tcl_Interp * interp, CONST char * name); /* 100 */ + void (*tcl_DeleteChannelHandler) (Tcl_Channel chan, Tcl_ChannelProc * proc, ClientData clientData); /* 101 */ + void (*tcl_DeleteCloseHandler) (Tcl_Channel chan, Tcl_CloseProc * proc, ClientData clientData); /* 102 */ + int (*tcl_DeleteCommand) (Tcl_Interp * interp, CONST char * cmdName); /* 103 */ + int (*tcl_DeleteCommandFromToken) (Tcl_Interp * interp, Tcl_Command command); /* 104 */ + void (*tcl_DeleteEvents) (Tcl_EventDeleteProc * proc, ClientData clientData); /* 105 */ + void (*tcl_DeleteEventSource) (Tcl_EventSetupProc * setupProc, Tcl_EventCheckProc * checkProc, ClientData clientData); /* 106 */ + void (*tcl_DeleteExitHandler) (Tcl_ExitProc * proc, ClientData clientData); /* 107 */ + void (*tcl_DeleteHashEntry) (Tcl_HashEntry * entryPtr); /* 108 */ + void (*tcl_DeleteHashTable) (Tcl_HashTable * tablePtr); /* 109 */ + void (*tcl_DeleteInterp) (Tcl_Interp * interp); /* 110 */ +#if !defined(__WIN32__) /* UNIX */ + void (*tcl_DetachPids) (int numPids, Tcl_Pid * pidPtr); /* 111 */ +#endif /* UNIX */ +#ifdef __WIN32__ + void (*tcl_DetachPids) (int numPids, Tcl_Pid * pidPtr); /* 111 */ +#endif /* __WIN32__ */ + void (*tcl_DeleteTimerHandler) (Tcl_TimerToken token); /* 112 */ + void (*tcl_DeleteTrace) (Tcl_Interp * interp, Tcl_Trace trace); /* 113 */ + void (*tcl_DontCallWhenDeleted) (Tcl_Interp * interp, Tcl_InterpDeleteProc * proc, ClientData clientData); /* 114 */ + int (*tcl_DoOneEvent) (int flags); /* 115 */ + void (*tcl_DoWhenIdle) (Tcl_IdleProc * proc, ClientData clientData); /* 116 */ + char * (*tcl_DStringAppend) (Tcl_DString * dsPtr, CONST char * bytes, int length); /* 117 */ + char * (*tcl_DStringAppendElement) (Tcl_DString * dsPtr, CONST char * element); /* 118 */ + void (*tcl_DStringEndSublist) (Tcl_DString * dsPtr); /* 119 */ + void (*tcl_DStringFree) (Tcl_DString * dsPtr); /* 120 */ + void (*tcl_DStringGetResult) (Tcl_Interp * interp, Tcl_DString * dsPtr); /* 121 */ + void (*tcl_DStringInit) (Tcl_DString * dsPtr); /* 122 */ + void (*tcl_DStringResult) (Tcl_Interp * interp, Tcl_DString * dsPtr); /* 123 */ + void (*tcl_DStringSetLength) (Tcl_DString * dsPtr, int length); /* 124 */ + void (*tcl_DStringStartSublist) (Tcl_DString * dsPtr); /* 125 */ + int (*tcl_Eof) (Tcl_Channel chan); /* 126 */ + CONST84_RETURN char * (*tcl_ErrnoId) (void); /* 127 */ + CONST84_RETURN char * (*tcl_ErrnoMsg) (int err); /* 128 */ + int (*tcl_Eval) (Tcl_Interp * interp, CONST char * script); /* 129 */ + int (*tcl_EvalFile) (Tcl_Interp * interp, CONST char * fileName); /* 130 */ + int (*tcl_EvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 131 */ + void (*tcl_EventuallyFree) (ClientData clientData, Tcl_FreeProc * freeProc); /* 132 */ + void (*tcl_Exit) (int status); /* 133 */ + int (*tcl_ExposeCommand) (Tcl_Interp * interp, CONST char * hiddenCmdToken, CONST char * cmdName); /* 134 */ + int (*tcl_ExprBoolean) (Tcl_Interp * interp, CONST char * expr, int * ptr); /* 135 */ + int (*tcl_ExprBooleanObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * ptr); /* 136 */ + int (*tcl_ExprDouble) (Tcl_Interp * interp, CONST char * expr, double * ptr); /* 137 */ + int (*tcl_ExprDoubleObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, double * ptr); /* 138 */ + int (*tcl_ExprLong) (Tcl_Interp * interp, CONST char * expr, long * ptr); /* 139 */ + int (*tcl_ExprLongObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, long * ptr); /* 140 */ + int (*tcl_ExprObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_Obj ** resultPtrPtr); /* 141 */ + int (*tcl_ExprString) (Tcl_Interp * interp, CONST char * expr); /* 142 */ + void (*tcl_Finalize) (void); /* 143 */ + void (*tcl_FindExecutable) (CONST char * argv0); /* 144 */ + Tcl_HashEntry * (*tcl_FirstHashEntry) (Tcl_HashTable * tablePtr, Tcl_HashSearch * searchPtr); /* 145 */ + int (*tcl_Flush) (Tcl_Channel chan); /* 146 */ + void (*tcl_FreeResult) (Tcl_Interp * interp); /* 147 */ + int (*tcl_GetAlias) (Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * argcPtr, CONST84 char *** argvPtr); /* 148 */ + int (*tcl_GetAliasObj) (Tcl_Interp * interp, CONST char * slaveCmd, Tcl_Interp ** targetInterpPtr, CONST84 char ** targetCmdPtr, int * objcPtr, Tcl_Obj *** objv); /* 149 */ + ClientData (*tcl_GetAssocData) (Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc ** procPtr); /* 150 */ + Tcl_Channel (*tcl_GetChannel) (Tcl_Interp * interp, CONST char * chanName, int * modePtr); /* 151 */ + int (*tcl_GetChannelBufferSize) (Tcl_Channel chan); /* 152 */ + int (*tcl_GetChannelHandle) (Tcl_Channel chan, int direction, ClientData * handlePtr); /* 153 */ + ClientData (*tcl_GetChannelInstanceData) (Tcl_Channel chan); /* 154 */ + int (*tcl_GetChannelMode) (Tcl_Channel chan); /* 155 */ + CONST84_RETURN char * (*tcl_GetChannelName) (Tcl_Channel chan); /* 156 */ + int (*tcl_GetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, Tcl_DString * dsPtr); /* 157 */ + Tcl_ChannelType * (*tcl_GetChannelType) (Tcl_Channel chan); /* 158 */ + int (*tcl_GetCommandInfo) (Tcl_Interp * interp, CONST char * cmdName, Tcl_CmdInfo * infoPtr); /* 159 */ + CONST84_RETURN char * (*tcl_GetCommandName) (Tcl_Interp * interp, Tcl_Command command); /* 160 */ + int (*tcl_GetErrno) (void); /* 161 */ + CONST84_RETURN char * (*tcl_GetHostName) (void); /* 162 */ + int (*tcl_GetInterpPath) (Tcl_Interp * askInterp, Tcl_Interp * slaveInterp); /* 163 */ + Tcl_Interp * (*tcl_GetMaster) (Tcl_Interp * interp); /* 164 */ + CONST char * (*tcl_GetNameOfExecutable) (void); /* 165 */ + Tcl_Obj * (*tcl_GetObjResult) (Tcl_Interp * interp); /* 166 */ +#if !defined(__WIN32__) /* UNIX */ + int (*tcl_GetOpenFile) (Tcl_Interp * interp, CONST char * chanID, int forWriting, int checkUsage, ClientData * filePtr); /* 167 */ +#endif /* UNIX */ +#ifdef __WIN32__ + void *reserved167; +#endif /* __WIN32__ */ + Tcl_PathType (*tcl_GetPathType) (CONST char * path); /* 168 */ + int (*tcl_Gets) (Tcl_Channel chan, Tcl_DString * dsPtr); /* 169 */ + int (*tcl_GetsObj) (Tcl_Channel chan, Tcl_Obj * objPtr); /* 170 */ + int (*tcl_GetServiceMode) (void); /* 171 */ + Tcl_Interp * (*tcl_GetSlave) (Tcl_Interp * interp, CONST char * slaveName); /* 172 */ + Tcl_Channel (*tcl_GetStdChannel) (int type); /* 173 */ + CONST84_RETURN char * (*tcl_GetStringResult) (Tcl_Interp * interp); /* 174 */ + CONST84_RETURN char * (*tcl_GetVar) (Tcl_Interp * interp, CONST char * varName, int flags); /* 175 */ + CONST84_RETURN char * (*tcl_GetVar2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags); /* 176 */ + int (*tcl_GlobalEval) (Tcl_Interp * interp, CONST char * command); /* 177 */ + int (*tcl_GlobalEvalObj) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 178 */ + int (*tcl_HideCommand) (Tcl_Interp * interp, CONST char * cmdName, CONST char * hiddenCmdToken); /* 179 */ + int (*tcl_Init) (Tcl_Interp * interp); /* 180 */ + void (*tcl_InitHashTable) (Tcl_HashTable * tablePtr, int keyType); /* 181 */ + int (*tcl_InputBlocked) (Tcl_Channel chan); /* 182 */ + int (*tcl_InputBuffered) (Tcl_Channel chan); /* 183 */ + int (*tcl_InterpDeleted) (Tcl_Interp * interp); /* 184 */ + int (*tcl_IsSafe) (Tcl_Interp * interp); /* 185 */ + char * (*tcl_JoinPath) (int argc, CONST84 char * CONST * argv, Tcl_DString * resultPtr); /* 186 */ + int (*tcl_LinkVar) (Tcl_Interp * interp, CONST char * varName, char * addr, int type); /* 187 */ + void *reserved188; + Tcl_Channel (*tcl_MakeFileChannel) (ClientData handle, int mode); /* 189 */ + int (*tcl_MakeSafe) (Tcl_Interp * interp); /* 190 */ + Tcl_Channel (*tcl_MakeTcpClientChannel) (ClientData tcpSocket); /* 191 */ + char * (*tcl_Merge) (int argc, CONST84 char * CONST * argv); /* 192 */ + Tcl_HashEntry * (*tcl_NextHashEntry) (Tcl_HashSearch * searchPtr); /* 193 */ + void (*tcl_NotifyChannel) (Tcl_Channel channel, int mask); /* 194 */ + Tcl_Obj * (*tcl_ObjGetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, int flags); /* 195 */ + Tcl_Obj * (*tcl_ObjSetVar2) (Tcl_Interp * interp, Tcl_Obj * part1Ptr, Tcl_Obj * part2Ptr, Tcl_Obj * newValuePtr, int flags); /* 196 */ +#if !defined(__WIN32__) /* UNIX */ + Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp * interp, int argc, CONST84 char ** argv, int flags); /* 197 */ +#endif /* UNIX */ +#ifdef __WIN32__ + Tcl_Channel (*tcl_OpenCommandChannel) (Tcl_Interp * interp, int argc, CONST84 char ** argv, int flags); /* 197 */ +#endif /* __WIN32__ */ + Tcl_Channel (*tcl_OpenFileChannel) (Tcl_Interp * interp, CONST char * fileName, CONST char * modeString, int permissions); /* 198 */ + Tcl_Channel (*tcl_OpenTcpClient) (Tcl_Interp * interp, int port, CONST char * address, CONST char * myaddr, int myport, int async); /* 199 */ + Tcl_Channel (*tcl_OpenTcpServer) (Tcl_Interp * interp, int port, CONST char * host, Tcl_TcpAcceptProc * acceptProc, ClientData callbackData); /* 200 */ + void (*tcl_Preserve) (ClientData data); /* 201 */ + void (*tcl_PrintDouble) (Tcl_Interp * interp, double value, char * dst); /* 202 */ + int (*tcl_PutEnv) (CONST char * assignment); /* 203 */ + CONST84_RETURN char * (*tcl_PosixError) (Tcl_Interp * interp); /* 204 */ + void (*tcl_QueueEvent) (Tcl_Event * evPtr, Tcl_QueuePosition position); /* 205 */ + int (*tcl_Read) (Tcl_Channel chan, char * bufPtr, int toRead); /* 206 */ +#if !defined(__WIN32__) /* UNIX */ + void (*tcl_ReapDetachedProcs) (void); /* 207 */ +#endif /* UNIX */ +#ifdef __WIN32__ + void (*tcl_ReapDetachedProcs) (void); /* 207 */ +#endif /* __WIN32__ */ + int (*tcl_RecordAndEval) (Tcl_Interp * interp, CONST char * cmd, int flags); /* 208 */ + int (*tcl_RecordAndEvalObj) (Tcl_Interp * interp, Tcl_Obj * cmdPtr, int flags); /* 209 */ + void (*tcl_RegisterChannel) (Tcl_Interp * interp, Tcl_Channel chan); /* 210 */ + void (*tcl_RegisterObjType) (Tcl_ObjType * typePtr); /* 211 */ + Tcl_RegExp (*tcl_RegExpCompile) (Tcl_Interp * interp, CONST char * pattern); /* 212 */ + int (*tcl_RegExpExec) (Tcl_Interp * interp, Tcl_RegExp regexp, CONST char * text, CONST char * start); /* 213 */ + int (*tcl_RegExpMatch) (Tcl_Interp * interp, CONST char * text, CONST char * pattern); /* 214 */ + void (*tcl_RegExpRange) (Tcl_RegExp regexp, int index, CONST84 char ** startPtr, CONST84 char ** endPtr); /* 215 */ + void (*tcl_Release) (ClientData clientData); /* 216 */ + void (*tcl_ResetResult) (Tcl_Interp * interp); /* 217 */ + int (*tcl_ScanElement) (CONST char * str, int * flagPtr); /* 218 */ + int (*tcl_ScanCountedElement) (CONST char * str, int length, int * flagPtr); /* 219 */ + int (*tcl_SeekOld) (Tcl_Channel chan, int offset, int mode); /* 220 */ + int (*tcl_ServiceAll) (void); /* 221 */ + int (*tcl_ServiceEvent) (int flags); /* 222 */ + void (*tcl_SetAssocData) (Tcl_Interp * interp, CONST char * name, Tcl_InterpDeleteProc * proc, ClientData clientData); /* 223 */ + void (*tcl_SetChannelBufferSize) (Tcl_Channel chan, int sz); /* 224 */ + int (*tcl_SetChannelOption) (Tcl_Interp * interp, Tcl_Channel chan, CONST char * optionName, CONST char * newValue); /* 225 */ + int (*tcl_SetCommandInfo) (Tcl_Interp * interp, CONST char * cmdName, CONST Tcl_CmdInfo * infoPtr); /* 226 */ + void (*tcl_SetErrno) (int err); /* 227 */ + void (*tcl_SetErrorCode) (Tcl_Interp * interp, ...); /* 228 */ + void (*tcl_SetMaxBlockTime) (Tcl_Time * timePtr); /* 229 */ + void (*tcl_SetPanicProc) (Tcl_PanicProc * panicProc); /* 230 */ + int (*tcl_SetRecursionLimit) (Tcl_Interp * interp, int depth); /* 231 */ + void (*tcl_SetResult) (Tcl_Interp * interp, char * result, Tcl_FreeProc * freeProc); /* 232 */ + int (*tcl_SetServiceMode) (int mode); /* 233 */ + void (*tcl_SetObjErrorCode) (Tcl_Interp * interp, Tcl_Obj * errorObjPtr); /* 234 */ + void (*tcl_SetObjResult) (Tcl_Interp * interp, Tcl_Obj * resultObjPtr); /* 235 */ + void (*tcl_SetStdChannel) (Tcl_Channel channel, int type); /* 236 */ + CONST84_RETURN char * (*tcl_SetVar) (Tcl_Interp * interp, CONST char * varName, CONST char * newValue, int flags); /* 237 */ + CONST84_RETURN char * (*tcl_SetVar2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, CONST char * newValue, int flags); /* 238 */ + CONST84_RETURN char * (*tcl_SignalId) (int sig); /* 239 */ + CONST84_RETURN char * (*tcl_SignalMsg) (int sig); /* 240 */ + void (*tcl_SourceRCFile) (Tcl_Interp * interp); /* 241 */ + int (*tcl_SplitList) (Tcl_Interp * interp, CONST char * listStr, int * argcPtr, CONST84 char *** argvPtr); /* 242 */ + void (*tcl_SplitPath) (CONST char * path, int * argcPtr, CONST84 char *** argvPtr); /* 243 */ + void (*tcl_StaticPackage) (Tcl_Interp * interp, CONST char * pkgName, Tcl_PackageInitProc * initProc, Tcl_PackageInitProc * safeInitProc); /* 244 */ + int (*tcl_StringMatch) (CONST char * str, CONST char * pattern); /* 245 */ + int (*tcl_TellOld) (Tcl_Channel chan); /* 246 */ + int (*tcl_TraceVar) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData); /* 247 */ + int (*tcl_TraceVar2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData); /* 248 */ + char * (*tcl_TranslateFileName) (Tcl_Interp * interp, CONST char * name, Tcl_DString * bufferPtr); /* 249 */ + int (*tcl_Ungets) (Tcl_Channel chan, CONST char * str, int len, int atHead); /* 250 */ + void (*tcl_UnlinkVar) (Tcl_Interp * interp, CONST char * varName); /* 251 */ + int (*tcl_UnregisterChannel) (Tcl_Interp * interp, Tcl_Channel chan); /* 252 */ + int (*tcl_UnsetVar) (Tcl_Interp * interp, CONST char * varName, int flags); /* 253 */ + int (*tcl_UnsetVar2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags); /* 254 */ + void (*tcl_UntraceVar) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * proc, ClientData clientData); /* 255 */ + void (*tcl_UntraceVar2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * proc, ClientData clientData); /* 256 */ + void (*tcl_UpdateLinkedVar) (Tcl_Interp * interp, CONST char * varName); /* 257 */ + int (*tcl_UpVar) (Tcl_Interp * interp, CONST char * frameName, CONST char * varName, CONST char * localName, int flags); /* 258 */ + int (*tcl_UpVar2) (Tcl_Interp * interp, CONST char * frameName, CONST char * part1, CONST char * part2, CONST char * localName, int flags); /* 259 */ + int (*tcl_VarEval) (Tcl_Interp * interp, ...); /* 260 */ + ClientData (*tcl_VarTraceInfo) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData); /* 261 */ + ClientData (*tcl_VarTraceInfo2) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData); /* 262 */ + int (*tcl_Write) (Tcl_Channel chan, CONST char * s, int slen); /* 263 */ + void (*tcl_WrongNumArgs) (Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], CONST char * message); /* 264 */ + int (*tcl_DumpActiveMemory) (CONST char * fileName); /* 265 */ + void (*tcl_ValidateAllMemory) (CONST char * file, int line); /* 266 */ + void (*tcl_AppendResultVA) (Tcl_Interp * interp, va_list argList); /* 267 */ + void (*tcl_AppendStringsToObjVA) (Tcl_Obj * objPtr, va_list argList); /* 268 */ + CONST84_RETURN char * (*tcl_HashStats) (Tcl_HashTable * tablePtr); /* 269 */ + CONST84_RETURN char * (*tcl_ParseVar) (Tcl_Interp * interp, CONST char * start, CONST84 char ** termPtr); /* 270 */ + CONST84_RETURN char * (*tcl_PkgPresent) (Tcl_Interp * interp, CONST char * name, CONST char * version, int exact); /* 271 */ + CONST84_RETURN char * (*tcl_PkgPresentEx) (Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr); /* 272 */ + int (*tcl_PkgProvide) (Tcl_Interp * interp, CONST char * name, CONST char * version); /* 273 */ + CONST84_RETURN char * (*tcl_PkgRequire) (Tcl_Interp * interp, CONST char * name, CONST char * version, int exact); /* 274 */ + void (*tcl_SetErrorCodeVA) (Tcl_Interp * interp, va_list argList); /* 275 */ + int (*tcl_VarEvalVA) (Tcl_Interp * interp, va_list argList); /* 276 */ + Tcl_Pid (*tcl_WaitPid) (Tcl_Pid pid, int * statPtr, int options); /* 277 */ + void (*tcl_PanicVA) (CONST char * format, va_list argList); /* 278 */ + void (*tcl_GetVersion) (int * major, int * minor, int * patchLevel, int * type); /* 279 */ + void (*tcl_InitMemory) (Tcl_Interp * interp); /* 280 */ + Tcl_Channel (*tcl_StackChannel) (Tcl_Interp * interp, Tcl_ChannelType * typePtr, ClientData instanceData, int mask, Tcl_Channel prevChan); /* 281 */ + int (*tcl_UnstackChannel) (Tcl_Interp * interp, Tcl_Channel chan); /* 282 */ + Tcl_Channel (*tcl_GetStackedChannel) (Tcl_Channel chan); /* 283 */ + void (*tcl_SetMainLoop) (Tcl_MainLoopProc * proc); /* 284 */ + void *reserved285; + void (*tcl_AppendObjToObj) (Tcl_Obj * objPtr, Tcl_Obj * appendObjPtr); /* 286 */ + Tcl_Encoding (*tcl_CreateEncoding) (const Tcl_EncodingType * typePtr); /* 287 */ + void (*tcl_CreateThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData); /* 288 */ + void (*tcl_DeleteThreadExitHandler) (Tcl_ExitProc * proc, ClientData clientData); /* 289 */ + void (*tcl_DiscardResult) (Tcl_SavedResult * statePtr); /* 290 */ + int (*tcl_EvalEx) (Tcl_Interp * interp, CONST char * script, int numBytes, int flags); /* 291 */ + int (*tcl_EvalObjv) (Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], int flags); /* 292 */ + int (*tcl_EvalObjEx) (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags); /* 293 */ + void (*tcl_ExitThread) (int status); /* 294 */ + int (*tcl_ExternalToUtf) (Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr); /* 295 */ + char * (*tcl_ExternalToUtfDString) (Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr); /* 296 */ + void (*tcl_FinalizeThread) (void); /* 297 */ + void (*tcl_FinalizeNotifier) (ClientData clientData); /* 298 */ + void (*tcl_FreeEncoding) (Tcl_Encoding encoding); /* 299 */ + Tcl_ThreadId (*tcl_GetCurrentThread) (void); /* 300 */ + Tcl_Encoding (*tcl_GetEncoding) (Tcl_Interp * interp, CONST char * name); /* 301 */ + CONST84_RETURN char * (*tcl_GetEncodingName) (Tcl_Encoding encoding); /* 302 */ + void (*tcl_GetEncodingNames) (Tcl_Interp * interp); /* 303 */ + int (*tcl_GetIndexFromObjStruct) (Tcl_Interp * interp, Tcl_Obj * objPtr, CONST VOID * tablePtr, int offset, CONST char * msg, int flags, int * indexPtr); /* 304 */ + VOID * (*tcl_GetThreadData) (Tcl_ThreadDataKey * keyPtr, int size); /* 305 */ + Tcl_Obj * (*tcl_GetVar2Ex) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, int flags); /* 306 */ + ClientData (*tcl_InitNotifier) (void); /* 307 */ + void (*tcl_MutexLock) (Tcl_Mutex * mutexPtr); /* 308 */ + void (*tcl_MutexUnlock) (Tcl_Mutex * mutexPtr); /* 309 */ + void (*tcl_ConditionNotify) (Tcl_Condition * condPtr); /* 310 */ + void (*tcl_ConditionWait) (Tcl_Condition * condPtr, Tcl_Mutex * mutexPtr, Tcl_Time * timePtr); /* 311 */ + int (*tcl_NumUtfChars) (CONST char * src, int length); /* 312 */ + int (*tcl_ReadChars) (Tcl_Channel channel, Tcl_Obj * objPtr, int charsToRead, int appendFlag); /* 313 */ + void (*tcl_RestoreResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr); /* 314 */ + void (*tcl_SaveResult) (Tcl_Interp * interp, Tcl_SavedResult * statePtr); /* 315 */ + int (*tcl_SetSystemEncoding) (Tcl_Interp * interp, CONST char * name); /* 316 */ + Tcl_Obj * (*tcl_SetVar2Ex) (Tcl_Interp * interp, CONST char * part1, CONST char * part2, Tcl_Obj * newValuePtr, int flags); /* 317 */ + void (*tcl_ThreadAlert) (Tcl_ThreadId threadId); /* 318 */ + void (*tcl_ThreadQueueEvent) (Tcl_ThreadId threadId, Tcl_Event* evPtr, Tcl_QueuePosition position); /* 319 */ + Tcl_UniChar (*tcl_UniCharAtIndex) (CONST char * src, int index); /* 320 */ + Tcl_UniChar (*tcl_UniCharToLower) (int ch); /* 321 */ + Tcl_UniChar (*tcl_UniCharToTitle) (int ch); /* 322 */ + Tcl_UniChar (*tcl_UniCharToUpper) (int ch); /* 323 */ + int (*tcl_UniCharToUtf) (int ch, char * buf); /* 324 */ + CONST84_RETURN char * (*tcl_UtfAtIndex) (CONST char * src, int index); /* 325 */ + int (*tcl_UtfCharComplete) (CONST char * src, int length); /* 326 */ + int (*tcl_UtfBackslash) (CONST char * src, int * readPtr, char * dst); /* 327 */ + CONST84_RETURN char * (*tcl_UtfFindFirst) (CONST char * src, int ch); /* 328 */ + CONST84_RETURN char * (*tcl_UtfFindLast) (CONST char * src, int ch); /* 329 */ + CONST84_RETURN char * (*tcl_UtfNext) (CONST char * src); /* 330 */ + CONST84_RETURN char * (*tcl_UtfPrev) (CONST char * src, CONST char * start); /* 331 */ + int (*tcl_UtfToExternal) (Tcl_Interp * interp, Tcl_Encoding encoding, CONST char * src, int srcLen, int flags, Tcl_EncodingState * statePtr, char * dst, int dstLen, int * srcReadPtr, int * dstWrotePtr, int * dstCharsPtr); /* 332 */ + char * (*tcl_UtfToExternalDString) (Tcl_Encoding encoding, CONST char * src, int srcLen, Tcl_DString * dsPtr); /* 333 */ + int (*tcl_UtfToLower) (char * src); /* 334 */ + int (*tcl_UtfToTitle) (char * src); /* 335 */ + int (*tcl_UtfToUniChar) (CONST char * src, Tcl_UniChar * chPtr); /* 336 */ + int (*tcl_UtfToUpper) (char * src); /* 337 */ + int (*tcl_WriteChars) (Tcl_Channel chan, CONST char * src, int srcLen); /* 338 */ + int (*tcl_WriteObj) (Tcl_Channel chan, Tcl_Obj * objPtr); /* 339 */ + char * (*tcl_GetString) (Tcl_Obj * objPtr); /* 340 */ + CONST84_RETURN char * (*tcl_GetDefaultEncodingDir) (void); /* 341 */ + void (*tcl_SetDefaultEncodingDir) (CONST char * path); /* 342 */ + void (*tcl_AlertNotifier) (ClientData clientData); /* 343 */ + void (*tcl_ServiceModeHook) (int mode); /* 344 */ + int (*tcl_UniCharIsAlnum) (int ch); /* 345 */ + int (*tcl_UniCharIsAlpha) (int ch); /* 346 */ + int (*tcl_UniCharIsDigit) (int ch); /* 347 */ + int (*tcl_UniCharIsLower) (int ch); /* 348 */ + int (*tcl_UniCharIsSpace) (int ch); /* 349 */ + int (*tcl_UniCharIsUpper) (int ch); /* 350 */ + int (*tcl_UniCharIsWordChar) (int ch); /* 351 */ + int (*tcl_UniCharLen) (CONST Tcl_UniChar * uniStr); /* 352 */ + int (*tcl_UniCharNcmp) (CONST Tcl_UniChar * ucs, CONST Tcl_UniChar * uct, unsigned long numChars); /* 353 */ + char * (*tcl_UniCharToUtfDString) (CONST Tcl_UniChar * uniStr, int uniLength, Tcl_DString * dsPtr); /* 354 */ + Tcl_UniChar * (*tcl_UtfToUniCharDString) (CONST char * src, int length, Tcl_DString * dsPtr); /* 355 */ + Tcl_RegExp (*tcl_GetRegExpFromObj) (Tcl_Interp * interp, Tcl_Obj * patObj, int flags); /* 356 */ + Tcl_Obj * (*tcl_EvalTokens) (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count); /* 357 */ + void (*tcl_FreeParse) (Tcl_Parse * parsePtr); /* 358 */ + void (*tcl_LogCommandInfo) (Tcl_Interp * interp, CONST char * script, CONST char * command, int length); /* 359 */ + int (*tcl_ParseBraces) (Tcl_Interp * interp, CONST char * start, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr); /* 360 */ + int (*tcl_ParseCommand) (Tcl_Interp * interp, CONST char * start, int numBytes, int nested, Tcl_Parse * parsePtr); /* 361 */ + int (*tcl_ParseExpr) (Tcl_Interp * interp, CONST char * start, int numBytes, Tcl_Parse * parsePtr); /* 362 */ + int (*tcl_ParseQuotedString) (Tcl_Interp * interp, CONST char * start, int numBytes, Tcl_Parse * parsePtr, int append, CONST84 char ** termPtr); /* 363 */ + int (*tcl_ParseVarName) (Tcl_Interp * interp, CONST char * start, int numBytes, Tcl_Parse * parsePtr, int append); /* 364 */ + char * (*tcl_GetCwd) (Tcl_Interp * interp, Tcl_DString * cwdPtr); /* 365 */ + int (*tcl_Chdir) (CONST char * dirName); /* 366 */ + int (*tcl_Access) (CONST char * path, int mode); /* 367 */ + int (*tcl_Stat) (CONST char * path, struct stat * bufPtr); /* 368 */ + int (*tcl_UtfNcmp) (CONST char * s1, CONST char * s2, unsigned long n); /* 369 */ + int (*tcl_UtfNcasecmp) (CONST char * s1, CONST char * s2, unsigned long n); /* 370 */ + int (*tcl_StringCaseMatch) (CONST char * str, CONST char * pattern, int nocase); /* 371 */ + int (*tcl_UniCharIsControl) (int ch); /* 372 */ + int (*tcl_UniCharIsGraph) (int ch); /* 373 */ + int (*tcl_UniCharIsPrint) (int ch); /* 374 */ + int (*tcl_UniCharIsPunct) (int ch); /* 375 */ + int (*tcl_RegExpExecObj) (Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * textObj, int offset, int nmatches, int flags); /* 376 */ + void (*tcl_RegExpGetInfo) (Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr); /* 377 */ + Tcl_Obj * (*tcl_NewUnicodeObj) (CONST Tcl_UniChar * unicode, int numChars); /* 378 */ + void (*tcl_SetUnicodeObj) (Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int numChars); /* 379 */ + int (*tcl_GetCharLength) (Tcl_Obj * objPtr); /* 380 */ + Tcl_UniChar (*tcl_GetUniChar) (Tcl_Obj * objPtr, int index); /* 381 */ + Tcl_UniChar * (*tcl_GetUnicode) (Tcl_Obj * objPtr); /* 382 */ + Tcl_Obj * (*tcl_GetRange) (Tcl_Obj * objPtr, int first, int last); /* 383 */ + void (*tcl_AppendUnicodeToObj) (Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int length); /* 384 */ + int (*tcl_RegExpMatchObj) (Tcl_Interp * interp, Tcl_Obj * textObj, Tcl_Obj * patternObj); /* 385 */ + void (*tcl_SetNotifier) (Tcl_NotifierProcs * notifierProcPtr); /* 386 */ + Tcl_Mutex * (*tcl_GetAllocMutex) (void); /* 387 */ + int (*tcl_GetChannelNames) (Tcl_Interp * interp); /* 388 */ + int (*tcl_GetChannelNamesEx) (Tcl_Interp * interp, CONST char * pattern); /* 389 */ + int (*tcl_ProcObjCmd) (ClientData clientData, Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[]); /* 390 */ + void (*tcl_ConditionFinalize) (Tcl_Condition * condPtr); /* 391 */ + void (*tcl_MutexFinalize) (Tcl_Mutex * mutex); /* 392 */ + int (*tcl_CreateThread) (Tcl_ThreadId * idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags); /* 393 */ + int (*tcl_ReadRaw) (Tcl_Channel chan, char * dst, int bytesToRead); /* 394 */ + int (*tcl_WriteRaw) (Tcl_Channel chan, CONST char * src, int srcLen); /* 395 */ + Tcl_Channel (*tcl_GetTopChannel) (Tcl_Channel chan); /* 396 */ + int (*tcl_ChannelBuffered) (Tcl_Channel chan); /* 397 */ + CONST84_RETURN char * (*tcl_ChannelName) (CONST Tcl_ChannelType * chanTypePtr); /* 398 */ + Tcl_ChannelTypeVersion (*tcl_ChannelVersion) (CONST Tcl_ChannelType * chanTypePtr); /* 399 */ + Tcl_DriverBlockModeProc * (*tcl_ChannelBlockModeProc) (CONST Tcl_ChannelType * chanTypePtr); /* 400 */ + Tcl_DriverCloseProc * (*tcl_ChannelCloseProc) (CONST Tcl_ChannelType * chanTypePtr); /* 401 */ + Tcl_DriverClose2Proc * (*tcl_ChannelClose2Proc) (CONST Tcl_ChannelType * chanTypePtr); /* 402 */ + Tcl_DriverInputProc * (*tcl_ChannelInputProc) (CONST Tcl_ChannelType * chanTypePtr); /* 403 */ + Tcl_DriverOutputProc * (*tcl_ChannelOutputProc) (CONST Tcl_ChannelType * chanTypePtr); /* 404 */ + Tcl_DriverSeekProc * (*tcl_ChannelSeekProc) (CONST Tcl_ChannelType * chanTypePtr); /* 405 */ + Tcl_DriverSetOptionProc * (*tcl_ChannelSetOptionProc) (CONST Tcl_ChannelType * chanTypePtr); /* 406 */ + Tcl_DriverGetOptionProc * (*tcl_ChannelGetOptionProc) (CONST Tcl_ChannelType * chanTypePtr); /* 407 */ + Tcl_DriverWatchProc * (*tcl_ChannelWatchProc) (CONST Tcl_ChannelType * chanTypePtr); /* 408 */ + Tcl_DriverGetHandleProc * (*tcl_ChannelGetHandleProc) (CONST Tcl_ChannelType * chanTypePtr); /* 409 */ + Tcl_DriverFlushProc * (*tcl_ChannelFlushProc) (CONST Tcl_ChannelType * chanTypePtr); /* 410 */ + Tcl_DriverHandlerProc * (*tcl_ChannelHandlerProc) (CONST Tcl_ChannelType * chanTypePtr); /* 411 */ + int (*tcl_JoinThread) (Tcl_ThreadId threadId, int* result); /* 412 */ + int (*tcl_IsChannelShared) (Tcl_Channel channel); /* 413 */ + int (*tcl_IsChannelRegistered) (Tcl_Interp* interp, Tcl_Channel channel); /* 414 */ + void (*tcl_CutChannel) (Tcl_Channel channel); /* 415 */ + void (*tcl_SpliceChannel) (Tcl_Channel channel); /* 416 */ + void (*tcl_ClearChannelHandlers) (Tcl_Channel channel); /* 417 */ + int (*tcl_IsChannelExisting) (CONST char* channelName); /* 418 */ + int (*tcl_UniCharNcasecmp) (CONST Tcl_UniChar * ucs, CONST Tcl_UniChar * uct, unsigned long numChars); /* 419 */ + int (*tcl_UniCharCaseMatch) (CONST Tcl_UniChar * uniStr, CONST Tcl_UniChar * uniPattern, int nocase); /* 420 */ + Tcl_HashEntry * (*tcl_FindHashEntry) (Tcl_HashTable * tablePtr, CONST char * key); /* 421 */ + Tcl_HashEntry * (*tcl_CreateHashEntry) (Tcl_HashTable * tablePtr, CONST char * key, int * newPtr); /* 422 */ + void (*tcl_InitCustomHashTable) (Tcl_HashTable * tablePtr, int keyType, Tcl_HashKeyType * typePtr); /* 423 */ + void (*tcl_InitObjHashTable) (Tcl_HashTable * tablePtr); /* 424 */ + ClientData (*tcl_CommandTraceInfo) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * procPtr, ClientData prevClientData); /* 425 */ + int (*tcl_TraceCommand) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData); /* 426 */ + void (*tcl_UntraceCommand) (Tcl_Interp * interp, CONST char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData); /* 427 */ + char * (*tcl_AttemptAlloc) (unsigned int size); /* 428 */ + char * (*tcl_AttemptDbCkalloc) (unsigned int size, CONST char * file, int line); /* 429 */ + char * (*tcl_AttemptRealloc) (char * ptr, unsigned int size); /* 430 */ + char * (*tcl_AttemptDbCkrealloc) (char * ptr, unsigned int size, CONST char * file, int line); /* 431 */ + int (*tcl_AttemptSetObjLength) (Tcl_Obj * objPtr, int length); /* 432 */ + Tcl_ThreadId (*tcl_GetChannelThread) (Tcl_Channel channel); /* 433 */ + Tcl_UniChar * (*tcl_GetUnicodeFromObj) (Tcl_Obj * objPtr, int * lengthPtr); /* 434 */ + int (*tcl_GetMathFuncInfo) (Tcl_Interp * interp, CONST char * name, int * numArgsPtr, Tcl_ValueType ** argTypesPtr, Tcl_MathProc ** procPtr, ClientData * clientDataPtr); /* 435 */ + Tcl_Obj * (*tcl_ListMathFuncs) (Tcl_Interp * interp, CONST char * pattern); /* 436 */ + Tcl_Obj * (*tcl_SubstObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int flags); /* 437 */ + int (*tcl_DetachChannel) (Tcl_Interp* interp, Tcl_Channel channel); /* 438 */ + int (*tcl_IsStandardChannel) (Tcl_Channel channel); /* 439 */ + int (*tcl_FSCopyFile) (Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr); /* 440 */ + int (*tcl_FSCopyDirectory) (Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr, Tcl_Obj ** errorPtr); /* 441 */ + int (*tcl_FSCreateDirectory) (Tcl_Obj * pathPtr); /* 442 */ + int (*tcl_FSDeleteFile) (Tcl_Obj * pathPtr); /* 443 */ + int (*tcl_FSLoadFile) (Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * sym1, CONST char * sym2, Tcl_PackageInitProc ** proc1Ptr, Tcl_PackageInitProc ** proc2Ptr, Tcl_LoadHandle * handlePtr, Tcl_FSUnloadFileProc ** unloadProcPtr); /* 444 */ + int (*tcl_FSMatchInDirectory) (Tcl_Interp * interp, Tcl_Obj * result, Tcl_Obj * pathPtr, CONST char * pattern, Tcl_GlobTypeData * types); /* 445 */ + Tcl_Obj * (*tcl_FSLink) (Tcl_Obj * pathPtr, Tcl_Obj * toPtr, int linkAction); /* 446 */ + int (*tcl_FSRemoveDirectory) (Tcl_Obj * pathPtr, int recursive, Tcl_Obj ** errorPtr); /* 447 */ + int (*tcl_FSRenameFile) (Tcl_Obj * srcPathPtr, Tcl_Obj * destPathPtr); /* 448 */ + int (*tcl_FSLstat) (Tcl_Obj * pathPtr, Tcl_StatBuf * buf); /* 449 */ + int (*tcl_FSUtime) (Tcl_Obj * pathPtr, struct utimbuf * tval); /* 450 */ + int (*tcl_FSFileAttrsGet) (Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef); /* 451 */ + int (*tcl_FSFileAttrsSet) (Tcl_Interp * interp, int index, Tcl_Obj * pathPtr, Tcl_Obj * objPtr); /* 452 */ + CONST char ** (*tcl_FSFileAttrStrings) (Tcl_Obj * pathPtr, Tcl_Obj ** objPtrRef); /* 453 */ + int (*tcl_FSStat) (Tcl_Obj * pathPtr, Tcl_StatBuf * buf); /* 454 */ + int (*tcl_FSAccess) (Tcl_Obj * pathPtr, int mode); /* 455 */ + Tcl_Channel (*tcl_FSOpenFileChannel) (Tcl_Interp * interp, Tcl_Obj * pathPtr, CONST char * modeString, int permissions); /* 456 */ + Tcl_Obj* (*tcl_FSGetCwd) (Tcl_Interp * interp); /* 457 */ + int (*tcl_FSChdir) (Tcl_Obj * pathPtr); /* 458 */ + int (*tcl_FSConvertToPathType) (Tcl_Interp * interp, Tcl_Obj * pathPtr); /* 459 */ + Tcl_Obj* (*tcl_FSJoinPath) (Tcl_Obj * listObj, int elements); /* 460 */ + Tcl_Obj* (*tcl_FSSplitPath) (Tcl_Obj* pathPtr, int * lenPtr); /* 461 */ + int (*tcl_FSEqualPaths) (Tcl_Obj* firstPtr, Tcl_Obj* secondPtr); /* 462 */ + Tcl_Obj* (*tcl_FSGetNormalizedPath) (Tcl_Interp * interp, Tcl_Obj* pathPtr); /* 463 */ + Tcl_Obj* (*tcl_FSJoinToPath) (Tcl_Obj * pathPtr, int objc, Tcl_Obj *CONST objv[]); /* 464 */ + ClientData (*tcl_FSGetInternalRep) (Tcl_Obj* pathPtr, Tcl_Filesystem * fsPtr); /* 465 */ + Tcl_Obj* (*tcl_FSGetTranslatedPath) (Tcl_Interp * interp, Tcl_Obj* pathPtr); /* 466 */ + int (*tcl_FSEvalFile) (Tcl_Interp * interp, Tcl_Obj * fileName); /* 467 */ + Tcl_Obj* (*tcl_FSNewNativePath) (Tcl_Filesystem* fromFilesystem, ClientData clientData); /* 468 */ + CONST char* (*tcl_FSGetNativePath) (Tcl_Obj* pathPtr); /* 469 */ + Tcl_Obj* (*tcl_FSFileSystemInfo) (Tcl_Obj* pathPtr); /* 470 */ + Tcl_Obj* (*tcl_FSPathSeparator) (Tcl_Obj* pathPtr); /* 471 */ + Tcl_Obj* (*tcl_FSListVolumes) (void); /* 472 */ + int (*tcl_FSRegister) (ClientData clientData, Tcl_Filesystem * fsPtr); /* 473 */ + int (*tcl_FSUnregister) (Tcl_Filesystem * fsPtr); /* 474 */ + ClientData (*tcl_FSData) (Tcl_Filesystem * fsPtr); /* 475 */ + CONST char* (*tcl_FSGetTranslatedStringPath) (Tcl_Interp * interp, Tcl_Obj* pathPtr); /* 476 */ + Tcl_Filesystem* (*tcl_FSGetFileSystemForPath) (Tcl_Obj* pathPtr); /* 477 */ + Tcl_PathType (*tcl_FSGetPathType) (Tcl_Obj * pathPtr); /* 478 */ + int (*tcl_OutputBuffered) (Tcl_Channel chan); /* 479 */ + void (*tcl_FSMountsChanged) (Tcl_Filesystem * fsPtr); /* 480 */ + int (*tcl_EvalTokensStandard) (Tcl_Interp * interp, Tcl_Token * tokenPtr, int count); /* 481 */ + void (*tcl_GetTime) (Tcl_Time* timeBuf); /* 482 */ + Tcl_Trace (*tcl_CreateObjTrace) (Tcl_Interp* interp, int level, int flags, Tcl_CmdObjTraceProc* objProc, ClientData clientData, Tcl_CmdObjTraceDeleteProc* delProc); /* 483 */ + int (*tcl_GetCommandInfoFromToken) (Tcl_Command token, Tcl_CmdInfo* infoPtr); /* 484 */ + int (*tcl_SetCommandInfoFromToken) (Tcl_Command token, CONST Tcl_CmdInfo* infoPtr); /* 485 */ + Tcl_Obj * (*tcl_DbNewWideIntObj) (Tcl_WideInt wideValue, CONST char * file, int line); /* 486 */ + int (*tcl_GetWideIntFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_WideInt * widePtr); /* 487 */ + Tcl_Obj * (*tcl_NewWideIntObj) (Tcl_WideInt wideValue); /* 488 */ + void (*tcl_SetWideIntObj) (Tcl_Obj * objPtr, Tcl_WideInt wideValue); /* 489 */ + Tcl_StatBuf * (*tcl_AllocStatBuf) (void); /* 490 */ + Tcl_WideInt (*tcl_Seek) (Tcl_Channel chan, Tcl_WideInt offset, int mode); /* 491 */ + Tcl_WideInt (*tcl_Tell) (Tcl_Channel chan); /* 492 */ + Tcl_DriverWideSeekProc * (*tcl_ChannelWideSeekProc) (CONST Tcl_ChannelType * chanTypePtr); /* 493 */ + int (*tcl_DictObjPut) (Tcl_Interp * interp, Tcl_Obj * dictPtr, Tcl_Obj * keyPtr, Tcl_Obj * valuePtr); /* 494 */ + int (*tcl_DictObjGet) (Tcl_Interp * interp, Tcl_Obj * dictPtr, Tcl_Obj * keyPtr, Tcl_Obj ** valuePtrPtr); /* 495 */ + int (*tcl_DictObjRemove) (Tcl_Interp * interp, Tcl_Obj * dictPtr, Tcl_Obj * keyPtr); /* 496 */ + int (*tcl_DictObjSize) (Tcl_Interp * interp, Tcl_Obj * dictPtr, int * sizePtr); /* 497 */ + int (*tcl_DictObjFirst) (Tcl_Interp * interp, Tcl_Obj * dictPtr, Tcl_DictSearch * searchPtr, Tcl_Obj ** keyPtrPtr, Tcl_Obj ** valuePtrPtr, int * donePtr); /* 498 */ + void (*tcl_DictObjNext) (Tcl_DictSearch * searchPtr, Tcl_Obj ** keyPtrPtr, Tcl_Obj ** valuePtrPtr, int * donePtr); /* 499 */ + void (*tcl_DictObjDone) (Tcl_DictSearch * searchPtr); /* 500 */ + int (*tcl_DictObjPutKeyList) (Tcl_Interp * interp, Tcl_Obj * dictPtr, int keyc, Tcl_Obj *CONST * keyv, Tcl_Obj * valuePtr); /* 501 */ + int (*tcl_DictObjRemoveKeyList) (Tcl_Interp * interp, Tcl_Obj * dictPtr, int keyc, Tcl_Obj *CONST * keyv); /* 502 */ + Tcl_Obj * (*tcl_NewDictObj) (void); /* 503 */ + Tcl_Obj * (*tcl_DbNewDictObj) (CONST char * file, int line); /* 504 */ + void (*tcl_RegisterConfig) (Tcl_Interp* interp, CONST char* pkgName, Tcl_Config* configuration, CONST char* valEncoding); /* 505 */ + Tcl_Namespace * (*tcl_CreateNamespace) (Tcl_Interp * interp, CONST char * name, ClientData clientData, Tcl_NamespaceDeleteProc * deleteProc); /* 506 */ + void (*tcl_DeleteNamespace) (Tcl_Namespace * nsPtr); /* 507 */ + int (*tcl_AppendExportList) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * objPtr); /* 508 */ + int (*tcl_Export) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int resetListFirst); /* 509 */ + int (*tcl_Import) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern, int allowOverwrite); /* 510 */ + int (*tcl_ForgetImport) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, CONST char * pattern); /* 511 */ + Tcl_Namespace * (*tcl_GetCurrentNamespace) (Tcl_Interp * interp); /* 512 */ + Tcl_Namespace * (*tcl_GetGlobalNamespace) (Tcl_Interp * interp); /* 513 */ + Tcl_Namespace * (*tcl_FindNamespace) (Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags); /* 514 */ + Tcl_Command (*tcl_FindCommand) (Tcl_Interp * interp, CONST char * name, Tcl_Namespace * contextNsPtr, int flags); /* 515 */ + Tcl_Command (*tcl_GetCommandFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 516 */ + void (*tcl_GetCommandFullName) (Tcl_Interp * interp, Tcl_Command command, Tcl_Obj * objPtr); /* 517 */ + int (*tcl_FSEvalFileEx) (Tcl_Interp * interp, Tcl_Obj * fileName, CONST char * encodingName); /* 518 */ + Tcl_ExitProc * (*tcl_SetExitProc) (Tcl_ExitProc * proc); /* 519 */ + void (*tcl_LimitAddHandler) (Tcl_Interp * interp, int type, Tcl_LimitHandlerProc * handlerProc, ClientData clientData, Tcl_LimitHandlerDeleteProc * deleteProc); /* 520 */ + void (*tcl_LimitRemoveHandler) (Tcl_Interp * interp, int type, Tcl_LimitHandlerProc * handlerProc, ClientData clientData); /* 521 */ + int (*tcl_LimitReady) (Tcl_Interp * interp); /* 522 */ + int (*tcl_LimitCheck) (Tcl_Interp * interp); /* 523 */ + int (*tcl_LimitExceeded) (Tcl_Interp * interp); /* 524 */ + void (*tcl_LimitSetCommands) (Tcl_Interp * interp, int commandLimit); /* 525 */ + void (*tcl_LimitSetTime) (Tcl_Interp * interp, Tcl_Time * timeLimitPtr); /* 526 */ + void (*tcl_LimitSetGranularity) (Tcl_Interp * interp, int type, int granularity); /* 527 */ + int (*tcl_LimitTypeEnabled) (Tcl_Interp * interp, int type); /* 528 */ + int (*tcl_LimitTypeExceeded) (Tcl_Interp * interp, int type); /* 529 */ + void (*tcl_LimitTypeSet) (Tcl_Interp * interp, int type); /* 530 */ + void (*tcl_LimitTypeReset) (Tcl_Interp * interp, int type); /* 531 */ + int (*tcl_LimitGetCommands) (Tcl_Interp * interp); /* 532 */ + void (*tcl_LimitGetTime) (Tcl_Interp * interp, Tcl_Time * timeLimitPtr); /* 533 */ + int (*tcl_LimitGetGranularity) (Tcl_Interp * interp, int type); /* 534 */ + Tcl_InterpState (*tcl_SaveInterpState) (Tcl_Interp * interp, int status); /* 535 */ + int (*tcl_RestoreInterpState) (Tcl_Interp * interp, Tcl_InterpState state); /* 536 */ + void (*tcl_DiscardInterpState) (Tcl_InterpState state); /* 537 */ + int (*tcl_SetReturnOptions) (Tcl_Interp * interp, Tcl_Obj * options); /* 538 */ + Tcl_Obj * (*tcl_GetReturnOptions) (Tcl_Interp * interp, int result); /* 539 */ + int (*tcl_IsEnsemble) (Tcl_Command token); /* 540 */ + Tcl_Command (*tcl_CreateEnsemble) (Tcl_Interp * interp, CONST char * name, Tcl_Namespace * namespacePtr, int flags); /* 541 */ + Tcl_Command (*tcl_FindEnsemble) (Tcl_Interp * interp, Tcl_Obj * cmdNameObj, int flags); /* 542 */ + int (*tcl_SetEnsembleSubcommandList) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj * subcmdList); /* 543 */ + int (*tcl_SetEnsembleMappingDict) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj * mapDict); /* 544 */ + int (*tcl_SetEnsembleUnknownHandler) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj * unknownList); /* 545 */ + int (*tcl_SetEnsembleFlags) (Tcl_Interp * interp, Tcl_Command token, int flags); /* 546 */ + int (*tcl_GetEnsembleSubcommandList) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj ** subcmdListPtr); /* 547 */ + int (*tcl_GetEnsembleMappingDict) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj ** mapDictPtr); /* 548 */ + int (*tcl_GetEnsembleUnknownHandler) (Tcl_Interp * interp, Tcl_Command token, Tcl_Obj ** unknownListPtr); /* 549 */ + int (*tcl_GetEnsembleFlags) (Tcl_Interp * interp, Tcl_Command token, int * flagsPtr); /* 550 */ + int (*tcl_GetEnsembleNamespace) (Tcl_Interp * interp, Tcl_Command token, Tcl_Namespace ** namespacePtrPtr); /* 551 */ + void (*tcl_SetTimeProc) (Tcl_GetTimeProc* getProc, Tcl_ScaleTimeProc* scaleProc, ClientData clientData); /* 552 */ + void (*tcl_QueryTimeProc) (Tcl_GetTimeProc** getProc, Tcl_ScaleTimeProc** scaleProc, ClientData* clientData); /* 553 */ + Tcl_DriverThreadActionProc * (*tcl_ChannelThreadActionProc) (CONST Tcl_ChannelType * chanTypePtr); /* 554 */ + Tcl_Obj* (*tcl_NewBignumObj) (mp_int* value); /* 555 */ + Tcl_Obj* (*tcl_DbNewBignumObj) (mp_int* value, CONST char* file, int line); /* 556 */ + void (*tcl_SetBignumObj) (Tcl_Obj* obj, mp_int* value); /* 557 */ + int (*tcl_GetBignumFromObj) (Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value); /* 558 */ + int (*tcl_TakeBignumFromObj) (Tcl_Interp* interp, Tcl_Obj* obj, mp_int* value); /* 559 */ + int (*tcl_TruncateChannel) (Tcl_Channel chan, Tcl_WideInt length); /* 560 */ + Tcl_DriverTruncateProc * (*tcl_ChannelTruncateProc) (CONST Tcl_ChannelType * chanTypePtr); /* 561 */ + void (*tcl_SetChannelErrorInterp) (Tcl_Interp* interp, Tcl_Obj* msg); /* 562 */ + void (*tcl_GetChannelErrorInterp) (Tcl_Interp* interp, Tcl_Obj** msg); /* 563 */ + void (*tcl_SetChannelError) (Tcl_Channel chan, Tcl_Obj* msg); /* 564 */ + void (*tcl_GetChannelError) (Tcl_Channel chan, Tcl_Obj** msg); /* 565 */ + int (*tcl_InitBignumFromDouble) (Tcl_Interp* interp, double initval, mp_int * toInit); /* 566 */ + Tcl_Obj * (*tcl_GetNamespaceUnknownHandler) (Tcl_Interp * interp, Tcl_Namespace * nsPtr); /* 567 */ + int (*tcl_SetNamespaceUnknownHandler) (Tcl_Interp * interp, Tcl_Namespace * nsPtr, Tcl_Obj * handlerPtr); /* 568 */ + int (*tcl_GetEncodingFromObj) (Tcl_Interp* interp, Tcl_Obj* objPtr, Tcl_Encoding* encodingPtr); /* 569 */ + Tcl_Obj* (*tcl_GetEncodingSearchPath) (void); /* 570 */ + int (*tcl_SetEncodingSearchPath) (Tcl_Obj* searchPath); /* 571 */ + CONST char * (*tcl_GetEncodingNameFromEnvironment) (Tcl_DString* bufPtr); /* 572 */ + int (*tcl_PkgRequireProc) (Tcl_Interp * interp, CONST char * name, int objc, Tcl_Obj *CONST objv[], ClientData * clientDataPtr); /* 573 */ + void (*tcl_AppendObjToErrorInfo) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 574 */ + void (*tcl_AppendLimitedToObj) (Tcl_Obj * objPtr, CONST char * bytes, int length, int limit, CONST char * ellipsis); /* 575 */ + Tcl_Obj * (*tcl_Format) (Tcl_Interp * interp, CONST char * format, int objc, Tcl_Obj * CONST objv[]); /* 576 */ + int (*tcl_AppendFormatToObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, CONST char * format, int objc, Tcl_Obj * CONST objv[]); /* 577 */ + Tcl_Obj * (*tcl_ObjPrintf) (CONST char * format, ...); /* 578 */ + void (*tcl_AppendPrintfToObj) (Tcl_Obj * objPtr, CONST char * format, ...); /* 579 */ +} TclStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TclStubs *tclStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef Tcl_PkgProvideEx +#define Tcl_PkgProvideEx \ + (tclStubsPtr->tcl_PkgProvideEx) /* 0 */ +#endif +#ifndef Tcl_PkgRequireEx +#define Tcl_PkgRequireEx \ + (tclStubsPtr->tcl_PkgRequireEx) /* 1 */ +#endif +#ifndef Tcl_Panic +#define Tcl_Panic \ + (tclStubsPtr->tcl_Panic) /* 2 */ +#endif +#ifndef Tcl_Alloc +#define Tcl_Alloc \ + (tclStubsPtr->tcl_Alloc) /* 3 */ +#endif +#ifndef Tcl_Free +#define Tcl_Free \ + (tclStubsPtr->tcl_Free) /* 4 */ +#endif +#ifndef Tcl_Realloc +#define Tcl_Realloc \ + (tclStubsPtr->tcl_Realloc) /* 5 */ +#endif +#ifndef Tcl_DbCkalloc +#define Tcl_DbCkalloc \ + (tclStubsPtr->tcl_DbCkalloc) /* 6 */ +#endif +#ifndef Tcl_DbCkfree +#define Tcl_DbCkfree \ + (tclStubsPtr->tcl_DbCkfree) /* 7 */ +#endif +#ifndef Tcl_DbCkrealloc +#define Tcl_DbCkrealloc \ + (tclStubsPtr->tcl_DbCkrealloc) /* 8 */ +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_CreateFileHandler +#define Tcl_CreateFileHandler \ + (tclStubsPtr->tcl_CreateFileHandler) /* 9 */ +#endif +#endif /* UNIX */ +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_DeleteFileHandler +#define Tcl_DeleteFileHandler \ + (tclStubsPtr->tcl_DeleteFileHandler) /* 10 */ +#endif +#endif /* UNIX */ +#ifndef Tcl_SetTimer +#define Tcl_SetTimer \ + (tclStubsPtr->tcl_SetTimer) /* 11 */ +#endif +#ifndef Tcl_Sleep +#define Tcl_Sleep \ + (tclStubsPtr->tcl_Sleep) /* 12 */ +#endif +#ifndef Tcl_WaitForEvent +#define Tcl_WaitForEvent \ + (tclStubsPtr->tcl_WaitForEvent) /* 13 */ +#endif +#ifndef Tcl_AppendAllObjTypes +#define Tcl_AppendAllObjTypes \ + (tclStubsPtr->tcl_AppendAllObjTypes) /* 14 */ +#endif +#ifndef Tcl_AppendStringsToObj +#define Tcl_AppendStringsToObj \ + (tclStubsPtr->tcl_AppendStringsToObj) /* 15 */ +#endif +#ifndef Tcl_AppendToObj +#define Tcl_AppendToObj \ + (tclStubsPtr->tcl_AppendToObj) /* 16 */ +#endif +#ifndef Tcl_ConcatObj +#define Tcl_ConcatObj \ + (tclStubsPtr->tcl_ConcatObj) /* 17 */ +#endif +#ifndef Tcl_ConvertToType +#define Tcl_ConvertToType \ + (tclStubsPtr->tcl_ConvertToType) /* 18 */ +#endif +#ifndef Tcl_DbDecrRefCount +#define Tcl_DbDecrRefCount \ + (tclStubsPtr->tcl_DbDecrRefCount) /* 19 */ +#endif +#ifndef Tcl_DbIncrRefCount +#define Tcl_DbIncrRefCount \ + (tclStubsPtr->tcl_DbIncrRefCount) /* 20 */ +#endif +#ifndef Tcl_DbIsShared +#define Tcl_DbIsShared \ + (tclStubsPtr->tcl_DbIsShared) /* 21 */ +#endif +#ifndef Tcl_DbNewBooleanObj +#define Tcl_DbNewBooleanObj \ + (tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */ +#endif +#ifndef Tcl_DbNewByteArrayObj +#define Tcl_DbNewByteArrayObj \ + (tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */ +#endif +#ifndef Tcl_DbNewDoubleObj +#define Tcl_DbNewDoubleObj \ + (tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */ +#endif +#ifndef Tcl_DbNewListObj +#define Tcl_DbNewListObj \ + (tclStubsPtr->tcl_DbNewListObj) /* 25 */ +#endif +#ifndef Tcl_DbNewLongObj +#define Tcl_DbNewLongObj \ + (tclStubsPtr->tcl_DbNewLongObj) /* 26 */ +#endif +#ifndef Tcl_DbNewObj +#define Tcl_DbNewObj \ + (tclStubsPtr->tcl_DbNewObj) /* 27 */ +#endif +#ifndef Tcl_DbNewStringObj +#define Tcl_DbNewStringObj \ + (tclStubsPtr->tcl_DbNewStringObj) /* 28 */ +#endif +#ifndef Tcl_DuplicateObj +#define Tcl_DuplicateObj \ + (tclStubsPtr->tcl_DuplicateObj) /* 29 */ +#endif +#ifndef TclFreeObj +#define TclFreeObj \ + (tclStubsPtr->tclFreeObj) /* 30 */ +#endif +#ifndef Tcl_GetBoolean +#define Tcl_GetBoolean \ + (tclStubsPtr->tcl_GetBoolean) /* 31 */ +#endif +#ifndef Tcl_GetBooleanFromObj +#define Tcl_GetBooleanFromObj \ + (tclStubsPtr->tcl_GetBooleanFromObj) /* 32 */ +#endif +#ifndef Tcl_GetByteArrayFromObj +#define Tcl_GetByteArrayFromObj \ + (tclStubsPtr->tcl_GetByteArrayFromObj) /* 33 */ +#endif +#ifndef Tcl_GetDouble +#define Tcl_GetDouble \ + (tclStubsPtr->tcl_GetDouble) /* 34 */ +#endif +#ifndef Tcl_GetDoubleFromObj +#define Tcl_GetDoubleFromObj \ + (tclStubsPtr->tcl_GetDoubleFromObj) /* 35 */ +#endif +#ifndef Tcl_GetIndexFromObj +#define Tcl_GetIndexFromObj \ + (tclStubsPtr->tcl_GetIndexFromObj) /* 36 */ +#endif +#ifndef Tcl_GetInt +#define Tcl_GetInt \ + (tclStubsPtr->tcl_GetInt) /* 37 */ +#endif +#ifndef Tcl_GetIntFromObj +#define Tcl_GetIntFromObj \ + (tclStubsPtr->tcl_GetIntFromObj) /* 38 */ +#endif +#ifndef Tcl_GetLongFromObj +#define Tcl_GetLongFromObj \ + (tclStubsPtr->tcl_GetLongFromObj) /* 39 */ +#endif +#ifndef Tcl_GetObjType +#define Tcl_GetObjType \ + (tclStubsPtr->tcl_GetObjType) /* 40 */ +#endif +#ifndef Tcl_GetStringFromObj +#define Tcl_GetStringFromObj \ + (tclStubsPtr->tcl_GetStringFromObj) /* 41 */ +#endif +#ifndef Tcl_InvalidateStringRep +#define Tcl_InvalidateStringRep \ + (tclStubsPtr->tcl_InvalidateStringRep) /* 42 */ +#endif +#ifndef Tcl_ListObjAppendList +#define Tcl_ListObjAppendList \ + (tclStubsPtr->tcl_ListObjAppendList) /* 43 */ +#endif +#ifndef Tcl_ListObjAppendElement +#define Tcl_ListObjAppendElement \ + (tclStubsPtr->tcl_ListObjAppendElement) /* 44 */ +#endif +#ifndef Tcl_ListObjGetElements +#define Tcl_ListObjGetElements \ + (tclStubsPtr->tcl_ListObjGetElements) /* 45 */ +#endif +#ifndef Tcl_ListObjIndex +#define Tcl_ListObjIndex \ + (tclStubsPtr->tcl_ListObjIndex) /* 46 */ +#endif +#ifndef Tcl_ListObjLength +#define Tcl_ListObjLength \ + (tclStubsPtr->tcl_ListObjLength) /* 47 */ +#endif +#ifndef Tcl_ListObjReplace +#define Tcl_ListObjReplace \ + (tclStubsPtr->tcl_ListObjReplace) /* 48 */ +#endif +#ifndef Tcl_NewBooleanObj +#define Tcl_NewBooleanObj \ + (tclStubsPtr->tcl_NewBooleanObj) /* 49 */ +#endif +#ifndef Tcl_NewByteArrayObj +#define Tcl_NewByteArrayObj \ + (tclStubsPtr->tcl_NewByteArrayObj) /* 50 */ +#endif +#ifndef Tcl_NewDoubleObj +#define Tcl_NewDoubleObj \ + (tclStubsPtr->tcl_NewDoubleObj) /* 51 */ +#endif +#ifndef Tcl_NewIntObj +#define Tcl_NewIntObj \ + (tclStubsPtr->tcl_NewIntObj) /* 52 */ +#endif +#ifndef Tcl_NewListObj +#define Tcl_NewListObj \ + (tclStubsPtr->tcl_NewListObj) /* 53 */ +#endif +#ifndef Tcl_NewLongObj +#define Tcl_NewLongObj \ + (tclStubsPtr->tcl_NewLongObj) /* 54 */ +#endif +#ifndef Tcl_NewObj +#define Tcl_NewObj \ + (tclStubsPtr->tcl_NewObj) /* 55 */ +#endif +#ifndef Tcl_NewStringObj +#define Tcl_NewStringObj \ + (tclStubsPtr->tcl_NewStringObj) /* 56 */ +#endif +#ifndef Tcl_SetBooleanObj +#define Tcl_SetBooleanObj \ + (tclStubsPtr->tcl_SetBooleanObj) /* 57 */ +#endif +#ifndef Tcl_SetByteArrayLength +#define Tcl_SetByteArrayLength \ + (tclStubsPtr->tcl_SetByteArrayLength) /* 58 */ +#endif +#ifndef Tcl_SetByteArrayObj +#define Tcl_SetByteArrayObj \ + (tclStubsPtr->tcl_SetByteArrayObj) /* 59 */ +#endif +#ifndef Tcl_SetDoubleObj +#define Tcl_SetDoubleObj \ + (tclStubsPtr->tcl_SetDoubleObj) /* 60 */ +#endif +#ifndef Tcl_SetIntObj +#define Tcl_SetIntObj \ + (tclStubsPtr->tcl_SetIntObj) /* 61 */ +#endif +#ifndef Tcl_SetListObj +#define Tcl_SetListObj \ + (tclStubsPtr->tcl_SetListObj) /* 62 */ +#endif +#ifndef Tcl_SetLongObj +#define Tcl_SetLongObj \ + (tclStubsPtr->tcl_SetLongObj) /* 63 */ +#endif +#ifndef Tcl_SetObjLength +#define Tcl_SetObjLength \ + (tclStubsPtr->tcl_SetObjLength) /* 64 */ +#endif +#ifndef Tcl_SetStringObj +#define Tcl_SetStringObj \ + (tclStubsPtr->tcl_SetStringObj) /* 65 */ +#endif +#ifndef Tcl_AddErrorInfo +#define Tcl_AddErrorInfo \ + (tclStubsPtr->tcl_AddErrorInfo) /* 66 */ +#endif +#ifndef Tcl_AddObjErrorInfo +#define Tcl_AddObjErrorInfo \ + (tclStubsPtr->tcl_AddObjErrorInfo) /* 67 */ +#endif +#ifndef Tcl_AllowExceptions +#define Tcl_AllowExceptions \ + (tclStubsPtr->tcl_AllowExceptions) /* 68 */ +#endif +#ifndef Tcl_AppendElement +#define Tcl_AppendElement \ + (tclStubsPtr->tcl_AppendElement) /* 69 */ +#endif +#ifndef Tcl_AppendResult +#define Tcl_AppendResult \ + (tclStubsPtr->tcl_AppendResult) /* 70 */ +#endif +#ifndef Tcl_AsyncCreate +#define Tcl_AsyncCreate \ + (tclStubsPtr->tcl_AsyncCreate) /* 71 */ +#endif +#ifndef Tcl_AsyncDelete +#define Tcl_AsyncDelete \ + (tclStubsPtr->tcl_AsyncDelete) /* 72 */ +#endif +#ifndef Tcl_AsyncInvoke +#define Tcl_AsyncInvoke \ + (tclStubsPtr->tcl_AsyncInvoke) /* 73 */ +#endif +#ifndef Tcl_AsyncMark +#define Tcl_AsyncMark \ + (tclStubsPtr->tcl_AsyncMark) /* 74 */ +#endif +#ifndef Tcl_AsyncReady +#define Tcl_AsyncReady \ + (tclStubsPtr->tcl_AsyncReady) /* 75 */ +#endif +#ifndef Tcl_BackgroundError +#define Tcl_BackgroundError \ + (tclStubsPtr->tcl_BackgroundError) /* 76 */ +#endif +#ifndef Tcl_Backslash +#define Tcl_Backslash \ + (tclStubsPtr->tcl_Backslash) /* 77 */ +#endif +#ifndef Tcl_BadChannelOption +#define Tcl_BadChannelOption \ + (tclStubsPtr->tcl_BadChannelOption) /* 78 */ +#endif +#ifndef Tcl_CallWhenDeleted +#define Tcl_CallWhenDeleted \ + (tclStubsPtr->tcl_CallWhenDeleted) /* 79 */ +#endif +#ifndef Tcl_CancelIdleCall +#define Tcl_CancelIdleCall \ + (tclStubsPtr->tcl_CancelIdleCall) /* 80 */ +#endif +#ifndef Tcl_Close +#define Tcl_Close \ + (tclStubsPtr->tcl_Close) /* 81 */ +#endif +#ifndef Tcl_CommandComplete +#define Tcl_CommandComplete \ + (tclStubsPtr->tcl_CommandComplete) /* 82 */ +#endif +#ifndef Tcl_Concat +#define Tcl_Concat \ + (tclStubsPtr->tcl_Concat) /* 83 */ +#endif +#ifndef Tcl_ConvertElement +#define Tcl_ConvertElement \ + (tclStubsPtr->tcl_ConvertElement) /* 84 */ +#endif +#ifndef Tcl_ConvertCountedElement +#define Tcl_ConvertCountedElement \ + (tclStubsPtr->tcl_ConvertCountedElement) /* 85 */ +#endif +#ifndef Tcl_CreateAlias +#define Tcl_CreateAlias \ + (tclStubsPtr->tcl_CreateAlias) /* 86 */ +#endif +#ifndef Tcl_CreateAliasObj +#define Tcl_CreateAliasObj \ + (tclStubsPtr->tcl_CreateAliasObj) /* 87 */ +#endif +#ifndef Tcl_CreateChannel +#define Tcl_CreateChannel \ + (tclStubsPtr->tcl_CreateChannel) /* 88 */ +#endif +#ifndef Tcl_CreateChannelHandler +#define Tcl_CreateChannelHandler \ + (tclStubsPtr->tcl_CreateChannelHandler) /* 89 */ +#endif +#ifndef Tcl_CreateCloseHandler +#define Tcl_CreateCloseHandler \ + (tclStubsPtr->tcl_CreateCloseHandler) /* 90 */ +#endif +#ifndef Tcl_CreateCommand +#define Tcl_CreateCommand \ + (tclStubsPtr->tcl_CreateCommand) /* 91 */ +#endif +#ifndef Tcl_CreateEventSource +#define Tcl_CreateEventSource \ + (tclStubsPtr->tcl_CreateEventSource) /* 92 */ +#endif +#ifndef Tcl_CreateExitHandler +#define Tcl_CreateExitHandler \ + (tclStubsPtr->tcl_CreateExitHandler) /* 93 */ +#endif +#ifndef Tcl_CreateInterp +#define Tcl_CreateInterp \ + (tclStubsPtr->tcl_CreateInterp) /* 94 */ +#endif +#ifndef Tcl_CreateMathFunc +#define Tcl_CreateMathFunc \ + (tclStubsPtr->tcl_CreateMathFunc) /* 95 */ +#endif +#ifndef Tcl_CreateObjCommand +#define Tcl_CreateObjCommand \ + (tclStubsPtr->tcl_CreateObjCommand) /* 96 */ +#endif +#ifndef Tcl_CreateSlave +#define Tcl_CreateSlave \ + (tclStubsPtr->tcl_CreateSlave) /* 97 */ +#endif +#ifndef Tcl_CreateTimerHandler +#define Tcl_CreateTimerHandler \ + (tclStubsPtr->tcl_CreateTimerHandler) /* 98 */ +#endif +#ifndef Tcl_CreateTrace +#define Tcl_CreateTrace \ + (tclStubsPtr->tcl_CreateTrace) /* 99 */ +#endif +#ifndef Tcl_DeleteAssocData +#define Tcl_DeleteAssocData \ + (tclStubsPtr->tcl_DeleteAssocData) /* 100 */ +#endif +#ifndef Tcl_DeleteChannelHandler +#define Tcl_DeleteChannelHandler \ + (tclStubsPtr->tcl_DeleteChannelHandler) /* 101 */ +#endif +#ifndef Tcl_DeleteCloseHandler +#define Tcl_DeleteCloseHandler \ + (tclStubsPtr->tcl_DeleteCloseHandler) /* 102 */ +#endif +#ifndef Tcl_DeleteCommand +#define Tcl_DeleteCommand \ + (tclStubsPtr->tcl_DeleteCommand) /* 103 */ +#endif +#ifndef Tcl_DeleteCommandFromToken +#define Tcl_DeleteCommandFromToken \ + (tclStubsPtr->tcl_DeleteCommandFromToken) /* 104 */ +#endif +#ifndef Tcl_DeleteEvents +#define Tcl_DeleteEvents \ + (tclStubsPtr->tcl_DeleteEvents) /* 105 */ +#endif +#ifndef Tcl_DeleteEventSource +#define Tcl_DeleteEventSource \ + (tclStubsPtr->tcl_DeleteEventSource) /* 106 */ +#endif +#ifndef Tcl_DeleteExitHandler +#define Tcl_DeleteExitHandler \ + (tclStubsPtr->tcl_DeleteExitHandler) /* 107 */ +#endif +#ifndef Tcl_DeleteHashEntry +#define Tcl_DeleteHashEntry \ + (tclStubsPtr->tcl_DeleteHashEntry) /* 108 */ +#endif +#ifndef Tcl_DeleteHashTable +#define Tcl_DeleteHashTable \ + (tclStubsPtr->tcl_DeleteHashTable) /* 109 */ +#endif +#ifndef Tcl_DeleteInterp +#define Tcl_DeleteInterp \ + (tclStubsPtr->tcl_DeleteInterp) /* 110 */ +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_DetachPids +#define Tcl_DetachPids \ + (tclStubsPtr->tcl_DetachPids) /* 111 */ +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_DetachPids +#define Tcl_DetachPids \ + (tclStubsPtr->tcl_DetachPids) /* 111 */ +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_DeleteTimerHandler +#define Tcl_DeleteTimerHandler \ + (tclStubsPtr->tcl_DeleteTimerHandler) /* 112 */ +#endif +#ifndef Tcl_DeleteTrace +#define Tcl_DeleteTrace \ + (tclStubsPtr->tcl_DeleteTrace) /* 113 */ +#endif +#ifndef Tcl_DontCallWhenDeleted +#define Tcl_DontCallWhenDeleted \ + (tclStubsPtr->tcl_DontCallWhenDeleted) /* 114 */ +#endif +#ifndef Tcl_DoOneEvent +#define Tcl_DoOneEvent \ + (tclStubsPtr->tcl_DoOneEvent) /* 115 */ +#endif +#ifndef Tcl_DoWhenIdle +#define Tcl_DoWhenIdle \ + (tclStubsPtr->tcl_DoWhenIdle) /* 116 */ +#endif +#ifndef Tcl_DStringAppend +#define Tcl_DStringAppend \ + (tclStubsPtr->tcl_DStringAppend) /* 117 */ +#endif +#ifndef Tcl_DStringAppendElement +#define Tcl_DStringAppendElement \ + (tclStubsPtr->tcl_DStringAppendElement) /* 118 */ +#endif +#ifndef Tcl_DStringEndSublist +#define Tcl_DStringEndSublist \ + (tclStubsPtr->tcl_DStringEndSublist) /* 119 */ +#endif +#ifndef Tcl_DStringFree +#define Tcl_DStringFree \ + (tclStubsPtr->tcl_DStringFree) /* 120 */ +#endif +#ifndef Tcl_DStringGetResult +#define Tcl_DStringGetResult \ + (tclStubsPtr->tcl_DStringGetResult) /* 121 */ +#endif +#ifndef Tcl_DStringInit +#define Tcl_DStringInit \ + (tclStubsPtr->tcl_DStringInit) /* 122 */ +#endif +#ifndef Tcl_DStringResult +#define Tcl_DStringResult \ + (tclStubsPtr->tcl_DStringResult) /* 123 */ +#endif +#ifndef Tcl_DStringSetLength +#define Tcl_DStringSetLength \ + (tclStubsPtr->tcl_DStringSetLength) /* 124 */ +#endif +#ifndef Tcl_DStringStartSublist +#define Tcl_DStringStartSublist \ + (tclStubsPtr->tcl_DStringStartSublist) /* 125 */ +#endif +#ifndef Tcl_Eof +#define Tcl_Eof \ + (tclStubsPtr->tcl_Eof) /* 126 */ +#endif +#ifndef Tcl_ErrnoId +#define Tcl_ErrnoId \ + (tclStubsPtr->tcl_ErrnoId) /* 127 */ +#endif +#ifndef Tcl_ErrnoMsg +#define Tcl_ErrnoMsg \ + (tclStubsPtr->tcl_ErrnoMsg) /* 128 */ +#endif +#ifndef Tcl_Eval +#define Tcl_Eval \ + (tclStubsPtr->tcl_Eval) /* 129 */ +#endif +#ifndef Tcl_EvalFile +#define Tcl_EvalFile \ + (tclStubsPtr->tcl_EvalFile) /* 130 */ +#endif +#ifndef Tcl_EvalObj +#define Tcl_EvalObj \ + (tclStubsPtr->tcl_EvalObj) /* 131 */ +#endif +#ifndef Tcl_EventuallyFree +#define Tcl_EventuallyFree \ + (tclStubsPtr->tcl_EventuallyFree) /* 132 */ +#endif +#ifndef Tcl_Exit +#define Tcl_Exit \ + (tclStubsPtr->tcl_Exit) /* 133 */ +#endif +#ifndef Tcl_ExposeCommand +#define Tcl_ExposeCommand \ + (tclStubsPtr->tcl_ExposeCommand) /* 134 */ +#endif +#ifndef Tcl_ExprBoolean +#define Tcl_ExprBoolean \ + (tclStubsPtr->tcl_ExprBoolean) /* 135 */ +#endif +#ifndef Tcl_ExprBooleanObj +#define Tcl_ExprBooleanObj \ + (tclStubsPtr->tcl_ExprBooleanObj) /* 136 */ +#endif +#ifndef Tcl_ExprDouble +#define Tcl_ExprDouble \ + (tclStubsPtr->tcl_ExprDouble) /* 137 */ +#endif +#ifndef Tcl_ExprDoubleObj +#define Tcl_ExprDoubleObj \ + (tclStubsPtr->tcl_ExprDoubleObj) /* 138 */ +#endif +#ifndef Tcl_ExprLong +#define Tcl_ExprLong \ + (tclStubsPtr->tcl_ExprLong) /* 139 */ +#endif +#ifndef Tcl_ExprLongObj +#define Tcl_ExprLongObj \ + (tclStubsPtr->tcl_ExprLongObj) /* 140 */ +#endif +#ifndef Tcl_ExprObj +#define Tcl_ExprObj \ + (tclStubsPtr->tcl_ExprObj) /* 141 */ +#endif +#ifndef Tcl_ExprString +#define Tcl_ExprString \ + (tclStubsPtr->tcl_ExprString) /* 142 */ +#endif +#ifndef Tcl_Finalize +#define Tcl_Finalize \ + (tclStubsPtr->tcl_Finalize) /* 143 */ +#endif +#ifndef Tcl_FindExecutable +#define Tcl_FindExecutable \ + (tclStubsPtr->tcl_FindExecutable) /* 144 */ +#endif +#ifndef Tcl_FirstHashEntry +#define Tcl_FirstHashEntry \ + (tclStubsPtr->tcl_FirstHashEntry) /* 145 */ +#endif +#ifndef Tcl_Flush +#define Tcl_Flush \ + (tclStubsPtr->tcl_Flush) /* 146 */ +#endif +#ifndef Tcl_FreeResult +#define Tcl_FreeResult \ + (tclStubsPtr->tcl_FreeResult) /* 147 */ +#endif +#ifndef Tcl_GetAlias +#define Tcl_GetAlias \ + (tclStubsPtr->tcl_GetAlias) /* 148 */ +#endif +#ifndef Tcl_GetAliasObj +#define Tcl_GetAliasObj \ + (tclStubsPtr->tcl_GetAliasObj) /* 149 */ +#endif +#ifndef Tcl_GetAssocData +#define Tcl_GetAssocData \ + (tclStubsPtr->tcl_GetAssocData) /* 150 */ +#endif +#ifndef Tcl_GetChannel +#define Tcl_GetChannel \ + (tclStubsPtr->tcl_GetChannel) /* 151 */ +#endif +#ifndef Tcl_GetChannelBufferSize +#define Tcl_GetChannelBufferSize \ + (tclStubsPtr->tcl_GetChannelBufferSize) /* 152 */ +#endif +#ifndef Tcl_GetChannelHandle +#define Tcl_GetChannelHandle \ + (tclStubsPtr->tcl_GetChannelHandle) /* 153 */ +#endif +#ifndef Tcl_GetChannelInstanceData +#define Tcl_GetChannelInstanceData \ + (tclStubsPtr->tcl_GetChannelInstanceData) /* 154 */ +#endif +#ifndef Tcl_GetChannelMode +#define Tcl_GetChannelMode \ + (tclStubsPtr->tcl_GetChannelMode) /* 155 */ +#endif +#ifndef Tcl_GetChannelName +#define Tcl_GetChannelName \ + (tclStubsPtr->tcl_GetChannelName) /* 156 */ +#endif +#ifndef Tcl_GetChannelOption +#define Tcl_GetChannelOption \ + (tclStubsPtr->tcl_GetChannelOption) /* 157 */ +#endif +#ifndef Tcl_GetChannelType +#define Tcl_GetChannelType \ + (tclStubsPtr->tcl_GetChannelType) /* 158 */ +#endif +#ifndef Tcl_GetCommandInfo +#define Tcl_GetCommandInfo \ + (tclStubsPtr->tcl_GetCommandInfo) /* 159 */ +#endif +#ifndef Tcl_GetCommandName +#define Tcl_GetCommandName \ + (tclStubsPtr->tcl_GetCommandName) /* 160 */ +#endif +#ifndef Tcl_GetErrno +#define Tcl_GetErrno \ + (tclStubsPtr->tcl_GetErrno) /* 161 */ +#endif +#ifndef Tcl_GetHostName +#define Tcl_GetHostName \ + (tclStubsPtr->tcl_GetHostName) /* 162 */ +#endif +#ifndef Tcl_GetInterpPath +#define Tcl_GetInterpPath \ + (tclStubsPtr->tcl_GetInterpPath) /* 163 */ +#endif +#ifndef Tcl_GetMaster +#define Tcl_GetMaster \ + (tclStubsPtr->tcl_GetMaster) /* 164 */ +#endif +#ifndef Tcl_GetNameOfExecutable +#define Tcl_GetNameOfExecutable \ + (tclStubsPtr->tcl_GetNameOfExecutable) /* 165 */ +#endif +#ifndef Tcl_GetObjResult +#define Tcl_GetObjResult \ + (tclStubsPtr->tcl_GetObjResult) /* 166 */ +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_GetOpenFile +#define Tcl_GetOpenFile \ + (tclStubsPtr->tcl_GetOpenFile) /* 167 */ +#endif +#endif /* UNIX */ +#ifndef Tcl_GetPathType +#define Tcl_GetPathType \ + (tclStubsPtr->tcl_GetPathType) /* 168 */ +#endif +#ifndef Tcl_Gets +#define Tcl_Gets \ + (tclStubsPtr->tcl_Gets) /* 169 */ +#endif +#ifndef Tcl_GetsObj +#define Tcl_GetsObj \ + (tclStubsPtr->tcl_GetsObj) /* 170 */ +#endif +#ifndef Tcl_GetServiceMode +#define Tcl_GetServiceMode \ + (tclStubsPtr->tcl_GetServiceMode) /* 171 */ +#endif +#ifndef Tcl_GetSlave +#define Tcl_GetSlave \ + (tclStubsPtr->tcl_GetSlave) /* 172 */ +#endif +#ifndef Tcl_GetStdChannel +#define Tcl_GetStdChannel \ + (tclStubsPtr->tcl_GetStdChannel) /* 173 */ +#endif +#ifndef Tcl_GetStringResult +#define Tcl_GetStringResult \ + (tclStubsPtr->tcl_GetStringResult) /* 174 */ +#endif +#ifndef Tcl_GetVar +#define Tcl_GetVar \ + (tclStubsPtr->tcl_GetVar) /* 175 */ +#endif +#ifndef Tcl_GetVar2 +#define Tcl_GetVar2 \ + (tclStubsPtr->tcl_GetVar2) /* 176 */ +#endif +#ifndef Tcl_GlobalEval +#define Tcl_GlobalEval \ + (tclStubsPtr->tcl_GlobalEval) /* 177 */ +#endif +#ifndef Tcl_GlobalEvalObj +#define Tcl_GlobalEvalObj \ + (tclStubsPtr->tcl_GlobalEvalObj) /* 178 */ +#endif +#ifndef Tcl_HideCommand +#define Tcl_HideCommand \ + (tclStubsPtr->tcl_HideCommand) /* 179 */ +#endif +#ifndef Tcl_Init +#define Tcl_Init \ + (tclStubsPtr->tcl_Init) /* 180 */ +#endif +#ifndef Tcl_InitHashTable +#define Tcl_InitHashTable \ + (tclStubsPtr->tcl_InitHashTable) /* 181 */ +#endif +#ifndef Tcl_InputBlocked +#define Tcl_InputBlocked \ + (tclStubsPtr->tcl_InputBlocked) /* 182 */ +#endif +#ifndef Tcl_InputBuffered +#define Tcl_InputBuffered \ + (tclStubsPtr->tcl_InputBuffered) /* 183 */ +#endif +#ifndef Tcl_InterpDeleted +#define Tcl_InterpDeleted \ + (tclStubsPtr->tcl_InterpDeleted) /* 184 */ +#endif +#ifndef Tcl_IsSafe +#define Tcl_IsSafe \ + (tclStubsPtr->tcl_IsSafe) /* 185 */ +#endif +#ifndef Tcl_JoinPath +#define Tcl_JoinPath \ + (tclStubsPtr->tcl_JoinPath) /* 186 */ +#endif +#ifndef Tcl_LinkVar +#define Tcl_LinkVar \ + (tclStubsPtr->tcl_LinkVar) /* 187 */ +#endif +/* Slot 188 is reserved */ +#ifndef Tcl_MakeFileChannel +#define Tcl_MakeFileChannel \ + (tclStubsPtr->tcl_MakeFileChannel) /* 189 */ +#endif +#ifndef Tcl_MakeSafe +#define Tcl_MakeSafe \ + (tclStubsPtr->tcl_MakeSafe) /* 190 */ +#endif +#ifndef Tcl_MakeTcpClientChannel +#define Tcl_MakeTcpClientChannel \ + (tclStubsPtr->tcl_MakeTcpClientChannel) /* 191 */ +#endif +#ifndef Tcl_Merge +#define Tcl_Merge \ + (tclStubsPtr->tcl_Merge) /* 192 */ +#endif +#ifndef Tcl_NextHashEntry +#define Tcl_NextHashEntry \ + (tclStubsPtr->tcl_NextHashEntry) /* 193 */ +#endif +#ifndef Tcl_NotifyChannel +#define Tcl_NotifyChannel \ + (tclStubsPtr->tcl_NotifyChannel) /* 194 */ +#endif +#ifndef Tcl_ObjGetVar2 +#define Tcl_ObjGetVar2 \ + (tclStubsPtr->tcl_ObjGetVar2) /* 195 */ +#endif +#ifndef Tcl_ObjSetVar2 +#define Tcl_ObjSetVar2 \ + (tclStubsPtr->tcl_ObjSetVar2) /* 196 */ +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_OpenCommandChannel +#define Tcl_OpenCommandChannel \ + (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */ +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_OpenCommandChannel +#define Tcl_OpenCommandChannel \ + (tclStubsPtr->tcl_OpenCommandChannel) /* 197 */ +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_OpenFileChannel +#define Tcl_OpenFileChannel \ + (tclStubsPtr->tcl_OpenFileChannel) /* 198 */ +#endif +#ifndef Tcl_OpenTcpClient +#define Tcl_OpenTcpClient \ + (tclStubsPtr->tcl_OpenTcpClient) /* 199 */ +#endif +#ifndef Tcl_OpenTcpServer +#define Tcl_OpenTcpServer \ + (tclStubsPtr->tcl_OpenTcpServer) /* 200 */ +#endif +#ifndef Tcl_Preserve +#define Tcl_Preserve \ + (tclStubsPtr->tcl_Preserve) /* 201 */ +#endif +#ifndef Tcl_PrintDouble +#define Tcl_PrintDouble \ + (tclStubsPtr->tcl_PrintDouble) /* 202 */ +#endif +#ifndef Tcl_PutEnv +#define Tcl_PutEnv \ + (tclStubsPtr->tcl_PutEnv) /* 203 */ +#endif +#ifndef Tcl_PosixError +#define Tcl_PosixError \ + (tclStubsPtr->tcl_PosixError) /* 204 */ +#endif +#ifndef Tcl_QueueEvent +#define Tcl_QueueEvent \ + (tclStubsPtr->tcl_QueueEvent) /* 205 */ +#endif +#ifndef Tcl_Read +#define Tcl_Read \ + (tclStubsPtr->tcl_Read) /* 206 */ +#endif +#if !defined(__WIN32__) /* UNIX */ +#ifndef Tcl_ReapDetachedProcs +#define Tcl_ReapDetachedProcs \ + (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */ +#endif +#endif /* UNIX */ +#ifdef __WIN32__ +#ifndef Tcl_ReapDetachedProcs +#define Tcl_ReapDetachedProcs \ + (tclStubsPtr->tcl_ReapDetachedProcs) /* 207 */ +#endif +#endif /* __WIN32__ */ +#ifndef Tcl_RecordAndEval +#define Tcl_RecordAndEval \ + (tclStubsPtr->tcl_RecordAndEval) /* 208 */ +#endif +#ifndef Tcl_RecordAndEvalObj +#define Tcl_RecordAndEvalObj \ + (tclStubsPtr->tcl_RecordAndEvalObj) /* 209 */ +#endif +#ifndef Tcl_RegisterChannel +#define Tcl_RegisterChannel \ + (tclStubsPtr->tcl_RegisterChannel) /* 210 */ +#endif +#ifndef Tcl_RegisterObjType +#define Tcl_RegisterObjType \ + (tclStubsPtr->tcl_RegisterObjType) /* 211 */ +#endif +#ifndef Tcl_RegExpCompile +#define Tcl_RegExpCompile \ + (tclStubsPtr->tcl_RegExpCompile) /* 212 */ +#endif +#ifndef Tcl_RegExpExec +#define Tcl_RegExpExec \ + (tclStubsPtr->tcl_RegExpExec) /* 213 */ +#endif +#ifndef Tcl_RegExpMatch +#define Tcl_RegExpMatch \ + (tclStubsPtr->tcl_RegExpMatch) /* 214 */ +#endif +#ifndef Tcl_RegExpRange +#define Tcl_RegExpRange \ + (tclStubsPtr->tcl_RegExpRange) /* 215 */ +#endif +#ifndef Tcl_Release +#define Tcl_Release \ + (tclStubsPtr->tcl_Release) /* 216 */ +#endif +#ifndef Tcl_ResetResult +#define Tcl_ResetResult \ + (tclStubsPtr->tcl_ResetResult) /* 217 */ +#endif +#ifndef Tcl_ScanElement +#define Tcl_ScanElement \ + (tclStubsPtr->tcl_ScanElement) /* 218 */ +#endif +#ifndef Tcl_ScanCountedElement +#define Tcl_ScanCountedElement \ + (tclStubsPtr->tcl_ScanCountedElement) /* 219 */ +#endif +#ifndef Tcl_SeekOld +#define Tcl_SeekOld \ + (tclStubsPtr->tcl_SeekOld) /* 220 */ +#endif +#ifndef Tcl_ServiceAll +#define Tcl_ServiceAll \ + (tclStubsPtr->tcl_ServiceAll) /* 221 */ +#endif +#ifndef Tcl_ServiceEvent +#define Tcl_ServiceEvent \ + (tclStubsPtr->tcl_ServiceEvent) /* 222 */ +#endif +#ifndef Tcl_SetAssocData +#define Tcl_SetAssocData \ + (tclStubsPtr->tcl_SetAssocData) /* 223 */ +#endif +#ifndef Tcl_SetChannelBufferSize +#define Tcl_SetChannelBufferSize \ + (tclStubsPtr->tcl_SetChannelBufferSize) /* 224 */ +#endif +#ifndef Tcl_SetChannelOption +#define Tcl_SetChannelOption \ + (tclStubsPtr->tcl_SetChannelOption) /* 225 */ +#endif +#ifndef Tcl_SetCommandInfo +#define Tcl_SetCommandInfo \ + (tclStubsPtr->tcl_SetCommandInfo) /* 226 */ +#endif +#ifndef Tcl_SetErrno +#define Tcl_SetErrno \ + (tclStubsPtr->tcl_SetErrno) /* 227 */ +#endif +#ifndef Tcl_SetErrorCode +#define Tcl_SetErrorCode \ + (tclStubsPtr->tcl_SetErrorCode) /* 228 */ +#endif +#ifndef Tcl_SetMaxBlockTime +#define Tcl_SetMaxBlockTime \ + (tclStubsPtr->tcl_SetMaxBlockTime) /* 229 */ +#endif +#ifndef Tcl_SetPanicProc +#define Tcl_SetPanicProc \ + (tclStubsPtr->tcl_SetPanicProc) /* 230 */ +#endif +#ifndef Tcl_SetRecursionLimit +#define Tcl_SetRecursionLimit \ + (tclStubsPtr->tcl_SetRecursionLimit) /* 231 */ +#endif +#ifndef Tcl_SetResult +#define Tcl_SetResult \ + (tclStubsPtr->tcl_SetResult) /* 232 */ +#endif +#ifndef Tcl_SetServiceMode +#define Tcl_SetServiceMode \ + (tclStubsPtr->tcl_SetServiceMode) /* 233 */ +#endif +#ifndef Tcl_SetObjErrorCode +#define Tcl_SetObjErrorCode \ + (tclStubsPtr->tcl_SetObjErrorCode) /* 234 */ +#endif +#ifndef Tcl_SetObjResult +#define Tcl_SetObjResult \ + (tclStubsPtr->tcl_SetObjResult) /* 235 */ +#endif +#ifndef Tcl_SetStdChannel +#define Tcl_SetStdChannel \ + (tclStubsPtr->tcl_SetStdChannel) /* 236 */ +#endif +#ifndef Tcl_SetVar +#define Tcl_SetVar \ + (tclStubsPtr->tcl_SetVar) /* 237 */ +#endif +#ifndef Tcl_SetVar2 +#define Tcl_SetVar2 \ + (tclStubsPtr->tcl_SetVar2) /* 238 */ +#endif +#ifndef Tcl_SignalId +#define Tcl_SignalId \ + (tclStubsPtr->tcl_SignalId) /* 239 */ +#endif +#ifndef Tcl_SignalMsg +#define Tcl_SignalMsg \ + (tclStubsPtr->tcl_SignalMsg) /* 240 */ +#endif +#ifndef Tcl_SourceRCFile +#define Tcl_SourceRCFile \ + (tclStubsPtr->tcl_SourceRCFile) /* 241 */ +#endif +#ifndef Tcl_SplitList +#define Tcl_SplitList \ + (tclStubsPtr->tcl_SplitList) /* 242 */ +#endif +#ifndef Tcl_SplitPath +#define Tcl_SplitPath \ + (tclStubsPtr->tcl_SplitPath) /* 243 */ +#endif +#ifndef Tcl_StaticPackage +#define Tcl_StaticPackage \ + (tclStubsPtr->tcl_StaticPackage) /* 244 */ +#endif +#ifndef Tcl_StringMatch +#define Tcl_StringMatch \ + (tclStubsPtr->tcl_StringMatch) /* 245 */ +#endif +#ifndef Tcl_TellOld +#define Tcl_TellOld \ + (tclStubsPtr->tcl_TellOld) /* 246 */ +#endif +#ifndef Tcl_TraceVar +#define Tcl_TraceVar \ + (tclStubsPtr->tcl_TraceVar) /* 247 */ +#endif +#ifndef Tcl_TraceVar2 +#define Tcl_TraceVar2 \ + (tclStubsPtr->tcl_TraceVar2) /* 248 */ +#endif +#ifndef Tcl_TranslateFileName +#define Tcl_TranslateFileName \ + (tclStubsPtr->tcl_TranslateFileName) /* 249 */ +#endif +#ifndef Tcl_Ungets +#define Tcl_Ungets \ + (tclStubsPtr->tcl_Ungets) /* 250 */ +#endif +#ifndef Tcl_UnlinkVar +#define Tcl_UnlinkVar \ + (tclStubsPtr->tcl_UnlinkVar) /* 251 */ +#endif +#ifndef Tcl_UnregisterChannel +#define Tcl_UnregisterChannel \ + (tclStubsPtr->tcl_UnregisterChannel) /* 252 */ +#endif +#ifndef Tcl_UnsetVar +#define Tcl_UnsetVar \ + (tclStubsPtr->tcl_UnsetVar) /* 253 */ +#endif +#ifndef Tcl_UnsetVar2 +#define Tcl_UnsetVar2 \ + (tclStubsPtr->tcl_UnsetVar2) /* 254 */ +#endif +#ifndef Tcl_UntraceVar +#define Tcl_UntraceVar \ + (tclStubsPtr->tcl_UntraceVar) /* 255 */ +#endif +#ifndef Tcl_UntraceVar2 +#define Tcl_UntraceVar2 \ + (tclStubsPtr->tcl_UntraceVar2) /* 256 */ +#endif +#ifndef Tcl_UpdateLinkedVar +#define Tcl_UpdateLinkedVar \ + (tclStubsPtr->tcl_UpdateLinkedVar) /* 257 */ +#endif +#ifndef Tcl_UpVar +#define Tcl_UpVar \ + (tclStubsPtr->tcl_UpVar) /* 258 */ +#endif +#ifndef Tcl_UpVar2 +#define Tcl_UpVar2 \ + (tclStubsPtr->tcl_UpVar2) /* 259 */ +#endif +#ifndef Tcl_VarEval +#define Tcl_VarEval \ + (tclStubsPtr->tcl_VarEval) /* 260 */ +#endif +#ifndef Tcl_VarTraceInfo +#define Tcl_VarTraceInfo \ + (tclStubsPtr->tcl_VarTraceInfo) /* 261 */ +#endif +#ifndef Tcl_VarTraceInfo2 +#define Tcl_VarTraceInfo2 \ + (tclStubsPtr->tcl_VarTraceInfo2) /* 262 */ +#endif +#ifndef Tcl_Write +#define Tcl_Write \ + (tclStubsPtr->tcl_Write) /* 263 */ +#endif +#ifndef Tcl_WrongNumArgs +#define Tcl_WrongNumArgs \ + (tclStubsPtr->tcl_WrongNumArgs) /* 264 */ +#endif +#ifndef Tcl_DumpActiveMemory +#define Tcl_DumpActiveMemory \ + (tclStubsPtr->tcl_DumpActiveMemory) /* 265 */ +#endif +#ifndef Tcl_ValidateAllMemory +#define Tcl_ValidateAllMemory \ + (tclStubsPtr->tcl_ValidateAllMemory) /* 266 */ +#endif +#ifndef Tcl_AppendResultVA +#define Tcl_AppendResultVA \ + (tclStubsPtr->tcl_AppendResultVA) /* 267 */ +#endif +#ifndef Tcl_AppendStringsToObjVA +#define Tcl_AppendStringsToObjVA \ + (tclStubsPtr->tcl_AppendStringsToObjVA) /* 268 */ +#endif +#ifndef Tcl_HashStats +#define Tcl_HashStats \ + (tclStubsPtr->tcl_HashStats) /* 269 */ +#endif +#ifndef Tcl_ParseVar +#define Tcl_ParseVar \ + (tclStubsPtr->tcl_ParseVar) /* 270 */ +#endif +#ifndef Tcl_PkgPresent +#define Tcl_PkgPresent \ + (tclStubsPtr->tcl_PkgPresent) /* 271 */ +#endif +#ifndef Tcl_PkgPresentEx +#define Tcl_PkgPresentEx \ + (tclStubsPtr->tcl_PkgPresentEx) /* 272 */ +#endif +#ifndef Tcl_PkgProvide +#define Tcl_PkgProvide \ + (tclStubsPtr->tcl_PkgProvide) /* 273 */ +#endif +#ifndef Tcl_PkgRequire +#define Tcl_PkgRequire \ + (tclStubsPtr->tcl_PkgRequire) /* 274 */ +#endif +#ifndef Tcl_SetErrorCodeVA +#define Tcl_SetErrorCodeVA \ + (tclStubsPtr->tcl_SetErrorCodeVA) /* 275 */ +#endif +#ifndef Tcl_VarEvalVA +#define Tcl_VarEvalVA \ + (tclStubsPtr->tcl_VarEvalVA) /* 276 */ +#endif +#ifndef Tcl_WaitPid +#define Tcl_WaitPid \ + (tclStubsPtr->tcl_WaitPid) /* 277 */ +#endif +#ifndef Tcl_PanicVA +#define Tcl_PanicVA \ + (tclStubsPtr->tcl_PanicVA) /* 278 */ +#endif +#ifndef Tcl_GetVersion +#define Tcl_GetVersion \ + (tclStubsPtr->tcl_GetVersion) /* 279 */ +#endif +#ifndef Tcl_InitMemory +#define Tcl_InitMemory \ + (tclStubsPtr->tcl_InitMemory) /* 280 */ +#endif +#ifndef Tcl_StackChannel +#define Tcl_StackChannel \ + (tclStubsPtr->tcl_StackChannel) /* 281 */ +#endif +#ifndef Tcl_UnstackChannel +#define Tcl_UnstackChannel \ + (tclStubsPtr->tcl_UnstackChannel) /* 282 */ +#endif +#ifndef Tcl_GetStackedChannel +#define Tcl_GetStackedChannel \ + (tclStubsPtr->tcl_GetStackedChannel) /* 283 */ +#endif +#ifndef Tcl_SetMainLoop +#define Tcl_SetMainLoop \ + (tclStubsPtr->tcl_SetMainLoop) /* 284 */ +#endif +/* Slot 285 is reserved */ +#ifndef Tcl_AppendObjToObj +#define Tcl_AppendObjToObj \ + (tclStubsPtr->tcl_AppendObjToObj) /* 286 */ +#endif +#ifndef Tcl_CreateEncoding +#define Tcl_CreateEncoding \ + (tclStubsPtr->tcl_CreateEncoding) /* 287 */ +#endif +#ifndef Tcl_CreateThreadExitHandler +#define Tcl_CreateThreadExitHandler \ + (tclStubsPtr->tcl_CreateThreadExitHandler) /* 288 */ +#endif +#ifndef Tcl_DeleteThreadExitHandler +#define Tcl_DeleteThreadExitHandler \ + (tclStubsPtr->tcl_DeleteThreadExitHandler) /* 289 */ +#endif +#ifndef Tcl_DiscardResult +#define Tcl_DiscardResult \ + (tclStubsPtr->tcl_DiscardResult) /* 290 */ +#endif +#ifndef Tcl_EvalEx +#define Tcl_EvalEx \ + (tclStubsPtr->tcl_EvalEx) /* 291 */ +#endif +#ifndef Tcl_EvalObjv +#define Tcl_EvalObjv \ + (tclStubsPtr->tcl_EvalObjv) /* 292 */ +#endif +#ifndef Tcl_EvalObjEx +#define Tcl_EvalObjEx \ + (tclStubsPtr->tcl_EvalObjEx) /* 293 */ +#endif +#ifndef Tcl_ExitThread +#define Tcl_ExitThread \ + (tclStubsPtr->tcl_ExitThread) /* 294 */ +#endif +#ifndef Tcl_ExternalToUtf +#define Tcl_ExternalToUtf \ + (tclStubsPtr->tcl_ExternalToUtf) /* 295 */ +#endif +#ifndef Tcl_ExternalToUtfDString +#define Tcl_ExternalToUtfDString \ + (tclStubsPtr->tcl_ExternalToUtfDString) /* 296 */ +#endif +#ifndef Tcl_FinalizeThread +#define Tcl_FinalizeThread \ + (tclStubsPtr->tcl_FinalizeThread) /* 297 */ +#endif +#ifndef Tcl_FinalizeNotifier +#define Tcl_FinalizeNotifier \ + (tclStubsPtr->tcl_FinalizeNotifier) /* 298 */ +#endif +#ifndef Tcl_FreeEncoding +#define Tcl_FreeEncoding \ + (tclStubsPtr->tcl_FreeEncoding) /* 299 */ +#endif +#ifndef Tcl_GetCurrentThread +#define Tcl_GetCurrentThread \ + (tclStubsPtr->tcl_GetCurrentThread) /* 300 */ +#endif +#ifndef Tcl_GetEncoding +#define Tcl_GetEncoding \ + (tclStubsPtr->tcl_GetEncoding) /* 301 */ +#endif +#ifndef Tcl_GetEncodingName +#define Tcl_GetEncodingName \ + (tclStubsPtr->tcl_GetEncodingName) /* 302 */ +#endif +#ifndef Tcl_GetEncodingNames +#define Tcl_GetEncodingNames \ + (tclStubsPtr->tcl_GetEncodingNames) /* 303 */ +#endif +#ifndef Tcl_GetIndexFromObjStruct +#define Tcl_GetIndexFromObjStruct \ + (tclStubsPtr->tcl_GetIndexFromObjStruct) /* 304 */ +#endif +#ifndef Tcl_GetThreadData +#define Tcl_GetThreadData \ + (tclStubsPtr->tcl_GetThreadData) /* 305 */ +#endif +#ifndef Tcl_GetVar2Ex +#define Tcl_GetVar2Ex \ + (tclStubsPtr->tcl_GetVar2Ex) /* 306 */ +#endif +#ifndef Tcl_InitNotifier +#define Tcl_InitNotifier \ + (tclStubsPtr->tcl_InitNotifier) /* 307 */ +#endif +#ifndef Tcl_MutexLock +#define Tcl_MutexLock \ + (tclStubsPtr->tcl_MutexLock) /* 308 */ +#endif +#ifndef Tcl_MutexUnlock +#define Tcl_MutexUnlock \ + (tclStubsPtr->tcl_MutexUnlock) /* 309 */ +#endif +#ifndef Tcl_ConditionNotify +#define Tcl_ConditionNotify \ + (tclStubsPtr->tcl_ConditionNotify) /* 310 */ +#endif +#ifndef Tcl_ConditionWait +#define Tcl_ConditionWait \ + (tclStubsPtr->tcl_ConditionWait) /* 311 */ +#endif +#ifndef Tcl_NumUtfChars +#define Tcl_NumUtfChars \ + (tclStubsPtr->tcl_NumUtfChars) /* 312 */ +#endif +#ifndef Tcl_ReadChars +#define Tcl_ReadChars \ + (tclStubsPtr->tcl_ReadChars) /* 313 */ +#endif +#ifndef Tcl_RestoreResult +#define Tcl_RestoreResult \ + (tclStubsPtr->tcl_RestoreResult) /* 314 */ +#endif +#ifndef Tcl_SaveResult +#define Tcl_SaveResult \ + (tclStubsPtr->tcl_SaveResult) /* 315 */ +#endif +#ifndef Tcl_SetSystemEncoding +#define Tcl_SetSystemEncoding \ + (tclStubsPtr->tcl_SetSystemEncoding) /* 316 */ +#endif +#ifndef Tcl_SetVar2Ex +#define Tcl_SetVar2Ex \ + (tclStubsPtr->tcl_SetVar2Ex) /* 317 */ +#endif +#ifndef Tcl_ThreadAlert +#define Tcl_ThreadAlert \ + (tclStubsPtr->tcl_ThreadAlert) /* 318 */ +#endif +#ifndef Tcl_ThreadQueueEvent +#define Tcl_ThreadQueueEvent \ + (tclStubsPtr->tcl_ThreadQueueEvent) /* 319 */ +#endif +#ifndef Tcl_UniCharAtIndex +#define Tcl_UniCharAtIndex \ + (tclStubsPtr->tcl_UniCharAtIndex) /* 320 */ +#endif +#ifndef Tcl_UniCharToLower +#define Tcl_UniCharToLower \ + (tclStubsPtr->tcl_UniCharToLower) /* 321 */ +#endif +#ifndef Tcl_UniCharToTitle +#define Tcl_UniCharToTitle \ + (tclStubsPtr->tcl_UniCharToTitle) /* 322 */ +#endif +#ifndef Tcl_UniCharToUpper +#define Tcl_UniCharToUpper \ + (tclStubsPtr->tcl_UniCharToUpper) /* 323 */ +#endif +#ifndef Tcl_UniCharToUtf +#define Tcl_UniCharToUtf \ + (tclStubsPtr->tcl_UniCharToUtf) /* 324 */ +#endif +#ifndef Tcl_UtfAtIndex +#define Tcl_UtfAtIndex \ + (tclStubsPtr->tcl_UtfAtIndex) /* 325 */ +#endif +#ifndef Tcl_UtfCharComplete +#define Tcl_UtfCharComplete \ + (tclStubsPtr->tcl_UtfCharComplete) /* 326 */ +#endif +#ifndef Tcl_UtfBackslash +#define Tcl_UtfBackslash \ + (tclStubsPtr->tcl_UtfBackslash) /* 327 */ +#endif +#ifndef Tcl_UtfFindFirst +#define Tcl_UtfFindFirst \ + (tclStubsPtr->tcl_UtfFindFirst) /* 328 */ +#endif +#ifndef Tcl_UtfFindLast +#define Tcl_UtfFindLast \ + (tclStubsPtr->tcl_UtfFindLast) /* 329 */ +#endif +#ifndef Tcl_UtfNext +#define Tcl_UtfNext \ + (tclStubsPtr->tcl_UtfNext) /* 330 */ +#endif +#ifndef Tcl_UtfPrev +#define Tcl_UtfPrev \ + (tclStubsPtr->tcl_UtfPrev) /* 331 */ +#endif +#ifndef Tcl_UtfToExternal +#define Tcl_UtfToExternal \ + (tclStubsPtr->tcl_UtfToExternal) /* 332 */ +#endif +#ifndef Tcl_UtfToExternalDString +#define Tcl_UtfToExternalDString \ + (tclStubsPtr->tcl_UtfToExternalDString) /* 333 */ +#endif +#ifndef Tcl_UtfToLower +#define Tcl_UtfToLower \ + (tclStubsPtr->tcl_UtfToLower) /* 334 */ +#endif +#ifndef Tcl_UtfToTitle +#define Tcl_UtfToTitle \ + (tclStubsPtr->tcl_UtfToTitle) /* 335 */ +#endif +#ifndef Tcl_UtfToUniChar +#define Tcl_UtfToUniChar \ + (tclStubsPtr->tcl_UtfToUniChar) /* 336 */ +#endif +#ifndef Tcl_UtfToUpper +#define Tcl_UtfToUpper \ + (tclStubsPtr->tcl_UtfToUpper) /* 337 */ +#endif +#ifndef Tcl_WriteChars +#define Tcl_WriteChars \ + (tclStubsPtr->tcl_WriteChars) /* 338 */ +#endif +#ifndef Tcl_WriteObj +#define Tcl_WriteObj \ + (tclStubsPtr->tcl_WriteObj) /* 339 */ +#endif +#ifndef Tcl_GetString +#define Tcl_GetString \ + (tclStubsPtr->tcl_GetString) /* 340 */ +#endif +#ifndef Tcl_GetDefaultEncodingDir +#define Tcl_GetDefaultEncodingDir \ + (tclStubsPtr->tcl_GetDefaultEncodingDir) /* 341 */ +#endif +#ifndef Tcl_SetDefaultEncodingDir +#define Tcl_SetDefaultEncodingDir \ + (tclStubsPtr->tcl_SetDefaultEncodingDir) /* 342 */ +#endif +#ifndef Tcl_AlertNotifier +#define Tcl_AlertNotifier \ + (tclStubsPtr->tcl_AlertNotifier) /* 343 */ +#endif +#ifndef Tcl_ServiceModeHook +#define Tcl_ServiceModeHook \ + (tclStubsPtr->tcl_ServiceModeHook) /* 344 */ +#endif +#ifndef Tcl_UniCharIsAlnum +#define Tcl_UniCharIsAlnum \ + (tclStubsPtr->tcl_UniCharIsAlnum) /* 345 */ +#endif +#ifndef Tcl_UniCharIsAlpha +#define Tcl_UniCharIsAlpha \ + (tclStubsPtr->tcl_UniCharIsAlpha) /* 346 */ +#endif +#ifndef Tcl_UniCharIsDigit +#define Tcl_UniCharIsDigit \ + (tclStubsPtr->tcl_UniCharIsDigit) /* 347 */ +#endif +#ifndef Tcl_UniCharIsLower +#define Tcl_UniCharIsLower \ + (tclStubsPtr->tcl_UniCharIsLower) /* 348 */ +#endif +#ifndef Tcl_UniCharIsSpace +#define Tcl_UniCharIsSpace \ + (tclStubsPtr->tcl_UniCharIsSpace) /* 349 */ +#endif +#ifndef Tcl_UniCharIsUpper +#define Tcl_UniCharIsUpper \ + (tclStubsPtr->tcl_UniCharIsUpper) /* 350 */ +#endif +#ifndef Tcl_UniCharIsWordChar +#define Tcl_UniCharIsWordChar \ + (tclStubsPtr->tcl_UniCharIsWordChar) /* 351 */ +#endif +#ifndef Tcl_UniCharLen +#define Tcl_UniCharLen \ + (tclStubsPtr->tcl_UniCharLen) /* 352 */ +#endif +#ifndef Tcl_UniCharNcmp +#define Tcl_UniCharNcmp \ + (tclStubsPtr->tcl_UniCharNcmp) /* 353 */ +#endif +#ifndef Tcl_UniCharToUtfDString +#define Tcl_UniCharToUtfDString \ + (tclStubsPtr->tcl_UniCharToUtfDString) /* 354 */ +#endif +#ifndef Tcl_UtfToUniCharDString +#define Tcl_UtfToUniCharDString \ + (tclStubsPtr->tcl_UtfToUniCharDString) /* 355 */ +#endif +#ifndef Tcl_GetRegExpFromObj +#define Tcl_GetRegExpFromObj \ + (tclStubsPtr->tcl_GetRegExpFromObj) /* 356 */ +#endif +#ifndef Tcl_EvalTokens +#define Tcl_EvalTokens \ + (tclStubsPtr->tcl_EvalTokens) /* 357 */ +#endif +#ifndef Tcl_FreeParse +#define Tcl_FreeParse \ + (tclStubsPtr->tcl_FreeParse) /* 358 */ +#endif +#ifndef Tcl_LogCommandInfo +#define Tcl_LogCommandInfo \ + (tclStubsPtr->tcl_LogCommandInfo) /* 359 */ +#endif +#ifndef Tcl_ParseBraces +#define Tcl_ParseBraces \ + (tclStubsPtr->tcl_ParseBraces) /* 360 */ +#endif +#ifndef Tcl_ParseCommand +#define Tcl_ParseCommand \ + (tclStubsPtr->tcl_ParseCommand) /* 361 */ +#endif +#ifndef Tcl_ParseExpr +#define Tcl_ParseExpr \ + (tclStubsPtr->tcl_ParseExpr) /* 362 */ +#endif +#ifndef Tcl_ParseQuotedString +#define Tcl_ParseQuotedString \ + (tclStubsPtr->tcl_ParseQuotedString) /* 363 */ +#endif +#ifndef Tcl_ParseVarName +#define Tcl_ParseVarName \ + (tclStubsPtr->tcl_ParseVarName) /* 364 */ +#endif +#ifndef Tcl_GetCwd +#define Tcl_GetCwd \ + (tclStubsPtr->tcl_GetCwd) /* 365 */ +#endif +#ifndef Tcl_Chdir +#define Tcl_Chdir \ + (tclStubsPtr->tcl_Chdir) /* 366 */ +#endif +#ifndef Tcl_Access +#define Tcl_Access \ + (tclStubsPtr->tcl_Access) /* 367 */ +#endif +#ifndef Tcl_Stat +#define Tcl_Stat \ + (tclStubsPtr->tcl_Stat) /* 368 */ +#endif +#ifndef Tcl_UtfNcmp +#define Tcl_UtfNcmp \ + (tclStubsPtr->tcl_UtfNcmp) /* 369 */ +#endif +#ifndef Tcl_UtfNcasecmp +#define Tcl_UtfNcasecmp \ + (tclStubsPtr->tcl_UtfNcasecmp) /* 370 */ +#endif +#ifndef Tcl_StringCaseMatch +#define Tcl_StringCaseMatch \ + (tclStubsPtr->tcl_StringCaseMatch) /* 371 */ +#endif +#ifndef Tcl_UniCharIsControl +#define Tcl_UniCharIsControl \ + (tclStubsPtr->tcl_UniCharIsControl) /* 372 */ +#endif +#ifndef Tcl_UniCharIsGraph +#define Tcl_UniCharIsGraph \ + (tclStubsPtr->tcl_UniCharIsGraph) /* 373 */ +#endif +#ifndef Tcl_UniCharIsPrint +#define Tcl_UniCharIsPrint \ + (tclStubsPtr->tcl_UniCharIsPrint) /* 374 */ +#endif +#ifndef Tcl_UniCharIsPunct +#define Tcl_UniCharIsPunct \ + (tclStubsPtr->tcl_UniCharIsPunct) /* 375 */ +#endif +#ifndef Tcl_RegExpExecObj +#define Tcl_RegExpExecObj \ + (tclStubsPtr->tcl_RegExpExecObj) /* 376 */ +#endif +#ifndef Tcl_RegExpGetInfo +#define Tcl_RegExpGetInfo \ + (tclStubsPtr->tcl_RegExpGetInfo) /* 377 */ +#endif +#ifndef Tcl_NewUnicodeObj +#define Tcl_NewUnicodeObj \ + (tclStubsPtr->tcl_NewUnicodeObj) /* 378 */ +#endif +#ifndef Tcl_SetUnicodeObj +#define Tcl_SetUnicodeObj \ + (tclStubsPtr->tcl_SetUnicodeObj) /* 379 */ +#endif +#ifndef Tcl_GetCharLength +#define Tcl_GetCharLength \ + (tclStubsPtr->tcl_GetCharLength) /* 380 */ +#endif +#ifndef Tcl_GetUniChar +#define Tcl_GetUniChar \ + (tclStubsPtr->tcl_GetUniChar) /* 381 */ +#endif +#ifndef Tcl_GetUnicode +#define Tcl_GetUnicode \ + (tclStubsPtr->tcl_GetUnicode) /* 382 */ +#endif +#ifndef Tcl_GetRange +#define Tcl_GetRange \ + (tclStubsPtr->tcl_GetRange) /* 383 */ +#endif +#ifndef Tcl_AppendUnicodeToObj +#define Tcl_AppendUnicodeToObj \ + (tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */ +#endif +#ifndef Tcl_RegExpMatchObj +#define Tcl_RegExpMatchObj \ + (tclStubsPtr->tcl_RegExpMatchObj) /* 385 */ +#endif +#ifndef Tcl_SetNotifier +#define Tcl_SetNotifier \ + (tclStubsPtr->tcl_SetNotifier) /* 386 */ +#endif +#ifndef Tcl_GetAllocMutex +#define Tcl_GetAllocMutex \ + (tclStubsPtr->tcl_GetAllocMutex) /* 387 */ +#endif +#ifndef Tcl_GetChannelNames +#define Tcl_GetChannelNames \ + (tclStubsPtr->tcl_GetChannelNames) /* 388 */ +#endif +#ifndef Tcl_GetChannelNamesEx +#define Tcl_GetChannelNamesEx \ + (tclStubsPtr->tcl_GetChannelNamesEx) /* 389 */ +#endif +#ifndef Tcl_ProcObjCmd +#define Tcl_ProcObjCmd \ + (tclStubsPtr->tcl_ProcObjCmd) /* 390 */ +#endif +#ifndef Tcl_ConditionFinalize +#define Tcl_ConditionFinalize \ + (tclStubsPtr->tcl_ConditionFinalize) /* 391 */ +#endif +#ifndef Tcl_MutexFinalize +#define Tcl_MutexFinalize \ + (tclStubsPtr->tcl_MutexFinalize) /* 392 */ +#endif +#ifndef Tcl_CreateThread +#define Tcl_CreateThread \ + (tclStubsPtr->tcl_CreateThread) /* 393 */ +#endif +#ifndef Tcl_ReadRaw +#define Tcl_ReadRaw \ + (tclStubsPtr->tcl_ReadRaw) /* 394 */ +#endif +#ifndef Tcl_WriteRaw +#define Tcl_WriteRaw \ + (tclStubsPtr->tcl_WriteRaw) /* 395 */ +#endif +#ifndef Tcl_GetTopChannel +#define Tcl_GetTopChannel \ + (tclStubsPtr->tcl_GetTopChannel) /* 396 */ +#endif +#ifndef Tcl_ChannelBuffered +#define Tcl_ChannelBuffered \ + (tclStubsPtr->tcl_ChannelBuffered) /* 397 */ +#endif +#ifndef Tcl_ChannelName +#define Tcl_ChannelName \ + (tclStubsPtr->tcl_ChannelName) /* 398 */ +#endif +#ifndef Tcl_ChannelVersion +#define Tcl_ChannelVersion \ + (tclStubsPtr->tcl_ChannelVersion) /* 399 */ +#endif +#ifndef Tcl_ChannelBlockModeProc +#define Tcl_ChannelBlockModeProc \ + (tclStubsPtr->tcl_ChannelBlockModeProc) /* 400 */ +#endif +#ifndef Tcl_ChannelCloseProc +#define Tcl_ChannelCloseProc \ + (tclStubsPtr->tcl_ChannelCloseProc) /* 401 */ +#endif +#ifndef Tcl_ChannelClose2Proc +#define Tcl_ChannelClose2Proc \ + (tclStubsPtr->tcl_ChannelClose2Proc) /* 402 */ +#endif +#ifndef Tcl_ChannelInputProc +#define Tcl_ChannelInputProc \ + (tclStubsPtr->tcl_ChannelInputProc) /* 403 */ +#endif +#ifndef Tcl_ChannelOutputProc +#define Tcl_ChannelOutputProc \ + (tclStubsPtr->tcl_ChannelOutputProc) /* 404 */ +#endif +#ifndef Tcl_ChannelSeekProc +#define Tcl_ChannelSeekProc \ + (tclStubsPtr->tcl_ChannelSeekProc) /* 405 */ +#endif +#ifndef Tcl_ChannelSetOptionProc +#define Tcl_ChannelSetOptionProc \ + (tclStubsPtr->tcl_ChannelSetOptionProc) /* 406 */ +#endif +#ifndef Tcl_ChannelGetOptionProc +#define Tcl_ChannelGetOptionProc \ + (tclStubsPtr->tcl_ChannelGetOptionProc) /* 407 */ +#endif +#ifndef Tcl_ChannelWatchProc +#define Tcl_ChannelWatchProc \ + (tclStubsPtr->tcl_ChannelWatchProc) /* 408 */ +#endif +#ifndef Tcl_ChannelGetHandleProc +#define Tcl_ChannelGetHandleProc \ + (tclStubsPtr->tcl_ChannelGetHandleProc) /* 409 */ +#endif +#ifndef Tcl_ChannelFlushProc +#define Tcl_ChannelFlushProc \ + (tclStubsPtr->tcl_ChannelFlushProc) /* 410 */ +#endif +#ifndef Tcl_ChannelHandlerProc +#define Tcl_ChannelHandlerProc \ + (tclStubsPtr->tcl_ChannelHandlerProc) /* 411 */ +#endif +#ifndef Tcl_JoinThread +#define Tcl_JoinThread \ + (tclStubsPtr->tcl_JoinThread) /* 412 */ +#endif +#ifndef Tcl_IsChannelShared +#define Tcl_IsChannelShared \ + (tclStubsPtr->tcl_IsChannelShared) /* 413 */ +#endif +#ifndef Tcl_IsChannelRegistered +#define Tcl_IsChannelRegistered \ + (tclStubsPtr->tcl_IsChannelRegistered) /* 414 */ +#endif +#ifndef Tcl_CutChannel +#define Tcl_CutChannel \ + (tclStubsPtr->tcl_CutChannel) /* 415 */ +#endif +#ifndef Tcl_SpliceChannel +#define Tcl_SpliceChannel \ + (tclStubsPtr->tcl_SpliceChannel) /* 416 */ +#endif +#ifndef Tcl_ClearChannelHandlers +#define Tcl_ClearChannelHandlers \ + (tclStubsPtr->tcl_ClearChannelHandlers) /* 417 */ +#endif +#ifndef Tcl_IsChannelExisting +#define Tcl_IsChannelExisting \ + (tclStubsPtr->tcl_IsChannelExisting) /* 418 */ +#endif +#ifndef Tcl_UniCharNcasecmp +#define Tcl_UniCharNcasecmp \ + (tclStubsPtr->tcl_UniCharNcasecmp) /* 419 */ +#endif +#ifndef Tcl_UniCharCaseMatch +#define Tcl_UniCharCaseMatch \ + (tclStubsPtr->tcl_UniCharCaseMatch) /* 420 */ +#endif +#ifndef Tcl_FindHashEntry +#define Tcl_FindHashEntry \ + (tclStubsPtr->tcl_FindHashEntry) /* 421 */ +#endif +#ifndef Tcl_CreateHashEntry +#define Tcl_CreateHashEntry \ + (tclStubsPtr->tcl_CreateHashEntry) /* 422 */ +#endif +#ifndef Tcl_InitCustomHashTable +#define Tcl_InitCustomHashTable \ + (tclStubsPtr->tcl_InitCustomHashTable) /* 423 */ +#endif +#ifndef Tcl_InitObjHashTable +#define Tcl_InitObjHashTable \ + (tclStubsPtr->tcl_InitObjHashTable) /* 424 */ +#endif +#ifndef Tcl_CommandTraceInfo +#define Tcl_CommandTraceInfo \ + (tclStubsPtr->tcl_CommandTraceInfo) /* 425 */ +#endif +#ifndef Tcl_TraceCommand +#define Tcl_TraceCommand \ + (tclStubsPtr->tcl_TraceCommand) /* 426 */ +#endif +#ifndef Tcl_UntraceCommand +#define Tcl_UntraceCommand \ + (tclStubsPtr->tcl_UntraceCommand) /* 427 */ +#endif +#ifndef Tcl_AttemptAlloc +#define Tcl_AttemptAlloc \ + (tclStubsPtr->tcl_AttemptAlloc) /* 428 */ +#endif +#ifndef Tcl_AttemptDbCkalloc +#define Tcl_AttemptDbCkalloc \ + (tclStubsPtr->tcl_AttemptDbCkalloc) /* 429 */ +#endif +#ifndef Tcl_AttemptRealloc +#define Tcl_AttemptRealloc \ + (tclStubsPtr->tcl_AttemptRealloc) /* 430 */ +#endif +#ifndef Tcl_AttemptDbCkrealloc +#define Tcl_AttemptDbCkrealloc \ + (tclStubsPtr->tcl_AttemptDbCkrealloc) /* 431 */ +#endif +#ifndef Tcl_AttemptSetObjLength +#define Tcl_AttemptSetObjLength \ + (tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */ +#endif +#ifndef Tcl_GetChannelThread +#define Tcl_GetChannelThread \ + (tclStubsPtr->tcl_GetChannelThread) /* 433 */ +#endif +#ifndef Tcl_GetUnicodeFromObj +#define Tcl_GetUnicodeFromObj \ + (tclStubsPtr->tcl_GetUnicodeFromObj) /* 434 */ +#endif +#ifndef Tcl_GetMathFuncInfo +#define Tcl_GetMathFuncInfo \ + (tclStubsPtr->tcl_GetMathFuncInfo) /* 435 */ +#endif +#ifndef Tcl_ListMathFuncs +#define Tcl_ListMathFuncs \ + (tclStubsPtr->tcl_ListMathFuncs) /* 436 */ +#endif +#ifndef Tcl_SubstObj +#define Tcl_SubstObj \ + (tclStubsPtr->tcl_SubstObj) /* 437 */ +#endif +#ifndef Tcl_DetachChannel +#define Tcl_DetachChannel \ + (tclStubsPtr->tcl_DetachChannel) /* 438 */ +#endif +#ifndef Tcl_IsStandardChannel +#define Tcl_IsStandardChannel \ + (tclStubsPtr->tcl_IsStandardChannel) /* 439 */ +#endif +#ifndef Tcl_FSCopyFile +#define Tcl_FSCopyFile \ + (tclStubsPtr->tcl_FSCopyFile) /* 440 */ +#endif +#ifndef Tcl_FSCopyDirectory +#define Tcl_FSCopyDirectory \ + (tclStubsPtr->tcl_FSCopyDirectory) /* 441 */ +#endif +#ifndef Tcl_FSCreateDirectory +#define Tcl_FSCreateDirectory \ + (tclStubsPtr->tcl_FSCreateDirectory) /* 442 */ +#endif +#ifndef Tcl_FSDeleteFile +#define Tcl_FSDeleteFile \ + (tclStubsPtr->tcl_FSDeleteFile) /* 443 */ +#endif +#ifndef Tcl_FSLoadFile +#define Tcl_FSLoadFile \ + (tclStubsPtr->tcl_FSLoadFile) /* 444 */ +#endif +#ifndef Tcl_FSMatchInDirectory +#define Tcl_FSMatchInDirectory \ + (tclStubsPtr->tcl_FSMatchInDirectory) /* 445 */ +#endif +#ifndef Tcl_FSLink +#define Tcl_FSLink \ + (tclStubsPtr->tcl_FSLink) /* 446 */ +#endif +#ifndef Tcl_FSRemoveDirectory +#define Tcl_FSRemoveDirectory \ + (tclStubsPtr->tcl_FSRemoveDirectory) /* 447 */ +#endif +#ifndef Tcl_FSRenameFile +#define Tcl_FSRenameFile \ + (tclStubsPtr->tcl_FSRenameFile) /* 448 */ +#endif +#ifndef Tcl_FSLstat +#define Tcl_FSLstat \ + (tclStubsPtr->tcl_FSLstat) /* 449 */ +#endif +#ifndef Tcl_FSUtime +#define Tcl_FSUtime \ + (tclStubsPtr->tcl_FSUtime) /* 450 */ +#endif +#ifndef Tcl_FSFileAttrsGet +#define Tcl_FSFileAttrsGet \ + (tclStubsPtr->tcl_FSFileAttrsGet) /* 451 */ +#endif +#ifndef Tcl_FSFileAttrsSet +#define Tcl_FSFileAttrsSet \ + (tclStubsPtr->tcl_FSFileAttrsSet) /* 452 */ +#endif +#ifndef Tcl_FSFileAttrStrings +#define Tcl_FSFileAttrStrings \ + (tclStubsPtr->tcl_FSFileAttrStrings) /* 453 */ +#endif +#ifndef Tcl_FSStat +#define Tcl_FSStat \ + (tclStubsPtr->tcl_FSStat) /* 454 */ +#endif +#ifndef Tcl_FSAccess +#define Tcl_FSAccess \ + (tclStubsPtr->tcl_FSAccess) /* 455 */ +#endif +#ifndef Tcl_FSOpenFileChannel +#define Tcl_FSOpenFileChannel \ + (tclStubsPtr->tcl_FSOpenFileChannel) /* 456 */ +#endif +#ifndef Tcl_FSGetCwd +#define Tcl_FSGetCwd \ + (tclStubsPtr->tcl_FSGetCwd) /* 457 */ +#endif +#ifndef Tcl_FSChdir +#define Tcl_FSChdir \ + (tclStubsPtr->tcl_FSChdir) /* 458 */ +#endif +#ifndef Tcl_FSConvertToPathType +#define Tcl_FSConvertToPathType \ + (tclStubsPtr->tcl_FSConvertToPathType) /* 459 */ +#endif +#ifndef Tcl_FSJoinPath +#define Tcl_FSJoinPath \ + (tclStubsPtr->tcl_FSJoinPath) /* 460 */ +#endif +#ifndef Tcl_FSSplitPath +#define Tcl_FSSplitPath \ + (tclStubsPtr->tcl_FSSplitPath) /* 461 */ +#endif +#ifndef Tcl_FSEqualPaths +#define Tcl_FSEqualPaths \ + (tclStubsPtr->tcl_FSEqualPaths) /* 462 */ +#endif +#ifndef Tcl_FSGetNormalizedPath +#define Tcl_FSGetNormalizedPath \ + (tclStubsPtr->tcl_FSGetNormalizedPath) /* 463 */ +#endif +#ifndef Tcl_FSJoinToPath +#define Tcl_FSJoinToPath \ + (tclStubsPtr->tcl_FSJoinToPath) /* 464 */ +#endif +#ifndef Tcl_FSGetInternalRep +#define Tcl_FSGetInternalRep \ + (tclStubsPtr->tcl_FSGetInternalRep) /* 465 */ +#endif +#ifndef Tcl_FSGetTranslatedPath +#define Tcl_FSGetTranslatedPath \ + (tclStubsPtr->tcl_FSGetTranslatedPath) /* 466 */ +#endif +#ifndef Tcl_FSEvalFile +#define Tcl_FSEvalFile \ + (tclStubsPtr->tcl_FSEvalFile) /* 467 */ +#endif +#ifndef Tcl_FSNewNativePath +#define Tcl_FSNewNativePath \ + (tclStubsPtr->tcl_FSNewNativePath) /* 468 */ +#endif +#ifndef Tcl_FSGetNativePath +#define Tcl_FSGetNativePath \ + (tclStubsPtr->tcl_FSGetNativePath) /* 469 */ +#endif +#ifndef Tcl_FSFileSystemInfo +#define Tcl_FSFileSystemInfo \ + (tclStubsPtr->tcl_FSFileSystemInfo) /* 470 */ +#endif +#ifndef Tcl_FSPathSeparator +#define Tcl_FSPathSeparator \ + (tclStubsPtr->tcl_FSPathSeparator) /* 471 */ +#endif +#ifndef Tcl_FSListVolumes +#define Tcl_FSListVolumes \ + (tclStubsPtr->tcl_FSListVolumes) /* 472 */ +#endif +#ifndef Tcl_FSRegister +#define Tcl_FSRegister \ + (tclStubsPtr->tcl_FSRegister) /* 473 */ +#endif +#ifndef Tcl_FSUnregister +#define Tcl_FSUnregister \ + (tclStubsPtr->tcl_FSUnregister) /* 474 */ +#endif +#ifndef Tcl_FSData +#define Tcl_FSData \ + (tclStubsPtr->tcl_FSData) /* 475 */ +#endif +#ifndef Tcl_FSGetTranslatedStringPath +#define Tcl_FSGetTranslatedStringPath \ + (tclStubsPtr->tcl_FSGetTranslatedStringPath) /* 476 */ +#endif +#ifndef Tcl_FSGetFileSystemForPath +#define Tcl_FSGetFileSystemForPath \ + (tclStubsPtr->tcl_FSGetFileSystemForPath) /* 477 */ +#endif +#ifndef Tcl_FSGetPathType +#define Tcl_FSGetPathType \ + (tclStubsPtr->tcl_FSGetPathType) /* 478 */ +#endif +#ifndef Tcl_OutputBuffered +#define Tcl_OutputBuffered \ + (tclStubsPtr->tcl_OutputBuffered) /* 479 */ +#endif +#ifndef Tcl_FSMountsChanged +#define Tcl_FSMountsChanged \ + (tclStubsPtr->tcl_FSMountsChanged) /* 480 */ +#endif +#ifndef Tcl_EvalTokensStandard +#define Tcl_EvalTokensStandard \ + (tclStubsPtr->tcl_EvalTokensStandard) /* 481 */ +#endif +#ifndef Tcl_GetTime +#define Tcl_GetTime \ + (tclStubsPtr->tcl_GetTime) /* 482 */ +#endif +#ifndef Tcl_CreateObjTrace +#define Tcl_CreateObjTrace \ + (tclStubsPtr->tcl_CreateObjTrace) /* 483 */ +#endif +#ifndef Tcl_GetCommandInfoFromToken +#define Tcl_GetCommandInfoFromToken \ + (tclStubsPtr->tcl_GetCommandInfoFromToken) /* 484 */ +#endif +#ifndef Tcl_SetCommandInfoFromToken +#define Tcl_SetCommandInfoFromToken \ + (tclStubsPtr->tcl_SetCommandInfoFromToken) /* 485 */ +#endif +#ifndef Tcl_DbNewWideIntObj +#define Tcl_DbNewWideIntObj \ + (tclStubsPtr->tcl_DbNewWideIntObj) /* 486 */ +#endif +#ifndef Tcl_GetWideIntFromObj +#define Tcl_GetWideIntFromObj \ + (tclStubsPtr->tcl_GetWideIntFromObj) /* 487 */ +#endif +#ifndef Tcl_NewWideIntObj +#define Tcl_NewWideIntObj \ + (tclStubsPtr->tcl_NewWideIntObj) /* 488 */ +#endif +#ifndef Tcl_SetWideIntObj +#define Tcl_SetWideIntObj \ + (tclStubsPtr->tcl_SetWideIntObj) /* 489 */ +#endif +#ifndef Tcl_AllocStatBuf +#define Tcl_AllocStatBuf \ + (tclStubsPtr->tcl_AllocStatBuf) /* 490 */ +#endif +#ifndef Tcl_Seek +#define Tcl_Seek \ + (tclStubsPtr->tcl_Seek) /* 491 */ +#endif +#ifndef Tcl_Tell +#define Tcl_Tell \ + (tclStubsPtr->tcl_Tell) /* 492 */ +#endif +#ifndef Tcl_ChannelWideSeekProc +#define Tcl_ChannelWideSeekProc \ + (tclStubsPtr->tcl_ChannelWideSeekProc) /* 493 */ +#endif +#ifndef Tcl_DictObjPut +#define Tcl_DictObjPut \ + (tclStubsPtr->tcl_DictObjPut) /* 494 */ +#endif +#ifndef Tcl_DictObjGet +#define Tcl_DictObjGet \ + (tclStubsPtr->tcl_DictObjGet) /* 495 */ +#endif +#ifndef Tcl_DictObjRemove +#define Tcl_DictObjRemove \ + (tclStubsPtr->tcl_DictObjRemove) /* 496 */ +#endif +#ifndef Tcl_DictObjSize +#define Tcl_DictObjSize \ + (tclStubsPtr->tcl_DictObjSize) /* 497 */ +#endif +#ifndef Tcl_DictObjFirst +#define Tcl_DictObjFirst \ + (tclStubsPtr->tcl_DictObjFirst) /* 498 */ +#endif +#ifndef Tcl_DictObjNext +#define Tcl_DictObjNext \ + (tclStubsPtr->tcl_DictObjNext) /* 499 */ +#endif +#ifndef Tcl_DictObjDone +#define Tcl_DictObjDone \ + (tclStubsPtr->tcl_DictObjDone) /* 500 */ +#endif +#ifndef Tcl_DictObjPutKeyList +#define Tcl_DictObjPutKeyList \ + (tclStubsPtr->tcl_DictObjPutKeyList) /* 501 */ +#endif +#ifndef Tcl_DictObjRemoveKeyList +#define Tcl_DictObjRemoveKeyList \ + (tclStubsPtr->tcl_DictObjRemoveKeyList) /* 502 */ +#endif +#ifndef Tcl_NewDictObj +#define Tcl_NewDictObj \ + (tclStubsPtr->tcl_NewDictObj) /* 503 */ +#endif +#ifndef Tcl_DbNewDictObj +#define Tcl_DbNewDictObj \ + (tclStubsPtr->tcl_DbNewDictObj) /* 504 */ +#endif +#ifndef Tcl_RegisterConfig +#define Tcl_RegisterConfig \ + (tclStubsPtr->tcl_RegisterConfig) /* 505 */ +#endif +#ifndef Tcl_CreateNamespace +#define Tcl_CreateNamespace \ + (tclStubsPtr->tcl_CreateNamespace) /* 506 */ +#endif +#ifndef Tcl_DeleteNamespace +#define Tcl_DeleteNamespace \ + (tclStubsPtr->tcl_DeleteNamespace) /* 507 */ +#endif +#ifndef Tcl_AppendExportList +#define Tcl_AppendExportList \ + (tclStubsPtr->tcl_AppendExportList) /* 508 */ +#endif +#ifndef Tcl_Export +#define Tcl_Export \ + (tclStubsPtr->tcl_Export) /* 509 */ +#endif +#ifndef Tcl_Import +#define Tcl_Import \ + (tclStubsPtr->tcl_Import) /* 510 */ +#endif +#ifndef Tcl_ForgetImport +#define Tcl_ForgetImport \ + (tclStubsPtr->tcl_ForgetImport) /* 511 */ +#endif +#ifndef Tcl_GetCurrentNamespace +#define Tcl_GetCurrentNamespace \ + (tclStubsPtr->tcl_GetCurrentNamespace) /* 512 */ +#endif +#ifndef Tcl_GetGlobalNamespace +#define Tcl_GetGlobalNamespace \ + (tclStubsPtr->tcl_GetGlobalNamespace) /* 513 */ +#endif +#ifndef Tcl_FindNamespace +#define Tcl_FindNamespace \ + (tclStubsPtr->tcl_FindNamespace) /* 514 */ +#endif +#ifndef Tcl_FindCommand +#define Tcl_FindCommand \ + (tclStubsPtr->tcl_FindCommand) /* 515 */ +#endif +#ifndef Tcl_GetCommandFromObj +#define Tcl_GetCommandFromObj \ + (tclStubsPtr->tcl_GetCommandFromObj) /* 516 */ +#endif +#ifndef Tcl_GetCommandFullName +#define Tcl_GetCommandFullName \ + (tclStubsPtr->tcl_GetCommandFullName) /* 517 */ +#endif +#ifndef Tcl_FSEvalFileEx +#define Tcl_FSEvalFileEx \ + (tclStubsPtr->tcl_FSEvalFileEx) /* 518 */ +#endif +#ifndef Tcl_SetExitProc +#define Tcl_SetExitProc \ + (tclStubsPtr->tcl_SetExitProc) /* 519 */ +#endif +#ifndef Tcl_LimitAddHandler +#define Tcl_LimitAddHandler \ + (tclStubsPtr->tcl_LimitAddHandler) /* 520 */ +#endif +#ifndef Tcl_LimitRemoveHandler +#define Tcl_LimitRemoveHandler \ + (tclStubsPtr->tcl_LimitRemoveHandler) /* 521 */ +#endif +#ifndef Tcl_LimitReady +#define Tcl_LimitReady \ + (tclStubsPtr->tcl_LimitReady) /* 522 */ +#endif +#ifndef Tcl_LimitCheck +#define Tcl_LimitCheck \ + (tclStubsPtr->tcl_LimitCheck) /* 523 */ +#endif +#ifndef Tcl_LimitExceeded +#define Tcl_LimitExceeded \ + (tclStubsPtr->tcl_LimitExceeded) /* 524 */ +#endif +#ifndef Tcl_LimitSetCommands +#define Tcl_LimitSetCommands \ + (tclStubsPtr->tcl_LimitSetCommands) /* 525 */ +#endif +#ifndef Tcl_LimitSetTime +#define Tcl_LimitSetTime \ + (tclStubsPtr->tcl_LimitSetTime) /* 526 */ +#endif +#ifndef Tcl_LimitSetGranularity +#define Tcl_LimitSetGranularity \ + (tclStubsPtr->tcl_LimitSetGranularity) /* 527 */ +#endif +#ifndef Tcl_LimitTypeEnabled +#define Tcl_LimitTypeEnabled \ + (tclStubsPtr->tcl_LimitTypeEnabled) /* 528 */ +#endif +#ifndef Tcl_LimitTypeExceeded +#define Tcl_LimitTypeExceeded \ + (tclStubsPtr->tcl_LimitTypeExceeded) /* 529 */ +#endif +#ifndef Tcl_LimitTypeSet +#define Tcl_LimitTypeSet \ + (tclStubsPtr->tcl_LimitTypeSet) /* 530 */ +#endif +#ifndef Tcl_LimitTypeReset +#define Tcl_LimitTypeReset \ + (tclStubsPtr->tcl_LimitTypeReset) /* 531 */ +#endif +#ifndef Tcl_LimitGetCommands +#define Tcl_LimitGetCommands \ + (tclStubsPtr->tcl_LimitGetCommands) /* 532 */ +#endif +#ifndef Tcl_LimitGetTime +#define Tcl_LimitGetTime \ + (tclStubsPtr->tcl_LimitGetTime) /* 533 */ +#endif +#ifndef Tcl_LimitGetGranularity +#define Tcl_LimitGetGranularity \ + (tclStubsPtr->tcl_LimitGetGranularity) /* 534 */ +#endif +#ifndef Tcl_SaveInterpState +#define Tcl_SaveInterpState \ + (tclStubsPtr->tcl_SaveInterpState) /* 535 */ +#endif +#ifndef Tcl_RestoreInterpState +#define Tcl_RestoreInterpState \ + (tclStubsPtr->tcl_RestoreInterpState) /* 536 */ +#endif +#ifndef Tcl_DiscardInterpState +#define Tcl_DiscardInterpState \ + (tclStubsPtr->tcl_DiscardInterpState) /* 537 */ +#endif +#ifndef Tcl_SetReturnOptions +#define Tcl_SetReturnOptions \ + (tclStubsPtr->tcl_SetReturnOptions) /* 538 */ +#endif +#ifndef Tcl_GetReturnOptions +#define Tcl_GetReturnOptions \ + (tclStubsPtr->tcl_GetReturnOptions) /* 539 */ +#endif +#ifndef Tcl_IsEnsemble +#define Tcl_IsEnsemble \ + (tclStubsPtr->tcl_IsEnsemble) /* 540 */ +#endif +#ifndef Tcl_CreateEnsemble +#define Tcl_CreateEnsemble \ + (tclStubsPtr->tcl_CreateEnsemble) /* 541 */ +#endif +#ifndef Tcl_FindEnsemble +#define Tcl_FindEnsemble \ + (tclStubsPtr->tcl_FindEnsemble) /* 542 */ +#endif +#ifndef Tcl_SetEnsembleSubcommandList +#define Tcl_SetEnsembleSubcommandList \ + (tclStubsPtr->tcl_SetEnsembleSubcommandList) /* 543 */ +#endif +#ifndef Tcl_SetEnsembleMappingDict +#define Tcl_SetEnsembleMappingDict \ + (tclStubsPtr->tcl_SetEnsembleMappingDict) /* 544 */ +#endif +#ifndef Tcl_SetEnsembleUnknownHandler +#define Tcl_SetEnsembleUnknownHandler \ + (tclStubsPtr->tcl_SetEnsembleUnknownHandler) /* 545 */ +#endif +#ifndef Tcl_SetEnsembleFlags +#define Tcl_SetEnsembleFlags \ + (tclStubsPtr->tcl_SetEnsembleFlags) /* 546 */ +#endif +#ifndef Tcl_GetEnsembleSubcommandList +#define Tcl_GetEnsembleSubcommandList \ + (tclStubsPtr->tcl_GetEnsembleSubcommandList) /* 547 */ +#endif +#ifndef Tcl_GetEnsembleMappingDict +#define Tcl_GetEnsembleMappingDict \ + (tclStubsPtr->tcl_GetEnsembleMappingDict) /* 548 */ +#endif +#ifndef Tcl_GetEnsembleUnknownHandler +#define Tcl_GetEnsembleUnknownHandler \ + (tclStubsPtr->tcl_GetEnsembleUnknownHandler) /* 549 */ +#endif +#ifndef Tcl_GetEnsembleFlags +#define Tcl_GetEnsembleFlags \ + (tclStubsPtr->tcl_GetEnsembleFlags) /* 550 */ +#endif +#ifndef Tcl_GetEnsembleNamespace +#define Tcl_GetEnsembleNamespace \ + (tclStubsPtr->tcl_GetEnsembleNamespace) /* 551 */ +#endif +#ifndef Tcl_SetTimeProc +#define Tcl_SetTimeProc \ + (tclStubsPtr->tcl_SetTimeProc) /* 552 */ +#endif +#ifndef Tcl_QueryTimeProc +#define Tcl_QueryTimeProc \ + (tclStubsPtr->tcl_QueryTimeProc) /* 553 */ +#endif +#ifndef Tcl_ChannelThreadActionProc +#define Tcl_ChannelThreadActionProc \ + (tclStubsPtr->tcl_ChannelThreadActionProc) /* 554 */ +#endif +#ifndef Tcl_NewBignumObj +#define Tcl_NewBignumObj \ + (tclStubsPtr->tcl_NewBignumObj) /* 555 */ +#endif +#ifndef Tcl_DbNewBignumObj +#define Tcl_DbNewBignumObj \ + (tclStubsPtr->tcl_DbNewBignumObj) /* 556 */ +#endif +#ifndef Tcl_SetBignumObj +#define Tcl_SetBignumObj \ + (tclStubsPtr->tcl_SetBignumObj) /* 557 */ +#endif +#ifndef Tcl_GetBignumFromObj +#define Tcl_GetBignumFromObj \ + (tclStubsPtr->tcl_GetBignumFromObj) /* 558 */ +#endif +#ifndef Tcl_TakeBignumFromObj +#define Tcl_TakeBignumFromObj \ + (tclStubsPtr->tcl_TakeBignumFromObj) /* 559 */ +#endif +#ifndef Tcl_TruncateChannel +#define Tcl_TruncateChannel \ + (tclStubsPtr->tcl_TruncateChannel) /* 560 */ +#endif +#ifndef Tcl_ChannelTruncateProc +#define Tcl_ChannelTruncateProc \ + (tclStubsPtr->tcl_ChannelTruncateProc) /* 561 */ +#endif +#ifndef Tcl_SetChannelErrorInterp +#define Tcl_SetChannelErrorInterp \ + (tclStubsPtr->tcl_SetChannelErrorInterp) /* 562 */ +#endif +#ifndef Tcl_GetChannelErrorInterp +#define Tcl_GetChannelErrorInterp \ + (tclStubsPtr->tcl_GetChannelErrorInterp) /* 563 */ +#endif +#ifndef Tcl_SetChannelError +#define Tcl_SetChannelError \ + (tclStubsPtr->tcl_SetChannelError) /* 564 */ +#endif +#ifndef Tcl_GetChannelError +#define Tcl_GetChannelError \ + (tclStubsPtr->tcl_GetChannelError) /* 565 */ +#endif +#ifndef Tcl_InitBignumFromDouble +#define Tcl_InitBignumFromDouble \ + (tclStubsPtr->tcl_InitBignumFromDouble) /* 566 */ +#endif +#ifndef Tcl_GetNamespaceUnknownHandler +#define Tcl_GetNamespaceUnknownHandler \ + (tclStubsPtr->tcl_GetNamespaceUnknownHandler) /* 567 */ +#endif +#ifndef Tcl_SetNamespaceUnknownHandler +#define Tcl_SetNamespaceUnknownHandler \ + (tclStubsPtr->tcl_SetNamespaceUnknownHandler) /* 568 */ +#endif +#ifndef Tcl_GetEncodingFromObj +#define Tcl_GetEncodingFromObj \ + (tclStubsPtr->tcl_GetEncodingFromObj) /* 569 */ +#endif +#ifndef Tcl_GetEncodingSearchPath +#define Tcl_GetEncodingSearchPath \ + (tclStubsPtr->tcl_GetEncodingSearchPath) /* 570 */ +#endif +#ifndef Tcl_SetEncodingSearchPath +#define Tcl_SetEncodingSearchPath \ + (tclStubsPtr->tcl_SetEncodingSearchPath) /* 571 */ +#endif +#ifndef Tcl_GetEncodingNameFromEnvironment +#define Tcl_GetEncodingNameFromEnvironment \ + (tclStubsPtr->tcl_GetEncodingNameFromEnvironment) /* 572 */ +#endif +#ifndef Tcl_PkgRequireProc +#define Tcl_PkgRequireProc \ + (tclStubsPtr->tcl_PkgRequireProc) /* 573 */ +#endif +#ifndef Tcl_AppendObjToErrorInfo +#define Tcl_AppendObjToErrorInfo \ + (tclStubsPtr->tcl_AppendObjToErrorInfo) /* 574 */ +#endif +#ifndef Tcl_AppendLimitedToObj +#define Tcl_AppendLimitedToObj \ + (tclStubsPtr->tcl_AppendLimitedToObj) /* 575 */ +#endif +#ifndef Tcl_Format +#define Tcl_Format \ + (tclStubsPtr->tcl_Format) /* 576 */ +#endif +#ifndef Tcl_AppendFormatToObj +#define Tcl_AppendFormatToObj \ + (tclStubsPtr->tcl_AppendFormatToObj) /* 577 */ +#endif +#ifndef Tcl_ObjPrintf +#define Tcl_ObjPrintf \ + (tclStubsPtr->tcl_ObjPrintf) /* 578 */ +#endif +#ifndef Tcl_AppendPrintfToObj +#define Tcl_AppendPrintfToObj \ + (tclStubsPtr->tcl_AppendPrintfToObj) /* 579 */ +#endif + +#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TCLDECLS */ + diff --git a/mingw/include/tclPlatDecls.h b/mingw/include/tclPlatDecls.h dissimilarity index 65% index b2ebcf30..edd37996 100644 --- a/mingw/include/tclPlatDecls.h +++ b/mingw/include/tclPlatDecls.h @@ -1,197 +1,141 @@ -/* - * tclPlatDecls.h -- - * - * Declarations of platform specific Tcl APIs. - * - * Copyright (c) 1998-1999 by Scriptics Corporation. - * All rights reserved. - * - * RCS: @(#) $Id: tclPlatDecls.h,v 1.18.2.5 2004/06/10 17:17:45 andreas_kupries Exp $ - */ - -#ifndef _TCLPLATDECLS -#define _TCLPLATDECLS - -/* - * Pull in the typedef of TCHAR for windows. - */ -#if defined(__CYGWIN__) - typedef char TCHAR; -#elif defined(__WIN32__) && !defined(_TCHAR_DEFINED) -# include -# ifndef _TCHAR_DEFINED - /* Borland seems to forget to set this. */ - typedef _TCHAR TCHAR; -# define _TCHAR_DEFINED -# endif -# if defined(_MSC_VER) && defined(__STDC__) - /* MSVC++ misses this. */ - typedef _TCHAR TCHAR; -# endif -#endif - -/* !BEGIN!: Do not edit below this line. */ - -/* - * Exported function declarations: - */ - -#ifdef __WIN32__ -/* 0 */ -EXTERN TCHAR * Tcl_WinUtfToTChar _ANSI_ARGS_((CONST char * str, - int len, Tcl_DString * dsPtr)); -/* 1 */ -EXTERN char * Tcl_WinTCharToUtf _ANSI_ARGS_((CONST TCHAR * str, - int len, Tcl_DString * dsPtr)); -#endif /* __WIN32__ */ -#ifdef MAC_TCL -/* 0 */ -EXTERN void Tcl_MacSetEventProc _ANSI_ARGS_(( - Tcl_MacConvertEventPtr procPtr)); -/* 1 */ -EXTERN char * Tcl_MacConvertTextResource _ANSI_ARGS_(( - Handle resource)); -/* 2 */ -EXTERN int Tcl_MacEvalResource _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * resourceName, - int resourceNumber, CONST char * fileName)); -/* 3 */ -EXTERN Handle Tcl_MacFindResource _ANSI_ARGS_((Tcl_Interp * interp, - long resourceType, CONST char * resourceName, - int resourceNumber, CONST char * resFileRef, - int * releaseIt)); -/* 4 */ -EXTERN int Tcl_GetOSTypeFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - OSType * osTypePtr)); -/* 5 */ -EXTERN void Tcl_SetOSTypeObj _ANSI_ARGS_((Tcl_Obj * objPtr, - OSType osType)); -/* 6 */ -EXTERN Tcl_Obj * Tcl_NewOSTypeObj _ANSI_ARGS_((OSType osType)); -/* 7 */ -EXTERN int strncasecmp _ANSI_ARGS_((CONST char * s1, - CONST char * s2, size_t n)); -/* 8 */ -EXTERN int strcasecmp _ANSI_ARGS_((CONST char * s1, - CONST char * s2)); -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TCL -/* 0 */ -EXTERN int Tcl_MacOSXOpenBundleResources _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * bundleName, - int hasResourceFile, int maxPathLen, - char * libraryPath)); -/* 1 */ -EXTERN int Tcl_MacOSXOpenVersionedBundleResources _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * bundleName, - CONST char * bundleVersion, - int hasResourceFile, int maxPathLen, - char * libraryPath)); -#endif /* MAC_OSX_TCL */ - -typedef struct TclPlatStubs { - int magic; - struct TclPlatStubHooks *hooks; - -#ifdef __WIN32__ - TCHAR * (*tcl_WinUtfToTChar) _ANSI_ARGS_((CONST char * str, int len, Tcl_DString * dsPtr)); /* 0 */ - char * (*tcl_WinTCharToUtf) _ANSI_ARGS_((CONST TCHAR * str, int len, Tcl_DString * dsPtr)); /* 1 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void (*tcl_MacSetEventProc) _ANSI_ARGS_((Tcl_MacConvertEventPtr procPtr)); /* 0 */ - char * (*tcl_MacConvertTextResource) _ANSI_ARGS_((Handle resource)); /* 1 */ - int (*tcl_MacEvalResource) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * resourceName, int resourceNumber, CONST char * fileName)); /* 2 */ - Handle (*tcl_MacFindResource) _ANSI_ARGS_((Tcl_Interp * interp, long resourceType, CONST char * resourceName, int resourceNumber, CONST char * resFileRef, int * releaseIt)); /* 3 */ - int (*tcl_GetOSTypeFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, OSType * osTypePtr)); /* 4 */ - void (*tcl_SetOSTypeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, OSType osType)); /* 5 */ - Tcl_Obj * (*tcl_NewOSTypeObj) _ANSI_ARGS_((OSType osType)); /* 6 */ - int (*strncasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2, size_t n)); /* 7 */ - int (*strcasecmp) _ANSI_ARGS_((CONST char * s1, CONST char * s2)); /* 8 */ -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TCL - int (*tcl_MacOSXOpenBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 0 */ - int (*tcl_MacOSXOpenVersionedBundleResources) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * bundleName, CONST char * bundleVersion, int hasResourceFile, int maxPathLen, char * libraryPath)); /* 1 */ -#endif /* MAC_OSX_TCL */ -} TclPlatStubs; - -#ifdef __cplusplus -extern "C" { -#endif -extern TclPlatStubs *tclPlatStubsPtr; -#ifdef __cplusplus -} -#endif - -#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) - -/* - * Inline function declarations: - */ - -#ifdef __WIN32__ -#ifndef Tcl_WinUtfToTChar -#define Tcl_WinUtfToTChar \ - (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */ -#endif -#ifndef Tcl_WinTCharToUtf -#define Tcl_WinTCharToUtf \ - (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */ -#endif -#endif /* __WIN32__ */ -#ifdef MAC_TCL -#ifndef Tcl_MacSetEventProc -#define Tcl_MacSetEventProc \ - (tclPlatStubsPtr->tcl_MacSetEventProc) /* 0 */ -#endif -#ifndef Tcl_MacConvertTextResource -#define Tcl_MacConvertTextResource \ - (tclPlatStubsPtr->tcl_MacConvertTextResource) /* 1 */ -#endif -#ifndef Tcl_MacEvalResource -#define Tcl_MacEvalResource \ - (tclPlatStubsPtr->tcl_MacEvalResource) /* 2 */ -#endif -#ifndef Tcl_MacFindResource -#define Tcl_MacFindResource \ - (tclPlatStubsPtr->tcl_MacFindResource) /* 3 */ -#endif -#ifndef Tcl_GetOSTypeFromObj -#define Tcl_GetOSTypeFromObj \ - (tclPlatStubsPtr->tcl_GetOSTypeFromObj) /* 4 */ -#endif -#ifndef Tcl_SetOSTypeObj -#define Tcl_SetOSTypeObj \ - (tclPlatStubsPtr->tcl_SetOSTypeObj) /* 5 */ -#endif -#ifndef Tcl_NewOSTypeObj -#define Tcl_NewOSTypeObj \ - (tclPlatStubsPtr->tcl_NewOSTypeObj) /* 6 */ -#endif -#ifndef strncasecmp -#define strncasecmp \ - (tclPlatStubsPtr->strncasecmp) /* 7 */ -#endif -#ifndef strcasecmp -#define strcasecmp \ - (tclPlatStubsPtr->strcasecmp) /* 8 */ -#endif -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TCL -#ifndef Tcl_MacOSXOpenBundleResources -#define Tcl_MacOSXOpenBundleResources \ - (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */ -#endif -#ifndef Tcl_MacOSXOpenVersionedBundleResources -#define Tcl_MacOSXOpenVersionedBundleResources \ - (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */ -#endif -#endif /* MAC_OSX_TCL */ - -#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ - -/* !END!: Do not edit above this line. */ - -#endif /* _TCLPLATDECLS */ - - +/* + * tclPlatDecls.h -- + * + * Declarations of platform specific Tcl APIs. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * All rights reserved. + * + * RCS: @(#) $Id: tclPlatDecls.h,v 1.25 2006/11/15 14:58:27 dgp Exp $ + */ + +#ifndef _TCLPLATDECLS +#define _TCLPLATDECLS + +#undef TCL_STORAGE_CLASS +#ifdef BUILD_tcl +# define TCL_STORAGE_CLASS DLLEXPORT +#else +# ifdef USE_TCL_STUBS +# define TCL_STORAGE_CLASS +# else +# define TCL_STORAGE_CLASS DLLIMPORT +# endif +#endif + +/* + * Pull in the typedef of TCHAR for windows. + */ +#if defined(__CYGWIN__) + typedef char TCHAR; +#elif defined(__WIN32__) && !defined(_TCHAR_DEFINED) +# include +# ifndef _TCHAR_DEFINED + /* Borland seems to forget to set this. */ + typedef _TCHAR TCHAR; +# define _TCHAR_DEFINED +# endif +# if defined(_MSC_VER) && defined(__STDC__) + /* MSVC++ misses this. */ + typedef _TCHAR TCHAR; +# endif +#endif + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifdef __WIN32__ +#ifndef Tcl_WinUtfToTChar_TCL_DECLARED +#define Tcl_WinUtfToTChar_TCL_DECLARED +/* 0 */ +EXTERN TCHAR * Tcl_WinUtfToTChar (CONST char * str, int len, + Tcl_DString * dsPtr); +#endif +#ifndef Tcl_WinTCharToUtf_TCL_DECLARED +#define Tcl_WinTCharToUtf_TCL_DECLARED +/* 1 */ +EXTERN char * Tcl_WinTCharToUtf (CONST TCHAR * str, int len, + Tcl_DString * dsPtr); +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TCL +#ifndef Tcl_MacOSXOpenBundleResources_TCL_DECLARED +#define Tcl_MacOSXOpenBundleResources_TCL_DECLARED +/* 0 */ +EXTERN int Tcl_MacOSXOpenBundleResources (Tcl_Interp * interp, + CONST char * bundleName, int hasResourceFile, + int maxPathLen, char * libraryPath); +#endif +#ifndef Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED +#define Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED +/* 1 */ +EXTERN int Tcl_MacOSXOpenVersionedBundleResources ( + Tcl_Interp * interp, CONST char * bundleName, + CONST char * bundleVersion, + int hasResourceFile, int maxPathLen, + char * libraryPath); +#endif +#endif /* MAC_OSX_TCL */ + +typedef struct TclPlatStubs { + int magic; + struct TclPlatStubHooks *hooks; + +#ifdef __WIN32__ + TCHAR * (*tcl_WinUtfToTChar) (CONST char * str, int len, Tcl_DString * dsPtr); /* 0 */ + char * (*tcl_WinTCharToUtf) (CONST TCHAR * str, int len, Tcl_DString * dsPtr); /* 1 */ +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TCL + int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp * interp, CONST char * bundleName, int hasResourceFile, int maxPathLen, char * libraryPath); /* 0 */ + int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp * interp, CONST char * bundleName, CONST char * bundleVersion, int hasResourceFile, int maxPathLen, char * libraryPath); /* 1 */ +#endif /* MAC_OSX_TCL */ +} TclPlatStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TclPlatStubs *tclPlatStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifdef __WIN32__ +#ifndef Tcl_WinUtfToTChar +#define Tcl_WinUtfToTChar \ + (tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */ +#endif +#ifndef Tcl_WinTCharToUtf +#define Tcl_WinTCharToUtf \ + (tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */ +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TCL +#ifndef Tcl_MacOSXOpenBundleResources +#define Tcl_MacOSXOpenBundleResources \ + (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */ +#endif +#ifndef Tcl_MacOSXOpenVersionedBundleResources +#define Tcl_MacOSXOpenVersionedBundleResources \ + (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */ +#endif +#endif /* MAC_OSX_TCL */ + +#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TCLPLATDECLS */ + + diff --git a/mingw/include/tclTomMath.h b/mingw/include/tclTomMath.h new file mode 100644 index 00000000..d05178c1 --- /dev/null +++ b/mingw/include/tclTomMath.h @@ -0,0 +1,845 @@ +/* LibTomMath, multiple-precision integer library -- Tom St Denis + * + * LibTomMath is a library that provides multiple-precision + * integer arithmetic as well as number theoretic functionality. + * + * The library was designed directly after the MPI library by + * Michael Fromberger but has been written from scratch with + * additional optimizations in place. + * + * The library is free for all purposes without any express + * guarantee it works. + * + * Tom St Denis, tomstdenis@gmail.com, http://math.libtomcrypt.com + */ +#ifndef BN_H_ +#define BN_H_ + +#include +#ifndef MODULE_SCOPE +#define MODULE_SCOPE extern +#endif + +#include +#include +#include +#include +#include + +#include + +#ifndef MIN + #define MIN(x,y) ((x)<(y)?(x):(y)) +#endif + +#ifndef MAX + #define MAX(x,y) ((x)>(y)?(x):(y)) +#endif + +#ifdef __cplusplus +extern "C" { + +/* C++ compilers don't like assigning void * to mp_digit * */ +#define OPT_CAST(x) (x *) + +#else + +/* C on the other hand doesn't care */ +#define OPT_CAST(x) + +#endif + + +/* detect 64-bit mode if possible */ +#if defined(NEVER) /* 128-bit ints fail in too many places */ + #if !(defined(MP_64BIT) && defined(MP_16BIT) && defined(MP_8BIT)) + #define MP_64BIT + #endif +#endif + +/* some default configurations. + * + * A "mp_digit" must be able to hold DIGIT_BIT + 1 bits + * A "mp_word" must be able to hold 2*DIGIT_BIT + 1 bits + * + * At the very least a mp_digit must be able to hold 7 bits + * [any size beyond that is ok provided it doesn't overflow the data type] + */ +#ifdef MP_8BIT +#ifndef MP_DIGIT_DECLARED + typedef unsigned char mp_digit; +#define MP_DIGIT_DECLARED +#endif + typedef unsigned short mp_word; +#elif defined(MP_16BIT) +#ifndef MP_DIGIT_DECLARED + typedef unsigned short mp_digit; +#define MP_DIGIT_DECLARED +#endif + typedef unsigned long mp_word; +#elif defined(MP_64BIT) + /* for GCC only on supported platforms */ +#ifndef CRYPT + typedef unsigned long long ulong64; + typedef signed long long long64; +#endif + +#ifndef MP_DIGIT_DECLARED + typedef unsigned long mp_digit; +#define MP_DIGIT_DECLARED +#endif + typedef unsigned long mp_word __attribute__ ((mode(TI))); + + #define DIGIT_BIT 60 +#else + /* this is the default case, 28-bit digits */ + + /* this is to make porting into LibTomCrypt easier :-) */ +#ifndef CRYPT + #if defined(_MSC_VER) || defined(__BORLANDC__) + typedef unsigned __int64 ulong64; + typedef signed __int64 long64; + #else + typedef unsigned long long ulong64; + typedef signed long long long64; + #endif +#endif + +#ifndef MP_DIGIT_DECLARED + typedef unsigned int mp_digit; +#define MP_DIGIT_DECLARED +#endif + typedef ulong64 mp_word; + +#ifdef MP_31BIT + /* this is an extension that uses 31-bit digits */ + #define DIGIT_BIT 31 +#else + /* default case is 28-bit digits, defines MP_28BIT as a handy macro to test */ + #define DIGIT_BIT 28 + #define MP_28BIT +#endif +#endif + +/* define heap macros */ +#if 0 /* these are macros in tclTomMathDecls.h */ +#ifndef CRYPT + /* default to libc stuff */ + #ifndef XMALLOC + #define XMALLOC malloc + #define XFREE free + #define XREALLOC realloc + #define XCALLOC calloc + #else + /* prototypes for our heap functions */ + extern void *XMALLOC(size_t n); + extern void *XREALLOC(void *p, size_t n); + extern void *XCALLOC(size_t n, size_t s); + extern void XFREE(void *p); + #endif +#endif +#endif + + +/* otherwise the bits per digit is calculated automatically from the size of a mp_digit */ +#ifndef DIGIT_BIT + #define DIGIT_BIT ((int)((CHAR_BIT * sizeof(mp_digit) - 1))) /* bits per digit */ +#endif + +#define MP_DIGIT_BIT DIGIT_BIT +#define MP_MASK ((((mp_digit)1)<<((mp_digit)DIGIT_BIT))-((mp_digit)1)) +#define MP_DIGIT_MAX MP_MASK + +/* equalities */ +#define MP_LT -1 /* less than */ +#define MP_EQ 0 /* equal to */ +#define MP_GT 1 /* greater than */ + +#define MP_ZPOS 0 /* positive integer */ +#define MP_NEG 1 /* negative */ + +#define MP_OKAY 0 /* ok result */ +#define MP_MEM -2 /* out of mem */ +#define MP_VAL -3 /* invalid input */ +#define MP_RANGE MP_VAL + +#define MP_YES 1 /* yes response */ +#define MP_NO 0 /* no response */ + +/* Primality generation flags */ +#define LTM_PRIME_BBS 0x0001 /* BBS style prime */ +#define LTM_PRIME_SAFE 0x0002 /* Safe prime (p-1)/2 == prime */ +#define LTM_PRIME_2MSB_ON 0x0008 /* force 2nd MSB to 1 */ + +typedef int mp_err; + +/* you'll have to tune these... */ +#if defined(BUILD_tcl) || !defined(_WIN32) +MODULE_SCOPE int KARATSUBA_MUL_CUTOFF, + KARATSUBA_SQR_CUTOFF, + TOOM_MUL_CUTOFF, + TOOM_SQR_CUTOFF; +#endif + +/* define this to use lower memory usage routines (exptmods mostly) */ +/* #define MP_LOW_MEM */ + +/* default precision */ +#ifndef MP_PREC + #ifndef MP_LOW_MEM + #define MP_PREC 32 /* default digits of precision */ + #else + #define MP_PREC 8 /* default digits of precision */ + #endif +#endif + +/* size of comba arrays, should be at least 2 * 2**(BITS_PER_WORD - BITS_PER_DIGIT*2) */ +#define MP_WARRAY (1 << (sizeof(mp_word) * CHAR_BIT - 2 * DIGIT_BIT + 1)) + +/* the infamous mp_int structure */ +#ifndef MP_INT_DECLARED +#define MP_INT_DECLARED +typedef struct mp_int mp_int; +#endif +struct mp_int { + int used, alloc, sign; + mp_digit *dp; +}; + +/* callback for mp_prime_random, should fill dst with random bytes and return how many read [upto len] */ +typedef int ltm_prime_callback(unsigned char *dst, int len, void *dat); + + +#define USED(m) ((m)->used) +#define DIGIT(m,k) ((m)->dp[(k)]) +#define SIGN(m) ((m)->sign) + +/* error code to char* string */ +/* +char *mp_error_to_string(int code); +*/ + +/* ---> init and deinit bignum functions <--- */ +/* init a bignum */ +/* +int mp_init(mp_int *a); +*/ + +/* free a bignum */ +/* +void mp_clear(mp_int *a); +*/ + +/* init a null terminated series of arguments */ +/* +int mp_init_multi(mp_int *mp, ...); +*/ + +/* clear a null terminated series of arguments */ +/* +void mp_clear_multi(mp_int *mp, ...); +*/ + +/* exchange two ints */ +/* +void mp_exch(mp_int *a, mp_int *b); +*/ + +/* shrink ram required for a bignum */ +/* +int mp_shrink(mp_int *a); +*/ + +/* grow an int to a given size */ +/* +int mp_grow(mp_int *a, int size); +*/ + +/* init to a given number of digits */ +/* +int mp_init_size(mp_int *a, int size); +*/ + +/* ---> Basic Manipulations <--- */ +#define mp_iszero(a) (((a)->used == 0) ? MP_YES : MP_NO) +#define mp_iseven(a) (((a)->used == 0 || (((a)->dp[0] & 1) == 0)) ? MP_YES : MP_NO) +#define mp_isodd(a) (((a)->used > 0 && (((a)->dp[0] & 1) == 1)) ? MP_YES : MP_NO) + +/* set to zero */ +/* +void mp_zero(mp_int *a); +*/ + +/* set to a digit */ +/* +void mp_set(mp_int *a, mp_digit b); +*/ + +/* set a 32-bit const */ +/* +int mp_set_int(mp_int *a, unsigned long b); +*/ + +/* get a 32-bit value */ +unsigned long mp_get_int(mp_int * a); + +/* initialize and set a digit */ +/* +int mp_init_set (mp_int * a, mp_digit b); +*/ + +/* initialize and set 32-bit value */ +/* +int mp_init_set_int (mp_int * a, unsigned long b); +*/ + +/* copy, b = a */ +/* +int mp_copy(mp_int *a, mp_int *b); +*/ + +/* inits and copies, a = b */ +/* +int mp_init_copy(mp_int *a, mp_int *b); +*/ + +/* trim unused digits */ +/* +void mp_clamp(mp_int *a); +*/ + +/* ---> digit manipulation <--- */ + +/* right shift by "b" digits */ +/* +void mp_rshd(mp_int *a, int b); +*/ + +/* left shift by "b" digits */ +/* +int mp_lshd(mp_int *a, int b); +*/ + +/* c = a / 2**b */ +/* +int mp_div_2d(mp_int *a, int b, mp_int *c, mp_int *d); +*/ + +/* b = a/2 */ +/* +int mp_div_2(mp_int *a, mp_int *b); +*/ + +/* c = a * 2**b */ +/* +int mp_mul_2d(mp_int *a, int b, mp_int *c); +*/ + +/* b = a*2 */ +/* +int mp_mul_2(mp_int *a, mp_int *b); +*/ + +/* c = a mod 2**d */ +/* +int mp_mod_2d(mp_int *a, int b, mp_int *c); +*/ + +/* computes a = 2**b */ +/* +int mp_2expt(mp_int *a, int b); +*/ + +/* Counts the number of lsbs which are zero before the first zero bit */ +/* +int mp_cnt_lsb(mp_int *a); +*/ + +/* I Love Earth! */ + +/* makes a pseudo-random int of a given size */ +/* +int mp_rand(mp_int *a, int digits); +*/ + +/* ---> binary operations <--- */ +/* c = a XOR b */ +/* +int mp_xor(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = a OR b */ +/* +int mp_or(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = a AND b */ +/* +int mp_and(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* ---> Basic arithmetic <--- */ + +/* b = -a */ +/* +int mp_neg(mp_int *a, mp_int *b); +*/ + +/* b = |a| */ +/* +int mp_abs(mp_int *a, mp_int *b); +*/ + +/* compare a to b */ +/* +int mp_cmp(mp_int *a, mp_int *b); +*/ + +/* compare |a| to |b| */ +/* +int mp_cmp_mag(mp_int *a, mp_int *b); +*/ + +/* c = a + b */ +/* +int mp_add(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = a - b */ +/* +int mp_sub(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = a * b */ +/* +int mp_mul(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* b = a*a */ +/* +int mp_sqr(mp_int *a, mp_int *b); +*/ + +/* a/b => cb + d == a */ +/* +int mp_div(mp_int *a, mp_int *b, mp_int *c, mp_int *d); +*/ + +/* c = a mod b, 0 <= c < b */ +/* +int mp_mod(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* ---> single digit functions <--- */ + +/* compare against a single digit */ +/* +int mp_cmp_d(mp_int *a, mp_digit b); +*/ + +/* c = a + b */ +/* +int mp_add_d(mp_int *a, mp_digit b, mp_int *c); +*/ + +/* c = a - b */ +/* +int mp_sub_d(mp_int *a, mp_digit b, mp_int *c); +*/ + +/* c = a * b */ +/* +int mp_mul_d(mp_int *a, mp_digit b, mp_int *c); +*/ + +/* a/b => cb + d == a */ +/* +int mp_div_d(mp_int *a, mp_digit b, mp_int *c, mp_digit *d); +*/ + +/* a/3 => 3c + d == a */ +/* +int mp_div_3(mp_int *a, mp_int *c, mp_digit *d); +*/ + +/* c = a**b */ +/* +int mp_expt_d(mp_int *a, mp_digit b, mp_int *c); +*/ + +/* c = a mod b, 0 <= c < b */ +/* +int mp_mod_d(mp_int *a, mp_digit b, mp_digit *c); +*/ + +/* ---> number theory <--- */ + +/* d = a + b (mod c) */ +/* +int mp_addmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); +*/ + +/* d = a - b (mod c) */ +/* +int mp_submod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); +*/ + +/* d = a * b (mod c) */ +/* +int mp_mulmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); +*/ + +/* c = a * a (mod b) */ +/* +int mp_sqrmod(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = 1/a (mod b) */ +/* +int mp_invmod(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* c = (a, b) */ +/* +int mp_gcd(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* produces value such that U1*a + U2*b = U3 */ +/* +int mp_exteuclid(mp_int *a, mp_int *b, mp_int *U1, mp_int *U2, mp_int *U3); +*/ + +/* c = [a, b] or (a*b)/(a, b) */ +/* +int mp_lcm(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* finds one of the b'th root of a, such that |c|**b <= |a| + * + * returns error if a < 0 and b is even + */ +/* +int mp_n_root(mp_int *a, mp_digit b, mp_int *c); +*/ + +/* special sqrt algo */ +/* +int mp_sqrt(mp_int *arg, mp_int *ret); +*/ + +/* is number a square? */ +/* +int mp_is_square(mp_int *arg, int *ret); +*/ + +/* computes the jacobi c = (a | n) (or Legendre if b is prime) */ +/* +int mp_jacobi(mp_int *a, mp_int *n, int *c); +*/ + +/* used to setup the Barrett reduction for a given modulus b */ +/* +int mp_reduce_setup(mp_int *a, mp_int *b); +*/ + +/* Barrett Reduction, computes a (mod b) with a precomputed value c + * + * Assumes that 0 < a <= b*b, note if 0 > a > -(b*b) then you can merely + * compute the reduction as -1 * mp_reduce(mp_abs(a)) [pseudo code]. + */ +/* +int mp_reduce(mp_int *a, mp_int *b, mp_int *c); +*/ + +/* setups the montgomery reduction */ +/* +int mp_montgomery_setup(mp_int *a, mp_digit *mp); +*/ + +/* computes a = B**n mod b without division or multiplication useful for + * normalizing numbers in a Montgomery system. + */ +/* +int mp_montgomery_calc_normalization(mp_int *a, mp_int *b); +*/ + +/* computes x/R == x (mod N) via Montgomery Reduction */ +/* +int mp_montgomery_reduce(mp_int *a, mp_int *m, mp_digit mp); +*/ + +/* returns 1 if a is a valid DR modulus */ +/* +int mp_dr_is_modulus(mp_int *a); +*/ + +/* sets the value of "d" required for mp_dr_reduce */ +/* +void mp_dr_setup(mp_int *a, mp_digit *d); +*/ + +/* reduces a modulo b using the Diminished Radix method */ +/* +int mp_dr_reduce(mp_int *a, mp_int *b, mp_digit mp); +*/ + +/* returns true if a can be reduced with mp_reduce_2k */ +/* +int mp_reduce_is_2k(mp_int *a); +*/ + +/* determines k value for 2k reduction */ +/* +int mp_reduce_2k_setup(mp_int *a, mp_digit *d); +*/ + +/* reduces a modulo b where b is of the form 2**p - k [0 <= a] */ +/* +int mp_reduce_2k(mp_int *a, mp_int *n, mp_digit d); +*/ + +/* returns true if a can be reduced with mp_reduce_2k_l */ +/* +int mp_reduce_is_2k_l(mp_int *a); +*/ + +/* determines k value for 2k reduction */ +/* +int mp_reduce_2k_setup_l(mp_int *a, mp_int *d); +*/ + +/* reduces a modulo b where b is of the form 2**p - k [0 <= a] */ +/* +int mp_reduce_2k_l(mp_int *a, mp_int *n, mp_int *d); +*/ + +/* d = a**b (mod c) */ +/* +int mp_exptmod(mp_int *a, mp_int *b, mp_int *c, mp_int *d); +*/ + +/* ---> Primes <--- */ + +/* number of primes */ +#ifdef MP_8BIT + #define PRIME_SIZE 31 +#else + #define PRIME_SIZE 256 +#endif + +/* table of first PRIME_SIZE primes */ +#if defined(BUILD_tcl) || !defined(_WIN32) +MODULE_SCOPE const mp_digit ltm_prime_tab[]; +#endif + +/* result=1 if a is divisible by one of the first PRIME_SIZE primes */ +/* +int mp_prime_is_divisible(mp_int *a, int *result); +*/ + +/* performs one Fermat test of "a" using base "b". + * Sets result to 0 if composite or 1 if probable prime + */ +/* +int mp_prime_fermat(mp_int *a, mp_int *b, int *result); +*/ + +/* performs one Miller-Rabin test of "a" using base "b". + * Sets result to 0 if composite or 1 if probable prime + */ +/* +int mp_prime_miller_rabin(mp_int *a, mp_int *b, int *result); +*/ + +/* This gives [for a given bit size] the number of trials required + * such that Miller-Rabin gives a prob of failure lower than 2^-96 + */ +/* +int mp_prime_rabin_miller_trials(int size); +*/ + +/* performs t rounds of Miller-Rabin on "a" using the first + * t prime bases. Also performs an initial sieve of trial + * division. Determines if "a" is prime with probability + * of error no more than (1/4)**t. + * + * Sets result to 1 if probably prime, 0 otherwise + */ +/* +int mp_prime_is_prime(mp_int *a, int t, int *result); +*/ + +/* finds the next prime after the number "a" using "t" trials + * of Miller-Rabin. + * + * bbs_style = 1 means the prime must be congruent to 3 mod 4 + */ +/* +int mp_prime_next_prime(mp_int *a, int t, int bbs_style); +*/ + +/* makes a truly random prime of a given size (bytes), + * call with bbs = 1 if you want it to be congruent to 3 mod 4 + * + * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can + * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself + * so it can be NULL + * + * The prime generated will be larger than 2^(8*size). + */ +#define mp_prime_random(a, t, size, bbs, cb, dat) mp_prime_random_ex(a, t, ((size) * 8) + 1, (bbs==1)?LTM_PRIME_BBS:0, cb, dat) + +/* makes a truly random prime of a given size (bits), + * + * Flags are as follows: + * + * LTM_PRIME_BBS - make prime congruent to 3 mod 4 + * LTM_PRIME_SAFE - make sure (p-1)/2 is prime as well (implies LTM_PRIME_BBS) + * LTM_PRIME_2MSB_OFF - make the 2nd highest bit zero + * LTM_PRIME_2MSB_ON - make the 2nd highest bit one + * + * You have to supply a callback which fills in a buffer with random bytes. "dat" is a parameter you can + * have passed to the callback (e.g. a state or something). This function doesn't use "dat" itself + * so it can be NULL + * + */ +/* +int mp_prime_random_ex(mp_int *a, int t, int size, int flags, ltm_prime_callback cb, void *dat); +*/ + +/* ---> radix conversion <--- */ +/* +int mp_count_bits(mp_int *a); +*/ + +/* +int mp_unsigned_bin_size(mp_int *a); +*/ +/* +int mp_read_unsigned_bin(mp_int *a, const unsigned char *b, int c); +*/ +/* +int mp_to_unsigned_bin(mp_int *a, unsigned char *b); +*/ +/* +int mp_to_unsigned_bin_n (mp_int * a, unsigned char *b, unsigned long *outlen); +*/ + +/* +int mp_signed_bin_size(mp_int *a); +*/ +/* +int mp_read_signed_bin(mp_int *a, const unsigned char *b, int c); +*/ +/* +int mp_to_signed_bin(mp_int *a, unsigned char *b); +*/ +/* +int mp_to_signed_bin_n (mp_int * a, unsigned char *b, unsigned long *outlen); +*/ + +/* +int mp_read_radix(mp_int *a, const char *str, int radix); +*/ +/* +int mp_toradix(mp_int *a, char *str, int radix); +*/ +/* +int mp_toradix_n(mp_int * a, char *str, int radix, int maxlen); +*/ +/* +int mp_radix_size(mp_int *a, int radix, int *size); +*/ + +/* +int mp_fread(mp_int *a, int radix, FILE *stream); +*/ +/* +int mp_fwrite(mp_int *a, int radix, FILE *stream); +*/ + +#define mp_read_raw(mp, str, len) mp_read_signed_bin((mp), (str), (len)) +#define mp_raw_size(mp) mp_signed_bin_size(mp) +#define mp_toraw(mp, str) mp_to_signed_bin((mp), (str)) +#define mp_read_mag(mp, str, len) mp_read_unsigned_bin((mp), (str), (len)) +#define mp_mag_size(mp) mp_unsigned_bin_size(mp) +#define mp_tomag(mp, str) mp_to_unsigned_bin((mp), (str)) + +#define mp_tobinary(M, S) mp_toradix((M), (S), 2) +#define mp_tooctal(M, S) mp_toradix((M), (S), 8) +#define mp_todecimal(M, S) mp_toradix((M), (S), 10) +#define mp_tohex(M, S) mp_toradix((M), (S), 16) + +/* lowlevel functions, do not call! */ +/* +int s_mp_add(mp_int *a, mp_int *b, mp_int *c); +*/ +/* +int s_mp_sub(mp_int *a, mp_int *b, mp_int *c); +*/ +#define s_mp_mul(a, b, c) s_mp_mul_digs(a, b, c, (a)->used + (b)->used + 1) +/* +int fast_s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs); +*/ +/* +int s_mp_mul_digs(mp_int *a, mp_int *b, mp_int *c, int digs); +*/ +/* +int fast_s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs); +*/ +/* +int s_mp_mul_high_digs(mp_int *a, mp_int *b, mp_int *c, int digs); +*/ +/* +int fast_s_mp_sqr(mp_int *a, mp_int *b); +*/ +/* +int s_mp_sqr(mp_int *a, mp_int *b); +*/ +/* +int mp_karatsuba_mul(mp_int *a, mp_int *b, mp_int *c); +*/ +/* +int mp_toom_mul(mp_int *a, mp_int *b, mp_int *c); +*/ +/* +int mp_karatsuba_sqr(mp_int *a, mp_int *b); +*/ +/* +int mp_toom_sqr(mp_int *a, mp_int *b); +*/ +/* +int fast_mp_invmod(mp_int *a, mp_int *b, mp_int *c); +*/ +/* +int mp_invmod_slow (mp_int * a, mp_int * b, mp_int * c); +*/ +/* +int fast_mp_montgomery_reduce(mp_int *a, mp_int *m, mp_digit mp); +*/ +/* +int mp_exptmod_fast(mp_int *G, mp_int *X, mp_int *P, mp_int *Y, int mode); +*/ +/* +int s_mp_exptmod (mp_int * G, mp_int * X, mp_int * P, mp_int * Y, int mode); +*/ +/* +void bn_reverse(unsigned char *s, int len); +*/ + +#if defined(BUILD_tcl) || !defined(_WIN32) +MODULE_SCOPE const char *mp_s_rmap; +#endif + +#ifdef __cplusplus + } +#endif + +#endif + + +/* $Source: /cvsroot/tcl/tcl/generic/tclTomMath.h,v $ */ +/* Based on Tom's version 1.8 */ +/* $Revision: 1.10 $ */ +/* $Date: 2007/02/14 17:59:21 $ */ + diff --git a/mingw/include/tclTomMathDecls.h b/mingw/include/tclTomMathDecls.h new file mode 100644 index 00000000..785c61b4 --- /dev/null +++ b/mingw/include/tclTomMathDecls.h @@ -0,0 +1,789 @@ +/* + *---------------------------------------------------------------------- + * + * tclTomMathDecls.h -- + * + * This file contains the declarations for the 'libtommath' + * functions that are exported by the Tcl library. + * + * Copyright (c) 2005 by Kevin B. Kenny. All rights reserved. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tclTomMathDecls.h,v 1.2 2006/11/15 14:58:27 dgp Exp $ + */ + +#ifndef _TCLTOMMATHDECLS +#define _TCLTOMMATHDECLS + +#include "tcl.h" + +/* + * Define the version of the Stubs table that's exported for tommath + */ + +#define TCLTOMMATH_EPOCH 0 +#define TCLTOMMATH_REVISION 0 + +#define Tcl_TomMath_InitStubs(interp,version) \ + (TclTomMathInitializeStubs((interp),(version),\ + TCLTOMMATH_EPOCH,TCLTOMMATH_REVISION)) + +/* Define custom memory allocation for libtommath */ + +/* MODULE_SCOPE void* TclBNAlloc( size_t ); */ +#define TclBNAlloc(s) ((void*)ckalloc((size_t)(s))) +/* MODULE_SCOPE void* TclBNRealloc( void*, size_t ); */ +#define TclBNRealloc(x,s) ((void*)ckrealloc((char*)(x),(size_t)(s))) +/* MODULE_SCOPE void TclBNFree( void* ); */ +#define TclBNFree(x) (ckfree((char*)(x))) +/* MODULE_SCOPE void* TclBNCalloc( size_t, size_t ); */ +/* unused - no macro */ + +#define XMALLOC(x) TclBNAlloc(x) +#define XFREE(x) TclBNFree(x) +#define XREALLOC(x,n) TclBNRealloc(x,n) +#define XCALLOC(n,x) TclBNCalloc(n,x) + +/* Rename the global symbols in libtommath to avoid linkage conflicts */ + +#define KARATSUBA_MUL_CUTOFF TclBNKaratsubaMulCutoff +#define KARATSUBA_SQR_CUTOFF TclBNKaratsubaSqrCutoff +#define TOOM_MUL_CUTOFF TclBNToomMulCutoff +#define TOOM_SQR_CUTOFF TclBNToomSqrCutoff + +#define bn_reverse TclBN_reverse +#define fast_s_mp_mul_digs TclBN_fast_s_mp_mul_digs +#define fast_s_mp_sqr TclBN_fast_s_mp_sqr +#define mp_add TclBN_mp_add +#define mp_add_d TclBN_mp_add_d +#define mp_and TclBN_mp_and +#define mp_clamp TclBN_mp_clamp +#define mp_clear TclBN_mp_clear +#define mp_clear_multi TclBN_mp_clear_multi +#define mp_cmp TclBN_mp_cmp +#define mp_cmp_d TclBN_mp_cmp_d +#define mp_cmp_mag TclBN_mp_cmp_mag +#define mp_copy TclBN_mp_copy +#define mp_count_bits TclBN_mp_count_bits +#define mp_div TclBN_mp_div +#define mp_div_2 TclBN_mp_div_2 +#define mp_div_2d TclBN_mp_div_2d +#define mp_div_3 TclBN_mp_div_3 +#define mp_div_d TclBN_mp_div_d +#define mp_exch TclBN_mp_exch +#define mp_expt_d TclBN_mp_expt_d +#define mp_grow TclBN_mp_grow +#define mp_init TclBN_mp_init +#define mp_init_copy TclBN_mp_init_copy +#define mp_init_multi TclBN_mp_init_multi +#define mp_init_set TclBN_mp_init_set +#define mp_init_size TclBN_mp_init_size +#define mp_karatsuba_mul TclBN_mp_karatsuba_mul +#define mp_karatsuba_sqr TclBN_mp_karatsuba_sqr +#define mp_lshd TclBN_mp_lshd +#define mp_mod TclBN_mp_mod +#define mp_mod_2d TclBN_mp_mod_2d +#define mp_mul TclBN_mp_mul +#define mp_mul_2 TclBN_mp_mul_2 +#define mp_mul_2d TclBN_mp_mul_2d +#define mp_mul_d TclBN_mp_mul_d +#define mp_neg TclBN_mp_neg +#define mp_or TclBN_mp_or +#define mp_radix_size TclBN_mp_radix_size +#define mp_read_radix TclBN_mp_read_radix +#define mp_rshd TclBN_mp_rshd +#define mp_s_rmap TclBNMpSRmap +#define mp_set TclBN_mp_set +#define mp_shrink TclBN_mp_shrink +#define mp_sqr TclBN_mp_sqr +#define mp_sqrt TclBN_mp_sqrt +#define mp_sub TclBN_mp_sub +#define mp_sub_d TclBN_mp_sub_d +#define mp_to_unsigned_bin TclBN_mp_to_unsigned_bin +#define mp_to_unsigned_bin_n TclBN_mp_to_unsigned_bin_n +#define mp_toom_mul TclBN_mp_toom_mul +#define mp_toom_sqr TclBN_mp_toom_sqr +#define mp_toradix_n TclBN_mp_toradix_n +#define mp_unsigned_bin_size TclBN_mp_unsigned_bin_size +#define mp_xor TclBN_mp_xor +#define mp_zero TclBN_mp_zero +#define s_mp_add TclBN_s_mp_add +#define s_mp_mul_digs TclBN_s_mp_mul_digs +#define s_mp_sqr TclBN_s_mp_sqr +#define s_mp_sub TclBN_s_mp_sub + +#undef TCL_STORAGE_CLASS +#ifdef BUILD_tcl +# define TCL_STORAGE_CLASS DLLEXPORT +#else +# ifdef USE_TCL_STUBS +# define TCL_STORAGE_CLASS +# else +# define TCL_STORAGE_CLASS DLLIMPORT +# endif +#endif + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the generic/tclInt.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifndef TclBN_epoch_TCL_DECLARED +#define TclBN_epoch_TCL_DECLARED +/* 0 */ +EXTERN int TclBN_epoch (void); +#endif +#ifndef TclBN_revision_TCL_DECLARED +#define TclBN_revision_TCL_DECLARED +/* 1 */ +EXTERN int TclBN_revision (void); +#endif +#ifndef TclBN_mp_add_TCL_DECLARED +#define TclBN_mp_add_TCL_DECLARED +/* 2 */ +EXTERN int TclBN_mp_add (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_add_d_TCL_DECLARED +#define TclBN_mp_add_d_TCL_DECLARED +/* 3 */ +EXTERN int TclBN_mp_add_d (mp_int* a, mp_digit b, mp_int* c); +#endif +#ifndef TclBN_mp_and_TCL_DECLARED +#define TclBN_mp_and_TCL_DECLARED +/* 4 */ +EXTERN int TclBN_mp_and (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_clamp_TCL_DECLARED +#define TclBN_mp_clamp_TCL_DECLARED +/* 5 */ +EXTERN void TclBN_mp_clamp (mp_int* a); +#endif +#ifndef TclBN_mp_clear_TCL_DECLARED +#define TclBN_mp_clear_TCL_DECLARED +/* 6 */ +EXTERN void TclBN_mp_clear (mp_int* a); +#endif +#ifndef TclBN_mp_clear_multi_TCL_DECLARED +#define TclBN_mp_clear_multi_TCL_DECLARED +/* 7 */ +EXTERN void TclBN_mp_clear_multi (mp_int* a, ...); +#endif +#ifndef TclBN_mp_cmp_TCL_DECLARED +#define TclBN_mp_cmp_TCL_DECLARED +/* 8 */ +EXTERN int TclBN_mp_cmp (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_cmp_d_TCL_DECLARED +#define TclBN_mp_cmp_d_TCL_DECLARED +/* 9 */ +EXTERN int TclBN_mp_cmp_d (mp_int* a, mp_digit b); +#endif +#ifndef TclBN_mp_cmp_mag_TCL_DECLARED +#define TclBN_mp_cmp_mag_TCL_DECLARED +/* 10 */ +EXTERN int TclBN_mp_cmp_mag (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_copy_TCL_DECLARED +#define TclBN_mp_copy_TCL_DECLARED +/* 11 */ +EXTERN int TclBN_mp_copy (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_count_bits_TCL_DECLARED +#define TclBN_mp_count_bits_TCL_DECLARED +/* 12 */ +EXTERN int TclBN_mp_count_bits (mp_int* a); +#endif +#ifndef TclBN_mp_div_TCL_DECLARED +#define TclBN_mp_div_TCL_DECLARED +/* 13 */ +EXTERN int TclBN_mp_div (mp_int* a, mp_int* b, mp_int* q, + mp_int* r); +#endif +#ifndef TclBN_mp_div_d_TCL_DECLARED +#define TclBN_mp_div_d_TCL_DECLARED +/* 14 */ +EXTERN int TclBN_mp_div_d (mp_int* a, mp_digit b, mp_int* q, + mp_digit* r); +#endif +#ifndef TclBN_mp_div_2_TCL_DECLARED +#define TclBN_mp_div_2_TCL_DECLARED +/* 15 */ +EXTERN int TclBN_mp_div_2 (mp_int* a, mp_int* q); +#endif +#ifndef TclBN_mp_div_2d_TCL_DECLARED +#define TclBN_mp_div_2d_TCL_DECLARED +/* 16 */ +EXTERN int TclBN_mp_div_2d (mp_int* a, int b, mp_int* q, + mp_int* r); +#endif +#ifndef TclBN_mp_div_3_TCL_DECLARED +#define TclBN_mp_div_3_TCL_DECLARED +/* 17 */ +EXTERN int TclBN_mp_div_3 (mp_int* a, mp_int* q, mp_digit* r); +#endif +#ifndef TclBN_mp_exch_TCL_DECLARED +#define TclBN_mp_exch_TCL_DECLARED +/* 18 */ +EXTERN void TclBN_mp_exch (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_expt_d_TCL_DECLARED +#define TclBN_mp_expt_d_TCL_DECLARED +/* 19 */ +EXTERN int TclBN_mp_expt_d (mp_int* a, mp_digit b, mp_int* c); +#endif +#ifndef TclBN_mp_grow_TCL_DECLARED +#define TclBN_mp_grow_TCL_DECLARED +/* 20 */ +EXTERN int TclBN_mp_grow (mp_int* a, int size); +#endif +#ifndef TclBN_mp_init_TCL_DECLARED +#define TclBN_mp_init_TCL_DECLARED +/* 21 */ +EXTERN int TclBN_mp_init (mp_int* a); +#endif +#ifndef TclBN_mp_init_copy_TCL_DECLARED +#define TclBN_mp_init_copy_TCL_DECLARED +/* 22 */ +EXTERN int TclBN_mp_init_copy (mp_int * a, mp_int* b); +#endif +#ifndef TclBN_mp_init_multi_TCL_DECLARED +#define TclBN_mp_init_multi_TCL_DECLARED +/* 23 */ +EXTERN int TclBN_mp_init_multi (mp_int* a, ...); +#endif +#ifndef TclBN_mp_init_set_TCL_DECLARED +#define TclBN_mp_init_set_TCL_DECLARED +/* 24 */ +EXTERN int TclBN_mp_init_set (mp_int* a, mp_digit b); +#endif +#ifndef TclBN_mp_init_size_TCL_DECLARED +#define TclBN_mp_init_size_TCL_DECLARED +/* 25 */ +EXTERN int TclBN_mp_init_size (mp_int* a, int size); +#endif +#ifndef TclBN_mp_lshd_TCL_DECLARED +#define TclBN_mp_lshd_TCL_DECLARED +/* 26 */ +EXTERN int TclBN_mp_lshd (mp_int* a, int shift); +#endif +#ifndef TclBN_mp_mod_TCL_DECLARED +#define TclBN_mp_mod_TCL_DECLARED +/* 27 */ +EXTERN int TclBN_mp_mod (mp_int* a, mp_int* b, mp_int* r); +#endif +#ifndef TclBN_mp_mod_2d_TCL_DECLARED +#define TclBN_mp_mod_2d_TCL_DECLARED +/* 28 */ +EXTERN int TclBN_mp_mod_2d (mp_int* a, int b, mp_int* r); +#endif +#ifndef TclBN_mp_mul_TCL_DECLARED +#define TclBN_mp_mul_TCL_DECLARED +/* 29 */ +EXTERN int TclBN_mp_mul (mp_int* a, mp_int* b, mp_int* p); +#endif +#ifndef TclBN_mp_mul_d_TCL_DECLARED +#define TclBN_mp_mul_d_TCL_DECLARED +/* 30 */ +EXTERN int TclBN_mp_mul_d (mp_int* a, mp_digit b, mp_int* p); +#endif +#ifndef TclBN_mp_mul_2_TCL_DECLARED +#define TclBN_mp_mul_2_TCL_DECLARED +/* 31 */ +EXTERN int TclBN_mp_mul_2 (mp_int* a, mp_int* p); +#endif +#ifndef TclBN_mp_mul_2d_TCL_DECLARED +#define TclBN_mp_mul_2d_TCL_DECLARED +/* 32 */ +EXTERN int TclBN_mp_mul_2d (mp_int* a, int d, mp_int* p); +#endif +#ifndef TclBN_mp_neg_TCL_DECLARED +#define TclBN_mp_neg_TCL_DECLARED +/* 33 */ +EXTERN int TclBN_mp_neg (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_or_TCL_DECLARED +#define TclBN_mp_or_TCL_DECLARED +/* 34 */ +EXTERN int TclBN_mp_or (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_radix_size_TCL_DECLARED +#define TclBN_mp_radix_size_TCL_DECLARED +/* 35 */ +EXTERN int TclBN_mp_radix_size (mp_int* a, int radix, int* size); +#endif +#ifndef TclBN_mp_read_radix_TCL_DECLARED +#define TclBN_mp_read_radix_TCL_DECLARED +/* 36 */ +EXTERN int TclBN_mp_read_radix (mp_int* a, const char* str, + int radix); +#endif +#ifndef TclBN_mp_rshd_TCL_DECLARED +#define TclBN_mp_rshd_TCL_DECLARED +/* 37 */ +EXTERN void TclBN_mp_rshd (mp_int * a, int shift); +#endif +#ifndef TclBN_mp_shrink_TCL_DECLARED +#define TclBN_mp_shrink_TCL_DECLARED +/* 38 */ +EXTERN int TclBN_mp_shrink (mp_int* a); +#endif +#ifndef TclBN_mp_set_TCL_DECLARED +#define TclBN_mp_set_TCL_DECLARED +/* 39 */ +EXTERN void TclBN_mp_set (mp_int* a, mp_digit b); +#endif +#ifndef TclBN_mp_sqr_TCL_DECLARED +#define TclBN_mp_sqr_TCL_DECLARED +/* 40 */ +EXTERN int TclBN_mp_sqr (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_sqrt_TCL_DECLARED +#define TclBN_mp_sqrt_TCL_DECLARED +/* 41 */ +EXTERN int TclBN_mp_sqrt (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_sub_TCL_DECLARED +#define TclBN_mp_sub_TCL_DECLARED +/* 42 */ +EXTERN int TclBN_mp_sub (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_sub_d_TCL_DECLARED +#define TclBN_mp_sub_d_TCL_DECLARED +/* 43 */ +EXTERN int TclBN_mp_sub_d (mp_int* a, mp_digit b, mp_int* c); +#endif +#ifndef TclBN_mp_to_unsigned_bin_TCL_DECLARED +#define TclBN_mp_to_unsigned_bin_TCL_DECLARED +/* 44 */ +EXTERN int TclBN_mp_to_unsigned_bin (mp_int* a, + unsigned char* b); +#endif +#ifndef TclBN_mp_to_unsigned_bin_n_TCL_DECLARED +#define TclBN_mp_to_unsigned_bin_n_TCL_DECLARED +/* 45 */ +EXTERN int TclBN_mp_to_unsigned_bin_n (mp_int* a, + unsigned char* b, unsigned long* outlen); +#endif +#ifndef TclBN_mp_toradix_n_TCL_DECLARED +#define TclBN_mp_toradix_n_TCL_DECLARED +/* 46 */ +EXTERN int TclBN_mp_toradix_n (mp_int* a, char* str, int radix, + int maxlen); +#endif +#ifndef TclBN_mp_unsigned_bin_size_TCL_DECLARED +#define TclBN_mp_unsigned_bin_size_TCL_DECLARED +/* 47 */ +EXTERN int TclBN_mp_unsigned_bin_size (mp_int* a); +#endif +#ifndef TclBN_mp_xor_TCL_DECLARED +#define TclBN_mp_xor_TCL_DECLARED +/* 48 */ +EXTERN int TclBN_mp_xor (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_zero_TCL_DECLARED +#define TclBN_mp_zero_TCL_DECLARED +/* 49 */ +EXTERN void TclBN_mp_zero (mp_int* a); +#endif +#ifndef TclBN_reverse_TCL_DECLARED +#define TclBN_reverse_TCL_DECLARED +/* 50 */ +EXTERN void TclBN_reverse (unsigned char* s, int len); +#endif +#ifndef TclBN_fast_s_mp_mul_digs_TCL_DECLARED +#define TclBN_fast_s_mp_mul_digs_TCL_DECLARED +/* 51 */ +EXTERN int TclBN_fast_s_mp_mul_digs (mp_int * a, mp_int * b, + mp_int * c, int digs); +#endif +#ifndef TclBN_fast_s_mp_sqr_TCL_DECLARED +#define TclBN_fast_s_mp_sqr_TCL_DECLARED +/* 52 */ +EXTERN int TclBN_fast_s_mp_sqr (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_karatsuba_mul_TCL_DECLARED +#define TclBN_mp_karatsuba_mul_TCL_DECLARED +/* 53 */ +EXTERN int TclBN_mp_karatsuba_mul (mp_int* a, mp_int* b, + mp_int* c); +#endif +#ifndef TclBN_mp_karatsuba_sqr_TCL_DECLARED +#define TclBN_mp_karatsuba_sqr_TCL_DECLARED +/* 54 */ +EXTERN int TclBN_mp_karatsuba_sqr (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_mp_toom_mul_TCL_DECLARED +#define TclBN_mp_toom_mul_TCL_DECLARED +/* 55 */ +EXTERN int TclBN_mp_toom_mul (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_mp_toom_sqr_TCL_DECLARED +#define TclBN_mp_toom_sqr_TCL_DECLARED +/* 56 */ +EXTERN int TclBN_mp_toom_sqr (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_s_mp_add_TCL_DECLARED +#define TclBN_s_mp_add_TCL_DECLARED +/* 57 */ +EXTERN int TclBN_s_mp_add (mp_int* a, mp_int* b, mp_int* c); +#endif +#ifndef TclBN_s_mp_mul_digs_TCL_DECLARED +#define TclBN_s_mp_mul_digs_TCL_DECLARED +/* 58 */ +EXTERN int TclBN_s_mp_mul_digs (mp_int* a, mp_int* b, mp_int* c, + int digs); +#endif +#ifndef TclBN_s_mp_sqr_TCL_DECLARED +#define TclBN_s_mp_sqr_TCL_DECLARED +/* 59 */ +EXTERN int TclBN_s_mp_sqr (mp_int* a, mp_int* b); +#endif +#ifndef TclBN_s_mp_sub_TCL_DECLARED +#define TclBN_s_mp_sub_TCL_DECLARED +/* 60 */ +EXTERN int TclBN_s_mp_sub (mp_int* a, mp_int* b, mp_int* c); +#endif + +typedef struct TclTomMathStubs { + int magic; + struct TclTomMathStubHooks *hooks; + + int (*tclBN_epoch) (void); /* 0 */ + int (*tclBN_revision) (void); /* 1 */ + int (*tclBN_mp_add) (mp_int* a, mp_int* b, mp_int* c); /* 2 */ + int (*tclBN_mp_add_d) (mp_int* a, mp_digit b, mp_int* c); /* 3 */ + int (*tclBN_mp_and) (mp_int* a, mp_int* b, mp_int* c); /* 4 */ + void (*tclBN_mp_clamp) (mp_int* a); /* 5 */ + void (*tclBN_mp_clear) (mp_int* a); /* 6 */ + void (*tclBN_mp_clear_multi) (mp_int* a, ...); /* 7 */ + int (*tclBN_mp_cmp) (mp_int* a, mp_int* b); /* 8 */ + int (*tclBN_mp_cmp_d) (mp_int* a, mp_digit b); /* 9 */ + int (*tclBN_mp_cmp_mag) (mp_int* a, mp_int* b); /* 10 */ + int (*tclBN_mp_copy) (mp_int* a, mp_int* b); /* 11 */ + int (*tclBN_mp_count_bits) (mp_int* a); /* 12 */ + int (*tclBN_mp_div) (mp_int* a, mp_int* b, mp_int* q, mp_int* r); /* 13 */ + int (*tclBN_mp_div_d) (mp_int* a, mp_digit b, mp_int* q, mp_digit* r); /* 14 */ + int (*tclBN_mp_div_2) (mp_int* a, mp_int* q); /* 15 */ + int (*tclBN_mp_div_2d) (mp_int* a, int b, mp_int* q, mp_int* r); /* 16 */ + int (*tclBN_mp_div_3) (mp_int* a, mp_int* q, mp_digit* r); /* 17 */ + void (*tclBN_mp_exch) (mp_int* a, mp_int* b); /* 18 */ + int (*tclBN_mp_expt_d) (mp_int* a, mp_digit b, mp_int* c); /* 19 */ + int (*tclBN_mp_grow) (mp_int* a, int size); /* 20 */ + int (*tclBN_mp_init) (mp_int* a); /* 21 */ + int (*tclBN_mp_init_copy) (mp_int * a, mp_int* b); /* 22 */ + int (*tclBN_mp_init_multi) (mp_int* a, ...); /* 23 */ + int (*tclBN_mp_init_set) (mp_int* a, mp_digit b); /* 24 */ + int (*tclBN_mp_init_size) (mp_int* a, int size); /* 25 */ + int (*tclBN_mp_lshd) (mp_int* a, int shift); /* 26 */ + int (*tclBN_mp_mod) (mp_int* a, mp_int* b, mp_int* r); /* 27 */ + int (*tclBN_mp_mod_2d) (mp_int* a, int b, mp_int* r); /* 28 */ + int (*tclBN_mp_mul) (mp_int* a, mp_int* b, mp_int* p); /* 29 */ + int (*tclBN_mp_mul_d) (mp_int* a, mp_digit b, mp_int* p); /* 30 */ + int (*tclBN_mp_mul_2) (mp_int* a, mp_int* p); /* 31 */ + int (*tclBN_mp_mul_2d) (mp_int* a, int d, mp_int* p); /* 32 */ + int (*tclBN_mp_neg) (mp_int* a, mp_int* b); /* 33 */ + int (*tclBN_mp_or) (mp_int* a, mp_int* b, mp_int* c); /* 34 */ + int (*tclBN_mp_radix_size) (mp_int* a, int radix, int* size); /* 35 */ + int (*tclBN_mp_read_radix) (mp_int* a, const char* str, int radix); /* 36 */ + void (*tclBN_mp_rshd) (mp_int * a, int shift); /* 37 */ + int (*tclBN_mp_shrink) (mp_int* a); /* 38 */ + void (*tclBN_mp_set) (mp_int* a, mp_digit b); /* 39 */ + int (*tclBN_mp_sqr) (mp_int* a, mp_int* b); /* 40 */ + int (*tclBN_mp_sqrt) (mp_int* a, mp_int* b); /* 41 */ + int (*tclBN_mp_sub) (mp_int* a, mp_int* b, mp_int* c); /* 42 */ + int (*tclBN_mp_sub_d) (mp_int* a, mp_digit b, mp_int* c); /* 43 */ + int (*tclBN_mp_to_unsigned_bin) (mp_int* a, unsigned char* b); /* 44 */ + int (*tclBN_mp_to_unsigned_bin_n) (mp_int* a, unsigned char* b, unsigned long* outlen); /* 45 */ + int (*tclBN_mp_toradix_n) (mp_int* a, char* str, int radix, int maxlen); /* 46 */ + int (*tclBN_mp_unsigned_bin_size) (mp_int* a); /* 47 */ + int (*tclBN_mp_xor) (mp_int* a, mp_int* b, mp_int* c); /* 48 */ + void (*tclBN_mp_zero) (mp_int* a); /* 49 */ + void (*tclBN_reverse) (unsigned char* s, int len); /* 50 */ + int (*tclBN_fast_s_mp_mul_digs) (mp_int * a, mp_int * b, mp_int * c, int digs); /* 51 */ + int (*tclBN_fast_s_mp_sqr) (mp_int* a, mp_int* b); /* 52 */ + int (*tclBN_mp_karatsuba_mul) (mp_int* a, mp_int* b, mp_int* c); /* 53 */ + int (*tclBN_mp_karatsuba_sqr) (mp_int* a, mp_int* b); /* 54 */ + int (*tclBN_mp_toom_mul) (mp_int* a, mp_int* b, mp_int* c); /* 55 */ + int (*tclBN_mp_toom_sqr) (mp_int* a, mp_int* b); /* 56 */ + int (*tclBN_s_mp_add) (mp_int* a, mp_int* b, mp_int* c); /* 57 */ + int (*tclBN_s_mp_mul_digs) (mp_int* a, mp_int* b, mp_int* c, int digs); /* 58 */ + int (*tclBN_s_mp_sqr) (mp_int* a, mp_int* b); /* 59 */ + int (*tclBN_s_mp_sub) (mp_int* a, mp_int* b, mp_int* c); /* 60 */ +} TclTomMathStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TclTomMathStubs *tclTomMathStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef TclBN_epoch +#define TclBN_epoch \ + (tclTomMathStubsPtr->tclBN_epoch) /* 0 */ +#endif +#ifndef TclBN_revision +#define TclBN_revision \ + (tclTomMathStubsPtr->tclBN_revision) /* 1 */ +#endif +#ifndef TclBN_mp_add +#define TclBN_mp_add \ + (tclTomMathStubsPtr->tclBN_mp_add) /* 2 */ +#endif +#ifndef TclBN_mp_add_d +#define TclBN_mp_add_d \ + (tclTomMathStubsPtr->tclBN_mp_add_d) /* 3 */ +#endif +#ifndef TclBN_mp_and +#define TclBN_mp_and \ + (tclTomMathStubsPtr->tclBN_mp_and) /* 4 */ +#endif +#ifndef TclBN_mp_clamp +#define TclBN_mp_clamp \ + (tclTomMathStubsPtr->tclBN_mp_clamp) /* 5 */ +#endif +#ifndef TclBN_mp_clear +#define TclBN_mp_clear \ + (tclTomMathStubsPtr->tclBN_mp_clear) /* 6 */ +#endif +#ifndef TclBN_mp_clear_multi +#define TclBN_mp_clear_multi \ + (tclTomMathStubsPtr->tclBN_mp_clear_multi) /* 7 */ +#endif +#ifndef TclBN_mp_cmp +#define TclBN_mp_cmp \ + (tclTomMathStubsPtr->tclBN_mp_cmp) /* 8 */ +#endif +#ifndef TclBN_mp_cmp_d +#define TclBN_mp_cmp_d \ + (tclTomMathStubsPtr->tclBN_mp_cmp_d) /* 9 */ +#endif +#ifndef TclBN_mp_cmp_mag +#define TclBN_mp_cmp_mag \ + (tclTomMathStubsPtr->tclBN_mp_cmp_mag) /* 10 */ +#endif +#ifndef TclBN_mp_copy +#define TclBN_mp_copy \ + (tclTomMathStubsPtr->tclBN_mp_copy) /* 11 */ +#endif +#ifndef TclBN_mp_count_bits +#define TclBN_mp_count_bits \ + (tclTomMathStubsPtr->tclBN_mp_count_bits) /* 12 */ +#endif +#ifndef TclBN_mp_div +#define TclBN_mp_div \ + (tclTomMathStubsPtr->tclBN_mp_div) /* 13 */ +#endif +#ifndef TclBN_mp_div_d +#define TclBN_mp_div_d \ + (tclTomMathStubsPtr->tclBN_mp_div_d) /* 14 */ +#endif +#ifndef TclBN_mp_div_2 +#define TclBN_mp_div_2 \ + (tclTomMathStubsPtr->tclBN_mp_div_2) /* 15 */ +#endif +#ifndef TclBN_mp_div_2d +#define TclBN_mp_div_2d \ + (tclTomMathStubsPtr->tclBN_mp_div_2d) /* 16 */ +#endif +#ifndef TclBN_mp_div_3 +#define TclBN_mp_div_3 \ + (tclTomMathStubsPtr->tclBN_mp_div_3) /* 17 */ +#endif +#ifndef TclBN_mp_exch +#define TclBN_mp_exch \ + (tclTomMathStubsPtr->tclBN_mp_exch) /* 18 */ +#endif +#ifndef TclBN_mp_expt_d +#define TclBN_mp_expt_d \ + (tclTomMathStubsPtr->tclBN_mp_expt_d) /* 19 */ +#endif +#ifndef TclBN_mp_grow +#define TclBN_mp_grow \ + (tclTomMathStubsPtr->tclBN_mp_grow) /* 20 */ +#endif +#ifndef TclBN_mp_init +#define TclBN_mp_init \ + (tclTomMathStubsPtr->tclBN_mp_init) /* 21 */ +#endif +#ifndef TclBN_mp_init_copy +#define TclBN_mp_init_copy \ + (tclTomMathStubsPtr->tclBN_mp_init_copy) /* 22 */ +#endif +#ifndef TclBN_mp_init_multi +#define TclBN_mp_init_multi \ + (tclTomMathStubsPtr->tclBN_mp_init_multi) /* 23 */ +#endif +#ifndef TclBN_mp_init_set +#define TclBN_mp_init_set \ + (tclTomMathStubsPtr->tclBN_mp_init_set) /* 24 */ +#endif +#ifndef TclBN_mp_init_size +#define TclBN_mp_init_size \ + (tclTomMathStubsPtr->tclBN_mp_init_size) /* 25 */ +#endif +#ifndef TclBN_mp_lshd +#define TclBN_mp_lshd \ + (tclTomMathStubsPtr->tclBN_mp_lshd) /* 26 */ +#endif +#ifndef TclBN_mp_mod +#define TclBN_mp_mod \ + (tclTomMathStubsPtr->tclBN_mp_mod) /* 27 */ +#endif +#ifndef TclBN_mp_mod_2d +#define TclBN_mp_mod_2d \ + (tclTomMathStubsPtr->tclBN_mp_mod_2d) /* 28 */ +#endif +#ifndef TclBN_mp_mul +#define TclBN_mp_mul \ + (tclTomMathStubsPtr->tclBN_mp_mul) /* 29 */ +#endif +#ifndef TclBN_mp_mul_d +#define TclBN_mp_mul_d \ + (tclTomMathStubsPtr->tclBN_mp_mul_d) /* 30 */ +#endif +#ifndef TclBN_mp_mul_2 +#define TclBN_mp_mul_2 \ + (tclTomMathStubsPtr->tclBN_mp_mul_2) /* 31 */ +#endif +#ifndef TclBN_mp_mul_2d +#define TclBN_mp_mul_2d \ + (tclTomMathStubsPtr->tclBN_mp_mul_2d) /* 32 */ +#endif +#ifndef TclBN_mp_neg +#define TclBN_mp_neg \ + (tclTomMathStubsPtr->tclBN_mp_neg) /* 33 */ +#endif +#ifndef TclBN_mp_or +#define TclBN_mp_or \ + (tclTomMathStubsPtr->tclBN_mp_or) /* 34 */ +#endif +#ifndef TclBN_mp_radix_size +#define TclBN_mp_radix_size \ + (tclTomMathStubsPtr->tclBN_mp_radix_size) /* 35 */ +#endif +#ifndef TclBN_mp_read_radix +#define TclBN_mp_read_radix \ + (tclTomMathStubsPtr->tclBN_mp_read_radix) /* 36 */ +#endif +#ifndef TclBN_mp_rshd +#define TclBN_mp_rshd \ + (tclTomMathStubsPtr->tclBN_mp_rshd) /* 37 */ +#endif +#ifndef TclBN_mp_shrink +#define TclBN_mp_shrink \ + (tclTomMathStubsPtr->tclBN_mp_shrink) /* 38 */ +#endif +#ifndef TclBN_mp_set +#define TclBN_mp_set \ + (tclTomMathStubsPtr->tclBN_mp_set) /* 39 */ +#endif +#ifndef TclBN_mp_sqr +#define TclBN_mp_sqr \ + (tclTomMathStubsPtr->tclBN_mp_sqr) /* 40 */ +#endif +#ifndef TclBN_mp_sqrt +#define TclBN_mp_sqrt \ + (tclTomMathStubsPtr->tclBN_mp_sqrt) /* 41 */ +#endif +#ifndef TclBN_mp_sub +#define TclBN_mp_sub \ + (tclTomMathStubsPtr->tclBN_mp_sub) /* 42 */ +#endif +#ifndef TclBN_mp_sub_d +#define TclBN_mp_sub_d \ + (tclTomMathStubsPtr->tclBN_mp_sub_d) /* 43 */ +#endif +#ifndef TclBN_mp_to_unsigned_bin +#define TclBN_mp_to_unsigned_bin \ + (tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin) /* 44 */ +#endif +#ifndef TclBN_mp_to_unsigned_bin_n +#define TclBN_mp_to_unsigned_bin_n \ + (tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin_n) /* 45 */ +#endif +#ifndef TclBN_mp_toradix_n +#define TclBN_mp_toradix_n \ + (tclTomMathStubsPtr->tclBN_mp_toradix_n) /* 46 */ +#endif +#ifndef TclBN_mp_unsigned_bin_size +#define TclBN_mp_unsigned_bin_size \ + (tclTomMathStubsPtr->tclBN_mp_unsigned_bin_size) /* 47 */ +#endif +#ifndef TclBN_mp_xor +#define TclBN_mp_xor \ + (tclTomMathStubsPtr->tclBN_mp_xor) /* 48 */ +#endif +#ifndef TclBN_mp_zero +#define TclBN_mp_zero \ + (tclTomMathStubsPtr->tclBN_mp_zero) /* 49 */ +#endif +#ifndef TclBN_reverse +#define TclBN_reverse \ + (tclTomMathStubsPtr->tclBN_reverse) /* 50 */ +#endif +#ifndef TclBN_fast_s_mp_mul_digs +#define TclBN_fast_s_mp_mul_digs \ + (tclTomMathStubsPtr->tclBN_fast_s_mp_mul_digs) /* 51 */ +#endif +#ifndef TclBN_fast_s_mp_sqr +#define TclBN_fast_s_mp_sqr \ + (tclTomMathStubsPtr->tclBN_fast_s_mp_sqr) /* 52 */ +#endif +#ifndef TclBN_mp_karatsuba_mul +#define TclBN_mp_karatsuba_mul \ + (tclTomMathStubsPtr->tclBN_mp_karatsuba_mul) /* 53 */ +#endif +#ifndef TclBN_mp_karatsuba_sqr +#define TclBN_mp_karatsuba_sqr \ + (tclTomMathStubsPtr->tclBN_mp_karatsuba_sqr) /* 54 */ +#endif +#ifndef TclBN_mp_toom_mul +#define TclBN_mp_toom_mul \ + (tclTomMathStubsPtr->tclBN_mp_toom_mul) /* 55 */ +#endif +#ifndef TclBN_mp_toom_sqr +#define TclBN_mp_toom_sqr \ + (tclTomMathStubsPtr->tclBN_mp_toom_sqr) /* 56 */ +#endif +#ifndef TclBN_s_mp_add +#define TclBN_s_mp_add \ + (tclTomMathStubsPtr->tclBN_s_mp_add) /* 57 */ +#endif +#ifndef TclBN_s_mp_mul_digs +#define TclBN_s_mp_mul_digs \ + (tclTomMathStubsPtr->tclBN_s_mp_mul_digs) /* 58 */ +#endif +#ifndef TclBN_s_mp_sqr +#define TclBN_s_mp_sqr \ + (tclTomMathStubsPtr->tclBN_s_mp_sqr) /* 59 */ +#endif +#ifndef TclBN_s_mp_sub +#define TclBN_s_mp_sub \ + (tclTomMathStubsPtr->tclBN_s_mp_sub) /* 60 */ +#endif + +#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TCLINTDECLS */ diff --git a/mingw/include/tk.h b/mingw/include/tk.h index 8c3132b9..8eac59bb 100644 --- a/mingw/include/tk.h +++ b/mingw/include/tk.h @@ -1,23 +1,28 @@ /* * tk.h -- * - * Declarations for Tk-related things that are visible - * outside of the Tk module itself. + * Declarations for Tk-related things that are visible outside of the Tk + * module itself. * * Copyright (c) 1989-1994 The Regents of the University of California. * Copyright (c) 1994 The Australian National University. * Copyright (c) 1994-1998 Sun Microsystems, Inc. * Copyright (c) 1998-2000 Ajuba Solutions. * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tk.h,v 1.74.2.16 2006/05/04 13:09:46 dgp Exp $ + * RCS: @(#) $Id: tk.h,v 1.103 2007/10/26 15:23:05 dgp Exp $ */ #ifndef _TK #define _TK +#include +#if (TCL_MAJOR_VERSION != 8) || (TCL_MINOR_VERSION != 5) +# error Tk 8.5 must be compiled with tcl.h from Tcl 8.5 +#endif + /* * For C++ compilers, use extern "C" */ @@ -30,53 +35,43 @@ extern "C" { * When version numbers change here, you must also go into the following files * and update the version numbers: * - * library/tk.tcl (only if Major.minor changes, not patchlevel) + * library/tk.tcl (2 LOC patch) * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch) * win/configure.in (as above) - * win/makefile.vc (not patchlevel) * README (sections 0 and 1) - * mac/README (not patchlevel) + * macosx/Wish.xcode/project.pbxproj (not patchlevel) 1 LOC + * macosx/Wish-Common.xcconfig (not patchlevel) 1 LOC * win/README (not patchlevel) * unix/README (not patchlevel) - * unix/tk.spec (3 LOC Major/Minor, 2 LOC patch) + * unix/tk.spec (1 LOC patch) * win/tcl.m4 (not patchlevel) * - * You may also need to update some of these files when the numbers change - * for the version of Tcl that this release of Tk is compiled against. + * You may also need to update some of these files when the numbers change for + * the version of Tcl that this release of Tk is compiled against. */ -#define TK_MAJOR_VERSION 8 -#define TK_MINOR_VERSION 4 -#define TK_RELEASE_LEVEL TCL_FINAL_RELEASE -#define TK_RELEASE_SERIAL 14 - -#define TK_VERSION "8.4" -#define TK_PATCH_LEVEL "8.4.14" +#define TK_MAJOR_VERSION 8 +#define TK_MINOR_VERSION 5 +#define TK_RELEASE_LEVEL TCL_BETA_RELEASE +#define TK_RELEASE_SERIAL 2 -#ifndef _TCL -# include -# if (TCL_MAJOR_VERSION != 8) || (TCL_MINOR_VERSION != 4) -# error Tk 8.4 must be compiled with tcl.h from Tcl 8.4 -# endif -#endif +#define TK_VERSION "8.5" +#define TK_PATCH_LEVEL "8.5b2" -/* - * A special definition used to allow this header file to be included - * from windows or mac resource files so that they can obtain version - * information. RC_INVOKED is defined by default by the windows RC tool - * and manually set for macintosh. +/* + * A special definition used to allow this header file to be included from + * windows or mac resource files so that they can obtain version information. + * RC_INVOKED is defined by default by the windows RC tool and manually set + * for macintosh. * - * Resource compilers don't like all the C stuff, like typedefs and - * procedure declarations, that occur below, so block them out. + * Resource compilers don't like all the C stuff, like typedefs and procedure + * declarations, that occur below, so block them out. */ - + #ifndef RC_INVOKED - + #ifndef _XLIB_H -# if defined (MAC_TCL) -# include -# include -# elif defined(MAC_OSX_TK) +# if defined(MAC_OSX_TK) # include # include # else @@ -91,7 +86,7 @@ extern "C" { # undef TCL_STORAGE_CLASS # define TCL_STORAGE_CLASS DLLEXPORT #endif - + /* * Decide whether or not to use input methods. */ @@ -124,11 +119,11 @@ typedef struct Tk_StyledElement_ *Tk_StyledElement; * Additional types exported to clients. */ -typedef CONST char *Tk_Uid; +typedef const char *Tk_Uid; /* - * The enum below defines the valid types for Tk configuration options - * as implemented by Tk_InitOptions, Tk_SetOptions, etc. + * The enum below defines the valid types for Tk configuration options as + * implemented by Tk_InitOptions, Tk_SetOptions, etc. */ typedef enum { @@ -154,56 +149,54 @@ typedef enum { } Tk_OptionType; /* - * Structures of the following type are used by widgets to specify - * their configuration options. Typically each widget has a static - * array of these structures, where each element of the array describes - * a single configuration option. The array is passed to - * Tk_CreateOptionTable. + * Structures of the following type are used by widgets to specify their + * configuration options. Typically each widget has a static array of these + * structures, where each element of the array describes a single + * configuration option. The array is passed to Tk_CreateOptionTable. */ typedef struct Tk_OptionSpec { - Tk_OptionType type; /* Type of option, such as TK_OPTION_COLOR; - * see definitions above. Last option in - * table must have type TK_OPTION_END. */ - char *optionName; /* Name used to specify option in Tcl + Tk_OptionType type; /* Type of option, such as TK_OPTION_COLOR; + * see definitions above. Last option in table + * must have type TK_OPTION_END. */ + const char *optionName; /* Name used to specify option in Tcl * commands. */ - char *dbName; /* Name for option in option database. */ - char *dbClass; /* Class for option in database. */ - char *defValue; /* Default value for option if not specified - * in command line, the option database, - * or the system. */ + const char *dbName; /* Name for option in option database. */ + const char *dbClass; /* Class for option in database. */ + const char *defValue; /* Default value for option if not specified + * in command line, the option database, or + * the system. */ int objOffset; /* Where in record to store a Tcl_Obj * that * holds the value of this option, specified - * as an offset in bytes from the start of - * the record. Use the Tk_Offset macro to - * generate values for this. -1 means don't - * store the Tcl_Obj in the record. */ + * as an offset in bytes from the start of the + * record. Use the Tk_Offset macro to generate + * values for this. -1 means don't store the + * Tcl_Obj in the record. */ int internalOffset; /* Where in record to store the internal * representation of the value of this option, - * such as an int or XColor *. This field - * is specified as an offset in bytes - * from the start of the record. Use the - * Tk_Offset macro to generate values for it. - * -1 means don't store the internal - * representation in the record. */ + * such as an int or XColor *. This field is + * specified as an offset in bytes from the + * start of the record. Use the Tk_Offset + * macro to generate values for it. -1 means + * don't store the internal representation in + * the record. */ int flags; /* Any combination of the values defined * below. */ ClientData clientData; /* An alternate place to put option-specific - * data. Used for the monochrome default value + * data. Used for the monochrome default value * for colors, etc. */ - int typeMask; /* An arbitrary bit mask defined by the - * class manager; typically bits correspond - * to certain kinds of options such as all - * those that require a redisplay when they - * change. Tk_SetOptions returns the bit-wise - * OR of the typeMasks of all options that - * were changed. */ + int typeMask; /* An arbitrary bit mask defined by the class + * manager; typically bits correspond to + * certain kinds of options such as all those + * that require a redisplay when they change. + * Tk_SetOptions returns the bit-wise OR of + * the typeMasks of all options that were + * changed. */ } Tk_OptionSpec; /* - * Flag values for Tk_OptionSpec structures. These flags are shared by - * Tk_ConfigSpec structures, so be sure to coordinate any changes - * carefully. + * Flag values for Tk_OptionSpec structures. These flags are shared by + * Tk_ConfigSpec structures, so be sure to coordinate any changes carefully. */ #define TK_OPTION_NULL_OK (1 << 0) @@ -224,28 +217,29 @@ typedef void (Tk_CustomOptionRestoreProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char *internalPtr, char *saveInternalPtr)); typedef void (Tk_CustomOptionFreeProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char *internalPtr)); - + typedef struct Tk_ObjCustomOption { - char *name; /* Name of the custom option. */ - Tk_CustomOptionSetProc *setProc; /* Function to use to set a record's - * option value from a Tcl_Obj */ - Tk_CustomOptionGetProc *getProc; /* Function to use to get a Tcl_Obj - * representation from an internal - * representation of an option. */ - Tk_CustomOptionRestoreProc *restoreProc; /* Function to use to restore a - * saved value for the internal - * representation. */ - Tk_CustomOptionFreeProc *freeProc; /* Function to use to free the internal - * representation of an option. */ - ClientData clientData; /* Arbitrary one-word value passed to - * the handling procs. */ + const char *name; /* Name of the custom option. */ + Tk_CustomOptionSetProc *setProc; + /* Function to use to set a record's option + * value from a Tcl_Obj */ + Tk_CustomOptionGetProc *getProc; + /* Function to use to get a Tcl_Obj + * representation from an internal + * representation of an option. */ + Tk_CustomOptionRestoreProc *restoreProc; + /* Function to use to restore a saved value + * for the internal representation. */ + Tk_CustomOptionFreeProc *freeProc; + /* Function to use to free the internal + * representation of an option. */ + ClientData clientData; /* Arbitrary one-word value passed to the + * handling procs. */ } Tk_ObjCustomOption; - /* - * Macro to use to fill in "offset" fields of the Tk_OptionSpec. - * struct. Computes number of bytes from beginning of structure - * to a given field. + * Macro to use to fill in "offset" fields of the Tk_OptionSpec structure. + * Computes number of bytes from beginning of structure to a given field. */ #ifdef offsetof @@ -255,34 +249,30 @@ typedef struct Tk_ObjCustomOption { #endif /* - * The following two structures are used for error handling. When - * configuration options are being modified, the old values are - * saved in a Tk_SavedOptions structure. If an error occurs, then the - * contents of the structure can be used to restore all of the old - * values. The contents of this structure are for the private use - * Tk. No-one outside Tk should ever read or write any of the fields - * of these structures. + * The following two structures are used for error handling. When config + * options are being modified, the old values are saved in a Tk_SavedOptions + * structure. If an error occurs, then the contents of the structure can be + * used to restore all of the old values. The contents of this structure are + * for the private use Tk. No-one outside Tk should ever read or write any of + * the fields of these structures. */ typedef struct Tk_SavedOption { - struct TkOption *optionPtr; /* Points to information that describes - * the option. */ - Tcl_Obj *valuePtr; /* The old value of the option, in - * the form of a Tcl object; may be - * NULL if the value wasn't saved as - * an object. */ - double internalForm; /* The old value of the option, in - * some internal representation such - * as an int or (XColor *). Valid - * only if optionPtr->specPtr->objOffset - * is < 0. The space must be large - * enough to accommodate a double, a - * long, or a pointer; right now it - * looks like a double is big - * enough. Also, using a double - * guarantees that the field is - * properly aligned for storing large - * values. */ + struct TkOption *optionPtr; /* Points to information that describes the + * option. */ + Tcl_Obj *valuePtr; /* The old value of the option, in the form of + * a Tcl object; may be NULL if the value was + * not saved as an object. */ + double internalForm; /* The old value of the option, in some + * internal representation such as an int or + * (XColor *). Valid only if the field + * optionPtr->specPtr->objOffset is < 0. The + * space must be large enough to accommodate a + * double, a long, or a pointer; right now it + * looks like a double (i.e., 8 bytes) is big + * enough. Also, using a double guarantees + * that the field is properly aligned for + * storing large values. */ } Tk_SavedOption; #ifdef TCL_MEM_DEBUG @@ -292,31 +282,30 @@ typedef struct Tk_SavedOption { #endif typedef struct Tk_SavedOptions { - char *recordPtr; /* The data structure in which to - * restore configuration options. */ - Tk_Window tkwin; /* Window associated with recordPtr; - * needed to restore certain options. */ - int numItems; /* The number of valid items in - * items field. */ + char *recordPtr; /* The data structure in which to restore + * configuration options. */ + Tk_Window tkwin; /* Window associated with recordPtr; needed to + * restore certain options. */ + int numItems; /* The number of valid items in items field. */ Tk_SavedOption items[TK_NUM_SAVED_OPTIONS]; - /* Items used to hold old values. */ - struct Tk_SavedOptions *nextPtr; /* Points to next structure in list; - * needed if too many options changed - * to hold all the old values in a - * single structure. NULL means no - * more structures. */ + /* Items used to hold old values. */ + struct Tk_SavedOptions *nextPtr; + /* Points to next structure in list; needed if + * too many options changed to hold all the + * old values in a single structure. NULL + * means no more structures. */ } Tk_SavedOptions; /* - * Structure used to describe application-specific configuration - * options: indicates procedures to call to parse an option and - * to return a text string describing an option. THESE ARE - * DEPRECATED; PLEASE USE THE NEW STRUCTURES LISTED ABOVE. + * Structure used to describe application-specific configuration options: + * indicates procedures to call to parse an option and to return a text string + * describing an option. THESE ARE DEPRECATED; PLEASE USE THE NEW STRUCTURES + * LISTED ABOVE. */ /* - * This is a temporary flag used while tkObjConfig and new widgets - * are in development. + * This is a temporary flag used while tkObjConfig and new widgets are in + * development. */ #ifndef __NO_OLD_CONFIG @@ -329,58 +318,58 @@ typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData, Tcl_FreeProc **freeProcPtr)); typedef struct Tk_CustomOption { - Tk_OptionParseProc *parseProc; /* Procedure to call to parse an - * option and store it in converted - * form. */ - Tk_OptionPrintProc *printProc; /* Procedure to return a printable - * string describing an existing - * option. */ - ClientData clientData; /* Arbitrary one-word value used by - * option parser: passed to - * parseProc and printProc. */ + Tk_OptionParseProc *parseProc; + /* Procedure to call to parse an option and + * store it in converted form. */ + Tk_OptionPrintProc *printProc; + /* Procedure to return a printable string + * describing an existing option. */ + ClientData clientData; /* Arbitrary one-word value used by option + * parser: passed to parseProc and + * printProc. */ } Tk_CustomOption; /* - * Structure used to specify information for Tk_ConfigureWidget. Each - * structure gives complete information for one option, including - * how the option is specified on the command line, where it appears - * in the option database, etc. + * Structure used to specify information for Tk_ConfigureWidget. Each + * structure gives complete information for one option, including how the + * option is specified on the command line, where it appears in the option + * database, etc. */ typedef struct Tk_ConfigSpec { int type; /* Type of option, such as TK_CONFIG_COLOR; - * see definitions below. Last option in - * table must have type TK_CONFIG_END. */ - char *argvName; /* Switch used to specify option in argv. - * NULL means this spec is part of a group. */ + * see definitions below. Last option in table + * must have type TK_CONFIG_END. */ + char *argvName; /* Switch used to specify option in argv. NULL + * means this spec is part of a group. */ Tk_Uid dbName; /* Name for option in option database. */ Tk_Uid dbClass; /* Class for option in database. */ - Tk_Uid defValue; /* Default value for option if not - * specified in command line or database. */ - int offset; /* Where in widget record to store value; - * use Tk_Offset macro to generate values - * for this. */ + Tk_Uid defValue; /* Default value for option if not specified + * in command line or database. */ + int offset; /* Where in widget record to store value; use + * Tk_Offset macro to generate values for + * this. */ int specFlags; /* Any combination of the values defined - * below; other bits are used internally - * by tkConfig.c. */ - Tk_CustomOption *customPtr; /* If type is TK_CONFIG_CUSTOM then this is - * a pointer to info about how to parse and - * print the option. Otherwise it is + * below; other bits are used internally by + * tkConfig.c. */ + Tk_CustomOption *customPtr; /* If type is TK_CONFIG_CUSTOM then this is a + * pointer to info about how to parse and + * print the option. Otherwise it is * irrelevant. */ } Tk_ConfigSpec; /* - * Type values for Tk_ConfigSpec structures. See the user - * documentation for details. + * Type values for Tk_ConfigSpec structures. See the user documentation for + * details. */ typedef enum { TK_CONFIG_BOOLEAN, TK_CONFIG_INT, TK_CONFIG_DOUBLE, TK_CONFIG_STRING, TK_CONFIG_UID, TK_CONFIG_COLOR, TK_CONFIG_FONT, TK_CONFIG_BITMAP, - TK_CONFIG_BORDER, TK_CONFIG_RELIEF, TK_CONFIG_CURSOR, - TK_CONFIG_ACTIVE_CURSOR, TK_CONFIG_JUSTIFY, TK_CONFIG_ANCHOR, + TK_CONFIG_BORDER, TK_CONFIG_RELIEF, TK_CONFIG_CURSOR, + TK_CONFIG_ACTIVE_CURSOR, TK_CONFIG_JUSTIFY, TK_CONFIG_ANCHOR, TK_CONFIG_SYNONYM, TK_CONFIG_CAP_STYLE, TK_CONFIG_JOIN_STYLE, - TK_CONFIG_PIXELS, TK_CONFIG_MM, TK_CONFIG_WINDOW, TK_CONFIG_CUSTOM, + TK_CONFIG_PIXELS, TK_CONFIG_MM, TK_CONFIG_WINDOW, TK_CONFIG_CUSTOM, TK_CONFIG_END } Tk_ConfigTypes; @@ -392,10 +381,10 @@ typedef enum { #define TK_CONFIG_OBJS 0x80 /* - * Possible flag values for Tk_ConfigSpec structures. Any bits at - * or above TK_CONFIG_USER_BIT may be used by clients for selecting - * certain entries. Before changing any values here, coordinate with - * tkOldConfig.c (internal-use-only flags are defined there). + * Possible flag values for Tk_ConfigSpec structures. Any bits at or above + * TK_CONFIG_USER_BIT may be used by clients for selecting certain entries. + * Before changing any values here, coordinate with tkOldConfig.c + * (internal-use-only flags are defined there). */ #define TK_CONFIG_NULL_OK (1 << 0) @@ -411,14 +400,15 @@ typedef enum { */ typedef struct { - char *key; /* The key string that flags the option in the - * argv array. */ - int type; /* Indicates option type; see below. */ - char *src; /* Value to be used in setting dst; usage - * depends on type. */ - char *dst; /* Address of value to be modified; usage - * depends on type. */ - char *help; /* Documentation message describing this option. */ + char *key; /* The key string that flags the option in the + * argv array. */ + int type; /* Indicates option type; see below. */ + char *src; /* Value to be used in setting dst; usage + * depends on type. */ + char *dst; /* Address of value to be modified; usage + * depends on type. */ + char *help; /* Documentation message describing this + * option. */ } Tk_ArgvInfo; /* @@ -450,8 +440,8 @@ typedef struct { #define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8 /* - * Enumerated type for describing actions to be taken in response - * to a restrictProc established by Tk_RestrictEvents. + * Enumerated type for describing actions to be taken in response to a + * restrictProc established by Tk_RestrictEvents. */ typedef enum { @@ -489,10 +479,10 @@ typedef enum { #define TK_3D_DARK_GC 3 /* - * Special EnterNotify/LeaveNotify "mode" for use in events - * generated by tkShare.c. Pick a high enough value that it's - * unlikely to conflict with existing values (like NotifyNormal) - * or any new values defined in the future. + * Special EnterNotify/LeaveNotify "mode" for use in events generated by + * tkShare.c. Pick a high enough value that it's unlikely to conflict with + * existing values (like NotifyNormal) or any new values defined in the + * future. */ #define TK_NOTIFY_SHARE 20 @@ -517,7 +507,7 @@ typedef enum { /* * The following structure is used by Tk_GetFontMetrics() to return - * information about the properties of a Tk_Font. + * information about the properties of a Tk_Font. */ typedef struct Tk_FontMetrics { @@ -529,9 +519,9 @@ typedef struct Tk_FontMetrics { * letter sticks below the baseline, plus any * extra blank space added by the designer of * the font. */ - int linespace; /* The sum of the ascent and descent. How - * far apart two lines of text in the same - * font should be placed so that none of the + int linespace; /* The sum of the ascent and descent. How far + * apart two lines of text in the same font + * should be placed so that none of the * characters in one line overlap any of the * characters in the other line. */ } Tk_FontMetrics; @@ -565,13 +555,12 @@ typedef void (Tk_ClassModalProc) _ANSI_ARGS_((Tk_Window tkwin, typedef struct Tk_ClassProcs { unsigned int size; Tk_ClassWorldChangedProc *worldChangedProc; - /* Procedure to invoke when the widget needs to - * respond in some way to a change in the + /* Procedure to invoke when the widget needs + * to respond in some way to a change in the * world (font changes, etc.) */ Tk_ClassCreateProc *createProc; - /* Procedure to invoke when the - * platform-dependent window needs to be - * created. */ + /* Procedure to invoke when the platform- + * dependent window needs to be created. */ Tk_ClassModalProc *modalProc; /* Procedure to invoke after all bindings on a * widget have been triggered in order to @@ -579,8 +568,8 @@ typedef struct Tk_ClassProcs { } Tk_ClassProcs; /* - * Simple accessor for Tk_ClassProcs structure. Checks that the structure - * is not NULL, then checks the size field and returns either the requested + * Simple accessor for Tk_ClassProcs structure. Checks that the structure is + * not NULL, then checks the size field and returns either the requested * field, if present, or NULL if the structure is too small to have the field * (or NULL if the structure is NULL). * @@ -597,9 +586,9 @@ typedef struct Tk_ClassProcs { (((procs)->size <= Tk_Offset(Tk_ClassProcs, which)) ? NULL:(procs)->which)) /* - * Each geometry manager (the packer, the placer, etc.) is represented - * by a structure of the following form, which indicates procedures - * to invoke in the geometry manager to carry out certain functions. + * Each geometry manager (the packer, the placer, etc.) is represented by a + * structure of the following form, which indicates procedures to invoke in + * the geometry manager to carry out certain functions. */ typedef void (Tk_GeomRequestProc) _ANSI_ARGS_((ClientData clientData, @@ -608,17 +597,17 @@ typedef void (Tk_GeomLostSlaveProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin)); typedef struct Tk_GeomMgr { - char *name; /* Name of the geometry manager (command - * used to invoke it, or name of widget - * class that allows embedded widgets). */ + const char *name; /* Name of the geometry manager (command used + * to invoke it, or name of widget class that + * allows embedded widgets). */ Tk_GeomRequestProc *requestProc; /* Procedure to invoke when a slave's * requested geometry changes. */ Tk_GeomLostSlaveProc *lostSlaveProc; - /* Procedure to invoke when a slave is - * taken away from one geometry manager - * by another. NULL means geometry manager - * doesn't care when slaves are lost. */ + /* Procedure to invoke when a slave is taken + * away from one geometry manager by another. + * NULL means geometry manager doesn't care + * when slaves are lost. */ } Tk_GeomMgr; /* @@ -637,6 +626,7 @@ typedef struct Tk_GeomMgr { * *--------------------------------------------------------------------------- */ + #define VirtualEvent (LASTEvent) #define ActivateNotify (LASTEvent + 1) #define DeactivateNotify (LASTEvent + 2) @@ -649,38 +639,47 @@ typedef struct Tk_GeomMgr { #define VirtualEventMask (1L << 30) #define TK_LASTEVENT (LASTEvent + 4) - /* * A virtual event shares most of its fields with the XKeyEvent and - * XButtonEvent structures. 99% of the time a virtual event will be - * an abstraction of a key or button event, so this structure provides - * the most information to the user. The only difference is the changing - * of the detail field for a virtual event so that it holds the name of the - * virtual event being triggered. + * XButtonEvent structures. 99% of the time a virtual event will be an + * abstraction of a key or button event, so this structure provides the most + * information to the user. The only difference is the changing of the detail + * field for a virtual event so that it holds the name of the virtual event + * being triggered. + * + * When using this structure, you should ensure that you zero out all the + * fields first using memset() or bzero(). */ typedef struct { int type; - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* True if this came from a SendEvent request */ - Display *display; /* Display the event was read from */ - Window event; /* Window on which event was requested. */ - Window root; /* root window that the event occured on */ - Window subwindow; /* child window */ - Time time; /* milliseconds */ - int x, y; /* pointer x, y coordinates in event window */ - int x_root, y_root; /* coordinates relative to root */ - unsigned int state; /* key or button mask */ - Tk_Uid name; /* Name of virtual event. */ - Bool same_screen; /* same screen flag */ + unsigned long serial; /* # of last request processed by server. */ + Bool send_event; /* True if this came from a SendEvent + * request. */ + Display *display; /* Display the event was read from. */ + Window event; /* Window on which event was requested. */ + Window root; /* Root window that the event occured on. */ + Window subwindow; /* Child window. */ + Time time; /* Milliseconds. */ + int x, y; /* Pointer x, y coordinates in event + * window. */ + int x_root, y_root; /* Coordinates relative to root. */ + unsigned int state; /* Key or button mask */ + Tk_Uid name; /* Name of virtual event. */ + Bool same_screen; /* Same screen flag. */ + Tcl_Obj *user_data; /* Application-specific data reference; Tk + * will decrement the reference count *once* + * when it has finished processing the + * event. */ } XVirtualEvent; typedef struct { int type; - unsigned long serial; /* # of last request processed by server */ - Bool send_event; /* True if this came from a SendEvent request */ - Display *display; /* Display the event was read from */ - Window window; /* Window in which event occurred. */ + unsigned long serial; /* # of last request processed by server. */ + Bool send_event; /* True if this came from a SendEvent + * request. */ + Display *display; /* Display the event was read from. */ + Window window; /* Window in which event occurred. */ } XActivateDeactivateEvent; typedef XActivateDeactivateEvent XActivateEvent; typedef XActivateDeactivateEvent XDeactivateEvent; @@ -688,29 +687,29 @@ typedef XActivateDeactivateEvent XDeactivateEvent; /* *-------------------------------------------------------------- * - * Macros for querying Tk_Window structures. See the - * manual entries for documentation. + * Macros for querying Tk_Window structures. See the manual entries for + * documentation. * *-------------------------------------------------------------- */ -#define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display) -#define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum) -#define Tk_Screen(tkwin) (ScreenOfDisplay(Tk_Display(tkwin), \ - Tk_ScreenNumber(tkwin))) -#define Tk_Depth(tkwin) (((Tk_FakeWin *) (tkwin))->depth) -#define Tk_Visual(tkwin) (((Tk_FakeWin *) (tkwin))->visual) -#define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window) -#define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName) -#define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid) -#define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid) -#define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x) -#define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y) -#define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width) +#define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display) +#define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum) +#define Tk_Screen(tkwin) \ + (ScreenOfDisplay(Tk_Display(tkwin), Tk_ScreenNumber(tkwin))) +#define Tk_Depth(tkwin) (((Tk_FakeWin *) (tkwin))->depth) +#define Tk_Visual(tkwin) (((Tk_FakeWin *) (tkwin))->visual) +#define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window) +#define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName) +#define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid) +#define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid) +#define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x) +#define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y) +#define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width) #define Tk_Height(tkwin) \ (((Tk_FakeWin *) (tkwin))->changes.height) -#define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes) -#define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts) +#define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes) +#define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts) #define Tk_IsEmbedded(tkwin) \ (((Tk_FakeWin *) (tkwin))->flags & TK_EMBEDDED) #define Tk_IsContainer(tkwin) \ @@ -725,8 +724,8 @@ typedef XActivateDeactivateEvent XDeactivateEvent; (((Tk_FakeWin *) (tkwin))->flags & TK_WIN_MANAGED) #define Tk_TopWinHierarchy(tkwin) \ (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_HIERARCHY) -#define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth) -#define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight) +#define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth) +#define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight) /* Tk_InternalBorderWidth is deprecated */ #define Tk_InternalBorderWidth(tkwin) \ (((Tk_FakeWin *) (tkwin))->internalBorderLeft) @@ -738,20 +737,19 @@ typedef XActivateDeactivateEvent XDeactivateEvent; (((Tk_FakeWin *) (tkwin))->internalBorderTop) #define Tk_InternalBorderBottom(tkwin) \ (((Tk_FakeWin *) (tkwin))->internalBorderBottom) -#define Tk_MinReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->minReqWidth) -#define Tk_MinReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->minReqHeight) -#define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr) -#define Tk_Colormap(tkwin) (((Tk_FakeWin *) (tkwin))->atts.colormap) +#define Tk_MinReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->minReqWidth) +#define Tk_MinReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->minReqHeight) +#define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr) +#define Tk_Colormap(tkwin) (((Tk_FakeWin *) (tkwin))->atts.colormap) /* - * The structure below is needed by the macros above so that they can - * access the fields of a Tk_Window. The fields not needed by the macros - * are declared as "dummyX". The structure has its own type in order to - * prevent applications from accessing Tk_Window fields except using - * official macros. WARNING!! The structure definition must be kept - * consistent with the TkWindow structure in tkInt.h. If you change one, - * then change the other. See the declaration in tkInt.h for - * documentation on what the fields are used for internally. + * The structure below is needed by the macros above so that they can access + * the fields of a Tk_Window. The fields not needed by the macros are declared + * as "dummyX". The structure has its own type in order to prevent apps from + * accessing Tk_Window fields except using official macros. WARNING!! The + * structure definition must be kept consistent with the TkWindow structure in + * tkInt.h. If you change one, then change the other. See the declaration in + * tkInt.h for documentation on what the fields are used for internally. */ typedef struct Tk_FakeWin { @@ -806,69 +804,63 @@ typedef struct Tk_FakeWin { * TK_ALREADY_DEAD: 1 means the window is in the process of * being destroyed already. * TK_NEED_CONFIG_NOTIFY: 1 means that the window has been reconfigured - * before it was made to exist. At the time of + * before it was made to exist. At the time of * making it exist a ConfigureNotify event needs * to be generated. - * TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for - * details. + * TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for details * TK_CHECKED_IC: 1 means we've already tried to get an input - * context for this window; if the ic field - * is NULL it means that there isn't a context - * for the field. + * context for this window; if the ic field is + * NULL it means that there isn't a context for + * the field. * TK_DONT_DESTROY_WINDOW: 1 means that Tk_DestroyWindow should not * invoke XDestroyWindow to destroy this widget's - * X window. The flag is set when the window - * has already been destroyed elsewhere (e.g. - * by another application) or when it will be - * destroyed later (e.g. by destroying its - * parent). + * X window. The flag is set when the window has + * already been destroyed elsewhere (e.g. by + * another application) or when it will be + * destroyed later (e.g. by destroying its parent) * TK_WM_COLORMAP_WINDOW: 1 means that this window has at some time * appeared in the WM_COLORMAP_WINDOWS property - * for its toplevel, so we have to remove it - * from that property if the window is - * deleted and the toplevel isn't. + * for its toplevel, so we have to remove it from + * that property if the window is deleted and the + * toplevel isn't. * TK_EMBEDDED: 1 means that this window (which must be a * toplevel) is not a free-standing window but * rather is embedded in some other application. * TK_CONTAINER: 1 means that this window is a container, and - * that some other application (either in - * this process or elsewhere) may be - * embedding itself inside the window. + * that some other application (either in this + * process or elsewhere) may be embedding itself + * inside the window. * TK_BOTH_HALVES: 1 means that this window is used for - * application embedding (either as - * container or embedded application), and - * both the containing and embedded halves - * are associated with windows in this - * particular process. + * application embedding (either as container or + * embedded application), and both the containing + * and embedded halves are associated with + * windows in this particular process. * TK_DEFER_MODAL: 1 means that this window has deferred a modal * loop until all of the bindings for the current * event have been invoked. - * TK_WRAPPER: 1 means that this window is the extra - * wrapper window created around a toplevel - * to hold the menubar under Unix. See - * tkUnixWm.c for more information. + * TK_WRAPPER: 1 means that this window is the extra wrapper + * window created around a toplevel to hold the + * menubar under Unix. See tkUnixWm.c for more + * information. * TK_REPARENTED: 1 means that this window has been reparented * so that as far as the window system is - * concerned it isn't a child of its Tk - * parent. Initially this is used only for - * special Unix menubar windows. + * concerned it isn't a child of its Tk parent. + * Initially this is used only for special Unix + * menubar windows. * TK_ANONYMOUS_WINDOW: 1 means that this window has no name, and is * thus not accessible from Tk. * TK_HAS_WRAPPER 1 means that this window has a wrapper window - * TK_WIN_MANAGED 1 means that this window is a child of the - * root window, and is managed by the window - * manager. - * TK_TOP_HIERARCHY 1 means this window is at the top of a - * physical window hierarchy within this - * process, i.e. the window's parent - * either doesn't exist or is not owned by - * this Tk application. - * TK_PROP_PROPCHANGE 1 means that PropertyNotify events in - * this window's children should propagate - * up to this window. + * TK_WIN_MANAGED 1 means that this window is a child of the root + * window, and is managed by the window manager. + * TK_TOP_HIERARCHY 1 means this window is at the top of a physical + * window hierarchy within this process, i.e. the + * window's parent either doesn't exist or is not + * owned by this Tk application. + * TK_PROP_PROPCHANGE 1 means that PropertyNotify events in the + * window's children should propagate up to this + * window. */ - #define TK_MAPPED 1 #define TK_TOP_LEVEL 2 #define TK_ALREADY_DEAD 4 @@ -892,8 +884,7 @@ typedef struct Tk_FakeWin { /* *-------------------------------------------------------------- * - * Procedure prototypes and structures used for defining new canvas - * items: + * Procedure prototypes and structures used for defining new canvas items: * *-------------------------------------------------------------- */ @@ -914,54 +905,48 @@ typedef struct Tk_SmoothMethod { } Tk_SmoothMethod; /* - * For each item in a canvas widget there exists one record with - * the following structure. Each actual item is represented by - * a record with the following stuff at its beginning, plus additional - * type-specific stuff after that. + * For each item in a canvas widget there exists one record with the following + * structure. Each actual item is represented by a record with the following + * stuff at its beginning, plus additional type-specific stuff after that. */ #define TK_TAG_SPACE 3 -typedef struct Tk_Item { - int id; /* Unique identifier for this item - * (also serves as first tag for - * item). */ - struct Tk_Item *nextPtr; /* Next in display list of all - * items in this canvas. Later items - * in list are drawn on top of earlier - * ones. */ - Tk_Uid staticTagSpace[TK_TAG_SPACE];/* Built-in space for limited # of - * tags. */ - Tk_Uid *tagPtr; /* Pointer to array of tags. Usually - * points to staticTagSpace, but - * may point to malloc-ed space if - * there are lots of tags. */ - int tagSpace; /* Total amount of tag space available - * at tagPtr. */ - int numTags; /* Number of tag slots actually used - * at *tagPtr. */ - struct Tk_ItemType *typePtr; /* Table of procedures that implement - * this type of item. */ - int x1, y1, x2, y2; /* Bounding box for item, in integer - * canvas units. Set by item-specific - * code and guaranteed to contain every - * pixel drawn in item. Item area - * includes x1 and y1 but not x2 - * and y2. */ - struct Tk_Item *prevPtr; /* Previous in display list of all - * items in this canvas. Later items - * in list are drawn just below earlier - * ones. */ - Tk_State state; /* state of item */ - char *reserved1; /* reserved for future use */ - int redraw_flags; /* some flags used in the canvas */ +typedef struct Tk_Item { + int id; /* Unique identifier for this item (also + * serves as first tag for item). */ + struct Tk_Item *nextPtr; /* Next in display list of all items in this + * canvas. Later items in list are drawn on + * top of earlier ones. */ + Tk_Uid staticTagSpace[TK_TAG_SPACE]; + /* Built-in space for limited # of tags. */ + Tk_Uid *tagPtr; /* Pointer to array of tags. Usually points to + * staticTagSpace, but may point to malloc-ed + * space if there are lots of tags. */ + int tagSpace; /* Total amount of tag space available at + * tagPtr. */ + int numTags; /* Number of tag slots actually used at + * *tagPtr. */ + struct Tk_ItemType *typePtr;/* Table of procedures that implement this + * type of item. */ + int x1, y1, x2, y2; /* Bounding box for item, in integer canvas + * units. Set by item-specific code and + * guaranteed to contain every pixel drawn in + * item. Item area includes x1 and y1 but not + * x2 and y2. */ + struct Tk_Item *prevPtr; /* Previous in display list of all items in + * this canvas. Later items in list are drawn + * just below earlier ones. */ + Tk_State state; /* State of item. */ + char *reserved1; /* reserved for future use */ + int redraw_flags; /* Some flags used in the canvas */ /* *------------------------------------------------------------------ - * Starting here is additional type-specific stuff; see the - * declarations for individual types to see what is part of - * each type. The actual space below is determined by the - * "itemInfoSize" of the type's Tk_ItemType record. + * Starting here is additional type-specific stuff; see the declarations + * for individual types to see what is part of each type. The actual space + * below is determined by the "itemInfoSize" of the type's Tk_ItemType + * record. *------------------------------------------------------------------ */ } Tk_Item; @@ -969,20 +954,19 @@ typedef struct Tk_Item { /* * Flag bits for canvases (redraw_flags): * - * TK_ITEM_STATE_DEPENDANT - 1 means that object needs to be - * redrawn if the canvas state changes. - * TK_ITEM_DONT_REDRAW - 1 means that the object redraw is already - * been prepared, so the general canvas code - * doesn't need to do that any more. + * TK_ITEM_STATE_DEPENDANT - 1 means that object needs to be redrawn if the + * canvas state changes. + * TK_ITEM_DONT_REDRAW - 1 means that the object redraw is already been + * prepared, so the general canvas code doesn't + * need to do that any more. */ #define TK_ITEM_STATE_DEPENDANT 1 #define TK_ITEM_DONT_REDRAW 2 /* - * Records of the following type are used to describe a type of - * item (e.g. lines, circles, etc.) that can form part of a - * canvas widget. + * Records of the following type are used to describe a type of item (e.g. + * lines, circles, etc.) that can form part of a canvas widget. */ #ifdef USE_OLD_CANVAS @@ -998,13 +982,13 @@ typedef int Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp, #else typedef int Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, - Tcl_Obj *CONST objv[])); + Tcl_Obj *const objv[])); typedef int Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, - Tcl_Obj *CONST objv[], int flags)); + Tcl_Obj *const objv[], int flags)); typedef int Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, - Tcl_Obj *CONST argv[])); + Tcl_Obj *const argv[])); #endif typedef void Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, Display *display)); @@ -1038,100 +1022,103 @@ typedef void Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas, #ifndef __NO_OLD_CONFIG typedef struct Tk_ItemType { - char *name; /* The name of this type of item, such - * as "line". */ - int itemSize; /* Total amount of space needed for - * item's record. */ - Tk_ItemCreateProc *createProc; /* Procedure to create a new item of - * this type. */ - Tk_ConfigSpec *configSpecs; /* Pointer to array of configuration - * specs for this type. Used for - * returning configuration info. */ - Tk_ItemConfigureProc *configProc; /* Procedure to call to change - * configuration options. */ - Tk_ItemCoordProc *coordProc; /* Procedure to call to get and set - * the item's coordinates. */ - Tk_ItemDeleteProc *deleteProc; /* Procedure to delete existing item of - * this type. */ - Tk_ItemDisplayProc *displayProc; /* Procedure to display items of - * this type. */ - int alwaysRedraw; /* Non-zero means displayProc should - * be called even when the item has - * been moved off-screen. */ - Tk_ItemPointProc *pointProc; /* Computes distance from item to - * a given point. */ - Tk_ItemAreaProc *areaProc; /* Computes whether item is inside, - * outside, or overlapping an area. */ + char *name; /* The name of this type of item, such as + * "line". */ + int itemSize; /* Total amount of space needed for item's + * record. */ + Tk_ItemCreateProc *createProc; + /* Procedure to create a new item of this + * type. */ + Tk_ConfigSpec *configSpecs; /* Pointer to array of configuration specs for + * this type. Used for returning configuration + * info. */ + Tk_ItemConfigureProc *configProc; + /* Procedure to call to change configuration + * options. */ + Tk_ItemCoordProc *coordProc;/* Procedure to call to get and set the item's + * coordinates. */ + Tk_ItemDeleteProc *deleteProc; + /* Procedure to delete existing item of this + * type. */ + Tk_ItemDisplayProc *displayProc; + /* Procedure to display items of this type. */ + int alwaysRedraw; /* Non-zero means displayProc should be called + * even when the item has been moved + * off-screen. */ + Tk_ItemPointProc *pointProc;/* Computes distance from item to a given + * point. */ + Tk_ItemAreaProc *areaProc; /* Computes whether item is inside, outside, + * or overlapping an area. */ Tk_ItemPostscriptProc *postscriptProc; - /* Procedure to write a Postscript - * description for items of this - * type. */ - Tk_ItemScaleProc *scaleProc; /* Procedure to rescale items of - * this type. */ - Tk_ItemTranslateProc *translateProc;/* Procedure to translate items of - * this type. */ - Tk_ItemIndexProc *indexProc; /* Procedure to determine index of - * indicated character. NULL if - * item doesn't support indexing. */ - Tk_ItemCursorProc *icursorProc; /* Procedure to set insert cursor pos. - * to just before a given position. */ - Tk_ItemSelectionProc *selectionProc;/* Procedure to return selection (in - * STRING format) when it is in this - * item. */ - Tk_ItemInsertProc *insertProc; /* Procedure to insert something into - * an item. */ - Tk_ItemDCharsProc *dCharsProc; /* Procedure to delete characters - * from an item. */ - struct Tk_ItemType *nextPtr; /* Used to link types together into - * a list. */ - char *reserved1; /* Reserved for future extension. */ - int reserved2; /* Carefully compatible with */ - char *reserved3; /* Jan Nijtmans dash patch */ + /* Procedure to write a Postscript description + * for items of this type. */ + Tk_ItemScaleProc *scaleProc;/* Procedure to rescale items of this type. */ + Tk_ItemTranslateProc *translateProc; + /* Procedure to translate items of this + * type. */ + Tk_ItemIndexProc *indexProc;/* Procedure to determine index of indicated + * character. NULL if item doesn't support + * indexing. */ + Tk_ItemCursorProc *icursorProc; + /* Procedure to set insert cursor posn to just + * before a given position. */ + Tk_ItemSelectionProc *selectionProc; + /* Procedure to return selection (in STRING + * format) when it is in this item. */ + Tk_ItemInsertProc *insertProc; + /* Procedure to insert something into an + * item. */ + Tk_ItemDCharsProc *dCharsProc; + /* Procedure to delete characters from an + * item. */ + struct Tk_ItemType *nextPtr;/* Used to link types together into a list. */ + char *reserved1; /* Reserved for future extension. */ + int reserved2; /* Carefully compatible with */ + char *reserved3; /* Jan Nijtmans dash patch */ char *reserved4; } Tk_ItemType; #endif /* - * The following structure provides information about the selection and - * the insertion cursor. It is needed by only a few items, such as - * those that display text. It is shared by the generic canvas code - * and the item-specific code, but most of the fields should be written - * only by the canvas generic code. + * The following structure provides information about the selection and the + * insertion cursor. It is needed by only a few items, such as those that + * display text. It is shared by the generic canvas code and the item-specific + * code, but most of the fields should be written only by the canvas generic + * code. */ typedef struct Tk_CanvasTextInfo { Tk_3DBorder selBorder; /* Border and background for selected - * characters. Read-only to items.*/ - int selBorderWidth; /* Width of border around selection. - * Read-only to items. */ + * characters. Read-only to items.*/ + int selBorderWidth; /* Width of border around selection. Read-only + * to items. */ XColor *selFgColorPtr; /* Foreground color for selected text. * Read-only to items. */ - Tk_Item *selItemPtr; /* Pointer to selected item. NULL means - * selection isn't in this canvas. - * Writable by items. */ + Tk_Item *selItemPtr; /* Pointer to selected item. NULL means + * selection isn't in this canvas. Writable by + * items. */ int selectFirst; /* Character index of first selected - * character. Writable by items. */ - int selectLast; /* Character index of last selected - * character. Writable by items. */ - Tk_Item *anchorItemPtr; /* Item corresponding to "selectAnchor": - * not necessarily selItemPtr. Read-only - * to items. */ - int selectAnchor; /* Character index of fixed end of - * selection (i.e. "select to" operation will - * use this as one end of the selection). + * character. Writable by items. */ + int selectLast; /* Character index of last selected character. * Writable by items. */ + Tk_Item *anchorItemPtr; /* Item corresponding to "selectAnchor": not + * necessarily selItemPtr. Read-only to + * items. */ + int selectAnchor; /* Character index of fixed end of selection + * (i.e. "select to" operation will use this + * as one end of the selection). Writable by + * items. */ Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion - * cursor. Read-only to items. */ - int insertWidth; /* Total width of insertion cursor. Read-only + * cursor. Read-only to items. */ + int insertWidth; /* Total width of insertion cursor. Read-only * to items. */ int insertBorderWidth; /* Width of 3-D border around insert cursor. * Read-only to items. */ - Tk_Item *focusItemPtr; /* Item that currently has the input focus, - * or NULL if no such item. Read-only to - * items. */ + Tk_Item *focusItemPtr; /* Item that currently has the input focus, or + * NULL if no such item. Read-only to items. */ int gotFocus; /* Non-zero means that the canvas widget has - * the input focus. Read-only to items.*/ + * the input focus. Read-only to items.*/ int cursorOn; /* Non-zero means that an insertion cursor * should be displayed in focusItemPtr. * Read-only to items.*/ @@ -1150,7 +1137,7 @@ typedef struct Tk_Dash { } Tk_Dash; typedef struct Tk_TSOffset { - int flags; /* flags; see below for possible values */ + int flags; /* Flags; see below for possible values */ int xoffset; /* x offset */ int yoffset; /* y offset */ } Tk_TSOffset; @@ -1173,22 +1160,23 @@ typedef struct Tk_Outline { double width; /* Width of outline. */ double activeWidth; /* Width of outline. */ double disabledWidth; /* Width of outline. */ - int offset; /* Dash offset */ - Tk_Dash dash; /* Dash pattern */ - Tk_Dash activeDash; /* Dash pattern if state is active*/ - Tk_Dash disabledDash; /* Dash pattern if state is disabled*/ - VOID *reserved1; /* reserved for future expansion */ + int offset; /* Dash offset. */ + Tk_Dash dash; /* Dash pattern. */ + Tk_Dash activeDash; /* Dash pattern if state is active. */ + Tk_Dash disabledDash; /* Dash pattern if state is disabled. */ + VOID *reserved1; /* Reserved for future expansion. */ VOID *reserved2; VOID *reserved3; - Tk_TSOffset tsoffset; /* stipple offset for outline*/ + Tk_TSOffset tsoffset; /* Stipple offset for outline. */ XColor *color; /* Outline color. */ XColor *activeColor; /* Outline color if state is active. */ XColor *disabledColor; /* Outline color if state is disabled. */ Pixmap stipple; /* Outline Stipple pattern. */ - Pixmap activeStipple; /* Outline Stipple pattern if state is active. */ - Pixmap disabledStipple; /* Outline Stipple pattern if state is disabled. */ + Pixmap activeStipple; /* Outline Stipple pattern if state is + * active. */ + Pixmap disabledStipple; /* Outline Stipple pattern if state is + * disabled. */ } Tk_Outline; - /* *-------------------------------------------------------------- @@ -1205,7 +1193,7 @@ typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp, Tk_ImageMaster master, ClientData *masterDataPtr)); #else typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp, - char *name, int objc, Tcl_Obj *CONST objv[], Tk_ImageType *typePtr, + char *name, int objc, Tcl_Obj *const objv[], Tk_ImageType *typePtr, Tk_ImageMaster master, ClientData *masterDataPtr)); #endif typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin, @@ -1224,39 +1212,37 @@ typedef int (Tk_ImagePostscriptProc) _ANSI_ARGS_((ClientData clientData, int x, int y, int width, int height, int prepass)); /* - * The following structure represents a particular type of image - * (bitmap, xpm image, etc.). It provides information common to - * all images of that type, such as the type name and a collection - * of procedures in the image manager that respond to various - * events. Each image manager is represented by one of these - * structures. + * The following structure represents a particular type of image (bitmap, xpm + * image, etc.). It provides information common to all images of that type, + * such as the type name and a collection of procedures in the image manager + * that respond to various events. Each image manager is represented by one of + * these structures. */ struct Tk_ImageType { char *name; /* Name of image type. */ Tk_ImageCreateProc *createProc; - /* Procedure to call to create a new image - * of this type. */ + /* Procedure to call to create a new image of + * this type. */ Tk_ImageGetProc *getProc; /* Procedure to call the first time - * Tk_GetImage is called in a new way - * (new visual or screen). */ + * Tk_GetImage is called in a new way (new + * visual or screen). */ Tk_ImageDisplayProc *displayProc; /* Call to draw image, in response to * Tk_RedrawImage calls. */ - Tk_ImageFreeProc *freeProc; /* Procedure to call whenever Tk_FreeImage - * is called to release an instance of an + Tk_ImageFreeProc *freeProc; /* Procedure to call whenever Tk_FreeImage is + * called to release an instance of an * image. */ Tk_ImageDeleteProc *deleteProc; - /* Procedure to call to delete image. It - * will not be called until after freeProc - * has been called for each instance of the - * image. */ + /* Procedure to call to delete image. It will + * not be called until after freeProc has been + * called for each instance of the image. */ Tk_ImagePostscriptProc *postscriptProc; /* Procedure to call to produce postscript * output for the image. */ struct Tk_ImageType *nextPtr; /* Next in list of all image types currently - * known. Filled in by Tk, not by image + * known. Filled in by Tk, not by image * manager. */ char *reserved; /* reserved for future expansion */ }; @@ -1270,8 +1256,8 @@ struct Tk_ImageType { */ /* - * The following type is used to identify a particular photo image - * to be manipulated: + * The following type is used to identify a particular photo image to be + * manipulated: */ typedef void *Tk_PhotoHandle; @@ -1282,29 +1268,28 @@ typedef void *Tk_PhotoHandle; typedef struct Tk_PhotoImageBlock { unsigned char *pixelPtr; /* Pointer to the first pixel. */ - int width; /* Width of block, in pixels. */ - int height; /* Height of block, in pixels. */ - int pitch; /* Address difference between corresponding + int width; /* Width of block, in pixels. */ + int height; /* Height of block, in pixels. */ + int pitch; /* Address difference between corresponding * pixels in successive lines. */ - int pixelSize; /* Address difference between successive + int pixelSize; /* Address difference between successive * pixels in the same line. */ - int offset[4]; /* Address differences between the red, green, + int offset[4]; /* Address differences between the red, green, * blue and alpha components of the pixel and * the pixel as a whole. */ } Tk_PhotoImageBlock; /* - * The following values control how blocks are combined into photo - * images when the alpha component of a pixel is not 255, a.k.a. the - * compositing rule. + * The following values control how blocks are combined into photo images when + * the alpha component of a pixel is not 255, a.k.a. the compositing rule. */ #define TK_PHOTO_COMPOSITE_OVERLAY 0 #define TK_PHOTO_COMPOSITE_SET 1 /* - * Procedure prototypes and structures used in reading and - * writing photo images: + * Procedure prototypes and structures used in reading and writing photo + * images: */ typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat; @@ -1327,68 +1312,61 @@ typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp, Tk_PhotoImageBlock *blockPtr)); #else typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((Tcl_Channel chan, - CONST char *fileName, Tcl_Obj *format, int *widthPtr, + const char *fileName, Tcl_Obj *format, int *widthPtr, int *heightPtr, Tcl_Interp *interp)); typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((Tcl_Obj *dataObj, Tcl_Obj *format, int *widthPtr, int *heightPtr, Tcl_Interp *interp)); typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp, - Tcl_Channel chan, CONST char *fileName, Tcl_Obj *format, + Tcl_Channel chan, const char *fileName, Tcl_Obj *format, Tk_PhotoHandle imageHandle, int destX, int destY, int width, int height, int srcX, int srcY)); typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *dataObj, Tcl_Obj *format, Tk_PhotoHandle imageHandle, int destX, int destY, int width, int height, int srcX, int srcY)); typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp, - CONST char *fileName, Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr)); + const char *fileName, Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr)); typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *format, Tk_PhotoImageBlock *blockPtr)); #endif /* - * The following structure represents a particular file format for - * storing images (e.g., PPM, GIF, JPEG, etc.). It provides information - * to allow image files of that format to be recognized and read into - * a photo image. + * The following structure represents a particular file format for storing + * images (e.g., PPM, GIF, JPEG, etc.). It provides information to allow image + * files of that format to be recognized and read into a photo image. */ struct Tk_PhotoImageFormat { char *name; /* Name of image file format */ Tk_ImageFileMatchProc *fileMatchProc; - /* Procedure to call to determine whether - * an image file matches this format. */ + /* Procedure to call to determine whether an + * image file matches this format. */ Tk_ImageStringMatchProc *stringMatchProc; - /* Procedure to call to determine whether - * the data in a string matches this format. */ + /* Procedure to call to determine whether the + * data in a string matches this format. */ Tk_ImageFileReadProc *fileReadProc; - /* Procedure to call to read data from - * an image file into a photo image. */ + /* Procedure to call to read data from an + * image file into a photo image. */ Tk_ImageStringReadProc *stringReadProc; - /* Procedure to call to read data from - * a string into a photo image. */ + /* Procedure to call to read data from a + * string into a photo image. */ Tk_ImageFileWriteProc *fileWriteProc; - /* Procedure to call to write data from - * a photo image to a file. */ + /* Procedure to call to write data from a + * photo image to a file. */ Tk_ImageStringWriteProc *stringWriteProc; /* Procedure to call to obtain a string * representation of the data in a photo * image.*/ struct Tk_PhotoImageFormat *nextPtr; /* Next in list of all photo image formats - * currently known. Filled in by Tk, not - * by image format handler. */ + * currently known. Filled in by Tk, not by + * image format handler. */ }; -EXTERN void Tk_CreateOldImageType _ANSI_ARGS_(( - Tk_ImageType *typePtr)); -EXTERN void Tk_CreateOldPhotoImageFormat _ANSI_ARGS_(( - Tk_PhotoImageFormat *formatPtr)); - -#if !defined(USE_TK_STUBS) && defined(USE_OLD_IMAGE) +#ifdef USE_OLD_IMAGE #define Tk_CreateImageType Tk_CreateOldImageType #define Tk_CreatePhotoImageFormat Tk_CreateOldPhotoImageFormat #endif - /* *-------------------------------------------------------------- @@ -1401,6 +1379,7 @@ EXTERN void Tk_CreateOldPhotoImageFormat _ANSI_ARGS_(( /* * Style support version tag. */ + #define TK_STYLE_VERSION_1 0x1 #define TK_STYLE_VERSION TK_STYLE_VERSION_1 @@ -1410,16 +1389,16 @@ EXTERN void Tk_CreateOldPhotoImageFormat _ANSI_ARGS_(( */ typedef void (Tk_GetElementSizeProc) _ANSI_ARGS_((ClientData clientData, - char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin, + char *recordPtr, const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, int width, int height, int inner, int *widthPtr, int *heightPtr)); typedef void (Tk_GetElementBoxProc) _ANSI_ARGS_((ClientData clientData, - char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin, + char *recordPtr, const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr)); typedef int (Tk_GetElementBorderWidthProc) _ANSI_ARGS_((ClientData clientData, - char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin)); + char *recordPtr, const Tk_OptionSpec **optionsPtr, Tk_Window tkwin)); typedef void (Tk_DrawElementProc) _ANSI_ARGS_((ClientData clientData, - char *recordPtr, CONST Tk_OptionSpec **optionsPtr, Tk_Window tkwin, + char *recordPtr, const Tk_OptionSpec **optionsPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state)); typedef struct Tk_ElementOptionSpec { @@ -1434,22 +1413,18 @@ typedef struct Tk_ElementSpec { Tk_ElementOptionSpec *options; /* List of required options. Last one's name * must be NULL. */ - - /* - * Hooks - */ - Tk_GetElementSizeProc *getSize; - /* Compute the external (resp. internal) size of - * the element from its desired internal (resp. - * external) size. */ + /* Compute the external (resp. internal) size + * of the element from its desired internal + * (resp. external) size. */ Tk_GetElementBoxProc *getBox; /* Compute the inscribed or bounding boxes * within a given area. */ Tk_GetElementBorderWidthProc *getBorderWidth; /* Return the element's internal border width. * Mostly useful for widgets. */ - Tk_DrawElementProc *draw; /* Draw the element in the given bounding box.*/ + Tk_DrawElementProc *draw; /* Draw the element in the given bounding + * box. */ } Tk_ElementSpec; /* @@ -1464,9 +1439,9 @@ typedef struct Tk_ElementSpec { /* *-------------------------------------------------------------- * - * The definitions below provide backward compatibility for - * functions and types related to event handling that used to - * be in Tk but have moved to Tcl. + * The definitions below provide backward compatibility for functions and + * types related to event handling that used to be in Tk but have moved to + * Tcl. * *-------------------------------------------------------------- */ @@ -1509,23 +1484,20 @@ typedef struct Tk_ElementSpec { #define Tk_Main(argc, argv, proc) \ Tk_MainEx(argc, argv, proc, Tcl_CreateInterp()) -CONST char *Tk_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, char *version, int exact)); +const char * Tk_InitStubs _ANSI_ARGS_((Tcl_Interp *interp, + const char *version, int exact)); +const char * Tk_PkgInitStubsCheck _ANSI_ARGS_((Tcl_Interp *interp, + const char *version, int exact)); #ifndef USE_TK_STUBS #define Tk_InitStubs(interp, version, exact) \ - Tcl_PkgRequire(interp, "Tk", version, exact) + Tk_PkgInitStubsCheck(interp, version, exact) #endif -void Tk_InitImageArgs _ANSI_ARGS_((Tcl_Interp *interp, int argc, char ***argv)); - -#if !defined(USE_TK_STUBS) || !defined(USE_OLD_IMAGE) - #define Tk_InitImageArgs(interp, argc, argv) /**/ -#endif - /* *-------------------------------------------------------------- @@ -1551,7 +1523,6 @@ typedef Tk_RestrictAction (Tk_RestrictProc) _ANSI_ARGS_(( typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, int offset, char *buffer, int maxBytes)); - /* *-------------------------------------------------------------- * @@ -1563,12 +1534,11 @@ typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, #include "tkDecls.h" /* - * Allow users to say that they don't want to alter their source to - * add the extra argument to Tk_PhotoPutBlock(); DO NOT DEFINE THIS - * WHEN BUILDING TK. + * Allow users to say that they don't want to alter their source to add extra + * arguments to Tk_PhotoPutBlock() et al; DO NOT DEFINE THIS WHEN BUILDING TK. * - * This goes after the inclusion of the stubbed-decls so that the - * declarations of what is actually there can be correct. + * This goes after the inclusion of the stubbed-decls so that the declarations + * of what is actually there can be correct. */ #ifdef USE_COMPOSITELESS_PHOTO_PUT_BLOCK @@ -1580,13 +1550,34 @@ typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, # undef Tk_PhotoPutZoomedBlock # endif # define Tk_PhotoPutZoomedBlock Tk_PhotoPutZoomedBlock_NoComposite +# define USE_PANIC_ON_PHOTO_ALLOC_FAILURE +#else /* !USE_COMPOSITELESS_PHOTO_PUT_BLOCK */ +# ifdef USE_PANIC_ON_PHOTO_ALLOC_FAILURE +# ifdef Tk_PhotoPutBlock +# undef Tk_PhotoPutBlock +# endif +# define Tk_PhotoPutBlock Tk_PhotoPutBlock_Panic +# ifdef Tk_PhotoPutZoomedBlock +# undef Tk_PhotoPutZoomedBlock +# endif +# define Tk_PhotoPutZoomedBlock Tk_PhotoPutZoomedBlock_Panic +# endif /* USE_PANIC_ON_PHOTO_ALLOC_FAILURE */ #endif /* USE_COMPOSITELESS_PHOTO_PUT_BLOCK */ +#ifdef USE_PANIC_ON_PHOTO_ALLOC_FAILURE +# ifdef Tk_PhotoExpand +# undef Tk_PhotoExpand +# endif +# define Tk_PhotoExpand Tk_PhotoExpand_Panic +# ifdef Tk_PhotoSetSize +# undef Tk_PhotoSetSize +# endif +# define Tk_PhotoSetSize Tk_PhotoSetSize_Panic +#endif /* USE_PANIC_ON_PHOTO_ALLOC_FAILURE */ /* * Tcl commands exported by Tk: */ - #undef TCL_STORAGE_CLASS #define TCL_STORAGE_CLASS DLLIMPORT @@ -1595,9 +1586,17 @@ typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, /* * end block for C++ */ - + #ifdef __cplusplus } #endif - + #endif /* _TK */ + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ diff --git a/mingw/include/tkDecls.h b/mingw/include/tkDecls.h dissimilarity index 61% index fd5aadd2..40715015 100644 --- a/mingw/include/tkDecls.h +++ b/mingw/include/tkDecls.h @@ -1,2275 +1,3098 @@ -/* - * tkDecls.h -- - * - * Declarations of functions in the platform independent public Tcl API. - * - * Copyright (c) 1998-1999 by Scriptics Corporation. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tkDecls.h,v 1.23 2002/08/05 04:30:38 dgp Exp $ - */ - -#ifndef _TKDECLS -#define _TKDECLS - -#ifdef BUILD_tk -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLEXPORT -#endif - -/* - * WARNING: This file is automatically generated by the tools/genStubs.tcl - * script. Any modifications to the function declarations below should be made - * in the generic/tk.decls script. - */ - -/* !BEGIN!: Do not edit below this line. */ - -/* - * Exported function declarations: - */ - -/* 0 */ -EXTERN void Tk_MainLoop _ANSI_ARGS_((void)); -/* 1 */ -EXTERN XColor * Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border)); -/* 2 */ -EXTERN GC Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin, - Tk_3DBorder border, int which)); -/* 3 */ -EXTERN void Tk_3DHorizontalBevel _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, int x, - int y, int width, int height, int leftIn, - int rightIn, int topBevel, int relief)); -/* 4 */ -EXTERN void Tk_3DVerticalBevel _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, int x, - int y, int width, int height, int leftBevel, - int relief)); -/* 5 */ -EXTERN void Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, - CONST char * name, CONST char * value, - int priority)); -/* 6 */ -EXTERN void Tk_BindEvent _ANSI_ARGS_(( - Tk_BindingTable bindingTable, - XEvent * eventPtr, Tk_Window tkwin, - int numObjects, ClientData * objectPtr)); -/* 7 */ -EXTERN void Tk_CanvasDrawableCoords _ANSI_ARGS_(( - Tk_Canvas canvas, double x, double y, - short * drawableXPtr, short * drawableYPtr)); -/* 8 */ -EXTERN void Tk_CanvasEventuallyRedraw _ANSI_ARGS_(( - Tk_Canvas canvas, int x1, int y1, int x2, - int y2)); -/* 9 */ -EXTERN int Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, CONST char * str, - double * doublePtr)); -/* 10 */ -EXTERN Tk_CanvasTextInfo * Tk_CanvasGetTextInfo _ANSI_ARGS_(( - Tk_Canvas canvas)); -/* 11 */ -EXTERN int Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, Pixmap bitmap, int x, - int y, int width, int height)); -/* 12 */ -EXTERN int Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, XColor * colorPtr)); -/* 13 */ -EXTERN int Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, Tk_Font font)); -/* 14 */ -EXTERN void Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, double * coordPtr, - int numPoints)); -/* 15 */ -EXTERN int Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Canvas canvas, Pixmap bitmap)); -/* 16 */ -EXTERN double Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y)); -/* 17 */ -EXTERN void Tk_CanvasSetStippleOrigin _ANSI_ARGS_(( - Tk_Canvas canvas, GC gc)); -/* 18 */ -EXTERN int Tk_CanvasTagsParseProc _ANSI_ARGS_(( - ClientData clientData, Tcl_Interp * interp, - Tk_Window tkwin, CONST char * value, - char * widgRec, int offset)); -/* 19 */ -EXTERN char * Tk_CanvasTagsPrintProc _ANSI_ARGS_(( - ClientData clientData, Tk_Window tkwin, - char * widgRec, int offset, - Tcl_FreeProc ** freeProcPtr)); -/* 20 */ -EXTERN Tk_Window Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas)); -/* 21 */ -EXTERN void Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas, - double x, double y, short * screenXPtr, - short * screenYPtr)); -/* 22 */ -EXTERN void Tk_ChangeWindowAttributes _ANSI_ARGS_(( - Tk_Window tkwin, unsigned long valueMask, - XSetWindowAttributes * attsPtr)); -/* 23 */ -EXTERN int Tk_CharBbox _ANSI_ARGS_((Tk_TextLayout layout, - int index, int * xPtr, int * yPtr, - int * widthPtr, int * heightPtr)); -/* 24 */ -EXTERN void Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin, - Atom selection)); -/* 25 */ -EXTERN int Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Atom target, Atom format, - char* buffer)); -/* 26 */ -EXTERN int Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin)); -/* 27 */ -EXTERN int Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_ConfigSpec * specs, - char * widgRec, CONST char * argvName, - int flags)); -/* 28 */ -EXTERN int Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_ConfigSpec * specs, - char * widgRec, CONST char * argvName, - int flags)); -/* 29 */ -EXTERN int Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_ConfigSpec * specs, - int argc, CONST84 char ** argv, - char * widgRec, int flags)); -/* 30 */ -EXTERN void Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin, - unsigned int valueMask, - XWindowChanges * valuePtr)); -/* 31 */ -EXTERN Tk_TextLayout Tk_ComputeTextLayout _ANSI_ARGS_((Tk_Font font, - CONST char * str, int numChars, - int wrapLength, Tk_Justify justify, - int flags, int * widthPtr, int * heightPtr)); -/* 32 */ -EXTERN Tk_Window Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY, - Tk_Window tkwin)); -/* 33 */ -EXTERN unsigned long Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp * interp, - Tk_BindingTable bindingTable, - ClientData object, CONST char * eventStr, - CONST char * command, int append)); -/* 34 */ -EXTERN Tk_BindingTable Tk_CreateBindingTable _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 35 */ -EXTERN Tk_ErrorHandler Tk_CreateErrorHandler _ANSI_ARGS_((Display * display, - int errNum, int request, int minorCode, - Tk_ErrorProc * errorProc, - ClientData clientData)); -/* 36 */ -EXTERN void Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token, - unsigned long mask, Tk_EventProc * proc, - ClientData clientData)); -/* 37 */ -EXTERN void Tk_CreateGenericHandler _ANSI_ARGS_(( - Tk_GenericProc * proc, ClientData clientData)); -/* 38 */ -EXTERN void Tk_CreateImageType _ANSI_ARGS_(( - Tk_ImageType * typePtr)); -/* 39 */ -EXTERN void Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType * typePtr)); -/* 40 */ -EXTERN void Tk_CreatePhotoImageFormat _ANSI_ARGS_(( - Tk_PhotoImageFormat * formatPtr)); -/* 41 */ -EXTERN void Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin, - Atom selection, Atom target, - Tk_SelectionProc * proc, - ClientData clientData, Atom format)); -/* 42 */ -EXTERN Tk_Window Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window parent, CONST char * name, - CONST char * screenName)); -/* 43 */ -EXTERN Tk_Window Tk_CreateWindowFromPath _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - CONST char * pathName, - CONST char * screenName)); -/* 44 */ -EXTERN int Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, CONST char * source, - int width, int height)); -/* 45 */ -EXTERN void Tk_DefineCursor _ANSI_ARGS_((Tk_Window window, - Tk_Cursor cursor)); -/* 46 */ -EXTERN void Tk_DeleteAllBindings _ANSI_ARGS_(( - Tk_BindingTable bindingTable, - ClientData object)); -/* 47 */ -EXTERN int Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp * interp, - Tk_BindingTable bindingTable, - ClientData object, CONST char * eventStr)); -/* 48 */ -EXTERN void Tk_DeleteBindingTable _ANSI_ARGS_(( - Tk_BindingTable bindingTable)); -/* 49 */ -EXTERN void Tk_DeleteErrorHandler _ANSI_ARGS_(( - Tk_ErrorHandler handler)); -/* 50 */ -EXTERN void Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token, - unsigned long mask, Tk_EventProc * proc, - ClientData clientData)); -/* 51 */ -EXTERN void Tk_DeleteGenericHandler _ANSI_ARGS_(( - Tk_GenericProc * proc, ClientData clientData)); -/* 52 */ -EXTERN void Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name)); -/* 53 */ -EXTERN void Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin, - Atom selection, Atom target)); -/* 54 */ -EXTERN void Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin)); -/* 55 */ -EXTERN CONST84_RETURN char * Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin)); -/* 56 */ -EXTERN int Tk_DistanceToTextLayout _ANSI_ARGS_(( - Tk_TextLayout layout, int x, int y)); -/* 57 */ -EXTERN void Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, - XPoint * pointPtr, int numPoints, - int borderWidth, int leftRelief)); -/* 58 */ -EXTERN void Tk_Draw3DRectangle _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, int x, - int y, int width, int height, - int borderWidth, int relief)); -/* 59 */ -EXTERN void Tk_DrawChars _ANSI_ARGS_((Display * display, - Drawable drawable, GC gc, Tk_Font tkfont, - CONST char * source, int numBytes, int x, - int y)); -/* 60 */ -EXTERN void Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin, - GC gc, int width, Drawable drawable)); -/* 61 */ -EXTERN void Tk_DrawTextLayout _ANSI_ARGS_((Display * display, - Drawable drawable, GC gc, - Tk_TextLayout layout, int x, int y, - int firstChar, int lastChar)); -/* 62 */ -EXTERN void Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, - XPoint * pointPtr, int numPoints, - int borderWidth, int leftRelief)); -/* 63 */ -EXTERN void Tk_Fill3DRectangle _ANSI_ARGS_((Tk_Window tkwin, - Drawable drawable, Tk_3DBorder border, int x, - int y, int width, int height, - int borderWidth, int relief)); -/* 64 */ -EXTERN Tk_PhotoHandle Tk_FindPhoto _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * imageName)); -/* 65 */ -EXTERN Font Tk_FontId _ANSI_ARGS_((Tk_Font font)); -/* 66 */ -EXTERN void Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border)); -/* 67 */ -EXTERN void Tk_FreeBitmap _ANSI_ARGS_((Display * display, - Pixmap bitmap)); -/* 68 */ -EXTERN void Tk_FreeColor _ANSI_ARGS_((XColor * colorPtr)); -/* 69 */ -EXTERN void Tk_FreeColormap _ANSI_ARGS_((Display * display, - Colormap colormap)); -/* 70 */ -EXTERN void Tk_FreeCursor _ANSI_ARGS_((Display * display, - Tk_Cursor cursor)); -/* 71 */ -EXTERN void Tk_FreeFont _ANSI_ARGS_((Tk_Font f)); -/* 72 */ -EXTERN void Tk_FreeGC _ANSI_ARGS_((Display * display, GC gc)); -/* 73 */ -EXTERN void Tk_FreeImage _ANSI_ARGS_((Tk_Image image)); -/* 74 */ -EXTERN void Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec * specs, - char * widgRec, Display * display, - int needFlags)); -/* 75 */ -EXTERN void Tk_FreePixmap _ANSI_ARGS_((Display * display, - Pixmap pixmap)); -/* 76 */ -EXTERN void Tk_FreeTextLayout _ANSI_ARGS_(( - Tk_TextLayout textLayout)); -/* 77 */ -EXTERN void Tk_FreeXId _ANSI_ARGS_((Display * display, XID xid)); -/* 78 */ -EXTERN GC Tk_GCForColor _ANSI_ARGS_((XColor * colorPtr, - Drawable drawable)); -/* 79 */ -EXTERN void Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin, - int reqWidth, int reqHeight)); -/* 80 */ -EXTERN Tk_3DBorder Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_Uid colorName)); -/* 81 */ -EXTERN void Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp * interp, - Tk_BindingTable bindingTable, - ClientData object)); -/* 82 */ -EXTERN int Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, Tk_Anchor * anchorPtr)); -/* 83 */ -EXTERN CONST84_RETURN char * Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin, - Atom atom)); -/* 84 */ -EXTERN CONST84_RETURN char * Tk_GetBinding _ANSI_ARGS_((Tcl_Interp * interp, - Tk_BindingTable bindingTable, - ClientData object, CONST char * eventStr)); -/* 85 */ -EXTERN Pixmap Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str)); -/* 86 */ -EXTERN Pixmap Tk_GetBitmapFromData _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - CONST char * source, int width, int height)); -/* 87 */ -EXTERN int Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int * capPtr)); -/* 88 */ -EXTERN XColor * Tk_GetColor _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_Uid name)); -/* 89 */ -EXTERN XColor * Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin, - XColor * colorPtr)); -/* 90 */ -EXTERN Colormap Tk_GetColormap _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str)); -/* 91 */ -EXTERN Tk_Cursor Tk_GetCursor _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_Uid str)); -/* 92 */ -EXTERN Tk_Cursor Tk_GetCursorFromData _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - CONST char * source, CONST char * mask, - int width, int height, int xHot, int yHot, - Tk_Uid fg, Tk_Uid bg)); -/* 93 */ -EXTERN Tk_Font Tk_GetFont _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str)); -/* 94 */ -EXTERN Tk_Font Tk_GetFontFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 95 */ -EXTERN void Tk_GetFontMetrics _ANSI_ARGS_((Tk_Font font, - Tk_FontMetrics * fmPtr)); -/* 96 */ -EXTERN GC Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin, - unsigned long valueMask, - XGCValues * valuePtr)); -/* 97 */ -EXTERN Tk_Image Tk_GetImage _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * name, - Tk_ImageChangedProc * changeProc, - ClientData clientData)); -/* 98 */ -EXTERN ClientData Tk_GetImageMasterData _ANSI_ARGS_(( - Tcl_Interp * interp, CONST char * name, - Tk_ImageType ** typePtrPtr)); -/* 99 */ -EXTERN Tk_ItemType * Tk_GetItemTypes _ANSI_ARGS_((void)); -/* 100 */ -EXTERN int Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, int * joinPtr)); -/* 101 */ -EXTERN int Tk_GetJustify _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * str, Tk_Justify * justifyPtr)); -/* 102 */ -EXTERN int Tk_GetNumMainWindows _ANSI_ARGS_((void)); -/* 103 */ -EXTERN Tk_Uid Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, - CONST char * name, CONST char * className)); -/* 104 */ -EXTERN int Tk_GetPixels _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str, - int * intPtr)); -/* 105 */ -EXTERN Pixmap Tk_GetPixmap _ANSI_ARGS_((Display * display, - Drawable d, int width, int height, int depth)); -/* 106 */ -EXTERN int Tk_GetRelief _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name, int * reliefPtr)); -/* 107 */ -EXTERN void Tk_GetRootCoords _ANSI_ARGS_((Tk_Window tkwin, - int * xPtr, int * yPtr)); -/* 108 */ -EXTERN int Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp * interp, - int argc, CONST84 char ** argv, - double * dblPtr, int * intPtr)); -/* 109 */ -EXTERN int Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str, - double * doublePtr)); -/* 110 */ -EXTERN int Tk_GetSelection _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Atom selection, Atom target, - Tk_GetSelProc * proc, ClientData clientData)); -/* 111 */ -EXTERN Tk_Uid Tk_GetUid _ANSI_ARGS_((CONST char * str)); -/* 112 */ -EXTERN Visual * Tk_GetVisual _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, CONST char * str, - int * depthPtr, Colormap * colormapPtr)); -/* 113 */ -EXTERN void Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin, - int * xPtr, int * yPtr, int * widthPtr, - int * heightPtr)); -/* 114 */ -EXTERN int Tk_Grab _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, int grabGlobal)); -/* 115 */ -EXTERN void Tk_HandleEvent _ANSI_ARGS_((XEvent * eventPtr)); -/* 116 */ -EXTERN Tk_Window Tk_IdToWindow _ANSI_ARGS_((Display * display, - Window window)); -/* 117 */ -EXTERN void Tk_ImageChanged _ANSI_ARGS_((Tk_ImageMaster master, - int x, int y, int width, int height, - int imageWidth, int imageHeight)); -/* 118 */ -EXTERN int Tk_Init _ANSI_ARGS_((Tcl_Interp * interp)); -/* 119 */ -EXTERN Atom Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin, - CONST char * name)); -/* 120 */ -EXTERN int Tk_IntersectTextLayout _ANSI_ARGS_(( - Tk_TextLayout layout, int x, int y, - int width, int height)); -/* 121 */ -EXTERN void Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave, - Tk_Window master, int x, int y, int width, - int height)); -/* 122 */ -EXTERN Tk_Window Tk_MainWindow _ANSI_ARGS_((Tcl_Interp * interp)); -/* 123 */ -EXTERN void Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin)); -/* 124 */ -EXTERN void Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin, - Tk_GeomMgr * mgrPtr, ClientData clientData)); -/* 125 */ -EXTERN void Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin)); -/* 126 */ -EXTERN int Tk_MeasureChars _ANSI_ARGS_((Tk_Font tkfont, - CONST char * source, int numBytes, - int maxPixels, int flags, int * lengthPtr)); -/* 127 */ -EXTERN void Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin, - int x, int y, int width, int height)); -/* 128 */ -EXTERN void Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x, - int y)); -/* 129 */ -EXTERN void Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin, - int x, int y)); -/* 130 */ -EXTERN CONST84_RETURN char * Tk_NameOf3DBorder _ANSI_ARGS_(( - Tk_3DBorder border)); -/* 131 */ -EXTERN CONST84_RETURN char * Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor)); -/* 132 */ -EXTERN CONST84_RETURN char * Tk_NameOfBitmap _ANSI_ARGS_((Display * display, - Pixmap bitmap)); -/* 133 */ -EXTERN CONST84_RETURN char * Tk_NameOfCapStyle _ANSI_ARGS_((int cap)); -/* 134 */ -EXTERN CONST84_RETURN char * Tk_NameOfColor _ANSI_ARGS_((XColor * colorPtr)); -/* 135 */ -EXTERN CONST84_RETURN char * Tk_NameOfCursor _ANSI_ARGS_((Display * display, - Tk_Cursor cursor)); -/* 136 */ -EXTERN CONST84_RETURN char * Tk_NameOfFont _ANSI_ARGS_((Tk_Font font)); -/* 137 */ -EXTERN CONST84_RETURN char * Tk_NameOfImage _ANSI_ARGS_(( - Tk_ImageMaster imageMaster)); -/* 138 */ -EXTERN CONST84_RETURN char * Tk_NameOfJoinStyle _ANSI_ARGS_((int join)); -/* 139 */ -EXTERN CONST84_RETURN char * Tk_NameOfJustify _ANSI_ARGS_(( - Tk_Justify justify)); -/* 140 */ -EXTERN CONST84_RETURN char * Tk_NameOfRelief _ANSI_ARGS_((int relief)); -/* 141 */ -EXTERN Tk_Window Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * pathName, Tk_Window tkwin)); -/* 142 */ -EXTERN void Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin, - Atom selection, Tk_LostSelProc * proc, - ClientData clientData)); -/* 143 */ -EXTERN int Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, int * argcPtr, - CONST84 char ** argv, Tk_ArgvInfo * argTable, - int flags)); -/* 144 */ -EXTERN void Tk_PhotoPutBlock_NoComposite _ANSI_ARGS_(( - Tk_PhotoHandle handle, - Tk_PhotoImageBlock * blockPtr, int x, int y, - int width, int height)); -/* 145 */ -EXTERN void Tk_PhotoPutZoomedBlock_NoComposite _ANSI_ARGS_(( - Tk_PhotoHandle handle, - Tk_PhotoImageBlock * blockPtr, int x, int y, - int width, int height, int zoomX, int zoomY, - int subsampleX, int subsampleY)); -/* 146 */ -EXTERN int Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle, - Tk_PhotoImageBlock * blockPtr)); -/* 147 */ -EXTERN void Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle)); -/* 148 */ -EXTERN void Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle, - int width, int height)); -/* 149 */ -EXTERN void Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle, - int * widthPtr, int * heightPtr)); -/* 150 */ -EXTERN void Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle, - int width, int height)); -/* 151 */ -EXTERN int Tk_PointToChar _ANSI_ARGS_((Tk_TextLayout layout, - int x, int y)); -/* 152 */ -EXTERN int Tk_PostscriptFontName _ANSI_ARGS_((Tk_Font tkfont, - Tcl_DString * dsPtr)); -/* 153 */ -EXTERN void Tk_PreserveColormap _ANSI_ARGS_((Display * display, - Colormap colormap)); -/* 154 */ -EXTERN void Tk_QueueWindowEvent _ANSI_ARGS_((XEvent * eventPtr, - Tcl_QueuePosition position)); -/* 155 */ -EXTERN void Tk_RedrawImage _ANSI_ARGS_((Tk_Image image, - int imageX, int imageY, int width, - int height, Drawable drawable, int drawableX, - int drawableY)); -/* 156 */ -EXTERN void Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin, - int width, int height)); -/* 157 */ -EXTERN int Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin, - int aboveBelow, Tk_Window other)); -/* 158 */ -EXTERN Tk_RestrictProc * Tk_RestrictEvents _ANSI_ARGS_(( - Tk_RestrictProc * proc, ClientData arg, - ClientData * prevArgPtr)); -/* 159 */ -EXTERN int Tk_SafeInit _ANSI_ARGS_((Tcl_Interp * interp)); -/* 160 */ -EXTERN CONST char * Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin, - CONST char * name)); -/* 161 */ -EXTERN void Tk_SetBackgroundFromBorder _ANSI_ARGS_(( - Tk_Window tkwin, Tk_3DBorder border)); -/* 162 */ -EXTERN void Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin, - CONST char * className)); -/* 163 */ -EXTERN void Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin, - int reqWidth, int reqHeight, int gridWidth, - int gridHeight)); -/* 164 */ -EXTERN void Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin, - int width)); -/* 165 */ -EXTERN void Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin, - unsigned long pixel)); -/* 166 */ -EXTERN void Tk_SetWindowBackgroundPixmap _ANSI_ARGS_(( - Tk_Window tkwin, Pixmap pixmap)); -/* 167 */ -EXTERN void Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin, - unsigned long pixel)); -/* 168 */ -EXTERN void Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin, - int width)); -/* 169 */ -EXTERN void Tk_SetWindowBorderPixmap _ANSI_ARGS_(( - Tk_Window tkwin, Pixmap pixmap)); -/* 170 */ -EXTERN void Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin, - Colormap colormap)); -/* 171 */ -EXTERN int Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin, - Visual * visual, int depth, - Colormap colormap)); -/* 172 */ -EXTERN void Tk_SizeOfBitmap _ANSI_ARGS_((Display * display, - Pixmap bitmap, int * widthPtr, - int * heightPtr)); -/* 173 */ -EXTERN void Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image, - int * widthPtr, int * heightPtr)); -/* 174 */ -EXTERN int Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin)); -/* 175 */ -EXTERN void Tk_TextLayoutToPostscript _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_TextLayout layout)); -/* 176 */ -EXTERN int Tk_TextWidth _ANSI_ARGS_((Tk_Font font, - CONST char * str, int numBytes)); -/* 177 */ -EXTERN void Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window)); -/* 178 */ -EXTERN void Tk_UnderlineChars _ANSI_ARGS_((Display * display, - Drawable drawable, GC gc, Tk_Font tkfont, - CONST char * source, int x, int y, - int firstByte, int lastByte)); -/* 179 */ -EXTERN void Tk_UnderlineTextLayout _ANSI_ARGS_(( - Display * display, Drawable drawable, GC gc, - Tk_TextLayout layout, int x, int y, - int underline)); -/* 180 */ -EXTERN void Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin)); -/* 181 */ -EXTERN void Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave, - Tk_Window master)); -/* 182 */ -EXTERN void Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin)); -/* 183 */ -EXTERN void Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin)); -/* 184 */ -EXTERN void Tk_UpdatePointer _ANSI_ARGS_((Tk_Window tkwin, int x, - int y, int state)); -/* 185 */ -EXTERN Pixmap Tk_AllocBitmapFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 186 */ -EXTERN Tk_3DBorder Tk_Alloc3DBorderFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 187 */ -EXTERN XColor * Tk_AllocColorFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 188 */ -EXTERN Tk_Cursor Tk_AllocCursorFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 189 */ -EXTERN Tk_Font Tk_AllocFontFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tcl_Obj * objPtr)); -/* 190 */ -EXTERN Tk_OptionTable Tk_CreateOptionTable _ANSI_ARGS_(( - Tcl_Interp * interp, - CONST Tk_OptionSpec * templatePtr)); -/* 191 */ -EXTERN void Tk_DeleteOptionTable _ANSI_ARGS_(( - Tk_OptionTable optionTable)); -/* 192 */ -EXTERN void Tk_Free3DBorderFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 193 */ -EXTERN void Tk_FreeBitmapFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 194 */ -EXTERN void Tk_FreeColorFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 195 */ -EXTERN void Tk_FreeConfigOptions _ANSI_ARGS_((char * recordPtr, - Tk_OptionTable optionToken, Tk_Window tkwin)); -/* 196 */ -EXTERN void Tk_FreeSavedOptions _ANSI_ARGS_(( - Tk_SavedOptions * savePtr)); -/* 197 */ -EXTERN void Tk_FreeCursorFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 198 */ -EXTERN void Tk_FreeFontFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 199 */ -EXTERN Tk_3DBorder Tk_Get3DBorderFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 200 */ -EXTERN int Tk_GetAnchorFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, Tk_Anchor * anchorPtr)); -/* 201 */ -EXTERN Pixmap Tk_GetBitmapFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 202 */ -EXTERN XColor * Tk_GetColorFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 203 */ -EXTERN Tk_Cursor Tk_GetCursorFromObj _ANSI_ARGS_((Tk_Window tkwin, - Tcl_Obj * objPtr)); -/* 204 */ -EXTERN Tcl_Obj * Tk_GetOptionInfo _ANSI_ARGS_((Tcl_Interp * interp, - char * recordPtr, Tk_OptionTable optionTable, - Tcl_Obj * namePtr, Tk_Window tkwin)); -/* 205 */ -EXTERN Tcl_Obj * Tk_GetOptionValue _ANSI_ARGS_((Tcl_Interp * interp, - char * recordPtr, Tk_OptionTable optionTable, - Tcl_Obj * namePtr, Tk_Window tkwin)); -/* 206 */ -EXTERN int Tk_GetJustifyFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr, - Tk_Justify * justifyPtr)); -/* 207 */ -EXTERN int Tk_GetMMFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tcl_Obj * objPtr, - double * doublePtr)); -/* 208 */ -EXTERN int Tk_GetPixelsFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tcl_Obj * objPtr, - int * intPtr)); -/* 209 */ -EXTERN int Tk_GetReliefFromObj _ANSI_ARGS_((Tcl_Interp * interp, - Tcl_Obj * objPtr, int * resultPtr)); -/* 210 */ -EXTERN int Tk_GetScrollInfoObj _ANSI_ARGS_((Tcl_Interp * interp, - int objc, Tcl_Obj *CONST objv[], - double * dblPtr, int * intPtr)); -/* 211 */ -EXTERN int Tk_InitOptions _ANSI_ARGS_((Tcl_Interp * interp, - char * recordPtr, Tk_OptionTable optionToken, - Tk_Window tkwin)); -/* 212 */ -EXTERN void Tk_MainEx _ANSI_ARGS_((int argc, char ** argv, - Tcl_AppInitProc * appInitProc, - Tcl_Interp * interp)); -/* 213 */ -EXTERN void Tk_RestoreSavedOptions _ANSI_ARGS_(( - Tk_SavedOptions * savePtr)); -/* 214 */ -EXTERN int Tk_SetOptions _ANSI_ARGS_((Tcl_Interp * interp, - char * recordPtr, Tk_OptionTable optionTable, - int objc, Tcl_Obj *CONST objv[], - Tk_Window tkwin, Tk_SavedOptions * savePtr, - int * maskPtr)); -/* 215 */ -EXTERN void Tk_InitConsoleChannels _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 216 */ -EXTERN int Tk_CreateConsoleWindow _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 217 */ -EXTERN void Tk_CreateSmoothMethod _ANSI_ARGS_(( - Tcl_Interp * interp, - Tk_SmoothMethod * method)); -/* Slot 218 is reserved */ -/* Slot 219 is reserved */ -/* 220 */ -EXTERN int Tk_GetDash _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * value, Tk_Dash * dash)); -/* 221 */ -EXTERN void Tk_CreateOutline _ANSI_ARGS_((Tk_Outline * outline)); -/* 222 */ -EXTERN void Tk_DeleteOutline _ANSI_ARGS_((Display * display, - Tk_Outline * outline)); -/* 223 */ -EXTERN int Tk_ConfigOutlineGC _ANSI_ARGS_((XGCValues * gcValues, - Tk_Canvas canvas, Tk_Item * item, - Tk_Outline * outline)); -/* 224 */ -EXTERN int Tk_ChangeOutlineGC _ANSI_ARGS_((Tk_Canvas canvas, - Tk_Item * item, Tk_Outline * outline)); -/* 225 */ -EXTERN int Tk_ResetOutlineGC _ANSI_ARGS_((Tk_Canvas canvas, - Tk_Item * item, Tk_Outline * outline)); -/* 226 */ -EXTERN int Tk_CanvasPsOutline _ANSI_ARGS_((Tk_Canvas canvas, - Tk_Item * item, Tk_Outline * outline)); -/* 227 */ -EXTERN void Tk_SetTSOrigin _ANSI_ARGS_((Tk_Window tkwin, GC gc, - int x, int y)); -/* 228 */ -EXTERN int Tk_CanvasGetCoordFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Canvas canvas, - Tcl_Obj * obj, double * doublePtr)); -/* 229 */ -EXTERN void Tk_CanvasSetOffset _ANSI_ARGS_((Tk_Canvas canvas, - GC gc, Tk_TSOffset * offset)); -/* 230 */ -EXTERN void Tk_DitherPhoto _ANSI_ARGS_((Tk_PhotoHandle handle, - int x, int y, int width, int height)); -/* 231 */ -EXTERN int Tk_PostscriptBitmap _ANSI_ARGS_((Tcl_Interp * interp, - Tk_Window tkwin, Tk_PostscriptInfo psInfo, - Pixmap bitmap, int startX, int startY, - int width, int height)); -/* 232 */ -EXTERN int Tk_PostscriptColor _ANSI_ARGS_((Tcl_Interp * interp, - Tk_PostscriptInfo psInfo, XColor * colorPtr)); -/* 233 */ -EXTERN int Tk_PostscriptFont _ANSI_ARGS_((Tcl_Interp * interp, - Tk_PostscriptInfo psInfo, Tk_Font font)); -/* 234 */ -EXTERN int Tk_PostscriptImage _ANSI_ARGS_((Tk_Image image, - Tcl_Interp * interp, Tk_Window tkwin, - Tk_PostscriptInfo psinfo, int x, int y, - int width, int height, int prepass)); -/* 235 */ -EXTERN void Tk_PostscriptPath _ANSI_ARGS_((Tcl_Interp * interp, - Tk_PostscriptInfo psInfo, double * coordPtr, - int numPoints)); -/* 236 */ -EXTERN int Tk_PostscriptStipple _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window tkwin, - Tk_PostscriptInfo psInfo, Pixmap bitmap)); -/* 237 */ -EXTERN double Tk_PostscriptY _ANSI_ARGS_((double y, - Tk_PostscriptInfo psInfo)); -/* 238 */ -EXTERN int Tk_PostscriptPhoto _ANSI_ARGS_((Tcl_Interp * interp, - Tk_PhotoImageBlock * blockPtr, - Tk_PostscriptInfo psInfo, int width, - int height)); -/* 239 */ -EXTERN void Tk_CreateClientMessageHandler _ANSI_ARGS_(( - Tk_ClientMessageProc * proc)); -/* 240 */ -EXTERN void Tk_DeleteClientMessageHandler _ANSI_ARGS_(( - Tk_ClientMessageProc * proc)); -/* 241 */ -EXTERN Tk_Window Tk_CreateAnonymousWindow _ANSI_ARGS_(( - Tcl_Interp * interp, Tk_Window parent, - CONST char * screenName)); -/* 242 */ -EXTERN void Tk_SetClassProcs _ANSI_ARGS_((Tk_Window tkwin, - Tk_ClassProcs * procs, - ClientData instanceData)); -/* 243 */ -EXTERN void Tk_SetInternalBorderEx _ANSI_ARGS_((Tk_Window tkwin, - int left, int right, int top, int bottom)); -/* 244 */ -EXTERN void Tk_SetMinimumRequestSize _ANSI_ARGS_(( - Tk_Window tkwin, int minWidth, int minHeight)); -/* 245 */ -EXTERN void Tk_SetCaretPos _ANSI_ARGS_((Tk_Window tkwin, int x, - int y, int height)); -/* 246 */ -EXTERN void Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle, - Tk_PhotoImageBlock * blockPtr, int x, int y, - int width, int height, int compRule)); -/* 247 */ -EXTERN void Tk_PhotoPutZoomedBlock _ANSI_ARGS_(( - Tk_PhotoHandle handle, - Tk_PhotoImageBlock * blockPtr, int x, int y, - int width, int height, int zoomX, int zoomY, - int subsampleX, int subsampleY, int compRule)); -/* 248 */ -EXTERN int Tk_CollapseMotionEvents _ANSI_ARGS_(( - Display * display, int collapse)); -/* 249 */ -EXTERN Tk_StyleEngine Tk_RegisterStyleEngine _ANSI_ARGS_(( - CONST char * name, Tk_StyleEngine parent)); -/* 250 */ -EXTERN Tk_StyleEngine Tk_GetStyleEngine _ANSI_ARGS_((CONST char * name)); -/* 251 */ -EXTERN int Tk_RegisterStyledElement _ANSI_ARGS_(( - Tk_StyleEngine engine, - Tk_ElementSpec * templatePtr)); -/* 252 */ -EXTERN int Tk_GetElementId _ANSI_ARGS_((CONST char * name)); -/* 253 */ -EXTERN Tk_Style Tk_CreateStyle _ANSI_ARGS_((CONST char * name, - Tk_StyleEngine engine, ClientData clientData)); -/* 254 */ -EXTERN Tk_Style Tk_GetStyle _ANSI_ARGS_((Tcl_Interp * interp, - CONST char * name)); -/* 255 */ -EXTERN void Tk_FreeStyle _ANSI_ARGS_((Tk_Style style)); -/* 256 */ -EXTERN CONST char * Tk_NameOfStyle _ANSI_ARGS_((Tk_Style style)); -/* 257 */ -EXTERN Tk_Style Tk_AllocStyleFromObj _ANSI_ARGS_(( - Tcl_Interp * interp, Tcl_Obj * objPtr)); -/* 258 */ -EXTERN Tk_Style Tk_GetStyleFromObj _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 259 */ -EXTERN void Tk_FreeStyleFromObj _ANSI_ARGS_((Tcl_Obj * objPtr)); -/* 260 */ -EXTERN Tk_StyledElement Tk_GetStyledElement _ANSI_ARGS_((Tk_Style style, - int elementId, Tk_OptionTable optionTable)); -/* 261 */ -EXTERN void Tk_GetElementSize _ANSI_ARGS_((Tk_Style style, - Tk_StyledElement element, char * recordPtr, - Tk_Window tkwin, int width, int height, - int inner, int * widthPtr, int * heightPtr)); -/* 262 */ -EXTERN void Tk_GetElementBox _ANSI_ARGS_((Tk_Style style, - Tk_StyledElement element, char * recordPtr, - Tk_Window tkwin, int x, int y, int width, - int height, int inner, int * xPtr, - int * yPtr, int * widthPtr, int * heightPtr)); -/* 263 */ -EXTERN int Tk_GetElementBorderWidth _ANSI_ARGS_((Tk_Style style, - Tk_StyledElement element, char * recordPtr, - Tk_Window tkwin)); -/* 264 */ -EXTERN void Tk_DrawElement _ANSI_ARGS_((Tk_Style style, - Tk_StyledElement element, char * recordPtr, - Tk_Window tkwin, Drawable d, int x, int y, - int width, int height, int state)); - -typedef struct TkStubHooks { - struct TkPlatStubs *tkPlatStubs; - struct TkIntStubs *tkIntStubs; - struct TkIntPlatStubs *tkIntPlatStubs; - struct TkIntXlibStubs *tkIntXlibStubs; -} TkStubHooks; - -typedef struct TkStubs { - int magic; - struct TkStubHooks *hooks; - - void (*tk_MainLoop) _ANSI_ARGS_((void)); /* 0 */ - XColor * (*tk_3DBorderColor) _ANSI_ARGS_((Tk_3DBorder border)); /* 1 */ - GC (*tk_3DBorderGC) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int which)); /* 2 */ - void (*tk_3DHorizontalBevel) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftIn, int rightIn, int topBevel, int relief)); /* 3 */ - void (*tk_3DVerticalBevel) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftBevel, int relief)); /* 4 */ - void (*tk_AddOption) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name, CONST char * value, int priority)); /* 5 */ - void (*tk_BindEvent) _ANSI_ARGS_((Tk_BindingTable bindingTable, XEvent * eventPtr, Tk_Window tkwin, int numObjects, ClientData * objectPtr)); /* 6 */ - void (*tk_CanvasDrawableCoords) _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short * drawableXPtr, short * drawableYPtr)); /* 7 */ - void (*tk_CanvasEventuallyRedraw) _ANSI_ARGS_((Tk_Canvas canvas, int x1, int y1, int x2, int y2)); /* 8 */ - int (*tk_CanvasGetCoord) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, CONST char * str, double * doublePtr)); /* 9 */ - Tk_CanvasTextInfo * (*tk_CanvasGetTextInfo) _ANSI_ARGS_((Tk_Canvas canvas)); /* 10 */ - int (*tk_CanvasPsBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap, int x, int y, int width, int height)); /* 11 */ - int (*tk_CanvasPsColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, XColor * colorPtr)); /* 12 */ - int (*tk_CanvasPsFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Tk_Font font)); /* 13 */ - void (*tk_CanvasPsPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, double * coordPtr, int numPoints)); /* 14 */ - int (*tk_CanvasPsStipple) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap)); /* 15 */ - double (*tk_CanvasPsY) _ANSI_ARGS_((Tk_Canvas canvas, double y)); /* 16 */ - void (*tk_CanvasSetStippleOrigin) _ANSI_ARGS_((Tk_Canvas canvas, GC gc)); /* 17 */ - int (*tk_CanvasTagsParseProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, CONST char * value, char * widgRec, int offset)); /* 18 */ - char * (*tk_CanvasTagsPrintProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr)); /* 19 */ - Tk_Window (*tk_CanvasTkwin) _ANSI_ARGS_((Tk_Canvas canvas)); /* 20 */ - void (*tk_CanvasWindowCoords) _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short * screenXPtr, short * screenYPtr)); /* 21 */ - void (*tk_ChangeWindowAttributes) _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XSetWindowAttributes * attsPtr)); /* 22 */ - int (*tk_CharBbox) _ANSI_ARGS_((Tk_TextLayout layout, int index, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 23 */ - void (*tk_ClearSelection) _ANSI_ARGS_((Tk_Window tkwin, Atom selection)); /* 24 */ - int (*tk_ClipboardAppend) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Atom target, Atom format, char* buffer)); /* 25 */ - int (*tk_ClipboardClear) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin)); /* 26 */ - int (*tk_ConfigureInfo) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags)); /* 27 */ - int (*tk_ConfigureValue) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags)); /* 28 */ - int (*tk_ConfigureWidget) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, int argc, CONST84 char ** argv, char * widgRec, int flags)); /* 29 */ - void (*tk_ConfigureWindow) _ANSI_ARGS_((Tk_Window tkwin, unsigned int valueMask, XWindowChanges * valuePtr)); /* 30 */ - Tk_TextLayout (*tk_ComputeTextLayout) _ANSI_ARGS_((Tk_Font font, CONST char * str, int numChars, int wrapLength, Tk_Justify justify, int flags, int * widthPtr, int * heightPtr)); /* 31 */ - Tk_Window (*tk_CoordsToWindow) _ANSI_ARGS_((int rootX, int rootY, Tk_Window tkwin)); /* 32 */ - unsigned long (*tk_CreateBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr, CONST char * command, int append)); /* 33 */ - Tk_BindingTable (*tk_CreateBindingTable) _ANSI_ARGS_((Tcl_Interp * interp)); /* 34 */ - Tk_ErrorHandler (*tk_CreateErrorHandler) _ANSI_ARGS_((Display * display, int errNum, int request, int minorCode, Tk_ErrorProc * errorProc, ClientData clientData)); /* 35 */ - void (*tk_CreateEventHandler) _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData)); /* 36 */ - void (*tk_CreateGenericHandler) _ANSI_ARGS_((Tk_GenericProc * proc, ClientData clientData)); /* 37 */ - void (*tk_CreateImageType) _ANSI_ARGS_((Tk_ImageType * typePtr)); /* 38 */ - void (*tk_CreateItemType) _ANSI_ARGS_((Tk_ItemType * typePtr)); /* 39 */ - void (*tk_CreatePhotoImageFormat) _ANSI_ARGS_((Tk_PhotoImageFormat * formatPtr)); /* 40 */ - void (*tk_CreateSelHandler) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc * proc, ClientData clientData, Atom format)); /* 41 */ - Tk_Window (*tk_CreateWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window parent, CONST char * name, CONST char * screenName)); /* 42 */ - Tk_Window (*tk_CreateWindowFromPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * pathName, CONST char * screenName)); /* 43 */ - int (*tk_DefineBitmap) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * source, int width, int height)); /* 44 */ - void (*tk_DefineCursor) _ANSI_ARGS_((Tk_Window window, Tk_Cursor cursor)); /* 45 */ - void (*tk_DeleteAllBindings) _ANSI_ARGS_((Tk_BindingTable bindingTable, ClientData object)); /* 46 */ - int (*tk_DeleteBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr)); /* 47 */ - void (*tk_DeleteBindingTable) _ANSI_ARGS_((Tk_BindingTable bindingTable)); /* 48 */ - void (*tk_DeleteErrorHandler) _ANSI_ARGS_((Tk_ErrorHandler handler)); /* 49 */ - void (*tk_DeleteEventHandler) _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData)); /* 50 */ - void (*tk_DeleteGenericHandler) _ANSI_ARGS_((Tk_GenericProc * proc, ClientData clientData)); /* 51 */ - void (*tk_DeleteImage) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 52 */ - void (*tk_DeleteSelHandler) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target)); /* 53 */ - void (*tk_DestroyWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 54 */ - CONST84_RETURN char * (*tk_DisplayName) _ANSI_ARGS_((Tk_Window tkwin)); /* 55 */ - int (*tk_DistanceToTextLayout) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y)); /* 56 */ - void (*tk_Draw3DPolygon) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief)); /* 57 */ - void (*tk_Draw3DRectangle) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief)); /* 58 */ - void (*tk_DrawChars) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int numBytes, int x, int y)); /* 59 */ - void (*tk_DrawFocusHighlight) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int width, Drawable drawable)); /* 60 */ - void (*tk_DrawTextLayout) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int firstChar, int lastChar)); /* 61 */ - void (*tk_Fill3DPolygon) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief)); /* 62 */ - void (*tk_Fill3DRectangle) _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief)); /* 63 */ - Tk_PhotoHandle (*tk_FindPhoto) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * imageName)); /* 64 */ - Font (*tk_FontId) _ANSI_ARGS_((Tk_Font font)); /* 65 */ - void (*tk_Free3DBorder) _ANSI_ARGS_((Tk_3DBorder border)); /* 66 */ - void (*tk_FreeBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap)); /* 67 */ - void (*tk_FreeColor) _ANSI_ARGS_((XColor * colorPtr)); /* 68 */ - void (*tk_FreeColormap) _ANSI_ARGS_((Display * display, Colormap colormap)); /* 69 */ - void (*tk_FreeCursor) _ANSI_ARGS_((Display * display, Tk_Cursor cursor)); /* 70 */ - void (*tk_FreeFont) _ANSI_ARGS_((Tk_Font f)); /* 71 */ - void (*tk_FreeGC) _ANSI_ARGS_((Display * display, GC gc)); /* 72 */ - void (*tk_FreeImage) _ANSI_ARGS_((Tk_Image image)); /* 73 */ - void (*tk_FreeOptions) _ANSI_ARGS_((Tk_ConfigSpec * specs, char * widgRec, Display * display, int needFlags)); /* 74 */ - void (*tk_FreePixmap) _ANSI_ARGS_((Display * display, Pixmap pixmap)); /* 75 */ - void (*tk_FreeTextLayout) _ANSI_ARGS_((Tk_TextLayout textLayout)); /* 76 */ - void (*tk_FreeXId) _ANSI_ARGS_((Display * display, XID xid)); /* 77 */ - GC (*tk_GCForColor) _ANSI_ARGS_((XColor * colorPtr, Drawable drawable)); /* 78 */ - void (*tk_GeometryRequest) _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight)); /* 79 */ - Tk_3DBorder (*tk_Get3DBorder) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid colorName)); /* 80 */ - void (*tk_GetAllBindings) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object)); /* 81 */ - int (*tk_GetAnchor) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, Tk_Anchor * anchorPtr)); /* 82 */ - CONST84_RETURN char * (*tk_GetAtomName) _ANSI_ARGS_((Tk_Window tkwin, Atom atom)); /* 83 */ - CONST84_RETURN char * (*tk_GetBinding) _ANSI_ARGS_((Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr)); /* 84 */ - Pixmap (*tk_GetBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 85 */ - Pixmap (*tk_GetBitmapFromData) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, int width, int height)); /* 86 */ - int (*tk_GetCapStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * capPtr)); /* 87 */ - XColor * (*tk_GetColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid name)); /* 88 */ - XColor * (*tk_GetColorByValue) _ANSI_ARGS_((Tk_Window tkwin, XColor * colorPtr)); /* 89 */ - Colormap (*tk_GetColormap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 90 */ - Tk_Cursor (*tk_GetCursor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid str)); /* 91 */ - Tk_Cursor (*tk_GetCursorFromData) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, CONST char * mask, int width, int height, int xHot, int yHot, Tk_Uid fg, Tk_Uid bg)); /* 92 */ - Tk_Font (*tk_GetFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str)); /* 93 */ - Tk_Font (*tk_GetFontFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 94 */ - void (*tk_GetFontMetrics) _ANSI_ARGS_((Tk_Font font, Tk_FontMetrics * fmPtr)); /* 95 */ - GC (*tk_GetGC) _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XGCValues * valuePtr)); /* 96 */ - Tk_Image (*tk_GetImage) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * name, Tk_ImageChangedProc * changeProc, ClientData clientData)); /* 97 */ - ClientData (*tk_GetImageMasterData) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, Tk_ImageType ** typePtrPtr)); /* 98 */ - Tk_ItemType * (*tk_GetItemTypes) _ANSI_ARGS_((void)); /* 99 */ - int (*tk_GetJoinStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, int * joinPtr)); /* 100 */ - int (*tk_GetJustify) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * str, Tk_Justify * justifyPtr)); /* 101 */ - int (*tk_GetNumMainWindows) _ANSI_ARGS_((void)); /* 102 */ - Tk_Uid (*tk_GetOption) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name, CONST char * className)); /* 103 */ - int (*tk_GetPixels) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * intPtr)); /* 104 */ - Pixmap (*tk_GetPixmap) _ANSI_ARGS_((Display * display, Drawable d, int width, int height, int depth)); /* 105 */ - int (*tk_GetRelief) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, int * reliefPtr)); /* 106 */ - void (*tk_GetRootCoords) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr)); /* 107 */ - int (*tk_GetScrollInfo) _ANSI_ARGS_((Tcl_Interp * interp, int argc, CONST84 char ** argv, double * dblPtr, int * intPtr)); /* 108 */ - int (*tk_GetScreenMM) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, double * doublePtr)); /* 109 */ - int (*tk_GetSelection) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc * proc, ClientData clientData)); /* 110 */ - Tk_Uid (*tk_GetUid) _ANSI_ARGS_((CONST char * str)); /* 111 */ - Visual * (*tk_GetVisual) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * depthPtr, Colormap * colormapPtr)); /* 112 */ - void (*tk_GetVRootGeometry) _ANSI_ARGS_((Tk_Window tkwin, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 113 */ - int (*tk_Grab) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, int grabGlobal)); /* 114 */ - void (*tk_HandleEvent) _ANSI_ARGS_((XEvent * eventPtr)); /* 115 */ - Tk_Window (*tk_IdToWindow) _ANSI_ARGS_((Display * display, Window window)); /* 116 */ - void (*tk_ImageChanged) _ANSI_ARGS_((Tk_ImageMaster master, int x, int y, int width, int height, int imageWidth, int imageHeight)); /* 117 */ - int (*tk_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 118 */ - Atom (*tk_InternAtom) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name)); /* 119 */ - int (*tk_IntersectTextLayout) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y, int width, int height)); /* 120 */ - void (*tk_MaintainGeometry) _ANSI_ARGS_((Tk_Window slave, Tk_Window master, int x, int y, int width, int height)); /* 121 */ - Tk_Window (*tk_MainWindow) _ANSI_ARGS_((Tcl_Interp * interp)); /* 122 */ - void (*tk_MakeWindowExist) _ANSI_ARGS_((Tk_Window tkwin)); /* 123 */ - void (*tk_ManageGeometry) _ANSI_ARGS_((Tk_Window tkwin, Tk_GeomMgr * mgrPtr, ClientData clientData)); /* 124 */ - void (*tk_MapWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 125 */ - int (*tk_MeasureChars) _ANSI_ARGS_((Tk_Font tkfont, CONST char * source, int numBytes, int maxPixels, int flags, int * lengthPtr)); /* 126 */ - void (*tk_MoveResizeWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height)); /* 127 */ - void (*tk_MoveWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); /* 128 */ - void (*tk_MoveToplevelWindow) _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); /* 129 */ - CONST84_RETURN char * (*tk_NameOf3DBorder) _ANSI_ARGS_((Tk_3DBorder border)); /* 130 */ - CONST84_RETURN char * (*tk_NameOfAnchor) _ANSI_ARGS_((Tk_Anchor anchor)); /* 131 */ - CONST84_RETURN char * (*tk_NameOfBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap)); /* 132 */ - CONST84_RETURN char * (*tk_NameOfCapStyle) _ANSI_ARGS_((int cap)); /* 133 */ - CONST84_RETURN char * (*tk_NameOfColor) _ANSI_ARGS_((XColor * colorPtr)); /* 134 */ - CONST84_RETURN char * (*tk_NameOfCursor) _ANSI_ARGS_((Display * display, Tk_Cursor cursor)); /* 135 */ - CONST84_RETURN char * (*tk_NameOfFont) _ANSI_ARGS_((Tk_Font font)); /* 136 */ - CONST84_RETURN char * (*tk_NameOfImage) _ANSI_ARGS_((Tk_ImageMaster imageMaster)); /* 137 */ - CONST84_RETURN char * (*tk_NameOfJoinStyle) _ANSI_ARGS_((int join)); /* 138 */ - CONST84_RETURN char * (*tk_NameOfJustify) _ANSI_ARGS_((Tk_Justify justify)); /* 139 */ - CONST84_RETURN char * (*tk_NameOfRelief) _ANSI_ARGS_((int relief)); /* 140 */ - Tk_Window (*tk_NameToWindow) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * pathName, Tk_Window tkwin)); /* 141 */ - void (*tk_OwnSelection) _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Tk_LostSelProc * proc, ClientData clientData)); /* 142 */ - int (*tk_ParseArgv) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, int * argcPtr, CONST84 char ** argv, Tk_ArgvInfo * argTable, int flags)); /* 143 */ - void (*tk_PhotoPutBlock_NoComposite) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height)); /* 144 */ - void (*tk_PhotoPutZoomedBlock_NoComposite) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY)); /* 145 */ - int (*tk_PhotoGetImage) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr)); /* 146 */ - void (*tk_PhotoBlank) _ANSI_ARGS_((Tk_PhotoHandle handle)); /* 147 */ - void (*tk_PhotoExpand) _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height)); /* 148 */ - void (*tk_PhotoGetSize) _ANSI_ARGS_((Tk_PhotoHandle handle, int * widthPtr, int * heightPtr)); /* 149 */ - void (*tk_PhotoSetSize) _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height)); /* 150 */ - int (*tk_PointToChar) _ANSI_ARGS_((Tk_TextLayout layout, int x, int y)); /* 151 */ - int (*tk_PostscriptFontName) _ANSI_ARGS_((Tk_Font tkfont, Tcl_DString * dsPtr)); /* 152 */ - void (*tk_PreserveColormap) _ANSI_ARGS_((Display * display, Colormap colormap)); /* 153 */ - void (*tk_QueueWindowEvent) _ANSI_ARGS_((XEvent * eventPtr, Tcl_QueuePosition position)); /* 154 */ - void (*tk_RedrawImage) _ANSI_ARGS_((Tk_Image image, int imageX, int imageY, int width, int height, Drawable drawable, int drawableX, int drawableY)); /* 155 */ - void (*tk_ResizeWindow) _ANSI_ARGS_((Tk_Window tkwin, int width, int height)); /* 156 */ - int (*tk_RestackWindow) _ANSI_ARGS_((Tk_Window tkwin, int aboveBelow, Tk_Window other)); /* 157 */ - Tk_RestrictProc * (*tk_RestrictEvents) _ANSI_ARGS_((Tk_RestrictProc * proc, ClientData arg, ClientData * prevArgPtr)); /* 158 */ - int (*tk_SafeInit) _ANSI_ARGS_((Tcl_Interp * interp)); /* 159 */ - CONST char * (*tk_SetAppName) _ANSI_ARGS_((Tk_Window tkwin, CONST char * name)); /* 160 */ - void (*tk_SetBackgroundFromBorder) _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border)); /* 161 */ - void (*tk_SetClass) _ANSI_ARGS_((Tk_Window tkwin, CONST char * className)); /* 162 */ - void (*tk_SetGrid) _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight, int gridWidth, int gridHeight)); /* 163 */ - void (*tk_SetInternalBorder) _ANSI_ARGS_((Tk_Window tkwin, int width)); /* 164 */ - void (*tk_SetWindowBackground) _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); /* 165 */ - void (*tk_SetWindowBackgroundPixmap) _ANSI_ARGS_((Tk_Window tkwin, Pixmap pixmap)); /* 166 */ - void (*tk_SetWindowBorder) _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); /* 167 */ - void (*tk_SetWindowBorderWidth) _ANSI_ARGS_((Tk_Window tkwin, int width)); /* 168 */ - void (*tk_SetWindowBorderPixmap) _ANSI_ARGS_((Tk_Window tkwin, Pixmap pixmap)); /* 169 */ - void (*tk_SetWindowColormap) _ANSI_ARGS_((Tk_Window tkwin, Colormap colormap)); /* 170 */ - int (*tk_SetWindowVisual) _ANSI_ARGS_((Tk_Window tkwin, Visual * visual, int depth, Colormap colormap)); /* 171 */ - void (*tk_SizeOfBitmap) _ANSI_ARGS_((Display * display, Pixmap bitmap, int * widthPtr, int * heightPtr)); /* 172 */ - void (*tk_SizeOfImage) _ANSI_ARGS_((Tk_Image image, int * widthPtr, int * heightPtr)); /* 173 */ - int (*tk_StrictMotif) _ANSI_ARGS_((Tk_Window tkwin)); /* 174 */ - void (*tk_TextLayoutToPostscript) _ANSI_ARGS_((Tcl_Interp * interp, Tk_TextLayout layout)); /* 175 */ - int (*tk_TextWidth) _ANSI_ARGS_((Tk_Font font, CONST char * str, int numBytes)); /* 176 */ - void (*tk_UndefineCursor) _ANSI_ARGS_((Tk_Window window)); /* 177 */ - void (*tk_UnderlineChars) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int x, int y, int firstByte, int lastByte)); /* 178 */ - void (*tk_UnderlineTextLayout) _ANSI_ARGS_((Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int underline)); /* 179 */ - void (*tk_Ungrab) _ANSI_ARGS_((Tk_Window tkwin)); /* 180 */ - void (*tk_UnmaintainGeometry) _ANSI_ARGS_((Tk_Window slave, Tk_Window master)); /* 181 */ - void (*tk_UnmapWindow) _ANSI_ARGS_((Tk_Window tkwin)); /* 182 */ - void (*tk_UnsetGrid) _ANSI_ARGS_((Tk_Window tkwin)); /* 183 */ - void (*tk_UpdatePointer) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int state)); /* 184 */ - Pixmap (*tk_AllocBitmapFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 185 */ - Tk_3DBorder (*tk_Alloc3DBorderFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 186 */ - XColor * (*tk_AllocColorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 187 */ - Tk_Cursor (*tk_AllocCursorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 188 */ - Tk_Font (*tk_AllocFontFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr)); /* 189 */ - Tk_OptionTable (*tk_CreateOptionTable) _ANSI_ARGS_((Tcl_Interp * interp, CONST Tk_OptionSpec * templatePtr)); /* 190 */ - void (*tk_DeleteOptionTable) _ANSI_ARGS_((Tk_OptionTable optionTable)); /* 191 */ - void (*tk_Free3DBorderFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 192 */ - void (*tk_FreeBitmapFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 193 */ - void (*tk_FreeColorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 194 */ - void (*tk_FreeConfigOptions) _ANSI_ARGS_((char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin)); /* 195 */ - void (*tk_FreeSavedOptions) _ANSI_ARGS_((Tk_SavedOptions * savePtr)); /* 196 */ - void (*tk_FreeCursorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 197 */ - void (*tk_FreeFontFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 198 */ - Tk_3DBorder (*tk_Get3DBorderFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 199 */ - int (*tk_GetAnchorFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Anchor * anchorPtr)); /* 200 */ - Pixmap (*tk_GetBitmapFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 201 */ - XColor * (*tk_GetColorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 202 */ - Tk_Cursor (*tk_GetCursorFromObj) _ANSI_ARGS_((Tk_Window tkwin, Tcl_Obj * objPtr)); /* 203 */ - Tcl_Obj * (*tk_GetOptionInfo) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin)); /* 204 */ - Tcl_Obj * (*tk_GetOptionValue) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin)); /* 205 */ - int (*tk_GetJustifyFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Justify * justifyPtr)); /* 206 */ - int (*tk_GetMMFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, double * doublePtr)); /* 207 */ - int (*tk_GetPixelsFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, int * intPtr)); /* 208 */ - int (*tk_GetReliefFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, int * resultPtr)); /* 209 */ - int (*tk_GetScrollInfoObj) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], double * dblPtr, int * intPtr)); /* 210 */ - int (*tk_InitOptions) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin)); /* 211 */ - void (*tk_MainEx) _ANSI_ARGS_((int argc, char ** argv, Tcl_AppInitProc * appInitProc, Tcl_Interp * interp)); /* 212 */ - void (*tk_RestoreSavedOptions) _ANSI_ARGS_((Tk_SavedOptions * savePtr)); /* 213 */ - int (*tk_SetOptions) _ANSI_ARGS_((Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, int objc, Tcl_Obj *CONST objv[], Tk_Window tkwin, Tk_SavedOptions * savePtr, int * maskPtr)); /* 214 */ - void (*tk_InitConsoleChannels) _ANSI_ARGS_((Tcl_Interp * interp)); /* 215 */ - int (*tk_CreateConsoleWindow) _ANSI_ARGS_((Tcl_Interp * interp)); /* 216 */ - void (*tk_CreateSmoothMethod) _ANSI_ARGS_((Tcl_Interp * interp, Tk_SmoothMethod * method)); /* 217 */ - void *reserved218; - void *reserved219; - int (*tk_GetDash) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * value, Tk_Dash * dash)); /* 220 */ - void (*tk_CreateOutline) _ANSI_ARGS_((Tk_Outline * outline)); /* 221 */ - void (*tk_DeleteOutline) _ANSI_ARGS_((Display * display, Tk_Outline * outline)); /* 222 */ - int (*tk_ConfigOutlineGC) _ANSI_ARGS_((XGCValues * gcValues, Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 223 */ - int (*tk_ChangeOutlineGC) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 224 */ - int (*tk_ResetOutlineGC) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 225 */ - int (*tk_CanvasPsOutline) _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline)); /* 226 */ - void (*tk_SetTSOrigin) _ANSI_ARGS_((Tk_Window tkwin, GC gc, int x, int y)); /* 227 */ - int (*tk_CanvasGetCoordFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Canvas canvas, Tcl_Obj * obj, double * doublePtr)); /* 228 */ - void (*tk_CanvasSetOffset) _ANSI_ARGS_((Tk_Canvas canvas, GC gc, Tk_TSOffset * offset)); /* 229 */ - void (*tk_DitherPhoto) _ANSI_ARGS_((Tk_PhotoHandle handle, int x, int y, int width, int height)); /* 230 */ - int (*tk_PostscriptBitmap) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap, int startX, int startY, int width, int height)); /* 231 */ - int (*tk_PostscriptColor) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, XColor * colorPtr)); /* 232 */ - int (*tk_PostscriptFont) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, Tk_Font font)); /* 233 */ - int (*tk_PostscriptImage) _ANSI_ARGS_((Tk_Image image, Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo, int x, int y, int width, int height, int prepass)); /* 234 */ - void (*tk_PostscriptPath) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PostscriptInfo psInfo, double * coordPtr, int numPoints)); /* 235 */ - int (*tk_PostscriptStipple) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap)); /* 236 */ - double (*tk_PostscriptY) _ANSI_ARGS_((double y, Tk_PostscriptInfo psInfo)); /* 237 */ - int (*tk_PostscriptPhoto) _ANSI_ARGS_((Tcl_Interp * interp, Tk_PhotoImageBlock * blockPtr, Tk_PostscriptInfo psInfo, int width, int height)); /* 238 */ - void (*tk_CreateClientMessageHandler) _ANSI_ARGS_((Tk_ClientMessageProc * proc)); /* 239 */ - void (*tk_DeleteClientMessageHandler) _ANSI_ARGS_((Tk_ClientMessageProc * proc)); /* 240 */ - Tk_Window (*tk_CreateAnonymousWindow) _ANSI_ARGS_((Tcl_Interp * interp, Tk_Window parent, CONST char * screenName)); /* 241 */ - void (*tk_SetClassProcs) _ANSI_ARGS_((Tk_Window tkwin, Tk_ClassProcs * procs, ClientData instanceData)); /* 242 */ - void (*tk_SetInternalBorderEx) _ANSI_ARGS_((Tk_Window tkwin, int left, int right, int top, int bottom)); /* 243 */ - void (*tk_SetMinimumRequestSize) _ANSI_ARGS_((Tk_Window tkwin, int minWidth, int minHeight)); /* 244 */ - void (*tk_SetCaretPos) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int height)); /* 245 */ - void (*tk_PhotoPutBlock) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int compRule)); /* 246 */ - void (*tk_PhotoPutZoomedBlock) _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule)); /* 247 */ - int (*tk_CollapseMotionEvents) _ANSI_ARGS_((Display * display, int collapse)); /* 248 */ - Tk_StyleEngine (*tk_RegisterStyleEngine) _ANSI_ARGS_((CONST char * name, Tk_StyleEngine parent)); /* 249 */ - Tk_StyleEngine (*tk_GetStyleEngine) _ANSI_ARGS_((CONST char * name)); /* 250 */ - int (*tk_RegisterStyledElement) _ANSI_ARGS_((Tk_StyleEngine engine, Tk_ElementSpec * templatePtr)); /* 251 */ - int (*tk_GetElementId) _ANSI_ARGS_((CONST char * name)); /* 252 */ - Tk_Style (*tk_CreateStyle) _ANSI_ARGS_((CONST char * name, Tk_StyleEngine engine, ClientData clientData)); /* 253 */ - Tk_Style (*tk_GetStyle) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name)); /* 254 */ - void (*tk_FreeStyle) _ANSI_ARGS_((Tk_Style style)); /* 255 */ - CONST char * (*tk_NameOfStyle) _ANSI_ARGS_((Tk_Style style)); /* 256 */ - Tk_Style (*tk_AllocStyleFromObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 257 */ - Tk_Style (*tk_GetStyleFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 258 */ - void (*tk_FreeStyleFromObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 259 */ - Tk_StyledElement (*tk_GetStyledElement) _ANSI_ARGS_((Tk_Style style, int elementId, Tk_OptionTable optionTable)); /* 260 */ - void (*tk_GetElementSize) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int width, int height, int inner, int * widthPtr, int * heightPtr)); /* 261 */ - void (*tk_GetElementBox) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr)); /* 262 */ - int (*tk_GetElementBorderWidth) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin)); /* 263 */ - void (*tk_DrawElement) _ANSI_ARGS_((Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state)); /* 264 */ -} TkStubs; - -#ifdef __cplusplus -extern "C" { -#endif -extern TkStubs *tkStubsPtr; -#ifdef __cplusplus -} -#endif - -#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) - -/* - * Inline function declarations: - */ - -#ifndef Tk_MainLoop -#define Tk_MainLoop \ - (tkStubsPtr->tk_MainLoop) /* 0 */ -#endif -#ifndef Tk_3DBorderColor -#define Tk_3DBorderColor \ - (tkStubsPtr->tk_3DBorderColor) /* 1 */ -#endif -#ifndef Tk_3DBorderGC -#define Tk_3DBorderGC \ - (tkStubsPtr->tk_3DBorderGC) /* 2 */ -#endif -#ifndef Tk_3DHorizontalBevel -#define Tk_3DHorizontalBevel \ - (tkStubsPtr->tk_3DHorizontalBevel) /* 3 */ -#endif -#ifndef Tk_3DVerticalBevel -#define Tk_3DVerticalBevel \ - (tkStubsPtr->tk_3DVerticalBevel) /* 4 */ -#endif -#ifndef Tk_AddOption -#define Tk_AddOption \ - (tkStubsPtr->tk_AddOption) /* 5 */ -#endif -#ifndef Tk_BindEvent -#define Tk_BindEvent \ - (tkStubsPtr->tk_BindEvent) /* 6 */ -#endif -#ifndef Tk_CanvasDrawableCoords -#define Tk_CanvasDrawableCoords \ - (tkStubsPtr->tk_CanvasDrawableCoords) /* 7 */ -#endif -#ifndef Tk_CanvasEventuallyRedraw -#define Tk_CanvasEventuallyRedraw \ - (tkStubsPtr->tk_CanvasEventuallyRedraw) /* 8 */ -#endif -#ifndef Tk_CanvasGetCoord -#define Tk_CanvasGetCoord \ - (tkStubsPtr->tk_CanvasGetCoord) /* 9 */ -#endif -#ifndef Tk_CanvasGetTextInfo -#define Tk_CanvasGetTextInfo \ - (tkStubsPtr->tk_CanvasGetTextInfo) /* 10 */ -#endif -#ifndef Tk_CanvasPsBitmap -#define Tk_CanvasPsBitmap \ - (tkStubsPtr->tk_CanvasPsBitmap) /* 11 */ -#endif -#ifndef Tk_CanvasPsColor -#define Tk_CanvasPsColor \ - (tkStubsPtr->tk_CanvasPsColor) /* 12 */ -#endif -#ifndef Tk_CanvasPsFont -#define Tk_CanvasPsFont \ - (tkStubsPtr->tk_CanvasPsFont) /* 13 */ -#endif -#ifndef Tk_CanvasPsPath -#define Tk_CanvasPsPath \ - (tkStubsPtr->tk_CanvasPsPath) /* 14 */ -#endif -#ifndef Tk_CanvasPsStipple -#define Tk_CanvasPsStipple \ - (tkStubsPtr->tk_CanvasPsStipple) /* 15 */ -#endif -#ifndef Tk_CanvasPsY -#define Tk_CanvasPsY \ - (tkStubsPtr->tk_CanvasPsY) /* 16 */ -#endif -#ifndef Tk_CanvasSetStippleOrigin -#define Tk_CanvasSetStippleOrigin \ - (tkStubsPtr->tk_CanvasSetStippleOrigin) /* 17 */ -#endif -#ifndef Tk_CanvasTagsParseProc -#define Tk_CanvasTagsParseProc \ - (tkStubsPtr->tk_CanvasTagsParseProc) /* 18 */ -#endif -#ifndef Tk_CanvasTagsPrintProc -#define Tk_CanvasTagsPrintProc \ - (tkStubsPtr->tk_CanvasTagsPrintProc) /* 19 */ -#endif -#ifndef Tk_CanvasTkwin -#define Tk_CanvasTkwin \ - (tkStubsPtr->tk_CanvasTkwin) /* 20 */ -#endif -#ifndef Tk_CanvasWindowCoords -#define Tk_CanvasWindowCoords \ - (tkStubsPtr->tk_CanvasWindowCoords) /* 21 */ -#endif -#ifndef Tk_ChangeWindowAttributes -#define Tk_ChangeWindowAttributes \ - (tkStubsPtr->tk_ChangeWindowAttributes) /* 22 */ -#endif -#ifndef Tk_CharBbox -#define Tk_CharBbox \ - (tkStubsPtr->tk_CharBbox) /* 23 */ -#endif -#ifndef Tk_ClearSelection -#define Tk_ClearSelection \ - (tkStubsPtr->tk_ClearSelection) /* 24 */ -#endif -#ifndef Tk_ClipboardAppend -#define Tk_ClipboardAppend \ - (tkStubsPtr->tk_ClipboardAppend) /* 25 */ -#endif -#ifndef Tk_ClipboardClear -#define Tk_ClipboardClear \ - (tkStubsPtr->tk_ClipboardClear) /* 26 */ -#endif -#ifndef Tk_ConfigureInfo -#define Tk_ConfigureInfo \ - (tkStubsPtr->tk_ConfigureInfo) /* 27 */ -#endif -#ifndef Tk_ConfigureValue -#define Tk_ConfigureValue \ - (tkStubsPtr->tk_ConfigureValue) /* 28 */ -#endif -#ifndef Tk_ConfigureWidget -#define Tk_ConfigureWidget \ - (tkStubsPtr->tk_ConfigureWidget) /* 29 */ -#endif -#ifndef Tk_ConfigureWindow -#define Tk_ConfigureWindow \ - (tkStubsPtr->tk_ConfigureWindow) /* 30 */ -#endif -#ifndef Tk_ComputeTextLayout -#define Tk_ComputeTextLayout \ - (tkStubsPtr->tk_ComputeTextLayout) /* 31 */ -#endif -#ifndef Tk_CoordsToWindow -#define Tk_CoordsToWindow \ - (tkStubsPtr->tk_CoordsToWindow) /* 32 */ -#endif -#ifndef Tk_CreateBinding -#define Tk_CreateBinding \ - (tkStubsPtr->tk_CreateBinding) /* 33 */ -#endif -#ifndef Tk_CreateBindingTable -#define Tk_CreateBindingTable \ - (tkStubsPtr->tk_CreateBindingTable) /* 34 */ -#endif -#ifndef Tk_CreateErrorHandler -#define Tk_CreateErrorHandler \ - (tkStubsPtr->tk_CreateErrorHandler) /* 35 */ -#endif -#ifndef Tk_CreateEventHandler -#define Tk_CreateEventHandler \ - (tkStubsPtr->tk_CreateEventHandler) /* 36 */ -#endif -#ifndef Tk_CreateGenericHandler -#define Tk_CreateGenericHandler \ - (tkStubsPtr->tk_CreateGenericHandler) /* 37 */ -#endif -#ifndef Tk_CreateImageType -#define Tk_CreateImageType \ - (tkStubsPtr->tk_CreateImageType) /* 38 */ -#endif -#ifndef Tk_CreateItemType -#define Tk_CreateItemType \ - (tkStubsPtr->tk_CreateItemType) /* 39 */ -#endif -#ifndef Tk_CreatePhotoImageFormat -#define Tk_CreatePhotoImageFormat \ - (tkStubsPtr->tk_CreatePhotoImageFormat) /* 40 */ -#endif -#ifndef Tk_CreateSelHandler -#define Tk_CreateSelHandler \ - (tkStubsPtr->tk_CreateSelHandler) /* 41 */ -#endif -#ifndef Tk_CreateWindow -#define Tk_CreateWindow \ - (tkStubsPtr->tk_CreateWindow) /* 42 */ -#endif -#ifndef Tk_CreateWindowFromPath -#define Tk_CreateWindowFromPath \ - (tkStubsPtr->tk_CreateWindowFromPath) /* 43 */ -#endif -#ifndef Tk_DefineBitmap -#define Tk_DefineBitmap \ - (tkStubsPtr->tk_DefineBitmap) /* 44 */ -#endif -#ifndef Tk_DefineCursor -#define Tk_DefineCursor \ - (tkStubsPtr->tk_DefineCursor) /* 45 */ -#endif -#ifndef Tk_DeleteAllBindings -#define Tk_DeleteAllBindings \ - (tkStubsPtr->tk_DeleteAllBindings) /* 46 */ -#endif -#ifndef Tk_DeleteBinding -#define Tk_DeleteBinding \ - (tkStubsPtr->tk_DeleteBinding) /* 47 */ -#endif -#ifndef Tk_DeleteBindingTable -#define Tk_DeleteBindingTable \ - (tkStubsPtr->tk_DeleteBindingTable) /* 48 */ -#endif -#ifndef Tk_DeleteErrorHandler -#define Tk_DeleteErrorHandler \ - (tkStubsPtr->tk_DeleteErrorHandler) /* 49 */ -#endif -#ifndef Tk_DeleteEventHandler -#define Tk_DeleteEventHandler \ - (tkStubsPtr->tk_DeleteEventHandler) /* 50 */ -#endif -#ifndef Tk_DeleteGenericHandler -#define Tk_DeleteGenericHandler \ - (tkStubsPtr->tk_DeleteGenericHandler) /* 51 */ -#endif -#ifndef Tk_DeleteImage -#define Tk_DeleteImage \ - (tkStubsPtr->tk_DeleteImage) /* 52 */ -#endif -#ifndef Tk_DeleteSelHandler -#define Tk_DeleteSelHandler \ - (tkStubsPtr->tk_DeleteSelHandler) /* 53 */ -#endif -#ifndef Tk_DestroyWindow -#define Tk_DestroyWindow \ - (tkStubsPtr->tk_DestroyWindow) /* 54 */ -#endif -#ifndef Tk_DisplayName -#define Tk_DisplayName \ - (tkStubsPtr->tk_DisplayName) /* 55 */ -#endif -#ifndef Tk_DistanceToTextLayout -#define Tk_DistanceToTextLayout \ - (tkStubsPtr->tk_DistanceToTextLayout) /* 56 */ -#endif -#ifndef Tk_Draw3DPolygon -#define Tk_Draw3DPolygon \ - (tkStubsPtr->tk_Draw3DPolygon) /* 57 */ -#endif -#ifndef Tk_Draw3DRectangle -#define Tk_Draw3DRectangle \ - (tkStubsPtr->tk_Draw3DRectangle) /* 58 */ -#endif -#ifndef Tk_DrawChars -#define Tk_DrawChars \ - (tkStubsPtr->tk_DrawChars) /* 59 */ -#endif -#ifndef Tk_DrawFocusHighlight -#define Tk_DrawFocusHighlight \ - (tkStubsPtr->tk_DrawFocusHighlight) /* 60 */ -#endif -#ifndef Tk_DrawTextLayout -#define Tk_DrawTextLayout \ - (tkStubsPtr->tk_DrawTextLayout) /* 61 */ -#endif -#ifndef Tk_Fill3DPolygon -#define Tk_Fill3DPolygon \ - (tkStubsPtr->tk_Fill3DPolygon) /* 62 */ -#endif -#ifndef Tk_Fill3DRectangle -#define Tk_Fill3DRectangle \ - (tkStubsPtr->tk_Fill3DRectangle) /* 63 */ -#endif -#ifndef Tk_FindPhoto -#define Tk_FindPhoto \ - (tkStubsPtr->tk_FindPhoto) /* 64 */ -#endif -#ifndef Tk_FontId -#define Tk_FontId \ - (tkStubsPtr->tk_FontId) /* 65 */ -#endif -#ifndef Tk_Free3DBorder -#define Tk_Free3DBorder \ - (tkStubsPtr->tk_Free3DBorder) /* 66 */ -#endif -#ifndef Tk_FreeBitmap -#define Tk_FreeBitmap \ - (tkStubsPtr->tk_FreeBitmap) /* 67 */ -#endif -#ifndef Tk_FreeColor -#define Tk_FreeColor \ - (tkStubsPtr->tk_FreeColor) /* 68 */ -#endif -#ifndef Tk_FreeColormap -#define Tk_FreeColormap \ - (tkStubsPtr->tk_FreeColormap) /* 69 */ -#endif -#ifndef Tk_FreeCursor -#define Tk_FreeCursor \ - (tkStubsPtr->tk_FreeCursor) /* 70 */ -#endif -#ifndef Tk_FreeFont -#define Tk_FreeFont \ - (tkStubsPtr->tk_FreeFont) /* 71 */ -#endif -#ifndef Tk_FreeGC -#define Tk_FreeGC \ - (tkStubsPtr->tk_FreeGC) /* 72 */ -#endif -#ifndef Tk_FreeImage -#define Tk_FreeImage \ - (tkStubsPtr->tk_FreeImage) /* 73 */ -#endif -#ifndef Tk_FreeOptions -#define Tk_FreeOptions \ - (tkStubsPtr->tk_FreeOptions) /* 74 */ -#endif -#ifndef Tk_FreePixmap -#define Tk_FreePixmap \ - (tkStubsPtr->tk_FreePixmap) /* 75 */ -#endif -#ifndef Tk_FreeTextLayout -#define Tk_FreeTextLayout \ - (tkStubsPtr->tk_FreeTextLayout) /* 76 */ -#endif -#ifndef Tk_FreeXId -#define Tk_FreeXId \ - (tkStubsPtr->tk_FreeXId) /* 77 */ -#endif -#ifndef Tk_GCForColor -#define Tk_GCForColor \ - (tkStubsPtr->tk_GCForColor) /* 78 */ -#endif -#ifndef Tk_GeometryRequest -#define Tk_GeometryRequest \ - (tkStubsPtr->tk_GeometryRequest) /* 79 */ -#endif -#ifndef Tk_Get3DBorder -#define Tk_Get3DBorder \ - (tkStubsPtr->tk_Get3DBorder) /* 80 */ -#endif -#ifndef Tk_GetAllBindings -#define Tk_GetAllBindings \ - (tkStubsPtr->tk_GetAllBindings) /* 81 */ -#endif -#ifndef Tk_GetAnchor -#define Tk_GetAnchor \ - (tkStubsPtr->tk_GetAnchor) /* 82 */ -#endif -#ifndef Tk_GetAtomName -#define Tk_GetAtomName \ - (tkStubsPtr->tk_GetAtomName) /* 83 */ -#endif -#ifndef Tk_GetBinding -#define Tk_GetBinding \ - (tkStubsPtr->tk_GetBinding) /* 84 */ -#endif -#ifndef Tk_GetBitmap -#define Tk_GetBitmap \ - (tkStubsPtr->tk_GetBitmap) /* 85 */ -#endif -#ifndef Tk_GetBitmapFromData -#define Tk_GetBitmapFromData \ - (tkStubsPtr->tk_GetBitmapFromData) /* 86 */ -#endif -#ifndef Tk_GetCapStyle -#define Tk_GetCapStyle \ - (tkStubsPtr->tk_GetCapStyle) /* 87 */ -#endif -#ifndef Tk_GetColor -#define Tk_GetColor \ - (tkStubsPtr->tk_GetColor) /* 88 */ -#endif -#ifndef Tk_GetColorByValue -#define Tk_GetColorByValue \ - (tkStubsPtr->tk_GetColorByValue) /* 89 */ -#endif -#ifndef Tk_GetColormap -#define Tk_GetColormap \ - (tkStubsPtr->tk_GetColormap) /* 90 */ -#endif -#ifndef Tk_GetCursor -#define Tk_GetCursor \ - (tkStubsPtr->tk_GetCursor) /* 91 */ -#endif -#ifndef Tk_GetCursorFromData -#define Tk_GetCursorFromData \ - (tkStubsPtr->tk_GetCursorFromData) /* 92 */ -#endif -#ifndef Tk_GetFont -#define Tk_GetFont \ - (tkStubsPtr->tk_GetFont) /* 93 */ -#endif -#ifndef Tk_GetFontFromObj -#define Tk_GetFontFromObj \ - (tkStubsPtr->tk_GetFontFromObj) /* 94 */ -#endif -#ifndef Tk_GetFontMetrics -#define Tk_GetFontMetrics \ - (tkStubsPtr->tk_GetFontMetrics) /* 95 */ -#endif -#ifndef Tk_GetGC -#define Tk_GetGC \ - (tkStubsPtr->tk_GetGC) /* 96 */ -#endif -#ifndef Tk_GetImage -#define Tk_GetImage \ - (tkStubsPtr->tk_GetImage) /* 97 */ -#endif -#ifndef Tk_GetImageMasterData -#define Tk_GetImageMasterData \ - (tkStubsPtr->tk_GetImageMasterData) /* 98 */ -#endif -#ifndef Tk_GetItemTypes -#define Tk_GetItemTypes \ - (tkStubsPtr->tk_GetItemTypes) /* 99 */ -#endif -#ifndef Tk_GetJoinStyle -#define Tk_GetJoinStyle \ - (tkStubsPtr->tk_GetJoinStyle) /* 100 */ -#endif -#ifndef Tk_GetJustify -#define Tk_GetJustify \ - (tkStubsPtr->tk_GetJustify) /* 101 */ -#endif -#ifndef Tk_GetNumMainWindows -#define Tk_GetNumMainWindows \ - (tkStubsPtr->tk_GetNumMainWindows) /* 102 */ -#endif -#ifndef Tk_GetOption -#define Tk_GetOption \ - (tkStubsPtr->tk_GetOption) /* 103 */ -#endif -#ifndef Tk_GetPixels -#define Tk_GetPixels \ - (tkStubsPtr->tk_GetPixels) /* 104 */ -#endif -#ifndef Tk_GetPixmap -#define Tk_GetPixmap \ - (tkStubsPtr->tk_GetPixmap) /* 105 */ -#endif -#ifndef Tk_GetRelief -#define Tk_GetRelief \ - (tkStubsPtr->tk_GetRelief) /* 106 */ -#endif -#ifndef Tk_GetRootCoords -#define Tk_GetRootCoords \ - (tkStubsPtr->tk_GetRootCoords) /* 107 */ -#endif -#ifndef Tk_GetScrollInfo -#define Tk_GetScrollInfo \ - (tkStubsPtr->tk_GetScrollInfo) /* 108 */ -#endif -#ifndef Tk_GetScreenMM -#define Tk_GetScreenMM \ - (tkStubsPtr->tk_GetScreenMM) /* 109 */ -#endif -#ifndef Tk_GetSelection -#define Tk_GetSelection \ - (tkStubsPtr->tk_GetSelection) /* 110 */ -#endif -#ifndef Tk_GetUid -#define Tk_GetUid \ - (tkStubsPtr->tk_GetUid) /* 111 */ -#endif -#ifndef Tk_GetVisual -#define Tk_GetVisual \ - (tkStubsPtr->tk_GetVisual) /* 112 */ -#endif -#ifndef Tk_GetVRootGeometry -#define Tk_GetVRootGeometry \ - (tkStubsPtr->tk_GetVRootGeometry) /* 113 */ -#endif -#ifndef Tk_Grab -#define Tk_Grab \ - (tkStubsPtr->tk_Grab) /* 114 */ -#endif -#ifndef Tk_HandleEvent -#define Tk_HandleEvent \ - (tkStubsPtr->tk_HandleEvent) /* 115 */ -#endif -#ifndef Tk_IdToWindow -#define Tk_IdToWindow \ - (tkStubsPtr->tk_IdToWindow) /* 116 */ -#endif -#ifndef Tk_ImageChanged -#define Tk_ImageChanged \ - (tkStubsPtr->tk_ImageChanged) /* 117 */ -#endif -#ifndef Tk_Init -#define Tk_Init \ - (tkStubsPtr->tk_Init) /* 118 */ -#endif -#ifndef Tk_InternAtom -#define Tk_InternAtom \ - (tkStubsPtr->tk_InternAtom) /* 119 */ -#endif -#ifndef Tk_IntersectTextLayout -#define Tk_IntersectTextLayout \ - (tkStubsPtr->tk_IntersectTextLayout) /* 120 */ -#endif -#ifndef Tk_MaintainGeometry -#define Tk_MaintainGeometry \ - (tkStubsPtr->tk_MaintainGeometry) /* 121 */ -#endif -#ifndef Tk_MainWindow -#define Tk_MainWindow \ - (tkStubsPtr->tk_MainWindow) /* 122 */ -#endif -#ifndef Tk_MakeWindowExist -#define Tk_MakeWindowExist \ - (tkStubsPtr->tk_MakeWindowExist) /* 123 */ -#endif -#ifndef Tk_ManageGeometry -#define Tk_ManageGeometry \ - (tkStubsPtr->tk_ManageGeometry) /* 124 */ -#endif -#ifndef Tk_MapWindow -#define Tk_MapWindow \ - (tkStubsPtr->tk_MapWindow) /* 125 */ -#endif -#ifndef Tk_MeasureChars -#define Tk_MeasureChars \ - (tkStubsPtr->tk_MeasureChars) /* 126 */ -#endif -#ifndef Tk_MoveResizeWindow -#define Tk_MoveResizeWindow \ - (tkStubsPtr->tk_MoveResizeWindow) /* 127 */ -#endif -#ifndef Tk_MoveWindow -#define Tk_MoveWindow \ - (tkStubsPtr->tk_MoveWindow) /* 128 */ -#endif -#ifndef Tk_MoveToplevelWindow -#define Tk_MoveToplevelWindow \ - (tkStubsPtr->tk_MoveToplevelWindow) /* 129 */ -#endif -#ifndef Tk_NameOf3DBorder -#define Tk_NameOf3DBorder \ - (tkStubsPtr->tk_NameOf3DBorder) /* 130 */ -#endif -#ifndef Tk_NameOfAnchor -#define Tk_NameOfAnchor \ - (tkStubsPtr->tk_NameOfAnchor) /* 131 */ -#endif -#ifndef Tk_NameOfBitmap -#define Tk_NameOfBitmap \ - (tkStubsPtr->tk_NameOfBitmap) /* 132 */ -#endif -#ifndef Tk_NameOfCapStyle -#define Tk_NameOfCapStyle \ - (tkStubsPtr->tk_NameOfCapStyle) /* 133 */ -#endif -#ifndef Tk_NameOfColor -#define Tk_NameOfColor \ - (tkStubsPtr->tk_NameOfColor) /* 134 */ -#endif -#ifndef Tk_NameOfCursor -#define Tk_NameOfCursor \ - (tkStubsPtr->tk_NameOfCursor) /* 135 */ -#endif -#ifndef Tk_NameOfFont -#define Tk_NameOfFont \ - (tkStubsPtr->tk_NameOfFont) /* 136 */ -#endif -#ifndef Tk_NameOfImage -#define Tk_NameOfImage \ - (tkStubsPtr->tk_NameOfImage) /* 137 */ -#endif -#ifndef Tk_NameOfJoinStyle -#define Tk_NameOfJoinStyle \ - (tkStubsPtr->tk_NameOfJoinStyle) /* 138 */ -#endif -#ifndef Tk_NameOfJustify -#define Tk_NameOfJustify \ - (tkStubsPtr->tk_NameOfJustify) /* 139 */ -#endif -#ifndef Tk_NameOfRelief -#define Tk_NameOfRelief \ - (tkStubsPtr->tk_NameOfRelief) /* 140 */ -#endif -#ifndef Tk_NameToWindow -#define Tk_NameToWindow \ - (tkStubsPtr->tk_NameToWindow) /* 141 */ -#endif -#ifndef Tk_OwnSelection -#define Tk_OwnSelection \ - (tkStubsPtr->tk_OwnSelection) /* 142 */ -#endif -#ifndef Tk_ParseArgv -#define Tk_ParseArgv \ - (tkStubsPtr->tk_ParseArgv) /* 143 */ -#endif -#ifndef Tk_PhotoPutBlock_NoComposite -#define Tk_PhotoPutBlock_NoComposite \ - (tkStubsPtr->tk_PhotoPutBlock_NoComposite) /* 144 */ -#endif -#ifndef Tk_PhotoPutZoomedBlock_NoComposite -#define Tk_PhotoPutZoomedBlock_NoComposite \ - (tkStubsPtr->tk_PhotoPutZoomedBlock_NoComposite) /* 145 */ -#endif -#ifndef Tk_PhotoGetImage -#define Tk_PhotoGetImage \ - (tkStubsPtr->tk_PhotoGetImage) /* 146 */ -#endif -#ifndef Tk_PhotoBlank -#define Tk_PhotoBlank \ - (tkStubsPtr->tk_PhotoBlank) /* 147 */ -#endif -#ifndef Tk_PhotoExpand -#define Tk_PhotoExpand \ - (tkStubsPtr->tk_PhotoExpand) /* 148 */ -#endif -#ifndef Tk_PhotoGetSize -#define Tk_PhotoGetSize \ - (tkStubsPtr->tk_PhotoGetSize) /* 149 */ -#endif -#ifndef Tk_PhotoSetSize -#define Tk_PhotoSetSize \ - (tkStubsPtr->tk_PhotoSetSize) /* 150 */ -#endif -#ifndef Tk_PointToChar -#define Tk_PointToChar \ - (tkStubsPtr->tk_PointToChar) /* 151 */ -#endif -#ifndef Tk_PostscriptFontName -#define Tk_PostscriptFontName \ - (tkStubsPtr->tk_PostscriptFontName) /* 152 */ -#endif -#ifndef Tk_PreserveColormap -#define Tk_PreserveColormap \ - (tkStubsPtr->tk_PreserveColormap) /* 153 */ -#endif -#ifndef Tk_QueueWindowEvent -#define Tk_QueueWindowEvent \ - (tkStubsPtr->tk_QueueWindowEvent) /* 154 */ -#endif -#ifndef Tk_RedrawImage -#define Tk_RedrawImage \ - (tkStubsPtr->tk_RedrawImage) /* 155 */ -#endif -#ifndef Tk_ResizeWindow -#define Tk_ResizeWindow \ - (tkStubsPtr->tk_ResizeWindow) /* 156 */ -#endif -#ifndef Tk_RestackWindow -#define Tk_RestackWindow \ - (tkStubsPtr->tk_RestackWindow) /* 157 */ -#endif -#ifndef Tk_RestrictEvents -#define Tk_RestrictEvents \ - (tkStubsPtr->tk_RestrictEvents) /* 158 */ -#endif -#ifndef Tk_SafeInit -#define Tk_SafeInit \ - (tkStubsPtr->tk_SafeInit) /* 159 */ -#endif -#ifndef Tk_SetAppName -#define Tk_SetAppName \ - (tkStubsPtr->tk_SetAppName) /* 160 */ -#endif -#ifndef Tk_SetBackgroundFromBorder -#define Tk_SetBackgroundFromBorder \ - (tkStubsPtr->tk_SetBackgroundFromBorder) /* 161 */ -#endif -#ifndef Tk_SetClass -#define Tk_SetClass \ - (tkStubsPtr->tk_SetClass) /* 162 */ -#endif -#ifndef Tk_SetGrid -#define Tk_SetGrid \ - (tkStubsPtr->tk_SetGrid) /* 163 */ -#endif -#ifndef Tk_SetInternalBorder -#define Tk_SetInternalBorder \ - (tkStubsPtr->tk_SetInternalBorder) /* 164 */ -#endif -#ifndef Tk_SetWindowBackground -#define Tk_SetWindowBackground \ - (tkStubsPtr->tk_SetWindowBackground) /* 165 */ -#endif -#ifndef Tk_SetWindowBackgroundPixmap -#define Tk_SetWindowBackgroundPixmap \ - (tkStubsPtr->tk_SetWindowBackgroundPixmap) /* 166 */ -#endif -#ifndef Tk_SetWindowBorder -#define Tk_SetWindowBorder \ - (tkStubsPtr->tk_SetWindowBorder) /* 167 */ -#endif -#ifndef Tk_SetWindowBorderWidth -#define Tk_SetWindowBorderWidth \ - (tkStubsPtr->tk_SetWindowBorderWidth) /* 168 */ -#endif -#ifndef Tk_SetWindowBorderPixmap -#define Tk_SetWindowBorderPixmap \ - (tkStubsPtr->tk_SetWindowBorderPixmap) /* 169 */ -#endif -#ifndef Tk_SetWindowColormap -#define Tk_SetWindowColormap \ - (tkStubsPtr->tk_SetWindowColormap) /* 170 */ -#endif -#ifndef Tk_SetWindowVisual -#define Tk_SetWindowVisual \ - (tkStubsPtr->tk_SetWindowVisual) /* 171 */ -#endif -#ifndef Tk_SizeOfBitmap -#define Tk_SizeOfBitmap \ - (tkStubsPtr->tk_SizeOfBitmap) /* 172 */ -#endif -#ifndef Tk_SizeOfImage -#define Tk_SizeOfImage \ - (tkStubsPtr->tk_SizeOfImage) /* 173 */ -#endif -#ifndef Tk_StrictMotif -#define Tk_StrictMotif \ - (tkStubsPtr->tk_StrictMotif) /* 174 */ -#endif -#ifndef Tk_TextLayoutToPostscript -#define Tk_TextLayoutToPostscript \ - (tkStubsPtr->tk_TextLayoutToPostscript) /* 175 */ -#endif -#ifndef Tk_TextWidth -#define Tk_TextWidth \ - (tkStubsPtr->tk_TextWidth) /* 176 */ -#endif -#ifndef Tk_UndefineCursor -#define Tk_UndefineCursor \ - (tkStubsPtr->tk_UndefineCursor) /* 177 */ -#endif -#ifndef Tk_UnderlineChars -#define Tk_UnderlineChars \ - (tkStubsPtr->tk_UnderlineChars) /* 178 */ -#endif -#ifndef Tk_UnderlineTextLayout -#define Tk_UnderlineTextLayout \ - (tkStubsPtr->tk_UnderlineTextLayout) /* 179 */ -#endif -#ifndef Tk_Ungrab -#define Tk_Ungrab \ - (tkStubsPtr->tk_Ungrab) /* 180 */ -#endif -#ifndef Tk_UnmaintainGeometry -#define Tk_UnmaintainGeometry \ - (tkStubsPtr->tk_UnmaintainGeometry) /* 181 */ -#endif -#ifndef Tk_UnmapWindow -#define Tk_UnmapWindow \ - (tkStubsPtr->tk_UnmapWindow) /* 182 */ -#endif -#ifndef Tk_UnsetGrid -#define Tk_UnsetGrid \ - (tkStubsPtr->tk_UnsetGrid) /* 183 */ -#endif -#ifndef Tk_UpdatePointer -#define Tk_UpdatePointer \ - (tkStubsPtr->tk_UpdatePointer) /* 184 */ -#endif -#ifndef Tk_AllocBitmapFromObj -#define Tk_AllocBitmapFromObj \ - (tkStubsPtr->tk_AllocBitmapFromObj) /* 185 */ -#endif -#ifndef Tk_Alloc3DBorderFromObj -#define Tk_Alloc3DBorderFromObj \ - (tkStubsPtr->tk_Alloc3DBorderFromObj) /* 186 */ -#endif -#ifndef Tk_AllocColorFromObj -#define Tk_AllocColorFromObj \ - (tkStubsPtr->tk_AllocColorFromObj) /* 187 */ -#endif -#ifndef Tk_AllocCursorFromObj -#define Tk_AllocCursorFromObj \ - (tkStubsPtr->tk_AllocCursorFromObj) /* 188 */ -#endif -#ifndef Tk_AllocFontFromObj -#define Tk_AllocFontFromObj \ - (tkStubsPtr->tk_AllocFontFromObj) /* 189 */ -#endif -#ifndef Tk_CreateOptionTable -#define Tk_CreateOptionTable \ - (tkStubsPtr->tk_CreateOptionTable) /* 190 */ -#endif -#ifndef Tk_DeleteOptionTable -#define Tk_DeleteOptionTable \ - (tkStubsPtr->tk_DeleteOptionTable) /* 191 */ -#endif -#ifndef Tk_Free3DBorderFromObj -#define Tk_Free3DBorderFromObj \ - (tkStubsPtr->tk_Free3DBorderFromObj) /* 192 */ -#endif -#ifndef Tk_FreeBitmapFromObj -#define Tk_FreeBitmapFromObj \ - (tkStubsPtr->tk_FreeBitmapFromObj) /* 193 */ -#endif -#ifndef Tk_FreeColorFromObj -#define Tk_FreeColorFromObj \ - (tkStubsPtr->tk_FreeColorFromObj) /* 194 */ -#endif -#ifndef Tk_FreeConfigOptions -#define Tk_FreeConfigOptions \ - (tkStubsPtr->tk_FreeConfigOptions) /* 195 */ -#endif -#ifndef Tk_FreeSavedOptions -#define Tk_FreeSavedOptions \ - (tkStubsPtr->tk_FreeSavedOptions) /* 196 */ -#endif -#ifndef Tk_FreeCursorFromObj -#define Tk_FreeCursorFromObj \ - (tkStubsPtr->tk_FreeCursorFromObj) /* 197 */ -#endif -#ifndef Tk_FreeFontFromObj -#define Tk_FreeFontFromObj \ - (tkStubsPtr->tk_FreeFontFromObj) /* 198 */ -#endif -#ifndef Tk_Get3DBorderFromObj -#define Tk_Get3DBorderFromObj \ - (tkStubsPtr->tk_Get3DBorderFromObj) /* 199 */ -#endif -#ifndef Tk_GetAnchorFromObj -#define Tk_GetAnchorFromObj \ - (tkStubsPtr->tk_GetAnchorFromObj) /* 200 */ -#endif -#ifndef Tk_GetBitmapFromObj -#define Tk_GetBitmapFromObj \ - (tkStubsPtr->tk_GetBitmapFromObj) /* 201 */ -#endif -#ifndef Tk_GetColorFromObj -#define Tk_GetColorFromObj \ - (tkStubsPtr->tk_GetColorFromObj) /* 202 */ -#endif -#ifndef Tk_GetCursorFromObj -#define Tk_GetCursorFromObj \ - (tkStubsPtr->tk_GetCursorFromObj) /* 203 */ -#endif -#ifndef Tk_GetOptionInfo -#define Tk_GetOptionInfo \ - (tkStubsPtr->tk_GetOptionInfo) /* 204 */ -#endif -#ifndef Tk_GetOptionValue -#define Tk_GetOptionValue \ - (tkStubsPtr->tk_GetOptionValue) /* 205 */ -#endif -#ifndef Tk_GetJustifyFromObj -#define Tk_GetJustifyFromObj \ - (tkStubsPtr->tk_GetJustifyFromObj) /* 206 */ -#endif -#ifndef Tk_GetMMFromObj -#define Tk_GetMMFromObj \ - (tkStubsPtr->tk_GetMMFromObj) /* 207 */ -#endif -#ifndef Tk_GetPixelsFromObj -#define Tk_GetPixelsFromObj \ - (tkStubsPtr->tk_GetPixelsFromObj) /* 208 */ -#endif -#ifndef Tk_GetReliefFromObj -#define Tk_GetReliefFromObj \ - (tkStubsPtr->tk_GetReliefFromObj) /* 209 */ -#endif -#ifndef Tk_GetScrollInfoObj -#define Tk_GetScrollInfoObj \ - (tkStubsPtr->tk_GetScrollInfoObj) /* 210 */ -#endif -#ifndef Tk_InitOptions -#define Tk_InitOptions \ - (tkStubsPtr->tk_InitOptions) /* 211 */ -#endif -#ifndef Tk_MainEx -#define Tk_MainEx \ - (tkStubsPtr->tk_MainEx) /* 212 */ -#endif -#ifndef Tk_RestoreSavedOptions -#define Tk_RestoreSavedOptions \ - (tkStubsPtr->tk_RestoreSavedOptions) /* 213 */ -#endif -#ifndef Tk_SetOptions -#define Tk_SetOptions \ - (tkStubsPtr->tk_SetOptions) /* 214 */ -#endif -#ifndef Tk_InitConsoleChannels -#define Tk_InitConsoleChannels \ - (tkStubsPtr->tk_InitConsoleChannels) /* 215 */ -#endif -#ifndef Tk_CreateConsoleWindow -#define Tk_CreateConsoleWindow \ - (tkStubsPtr->tk_CreateConsoleWindow) /* 216 */ -#endif -#ifndef Tk_CreateSmoothMethod -#define Tk_CreateSmoothMethod \ - (tkStubsPtr->tk_CreateSmoothMethod) /* 217 */ -#endif -/* Slot 218 is reserved */ -/* Slot 219 is reserved */ -#ifndef Tk_GetDash -#define Tk_GetDash \ - (tkStubsPtr->tk_GetDash) /* 220 */ -#endif -#ifndef Tk_CreateOutline -#define Tk_CreateOutline \ - (tkStubsPtr->tk_CreateOutline) /* 221 */ -#endif -#ifndef Tk_DeleteOutline -#define Tk_DeleteOutline \ - (tkStubsPtr->tk_DeleteOutline) /* 222 */ -#endif -#ifndef Tk_ConfigOutlineGC -#define Tk_ConfigOutlineGC \ - (tkStubsPtr->tk_ConfigOutlineGC) /* 223 */ -#endif -#ifndef Tk_ChangeOutlineGC -#define Tk_ChangeOutlineGC \ - (tkStubsPtr->tk_ChangeOutlineGC) /* 224 */ -#endif -#ifndef Tk_ResetOutlineGC -#define Tk_ResetOutlineGC \ - (tkStubsPtr->tk_ResetOutlineGC) /* 225 */ -#endif -#ifndef Tk_CanvasPsOutline -#define Tk_CanvasPsOutline \ - (tkStubsPtr->tk_CanvasPsOutline) /* 226 */ -#endif -#ifndef Tk_SetTSOrigin -#define Tk_SetTSOrigin \ - (tkStubsPtr->tk_SetTSOrigin) /* 227 */ -#endif -#ifndef Tk_CanvasGetCoordFromObj -#define Tk_CanvasGetCoordFromObj \ - (tkStubsPtr->tk_CanvasGetCoordFromObj) /* 228 */ -#endif -#ifndef Tk_CanvasSetOffset -#define Tk_CanvasSetOffset \ - (tkStubsPtr->tk_CanvasSetOffset) /* 229 */ -#endif -#ifndef Tk_DitherPhoto -#define Tk_DitherPhoto \ - (tkStubsPtr->tk_DitherPhoto) /* 230 */ -#endif -#ifndef Tk_PostscriptBitmap -#define Tk_PostscriptBitmap \ - (tkStubsPtr->tk_PostscriptBitmap) /* 231 */ -#endif -#ifndef Tk_PostscriptColor -#define Tk_PostscriptColor \ - (tkStubsPtr->tk_PostscriptColor) /* 232 */ -#endif -#ifndef Tk_PostscriptFont -#define Tk_PostscriptFont \ - (tkStubsPtr->tk_PostscriptFont) /* 233 */ -#endif -#ifndef Tk_PostscriptImage -#define Tk_PostscriptImage \ - (tkStubsPtr->tk_PostscriptImage) /* 234 */ -#endif -#ifndef Tk_PostscriptPath -#define Tk_PostscriptPath \ - (tkStubsPtr->tk_PostscriptPath) /* 235 */ -#endif -#ifndef Tk_PostscriptStipple -#define Tk_PostscriptStipple \ - (tkStubsPtr->tk_PostscriptStipple) /* 236 */ -#endif -#ifndef Tk_PostscriptY -#define Tk_PostscriptY \ - (tkStubsPtr->tk_PostscriptY) /* 237 */ -#endif -#ifndef Tk_PostscriptPhoto -#define Tk_PostscriptPhoto \ - (tkStubsPtr->tk_PostscriptPhoto) /* 238 */ -#endif -#ifndef Tk_CreateClientMessageHandler -#define Tk_CreateClientMessageHandler \ - (tkStubsPtr->tk_CreateClientMessageHandler) /* 239 */ -#endif -#ifndef Tk_DeleteClientMessageHandler -#define Tk_DeleteClientMessageHandler \ - (tkStubsPtr->tk_DeleteClientMessageHandler) /* 240 */ -#endif -#ifndef Tk_CreateAnonymousWindow -#define Tk_CreateAnonymousWindow \ - (tkStubsPtr->tk_CreateAnonymousWindow) /* 241 */ -#endif -#ifndef Tk_SetClassProcs -#define Tk_SetClassProcs \ - (tkStubsPtr->tk_SetClassProcs) /* 242 */ -#endif -#ifndef Tk_SetInternalBorderEx -#define Tk_SetInternalBorderEx \ - (tkStubsPtr->tk_SetInternalBorderEx) /* 243 */ -#endif -#ifndef Tk_SetMinimumRequestSize -#define Tk_SetMinimumRequestSize \ - (tkStubsPtr->tk_SetMinimumRequestSize) /* 244 */ -#endif -#ifndef Tk_SetCaretPos -#define Tk_SetCaretPos \ - (tkStubsPtr->tk_SetCaretPos) /* 245 */ -#endif -#ifndef Tk_PhotoPutBlock -#define Tk_PhotoPutBlock \ - (tkStubsPtr->tk_PhotoPutBlock) /* 246 */ -#endif -#ifndef Tk_PhotoPutZoomedBlock -#define Tk_PhotoPutZoomedBlock \ - (tkStubsPtr->tk_PhotoPutZoomedBlock) /* 247 */ -#endif -#ifndef Tk_CollapseMotionEvents -#define Tk_CollapseMotionEvents \ - (tkStubsPtr->tk_CollapseMotionEvents) /* 248 */ -#endif -#ifndef Tk_RegisterStyleEngine -#define Tk_RegisterStyleEngine \ - (tkStubsPtr->tk_RegisterStyleEngine) /* 249 */ -#endif -#ifndef Tk_GetStyleEngine -#define Tk_GetStyleEngine \ - (tkStubsPtr->tk_GetStyleEngine) /* 250 */ -#endif -#ifndef Tk_RegisterStyledElement -#define Tk_RegisterStyledElement \ - (tkStubsPtr->tk_RegisterStyledElement) /* 251 */ -#endif -#ifndef Tk_GetElementId -#define Tk_GetElementId \ - (tkStubsPtr->tk_GetElementId) /* 252 */ -#endif -#ifndef Tk_CreateStyle -#define Tk_CreateStyle \ - (tkStubsPtr->tk_CreateStyle) /* 253 */ -#endif -#ifndef Tk_GetStyle -#define Tk_GetStyle \ - (tkStubsPtr->tk_GetStyle) /* 254 */ -#endif -#ifndef Tk_FreeStyle -#define Tk_FreeStyle \ - (tkStubsPtr->tk_FreeStyle) /* 255 */ -#endif -#ifndef Tk_NameOfStyle -#define Tk_NameOfStyle \ - (tkStubsPtr->tk_NameOfStyle) /* 256 */ -#endif -#ifndef Tk_AllocStyleFromObj -#define Tk_AllocStyleFromObj \ - (tkStubsPtr->tk_AllocStyleFromObj) /* 257 */ -#endif -#ifndef Tk_GetStyleFromObj -#define Tk_GetStyleFromObj \ - (tkStubsPtr->tk_GetStyleFromObj) /* 258 */ -#endif -#ifndef Tk_FreeStyleFromObj -#define Tk_FreeStyleFromObj \ - (tkStubsPtr->tk_FreeStyleFromObj) /* 259 */ -#endif -#ifndef Tk_GetStyledElement -#define Tk_GetStyledElement \ - (tkStubsPtr->tk_GetStyledElement) /* 260 */ -#endif -#ifndef Tk_GetElementSize -#define Tk_GetElementSize \ - (tkStubsPtr->tk_GetElementSize) /* 261 */ -#endif -#ifndef Tk_GetElementBox -#define Tk_GetElementBox \ - (tkStubsPtr->tk_GetElementBox) /* 262 */ -#endif -#ifndef Tk_GetElementBorderWidth -#define Tk_GetElementBorderWidth \ - (tkStubsPtr->tk_GetElementBorderWidth) /* 263 */ -#endif -#ifndef Tk_DrawElement -#define Tk_DrawElement \ - (tkStubsPtr->tk_DrawElement) /* 264 */ -#endif - -#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ - -/* !END!: Do not edit above this line. */ - -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLIMPORT - -#endif /* _TKDECLS */ - +/* + * tkDecls.h -- + * + * Declarations of functions in the platform independent public Tcl API. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tkDecls.h,v 1.30 2007/05/14 20:58:26 dgp Exp $ + */ + +#ifndef _TKDECLS +#define _TKDECLS + +#ifdef BUILD_tk +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLEXPORT +#endif + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the generic/tk.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifndef Tk_MainLoop_TCL_DECLARED +#define Tk_MainLoop_TCL_DECLARED +/* 0 */ +EXTERN void Tk_MainLoop (void); +#endif +#ifndef Tk_3DBorderColor_TCL_DECLARED +#define Tk_3DBorderColor_TCL_DECLARED +/* 1 */ +EXTERN XColor * Tk_3DBorderColor (Tk_3DBorder border); +#endif +#ifndef Tk_3DBorderGC_TCL_DECLARED +#define Tk_3DBorderGC_TCL_DECLARED +/* 2 */ +EXTERN GC Tk_3DBorderGC (Tk_Window tkwin, Tk_3DBorder border, + int which); +#endif +#ifndef Tk_3DHorizontalBevel_TCL_DECLARED +#define Tk_3DHorizontalBevel_TCL_DECLARED +/* 3 */ +EXTERN void Tk_3DHorizontalBevel (Tk_Window tkwin, + Drawable drawable, Tk_3DBorder border, int x, + int y, int width, int height, int leftIn, + int rightIn, int topBevel, int relief); +#endif +#ifndef Tk_3DVerticalBevel_TCL_DECLARED +#define Tk_3DVerticalBevel_TCL_DECLARED +/* 4 */ +EXTERN void Tk_3DVerticalBevel (Tk_Window tkwin, + Drawable drawable, Tk_3DBorder border, int x, + int y, int width, int height, int leftBevel, + int relief); +#endif +#ifndef Tk_AddOption_TCL_DECLARED +#define Tk_AddOption_TCL_DECLARED +/* 5 */ +EXTERN void Tk_AddOption (Tk_Window tkwin, CONST char * name, + CONST char * value, int priority); +#endif +#ifndef Tk_BindEvent_TCL_DECLARED +#define Tk_BindEvent_TCL_DECLARED +/* 6 */ +EXTERN void Tk_BindEvent (Tk_BindingTable bindingTable, + XEvent * eventPtr, Tk_Window tkwin, + int numObjects, ClientData * objectPtr); +#endif +#ifndef Tk_CanvasDrawableCoords_TCL_DECLARED +#define Tk_CanvasDrawableCoords_TCL_DECLARED +/* 7 */ +EXTERN void Tk_CanvasDrawableCoords (Tk_Canvas canvas, double x, + double y, short * drawableXPtr, + short * drawableYPtr); +#endif +#ifndef Tk_CanvasEventuallyRedraw_TCL_DECLARED +#define Tk_CanvasEventuallyRedraw_TCL_DECLARED +/* 8 */ +EXTERN void Tk_CanvasEventuallyRedraw (Tk_Canvas canvas, int x1, + int y1, int x2, int y2); +#endif +#ifndef Tk_CanvasGetCoord_TCL_DECLARED +#define Tk_CanvasGetCoord_TCL_DECLARED +/* 9 */ +EXTERN int Tk_CanvasGetCoord (Tcl_Interp * interp, + Tk_Canvas canvas, CONST char * str, + double * doublePtr); +#endif +#ifndef Tk_CanvasGetTextInfo_TCL_DECLARED +#define Tk_CanvasGetTextInfo_TCL_DECLARED +/* 10 */ +EXTERN Tk_CanvasTextInfo * Tk_CanvasGetTextInfo (Tk_Canvas canvas); +#endif +#ifndef Tk_CanvasPsBitmap_TCL_DECLARED +#define Tk_CanvasPsBitmap_TCL_DECLARED +/* 11 */ +EXTERN int Tk_CanvasPsBitmap (Tcl_Interp * interp, + Tk_Canvas canvas, Pixmap bitmap, int x, + int y, int width, int height); +#endif +#ifndef Tk_CanvasPsColor_TCL_DECLARED +#define Tk_CanvasPsColor_TCL_DECLARED +/* 12 */ +EXTERN int Tk_CanvasPsColor (Tcl_Interp * interp, + Tk_Canvas canvas, XColor * colorPtr); +#endif +#ifndef Tk_CanvasPsFont_TCL_DECLARED +#define Tk_CanvasPsFont_TCL_DECLARED +/* 13 */ +EXTERN int Tk_CanvasPsFont (Tcl_Interp * interp, + Tk_Canvas canvas, Tk_Font font); +#endif +#ifndef Tk_CanvasPsPath_TCL_DECLARED +#define Tk_CanvasPsPath_TCL_DECLARED +/* 14 */ +EXTERN void Tk_CanvasPsPath (Tcl_Interp * interp, + Tk_Canvas canvas, double * coordPtr, + int numPoints); +#endif +#ifndef Tk_CanvasPsStipple_TCL_DECLARED +#define Tk_CanvasPsStipple_TCL_DECLARED +/* 15 */ +EXTERN int Tk_CanvasPsStipple (Tcl_Interp * interp, + Tk_Canvas canvas, Pixmap bitmap); +#endif +#ifndef Tk_CanvasPsY_TCL_DECLARED +#define Tk_CanvasPsY_TCL_DECLARED +/* 16 */ +EXTERN double Tk_CanvasPsY (Tk_Canvas canvas, double y); +#endif +#ifndef Tk_CanvasSetStippleOrigin_TCL_DECLARED +#define Tk_CanvasSetStippleOrigin_TCL_DECLARED +/* 17 */ +EXTERN void Tk_CanvasSetStippleOrigin (Tk_Canvas canvas, GC gc); +#endif +#ifndef Tk_CanvasTagsParseProc_TCL_DECLARED +#define Tk_CanvasTagsParseProc_TCL_DECLARED +/* 18 */ +EXTERN int Tk_CanvasTagsParseProc (ClientData clientData, + Tcl_Interp * interp, Tk_Window tkwin, + CONST char * value, char * widgRec, + int offset); +#endif +#ifndef Tk_CanvasTagsPrintProc_TCL_DECLARED +#define Tk_CanvasTagsPrintProc_TCL_DECLARED +/* 19 */ +EXTERN char * Tk_CanvasTagsPrintProc (ClientData clientData, + Tk_Window tkwin, char * widgRec, int offset, + Tcl_FreeProc ** freeProcPtr); +#endif +#ifndef Tk_CanvasTkwin_TCL_DECLARED +#define Tk_CanvasTkwin_TCL_DECLARED +/* 20 */ +EXTERN Tk_Window Tk_CanvasTkwin (Tk_Canvas canvas); +#endif +#ifndef Tk_CanvasWindowCoords_TCL_DECLARED +#define Tk_CanvasWindowCoords_TCL_DECLARED +/* 21 */ +EXTERN void Tk_CanvasWindowCoords (Tk_Canvas canvas, double x, + double y, short * screenXPtr, + short * screenYPtr); +#endif +#ifndef Tk_ChangeWindowAttributes_TCL_DECLARED +#define Tk_ChangeWindowAttributes_TCL_DECLARED +/* 22 */ +EXTERN void Tk_ChangeWindowAttributes (Tk_Window tkwin, + unsigned long valueMask, + XSetWindowAttributes * attsPtr); +#endif +#ifndef Tk_CharBbox_TCL_DECLARED +#define Tk_CharBbox_TCL_DECLARED +/* 23 */ +EXTERN int Tk_CharBbox (Tk_TextLayout layout, int index, + int * xPtr, int * yPtr, int * widthPtr, + int * heightPtr); +#endif +#ifndef Tk_ClearSelection_TCL_DECLARED +#define Tk_ClearSelection_TCL_DECLARED +/* 24 */ +EXTERN void Tk_ClearSelection (Tk_Window tkwin, Atom selection); +#endif +#ifndef Tk_ClipboardAppend_TCL_DECLARED +#define Tk_ClipboardAppend_TCL_DECLARED +/* 25 */ +EXTERN int Tk_ClipboardAppend (Tcl_Interp * interp, + Tk_Window tkwin, Atom target, Atom format, + char* buffer); +#endif +#ifndef Tk_ClipboardClear_TCL_DECLARED +#define Tk_ClipboardClear_TCL_DECLARED +/* 26 */ +EXTERN int Tk_ClipboardClear (Tcl_Interp * interp, + Tk_Window tkwin); +#endif +#ifndef Tk_ConfigureInfo_TCL_DECLARED +#define Tk_ConfigureInfo_TCL_DECLARED +/* 27 */ +EXTERN int Tk_ConfigureInfo (Tcl_Interp * interp, + Tk_Window tkwin, Tk_ConfigSpec * specs, + char * widgRec, CONST char * argvName, + int flags); +#endif +#ifndef Tk_ConfigureValue_TCL_DECLARED +#define Tk_ConfigureValue_TCL_DECLARED +/* 28 */ +EXTERN int Tk_ConfigureValue (Tcl_Interp * interp, + Tk_Window tkwin, Tk_ConfigSpec * specs, + char * widgRec, CONST char * argvName, + int flags); +#endif +#ifndef Tk_ConfigureWidget_TCL_DECLARED +#define Tk_ConfigureWidget_TCL_DECLARED +/* 29 */ +EXTERN int Tk_ConfigureWidget (Tcl_Interp * interp, + Tk_Window tkwin, Tk_ConfigSpec * specs, + int argc, CONST84 char ** argv, + char * widgRec, int flags); +#endif +#ifndef Tk_ConfigureWindow_TCL_DECLARED +#define Tk_ConfigureWindow_TCL_DECLARED +/* 30 */ +EXTERN void Tk_ConfigureWindow (Tk_Window tkwin, + unsigned int valueMask, + XWindowChanges * valuePtr); +#endif +#ifndef Tk_ComputeTextLayout_TCL_DECLARED +#define Tk_ComputeTextLayout_TCL_DECLARED +/* 31 */ +EXTERN Tk_TextLayout Tk_ComputeTextLayout (Tk_Font font, CONST char * str, + int numChars, int wrapLength, + Tk_Justify justify, int flags, + int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_CoordsToWindow_TCL_DECLARED +#define Tk_CoordsToWindow_TCL_DECLARED +/* 32 */ +EXTERN Tk_Window Tk_CoordsToWindow (int rootX, int rootY, + Tk_Window tkwin); +#endif +#ifndef Tk_CreateBinding_TCL_DECLARED +#define Tk_CreateBinding_TCL_DECLARED +/* 33 */ +EXTERN unsigned long Tk_CreateBinding (Tcl_Interp * interp, + Tk_BindingTable bindingTable, + ClientData object, CONST char * eventStr, + CONST char * command, int append); +#endif +#ifndef Tk_CreateBindingTable_TCL_DECLARED +#define Tk_CreateBindingTable_TCL_DECLARED +/* 34 */ +EXTERN Tk_BindingTable Tk_CreateBindingTable (Tcl_Interp * interp); +#endif +#ifndef Tk_CreateErrorHandler_TCL_DECLARED +#define Tk_CreateErrorHandler_TCL_DECLARED +/* 35 */ +EXTERN Tk_ErrorHandler Tk_CreateErrorHandler (Display * display, int errNum, + int request, int minorCode, + Tk_ErrorProc * errorProc, + ClientData clientData); +#endif +#ifndef Tk_CreateEventHandler_TCL_DECLARED +#define Tk_CreateEventHandler_TCL_DECLARED +/* 36 */ +EXTERN void Tk_CreateEventHandler (Tk_Window token, + unsigned long mask, Tk_EventProc * proc, + ClientData clientData); +#endif +#ifndef Tk_CreateGenericHandler_TCL_DECLARED +#define Tk_CreateGenericHandler_TCL_DECLARED +/* 37 */ +EXTERN void Tk_CreateGenericHandler (Tk_GenericProc * proc, + ClientData clientData); +#endif +#ifndef Tk_CreateImageType_TCL_DECLARED +#define Tk_CreateImageType_TCL_DECLARED +/* 38 */ +EXTERN void Tk_CreateImageType (Tk_ImageType * typePtr); +#endif +#ifndef Tk_CreateItemType_TCL_DECLARED +#define Tk_CreateItemType_TCL_DECLARED +/* 39 */ +EXTERN void Tk_CreateItemType (Tk_ItemType * typePtr); +#endif +#ifndef Tk_CreatePhotoImageFormat_TCL_DECLARED +#define Tk_CreatePhotoImageFormat_TCL_DECLARED +/* 40 */ +EXTERN void Tk_CreatePhotoImageFormat ( + Tk_PhotoImageFormat * formatPtr); +#endif +#ifndef Tk_CreateSelHandler_TCL_DECLARED +#define Tk_CreateSelHandler_TCL_DECLARED +/* 41 */ +EXTERN void Tk_CreateSelHandler (Tk_Window tkwin, Atom selection, + Atom target, Tk_SelectionProc * proc, + ClientData clientData, Atom format); +#endif +#ifndef Tk_CreateWindow_TCL_DECLARED +#define Tk_CreateWindow_TCL_DECLARED +/* 42 */ +EXTERN Tk_Window Tk_CreateWindow (Tcl_Interp * interp, + Tk_Window parent, CONST char * name, + CONST char * screenName); +#endif +#ifndef Tk_CreateWindowFromPath_TCL_DECLARED +#define Tk_CreateWindowFromPath_TCL_DECLARED +/* 43 */ +EXTERN Tk_Window Tk_CreateWindowFromPath (Tcl_Interp * interp, + Tk_Window tkwin, CONST char * pathName, + CONST char * screenName); +#endif +#ifndef Tk_DefineBitmap_TCL_DECLARED +#define Tk_DefineBitmap_TCL_DECLARED +/* 44 */ +EXTERN int Tk_DefineBitmap (Tcl_Interp * interp, + CONST char * name, CONST char * source, + int width, int height); +#endif +#ifndef Tk_DefineCursor_TCL_DECLARED +#define Tk_DefineCursor_TCL_DECLARED +/* 45 */ +EXTERN void Tk_DefineCursor (Tk_Window window, Tk_Cursor cursor); +#endif +#ifndef Tk_DeleteAllBindings_TCL_DECLARED +#define Tk_DeleteAllBindings_TCL_DECLARED +/* 46 */ +EXTERN void Tk_DeleteAllBindings (Tk_BindingTable bindingTable, + ClientData object); +#endif +#ifndef Tk_DeleteBinding_TCL_DECLARED +#define Tk_DeleteBinding_TCL_DECLARED +/* 47 */ +EXTERN int Tk_DeleteBinding (Tcl_Interp * interp, + Tk_BindingTable bindingTable, + ClientData object, CONST char * eventStr); +#endif +#ifndef Tk_DeleteBindingTable_TCL_DECLARED +#define Tk_DeleteBindingTable_TCL_DECLARED +/* 48 */ +EXTERN void Tk_DeleteBindingTable (Tk_BindingTable bindingTable); +#endif +#ifndef Tk_DeleteErrorHandler_TCL_DECLARED +#define Tk_DeleteErrorHandler_TCL_DECLARED +/* 49 */ +EXTERN void Tk_DeleteErrorHandler (Tk_ErrorHandler handler); +#endif +#ifndef Tk_DeleteEventHandler_TCL_DECLARED +#define Tk_DeleteEventHandler_TCL_DECLARED +/* 50 */ +EXTERN void Tk_DeleteEventHandler (Tk_Window token, + unsigned long mask, Tk_EventProc * proc, + ClientData clientData); +#endif +#ifndef Tk_DeleteGenericHandler_TCL_DECLARED +#define Tk_DeleteGenericHandler_TCL_DECLARED +/* 51 */ +EXTERN void Tk_DeleteGenericHandler (Tk_GenericProc * proc, + ClientData clientData); +#endif +#ifndef Tk_DeleteImage_TCL_DECLARED +#define Tk_DeleteImage_TCL_DECLARED +/* 52 */ +EXTERN void Tk_DeleteImage (Tcl_Interp * interp, + CONST char * name); +#endif +#ifndef Tk_DeleteSelHandler_TCL_DECLARED +#define Tk_DeleteSelHandler_TCL_DECLARED +/* 53 */ +EXTERN void Tk_DeleteSelHandler (Tk_Window tkwin, Atom selection, + Atom target); +#endif +#ifndef Tk_DestroyWindow_TCL_DECLARED +#define Tk_DestroyWindow_TCL_DECLARED +/* 54 */ +EXTERN void Tk_DestroyWindow (Tk_Window tkwin); +#endif +#ifndef Tk_DisplayName_TCL_DECLARED +#define Tk_DisplayName_TCL_DECLARED +/* 55 */ +EXTERN CONST84_RETURN char * Tk_DisplayName (Tk_Window tkwin); +#endif +#ifndef Tk_DistanceToTextLayout_TCL_DECLARED +#define Tk_DistanceToTextLayout_TCL_DECLARED +/* 56 */ +EXTERN int Tk_DistanceToTextLayout (Tk_TextLayout layout, int x, + int y); +#endif +#ifndef Tk_Draw3DPolygon_TCL_DECLARED +#define Tk_Draw3DPolygon_TCL_DECLARED +/* 57 */ +EXTERN void Tk_Draw3DPolygon (Tk_Window tkwin, Drawable drawable, + Tk_3DBorder border, XPoint * pointPtr, + int numPoints, int borderWidth, + int leftRelief); +#endif +#ifndef Tk_Draw3DRectangle_TCL_DECLARED +#define Tk_Draw3DRectangle_TCL_DECLARED +/* 58 */ +EXTERN void Tk_Draw3DRectangle (Tk_Window tkwin, + Drawable drawable, Tk_3DBorder border, int x, + int y, int width, int height, + int borderWidth, int relief); +#endif +#ifndef Tk_DrawChars_TCL_DECLARED +#define Tk_DrawChars_TCL_DECLARED +/* 59 */ +EXTERN void Tk_DrawChars (Display * display, Drawable drawable, + GC gc, Tk_Font tkfont, CONST char * source, + int numBytes, int x, int y); +#endif +#ifndef Tk_DrawFocusHighlight_TCL_DECLARED +#define Tk_DrawFocusHighlight_TCL_DECLARED +/* 60 */ +EXTERN void Tk_DrawFocusHighlight (Tk_Window tkwin, GC gc, + int width, Drawable drawable); +#endif +#ifndef Tk_DrawTextLayout_TCL_DECLARED +#define Tk_DrawTextLayout_TCL_DECLARED +/* 61 */ +EXTERN void Tk_DrawTextLayout (Display * display, + Drawable drawable, GC gc, + Tk_TextLayout layout, int x, int y, + int firstChar, int lastChar); +#endif +#ifndef Tk_Fill3DPolygon_TCL_DECLARED +#define Tk_Fill3DPolygon_TCL_DECLARED +/* 62 */ +EXTERN void Tk_Fill3DPolygon (Tk_Window tkwin, Drawable drawable, + Tk_3DBorder border, XPoint * pointPtr, + int numPoints, int borderWidth, + int leftRelief); +#endif +#ifndef Tk_Fill3DRectangle_TCL_DECLARED +#define Tk_Fill3DRectangle_TCL_DECLARED +/* 63 */ +EXTERN void Tk_Fill3DRectangle (Tk_Window tkwin, + Drawable drawable, Tk_3DBorder border, int x, + int y, int width, int height, + int borderWidth, int relief); +#endif +#ifndef Tk_FindPhoto_TCL_DECLARED +#define Tk_FindPhoto_TCL_DECLARED +/* 64 */ +EXTERN Tk_PhotoHandle Tk_FindPhoto (Tcl_Interp * interp, + CONST char * imageName); +#endif +#ifndef Tk_FontId_TCL_DECLARED +#define Tk_FontId_TCL_DECLARED +/* 65 */ +EXTERN Font Tk_FontId (Tk_Font font); +#endif +#ifndef Tk_Free3DBorder_TCL_DECLARED +#define Tk_Free3DBorder_TCL_DECLARED +/* 66 */ +EXTERN void Tk_Free3DBorder (Tk_3DBorder border); +#endif +#ifndef Tk_FreeBitmap_TCL_DECLARED +#define Tk_FreeBitmap_TCL_DECLARED +/* 67 */ +EXTERN void Tk_FreeBitmap (Display * display, Pixmap bitmap); +#endif +#ifndef Tk_FreeColor_TCL_DECLARED +#define Tk_FreeColor_TCL_DECLARED +/* 68 */ +EXTERN void Tk_FreeColor (XColor * colorPtr); +#endif +#ifndef Tk_FreeColormap_TCL_DECLARED +#define Tk_FreeColormap_TCL_DECLARED +/* 69 */ +EXTERN void Tk_FreeColormap (Display * display, + Colormap colormap); +#endif +#ifndef Tk_FreeCursor_TCL_DECLARED +#define Tk_FreeCursor_TCL_DECLARED +/* 70 */ +EXTERN void Tk_FreeCursor (Display * display, Tk_Cursor cursor); +#endif +#ifndef Tk_FreeFont_TCL_DECLARED +#define Tk_FreeFont_TCL_DECLARED +/* 71 */ +EXTERN void Tk_FreeFont (Tk_Font f); +#endif +#ifndef Tk_FreeGC_TCL_DECLARED +#define Tk_FreeGC_TCL_DECLARED +/* 72 */ +EXTERN void Tk_FreeGC (Display * display, GC gc); +#endif +#ifndef Tk_FreeImage_TCL_DECLARED +#define Tk_FreeImage_TCL_DECLARED +/* 73 */ +EXTERN void Tk_FreeImage (Tk_Image image); +#endif +#ifndef Tk_FreeOptions_TCL_DECLARED +#define Tk_FreeOptions_TCL_DECLARED +/* 74 */ +EXTERN void Tk_FreeOptions (Tk_ConfigSpec * specs, + char * widgRec, Display * display, + int needFlags); +#endif +#ifndef Tk_FreePixmap_TCL_DECLARED +#define Tk_FreePixmap_TCL_DECLARED +/* 75 */ +EXTERN void Tk_FreePixmap (Display * display, Pixmap pixmap); +#endif +#ifndef Tk_FreeTextLayout_TCL_DECLARED +#define Tk_FreeTextLayout_TCL_DECLARED +/* 76 */ +EXTERN void Tk_FreeTextLayout (Tk_TextLayout textLayout); +#endif +#ifndef Tk_FreeXId_TCL_DECLARED +#define Tk_FreeXId_TCL_DECLARED +/* 77 */ +EXTERN void Tk_FreeXId (Display * display, XID xid); +#endif +#ifndef Tk_GCForColor_TCL_DECLARED +#define Tk_GCForColor_TCL_DECLARED +/* 78 */ +EXTERN GC Tk_GCForColor (XColor * colorPtr, Drawable drawable); +#endif +#ifndef Tk_GeometryRequest_TCL_DECLARED +#define Tk_GeometryRequest_TCL_DECLARED +/* 79 */ +EXTERN void Tk_GeometryRequest (Tk_Window tkwin, int reqWidth, + int reqHeight); +#endif +#ifndef Tk_Get3DBorder_TCL_DECLARED +#define Tk_Get3DBorder_TCL_DECLARED +/* 80 */ +EXTERN Tk_3DBorder Tk_Get3DBorder (Tcl_Interp * interp, Tk_Window tkwin, + Tk_Uid colorName); +#endif +#ifndef Tk_GetAllBindings_TCL_DECLARED +#define Tk_GetAllBindings_TCL_DECLARED +/* 81 */ +EXTERN void Tk_GetAllBindings (Tcl_Interp * interp, + Tk_BindingTable bindingTable, + ClientData object); +#endif +#ifndef Tk_GetAnchor_TCL_DECLARED +#define Tk_GetAnchor_TCL_DECLARED +/* 82 */ +EXTERN int Tk_GetAnchor (Tcl_Interp * interp, CONST char * str, + Tk_Anchor * anchorPtr); +#endif +#ifndef Tk_GetAtomName_TCL_DECLARED +#define Tk_GetAtomName_TCL_DECLARED +/* 83 */ +EXTERN CONST84_RETURN char * Tk_GetAtomName (Tk_Window tkwin, Atom atom); +#endif +#ifndef Tk_GetBinding_TCL_DECLARED +#define Tk_GetBinding_TCL_DECLARED +/* 84 */ +EXTERN CONST84_RETURN char * Tk_GetBinding (Tcl_Interp * interp, + Tk_BindingTable bindingTable, + ClientData object, CONST char * eventStr); +#endif +#ifndef Tk_GetBitmap_TCL_DECLARED +#define Tk_GetBitmap_TCL_DECLARED +/* 85 */ +EXTERN Pixmap Tk_GetBitmap (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str); +#endif +#ifndef Tk_GetBitmapFromData_TCL_DECLARED +#define Tk_GetBitmapFromData_TCL_DECLARED +/* 86 */ +EXTERN Pixmap Tk_GetBitmapFromData (Tcl_Interp * interp, + Tk_Window tkwin, CONST char * source, + int width, int height); +#endif +#ifndef Tk_GetCapStyle_TCL_DECLARED +#define Tk_GetCapStyle_TCL_DECLARED +/* 87 */ +EXTERN int Tk_GetCapStyle (Tcl_Interp * interp, + CONST char * str, int * capPtr); +#endif +#ifndef Tk_GetColor_TCL_DECLARED +#define Tk_GetColor_TCL_DECLARED +/* 88 */ +EXTERN XColor * Tk_GetColor (Tcl_Interp * interp, Tk_Window tkwin, + Tk_Uid name); +#endif +#ifndef Tk_GetColorByValue_TCL_DECLARED +#define Tk_GetColorByValue_TCL_DECLARED +/* 89 */ +EXTERN XColor * Tk_GetColorByValue (Tk_Window tkwin, + XColor * colorPtr); +#endif +#ifndef Tk_GetColormap_TCL_DECLARED +#define Tk_GetColormap_TCL_DECLARED +/* 90 */ +EXTERN Colormap Tk_GetColormap (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str); +#endif +#ifndef Tk_GetCursor_TCL_DECLARED +#define Tk_GetCursor_TCL_DECLARED +/* 91 */ +EXTERN Tk_Cursor Tk_GetCursor (Tcl_Interp * interp, Tk_Window tkwin, + Tk_Uid str); +#endif +#ifndef Tk_GetCursorFromData_TCL_DECLARED +#define Tk_GetCursorFromData_TCL_DECLARED +/* 92 */ +EXTERN Tk_Cursor Tk_GetCursorFromData (Tcl_Interp * interp, + Tk_Window tkwin, CONST char * source, + CONST char * mask, int width, int height, + int xHot, int yHot, Tk_Uid fg, Tk_Uid bg); +#endif +#ifndef Tk_GetFont_TCL_DECLARED +#define Tk_GetFont_TCL_DECLARED +/* 93 */ +EXTERN Tk_Font Tk_GetFont (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str); +#endif +#ifndef Tk_GetFontFromObj_TCL_DECLARED +#define Tk_GetFontFromObj_TCL_DECLARED +/* 94 */ +EXTERN Tk_Font Tk_GetFontFromObj (Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetFontMetrics_TCL_DECLARED +#define Tk_GetFontMetrics_TCL_DECLARED +/* 95 */ +EXTERN void Tk_GetFontMetrics (Tk_Font font, + Tk_FontMetrics * fmPtr); +#endif +#ifndef Tk_GetGC_TCL_DECLARED +#define Tk_GetGC_TCL_DECLARED +/* 96 */ +EXTERN GC Tk_GetGC (Tk_Window tkwin, unsigned long valueMask, + XGCValues * valuePtr); +#endif +#ifndef Tk_GetImage_TCL_DECLARED +#define Tk_GetImage_TCL_DECLARED +/* 97 */ +EXTERN Tk_Image Tk_GetImage (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * name, + Tk_ImageChangedProc * changeProc, + ClientData clientData); +#endif +#ifndef Tk_GetImageMasterData_TCL_DECLARED +#define Tk_GetImageMasterData_TCL_DECLARED +/* 98 */ +EXTERN ClientData Tk_GetImageMasterData (Tcl_Interp * interp, + CONST char * name, + Tk_ImageType ** typePtrPtr); +#endif +#ifndef Tk_GetItemTypes_TCL_DECLARED +#define Tk_GetItemTypes_TCL_DECLARED +/* 99 */ +EXTERN Tk_ItemType * Tk_GetItemTypes (void); +#endif +#ifndef Tk_GetJoinStyle_TCL_DECLARED +#define Tk_GetJoinStyle_TCL_DECLARED +/* 100 */ +EXTERN int Tk_GetJoinStyle (Tcl_Interp * interp, + CONST char * str, int * joinPtr); +#endif +#ifndef Tk_GetJustify_TCL_DECLARED +#define Tk_GetJustify_TCL_DECLARED +/* 101 */ +EXTERN int Tk_GetJustify (Tcl_Interp * interp, CONST char * str, + Tk_Justify * justifyPtr); +#endif +#ifndef Tk_GetNumMainWindows_TCL_DECLARED +#define Tk_GetNumMainWindows_TCL_DECLARED +/* 102 */ +EXTERN int Tk_GetNumMainWindows (void); +#endif +#ifndef Tk_GetOption_TCL_DECLARED +#define Tk_GetOption_TCL_DECLARED +/* 103 */ +EXTERN Tk_Uid Tk_GetOption (Tk_Window tkwin, CONST char * name, + CONST char * className); +#endif +#ifndef Tk_GetPixels_TCL_DECLARED +#define Tk_GetPixels_TCL_DECLARED +/* 104 */ +EXTERN int Tk_GetPixels (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str, int * intPtr); +#endif +#ifndef Tk_GetPixmap_TCL_DECLARED +#define Tk_GetPixmap_TCL_DECLARED +/* 105 */ +EXTERN Pixmap Tk_GetPixmap (Display * display, Drawable d, + int width, int height, int depth); +#endif +#ifndef Tk_GetRelief_TCL_DECLARED +#define Tk_GetRelief_TCL_DECLARED +/* 106 */ +EXTERN int Tk_GetRelief (Tcl_Interp * interp, CONST char * name, + int * reliefPtr); +#endif +#ifndef Tk_GetRootCoords_TCL_DECLARED +#define Tk_GetRootCoords_TCL_DECLARED +/* 107 */ +EXTERN void Tk_GetRootCoords (Tk_Window tkwin, int * xPtr, + int * yPtr); +#endif +#ifndef Tk_GetScrollInfo_TCL_DECLARED +#define Tk_GetScrollInfo_TCL_DECLARED +/* 108 */ +EXTERN int Tk_GetScrollInfo (Tcl_Interp * interp, int argc, + CONST84 char ** argv, double * dblPtr, + int * intPtr); +#endif +#ifndef Tk_GetScreenMM_TCL_DECLARED +#define Tk_GetScreenMM_TCL_DECLARED +/* 109 */ +EXTERN int Tk_GetScreenMM (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str, double * doublePtr); +#endif +#ifndef Tk_GetSelection_TCL_DECLARED +#define Tk_GetSelection_TCL_DECLARED +/* 110 */ +EXTERN int Tk_GetSelection (Tcl_Interp * interp, + Tk_Window tkwin, Atom selection, Atom target, + Tk_GetSelProc * proc, ClientData clientData); +#endif +#ifndef Tk_GetUid_TCL_DECLARED +#define Tk_GetUid_TCL_DECLARED +/* 111 */ +EXTERN Tk_Uid Tk_GetUid (CONST char * str); +#endif +#ifndef Tk_GetVisual_TCL_DECLARED +#define Tk_GetVisual_TCL_DECLARED +/* 112 */ +EXTERN Visual * Tk_GetVisual (Tcl_Interp * interp, Tk_Window tkwin, + CONST char * str, int * depthPtr, + Colormap * colormapPtr); +#endif +#ifndef Tk_GetVRootGeometry_TCL_DECLARED +#define Tk_GetVRootGeometry_TCL_DECLARED +/* 113 */ +EXTERN void Tk_GetVRootGeometry (Tk_Window tkwin, int * xPtr, + int * yPtr, int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_Grab_TCL_DECLARED +#define Tk_Grab_TCL_DECLARED +/* 114 */ +EXTERN int Tk_Grab (Tcl_Interp * interp, Tk_Window tkwin, + int grabGlobal); +#endif +#ifndef Tk_HandleEvent_TCL_DECLARED +#define Tk_HandleEvent_TCL_DECLARED +/* 115 */ +EXTERN void Tk_HandleEvent (XEvent * eventPtr); +#endif +#ifndef Tk_IdToWindow_TCL_DECLARED +#define Tk_IdToWindow_TCL_DECLARED +/* 116 */ +EXTERN Tk_Window Tk_IdToWindow (Display * display, Window window); +#endif +#ifndef Tk_ImageChanged_TCL_DECLARED +#define Tk_ImageChanged_TCL_DECLARED +/* 117 */ +EXTERN void Tk_ImageChanged (Tk_ImageMaster master, int x, int y, + int width, int height, int imageWidth, + int imageHeight); +#endif +#ifndef Tk_Init_TCL_DECLARED +#define Tk_Init_TCL_DECLARED +/* 118 */ +EXTERN int Tk_Init (Tcl_Interp * interp); +#endif +#ifndef Tk_InternAtom_TCL_DECLARED +#define Tk_InternAtom_TCL_DECLARED +/* 119 */ +EXTERN Atom Tk_InternAtom (Tk_Window tkwin, CONST char * name); +#endif +#ifndef Tk_IntersectTextLayout_TCL_DECLARED +#define Tk_IntersectTextLayout_TCL_DECLARED +/* 120 */ +EXTERN int Tk_IntersectTextLayout (Tk_TextLayout layout, int x, + int y, int width, int height); +#endif +#ifndef Tk_MaintainGeometry_TCL_DECLARED +#define Tk_MaintainGeometry_TCL_DECLARED +/* 121 */ +EXTERN void Tk_MaintainGeometry (Tk_Window slave, + Tk_Window master, int x, int y, int width, + int height); +#endif +#ifndef Tk_MainWindow_TCL_DECLARED +#define Tk_MainWindow_TCL_DECLARED +/* 122 */ +EXTERN Tk_Window Tk_MainWindow (Tcl_Interp * interp); +#endif +#ifndef Tk_MakeWindowExist_TCL_DECLARED +#define Tk_MakeWindowExist_TCL_DECLARED +/* 123 */ +EXTERN void Tk_MakeWindowExist (Tk_Window tkwin); +#endif +#ifndef Tk_ManageGeometry_TCL_DECLARED +#define Tk_ManageGeometry_TCL_DECLARED +/* 124 */ +EXTERN void Tk_ManageGeometry (Tk_Window tkwin, + CONST Tk_GeomMgr * mgrPtr, + ClientData clientData); +#endif +#ifndef Tk_MapWindow_TCL_DECLARED +#define Tk_MapWindow_TCL_DECLARED +/* 125 */ +EXTERN void Tk_MapWindow (Tk_Window tkwin); +#endif +#ifndef Tk_MeasureChars_TCL_DECLARED +#define Tk_MeasureChars_TCL_DECLARED +/* 126 */ +EXTERN int Tk_MeasureChars (Tk_Font tkfont, CONST char * source, + int numBytes, int maxPixels, int flags, + int * lengthPtr); +#endif +#ifndef Tk_MoveResizeWindow_TCL_DECLARED +#define Tk_MoveResizeWindow_TCL_DECLARED +/* 127 */ +EXTERN void Tk_MoveResizeWindow (Tk_Window tkwin, int x, int y, + int width, int height); +#endif +#ifndef Tk_MoveWindow_TCL_DECLARED +#define Tk_MoveWindow_TCL_DECLARED +/* 128 */ +EXTERN void Tk_MoveWindow (Tk_Window tkwin, int x, int y); +#endif +#ifndef Tk_MoveToplevelWindow_TCL_DECLARED +#define Tk_MoveToplevelWindow_TCL_DECLARED +/* 129 */ +EXTERN void Tk_MoveToplevelWindow (Tk_Window tkwin, int x, int y); +#endif +#ifndef Tk_NameOf3DBorder_TCL_DECLARED +#define Tk_NameOf3DBorder_TCL_DECLARED +/* 130 */ +EXTERN CONST84_RETURN char * Tk_NameOf3DBorder (Tk_3DBorder border); +#endif +#ifndef Tk_NameOfAnchor_TCL_DECLARED +#define Tk_NameOfAnchor_TCL_DECLARED +/* 131 */ +EXTERN CONST84_RETURN char * Tk_NameOfAnchor (Tk_Anchor anchor); +#endif +#ifndef Tk_NameOfBitmap_TCL_DECLARED +#define Tk_NameOfBitmap_TCL_DECLARED +/* 132 */ +EXTERN CONST84_RETURN char * Tk_NameOfBitmap (Display * display, + Pixmap bitmap); +#endif +#ifndef Tk_NameOfCapStyle_TCL_DECLARED +#define Tk_NameOfCapStyle_TCL_DECLARED +/* 133 */ +EXTERN CONST84_RETURN char * Tk_NameOfCapStyle (int cap); +#endif +#ifndef Tk_NameOfColor_TCL_DECLARED +#define Tk_NameOfColor_TCL_DECLARED +/* 134 */ +EXTERN CONST84_RETURN char * Tk_NameOfColor (XColor * colorPtr); +#endif +#ifndef Tk_NameOfCursor_TCL_DECLARED +#define Tk_NameOfCursor_TCL_DECLARED +/* 135 */ +EXTERN CONST84_RETURN char * Tk_NameOfCursor (Display * display, + Tk_Cursor cursor); +#endif +#ifndef Tk_NameOfFont_TCL_DECLARED +#define Tk_NameOfFont_TCL_DECLARED +/* 136 */ +EXTERN CONST84_RETURN char * Tk_NameOfFont (Tk_Font font); +#endif +#ifndef Tk_NameOfImage_TCL_DECLARED +#define Tk_NameOfImage_TCL_DECLARED +/* 137 */ +EXTERN CONST84_RETURN char * Tk_NameOfImage (Tk_ImageMaster imageMaster); +#endif +#ifndef Tk_NameOfJoinStyle_TCL_DECLARED +#define Tk_NameOfJoinStyle_TCL_DECLARED +/* 138 */ +EXTERN CONST84_RETURN char * Tk_NameOfJoinStyle (int join); +#endif +#ifndef Tk_NameOfJustify_TCL_DECLARED +#define Tk_NameOfJustify_TCL_DECLARED +/* 139 */ +EXTERN CONST84_RETURN char * Tk_NameOfJustify (Tk_Justify justify); +#endif +#ifndef Tk_NameOfRelief_TCL_DECLARED +#define Tk_NameOfRelief_TCL_DECLARED +/* 140 */ +EXTERN CONST84_RETURN char * Tk_NameOfRelief (int relief); +#endif +#ifndef Tk_NameToWindow_TCL_DECLARED +#define Tk_NameToWindow_TCL_DECLARED +/* 141 */ +EXTERN Tk_Window Tk_NameToWindow (Tcl_Interp * interp, + CONST char * pathName, Tk_Window tkwin); +#endif +#ifndef Tk_OwnSelection_TCL_DECLARED +#define Tk_OwnSelection_TCL_DECLARED +/* 142 */ +EXTERN void Tk_OwnSelection (Tk_Window tkwin, Atom selection, + Tk_LostSelProc * proc, ClientData clientData); +#endif +#ifndef Tk_ParseArgv_TCL_DECLARED +#define Tk_ParseArgv_TCL_DECLARED +/* 143 */ +EXTERN int Tk_ParseArgv (Tcl_Interp * interp, Tk_Window tkwin, + int * argcPtr, CONST84 char ** argv, + Tk_ArgvInfo * argTable, int flags); +#endif +#ifndef Tk_PhotoPutBlock_NoComposite_TCL_DECLARED +#define Tk_PhotoPutBlock_NoComposite_TCL_DECLARED +/* 144 */ +EXTERN void Tk_PhotoPutBlock_NoComposite (Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height); +#endif +#ifndef Tk_PhotoPutZoomedBlock_NoComposite_TCL_DECLARED +#define Tk_PhotoPutZoomedBlock_NoComposite_TCL_DECLARED +/* 145 */ +EXTERN void Tk_PhotoPutZoomedBlock_NoComposite ( + Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height, int zoomX, int zoomY, + int subsampleX, int subsampleY); +#endif +#ifndef Tk_PhotoGetImage_TCL_DECLARED +#define Tk_PhotoGetImage_TCL_DECLARED +/* 146 */ +EXTERN int Tk_PhotoGetImage (Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr); +#endif +#ifndef Tk_PhotoBlank_TCL_DECLARED +#define Tk_PhotoBlank_TCL_DECLARED +/* 147 */ +EXTERN void Tk_PhotoBlank (Tk_PhotoHandle handle); +#endif +#ifndef Tk_PhotoExpand_Panic_TCL_DECLARED +#define Tk_PhotoExpand_Panic_TCL_DECLARED +/* 148 */ +EXTERN void Tk_PhotoExpand_Panic (Tk_PhotoHandle handle, + int width, int height); +#endif +#ifndef Tk_PhotoGetSize_TCL_DECLARED +#define Tk_PhotoGetSize_TCL_DECLARED +/* 149 */ +EXTERN void Tk_PhotoGetSize (Tk_PhotoHandle handle, + int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_PhotoSetSize_Panic_TCL_DECLARED +#define Tk_PhotoSetSize_Panic_TCL_DECLARED +/* 150 */ +EXTERN void Tk_PhotoSetSize_Panic (Tk_PhotoHandle handle, + int width, int height); +#endif +#ifndef Tk_PointToChar_TCL_DECLARED +#define Tk_PointToChar_TCL_DECLARED +/* 151 */ +EXTERN int Tk_PointToChar (Tk_TextLayout layout, int x, int y); +#endif +#ifndef Tk_PostscriptFontName_TCL_DECLARED +#define Tk_PostscriptFontName_TCL_DECLARED +/* 152 */ +EXTERN int Tk_PostscriptFontName (Tk_Font tkfont, + Tcl_DString * dsPtr); +#endif +#ifndef Tk_PreserveColormap_TCL_DECLARED +#define Tk_PreserveColormap_TCL_DECLARED +/* 153 */ +EXTERN void Tk_PreserveColormap (Display * display, + Colormap colormap); +#endif +#ifndef Tk_QueueWindowEvent_TCL_DECLARED +#define Tk_QueueWindowEvent_TCL_DECLARED +/* 154 */ +EXTERN void Tk_QueueWindowEvent (XEvent * eventPtr, + Tcl_QueuePosition position); +#endif +#ifndef Tk_RedrawImage_TCL_DECLARED +#define Tk_RedrawImage_TCL_DECLARED +/* 155 */ +EXTERN void Tk_RedrawImage (Tk_Image image, int imageX, + int imageY, int width, int height, + Drawable drawable, int drawableX, + int drawableY); +#endif +#ifndef Tk_ResizeWindow_TCL_DECLARED +#define Tk_ResizeWindow_TCL_DECLARED +/* 156 */ +EXTERN void Tk_ResizeWindow (Tk_Window tkwin, int width, + int height); +#endif +#ifndef Tk_RestackWindow_TCL_DECLARED +#define Tk_RestackWindow_TCL_DECLARED +/* 157 */ +EXTERN int Tk_RestackWindow (Tk_Window tkwin, int aboveBelow, + Tk_Window other); +#endif +#ifndef Tk_RestrictEvents_TCL_DECLARED +#define Tk_RestrictEvents_TCL_DECLARED +/* 158 */ +EXTERN Tk_RestrictProc * Tk_RestrictEvents (Tk_RestrictProc * proc, + ClientData arg, ClientData * prevArgPtr); +#endif +#ifndef Tk_SafeInit_TCL_DECLARED +#define Tk_SafeInit_TCL_DECLARED +/* 159 */ +EXTERN int Tk_SafeInit (Tcl_Interp * interp); +#endif +#ifndef Tk_SetAppName_TCL_DECLARED +#define Tk_SetAppName_TCL_DECLARED +/* 160 */ +EXTERN CONST char * Tk_SetAppName (Tk_Window tkwin, CONST char * name); +#endif +#ifndef Tk_SetBackgroundFromBorder_TCL_DECLARED +#define Tk_SetBackgroundFromBorder_TCL_DECLARED +/* 161 */ +EXTERN void Tk_SetBackgroundFromBorder (Tk_Window tkwin, + Tk_3DBorder border); +#endif +#ifndef Tk_SetClass_TCL_DECLARED +#define Tk_SetClass_TCL_DECLARED +/* 162 */ +EXTERN void Tk_SetClass (Tk_Window tkwin, CONST char * className); +#endif +#ifndef Tk_SetGrid_TCL_DECLARED +#define Tk_SetGrid_TCL_DECLARED +/* 163 */ +EXTERN void Tk_SetGrid (Tk_Window tkwin, int reqWidth, + int reqHeight, int gridWidth, int gridHeight); +#endif +#ifndef Tk_SetInternalBorder_TCL_DECLARED +#define Tk_SetInternalBorder_TCL_DECLARED +/* 164 */ +EXTERN void Tk_SetInternalBorder (Tk_Window tkwin, int width); +#endif +#ifndef Tk_SetWindowBackground_TCL_DECLARED +#define Tk_SetWindowBackground_TCL_DECLARED +/* 165 */ +EXTERN void Tk_SetWindowBackground (Tk_Window tkwin, + unsigned long pixel); +#endif +#ifndef Tk_SetWindowBackgroundPixmap_TCL_DECLARED +#define Tk_SetWindowBackgroundPixmap_TCL_DECLARED +/* 166 */ +EXTERN void Tk_SetWindowBackgroundPixmap (Tk_Window tkwin, + Pixmap pixmap); +#endif +#ifndef Tk_SetWindowBorder_TCL_DECLARED +#define Tk_SetWindowBorder_TCL_DECLARED +/* 167 */ +EXTERN void Tk_SetWindowBorder (Tk_Window tkwin, + unsigned long pixel); +#endif +#ifndef Tk_SetWindowBorderWidth_TCL_DECLARED +#define Tk_SetWindowBorderWidth_TCL_DECLARED +/* 168 */ +EXTERN void Tk_SetWindowBorderWidth (Tk_Window tkwin, int width); +#endif +#ifndef Tk_SetWindowBorderPixmap_TCL_DECLARED +#define Tk_SetWindowBorderPixmap_TCL_DECLARED +/* 169 */ +EXTERN void Tk_SetWindowBorderPixmap (Tk_Window tkwin, + Pixmap pixmap); +#endif +#ifndef Tk_SetWindowColormap_TCL_DECLARED +#define Tk_SetWindowColormap_TCL_DECLARED +/* 170 */ +EXTERN void Tk_SetWindowColormap (Tk_Window tkwin, + Colormap colormap); +#endif +#ifndef Tk_SetWindowVisual_TCL_DECLARED +#define Tk_SetWindowVisual_TCL_DECLARED +/* 171 */ +EXTERN int Tk_SetWindowVisual (Tk_Window tkwin, Visual * visual, + int depth, Colormap colormap); +#endif +#ifndef Tk_SizeOfBitmap_TCL_DECLARED +#define Tk_SizeOfBitmap_TCL_DECLARED +/* 172 */ +EXTERN void Tk_SizeOfBitmap (Display * display, Pixmap bitmap, + int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_SizeOfImage_TCL_DECLARED +#define Tk_SizeOfImage_TCL_DECLARED +/* 173 */ +EXTERN void Tk_SizeOfImage (Tk_Image image, int * widthPtr, + int * heightPtr); +#endif +#ifndef Tk_StrictMotif_TCL_DECLARED +#define Tk_StrictMotif_TCL_DECLARED +/* 174 */ +EXTERN int Tk_StrictMotif (Tk_Window tkwin); +#endif +#ifndef Tk_TextLayoutToPostscript_TCL_DECLARED +#define Tk_TextLayoutToPostscript_TCL_DECLARED +/* 175 */ +EXTERN void Tk_TextLayoutToPostscript (Tcl_Interp * interp, + Tk_TextLayout layout); +#endif +#ifndef Tk_TextWidth_TCL_DECLARED +#define Tk_TextWidth_TCL_DECLARED +/* 176 */ +EXTERN int Tk_TextWidth (Tk_Font font, CONST char * str, + int numBytes); +#endif +#ifndef Tk_UndefineCursor_TCL_DECLARED +#define Tk_UndefineCursor_TCL_DECLARED +/* 177 */ +EXTERN void Tk_UndefineCursor (Tk_Window window); +#endif +#ifndef Tk_UnderlineChars_TCL_DECLARED +#define Tk_UnderlineChars_TCL_DECLARED +/* 178 */ +EXTERN void Tk_UnderlineChars (Display * display, + Drawable drawable, GC gc, Tk_Font tkfont, + CONST char * source, int x, int y, + int firstByte, int lastByte); +#endif +#ifndef Tk_UnderlineTextLayout_TCL_DECLARED +#define Tk_UnderlineTextLayout_TCL_DECLARED +/* 179 */ +EXTERN void Tk_UnderlineTextLayout (Display * display, + Drawable drawable, GC gc, + Tk_TextLayout layout, int x, int y, + int underline); +#endif +#ifndef Tk_Ungrab_TCL_DECLARED +#define Tk_Ungrab_TCL_DECLARED +/* 180 */ +EXTERN void Tk_Ungrab (Tk_Window tkwin); +#endif +#ifndef Tk_UnmaintainGeometry_TCL_DECLARED +#define Tk_UnmaintainGeometry_TCL_DECLARED +/* 181 */ +EXTERN void Tk_UnmaintainGeometry (Tk_Window slave, + Tk_Window master); +#endif +#ifndef Tk_UnmapWindow_TCL_DECLARED +#define Tk_UnmapWindow_TCL_DECLARED +/* 182 */ +EXTERN void Tk_UnmapWindow (Tk_Window tkwin); +#endif +#ifndef Tk_UnsetGrid_TCL_DECLARED +#define Tk_UnsetGrid_TCL_DECLARED +/* 183 */ +EXTERN void Tk_UnsetGrid (Tk_Window tkwin); +#endif +#ifndef Tk_UpdatePointer_TCL_DECLARED +#define Tk_UpdatePointer_TCL_DECLARED +/* 184 */ +EXTERN void Tk_UpdatePointer (Tk_Window tkwin, int x, int y, + int state); +#endif +#ifndef Tk_AllocBitmapFromObj_TCL_DECLARED +#define Tk_AllocBitmapFromObj_TCL_DECLARED +/* 185 */ +EXTERN Pixmap Tk_AllocBitmapFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_Alloc3DBorderFromObj_TCL_DECLARED +#define Tk_Alloc3DBorderFromObj_TCL_DECLARED +/* 186 */ +EXTERN Tk_3DBorder Tk_Alloc3DBorderFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_AllocColorFromObj_TCL_DECLARED +#define Tk_AllocColorFromObj_TCL_DECLARED +/* 187 */ +EXTERN XColor * Tk_AllocColorFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_AllocCursorFromObj_TCL_DECLARED +#define Tk_AllocCursorFromObj_TCL_DECLARED +/* 188 */ +EXTERN Tk_Cursor Tk_AllocCursorFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_AllocFontFromObj_TCL_DECLARED +#define Tk_AllocFontFromObj_TCL_DECLARED +/* 189 */ +EXTERN Tk_Font Tk_AllocFontFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr); +#endif +#ifndef Tk_CreateOptionTable_TCL_DECLARED +#define Tk_CreateOptionTable_TCL_DECLARED +/* 190 */ +EXTERN Tk_OptionTable Tk_CreateOptionTable (Tcl_Interp * interp, + CONST Tk_OptionSpec * templatePtr); +#endif +#ifndef Tk_DeleteOptionTable_TCL_DECLARED +#define Tk_DeleteOptionTable_TCL_DECLARED +/* 191 */ +EXTERN void Tk_DeleteOptionTable (Tk_OptionTable optionTable); +#endif +#ifndef Tk_Free3DBorderFromObj_TCL_DECLARED +#define Tk_Free3DBorderFromObj_TCL_DECLARED +/* 192 */ +EXTERN void Tk_Free3DBorderFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_FreeBitmapFromObj_TCL_DECLARED +#define Tk_FreeBitmapFromObj_TCL_DECLARED +/* 193 */ +EXTERN void Tk_FreeBitmapFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_FreeColorFromObj_TCL_DECLARED +#define Tk_FreeColorFromObj_TCL_DECLARED +/* 194 */ +EXTERN void Tk_FreeColorFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_FreeConfigOptions_TCL_DECLARED +#define Tk_FreeConfigOptions_TCL_DECLARED +/* 195 */ +EXTERN void Tk_FreeConfigOptions (char * recordPtr, + Tk_OptionTable optionToken, Tk_Window tkwin); +#endif +#ifndef Tk_FreeSavedOptions_TCL_DECLARED +#define Tk_FreeSavedOptions_TCL_DECLARED +/* 196 */ +EXTERN void Tk_FreeSavedOptions (Tk_SavedOptions * savePtr); +#endif +#ifndef Tk_FreeCursorFromObj_TCL_DECLARED +#define Tk_FreeCursorFromObj_TCL_DECLARED +/* 197 */ +EXTERN void Tk_FreeCursorFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_FreeFontFromObj_TCL_DECLARED +#define Tk_FreeFontFromObj_TCL_DECLARED +/* 198 */ +EXTERN void Tk_FreeFontFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_Get3DBorderFromObj_TCL_DECLARED +#define Tk_Get3DBorderFromObj_TCL_DECLARED +/* 199 */ +EXTERN Tk_3DBorder Tk_Get3DBorderFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetAnchorFromObj_TCL_DECLARED +#define Tk_GetAnchorFromObj_TCL_DECLARED +/* 200 */ +EXTERN int Tk_GetAnchorFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, Tk_Anchor * anchorPtr); +#endif +#ifndef Tk_GetBitmapFromObj_TCL_DECLARED +#define Tk_GetBitmapFromObj_TCL_DECLARED +/* 201 */ +EXTERN Pixmap Tk_GetBitmapFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetColorFromObj_TCL_DECLARED +#define Tk_GetColorFromObj_TCL_DECLARED +/* 202 */ +EXTERN XColor * Tk_GetColorFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetCursorFromObj_TCL_DECLARED +#define Tk_GetCursorFromObj_TCL_DECLARED +/* 203 */ +EXTERN Tk_Cursor Tk_GetCursorFromObj (Tk_Window tkwin, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetOptionInfo_TCL_DECLARED +#define Tk_GetOptionInfo_TCL_DECLARED +/* 204 */ +EXTERN Tcl_Obj * Tk_GetOptionInfo (Tcl_Interp * interp, + char * recordPtr, Tk_OptionTable optionTable, + Tcl_Obj * namePtr, Tk_Window tkwin); +#endif +#ifndef Tk_GetOptionValue_TCL_DECLARED +#define Tk_GetOptionValue_TCL_DECLARED +/* 205 */ +EXTERN Tcl_Obj * Tk_GetOptionValue (Tcl_Interp * interp, + char * recordPtr, Tk_OptionTable optionTable, + Tcl_Obj * namePtr, Tk_Window tkwin); +#endif +#ifndef Tk_GetJustifyFromObj_TCL_DECLARED +#define Tk_GetJustifyFromObj_TCL_DECLARED +/* 206 */ +EXTERN int Tk_GetJustifyFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, Tk_Justify * justifyPtr); +#endif +#ifndef Tk_GetMMFromObj_TCL_DECLARED +#define Tk_GetMMFromObj_TCL_DECLARED +/* 207 */ +EXTERN int Tk_GetMMFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr, + double * doublePtr); +#endif +#ifndef Tk_GetPixelsFromObj_TCL_DECLARED +#define Tk_GetPixelsFromObj_TCL_DECLARED +/* 208 */ +EXTERN int Tk_GetPixelsFromObj (Tcl_Interp * interp, + Tk_Window tkwin, Tcl_Obj * objPtr, + int * intPtr); +#endif +#ifndef Tk_GetReliefFromObj_TCL_DECLARED +#define Tk_GetReliefFromObj_TCL_DECLARED +/* 209 */ +EXTERN int Tk_GetReliefFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr, int * resultPtr); +#endif +#ifndef Tk_GetScrollInfoObj_TCL_DECLARED +#define Tk_GetScrollInfoObj_TCL_DECLARED +/* 210 */ +EXTERN int Tk_GetScrollInfoObj (Tcl_Interp * interp, int objc, + Tcl_Obj *CONST objv[], double * dblPtr, + int * intPtr); +#endif +#ifndef Tk_InitOptions_TCL_DECLARED +#define Tk_InitOptions_TCL_DECLARED +/* 211 */ +EXTERN int Tk_InitOptions (Tcl_Interp * interp, + char * recordPtr, Tk_OptionTable optionToken, + Tk_Window tkwin); +#endif +#ifndef Tk_MainEx_TCL_DECLARED +#define Tk_MainEx_TCL_DECLARED +/* 212 */ +EXTERN void Tk_MainEx (int argc, char ** argv, + Tcl_AppInitProc * appInitProc, + Tcl_Interp * interp); +#endif +#ifndef Tk_RestoreSavedOptions_TCL_DECLARED +#define Tk_RestoreSavedOptions_TCL_DECLARED +/* 213 */ +EXTERN void Tk_RestoreSavedOptions (Tk_SavedOptions * savePtr); +#endif +#ifndef Tk_SetOptions_TCL_DECLARED +#define Tk_SetOptions_TCL_DECLARED +/* 214 */ +EXTERN int Tk_SetOptions (Tcl_Interp * interp, char * recordPtr, + Tk_OptionTable optionTable, int objc, + Tcl_Obj *CONST objv[], Tk_Window tkwin, + Tk_SavedOptions * savePtr, int * maskPtr); +#endif +#ifndef Tk_InitConsoleChannels_TCL_DECLARED +#define Tk_InitConsoleChannels_TCL_DECLARED +/* 215 */ +EXTERN void Tk_InitConsoleChannels (Tcl_Interp * interp); +#endif +#ifndef Tk_CreateConsoleWindow_TCL_DECLARED +#define Tk_CreateConsoleWindow_TCL_DECLARED +/* 216 */ +EXTERN int Tk_CreateConsoleWindow (Tcl_Interp * interp); +#endif +#ifndef Tk_CreateSmoothMethod_TCL_DECLARED +#define Tk_CreateSmoothMethod_TCL_DECLARED +/* 217 */ +EXTERN void Tk_CreateSmoothMethod (Tcl_Interp * interp, + Tk_SmoothMethod * method); +#endif +/* Slot 218 is reserved */ +/* Slot 219 is reserved */ +#ifndef Tk_GetDash_TCL_DECLARED +#define Tk_GetDash_TCL_DECLARED +/* 220 */ +EXTERN int Tk_GetDash (Tcl_Interp * interp, CONST char * value, + Tk_Dash * dash); +#endif +#ifndef Tk_CreateOutline_TCL_DECLARED +#define Tk_CreateOutline_TCL_DECLARED +/* 221 */ +EXTERN void Tk_CreateOutline (Tk_Outline * outline); +#endif +#ifndef Tk_DeleteOutline_TCL_DECLARED +#define Tk_DeleteOutline_TCL_DECLARED +/* 222 */ +EXTERN void Tk_DeleteOutline (Display * display, + Tk_Outline * outline); +#endif +#ifndef Tk_ConfigOutlineGC_TCL_DECLARED +#define Tk_ConfigOutlineGC_TCL_DECLARED +/* 223 */ +EXTERN int Tk_ConfigOutlineGC (XGCValues * gcValues, + Tk_Canvas canvas, Tk_Item * item, + Tk_Outline * outline); +#endif +#ifndef Tk_ChangeOutlineGC_TCL_DECLARED +#define Tk_ChangeOutlineGC_TCL_DECLARED +/* 224 */ +EXTERN int Tk_ChangeOutlineGC (Tk_Canvas canvas, Tk_Item * item, + Tk_Outline * outline); +#endif +#ifndef Tk_ResetOutlineGC_TCL_DECLARED +#define Tk_ResetOutlineGC_TCL_DECLARED +/* 225 */ +EXTERN int Tk_ResetOutlineGC (Tk_Canvas canvas, Tk_Item * item, + Tk_Outline * outline); +#endif +#ifndef Tk_CanvasPsOutline_TCL_DECLARED +#define Tk_CanvasPsOutline_TCL_DECLARED +/* 226 */ +EXTERN int Tk_CanvasPsOutline (Tk_Canvas canvas, Tk_Item * item, + Tk_Outline * outline); +#endif +#ifndef Tk_SetTSOrigin_TCL_DECLARED +#define Tk_SetTSOrigin_TCL_DECLARED +/* 227 */ +EXTERN void Tk_SetTSOrigin (Tk_Window tkwin, GC gc, int x, int y); +#endif +#ifndef Tk_CanvasGetCoordFromObj_TCL_DECLARED +#define Tk_CanvasGetCoordFromObj_TCL_DECLARED +/* 228 */ +EXTERN int Tk_CanvasGetCoordFromObj (Tcl_Interp * interp, + Tk_Canvas canvas, Tcl_Obj * obj, + double * doublePtr); +#endif +#ifndef Tk_CanvasSetOffset_TCL_DECLARED +#define Tk_CanvasSetOffset_TCL_DECLARED +/* 229 */ +EXTERN void Tk_CanvasSetOffset (Tk_Canvas canvas, GC gc, + Tk_TSOffset * offset); +#endif +#ifndef Tk_DitherPhoto_TCL_DECLARED +#define Tk_DitherPhoto_TCL_DECLARED +/* 230 */ +EXTERN void Tk_DitherPhoto (Tk_PhotoHandle handle, int x, int y, + int width, int height); +#endif +#ifndef Tk_PostscriptBitmap_TCL_DECLARED +#define Tk_PostscriptBitmap_TCL_DECLARED +/* 231 */ +EXTERN int Tk_PostscriptBitmap (Tcl_Interp * interp, + Tk_Window tkwin, Tk_PostscriptInfo psInfo, + Pixmap bitmap, int startX, int startY, + int width, int height); +#endif +#ifndef Tk_PostscriptColor_TCL_DECLARED +#define Tk_PostscriptColor_TCL_DECLARED +/* 232 */ +EXTERN int Tk_PostscriptColor (Tcl_Interp * interp, + Tk_PostscriptInfo psInfo, XColor * colorPtr); +#endif +#ifndef Tk_PostscriptFont_TCL_DECLARED +#define Tk_PostscriptFont_TCL_DECLARED +/* 233 */ +EXTERN int Tk_PostscriptFont (Tcl_Interp * interp, + Tk_PostscriptInfo psInfo, Tk_Font font); +#endif +#ifndef Tk_PostscriptImage_TCL_DECLARED +#define Tk_PostscriptImage_TCL_DECLARED +/* 234 */ +EXTERN int Tk_PostscriptImage (Tk_Image image, + Tcl_Interp * interp, Tk_Window tkwin, + Tk_PostscriptInfo psinfo, int x, int y, + int width, int height, int prepass); +#endif +#ifndef Tk_PostscriptPath_TCL_DECLARED +#define Tk_PostscriptPath_TCL_DECLARED +/* 235 */ +EXTERN void Tk_PostscriptPath (Tcl_Interp * interp, + Tk_PostscriptInfo psInfo, double * coordPtr, + int numPoints); +#endif +#ifndef Tk_PostscriptStipple_TCL_DECLARED +#define Tk_PostscriptStipple_TCL_DECLARED +/* 236 */ +EXTERN int Tk_PostscriptStipple (Tcl_Interp * interp, + Tk_Window tkwin, Tk_PostscriptInfo psInfo, + Pixmap bitmap); +#endif +#ifndef Tk_PostscriptY_TCL_DECLARED +#define Tk_PostscriptY_TCL_DECLARED +/* 237 */ +EXTERN double Tk_PostscriptY (double y, Tk_PostscriptInfo psInfo); +#endif +#ifndef Tk_PostscriptPhoto_TCL_DECLARED +#define Tk_PostscriptPhoto_TCL_DECLARED +/* 238 */ +EXTERN int Tk_PostscriptPhoto (Tcl_Interp * interp, + Tk_PhotoImageBlock * blockPtr, + Tk_PostscriptInfo psInfo, int width, + int height); +#endif +#ifndef Tk_CreateClientMessageHandler_TCL_DECLARED +#define Tk_CreateClientMessageHandler_TCL_DECLARED +/* 239 */ +EXTERN void Tk_CreateClientMessageHandler ( + Tk_ClientMessageProc * proc); +#endif +#ifndef Tk_DeleteClientMessageHandler_TCL_DECLARED +#define Tk_DeleteClientMessageHandler_TCL_DECLARED +/* 240 */ +EXTERN void Tk_DeleteClientMessageHandler ( + Tk_ClientMessageProc * proc); +#endif +#ifndef Tk_CreateAnonymousWindow_TCL_DECLARED +#define Tk_CreateAnonymousWindow_TCL_DECLARED +/* 241 */ +EXTERN Tk_Window Tk_CreateAnonymousWindow (Tcl_Interp * interp, + Tk_Window parent, CONST char * screenName); +#endif +#ifndef Tk_SetClassProcs_TCL_DECLARED +#define Tk_SetClassProcs_TCL_DECLARED +/* 242 */ +EXTERN void Tk_SetClassProcs (Tk_Window tkwin, + Tk_ClassProcs * procs, + ClientData instanceData); +#endif +#ifndef Tk_SetInternalBorderEx_TCL_DECLARED +#define Tk_SetInternalBorderEx_TCL_DECLARED +/* 243 */ +EXTERN void Tk_SetInternalBorderEx (Tk_Window tkwin, int left, + int right, int top, int bottom); +#endif +#ifndef Tk_SetMinimumRequestSize_TCL_DECLARED +#define Tk_SetMinimumRequestSize_TCL_DECLARED +/* 244 */ +EXTERN void Tk_SetMinimumRequestSize (Tk_Window tkwin, + int minWidth, int minHeight); +#endif +#ifndef Tk_SetCaretPos_TCL_DECLARED +#define Tk_SetCaretPos_TCL_DECLARED +/* 245 */ +EXTERN void Tk_SetCaretPos (Tk_Window tkwin, int x, int y, + int height); +#endif +#ifndef Tk_PhotoPutBlock_Panic_TCL_DECLARED +#define Tk_PhotoPutBlock_Panic_TCL_DECLARED +/* 246 */ +EXTERN void Tk_PhotoPutBlock_Panic (Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height, int compRule); +#endif +#ifndef Tk_PhotoPutZoomedBlock_Panic_TCL_DECLARED +#define Tk_PhotoPutZoomedBlock_Panic_TCL_DECLARED +/* 247 */ +EXTERN void Tk_PhotoPutZoomedBlock_Panic (Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height, int zoomX, int zoomY, + int subsampleX, int subsampleY, int compRule); +#endif +#ifndef Tk_CollapseMotionEvents_TCL_DECLARED +#define Tk_CollapseMotionEvents_TCL_DECLARED +/* 248 */ +EXTERN int Tk_CollapseMotionEvents (Display * display, + int collapse); +#endif +#ifndef Tk_RegisterStyleEngine_TCL_DECLARED +#define Tk_RegisterStyleEngine_TCL_DECLARED +/* 249 */ +EXTERN Tk_StyleEngine Tk_RegisterStyleEngine (CONST char * name, + Tk_StyleEngine parent); +#endif +#ifndef Tk_GetStyleEngine_TCL_DECLARED +#define Tk_GetStyleEngine_TCL_DECLARED +/* 250 */ +EXTERN Tk_StyleEngine Tk_GetStyleEngine (CONST char * name); +#endif +#ifndef Tk_RegisterStyledElement_TCL_DECLARED +#define Tk_RegisterStyledElement_TCL_DECLARED +/* 251 */ +EXTERN int Tk_RegisterStyledElement (Tk_StyleEngine engine, + Tk_ElementSpec * templatePtr); +#endif +#ifndef Tk_GetElementId_TCL_DECLARED +#define Tk_GetElementId_TCL_DECLARED +/* 252 */ +EXTERN int Tk_GetElementId (CONST char * name); +#endif +#ifndef Tk_CreateStyle_TCL_DECLARED +#define Tk_CreateStyle_TCL_DECLARED +/* 253 */ +EXTERN Tk_Style Tk_CreateStyle (CONST char * name, + Tk_StyleEngine engine, ClientData clientData); +#endif +#ifndef Tk_GetStyle_TCL_DECLARED +#define Tk_GetStyle_TCL_DECLARED +/* 254 */ +EXTERN Tk_Style Tk_GetStyle (Tcl_Interp * interp, CONST char * name); +#endif +#ifndef Tk_FreeStyle_TCL_DECLARED +#define Tk_FreeStyle_TCL_DECLARED +/* 255 */ +EXTERN void Tk_FreeStyle (Tk_Style style); +#endif +#ifndef Tk_NameOfStyle_TCL_DECLARED +#define Tk_NameOfStyle_TCL_DECLARED +/* 256 */ +EXTERN CONST char * Tk_NameOfStyle (Tk_Style style); +#endif +#ifndef Tk_AllocStyleFromObj_TCL_DECLARED +#define Tk_AllocStyleFromObj_TCL_DECLARED +/* 257 */ +EXTERN Tk_Style Tk_AllocStyleFromObj (Tcl_Interp * interp, + Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetStyleFromObj_TCL_DECLARED +#define Tk_GetStyleFromObj_TCL_DECLARED +/* 258 */ +EXTERN Tk_Style Tk_GetStyleFromObj (Tcl_Obj * objPtr); +#endif +#ifndef Tk_FreeStyleFromObj_TCL_DECLARED +#define Tk_FreeStyleFromObj_TCL_DECLARED +/* 259 */ +EXTERN void Tk_FreeStyleFromObj (Tcl_Obj * objPtr); +#endif +#ifndef Tk_GetStyledElement_TCL_DECLARED +#define Tk_GetStyledElement_TCL_DECLARED +/* 260 */ +EXTERN Tk_StyledElement Tk_GetStyledElement (Tk_Style style, int elementId, + Tk_OptionTable optionTable); +#endif +#ifndef Tk_GetElementSize_TCL_DECLARED +#define Tk_GetElementSize_TCL_DECLARED +/* 261 */ +EXTERN void Tk_GetElementSize (Tk_Style style, + Tk_StyledElement element, char * recordPtr, + Tk_Window tkwin, int width, int height, + int inner, int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_GetElementBox_TCL_DECLARED +#define Tk_GetElementBox_TCL_DECLARED +/* 262 */ +EXTERN void Tk_GetElementBox (Tk_Style style, + Tk_StyledElement element, char * recordPtr, + Tk_Window tkwin, int x, int y, int width, + int height, int inner, int * xPtr, + int * yPtr, int * widthPtr, int * heightPtr); +#endif +#ifndef Tk_GetElementBorderWidth_TCL_DECLARED +#define Tk_GetElementBorderWidth_TCL_DECLARED +/* 263 */ +EXTERN int Tk_GetElementBorderWidth (Tk_Style style, + Tk_StyledElement element, char * recordPtr, + Tk_Window tkwin); +#endif +#ifndef Tk_DrawElement_TCL_DECLARED +#define Tk_DrawElement_TCL_DECLARED +/* 264 */ +EXTERN void Tk_DrawElement (Tk_Style style, + Tk_StyledElement element, char * recordPtr, + Tk_Window tkwin, Drawable d, int x, int y, + int width, int height, int state); +#endif +#ifndef Tk_PhotoExpand_TCL_DECLARED +#define Tk_PhotoExpand_TCL_DECLARED +/* 265 */ +EXTERN int Tk_PhotoExpand (Tcl_Interp * interp, + Tk_PhotoHandle handle, int width, int height); +#endif +#ifndef Tk_PhotoPutBlock_TCL_DECLARED +#define Tk_PhotoPutBlock_TCL_DECLARED +/* 266 */ +EXTERN int Tk_PhotoPutBlock (Tcl_Interp * interp, + Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height, int compRule); +#endif +#ifndef Tk_PhotoPutZoomedBlock_TCL_DECLARED +#define Tk_PhotoPutZoomedBlock_TCL_DECLARED +/* 267 */ +EXTERN int Tk_PhotoPutZoomedBlock (Tcl_Interp * interp, + Tk_PhotoHandle handle, + Tk_PhotoImageBlock * blockPtr, int x, int y, + int width, int height, int zoomX, int zoomY, + int subsampleX, int subsampleY, int compRule); +#endif +#ifndef Tk_PhotoSetSize_TCL_DECLARED +#define Tk_PhotoSetSize_TCL_DECLARED +/* 268 */ +EXTERN int Tk_PhotoSetSize (Tcl_Interp * interp, + Tk_PhotoHandle handle, int width, int height); +#endif +#ifndef Tk_GetUserInactiveTime_TCL_DECLARED +#define Tk_GetUserInactiveTime_TCL_DECLARED +/* 269 */ +EXTERN long Tk_GetUserInactiveTime (Display * dpy); +#endif +#ifndef Tk_ResetUserInactiveTime_TCL_DECLARED +#define Tk_ResetUserInactiveTime_TCL_DECLARED +/* 270 */ +EXTERN void Tk_ResetUserInactiveTime (Display * dpy); +#endif +#ifndef Tk_Interp_TCL_DECLARED +#define Tk_Interp_TCL_DECLARED +/* 271 */ +EXTERN Tcl_Interp * Tk_Interp (Tk_Window tkwin); +#endif +#ifndef Tk_CreateOldImageType_TCL_DECLARED +#define Tk_CreateOldImageType_TCL_DECLARED +/* 272 */ +EXTERN void Tk_CreateOldImageType (Tk_ImageType * typePtr); +#endif +#ifndef Tk_CreateOldPhotoImageFormat_TCL_DECLARED +#define Tk_CreateOldPhotoImageFormat_TCL_DECLARED +/* 273 */ +EXTERN void Tk_CreateOldPhotoImageFormat ( + Tk_PhotoImageFormat * formatPtr); +#endif + +typedef struct TkStubHooks { + struct TkPlatStubs *tkPlatStubs; + struct TkIntStubs *tkIntStubs; + struct TkIntPlatStubs *tkIntPlatStubs; + struct TkIntXlibStubs *tkIntXlibStubs; +} TkStubHooks; + +typedef struct TkStubs { + int magic; + struct TkStubHooks *hooks; + + void (*tk_MainLoop) (void); /* 0 */ + XColor * (*tk_3DBorderColor) (Tk_3DBorder border); /* 1 */ + GC (*tk_3DBorderGC) (Tk_Window tkwin, Tk_3DBorder border, int which); /* 2 */ + void (*tk_3DHorizontalBevel) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftIn, int rightIn, int topBevel, int relief); /* 3 */ + void (*tk_3DVerticalBevel) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int leftBevel, int relief); /* 4 */ + void (*tk_AddOption) (Tk_Window tkwin, CONST char * name, CONST char * value, int priority); /* 5 */ + void (*tk_BindEvent) (Tk_BindingTable bindingTable, XEvent * eventPtr, Tk_Window tkwin, int numObjects, ClientData * objectPtr); /* 6 */ + void (*tk_CanvasDrawableCoords) (Tk_Canvas canvas, double x, double y, short * drawableXPtr, short * drawableYPtr); /* 7 */ + void (*tk_CanvasEventuallyRedraw) (Tk_Canvas canvas, int x1, int y1, int x2, int y2); /* 8 */ + int (*tk_CanvasGetCoord) (Tcl_Interp * interp, Tk_Canvas canvas, CONST char * str, double * doublePtr); /* 9 */ + Tk_CanvasTextInfo * (*tk_CanvasGetTextInfo) (Tk_Canvas canvas); /* 10 */ + int (*tk_CanvasPsBitmap) (Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap, int x, int y, int width, int height); /* 11 */ + int (*tk_CanvasPsColor) (Tcl_Interp * interp, Tk_Canvas canvas, XColor * colorPtr); /* 12 */ + int (*tk_CanvasPsFont) (Tcl_Interp * interp, Tk_Canvas canvas, Tk_Font font); /* 13 */ + void (*tk_CanvasPsPath) (Tcl_Interp * interp, Tk_Canvas canvas, double * coordPtr, int numPoints); /* 14 */ + int (*tk_CanvasPsStipple) (Tcl_Interp * interp, Tk_Canvas canvas, Pixmap bitmap); /* 15 */ + double (*tk_CanvasPsY) (Tk_Canvas canvas, double y); /* 16 */ + void (*tk_CanvasSetStippleOrigin) (Tk_Canvas canvas, GC gc); /* 17 */ + int (*tk_CanvasTagsParseProc) (ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, CONST char * value, char * widgRec, int offset); /* 18 */ + char * (*tk_CanvasTagsPrintProc) (ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr); /* 19 */ + Tk_Window (*tk_CanvasTkwin) (Tk_Canvas canvas); /* 20 */ + void (*tk_CanvasWindowCoords) (Tk_Canvas canvas, double x, double y, short * screenXPtr, short * screenYPtr); /* 21 */ + void (*tk_ChangeWindowAttributes) (Tk_Window tkwin, unsigned long valueMask, XSetWindowAttributes * attsPtr); /* 22 */ + int (*tk_CharBbox) (Tk_TextLayout layout, int index, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr); /* 23 */ + void (*tk_ClearSelection) (Tk_Window tkwin, Atom selection); /* 24 */ + int (*tk_ClipboardAppend) (Tcl_Interp * interp, Tk_Window tkwin, Atom target, Atom format, char* buffer); /* 25 */ + int (*tk_ClipboardClear) (Tcl_Interp * interp, Tk_Window tkwin); /* 26 */ + int (*tk_ConfigureInfo) (Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags); /* 27 */ + int (*tk_ConfigureValue) (Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, char * widgRec, CONST char * argvName, int flags); /* 28 */ + int (*tk_ConfigureWidget) (Tcl_Interp * interp, Tk_Window tkwin, Tk_ConfigSpec * specs, int argc, CONST84 char ** argv, char * widgRec, int flags); /* 29 */ + void (*tk_ConfigureWindow) (Tk_Window tkwin, unsigned int valueMask, XWindowChanges * valuePtr); /* 30 */ + Tk_TextLayout (*tk_ComputeTextLayout) (Tk_Font font, CONST char * str, int numChars, int wrapLength, Tk_Justify justify, int flags, int * widthPtr, int * heightPtr); /* 31 */ + Tk_Window (*tk_CoordsToWindow) (int rootX, int rootY, Tk_Window tkwin); /* 32 */ + unsigned long (*tk_CreateBinding) (Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr, CONST char * command, int append); /* 33 */ + Tk_BindingTable (*tk_CreateBindingTable) (Tcl_Interp * interp); /* 34 */ + Tk_ErrorHandler (*tk_CreateErrorHandler) (Display * display, int errNum, int request, int minorCode, Tk_ErrorProc * errorProc, ClientData clientData); /* 35 */ + void (*tk_CreateEventHandler) (Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData); /* 36 */ + void (*tk_CreateGenericHandler) (Tk_GenericProc * proc, ClientData clientData); /* 37 */ + void (*tk_CreateImageType) (Tk_ImageType * typePtr); /* 38 */ + void (*tk_CreateItemType) (Tk_ItemType * typePtr); /* 39 */ + void (*tk_CreatePhotoImageFormat) (Tk_PhotoImageFormat * formatPtr); /* 40 */ + void (*tk_CreateSelHandler) (Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc * proc, ClientData clientData, Atom format); /* 41 */ + Tk_Window (*tk_CreateWindow) (Tcl_Interp * interp, Tk_Window parent, CONST char * name, CONST char * screenName); /* 42 */ + Tk_Window (*tk_CreateWindowFromPath) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * pathName, CONST char * screenName); /* 43 */ + int (*tk_DefineBitmap) (Tcl_Interp * interp, CONST char * name, CONST char * source, int width, int height); /* 44 */ + void (*tk_DefineCursor) (Tk_Window window, Tk_Cursor cursor); /* 45 */ + void (*tk_DeleteAllBindings) (Tk_BindingTable bindingTable, ClientData object); /* 46 */ + int (*tk_DeleteBinding) (Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr); /* 47 */ + void (*tk_DeleteBindingTable) (Tk_BindingTable bindingTable); /* 48 */ + void (*tk_DeleteErrorHandler) (Tk_ErrorHandler handler); /* 49 */ + void (*tk_DeleteEventHandler) (Tk_Window token, unsigned long mask, Tk_EventProc * proc, ClientData clientData); /* 50 */ + void (*tk_DeleteGenericHandler) (Tk_GenericProc * proc, ClientData clientData); /* 51 */ + void (*tk_DeleteImage) (Tcl_Interp * interp, CONST char * name); /* 52 */ + void (*tk_DeleteSelHandler) (Tk_Window tkwin, Atom selection, Atom target); /* 53 */ + void (*tk_DestroyWindow) (Tk_Window tkwin); /* 54 */ + CONST84_RETURN char * (*tk_DisplayName) (Tk_Window tkwin); /* 55 */ + int (*tk_DistanceToTextLayout) (Tk_TextLayout layout, int x, int y); /* 56 */ + void (*tk_Draw3DPolygon) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief); /* 57 */ + void (*tk_Draw3DRectangle) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief); /* 58 */ + void (*tk_DrawChars) (Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int numBytes, int x, int y); /* 59 */ + void (*tk_DrawFocusHighlight) (Tk_Window tkwin, GC gc, int width, Drawable drawable); /* 60 */ + void (*tk_DrawTextLayout) (Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int firstChar, int lastChar); /* 61 */ + void (*tk_Fill3DPolygon) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint * pointPtr, int numPoints, int borderWidth, int leftRelief); /* 62 */ + void (*tk_Fill3DRectangle) (Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, int x, int y, int width, int height, int borderWidth, int relief); /* 63 */ + Tk_PhotoHandle (*tk_FindPhoto) (Tcl_Interp * interp, CONST char * imageName); /* 64 */ + Font (*tk_FontId) (Tk_Font font); /* 65 */ + void (*tk_Free3DBorder) (Tk_3DBorder border); /* 66 */ + void (*tk_FreeBitmap) (Display * display, Pixmap bitmap); /* 67 */ + void (*tk_FreeColor) (XColor * colorPtr); /* 68 */ + void (*tk_FreeColormap) (Display * display, Colormap colormap); /* 69 */ + void (*tk_FreeCursor) (Display * display, Tk_Cursor cursor); /* 70 */ + void (*tk_FreeFont) (Tk_Font f); /* 71 */ + void (*tk_FreeGC) (Display * display, GC gc); /* 72 */ + void (*tk_FreeImage) (Tk_Image image); /* 73 */ + void (*tk_FreeOptions) (Tk_ConfigSpec * specs, char * widgRec, Display * display, int needFlags); /* 74 */ + void (*tk_FreePixmap) (Display * display, Pixmap pixmap); /* 75 */ + void (*tk_FreeTextLayout) (Tk_TextLayout textLayout); /* 76 */ + void (*tk_FreeXId) (Display * display, XID xid); /* 77 */ + GC (*tk_GCForColor) (XColor * colorPtr, Drawable drawable); /* 78 */ + void (*tk_GeometryRequest) (Tk_Window tkwin, int reqWidth, int reqHeight); /* 79 */ + Tk_3DBorder (*tk_Get3DBorder) (Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid colorName); /* 80 */ + void (*tk_GetAllBindings) (Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object); /* 81 */ + int (*tk_GetAnchor) (Tcl_Interp * interp, CONST char * str, Tk_Anchor * anchorPtr); /* 82 */ + CONST84_RETURN char * (*tk_GetAtomName) (Tk_Window tkwin, Atom atom); /* 83 */ + CONST84_RETURN char * (*tk_GetBinding) (Tcl_Interp * interp, Tk_BindingTable bindingTable, ClientData object, CONST char * eventStr); /* 84 */ + Pixmap (*tk_GetBitmap) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str); /* 85 */ + Pixmap (*tk_GetBitmapFromData) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, int width, int height); /* 86 */ + int (*tk_GetCapStyle) (Tcl_Interp * interp, CONST char * str, int * capPtr); /* 87 */ + XColor * (*tk_GetColor) (Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid name); /* 88 */ + XColor * (*tk_GetColorByValue) (Tk_Window tkwin, XColor * colorPtr); /* 89 */ + Colormap (*tk_GetColormap) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str); /* 90 */ + Tk_Cursor (*tk_GetCursor) (Tcl_Interp * interp, Tk_Window tkwin, Tk_Uid str); /* 91 */ + Tk_Cursor (*tk_GetCursorFromData) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * source, CONST char * mask, int width, int height, int xHot, int yHot, Tk_Uid fg, Tk_Uid bg); /* 92 */ + Tk_Font (*tk_GetFont) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str); /* 93 */ + Tk_Font (*tk_GetFontFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 94 */ + void (*tk_GetFontMetrics) (Tk_Font font, Tk_FontMetrics * fmPtr); /* 95 */ + GC (*tk_GetGC) (Tk_Window tkwin, unsigned long valueMask, XGCValues * valuePtr); /* 96 */ + Tk_Image (*tk_GetImage) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * name, Tk_ImageChangedProc * changeProc, ClientData clientData); /* 97 */ + ClientData (*tk_GetImageMasterData) (Tcl_Interp * interp, CONST char * name, Tk_ImageType ** typePtrPtr); /* 98 */ + Tk_ItemType * (*tk_GetItemTypes) (void); /* 99 */ + int (*tk_GetJoinStyle) (Tcl_Interp * interp, CONST char * str, int * joinPtr); /* 100 */ + int (*tk_GetJustify) (Tcl_Interp * interp, CONST char * str, Tk_Justify * justifyPtr); /* 101 */ + int (*tk_GetNumMainWindows) (void); /* 102 */ + Tk_Uid (*tk_GetOption) (Tk_Window tkwin, CONST char * name, CONST char * className); /* 103 */ + int (*tk_GetPixels) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * intPtr); /* 104 */ + Pixmap (*tk_GetPixmap) (Display * display, Drawable d, int width, int height, int depth); /* 105 */ + int (*tk_GetRelief) (Tcl_Interp * interp, CONST char * name, int * reliefPtr); /* 106 */ + void (*tk_GetRootCoords) (Tk_Window tkwin, int * xPtr, int * yPtr); /* 107 */ + int (*tk_GetScrollInfo) (Tcl_Interp * interp, int argc, CONST84 char ** argv, double * dblPtr, int * intPtr); /* 108 */ + int (*tk_GetScreenMM) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, double * doublePtr); /* 109 */ + int (*tk_GetSelection) (Tcl_Interp * interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc * proc, ClientData clientData); /* 110 */ + Tk_Uid (*tk_GetUid) (CONST char * str); /* 111 */ + Visual * (*tk_GetVisual) (Tcl_Interp * interp, Tk_Window tkwin, CONST char * str, int * depthPtr, Colormap * colormapPtr); /* 112 */ + void (*tk_GetVRootGeometry) (Tk_Window tkwin, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr); /* 113 */ + int (*tk_Grab) (Tcl_Interp * interp, Tk_Window tkwin, int grabGlobal); /* 114 */ + void (*tk_HandleEvent) (XEvent * eventPtr); /* 115 */ + Tk_Window (*tk_IdToWindow) (Display * display, Window window); /* 116 */ + void (*tk_ImageChanged) (Tk_ImageMaster master, int x, int y, int width, int height, int imageWidth, int imageHeight); /* 117 */ + int (*tk_Init) (Tcl_Interp * interp); /* 118 */ + Atom (*tk_InternAtom) (Tk_Window tkwin, CONST char * name); /* 119 */ + int (*tk_IntersectTextLayout) (Tk_TextLayout layout, int x, int y, int width, int height); /* 120 */ + void (*tk_MaintainGeometry) (Tk_Window slave, Tk_Window master, int x, int y, int width, int height); /* 121 */ + Tk_Window (*tk_MainWindow) (Tcl_Interp * interp); /* 122 */ + void (*tk_MakeWindowExist) (Tk_Window tkwin); /* 123 */ + void (*tk_ManageGeometry) (Tk_Window tkwin, CONST Tk_GeomMgr * mgrPtr, ClientData clientData); /* 124 */ + void (*tk_MapWindow) (Tk_Window tkwin); /* 125 */ + int (*tk_MeasureChars) (Tk_Font tkfont, CONST char * source, int numBytes, int maxPixels, int flags, int * lengthPtr); /* 126 */ + void (*tk_MoveResizeWindow) (Tk_Window tkwin, int x, int y, int width, int height); /* 127 */ + void (*tk_MoveWindow) (Tk_Window tkwin, int x, int y); /* 128 */ + void (*tk_MoveToplevelWindow) (Tk_Window tkwin, int x, int y); /* 129 */ + CONST84_RETURN char * (*tk_NameOf3DBorder) (Tk_3DBorder border); /* 130 */ + CONST84_RETURN char * (*tk_NameOfAnchor) (Tk_Anchor anchor); /* 131 */ + CONST84_RETURN char * (*tk_NameOfBitmap) (Display * display, Pixmap bitmap); /* 132 */ + CONST84_RETURN char * (*tk_NameOfCapStyle) (int cap); /* 133 */ + CONST84_RETURN char * (*tk_NameOfColor) (XColor * colorPtr); /* 134 */ + CONST84_RETURN char * (*tk_NameOfCursor) (Display * display, Tk_Cursor cursor); /* 135 */ + CONST84_RETURN char * (*tk_NameOfFont) (Tk_Font font); /* 136 */ + CONST84_RETURN char * (*tk_NameOfImage) (Tk_ImageMaster imageMaster); /* 137 */ + CONST84_RETURN char * (*tk_NameOfJoinStyle) (int join); /* 138 */ + CONST84_RETURN char * (*tk_NameOfJustify) (Tk_Justify justify); /* 139 */ + CONST84_RETURN char * (*tk_NameOfRelief) (int relief); /* 140 */ + Tk_Window (*tk_NameToWindow) (Tcl_Interp * interp, CONST char * pathName, Tk_Window tkwin); /* 141 */ + void (*tk_OwnSelection) (Tk_Window tkwin, Atom selection, Tk_LostSelProc * proc, ClientData clientData); /* 142 */ + int (*tk_ParseArgv) (Tcl_Interp * interp, Tk_Window tkwin, int * argcPtr, CONST84 char ** argv, Tk_ArgvInfo * argTable, int flags); /* 143 */ + void (*tk_PhotoPutBlock_NoComposite) (Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height); /* 144 */ + void (*tk_PhotoPutZoomedBlock_NoComposite) (Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY); /* 145 */ + int (*tk_PhotoGetImage) (Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr); /* 146 */ + void (*tk_PhotoBlank) (Tk_PhotoHandle handle); /* 147 */ + void (*tk_PhotoExpand_Panic) (Tk_PhotoHandle handle, int width, int height); /* 148 */ + void (*tk_PhotoGetSize) (Tk_PhotoHandle handle, int * widthPtr, int * heightPtr); /* 149 */ + void (*tk_PhotoSetSize_Panic) (Tk_PhotoHandle handle, int width, int height); /* 150 */ + int (*tk_PointToChar) (Tk_TextLayout layout, int x, int y); /* 151 */ + int (*tk_PostscriptFontName) (Tk_Font tkfont, Tcl_DString * dsPtr); /* 152 */ + void (*tk_PreserveColormap) (Display * display, Colormap colormap); /* 153 */ + void (*tk_QueueWindowEvent) (XEvent * eventPtr, Tcl_QueuePosition position); /* 154 */ + void (*tk_RedrawImage) (Tk_Image image, int imageX, int imageY, int width, int height, Drawable drawable, int drawableX, int drawableY); /* 155 */ + void (*tk_ResizeWindow) (Tk_Window tkwin, int width, int height); /* 156 */ + int (*tk_RestackWindow) (Tk_Window tkwin, int aboveBelow, Tk_Window other); /* 157 */ + Tk_RestrictProc * (*tk_RestrictEvents) (Tk_RestrictProc * proc, ClientData arg, ClientData * prevArgPtr); /* 158 */ + int (*tk_SafeInit) (Tcl_Interp * interp); /* 159 */ + CONST char * (*tk_SetAppName) (Tk_Window tkwin, CONST char * name); /* 160 */ + void (*tk_SetBackgroundFromBorder) (Tk_Window tkwin, Tk_3DBorder border); /* 161 */ + void (*tk_SetClass) (Tk_Window tkwin, CONST char * className); /* 162 */ + void (*tk_SetGrid) (Tk_Window tkwin, int reqWidth, int reqHeight, int gridWidth, int gridHeight); /* 163 */ + void (*tk_SetInternalBorder) (Tk_Window tkwin, int width); /* 164 */ + void (*tk_SetWindowBackground) (Tk_Window tkwin, unsigned long pixel); /* 165 */ + void (*tk_SetWindowBackgroundPixmap) (Tk_Window tkwin, Pixmap pixmap); /* 166 */ + void (*tk_SetWindowBorder) (Tk_Window tkwin, unsigned long pixel); /* 167 */ + void (*tk_SetWindowBorderWidth) (Tk_Window tkwin, int width); /* 168 */ + void (*tk_SetWindowBorderPixmap) (Tk_Window tkwin, Pixmap pixmap); /* 169 */ + void (*tk_SetWindowColormap) (Tk_Window tkwin, Colormap colormap); /* 170 */ + int (*tk_SetWindowVisual) (Tk_Window tkwin, Visual * visual, int depth, Colormap colormap); /* 171 */ + void (*tk_SizeOfBitmap) (Display * display, Pixmap bitmap, int * widthPtr, int * heightPtr); /* 172 */ + void (*tk_SizeOfImage) (Tk_Image image, int * widthPtr, int * heightPtr); /* 173 */ + int (*tk_StrictMotif) (Tk_Window tkwin); /* 174 */ + void (*tk_TextLayoutToPostscript) (Tcl_Interp * interp, Tk_TextLayout layout); /* 175 */ + int (*tk_TextWidth) (Tk_Font font, CONST char * str, int numBytes); /* 176 */ + void (*tk_UndefineCursor) (Tk_Window window); /* 177 */ + void (*tk_UnderlineChars) (Display * display, Drawable drawable, GC gc, Tk_Font tkfont, CONST char * source, int x, int y, int firstByte, int lastByte); /* 178 */ + void (*tk_UnderlineTextLayout) (Display * display, Drawable drawable, GC gc, Tk_TextLayout layout, int x, int y, int underline); /* 179 */ + void (*tk_Ungrab) (Tk_Window tkwin); /* 180 */ + void (*tk_UnmaintainGeometry) (Tk_Window slave, Tk_Window master); /* 181 */ + void (*tk_UnmapWindow) (Tk_Window tkwin); /* 182 */ + void (*tk_UnsetGrid) (Tk_Window tkwin); /* 183 */ + void (*tk_UpdatePointer) (Tk_Window tkwin, int x, int y, int state); /* 184 */ + Pixmap (*tk_AllocBitmapFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr); /* 185 */ + Tk_3DBorder (*tk_Alloc3DBorderFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr); /* 186 */ + XColor * (*tk_AllocColorFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr); /* 187 */ + Tk_Cursor (*tk_AllocCursorFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr); /* 188 */ + Tk_Font (*tk_AllocFontFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr); /* 189 */ + Tk_OptionTable (*tk_CreateOptionTable) (Tcl_Interp * interp, CONST Tk_OptionSpec * templatePtr); /* 190 */ + void (*tk_DeleteOptionTable) (Tk_OptionTable optionTable); /* 191 */ + void (*tk_Free3DBorderFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 192 */ + void (*tk_FreeBitmapFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 193 */ + void (*tk_FreeColorFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 194 */ + void (*tk_FreeConfigOptions) (char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin); /* 195 */ + void (*tk_FreeSavedOptions) (Tk_SavedOptions * savePtr); /* 196 */ + void (*tk_FreeCursorFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 197 */ + void (*tk_FreeFontFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 198 */ + Tk_3DBorder (*tk_Get3DBorderFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 199 */ + int (*tk_GetAnchorFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Anchor * anchorPtr); /* 200 */ + Pixmap (*tk_GetBitmapFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 201 */ + XColor * (*tk_GetColorFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 202 */ + Tk_Cursor (*tk_GetCursorFromObj) (Tk_Window tkwin, Tcl_Obj * objPtr); /* 203 */ + Tcl_Obj * (*tk_GetOptionInfo) (Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin); /* 204 */ + Tcl_Obj * (*tk_GetOptionValue) (Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, Tcl_Obj * namePtr, Tk_Window tkwin); /* 205 */ + int (*tk_GetJustifyFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, Tk_Justify * justifyPtr); /* 206 */ + int (*tk_GetMMFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, double * doublePtr); /* 207 */ + int (*tk_GetPixelsFromObj) (Tcl_Interp * interp, Tk_Window tkwin, Tcl_Obj * objPtr, int * intPtr); /* 208 */ + int (*tk_GetReliefFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr, int * resultPtr); /* 209 */ + int (*tk_GetScrollInfoObj) (Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], double * dblPtr, int * intPtr); /* 210 */ + int (*tk_InitOptions) (Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionToken, Tk_Window tkwin); /* 211 */ + void (*tk_MainEx) (int argc, char ** argv, Tcl_AppInitProc * appInitProc, Tcl_Interp * interp); /* 212 */ + void (*tk_RestoreSavedOptions) (Tk_SavedOptions * savePtr); /* 213 */ + int (*tk_SetOptions) (Tcl_Interp * interp, char * recordPtr, Tk_OptionTable optionTable, int objc, Tcl_Obj *CONST objv[], Tk_Window tkwin, Tk_SavedOptions * savePtr, int * maskPtr); /* 214 */ + void (*tk_InitConsoleChannels) (Tcl_Interp * interp); /* 215 */ + int (*tk_CreateConsoleWindow) (Tcl_Interp * interp); /* 216 */ + void (*tk_CreateSmoothMethod) (Tcl_Interp * interp, Tk_SmoothMethod * method); /* 217 */ + void *reserved218; + void *reserved219; + int (*tk_GetDash) (Tcl_Interp * interp, CONST char * value, Tk_Dash * dash); /* 220 */ + void (*tk_CreateOutline) (Tk_Outline * outline); /* 221 */ + void (*tk_DeleteOutline) (Display * display, Tk_Outline * outline); /* 222 */ + int (*tk_ConfigOutlineGC) (XGCValues * gcValues, Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline); /* 223 */ + int (*tk_ChangeOutlineGC) (Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline); /* 224 */ + int (*tk_ResetOutlineGC) (Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline); /* 225 */ + int (*tk_CanvasPsOutline) (Tk_Canvas canvas, Tk_Item * item, Tk_Outline * outline); /* 226 */ + void (*tk_SetTSOrigin) (Tk_Window tkwin, GC gc, int x, int y); /* 227 */ + int (*tk_CanvasGetCoordFromObj) (Tcl_Interp * interp, Tk_Canvas canvas, Tcl_Obj * obj, double * doublePtr); /* 228 */ + void (*tk_CanvasSetOffset) (Tk_Canvas canvas, GC gc, Tk_TSOffset * offset); /* 229 */ + void (*tk_DitherPhoto) (Tk_PhotoHandle handle, int x, int y, int width, int height); /* 230 */ + int (*tk_PostscriptBitmap) (Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap, int startX, int startY, int width, int height); /* 231 */ + int (*tk_PostscriptColor) (Tcl_Interp * interp, Tk_PostscriptInfo psInfo, XColor * colorPtr); /* 232 */ + int (*tk_PostscriptFont) (Tcl_Interp * interp, Tk_PostscriptInfo psInfo, Tk_Font font); /* 233 */ + int (*tk_PostscriptImage) (Tk_Image image, Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psinfo, int x, int y, int width, int height, int prepass); /* 234 */ + void (*tk_PostscriptPath) (Tcl_Interp * interp, Tk_PostscriptInfo psInfo, double * coordPtr, int numPoints); /* 235 */ + int (*tk_PostscriptStipple) (Tcl_Interp * interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, Pixmap bitmap); /* 236 */ + double (*tk_PostscriptY) (double y, Tk_PostscriptInfo psInfo); /* 237 */ + int (*tk_PostscriptPhoto) (Tcl_Interp * interp, Tk_PhotoImageBlock * blockPtr, Tk_PostscriptInfo psInfo, int width, int height); /* 238 */ + void (*tk_CreateClientMessageHandler) (Tk_ClientMessageProc * proc); /* 239 */ + void (*tk_DeleteClientMessageHandler) (Tk_ClientMessageProc * proc); /* 240 */ + Tk_Window (*tk_CreateAnonymousWindow) (Tcl_Interp * interp, Tk_Window parent, CONST char * screenName); /* 241 */ + void (*tk_SetClassProcs) (Tk_Window tkwin, Tk_ClassProcs * procs, ClientData instanceData); /* 242 */ + void (*tk_SetInternalBorderEx) (Tk_Window tkwin, int left, int right, int top, int bottom); /* 243 */ + void (*tk_SetMinimumRequestSize) (Tk_Window tkwin, int minWidth, int minHeight); /* 244 */ + void (*tk_SetCaretPos) (Tk_Window tkwin, int x, int y, int height); /* 245 */ + void (*tk_PhotoPutBlock_Panic) (Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int compRule); /* 246 */ + void (*tk_PhotoPutZoomedBlock_Panic) (Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule); /* 247 */ + int (*tk_CollapseMotionEvents) (Display * display, int collapse); /* 248 */ + Tk_StyleEngine (*tk_RegisterStyleEngine) (CONST char * name, Tk_StyleEngine parent); /* 249 */ + Tk_StyleEngine (*tk_GetStyleEngine) (CONST char * name); /* 250 */ + int (*tk_RegisterStyledElement) (Tk_StyleEngine engine, Tk_ElementSpec * templatePtr); /* 251 */ + int (*tk_GetElementId) (CONST char * name); /* 252 */ + Tk_Style (*tk_CreateStyle) (CONST char * name, Tk_StyleEngine engine, ClientData clientData); /* 253 */ + Tk_Style (*tk_GetStyle) (Tcl_Interp * interp, CONST char * name); /* 254 */ + void (*tk_FreeStyle) (Tk_Style style); /* 255 */ + CONST char * (*tk_NameOfStyle) (Tk_Style style); /* 256 */ + Tk_Style (*tk_AllocStyleFromObj) (Tcl_Interp * interp, Tcl_Obj * objPtr); /* 257 */ + Tk_Style (*tk_GetStyleFromObj) (Tcl_Obj * objPtr); /* 258 */ + void (*tk_FreeStyleFromObj) (Tcl_Obj * objPtr); /* 259 */ + Tk_StyledElement (*tk_GetStyledElement) (Tk_Style style, int elementId, Tk_OptionTable optionTable); /* 260 */ + void (*tk_GetElementSize) (Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int width, int height, int inner, int * widthPtr, int * heightPtr); /* 261 */ + void (*tk_GetElementBox) (Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, int x, int y, int width, int height, int inner, int * xPtr, int * yPtr, int * widthPtr, int * heightPtr); /* 262 */ + int (*tk_GetElementBorderWidth) (Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin); /* 263 */ + void (*tk_DrawElement) (Tk_Style style, Tk_StyledElement element, char * recordPtr, Tk_Window tkwin, Drawable d, int x, int y, int width, int height, int state); /* 264 */ + int (*tk_PhotoExpand) (Tcl_Interp * interp, Tk_PhotoHandle handle, int width, int height); /* 265 */ + int (*tk_PhotoPutBlock) (Tcl_Interp * interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int compRule); /* 266 */ + int (*tk_PhotoPutZoomedBlock) (Tcl_Interp * interp, Tk_PhotoHandle handle, Tk_PhotoImageBlock * blockPtr, int x, int y, int width, int height, int zoomX, int zoomY, int subsampleX, int subsampleY, int compRule); /* 267 */ + int (*tk_PhotoSetSize) (Tcl_Interp * interp, Tk_PhotoHandle handle, int width, int height); /* 268 */ + long (*tk_GetUserInactiveTime) (Display * dpy); /* 269 */ + void (*tk_ResetUserInactiveTime) (Display * dpy); /* 270 */ + Tcl_Interp * (*tk_Interp) (Tk_Window tkwin); /* 271 */ + void (*tk_CreateOldImageType) (Tk_ImageType * typePtr); /* 272 */ + void (*tk_CreateOldPhotoImageFormat) (Tk_PhotoImageFormat * formatPtr); /* 273 */ +} TkStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TkStubs *tkStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifndef Tk_MainLoop +#define Tk_MainLoop \ + (tkStubsPtr->tk_MainLoop) /* 0 */ +#endif +#ifndef Tk_3DBorderColor +#define Tk_3DBorderColor \ + (tkStubsPtr->tk_3DBorderColor) /* 1 */ +#endif +#ifndef Tk_3DBorderGC +#define Tk_3DBorderGC \ + (tkStubsPtr->tk_3DBorderGC) /* 2 */ +#endif +#ifndef Tk_3DHorizontalBevel +#define Tk_3DHorizontalBevel \ + (tkStubsPtr->tk_3DHorizontalBevel) /* 3 */ +#endif +#ifndef Tk_3DVerticalBevel +#define Tk_3DVerticalBevel \ + (tkStubsPtr->tk_3DVerticalBevel) /* 4 */ +#endif +#ifndef Tk_AddOption +#define Tk_AddOption \ + (tkStubsPtr->tk_AddOption) /* 5 */ +#endif +#ifndef Tk_BindEvent +#define Tk_BindEvent \ + (tkStubsPtr->tk_BindEvent) /* 6 */ +#endif +#ifndef Tk_CanvasDrawableCoords +#define Tk_CanvasDrawableCoords \ + (tkStubsPtr->tk_CanvasDrawableCoords) /* 7 */ +#endif +#ifndef Tk_CanvasEventuallyRedraw +#define Tk_CanvasEventuallyRedraw \ + (tkStubsPtr->tk_CanvasEventuallyRedraw) /* 8 */ +#endif +#ifndef Tk_CanvasGetCoord +#define Tk_CanvasGetCoord \ + (tkStubsPtr->tk_CanvasGetCoord) /* 9 */ +#endif +#ifndef Tk_CanvasGetTextInfo +#define Tk_CanvasGetTextInfo \ + (tkStubsPtr->tk_CanvasGetTextInfo) /* 10 */ +#endif +#ifndef Tk_CanvasPsBitmap +#define Tk_CanvasPsBitmap \ + (tkStubsPtr->tk_CanvasPsBitmap) /* 11 */ +#endif +#ifndef Tk_CanvasPsColor +#define Tk_CanvasPsColor \ + (tkStubsPtr->tk_CanvasPsColor) /* 12 */ +#endif +#ifndef Tk_CanvasPsFont +#define Tk_CanvasPsFont \ + (tkStubsPtr->tk_CanvasPsFont) /* 13 */ +#endif +#ifndef Tk_CanvasPsPath +#define Tk_CanvasPsPath \ + (tkStubsPtr->tk_CanvasPsPath) /* 14 */ +#endif +#ifndef Tk_CanvasPsStipple +#define Tk_CanvasPsStipple \ + (tkStubsPtr->tk_CanvasPsStipple) /* 15 */ +#endif +#ifndef Tk_CanvasPsY +#define Tk_CanvasPsY \ + (tkStubsPtr->tk_CanvasPsY) /* 16 */ +#endif +#ifndef Tk_CanvasSetStippleOrigin +#define Tk_CanvasSetStippleOrigin \ + (tkStubsPtr->tk_CanvasSetStippleOrigin) /* 17 */ +#endif +#ifndef Tk_CanvasTagsParseProc +#define Tk_CanvasTagsParseProc \ + (tkStubsPtr->tk_CanvasTagsParseProc) /* 18 */ +#endif +#ifndef Tk_CanvasTagsPrintProc +#define Tk_CanvasTagsPrintProc \ + (tkStubsPtr->tk_CanvasTagsPrintProc) /* 19 */ +#endif +#ifndef Tk_CanvasTkwin +#define Tk_CanvasTkwin \ + (tkStubsPtr->tk_CanvasTkwin) /* 20 */ +#endif +#ifndef Tk_CanvasWindowCoords +#define Tk_CanvasWindowCoords \ + (tkStubsPtr->tk_CanvasWindowCoords) /* 21 */ +#endif +#ifndef Tk_ChangeWindowAttributes +#define Tk_ChangeWindowAttributes \ + (tkStubsPtr->tk_ChangeWindowAttributes) /* 22 */ +#endif +#ifndef Tk_CharBbox +#define Tk_CharBbox \ + (tkStubsPtr->tk_CharBbox) /* 23 */ +#endif +#ifndef Tk_ClearSelection +#define Tk_ClearSelection \ + (tkStubsPtr->tk_ClearSelection) /* 24 */ +#endif +#ifndef Tk_ClipboardAppend +#define Tk_ClipboardAppend \ + (tkStubsPtr->tk_ClipboardAppend) /* 25 */ +#endif +#ifndef Tk_ClipboardClear +#define Tk_ClipboardClear \ + (tkStubsPtr->tk_ClipboardClear) /* 26 */ +#endif +#ifndef Tk_ConfigureInfo +#define Tk_ConfigureInfo \ + (tkStubsPtr->tk_ConfigureInfo) /* 27 */ +#endif +#ifndef Tk_ConfigureValue +#define Tk_ConfigureValue \ + (tkStubsPtr->tk_ConfigureValue) /* 28 */ +#endif +#ifndef Tk_ConfigureWidget +#define Tk_ConfigureWidget \ + (tkStubsPtr->tk_ConfigureWidget) /* 29 */ +#endif +#ifndef Tk_ConfigureWindow +#define Tk_ConfigureWindow \ + (tkStubsPtr->tk_ConfigureWindow) /* 30 */ +#endif +#ifndef Tk_ComputeTextLayout +#define Tk_ComputeTextLayout \ + (tkStubsPtr->tk_ComputeTextLayout) /* 31 */ +#endif +#ifndef Tk_CoordsToWindow +#define Tk_CoordsToWindow \ + (tkStubsPtr->tk_CoordsToWindow) /* 32 */ +#endif +#ifndef Tk_CreateBinding +#define Tk_CreateBinding \ + (tkStubsPtr->tk_CreateBinding) /* 33 */ +#endif +#ifndef Tk_CreateBindingTable +#define Tk_CreateBindingTable \ + (tkStubsPtr->tk_CreateBindingTable) /* 34 */ +#endif +#ifndef Tk_CreateErrorHandler +#define Tk_CreateErrorHandler \ + (tkStubsPtr->tk_CreateErrorHandler) /* 35 */ +#endif +#ifndef Tk_CreateEventHandler +#define Tk_CreateEventHandler \ + (tkStubsPtr->tk_CreateEventHandler) /* 36 */ +#endif +#ifndef Tk_CreateGenericHandler +#define Tk_CreateGenericHandler \ + (tkStubsPtr->tk_CreateGenericHandler) /* 37 */ +#endif +#ifndef Tk_CreateImageType +#define Tk_CreateImageType \ + (tkStubsPtr->tk_CreateImageType) /* 38 */ +#endif +#ifndef Tk_CreateItemType +#define Tk_CreateItemType \ + (tkStubsPtr->tk_CreateItemType) /* 39 */ +#endif +#ifndef Tk_CreatePhotoImageFormat +#define Tk_CreatePhotoImageFormat \ + (tkStubsPtr->tk_CreatePhotoImageFormat) /* 40 */ +#endif +#ifndef Tk_CreateSelHandler +#define Tk_CreateSelHandler \ + (tkStubsPtr->tk_CreateSelHandler) /* 41 */ +#endif +#ifndef Tk_CreateWindow +#define Tk_CreateWindow \ + (tkStubsPtr->tk_CreateWindow) /* 42 */ +#endif +#ifndef Tk_CreateWindowFromPath +#define Tk_CreateWindowFromPath \ + (tkStubsPtr->tk_CreateWindowFromPath) /* 43 */ +#endif +#ifndef Tk_DefineBitmap +#define Tk_DefineBitmap \ + (tkStubsPtr->tk_DefineBitmap) /* 44 */ +#endif +#ifndef Tk_DefineCursor +#define Tk_DefineCursor \ + (tkStubsPtr->tk_DefineCursor) /* 45 */ +#endif +#ifndef Tk_DeleteAllBindings +#define Tk_DeleteAllBindings \ + (tkStubsPtr->tk_DeleteAllBindings) /* 46 */ +#endif +#ifndef Tk_DeleteBinding +#define Tk_DeleteBinding \ + (tkStubsPtr->tk_DeleteBinding) /* 47 */ +#endif +#ifndef Tk_DeleteBindingTable +#define Tk_DeleteBindingTable \ + (tkStubsPtr->tk_DeleteBindingTable) /* 48 */ +#endif +#ifndef Tk_DeleteErrorHandler +#define Tk_DeleteErrorHandler \ + (tkStubsPtr->tk_DeleteErrorHandler) /* 49 */ +#endif +#ifndef Tk_DeleteEventHandler +#define Tk_DeleteEventHandler \ + (tkStubsPtr->tk_DeleteEventHandler) /* 50 */ +#endif +#ifndef Tk_DeleteGenericHandler +#define Tk_DeleteGenericHandler \ + (tkStubsPtr->tk_DeleteGenericHandler) /* 51 */ +#endif +#ifndef Tk_DeleteImage +#define Tk_DeleteImage \ + (tkStubsPtr->tk_DeleteImage) /* 52 */ +#endif +#ifndef Tk_DeleteSelHandler +#define Tk_DeleteSelHandler \ + (tkStubsPtr->tk_DeleteSelHandler) /* 53 */ +#endif +#ifndef Tk_DestroyWindow +#define Tk_DestroyWindow \ + (tkStubsPtr->tk_DestroyWindow) /* 54 */ +#endif +#ifndef Tk_DisplayName +#define Tk_DisplayName \ + (tkStubsPtr->tk_DisplayName) /* 55 */ +#endif +#ifndef Tk_DistanceToTextLayout +#define Tk_DistanceToTextLayout \ + (tkStubsPtr->tk_DistanceToTextLayout) /* 56 */ +#endif +#ifndef Tk_Draw3DPolygon +#define Tk_Draw3DPolygon \ + (tkStubsPtr->tk_Draw3DPolygon) /* 57 */ +#endif +#ifndef Tk_Draw3DRectangle +#define Tk_Draw3DRectangle \ + (tkStubsPtr->tk_Draw3DRectangle) /* 58 */ +#endif +#ifndef Tk_DrawChars +#define Tk_DrawChars \ + (tkStubsPtr->tk_DrawChars) /* 59 */ +#endif +#ifndef Tk_DrawFocusHighlight +#define Tk_DrawFocusHighlight \ + (tkStubsPtr->tk_DrawFocusHighlight) /* 60 */ +#endif +#ifndef Tk_DrawTextLayout +#define Tk_DrawTextLayout \ + (tkStubsPtr->tk_DrawTextLayout) /* 61 */ +#endif +#ifndef Tk_Fill3DPolygon +#define Tk_Fill3DPolygon \ + (tkStubsPtr->tk_Fill3DPolygon) /* 62 */ +#endif +#ifndef Tk_Fill3DRectangle +#define Tk_Fill3DRectangle \ + (tkStubsPtr->tk_Fill3DRectangle) /* 63 */ +#endif +#ifndef Tk_FindPhoto +#define Tk_FindPhoto \ + (tkStubsPtr->tk_FindPhoto) /* 64 */ +#endif +#ifndef Tk_FontId +#define Tk_FontId \ + (tkStubsPtr->tk_FontId) /* 65 */ +#endif +#ifndef Tk_Free3DBorder +#define Tk_Free3DBorder \ + (tkStubsPtr->tk_Free3DBorder) /* 66 */ +#endif +#ifndef Tk_FreeBitmap +#define Tk_FreeBitmap \ + (tkStubsPtr->tk_FreeBitmap) /* 67 */ +#endif +#ifndef Tk_FreeColor +#define Tk_FreeColor \ + (tkStubsPtr->tk_FreeColor) /* 68 */ +#endif +#ifndef Tk_FreeColormap +#define Tk_FreeColormap \ + (tkStubsPtr->tk_FreeColormap) /* 69 */ +#endif +#ifndef Tk_FreeCursor +#define Tk_FreeCursor \ + (tkStubsPtr->tk_FreeCursor) /* 70 */ +#endif +#ifndef Tk_FreeFont +#define Tk_FreeFont \ + (tkStubsPtr->tk_FreeFont) /* 71 */ +#endif +#ifndef Tk_FreeGC +#define Tk_FreeGC \ + (tkStubsPtr->tk_FreeGC) /* 72 */ +#endif +#ifndef Tk_FreeImage +#define Tk_FreeImage \ + (tkStubsPtr->tk_FreeImage) /* 73 */ +#endif +#ifndef Tk_FreeOptions +#define Tk_FreeOptions \ + (tkStubsPtr->tk_FreeOptions) /* 74 */ +#endif +#ifndef Tk_FreePixmap +#define Tk_FreePixmap \ + (tkStubsPtr->tk_FreePixmap) /* 75 */ +#endif +#ifndef Tk_FreeTextLayout +#define Tk_FreeTextLayout \ + (tkStubsPtr->tk_FreeTextLayout) /* 76 */ +#endif +#ifndef Tk_FreeXId +#define Tk_FreeXId \ + (tkStubsPtr->tk_FreeXId) /* 77 */ +#endif +#ifndef Tk_GCForColor +#define Tk_GCForColor \ + (tkStubsPtr->tk_GCForColor) /* 78 */ +#endif +#ifndef Tk_GeometryRequest +#define Tk_GeometryRequest \ + (tkStubsPtr->tk_GeometryRequest) /* 79 */ +#endif +#ifndef Tk_Get3DBorder +#define Tk_Get3DBorder \ + (tkStubsPtr->tk_Get3DBorder) /* 80 */ +#endif +#ifndef Tk_GetAllBindings +#define Tk_GetAllBindings \ + (tkStubsPtr->tk_GetAllBindings) /* 81 */ +#endif +#ifndef Tk_GetAnchor +#define Tk_GetAnchor \ + (tkStubsPtr->tk_GetAnchor) /* 82 */ +#endif +#ifndef Tk_GetAtomName +#define Tk_GetAtomName \ + (tkStubsPtr->tk_GetAtomName) /* 83 */ +#endif +#ifndef Tk_GetBinding +#define Tk_GetBinding \ + (tkStubsPtr->tk_GetBinding) /* 84 */ +#endif +#ifndef Tk_GetBitmap +#define Tk_GetBitmap \ + (tkStubsPtr->tk_GetBitmap) /* 85 */ +#endif +#ifndef Tk_GetBitmapFromData +#define Tk_GetBitmapFromData \ + (tkStubsPtr->tk_GetBitmapFromData) /* 86 */ +#endif +#ifndef Tk_GetCapStyle +#define Tk_GetCapStyle \ + (tkStubsPtr->tk_GetCapStyle) /* 87 */ +#endif +#ifndef Tk_GetColor +#define Tk_GetColor \ + (tkStubsPtr->tk_GetColor) /* 88 */ +#endif +#ifndef Tk_GetColorByValue +#define Tk_GetColorByValue \ + (tkStubsPtr->tk_GetColorByValue) /* 89 */ +#endif +#ifndef Tk_GetColormap +#define Tk_GetColormap \ + (tkStubsPtr->tk_GetColormap) /* 90 */ +#endif +#ifndef Tk_GetCursor +#define Tk_GetCursor \ + (tkStubsPtr->tk_GetCursor) /* 91 */ +#endif +#ifndef Tk_GetCursorFromData +#define Tk_GetCursorFromData \ + (tkStubsPtr->tk_GetCursorFromData) /* 92 */ +#endif +#ifndef Tk_GetFont +#define Tk_GetFont \ + (tkStubsPtr->tk_GetFont) /* 93 */ +#endif +#ifndef Tk_GetFontFromObj +#define Tk_GetFontFromObj \ + (tkStubsPtr->tk_GetFontFromObj) /* 94 */ +#endif +#ifndef Tk_GetFontMetrics +#define Tk_GetFontMetrics \ + (tkStubsPtr->tk_GetFontMetrics) /* 95 */ +#endif +#ifndef Tk_GetGC +#define Tk_GetGC \ + (tkStubsPtr->tk_GetGC) /* 96 */ +#endif +#ifndef Tk_GetImage +#define Tk_GetImage \ + (tkStubsPtr->tk_GetImage) /* 97 */ +#endif +#ifndef Tk_GetImageMasterData +#define Tk_GetImageMasterData \ + (tkStubsPtr->tk_GetImageMasterData) /* 98 */ +#endif +#ifndef Tk_GetItemTypes +#define Tk_GetItemTypes \ + (tkStubsPtr->tk_GetItemTypes) /* 99 */ +#endif +#ifndef Tk_GetJoinStyle +#define Tk_GetJoinStyle \ + (tkStubsPtr->tk_GetJoinStyle) /* 100 */ +#endif +#ifndef Tk_GetJustify +#define Tk_GetJustify \ + (tkStubsPtr->tk_GetJustify) /* 101 */ +#endif +#ifndef Tk_GetNumMainWindows +#define Tk_GetNumMainWindows \ + (tkStubsPtr->tk_GetNumMainWindows) /* 102 */ +#endif +#ifndef Tk_GetOption +#define Tk_GetOption \ + (tkStubsPtr->tk_GetOption) /* 103 */ +#endif +#ifndef Tk_GetPixels +#define Tk_GetPixels \ + (tkStubsPtr->tk_GetPixels) /* 104 */ +#endif +#ifndef Tk_GetPixmap +#define Tk_GetPixmap \ + (tkStubsPtr->tk_GetPixmap) /* 105 */ +#endif +#ifndef Tk_GetRelief +#define Tk_GetRelief \ + (tkStubsPtr->tk_GetRelief) /* 106 */ +#endif +#ifndef Tk_GetRootCoords +#define Tk_GetRootCoords \ + (tkStubsPtr->tk_GetRootCoords) /* 107 */ +#endif +#ifndef Tk_GetScrollInfo +#define Tk_GetScrollInfo \ + (tkStubsPtr->tk_GetScrollInfo) /* 108 */ +#endif +#ifndef Tk_GetScreenMM +#define Tk_GetScreenMM \ + (tkStubsPtr->tk_GetScreenMM) /* 109 */ +#endif +#ifndef Tk_GetSelection +#define Tk_GetSelection \ + (tkStubsPtr->tk_GetSelection) /* 110 */ +#endif +#ifndef Tk_GetUid +#define Tk_GetUid \ + (tkStubsPtr->tk_GetUid) /* 111 */ +#endif +#ifndef Tk_GetVisual +#define Tk_GetVisual \ + (tkStubsPtr->tk_GetVisual) /* 112 */ +#endif +#ifndef Tk_GetVRootGeometry +#define Tk_GetVRootGeometry \ + (tkStubsPtr->tk_GetVRootGeometry) /* 113 */ +#endif +#ifndef Tk_Grab +#define Tk_Grab \ + (tkStubsPtr->tk_Grab) /* 114 */ +#endif +#ifndef Tk_HandleEvent +#define Tk_HandleEvent \ + (tkStubsPtr->tk_HandleEvent) /* 115 */ +#endif +#ifndef Tk_IdToWindow +#define Tk_IdToWindow \ + (tkStubsPtr->tk_IdToWindow) /* 116 */ +#endif +#ifndef Tk_ImageChanged +#define Tk_ImageChanged \ + (tkStubsPtr->tk_ImageChanged) /* 117 */ +#endif +#ifndef Tk_Init +#define Tk_Init \ + (tkStubsPtr->tk_Init) /* 118 */ +#endif +#ifndef Tk_InternAtom +#define Tk_InternAtom \ + (tkStubsPtr->tk_InternAtom) /* 119 */ +#endif +#ifndef Tk_IntersectTextLayout +#define Tk_IntersectTextLayout \ + (tkStubsPtr->tk_IntersectTextLayout) /* 120 */ +#endif +#ifndef Tk_MaintainGeometry +#define Tk_MaintainGeometry \ + (tkStubsPtr->tk_MaintainGeometry) /* 121 */ +#endif +#ifndef Tk_MainWindow +#define Tk_MainWindow \ + (tkStubsPtr->tk_MainWindow) /* 122 */ +#endif +#ifndef Tk_MakeWindowExist +#define Tk_MakeWindowExist \ + (tkStubsPtr->tk_MakeWindowExist) /* 123 */ +#endif +#ifndef Tk_ManageGeometry +#define Tk_ManageGeometry \ + (tkStubsPtr->tk_ManageGeometry) /* 124 */ +#endif +#ifndef Tk_MapWindow +#define Tk_MapWindow \ + (tkStubsPtr->tk_MapWindow) /* 125 */ +#endif +#ifndef Tk_MeasureChars +#define Tk_MeasureChars \ + (tkStubsPtr->tk_MeasureChars) /* 126 */ +#endif +#ifndef Tk_MoveResizeWindow +#define Tk_MoveResizeWindow \ + (tkStubsPtr->tk_MoveResizeWindow) /* 127 */ +#endif +#ifndef Tk_MoveWindow +#define Tk_MoveWindow \ + (tkStubsPtr->tk_MoveWindow) /* 128 */ +#endif +#ifndef Tk_MoveToplevelWindow +#define Tk_MoveToplevelWindow \ + (tkStubsPtr->tk_MoveToplevelWindow) /* 129 */ +#endif +#ifndef Tk_NameOf3DBorder +#define Tk_NameOf3DBorder \ + (tkStubsPtr->tk_NameOf3DBorder) /* 130 */ +#endif +#ifndef Tk_NameOfAnchor +#define Tk_NameOfAnchor \ + (tkStubsPtr->tk_NameOfAnchor) /* 131 */ +#endif +#ifndef Tk_NameOfBitmap +#define Tk_NameOfBitmap \ + (tkStubsPtr->tk_NameOfBitmap) /* 132 */ +#endif +#ifndef Tk_NameOfCapStyle +#define Tk_NameOfCapStyle \ + (tkStubsPtr->tk_NameOfCapStyle) /* 133 */ +#endif +#ifndef Tk_NameOfColor +#define Tk_NameOfColor \ + (tkStubsPtr->tk_NameOfColor) /* 134 */ +#endif +#ifndef Tk_NameOfCursor +#define Tk_NameOfCursor \ + (tkStubsPtr->tk_NameOfCursor) /* 135 */ +#endif +#ifndef Tk_NameOfFont +#define Tk_NameOfFont \ + (tkStubsPtr->tk_NameOfFont) /* 136 */ +#endif +#ifndef Tk_NameOfImage +#define Tk_NameOfImage \ + (tkStubsPtr->tk_NameOfImage) /* 137 */ +#endif +#ifndef Tk_NameOfJoinStyle +#define Tk_NameOfJoinStyle \ + (tkStubsPtr->tk_NameOfJoinStyle) /* 138 */ +#endif +#ifndef Tk_NameOfJustify +#define Tk_NameOfJustify \ + (tkStubsPtr->tk_NameOfJustify) /* 139 */ +#endif +#ifndef Tk_NameOfRelief +#define Tk_NameOfRelief \ + (tkStubsPtr->tk_NameOfRelief) /* 140 */ +#endif +#ifndef Tk_NameToWindow +#define Tk_NameToWindow \ + (tkStubsPtr->tk_NameToWindow) /* 141 */ +#endif +#ifndef Tk_OwnSelection +#define Tk_OwnSelection \ + (tkStubsPtr->tk_OwnSelection) /* 142 */ +#endif +#ifndef Tk_ParseArgv +#define Tk_ParseArgv \ + (tkStubsPtr->tk_ParseArgv) /* 143 */ +#endif +#ifndef Tk_PhotoPutBlock_NoComposite +#define Tk_PhotoPutBlock_NoComposite \ + (tkStubsPtr->tk_PhotoPutBlock_NoComposite) /* 144 */ +#endif +#ifndef Tk_PhotoPutZoomedBlock_NoComposite +#define Tk_PhotoPutZoomedBlock_NoComposite \ + (tkStubsPtr->tk_PhotoPutZoomedBlock_NoComposite) /* 145 */ +#endif +#ifndef Tk_PhotoGetImage +#define Tk_PhotoGetImage \ + (tkStubsPtr->tk_PhotoGetImage) /* 146 */ +#endif +#ifndef Tk_PhotoBlank +#define Tk_PhotoBlank \ + (tkStubsPtr->tk_PhotoBlank) /* 147 */ +#endif +#ifndef Tk_PhotoExpand_Panic +#define Tk_PhotoExpand_Panic \ + (tkStubsPtr->tk_PhotoExpand_Panic) /* 148 */ +#endif +#ifndef Tk_PhotoGetSize +#define Tk_PhotoGetSize \ + (tkStubsPtr->tk_PhotoGetSize) /* 149 */ +#endif +#ifndef Tk_PhotoSetSize_Panic +#define Tk_PhotoSetSize_Panic \ + (tkStubsPtr->tk_PhotoSetSize_Panic) /* 150 */ +#endif +#ifndef Tk_PointToChar +#define Tk_PointToChar \ + (tkStubsPtr->tk_PointToChar) /* 151 */ +#endif +#ifndef Tk_PostscriptFontName +#define Tk_PostscriptFontName \ + (tkStubsPtr->tk_PostscriptFontName) /* 152 */ +#endif +#ifndef Tk_PreserveColormap +#define Tk_PreserveColormap \ + (tkStubsPtr->tk_PreserveColormap) /* 153 */ +#endif +#ifndef Tk_QueueWindowEvent +#define Tk_QueueWindowEvent \ + (tkStubsPtr->tk_QueueWindowEvent) /* 154 */ +#endif +#ifndef Tk_RedrawImage +#define Tk_RedrawImage \ + (tkStubsPtr->tk_RedrawImage) /* 155 */ +#endif +#ifndef Tk_ResizeWindow +#define Tk_ResizeWindow \ + (tkStubsPtr->tk_ResizeWindow) /* 156 */ +#endif +#ifndef Tk_RestackWindow +#define Tk_RestackWindow \ + (tkStubsPtr->tk_RestackWindow) /* 157 */ +#endif +#ifndef Tk_RestrictEvents +#define Tk_RestrictEvents \ + (tkStubsPtr->tk_RestrictEvents) /* 158 */ +#endif +#ifndef Tk_SafeInit +#define Tk_SafeInit \ + (tkStubsPtr->tk_SafeInit) /* 159 */ +#endif +#ifndef Tk_SetAppName +#define Tk_SetAppName \ + (tkStubsPtr->tk_SetAppName) /* 160 */ +#endif +#ifndef Tk_SetBackgroundFromBorder +#define Tk_SetBackgroundFromBorder \ + (tkStubsPtr->tk_SetBackgroundFromBorder) /* 161 */ +#endif +#ifndef Tk_SetClass +#define Tk_SetClass \ + (tkStubsPtr->tk_SetClass) /* 162 */ +#endif +#ifndef Tk_SetGrid +#define Tk_SetGrid \ + (tkStubsPtr->tk_SetGrid) /* 163 */ +#endif +#ifndef Tk_SetInternalBorder +#define Tk_SetInternalBorder \ + (tkStubsPtr->tk_SetInternalBorder) /* 164 */ +#endif +#ifndef Tk_SetWindowBackground +#define Tk_SetWindowBackground \ + (tkStubsPtr->tk_SetWindowBackground) /* 165 */ +#endif +#ifndef Tk_SetWindowBackgroundPixmap +#define Tk_SetWindowBackgroundPixmap \ + (tkStubsPtr->tk_SetWindowBackgroundPixmap) /* 166 */ +#endif +#ifndef Tk_SetWindowBorder +#define Tk_SetWindowBorder \ + (tkStubsPtr->tk_SetWindowBorder) /* 167 */ +#endif +#ifndef Tk_SetWindowBorderWidth +#define Tk_SetWindowBorderWidth \ + (tkStubsPtr->tk_SetWindowBorderWidth) /* 168 */ +#endif +#ifndef Tk_SetWindowBorderPixmap +#define Tk_SetWindowBorderPixmap \ + (tkStubsPtr->tk_SetWindowBorderPixmap) /* 169 */ +#endif +#ifndef Tk_SetWindowColormap +#define Tk_SetWindowColormap \ + (tkStubsPtr->tk_SetWindowColormap) /* 170 */ +#endif +#ifndef Tk_SetWindowVisual +#define Tk_SetWindowVisual \ + (tkStubsPtr->tk_SetWindowVisual) /* 171 */ +#endif +#ifndef Tk_SizeOfBitmap +#define Tk_SizeOfBitmap \ + (tkStubsPtr->tk_SizeOfBitmap) /* 172 */ +#endif +#ifndef Tk_SizeOfImage +#define Tk_SizeOfImage \ + (tkStubsPtr->tk_SizeOfImage) /* 173 */ +#endif +#ifndef Tk_StrictMotif +#define Tk_StrictMotif \ + (tkStubsPtr->tk_StrictMotif) /* 174 */ +#endif +#ifndef Tk_TextLayoutToPostscript +#define Tk_TextLayoutToPostscript \ + (tkStubsPtr->tk_TextLayoutToPostscript) /* 175 */ +#endif +#ifndef Tk_TextWidth +#define Tk_TextWidth \ + (tkStubsPtr->tk_TextWidth) /* 176 */ +#endif +#ifndef Tk_UndefineCursor +#define Tk_UndefineCursor \ + (tkStubsPtr->tk_UndefineCursor) /* 177 */ +#endif +#ifndef Tk_UnderlineChars +#define Tk_UnderlineChars \ + (tkStubsPtr->tk_UnderlineChars) /* 178 */ +#endif +#ifndef Tk_UnderlineTextLayout +#define Tk_UnderlineTextLayout \ + (tkStubsPtr->tk_UnderlineTextLayout) /* 179 */ +#endif +#ifndef Tk_Ungrab +#define Tk_Ungrab \ + (tkStubsPtr->tk_Ungrab) /* 180 */ +#endif +#ifndef Tk_UnmaintainGeometry +#define Tk_UnmaintainGeometry \ + (tkStubsPtr->tk_UnmaintainGeometry) /* 181 */ +#endif +#ifndef Tk_UnmapWindow +#define Tk_UnmapWindow \ + (tkStubsPtr->tk_UnmapWindow) /* 182 */ +#endif +#ifndef Tk_UnsetGrid +#define Tk_UnsetGrid \ + (tkStubsPtr->tk_UnsetGrid) /* 183 */ +#endif +#ifndef Tk_UpdatePointer +#define Tk_UpdatePointer \ + (tkStubsPtr->tk_UpdatePointer) /* 184 */ +#endif +#ifndef Tk_AllocBitmapFromObj +#define Tk_AllocBitmapFromObj \ + (tkStubsPtr->tk_AllocBitmapFromObj) /* 185 */ +#endif +#ifndef Tk_Alloc3DBorderFromObj +#define Tk_Alloc3DBorderFromObj \ + (tkStubsPtr->tk_Alloc3DBorderFromObj) /* 186 */ +#endif +#ifndef Tk_AllocColorFromObj +#define Tk_AllocColorFromObj \ + (tkStubsPtr->tk_AllocColorFromObj) /* 187 */ +#endif +#ifndef Tk_AllocCursorFromObj +#define Tk_AllocCursorFromObj \ + (tkStubsPtr->tk_AllocCursorFromObj) /* 188 */ +#endif +#ifndef Tk_AllocFontFromObj +#define Tk_AllocFontFromObj \ + (tkStubsPtr->tk_AllocFontFromObj) /* 189 */ +#endif +#ifndef Tk_CreateOptionTable +#define Tk_CreateOptionTable \ + (tkStubsPtr->tk_CreateOptionTable) /* 190 */ +#endif +#ifndef Tk_DeleteOptionTable +#define Tk_DeleteOptionTable \ + (tkStubsPtr->tk_DeleteOptionTable) /* 191 */ +#endif +#ifndef Tk_Free3DBorderFromObj +#define Tk_Free3DBorderFromObj \ + (tkStubsPtr->tk_Free3DBorderFromObj) /* 192 */ +#endif +#ifndef Tk_FreeBitmapFromObj +#define Tk_FreeBitmapFromObj \ + (tkStubsPtr->tk_FreeBitmapFromObj) /* 193 */ +#endif +#ifndef Tk_FreeColorFromObj +#define Tk_FreeColorFromObj \ + (tkStubsPtr->tk_FreeColorFromObj) /* 194 */ +#endif +#ifndef Tk_FreeConfigOptions +#define Tk_FreeConfigOptions \ + (tkStubsPtr->tk_FreeConfigOptions) /* 195 */ +#endif +#ifndef Tk_FreeSavedOptions +#define Tk_FreeSavedOptions \ + (tkStubsPtr->tk_FreeSavedOptions) /* 196 */ +#endif +#ifndef Tk_FreeCursorFromObj +#define Tk_FreeCursorFromObj \ + (tkStubsPtr->tk_FreeCursorFromObj) /* 197 */ +#endif +#ifndef Tk_FreeFontFromObj +#define Tk_FreeFontFromObj \ + (tkStubsPtr->tk_FreeFontFromObj) /* 198 */ +#endif +#ifndef Tk_Get3DBorderFromObj +#define Tk_Get3DBorderFromObj \ + (tkStubsPtr->tk_Get3DBorderFromObj) /* 199 */ +#endif +#ifndef Tk_GetAnchorFromObj +#define Tk_GetAnchorFromObj \ + (tkStubsPtr->tk_GetAnchorFromObj) /* 200 */ +#endif +#ifndef Tk_GetBitmapFromObj +#define Tk_GetBitmapFromObj \ + (tkStubsPtr->tk_GetBitmapFromObj) /* 201 */ +#endif +#ifndef Tk_GetColorFromObj +#define Tk_GetColorFromObj \ + (tkStubsPtr->tk_GetColorFromObj) /* 202 */ +#endif +#ifndef Tk_GetCursorFromObj +#define Tk_GetCursorFromObj \ + (tkStubsPtr->tk_GetCursorFromObj) /* 203 */ +#endif +#ifndef Tk_GetOptionInfo +#define Tk_GetOptionInfo \ + (tkStubsPtr->tk_GetOptionInfo) /* 204 */ +#endif +#ifndef Tk_GetOptionValue +#define Tk_GetOptionValue \ + (tkStubsPtr->tk_GetOptionValue) /* 205 */ +#endif +#ifndef Tk_GetJustifyFromObj +#define Tk_GetJustifyFromObj \ + (tkStubsPtr->tk_GetJustifyFromObj) /* 206 */ +#endif +#ifndef Tk_GetMMFromObj +#define Tk_GetMMFromObj \ + (tkStubsPtr->tk_GetMMFromObj) /* 207 */ +#endif +#ifndef Tk_GetPixelsFromObj +#define Tk_GetPixelsFromObj \ + (tkStubsPtr->tk_GetPixelsFromObj) /* 208 */ +#endif +#ifndef Tk_GetReliefFromObj +#define Tk_GetReliefFromObj \ + (tkStubsPtr->tk_GetReliefFromObj) /* 209 */ +#endif +#ifndef Tk_GetScrollInfoObj +#define Tk_GetScrollInfoObj \ + (tkStubsPtr->tk_GetScrollInfoObj) /* 210 */ +#endif +#ifndef Tk_InitOptions +#define Tk_InitOptions \ + (tkStubsPtr->tk_InitOptions) /* 211 */ +#endif +#ifndef Tk_MainEx +#define Tk_MainEx \ + (tkStubsPtr->tk_MainEx) /* 212 */ +#endif +#ifndef Tk_RestoreSavedOptions +#define Tk_RestoreSavedOptions \ + (tkStubsPtr->tk_RestoreSavedOptions) /* 213 */ +#endif +#ifndef Tk_SetOptions +#define Tk_SetOptions \ + (tkStubsPtr->tk_SetOptions) /* 214 */ +#endif +#ifndef Tk_InitConsoleChannels +#define Tk_InitConsoleChannels \ + (tkStubsPtr->tk_InitConsoleChannels) /* 215 */ +#endif +#ifndef Tk_CreateConsoleWindow +#define Tk_CreateConsoleWindow \ + (tkStubsPtr->tk_CreateConsoleWindow) /* 216 */ +#endif +#ifndef Tk_CreateSmoothMethod +#define Tk_CreateSmoothMethod \ + (tkStubsPtr->tk_CreateSmoothMethod) /* 217 */ +#endif +/* Slot 218 is reserved */ +/* Slot 219 is reserved */ +#ifndef Tk_GetDash +#define Tk_GetDash \ + (tkStubsPtr->tk_GetDash) /* 220 */ +#endif +#ifndef Tk_CreateOutline +#define Tk_CreateOutline \ + (tkStubsPtr->tk_CreateOutline) /* 221 */ +#endif +#ifndef Tk_DeleteOutline +#define Tk_DeleteOutline \ + (tkStubsPtr->tk_DeleteOutline) /* 222 */ +#endif +#ifndef Tk_ConfigOutlineGC +#define Tk_ConfigOutlineGC \ + (tkStubsPtr->tk_ConfigOutlineGC) /* 223 */ +#endif +#ifndef Tk_ChangeOutlineGC +#define Tk_ChangeOutlineGC \ + (tkStubsPtr->tk_ChangeOutlineGC) /* 224 */ +#endif +#ifndef Tk_ResetOutlineGC +#define Tk_ResetOutlineGC \ + (tkStubsPtr->tk_ResetOutlineGC) /* 225 */ +#endif +#ifndef Tk_CanvasPsOutline +#define Tk_CanvasPsOutline \ + (tkStubsPtr->tk_CanvasPsOutline) /* 226 */ +#endif +#ifndef Tk_SetTSOrigin +#define Tk_SetTSOrigin \ + (tkStubsPtr->tk_SetTSOrigin) /* 227 */ +#endif +#ifndef Tk_CanvasGetCoordFromObj +#define Tk_CanvasGetCoordFromObj \ + (tkStubsPtr->tk_CanvasGetCoordFromObj) /* 228 */ +#endif +#ifndef Tk_CanvasSetOffset +#define Tk_CanvasSetOffset \ + (tkStubsPtr->tk_CanvasSetOffset) /* 229 */ +#endif +#ifndef Tk_DitherPhoto +#define Tk_DitherPhoto \ + (tkStubsPtr->tk_DitherPhoto) /* 230 */ +#endif +#ifndef Tk_PostscriptBitmap +#define Tk_PostscriptBitmap \ + (tkStubsPtr->tk_PostscriptBitmap) /* 231 */ +#endif +#ifndef Tk_PostscriptColor +#define Tk_PostscriptColor \ + (tkStubsPtr->tk_PostscriptColor) /* 232 */ +#endif +#ifndef Tk_PostscriptFont +#define Tk_PostscriptFont \ + (tkStubsPtr->tk_PostscriptFont) /* 233 */ +#endif +#ifndef Tk_PostscriptImage +#define Tk_PostscriptImage \ + (tkStubsPtr->tk_PostscriptImage) /* 234 */ +#endif +#ifndef Tk_PostscriptPath +#define Tk_PostscriptPath \ + (tkStubsPtr->tk_PostscriptPath) /* 235 */ +#endif +#ifndef Tk_PostscriptStipple +#define Tk_PostscriptStipple \ + (tkStubsPtr->tk_PostscriptStipple) /* 236 */ +#endif +#ifndef Tk_PostscriptY +#define Tk_PostscriptY \ + (tkStubsPtr->tk_PostscriptY) /* 237 */ +#endif +#ifndef Tk_PostscriptPhoto +#define Tk_PostscriptPhoto \ + (tkStubsPtr->tk_PostscriptPhoto) /* 238 */ +#endif +#ifndef Tk_CreateClientMessageHandler +#define Tk_CreateClientMessageHandler \ + (tkStubsPtr->tk_CreateClientMessageHandler) /* 239 */ +#endif +#ifndef Tk_DeleteClientMessageHandler +#define Tk_DeleteClientMessageHandler \ + (tkStubsPtr->tk_DeleteClientMessageHandler) /* 240 */ +#endif +#ifndef Tk_CreateAnonymousWindow +#define Tk_CreateAnonymousWindow \ + (tkStubsPtr->tk_CreateAnonymousWindow) /* 241 */ +#endif +#ifndef Tk_SetClassProcs +#define Tk_SetClassProcs \ + (tkStubsPtr->tk_SetClassProcs) /* 242 */ +#endif +#ifndef Tk_SetInternalBorderEx +#define Tk_SetInternalBorderEx \ + (tkStubsPtr->tk_SetInternalBorderEx) /* 243 */ +#endif +#ifndef Tk_SetMinimumRequestSize +#define Tk_SetMinimumRequestSize \ + (tkStubsPtr->tk_SetMinimumRequestSize) /* 244 */ +#endif +#ifndef Tk_SetCaretPos +#define Tk_SetCaretPos \ + (tkStubsPtr->tk_SetCaretPos) /* 245 */ +#endif +#ifndef Tk_PhotoPutBlock_Panic +#define Tk_PhotoPutBlock_Panic \ + (tkStubsPtr->tk_PhotoPutBlock_Panic) /* 246 */ +#endif +#ifndef Tk_PhotoPutZoomedBlock_Panic +#define Tk_PhotoPutZoomedBlock_Panic \ + (tkStubsPtr->tk_PhotoPutZoomedBlock_Panic) /* 247 */ +#endif +#ifndef Tk_CollapseMotionEvents +#define Tk_CollapseMotionEvents \ + (tkStubsPtr->tk_CollapseMotionEvents) /* 248 */ +#endif +#ifndef Tk_RegisterStyleEngine +#define Tk_RegisterStyleEngine \ + (tkStubsPtr->tk_RegisterStyleEngine) /* 249 */ +#endif +#ifndef Tk_GetStyleEngine +#define Tk_GetStyleEngine \ + (tkStubsPtr->tk_GetStyleEngine) /* 250 */ +#endif +#ifndef Tk_RegisterStyledElement +#define Tk_RegisterStyledElement \ + (tkStubsPtr->tk_RegisterStyledElement) /* 251 */ +#endif +#ifndef Tk_GetElementId +#define Tk_GetElementId \ + (tkStubsPtr->tk_GetElementId) /* 252 */ +#endif +#ifndef Tk_CreateStyle +#define Tk_CreateStyle \ + (tkStubsPtr->tk_CreateStyle) /* 253 */ +#endif +#ifndef Tk_GetStyle +#define Tk_GetStyle \ + (tkStubsPtr->tk_GetStyle) /* 254 */ +#endif +#ifndef Tk_FreeStyle +#define Tk_FreeStyle \ + (tkStubsPtr->tk_FreeStyle) /* 255 */ +#endif +#ifndef Tk_NameOfStyle +#define Tk_NameOfStyle \ + (tkStubsPtr->tk_NameOfStyle) /* 256 */ +#endif +#ifndef Tk_AllocStyleFromObj +#define Tk_AllocStyleFromObj \ + (tkStubsPtr->tk_AllocStyleFromObj) /* 257 */ +#endif +#ifndef Tk_GetStyleFromObj +#define Tk_GetStyleFromObj \ + (tkStubsPtr->tk_GetStyleFromObj) /* 258 */ +#endif +#ifndef Tk_FreeStyleFromObj +#define Tk_FreeStyleFromObj \ + (tkStubsPtr->tk_FreeStyleFromObj) /* 259 */ +#endif +#ifndef Tk_GetStyledElement +#define Tk_GetStyledElement \ + (tkStubsPtr->tk_GetStyledElement) /* 260 */ +#endif +#ifndef Tk_GetElementSize +#define Tk_GetElementSize \ + (tkStubsPtr->tk_GetElementSize) /* 261 */ +#endif +#ifndef Tk_GetElementBox +#define Tk_GetElementBox \ + (tkStubsPtr->tk_GetElementBox) /* 262 */ +#endif +#ifndef Tk_GetElementBorderWidth +#define Tk_GetElementBorderWidth \ + (tkStubsPtr->tk_GetElementBorderWidth) /* 263 */ +#endif +#ifndef Tk_DrawElement +#define Tk_DrawElement \ + (tkStubsPtr->tk_DrawElement) /* 264 */ +#endif +#ifndef Tk_PhotoExpand +#define Tk_PhotoExpand \ + (tkStubsPtr->tk_PhotoExpand) /* 265 */ +#endif +#ifndef Tk_PhotoPutBlock +#define Tk_PhotoPutBlock \ + (tkStubsPtr->tk_PhotoPutBlock) /* 266 */ +#endif +#ifndef Tk_PhotoPutZoomedBlock +#define Tk_PhotoPutZoomedBlock \ + (tkStubsPtr->tk_PhotoPutZoomedBlock) /* 267 */ +#endif +#ifndef Tk_PhotoSetSize +#define Tk_PhotoSetSize \ + (tkStubsPtr->tk_PhotoSetSize) /* 268 */ +#endif +#ifndef Tk_GetUserInactiveTime +#define Tk_GetUserInactiveTime \ + (tkStubsPtr->tk_GetUserInactiveTime) /* 269 */ +#endif +#ifndef Tk_ResetUserInactiveTime +#define Tk_ResetUserInactiveTime \ + (tkStubsPtr->tk_ResetUserInactiveTime) /* 270 */ +#endif +#ifndef Tk_Interp +#define Tk_Interp \ + (tkStubsPtr->tk_Interp) /* 271 */ +#endif +#ifndef Tk_CreateOldImageType +#define Tk_CreateOldImageType \ + (tkStubsPtr->tk_CreateOldImageType) /* 272 */ +#endif +#ifndef Tk_CreateOldPhotoImageFormat +#define Tk_CreateOldPhotoImageFormat \ + (tkStubsPtr->tk_CreateOldPhotoImageFormat) /* 273 */ +#endif + +#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TKDECLS */ + diff --git a/mingw/include/tkIntXlibDecls.h b/mingw/include/tkIntXlibDecls.h dissimilarity index 73% index 3b8a78b1..fadf72c9 100644 --- a/mingw/include/tkIntXlibDecls.h +++ b/mingw/include/tkIntXlibDecls.h @@ -1,2439 +1,2241 @@ -/* - * tkIntXlibDecls.h -- - * - * This file contains the declarations for all platform dependent - * unsupported functions that are exported by the Tk library. These - * interfaces are not guaranteed to remain the same between - * versions. Use at your own risk. - * - * Copyright (c) 1998-1999 by Scriptics Corporation. - * All rights reserved. - * - * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.16.2.1 2005/11/27 02:44:25 das Exp $ - */ - -#ifndef _TKINTXLIBDECLS -#define _TKINTXLIBDECLS - -#ifdef MAC_TCL -#include "Xutil.h" -#else -#include "X11/Xutil.h" -#endif - -#ifdef BUILD_tk -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLEXPORT -#endif - -/* - * WARNING: This file is automatically generated by the tools/genStubs.tcl - * script. Any modifications to the function declarations below should be made - * in the generic/tkInt.decls script. - */ - -/* !BEGIN!: Do not edit below this line. */ - -/* - * Exported function declarations: - */ - -#ifdef __WIN32__ -/* 0 */ -EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc, - int dash_offset, _Xconst char* dash_list, - int n)); -/* 1 */ -EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d)); -/* 2 */ -EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v, - unsigned int ui1, int i1, int i2, char* cp, - unsigned int ui2, unsigned int ui3, int i3, - int i4)); -/* 3 */ -EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr, - int i1, int i2, unsigned int ui1, - unsigned int ui2, unsigned long ul, int i3)); -/* 4 */ -EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a)); -/* 5 */ -EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k)); -/* 6 */ -EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w, - Visual* v, int i)); -/* 7 */ -EXTERN Cursor XCreatePixmapCursor _ANSI_ARGS_((Display* d, - Pixmap p1, Pixmap p2, XColor* x1, XColor* x2, - unsigned int ui1, unsigned int ui2)); -/* 8 */ -EXTERN Cursor XCreateGlyphCursor _ANSI_ARGS_((Display* d, Font f1, - Font f2, unsigned int ui1, unsigned int ui2, - XColor* x1, XColor* x2)); -/* 9 */ -EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g)); -/* 10 */ -EXTERN XHostAddress * XListHosts _ANSI_ARGS_((Display* d, int* i, Bool* b)); -/* 11 */ -EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d, - unsigned int k, int i)); -/* 12 */ -EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c)); -/* 13 */ -EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i)); -/* 14 */ -EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x)); -/* 15 */ -EXTERN Status XIconifyWindow _ANSI_ARGS_((Display* d, Window w, - int i)); -/* 16 */ -EXTERN Status XWithdrawWindow _ANSI_ARGS_((Display* d, Window w, - int i)); -/* 17 */ -EXTERN Status XGetWMColormapWindows _ANSI_ARGS_((Display* d, - Window w, Window** wpp, int* ip)); -/* 18 */ -EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c, - XColor* xp)); -/* 19 */ -EXTERN void XBell _ANSI_ARGS_((Display* d, int i)); -/* 20 */ -EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, Atom a2, int i1, int i2, - _Xconst unsigned char* c, int i3)); -/* 21 */ -EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d, - Window w, unsigned long ul, - XSetWindowAttributes* x)); -/* 22 */ -EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w)); -/* 23 */ -EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int i, XWindowChanges* x)); -/* 24 */ -EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4)); -/* 25 */ -EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4, unsigned long ul)); -/* 26 */ -EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display, - Drawable d, _Xconst char* data, - unsigned int width, unsigned int height)); -/* 27 */ -EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w, - Cursor c)); -/* 28 */ -EXTERN void XDeleteProperty _ANSI_ARGS_((Display* d, Window w, - Atom a)); -/* 29 */ -EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w)); -/* 30 */ -EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 31 */ -EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2)); -/* 32 */ -EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr, - GC g, int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 33 */ -EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 34 */ -EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2, int i3)); -/* 35 */ -EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XRectangle* x, int i)); -/* 36 */ -EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* d, int i)); -/* 37 */ -EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c)); -/* 38 */ -EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c, - unsigned long* ulp, int i, unsigned long ul)); -/* 39 */ -EXTERN void XFreeCursor _ANSI_ARGS_((Display* d, Cursor c)); -/* 40 */ -EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x)); -/* 41 */ -EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr, - Window* w, int* i1, int* i2, - unsigned int* ui1, unsigned int* ui2, - unsigned int* ui3, unsigned int* ui4)); -/* 42 */ -EXTERN void XGetInputFocus _ANSI_ARGS_((Display* d, Window* w, - int* i)); -/* 43 */ -EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, long l1, long l2, Bool b, Atom a2, - Atom* ap, int* ip, unsigned long* ulp1, - unsigned long* ulp2, unsigned char** cpp)); -/* 44 */ -EXTERN Status XGetWindowAttributes _ANSI_ARGS_((Display* d, - Window w, XWindowAttributes* x)); -/* 45 */ -EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w, - Bool b, int i1, int i2, Time t)); -/* 46 */ -EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1, - Bool b, unsigned int ui, int i1, int i2, - Window w2, Cursor c, Time t)); -/* 47 */ -EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k)); -/* 48 */ -EXTERN Status XLookupColor _ANSI_ARGS_((Display* d, Colormap c1, - _Xconst char* c2, XColor* x1, XColor* x2)); -/* 49 */ -EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 50 */ -EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 51 */ -EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2)); -/* 52 */ -EXTERN void XNextEvent _ANSI_ARGS_((Display* d, XEvent* x)); -/* 53 */ -EXTERN void XPutBackEvent _ANSI_ARGS_((Display* d, XEvent* x)); -/* 54 */ -EXTERN void XQueryColors _ANSI_ARGS_((Display* d, Colormap c, - XColor* x, int i)); -/* 55 */ -EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, int* i1, int* i2, - int* i3, int* i4, unsigned int* ui)); -/* 56 */ -EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, Window** w4, - unsigned int* ui)); -/* 57 */ -EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w)); -/* 58 */ -EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_(( - XMappingEvent* x)); -/* 59 */ -EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int ui1, unsigned int ui2)); -/* 60 */ -EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w, - long l)); -/* 61 */ -EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b, - long l, XEvent* x)); -/* 62 */ -EXTERN void XSetCommand _ANSI_ARGS_((Display* d, Window w, - CONST char** c, int i)); -/* 63 */ -EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w, - _Xconst char* c)); -/* 64 */ -EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w, - int i, Time t)); -/* 65 */ -EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a, - Window w, Time t)); -/* 66 */ -EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d, - Window w, unsigned long ul)); -/* 67 */ -EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 68 */ -EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w, - unsigned long ul)); -/* 69 */ -EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 70 */ -EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d, - Window w, unsigned int ui)); -/* 71 */ -EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w, - Colormap c)); -/* 72 */ -EXTERN Bool XTranslateCoordinates _ANSI_ARGS_((Display* d, - Window w1, Window w2, int i1, int i2, - int* i3, int* i4, Window* w3)); -/* 73 */ -EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t)); -/* 74 */ -EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t)); -/* 75 */ -EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 76 */ -EXTERN void XWindowEvent _ANSI_ARGS_((Display* d, Window w, - long l, XEvent* x)); -/* 77 */ -EXTERN void XDestroyIC _ANSI_ARGS_((XIC x)); -/* 78 */ -EXTERN Bool XFilterEvent _ANSI_ARGS_((XEvent* x, Window w)); -/* 79 */ -EXTERN int XmbLookupString _ANSI_ARGS_((XIC xi, - XKeyPressedEvent* xk, char* c, int i, - KeySym* k, Status* s)); -/* 80 */ -EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors, - int ncolors, Display* display, Drawable d, - GC gc, XImage* image, int src_x, int src_y, - int dest_x, int dest_y, unsigned int width, - unsigned int height)); -/* Slot 81 is reserved */ -/* 82 */ -EXTERN Status XParseColor _ANSI_ARGS_((Display * display, - Colormap map, _Xconst char* spec, - XColor * colorPtr)); -/* 83 */ -EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d, - unsigned long valuemask, XGCValues* values)); -/* 84 */ -EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc)); -/* 85 */ -EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display, - _Xconst char* atom_name, Bool only_if_exists)); -/* 86 */ -EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 87 */ -EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 88 */ -EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc, - Pixmap pixmap)); -/* 89 */ -EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc, - int clip_x_origin, int clip_y_origin)); -/* 90 */ -EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc, - int ts_x_origin, int ts_y_origin)); -/* 91 */ -EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc, - unsigned long mask, XGCValues * values)); -/* 92 */ -EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc, - Font font)); -/* 93 */ -EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc, - int arc_mode)); -/* 94 */ -EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc, - Pixmap stipple)); -/* 95 */ -EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc, - int fill_rule)); -/* 96 */ -EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc, - int fill_style)); -/* 97 */ -EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc, - int function)); -/* 98 */ -EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display, - GC gc, unsigned int line_width, - int line_style, int cap_style, - int join_style)); -/* 99 */ -EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image)); -/* 100 */ -EXTERN XIC XCreateIC _ANSI_ARGS_((void)); -/* 101 */ -EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display, - long vinfo_mask, XVisualInfo* vinfo_template, - int* nitems_return)); -/* 102 */ -EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display, - Window w, XTextProperty* text_prop)); -/* 103 */ -EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list, - int count, XTextProperty* text_prop_return)); -/* 104 */ -EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int x1, int y1, int x2, int y2)); -/* 105 */ -EXTERN void XWarpPointer _ANSI_ARGS_((Display* d, Window s, - Window dw, int sx, int sy, unsigned int sw, - unsigned int sh, int dx, int dy)); -/* 106 */ -EXTERN void XFillRectangle _ANSI_ARGS_((Display* display, - Drawable d, GC gc, int x, int y, - unsigned int width, unsigned int height)); -#endif /* __WIN32__ */ -#ifdef MAC_TCL -/* 0 */ -EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc, - int dash_offset, _Xconst char* dash_list, - int n)); -/* 1 */ -EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d)); -/* 2 */ -EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v, - unsigned int ui1, int i1, int i2, char* cp, - unsigned int ui2, unsigned int ui3, int i3, - int i4)); -/* 3 */ -EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr, - int i1, int i2, unsigned int ui1, - unsigned int ui2, unsigned long ul, int i3)); -/* 4 */ -EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a)); -/* 5 */ -EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k)); -/* 6 */ -EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w, - Visual* v, int i)); -/* 7 */ -EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g)); -/* 8 */ -EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d, KeyCode k, - int i)); -/* 9 */ -EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c)); -/* 10 */ -EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i)); -/* 11 */ -EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x)); -/* 12 */ -EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c, - XColor* xp)); -/* 13 */ -EXTERN void XBell _ANSI_ARGS_((Display* d, int i)); -/* 14 */ -EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, Atom a2, int i1, int i2, - _Xconst unsigned char* c, int i3)); -/* 15 */ -EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d, - Window w, unsigned long ul, - XSetWindowAttributes* x)); -/* 16 */ -EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int i, XWindowChanges* x)); -/* 17 */ -EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4)); -/* 18 */ -EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4, unsigned long ul)); -/* 19 */ -EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display, - Drawable d, _Xconst char* data, - unsigned int width, unsigned int height)); -/* 20 */ -EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w, - Cursor c)); -/* 21 */ -EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w)); -/* 22 */ -EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 23 */ -EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2)); -/* 24 */ -EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr, - GC g, int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 25 */ -EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 26 */ -EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2, int i3)); -/* 27 */ -EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XRectangle* x, int i)); -/* 28 */ -EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c)); -/* 29 */ -EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c, - unsigned long* ulp, int i, unsigned long ul)); -/* 30 */ -EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x)); -/* 31 */ -EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr, - Window* w, int* i1, int* i2, - unsigned int* ui1, unsigned int* ui2, - unsigned int* ui3, unsigned int* ui4)); -/* 32 */ -EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, long l1, long l2, Bool b, Atom a2, - Atom* ap, int* ip, unsigned long* ulp1, - unsigned long* ulp2, unsigned char** cpp)); -/* 33 */ -EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w, - Bool b, int i1, int i2, Time t)); -/* 34 */ -EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1, - Bool b, unsigned int ui, int i1, int i2, - Window w2, Cursor c, Time t)); -/* 35 */ -EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k)); -/* 36 */ -EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 37 */ -EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 38 */ -EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2)); -/* 39 */ -EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, int* i1, int* i2, - int* i3, int* i4, unsigned int* ui)); -/* 40 */ -EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w)); -/* 41 */ -EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_(( - XMappingEvent* x)); -/* 42 */ -EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int ui1, unsigned int ui2)); -/* 43 */ -EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w, - long l)); -/* 44 */ -EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b, - long l, XEvent* x)); -/* 45 */ -EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w, - _Xconst char* c)); -/* 46 */ -EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w, - int i, Time t)); -/* 47 */ -EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a, - Window w, Time t)); -/* 48 */ -EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d, - Window w, unsigned long ul)); -/* 49 */ -EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 50 */ -EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w, - unsigned long ul)); -/* 51 */ -EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 52 */ -EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d, - Window w, unsigned int ui)); -/* 53 */ -EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w, - Colormap c)); -/* 54 */ -EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t)); -/* 55 */ -EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t)); -/* 56 */ -EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 57 */ -EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors, - int ncolors, Display* display, Drawable d, - GC gc, XImage* image, int src_x, int src_y, - int dest_x, int dest_y, unsigned int width, - unsigned int height)); -/* 58 */ -EXTERN Status XParseColor _ANSI_ARGS_((Display * display, - Colormap map, _Xconst char* spec, - XColor * colorPtr)); -/* 59 */ -EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d, - unsigned long valuemask, XGCValues* values)); -/* 60 */ -EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc)); -/* 61 */ -EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display, - _Xconst char* atom_name, Bool only_if_exists)); -/* 62 */ -EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 63 */ -EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 64 */ -EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc, - Pixmap pixmap)); -/* 65 */ -EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc, - int clip_x_origin, int clip_y_origin)); -/* 66 */ -EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc, - int ts_x_origin, int ts_y_origin)); -/* 67 */ -EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc, - unsigned long mask, XGCValues * values)); -/* 68 */ -EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc, - Font font)); -/* 69 */ -EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc, - int arc_mode)); -/* 70 */ -EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc, - Pixmap stipple)); -/* 71 */ -EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc, - int fill_rule)); -/* 72 */ -EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc, - int fill_style)); -/* 73 */ -EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc, - int function)); -/* 74 */ -EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display, - GC gc, unsigned int line_width, - int line_style, int cap_style, - int join_style)); -/* 75 */ -EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image)); -/* 76 */ -EXTERN XIC XCreateIC _ANSI_ARGS_((void)); -/* 77 */ -EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display, - long vinfo_mask, XVisualInfo* vinfo_template, - int* nitems_return)); -/* 78 */ -EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display, - Window w, XTextProperty* text_prop)); -/* 79 */ -EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list, - int count, XTextProperty* text_prop_return)); -/* 80 */ -EXTERN void XDrawSegments _ANSI_ARGS_((Display * display, - Drawable d, GC gc, XSegment * segments, - int nsegments)); -/* 81 */ -EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* display, - int mode)); -/* 82 */ -EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int x1, int y1, int x2, int y2)); -/* 83 */ -EXTERN void XFillRectangle _ANSI_ARGS_((Display* display, - Drawable d, GC gc, int x, int y, - unsigned int width, unsigned int height)); -/* 84 */ -EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w)); -/* 85 */ -EXTERN void XDrawPoint _ANSI_ARGS_((Display* display, Drawable d, - GC gc, int x, int y)); -/* 86 */ -EXTERN void XDrawPoints _ANSI_ARGS_((Display* display, - Drawable d, GC gc, XPoint * points, - int npoints, int mode)); -/* 87 */ -EXTERN void XWarpPointer _ANSI_ARGS_((Display* display, - Window src_w, Window dest_w, int src_x, - int src_y, unsigned int src_width, - unsigned int src_height, int dest_x, - int dest_y)); -/* 88 */ -EXTERN void XQueryColor _ANSI_ARGS_((Display * display, - Colormap colormap, XColor * def_in_out)); -/* 89 */ -EXTERN void XQueryColors _ANSI_ARGS_((Display * display, - Colormap colormap, XColor * defs_in_out, - int ncolors)); -/* 90 */ -EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, Window** w4, - unsigned int* ui)); -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK -/* 0 */ -EXTERN void XSetDashes _ANSI_ARGS_((Display* display, GC gc, - int dash_offset, _Xconst char* dash_list, - int n)); -/* 1 */ -EXTERN XModifierKeymap* XGetModifierMapping _ANSI_ARGS_((Display* d)); -/* 2 */ -EXTERN XImage * XCreateImage _ANSI_ARGS_((Display* d, Visual* v, - unsigned int ui1, int i1, int i2, char* cp, - unsigned int ui2, unsigned int ui3, int i3, - int i4)); -/* 3 */ -EXTERN XImage * XGetImage _ANSI_ARGS_((Display* d, Drawable dr, - int i1, int i2, unsigned int ui1, - unsigned int ui2, unsigned long ul, int i3)); -/* 4 */ -EXTERN char * XGetAtomName _ANSI_ARGS_((Display* d, Atom a)); -/* 5 */ -EXTERN char * XKeysymToString _ANSI_ARGS_((KeySym k)); -/* 6 */ -EXTERN Colormap XCreateColormap _ANSI_ARGS_((Display* d, Window w, - Visual* v, int i)); -/* 7 */ -EXTERN GContext XGContextFromGC _ANSI_ARGS_((GC g)); -/* 8 */ -EXTERN KeySym XKeycodeToKeysym _ANSI_ARGS_((Display* d, KeyCode k, - int i)); -/* 9 */ -EXTERN KeySym XStringToKeysym _ANSI_ARGS_((_Xconst char* c)); -/* 10 */ -EXTERN Window XRootWindow _ANSI_ARGS_((Display* d, int i)); -/* 11 */ -EXTERN XErrorHandler XSetErrorHandler _ANSI_ARGS_((XErrorHandler x)); -/* 12 */ -EXTERN Status XAllocColor _ANSI_ARGS_((Display* d, Colormap c, - XColor* xp)); -/* 13 */ -EXTERN void XBell _ANSI_ARGS_((Display* d, int i)); -/* 14 */ -EXTERN void XChangeProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, Atom a2, int i1, int i2, - _Xconst unsigned char* c, int i3)); -/* 15 */ -EXTERN void XChangeWindowAttributes _ANSI_ARGS_((Display* d, - Window w, unsigned long ul, - XSetWindowAttributes* x)); -/* 16 */ -EXTERN void XConfigureWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int i, XWindowChanges* x)); -/* 17 */ -EXTERN void XCopyArea _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4)); -/* 18 */ -EXTERN void XCopyPlane _ANSI_ARGS_((Display* d, Drawable dr1, - Drawable dr2, GC g, int i1, int i2, - unsigned int ui1, unsigned int ui2, int i3, - int i4, unsigned long ul)); -/* 19 */ -EXTERN Pixmap XCreateBitmapFromData _ANSI_ARGS_((Display* display, - Drawable d, _Xconst char* data, - unsigned int width, unsigned int height)); -/* 20 */ -EXTERN void XDefineCursor _ANSI_ARGS_((Display* d, Window w, - Cursor c)); -/* 21 */ -EXTERN void XDestroyWindow _ANSI_ARGS_((Display* d, Window w)); -/* 22 */ -EXTERN void XDrawArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 23 */ -EXTERN void XDrawLines _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2)); -/* 24 */ -EXTERN void XDrawRectangle _ANSI_ARGS_((Display* d, Drawable dr, - GC g, int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 25 */ -EXTERN void XFillArc _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int i1, int i2, unsigned int ui1, - unsigned int ui2, int i3, int i4)); -/* 26 */ -EXTERN void XFillPolygon _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XPoint* x, int i1, int i2, int i3)); -/* 27 */ -EXTERN void XFillRectangles _ANSI_ARGS_((Display* d, Drawable dr, - GC g, XRectangle* x, int i)); -/* 28 */ -EXTERN void XFreeColormap _ANSI_ARGS_((Display* d, Colormap c)); -/* 29 */ -EXTERN void XFreeColors _ANSI_ARGS_((Display* d, Colormap c, - unsigned long* ulp, int i, unsigned long ul)); -/* 30 */ -EXTERN void XFreeModifiermap _ANSI_ARGS_((XModifierKeymap* x)); -/* 31 */ -EXTERN Status XGetGeometry _ANSI_ARGS_((Display* d, Drawable dr, - Window* w, int* i1, int* i2, - unsigned int* ui1, unsigned int* ui2, - unsigned int* ui3, unsigned int* ui4)); -/* 32 */ -EXTERN int XGetWindowProperty _ANSI_ARGS_((Display* d, Window w, - Atom a1, long l1, long l2, Bool b, Atom a2, - Atom* ap, int* ip, unsigned long* ulp1, - unsigned long* ulp2, unsigned char** cpp)); -/* 33 */ -EXTERN int XGrabKeyboard _ANSI_ARGS_((Display* d, Window w, - Bool b, int i1, int i2, Time t)); -/* 34 */ -EXTERN int XGrabPointer _ANSI_ARGS_((Display* d, Window w1, - Bool b, unsigned int ui, int i1, int i2, - Window w2, Cursor c, Time t)); -/* 35 */ -EXTERN KeyCode XKeysymToKeycode _ANSI_ARGS_((Display* d, KeySym k)); -/* 36 */ -EXTERN void XMapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 37 */ -EXTERN void XMoveResizeWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2, unsigned int ui1, - unsigned int ui2)); -/* 38 */ -EXTERN void XMoveWindow _ANSI_ARGS_((Display* d, Window w, - int i1, int i2)); -/* 39 */ -EXTERN Bool XQueryPointer _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, int* i1, int* i2, - int* i3, int* i4, unsigned int* ui)); -/* 40 */ -EXTERN void XRaiseWindow _ANSI_ARGS_((Display* d, Window w)); -/* 41 */ -EXTERN void XRefreshKeyboardMapping _ANSI_ARGS_(( - XMappingEvent* x)); -/* 42 */ -EXTERN void XResizeWindow _ANSI_ARGS_((Display* d, Window w, - unsigned int ui1, unsigned int ui2)); -/* 43 */ -EXTERN void XSelectInput _ANSI_ARGS_((Display* d, Window w, - long l)); -/* 44 */ -EXTERN Status XSendEvent _ANSI_ARGS_((Display* d, Window w, Bool b, - long l, XEvent* x)); -/* 45 */ -EXTERN void XSetIconName _ANSI_ARGS_((Display* d, Window w, - _Xconst char* c)); -/* 46 */ -EXTERN void XSetInputFocus _ANSI_ARGS_((Display* d, Window w, - int i, Time t)); -/* 47 */ -EXTERN void XSetSelectionOwner _ANSI_ARGS_((Display* d, Atom a, - Window w, Time t)); -/* 48 */ -EXTERN void XSetWindowBackground _ANSI_ARGS_((Display* d, - Window w, unsigned long ul)); -/* 49 */ -EXTERN void XSetWindowBackgroundPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 50 */ -EXTERN void XSetWindowBorder _ANSI_ARGS_((Display* d, Window w, - unsigned long ul)); -/* 51 */ -EXTERN void XSetWindowBorderPixmap _ANSI_ARGS_((Display* d, - Window w, Pixmap p)); -/* 52 */ -EXTERN void XSetWindowBorderWidth _ANSI_ARGS_((Display* d, - Window w, unsigned int ui)); -/* 53 */ -EXTERN void XSetWindowColormap _ANSI_ARGS_((Display* d, Window w, - Colormap c)); -/* 54 */ -EXTERN void XUngrabKeyboard _ANSI_ARGS_((Display* d, Time t)); -/* 55 */ -EXTERN void XUngrabPointer _ANSI_ARGS_((Display* d, Time t)); -/* 56 */ -EXTERN void XUnmapWindow _ANSI_ARGS_((Display* d, Window w)); -/* 57 */ -EXTERN void TkPutImage _ANSI_ARGS_((unsigned long * colors, - int ncolors, Display* display, Drawable d, - GC gc, XImage* image, int src_x, int src_y, - int dest_x, int dest_y, unsigned int width, - unsigned int height)); -/* 58 */ -EXTERN Status XParseColor _ANSI_ARGS_((Display * display, - Colormap map, _Xconst char* spec, - XColor * colorPtr)); -/* 59 */ -EXTERN GC XCreateGC _ANSI_ARGS_((Display* display, Drawable d, - unsigned long valuemask, XGCValues* values)); -/* 60 */ -EXTERN void XFreeGC _ANSI_ARGS_((Display* display, GC gc)); -/* 61 */ -EXTERN Atom XInternAtom _ANSI_ARGS_((Display* display, - _Xconst char* atom_name, Bool only_if_exists)); -/* 62 */ -EXTERN void XSetBackground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 63 */ -EXTERN void XSetForeground _ANSI_ARGS_((Display* display, GC gc, - unsigned long foreground)); -/* 64 */ -EXTERN void XSetClipMask _ANSI_ARGS_((Display* display, GC gc, - Pixmap pixmap)); -/* 65 */ -EXTERN void XSetClipOrigin _ANSI_ARGS_((Display* display, GC gc, - int clip_x_origin, int clip_y_origin)); -/* 66 */ -EXTERN void XSetTSOrigin _ANSI_ARGS_((Display* display, GC gc, - int ts_x_origin, int ts_y_origin)); -/* 67 */ -EXTERN void XChangeGC _ANSI_ARGS_((Display * d, GC gc, - unsigned long mask, XGCValues * values)); -/* 68 */ -EXTERN void XSetFont _ANSI_ARGS_((Display * display, GC gc, - Font font)); -/* 69 */ -EXTERN void XSetArcMode _ANSI_ARGS_((Display * display, GC gc, - int arc_mode)); -/* 70 */ -EXTERN void XSetStipple _ANSI_ARGS_((Display * display, GC gc, - Pixmap stipple)); -/* 71 */ -EXTERN void XSetFillRule _ANSI_ARGS_((Display * display, GC gc, - int fill_rule)); -/* 72 */ -EXTERN void XSetFillStyle _ANSI_ARGS_((Display * display, GC gc, - int fill_style)); -/* 73 */ -EXTERN void XSetFunction _ANSI_ARGS_((Display * display, GC gc, - int function)); -/* 74 */ -EXTERN void XSetLineAttributes _ANSI_ARGS_((Display * display, - GC gc, unsigned int line_width, - int line_style, int cap_style, - int join_style)); -/* 75 */ -EXTERN int _XInitImageFuncPtrs _ANSI_ARGS_((XImage * image)); -/* 76 */ -EXTERN XIC XCreateIC _ANSI_ARGS_((void)); -/* 77 */ -EXTERN XVisualInfo * XGetVisualInfo _ANSI_ARGS_((Display* display, - long vinfo_mask, XVisualInfo* vinfo_template, - int* nitems_return)); -/* 78 */ -EXTERN void XSetWMClientMachine _ANSI_ARGS_((Display* display, - Window w, XTextProperty* text_prop)); -/* 79 */ -EXTERN Status XStringListToTextProperty _ANSI_ARGS_((char** list, - int count, XTextProperty* text_prop_return)); -/* 80 */ -EXTERN void XDrawSegments _ANSI_ARGS_((Display * display, - Drawable d, GC gc, XSegment * segments, - int nsegments)); -/* 81 */ -EXTERN void XForceScreenSaver _ANSI_ARGS_((Display* display, - int mode)); -/* 82 */ -EXTERN void XDrawLine _ANSI_ARGS_((Display* d, Drawable dr, GC g, - int x1, int y1, int x2, int y2)); -/* 83 */ -EXTERN void XFillRectangle _ANSI_ARGS_((Display* display, - Drawable d, GC gc, int x, int y, - unsigned int width, unsigned int height)); -/* 84 */ -EXTERN void XClearWindow _ANSI_ARGS_((Display* d, Window w)); -/* 85 */ -EXTERN void XDrawPoint _ANSI_ARGS_((Display* display, Drawable d, - GC gc, int x, int y)); -/* 86 */ -EXTERN void XDrawPoints _ANSI_ARGS_((Display* display, - Drawable d, GC gc, XPoint * points, - int npoints, int mode)); -/* 87 */ -EXTERN void XWarpPointer _ANSI_ARGS_((Display* display, - Window src_w, Window dest_w, int src_x, - int src_y, unsigned int src_width, - unsigned int src_height, int dest_x, - int dest_y)); -/* 88 */ -EXTERN void XQueryColor _ANSI_ARGS_((Display * display, - Colormap colormap, XColor * def_in_out)); -/* 89 */ -EXTERN void XQueryColors _ANSI_ARGS_((Display * display, - Colormap colormap, XColor * defs_in_out, - int ncolors)); -/* 90 */ -EXTERN Status XQueryTree _ANSI_ARGS_((Display* d, Window w1, - Window* w2, Window* w3, Window** w4, - unsigned int* ui)); -/* 91 */ -EXTERN int XSync _ANSI_ARGS_((Display * display, Bool flag)); -#endif /* MAC_OSX_TK */ - -typedef struct TkIntXlibStubs { - int magic; - struct TkIntXlibStubHooks *hooks; - -#ifdef __WIN32__ - void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */ - XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */ - XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */ - XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */ - char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */ - char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */ - Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */ - Cursor (*xCreatePixmapCursor) _ANSI_ARGS_((Display* d, Pixmap p1, Pixmap p2, XColor* x1, XColor* x2, unsigned int ui1, unsigned int ui2)); /* 7 */ - Cursor (*xCreateGlyphCursor) _ANSI_ARGS_((Display* d, Font f1, Font f2, unsigned int ui1, unsigned int ui2, XColor* x1, XColor* x2)); /* 8 */ - GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 9 */ - XHostAddress * (*xListHosts) _ANSI_ARGS_((Display* d, int* i, Bool* b)); /* 10 */ - KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, unsigned int k, int i)); /* 11 */ - KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 12 */ - Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 13 */ - XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 14 */ - Status (*xIconifyWindow) _ANSI_ARGS_((Display* d, Window w, int i)); /* 15 */ - Status (*xWithdrawWindow) _ANSI_ARGS_((Display* d, Window w, int i)); /* 16 */ - Status (*xGetWMColormapWindows) _ANSI_ARGS_((Display* d, Window w, Window** wpp, int* ip)); /* 17 */ - Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 18 */ - void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 19 */ - void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 20 */ - void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 21 */ - void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 22 */ - void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 23 */ - void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 24 */ - void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 25 */ - Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 26 */ - void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 27 */ - void (*xDeleteProperty) _ANSI_ARGS_((Display* d, Window w, Atom a)); /* 28 */ - void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 29 */ - void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 30 */ - void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 31 */ - void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 32 */ - void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 33 */ - void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 34 */ - void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 35 */ - void (*xForceScreenSaver) _ANSI_ARGS_((Display* d, int i)); /* 36 */ - void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 37 */ - void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 38 */ - void (*xFreeCursor) _ANSI_ARGS_((Display* d, Cursor c)); /* 39 */ - void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 40 */ - Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 41 */ - void (*xGetInputFocus) _ANSI_ARGS_((Display* d, Window* w, int* i)); /* 42 */ - int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 43 */ - Status (*xGetWindowAttributes) _ANSI_ARGS_((Display* d, Window w, XWindowAttributes* x)); /* 44 */ - int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 45 */ - int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 46 */ - KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 47 */ - Status (*xLookupColor) _ANSI_ARGS_((Display* d, Colormap c1, _Xconst char* c2, XColor* x1, XColor* x2)); /* 48 */ - void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 49 */ - void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 50 */ - void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 51 */ - void (*xNextEvent) _ANSI_ARGS_((Display* d, XEvent* x)); /* 52 */ - void (*xPutBackEvent) _ANSI_ARGS_((Display* d, XEvent* x)); /* 53 */ - void (*xQueryColors) _ANSI_ARGS_((Display* d, Colormap c, XColor* x, int i)); /* 54 */ - Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 55 */ - Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 56 */ - void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 57 */ - void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 58 */ - void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 59 */ - void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 60 */ - Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 61 */ - void (*xSetCommand) _ANSI_ARGS_((Display* d, Window w, CONST char** c, int i)); /* 62 */ - void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 63 */ - void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 64 */ - void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 65 */ - void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 66 */ - void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 67 */ - void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 68 */ - void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 69 */ - void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 70 */ - void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 71 */ - Bool (*xTranslateCoordinates) _ANSI_ARGS_((Display* d, Window w1, Window w2, int i1, int i2, int* i3, int* i4, Window* w3)); /* 72 */ - void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 73 */ - void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 74 */ - void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 75 */ - void (*xWindowEvent) _ANSI_ARGS_((Display* d, Window w, long l, XEvent* x)); /* 76 */ - void (*xDestroyIC) _ANSI_ARGS_((XIC x)); /* 77 */ - Bool (*xFilterEvent) _ANSI_ARGS_((XEvent* x, Window w)); /* 78 */ - int (*xmbLookupString) _ANSI_ARGS_((XIC xi, XKeyPressedEvent* xk, char* c, int i, KeySym* k, Status* s)); /* 79 */ - void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 80 */ - void *reserved81; - Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 82 */ - GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 83 */ - void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 84 */ - Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 85 */ - void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 86 */ - void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 87 */ - void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 88 */ - void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 89 */ - void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 90 */ - void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 91 */ - void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 92 */ - void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 93 */ - void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 94 */ - void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 95 */ - void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 96 */ - void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 97 */ - void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 98 */ - int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 99 */ - XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 100 */ - XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 101 */ - void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 102 */ - Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 103 */ - void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 104 */ - void (*xWarpPointer) _ANSI_ARGS_((Display* d, Window s, Window dw, int sx, int sy, unsigned int sw, unsigned int sh, int dx, int dy)); /* 105 */ - void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 106 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */ - XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */ - XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */ - XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */ - char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */ - char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */ - Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */ - GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 7 */ - KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, KeyCode k, int i)); /* 8 */ - KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 9 */ - Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 10 */ - XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 11 */ - Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 12 */ - void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 13 */ - void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 14 */ - void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 15 */ - void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 16 */ - void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 17 */ - void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 18 */ - Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 19 */ - void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 20 */ - void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 21 */ - void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 22 */ - void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 23 */ - void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 24 */ - void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 25 */ - void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 26 */ - void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 27 */ - void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 28 */ - void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 29 */ - void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 30 */ - Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 31 */ - int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 32 */ - int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 33 */ - int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 34 */ - KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 35 */ - void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 36 */ - void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 37 */ - void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 38 */ - Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 39 */ - void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 40 */ - void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 41 */ - void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 42 */ - void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 43 */ - Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 44 */ - void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 45 */ - void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 46 */ - void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 47 */ - void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 48 */ - void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 49 */ - void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 50 */ - void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 51 */ - void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 52 */ - void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 53 */ - void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 54 */ - void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 55 */ - void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 56 */ - void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 57 */ - Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 58 */ - GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 59 */ - void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 60 */ - Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 61 */ - void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 62 */ - void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 63 */ - void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 64 */ - void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 65 */ - void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 66 */ - void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 67 */ - void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 68 */ - void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 69 */ - void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 70 */ - void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 71 */ - void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 72 */ - void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 73 */ - void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 74 */ - int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 75 */ - XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 76 */ - XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 77 */ - void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 78 */ - Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 79 */ - void (*xDrawSegments) _ANSI_ARGS_((Display * display, Drawable d, GC gc, XSegment * segments, int nsegments)); /* 80 */ - void (*xForceScreenSaver) _ANSI_ARGS_((Display* display, int mode)); /* 81 */ - void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 82 */ - void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 83 */ - void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 84 */ - void (*xDrawPoint) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y)); /* 85 */ - void (*xDrawPoints) _ANSI_ARGS_((Display* display, Drawable d, GC gc, XPoint * points, int npoints, int mode)); /* 86 */ - void (*xWarpPointer) _ANSI_ARGS_((Display* display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y)); /* 87 */ - void (*xQueryColor) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * def_in_out)); /* 88 */ - void (*xQueryColors) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * defs_in_out, int ncolors)); /* 89 */ - Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 90 */ -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK - void (*xSetDashes) _ANSI_ARGS_((Display* display, GC gc, int dash_offset, _Xconst char* dash_list, int n)); /* 0 */ - XModifierKeymap* (*xGetModifierMapping) _ANSI_ARGS_((Display* d)); /* 1 */ - XImage * (*xCreateImage) _ANSI_ARGS_((Display* d, Visual* v, unsigned int ui1, int i1, int i2, char* cp, unsigned int ui2, unsigned int ui3, int i3, int i4)); /* 2 */ - XImage * (*xGetImage) _ANSI_ARGS_((Display* d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3)); /* 3 */ - char * (*xGetAtomName) _ANSI_ARGS_((Display* d, Atom a)); /* 4 */ - char * (*xKeysymToString) _ANSI_ARGS_((KeySym k)); /* 5 */ - Colormap (*xCreateColormap) _ANSI_ARGS_((Display* d, Window w, Visual* v, int i)); /* 6 */ - GContext (*xGContextFromGC) _ANSI_ARGS_((GC g)); /* 7 */ - KeySym (*xKeycodeToKeysym) _ANSI_ARGS_((Display* d, KeyCode k, int i)); /* 8 */ - KeySym (*xStringToKeysym) _ANSI_ARGS_((_Xconst char* c)); /* 9 */ - Window (*xRootWindow) _ANSI_ARGS_((Display* d, int i)); /* 10 */ - XErrorHandler (*xSetErrorHandler) _ANSI_ARGS_((XErrorHandler x)); /* 11 */ - Status (*xAllocColor) _ANSI_ARGS_((Display* d, Colormap c, XColor* xp)); /* 12 */ - void (*xBell) _ANSI_ARGS_((Display* d, int i)); /* 13 */ - void (*xChangeProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char* c, int i3)); /* 14 */ - void (*xChangeWindowAttributes) _ANSI_ARGS_((Display* d, Window w, unsigned long ul, XSetWindowAttributes* x)); /* 15 */ - void (*xConfigureWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int i, XWindowChanges* x)); /* 16 */ - void (*xCopyArea) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 17 */ - void (*xCopyPlane) _ANSI_ARGS_((Display* d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul)); /* 18 */ - Pixmap (*xCreateBitmapFromData) _ANSI_ARGS_((Display* display, Drawable d, _Xconst char* data, unsigned int width, unsigned int height)); /* 19 */ - void (*xDefineCursor) _ANSI_ARGS_((Display* d, Window w, Cursor c)); /* 20 */ - void (*xDestroyWindow) _ANSI_ARGS_((Display* d, Window w)); /* 21 */ - void (*xDrawArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 22 */ - void (*xDrawLines) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2)); /* 23 */ - void (*xDrawRectangle) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 24 */ - void (*xFillArc) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)); /* 25 */ - void (*xFillPolygon) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XPoint* x, int i1, int i2, int i3)); /* 26 */ - void (*xFillRectangles) _ANSI_ARGS_((Display* d, Drawable dr, GC g, XRectangle* x, int i)); /* 27 */ - void (*xFreeColormap) _ANSI_ARGS_((Display* d, Colormap c)); /* 28 */ - void (*xFreeColors) _ANSI_ARGS_((Display* d, Colormap c, unsigned long* ulp, int i, unsigned long ul)); /* 29 */ - void (*xFreeModifiermap) _ANSI_ARGS_((XModifierKeymap* x)); /* 30 */ - Status (*xGetGeometry) _ANSI_ARGS_((Display* d, Drawable dr, Window* w, int* i1, int* i2, unsigned int* ui1, unsigned int* ui2, unsigned int* ui3, unsigned int* ui4)); /* 31 */ - int (*xGetWindowProperty) _ANSI_ARGS_((Display* d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom* ap, int* ip, unsigned long* ulp1, unsigned long* ulp2, unsigned char** cpp)); /* 32 */ - int (*xGrabKeyboard) _ANSI_ARGS_((Display* d, Window w, Bool b, int i1, int i2, Time t)); /* 33 */ - int (*xGrabPointer) _ANSI_ARGS_((Display* d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t)); /* 34 */ - KeyCode (*xKeysymToKeycode) _ANSI_ARGS_((Display* d, KeySym k)); /* 35 */ - void (*xMapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 36 */ - void (*xMoveResizeWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2)); /* 37 */ - void (*xMoveWindow) _ANSI_ARGS_((Display* d, Window w, int i1, int i2)); /* 38 */ - Bool (*xQueryPointer) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, int* i1, int* i2, int* i3, int* i4, unsigned int* ui)); /* 39 */ - void (*xRaiseWindow) _ANSI_ARGS_((Display* d, Window w)); /* 40 */ - void (*xRefreshKeyboardMapping) _ANSI_ARGS_((XMappingEvent* x)); /* 41 */ - void (*xResizeWindow) _ANSI_ARGS_((Display* d, Window w, unsigned int ui1, unsigned int ui2)); /* 42 */ - void (*xSelectInput) _ANSI_ARGS_((Display* d, Window w, long l)); /* 43 */ - Status (*xSendEvent) _ANSI_ARGS_((Display* d, Window w, Bool b, long l, XEvent* x)); /* 44 */ - void (*xSetIconName) _ANSI_ARGS_((Display* d, Window w, _Xconst char* c)); /* 45 */ - void (*xSetInputFocus) _ANSI_ARGS_((Display* d, Window w, int i, Time t)); /* 46 */ - void (*xSetSelectionOwner) _ANSI_ARGS_((Display* d, Atom a, Window w, Time t)); /* 47 */ - void (*xSetWindowBackground) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 48 */ - void (*xSetWindowBackgroundPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 49 */ - void (*xSetWindowBorder) _ANSI_ARGS_((Display* d, Window w, unsigned long ul)); /* 50 */ - void (*xSetWindowBorderPixmap) _ANSI_ARGS_((Display* d, Window w, Pixmap p)); /* 51 */ - void (*xSetWindowBorderWidth) _ANSI_ARGS_((Display* d, Window w, unsigned int ui)); /* 52 */ - void (*xSetWindowColormap) _ANSI_ARGS_((Display* d, Window w, Colormap c)); /* 53 */ - void (*xUngrabKeyboard) _ANSI_ARGS_((Display* d, Time t)); /* 54 */ - void (*xUngrabPointer) _ANSI_ARGS_((Display* d, Time t)); /* 55 */ - void (*xUnmapWindow) _ANSI_ARGS_((Display* d, Window w)); /* 56 */ - void (*tkPutImage) _ANSI_ARGS_((unsigned long * colors, int ncolors, Display* display, Drawable d, GC gc, XImage* image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height)); /* 57 */ - Status (*xParseColor) _ANSI_ARGS_((Display * display, Colormap map, _Xconst char* spec, XColor * colorPtr)); /* 58 */ - GC (*xCreateGC) _ANSI_ARGS_((Display* display, Drawable d, unsigned long valuemask, XGCValues* values)); /* 59 */ - void (*xFreeGC) _ANSI_ARGS_((Display* display, GC gc)); /* 60 */ - Atom (*xInternAtom) _ANSI_ARGS_((Display* display, _Xconst char* atom_name, Bool only_if_exists)); /* 61 */ - void (*xSetBackground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 62 */ - void (*xSetForeground) _ANSI_ARGS_((Display* display, GC gc, unsigned long foreground)); /* 63 */ - void (*xSetClipMask) _ANSI_ARGS_((Display* display, GC gc, Pixmap pixmap)); /* 64 */ - void (*xSetClipOrigin) _ANSI_ARGS_((Display* display, GC gc, int clip_x_origin, int clip_y_origin)); /* 65 */ - void (*xSetTSOrigin) _ANSI_ARGS_((Display* display, GC gc, int ts_x_origin, int ts_y_origin)); /* 66 */ - void (*xChangeGC) _ANSI_ARGS_((Display * d, GC gc, unsigned long mask, XGCValues * values)); /* 67 */ - void (*xSetFont) _ANSI_ARGS_((Display * display, GC gc, Font font)); /* 68 */ - void (*xSetArcMode) _ANSI_ARGS_((Display * display, GC gc, int arc_mode)); /* 69 */ - void (*xSetStipple) _ANSI_ARGS_((Display * display, GC gc, Pixmap stipple)); /* 70 */ - void (*xSetFillRule) _ANSI_ARGS_((Display * display, GC gc, int fill_rule)); /* 71 */ - void (*xSetFillStyle) _ANSI_ARGS_((Display * display, GC gc, int fill_style)); /* 72 */ - void (*xSetFunction) _ANSI_ARGS_((Display * display, GC gc, int function)); /* 73 */ - void (*xSetLineAttributes) _ANSI_ARGS_((Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style)); /* 74 */ - int (*_XInitImageFuncPtrs) _ANSI_ARGS_((XImage * image)); /* 75 */ - XIC (*xCreateIC) _ANSI_ARGS_((void)); /* 76 */ - XVisualInfo * (*xGetVisualInfo) _ANSI_ARGS_((Display* display, long vinfo_mask, XVisualInfo* vinfo_template, int* nitems_return)); /* 77 */ - void (*xSetWMClientMachine) _ANSI_ARGS_((Display* display, Window w, XTextProperty* text_prop)); /* 78 */ - Status (*xStringListToTextProperty) _ANSI_ARGS_((char** list, int count, XTextProperty* text_prop_return)); /* 79 */ - void (*xDrawSegments) _ANSI_ARGS_((Display * display, Drawable d, GC gc, XSegment * segments, int nsegments)); /* 80 */ - void (*xForceScreenSaver) _ANSI_ARGS_((Display* display, int mode)); /* 81 */ - void (*xDrawLine) _ANSI_ARGS_((Display* d, Drawable dr, GC g, int x1, int y1, int x2, int y2)); /* 82 */ - void (*xFillRectangle) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height)); /* 83 */ - void (*xClearWindow) _ANSI_ARGS_((Display* d, Window w)); /* 84 */ - void (*xDrawPoint) _ANSI_ARGS_((Display* display, Drawable d, GC gc, int x, int y)); /* 85 */ - void (*xDrawPoints) _ANSI_ARGS_((Display* display, Drawable d, GC gc, XPoint * points, int npoints, int mode)); /* 86 */ - void (*xWarpPointer) _ANSI_ARGS_((Display* display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y)); /* 87 */ - void (*xQueryColor) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * def_in_out)); /* 88 */ - void (*xQueryColors) _ANSI_ARGS_((Display * display, Colormap colormap, XColor * defs_in_out, int ncolors)); /* 89 */ - Status (*xQueryTree) _ANSI_ARGS_((Display* d, Window w1, Window* w2, Window* w3, Window** w4, unsigned int* ui)); /* 90 */ - int (*xSync) _ANSI_ARGS_((Display * display, Bool flag)); /* 91 */ -#endif /* MAC_OSX_TK */ -} TkIntXlibStubs; - -#ifdef __cplusplus -extern "C" { -#endif -extern TkIntXlibStubs *tkIntXlibStubsPtr; -#ifdef __cplusplus -} -#endif - -#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) - -/* - * Inline function declarations: - */ - -#ifdef __WIN32__ -#ifndef XSetDashes -#define XSetDashes \ - (tkIntXlibStubsPtr->xSetDashes) /* 0 */ -#endif -#ifndef XGetModifierMapping -#define XGetModifierMapping \ - (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */ -#endif -#ifndef XCreateImage -#define XCreateImage \ - (tkIntXlibStubsPtr->xCreateImage) /* 2 */ -#endif -#ifndef XGetImage -#define XGetImage \ - (tkIntXlibStubsPtr->xGetImage) /* 3 */ -#endif -#ifndef XGetAtomName -#define XGetAtomName \ - (tkIntXlibStubsPtr->xGetAtomName) /* 4 */ -#endif -#ifndef XKeysymToString -#define XKeysymToString \ - (tkIntXlibStubsPtr->xKeysymToString) /* 5 */ -#endif -#ifndef XCreateColormap -#define XCreateColormap \ - (tkIntXlibStubsPtr->xCreateColormap) /* 6 */ -#endif -#ifndef XCreatePixmapCursor -#define XCreatePixmapCursor \ - (tkIntXlibStubsPtr->xCreatePixmapCursor) /* 7 */ -#endif -#ifndef XCreateGlyphCursor -#define XCreateGlyphCursor \ - (tkIntXlibStubsPtr->xCreateGlyphCursor) /* 8 */ -#endif -#ifndef XGContextFromGC -#define XGContextFromGC \ - (tkIntXlibStubsPtr->xGContextFromGC) /* 9 */ -#endif -#ifndef XListHosts -#define XListHosts \ - (tkIntXlibStubsPtr->xListHosts) /* 10 */ -#endif -#ifndef XKeycodeToKeysym -#define XKeycodeToKeysym \ - (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 11 */ -#endif -#ifndef XStringToKeysym -#define XStringToKeysym \ - (tkIntXlibStubsPtr->xStringToKeysym) /* 12 */ -#endif -#ifndef XRootWindow -#define XRootWindow \ - (tkIntXlibStubsPtr->xRootWindow) /* 13 */ -#endif -#ifndef XSetErrorHandler -#define XSetErrorHandler \ - (tkIntXlibStubsPtr->xSetErrorHandler) /* 14 */ -#endif -#ifndef XIconifyWindow -#define XIconifyWindow \ - (tkIntXlibStubsPtr->xIconifyWindow) /* 15 */ -#endif -#ifndef XWithdrawWindow -#define XWithdrawWindow \ - (tkIntXlibStubsPtr->xWithdrawWindow) /* 16 */ -#endif -#ifndef XGetWMColormapWindows -#define XGetWMColormapWindows \ - (tkIntXlibStubsPtr->xGetWMColormapWindows) /* 17 */ -#endif -#ifndef XAllocColor -#define XAllocColor \ - (tkIntXlibStubsPtr->xAllocColor) /* 18 */ -#endif -#ifndef XBell -#define XBell \ - (tkIntXlibStubsPtr->xBell) /* 19 */ -#endif -#ifndef XChangeProperty -#define XChangeProperty \ - (tkIntXlibStubsPtr->xChangeProperty) /* 20 */ -#endif -#ifndef XChangeWindowAttributes -#define XChangeWindowAttributes \ - (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 21 */ -#endif -#ifndef XClearWindow -#define XClearWindow \ - (tkIntXlibStubsPtr->xClearWindow) /* 22 */ -#endif -#ifndef XConfigureWindow -#define XConfigureWindow \ - (tkIntXlibStubsPtr->xConfigureWindow) /* 23 */ -#endif -#ifndef XCopyArea -#define XCopyArea \ - (tkIntXlibStubsPtr->xCopyArea) /* 24 */ -#endif -#ifndef XCopyPlane -#define XCopyPlane \ - (tkIntXlibStubsPtr->xCopyPlane) /* 25 */ -#endif -#ifndef XCreateBitmapFromData -#define XCreateBitmapFromData \ - (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 26 */ -#endif -#ifndef XDefineCursor -#define XDefineCursor \ - (tkIntXlibStubsPtr->xDefineCursor) /* 27 */ -#endif -#ifndef XDeleteProperty -#define XDeleteProperty \ - (tkIntXlibStubsPtr->xDeleteProperty) /* 28 */ -#endif -#ifndef XDestroyWindow -#define XDestroyWindow \ - (tkIntXlibStubsPtr->xDestroyWindow) /* 29 */ -#endif -#ifndef XDrawArc -#define XDrawArc \ - (tkIntXlibStubsPtr->xDrawArc) /* 30 */ -#endif -#ifndef XDrawLines -#define XDrawLines \ - (tkIntXlibStubsPtr->xDrawLines) /* 31 */ -#endif -#ifndef XDrawRectangle -#define XDrawRectangle \ - (tkIntXlibStubsPtr->xDrawRectangle) /* 32 */ -#endif -#ifndef XFillArc -#define XFillArc \ - (tkIntXlibStubsPtr->xFillArc) /* 33 */ -#endif -#ifndef XFillPolygon -#define XFillPolygon \ - (tkIntXlibStubsPtr->xFillPolygon) /* 34 */ -#endif -#ifndef XFillRectangles -#define XFillRectangles \ - (tkIntXlibStubsPtr->xFillRectangles) /* 35 */ -#endif -#ifndef XForceScreenSaver -#define XForceScreenSaver \ - (tkIntXlibStubsPtr->xForceScreenSaver) /* 36 */ -#endif -#ifndef XFreeColormap -#define XFreeColormap \ - (tkIntXlibStubsPtr->xFreeColormap) /* 37 */ -#endif -#ifndef XFreeColors -#define XFreeColors \ - (tkIntXlibStubsPtr->xFreeColors) /* 38 */ -#endif -#ifndef XFreeCursor -#define XFreeCursor \ - (tkIntXlibStubsPtr->xFreeCursor) /* 39 */ -#endif -#ifndef XFreeModifiermap -#define XFreeModifiermap \ - (tkIntXlibStubsPtr->xFreeModifiermap) /* 40 */ -#endif -#ifndef XGetGeometry -#define XGetGeometry \ - (tkIntXlibStubsPtr->xGetGeometry) /* 41 */ -#endif -#ifndef XGetInputFocus -#define XGetInputFocus \ - (tkIntXlibStubsPtr->xGetInputFocus) /* 42 */ -#endif -#ifndef XGetWindowProperty -#define XGetWindowProperty \ - (tkIntXlibStubsPtr->xGetWindowProperty) /* 43 */ -#endif -#ifndef XGetWindowAttributes -#define XGetWindowAttributes \ - (tkIntXlibStubsPtr->xGetWindowAttributes) /* 44 */ -#endif -#ifndef XGrabKeyboard -#define XGrabKeyboard \ - (tkIntXlibStubsPtr->xGrabKeyboard) /* 45 */ -#endif -#ifndef XGrabPointer -#define XGrabPointer \ - (tkIntXlibStubsPtr->xGrabPointer) /* 46 */ -#endif -#ifndef XKeysymToKeycode -#define XKeysymToKeycode \ - (tkIntXlibStubsPtr->xKeysymToKeycode) /* 47 */ -#endif -#ifndef XLookupColor -#define XLookupColor \ - (tkIntXlibStubsPtr->xLookupColor) /* 48 */ -#endif -#ifndef XMapWindow -#define XMapWindow \ - (tkIntXlibStubsPtr->xMapWindow) /* 49 */ -#endif -#ifndef XMoveResizeWindow -#define XMoveResizeWindow \ - (tkIntXlibStubsPtr->xMoveResizeWindow) /* 50 */ -#endif -#ifndef XMoveWindow -#define XMoveWindow \ - (tkIntXlibStubsPtr->xMoveWindow) /* 51 */ -#endif -#ifndef XNextEvent -#define XNextEvent \ - (tkIntXlibStubsPtr->xNextEvent) /* 52 */ -#endif -#ifndef XPutBackEvent -#define XPutBackEvent \ - (tkIntXlibStubsPtr->xPutBackEvent) /* 53 */ -#endif -#ifndef XQueryColors -#define XQueryColors \ - (tkIntXlibStubsPtr->xQueryColors) /* 54 */ -#endif -#ifndef XQueryPointer -#define XQueryPointer \ - (tkIntXlibStubsPtr->xQueryPointer) /* 55 */ -#endif -#ifndef XQueryTree -#define XQueryTree \ - (tkIntXlibStubsPtr->xQueryTree) /* 56 */ -#endif -#ifndef XRaiseWindow -#define XRaiseWindow \ - (tkIntXlibStubsPtr->xRaiseWindow) /* 57 */ -#endif -#ifndef XRefreshKeyboardMapping -#define XRefreshKeyboardMapping \ - (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 58 */ -#endif -#ifndef XResizeWindow -#define XResizeWindow \ - (tkIntXlibStubsPtr->xResizeWindow) /* 59 */ -#endif -#ifndef XSelectInput -#define XSelectInput \ - (tkIntXlibStubsPtr->xSelectInput) /* 60 */ -#endif -#ifndef XSendEvent -#define XSendEvent \ - (tkIntXlibStubsPtr->xSendEvent) /* 61 */ -#endif -#ifndef XSetCommand -#define XSetCommand \ - (tkIntXlibStubsPtr->xSetCommand) /* 62 */ -#endif -#ifndef XSetIconName -#define XSetIconName \ - (tkIntXlibStubsPtr->xSetIconName) /* 63 */ -#endif -#ifndef XSetInputFocus -#define XSetInputFocus \ - (tkIntXlibStubsPtr->xSetInputFocus) /* 64 */ -#endif -#ifndef XSetSelectionOwner -#define XSetSelectionOwner \ - (tkIntXlibStubsPtr->xSetSelectionOwner) /* 65 */ -#endif -#ifndef XSetWindowBackground -#define XSetWindowBackground \ - (tkIntXlibStubsPtr->xSetWindowBackground) /* 66 */ -#endif -#ifndef XSetWindowBackgroundPixmap -#define XSetWindowBackgroundPixmap \ - (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 67 */ -#endif -#ifndef XSetWindowBorder -#define XSetWindowBorder \ - (tkIntXlibStubsPtr->xSetWindowBorder) /* 68 */ -#endif -#ifndef XSetWindowBorderPixmap -#define XSetWindowBorderPixmap \ - (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 69 */ -#endif -#ifndef XSetWindowBorderWidth -#define XSetWindowBorderWidth \ - (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 70 */ -#endif -#ifndef XSetWindowColormap -#define XSetWindowColormap \ - (tkIntXlibStubsPtr->xSetWindowColormap) /* 71 */ -#endif -#ifndef XTranslateCoordinates -#define XTranslateCoordinates \ - (tkIntXlibStubsPtr->xTranslateCoordinates) /* 72 */ -#endif -#ifndef XUngrabKeyboard -#define XUngrabKeyboard \ - (tkIntXlibStubsPtr->xUngrabKeyboard) /* 73 */ -#endif -#ifndef XUngrabPointer -#define XUngrabPointer \ - (tkIntXlibStubsPtr->xUngrabPointer) /* 74 */ -#endif -#ifndef XUnmapWindow -#define XUnmapWindow \ - (tkIntXlibStubsPtr->xUnmapWindow) /* 75 */ -#endif -#ifndef XWindowEvent -#define XWindowEvent \ - (tkIntXlibStubsPtr->xWindowEvent) /* 76 */ -#endif -#ifndef XDestroyIC -#define XDestroyIC \ - (tkIntXlibStubsPtr->xDestroyIC) /* 77 */ -#endif -#ifndef XFilterEvent -#define XFilterEvent \ - (tkIntXlibStubsPtr->xFilterEvent) /* 78 */ -#endif -#ifndef XmbLookupString -#define XmbLookupString \ - (tkIntXlibStubsPtr->xmbLookupString) /* 79 */ -#endif -#ifndef TkPutImage -#define TkPutImage \ - (tkIntXlibStubsPtr->tkPutImage) /* 80 */ -#endif -/* Slot 81 is reserved */ -#ifndef XParseColor -#define XParseColor \ - (tkIntXlibStubsPtr->xParseColor) /* 82 */ -#endif -#ifndef XCreateGC -#define XCreateGC \ - (tkIntXlibStubsPtr->xCreateGC) /* 83 */ -#endif -#ifndef XFreeGC -#define XFreeGC \ - (tkIntXlibStubsPtr->xFreeGC) /* 84 */ -#endif -#ifndef XInternAtom -#define XInternAtom \ - (tkIntXlibStubsPtr->xInternAtom) /* 85 */ -#endif -#ifndef XSetBackground -#define XSetBackground \ - (tkIntXlibStubsPtr->xSetBackground) /* 86 */ -#endif -#ifndef XSetForeground -#define XSetForeground \ - (tkIntXlibStubsPtr->xSetForeground) /* 87 */ -#endif -#ifndef XSetClipMask -#define XSetClipMask \ - (tkIntXlibStubsPtr->xSetClipMask) /* 88 */ -#endif -#ifndef XSetClipOrigin -#define XSetClipOrigin \ - (tkIntXlibStubsPtr->xSetClipOrigin) /* 89 */ -#endif -#ifndef XSetTSOrigin -#define XSetTSOrigin \ - (tkIntXlibStubsPtr->xSetTSOrigin) /* 90 */ -#endif -#ifndef XChangeGC -#define XChangeGC \ - (tkIntXlibStubsPtr->xChangeGC) /* 91 */ -#endif -#ifndef XSetFont -#define XSetFont \ - (tkIntXlibStubsPtr->xSetFont) /* 92 */ -#endif -#ifndef XSetArcMode -#define XSetArcMode \ - (tkIntXlibStubsPtr->xSetArcMode) /* 93 */ -#endif -#ifndef XSetStipple -#define XSetStipple \ - (tkIntXlibStubsPtr->xSetStipple) /* 94 */ -#endif -#ifndef XSetFillRule -#define XSetFillRule \ - (tkIntXlibStubsPtr->xSetFillRule) /* 95 */ -#endif -#ifndef XSetFillStyle -#define XSetFillStyle \ - (tkIntXlibStubsPtr->xSetFillStyle) /* 96 */ -#endif -#ifndef XSetFunction -#define XSetFunction \ - (tkIntXlibStubsPtr->xSetFunction) /* 97 */ -#endif -#ifndef XSetLineAttributes -#define XSetLineAttributes \ - (tkIntXlibStubsPtr->xSetLineAttributes) /* 98 */ -#endif -#ifndef _XInitImageFuncPtrs -#define _XInitImageFuncPtrs \ - (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 99 */ -#endif -#ifndef XCreateIC -#define XCreateIC \ - (tkIntXlibStubsPtr->xCreateIC) /* 100 */ -#endif -#ifndef XGetVisualInfo -#define XGetVisualInfo \ - (tkIntXlibStubsPtr->xGetVisualInfo) /* 101 */ -#endif -#ifndef XSetWMClientMachine -#define XSetWMClientMachine \ - (tkIntXlibStubsPtr->xSetWMClientMachine) /* 102 */ -#endif -#ifndef XStringListToTextProperty -#define XStringListToTextProperty \ - (tkIntXlibStubsPtr->xStringListToTextProperty) /* 103 */ -#endif -#ifndef XDrawLine -#define XDrawLine \ - (tkIntXlibStubsPtr->xDrawLine) /* 104 */ -#endif -#ifndef XWarpPointer -#define XWarpPointer \ - (tkIntXlibStubsPtr->xWarpPointer) /* 105 */ -#endif -#ifndef XFillRectangle -#define XFillRectangle \ - (tkIntXlibStubsPtr->xFillRectangle) /* 106 */ -#endif -#endif /* __WIN32__ */ -#ifdef MAC_TCL -#ifndef XSetDashes -#define XSetDashes \ - (tkIntXlibStubsPtr->xSetDashes) /* 0 */ -#endif -#ifndef XGetModifierMapping -#define XGetModifierMapping \ - (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */ -#endif -#ifndef XCreateImage -#define XCreateImage \ - (tkIntXlibStubsPtr->xCreateImage) /* 2 */ -#endif -#ifndef XGetImage -#define XGetImage \ - (tkIntXlibStubsPtr->xGetImage) /* 3 */ -#endif -#ifndef XGetAtomName -#define XGetAtomName \ - (tkIntXlibStubsPtr->xGetAtomName) /* 4 */ -#endif -#ifndef XKeysymToString -#define XKeysymToString \ - (tkIntXlibStubsPtr->xKeysymToString) /* 5 */ -#endif -#ifndef XCreateColormap -#define XCreateColormap \ - (tkIntXlibStubsPtr->xCreateColormap) /* 6 */ -#endif -#ifndef XGContextFromGC -#define XGContextFromGC \ - (tkIntXlibStubsPtr->xGContextFromGC) /* 7 */ -#endif -#ifndef XKeycodeToKeysym -#define XKeycodeToKeysym \ - (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 8 */ -#endif -#ifndef XStringToKeysym -#define XStringToKeysym \ - (tkIntXlibStubsPtr->xStringToKeysym) /* 9 */ -#endif -#ifndef XRootWindow -#define XRootWindow \ - (tkIntXlibStubsPtr->xRootWindow) /* 10 */ -#endif -#ifndef XSetErrorHandler -#define XSetErrorHandler \ - (tkIntXlibStubsPtr->xSetErrorHandler) /* 11 */ -#endif -#ifndef XAllocColor -#define XAllocColor \ - (tkIntXlibStubsPtr->xAllocColor) /* 12 */ -#endif -#ifndef XBell -#define XBell \ - (tkIntXlibStubsPtr->xBell) /* 13 */ -#endif -#ifndef XChangeProperty -#define XChangeProperty \ - (tkIntXlibStubsPtr->xChangeProperty) /* 14 */ -#endif -#ifndef XChangeWindowAttributes -#define XChangeWindowAttributes \ - (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 15 */ -#endif -#ifndef XConfigureWindow -#define XConfigureWindow \ - (tkIntXlibStubsPtr->xConfigureWindow) /* 16 */ -#endif -#ifndef XCopyArea -#define XCopyArea \ - (tkIntXlibStubsPtr->xCopyArea) /* 17 */ -#endif -#ifndef XCopyPlane -#define XCopyPlane \ - (tkIntXlibStubsPtr->xCopyPlane) /* 18 */ -#endif -#ifndef XCreateBitmapFromData -#define XCreateBitmapFromData \ - (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 19 */ -#endif -#ifndef XDefineCursor -#define XDefineCursor \ - (tkIntXlibStubsPtr->xDefineCursor) /* 20 */ -#endif -#ifndef XDestroyWindow -#define XDestroyWindow \ - (tkIntXlibStubsPtr->xDestroyWindow) /* 21 */ -#endif -#ifndef XDrawArc -#define XDrawArc \ - (tkIntXlibStubsPtr->xDrawArc) /* 22 */ -#endif -#ifndef XDrawLines -#define XDrawLines \ - (tkIntXlibStubsPtr->xDrawLines) /* 23 */ -#endif -#ifndef XDrawRectangle -#define XDrawRectangle \ - (tkIntXlibStubsPtr->xDrawRectangle) /* 24 */ -#endif -#ifndef XFillArc -#define XFillArc \ - (tkIntXlibStubsPtr->xFillArc) /* 25 */ -#endif -#ifndef XFillPolygon -#define XFillPolygon \ - (tkIntXlibStubsPtr->xFillPolygon) /* 26 */ -#endif -#ifndef XFillRectangles -#define XFillRectangles \ - (tkIntXlibStubsPtr->xFillRectangles) /* 27 */ -#endif -#ifndef XFreeColormap -#define XFreeColormap \ - (tkIntXlibStubsPtr->xFreeColormap) /* 28 */ -#endif -#ifndef XFreeColors -#define XFreeColors \ - (tkIntXlibStubsPtr->xFreeColors) /* 29 */ -#endif -#ifndef XFreeModifiermap -#define XFreeModifiermap \ - (tkIntXlibStubsPtr->xFreeModifiermap) /* 30 */ -#endif -#ifndef XGetGeometry -#define XGetGeometry \ - (tkIntXlibStubsPtr->xGetGeometry) /* 31 */ -#endif -#ifndef XGetWindowProperty -#define XGetWindowProperty \ - (tkIntXlibStubsPtr->xGetWindowProperty) /* 32 */ -#endif -#ifndef XGrabKeyboard -#define XGrabKeyboard \ - (tkIntXlibStubsPtr->xGrabKeyboard) /* 33 */ -#endif -#ifndef XGrabPointer -#define XGrabPointer \ - (tkIntXlibStubsPtr->xGrabPointer) /* 34 */ -#endif -#ifndef XKeysymToKeycode -#define XKeysymToKeycode \ - (tkIntXlibStubsPtr->xKeysymToKeycode) /* 35 */ -#endif -#ifndef XMapWindow -#define XMapWindow \ - (tkIntXlibStubsPtr->xMapWindow) /* 36 */ -#endif -#ifndef XMoveResizeWindow -#define XMoveResizeWindow \ - (tkIntXlibStubsPtr->xMoveResizeWindow) /* 37 */ -#endif -#ifndef XMoveWindow -#define XMoveWindow \ - (tkIntXlibStubsPtr->xMoveWindow) /* 38 */ -#endif -#ifndef XQueryPointer -#define XQueryPointer \ - (tkIntXlibStubsPtr->xQueryPointer) /* 39 */ -#endif -#ifndef XRaiseWindow -#define XRaiseWindow \ - (tkIntXlibStubsPtr->xRaiseWindow) /* 40 */ -#endif -#ifndef XRefreshKeyboardMapping -#define XRefreshKeyboardMapping \ - (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 41 */ -#endif -#ifndef XResizeWindow -#define XResizeWindow \ - (tkIntXlibStubsPtr->xResizeWindow) /* 42 */ -#endif -#ifndef XSelectInput -#define XSelectInput \ - (tkIntXlibStubsPtr->xSelectInput) /* 43 */ -#endif -#ifndef XSendEvent -#define XSendEvent \ - (tkIntXlibStubsPtr->xSendEvent) /* 44 */ -#endif -#ifndef XSetIconName -#define XSetIconName \ - (tkIntXlibStubsPtr->xSetIconName) /* 45 */ -#endif -#ifndef XSetInputFocus -#define XSetInputFocus \ - (tkIntXlibStubsPtr->xSetInputFocus) /* 46 */ -#endif -#ifndef XSetSelectionOwner -#define XSetSelectionOwner \ - (tkIntXlibStubsPtr->xSetSelectionOwner) /* 47 */ -#endif -#ifndef XSetWindowBackground -#define XSetWindowBackground \ - (tkIntXlibStubsPtr->xSetWindowBackground) /* 48 */ -#endif -#ifndef XSetWindowBackgroundPixmap -#define XSetWindowBackgroundPixmap \ - (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 49 */ -#endif -#ifndef XSetWindowBorder -#define XSetWindowBorder \ - (tkIntXlibStubsPtr->xSetWindowBorder) /* 50 */ -#endif -#ifndef XSetWindowBorderPixmap -#define XSetWindowBorderPixmap \ - (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 51 */ -#endif -#ifndef XSetWindowBorderWidth -#define XSetWindowBorderWidth \ - (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 52 */ -#endif -#ifndef XSetWindowColormap -#define XSetWindowColormap \ - (tkIntXlibStubsPtr->xSetWindowColormap) /* 53 */ -#endif -#ifndef XUngrabKeyboard -#define XUngrabKeyboard \ - (tkIntXlibStubsPtr->xUngrabKeyboard) /* 54 */ -#endif -#ifndef XUngrabPointer -#define XUngrabPointer \ - (tkIntXlibStubsPtr->xUngrabPointer) /* 55 */ -#endif -#ifndef XUnmapWindow -#define XUnmapWindow \ - (tkIntXlibStubsPtr->xUnmapWindow) /* 56 */ -#endif -#ifndef TkPutImage -#define TkPutImage \ - (tkIntXlibStubsPtr->tkPutImage) /* 57 */ -#endif -#ifndef XParseColor -#define XParseColor \ - (tkIntXlibStubsPtr->xParseColor) /* 58 */ -#endif -#ifndef XCreateGC -#define XCreateGC \ - (tkIntXlibStubsPtr->xCreateGC) /* 59 */ -#endif -#ifndef XFreeGC -#define XFreeGC \ - (tkIntXlibStubsPtr->xFreeGC) /* 60 */ -#endif -#ifndef XInternAtom -#define XInternAtom \ - (tkIntXlibStubsPtr->xInternAtom) /* 61 */ -#endif -#ifndef XSetBackground -#define XSetBackground \ - (tkIntXlibStubsPtr->xSetBackground) /* 62 */ -#endif -#ifndef XSetForeground -#define XSetForeground \ - (tkIntXlibStubsPtr->xSetForeground) /* 63 */ -#endif -#ifndef XSetClipMask -#define XSetClipMask \ - (tkIntXlibStubsPtr->xSetClipMask) /* 64 */ -#endif -#ifndef XSetClipOrigin -#define XSetClipOrigin \ - (tkIntXlibStubsPtr->xSetClipOrigin) /* 65 */ -#endif -#ifndef XSetTSOrigin -#define XSetTSOrigin \ - (tkIntXlibStubsPtr->xSetTSOrigin) /* 66 */ -#endif -#ifndef XChangeGC -#define XChangeGC \ - (tkIntXlibStubsPtr->xChangeGC) /* 67 */ -#endif -#ifndef XSetFont -#define XSetFont \ - (tkIntXlibStubsPtr->xSetFont) /* 68 */ -#endif -#ifndef XSetArcMode -#define XSetArcMode \ - (tkIntXlibStubsPtr->xSetArcMode) /* 69 */ -#endif -#ifndef XSetStipple -#define XSetStipple \ - (tkIntXlibStubsPtr->xSetStipple) /* 70 */ -#endif -#ifndef XSetFillRule -#define XSetFillRule \ - (tkIntXlibStubsPtr->xSetFillRule) /* 71 */ -#endif -#ifndef XSetFillStyle -#define XSetFillStyle \ - (tkIntXlibStubsPtr->xSetFillStyle) /* 72 */ -#endif -#ifndef XSetFunction -#define XSetFunction \ - (tkIntXlibStubsPtr->xSetFunction) /* 73 */ -#endif -#ifndef XSetLineAttributes -#define XSetLineAttributes \ - (tkIntXlibStubsPtr->xSetLineAttributes) /* 74 */ -#endif -#ifndef _XInitImageFuncPtrs -#define _XInitImageFuncPtrs \ - (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 75 */ -#endif -#ifndef XCreateIC -#define XCreateIC \ - (tkIntXlibStubsPtr->xCreateIC) /* 76 */ -#endif -#ifndef XGetVisualInfo -#define XGetVisualInfo \ - (tkIntXlibStubsPtr->xGetVisualInfo) /* 77 */ -#endif -#ifndef XSetWMClientMachine -#define XSetWMClientMachine \ - (tkIntXlibStubsPtr->xSetWMClientMachine) /* 78 */ -#endif -#ifndef XStringListToTextProperty -#define XStringListToTextProperty \ - (tkIntXlibStubsPtr->xStringListToTextProperty) /* 79 */ -#endif -#ifndef XDrawSegments -#define XDrawSegments \ - (tkIntXlibStubsPtr->xDrawSegments) /* 80 */ -#endif -#ifndef XForceScreenSaver -#define XForceScreenSaver \ - (tkIntXlibStubsPtr->xForceScreenSaver) /* 81 */ -#endif -#ifndef XDrawLine -#define XDrawLine \ - (tkIntXlibStubsPtr->xDrawLine) /* 82 */ -#endif -#ifndef XFillRectangle -#define XFillRectangle \ - (tkIntXlibStubsPtr->xFillRectangle) /* 83 */ -#endif -#ifndef XClearWindow -#define XClearWindow \ - (tkIntXlibStubsPtr->xClearWindow) /* 84 */ -#endif -#ifndef XDrawPoint -#define XDrawPoint \ - (tkIntXlibStubsPtr->xDrawPoint) /* 85 */ -#endif -#ifndef XDrawPoints -#define XDrawPoints \ - (tkIntXlibStubsPtr->xDrawPoints) /* 86 */ -#endif -#ifndef XWarpPointer -#define XWarpPointer \ - (tkIntXlibStubsPtr->xWarpPointer) /* 87 */ -#endif -#ifndef XQueryColor -#define XQueryColor \ - (tkIntXlibStubsPtr->xQueryColor) /* 88 */ -#endif -#ifndef XQueryColors -#define XQueryColors \ - (tkIntXlibStubsPtr->xQueryColors) /* 89 */ -#endif -#ifndef XQueryTree -#define XQueryTree \ - (tkIntXlibStubsPtr->xQueryTree) /* 90 */ -#endif -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK -#ifndef XSetDashes -#define XSetDashes \ - (tkIntXlibStubsPtr->xSetDashes) /* 0 */ -#endif -#ifndef XGetModifierMapping -#define XGetModifierMapping \ - (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */ -#endif -#ifndef XCreateImage -#define XCreateImage \ - (tkIntXlibStubsPtr->xCreateImage) /* 2 */ -#endif -#ifndef XGetImage -#define XGetImage \ - (tkIntXlibStubsPtr->xGetImage) /* 3 */ -#endif -#ifndef XGetAtomName -#define XGetAtomName \ - (tkIntXlibStubsPtr->xGetAtomName) /* 4 */ -#endif -#ifndef XKeysymToString -#define XKeysymToString \ - (tkIntXlibStubsPtr->xKeysymToString) /* 5 */ -#endif -#ifndef XCreateColormap -#define XCreateColormap \ - (tkIntXlibStubsPtr->xCreateColormap) /* 6 */ -#endif -#ifndef XGContextFromGC -#define XGContextFromGC \ - (tkIntXlibStubsPtr->xGContextFromGC) /* 7 */ -#endif -#ifndef XKeycodeToKeysym -#define XKeycodeToKeysym \ - (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 8 */ -#endif -#ifndef XStringToKeysym -#define XStringToKeysym \ - (tkIntXlibStubsPtr->xStringToKeysym) /* 9 */ -#endif -#ifndef XRootWindow -#define XRootWindow \ - (tkIntXlibStubsPtr->xRootWindow) /* 10 */ -#endif -#ifndef XSetErrorHandler -#define XSetErrorHandler \ - (tkIntXlibStubsPtr->xSetErrorHandler) /* 11 */ -#endif -#ifndef XAllocColor -#define XAllocColor \ - (tkIntXlibStubsPtr->xAllocColor) /* 12 */ -#endif -#ifndef XBell -#define XBell \ - (tkIntXlibStubsPtr->xBell) /* 13 */ -#endif -#ifndef XChangeProperty -#define XChangeProperty \ - (tkIntXlibStubsPtr->xChangeProperty) /* 14 */ -#endif -#ifndef XChangeWindowAttributes -#define XChangeWindowAttributes \ - (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 15 */ -#endif -#ifndef XConfigureWindow -#define XConfigureWindow \ - (tkIntXlibStubsPtr->xConfigureWindow) /* 16 */ -#endif -#ifndef XCopyArea -#define XCopyArea \ - (tkIntXlibStubsPtr->xCopyArea) /* 17 */ -#endif -#ifndef XCopyPlane -#define XCopyPlane \ - (tkIntXlibStubsPtr->xCopyPlane) /* 18 */ -#endif -#ifndef XCreateBitmapFromData -#define XCreateBitmapFromData \ - (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 19 */ -#endif -#ifndef XDefineCursor -#define XDefineCursor \ - (tkIntXlibStubsPtr->xDefineCursor) /* 20 */ -#endif -#ifndef XDestroyWindow -#define XDestroyWindow \ - (tkIntXlibStubsPtr->xDestroyWindow) /* 21 */ -#endif -#ifndef XDrawArc -#define XDrawArc \ - (tkIntXlibStubsPtr->xDrawArc) /* 22 */ -#endif -#ifndef XDrawLines -#define XDrawLines \ - (tkIntXlibStubsPtr->xDrawLines) /* 23 */ -#endif -#ifndef XDrawRectangle -#define XDrawRectangle \ - (tkIntXlibStubsPtr->xDrawRectangle) /* 24 */ -#endif -#ifndef XFillArc -#define XFillArc \ - (tkIntXlibStubsPtr->xFillArc) /* 25 */ -#endif -#ifndef XFillPolygon -#define XFillPolygon \ - (tkIntXlibStubsPtr->xFillPolygon) /* 26 */ -#endif -#ifndef XFillRectangles -#define XFillRectangles \ - (tkIntXlibStubsPtr->xFillRectangles) /* 27 */ -#endif -#ifndef XFreeColormap -#define XFreeColormap \ - (tkIntXlibStubsPtr->xFreeColormap) /* 28 */ -#endif -#ifndef XFreeColors -#define XFreeColors \ - (tkIntXlibStubsPtr->xFreeColors) /* 29 */ -#endif -#ifndef XFreeModifiermap -#define XFreeModifiermap \ - (tkIntXlibStubsPtr->xFreeModifiermap) /* 30 */ -#endif -#ifndef XGetGeometry -#define XGetGeometry \ - (tkIntXlibStubsPtr->xGetGeometry) /* 31 */ -#endif -#ifndef XGetWindowProperty -#define XGetWindowProperty \ - (tkIntXlibStubsPtr->xGetWindowProperty) /* 32 */ -#endif -#ifndef XGrabKeyboard -#define XGrabKeyboard \ - (tkIntXlibStubsPtr->xGrabKeyboard) /* 33 */ -#endif -#ifndef XGrabPointer -#define XGrabPointer \ - (tkIntXlibStubsPtr->xGrabPointer) /* 34 */ -#endif -#ifndef XKeysymToKeycode -#define XKeysymToKeycode \ - (tkIntXlibStubsPtr->xKeysymToKeycode) /* 35 */ -#endif -#ifndef XMapWindow -#define XMapWindow \ - (tkIntXlibStubsPtr->xMapWindow) /* 36 */ -#endif -#ifndef XMoveResizeWindow -#define XMoveResizeWindow \ - (tkIntXlibStubsPtr->xMoveResizeWindow) /* 37 */ -#endif -#ifndef XMoveWindow -#define XMoveWindow \ - (tkIntXlibStubsPtr->xMoveWindow) /* 38 */ -#endif -#ifndef XQueryPointer -#define XQueryPointer \ - (tkIntXlibStubsPtr->xQueryPointer) /* 39 */ -#endif -#ifndef XRaiseWindow -#define XRaiseWindow \ - (tkIntXlibStubsPtr->xRaiseWindow) /* 40 */ -#endif -#ifndef XRefreshKeyboardMapping -#define XRefreshKeyboardMapping \ - (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 41 */ -#endif -#ifndef XResizeWindow -#define XResizeWindow \ - (tkIntXlibStubsPtr->xResizeWindow) /* 42 */ -#endif -#ifndef XSelectInput -#define XSelectInput \ - (tkIntXlibStubsPtr->xSelectInput) /* 43 */ -#endif -#ifndef XSendEvent -#define XSendEvent \ - (tkIntXlibStubsPtr->xSendEvent) /* 44 */ -#endif -#ifndef XSetIconName -#define XSetIconName \ - (tkIntXlibStubsPtr->xSetIconName) /* 45 */ -#endif -#ifndef XSetInputFocus -#define XSetInputFocus \ - (tkIntXlibStubsPtr->xSetInputFocus) /* 46 */ -#endif -#ifndef XSetSelectionOwner -#define XSetSelectionOwner \ - (tkIntXlibStubsPtr->xSetSelectionOwner) /* 47 */ -#endif -#ifndef XSetWindowBackground -#define XSetWindowBackground \ - (tkIntXlibStubsPtr->xSetWindowBackground) /* 48 */ -#endif -#ifndef XSetWindowBackgroundPixmap -#define XSetWindowBackgroundPixmap \ - (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 49 */ -#endif -#ifndef XSetWindowBorder -#define XSetWindowBorder \ - (tkIntXlibStubsPtr->xSetWindowBorder) /* 50 */ -#endif -#ifndef XSetWindowBorderPixmap -#define XSetWindowBorderPixmap \ - (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 51 */ -#endif -#ifndef XSetWindowBorderWidth -#define XSetWindowBorderWidth \ - (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 52 */ -#endif -#ifndef XSetWindowColormap -#define XSetWindowColormap \ - (tkIntXlibStubsPtr->xSetWindowColormap) /* 53 */ -#endif -#ifndef XUngrabKeyboard -#define XUngrabKeyboard \ - (tkIntXlibStubsPtr->xUngrabKeyboard) /* 54 */ -#endif -#ifndef XUngrabPointer -#define XUngrabPointer \ - (tkIntXlibStubsPtr->xUngrabPointer) /* 55 */ -#endif -#ifndef XUnmapWindow -#define XUnmapWindow \ - (tkIntXlibStubsPtr->xUnmapWindow) /* 56 */ -#endif -#ifndef TkPutImage -#define TkPutImage \ - (tkIntXlibStubsPtr->tkPutImage) /* 57 */ -#endif -#ifndef XParseColor -#define XParseColor \ - (tkIntXlibStubsPtr->xParseColor) /* 58 */ -#endif -#ifndef XCreateGC -#define XCreateGC \ - (tkIntXlibStubsPtr->xCreateGC) /* 59 */ -#endif -#ifndef XFreeGC -#define XFreeGC \ - (tkIntXlibStubsPtr->xFreeGC) /* 60 */ -#endif -#ifndef XInternAtom -#define XInternAtom \ - (tkIntXlibStubsPtr->xInternAtom) /* 61 */ -#endif -#ifndef XSetBackground -#define XSetBackground \ - (tkIntXlibStubsPtr->xSetBackground) /* 62 */ -#endif -#ifndef XSetForeground -#define XSetForeground \ - (tkIntXlibStubsPtr->xSetForeground) /* 63 */ -#endif -#ifndef XSetClipMask -#define XSetClipMask \ - (tkIntXlibStubsPtr->xSetClipMask) /* 64 */ -#endif -#ifndef XSetClipOrigin -#define XSetClipOrigin \ - (tkIntXlibStubsPtr->xSetClipOrigin) /* 65 */ -#endif -#ifndef XSetTSOrigin -#define XSetTSOrigin \ - (tkIntXlibStubsPtr->xSetTSOrigin) /* 66 */ -#endif -#ifndef XChangeGC -#define XChangeGC \ - (tkIntXlibStubsPtr->xChangeGC) /* 67 */ -#endif -#ifndef XSetFont -#define XSetFont \ - (tkIntXlibStubsPtr->xSetFont) /* 68 */ -#endif -#ifndef XSetArcMode -#define XSetArcMode \ - (tkIntXlibStubsPtr->xSetArcMode) /* 69 */ -#endif -#ifndef XSetStipple -#define XSetStipple \ - (tkIntXlibStubsPtr->xSetStipple) /* 70 */ -#endif -#ifndef XSetFillRule -#define XSetFillRule \ - (tkIntXlibStubsPtr->xSetFillRule) /* 71 */ -#endif -#ifndef XSetFillStyle -#define XSetFillStyle \ - (tkIntXlibStubsPtr->xSetFillStyle) /* 72 */ -#endif -#ifndef XSetFunction -#define XSetFunction \ - (tkIntXlibStubsPtr->xSetFunction) /* 73 */ -#endif -#ifndef XSetLineAttributes -#define XSetLineAttributes \ - (tkIntXlibStubsPtr->xSetLineAttributes) /* 74 */ -#endif -#ifndef _XInitImageFuncPtrs -#define _XInitImageFuncPtrs \ - (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 75 */ -#endif -#ifndef XCreateIC -#define XCreateIC \ - (tkIntXlibStubsPtr->xCreateIC) /* 76 */ -#endif -#ifndef XGetVisualInfo -#define XGetVisualInfo \ - (tkIntXlibStubsPtr->xGetVisualInfo) /* 77 */ -#endif -#ifndef XSetWMClientMachine -#define XSetWMClientMachine \ - (tkIntXlibStubsPtr->xSetWMClientMachine) /* 78 */ -#endif -#ifndef XStringListToTextProperty -#define XStringListToTextProperty \ - (tkIntXlibStubsPtr->xStringListToTextProperty) /* 79 */ -#endif -#ifndef XDrawSegments -#define XDrawSegments \ - (tkIntXlibStubsPtr->xDrawSegments) /* 80 */ -#endif -#ifndef XForceScreenSaver -#define XForceScreenSaver \ - (tkIntXlibStubsPtr->xForceScreenSaver) /* 81 */ -#endif -#ifndef XDrawLine -#define XDrawLine \ - (tkIntXlibStubsPtr->xDrawLine) /* 82 */ -#endif -#ifndef XFillRectangle -#define XFillRectangle \ - (tkIntXlibStubsPtr->xFillRectangle) /* 83 */ -#endif -#ifndef XClearWindow -#define XClearWindow \ - (tkIntXlibStubsPtr->xClearWindow) /* 84 */ -#endif -#ifndef XDrawPoint -#define XDrawPoint \ - (tkIntXlibStubsPtr->xDrawPoint) /* 85 */ -#endif -#ifndef XDrawPoints -#define XDrawPoints \ - (tkIntXlibStubsPtr->xDrawPoints) /* 86 */ -#endif -#ifndef XWarpPointer -#define XWarpPointer \ - (tkIntXlibStubsPtr->xWarpPointer) /* 87 */ -#endif -#ifndef XQueryColor -#define XQueryColor \ - (tkIntXlibStubsPtr->xQueryColor) /* 88 */ -#endif -#ifndef XQueryColors -#define XQueryColors \ - (tkIntXlibStubsPtr->xQueryColors) /* 89 */ -#endif -#ifndef XQueryTree -#define XQueryTree \ - (tkIntXlibStubsPtr->xQueryTree) /* 90 */ -#endif -#ifndef XSync -#define XSync \ - (tkIntXlibStubsPtr->xSync) /* 91 */ -#endif -#endif /* MAC_OSX_TK */ - -#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ - -/* !END!: Do not edit above this line. */ - -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLIMPORT - -#endif /* _TKINTXLIBDECLS */ +/* + * tkIntXlibDecls.h -- + * + * This file contains the declarations for all platform dependent + * unsupported functions that are exported by the Tk library. These + * interfaces are not guaranteed to remain the same between + * versions. Use at your own risk. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * All rights reserved. + * + * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.21 2006/12/18 16:42:46 dgp Exp $ + */ + +#ifndef _TKINTXLIBDECLS +#define _TKINTXLIBDECLS + +#include "X11/Xutil.h" + +#ifdef BUILD_tk +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLEXPORT +#endif + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the generic/tkInt.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifdef __WIN32__ +#ifndef XSetDashes_TCL_DECLARED +#define XSetDashes_TCL_DECLARED +/* 0 */ +EXTERN void XSetDashes (Display * display, GC gc, + int dash_offset, _Xconst char * dash_list, + int n); +#endif +#ifndef XGetModifierMapping_TCL_DECLARED +#define XGetModifierMapping_TCL_DECLARED +/* 1 */ +EXTERN XModifierKeymap * XGetModifierMapping (Display * d); +#endif +#ifndef XCreateImage_TCL_DECLARED +#define XCreateImage_TCL_DECLARED +/* 2 */ +EXTERN XImage * XCreateImage (Display * d, Visual * v, + unsigned int ui1, int i1, int i2, char * cp, + unsigned int ui2, unsigned int ui3, int i3, + int i4); +#endif +#ifndef XGetImage_TCL_DECLARED +#define XGetImage_TCL_DECLARED +/* 3 */ +EXTERN XImage * XGetImage (Display * d, Drawable dr, int i1, int i2, + unsigned int ui1, unsigned int ui2, + unsigned long ul, int i3); +#endif +#ifndef XGetAtomName_TCL_DECLARED +#define XGetAtomName_TCL_DECLARED +/* 4 */ +EXTERN char * XGetAtomName (Display * d, Atom a); +#endif +#ifndef XKeysymToString_TCL_DECLARED +#define XKeysymToString_TCL_DECLARED +/* 5 */ +EXTERN char * XKeysymToString (KeySym k); +#endif +#ifndef XCreateColormap_TCL_DECLARED +#define XCreateColormap_TCL_DECLARED +/* 6 */ +EXTERN Colormap XCreateColormap (Display * d, Window w, Visual * v, + int i); +#endif +#ifndef XCreatePixmapCursor_TCL_DECLARED +#define XCreatePixmapCursor_TCL_DECLARED +/* 7 */ +EXTERN Cursor XCreatePixmapCursor (Display * d, Pixmap p1, + Pixmap p2, XColor * x1, XColor * x2, + unsigned int ui1, unsigned int ui2); +#endif +#ifndef XCreateGlyphCursor_TCL_DECLARED +#define XCreateGlyphCursor_TCL_DECLARED +/* 8 */ +EXTERN Cursor XCreateGlyphCursor (Display * d, Font f1, Font f2, + unsigned int ui1, unsigned int ui2, + XColor * x1, XColor * x2); +#endif +#ifndef XGContextFromGC_TCL_DECLARED +#define XGContextFromGC_TCL_DECLARED +/* 9 */ +EXTERN GContext XGContextFromGC (GC g); +#endif +#ifndef XListHosts_TCL_DECLARED +#define XListHosts_TCL_DECLARED +/* 10 */ +EXTERN XHostAddress * XListHosts (Display * d, int * i, Bool * b); +#endif +#ifndef XKeycodeToKeysym_TCL_DECLARED +#define XKeycodeToKeysym_TCL_DECLARED +/* 11 */ +EXTERN KeySym XKeycodeToKeysym (Display * d, unsigned int k, int i); +#endif +#ifndef XStringToKeysym_TCL_DECLARED +#define XStringToKeysym_TCL_DECLARED +/* 12 */ +EXTERN KeySym XStringToKeysym (_Xconst char * c); +#endif +#ifndef XRootWindow_TCL_DECLARED +#define XRootWindow_TCL_DECLARED +/* 13 */ +EXTERN Window XRootWindow (Display * d, int i); +#endif +#ifndef XSetErrorHandler_TCL_DECLARED +#define XSetErrorHandler_TCL_DECLARED +/* 14 */ +EXTERN XErrorHandler XSetErrorHandler (XErrorHandler x); +#endif +#ifndef XIconifyWindow_TCL_DECLARED +#define XIconifyWindow_TCL_DECLARED +/* 15 */ +EXTERN Status XIconifyWindow (Display * d, Window w, int i); +#endif +#ifndef XWithdrawWindow_TCL_DECLARED +#define XWithdrawWindow_TCL_DECLARED +/* 16 */ +EXTERN Status XWithdrawWindow (Display * d, Window w, int i); +#endif +#ifndef XGetWMColormapWindows_TCL_DECLARED +#define XGetWMColormapWindows_TCL_DECLARED +/* 17 */ +EXTERN Status XGetWMColormapWindows (Display * d, Window w, + Window ** wpp, int * ip); +#endif +#ifndef XAllocColor_TCL_DECLARED +#define XAllocColor_TCL_DECLARED +/* 18 */ +EXTERN Status XAllocColor (Display * d, Colormap c, XColor * xp); +#endif +#ifndef XBell_TCL_DECLARED +#define XBell_TCL_DECLARED +/* 19 */ +EXTERN void XBell (Display * d, int i); +#endif +#ifndef XChangeProperty_TCL_DECLARED +#define XChangeProperty_TCL_DECLARED +/* 20 */ +EXTERN void XChangeProperty (Display * d, Window w, Atom a1, + Atom a2, int i1, int i2, + _Xconst unsigned char * c, int i3); +#endif +#ifndef XChangeWindowAttributes_TCL_DECLARED +#define XChangeWindowAttributes_TCL_DECLARED +/* 21 */ +EXTERN void XChangeWindowAttributes (Display * d, Window w, + unsigned long ul, XSetWindowAttributes * x); +#endif +#ifndef XClearWindow_TCL_DECLARED +#define XClearWindow_TCL_DECLARED +/* 22 */ +EXTERN void XClearWindow (Display * d, Window w); +#endif +#ifndef XConfigureWindow_TCL_DECLARED +#define XConfigureWindow_TCL_DECLARED +/* 23 */ +EXTERN void XConfigureWindow (Display * d, Window w, + unsigned int i, XWindowChanges * x); +#endif +#ifndef XCopyArea_TCL_DECLARED +#define XCopyArea_TCL_DECLARED +/* 24 */ +EXTERN void XCopyArea (Display * d, Drawable dr1, Drawable dr2, + GC g, int i1, int i2, unsigned int ui1, + unsigned int ui2, int i3, int i4); +#endif +#ifndef XCopyPlane_TCL_DECLARED +#define XCopyPlane_TCL_DECLARED +/* 25 */ +EXTERN void XCopyPlane (Display * d, Drawable dr1, Drawable dr2, + GC g, int i1, int i2, unsigned int ui1, + unsigned int ui2, int i3, int i4, + unsigned long ul); +#endif +#ifndef XCreateBitmapFromData_TCL_DECLARED +#define XCreateBitmapFromData_TCL_DECLARED +/* 26 */ +EXTERN Pixmap XCreateBitmapFromData (Display * display, Drawable d, + _Xconst char * data, unsigned int width, + unsigned int height); +#endif +#ifndef XDefineCursor_TCL_DECLARED +#define XDefineCursor_TCL_DECLARED +/* 27 */ +EXTERN void XDefineCursor (Display * d, Window w, Cursor c); +#endif +#ifndef XDeleteProperty_TCL_DECLARED +#define XDeleteProperty_TCL_DECLARED +/* 28 */ +EXTERN void XDeleteProperty (Display * d, Window w, Atom a); +#endif +#ifndef XDestroyWindow_TCL_DECLARED +#define XDestroyWindow_TCL_DECLARED +/* 29 */ +EXTERN void XDestroyWindow (Display * d, Window w); +#endif +#ifndef XDrawArc_TCL_DECLARED +#define XDrawArc_TCL_DECLARED +/* 30 */ +EXTERN void XDrawArc (Display * d, Drawable dr, GC g, int i1, + int i2, unsigned int ui1, unsigned int ui2, + int i3, int i4); +#endif +#ifndef XDrawLines_TCL_DECLARED +#define XDrawLines_TCL_DECLARED +/* 31 */ +EXTERN void XDrawLines (Display * d, Drawable dr, GC g, + XPoint * x, int i1, int i2); +#endif +#ifndef XDrawRectangle_TCL_DECLARED +#define XDrawRectangle_TCL_DECLARED +/* 32 */ +EXTERN void XDrawRectangle (Display * d, Drawable dr, GC g, + int i1, int i2, unsigned int ui1, + unsigned int ui2); +#endif +#ifndef XFillArc_TCL_DECLARED +#define XFillArc_TCL_DECLARED +/* 33 */ +EXTERN void XFillArc (Display * d, Drawable dr, GC g, int i1, + int i2, unsigned int ui1, unsigned int ui2, + int i3, int i4); +#endif +#ifndef XFillPolygon_TCL_DECLARED +#define XFillPolygon_TCL_DECLARED +/* 34 */ +EXTERN void XFillPolygon (Display * d, Drawable dr, GC g, + XPoint * x, int i1, int i2, int i3); +#endif +#ifndef XFillRectangles_TCL_DECLARED +#define XFillRectangles_TCL_DECLARED +/* 35 */ +EXTERN void XFillRectangles (Display * d, Drawable dr, GC g, + XRectangle * x, int i); +#endif +#ifndef XForceScreenSaver_TCL_DECLARED +#define XForceScreenSaver_TCL_DECLARED +/* 36 */ +EXTERN void XForceScreenSaver (Display * d, int i); +#endif +#ifndef XFreeColormap_TCL_DECLARED +#define XFreeColormap_TCL_DECLARED +/* 37 */ +EXTERN void XFreeColormap (Display * d, Colormap c); +#endif +#ifndef XFreeColors_TCL_DECLARED +#define XFreeColors_TCL_DECLARED +/* 38 */ +EXTERN void XFreeColors (Display * d, Colormap c, + unsigned long * ulp, int i, unsigned long ul); +#endif +#ifndef XFreeCursor_TCL_DECLARED +#define XFreeCursor_TCL_DECLARED +/* 39 */ +EXTERN void XFreeCursor (Display * d, Cursor c); +#endif +#ifndef XFreeModifiermap_TCL_DECLARED +#define XFreeModifiermap_TCL_DECLARED +/* 40 */ +EXTERN void XFreeModifiermap (XModifierKeymap * x); +#endif +#ifndef XGetGeometry_TCL_DECLARED +#define XGetGeometry_TCL_DECLARED +/* 41 */ +EXTERN Status XGetGeometry (Display * d, Drawable dr, Window * w, + int * i1, int * i2, unsigned int * ui1, + unsigned int * ui2, unsigned int * ui3, + unsigned int * ui4); +#endif +#ifndef XGetInputFocus_TCL_DECLARED +#define XGetInputFocus_TCL_DECLARED +/* 42 */ +EXTERN void XGetInputFocus (Display * d, Window * w, int * i); +#endif +#ifndef XGetWindowProperty_TCL_DECLARED +#define XGetWindowProperty_TCL_DECLARED +/* 43 */ +EXTERN int XGetWindowProperty (Display * d, Window w, Atom a1, + long l1, long l2, Bool b, Atom a2, Atom * ap, + int * ip, unsigned long * ulp1, + unsigned long * ulp2, unsigned char ** cpp); +#endif +#ifndef XGetWindowAttributes_TCL_DECLARED +#define XGetWindowAttributes_TCL_DECLARED +/* 44 */ +EXTERN Status XGetWindowAttributes (Display * d, Window w, + XWindowAttributes * x); +#endif +#ifndef XGrabKeyboard_TCL_DECLARED +#define XGrabKeyboard_TCL_DECLARED +/* 45 */ +EXTERN int XGrabKeyboard (Display * d, Window w, Bool b, int i1, + int i2, Time t); +#endif +#ifndef XGrabPointer_TCL_DECLARED +#define XGrabPointer_TCL_DECLARED +/* 46 */ +EXTERN int XGrabPointer (Display * d, Window w1, Bool b, + unsigned int ui, int i1, int i2, Window w2, + Cursor c, Time t); +#endif +#ifndef XKeysymToKeycode_TCL_DECLARED +#define XKeysymToKeycode_TCL_DECLARED +/* 47 */ +EXTERN KeyCode XKeysymToKeycode (Display * d, KeySym k); +#endif +#ifndef XLookupColor_TCL_DECLARED +#define XLookupColor_TCL_DECLARED +/* 48 */ +EXTERN Status XLookupColor (Display * d, Colormap c1, + _Xconst char * c2, XColor * x1, XColor * x2); +#endif +#ifndef XMapWindow_TCL_DECLARED +#define XMapWindow_TCL_DECLARED +/* 49 */ +EXTERN void XMapWindow (Display * d, Window w); +#endif +#ifndef XMoveResizeWindow_TCL_DECLARED +#define XMoveResizeWindow_TCL_DECLARED +/* 50 */ +EXTERN void XMoveResizeWindow (Display * d, Window w, int i1, + int i2, unsigned int ui1, unsigned int ui2); +#endif +#ifndef XMoveWindow_TCL_DECLARED +#define XMoveWindow_TCL_DECLARED +/* 51 */ +EXTERN void XMoveWindow (Display * d, Window w, int i1, int i2); +#endif +#ifndef XNextEvent_TCL_DECLARED +#define XNextEvent_TCL_DECLARED +/* 52 */ +EXTERN void XNextEvent (Display * d, XEvent * x); +#endif +#ifndef XPutBackEvent_TCL_DECLARED +#define XPutBackEvent_TCL_DECLARED +/* 53 */ +EXTERN void XPutBackEvent (Display * d, XEvent * x); +#endif +#ifndef XQueryColors_TCL_DECLARED +#define XQueryColors_TCL_DECLARED +/* 54 */ +EXTERN void XQueryColors (Display * d, Colormap c, XColor * x, + int i); +#endif +#ifndef XQueryPointer_TCL_DECLARED +#define XQueryPointer_TCL_DECLARED +/* 55 */ +EXTERN Bool XQueryPointer (Display * d, Window w1, Window * w2, + Window * w3, int * i1, int * i2, int * i3, + int * i4, unsigned int * ui); +#endif +#ifndef XQueryTree_TCL_DECLARED +#define XQueryTree_TCL_DECLARED +/* 56 */ +EXTERN Status XQueryTree (Display * d, Window w1, Window * w2, + Window * w3, Window ** w4, unsigned int * ui); +#endif +#ifndef XRaiseWindow_TCL_DECLARED +#define XRaiseWindow_TCL_DECLARED +/* 57 */ +EXTERN void XRaiseWindow (Display * d, Window w); +#endif +#ifndef XRefreshKeyboardMapping_TCL_DECLARED +#define XRefreshKeyboardMapping_TCL_DECLARED +/* 58 */ +EXTERN void XRefreshKeyboardMapping (XMappingEvent * x); +#endif +#ifndef XResizeWindow_TCL_DECLARED +#define XResizeWindow_TCL_DECLARED +/* 59 */ +EXTERN void XResizeWindow (Display * d, Window w, + unsigned int ui1, unsigned int ui2); +#endif +#ifndef XSelectInput_TCL_DECLARED +#define XSelectInput_TCL_DECLARED +/* 60 */ +EXTERN void XSelectInput (Display * d, Window w, long l); +#endif +#ifndef XSendEvent_TCL_DECLARED +#define XSendEvent_TCL_DECLARED +/* 61 */ +EXTERN Status XSendEvent (Display * d, Window w, Bool b, long l, + XEvent * x); +#endif +#ifndef XSetCommand_TCL_DECLARED +#define XSetCommand_TCL_DECLARED +/* 62 */ +EXTERN void XSetCommand (Display * d, Window w, CONST char ** c, + int i); +#endif +#ifndef XSetIconName_TCL_DECLARED +#define XSetIconName_TCL_DECLARED +/* 63 */ +EXTERN void XSetIconName (Display * d, Window w, + _Xconst char * c); +#endif +#ifndef XSetInputFocus_TCL_DECLARED +#define XSetInputFocus_TCL_DECLARED +/* 64 */ +EXTERN void XSetInputFocus (Display * d, Window w, int i, Time t); +#endif +#ifndef XSetSelectionOwner_TCL_DECLARED +#define XSetSelectionOwner_TCL_DECLARED +/* 65 */ +EXTERN void XSetSelectionOwner (Display * d, Atom a, Window w, + Time t); +#endif +#ifndef XSetWindowBackground_TCL_DECLARED +#define XSetWindowBackground_TCL_DECLARED +/* 66 */ +EXTERN void XSetWindowBackground (Display * d, Window w, + unsigned long ul); +#endif +#ifndef XSetWindowBackgroundPixmap_TCL_DECLARED +#define XSetWindowBackgroundPixmap_TCL_DECLARED +/* 67 */ +EXTERN void XSetWindowBackgroundPixmap (Display * d, Window w, + Pixmap p); +#endif +#ifndef XSetWindowBorder_TCL_DECLARED +#define XSetWindowBorder_TCL_DECLARED +/* 68 */ +EXTERN void XSetWindowBorder (Display * d, Window w, + unsigned long ul); +#endif +#ifndef XSetWindowBorderPixmap_TCL_DECLARED +#define XSetWindowBorderPixmap_TCL_DECLARED +/* 69 */ +EXTERN void XSetWindowBorderPixmap (Display * d, Window w, + Pixmap p); +#endif +#ifndef XSetWindowBorderWidth_TCL_DECLARED +#define XSetWindowBorderWidth_TCL_DECLARED +/* 70 */ +EXTERN void XSetWindowBorderWidth (Display * d, Window w, + unsigned int ui); +#endif +#ifndef XSetWindowColormap_TCL_DECLARED +#define XSetWindowColormap_TCL_DECLARED +/* 71 */ +EXTERN void XSetWindowColormap (Display * d, Window w, + Colormap c); +#endif +#ifndef XTranslateCoordinates_TCL_DECLARED +#define XTranslateCoordinates_TCL_DECLARED +/* 72 */ +EXTERN Bool XTranslateCoordinates (Display * d, Window w1, + Window w2, int i1, int i2, int * i3, + int * i4, Window * w3); +#endif +#ifndef XUngrabKeyboard_TCL_DECLARED +#define XUngrabKeyboard_TCL_DECLARED +/* 73 */ +EXTERN void XUngrabKeyboard (Display * d, Time t); +#endif +#ifndef XUngrabPointer_TCL_DECLARED +#define XUngrabPointer_TCL_DECLARED +/* 74 */ +EXTERN void XUngrabPointer (Display * d, Time t); +#endif +#ifndef XUnmapWindow_TCL_DECLARED +#define XUnmapWindow_TCL_DECLARED +/* 75 */ +EXTERN void XUnmapWindow (Display * d, Window w); +#endif +#ifndef XWindowEvent_TCL_DECLARED +#define XWindowEvent_TCL_DECLARED +/* 76 */ +EXTERN void XWindowEvent (Display * d, Window w, long l, + XEvent * x); +#endif +#ifndef XDestroyIC_TCL_DECLARED +#define XDestroyIC_TCL_DECLARED +/* 77 */ +EXTERN void XDestroyIC (XIC x); +#endif +#ifndef XFilterEvent_TCL_DECLARED +#define XFilterEvent_TCL_DECLARED +/* 78 */ +EXTERN Bool XFilterEvent (XEvent * x, Window w); +#endif +#ifndef XmbLookupString_TCL_DECLARED +#define XmbLookupString_TCL_DECLARED +/* 79 */ +EXTERN int XmbLookupString (XIC xi, XKeyPressedEvent * xk, + char * c, int i, KeySym * k, Status * s); +#endif +#ifndef TkPutImage_TCL_DECLARED +#define TkPutImage_TCL_DECLARED +/* 80 */ +EXTERN void TkPutImage (unsigned long * colors, int ncolors, + Display * display, Drawable d, GC gc, + XImage * image, int src_x, int src_y, + int dest_x, int dest_y, unsigned int width, + unsigned int height); +#endif +/* Slot 81 is reserved */ +#ifndef XParseColor_TCL_DECLARED +#define XParseColor_TCL_DECLARED +/* 82 */ +EXTERN Status XParseColor (Display * display, Colormap map, + _Xconst char * spec, XColor * colorPtr); +#endif +#ifndef XCreateGC_TCL_DECLARED +#define XCreateGC_TCL_DECLARED +/* 83 */ +EXTERN GC XCreateGC (Display * display, Drawable d, + unsigned long valuemask, XGCValues * values); +#endif +#ifndef XFreeGC_TCL_DECLARED +#define XFreeGC_TCL_DECLARED +/* 84 */ +EXTERN void XFreeGC (Display * display, GC gc); +#endif +#ifndef XInternAtom_TCL_DECLARED +#define XInternAtom_TCL_DECLARED +/* 85 */ +EXTERN Atom XInternAtom (Display * display, + _Xconst char * atom_name, + Bool only_if_exists); +#endif +#ifndef XSetBackground_TCL_DECLARED +#define XSetBackground_TCL_DECLARED +/* 86 */ +EXTERN void XSetBackground (Display * display, GC gc, + unsigned long foreground); +#endif +#ifndef XSetForeground_TCL_DECLARED +#define XSetForeground_TCL_DECLARED +/* 87 */ +EXTERN void XSetForeground (Display * display, GC gc, + unsigned long foreground); +#endif +#ifndef XSetClipMask_TCL_DECLARED +#define XSetClipMask_TCL_DECLARED +/* 88 */ +EXTERN void XSetClipMask (Display * display, GC gc, + Pixmap pixmap); +#endif +#ifndef XSetClipOrigin_TCL_DECLARED +#define XSetClipOrigin_TCL_DECLARED +/* 89 */ +EXTERN void XSetClipOrigin (Display * display, GC gc, + int clip_x_origin, int clip_y_origin); +#endif +#ifndef XSetTSOrigin_TCL_DECLARED +#define XSetTSOrigin_TCL_DECLARED +/* 90 */ +EXTERN void XSetTSOrigin (Display * display, GC gc, + int ts_x_origin, int ts_y_origin); +#endif +#ifndef XChangeGC_TCL_DECLARED +#define XChangeGC_TCL_DECLARED +/* 91 */ +EXTERN void XChangeGC (Display * d, GC gc, unsigned long mask, + XGCValues * values); +#endif +#ifndef XSetFont_TCL_DECLARED +#define XSetFont_TCL_DECLARED +/* 92 */ +EXTERN void XSetFont (Display * display, GC gc, Font font); +#endif +#ifndef XSetArcMode_TCL_DECLARED +#define XSetArcMode_TCL_DECLARED +/* 93 */ +EXTERN void XSetArcMode (Display * display, GC gc, int arc_mode); +#endif +#ifndef XSetStipple_TCL_DECLARED +#define XSetStipple_TCL_DECLARED +/* 94 */ +EXTERN void XSetStipple (Display * display, GC gc, + Pixmap stipple); +#endif +#ifndef XSetFillRule_TCL_DECLARED +#define XSetFillRule_TCL_DECLARED +/* 95 */ +EXTERN void XSetFillRule (Display * display, GC gc, + int fill_rule); +#endif +#ifndef XSetFillStyle_TCL_DECLARED +#define XSetFillStyle_TCL_DECLARED +/* 96 */ +EXTERN void XSetFillStyle (Display * display, GC gc, + int fill_style); +#endif +#ifndef XSetFunction_TCL_DECLARED +#define XSetFunction_TCL_DECLARED +/* 97 */ +EXTERN void XSetFunction (Display * display, GC gc, int function); +#endif +#ifndef XSetLineAttributes_TCL_DECLARED +#define XSetLineAttributes_TCL_DECLARED +/* 98 */ +EXTERN void XSetLineAttributes (Display * display, GC gc, + unsigned int line_width, int line_style, + int cap_style, int join_style); +#endif +#ifndef _XInitImageFuncPtrs_TCL_DECLARED +#define _XInitImageFuncPtrs_TCL_DECLARED +/* 99 */ +EXTERN int _XInitImageFuncPtrs (XImage * image); +#endif +#ifndef XCreateIC_TCL_DECLARED +#define XCreateIC_TCL_DECLARED +/* 100 */ +EXTERN XIC XCreateIC (void); +#endif +#ifndef XGetVisualInfo_TCL_DECLARED +#define XGetVisualInfo_TCL_DECLARED +/* 101 */ +EXTERN XVisualInfo * XGetVisualInfo (Display * display, long vinfo_mask, + XVisualInfo * vinfo_template, + int * nitems_return); +#endif +#ifndef XSetWMClientMachine_TCL_DECLARED +#define XSetWMClientMachine_TCL_DECLARED +/* 102 */ +EXTERN void XSetWMClientMachine (Display * display, Window w, + XTextProperty * text_prop); +#endif +#ifndef XStringListToTextProperty_TCL_DECLARED +#define XStringListToTextProperty_TCL_DECLARED +/* 103 */ +EXTERN Status XStringListToTextProperty (char ** list, int count, + XTextProperty * text_prop_return); +#endif +#ifndef XDrawLine_TCL_DECLARED +#define XDrawLine_TCL_DECLARED +/* 104 */ +EXTERN void XDrawLine (Display * d, Drawable dr, GC g, int x1, + int y1, int x2, int y2); +#endif +#ifndef XWarpPointer_TCL_DECLARED +#define XWarpPointer_TCL_DECLARED +/* 105 */ +EXTERN void XWarpPointer (Display * d, Window s, Window dw, + int sx, int sy, unsigned int sw, + unsigned int sh, int dx, int dy); +#endif +#ifndef XFillRectangle_TCL_DECLARED +#define XFillRectangle_TCL_DECLARED +/* 106 */ +EXTERN void XFillRectangle (Display * display, Drawable d, GC gc, + int x, int y, unsigned int width, + unsigned int height); +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK +#ifndef XSetDashes_TCL_DECLARED +#define XSetDashes_TCL_DECLARED +/* 0 */ +EXTERN void XSetDashes (Display * display, GC gc, + int dash_offset, _Xconst char * dash_list, + int n); +#endif +#ifndef XGetModifierMapping_TCL_DECLARED +#define XGetModifierMapping_TCL_DECLARED +/* 1 */ +EXTERN XModifierKeymap * XGetModifierMapping (Display * d); +#endif +#ifndef XCreateImage_TCL_DECLARED +#define XCreateImage_TCL_DECLARED +/* 2 */ +EXTERN XImage * XCreateImage (Display * d, Visual * v, + unsigned int ui1, int i1, int i2, char * cp, + unsigned int ui2, unsigned int ui3, int i3, + int i4); +#endif +#ifndef XGetImage_TCL_DECLARED +#define XGetImage_TCL_DECLARED +/* 3 */ +EXTERN XImage * XGetImage (Display * d, Drawable dr, int i1, int i2, + unsigned int ui1, unsigned int ui2, + unsigned long ul, int i3); +#endif +#ifndef XGetAtomName_TCL_DECLARED +#define XGetAtomName_TCL_DECLARED +/* 4 */ +EXTERN char * XGetAtomName (Display * d, Atom a); +#endif +#ifndef XKeysymToString_TCL_DECLARED +#define XKeysymToString_TCL_DECLARED +/* 5 */ +EXTERN char * XKeysymToString (KeySym k); +#endif +#ifndef XCreateColormap_TCL_DECLARED +#define XCreateColormap_TCL_DECLARED +/* 6 */ +EXTERN Colormap XCreateColormap (Display * d, Window w, Visual * v, + int i); +#endif +#ifndef XGContextFromGC_TCL_DECLARED +#define XGContextFromGC_TCL_DECLARED +/* 7 */ +EXTERN GContext XGContextFromGC (GC g); +#endif +#ifndef XKeycodeToKeysym_TCL_DECLARED +#define XKeycodeToKeysym_TCL_DECLARED +/* 8 */ +EXTERN KeySym XKeycodeToKeysym (Display * d, KeyCode k, int i); +#endif +#ifndef XStringToKeysym_TCL_DECLARED +#define XStringToKeysym_TCL_DECLARED +/* 9 */ +EXTERN KeySym XStringToKeysym (_Xconst char * c); +#endif +#ifndef XRootWindow_TCL_DECLARED +#define XRootWindow_TCL_DECLARED +/* 10 */ +EXTERN Window XRootWindow (Display * d, int i); +#endif +#ifndef XSetErrorHandler_TCL_DECLARED +#define XSetErrorHandler_TCL_DECLARED +/* 11 */ +EXTERN XErrorHandler XSetErrorHandler (XErrorHandler x); +#endif +#ifndef XAllocColor_TCL_DECLARED +#define XAllocColor_TCL_DECLARED +/* 12 */ +EXTERN Status XAllocColor (Display * d, Colormap c, XColor * xp); +#endif +#ifndef XBell_TCL_DECLARED +#define XBell_TCL_DECLARED +/* 13 */ +EXTERN void XBell (Display * d, int i); +#endif +#ifndef XChangeProperty_TCL_DECLARED +#define XChangeProperty_TCL_DECLARED +/* 14 */ +EXTERN void XChangeProperty (Display * d, Window w, Atom a1, + Atom a2, int i1, int i2, + _Xconst unsigned char * c, int i3); +#endif +#ifndef XChangeWindowAttributes_TCL_DECLARED +#define XChangeWindowAttributes_TCL_DECLARED +/* 15 */ +EXTERN void XChangeWindowAttributes (Display * d, Window w, + unsigned long ul, XSetWindowAttributes * x); +#endif +#ifndef XConfigureWindow_TCL_DECLARED +#define XConfigureWindow_TCL_DECLARED +/* 16 */ +EXTERN void XConfigureWindow (Display * d, Window w, + unsigned int i, XWindowChanges * x); +#endif +#ifndef XCopyArea_TCL_DECLARED +#define XCopyArea_TCL_DECLARED +/* 17 */ +EXTERN void XCopyArea (Display * d, Drawable dr1, Drawable dr2, + GC g, int i1, int i2, unsigned int ui1, + unsigned int ui2, int i3, int i4); +#endif +#ifndef XCopyPlane_TCL_DECLARED +#define XCopyPlane_TCL_DECLARED +/* 18 */ +EXTERN void XCopyPlane (Display * d, Drawable dr1, Drawable dr2, + GC g, int i1, int i2, unsigned int ui1, + unsigned int ui2, int i3, int i4, + unsigned long ul); +#endif +#ifndef XCreateBitmapFromData_TCL_DECLARED +#define XCreateBitmapFromData_TCL_DECLARED +/* 19 */ +EXTERN Pixmap XCreateBitmapFromData (Display * display, Drawable d, + _Xconst char * data, unsigned int width, + unsigned int height); +#endif +#ifndef XDefineCursor_TCL_DECLARED +#define XDefineCursor_TCL_DECLARED +/* 20 */ +EXTERN void XDefineCursor (Display * d, Window w, Cursor c); +#endif +#ifndef XDestroyWindow_TCL_DECLARED +#define XDestroyWindow_TCL_DECLARED +/* 21 */ +EXTERN void XDestroyWindow (Display * d, Window w); +#endif +#ifndef XDrawArc_TCL_DECLARED +#define XDrawArc_TCL_DECLARED +/* 22 */ +EXTERN void XDrawArc (Display * d, Drawable dr, GC g, int i1, + int i2, unsigned int ui1, unsigned int ui2, + int i3, int i4); +#endif +#ifndef XDrawLines_TCL_DECLARED +#define XDrawLines_TCL_DECLARED +/* 23 */ +EXTERN void XDrawLines (Display * d, Drawable dr, GC g, + XPoint * x, int i1, int i2); +#endif +#ifndef XDrawRectangle_TCL_DECLARED +#define XDrawRectangle_TCL_DECLARED +/* 24 */ +EXTERN void XDrawRectangle (Display * d, Drawable dr, GC g, + int i1, int i2, unsigned int ui1, + unsigned int ui2); +#endif +#ifndef XFillArc_TCL_DECLARED +#define XFillArc_TCL_DECLARED +/* 25 */ +EXTERN void XFillArc (Display * d, Drawable dr, GC g, int i1, + int i2, unsigned int ui1, unsigned int ui2, + int i3, int i4); +#endif +#ifndef XFillPolygon_TCL_DECLARED +#define XFillPolygon_TCL_DECLARED +/* 26 */ +EXTERN void XFillPolygon (Display * d, Drawable dr, GC g, + XPoint * x, int i1, int i2, int i3); +#endif +#ifndef XFillRectangles_TCL_DECLARED +#define XFillRectangles_TCL_DECLARED +/* 27 */ +EXTERN void XFillRectangles (Display * d, Drawable dr, GC g, + XRectangle * x, int i); +#endif +#ifndef XFreeColormap_TCL_DECLARED +#define XFreeColormap_TCL_DECLARED +/* 28 */ +EXTERN void XFreeColormap (Display * d, Colormap c); +#endif +#ifndef XFreeColors_TCL_DECLARED +#define XFreeColors_TCL_DECLARED +/* 29 */ +EXTERN void XFreeColors (Display * d, Colormap c, + unsigned long * ulp, int i, unsigned long ul); +#endif +#ifndef XFreeModifiermap_TCL_DECLARED +#define XFreeModifiermap_TCL_DECLARED +/* 30 */ +EXTERN void XFreeModifiermap (XModifierKeymap * x); +#endif +#ifndef XGetGeometry_TCL_DECLARED +#define XGetGeometry_TCL_DECLARED +/* 31 */ +EXTERN Status XGetGeometry (Display * d, Drawable dr, Window * w, + int * i1, int * i2, unsigned int * ui1, + unsigned int * ui2, unsigned int * ui3, + unsigned int * ui4); +#endif +#ifndef XGetWindowProperty_TCL_DECLARED +#define XGetWindowProperty_TCL_DECLARED +/* 32 */ +EXTERN int XGetWindowProperty (Display * d, Window w, Atom a1, + long l1, long l2, Bool b, Atom a2, Atom * ap, + int * ip, unsigned long * ulp1, + unsigned long * ulp2, unsigned char ** cpp); +#endif +#ifndef XGrabKeyboard_TCL_DECLARED +#define XGrabKeyboard_TCL_DECLARED +/* 33 */ +EXTERN int XGrabKeyboard (Display * d, Window w, Bool b, int i1, + int i2, Time t); +#endif +#ifndef XGrabPointer_TCL_DECLARED +#define XGrabPointer_TCL_DECLARED +/* 34 */ +EXTERN int XGrabPointer (Display * d, Window w1, Bool b, + unsigned int ui, int i1, int i2, Window w2, + Cursor c, Time t); +#endif +#ifndef XKeysymToKeycode_TCL_DECLARED +#define XKeysymToKeycode_TCL_DECLARED +/* 35 */ +EXTERN KeyCode XKeysymToKeycode (Display * d, KeySym k); +#endif +#ifndef XMapWindow_TCL_DECLARED +#define XMapWindow_TCL_DECLARED +/* 36 */ +EXTERN void XMapWindow (Display * d, Window w); +#endif +#ifndef XMoveResizeWindow_TCL_DECLARED +#define XMoveResizeWindow_TCL_DECLARED +/* 37 */ +EXTERN void XMoveResizeWindow (Display * d, Window w, int i1, + int i2, unsigned int ui1, unsigned int ui2); +#endif +#ifndef XMoveWindow_TCL_DECLARED +#define XMoveWindow_TCL_DECLARED +/* 38 */ +EXTERN void XMoveWindow (Display * d, Window w, int i1, int i2); +#endif +#ifndef XQueryPointer_TCL_DECLARED +#define XQueryPointer_TCL_DECLARED +/* 39 */ +EXTERN Bool XQueryPointer (Display * d, Window w1, Window * w2, + Window * w3, int * i1, int * i2, int * i3, + int * i4, unsigned int * ui); +#endif +#ifndef XRaiseWindow_TCL_DECLARED +#define XRaiseWindow_TCL_DECLARED +/* 40 */ +EXTERN void XRaiseWindow (Display * d, Window w); +#endif +#ifndef XRefreshKeyboardMapping_TCL_DECLARED +#define XRefreshKeyboardMapping_TCL_DECLARED +/* 41 */ +EXTERN void XRefreshKeyboardMapping (XMappingEvent * x); +#endif +#ifndef XResizeWindow_TCL_DECLARED +#define XResizeWindow_TCL_DECLARED +/* 42 */ +EXTERN void XResizeWindow (Display * d, Window w, + unsigned int ui1, unsigned int ui2); +#endif +#ifndef XSelectInput_TCL_DECLARED +#define XSelectInput_TCL_DECLARED +/* 43 */ +EXTERN void XSelectInput (Display * d, Window w, long l); +#endif +#ifndef XSendEvent_TCL_DECLARED +#define XSendEvent_TCL_DECLARED +/* 44 */ +EXTERN Status XSendEvent (Display * d, Window w, Bool b, long l, + XEvent * x); +#endif +#ifndef XSetIconName_TCL_DECLARED +#define XSetIconName_TCL_DECLARED +/* 45 */ +EXTERN void XSetIconName (Display * d, Window w, + _Xconst char * c); +#endif +#ifndef XSetInputFocus_TCL_DECLARED +#define XSetInputFocus_TCL_DECLARED +/* 46 */ +EXTERN void XSetInputFocus (Display * d, Window w, int i, Time t); +#endif +#ifndef XSetSelectionOwner_TCL_DECLARED +#define XSetSelectionOwner_TCL_DECLARED +/* 47 */ +EXTERN void XSetSelectionOwner (Display * d, Atom a, Window w, + Time t); +#endif +#ifndef XSetWindowBackground_TCL_DECLARED +#define XSetWindowBackground_TCL_DECLARED +/* 48 */ +EXTERN void XSetWindowBackground (Display * d, Window w, + unsigned long ul); +#endif +#ifndef XSetWindowBackgroundPixmap_TCL_DECLARED +#define XSetWindowBackgroundPixmap_TCL_DECLARED +/* 49 */ +EXTERN void XSetWindowBackgroundPixmap (Display * d, Window w, + Pixmap p); +#endif +#ifndef XSetWindowBorder_TCL_DECLARED +#define XSetWindowBorder_TCL_DECLARED +/* 50 */ +EXTERN void XSetWindowBorder (Display * d, Window w, + unsigned long ul); +#endif +#ifndef XSetWindowBorderPixmap_TCL_DECLARED +#define XSetWindowBorderPixmap_TCL_DECLARED +/* 51 */ +EXTERN void XSetWindowBorderPixmap (Display * d, Window w, + Pixmap p); +#endif +#ifndef XSetWindowBorderWidth_TCL_DECLARED +#define XSetWindowBorderWidth_TCL_DECLARED +/* 52 */ +EXTERN void XSetWindowBorderWidth (Display * d, Window w, + unsigned int ui); +#endif +#ifndef XSetWindowColormap_TCL_DECLARED +#define XSetWindowColormap_TCL_DECLARED +/* 53 */ +EXTERN void XSetWindowColormap (Display * d, Window w, + Colormap c); +#endif +#ifndef XUngrabKeyboard_TCL_DECLARED +#define XUngrabKeyboard_TCL_DECLARED +/* 54 */ +EXTERN void XUngrabKeyboard (Display * d, Time t); +#endif +#ifndef XUngrabPointer_TCL_DECLARED +#define XUngrabPointer_TCL_DECLARED +/* 55 */ +EXTERN void XUngrabPointer (Display * d, Time t); +#endif +#ifndef XUnmapWindow_TCL_DECLARED +#define XUnmapWindow_TCL_DECLARED +/* 56 */ +EXTERN void XUnmapWindow (Display * d, Window w); +#endif +#ifndef TkPutImage_TCL_DECLARED +#define TkPutImage_TCL_DECLARED +/* 57 */ +EXTERN void TkPutImage (unsigned long * colors, int ncolors, + Display * display, Drawable d, GC gc, + XImage * image, int src_x, int src_y, + int dest_x, int dest_y, unsigned int width, + unsigned int height); +#endif +#ifndef XParseColor_TCL_DECLARED +#define XParseColor_TCL_DECLARED +/* 58 */ +EXTERN Status XParseColor (Display * display, Colormap map, + _Xconst char * spec, XColor * colorPtr); +#endif +#ifndef XCreateGC_TCL_DECLARED +#define XCreateGC_TCL_DECLARED +/* 59 */ +EXTERN GC XCreateGC (Display * display, Drawable d, + unsigned long valuemask, XGCValues * values); +#endif +#ifndef XFreeGC_TCL_DECLARED +#define XFreeGC_TCL_DECLARED +/* 60 */ +EXTERN void XFreeGC (Display * display, GC gc); +#endif +#ifndef XInternAtom_TCL_DECLARED +#define XInternAtom_TCL_DECLARED +/* 61 */ +EXTERN Atom XInternAtom (Display * display, + _Xconst char * atom_name, + Bool only_if_exists); +#endif +#ifndef XSetBackground_TCL_DECLARED +#define XSetBackground_TCL_DECLARED +/* 62 */ +EXTERN void XSetBackground (Display * display, GC gc, + unsigned long foreground); +#endif +#ifndef XSetForeground_TCL_DECLARED +#define XSetForeground_TCL_DECLARED +/* 63 */ +EXTERN void XSetForeground (Display * display, GC gc, + unsigned long foreground); +#endif +#ifndef XSetClipMask_TCL_DECLARED +#define XSetClipMask_TCL_DECLARED +/* 64 */ +EXTERN void XSetClipMask (Display * display, GC gc, + Pixmap pixmap); +#endif +#ifndef XSetClipOrigin_TCL_DECLARED +#define XSetClipOrigin_TCL_DECLARED +/* 65 */ +EXTERN void XSetClipOrigin (Display * display, GC gc, + int clip_x_origin, int clip_y_origin); +#endif +#ifndef XSetTSOrigin_TCL_DECLARED +#define XSetTSOrigin_TCL_DECLARED +/* 66 */ +EXTERN void XSetTSOrigin (Display * display, GC gc, + int ts_x_origin, int ts_y_origin); +#endif +#ifndef XChangeGC_TCL_DECLARED +#define XChangeGC_TCL_DECLARED +/* 67 */ +EXTERN void XChangeGC (Display * d, GC gc, unsigned long mask, + XGCValues * values); +#endif +#ifndef XSetFont_TCL_DECLARED +#define XSetFont_TCL_DECLARED +/* 68 */ +EXTERN void XSetFont (Display * display, GC gc, Font font); +#endif +#ifndef XSetArcMode_TCL_DECLARED +#define XSetArcMode_TCL_DECLARED +/* 69 */ +EXTERN void XSetArcMode (Display * display, GC gc, int arc_mode); +#endif +#ifndef XSetStipple_TCL_DECLARED +#define XSetStipple_TCL_DECLARED +/* 70 */ +EXTERN void XSetStipple (Display * display, GC gc, + Pixmap stipple); +#endif +#ifndef XSetFillRule_TCL_DECLARED +#define XSetFillRule_TCL_DECLARED +/* 71 */ +EXTERN void XSetFillRule (Display * display, GC gc, + int fill_rule); +#endif +#ifndef XSetFillStyle_TCL_DECLARED +#define XSetFillStyle_TCL_DECLARED +/* 72 */ +EXTERN void XSetFillStyle (Display * display, GC gc, + int fill_style); +#endif +#ifndef XSetFunction_TCL_DECLARED +#define XSetFunction_TCL_DECLARED +/* 73 */ +EXTERN void XSetFunction (Display * display, GC gc, int function); +#endif +#ifndef XSetLineAttributes_TCL_DECLARED +#define XSetLineAttributes_TCL_DECLARED +/* 74 */ +EXTERN void XSetLineAttributes (Display * display, GC gc, + unsigned int line_width, int line_style, + int cap_style, int join_style); +#endif +#ifndef _XInitImageFuncPtrs_TCL_DECLARED +#define _XInitImageFuncPtrs_TCL_DECLARED +/* 75 */ +EXTERN int _XInitImageFuncPtrs (XImage * image); +#endif +#ifndef XCreateIC_TCL_DECLARED +#define XCreateIC_TCL_DECLARED +/* 76 */ +EXTERN XIC XCreateIC (void); +#endif +#ifndef XGetVisualInfo_TCL_DECLARED +#define XGetVisualInfo_TCL_DECLARED +/* 77 */ +EXTERN XVisualInfo * XGetVisualInfo (Display * display, long vinfo_mask, + XVisualInfo * vinfo_template, + int * nitems_return); +#endif +#ifndef XSetWMClientMachine_TCL_DECLARED +#define XSetWMClientMachine_TCL_DECLARED +/* 78 */ +EXTERN void XSetWMClientMachine (Display * display, Window w, + XTextProperty * text_prop); +#endif +#ifndef XStringListToTextProperty_TCL_DECLARED +#define XStringListToTextProperty_TCL_DECLARED +/* 79 */ +EXTERN Status XStringListToTextProperty (char ** list, int count, + XTextProperty * text_prop_return); +#endif +#ifndef XDrawSegments_TCL_DECLARED +#define XDrawSegments_TCL_DECLARED +/* 80 */ +EXTERN void XDrawSegments (Display * display, Drawable d, GC gc, + XSegment * segments, int nsegments); +#endif +#ifndef XForceScreenSaver_TCL_DECLARED +#define XForceScreenSaver_TCL_DECLARED +/* 81 */ +EXTERN void XForceScreenSaver (Display * display, int mode); +#endif +#ifndef XDrawLine_TCL_DECLARED +#define XDrawLine_TCL_DECLARED +/* 82 */ +EXTERN void XDrawLine (Display * d, Drawable dr, GC g, int x1, + int y1, int x2, int y2); +#endif +#ifndef XFillRectangle_TCL_DECLARED +#define XFillRectangle_TCL_DECLARED +/* 83 */ +EXTERN void XFillRectangle (Display * display, Drawable d, GC gc, + int x, int y, unsigned int width, + unsigned int height); +#endif +#ifndef XClearWindow_TCL_DECLARED +#define XClearWindow_TCL_DECLARED +/* 84 */ +EXTERN void XClearWindow (Display * d, Window w); +#endif +#ifndef XDrawPoint_TCL_DECLARED +#define XDrawPoint_TCL_DECLARED +/* 85 */ +EXTERN void XDrawPoint (Display * display, Drawable d, GC gc, + int x, int y); +#endif +#ifndef XDrawPoints_TCL_DECLARED +#define XDrawPoints_TCL_DECLARED +/* 86 */ +EXTERN void XDrawPoints (Display * display, Drawable d, GC gc, + XPoint * points, int npoints, int mode); +#endif +#ifndef XWarpPointer_TCL_DECLARED +#define XWarpPointer_TCL_DECLARED +/* 87 */ +EXTERN void XWarpPointer (Display * display, Window src_w, + Window dest_w, int src_x, int src_y, + unsigned int src_width, + unsigned int src_height, int dest_x, + int dest_y); +#endif +#ifndef XQueryColor_TCL_DECLARED +#define XQueryColor_TCL_DECLARED +/* 88 */ +EXTERN void XQueryColor (Display * display, Colormap colormap, + XColor * def_in_out); +#endif +#ifndef XQueryColors_TCL_DECLARED +#define XQueryColors_TCL_DECLARED +/* 89 */ +EXTERN void XQueryColors (Display * display, Colormap colormap, + XColor * defs_in_out, int ncolors); +#endif +#ifndef XQueryTree_TCL_DECLARED +#define XQueryTree_TCL_DECLARED +/* 90 */ +EXTERN Status XQueryTree (Display * d, Window w1, Window * w2, + Window * w3, Window ** w4, unsigned int * ui); +#endif +#ifndef XSync_TCL_DECLARED +#define XSync_TCL_DECLARED +/* 91 */ +EXTERN int XSync (Display * display, Bool flag); +#endif +#endif /* MAC_OSX_TK */ + +typedef struct TkIntXlibStubs { + int magic; + struct TkIntXlibStubHooks *hooks; + +#ifdef __WIN32__ + void (*xSetDashes) (Display * display, GC gc, int dash_offset, _Xconst char * dash_list, int n); /* 0 */ + XModifierKeymap * (*xGetModifierMapping) (Display * d); /* 1 */ + XImage * (*xCreateImage) (Display * d, Visual * v, unsigned int ui1, int i1, int i2, char * cp, unsigned int ui2, unsigned int ui3, int i3, int i4); /* 2 */ + XImage * (*xGetImage) (Display * d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3); /* 3 */ + char * (*xGetAtomName) (Display * d, Atom a); /* 4 */ + char * (*xKeysymToString) (KeySym k); /* 5 */ + Colormap (*xCreateColormap) (Display * d, Window w, Visual * v, int i); /* 6 */ + Cursor (*xCreatePixmapCursor) (Display * d, Pixmap p1, Pixmap p2, XColor * x1, XColor * x2, unsigned int ui1, unsigned int ui2); /* 7 */ + Cursor (*xCreateGlyphCursor) (Display * d, Font f1, Font f2, unsigned int ui1, unsigned int ui2, XColor * x1, XColor * x2); /* 8 */ + GContext (*xGContextFromGC) (GC g); /* 9 */ + XHostAddress * (*xListHosts) (Display * d, int * i, Bool * b); /* 10 */ + KeySym (*xKeycodeToKeysym) (Display * d, unsigned int k, int i); /* 11 */ + KeySym (*xStringToKeysym) (_Xconst char * c); /* 12 */ + Window (*xRootWindow) (Display * d, int i); /* 13 */ + XErrorHandler (*xSetErrorHandler) (XErrorHandler x); /* 14 */ + Status (*xIconifyWindow) (Display * d, Window w, int i); /* 15 */ + Status (*xWithdrawWindow) (Display * d, Window w, int i); /* 16 */ + Status (*xGetWMColormapWindows) (Display * d, Window w, Window ** wpp, int * ip); /* 17 */ + Status (*xAllocColor) (Display * d, Colormap c, XColor * xp); /* 18 */ + void (*xBell) (Display * d, int i); /* 19 */ + void (*xChangeProperty) (Display * d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char * c, int i3); /* 20 */ + void (*xChangeWindowAttributes) (Display * d, Window w, unsigned long ul, XSetWindowAttributes * x); /* 21 */ + void (*xClearWindow) (Display * d, Window w); /* 22 */ + void (*xConfigureWindow) (Display * d, Window w, unsigned int i, XWindowChanges * x); /* 23 */ + void (*xCopyArea) (Display * d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 24 */ + void (*xCopyPlane) (Display * d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul); /* 25 */ + Pixmap (*xCreateBitmapFromData) (Display * display, Drawable d, _Xconst char * data, unsigned int width, unsigned int height); /* 26 */ + void (*xDefineCursor) (Display * d, Window w, Cursor c); /* 27 */ + void (*xDeleteProperty) (Display * d, Window w, Atom a); /* 28 */ + void (*xDestroyWindow) (Display * d, Window w); /* 29 */ + void (*xDrawArc) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 30 */ + void (*xDrawLines) (Display * d, Drawable dr, GC g, XPoint * x, int i1, int i2); /* 31 */ + void (*xDrawRectangle) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 32 */ + void (*xFillArc) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 33 */ + void (*xFillPolygon) (Display * d, Drawable dr, GC g, XPoint * x, int i1, int i2, int i3); /* 34 */ + void (*xFillRectangles) (Display * d, Drawable dr, GC g, XRectangle * x, int i); /* 35 */ + void (*xForceScreenSaver) (Display * d, int i); /* 36 */ + void (*xFreeColormap) (Display * d, Colormap c); /* 37 */ + void (*xFreeColors) (Display * d, Colormap c, unsigned long * ulp, int i, unsigned long ul); /* 38 */ + void (*xFreeCursor) (Display * d, Cursor c); /* 39 */ + void (*xFreeModifiermap) (XModifierKeymap * x); /* 40 */ + Status (*xGetGeometry) (Display * d, Drawable dr, Window * w, int * i1, int * i2, unsigned int * ui1, unsigned int * ui2, unsigned int * ui3, unsigned int * ui4); /* 41 */ + void (*xGetInputFocus) (Display * d, Window * w, int * i); /* 42 */ + int (*xGetWindowProperty) (Display * d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom * ap, int * ip, unsigned long * ulp1, unsigned long * ulp2, unsigned char ** cpp); /* 43 */ + Status (*xGetWindowAttributes) (Display * d, Window w, XWindowAttributes * x); /* 44 */ + int (*xGrabKeyboard) (Display * d, Window w, Bool b, int i1, int i2, Time t); /* 45 */ + int (*xGrabPointer) (Display * d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t); /* 46 */ + KeyCode (*xKeysymToKeycode) (Display * d, KeySym k); /* 47 */ + Status (*xLookupColor) (Display * d, Colormap c1, _Xconst char * c2, XColor * x1, XColor * x2); /* 48 */ + void (*xMapWindow) (Display * d, Window w); /* 49 */ + void (*xMoveResizeWindow) (Display * d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 50 */ + void (*xMoveWindow) (Display * d, Window w, int i1, int i2); /* 51 */ + void (*xNextEvent) (Display * d, XEvent * x); /* 52 */ + void (*xPutBackEvent) (Display * d, XEvent * x); /* 53 */ + void (*xQueryColors) (Display * d, Colormap c, XColor * x, int i); /* 54 */ + Bool (*xQueryPointer) (Display * d, Window w1, Window * w2, Window * w3, int * i1, int * i2, int * i3, int * i4, unsigned int * ui); /* 55 */ + Status (*xQueryTree) (Display * d, Window w1, Window * w2, Window * w3, Window ** w4, unsigned int * ui); /* 56 */ + void (*xRaiseWindow) (Display * d, Window w); /* 57 */ + void (*xRefreshKeyboardMapping) (XMappingEvent * x); /* 58 */ + void (*xResizeWindow) (Display * d, Window w, unsigned int ui1, unsigned int ui2); /* 59 */ + void (*xSelectInput) (Display * d, Window w, long l); /* 60 */ + Status (*xSendEvent) (Display * d, Window w, Bool b, long l, XEvent * x); /* 61 */ + void (*xSetCommand) (Display * d, Window w, CONST char ** c, int i); /* 62 */ + void (*xSetIconName) (Display * d, Window w, _Xconst char * c); /* 63 */ + void (*xSetInputFocus) (Display * d, Window w, int i, Time t); /* 64 */ + void (*xSetSelectionOwner) (Display * d, Atom a, Window w, Time t); /* 65 */ + void (*xSetWindowBackground) (Display * d, Window w, unsigned long ul); /* 66 */ + void (*xSetWindowBackgroundPixmap) (Display * d, Window w, Pixmap p); /* 67 */ + void (*xSetWindowBorder) (Display * d, Window w, unsigned long ul); /* 68 */ + void (*xSetWindowBorderPixmap) (Display * d, Window w, Pixmap p); /* 69 */ + void (*xSetWindowBorderWidth) (Display * d, Window w, unsigned int ui); /* 70 */ + void (*xSetWindowColormap) (Display * d, Window w, Colormap c); /* 71 */ + Bool (*xTranslateCoordinates) (Display * d, Window w1, Window w2, int i1, int i2, int * i3, int * i4, Window * w3); /* 72 */ + void (*xUngrabKeyboard) (Display * d, Time t); /* 73 */ + void (*xUngrabPointer) (Display * d, Time t); /* 74 */ + void (*xUnmapWindow) (Display * d, Window w); /* 75 */ + void (*xWindowEvent) (Display * d, Window w, long l, XEvent * x); /* 76 */ + void (*xDestroyIC) (XIC x); /* 77 */ + Bool (*xFilterEvent) (XEvent * x, Window w); /* 78 */ + int (*xmbLookupString) (XIC xi, XKeyPressedEvent * xk, char * c, int i, KeySym * k, Status * s); /* 79 */ + void (*tkPutImage) (unsigned long * colors, int ncolors, Display * display, Drawable d, GC gc, XImage * image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 80 */ + void *reserved81; + Status (*xParseColor) (Display * display, Colormap map, _Xconst char * spec, XColor * colorPtr); /* 82 */ + GC (*xCreateGC) (Display * display, Drawable d, unsigned long valuemask, XGCValues * values); /* 83 */ + void (*xFreeGC) (Display * display, GC gc); /* 84 */ + Atom (*xInternAtom) (Display * display, _Xconst char * atom_name, Bool only_if_exists); /* 85 */ + void (*xSetBackground) (Display * display, GC gc, unsigned long foreground); /* 86 */ + void (*xSetForeground) (Display * display, GC gc, unsigned long foreground); /* 87 */ + void (*xSetClipMask) (Display * display, GC gc, Pixmap pixmap); /* 88 */ + void (*xSetClipOrigin) (Display * display, GC gc, int clip_x_origin, int clip_y_origin); /* 89 */ + void (*xSetTSOrigin) (Display * display, GC gc, int ts_x_origin, int ts_y_origin); /* 90 */ + void (*xChangeGC) (Display * d, GC gc, unsigned long mask, XGCValues * values); /* 91 */ + void (*xSetFont) (Display * display, GC gc, Font font); /* 92 */ + void (*xSetArcMode) (Display * display, GC gc, int arc_mode); /* 93 */ + void (*xSetStipple) (Display * display, GC gc, Pixmap stipple); /* 94 */ + void (*xSetFillRule) (Display * display, GC gc, int fill_rule); /* 95 */ + void (*xSetFillStyle) (Display * display, GC gc, int fill_style); /* 96 */ + void (*xSetFunction) (Display * display, GC gc, int function); /* 97 */ + void (*xSetLineAttributes) (Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 98 */ + int (*_XInitImageFuncPtrs) (XImage * image); /* 99 */ + XIC (*xCreateIC) (void); /* 100 */ + XVisualInfo * (*xGetVisualInfo) (Display * display, long vinfo_mask, XVisualInfo * vinfo_template, int * nitems_return); /* 101 */ + void (*xSetWMClientMachine) (Display * display, Window w, XTextProperty * text_prop); /* 102 */ + Status (*xStringListToTextProperty) (char ** list, int count, XTextProperty * text_prop_return); /* 103 */ + void (*xDrawLine) (Display * d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 104 */ + void (*xWarpPointer) (Display * d, Window s, Window dw, int sx, int sy, unsigned int sw, unsigned int sh, int dx, int dy); /* 105 */ + void (*xFillRectangle) (Display * display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 106 */ +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK + void (*xSetDashes) (Display * display, GC gc, int dash_offset, _Xconst char * dash_list, int n); /* 0 */ + XModifierKeymap * (*xGetModifierMapping) (Display * d); /* 1 */ + XImage * (*xCreateImage) (Display * d, Visual * v, unsigned int ui1, int i1, int i2, char * cp, unsigned int ui2, unsigned int ui3, int i3, int i4); /* 2 */ + XImage * (*xGetImage) (Display * d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3); /* 3 */ + char * (*xGetAtomName) (Display * d, Atom a); /* 4 */ + char * (*xKeysymToString) (KeySym k); /* 5 */ + Colormap (*xCreateColormap) (Display * d, Window w, Visual * v, int i); /* 6 */ + GContext (*xGContextFromGC) (GC g); /* 7 */ + KeySym (*xKeycodeToKeysym) (Display * d, KeyCode k, int i); /* 8 */ + KeySym (*xStringToKeysym) (_Xconst char * c); /* 9 */ + Window (*xRootWindow) (Display * d, int i); /* 10 */ + XErrorHandler (*xSetErrorHandler) (XErrorHandler x); /* 11 */ + Status (*xAllocColor) (Display * d, Colormap c, XColor * xp); /* 12 */ + void (*xBell) (Display * d, int i); /* 13 */ + void (*xChangeProperty) (Display * d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char * c, int i3); /* 14 */ + void (*xChangeWindowAttributes) (Display * d, Window w, unsigned long ul, XSetWindowAttributes * x); /* 15 */ + void (*xConfigureWindow) (Display * d, Window w, unsigned int i, XWindowChanges * x); /* 16 */ + void (*xCopyArea) (Display * d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 17 */ + void (*xCopyPlane) (Display * d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul); /* 18 */ + Pixmap (*xCreateBitmapFromData) (Display * display, Drawable d, _Xconst char * data, unsigned int width, unsigned int height); /* 19 */ + void (*xDefineCursor) (Display * d, Window w, Cursor c); /* 20 */ + void (*xDestroyWindow) (Display * d, Window w); /* 21 */ + void (*xDrawArc) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 22 */ + void (*xDrawLines) (Display * d, Drawable dr, GC g, XPoint * x, int i1, int i2); /* 23 */ + void (*xDrawRectangle) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 24 */ + void (*xFillArc) (Display * d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 25 */ + void (*xFillPolygon) (Display * d, Drawable dr, GC g, XPoint * x, int i1, int i2, int i3); /* 26 */ + void (*xFillRectangles) (Display * d, Drawable dr, GC g, XRectangle * x, int i); /* 27 */ + void (*xFreeColormap) (Display * d, Colormap c); /* 28 */ + void (*xFreeColors) (Display * d, Colormap c, unsigned long * ulp, int i, unsigned long ul); /* 29 */ + void (*xFreeModifiermap) (XModifierKeymap * x); /* 30 */ + Status (*xGetGeometry) (Display * d, Drawable dr, Window * w, int * i1, int * i2, unsigned int * ui1, unsigned int * ui2, unsigned int * ui3, unsigned int * ui4); /* 31 */ + int (*xGetWindowProperty) (Display * d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom * ap, int * ip, unsigned long * ulp1, unsigned long * ulp2, unsigned char ** cpp); /* 32 */ + int (*xGrabKeyboard) (Display * d, Window w, Bool b, int i1, int i2, Time t); /* 33 */ + int (*xGrabPointer) (Display * d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t); /* 34 */ + KeyCode (*xKeysymToKeycode) (Display * d, KeySym k); /* 35 */ + void (*xMapWindow) (Display * d, Window w); /* 36 */ + void (*xMoveResizeWindow) (Display * d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 37 */ + void (*xMoveWindow) (Display * d, Window w, int i1, int i2); /* 38 */ + Bool (*xQueryPointer) (Display * d, Window w1, Window * w2, Window * w3, int * i1, int * i2, int * i3, int * i4, unsigned int * ui); /* 39 */ + void (*xRaiseWindow) (Display * d, Window w); /* 40 */ + void (*xRefreshKeyboardMapping) (XMappingEvent * x); /* 41 */ + void (*xResizeWindow) (Display * d, Window w, unsigned int ui1, unsigned int ui2); /* 42 */ + void (*xSelectInput) (Display * d, Window w, long l); /* 43 */ + Status (*xSendEvent) (Display * d, Window w, Bool b, long l, XEvent * x); /* 44 */ + void (*xSetIconName) (Display * d, Window w, _Xconst char * c); /* 45 */ + void (*xSetInputFocus) (Display * d, Window w, int i, Time t); /* 46 */ + void (*xSetSelectionOwner) (Display * d, Atom a, Window w, Time t); /* 47 */ + void (*xSetWindowBackground) (Display * d, Window w, unsigned long ul); /* 48 */ + void (*xSetWindowBackgroundPixmap) (Display * d, Window w, Pixmap p); /* 49 */ + void (*xSetWindowBorder) (Display * d, Window w, unsigned long ul); /* 50 */ + void (*xSetWindowBorderPixmap) (Display * d, Window w, Pixmap p); /* 51 */ + void (*xSetWindowBorderWidth) (Display * d, Window w, unsigned int ui); /* 52 */ + void (*xSetWindowColormap) (Display * d, Window w, Colormap c); /* 53 */ + void (*xUngrabKeyboard) (Display * d, Time t); /* 54 */ + void (*xUngrabPointer) (Display * d, Time t); /* 55 */ + void (*xUnmapWindow) (Display * d, Window w); /* 56 */ + void (*tkPutImage) (unsigned long * colors, int ncolors, Display * display, Drawable d, GC gc, XImage * image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 57 */ + Status (*xParseColor) (Display * display, Colormap map, _Xconst char * spec, XColor * colorPtr); /* 58 */ + GC (*xCreateGC) (Display * display, Drawable d, unsigned long valuemask, XGCValues * values); /* 59 */ + void (*xFreeGC) (Display * display, GC gc); /* 60 */ + Atom (*xInternAtom) (Display * display, _Xconst char * atom_name, Bool only_if_exists); /* 61 */ + void (*xSetBackground) (Display * display, GC gc, unsigned long foreground); /* 62 */ + void (*xSetForeground) (Display * display, GC gc, unsigned long foreground); /* 63 */ + void (*xSetClipMask) (Display * display, GC gc, Pixmap pixmap); /* 64 */ + void (*xSetClipOrigin) (Display * display, GC gc, int clip_x_origin, int clip_y_origin); /* 65 */ + void (*xSetTSOrigin) (Display * display, GC gc, int ts_x_origin, int ts_y_origin); /* 66 */ + void (*xChangeGC) (Display * d, GC gc, unsigned long mask, XGCValues * values); /* 67 */ + void (*xSetFont) (Display * display, GC gc, Font font); /* 68 */ + void (*xSetArcMode) (Display * display, GC gc, int arc_mode); /* 69 */ + void (*xSetStipple) (Display * display, GC gc, Pixmap stipple); /* 70 */ + void (*xSetFillRule) (Display * display, GC gc, int fill_rule); /* 71 */ + void (*xSetFillStyle) (Display * display, GC gc, int fill_style); /* 72 */ + void (*xSetFunction) (Display * display, GC gc, int function); /* 73 */ + void (*xSetLineAttributes) (Display * display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 74 */ + int (*_XInitImageFuncPtrs) (XImage * image); /* 75 */ + XIC (*xCreateIC) (void); /* 76 */ + XVisualInfo * (*xGetVisualInfo) (Display * display, long vinfo_mask, XVisualInfo * vinfo_template, int * nitems_return); /* 77 */ + void (*xSetWMClientMachine) (Display * display, Window w, XTextProperty * text_prop); /* 78 */ + Status (*xStringListToTextProperty) (char ** list, int count, XTextProperty * text_prop_return); /* 79 */ + void (*xDrawSegments) (Display * display, Drawable d, GC gc, XSegment * segments, int nsegments); /* 80 */ + void (*xForceScreenSaver) (Display * display, int mode); /* 81 */ + void (*xDrawLine) (Display * d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 82 */ + void (*xFillRectangle) (Display * display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 83 */ + void (*xClearWindow) (Display * d, Window w); /* 84 */ + void (*xDrawPoint) (Display * display, Drawable d, GC gc, int x, int y); /* 85 */ + void (*xDrawPoints) (Display * display, Drawable d, GC gc, XPoint * points, int npoints, int mode); /* 86 */ + void (*xWarpPointer) (Display * display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y); /* 87 */ + void (*xQueryColor) (Display * display, Colormap colormap, XColor * def_in_out); /* 88 */ + void (*xQueryColors) (Display * display, Colormap colormap, XColor * defs_in_out, int ncolors); /* 89 */ + Status (*xQueryTree) (Display * d, Window w1, Window * w2, Window * w3, Window ** w4, unsigned int * ui); /* 90 */ + int (*xSync) (Display * display, Bool flag); /* 91 */ +#endif /* MAC_OSX_TK */ +} TkIntXlibStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TkIntXlibStubs *tkIntXlibStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifdef __WIN32__ +#ifndef XSetDashes +#define XSetDashes \ + (tkIntXlibStubsPtr->xSetDashes) /* 0 */ +#endif +#ifndef XGetModifierMapping +#define XGetModifierMapping \ + (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */ +#endif +#ifndef XCreateImage +#define XCreateImage \ + (tkIntXlibStubsPtr->xCreateImage) /* 2 */ +#endif +#ifndef XGetImage +#define XGetImage \ + (tkIntXlibStubsPtr->xGetImage) /* 3 */ +#endif +#ifndef XGetAtomName +#define XGetAtomName \ + (tkIntXlibStubsPtr->xGetAtomName) /* 4 */ +#endif +#ifndef XKeysymToString +#define XKeysymToString \ + (tkIntXlibStubsPtr->xKeysymToString) /* 5 */ +#endif +#ifndef XCreateColormap +#define XCreateColormap \ + (tkIntXlibStubsPtr->xCreateColormap) /* 6 */ +#endif +#ifndef XCreatePixmapCursor +#define XCreatePixmapCursor \ + (tkIntXlibStubsPtr->xCreatePixmapCursor) /* 7 */ +#endif +#ifndef XCreateGlyphCursor +#define XCreateGlyphCursor \ + (tkIntXlibStubsPtr->xCreateGlyphCursor) /* 8 */ +#endif +#ifndef XGContextFromGC +#define XGContextFromGC \ + (tkIntXlibStubsPtr->xGContextFromGC) /* 9 */ +#endif +#ifndef XListHosts +#define XListHosts \ + (tkIntXlibStubsPtr->xListHosts) /* 10 */ +#endif +#ifndef XKeycodeToKeysym +#define XKeycodeToKeysym \ + (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 11 */ +#endif +#ifndef XStringToKeysym +#define XStringToKeysym \ + (tkIntXlibStubsPtr->xStringToKeysym) /* 12 */ +#endif +#ifndef XRootWindow +#define XRootWindow \ + (tkIntXlibStubsPtr->xRootWindow) /* 13 */ +#endif +#ifndef XSetErrorHandler +#define XSetErrorHandler \ + (tkIntXlibStubsPtr->xSetErrorHandler) /* 14 */ +#endif +#ifndef XIconifyWindow +#define XIconifyWindow \ + (tkIntXlibStubsPtr->xIconifyWindow) /* 15 */ +#endif +#ifndef XWithdrawWindow +#define XWithdrawWindow \ + (tkIntXlibStubsPtr->xWithdrawWindow) /* 16 */ +#endif +#ifndef XGetWMColormapWindows +#define XGetWMColormapWindows \ + (tkIntXlibStubsPtr->xGetWMColormapWindows) /* 17 */ +#endif +#ifndef XAllocColor +#define XAllocColor \ + (tkIntXlibStubsPtr->xAllocColor) /* 18 */ +#endif +#ifndef XBell +#define XBell \ + (tkIntXlibStubsPtr->xBell) /* 19 */ +#endif +#ifndef XChangeProperty +#define XChangeProperty \ + (tkIntXlibStubsPtr->xChangeProperty) /* 20 */ +#endif +#ifndef XChangeWindowAttributes +#define XChangeWindowAttributes \ + (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 21 */ +#endif +#ifndef XClearWindow +#define XClearWindow \ + (tkIntXlibStubsPtr->xClearWindow) /* 22 */ +#endif +#ifndef XConfigureWindow +#define XConfigureWindow \ + (tkIntXlibStubsPtr->xConfigureWindow) /* 23 */ +#endif +#ifndef XCopyArea +#define XCopyArea \ + (tkIntXlibStubsPtr->xCopyArea) /* 24 */ +#endif +#ifndef XCopyPlane +#define XCopyPlane \ + (tkIntXlibStubsPtr->xCopyPlane) /* 25 */ +#endif +#ifndef XCreateBitmapFromData +#define XCreateBitmapFromData \ + (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 26 */ +#endif +#ifndef XDefineCursor +#define XDefineCursor \ + (tkIntXlibStubsPtr->xDefineCursor) /* 27 */ +#endif +#ifndef XDeleteProperty +#define XDeleteProperty \ + (tkIntXlibStubsPtr->xDeleteProperty) /* 28 */ +#endif +#ifndef XDestroyWindow +#define XDestroyWindow \ + (tkIntXlibStubsPtr->xDestroyWindow) /* 29 */ +#endif +#ifndef XDrawArc +#define XDrawArc \ + (tkIntXlibStubsPtr->xDrawArc) /* 30 */ +#endif +#ifndef XDrawLines +#define XDrawLines \ + (tkIntXlibStubsPtr->xDrawLines) /* 31 */ +#endif +#ifndef XDrawRectangle +#define XDrawRectangle \ + (tkIntXlibStubsPtr->xDrawRectangle) /* 32 */ +#endif +#ifndef XFillArc +#define XFillArc \ + (tkIntXlibStubsPtr->xFillArc) /* 33 */ +#endif +#ifndef XFillPolygon +#define XFillPolygon \ + (tkIntXlibStubsPtr->xFillPolygon) /* 34 */ +#endif +#ifndef XFillRectangles +#define XFillRectangles \ + (tkIntXlibStubsPtr->xFillRectangles) /* 35 */ +#endif +#ifndef XForceScreenSaver +#define XForceScreenSaver \ + (tkIntXlibStubsPtr->xForceScreenSaver) /* 36 */ +#endif +#ifndef XFreeColormap +#define XFreeColormap \ + (tkIntXlibStubsPtr->xFreeColormap) /* 37 */ +#endif +#ifndef XFreeColors +#define XFreeColors \ + (tkIntXlibStubsPtr->xFreeColors) /* 38 */ +#endif +#ifndef XFreeCursor +#define XFreeCursor \ + (tkIntXlibStubsPtr->xFreeCursor) /* 39 */ +#endif +#ifndef XFreeModifiermap +#define XFreeModifiermap \ + (tkIntXlibStubsPtr->xFreeModifiermap) /* 40 */ +#endif +#ifndef XGetGeometry +#define XGetGeometry \ + (tkIntXlibStubsPtr->xGetGeometry) /* 41 */ +#endif +#ifndef XGetInputFocus +#define XGetInputFocus \ + (tkIntXlibStubsPtr->xGetInputFocus) /* 42 */ +#endif +#ifndef XGetWindowProperty +#define XGetWindowProperty \ + (tkIntXlibStubsPtr->xGetWindowProperty) /* 43 */ +#endif +#ifndef XGetWindowAttributes +#define XGetWindowAttributes \ + (tkIntXlibStubsPtr->xGetWindowAttributes) /* 44 */ +#endif +#ifndef XGrabKeyboard +#define XGrabKeyboard \ + (tkIntXlibStubsPtr->xGrabKeyboard) /* 45 */ +#endif +#ifndef XGrabPointer +#define XGrabPointer \ + (tkIntXlibStubsPtr->xGrabPointer) /* 46 */ +#endif +#ifndef XKeysymToKeycode +#define XKeysymToKeycode \ + (tkIntXlibStubsPtr->xKeysymToKeycode) /* 47 */ +#endif +#ifndef XLookupColor +#define XLookupColor \ + (tkIntXlibStubsPtr->xLookupColor) /* 48 */ +#endif +#ifndef XMapWindow +#define XMapWindow \ + (tkIntXlibStubsPtr->xMapWindow) /* 49 */ +#endif +#ifndef XMoveResizeWindow +#define XMoveResizeWindow \ + (tkIntXlibStubsPtr->xMoveResizeWindow) /* 50 */ +#endif +#ifndef XMoveWindow +#define XMoveWindow \ + (tkIntXlibStubsPtr->xMoveWindow) /* 51 */ +#endif +#ifndef XNextEvent +#define XNextEvent \ + (tkIntXlibStubsPtr->xNextEvent) /* 52 */ +#endif +#ifndef XPutBackEvent +#define XPutBackEvent \ + (tkIntXlibStubsPtr->xPutBackEvent) /* 53 */ +#endif +#ifndef XQueryColors +#define XQueryColors \ + (tkIntXlibStubsPtr->xQueryColors) /* 54 */ +#endif +#ifndef XQueryPointer +#define XQueryPointer \ + (tkIntXlibStubsPtr->xQueryPointer) /* 55 */ +#endif +#ifndef XQueryTree +#define XQueryTree \ + (tkIntXlibStubsPtr->xQueryTree) /* 56 */ +#endif +#ifndef XRaiseWindow +#define XRaiseWindow \ + (tkIntXlibStubsPtr->xRaiseWindow) /* 57 */ +#endif +#ifndef XRefreshKeyboardMapping +#define XRefreshKeyboardMapping \ + (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 58 */ +#endif +#ifndef XResizeWindow +#define XResizeWindow \ + (tkIntXlibStubsPtr->xResizeWindow) /* 59 */ +#endif +#ifndef XSelectInput +#define XSelectInput \ + (tkIntXlibStubsPtr->xSelectInput) /* 60 */ +#endif +#ifndef XSendEvent +#define XSendEvent \ + (tkIntXlibStubsPtr->xSendEvent) /* 61 */ +#endif +#ifndef XSetCommand +#define XSetCommand \ + (tkIntXlibStubsPtr->xSetCommand) /* 62 */ +#endif +#ifndef XSetIconName +#define XSetIconName \ + (tkIntXlibStubsPtr->xSetIconName) /* 63 */ +#endif +#ifndef XSetInputFocus +#define XSetInputFocus \ + (tkIntXlibStubsPtr->xSetInputFocus) /* 64 */ +#endif +#ifndef XSetSelectionOwner +#define XSetSelectionOwner \ + (tkIntXlibStubsPtr->xSetSelectionOwner) /* 65 */ +#endif +#ifndef XSetWindowBackground +#define XSetWindowBackground \ + (tkIntXlibStubsPtr->xSetWindowBackground) /* 66 */ +#endif +#ifndef XSetWindowBackgroundPixmap +#define XSetWindowBackgroundPixmap \ + (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 67 */ +#endif +#ifndef XSetWindowBorder +#define XSetWindowBorder \ + (tkIntXlibStubsPtr->xSetWindowBorder) /* 68 */ +#endif +#ifndef XSetWindowBorderPixmap +#define XSetWindowBorderPixmap \ + (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 69 */ +#endif +#ifndef XSetWindowBorderWidth +#define XSetWindowBorderWidth \ + (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 70 */ +#endif +#ifndef XSetWindowColormap +#define XSetWindowColormap \ + (tkIntXlibStubsPtr->xSetWindowColormap) /* 71 */ +#endif +#ifndef XTranslateCoordinates +#define XTranslateCoordinates \ + (tkIntXlibStubsPtr->xTranslateCoordinates) /* 72 */ +#endif +#ifndef XUngrabKeyboard +#define XUngrabKeyboard \ + (tkIntXlibStubsPtr->xUngrabKeyboard) /* 73 */ +#endif +#ifndef XUngrabPointer +#define XUngrabPointer \ + (tkIntXlibStubsPtr->xUngrabPointer) /* 74 */ +#endif +#ifndef XUnmapWindow +#define XUnmapWindow \ + (tkIntXlibStubsPtr->xUnmapWindow) /* 75 */ +#endif +#ifndef XWindowEvent +#define XWindowEvent \ + (tkIntXlibStubsPtr->xWindowEvent) /* 76 */ +#endif +#ifndef XDestroyIC +#define XDestroyIC \ + (tkIntXlibStubsPtr->xDestroyIC) /* 77 */ +#endif +#ifndef XFilterEvent +#define XFilterEvent \ + (tkIntXlibStubsPtr->xFilterEvent) /* 78 */ +#endif +#ifndef XmbLookupString +#define XmbLookupString \ + (tkIntXlibStubsPtr->xmbLookupString) /* 79 */ +#endif +#ifndef TkPutImage +#define TkPutImage \ + (tkIntXlibStubsPtr->tkPutImage) /* 80 */ +#endif +/* Slot 81 is reserved */ +#ifndef XParseColor +#define XParseColor \ + (tkIntXlibStubsPtr->xParseColor) /* 82 */ +#endif +#ifndef XCreateGC +#define XCreateGC \ + (tkIntXlibStubsPtr->xCreateGC) /* 83 */ +#endif +#ifndef XFreeGC +#define XFreeGC \ + (tkIntXlibStubsPtr->xFreeGC) /* 84 */ +#endif +#ifndef XInternAtom +#define XInternAtom \ + (tkIntXlibStubsPtr->xInternAtom) /* 85 */ +#endif +#ifndef XSetBackground +#define XSetBackground \ + (tkIntXlibStubsPtr->xSetBackground) /* 86 */ +#endif +#ifndef XSetForeground +#define XSetForeground \ + (tkIntXlibStubsPtr->xSetForeground) /* 87 */ +#endif +#ifndef XSetClipMask +#define XSetClipMask \ + (tkIntXlibStubsPtr->xSetClipMask) /* 88 */ +#endif +#ifndef XSetClipOrigin +#define XSetClipOrigin \ + (tkIntXlibStubsPtr->xSetClipOrigin) /* 89 */ +#endif +#ifndef XSetTSOrigin +#define XSetTSOrigin \ + (tkIntXlibStubsPtr->xSetTSOrigin) /* 90 */ +#endif +#ifndef XChangeGC +#define XChangeGC \ + (tkIntXlibStubsPtr->xChangeGC) /* 91 */ +#endif +#ifndef XSetFont +#define XSetFont \ + (tkIntXlibStubsPtr->xSetFont) /* 92 */ +#endif +#ifndef XSetArcMode +#define XSetArcMode \ + (tkIntXlibStubsPtr->xSetArcMode) /* 93 */ +#endif +#ifndef XSetStipple +#define XSetStipple \ + (tkIntXlibStubsPtr->xSetStipple) /* 94 */ +#endif +#ifndef XSetFillRule +#define XSetFillRule \ + (tkIntXlibStubsPtr->xSetFillRule) /* 95 */ +#endif +#ifndef XSetFillStyle +#define XSetFillStyle \ + (tkIntXlibStubsPtr->xSetFillStyle) /* 96 */ +#endif +#ifndef XSetFunction +#define XSetFunction \ + (tkIntXlibStubsPtr->xSetFunction) /* 97 */ +#endif +#ifndef XSetLineAttributes +#define XSetLineAttributes \ + (tkIntXlibStubsPtr->xSetLineAttributes) /* 98 */ +#endif +#ifndef _XInitImageFuncPtrs +#define _XInitImageFuncPtrs \ + (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 99 */ +#endif +#ifndef XCreateIC +#define XCreateIC \ + (tkIntXlibStubsPtr->xCreateIC) /* 100 */ +#endif +#ifndef XGetVisualInfo +#define XGetVisualInfo \ + (tkIntXlibStubsPtr->xGetVisualInfo) /* 101 */ +#endif +#ifndef XSetWMClientMachine +#define XSetWMClientMachine \ + (tkIntXlibStubsPtr->xSetWMClientMachine) /* 102 */ +#endif +#ifndef XStringListToTextProperty +#define XStringListToTextProperty \ + (tkIntXlibStubsPtr->xStringListToTextProperty) /* 103 */ +#endif +#ifndef XDrawLine +#define XDrawLine \ + (tkIntXlibStubsPtr->xDrawLine) /* 104 */ +#endif +#ifndef XWarpPointer +#define XWarpPointer \ + (tkIntXlibStubsPtr->xWarpPointer) /* 105 */ +#endif +#ifndef XFillRectangle +#define XFillRectangle \ + (tkIntXlibStubsPtr->xFillRectangle) /* 106 */ +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK +#ifndef XSetDashes +#define XSetDashes \ + (tkIntXlibStubsPtr->xSetDashes) /* 0 */ +#endif +#ifndef XGetModifierMapping +#define XGetModifierMapping \ + (tkIntXlibStubsPtr->xGetModifierMapping) /* 1 */ +#endif +#ifndef XCreateImage +#define XCreateImage \ + (tkIntXlibStubsPtr->xCreateImage) /* 2 */ +#endif +#ifndef XGetImage +#define XGetImage \ + (tkIntXlibStubsPtr->xGetImage) /* 3 */ +#endif +#ifndef XGetAtomName +#define XGetAtomName \ + (tkIntXlibStubsPtr->xGetAtomName) /* 4 */ +#endif +#ifndef XKeysymToString +#define XKeysymToString \ + (tkIntXlibStubsPtr->xKeysymToString) /* 5 */ +#endif +#ifndef XCreateColormap +#define XCreateColormap \ + (tkIntXlibStubsPtr->xCreateColormap) /* 6 */ +#endif +#ifndef XGContextFromGC +#define XGContextFromGC \ + (tkIntXlibStubsPtr->xGContextFromGC) /* 7 */ +#endif +#ifndef XKeycodeToKeysym +#define XKeycodeToKeysym \ + (tkIntXlibStubsPtr->xKeycodeToKeysym) /* 8 */ +#endif +#ifndef XStringToKeysym +#define XStringToKeysym \ + (tkIntXlibStubsPtr->xStringToKeysym) /* 9 */ +#endif +#ifndef XRootWindow +#define XRootWindow \ + (tkIntXlibStubsPtr->xRootWindow) /* 10 */ +#endif +#ifndef XSetErrorHandler +#define XSetErrorHandler \ + (tkIntXlibStubsPtr->xSetErrorHandler) /* 11 */ +#endif +#ifndef XAllocColor +#define XAllocColor \ + (tkIntXlibStubsPtr->xAllocColor) /* 12 */ +#endif +#ifndef XBell +#define XBell \ + (tkIntXlibStubsPtr->xBell) /* 13 */ +#endif +#ifndef XChangeProperty +#define XChangeProperty \ + (tkIntXlibStubsPtr->xChangeProperty) /* 14 */ +#endif +#ifndef XChangeWindowAttributes +#define XChangeWindowAttributes \ + (tkIntXlibStubsPtr->xChangeWindowAttributes) /* 15 */ +#endif +#ifndef XConfigureWindow +#define XConfigureWindow \ + (tkIntXlibStubsPtr->xConfigureWindow) /* 16 */ +#endif +#ifndef XCopyArea +#define XCopyArea \ + (tkIntXlibStubsPtr->xCopyArea) /* 17 */ +#endif +#ifndef XCopyPlane +#define XCopyPlane \ + (tkIntXlibStubsPtr->xCopyPlane) /* 18 */ +#endif +#ifndef XCreateBitmapFromData +#define XCreateBitmapFromData \ + (tkIntXlibStubsPtr->xCreateBitmapFromData) /* 19 */ +#endif +#ifndef XDefineCursor +#define XDefineCursor \ + (tkIntXlibStubsPtr->xDefineCursor) /* 20 */ +#endif +#ifndef XDestroyWindow +#define XDestroyWindow \ + (tkIntXlibStubsPtr->xDestroyWindow) /* 21 */ +#endif +#ifndef XDrawArc +#define XDrawArc \ + (tkIntXlibStubsPtr->xDrawArc) /* 22 */ +#endif +#ifndef XDrawLines +#define XDrawLines \ + (tkIntXlibStubsPtr->xDrawLines) /* 23 */ +#endif +#ifndef XDrawRectangle +#define XDrawRectangle \ + (tkIntXlibStubsPtr->xDrawRectangle) /* 24 */ +#endif +#ifndef XFillArc +#define XFillArc \ + (tkIntXlibStubsPtr->xFillArc) /* 25 */ +#endif +#ifndef XFillPolygon +#define XFillPolygon \ + (tkIntXlibStubsPtr->xFillPolygon) /* 26 */ +#endif +#ifndef XFillRectangles +#define XFillRectangles \ + (tkIntXlibStubsPtr->xFillRectangles) /* 27 */ +#endif +#ifndef XFreeColormap +#define XFreeColormap \ + (tkIntXlibStubsPtr->xFreeColormap) /* 28 */ +#endif +#ifndef XFreeColors +#define XFreeColors \ + (tkIntXlibStubsPtr->xFreeColors) /* 29 */ +#endif +#ifndef XFreeModifiermap +#define XFreeModifiermap \ + (tkIntXlibStubsPtr->xFreeModifiermap) /* 30 */ +#endif +#ifndef XGetGeometry +#define XGetGeometry \ + (tkIntXlibStubsPtr->xGetGeometry) /* 31 */ +#endif +#ifndef XGetWindowProperty +#define XGetWindowProperty \ + (tkIntXlibStubsPtr->xGetWindowProperty) /* 32 */ +#endif +#ifndef XGrabKeyboard +#define XGrabKeyboard \ + (tkIntXlibStubsPtr->xGrabKeyboard) /* 33 */ +#endif +#ifndef XGrabPointer +#define XGrabPointer \ + (tkIntXlibStubsPtr->xGrabPointer) /* 34 */ +#endif +#ifndef XKeysymToKeycode +#define XKeysymToKeycode \ + (tkIntXlibStubsPtr->xKeysymToKeycode) /* 35 */ +#endif +#ifndef XMapWindow +#define XMapWindow \ + (tkIntXlibStubsPtr->xMapWindow) /* 36 */ +#endif +#ifndef XMoveResizeWindow +#define XMoveResizeWindow \ + (tkIntXlibStubsPtr->xMoveResizeWindow) /* 37 */ +#endif +#ifndef XMoveWindow +#define XMoveWindow \ + (tkIntXlibStubsPtr->xMoveWindow) /* 38 */ +#endif +#ifndef XQueryPointer +#define XQueryPointer \ + (tkIntXlibStubsPtr->xQueryPointer) /* 39 */ +#endif +#ifndef XRaiseWindow +#define XRaiseWindow \ + (tkIntXlibStubsPtr->xRaiseWindow) /* 40 */ +#endif +#ifndef XRefreshKeyboardMapping +#define XRefreshKeyboardMapping \ + (tkIntXlibStubsPtr->xRefreshKeyboardMapping) /* 41 */ +#endif +#ifndef XResizeWindow +#define XResizeWindow \ + (tkIntXlibStubsPtr->xResizeWindow) /* 42 */ +#endif +#ifndef XSelectInput +#define XSelectInput \ + (tkIntXlibStubsPtr->xSelectInput) /* 43 */ +#endif +#ifndef XSendEvent +#define XSendEvent \ + (tkIntXlibStubsPtr->xSendEvent) /* 44 */ +#endif +#ifndef XSetIconName +#define XSetIconName \ + (tkIntXlibStubsPtr->xSetIconName) /* 45 */ +#endif +#ifndef XSetInputFocus +#define XSetInputFocus \ + (tkIntXlibStubsPtr->xSetInputFocus) /* 46 */ +#endif +#ifndef XSetSelectionOwner +#define XSetSelectionOwner \ + (tkIntXlibStubsPtr->xSetSelectionOwner) /* 47 */ +#endif +#ifndef XSetWindowBackground +#define XSetWindowBackground \ + (tkIntXlibStubsPtr->xSetWindowBackground) /* 48 */ +#endif +#ifndef XSetWindowBackgroundPixmap +#define XSetWindowBackgroundPixmap \ + (tkIntXlibStubsPtr->xSetWindowBackgroundPixmap) /* 49 */ +#endif +#ifndef XSetWindowBorder +#define XSetWindowBorder \ + (tkIntXlibStubsPtr->xSetWindowBorder) /* 50 */ +#endif +#ifndef XSetWindowBorderPixmap +#define XSetWindowBorderPixmap \ + (tkIntXlibStubsPtr->xSetWindowBorderPixmap) /* 51 */ +#endif +#ifndef XSetWindowBorderWidth +#define XSetWindowBorderWidth \ + (tkIntXlibStubsPtr->xSetWindowBorderWidth) /* 52 */ +#endif +#ifndef XSetWindowColormap +#define XSetWindowColormap \ + (tkIntXlibStubsPtr->xSetWindowColormap) /* 53 */ +#endif +#ifndef XUngrabKeyboard +#define XUngrabKeyboard \ + (tkIntXlibStubsPtr->xUngrabKeyboard) /* 54 */ +#endif +#ifndef XUngrabPointer +#define XUngrabPointer \ + (tkIntXlibStubsPtr->xUngrabPointer) /* 55 */ +#endif +#ifndef XUnmapWindow +#define XUnmapWindow \ + (tkIntXlibStubsPtr->xUnmapWindow) /* 56 */ +#endif +#ifndef TkPutImage +#define TkPutImage \ + (tkIntXlibStubsPtr->tkPutImage) /* 57 */ +#endif +#ifndef XParseColor +#define XParseColor \ + (tkIntXlibStubsPtr->xParseColor) /* 58 */ +#endif +#ifndef XCreateGC +#define XCreateGC \ + (tkIntXlibStubsPtr->xCreateGC) /* 59 */ +#endif +#ifndef XFreeGC +#define XFreeGC \ + (tkIntXlibStubsPtr->xFreeGC) /* 60 */ +#endif +#ifndef XInternAtom +#define XInternAtom \ + (tkIntXlibStubsPtr->xInternAtom) /* 61 */ +#endif +#ifndef XSetBackground +#define XSetBackground \ + (tkIntXlibStubsPtr->xSetBackground) /* 62 */ +#endif +#ifndef XSetForeground +#define XSetForeground \ + (tkIntXlibStubsPtr->xSetForeground) /* 63 */ +#endif +#ifndef XSetClipMask +#define XSetClipMask \ + (tkIntXlibStubsPtr->xSetClipMask) /* 64 */ +#endif +#ifndef XSetClipOrigin +#define XSetClipOrigin \ + (tkIntXlibStubsPtr->xSetClipOrigin) /* 65 */ +#endif +#ifndef XSetTSOrigin +#define XSetTSOrigin \ + (tkIntXlibStubsPtr->xSetTSOrigin) /* 66 */ +#endif +#ifndef XChangeGC +#define XChangeGC \ + (tkIntXlibStubsPtr->xChangeGC) /* 67 */ +#endif +#ifndef XSetFont +#define XSetFont \ + (tkIntXlibStubsPtr->xSetFont) /* 68 */ +#endif +#ifndef XSetArcMode +#define XSetArcMode \ + (tkIntXlibStubsPtr->xSetArcMode) /* 69 */ +#endif +#ifndef XSetStipple +#define XSetStipple \ + (tkIntXlibStubsPtr->xSetStipple) /* 70 */ +#endif +#ifndef XSetFillRule +#define XSetFillRule \ + (tkIntXlibStubsPtr->xSetFillRule) /* 71 */ +#endif +#ifndef XSetFillStyle +#define XSetFillStyle \ + (tkIntXlibStubsPtr->xSetFillStyle) /* 72 */ +#endif +#ifndef XSetFunction +#define XSetFunction \ + (tkIntXlibStubsPtr->xSetFunction) /* 73 */ +#endif +#ifndef XSetLineAttributes +#define XSetLineAttributes \ + (tkIntXlibStubsPtr->xSetLineAttributes) /* 74 */ +#endif +#ifndef _XInitImageFuncPtrs +#define _XInitImageFuncPtrs \ + (tkIntXlibStubsPtr->_XInitImageFuncPtrs) /* 75 */ +#endif +#ifndef XCreateIC +#define XCreateIC \ + (tkIntXlibStubsPtr->xCreateIC) /* 76 */ +#endif +#ifndef XGetVisualInfo +#define XGetVisualInfo \ + (tkIntXlibStubsPtr->xGetVisualInfo) /* 77 */ +#endif +#ifndef XSetWMClientMachine +#define XSetWMClientMachine \ + (tkIntXlibStubsPtr->xSetWMClientMachine) /* 78 */ +#endif +#ifndef XStringListToTextProperty +#define XStringListToTextProperty \ + (tkIntXlibStubsPtr->xStringListToTextProperty) /* 79 */ +#endif +#ifndef XDrawSegments +#define XDrawSegments \ + (tkIntXlibStubsPtr->xDrawSegments) /* 80 */ +#endif +#ifndef XForceScreenSaver +#define XForceScreenSaver \ + (tkIntXlibStubsPtr->xForceScreenSaver) /* 81 */ +#endif +#ifndef XDrawLine +#define XDrawLine \ + (tkIntXlibStubsPtr->xDrawLine) /* 82 */ +#endif +#ifndef XFillRectangle +#define XFillRectangle \ + (tkIntXlibStubsPtr->xFillRectangle) /* 83 */ +#endif +#ifndef XClearWindow +#define XClearWindow \ + (tkIntXlibStubsPtr->xClearWindow) /* 84 */ +#endif +#ifndef XDrawPoint +#define XDrawPoint \ + (tkIntXlibStubsPtr->xDrawPoint) /* 85 */ +#endif +#ifndef XDrawPoints +#define XDrawPoints \ + (tkIntXlibStubsPtr->xDrawPoints) /* 86 */ +#endif +#ifndef XWarpPointer +#define XWarpPointer \ + (tkIntXlibStubsPtr->xWarpPointer) /* 87 */ +#endif +#ifndef XQueryColor +#define XQueryColor \ + (tkIntXlibStubsPtr->xQueryColor) /* 88 */ +#endif +#ifndef XQueryColors +#define XQueryColors \ + (tkIntXlibStubsPtr->xQueryColors) /* 89 */ +#endif +#ifndef XQueryTree +#define XQueryTree \ + (tkIntXlibStubsPtr->xQueryTree) /* 90 */ +#endif +#ifndef XSync +#define XSync \ + (tkIntXlibStubsPtr->xSync) /* 91 */ +#endif +#endif /* MAC_OSX_TK */ + +#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TKINTXLIBDECLS */ diff --git a/mingw/include/tkPlatDecls.h b/mingw/include/tkPlatDecls.h dissimilarity index 62% index 5d85c8fc..b47ca791 100644 --- a/mingw/include/tkPlatDecls.h +++ b/mingw/include/tkPlatDecls.h @@ -1,300 +1,253 @@ -/* - * tkPlatDecls.h -- - * - * Declarations of functions in the platform-specific public Tcl API. - * - * Copyright (c) 1998-1999 by Scriptics Corporation. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tkPlatDecls.h,v 1.7.2.1 2006/02/09 19:09:43 das Exp $ - */ - -#ifndef _TKPLATDECLS -#define _TKPLATDECLS - -#ifdef BUILD_tk -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLEXPORT -#endif - -/* - * WARNING: This file is automatically generated by the tools/genStubs.tcl - * script. Any modifications to the function declarations below should be made - * in the generic/tk.decls script. - */ - -/* !BEGIN!: Do not edit below this line. */ - -/* - * Exported function declarations: - */ - -#ifdef __WIN32__ -/* 0 */ -EXTERN Window Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin, - HWND hwnd)); -/* 1 */ -EXTERN HINSTANCE Tk_GetHINSTANCE _ANSI_ARGS_((void)); -/* 2 */ -EXTERN HWND Tk_GetHWND _ANSI_ARGS_((Window window)); -/* 3 */ -EXTERN Tk_Window Tk_HWNDToWindow _ANSI_ARGS_((HWND hwnd)); -/* 4 */ -EXTERN void Tk_PointerEvent _ANSI_ARGS_((HWND hwnd, int x, int y)); -/* 5 */ -EXTERN int Tk_TranslateWinEvent _ANSI_ARGS_((HWND hwnd, - UINT message, WPARAM wParam, LPARAM lParam, - LRESULT * result)); -#endif /* __WIN32__ */ -#ifdef MAC_TCL -/* 0 */ -EXTERN void Tk_MacSetEmbedHandler _ANSI_ARGS_(( - Tk_MacEmbedRegisterWinProc * registerWinProcPtr, - Tk_MacEmbedGetGrafPortProc * getPortProcPtr, - Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr, - Tk_MacEmbedGetClipProc * getClipProc, - Tk_MacEmbedGetOffsetInParentProc * getOffsetProc)); -/* 1 */ -EXTERN void Tk_MacTurnOffMenus _ANSI_ARGS_((void)); -/* 2 */ -EXTERN void Tk_MacTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt)); -/* 3 */ -EXTERN void TkMacInitMenus _ANSI_ARGS_((Tcl_Interp * interp)); -/* 4 */ -EXTERN void TkMacInitAppleEvents _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 5 */ -EXTERN int TkMacConvertEvent _ANSI_ARGS_(( - EventRecord * eventPtr)); -/* 6 */ -EXTERN int TkMacConvertTkEvent _ANSI_ARGS_(( - EventRecord * eventPtr, Window window)); -/* 7 */ -EXTERN void TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, - int x, int y, int width, int height, - int flags)); -/* 8 */ -EXTERN void TkMacInvalClipRgns _ANSI_ARGS_((TkWindow * winPtr)); -/* 9 */ -EXTERN int TkMacHaveAppearance _ANSI_ARGS_((void)); -/* 10 */ -EXTERN GWorldPtr TkMacGetDrawablePort _ANSI_ARGS_((Drawable drawable)); -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK -/* 0 */ -EXTERN void Tk_MacOSXSetEmbedHandler _ANSI_ARGS_(( - Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr, - Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr, - Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr, - Tk_MacOSXEmbedGetClipProc * getClipProc, - Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc)); -/* 1 */ -EXTERN void Tk_MacOSXTurnOffMenus _ANSI_ARGS_((void)); -/* 2 */ -EXTERN void Tk_MacOSXTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt)); -/* 3 */ -EXTERN void TkMacOSXInitMenus _ANSI_ARGS_((Tcl_Interp * interp)); -/* 4 */ -EXTERN void TkMacOSXInitAppleEvents _ANSI_ARGS_(( - Tcl_Interp * interp)); -/* 5 */ -EXTERN void TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, - int x, int y, int width, int height, - int flags)); -/* 6 */ -EXTERN void TkMacOSXInvalClipRgns _ANSI_ARGS_((Tk_Window tkwin)); -/* 7 */ -EXTERN GWorldPtr TkMacOSXGetDrawablePort _ANSI_ARGS_(( - Drawable drawable)); -/* 8 */ -EXTERN ControlRef TkMacOSXGetRootControl _ANSI_ARGS_(( - Drawable drawable)); -/* 9 */ -EXTERN void Tk_MacOSXSetupTkNotifier _ANSI_ARGS_((void)); -/* 10 */ -EXTERN int Tk_MacOSXIsAppInFront _ANSI_ARGS_((void)); -#endif /* MAC_OSX_TK */ - -typedef struct TkPlatStubs { - int magic; - struct TkPlatStubHooks *hooks; - -#ifdef __WIN32__ - Window (*tk_AttachHWND) _ANSI_ARGS_((Tk_Window tkwin, HWND hwnd)); /* 0 */ - HINSTANCE (*tk_GetHINSTANCE) _ANSI_ARGS_((void)); /* 1 */ - HWND (*tk_GetHWND) _ANSI_ARGS_((Window window)); /* 2 */ - Tk_Window (*tk_HWNDToWindow) _ANSI_ARGS_((HWND hwnd)); /* 3 */ - void (*tk_PointerEvent) _ANSI_ARGS_((HWND hwnd, int x, int y)); /* 4 */ - int (*tk_TranslateWinEvent) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT * result)); /* 5 */ -#endif /* __WIN32__ */ -#ifdef MAC_TCL - void (*tk_MacSetEmbedHandler) _ANSI_ARGS_((Tk_MacEmbedRegisterWinProc * registerWinProcPtr, Tk_MacEmbedGetGrafPortProc * getPortProcPtr, Tk_MacEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacEmbedGetClipProc * getClipProc, Tk_MacEmbedGetOffsetInParentProc * getOffsetProc)); /* 0 */ - void (*tk_MacTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */ - void (*tk_MacTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */ - void (*tkMacInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */ - void (*tkMacInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 4 */ - int (*tkMacConvertEvent) _ANSI_ARGS_((EventRecord * eventPtr)); /* 5 */ - int (*tkMacConvertTkEvent) _ANSI_ARGS_((EventRecord * eventPtr, Window window)); /* 6 */ - void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 7 */ - void (*tkMacInvalClipRgns) _ANSI_ARGS_((TkWindow * winPtr)); /* 8 */ - int (*tkMacHaveAppearance) _ANSI_ARGS_((void)); /* 9 */ - GWorldPtr (*tkMacGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 10 */ -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK - void (*tk_MacOSXSetEmbedHandler) _ANSI_ARGS_((Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacOSXEmbedGetClipProc * getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc)); /* 0 */ - void (*tk_MacOSXTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */ - void (*tk_MacOSXTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */ - void (*tkMacOSXInitMenus) _ANSI_ARGS_((Tcl_Interp * interp)); /* 3 */ - void (*tkMacOSXInitAppleEvents) _ANSI_ARGS_((Tcl_Interp * interp)); /* 4 */ - void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 5 */ - void (*tkMacOSXInvalClipRgns) _ANSI_ARGS_((Tk_Window tkwin)); /* 6 */ - GWorldPtr (*tkMacOSXGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 7 */ - ControlRef (*tkMacOSXGetRootControl) _ANSI_ARGS_((Drawable drawable)); /* 8 */ - void (*tk_MacOSXSetupTkNotifier) _ANSI_ARGS_((void)); /* 9 */ - int (*tk_MacOSXIsAppInFront) _ANSI_ARGS_((void)); /* 10 */ -#endif /* MAC_OSX_TK */ -} TkPlatStubs; - -#ifdef __cplusplus -extern "C" { -#endif -extern TkPlatStubs *tkPlatStubsPtr; -#ifdef __cplusplus -} -#endif - -#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) - -/* - * Inline function declarations: - */ - -#ifdef __WIN32__ -#ifndef Tk_AttachHWND -#define Tk_AttachHWND \ - (tkPlatStubsPtr->tk_AttachHWND) /* 0 */ -#endif -#ifndef Tk_GetHINSTANCE -#define Tk_GetHINSTANCE \ - (tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */ -#endif -#ifndef Tk_GetHWND -#define Tk_GetHWND \ - (tkPlatStubsPtr->tk_GetHWND) /* 2 */ -#endif -#ifndef Tk_HWNDToWindow -#define Tk_HWNDToWindow \ - (tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */ -#endif -#ifndef Tk_PointerEvent -#define Tk_PointerEvent \ - (tkPlatStubsPtr->tk_PointerEvent) /* 4 */ -#endif -#ifndef Tk_TranslateWinEvent -#define Tk_TranslateWinEvent \ - (tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */ -#endif -#endif /* __WIN32__ */ -#ifdef MAC_TCL -#ifndef Tk_MacSetEmbedHandler -#define Tk_MacSetEmbedHandler \ - (tkPlatStubsPtr->tk_MacSetEmbedHandler) /* 0 */ -#endif -#ifndef Tk_MacTurnOffMenus -#define Tk_MacTurnOffMenus \ - (tkPlatStubsPtr->tk_MacTurnOffMenus) /* 1 */ -#endif -#ifndef Tk_MacTkOwnsCursor -#define Tk_MacTkOwnsCursor \ - (tkPlatStubsPtr->tk_MacTkOwnsCursor) /* 2 */ -#endif -#ifndef TkMacInitMenus -#define TkMacInitMenus \ - (tkPlatStubsPtr->tkMacInitMenus) /* 3 */ -#endif -#ifndef TkMacInitAppleEvents -#define TkMacInitAppleEvents \ - (tkPlatStubsPtr->tkMacInitAppleEvents) /* 4 */ -#endif -#ifndef TkMacConvertEvent -#define TkMacConvertEvent \ - (tkPlatStubsPtr->tkMacConvertEvent) /* 5 */ -#endif -#ifndef TkMacConvertTkEvent -#define TkMacConvertTkEvent \ - (tkPlatStubsPtr->tkMacConvertTkEvent) /* 6 */ -#endif -#ifndef TkGenWMConfigureEvent -#define TkGenWMConfigureEvent \ - (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 7 */ -#endif -#ifndef TkMacInvalClipRgns -#define TkMacInvalClipRgns \ - (tkPlatStubsPtr->tkMacInvalClipRgns) /* 8 */ -#endif -#ifndef TkMacHaveAppearance -#define TkMacHaveAppearance \ - (tkPlatStubsPtr->tkMacHaveAppearance) /* 9 */ -#endif -#ifndef TkMacGetDrawablePort -#define TkMacGetDrawablePort \ - (tkPlatStubsPtr->tkMacGetDrawablePort) /* 10 */ -#endif -#endif /* MAC_TCL */ -#ifdef MAC_OSX_TK -#ifndef Tk_MacOSXSetEmbedHandler -#define Tk_MacOSXSetEmbedHandler \ - (tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */ -#endif -#ifndef Tk_MacOSXTurnOffMenus -#define Tk_MacOSXTurnOffMenus \ - (tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */ -#endif -#ifndef Tk_MacOSXTkOwnsCursor -#define Tk_MacOSXTkOwnsCursor \ - (tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */ -#endif -#ifndef TkMacOSXInitMenus -#define TkMacOSXInitMenus \ - (tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */ -#endif -#ifndef TkMacOSXInitAppleEvents -#define TkMacOSXInitAppleEvents \ - (tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */ -#endif -#ifndef TkGenWMConfigureEvent -#define TkGenWMConfigureEvent \ - (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */ -#endif -#ifndef TkMacOSXInvalClipRgns -#define TkMacOSXInvalClipRgns \ - (tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */ -#endif -#ifndef TkMacOSXGetDrawablePort -#define TkMacOSXGetDrawablePort \ - (tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */ -#endif -#ifndef TkMacOSXGetRootControl -#define TkMacOSXGetRootControl \ - (tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */ -#endif -#ifndef Tk_MacOSXSetupTkNotifier -#define Tk_MacOSXSetupTkNotifier \ - (tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */ -#endif -#ifndef Tk_MacOSXIsAppInFront -#define Tk_MacOSXIsAppInFront \ - (tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */ -#endif -#endif /* MAC_OSX_TK */ - -#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ - -/* !END!: Do not edit above this line. */ - -#undef TCL_STORAGE_CLASS -#define TCL_STORAGE_CLASS DLLIMPORT - -#endif /* _TKPLATDECLS */ +/* + * tkPlatDecls.h -- + * + * Declarations of functions in the platform-specific public Tcl API. + * + * Copyright (c) 1998-1999 by Scriptics Corporation. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tkPlatDecls.h,v 1.13 2006/12/18 16:42:46 dgp Exp $ + */ + +#ifndef _TKPLATDECLS +#define _TKPLATDECLS + +#ifdef BUILD_tk +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLEXPORT +#endif + +/* + * WARNING: This file is automatically generated by the tools/genStubs.tcl + * script. Any modifications to the function declarations below should be made + * in the generic/tk.decls script. + */ + +/* !BEGIN!: Do not edit below this line. */ + +/* + * Exported function declarations: + */ + +#ifdef __WIN32__ +#ifndef Tk_AttachHWND_TCL_DECLARED +#define Tk_AttachHWND_TCL_DECLARED +/* 0 */ +EXTERN Window Tk_AttachHWND (Tk_Window tkwin, HWND hwnd); +#endif +#ifndef Tk_GetHINSTANCE_TCL_DECLARED +#define Tk_GetHINSTANCE_TCL_DECLARED +/* 1 */ +EXTERN HINSTANCE Tk_GetHINSTANCE (void); +#endif +#ifndef Tk_GetHWND_TCL_DECLARED +#define Tk_GetHWND_TCL_DECLARED +/* 2 */ +EXTERN HWND Tk_GetHWND (Window window); +#endif +#ifndef Tk_HWNDToWindow_TCL_DECLARED +#define Tk_HWNDToWindow_TCL_DECLARED +/* 3 */ +EXTERN Tk_Window Tk_HWNDToWindow (HWND hwnd); +#endif +#ifndef Tk_PointerEvent_TCL_DECLARED +#define Tk_PointerEvent_TCL_DECLARED +/* 4 */ +EXTERN void Tk_PointerEvent (HWND hwnd, int x, int y); +#endif +#ifndef Tk_TranslateWinEvent_TCL_DECLARED +#define Tk_TranslateWinEvent_TCL_DECLARED +/* 5 */ +EXTERN int Tk_TranslateWinEvent (HWND hwnd, UINT message, + WPARAM wParam, LPARAM lParam, + LRESULT * result); +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK +#ifndef Tk_MacOSXSetEmbedHandler_TCL_DECLARED +#define Tk_MacOSXSetEmbedHandler_TCL_DECLARED +/* 0 */ +EXTERN void Tk_MacOSXSetEmbedHandler ( + Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr, + Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr, + Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr, + Tk_MacOSXEmbedGetClipProc * getClipProc, + Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc); +#endif +#ifndef Tk_MacOSXTurnOffMenus_TCL_DECLARED +#define Tk_MacOSXTurnOffMenus_TCL_DECLARED +/* 1 */ +EXTERN void Tk_MacOSXTurnOffMenus (void); +#endif +#ifndef Tk_MacOSXTkOwnsCursor_TCL_DECLARED +#define Tk_MacOSXTkOwnsCursor_TCL_DECLARED +/* 2 */ +EXTERN void Tk_MacOSXTkOwnsCursor (int tkOwnsIt); +#endif +#ifndef TkMacOSXInitMenus_TCL_DECLARED +#define TkMacOSXInitMenus_TCL_DECLARED +/* 3 */ +EXTERN void TkMacOSXInitMenus (Tcl_Interp * interp); +#endif +#ifndef TkMacOSXInitAppleEvents_TCL_DECLARED +#define TkMacOSXInitAppleEvents_TCL_DECLARED +/* 4 */ +EXTERN void TkMacOSXInitAppleEvents (Tcl_Interp * interp); +#endif +#ifndef TkGenWMConfigureEvent_TCL_DECLARED +#define TkGenWMConfigureEvent_TCL_DECLARED +/* 5 */ +EXTERN void TkGenWMConfigureEvent (Tk_Window tkwin, int x, int y, + int width, int height, int flags); +#endif +#ifndef TkMacOSXInvalClipRgns_TCL_DECLARED +#define TkMacOSXInvalClipRgns_TCL_DECLARED +/* 6 */ +EXTERN void TkMacOSXInvalClipRgns (Tk_Window tkwin); +#endif +#ifndef TkMacOSXGetDrawablePort_TCL_DECLARED +#define TkMacOSXGetDrawablePort_TCL_DECLARED +/* 7 */ +EXTERN GWorldPtr TkMacOSXGetDrawablePort (Drawable drawable); +#endif +#ifndef TkMacOSXGetRootControl_TCL_DECLARED +#define TkMacOSXGetRootControl_TCL_DECLARED +/* 8 */ +EXTERN ControlRef TkMacOSXGetRootControl (Drawable drawable); +#endif +#ifndef Tk_MacOSXSetupTkNotifier_TCL_DECLARED +#define Tk_MacOSXSetupTkNotifier_TCL_DECLARED +/* 9 */ +EXTERN void Tk_MacOSXSetupTkNotifier (void); +#endif +#ifndef Tk_MacOSXIsAppInFront_TCL_DECLARED +#define Tk_MacOSXIsAppInFront_TCL_DECLARED +/* 10 */ +EXTERN int Tk_MacOSXIsAppInFront (void); +#endif +#endif /* MAC_OSX_TK */ + +typedef struct TkPlatStubs { + int magic; + struct TkPlatStubHooks *hooks; + +#ifdef __WIN32__ + Window (*tk_AttachHWND) (Tk_Window tkwin, HWND hwnd); /* 0 */ + HINSTANCE (*tk_GetHINSTANCE) (void); /* 1 */ + HWND (*tk_GetHWND) (Window window); /* 2 */ + Tk_Window (*tk_HWNDToWindow) (HWND hwnd); /* 3 */ + void (*tk_PointerEvent) (HWND hwnd, int x, int y); /* 4 */ + int (*tk_TranslateWinEvent) (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT * result); /* 5 */ +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK + void (*tk_MacOSXSetEmbedHandler) (Tk_MacOSXEmbedRegisterWinProc * registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc * getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc * containerExistProcPtr, Tk_MacOSXEmbedGetClipProc * getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc * getOffsetProc); /* 0 */ + void (*tk_MacOSXTurnOffMenus) (void); /* 1 */ + void (*tk_MacOSXTkOwnsCursor) (int tkOwnsIt); /* 2 */ + void (*tkMacOSXInitMenus) (Tcl_Interp * interp); /* 3 */ + void (*tkMacOSXInitAppleEvents) (Tcl_Interp * interp); /* 4 */ + void (*tkGenWMConfigureEvent) (Tk_Window tkwin, int x, int y, int width, int height, int flags); /* 5 */ + void (*tkMacOSXInvalClipRgns) (Tk_Window tkwin); /* 6 */ + GWorldPtr (*tkMacOSXGetDrawablePort) (Drawable drawable); /* 7 */ + ControlRef (*tkMacOSXGetRootControl) (Drawable drawable); /* 8 */ + void (*tk_MacOSXSetupTkNotifier) (void); /* 9 */ + int (*tk_MacOSXIsAppInFront) (void); /* 10 */ +#endif /* MAC_OSX_TK */ +} TkPlatStubs; + +#ifdef __cplusplus +extern "C" { +#endif +extern TkPlatStubs *tkPlatStubsPtr; +#ifdef __cplusplus +} +#endif + +#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) + +/* + * Inline function declarations: + */ + +#ifdef __WIN32__ +#ifndef Tk_AttachHWND +#define Tk_AttachHWND \ + (tkPlatStubsPtr->tk_AttachHWND) /* 0 */ +#endif +#ifndef Tk_GetHINSTANCE +#define Tk_GetHINSTANCE \ + (tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */ +#endif +#ifndef Tk_GetHWND +#define Tk_GetHWND \ + (tkPlatStubsPtr->tk_GetHWND) /* 2 */ +#endif +#ifndef Tk_HWNDToWindow +#define Tk_HWNDToWindow \ + (tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */ +#endif +#ifndef Tk_PointerEvent +#define Tk_PointerEvent \ + (tkPlatStubsPtr->tk_PointerEvent) /* 4 */ +#endif +#ifndef Tk_TranslateWinEvent +#define Tk_TranslateWinEvent \ + (tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */ +#endif +#endif /* __WIN32__ */ +#ifdef MAC_OSX_TK +#ifndef Tk_MacOSXSetEmbedHandler +#define Tk_MacOSXSetEmbedHandler \ + (tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */ +#endif +#ifndef Tk_MacOSXTurnOffMenus +#define Tk_MacOSXTurnOffMenus \ + (tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */ +#endif +#ifndef Tk_MacOSXTkOwnsCursor +#define Tk_MacOSXTkOwnsCursor \ + (tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */ +#endif +#ifndef TkMacOSXInitMenus +#define TkMacOSXInitMenus \ + (tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */ +#endif +#ifndef TkMacOSXInitAppleEvents +#define TkMacOSXInitAppleEvents \ + (tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */ +#endif +#ifndef TkGenWMConfigureEvent +#define TkGenWMConfigureEvent \ + (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */ +#endif +#ifndef TkMacOSXInvalClipRgns +#define TkMacOSXInvalClipRgns \ + (tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */ +#endif +#ifndef TkMacOSXGetDrawablePort +#define TkMacOSXGetDrawablePort \ + (tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */ +#endif +#ifndef TkMacOSXGetRootControl +#define TkMacOSXGetRootControl \ + (tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */ +#endif +#ifndef Tk_MacOSXSetupTkNotifier +#define Tk_MacOSXSetupTkNotifier \ + (tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */ +#endif +#ifndef Tk_MacOSXIsAppInFront +#define Tk_MacOSXIsAppInFront \ + (tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */ +#endif +#endif /* MAC_OSX_TK */ + +#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ + +/* !END!: Do not edit above this line. */ + +#undef TCL_STORAGE_CLASS +#define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TKPLATDECLS */ diff --git a/mingw/include/tommath_class.h b/mingw/include/tommath_class.h new file mode 100644 index 00000000..1aeba2f9 --- /dev/null +++ b/mingw/include/tommath_class.h @@ -0,0 +1,999 @@ +#if !(defined(LTM1) && defined(LTM2) && defined(LTM3)) +#if defined(LTM2) +#define LTM3 +#endif +#if defined(LTM1) +#define LTM2 +#endif +#define LTM1 + +#if defined(LTM_ALL) +#define BN_ERROR_C +#define BN_FAST_MP_INVMOD_C +#define BN_FAST_MP_MONTGOMERY_REDUCE_C +#define BN_FAST_S_MP_MUL_DIGS_C +#define BN_FAST_S_MP_MUL_HIGH_DIGS_C +#define BN_FAST_S_MP_SQR_C +#define BN_MP_2EXPT_C +#define BN_MP_ABS_C +#define BN_MP_ADD_C +#define BN_MP_ADD_D_C +#define BN_MP_ADDMOD_C +#define BN_MP_AND_C +#define BN_MP_CLAMP_C +#define BN_MP_CLEAR_C +#define BN_MP_CLEAR_MULTI_C +#define BN_MP_CMP_C +#define BN_MP_CMP_D_C +#define BN_MP_CMP_MAG_C +#define BN_MP_CNT_LSB_C +#define BN_MP_COPY_C +#define BN_MP_COUNT_BITS_C +#define BN_MP_DIV_C +#define BN_MP_DIV_2_C +#define BN_MP_DIV_2D_C +#define BN_MP_DIV_3_C +#define BN_MP_DIV_D_C +#define BN_MP_DR_IS_MODULUS_C +#define BN_MP_DR_REDUCE_C +#define BN_MP_DR_SETUP_C +#define BN_MP_EXCH_C +#define BN_MP_EXPT_D_C +#define BN_MP_EXPTMOD_C +#define BN_MP_EXPTMOD_FAST_C +#define BN_MP_EXTEUCLID_C +#define BN_MP_FREAD_C +#define BN_MP_FWRITE_C +#define BN_MP_GCD_C +#define BN_MP_GET_INT_C +#define BN_MP_GROW_C +#define BN_MP_INIT_C +#define BN_MP_INIT_COPY_C +#define BN_MP_INIT_MULTI_C +#define BN_MP_INIT_SET_C +#define BN_MP_INIT_SET_INT_C +#define BN_MP_INIT_SIZE_C +#define BN_MP_INVMOD_C +#define BN_MP_INVMOD_SLOW_C +#define BN_MP_IS_SQUARE_C +#define BN_MP_JACOBI_C +#define BN_MP_KARATSUBA_MUL_C +#define BN_MP_KARATSUBA_SQR_C +#define BN_MP_LCM_C +#define BN_MP_LSHD_C +#define BN_MP_MOD_C +#define BN_MP_MOD_2D_C +#define BN_MP_MOD_D_C +#define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C +#define BN_MP_MONTGOMERY_REDUCE_C +#define BN_MP_MONTGOMERY_SETUP_C +#define BN_MP_MUL_C +#define BN_MP_MUL_2_C +#define BN_MP_MUL_2D_C +#define BN_MP_MUL_D_C +#define BN_MP_MULMOD_C +#define BN_MP_N_ROOT_C +#define BN_MP_NEG_C +#define BN_MP_OR_C +#define BN_MP_PRIME_FERMAT_C +#define BN_MP_PRIME_IS_DIVISIBLE_C +#define BN_MP_PRIME_IS_PRIME_C +#define BN_MP_PRIME_MILLER_RABIN_C +#define BN_MP_PRIME_NEXT_PRIME_C +#define BN_MP_PRIME_RABIN_MILLER_TRIALS_C +#define BN_MP_PRIME_RANDOM_EX_C +#define BN_MP_RADIX_SIZE_C +#define BN_MP_RADIX_SMAP_C +#define BN_MP_RAND_C +#define BN_MP_READ_RADIX_C +#define BN_MP_READ_SIGNED_BIN_C +#define BN_MP_READ_UNSIGNED_BIN_C +#define BN_MP_REDUCE_C +#define BN_MP_REDUCE_2K_C +#define BN_MP_REDUCE_2K_L_C +#define BN_MP_REDUCE_2K_SETUP_C +#define BN_MP_REDUCE_2K_SETUP_L_C +#define BN_MP_REDUCE_IS_2K_C +#define BN_MP_REDUCE_IS_2K_L_C +#define BN_MP_REDUCE_SETUP_C +#define BN_MP_RSHD_C +#define BN_MP_SET_C +#define BN_MP_SET_INT_C +#define BN_MP_SHRINK_C +#define BN_MP_SIGNED_BIN_SIZE_C +#define BN_MP_SQR_C +#define BN_MP_SQRMOD_C +#define BN_MP_SQRT_C +#define BN_MP_SUB_C +#define BN_MP_SUB_D_C +#define BN_MP_SUBMOD_C +#define BN_MP_TO_SIGNED_BIN_C +#define BN_MP_TO_SIGNED_BIN_N_C +#define BN_MP_TO_UNSIGNED_BIN_C +#define BN_MP_TO_UNSIGNED_BIN_N_C +#define BN_MP_TOOM_MUL_C +#define BN_MP_TOOM_SQR_C +#define BN_MP_TORADIX_C +#define BN_MP_TORADIX_N_C +#define BN_MP_UNSIGNED_BIN_SIZE_C +#define BN_MP_XOR_C +#define BN_MP_ZERO_C +#define BN_PRIME_TAB_C +#define BN_REVERSE_C +#define BN_S_MP_ADD_C +#define BN_S_MP_EXPTMOD_C +#define BN_S_MP_MUL_DIGS_C +#define BN_S_MP_MUL_HIGH_DIGS_C +#define BN_S_MP_SQR_C +#define BN_S_MP_SUB_C +#define BNCORE_C +#endif + +#if defined(BN_ERROR_C) + #define BN_MP_ERROR_TO_STRING_C +#endif + +#if defined(BN_FAST_MP_INVMOD_C) + #define BN_MP_ISEVEN_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_COPY_C + #define BN_MP_MOD_C + #define BN_MP_SET_C + #define BN_MP_DIV_2_C + #define BN_MP_ISODD_C + #define BN_MP_SUB_C + #define BN_MP_CMP_C + #define BN_MP_ISZERO_C + #define BN_MP_CMP_D_C + #define BN_MP_ADD_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C) + #define BN_MP_GROW_C + #define BN_MP_RSHD_C + #define BN_MP_CLAMP_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_FAST_S_MP_MUL_DIGS_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_FAST_S_MP_SQR_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_2EXPT_C) + #define BN_MP_ZERO_C + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_ABS_C) + #define BN_MP_COPY_C +#endif + +#if defined(BN_MP_ADD_C) + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_ADD_D_C) + #define BN_MP_GROW_C + #define BN_MP_SUB_D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_ADDMOD_C) + #define BN_MP_INIT_C + #define BN_MP_ADD_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_AND_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_CLAMP_C) +#endif + +#if defined(BN_MP_CLEAR_C) +#endif + +#if defined(BN_MP_CLEAR_MULTI_C) + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_CMP_C) + #define BN_MP_CMP_MAG_C +#endif + +#if defined(BN_MP_CMP_D_C) +#endif + +#if defined(BN_MP_CMP_MAG_C) +#endif + +#if defined(BN_MP_CNT_LSB_C) + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_COPY_C) + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_COUNT_BITS_C) +#endif + +#if defined(BN_MP_DIV_C) + #define BN_MP_ISZERO_C + #define BN_MP_CMP_MAG_C + #define BN_MP_COPY_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_SET_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_ABS_C + #define BN_MP_MUL_2D_C + #define BN_MP_CMP_C + #define BN_MP_SUB_C + #define BN_MP_ADD_C + #define BN_MP_DIV_2D_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_INIT_C + #define BN_MP_INIT_COPY_C + #define BN_MP_LSHD_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_D_C + #define BN_MP_CLAMP_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DIV_2_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_DIV_2D_C) + #define BN_MP_COPY_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_C + #define BN_MP_MOD_2D_C + #define BN_MP_CLEAR_C + #define BN_MP_RSHD_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_DIV_3_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DIV_D_C) + #define BN_MP_ISZERO_C + #define BN_MP_COPY_C + #define BN_MP_DIV_2D_C + #define BN_MP_DIV_3_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_DR_IS_MODULUS_C) +#endif + +#if defined(BN_MP_DR_REDUCE_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_DR_SETUP_C) +#endif + +#if defined(BN_MP_EXCH_C) +#endif + +#if defined(BN_MP_EXPT_D_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_SET_C + #define BN_MP_SQR_C + #define BN_MP_CLEAR_C + #define BN_MP_MUL_C +#endif + +#if defined(BN_MP_EXPTMOD_C) + #define BN_MP_INIT_C + #define BN_MP_INVMOD_C + #define BN_MP_CLEAR_C + #define BN_MP_ABS_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_REDUCE_IS_2K_L_C + #define BN_S_MP_EXPTMOD_C + #define BN_MP_DR_IS_MODULUS_C + #define BN_MP_REDUCE_IS_2K_C + #define BN_MP_ISODD_C + #define BN_MP_EXPTMOD_FAST_C +#endif + +#if defined(BN_MP_EXPTMOD_FAST_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C + #define BN_MP_MONTGOMERY_SETUP_C + #define BN_FAST_MP_MONTGOMERY_REDUCE_C + #define BN_MP_MONTGOMERY_REDUCE_C + #define BN_MP_DR_SETUP_C + #define BN_MP_DR_REDUCE_C + #define BN_MP_REDUCE_2K_SETUP_C + #define BN_MP_REDUCE_2K_C + #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C + #define BN_MP_MULMOD_C + #define BN_MP_SET_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_SQR_C + #define BN_MP_MUL_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_EXTEUCLID_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_SET_C + #define BN_MP_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_C + #define BN_MP_MUL_C + #define BN_MP_SUB_C + #define BN_MP_NEG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_FREAD_C) + #define BN_MP_ZERO_C + #define BN_MP_S_RMAP_C + #define BN_MP_MUL_D_C + #define BN_MP_ADD_D_C + #define BN_MP_CMP_D_C +#endif + +#if defined(BN_MP_FWRITE_C) + #define BN_MP_RADIX_SIZE_C + #define BN_MP_TORADIX_C +#endif + +#if defined(BN_MP_GCD_C) + #define BN_MP_ISZERO_C + #define BN_MP_ABS_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_S_MP_SUB_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_GET_INT_C) +#endif + +#if defined(BN_MP_GROW_C) +#endif + +#if defined(BN_MP_INIT_C) +#endif + +#if defined(BN_MP_INIT_COPY_C) + #define BN_MP_COPY_C +#endif + +#if defined(BN_MP_INIT_MULTI_C) + #define BN_MP_ERR_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_INIT_SET_C) + #define BN_MP_INIT_C + #define BN_MP_SET_C +#endif + +#if defined(BN_MP_INIT_SET_INT_C) + #define BN_MP_INIT_C + #define BN_MP_SET_INT_C +#endif + +#if defined(BN_MP_INIT_SIZE_C) + #define BN_MP_INIT_C +#endif + +#if defined(BN_MP_INVMOD_C) + #define BN_MP_ISZERO_C + #define BN_MP_ISODD_C + #define BN_FAST_MP_INVMOD_C + #define BN_MP_INVMOD_SLOW_C +#endif + +#if defined(BN_MP_INVMOD_SLOW_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_ISEVEN_C + #define BN_MP_SET_C + #define BN_MP_DIV_2_C + #define BN_MP_ISODD_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_CMP_C + #define BN_MP_CMP_D_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_IS_SQUARE_C) + #define BN_MP_MOD_D_C + #define BN_MP_INIT_SET_INT_C + #define BN_MP_MOD_C + #define BN_MP_GET_INT_C + #define BN_MP_SQRT_C + #define BN_MP_SQR_C + #define BN_MP_CMP_MAG_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_JACOBI_C) + #define BN_MP_CMP_D_C + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_MOD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_KARATSUBA_MUL_C) + #define BN_MP_MUL_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_SUB_C + #define BN_MP_ADD_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_KARATSUBA_SQR_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_SQR_C + #define BN_MP_SUB_C + #define BN_S_MP_ADD_C + #define BN_MP_LSHD_C + #define BN_MP_ADD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_LCM_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_GCD_C + #define BN_MP_CMP_MAG_C + #define BN_MP_DIV_C + #define BN_MP_MUL_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_LSHD_C) + #define BN_MP_GROW_C + #define BN_MP_RSHD_C +#endif + +#if defined(BN_MP_MOD_C) + #define BN_MP_INIT_C + #define BN_MP_DIV_C + #define BN_MP_CLEAR_C + #define BN_MP_ADD_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_MP_MOD_2D_C) + #define BN_MP_ZERO_C + #define BN_MP_COPY_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MOD_D_C) + #define BN_MP_DIV_D_C +#endif + +#if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_2EXPT_C + #define BN_MP_SET_C + #define BN_MP_MUL_2_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_MONTGOMERY_REDUCE_C) + #define BN_FAST_MP_MONTGOMERY_REDUCE_C + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C + #define BN_MP_RSHD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_MONTGOMERY_SETUP_C) +#endif + +#if defined(BN_MP_MUL_C) + #define BN_MP_TOOM_MUL_C + #define BN_MP_KARATSUBA_MUL_C + #define BN_FAST_S_MP_MUL_DIGS_C + #define BN_S_MP_MUL_C + #define BN_S_MP_MUL_DIGS_C +#endif + +#if defined(BN_MP_MUL_2_C) + #define BN_MP_GROW_C +#endif + +#if defined(BN_MP_MUL_2D_C) + #define BN_MP_COPY_C + #define BN_MP_GROW_C + #define BN_MP_LSHD_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MUL_D_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_MULMOD_C) + #define BN_MP_INIT_C + #define BN_MP_MUL_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_N_ROOT_C) + #define BN_MP_INIT_C + #define BN_MP_SET_C + #define BN_MP_COPY_C + #define BN_MP_EXPT_D_C + #define BN_MP_MUL_C + #define BN_MP_SUB_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_C + #define BN_MP_CMP_C + #define BN_MP_SUB_D_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_NEG_C) + #define BN_MP_COPY_C + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_OR_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_FERMAT_C) + #define BN_MP_CMP_D_C + #define BN_MP_INIT_C + #define BN_MP_EXPTMOD_C + #define BN_MP_CMP_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_IS_DIVISIBLE_C) + #define BN_MP_MOD_D_C +#endif + +#if defined(BN_MP_PRIME_IS_PRIME_C) + #define BN_MP_CMP_D_C + #define BN_MP_PRIME_IS_DIVISIBLE_C + #define BN_MP_INIT_C + #define BN_MP_SET_C + #define BN_MP_PRIME_MILLER_RABIN_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_MILLER_RABIN_C) + #define BN_MP_CMP_D_C + #define BN_MP_INIT_COPY_C + #define BN_MP_SUB_D_C + #define BN_MP_CNT_LSB_C + #define BN_MP_DIV_2D_C + #define BN_MP_EXPTMOD_C + #define BN_MP_CMP_C + #define BN_MP_SQRMOD_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_NEXT_PRIME_C) + #define BN_MP_CMP_D_C + #define BN_MP_SET_C + #define BN_MP_SUB_D_C + #define BN_MP_ISEVEN_C + #define BN_MP_MOD_D_C + #define BN_MP_INIT_C + #define BN_MP_ADD_D_C + #define BN_MP_PRIME_MILLER_RABIN_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C) +#endif + +#if defined(BN_MP_PRIME_RANDOM_EX_C) + #define BN_MP_READ_UNSIGNED_BIN_C + #define BN_MP_PRIME_IS_PRIME_C + #define BN_MP_SUB_D_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_D_C +#endif + +#if defined(BN_MP_RADIX_SIZE_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_RADIX_SMAP_C) + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_RAND_C) + #define BN_MP_ZERO_C + #define BN_MP_ADD_D_C + #define BN_MP_LSHD_C +#endif + +#if defined(BN_MP_READ_RADIX_C) + #define BN_MP_ZERO_C + #define BN_MP_S_RMAP_C + #define BN_MP_RADIX_SMAP_C + #define BN_MP_MUL_D_C + #define BN_MP_ADD_D_C + #define BN_MP_ISZERO_C +#endif + +#if defined(BN_MP_READ_SIGNED_BIN_C) + #define BN_MP_READ_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_READ_UNSIGNED_BIN_C) + #define BN_MP_GROW_C + #define BN_MP_ZERO_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_REDUCE_C) + #define BN_MP_REDUCE_SETUP_C + #define BN_MP_INIT_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_C + #define BN_S_MP_MUL_HIGH_DIGS_C + #define BN_FAST_S_MP_MUL_HIGH_DIGS_C + #define BN_MP_MOD_2D_C + #define BN_S_MP_MUL_DIGS_C + #define BN_MP_SUB_C + #define BN_MP_CMP_D_C + #define BN_MP_SET_C + #define BN_MP_LSHD_C + #define BN_MP_ADD_C + #define BN_MP_CMP_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_DIV_2D_C + #define BN_MP_MUL_D_C + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_L_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_DIV_2D_C + #define BN_MP_MUL_C + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_2K_SETUP_C) + #define BN_MP_INIT_C + #define BN_MP_COUNT_BITS_C + #define BN_MP_2EXPT_C + #define BN_MP_CLEAR_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_REDUCE_2K_SETUP_L_C) + #define BN_MP_INIT_C + #define BN_MP_2EXPT_C + #define BN_MP_COUNT_BITS_C + #define BN_S_MP_SUB_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_REDUCE_IS_2K_C) + #define BN_MP_REDUCE_2K_C + #define BN_MP_COUNT_BITS_C +#endif + +#if defined(BN_MP_REDUCE_IS_2K_L_C) +#endif + +#if defined(BN_MP_REDUCE_SETUP_C) + #define BN_MP_2EXPT_C + #define BN_MP_DIV_C +#endif + +#if defined(BN_MP_RSHD_C) + #define BN_MP_ZERO_C +#endif + +#if defined(BN_MP_SET_C) + #define BN_MP_ZERO_C +#endif + +#if defined(BN_MP_SET_INT_C) + #define BN_MP_ZERO_C + #define BN_MP_MUL_2D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_SHRINK_C) +#endif + +#if defined(BN_MP_SIGNED_BIN_SIZE_C) + #define BN_MP_UNSIGNED_BIN_SIZE_C +#endif + +#if defined(BN_MP_SQR_C) + #define BN_MP_TOOM_SQR_C + #define BN_MP_KARATSUBA_SQR_C + #define BN_FAST_S_MP_SQR_C + #define BN_S_MP_SQR_C +#endif + +#if defined(BN_MP_SQRMOD_C) + #define BN_MP_INIT_C + #define BN_MP_SQR_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_SQRT_C) + #define BN_MP_N_ROOT_C + #define BN_MP_ISZERO_C + #define BN_MP_ZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_DIV_C + #define BN_MP_ADD_C + #define BN_MP_DIV_2_C + #define BN_MP_CMP_MAG_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_SUB_C) + #define BN_S_MP_ADD_C + #define BN_MP_CMP_MAG_C + #define BN_S_MP_SUB_C +#endif + +#if defined(BN_MP_SUB_D_C) + #define BN_MP_GROW_C + #define BN_MP_ADD_D_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_MP_SUBMOD_C) + #define BN_MP_INIT_C + #define BN_MP_SUB_C + #define BN_MP_CLEAR_C + #define BN_MP_MOD_C +#endif + +#if defined(BN_MP_TO_SIGNED_BIN_C) + #define BN_MP_TO_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_TO_SIGNED_BIN_N_C) + #define BN_MP_SIGNED_BIN_SIZE_C + #define BN_MP_TO_SIGNED_BIN_C +#endif + +#if defined(BN_MP_TO_UNSIGNED_BIN_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_ISZERO_C + #define BN_MP_DIV_2D_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_TO_UNSIGNED_BIN_N_C) + #define BN_MP_UNSIGNED_BIN_SIZE_C + #define BN_MP_TO_UNSIGNED_BIN_C +#endif + +#if defined(BN_MP_TOOM_MUL_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_2D_C + #define BN_MP_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_MUL_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2D_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_3_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_TOOM_SQR_C) + #define BN_MP_INIT_MULTI_C + #define BN_MP_MOD_2D_C + #define BN_MP_COPY_C + #define BN_MP_RSHD_C + #define BN_MP_SQR_C + #define BN_MP_MUL_2_C + #define BN_MP_ADD_C + #define BN_MP_SUB_C + #define BN_MP_DIV_2_C + #define BN_MP_MUL_2D_C + #define BN_MP_MUL_D_C + #define BN_MP_DIV_3_C + #define BN_MP_LSHD_C + #define BN_MP_CLEAR_MULTI_C +#endif + +#if defined(BN_MP_TORADIX_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_TORADIX_N_C) + #define BN_MP_ISZERO_C + #define BN_MP_INIT_COPY_C + #define BN_MP_DIV_D_C + #define BN_MP_CLEAR_C + #define BN_MP_S_RMAP_C +#endif + +#if defined(BN_MP_UNSIGNED_BIN_SIZE_C) + #define BN_MP_COUNT_BITS_C +#endif + +#if defined(BN_MP_XOR_C) + #define BN_MP_INIT_COPY_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_MP_ZERO_C) +#endif + +#if defined(BN_PRIME_TAB_C) +#endif + +#if defined(BN_REVERSE_C) +#endif + +#if defined(BN_S_MP_ADD_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BN_S_MP_EXPTMOD_C) + #define BN_MP_COUNT_BITS_C + #define BN_MP_INIT_C + #define BN_MP_CLEAR_C + #define BN_MP_REDUCE_SETUP_C + #define BN_MP_REDUCE_C + #define BN_MP_REDUCE_2K_SETUP_L_C + #define BN_MP_REDUCE_2K_L_C + #define BN_MP_MOD_C + #define BN_MP_COPY_C + #define BN_MP_SQR_C + #define BN_MP_MUL_C + #define BN_MP_SET_C + #define BN_MP_EXCH_C +#endif + +#if defined(BN_S_MP_MUL_DIGS_C) + #define BN_FAST_S_MP_MUL_DIGS_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_MUL_HIGH_DIGS_C) + #define BN_FAST_S_MP_MUL_HIGH_DIGS_C + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_SQR_C) + #define BN_MP_INIT_SIZE_C + #define BN_MP_CLAMP_C + #define BN_MP_EXCH_C + #define BN_MP_CLEAR_C +#endif + +#if defined(BN_S_MP_SUB_C) + #define BN_MP_GROW_C + #define BN_MP_CLAMP_C +#endif + +#if defined(BNCORE_C) +#endif + +#ifdef LTM3 +#define LTM_LAST +#endif +#include +#include +#else +#define LTM_LAST +#endif + +/* $Source: /cvsroot/tcl/libtommath/tommath_class.h,v $ */ +/* $Revision: 1.3 $ */ +/* $Date: 2006/12/01 19:45:39 $ */ diff --git a/mingw/include/tommath_superclass.h b/mingw/include/tommath_superclass.h new file mode 100644 index 00000000..ee046b00 --- /dev/null +++ b/mingw/include/tommath_superclass.h @@ -0,0 +1,76 @@ +/* super class file for PK algos */ + +/* default ... include all MPI */ +#define LTM_ALL + +/* RSA only (does not support DH/DSA/ECC) */ +/* #define SC_RSA_1 */ + +/* For reference.... On an Athlon64 optimizing for speed... + + LTM's mpi.o with all functions [striped] is 142KiB in size. + +*/ + +/* Works for RSA only, mpi.o is 68KiB */ +#ifdef SC_RSA_1 + #define BN_MP_SHRINK_C + #define BN_MP_LCM_C + #define BN_MP_PRIME_RANDOM_EX_C + #define BN_MP_INVMOD_C + #define BN_MP_GCD_C + #define BN_MP_MOD_C + #define BN_MP_MULMOD_C + #define BN_MP_ADDMOD_C + #define BN_MP_EXPTMOD_C + #define BN_MP_SET_INT_C + #define BN_MP_INIT_MULTI_C + #define BN_MP_CLEAR_MULTI_C + #define BN_MP_UNSIGNED_BIN_SIZE_C + #define BN_MP_TO_UNSIGNED_BIN_C + #define BN_MP_MOD_D_C + #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C + #define BN_REVERSE_C + #define BN_PRIME_TAB_C + + /* other modifiers */ + #define BN_MP_DIV_SMALL /* Slower division, not critical */ + + /* here we are on the last pass so we turn things off. The functions classes are still there + * but we remove them specifically from the build. This also invokes tweaks in functions + * like removing support for even moduli, etc... + */ +#ifdef LTM_LAST + #undef BN_MP_TOOM_MUL_C + #undef BN_MP_TOOM_SQR_C + #undef BN_MP_KARATSUBA_MUL_C + #undef BN_MP_KARATSUBA_SQR_C + #undef BN_MP_REDUCE_C + #undef BN_MP_REDUCE_SETUP_C + #undef BN_MP_DR_IS_MODULUS_C + #undef BN_MP_DR_SETUP_C + #undef BN_MP_DR_REDUCE_C + #undef BN_MP_REDUCE_IS_2K_C + #undef BN_MP_REDUCE_2K_SETUP_C + #undef BN_MP_REDUCE_2K_C + #undef BN_S_MP_EXPTMOD_C + #undef BN_MP_DIV_3_C + #undef BN_S_MP_MUL_HIGH_DIGS_C + #undef BN_FAST_S_MP_MUL_HIGH_DIGS_C + #undef BN_FAST_MP_INVMOD_C + + /* To safely undefine these you have to make sure your RSA key won't exceed the Comba threshold + * which is roughly 255 digits [7140 bits for 32-bit machines, 15300 bits for 64-bit machines] + * which means roughly speaking you can handle upto 2536-bit RSA keys with these defined without + * trouble. + */ + #undef BN_S_MP_MUL_DIGS_C + #undef BN_S_MP_SQR_C + #undef BN_MP_MONTGOMERY_REDUCE_C +#endif + +#endif + +/* $Source: /cvsroot/tcl/libtommath/tommath_superclass.h,v $ */ +/* $Revision: 1.3 $ */ +/* $Date: 2005/09/26 18:27:14 $ */ diff --git a/mingw/lib/dde1.2/pkgIndex.tcl b/mingw/lib/dde1.2/pkgIndex.tcl deleted file mode 100644 index f993012b..00000000 --- a/mingw/lib/dde1.2/pkgIndex.tcl +++ /dev/null @@ -1,7 +0,0 @@ -if {![package vsatisfies [package provide Tcl] 8]} {return} -if {[string compare $::tcl_platform(platform) windows]} {return} -if {[info exists ::tcl_platform(debug)]} { - package ifneeded dde 1.2.4 [list load [file join $dir tcldde12g.dll] dde] -} else { - package ifneeded dde 1.2.4 [list load [file join $dir tcldde12.dll] dde] -} diff --git a/mingw/lib/dde1.2/tcldde12.dll b/mingw/lib/dde1.2/tcldde12.dll deleted file mode 100644 index 3fda2b71d083ad2bacc9b34ed650f6204dc84b01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 34524 zcwX&&4SZD9weOzE00RupXoF&nI^rNuAUkrim?DMEvU9wf5d;&N;IK z(cJ#Leec)v<7CcWXYKu8YwfkyUi*A;%U60y79m6jdn!dpA7Pt|jJ|cke$mytFCsf9 zzI;ue#{Kd&wJTe~=1^O3MO#Cwxv3!#2u93}K66`pz}ylrSKd}*ZVh^Uxl^W0vhX&l zs|ayxCXhR}FIzws5i+19bjL-!M1w%m+Nha zG_Yf)JKDmb<^ytnZX06^VH?%3kB7ZL;B)0RhQqXgMyn?yZk^bkkF`f_1h%5MPBotk z+iPKb)P_)z;?5KJKt7*8*u-rKHl?~&3Vb(`e{P@awk-DM?O(3x8aBkgZs+e2m+|b{>KXPY$D!7rU`)H&pex(VH zhNko?x2_>w@vCi@$FsWoBY#Z|GHyx?5A{T@Be85tV)^xi*p9~NsR1303<(F&x>M~Y zsrmK=wzHJ~bdT@MonQ6bwckLn4E&uE|5nP{AMp=R)wZHIi912^#Q(jHkmPl#RH~N= z*|VDT?45~BpF%!cD)H=>K>aeMd>eq03_^>Er{HLS7=UQ&PkMmT^DJ`k_LuEOyx5yv z!_#(Q{dko=Rtq+DTXZpI4|ko@T;6|xRa>?z&A(gXcU!Oy<)4E52Nd>&{<|xA zJ3#SrjqNB@MTmHv#oPy>z!a;5x;d7_w?Xpm{@pn6+x1-sr^N>EJkSd#Z2iDtqJIs2 zJFcb`^nE&BbBiCONcFCRYM{Fd3VnKX5&6^+9X)mW3Sy!Z+hNo$)!PA8pn2NTZoRTO z6ff25hI$~zow5C~!2`WLJFi3iYiR4Jg2Ze)!EqT<+@*uA8n*}4*iub9+!$Sl1uH9T z=(ip1K4E-xfA?VfIBfp_7p@Ph(0W_V*lxc<2b7f(^nDjel49d%^VzeZ1~v}v54xpK z)maR*Yk=j_*(kF~LaV0D?;_-Kw3A`CH5=G@FD5>mMR`%|o4{La{acYeS%#jonk=LG zvmt3ak(MwXv6$6nSfq;$bRPyaZT-dX#9lT&+CTIKs2}@fd?J#;2*vN95%#wacOQ=E zyH7-HaZM~Mz5xA*X^%U^ zRz{N^-FxU4wzDV^SGJms|7mE?tFOb3$Uz4JSgW#+PR&sCQSqO#XJ`j6*L}T?2iWKF zZ{KhhQ&=3g_sqavdmjeUF3JQ0FkYckvD}I*mGA3-XF>dm;y-un7|^|s&4M^*HR6tm3pJR$Ys;in04DEgfV|q{kN+ zBmrz^X~a$SZb!$ASf)V)t+Ql9XBcApB@8z7D85V93;_RjZQ4O-Yg`E!o=hui(hq(K z%`zG3%%iuZAaHhASb&B`4qrPa(_pK3b~kmNS`ZJ+L`}oQ>tLaO6>FV4=g{RecdDR$ zQazoTCVDgCTmi%6j~q#gG1viUo#gAEFfDBTKj;2DLQkVTrjJb(KQk`vXn+y5_~CSw z7E@6JCv7J2t!q$=NIuozEwLMtH6McTX{9=e6f(+y&ZSIF!UzkNq3YV+rmCetEIrIe zahD>L4eDqpvqEIuZ;Vd(8*N(htK^elCkS%5UgA?&Hios>i*YRvz_EZnHa_-MUCf?* z7%F3go?v`<=10(uQz>FH8%W(pjZqp*$H%k~*HuA%A2#Ml&y=j63O`Pzm*E7&`>3WK9iXDg@kMmX; zN}RPCXHBj>h;r;VkvQ2mlwzZaHKR|QyBeD?e98u(mhrj4Jwq%f$ax`weLD?0OqX~b z8jAhG_?$}*Q&Texid&mYD=j&Zg*c303Zzca_lGR%Idt$mb~Tg!(?J`btD1z(PQYfT zwLi(bo&{2xRrf$r&r<~uXm^Ux(4+?}9J@K#VPB*MGxX7rw zb~o;oy1o>5ws<9*q+hyv%de&&{7?d~S*Ug_EX<`=K>Me7=E>#gmMa&ebUWoU7;zLWfz`!8!Z&QXO|^5I^3qNBxJ6}MF&9Fxk>jxWhLhd3OQ%ZMmzN7YNzUc2j-$O|j^JlYLBZ8^kqBe>FXyns=eBc*V4Fu;uXi#A2K`(u4nt8oS2<#_n0q5Zn|&pMfwSw;z2L=G&ePjJuX{8#1^tfpS~C5W3ww z{WqkC*0C?LzzBwCv)gMi63aMZK#Z(Zj!J)V^Dn?FVVU$HpF#^!oDHl-v?2lh{T zXq}Isj`5rQ6X0ZmS4if5jJk|BMr*O1X-hfzGDQUkR&XsgYk&PjqC7#zle5`KXwlM!8Lmjk9*d962C*&Uo4{d`xknl9yC%oxxOR4!1#&mT|@RJ{7j2j;bxNdwlY8n9Pfmd+RPYB8lvxQva1 zI*YUWgfTjKA|0N%oMx9-FfoJim#TIv!VR<>$#5om!Ds%s0gv(O8UWLFg4QHze1cN#@eu~xvdyCaYU2qOA zU#XQ54|>L+hzp4m+1Q{Jkd7d!jxLybuOg_C&M4oaM(%G;V@%@gvg91yHl|P#_l>DZQ*>m%fn00m%B** z9vX`A#EYKXqvr~;G|YAsR_d`AW5`kKeyi>Zu; zzTPj;0Av#HC0Tk2 z1dKCAAI9Oj3v6&Q7 z*yMYl8~4q`x8LE}O47^{37T0LyMym@dOC$kjz7Z~P!VJIH!>MkCg1$)1s!p5RNzKhrt3=Q#VSZ(^Jndzx7LMrzF zn9=xLKc2Br4Ry(BAErBGq@esH56a1>-l2Tb%<;pESoOmnq+2}7NxuOS#zRQCqs{!H z;vX^eXT`M1`#;2Vn&q`Hl9F@Z1!fklyAMb5`(9W|JHkzu@rJ$wOVuH=mZie7q-ISz z*6l-q_ncfxO|J}icmb_WSP#1)(EtfgogN|4xP1ysGzQ=#CTx8e=5nO!bFdq0^iuS! zq$3xJ^m&1o+1iVZnxEsXFPvDa-Sp;JB*t>pO1?VdE#gfuOp#(Zu}W!@hTWs8EM_qx zQqa|52?4+)##|{+4fIM9&xF!($iTyiEcePRnqO7QxGS@G)PL$-yzz=@A9`V*wVk#! zt&jUKMDE9I@n3hnG6PGJOp=v2QZPM8xFA_tLH;Tfi@AcnE_H&bYFnGVbY9{$pUu zP9V-5CAvL0HY%(k~}sZ{SNHu81SB7rX@c%c9GWEOPf*;Jk(^crQ)EFVWL zVxVLFMX;%`2)m7Hko4y+FScup(yQ26c&i}G`0%QamBR(YV{$o==>1WA077-;lwCGW zzI={*U>yyy%m<(6oFh0QbwNK&R~^hmI7#oA$UV^5J?W!#7w*F<3Cj?jAVSI0a==R% zhm@V0{}Vx8x(~yFXHVG*Ed4nVm*fbO)wAv*a#ItWKs< z$vcGmXvyIZ&ojo;zP~$*sWX!M8@unot3I?(m_|LyOm}SR(*dHr-~hpP9WKBTyjNo$K<*}e7S*#3xdKvP|VH>d{YuXq-q?Q_DF97@D$gDUvU#;7U4RjxE&%rC_TUXN7VpF~FyR{yr zJcKv6;#ztpexq)ym;UO9{*Zp&ijAK)@%c0U{1qltE*CL%6_LngDN}q37UD~EJ@a*2 z@etsWho$Rtz+Z#eaQ!@}a4r>@4c>kr@`c!0e!Vx9{TQBF+W(|_ zf{@!)=7m#aXp$?Q(~XC)#yc~#PyM_ZYd?NvsGgqBr%3GL^Aw~ZsD*-Fgz-tlyBYA7 zXX0fuyrY1peEJOZ-xaC_yS+J-&BOq`_t!RS+>n~f~O{_sm`_FX&b%|)FZ zU)nam{mjH)Lg~JDyGoty6Jp2XcYS>Lz^j_zfuY~1ufMbBBi9aNA{d{7vg6ZK{29ap163R6!?vXtubj7U9H`oa#eu5L z_!Fz@+p+;p3{*YAsM{EI@0N{}x}8yXFlzsnO_aKm6%TINj80s2Xv-7y_sEuQ^mlN} zcKUnF_}sW1aMT>DIu280YHAVKiP}&Ho!earW8T~6_8V-?{xgpwiQEZ8#P!N)QV#ID3{@2Svj-9dl#TL?frh%%8E;-{>1~#|S+-}QC1nkGlD~YF}va*a1 zhbLmn7E?27;dC!vPNQ3DMtw#(lu=%jQTAq(J2J|h8Rck3*`HC4WR$mMln-W<`!mWL zGs;IY%1>mJ4`q}GGs?#@%4aglCo{^4jPmJ>^4^T{j*Rm5jPmA;^3II%ri}82jPh_s zxi_QyT1NR)M)`O~xi6!qau$6mR>WAe}K zA8H$h?DhR>yr@e|x+TP9fPLx`)?Z)bzt`~J+3-7WiS!l?+d}iyW!$8G{%3#x<8MW| zR^s*gh%MKi>mapF{;JgteqyPua94eKzS~l@ysBbZZIxwdRn0PYE%CLr1=}iuz)z2E z3N#0?wz(pc3(I`@O(>?FHC%BgSidi`vOg5ZevTJq3u4&H0CCMi!Ts?pN4Qa zlX!1Sz#F`mNaAtHdGlsqZ1o+y%e zMCOLJ6=4z#MOuOZB5PL zbEY}CK(wZL`gD->4GS?{I)j+3urGvt4eVZ^eSbDA8(}w1hnRUiF>RYkOzUQ_I7r`s zRC#?6ltszI?V(Vx4Spl-jp4bzKtm%870@)|3xuKX!nx>8WUl+B8y8ko+@5EjTeWDe zeQwRo?wjW>tX;Hp?kzXnx)8{Kac`d86JFT>+J+)+bLWLy?)RC?%FOs1Y@P)?o~lKj znnm-MR#na>Gr}b^+DrJzG=tOn+R#` z0Lom3G8bTSn+RFxi_DJ%Td||&n`bq^;T&^#j)WVYJ==Uunc12dVg9-Oqi^)xTiEO& z_FAa4&w}zC*sZV+UJS7+gj|s(KZJanJ=g2^lS;48b5o!ta)H+Wx&0$=D?8=mb5TMd zn&K5FB^H zz8>}suy2BW8|*t_-wXR8*pDgrPr~sT*bQBTH&|Mg|<~Kr$77Wz3H3Y&9O*DJ@ zDy26;b`q|{oTDDg6*RR|vXMqg4+a9hCK~v>v`k^J-XfZ*0^KLmYe4_N3U-FtWCfn9 zYza5LBf2q%CRpwcW=+kg)@4%K{CuB?$RCqqU@41X?$#^ffcXR<{M4D8|D;1M3Ix zV{~$aR0Y~wSs@JPYc(J!E4qUWjy$NjDa_f)E1K$HIC2XBH>^OZf2Uc>bGr)6xM>G| zsHyP@2=^S}qT($JpDt8{6#bC<@T5EW9Q(J^lW_5nLU0KK3 z`T6Y2YO0pXlK(e16Mk=lkP7Q9)_bh$tv|57Y<uF1P3?~1%xc?EgP@_c#Gysddp=e?gd z*|FTw?6@TV?)+%}hWw}VpU?ko{yhaR6}(z-wqS4JiNf~^XB6cZ)fIiW=&7Q^MQ4jl z#regni+@!7Lh*^>kBV(2i%Y&$vb*HZCD)Wzme!QEmUfhGD1Ey0Na^dPsnScG*E@e$ z_Q$fUd3p0{=6UC>ou@CKT5c;ZFJDxCclrJ0(eg*i6S(j(L%f5Z+18t_HP&|P_pMJ` z_gQ~s{jzPf?FE~`eyx3pJ!FsCH{1K|^YcE;%Xh4F-0%2?<4MPF9q&4>%`eHX&3_>O zc>W*qKgqwmAirQi!94|!fDQ`_dkalPWkoj@Z7TY=qW@h~S$uc#{l(uZ{z37Ni{B{z zOY!8A8%pjdX)IY)@-HR5B~O<8rsVCC%Sz{$-T`_%Ug~t-?R?nzxO12D*UmpVKX7K3 z%_&=0_Vu#I%U&vbqwH*1)x7=lQuB=E-za~m{K@kE@#erswij)`v%PIQYrEF|ReR9>G-&g_{i-~7UTa>K<4ca)p&!2K*y4EJ z@oUGM4sHId{2TKZ=Lhq@lmAry-h55L%!2X)Z^7n*pBDVO;B>(!1>*`Q6<$_&b>YIo z+Cop^n!@iCK34d2;jY5p7QRvVc41c0l%lJOW`piuDXK4OE80?YylA-SouX7xZt;R* zPjP#3y!cFLBQ@pqMaPg#)OG~aOnORa$QeLvKxD{T9sf;WpE;SD2Gn&N?p5NG{*4Q~f>0hS2#rYX{Qad1PJEX{vt@H-01 zP5LGdZd%Gigf0D@8^X~wW|4>MK8;AagW|9}Z*EpApHDE~Ilu0b%!~)ICK7g};Q0(P zn~5az2s~V7l!?g<>oJ(~V0KmsU8QV?QkD|=BSVbhg?;b>dU;Uh#lHJos#=&<^=ery zM!BD`PY%gE4$R9DB2sHZOCTd6wP1hE99=KQgIETU=QHSq7e7WDm3I(H z<`qp%BgovYQM5xsx$I(@izvPB0pM|6Krh@L#dahfh@u|EB7-wCebtrL{jc!%VpSWW z?kJTSP}F^dKIOWjrcC!x*w^k2&ZS@ck`1s8^_n$$e=#1!!r3EB&BJBJXfs-Wb&}Eh z>)S+<8L0a#cN<5TujaL4^ z8lyP03JEEtT$}z-9;dj0vRuV;I~d=$!&OP6(eJ-65cN2fCiL|J`k;WW6D&VVKpz|vdar5dr=5n9w%~=qCmAYymwapp&^{L4QI(PYCEa0(!52ZW{d2rG`>F`;i0(1!(dvoPK_i}U-K(A@%huYi6~(EX&K`;IZ8Zxqm96VOe9?)BpQ zJ|^_d0{STdeVTwC73cRcp>Gh-j|=Dq0liwB-^YX=5zzYt^kI^TzEd7?d>!{&&FJe~ z*?**UuENKpJVDYzLxk<`yw zfWAgRFA~trV?s{|=uQDWB%o&t=+-fzpAyiE1a!ZEt{2c++5G7lf` z*IZz{OYu-{M~a6EEGdV~{oG;#zC1K)JhYA;6C7T00UmCj8$Lxm{2X<6bdpi^%6E^h zd*M0Be>77>96tAt-SJOlwDf(KhR~RDaW<={s6NWqrAg@Xo(*JyFXWI$HN}(=l9XfoX40Y-#ccM ztAHY1Yho08maHkG+>#|{AdIp?;q;8M8YpK}JP&8dSuUeI4ixEnFQYsIl%jMk4}Xc_ zv`Xe*WXV?oxiwHz71o<5kBQL#dy!H829$nPt&6EMniV|P>zI}@Wud}h8RZV093dIS zC-B@WP#)B==T2k^9|y`N73JqT_FnbN^Ht;I zYiNvO8%KW>eOf+FUVAbMt|>RDu<+W3+7G`6lztTt<~3@|9|20e3jOtQY<$V+e+9}B zRXYYa^r|Rd94}uLVU!!jlk~3Tw&)LMl~y&72_Thm10B zLT2yO0p&GSt$Tp7Q$=}bf*k93p8}JqEzeUyF!ezN>9=o%EMlBV)ry9dA_EX zuXr%ZqpDiC{a7!r5Ej0Tic7p4as3Ibd0@VW1pW@npf|Q?H_23Y6_C%3Pp4 zp`t9F$PQ)y`6^OW@`NVJSFIVPYodJTh*7=^ltZeP@w;~&D$2fz%6JITIN;?Yg`|02 z1)j~SS_z=^r~BO_y-cRE{Cg9Xa}#b^lL(2V+wt(%&P=LWmjI7T)fd;&hk#8AYd95; z1vAR6lh~M$dFp@?RmpreP(muo8lZH_@~~Iu`11ggJl_PKjjCFYp@b^Re*guqyvd&M zpMr$H2g)f`t<#fOmMho7W#X`k=L(>#QBh`2X10+vE$53%nNmHO#b~*f7bx{AtA1^= zoKb7jZyD}TjpZKT=~Q{t;~YzF`QHWfR|LviK-rN@A28 zpq$ny(My10R`D!0WJbtVph%e~qjVYM>rsrd!9da*qdWnWV=Anl8`zV$jPiRZc`E(> zTN+vd6-#StA`NYk_K?eFhd9*I7LG`7Y~64G(@H0>97T3B%H(Weql|`e=m5 z>uYXk_eVVK(6J$3Q-n#P=2_v35bwQqPq6WB;PAAzL-(W6kOaL3CIcVvG&gxx`R+q| zL4nfq#HJLljlww}f0Gvu(_TasB_8F=pR`*?c+=BmFT$!zm)%->(=An=>YA!$mA848 zR=IDh@VIZPsfEbz@wBvtJf4i#VqFeQqF~hogBKi~@_8z2Z(EvCO?p|`lksY-%Wf4_ zi}>1FTLLgNq}mzp8@n7-+K4}_K&6c8msP1}C_ETF*W+(#WG|R{8o)|;O@Y@kxr(n~9BpvvUfYsJXa8=cjv7cnO=v1K2D??r>kh8@9K)UP))kzhqF>v4Y3By90DbK21ta^I?3D^)J6c#E5f zAaxO_A5!M}V$Ozar0s zmTF2p4ub}~DHv9{k<_7*)6@3B9XyQz~n0gIsM$sB9Mn5D3Ws5v_+^hO#?^}z$~^3(&GB+Ls94$i3@XG)baOpz8wEhBS& z!SR)!Cs4S(;;R(09pw)+sLVUEJ@MM#NS>z*g(JlLkw&-#B+fqc3}2~8Avt3ZrKMC2 zKc#vj%z4t+HAc`{6>gLh0_&!TA{fY%gK{#(JXwNat8MuluALOoQVvKN9;lvA)KjoJ ziNTpxHLWNk1o*^A(eV6(iC&D949#MZ($@Z9gV)#QY4$g)2s45_8!0B15eGYMU#XX9 z04YkX^0ftgem=#q$T{*n%+85&Dx;1%r1O_XnKe{t1*>$v1njc}Lup1+X_7XNFd!wr QQuX3UbFq3n3L)pe04xe}8~^|S diff --git a/mingw/lib/dde1.3/pkgIndex.tcl b/mingw/lib/dde1.3/pkgIndex.tcl new file mode 100644 index 00000000..3125ada4 --- /dev/null +++ b/mingw/lib/dde1.3/pkgIndex.tcl @@ -0,0 +1,7 @@ +if {![package vsatisfies [package provide Tcl] 8]} {return} +if {[string compare $::tcl_platform(platform) windows]} {return} +if {[info exists ::tcl_platform(debug)]} { + package ifneeded dde 1.3.2 [list load [file join $dir tcldde13g.dll] dde] +} else { + package ifneeded dde 1.3.2 [list load [file join $dir tcldde13.dll] dde] +} diff --git a/mingw/lib/dde1.3/tcldde13.dll b/mingw/lib/dde1.3/tcldde13.dll new file mode 100644 index 0000000000000000000000000000000000000000..00e30621f4341a4e82287f18af632d266bdf172f GIT binary patch literal 37328 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 diff --git a/mingw/lib/libtcl85.a b/mingw/lib/libtcl85.a new file mode 100644 index 0000000000000000000000000000000000000000..24b58667e2d92b6448f5eedcbb99772cbb6885df GIT binary patch literal 501884 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 F{{!Kau~Gm4 literal 0 HcwPel00001 diff --git a/mingw/lib/libtcldde12.a b/mingw/lib/libtcldde12.a deleted file mode 100644 index ea3b8110b64f0b2d6fa7549ef983341e99cc4b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1412 zcwUWEyH3L}6g^2=iYkOUFdzmLq_UwjP1BSCF|i==4{m58HBws;%D_i3bYNm)=)h-m z;v*0P0|NsCAAkh5V>iwVdZp{w*QfHi=h!_s@oz@s(`LuaM%Q-Tp4T4?2BvBAiaMI+ zu_uwkCV(2v2S9rPj7ydz9!-KE>^dZvOh`2Iry&R#hklUR0XYjoaz2YSlH0I(p&4MY5Y&J=tSInfzwJTZB?AH7OIJUq; diff --git a/mingw/lib/libtclreg11.a b/mingw/lib/libtclreg11.a deleted file mode 100644 index e5c6aab9ee3c2c48ea6ad3b3aa7075a9348afa5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1436 zcwUWEJx;?g7=3A4iXsLiIxwLifz$z|Nt&i0RqRMiTp*2_sEw2sR5HLF7&>qOh7KH~ z6Q^KcU|?Y224Fijb^f5A^x4kmC;9ok&p90U^U>s7>*(3AOvmZEz5c1G>n5wnqpqL1 z0y)$G)JZM@0Qs zTrn_d*v56|Z*H#Ru-SG6%b|9us6a}NkpvnrqQFo5BL_Ta{Q-qoaa>QvEvj*SQP?H< zSb`G^A%H;zAR+TnNUD%euE`a4hRRdiDE+EopNwU?r}~*2>(}kt1^r$?l}pd$Tx@qmCX1bg&B*Y!V1TMsVt&~6Ec?e zb)^s1#y<2+xsOxz+l0tAXJ#bfT_Ule^;bcbPdf0H?@xLs@=&2kI8^xcL9$hj%lP$4 z@}L~&3LN$03x!yHAJb`(ds^9l0M(x67Tas`6i%;KvL+d)+3hnTjiub<{8*<0k*OvL5;YgLBI+ diff --git a/mingw/lib/libtclstub84.a b/mingw/lib/libtclstub84.a deleted file mode 100644 index f9f35ce8a21d1bf0e3d940c2105fa175c320a8c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1118 zcwSSqNi0gvu;bEKKm~?|76t}}mOw&5!2m3ROakQ%%%H3UE(Qh$Rv=!7j^jg;bK*Vo zGE0I>N|TBi;!BcqJo8EdauOi|0VPE+F%&+A0yu{O%JIoe(#zLJxYFFx5Y>H#1_owk zKnGe_7{guZ!^pw_0{<8p7zDs97Dm02)QS=Y1lRz?TYz{8BZSWh#0m@y33@4sC5a69 zfdd1>0llQ+Vq`G^Eb1CS>WWYebO7QMMpSh`F^A?iGKL4beN+@WT~s8x9eG+0lyEg# zoZq$hPv@Z${^MXBhL?^zf_>I0$^+saXuVVt-pQlV3)BMCCeZDoq5-6NfV2vb=Gb8a zQtP6^@;`{D^B_?9$r6ojknsU5i$MmoUMdAzYItce2iUYuQIO$_!4{loJ|c6tn+Yt_ z?ZmQ}1x$0iemDUNLNYRo6*BWmQi}?TQh}sGN`7jwLSBA}LUCz9L4FaC2F0arYF=Ve zPHKt*F!WRNiZk=`iuD+Pi3Jqa44~x1#-I-*Il!z?xL5&PtQO8{g|oWgtm$ypd^k%l zEi)&T0RsO0XJANYL`qA^3~;~#r5S;4VM2=$5I{~bAZcdC6%3Gcf}{p1a+$zt7%%{G zN?``8!AvX2se}cr#sNbO2na)IkU30XmO4xaT*RCK5)udz4iLxm01yPu AdH?_b diff --git a/mingw/lib/libtclstub85.a b/mingw/lib/libtclstub85.a new file mode 100644 index 0000000000000000000000000000000000000000..afd9f8f32ed17758d4ee192ee1db486b60fd3cf5 GIT binary patch literal 2022 zcwWU-QHUEw7@o}qP0#2CuVRH$#{wp`V(F_s%va1rf7{&^^tgpcEzg3PHP84j^=u&G=OG95_bke6*ku4gI&J z5%Qur*X_sfBX}P&o-?@NkKoGCATJG{w^Z-#(+kz@(Z(euMl;HxhN;9GC&G1)41bik zbFK9^{g%kL*ms81_N^0KHhm_-hPUf&a*moxXcgAM+KB2w8(vQ_N=6CNl+rmB2AW4V z$t#VFlBj!?;|-Q%KGUs^JJp+`^t*S@EuOuxdi4lP zEw7zL^nPuN9RB!+RdNK$*S(qQud(W12jtH@dCil)k=Ft>uky<*d51|;z3Y-MCvt^l z{F;j+N|>JU13RA(WyQH1E#jPeFq2BLrB51{EZP5AO* zJyyN1n*QDjOL{Hs-^ZbiFAyh;GEwVa?n!@;&cT&sl@Lqc#Bimm2O7p3pbCCDanPNp z-b~$Sb{4`L>%N9LxxNDDr_Zx<)88N5X@X^ohKmi0=uX+up~VGTcd=y?>{iNU+ku`v z#iP2VMNkXa`%ET@T`Iw|M5~OMf8b?E{kYeL_1>bh}6Sg646l+eJ=HQR|K{x zu?RJ3m=l8b_FE# zNE-n!OI;4?uc2(gkYon@%DHR(^)tXZXrJ}h&LPe@xS!KkH-nth-pAp*ZqN1!@MxyD bLLjHXLj%YK@bCcgK6peRHE93uf53kLK4{h; literal 0 HcwPel00001 diff --git a/mingw/lib/libtk84.a b/mingw/lib/libtk84.a deleted file mode 100644 index ec2a610475025d2be7eaec5d8ada0ee0ad7b96da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 492340 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 diff --git a/mingw/lib/libtk85.a b/mingw/lib/libtk85.a new file mode 100644 index 0000000000000000000000000000000000000000..7fb14e5e028b9410e904c563b8959c21144782bd GIT binary patch literal 350360 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 cp@Ks;kLZ@VhW52~miDOLgn}~v0%LHZcmMzZ diff --git a/mingw/lib/libtkstub85.a b/mingw/lib/libtkstub85.a new file mode 100644 index 0000000000000000000000000000000000000000..014d386a95e8aa66cb224da2f716b331baf7b515 GIT binary patch literal 1356 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 diff --git a/mingw/lib/reg1.2/pkgIndex.tcl b/mingw/lib/reg1.2/pkgIndex.tcl new file mode 100644 index 00000000..d2ed72ff --- /dev/null +++ b/mingw/lib/reg1.2/pkgIndex.tcl @@ -0,0 +1,9 @@ +if {![package vsatisfies [package provide Tcl] 8]} {return} +if {[string compare $::tcl_platform(platform) windows]} {return} +if {[info exists ::tcl_platform(debug)]} { + package ifneeded registry 1.2.1 \ + [list load [file join $dir tclreg12g.dll] registry] +} else { + package ifneeded registry 1.2.1 \ + [list load [file join $dir tclreg12.dll] registry] +} diff --git a/mingw/lib/reg1.2/tclreg12.dll b/mingw/lib/reg1.2/tclreg12.dll new file mode 100644 index 0000000000000000000000000000000000000000..1e6feb31b15edc83b44ecf69626dc7d666dd07d6 GIT binary patch literal 34635 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 literal 0 HcwPel00001 diff --git a/mingw/lib/tcl8.4/auto.tcl b/mingw/lib/tcl8.4/auto.tcl deleted file mode 100644 index 80fc2a22..00000000 --- a/mingw/lib/tcl8.4/auto.tcl +++ /dev/null @@ -1,616 +0,0 @@ -# auto.tcl -- -# -# utility procs formerly in init.tcl dealing with auto execution -# of commands and can be auto loaded themselves. -# -# RCS: @(#) $Id: auto.tcl,v 1.12.2.10 2005/07/23 03:31:41 dgp Exp $ -# -# Copyright (c) 1991-1993 The Regents of the University of California. -# Copyright (c) 1994-1998 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# auto_reset -- -# -# Destroy all cached information for auto-loading and auto-execution, -# so that the information gets recomputed the next time it's needed. -# Also delete any procedures that are listed in the auto-load index -# except those defined in this file. -# -# Arguments: -# None. - -proc auto_reset {} { - global auto_execs auto_index auto_oldpath - foreach p [info procs] { - if {[info exists auto_index($p)] && ![string match auto_* $p] - && ([lsearch -exact {unknown pkg_mkIndex tclPkgSetup - tcl_findLibrary pkg_compareExtension - tclPkgUnknown tcl::MacOSXPkgUnknown - tcl::MacPkgUnknown} $p] < 0)} { - rename $p {} - } - } - unset -nocomplain auto_execs auto_index auto_oldpath -} - -# tcl_findLibrary -- -# -# This is a utility for extensions that searches for a library directory -# using a canonical searching algorithm. A side effect is to source -# the initialization script and set a global library variable. -# -# Arguments: -# basename Prefix of the directory name, (e.g., "tk") -# version Version number of the package, (e.g., "8.0") -# patch Patchlevel of the package, (e.g., "8.0.3") -# initScript Initialization script to source (e.g., tk.tcl) -# enVarName environment variable to honor (e.g., TK_LIBRARY) -# varName Global variable to set when done (e.g., tk_library) - -proc tcl_findLibrary {basename version patch initScript enVarName varName} { - upvar #0 $varName the_library - global env errorInfo - - set dirs {} - set errors {} - - # The C application may have hardwired a path, which we honor - - if {[info exists the_library] && $the_library ne ""} { - lappend dirs $the_library - } else { - - # Do the canonical search - - # 1. From an environment variable, if it exists. - # Placing this first gives the end-user ultimate control - # to work-around any bugs, or to customize. - - if {[info exists env($enVarName)]} { - lappend dirs $env($enVarName) - } - - # 2. In the package script directory registered within - # the configuration of the package itself. - # - # Only do this for Tcl 8.5+, when Tcl_RegsiterConfig() is available. - #if {[catch { - # ::${basename}::pkgconfig get scriptdir,runtime - #} value] == 0} { - # lappend dirs $value - #} - - # 3. Relative to auto_path directories. This checks relative to the - # Tcl library as well as allowing loading of libraries added to the - # auto_path that is not relative to the core library or binary paths. - foreach d $::auto_path { - lappend dirs [file join $d $basename$version] - if {$::tcl_platform(platform) eq "unix" - && $::tcl_platform(os) eq "Darwin"} { - # 4. On MacOSX, check the Resources/Scripts subdir too - lappend dirs [file join $d $basename$version Resources Scripts] - } - } - - # 3. Various locations relative to the executable - # ../lib/foo1.0 (From bin directory in install hierarchy) - # ../../lib/foo1.0 (From bin/arch directory in install hierarchy) - # ../library (From unix directory in build hierarchy) - set parentDir [file dirname [file dirname [info nameofexecutable]]] - set grandParentDir [file dirname $parentDir] - lappend dirs [file join $parentDir lib $basename$version] - lappend dirs [file join $grandParentDir lib $basename$version] - lappend dirs [file join $parentDir library] - - # Remaining locations are out of date (when relevant, they ought - # to be covered by the $::auto_path seach above). - # - # ../../library (From unix/arch directory in build hierarchy) - # ../../foo1.0.1/library - # (From unix directory in parallel build hierarchy) - # ../../../foo1.0.1/library - # (From unix/arch directory in parallel build hierarchy) - # - # For the sake of extra compatibility safety, we keep adding these - # paths during the 8.4.* release series. - if {1} { - lappend dirs [file join $grandParentDir library] - lappend dirs [file join $grandParentDir $basename$patch library] - lappend dirs [file join [file dirname $grandParentDir] \ - $basename$patch library] - } - } - # uniquify $dirs in order - array set seen {} - foreach i $dirs { - # For Tcl 8.4.9, we've disabled the use of [file normalize] here. - # This means that two different path names that are the same path - # in normalized form, will both remain on the search path. There - # should be no harm in that, just a bit more file system access - # than is strictly necessary. - # - # [file normalize] has been disabled because of reports it has - # caused difficulties with the freewrap utility. To keep - # compatibility with freewrap's needs, we'll keep this disabled - # throughout the 8.4.x (x >= 9) releases. See Bug 1072136. - if {1 || [interp issafe]} { - set norm $i - } else { - set norm [file normalize $i] - } - if {[info exists seen($norm)]} { continue } - set seen($norm) "" - lappend uniqdirs $i - } - set dirs $uniqdirs - foreach i $dirs { - set the_library $i - set file [file join $i $initScript] - - # source everything when in a safe interpreter because - # we have a source command, but no file exists command - - if {[interp issafe] || [file exists $file]} { - if {![catch {uplevel #0 [list source $file]} msg]} { - return - } else { - append errors "$file: $msg\n$errorInfo\n" - } - } - } - unset -nocomplain the_library - set msg "Can't find a usable $initScript in the following directories: \n" - append msg " $dirs\n\n" - append msg "$errors\n\n" - append msg "This probably means that $basename wasn't installed properly.\n" - error $msg -} - - -# ---------------------------------------------------------------------- -# auto_mkindex -# ---------------------------------------------------------------------- -# The following procedures are used to generate the tclIndex file -# from Tcl source files. They use a special safe interpreter to -# parse Tcl source files, writing out index entries as "proc" -# commands are encountered. This implementation won't work in a -# safe interpreter, since a safe interpreter can't create the -# special parser and mess with its commands. - -if {[interp issafe]} { - return ;# Stop sourcing the file here -} - -# auto_mkindex -- -# Regenerate a tclIndex file from Tcl source files. Takes as argument -# the name of the directory in which the tclIndex file is to be placed, -# followed by any number of glob patterns to use in that directory to -# locate all of the relevant files. -# -# Arguments: -# dir - Name of the directory in which to create an index. -# args - Any number of additional arguments giving the -# names of files within dir. If no additional -# are given auto_mkindex will look for *.tcl. - -proc auto_mkindex {dir args} { - global errorCode errorInfo - - if {[interp issafe]} { - error "can't generate index within safe interpreter" - } - - set oldDir [pwd] - cd $dir - set dir [pwd] - - append index "# Tcl autoload index file, version 2.0\n" - append index "# This file is generated by the \"auto_mkindex\" command\n" - append index "# and sourced to set up indexing information for one or\n" - append index "# more commands. Typically each line is a command that\n" - append index "# sets an element in the auto_index array, where the\n" - append index "# element name is the name of a command and the value is\n" - append index "# a script that loads the command.\n\n" - if {[llength $args] == 0} { - set args *.tcl - } - - auto_mkindex_parser::init - foreach file [eval [linsert $args 0 glob --]] { - if {[catch {auto_mkindex_parser::mkindex $file} msg] == 0} { - append index $msg - } else { - set code $errorCode - set info $errorInfo - cd $oldDir - error $msg $info $code - } - } - auto_mkindex_parser::cleanup - - set fid [open "tclIndex" w] - puts -nonewline $fid $index - close $fid - cd $oldDir -} - -# Original version of auto_mkindex that just searches the source -# code for "proc" at the beginning of the line. - -proc auto_mkindex_old {dir args} { - global errorCode errorInfo - set oldDir [pwd] - cd $dir - set dir [pwd] - append index "# Tcl autoload index file, version 2.0\n" - append index "# This file is generated by the \"auto_mkindex\" command\n" - append index "# and sourced to set up indexing information for one or\n" - append index "# more commands. Typically each line is a command that\n" - append index "# sets an element in the auto_index array, where the\n" - append index "# element name is the name of a command and the value is\n" - append index "# a script that loads the command.\n\n" - if {[llength $args] == 0} { - set args *.tcl - } - foreach file [eval [linsert $args 0 glob --]] { - set f "" - set error [catch { - set f [open $file] - while {[gets $f line] >= 0} { - if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} { - set procName [lindex [auto_qualify $procName "::"] 0] - append index "set [list auto_index($procName)]" - append index " \[list source \[file join \$dir [list $file]\]\]\n" - } - } - close $f - } msg] - if {$error} { - set code $errorCode - set info $errorInfo - catch {close $f} - cd $oldDir - error $msg $info $code - } - } - set f "" - set error [catch { - set f [open tclIndex w] - puts -nonewline $f $index - close $f - cd $oldDir - } msg] - if {$error} { - set code $errorCode - set info $errorInfo - catch {close $f} - cd $oldDir - error $msg $info $code - } -} - -# Create a safe interpreter that can be used to parse Tcl source files -# generate a tclIndex file for autoloading. This interp contains -# commands for things that need index entries. Each time a command -# is executed, it writes an entry out to the index file. - -namespace eval auto_mkindex_parser { - variable parser "" ;# parser used to build index - variable index "" ;# maintains index as it is built - variable scriptFile "" ;# name of file being processed - variable contextStack "" ;# stack of namespace scopes - variable imports "" ;# keeps track of all imported cmds - variable initCommands "" ;# list of commands that create aliases - - proc init {} { - variable parser - variable initCommands - - if {![interp issafe]} { - set parser [interp create -safe] - $parser hide info - $parser hide rename - $parser hide proc - $parser hide namespace - $parser hide eval - $parser hide puts - $parser invokehidden namespace delete :: - $parser invokehidden proc unknown {args} {} - - # We'll need access to the "namespace" command within the - # interp. Put it back, but move it out of the way. - - $parser expose namespace - $parser invokehidden rename namespace _%@namespace - $parser expose eval - $parser invokehidden rename eval _%@eval - - # Install all the registered psuedo-command implementations - - foreach cmd $initCommands { - eval $cmd - } - } - } - proc cleanup {} { - variable parser - interp delete $parser - unset parser - } -} - -# auto_mkindex_parser::mkindex -- -# -# Used by the "auto_mkindex" command to create a "tclIndex" file for -# the given Tcl source file. Executes the commands in the file, and -# handles things like the "proc" command by adding an entry for the -# index file. Returns a string that represents the index file. -# -# Arguments: -# file Name of Tcl source file to be indexed. - -proc auto_mkindex_parser::mkindex {file} { - variable parser - variable index - variable scriptFile - variable contextStack - variable imports - - set scriptFile $file - - set fid [open $file] - set contents [read $fid] - close $fid - - # There is one problem with sourcing files into the safe - # interpreter: references like "$x" will fail since code is not - # really being executed and variables do not really exist. - # To avoid this, we replace all $ with \0 (literally, the null char) - # later, when getting proc names we will have to reverse this replacement, - # in case there were any $ in the proc name. This will cause a problem - # if somebody actually tries to have a \0 in their proc name. Too bad - # for them. - set contents [string map "$ \u0000" $contents] - - set index "" - set contextStack "" - set imports "" - - $parser eval $contents - - foreach name $imports { - catch {$parser eval [list _%@namespace forget $name]} - } - return $index -} - -# auto_mkindex_parser::hook command -# -# Registers a Tcl command to evaluate when initializing the -# slave interpreter used by the mkindex parser. -# The command is evaluated in the master interpreter, and can -# use the variable auto_mkindex_parser::parser to get to the slave - -proc auto_mkindex_parser::hook {cmd} { - variable initCommands - - lappend initCommands $cmd -} - -# auto_mkindex_parser::slavehook command -# -# Registers a Tcl command to evaluate when initializing the -# slave interpreter used by the mkindex parser. -# The command is evaluated in the slave interpreter. - -proc auto_mkindex_parser::slavehook {cmd} { - variable initCommands - - # The $parser variable is defined to be the name of the - # slave interpreter when this command is used later. - - lappend initCommands "\$parser eval [list $cmd]" -} - -# auto_mkindex_parser::command -- -# -# Registers a new command with the "auto_mkindex_parser" interpreter -# that parses Tcl files. These commands are fake versions of things -# like the "proc" command. When you execute them, they simply write -# out an entry to a "tclIndex" file for auto-loading. -# -# This procedure allows extensions to register their own commands -# with the auto_mkindex facility. For example, a package like -# [incr Tcl] might register a "class" command so that class definitions -# could be added to a "tclIndex" file for auto-loading. -# -# Arguments: -# name Name of command recognized in Tcl files. -# arglist Argument list for command. -# body Implementation of command to handle indexing. - -proc auto_mkindex_parser::command {name arglist body} { - hook [list auto_mkindex_parser::commandInit $name $arglist $body] -} - -# auto_mkindex_parser::commandInit -- -# -# This does the actual work set up by auto_mkindex_parser::command -# This is called when the interpreter used by the parser is created. -# -# Arguments: -# name Name of command recognized in Tcl files. -# arglist Argument list for command. -# body Implementation of command to handle indexing. - -proc auto_mkindex_parser::commandInit {name arglist body} { - variable parser - - set ns [namespace qualifiers $name] - set tail [namespace tail $name] - if {$ns eq ""} { - set fakeName [namespace current]::_%@fake_$tail - } else { - set fakeName [namespace current]::[string map {:: _} _%@fake_$name] - } - proc $fakeName $arglist $body - - # YUK! Tcl won't let us alias fully qualified command names, - # so we can't handle names like "::itcl::class". Instead, - # we have to build procs with the fully qualified names, and - # have the procs point to the aliases. - - if {[string match *::* $name]} { - set exportCmd [list _%@namespace export [namespace tail $name]] - $parser eval [list _%@namespace eval $ns $exportCmd] - - # The following proc definition does not work if you - # want to tolerate space or something else diabolical - # in the procedure name, (i.e., space in $alias) - # The following does not work: - # "_%@eval {$alias} \$args" - # because $alias gets concat'ed to $args. - # The following does not work because $cmd is somehow undefined - # "set cmd {$alias} \; _%@eval {\$cmd} \$args" - # A gold star to someone that can make test - # autoMkindex-3.3 work properly - - set alias [namespace tail $fakeName] - $parser invokehidden proc $name {args} "_%@eval {$alias} \$args" - $parser alias $alias $fakeName - } else { - $parser alias $name $fakeName - } - return -} - -# auto_mkindex_parser::fullname -- -# Used by commands like "proc" within the auto_mkindex parser. -# Returns the qualified namespace name for the "name" argument. -# If the "name" does not start with "::", elements are added from -# the current namespace stack to produce a qualified name. Then, -# the name is examined to see whether or not it should really be -# qualified. If the name has more than the leading "::", it is -# returned as a fully qualified name. Otherwise, it is returned -# as a simple name. That way, the Tcl autoloader will recognize -# it properly. -# -# Arguments: -# name - Name that is being added to index. - -proc auto_mkindex_parser::fullname {name} { - variable contextStack - - if {![string match ::* $name]} { - foreach ns $contextStack { - set name "${ns}::$name" - if {[string match ::* $name]} { - break - } - } - } - - if {[namespace qualifiers $name] eq ""} { - set name [namespace tail $name] - } elseif {![string match ::* $name]} { - set name "::$name" - } - - # Earlier, mkindex replaced all $'s with \0. Now, we have to reverse - # that replacement. - return [string map "\u0000 $" $name] -} - -# Register all of the procedures for the auto_mkindex parser that -# will build the "tclIndex" file. - -# AUTO MKINDEX: proc name arglist body -# Adds an entry to the auto index list for the given procedure name. - -auto_mkindex_parser::command proc {name args} { - variable index - variable scriptFile - # Do some fancy reformatting on the "source" call to handle platform - # differences with respect to pathnames. Use format just so that the - # command is a little easier to read (otherwise it'd be full of - # backslashed dollar signs, etc. - append index [list set auto_index([fullname $name])] \ - [format { [list source [file join $dir %s]]} \ - [file split $scriptFile]] "\n" -} - -# Conditionally add support for Tcl byte code files. There are some -# tricky details here. First, we need to get the tbcload library -# initialized in the current interpreter. We cannot load tbcload into the -# slave until we have done so because it needs access to the tcl_patchLevel -# variable. Second, because the package index file may defer loading the -# library until we invoke a command, we need to explicitly invoke auto_load -# to force it to be loaded. This should be a noop if the package has -# already been loaded - -auto_mkindex_parser::hook { - if {![catch {package require tbcload}]} { - if {[namespace which -command tbcload::bcproc] eq ""} { - auto_load tbcload::bcproc - } - load {} tbcload $auto_mkindex_parser::parser - - # AUTO MKINDEX: tbcload::bcproc name arglist body - # Adds an entry to the auto index list for the given pre-compiled - # procedure name. - - auto_mkindex_parser::commandInit tbcload::bcproc {name args} { - variable index - variable scriptFile - # Do some nice reformatting of the "source" call, to get around - # path differences on different platforms. We use the format - # command just so that the code is a little easier to read. - append index [list set auto_index([fullname $name])] \ - [format { [list source [file join $dir %s]]} \ - [file split $scriptFile]] "\n" - } - } -} - -# AUTO MKINDEX: namespace eval name command ?arg arg...? -# Adds the namespace name onto the context stack and evaluates the -# associated body of commands. -# -# AUTO MKINDEX: namespace import ?-force? pattern ?pattern...? -# Performs the "import" action in the parser interpreter. This is -# important for any commands contained in a namespace that affect -# the index. For example, a script may say "itcl::class ...", -# or it may import "itcl::*" and then say "class ...". This -# procedure does the import operation, but keeps track of imported -# patterns so we can remove the imports later. - -auto_mkindex_parser::command namespace {op args} { - switch -- $op { - eval { - variable parser - variable contextStack - - set name [lindex $args 0] - set args [lrange $args 1 end] - - set contextStack [linsert $contextStack 0 $name] - $parser eval [list _%@namespace eval $name] $args - set contextStack [lrange $contextStack 1 end] - } - import { - variable parser - variable imports - foreach pattern $args { - if {$pattern ne "-force"} { - lappend imports $pattern - } - } - catch {$parser eval "_%@namespace import $args"} - } - } -} - -return diff --git a/mingw/lib/tcl8.4/history.tcl b/mingw/lib/tcl8.4/history.tcl deleted file mode 100644 index b8e27ce2..00000000 --- a/mingw/lib/tcl8.4/history.tcl +++ /dev/null @@ -1,375 +0,0 @@ -# history.tcl -- -# -# Implementation of the history command. -# -# RCS: @(#) $Id: history.tcl,v 1.5.14.1 2005/07/22 21:59:40 dgp Exp $ -# -# Copyright (c) 1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# The tcl::history array holds the history list and -# some additional bookkeeping variables. -# -# nextid the index used for the next history list item. -# keep the max size of the history list -# oldest the index of the oldest item in the history. - -namespace eval tcl { - variable history - if {![info exists history]} { - array set history { - nextid 0 - keep 20 - oldest -20 - } - } -} - -# history -- -# -# This is the main history command. See the man page for its interface. -# This does argument checking and calls helper procedures in the -# history namespace. - -proc history {args} { - set len [llength $args] - if {$len == 0} { - return [tcl::HistInfo] - } - set key [lindex $args 0] - set options "add, change, clear, event, info, keep, nextid, or redo" - switch -glob -- $key { - a* { # history add - - if {$len > 3} { - return -code error "wrong # args: should be \"history add event ?exec?\"" - } - if {![string match $key* add]} { - return -code error "bad option \"$key\": must be $options" - } - if {$len == 3} { - set arg [lindex $args 2] - if {! ([string match e* $arg] && [string match $arg* exec])} { - return -code error "bad argument \"$arg\": should be \"exec\"" - } - } - return [tcl::HistAdd [lindex $args 1] [lindex $args 2]] - } - ch* { # history change - - if {($len > 3) || ($len < 2)} { - return -code error "wrong # args: should be \"history change newValue ?event?\"" - } - if {![string match $key* change]} { - return -code error "bad option \"$key\": must be $options" - } - if {$len == 2} { - set event 0 - } else { - set event [lindex $args 2] - } - - return [tcl::HistChange [lindex $args 1] $event] - } - cl* { # history clear - - if {($len > 1)} { - return -code error "wrong # args: should be \"history clear\"" - } - if {![string match $key* clear]} { - return -code error "bad option \"$key\": must be $options" - } - return [tcl::HistClear] - } - e* { # history event - - if {$len > 2} { - return -code error "wrong # args: should be \"history event ?event?\"" - } - if {![string match $key* event]} { - return -code error "bad option \"$key\": must be $options" - } - if {$len == 1} { - set event -1 - } else { - set event [lindex $args 1] - } - return [tcl::HistEvent $event] - } - i* { # history info - - if {$len > 2} { - return -code error "wrong # args: should be \"history info ?count?\"" - } - if {![string match $key* info]} { - return -code error "bad option \"$key\": must be $options" - } - return [tcl::HistInfo [lindex $args 1]] - } - k* { # history keep - - if {$len > 2} { - return -code error "wrong # args: should be \"history keep ?count?\"" - } - if {$len == 1} { - return [tcl::HistKeep] - } else { - set limit [lindex $args 1] - if {[catch {expr {~$limit}}] || ($limit < 0)} { - return -code error "illegal keep count \"$limit\"" - } - return [tcl::HistKeep $limit] - } - } - n* { # history nextid - - if {$len > 1} { - return -code error "wrong # args: should be \"history nextid\"" - } - if {![string match $key* nextid]} { - return -code error "bad option \"$key\": must be $options" - } - return [expr {$tcl::history(nextid) + 1}] - } - r* { # history redo - - if {$len > 2} { - return -code error "wrong # args: should be \"history redo ?event?\"" - } - if {![string match $key* redo]} { - return -code error "bad option \"$key\": must be $options" - } - return [tcl::HistRedo [lindex $args 1]] - } - default { - return -code error "bad option \"$key\": must be $options" - } - } -} - -# tcl::HistAdd -- -# -# Add an item to the history, and optionally eval it at the global scope -# -# Parameters: -# command the command to add -# exec (optional) a substring of "exec" causes the -# command to be evaled. -# Results: -# If executing, then the results of the command are returned -# -# Side Effects: -# Adds to the history list - - proc tcl::HistAdd {command {exec {}}} { - variable history - - # Do not add empty commands to the history - if {[string trim $command] eq ""} { - return "" - } - - set i [incr history(nextid)] - set history($i) $command - set j [incr history(oldest)] - unset -nocomplain history($j) - if {[string match e* $exec]} { - return [uplevel #0 $command] - } else { - return {} - } -} - -# tcl::HistKeep -- -# -# Set or query the limit on the length of the history list -# -# Parameters: -# limit (optional) the length of the history list -# -# Results: -# If no limit is specified, the current limit is returned -# -# Side Effects: -# Updates history(keep) if a limit is specified - - proc tcl::HistKeep {{limit {}}} { - variable history - if {$limit eq ""} { - return $history(keep) - } else { - set oldold $history(oldest) - set history(oldest) [expr {$history(nextid) - $limit}] - for {} {$oldold <= $history(oldest)} {incr oldold} { - unset -nocomplain history($oldold) - } - set history(keep) $limit - } -} - -# tcl::HistClear -- -# -# Erase the history list -# -# Parameters: -# none -# -# Results: -# none -# -# Side Effects: -# Resets the history array, except for the keep limit - - proc tcl::HistClear {} { - variable history - set keep $history(keep) - unset history - array set history [list \ - nextid 0 \ - keep $keep \ - oldest -$keep \ - ] -} - -# tcl::HistInfo -- -# -# Return a pretty-printed version of the history list -# -# Parameters: -# num (optional) the length of the history list to return -# -# Results: -# A formatted history list - - proc tcl::HistInfo {{num {}}} { - variable history - if {$num eq ""} { - set num [expr {$history(keep) + 1}] - } - set result {} - set newline "" - for {set i [expr {$history(nextid) - $num + 1}]} \ - {$i <= $history(nextid)} {incr i} { - if {![info exists history($i)]} { - continue - } - set cmd [string map [list \n \n\t] [string trimright $history($i) \ \n]] - append result $newline[format "%6d %s" $i $cmd] - set newline \n - } - return $result -} - -# tcl::HistRedo -- -# -# Fetch the previous or specified event, execute it, and then -# replace the current history item with that event. -# -# Parameters: -# event (optional) index of history item to redo. Defaults to -1, -# which means the previous event. -# -# Results: -# Those of the command being redone. -# -# Side Effects: -# Replaces the current history list item with the one being redone. - - proc tcl::HistRedo {{event -1}} { - variable history - if {$event eq ""} { - set event -1 - } - set i [HistIndex $event] - if {$i == $history(nextid)} { - return -code error "cannot redo the current event" - } - set cmd $history($i) - HistChange $cmd 0 - uplevel #0 $cmd -} - -# tcl::HistIndex -- -# -# Map from an event specifier to an index in the history list. -# -# Parameters: -# event index of history item to redo. -# If this is a positive number, it is used directly. -# If it is a negative number, then it counts back to a previous -# event, where -1 is the most recent event. -# A string can be matched, either by being the prefix of -# a command or by matching a command with string match. -# -# Results: -# The index into history, or an error if the index didn't match. - - proc tcl::HistIndex {event} { - variable history - if {[catch {expr {~$event}}]} { - for {set i [expr {$history(nextid)-1}]} {[info exists history($i)]} \ - {incr i -1} { - if {[string match $event* $history($i)]} { - return $i; - } - if {[string match $event $history($i)]} { - return $i; - } - } - return -code error "no event matches \"$event\"" - } elseif {$event <= 0} { - set i [expr {$history(nextid) + $event}] - } else { - set i $event - } - if {$i <= $history(oldest)} { - return -code error "event \"$event\" is too far in the past" - } - if {$i > $history(nextid)} { - return -code error "event \"$event\" hasn't occured yet" - } - return $i -} - -# tcl::HistEvent -- -# -# Map from an event specifier to the value in the history list. -# -# Parameters: -# event index of history item to redo. See index for a -# description of possible event patterns. -# -# Results: -# The value from the history list. - - proc tcl::HistEvent {event} { - variable history - set i [HistIndex $event] - if {[info exists history($i)]} { - return [string trimright $history($i) \ \n] - } else { - return ""; - } -} - -# tcl::HistChange -- -# -# Replace a value in the history list. -# -# Parameters: -# cmd The new value to put into the history list. -# event (optional) index of history item to redo. See index for a -# description of possible event patterns. This defaults -# to 0, which specifies the current event. -# -# Side Effects: -# Changes the history list. - - proc tcl::HistChange {cmd {event 0}} { - variable history - set i [HistIndex $event] - set history($i) $cmd -} diff --git a/mingw/lib/tcl8.4/http2.4/http.tcl b/mingw/lib/tcl8.4/http2.4/http.tcl deleted file mode 100644 index 7ae2286e..00000000 --- a/mingw/lib/tcl8.4/http2.4/http.tcl +++ /dev/null @@ -1,914 +0,0 @@ -# http.tcl -- -# -# Client-side HTTP for GET, POST, and HEAD commands. -# These routines can be used in untrusted code that uses -# the Safesock security policy. These procedures use a -# callback interface to avoid using vwait, which is not -# defined in the safe base. -# -# See the file "license.terms" for information on usage and -# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: http.tcl,v 1.43 2002/10/03 13:34:32 dkf Exp $ - -# Rough version history: -# 1.0 Old http_get interface -# 2.0 http:: namespace and http::geturl -# 2.1 Added callbacks to handle arriving data, and timeouts -# 2.2 Added ability to fetch into a channel -# 2.3 Added SSL support, and ability to post from a channel -# This version also cleans up error cases and eliminates the -# "ioerror" status in favor of raising an error -# 2.4 Added -binary option to http::geturl and charset element -# to the state array. - -package require Tcl 8.2 -# keep this in sync with pkgIndex.tcl -# and with the install directories in Makefiles -package provide http 2.4.2 - -namespace eval http { - variable http - array set http { - -accept */* - -proxyhost {} - -proxyport {} - -proxyfilter http::ProxyRequired - } - set http(-useragent) "Tcl http client package [package provide http]" - - proc init {} { - variable formMap - variable alphanumeric a-zA-Z0-9 - for {set i 0} {$i <= 256} {incr i} { - set c [format %c $i] - if {![string match \[$alphanumeric\] $c]} { - set formMap($c) %[format %.2x $i] - } - } - # These are handled specially - array set formMap { " " + \n %0d%0a } - } - init - - variable urlTypes - array set urlTypes { - http {80 ::socket} - } - - variable encodings [string tolower [encoding names]] - # This can be changed, but iso8859-1 is the RFC standard. - variable defaultCharset "iso8859-1" - - namespace export geturl config reset wait formatQuery register unregister - # Useful, but not exported: data size status code -} - -# http::register -- -# -# See documentaion for details. -# -# Arguments: -# proto URL protocol prefix, e.g. https -# port Default port for protocol -# command Command to use to create socket -# Results: -# list of port and command that was registered. - -proc http::register {proto port command} { - variable urlTypes - set urlTypes($proto) [list $port $command] -} - -# http::unregister -- -# -# Unregisters URL protocol handler -# -# Arguments: -# proto URL protocol prefix, e.g. https -# Results: -# list of port and command that was unregistered. - -proc http::unregister {proto} { - variable urlTypes - if {![info exists urlTypes($proto)]} { - return -code error "unsupported url type \"$proto\"" - } - set old $urlTypes($proto) - unset urlTypes($proto) - return $old -} - -# http::config -- -# -# See documentaion for details. -# -# Arguments: -# args Options parsed by the procedure. -# Results: -# TODO - -proc http::config {args} { - variable http - set options [lsort [array names http -*]] - set usage [join $options ", "] - if {[llength $args] == 0} { - set result {} - foreach name $options { - lappend result $name $http($name) - } - return $result - } - regsub -all -- - $options {} options - set pat ^-([join $options |])$ - if {[llength $args] == 1} { - set flag [lindex $args 0] - if {[regexp -- $pat $flag]} { - return $http($flag) - } else { - return -code error "Unknown option $flag, must be: $usage" - } - } else { - foreach {flag value} $args { - if {[regexp -- $pat $flag]} { - set http($flag) $value - } else { - return -code error "Unknown option $flag, must be: $usage" - } - } - } -} - -# http::Finish -- -# -# Clean up the socket and eval close time callbacks -# -# Arguments: -# token Connection token. -# errormsg (optional) If set, forces status to error. -# skipCB (optional) If set, don't call the -command callback. This -# is useful when geturl wants to throw an exception instead -# of calling the callback. That way, the same error isn't -# reported to two places. -# -# Side Effects: -# Closes the socket - -proc http::Finish { token {errormsg ""} {skipCB 0}} { - variable $token - upvar 0 $token state - global errorInfo errorCode - if {[string length $errormsg] != 0} { - set state(error) [list $errormsg $errorInfo $errorCode] - set state(status) error - } - catch {close $state(sock)} - catch {after cancel $state(after)} - if {[info exists state(-command)] && !$skipCB} { - if {[catch {eval $state(-command) {$token}} err]} { - if {[string length $errormsg] == 0} { - set state(error) [list $err $errorInfo $errorCode] - set state(status) error - } - } - if {[info exists state(-command)]} { - # Command callback may already have unset our state - unset state(-command) - } - } -} - -# http::reset -- -# -# See documentaion for details. -# -# Arguments: -# token Connection token. -# why Status info. -# -# Side Effects: -# See Finish - -proc http::reset { token {why reset} } { - variable $token - upvar 0 $token state - set state(status) $why - catch {fileevent $state(sock) readable {}} - catch {fileevent $state(sock) writable {}} - Finish $token - if {[info exists state(error)]} { - set errorlist $state(error) - unset state - eval ::error $errorlist - } -} - -# http::geturl -- -# -# Establishes a connection to a remote url via http. -# -# Arguments: -# url The http URL to goget. -# args Option value pairs. Valid options include: -# -blocksize, -validate, -headers, -timeout -# Results: -# Returns a token for this connection. -# This token is the name of an array that the caller should -# unset to garbage collect the state. - -proc http::geturl { url args } { - variable http - variable urlTypes - variable defaultCharset - - # Initialize the state variable, an array. We'll return the - # name of this array as the token for the transaction. - - if {![info exists http(uid)]} { - set http(uid) 0 - } - set token [namespace current]::[incr http(uid)] - variable $token - upvar 0 $token state - reset $token - - # Process command options. - - array set state { - -binary false - -blocksize 8192 - -queryblocksize 8192 - -validate 0 - -headers {} - -timeout 0 - -type application/x-www-form-urlencoded - -queryprogress {} - state header - meta {} - coding {} - currentsize 0 - totalsize 0 - querylength 0 - queryoffset 0 - type text/html - body {} - status "" - http "" - } - set state(charset) $defaultCharset - set options {-binary -blocksize -channel -command -handler -headers \ - -progress -query -queryblocksize -querychannel -queryprogress\ - -validate -timeout -type} - set usage [join $options ", "] - regsub -all -- - $options {} options - set pat ^-([join $options |])$ - foreach {flag value} $args { - if {[regexp $pat $flag]} { - # Validate numbers - if {[info exists state($flag)] && \ - [string is integer -strict $state($flag)] && \ - ![string is integer -strict $value]} { - unset $token - return -code error "Bad value for $flag ($value), must be integer" - } - set state($flag) $value - } else { - unset $token - return -code error "Unknown option $flag, can be: $usage" - } - } - - # Make sure -query and -querychannel aren't both specified - - set isQueryChannel [info exists state(-querychannel)] - set isQuery [info exists state(-query)] - if {$isQuery && $isQueryChannel} { - unset $token - return -code error "Can't combine -query and -querychannel options!" - } - - # Validate URL, determine the server host and port, and check proxy case - - if {![regexp -nocase {^(([^:]*)://)?([^/:]+)(:([0-9]+))?(/.*)?$} $url \ - x prefix proto host y port srvurl]} { - unset $token - return -code error "Unsupported URL: $url" - } - if {[string length $proto] == 0} { - set proto http - set url ${proto}://$url - } - if {![info exists urlTypes($proto)]} { - unset $token - return -code error "Unsupported URL type \"$proto\"" - } - set defport [lindex $urlTypes($proto) 0] - set defcmd [lindex $urlTypes($proto) 1] - - if {[string length $port] == 0} { - set port $defport - } - if {[string length $srvurl] == 0} { - set srvurl / - } - if {[string length $proto] == 0} { - set url http://$url - } - set state(url) $url - if {![catch {$http(-proxyfilter) $host} proxy]} { - set phost [lindex $proxy 0] - set pport [lindex $proxy 1] - } - - # If a timeout is specified we set up the after event - # and arrange for an asynchronous socket connection. - - if {$state(-timeout) > 0} { - set state(after) [after $state(-timeout) \ - [list http::reset $token timeout]] - set async -async - } else { - set async "" - } - - # If we are using the proxy, we must pass in the full URL that - # includes the server name. - - if {[info exists phost] && [string length $phost]} { - set srvurl $url - set conStat [catch {eval $defcmd $async {$phost $pport}} s] - } else { - set conStat [catch {eval $defcmd $async {$host $port}} s] - } - if {$conStat} { - - # something went wrong while trying to establish the connection - # Clean up after events and such, but DON'T call the command callback - # (if available) because we're going to throw an exception from here - # instead. - Finish $token "" 1 - cleanup $token - return -code error $s - } - set state(sock) $s - - # Wait for the connection to complete - - if {$state(-timeout) > 0} { - fileevent $s writable [list http::Connect $token] - http::wait $token - - if {[string equal $state(status) "error"]} { - # something went wrong while trying to establish the connection - # Clean up after events and such, but DON'T call the command - # callback (if available) because we're going to throw an - # exception from here instead. - set err [lindex $state(error) 0] - cleanup $token - return -code error $err - } elseif {![string equal $state(status) "connect"]} { - # Likely to be connection timeout - return $token - } - set state(status) "" - } - - # Send data in cr-lf format, but accept any line terminators - - fconfigure $s -translation {auto crlf} -buffersize $state(-blocksize) - - # The following is disallowed in safe interpreters, but the socket - # is already in non-blocking mode in that case. - - catch {fconfigure $s -blocking off} - set how GET - if {$isQuery} { - set state(querylength) [string length $state(-query)] - if {$state(querylength) > 0} { - set how POST - set contDone 0 - } else { - # there's no query data - unset state(-query) - set isQuery 0 - } - } elseif {$state(-validate)} { - set how HEAD - } elseif {$isQueryChannel} { - set how POST - # The query channel must be blocking for the async Write to - # work properly. - fconfigure $state(-querychannel) -blocking 1 -translation binary - set contDone 0 - } - - if {[catch { - puts $s "$how $srvurl HTTP/1.0" - puts $s "Accept: $http(-accept)" - if {$port == $defport} { - # Don't add port in this case, to handle broken servers. - # [Bug #504508] - puts $s "Host: $host" - } else { - puts $s "Host: $host:$port" - } - puts $s "User-Agent: $http(-useragent)" - foreach {key value} $state(-headers) { - regsub -all \[\n\r\] $value {} value - set key [string trim $key] - if {[string equal $key "Content-Length"]} { - set contDone 1 - set state(querylength) $value - } - if {[string length $key]} { - puts $s "$key: $value" - } - } - if {$isQueryChannel && $state(querylength) == 0} { - # Try to determine size of data in channel - # If we cannot seek, the surrounding catch will trap us - - set start [tell $state(-querychannel)] - seek $state(-querychannel) 0 end - set state(querylength) \ - [expr {[tell $state(-querychannel)] - $start}] - seek $state(-querychannel) $start - } - - # Flush the request header and set up the fileevent that will - # either push the POST data or read the response. - # - # fileevent note: - # - # It is possible to have both the read and write fileevents active - # at this point. The only scenario it seems to affect is a server - # that closes the connection without reading the POST data. - # (e.g., early versions TclHttpd in various error cases). - # Depending on the platform, the client may or may not be able to - # get the response from the server because of the error it will - # get trying to write the post data. Having both fileevents active - # changes the timing and the behavior, but no two platforms - # (among Solaris, Linux, and NT) behave the same, and none - # behave all that well in any case. Servers should always read thier - # POST data if they expect the client to read their response. - - if {$isQuery || $isQueryChannel} { - puts $s "Content-Type: $state(-type)" - if {!$contDone} { - puts $s "Content-Length: $state(querylength)" - } - puts $s "" - fconfigure $s -translation {auto binary} - fileevent $s writable [list http::Write $token] - } else { - puts $s "" - flush $s - fileevent $s readable [list http::Event $token] - } - - if {! [info exists state(-command)]} { - - # geturl does EVERYTHING asynchronously, so if the user - # calls it synchronously, we just do a wait here. - - wait $token - if {[string equal $state(status) "error"]} { - # Something went wrong, so throw the exception, and the - # enclosing catch will do cleanup. - return -code error [lindex $state(error) 0] - } - } - } err]} { - # The socket probably was never connected, - # or the connection dropped later. - - # Clean up after events and such, but DON'T call the command callback - # (if available) because we're going to throw an exception from here - # instead. - - # if state(status) is error, it means someone's already called Finish - # to do the above-described clean up. - if {[string equal $state(status) "error"]} { - Finish $token $err 1 - } - cleanup $token - return -code error $err - } - - return $token -} - -# Data access functions: -# Data - the URL data -# Status - the transaction status: ok, reset, eof, timeout -# Code - the HTTP transaction code, e.g., 200 -# Size - the size of the URL data - -proc http::data {token} { - variable $token - upvar 0 $token state - return $state(body) -} -proc http::status {token} { - variable $token - upvar 0 $token state - return $state(status) -} -proc http::code {token} { - variable $token - upvar 0 $token state - return $state(http) -} -proc http::ncode {token} { - variable $token - upvar 0 $token state - if {[regexp {[0-9]{3}} $state(http) numeric_code]} { - return $numeric_code - } else { - return $state(http) - } -} -proc http::size {token} { - variable $token - upvar 0 $token state - return $state(currentsize) -} - -proc http::error {token} { - variable $token - upvar 0 $token state - if {[info exists state(error)]} { - return $state(error) - } - return "" -} - -# http::cleanup -# -# Garbage collect the state associated with a transaction -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# unsets the state array - -proc http::cleanup {token} { - variable $token - upvar 0 $token state - if {[info exists state]} { - unset state - } -} - -# http::Connect -# -# This callback is made when an asyncronous connection completes. -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Sets the status of the connection, which unblocks -# the waiting geturl call - -proc http::Connect {token} { - variable $token - upvar 0 $token state - global errorInfo errorCode - if {[eof $state(sock)] || - [string length [fconfigure $state(sock) -error]]} { - Finish $token "connect failed [fconfigure $state(sock) -error]" 1 - } else { - set state(status) connect - fileevent $state(sock) writable {} - } - return -} - -# http::Write -# -# Write POST query data to the socket -# -# Arguments -# token The token for the connection -# -# Side Effects -# Write the socket and handle callbacks. - -proc http::Write {token} { - variable $token - upvar 0 $token state - set s $state(sock) - - # Output a block. Tcl will buffer this if the socket blocks - - set done 0 - if {[catch { - - # Catch I/O errors on dead sockets - - if {[info exists state(-query)]} { - - # Chop up large query strings so queryprogress callback - # can give smooth feedback - - puts -nonewline $s \ - [string range $state(-query) $state(queryoffset) \ - [expr {$state(queryoffset) + $state(-queryblocksize) - 1}]] - incr state(queryoffset) $state(-queryblocksize) - if {$state(queryoffset) >= $state(querylength)} { - set state(queryoffset) $state(querylength) - set done 1 - } - } else { - - # Copy blocks from the query channel - - set outStr [read $state(-querychannel) $state(-queryblocksize)] - puts -nonewline $s $outStr - incr state(queryoffset) [string length $outStr] - if {[eof $state(-querychannel)]} { - set done 1 - } - } - } err]} { - # Do not call Finish here, but instead let the read half of - # the socket process whatever server reply there is to get. - - set state(posterror) $err - set done 1 - } - if {$done} { - catch {flush $s} - fileevent $s writable {} - fileevent $s readable [list http::Event $token] - } - - # Callback to the client after we've completely handled everything - - if {[string length $state(-queryprogress)]} { - eval $state(-queryprogress) [list $token $state(querylength)\ - $state(queryoffset)] - } -} - -# http::Event -# -# Handle input on the socket -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Read the socket and handle callbacks. - -proc http::Event {token} { - variable $token - upvar 0 $token state - set s $state(sock) - - if {[eof $s]} { - Eof $token - return - } - if {[string equal $state(state) "header"]} { - if {[catch {gets $s line} n]} { - Finish $token $n - } elseif {$n == 0} { - variable encodings - set state(state) body - if {$state(-binary) || ![regexp -nocase ^text $state(type)] || \ - [regexp gzip|compress $state(coding)]} { - # Turn off conversions for non-text data - fconfigure $s -translation binary - if {[info exists state(-channel)]} { - fconfigure $state(-channel) -translation binary - } - } else { - # If we are getting text, set the incoming channel's - # encoding correctly. iso8859-1 is the RFC default, but - # this could be any IANA charset. However, we only know - # how to convert what we have encodings for. - set idx [lsearch -exact $encodings \ - [string tolower $state(charset)]] - if {$idx >= 0} { - fconfigure $s -encoding [lindex $encodings $idx] - } - } - if {[info exists state(-channel)] && \ - ![info exists state(-handler)]} { - # Initiate a sequence of background fcopies - fileevent $s readable {} - CopyStart $s $token - } - } elseif {$n > 0} { - if {[regexp -nocase {^content-type:(.+)$} $line x type]} { - set state(type) [string trim $type] - # grab the optional charset information - regexp -nocase {charset\s*=\s*(\S+)} $type x state(charset) - } - if {[regexp -nocase {^content-length:(.+)$} $line x length]} { - set state(totalsize) [string trim $length] - } - if {[regexp -nocase {^content-encoding:(.+)$} $line x coding]} { - set state(coding) [string trim $coding] - } - if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} { - lappend state(meta) $key [string trim $value] - } elseif {[regexp ^HTTP $line]} { - set state(http) $line - } - } - } else { - if {[catch { - if {[info exists state(-handler)]} { - set n [eval $state(-handler) {$s $token}] - } else { - set block [read $s $state(-blocksize)] - set n [string length $block] - if {$n >= 0} { - append state(body) $block - } - } - if {$n >= 0} { - incr state(currentsize) $n - } - } err]} { - Finish $token $err - } else { - if {[info exists state(-progress)]} { - eval $state(-progress) \ - {$token $state(totalsize) $state(currentsize)} - } - } - } -} - -# http::CopyStart -# -# Error handling wrapper around fcopy -# -# Arguments -# s The socket to copy from -# token The token returned from http::geturl -# -# Side Effects -# This closes the connection upon error - -proc http::CopyStart {s token} { - variable $token - upvar 0 $token state - if {[catch { - fcopy $s $state(-channel) -size $state(-blocksize) -command \ - [list http::CopyDone $token] - } err]} { - Finish $token $err - } -} - -# http::CopyDone -# -# fcopy completion callback -# -# Arguments -# token The token returned from http::geturl -# count The amount transfered -# -# Side Effects -# Invokes callbacks - -proc http::CopyDone {token count {error {}}} { - variable $token - upvar 0 $token state - set s $state(sock) - incr state(currentsize) $count - if {[info exists state(-progress)]} { - eval $state(-progress) {$token $state(totalsize) $state(currentsize)} - } - # At this point the token may have been reset - if {[string length $error]} { - Finish $token $error - } elseif {[catch {eof $s} iseof] || $iseof} { - Eof $token - } else { - CopyStart $s $token - } -} - -# http::Eof -# -# Handle eof on the socket -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Clean up the socket - -proc http::Eof {token} { - variable $token - upvar 0 $token state - if {[string equal $state(state) "header"]} { - # Premature eof - set state(status) eof - } else { - set state(status) ok - } - set state(state) eof - Finish $token -} - -# http::wait -- -# -# See documentaion for details. -# -# Arguments: -# token Connection token. -# -# Results: -# The status after the wait. - -proc http::wait {token} { - variable $token - upvar 0 $token state - - if {![info exists state(status)] || [string length $state(status)] == 0} { - # We must wait on the original variable name, not the upvar alias - vwait $token\(status) - } - - return $state(status) -} - -# http::formatQuery -- -# -# See documentaion for details. -# Call http::formatQuery with an even number of arguments, where -# the first is a name, the second is a value, the third is another -# name, and so on. -# -# Arguments: -# args A list of name-value pairs. -# -# Results: -# TODO - -proc http::formatQuery {args} { - set result "" - set sep "" - foreach i $args { - append result $sep [mapReply $i] - if {[string equal $sep "="]} { - set sep & - } else { - set sep = - } - } - return $result -} - -# http::mapReply -- -# -# Do x-www-urlencoded character mapping -# -# Arguments: -# string The string the needs to be encoded -# -# Results: -# The encoded string - -proc http::mapReply {string} { - variable formMap - variable alphanumeric - - # The spec says: "non-alphanumeric characters are replaced by '%HH'" - # 1 leave alphanumerics characters alone - # 2 Convert every other character to an array lookup - # 3 Escape constructs that are "special" to the tcl parser - # 4 "subst" the result, doing all the array substitutions - - regsub -all \[^$alphanumeric\] $string {$formMap(&)} string - regsub -all {[][{})\\]\)} $string {\\&} string - return [subst -nocommand $string] -} - -# http::ProxyRequired -- -# Default proxy filter. -# -# Arguments: -# host The destination host -# -# Results: -# The current proxy settings - -proc http::ProxyRequired {host} { - variable http - if {[info exists http(-proxyhost)] && [string length $http(-proxyhost)]} { - if {![info exists http(-proxyport)] || \ - ![string length $http(-proxyport)]} { - set http(-proxyport) 8080 - } - return [list $http(-proxyhost) $http(-proxyport)] - } -} diff --git a/mingw/lib/tcl8.4/http2.4/pkgIndex.tcl b/mingw/lib/tcl8.4/http2.4/pkgIndex.tcl deleted file mode 100644 index 8461a679..00000000 --- a/mingw/lib/tcl8.4/http2.4/pkgIndex.tcl +++ /dev/null @@ -1,12 +0,0 @@ -# Tcl package index file, version 1.1 -# This file is generated by the "pkg_mkIndex" command -# and sourced either when an application starts up or -# by a "package unknown" script. It invokes the -# "package ifneeded" command to set up package-related -# information so that packages will be loaded automatically -# in response to "package require" commands. When this -# script is sourced, the variable $dir must contain the -# full path name of this file's directory. - -if {![package vsatisfies [package provide Tcl] 8.2]} {return} -package ifneeded http 2.4.2 [list tclPkgSetup $dir http 2.4.2 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister}}}] diff --git a/mingw/lib/tcl8.4/http2.5/http.tcl b/mingw/lib/tcl8.4/http2.5/http.tcl deleted file mode 100644 index c412f6e1..00000000 --- a/mingw/lib/tcl8.4/http2.5/http.tcl +++ /dev/null @@ -1,1039 +0,0 @@ -# http.tcl -- -# -# Client-side HTTP for GET, POST, and HEAD commands. These routines can -# be used in untrusted code that uses the Safesock security policy. These -# procedures use a callback interface to avoid using vwait, which is not -# defined in the safe base. -# -# See the file "license.terms" for information on usage and redistribution of -# this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: http.tcl,v 1.43.2.13 2006/10/06 05:56:48 hobbs Exp $ - -# Rough version history: -# 1.0 Old http_get interface. -# 2.0 http:: namespace and http::geturl. -# 2.1 Added callbacks to handle arriving data, and timeouts. -# 2.2 Added ability to fetch into a channel. -# 2.3 Added SSL support, and ability to post from a channel. This version -# also cleans up error cases and eliminates the "ioerror" status in -# favor of raising an error -# 2.4 Added -binary option to http::geturl and charset element to the state -# array. - -package require Tcl 8.4 -# Keep this in sync with pkgIndex.tcl and with the install directories -# in Makefiles -package provide http 2.5.3 - -namespace eval http { - variable http - array set http { - -accept */* - -proxyhost {} - -proxyport {} - -proxyfilter http::ProxyRequired - -urlencoding utf-8 - } - set http(-useragent) "Tcl http client package [package provide http]" - - proc init {} { - # Set up the map for quoting chars. RFC3986 Section 2.3 say percent - # encode all except: "... percent-encoded octets in the ranges of ALPHA - # (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), - # underscore (%5F), or tilde (%7E) should not be created by URI - # producers ..." - for {set i 0} {$i <= 256} {incr i} { - set c [format %c $i] - if {![string match {[-._~a-zA-Z0-9]} $c]} { - set map($c) %[format %.2x $i] - } - } - # These are handled specially - set map(\n) %0d%0a - variable formMap [array get map] - } - init - - variable urlTypes - array set urlTypes { - http {80 ::socket} - } - - variable encodings [string tolower [encoding names]] - # This can be changed, but iso8859-1 is the RFC standard. - variable defaultCharset "iso8859-1" - - # Force RFC 3986 strictness in geturl url verification? Not for 8.4.x - variable strict 0 - - namespace export geturl config reset wait formatQuery register unregister - # Useful, but not exported: data size status code -} - -# http::register -- -# -# See documentaion for details. -# -# Arguments: -# proto URL protocol prefix, e.g. https -# port Default port for protocol -# command Command to use to create socket -# Results: -# list of port and command that was registered. - -proc http::register {proto port command} { - variable urlTypes - set urlTypes($proto) [list $port $command] -} - -# http::unregister -- -# -# Unregisters URL protocol handler -# -# Arguments: -# proto URL protocol prefix, e.g. https -# Results: -# list of port and command that was unregistered. - -proc http::unregister {proto} { - variable urlTypes - if {![info exists urlTypes($proto)]} { - return -code error "unsupported url type \"$proto\"" - } - set old $urlTypes($proto) - unset urlTypes($proto) - return $old -} - -# http::config -- -# -# See documentaion for details. -# -# Arguments: -# args Options parsed by the procedure. -# Results: -# TODO - -proc http::config {args} { - variable http - set options [lsort [array names http -*]] - set usage [join $options ", "] - if {[llength $args] == 0} { - set result {} - foreach name $options { - lappend result $name $http($name) - } - return $result - } - set options [string map {- ""} $options] - set pat ^-([join $options |])$ - if {[llength $args] == 1} { - set flag [lindex $args 0] - if {[regexp -- $pat $flag]} { - return $http($flag) - } else { - return -code error "Unknown option $flag, must be: $usage" - } - } else { - foreach {flag value} $args { - if {[regexp -- $pat $flag]} { - set http($flag) $value - } else { - return -code error "Unknown option $flag, must be: $usage" - } - } - } -} - -# http::Finish -- -# -# Clean up the socket and eval close time callbacks -# -# Arguments: -# token Connection token. -# errormsg (optional) If set, forces status to error. -# skipCB (optional) If set, don't call the -command callback. This -# is useful when geturl wants to throw an exception instead -# of calling the callback. That way, the same error isn't -# reported to two places. -# -# Side Effects: -# Closes the socket - -proc http::Finish { token {errormsg ""} {skipCB 0}} { - variable $token - upvar 0 $token state - global errorInfo errorCode - if {[string length $errormsg] != 0} { - set state(error) [list $errormsg $errorInfo $errorCode] - set state(status) error - } - catch {close $state(sock)} - catch {after cancel $state(after)} - if {[info exists state(-command)] && !$skipCB} { - if {[catch {eval $state(-command) {$token}} err]} { - if {[string length $errormsg] == 0} { - set state(error) [list $err $errorInfo $errorCode] - set state(status) error - } - } - if {[info exists state(-command)]} { - # Command callback may already have unset our state - unset state(-command) - } - } -} - -# http::reset -- -# -# See documentaion for details. -# -# Arguments: -# token Connection token. -# why Status info. -# -# Side Effects: -# See Finish - -proc http::reset { token {why reset} } { - variable $token - upvar 0 $token state - set state(status) $why - catch {fileevent $state(sock) readable {}} - catch {fileevent $state(sock) writable {}} - Finish $token - if {[info exists state(error)]} { - set errorlist $state(error) - unset state - eval ::error $errorlist - } -} - -# http::geturl -- -# -# Establishes a connection to a remote url via http. -# -# Arguments: -# url The http URL to goget. -# args Option value pairs. Valid options include: -# -blocksize, -validate, -headers, -timeout -# Results: -# Returns a token for this connection. This token is the name of an array -# that the caller should unset to garbage collect the state. - -proc http::geturl { url args } { - variable http - variable urlTypes - variable defaultCharset - variable strict - - # Initialize the state variable, an array. We'll return the name of this - # array as the token for the transaction. - - if {![info exists http(uid)]} { - set http(uid) 0 - } - set token [namespace current]::[incr http(uid)] - variable $token - upvar 0 $token state - reset $token - - # Process command options. - - array set state { - -binary false - -blocksize 8192 - -queryblocksize 8192 - -validate 0 - -headers {} - -timeout 0 - -type application/x-www-form-urlencoded - -queryprogress {} - state header - meta {} - coding {} - currentsize 0 - totalsize 0 - querylength 0 - queryoffset 0 - type text/html - body {} - status "" - http "" - } - # These flags have their types verified [Bug 811170] - array set type { - -binary boolean - -blocksize integer - -queryblocksize integer - -validate boolean - -timeout integer - } - set state(charset) $defaultCharset - set options {-binary -blocksize -channel -command -handler -headers \ - -progress -query -queryblocksize -querychannel -queryprogress\ - -validate -timeout -type} - set usage [join $options ", "] - set options [string map {- ""} $options] - set pat ^-([join $options |])$ - foreach {flag value} $args { - if {[regexp $pat $flag]} { - # Validate numbers - if {[info exists type($flag)] && \ - ![string is $type($flag) -strict $value]} { - unset $token - return -code error "Bad value for $flag ($value), must be $type($flag)" - } - set state($flag) $value - } else { - unset $token - return -code error "Unknown option $flag, can be: $usage" - } - } - - # Make sure -query and -querychannel aren't both specified - - set isQueryChannel [info exists state(-querychannel)] - set isQuery [info exists state(-query)] - if {$isQuery && $isQueryChannel} { - unset $token - return -code error "Can't combine -query and -querychannel options!" - } - - # Validate URL, determine the server host and port, and check proxy case - # Recognize user:pass@host URLs also, although we do not do anything with - # that info yet. - - # URLs have basically four parts. - # First, before the colon, is the protocol scheme (e.g. http) - # Second, for HTTP-like protocols, is the authority - # The authority is preceded by // and lasts up to (but not including) - # the following / and it identifies up to four parts, of which only one, - # the host, is required (if an authority is present at all). All other - # parts of the authority (user name, password, port number) are optional. - # Third is the resource name, which is split into two parts at a ? - # The first part (from the single "/" up to "?") is the path, and the - # second part (from that "?" up to "#") is the query. *HOWEVER*, we do - # not need to separate them; we send the whole lot to the server. - # Fourth is the fragment identifier, which is everything after the first - # "#" in the URL. The fragment identifier MUST NOT be sent to the server - # and indeed, we don't bother to validate it (it could be an error to - # pass it in here, but it's cheap to strip). - # - # An example of a URL that has all the parts: - # http://jschmoe:xyzzy@www.bogus.net:8000/foo/bar.tml?q=foo#changes - # The "http" is the protocol, the user is "jschmoe", the password is - # "xyzzy", the host is "www.bogus.net", the port is "8000", the path is - # "/foo/bar.tml", the query is "q=foo", and the fragment is "changes". - # - # Note that the RE actually combines the user and password parts, as - # recommended in RFC 3986. Indeed, that RFC states that putting passwords - # in URLs is a Really Bad Idea, something with which I would agree utterly. - # Also note that we do not currently support IPv6 addresses. - # - # From a validation perspective, we need to ensure that the parts of the - # URL that are going to the server are correctly encoded. - # This is only done if $::http::strict is true (default 0 for compat). - - set URLmatcher {(?x) # this is _expanded_ syntax - ^ - (?: (\w+) : ) ? # - (?: // - (?: - ( - [^@/\#?]+ # - ) @ - )? - ( [^/:\#?]+ ) # - (?: : (\d+) )? # - )? - ( / [^\#?]* (?: \? [^\#?]* )?)? # (including query) - (?: \# (.*) )? # - $ - } - - # Phase one: parse - if {![regexp -- $URLmatcher $url -> proto user host port srvurl]} { - unset $token - return -code error "Unsupported URL: $url" - } - # Phase two: validate - if {$host eq ""} { - # Caller has to provide a host name; we do not have a "default host" - # that would enable us to handle relative URLs. - unset $token - return -code error "Missing host part: $url" - # Note that we don't check the hostname for validity here; if it's - # invalid, we'll simply fail to resolve it later on. - } - if {$port ne "" && $port>65535} { - unset $token - return -code error "Invalid port number: $port" - } - # The user identification and resource identification parts of the URL can - # have encoded characters in them; take care! - if {$user ne ""} { - # Check for validity according to RFC 3986, Appendix A - set validityRE {(?xi) - ^ - (?: [-\w.~!$&'()*+,;=:] | %[0-9a-f][0-9a-f] )+ - $ - } - if {$strict && ![regexp -- $validityRE $user]} { - unset $token - # Provide a better error message in this error case - if {[regexp {(?i)%(?![0-9a-f][0-9a-f]).?.?} $user bad]} { - return -code error \ - "Illegal encoding character usage \"$bad\" in URL user" - } - return -code error "Illegal characters in URL user" - } - } - if {$srvurl ne ""} { - # Check for validity according to RFC 3986, Appendix A - set validityRE {(?xi) - ^ - # Path part (already must start with / character) - (?: [-\w.~!$&'()*+,;=:@/] | %[0-9a-f][0-9a-f] )* - # Query part (optional, permits ? characters) - (?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )? - $ - } - if {$strict && ![regexp -- $validityRE $srvurl]} { - unset $token - # Provide a better error message in this error case - if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} { - return -code error \ - "Illegal encoding character usage \"$bad\" in URL path" - } - return -code error "Illegal characters in URL path" - } - } else { - set srvurl / - } - if {[string length $proto] == 0} { - set proto http - } - if {![info exists urlTypes($proto)]} { - unset $token - return -code error "Unsupported URL type \"$proto\"" - } - set defport [lindex $urlTypes($proto) 0] - set defcmd [lindex $urlTypes($proto) 1] - - if {[string length $port] == 0} { - set port $defport - } - if {![catch {$http(-proxyfilter) $host} proxy]} { - set phost [lindex $proxy 0] - set pport [lindex $proxy 1] - } - - # OK, now reassemble into a full URL - set url ${proto}:// - if {$user ne ""} { - append url $user - append url @ - } - append url $host - if {$port != $defport} { - append url : $port - } - append url $srvurl - # Don't append the fragment! - set state(url) $url - - # If a timeout is specified we set up the after event and arrange for an - # asynchronous socket connection. - - if {$state(-timeout) > 0} { - set state(after) [after $state(-timeout) \ - [list http::reset $token timeout]] - set async -async - } else { - set async "" - } - - # If we are using the proxy, we must pass in the full URL that includes - # the server name. - - if {[info exists phost] && [string length $phost]} { - set srvurl $url - set conStat [catch {eval $defcmd $async {$phost $pport}} s] - } else { - set conStat [catch {eval $defcmd $async {$host $port}} s] - } - - if {$conStat} { - # Something went wrong while trying to establish the connection. Clean - # up after events and such, but DON'T call the command callback (if - # available) because we're going to throw an exception from here - # instead. - Finish $token "" 1 - cleanup $token - return -code error $s - } - set state(sock) $s - - # Wait for the connection to complete. - - if {$state(-timeout) > 0} { - fileevent $s writable [list http::Connect $token] - http::wait $token - - if {$state(status) eq "error"} { - # Something went wrong while trying to establish the connection. - # Clean up after events and such, but DON'T call the command - # callback (if available) because we're going to throw an - # exception from here instead. - set err [lindex $state(error) 0] - cleanup $token - return -code error $err - } elseif {$state(status) ne "connect"} { - # Likely to be connection timeout - return $token - } - set state(status) "" - } - - # Send data in cr-lf format, but accept any line terminators - - fconfigure $s -translation {auto crlf} -buffersize $state(-blocksize) - - # The following is disallowed in safe interpreters, but the socket is - # already in non-blocking mode in that case. - - catch {fconfigure $s -blocking off} - set how GET - if {$isQuery} { - set state(querylength) [string length $state(-query)] - if {$state(querylength) > 0} { - set how POST - set contDone 0 - } else { - # There's no query data. - unset state(-query) - set isQuery 0 - } - } elseif {$state(-validate)} { - set how HEAD - } elseif {$isQueryChannel} { - set how POST - # The query channel must be blocking for the async Write to - # work properly. - fconfigure $state(-querychannel) -blocking 1 -translation binary - set contDone 0 - } - - if {[catch { - puts $s "$how $srvurl HTTP/1.0" - puts $s "Accept: $http(-accept)" - if {$port == $defport} { - # Don't add port in this case, to handle broken servers. [Bug - # 504508] - puts $s "Host: $host" - } else { - puts $s "Host: $host:$port" - } - puts $s "User-Agent: $http(-useragent)" - foreach {key value} $state(-headers) { - set value [string map [list \n "" \r ""] $value] - set key [string trim $key] - if {$key eq "Content-Length"} { - set contDone 1 - set state(querylength) $value - } - if {[string length $key]} { - puts $s "$key: $value" - } - } - if {$isQueryChannel && $state(querylength) == 0} { - # Try to determine size of data in channel. If we cannot seek, the - # surrounding catch will trap us - - set start [tell $state(-querychannel)] - seek $state(-querychannel) 0 end - set state(querylength) \ - [expr {[tell $state(-querychannel)] - $start}] - seek $state(-querychannel) $start - } - - # Flush the request header and set up the fileevent that will either - # push the POST data or read the response. - # - # fileevent note: - # - # It is possible to have both the read and write fileevents active at - # this point. The only scenario it seems to affect is a server that - # closes the connection without reading the POST data. (e.g., early - # versions TclHttpd in various error cases). Depending on the platform, - # the client may or may not be able to get the response from the server - # because of the error it will get trying to write the post data. - # Having both fileevents active changes the timing and the behavior, - # but no two platforms (among Solaris, Linux, and NT) behave the same, - # and none behave all that well in any case. Servers should always read - # their POST data if they expect the client to read their response. - - if {$isQuery || $isQueryChannel} { - puts $s "Content-Type: $state(-type)" - if {!$contDone} { - puts $s "Content-Length: $state(querylength)" - } - puts $s "" - fconfigure $s -translation {auto binary} - fileevent $s writable [list http::Write $token] - } else { - puts $s "" - flush $s - fileevent $s readable [list http::Event $token] - } - - if {! [info exists state(-command)]} { - # geturl does EVERYTHING asynchronously, so if the user calls it - # synchronously, we just do a wait here. - - wait $token - if {$state(status) eq "error"} { - # Something went wrong, so throw the exception, and the - # enclosing catch will do cleanup. - return -code error [lindex $state(error) 0] - } - } - } err]} { - # The socket probably was never connected, or the connection dropped - # later. - - # Clean up after events and such, but DON'T call the command callback - # (if available) because we're going to throw an exception from here - # instead. - - # if state(status) is error, it means someone's already called Finish - # to do the above-described clean up. - if {$state(status) eq "error"} { - Finish $token $err 1 - } - cleanup $token - return -code error $err - } - - return $token -} - -# Data access functions: -# Data - the URL data -# Status - the transaction status: ok, reset, eof, timeout -# Code - the HTTP transaction code, e.g., 200 -# Size - the size of the URL data - -proc http::data {token} { - variable $token - upvar 0 $token state - return $state(body) -} -proc http::status {token} { - variable $token - upvar 0 $token state - return $state(status) -} -proc http::code {token} { - variable $token - upvar 0 $token state - return $state(http) -} -proc http::ncode {token} { - variable $token - upvar 0 $token state - if {[regexp {[0-9]{3}} $state(http) numeric_code]} { - return $numeric_code - } else { - return $state(http) - } -} -proc http::size {token} { - variable $token - upvar 0 $token state - return $state(currentsize) -} - -proc http::error {token} { - variable $token - upvar 0 $token state - if {[info exists state(error)]} { - return $state(error) - } - return "" -} - -# http::cleanup -# -# Garbage collect the state associated with a transaction -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# unsets the state array - -proc http::cleanup {token} { - variable $token - upvar 0 $token state - if {[info exists state]} { - unset state - } -} - -# http::Connect -# -# This callback is made when an asyncronous connection completes. -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Sets the status of the connection, which unblocks -# the waiting geturl call - -proc http::Connect {token} { - variable $token - upvar 0 $token state - global errorInfo errorCode - if {[eof $state(sock)] || - [string length [fconfigure $state(sock) -error]]} { - Finish $token "connect failed [fconfigure $state(sock) -error]" 1 - } else { - set state(status) connect - fileevent $state(sock) writable {} - } - return -} - -# http::Write -# -# Write POST query data to the socket -# -# Arguments -# token The token for the connection -# -# Side Effects -# Write the socket and handle callbacks. - -proc http::Write {token} { - variable $token - upvar 0 $token state - set s $state(sock) - - # Output a block. Tcl will buffer this if the socket blocks - set done 0 - if {[catch { - # Catch I/O errors on dead sockets - - if {[info exists state(-query)]} { - # Chop up large query strings so queryprogress callback can give - # smooth feedback. - - puts -nonewline $s \ - [string range $state(-query) $state(queryoffset) \ - [expr {$state(queryoffset) + $state(-queryblocksize) - 1}]] - incr state(queryoffset) $state(-queryblocksize) - if {$state(queryoffset) >= $state(querylength)} { - set state(queryoffset) $state(querylength) - set done 1 - } - } else { - # Copy blocks from the query channel - - set outStr [read $state(-querychannel) $state(-queryblocksize)] - puts -nonewline $s $outStr - incr state(queryoffset) [string length $outStr] - if {[eof $state(-querychannel)]} { - set done 1 - } - } - } err]} { - # Do not call Finish here, but instead let the read half of the socket - # process whatever server reply there is to get. - - set state(posterror) $err - set done 1 - } - if {$done} { - catch {flush $s} - fileevent $s writable {} - fileevent $s readable [list http::Event $token] - } - - # Callback to the client after we've completely handled everything. - - if {[string length $state(-queryprogress)]} { - eval $state(-queryprogress) [list $token $state(querylength)\ - $state(queryoffset)] - } -} - -# http::Event -# -# Handle input on the socket -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Read the socket and handle callbacks. - -proc http::Event {token} { - variable $token - upvar 0 $token state - set s $state(sock) - - if {[eof $s]} { - Eof $token - return - } - if {$state(state) eq "header"} { - if {[catch {gets $s line} n]} { - Finish $token $n - } elseif {$n == 0} { - variable encodings - set state(state) body - if {$state(-binary) || ![string match -nocase text* $state(type)] - || [string match *gzip* $state(coding)] - || [string match *compress* $state(coding)]} { - # Turn off conversions for non-text data - fconfigure $s -translation binary - if {[info exists state(-channel)]} { - fconfigure $state(-channel) -translation binary - } - } else { - # If we are getting text, set the incoming channel's encoding - # correctly. iso8859-1 is the RFC default, but this could be - # any IANA charset. However, we only know how to convert what - # we have encodings for. - set idx [lsearch -exact $encodings \ - [string tolower $state(charset)]] - if {$idx >= 0} { - fconfigure $s -encoding [lindex $encodings $idx] - } - } - if {[info exists state(-channel)] && \ - ![info exists state(-handler)]} { - # Initiate a sequence of background fcopies - fileevent $s readable {} - CopyStart $s $token - } - } elseif {$n > 0} { - if {[regexp -nocase {^content-type:(.+)$} $line x type]} { - set state(type) [string trim $type] - # grab the optional charset information - regexp -nocase {charset\s*=\s*(\S+)} $type x state(charset) - } - if {[regexp -nocase {^content-length:(.+)$} $line x length]} { - set state(totalsize) [string trim $length] - } - if {[regexp -nocase {^content-encoding:(.+)$} $line x coding]} { - set state(coding) [string trim $coding] - } - if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} { - lappend state(meta) $key [string trim $value] - } elseif {[string match HTTP* $line]} { - set state(http) $line - } - } - } else { - if {[catch { - if {[info exists state(-handler)]} { - set n [eval $state(-handler) {$s $token}] - } else { - set block [read $s $state(-blocksize)] - set n [string length $block] - if {$n >= 0} { - append state(body) $block - } - } - if {$n >= 0} { - incr state(currentsize) $n - } - } err]} { - Finish $token $err - } else { - if {[info exists state(-progress)]} { - eval $state(-progress) \ - {$token $state(totalsize) $state(currentsize)} - } - } - } -} - -# http::CopyStart -# -# Error handling wrapper around fcopy -# -# Arguments -# s The socket to copy from -# token The token returned from http::geturl -# -# Side Effects -# This closes the connection upon error - -proc http::CopyStart {s token} { - variable $token - upvar 0 $token state - if {[catch { - fcopy $s $state(-channel) -size $state(-blocksize) -command \ - [list http::CopyDone $token] - } err]} { - Finish $token $err - } -} - -# http::CopyDone -# -# fcopy completion callback -# -# Arguments -# token The token returned from http::geturl -# count The amount transfered -# -# Side Effects -# Invokes callbacks - -proc http::CopyDone {token count {error {}}} { - variable $token - upvar 0 $token state - set s $state(sock) - incr state(currentsize) $count - if {[info exists state(-progress)]} { - eval $state(-progress) {$token $state(totalsize) $state(currentsize)} - } - # At this point the token may have been reset - if {[string length $error]} { - Finish $token $error - } elseif {[catch {eof $s} iseof] || $iseof} { - Eof $token - } else { - CopyStart $s $token - } -} - -# http::Eof -# -# Handle eof on the socket -# -# Arguments -# token The token returned from http::geturl -# -# Side Effects -# Clean up the socket - -proc http::Eof {token} { - variable $token - upvar 0 $token state - if {$state(state) eq "header"} { - # Premature eof - set state(status) eof - } else { - set state(status) ok - } - set state(state) eof - Finish $token -} - -# http::wait -- -# -# See documentaion for details. -# -# Arguments: -# token Connection token. -# -# Results: -# The status after the wait. - -proc http::wait {token} { - variable $token - upvar 0 $token state - - if {![info exists state(status)] || [string length $state(status)] == 0} { - # We must wait on the original variable name, not the upvar alias - vwait $token\(status) - } - - return $state(status) -} - -# http::formatQuery -- -# -# See documentaion for details. Call http::formatQuery with an even -# number of arguments, where the first is a name, the second is a value, -# the third is another name, and so on. -# -# Arguments: -# args A list of name-value pairs. -# -# Results: -# TODO - -proc http::formatQuery {args} { - set result "" - set sep "" - foreach i $args { - append result $sep [mapReply $i] - if {$sep eq "="} { - set sep & - } else { - set sep = - } - } - return $result -} - -# http::mapReply -- -# -# Do x-www-urlencoded character mapping -# -# Arguments: -# string The string the needs to be encoded -# -# Results: -# The encoded string - -proc http::mapReply {string} { - variable http - variable formMap - - # The spec says: "non-alphanumeric characters are replaced by '%HH'". Use - # a pre-computed map and [string map] to do the conversion (much faster - # than [regsub]/[subst]). [Bug 1020491] - - if {$http(-urlencoding) ne ""} { - set string [encoding convertto $http(-urlencoding) $string] - return [string map $formMap $string] - } - set converted [string map $formMap $string] - if {[string match "*\[\u0100-\uffff\]*" $converted]} { - regexp {[\u0100-\uffff]} $converted badChar - # Return this error message for maximum compatability... :^/ - return -code error \ - "can't read \"formMap($badChar)\": no such element in array" - } - return $converted -} - -# http::ProxyRequired -- -# Default proxy filter. -# -# Arguments: -# host The destination host -# -# Results: -# The current proxy settings - -proc http::ProxyRequired {host} { - variable http - if {[info exists http(-proxyhost)] && [string length $http(-proxyhost)]} { - if {![info exists http(-proxyport)] || \ - ![string length $http(-proxyport)]} { - set http(-proxyport) 8080 - } - return [list $http(-proxyhost) $http(-proxyport)] - } -} diff --git a/mingw/lib/tcl8.4/http2.5/pkgIndex.tcl b/mingw/lib/tcl8.4/http2.5/pkgIndex.tcl deleted file mode 100644 index af88a2ea..00000000 --- a/mingw/lib/tcl8.4/http2.5/pkgIndex.tcl +++ /dev/null @@ -1,12 +0,0 @@ -# Tcl package index file, version 1.1 -# This file is generated by the "pkg_mkIndex" command -# and sourced either when an application starts up or -# by a "package unknown" script. It invokes the -# "package ifneeded" command to set up package-related -# information so that packages will be loaded automatically -# in response to "package require" commands. When this -# script is sourced, the variable $dir must contain the -# full path name of this file's directory. - -if {![package vsatisfies [package provide Tcl] 8.4]} {return} -package ifneeded http 2.5.3 [list tclPkgSetup $dir http 2.5.3 {{http.tcl source {::http::config ::http::formatQuery ::http::geturl ::http::reset ::http::wait ::http::register ::http::unregister ::http::mapReply}}}] diff --git a/mingw/lib/tcl8.4/init.tcl b/mingw/lib/tcl8.4/init.tcl deleted file mode 100644 index 81056422..00000000 --- a/mingw/lib/tcl8.4/init.tcl +++ /dev/null @@ -1,747 +0,0 @@ -# init.tcl -- -# -# Default system startup file for Tcl-based applications. Defines -# "unknown" procedure and auto-load facilities. -# -# RCS: @(#) $Id: init.tcl,v 1.55.2.6 2005/07/22 21:59:40 dgp Exp $ -# -# Copyright (c) 1991-1993 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# Copyright (c) 1998-1999 Scriptics Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -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.4 - -# Compute the auto path to use in this interpreter. -# The values on the path come from several locations: -# -# The environment variable TCLLIBPATH -# -# tcl_library, which is the directory containing this init.tcl script. -# tclInitScript.h searches around for the directory containing this -# init.tcl and defines tcl_library to that location before sourcing it. -# -# The parent directory of tcl_library. Adding the parent -# means that packages in peer directories will be found automatically. -# -# Also add the directory ../lib relative to the directory where the -# executable is located. This is meant to find binary packages for the -# same architecture as the current executable. -# -# tcl_pkgPath, which is set by the platform-specific initialization routines -# On UNIX it is compiled in -# On Windows, it is not used -# On Macintosh it is "Tool Command Language" in the Extensions folder - -if {![info exists auto_path]} { - if {[info exists env(TCLLIBPATH)]} { - set auto_path $env(TCLLIBPATH) - } else { - set auto_path "" - } -} -namespace eval tcl { - variable Dir - if {[info library] ne ""} { - foreach Dir [list [info library] [file dirname [info library]]] { - if {[lsearch -exact $::auto_path $Dir] < 0} { - lappend ::auto_path $Dir - } - } - } - set Dir [file join [file dirname [file dirname \ - [info nameofexecutable]]] lib] - if {[lsearch -exact $::auto_path $Dir] < 0} { - lappend ::auto_path $Dir - } - if {[info exists ::tcl_pkgPath]} { - foreach Dir $::tcl_pkgPath { - if {[lsearch -exact $::auto_path $Dir] < 0} { - lappend ::auto_path $Dir - } - } - } -} - -# Windows specific end of initialization - -if {(![interp issafe]) && $tcl_platform(platform) eq "windows"} { - namespace eval tcl { - proc EnvTraceProc {lo n1 n2 op} { - set x $::env($n2) - set ::env($lo) $x - set ::env([string toupper $lo]) $x - } - proc InitWinEnv {} { - global env tcl_platform - foreach p [array names env] { - set u [string toupper $p] - if {$u ne $p} { - switch -- $u { - COMSPEC - - PATH { - if {![info exists env($u)]} { - set env($u) $env($p) - } - trace add variable env($p) write \ - [namespace code [list EnvTraceProc $p]] - trace add variable env($u) write \ - [namespace code [list EnvTraceProc $p]] - } - } - } - } - if {![info exists env(COMSPEC)]} { - if {$tcl_platform(os) eq "Windows NT"} { - set env(COMSPEC) cmd.exe - } else { - set env(COMSPEC) command.com - } - } - } - InitWinEnv - } -} - -# Setup the unknown package handler - -package unknown tclPkgUnknown - -if {![interp issafe]} { - # setup platform specific unknown package handlers - if {$::tcl_platform(platform) eq "unix" - && $::tcl_platform(os) eq "Darwin"} { - package unknown [list tcl::MacOSXPkgUnknown [package unknown]] - } - if {$::tcl_platform(platform) eq "macintosh"} { - package unknown [list tcl::MacPkgUnknown [package unknown]] - } -} - -# Conditionalize for presence of exec. - -if {[namespace which -command exec] eq ""} { - - # Some machines, such as the Macintosh, do not have exec. Also, on all - # platforms, safe interpreters do not have exec. - - set auto_noexec 1 -} -set errorCode "" -set errorInfo "" - -# Define a log command (which can be overwitten to log errors -# differently, specially when stderr is not available) - -if {[namespace which -command tclLog] eq ""} { - proc tclLog {string} { - catch {puts stderr $string} - } -} - -# unknown -- -# This procedure is called when a Tcl command is invoked that doesn't -# exist in the interpreter. It takes the following steps to make the -# command available: -# -# 1. See if the command has the form "namespace inscope ns cmd" and -# if so, concatenate its arguments onto the end and evaluate it. -# 2. See if the autoload facility can locate the command in a -# Tcl script file. If so, load it and execute it. -# 3. If the command was invoked interactively at top-level: -# (a) see if the command exists as an executable UNIX program. -# If so, "exec" the command. -# (b) see if the command requests csh-like history substitution -# in one of the common forms !!, !, or ^old^new. If -# so, emulate csh's history substitution. -# (c) see if the command is a unique abbreviation for another -# command. If so, invoke the command. -# -# Arguments: -# args - A list whose elements are the words of the original -# command, including the command name. - -proc unknown args { - global auto_noexec auto_noload env unknown_pending tcl_interactive - global errorCode errorInfo - - # If the command word has the form "namespace inscope ns cmd" - # then concatenate its arguments onto the end and evaluate it. - - set cmd [lindex $args 0] - if {[regexp "^:*namespace\[ \t\n\]+inscope" $cmd] && [llength $cmd] == 4} { - set arglist [lrange $args 1 end] - set ret [catch {uplevel 1 ::$cmd $arglist} result] - if {$ret == 0} { - return $result - } else { - return -code $ret -errorcode $errorCode $result - } - } - - # Save the values of errorCode and errorInfo variables, since they - # may get modified if caught errors occur below. The variables will - # be restored just before re-executing the missing command. - - # Safety check in case something unsets the variables - # ::errorInfo or ::errorCode. [Bug 1063707] - if {![info exists errorCode]} { - set errorCode "" - } - if {![info exists errorInfo]} { - set errorInfo "" - } - set savedErrorCode $errorCode - set savedErrorInfo $errorInfo - set name $cmd - if {![info exists auto_noload]} { - # - # Make sure we're not trying to load the same proc twice. - # - if {[info exists unknown_pending($name)]} { - return -code error "self-referential recursion in \"unknown\" for command \"$name\""; - } - set unknown_pending($name) pending; - set ret [catch {auto_load $name [uplevel 1 {::namespace current}]} msg] - unset unknown_pending($name); - if {$ret != 0} { - append errorInfo "\n (autoloading \"$name\")" - return -code $ret -errorcode $errorCode -errorinfo $errorInfo $msg - } - if {![array size unknown_pending]} { - unset unknown_pending - } - if {$msg} { - set errorCode $savedErrorCode - set errorInfo $savedErrorInfo - set code [catch {uplevel 1 $args} msg] - if {$code == 1} { - # - # Compute stack trace contribution from the [uplevel]. - # Note the dependence on how Tcl_AddErrorInfo, etc. - # construct the stack trace. - # - set cinfo $args - set ellipsis "" - while {[string bytelength $cinfo] > 150} { - set cinfo [string range $cinfo 0 end-1] - set ellipsis "..." - } - append cinfo $ellipsis "\"\n (\"uplevel\" body line 1)" - append cinfo "\n invoked from within" - append cinfo "\n\"uplevel 1 \$args\"" - # - # Try each possible form of the stack trace - # and trim the extra contribution from the matching case - # - set expect "$msg\n while executing\n\"$cinfo" - if {$errorInfo eq $expect} { - # - # The stack has only the eval from the expanded command - # Do not generate any stack trace here. - # - return -code error -errorcode $errorCode $msg - } - # - # Stack trace is nested, trim off just the contribution - # from the extra "eval" of $args due to the "catch" above. - # - set expect "\n invoked from within\n\"$cinfo" - set exlen [string length $expect] - set eilen [string length $errorInfo] - set i [expr {$eilen - $exlen - 1}] - set einfo [string range $errorInfo 0 $i] - # - # For now verify that $errorInfo consists of what we are about - # to return plus what we expected to trim off. - # - if {$errorInfo ne "$einfo$expect"} { - error "Tcl bug: unexpected stack trace in \"unknown\"" {} \ - [list CORE UNKNOWN BADTRACE $expect $errorInfo] - } - return -code error -errorcode $errorCode \ - -errorinfo $einfo $msg - } else { - return -code $code $msg - } - } - } - - if {([info level] == 1) && [info script] eq "" \ - && [info exists tcl_interactive] && $tcl_interactive} { - if {![info exists auto_noexec]} { - set new [auto_execok $name] - if {$new ne ""} { - set errorCode $savedErrorCode - set errorInfo $savedErrorInfo - set redir "" - if {[namespace which -command console] eq ""} { - set redir ">&@stdout <@stdin" - } - return [uplevel 1 exec $redir $new [lrange $args 1 end]] - } - } - set errorCode $savedErrorCode - set errorInfo $savedErrorInfo - if {$name eq "!!"} { - set newcmd [history event] - } elseif {[regexp {^!(.+)$} $name -> event]} { - set newcmd [history event $event] - } elseif {[regexp {^\^([^^]*)\^([^^]*)\^?$} $name -> old new]} { - set newcmd [history event -1] - catch {regsub -all -- $old $newcmd $new newcmd} - } - if {[info exists newcmd]} { - tclLog $newcmd - history change $newcmd 0 - return [uplevel 1 $newcmd] - } - - set ret [catch {set candidates [info commands $name*]} msg] - if {$name eq "::"} { - set name "" - } - if {$ret != 0} { - return -code $ret -errorcode $errorCode \ - "error in unknown while checking if \"$name\" is\ - a unique command abbreviation:\n$msg" - } - # Handle empty $name separately due to strangeness in [string first] - if {$name eq ""} { - if {[llength $candidates] != 1} { - return -code error "empty command name \"\"" - } - return [uplevel 1 [lreplace $args 0 0 [lindex $candidates 0]]] - } - # Filter out bogus matches when $name contained - # a glob-special char [Bug 946952] - set cmds [list] - foreach x $candidates { - if {[string first $name $x] == 0} { - lappend cmds $x - } - } - if {[llength $cmds] == 1} { - return [uplevel 1 [lreplace $args 0 0 [lindex $cmds 0]]] - } - if {[llength $cmds]} { - return -code error "ambiguous command name \"$name\": [lsort $cmds]" - } - } - return -code error "invalid command name \"$name\"" -} - -# auto_load -- -# Checks a collection of library directories to see if a procedure -# is defined in one of them. If so, it sources the appropriate -# library file to create the procedure. Returns 1 if it successfully -# loaded the procedure, 0 otherwise. -# -# Arguments: -# cmd - Name of the command to find and load. -# namespace (optional) The namespace where the command is being used - must be -# a canonical namespace as returned [namespace current] -# for instance. If not given, namespace current is used. - -proc auto_load {cmd {namespace {}}} { - global auto_index auto_oldpath auto_path - - if {$namespace eq ""} { - set namespace [uplevel 1 [list ::namespace current]] - } - set nameList [auto_qualify $cmd $namespace] - # workaround non canonical auto_index entries that might be around - # from older auto_mkindex versions - lappend nameList $cmd - foreach name $nameList { - if {[info exists auto_index($name)]} { - namespace eval :: $auto_index($name) - # There's a couple of ways to look for a command of a given - # name. One is to use - # info commands $name - # Unfortunately, if the name has glob-magic chars in it like * - # or [], it may not match. For our purposes here, a better - # route is to use - # namespace which -command $name - if {[namespace which -command $name] ne ""} { - return 1 - } - } - } - if {![info exists auto_path]} { - return 0 - } - - if {![auto_load_index]} { - return 0 - } - foreach name $nameList { - if {[info exists auto_index($name)]} { - namespace eval :: $auto_index($name) - if {[namespace which -command $name] ne ""} { - return 1 - } - } - } - return 0 -} - -# auto_load_index -- -# Loads the contents of tclIndex files on the auto_path directory -# list. This is usually invoked within auto_load to load the index -# of available commands. Returns 1 if the index is loaded, and 0 if -# the index is already loaded and up to date. -# -# Arguments: -# None. - -proc auto_load_index {} { - global auto_index auto_oldpath auto_path errorInfo errorCode - - if {[info exists auto_oldpath] && $auto_oldpath eq $auto_path} { - return 0 - } - set auto_oldpath $auto_path - - # Check if we are a safe interpreter. In that case, we support only - # newer format tclIndex files. - - set issafe [interp issafe] - for {set i [expr {[llength $auto_path] - 1}]} {$i >= 0} {incr i -1} { - set dir [lindex $auto_path $i] - set f "" - if {$issafe} { - catch {source [file join $dir tclIndex]} - } elseif {[catch {set f [open [file join $dir tclIndex]]}]} { - continue - } else { - set error [catch { - set id [gets $f] - if {$id eq "# Tcl autoload index file, version 2.0"} { - eval [read $f] - } elseif {$id eq "# Tcl autoload index file: each line identifies a Tcl"} { - while {[gets $f line] >= 0} { - if {[string index $line 0] eq "#" - || ([llength $line] != 2)} { - continue - } - set name [lindex $line 0] - set auto_index($name) \ - "source [file join $dir [lindex $line 1]]" - } - } else { - error "[file join $dir tclIndex] isn't a proper Tcl index file" - } - } msg] - if {$f ne ""} { - close $f - } - if {$error} { - error $msg $errorInfo $errorCode - } - } - } - return 1 -} - -# auto_qualify -- -# -# Compute a fully qualified names list for use in the auto_index array. -# For historical reasons, commands in the global namespace do not have leading -# :: in the index key. The list has two elements when the command name is -# relative (no leading ::) and the namespace is not the global one. Otherwise -# only one name is returned (and searched in the auto_index). -# -# Arguments - -# cmd The command name. Can be any name accepted for command -# invocations (Like "foo::::bar"). -# namespace The namespace where the command is being used - must be -# a canonical namespace as returned by [namespace current] -# for instance. - -proc auto_qualify {cmd namespace} { - - # count separators and clean them up - # (making sure that foo:::::bar will be treated as foo::bar) - set n [regsub -all {::+} $cmd :: cmd] - - # Ignore namespace if the name starts with :: - # Handle special case of only leading :: - - # Before each return case we give an example of which category it is - # with the following form : - # ( inputCmd, inputNameSpace) -> output - - if {[string match ::* $cmd]} { - if {$n > 1} { - # ( ::foo::bar , * ) -> ::foo::bar - return [list $cmd] - } else { - # ( ::global , * ) -> global - return [list [string range $cmd 2 end]] - } - } - - # Potentially returning 2 elements to try : - # (if the current namespace is not the global one) - - if {$n == 0} { - if {$namespace eq "::"} { - # ( nocolons , :: ) -> nocolons - return [list $cmd] - } else { - # ( nocolons , ::sub ) -> ::sub::nocolons nocolons - return [list ${namespace}::$cmd $cmd] - } - } elseif {$namespace eq "::"} { - # ( foo::bar , :: ) -> ::foo::bar - return [list ::$cmd] - } else { - # ( foo::bar , ::sub ) -> ::sub::foo::bar ::foo::bar - return [list ${namespace}::$cmd ::$cmd] - } -} - -# auto_import -- -# -# Invoked during "namespace import" to make see if the imported commands -# reside in an autoloaded library. If so, the commands are loaded so -# that they will be available for the import links. If not, then this -# procedure does nothing. -# -# Arguments - -# pattern The pattern of commands being imported (like "foo::*") -# a canonical namespace as returned by [namespace current] - -proc auto_import {pattern} { - global auto_index - - # If no namespace is specified, this will be an error case - - if {![string match *::* $pattern]} { - return - } - - set ns [uplevel 1 [list ::namespace current]] - set patternList [auto_qualify $pattern $ns] - - auto_load_index - - foreach pattern $patternList { - foreach name [array names auto_index $pattern] { - if {([namespace which -command $name] eq "") - && ([namespace qualifiers $pattern] eq [namespace qualifiers $name])} { - namespace eval :: $auto_index($name) - } - } - } -} - -# auto_execok -- -# -# Returns string that indicates name of program to execute if -# name corresponds to a shell builtin or an executable in the -# Windows search path, or "" otherwise. Builds an associative -# array auto_execs that caches information about previous checks, -# for speed. -# -# Arguments: -# name - Name of a command. - -if {$tcl_platform(platform) eq "windows"} { -# Windows version. -# -# Note that info executable doesn't work under Windows, so we have to -# look for files with .exe, .com, or .bat extensions. Also, the path -# may be in the Path or PATH environment variables, and path -# components are separated with semicolons, not colons as under Unix. -# -proc auto_execok name { - global auto_execs env tcl_platform - - if {[info exists auto_execs($name)]} { - return $auto_execs($name) - } - set auto_execs($name) "" - - set shellBuiltins [list cls copy date del erase dir echo mkdir \ - md rename ren rmdir rd time type ver vol] - if {$tcl_platform(os) eq "Windows NT"} { - # NT includes the 'start' built-in - lappend shellBuiltins "start" - } - if {[info exists env(PATHEXT)]} { - # Add an initial ; to have the {} extension check first. - set execExtensions [split ";$env(PATHEXT)" ";"] - } else { - set execExtensions [list {} .com .exe .bat] - } - - if {[lsearch -exact $shellBuiltins $name] != -1} { - # When this is command.com for some reason on Win2K, Tcl won't - # exec it unless the case is right, which this corrects. COMSPEC - # may not point to a real file, so do the check. - set cmd $env(COMSPEC) - if {[file exists $cmd]} { - set cmd [file attributes $cmd -shortname] - } - return [set auto_execs($name) [list $cmd /c $name]] - } - - if {[llength [file split $name]] != 1} { - foreach ext $execExtensions { - set file ${name}${ext} - if {[file exists $file] && ![file isdirectory $file]} { - return [set auto_execs($name) [list $file]] - } - } - return "" - } - - set path "[file dirname [info nameof]];.;" - if {[info exists env(WINDIR)]} { - set windir $env(WINDIR) - } - if {[info exists windir]} { - if {$tcl_platform(os) eq "Windows NT"} { - append path "$windir/system32;" - } - append path "$windir/system;$windir;" - } - - foreach var {PATH Path path} { - if {[info exists env($var)]} { - append path ";$env($var)" - } - } - - foreach dir [split $path {;}] { - # Skip already checked directories - if {[info exists checked($dir)] || $dir eq {}} { continue } - set checked($dir) {} - foreach ext $execExtensions { - set file [file join $dir ${name}${ext}] - if {[file exists $file] && ![file isdirectory $file]} { - return [set auto_execs($name) [list $file]] - } - } - } - return "" -} - -} else { -# Unix version. -# -proc auto_execok name { - global auto_execs env - - if {[info exists auto_execs($name)]} { - return $auto_execs($name) - } - set auto_execs($name) "" - if {[llength [file split $name]] != 1} { - if {[file executable $name] && ![file isdirectory $name]} { - set auto_execs($name) [list $name] - } - return $auto_execs($name) - } - foreach dir [split $env(PATH) :] { - if {$dir eq ""} { - set dir . - } - set file [file join $dir $name] - if {[file executable $file] && ![file isdirectory $file]} { - set auto_execs($name) [list $file] - return $auto_execs($name) - } - } - return "" -} - -} - -# ::tcl::CopyDirectory -- -# -# This procedure is called by Tcl's core when attempts to call the -# filesystem's copydirectory function fail. The semantics of the call -# are that 'dest' does not yet exist, i.e. dest should become the exact -# image of src. If dest does exist, we throw an error. -# -# Note that making changes to this procedure can change the results -# of running Tcl's tests. -# -# Arguments: -# action - "renaming" or "copying" -# src - source directory -# dest - destination directory -proc tcl::CopyDirectory {action src dest} { - set nsrc [file normalize $src] - set ndest [file normalize $dest] - if {$action eq "renaming"} { - # Can't rename volumes. We could give a more precise - # error message here, but that would break the test suite. - if {[lsearch -exact [file volumes] $nsrc] != -1} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - } - if {[file exists $dest]} { - if {$nsrc eq $ndest} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - if {$action eq "copying"} { - return -code error "error $action \"$src\" to\ - \"$dest\": file already exists" - } else { - # Depending on the platform, and on the current - # working directory, the directories '.', '..' - # can be returned in various combinations. Anyway, - # if any other file is returned, we must signal an error. - set existing [glob -nocomplain -directory $dest * .*] - eval [linsert \ - [glob -nocomplain -directory $dest -type hidden * .*] 0 \ - lappend existing] - foreach s $existing { - if {([file tail $s] ne ".") && ([file tail $s] ne "..")} { - return -code error "error $action \"$src\" to\ - \"$dest\": file already exists" - } - } - } - } else { - if {[string first $nsrc $ndest] != -1} { - set srclen [expr {[llength [file split $nsrc]] -1}] - set ndest [lindex [file split $ndest] $srclen] - if {$ndest eq [file tail $nsrc]} { - return -code error "error $action \"$src\" to\ - \"$dest\": trying to rename a volume or move a directory\ - into itself" - } - } - file mkdir $dest - } - # Have to be careful to capture both visible and hidden files. - # We will also be more generous to the file system and not - # assume the hidden and non-hidden lists are non-overlapping. - # - # On Unix 'hidden' files begin with '.'. On other platforms - # or filesystems hidden files may have other interpretations. - set filelist [concat [glob -nocomplain -directory $src *] \ - [glob -nocomplain -directory $src -types hidden *]] - - foreach s [lsort -unique $filelist] { - if {([file tail $s] ne ".") && ([file tail $s] ne "..")} { - file copy $s [file join $dest [file tail $s]] - } - } - return -} diff --git a/mingw/lib/tcl8.4/ldAout.tcl b/mingw/lib/tcl8.4/ldAout.tcl deleted file mode 100644 index 243c6d4e..00000000 --- a/mingw/lib/tcl8.4/ldAout.tcl +++ /dev/null @@ -1,233 +0,0 @@ -# ldAout.tcl -- -# -# This "tclldAout" procedure in this script acts as a replacement -# for the "ld" command when linking an object file that will be -# loaded dynamically into Tcl or Tk using pseudo-static linking. -# -# Parameters: -# The arguments to the script are the command line options for -# an "ld" command. -# -# Results: -# The "ld" command is parsed, and the "-o" option determines the -# module name. ".a" and ".o" options are accumulated. -# The input archives and object files are examined with the "nm" -# command to determine whether the modules initialization -# entry and safe initialization entry are present. A trivial -# C function that locates the entries is composed, compiled, and -# its .o file placed before all others in the command; then -# "ld" is executed to bind the objects together. -# -# RCS: @(#) $Id: ldAout.tcl,v 1.5 2001/09/28 01:21:53 dgp Exp $ -# -# Copyright (c) 1995, by General Electric Company. All rights reserved. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# This work was supported in part by the ARPA Manufacturing Automation -# and Design Engineering (MADE) Initiative through ARPA contract -# F33615-94-C-4400. - -proc tclLdAout {{cc {}} {shlib_suffix {}} {shlib_cflags none}} { - global env - global argv - - if {[string equal $cc ""]} { - set cc $env(CC) - } - - # if only two parameters are supplied there is assumed that the - # only shlib_suffix is missing. This parameter is anyway available - # as "info sharedlibextension" too, so there is no need to transfer - # 3 parameters to the function tclLdAout. For compatibility, this - # function now accepts both 2 and 3 parameters. - - if {[string equal $shlib_suffix ""]} { - set shlib_cflags $env(SHLIB_CFLAGS) - } elseif {[string equal $shlib_cflags "none"]} { - set shlib_cflags $shlib_suffix - } - - # seenDotO is nonzero if a .o or .a file has been seen - set seenDotO 0 - - # minusO is nonzero if the last command line argument was "-o". - set minusO 0 - - # head has command line arguments up to but not including the first - # .o or .a file. tail has the rest of the arguments. - set head {} - set tail {} - - # nmCommand is the "nm" command that lists global symbols from the - # object files. - set nmCommand {|nm -g} - - # entryProtos is the table of _Init and _SafeInit prototypes found in the - # module. - set entryProtos {} - - # entryPoints is the table of _Init and _SafeInit entries found in the - # module. - set entryPoints {} - - # libraries is the list of -L and -l flags to the linker. - set libraries {} - set libdirs {} - - # Process command line arguments - foreach a $argv { - if {!$minusO && [regexp {\.[ao]$} $a]} { - set seenDotO 1 - lappend nmCommand $a - } - if {$minusO} { - set outputFile $a - set minusO 0 - } elseif {![string compare $a -o]} { - set minusO 1 - } - if {[regexp {^-[lL]} $a]} { - lappend libraries $a - if {[regexp {^-L} $a]} { - lappend libdirs [string range $a 2 end] - } - } elseif {$seenDotO} { - lappend tail $a - } else { - lappend head $a - } - } - lappend libdirs /lib /usr/lib - - # MIPS -- If there are corresponding G0 libraries, replace the - # ordinary ones with the G0 ones. - - set libs {} - foreach lib $libraries { - if {[regexp {^-l} $lib]} { - set lname [string range $lib 2 end] - foreach dir $libdirs { - if {[file exists [file join $dir lib${lname}_G0.a]]} { - set lname ${lname}_G0 - break - } - } - lappend libs -l$lname - } else { - lappend libs $lib - } - } - set libraries $libs - - # Extract the module name from the "-o" option - - if {![info exists outputFile]} { - error "-o option must be supplied to link a Tcl load module" - } - set m [file tail $outputFile] - if {[regexp {\.a$} $outputFile]} { - set shlib_suffix .a - } else { - set shlib_suffix "" - } - if {[regexp {\..*$} $outputFile match]} { - set l [expr {[string length $m] - [string length $match]}] - } else { - error "Output file does not appear to have a suffix" - } - set modName [string tolower $m 0 [expr {$l-1}]] - if {[regexp {^lib} $modName]} { - set modName [string range $modName 3 end] - } - if {[regexp {[0-9\.]*(_g0)?$} $modName match]} { - set modName [string range $modName 0 [expr {[string length $modName]-[string length $match]-1}]] - } - set modName [string totitle $modName] - - # Catalog initialization entry points found in the module - - set f [open $nmCommand r] - while {[gets $f l] >= 0} { - if {[regexp {T[ ]*_?([A-Z][a-z0-9_]*_(Safe)?Init(__FP10Tcl_Interp)?)$} $l trash symbol]} { - if {![regexp {_?([A-Z][a-z0-9_]*_(Safe)?Init)} $symbol trash s]} { - set s $symbol - } - append entryProtos {extern int } $symbol { (); } \n - append entryPoints { } \{ { "} $s {", } $symbol { } \} , \n - } - } - close $f - - if {[string equal $entryPoints ""]} { - error "No entry point found in objects" - } - - # Compose a C function that resolves the initialization entry points and - # embeds the required libraries in the object code. - - set C {#include } - append C \n - append C {char TclLoadLibraries_} $modName { [] =} \n - append C { "@LIBS: } $libraries {";} \n - append C $entryProtos - append C {static struct } \{ \n - append C { char * name;} \n - append C { int (*value)();} \n - append C \} {dictionary [] = } \{ \n - append C $entryPoints - append C { 0, 0 } \n \} \; \n - append C {typedef struct Tcl_Interp Tcl_Interp;} \n - append C {typedef int Tcl_PackageInitProc (Tcl_Interp *);} \n - append C {Tcl_PackageInitProc *} \n - append C TclLoadDictionary_ $modName { (symbol)} \n - append C { CONST char * symbol;} \n - append C { - { - int i; - for (i = 0; dictionary [i] . name != 0; ++i) { - if (!strcmp (symbol, dictionary [i] . name)) { - return dictionary [i].value; - } - } - return 0; - } - } - append C \n - - - # Write the C module and compile it - - set cFile tcl$modName.c - set f [open $cFile w] - puts -nonewline $f $C - close $f - set ccCommand "$cc -c $shlib_cflags $cFile" - puts stderr $ccCommand - eval exec $ccCommand - - # Now compose and execute the ld command that packages the module - - if {[string equal $shlib_suffix ".a"]} { - set ldCommand "ar cr $outputFile" - regsub { -o} $tail {} tail - } else { - set ldCommand ld - foreach item $head { - lappend ldCommand $item - } - } - lappend ldCommand tcl$modName.o - foreach item $tail { - lappend ldCommand $item - } - puts stderr $ldCommand - eval exec $ldCommand - if {[string equal $shlib_suffix ".a"]} { - exec ranlib $outputFile - } - - # Clean up working files - exec /bin/rm $cFile [file rootname $cFile].o -} diff --git a/mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl b/mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl deleted file mode 100644 index 907e35e2..00000000 --- a/mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl +++ /dev/null @@ -1,485 +0,0 @@ -# msgcat.tcl -- -# -# This file defines various procedures which implement a -# message catalog facility for Tcl programs. It should be -# loaded with the command "package require msgcat". -# -# Copyright (c) 1998-2000 by Ajuba Solutions. -# Copyright (c) 1998 by Mark Harrison. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: msgcat.tcl,v 1.17.2.6 2006/09/10 18:23:45 dgp Exp $ - -package require Tcl 8.2 -# When the version number changes, be sure to update the pkgIndex.tcl file, -# and the installation directory in the Makefiles. -package provide msgcat 1.3.4 - -namespace eval msgcat { - namespace export mc mcload mclocale mcmax mcmset mcpreferences mcset \ - mcunknown - - # Records the current locale as passed to mclocale - variable Locale "" - - # Records the list of locales to search - variable Loclist {} - - # Records the mapping between source strings and translated strings. The - # array key is of the form ",," and the value is - # the translated string. - array set Msgs {} - - # Map of language codes used in Windows registry to those of ISO-639 - if { [string equal $::tcl_platform(platform) windows] } { - array set WinRegToISO639 { - 01 ar 0401 ar_SA 0801 ar_IQ 0c01 ar_EG 1001 ar_LY 1401 ar_DZ - 1801 ar_MA 1c01 ar_TN 2001 ar_OM 2401 ar_YE 2801 ar_SY - 2c01 ar_JO 3001 ar_LB 3401 ar_KW 3801 ar_AE 3c01 ar_BH - 4001 ar_QA - 02 bg 0402 bg_BG - 03 ca 0403 ca_ES - 04 zh 0404 zh_TW 0804 zh_CN 0c04 zh_HK 1004 zh_SG 1404 zh_MO - 05 cs 0405 cs_CZ - 06 da 0406 da_DK - 07 de 0407 de_DE 0807 de_CH 0c07 de_AT 1007 de_LU 1407 de_LI - 08 el 0408 el_GR - 09 en 0409 en_US 0809 en_GB 0c09 en_AU 1009 en_CA 1409 en_NZ - 1809 en_IE 1c09 en_ZA 2009 en_JM 2409 en_GD 2809 en_BZ - 2c09 en_TT 3009 en_ZW 3409 en_PH - 0a es 040a es_ES 080a es_MX 0c0a es_ES@modern 100a es_GT 140a es_CR - 180a es_PA 1c0a es_DO 200a es_VE 240a es_CO 280a es_PE - 2c0a es_AR 300a es_EC 340a es_CL 380a es_UY 3c0a es_PY - 400a es_BO 440a es_SV 480a es_HN 4c0a es_NI 500a es_PR - 0b fi 040b fi_FI - 0c fr 040c fr_FR 080c fr_BE 0c0c fr_CA 100c fr_CH 140c fr_LU - 180c fr_MC - 0d he 040d he_IL - 0e hu 040e hu_HU - 0f is 040f is_IS - 10 it 0410 it_IT 0810 it_CH - 11 ja 0411 ja_JP - 12 ko 0412 ko_KR - 13 nl 0413 nl_NL 0813 nl_BE - 14 no 0414 no_NO 0814 nn_NO - 15 pl 0415 pl_PL - 16 pt 0416 pt_BR 0816 pt_PT - 17 rm 0417 rm_CH - 18 ro 0418 ro_RO - 19 ru - 1a hr 041a hr_HR 081a sr_YU 0c1a sr_YU@cyrillic - 1b sk 041b sk_SK - 1c sq 041c sq_AL - 1d sv 041d sv_SE 081d sv_FI - 1e th 041e th_TH - 1f tr 041f tr_TR - 20 ur 0420 ur_PK 0820 ur_IN - 21 id 0421 id_ID - 22 uk 0422 uk_UA - 23 be 0423 be_BY - 24 sl 0424 sl_SI - 25 et 0425 et_EE - 26 lv 0426 lv_LV - 27 lt 0427 lt_LT - 28 tg 0428 tg_TJ - 29 fa 0429 fa_IR - 2a vi 042a vi_VN - 2b hy 042b hy_AM - 2c az 042c az_AZ@latin 082c az_AZ@cyrillic - 2d eu - 2e wen 042e wen_DE - 2f mk 042f mk_MK - 30 bnt 0430 bnt_TZ - 31 ts 0431 ts_ZA - 33 ven 0433 ven_ZA - 34 xh 0434 xh_ZA - 35 zu 0435 zu_ZA - 36 af 0436 af_ZA - 37 ka 0437 ka_GE - 38 fo 0438 fo_FO - 39 hi 0439 hi_IN - 3a mt 043a mt_MT - 3b se 043b se_NO - 043c gd_UK 083c ga_IE - 3d yi 043d yi_IL - 3e ms 043e ms_MY 083e ms_BN - 3f kk 043f kk_KZ - 40 ky 0440 ky_KG - 41 sw 0441 sw_KE - 42 tk 0442 tk_TM - 43 uz 0443 uz_UZ@latin 0843 uz_UZ@cyrillic - 44 tt 0444 tt_RU - 45 bn 0445 bn_IN - 46 pa 0446 pa_IN - 47 gu 0447 gu_IN - 48 or 0448 or_IN - 49 ta - 4a te 044a te_IN - 4b kn 044b kn_IN - 4c ml 044c ml_IN - 4d as 044d as_IN - 4e mr 044e mr_IN - 4f sa 044f sa_IN - 50 mn - 51 bo 0451 bo_CN - 52 cy 0452 cy_GB - 53 km 0453 km_KH - 54 lo 0454 lo_LA - 55 my 0455 my_MM - 56 gl 0456 gl_ES - 57 kok 0457 kok_IN - 58 mni 0458 mni_IN - 59 sd - 5a syr 045a syr_TR - 5b si 045b si_LK - 5c chr 045c chr_US - 5d iu 045d iu_CA - 5e am 045e am_ET - 5f ber 045f ber_MA - 60 ks 0460 ks_PK 0860 ks_IN - 61 ne 0461 ne_NP 0861 ne_IN - 62 fy 0462 fy_NL - 63 ps - 64 tl 0464 tl_PH - 65 div 0465 div_MV - 66 bin 0466 bin_NG - 67 ful 0467 ful_NG - 68 ha 0468 ha_NG - 69 nic 0469 nic_NG - 6a yo 046a yo_NG - 70 ibo 0470 ibo_NG - 71 kau 0471 kau_NG - 72 om 0472 om_ET - 73 ti 0473 ti_ET - 74 gn 0474 gn_PY - 75 cpe 0475 cpe_US - 76 la 0476 la_VA - 77 so 0477 so_SO - 78 sit 0478 sit_CN - 79 pap 0479 pap_AN - } - } -} - -# msgcat::mc -- -# -# Find the translation for the given string based on the current -# locale setting. Check the local namespace first, then look in each -# parent namespace until the source is found. If additional args are -# specified, use the format command to work them into the traslated -# string. -# -# Arguments: -# src The string to translate. -# args Args to pass to the format command -# -# Results: -# Returns the translatd string. Propagates errors thrown by the -# format command. - -proc msgcat::mc {src args} { - # Check for the src in each namespace starting from the local and - # ending in the global. - - variable Msgs - variable Loclist - variable Locale - - set ns [uplevel 1 [list ::namespace current]] - - while {$ns != ""} { - foreach loc $Loclist { - if {[info exists Msgs($loc,$ns,$src)]} { - if {[llength $args] == 0} { - return $Msgs($loc,$ns,$src) - } else { - return [uplevel 1 \ - [linsert $args 0 ::format $Msgs($loc,$ns,$src)]] - } - } - } - set ns [namespace parent $ns] - } - # we have not found the translation - return [uplevel 1 \ - [linsert $args 0 [::namespace origin mcunknown] $Locale $src]] -} - -# msgcat::mclocale -- -# -# Query or set the current locale. -# -# Arguments: -# newLocale (Optional) The new locale string. Locale strings -# should be composed of one or more sublocale parts -# separated by underscores (e.g. en_US). -# -# Results: -# Returns the current locale. - -proc msgcat::mclocale {args} { - variable Loclist - variable Locale - set len [llength $args] - - if {$len > 1} { - error {wrong # args: should be "mclocale ?newLocale?"} - } - - if {$len == 1} { - set newLocale [lindex $args 0] - if {$newLocale ne [file tail $newLocale]} { - return -code error "invalid newLocale value \"$newLocale\":\ - could be path to unsafe code." - } - set Locale [string tolower $newLocale] - set Loclist {} - set word "" - foreach part [split $Locale _] { - set word [string trimleft "${word}_${part}" _] - set Loclist [linsert $Loclist 0 $word] - } - } - return $Locale -} - -# msgcat::mcpreferences -- -# -# Fetch the list of locales used to look up strings, ordered from -# most preferred to least preferred. -# -# Arguments: -# None. -# -# Results: -# Returns an ordered list of the locales preferred by the user. - -proc msgcat::mcpreferences {} { - variable Loclist - return $Loclist -} - -# msgcat::mcload -- -# -# Attempt to load message catalogs for each locale in the -# preference list from the specified directory. -# -# Arguments: -# langdir The directory to search. -# -# Results: -# Returns the number of message catalogs that were loaded. - -proc msgcat::mcload {langdir} { - set x 0 - foreach p [mcpreferences] { - set langfile [file join $langdir $p.msg] - if {[file exists $langfile]} { - incr x - set fid [open $langfile "r"] - fconfigure $fid -encoding utf-8 - uplevel 1 [read $fid] - close $fid - } - } - return $x -} - -# msgcat::mcset -- -# -# Set the translation for a given string in a specified locale. -# -# Arguments: -# locale The locale to use. -# src The source string. -# dest (Optional) The translated string. If omitted, -# the source string is used. -# -# Results: -# Returns the new locale. - -proc msgcat::mcset {locale src {dest ""}} { - variable Msgs - if {[llength [info level 0]] == 3} { ;# dest not specified - set dest $src - } - - set ns [uplevel 1 [list ::namespace current]] - - set Msgs([string tolower $locale],$ns,$src) $dest - return $dest -} - -# msgcat::mcmset -- -# -# Set the translation for multiple strings in a specified locale. -# -# Arguments: -# locale The locale to use. -# pairs One or more src/dest pairs (must be even length) -# -# Results: -# Returns the number of pairs processed - -proc msgcat::mcmset {locale pairs } { - variable Msgs - - set length [llength $pairs] - if {$length % 2} { - error {bad translation list: should be "mcmset locale {src dest ...}"} - } - - set locale [string tolower $locale] - set ns [uplevel 1 [list ::namespace current]] - - foreach {src dest} $pairs { - set Msgs($locale,$ns,$src) $dest - } - - return $length -} - -# msgcat::mcunknown -- -# -# This routine is called by msgcat::mc if a translation cannot -# be found for a string. This routine is intended to be replaced -# by an application specific routine for error reporting -# purposes. The default behavior is to return the source string. -# If additional args are specified, the format command will be used -# to work them into the traslated string. -# -# Arguments: -# locale The current locale. -# src The string to be translated. -# args Args to pass to the format command -# -# Results: -# Returns the translated value. - -proc msgcat::mcunknown {locale src args} { - if {[llength $args]} { - return [uplevel 1 [linsert $args 0 ::format $src]] - } else { - return $src - } -} - -# msgcat::mcmax -- -# -# Calculates the maximun length of the translated strings of the given -# list. -# -# Arguments: -# args strings to translate. -# -# Results: -# Returns the length of the longest translated string. - -proc msgcat::mcmax {args} { - set max 0 - foreach string $args { - set translated [uplevel 1 [list [namespace origin mc] $string]] - set len [string length $translated] - if {$len>$max} { - set max $len - } - } - return $max -} - -# Convert the locale values stored in environment variables to a form -# suitable for passing to [mclocale] -proc msgcat::ConvertLocale {value} { - # Assume $value is of form: $language[_$territory][.$codeset][@modifier] - # Convert to form: $language[_$territory][_$modifier] - # - # Comment out expanded RE version -- bugs alleged - # regexp -expanded { - # ^ # Match all the way to the beginning - # ([^_.@]*) # Match "lanugage"; ends with _, ., or @ - # (_([^.@]*))? # Match (optional) "territory"; starts with _ - # ([.]([^@]*))? # Match (optional) "codeset"; starts with . - # (@(.*))? # Match (optional) "modifier"; starts with @ - # $ # Match all the way to the end - # } $value -> language _ territory _ codeset _ modifier - if {![regexp {^([^_.@]+)(_([^.@]*))?([.]([^@]*))?(@(.*))?$} $value \ - -> language _ territory _ codeset _ modifier]} { - return -code error "invalid locale '$value': empty language part" - } - set ret $language - if {[string length $territory]} { - append ret _$territory - } - if {[string length $modifier]} { - append ret _$modifier - } - return $ret -} - -# Initialize the default locale -proc msgcat::Init {} { - # - # set default locale, try to get from environment - # - foreach varName {LC_ALL LC_MESSAGES LANG} { - if {[info exists ::env($varName)] - && ![string equal "" $::env($varName)]} { - if {![catch {mclocale [ConvertLocale $::env($varName)]}]} { - return - } - } - } - # - # On Darwin, fallback to current CFLocale identifier if available. - # - if {[string equal $::tcl_platform(os) Darwin] - && [string equal $::tcl_platform(platform) unix] - && [info exists ::tcl::mac::locale] - && ![string equal $::tcl::mac::locale ""]} { - if {![catch {mclocale [ConvertLocale $::tcl::mac::locale]}]} { - return - } - } - # - # The rest of this routine is special processing for Windows; - # all other platforms, get out now. - # - if { ![string equal $::tcl_platform(platform) windows] } { - mclocale C - return - } - # - # On Windows, try to set locale depending on registry settings, - # or fall back on locale of "C". - # - set key {HKEY_CURRENT_USER\Control Panel\International} - if {[catch {package require registry}] \ - || [catch {registry get $key "locale"} locale]} { - mclocale C - return - } - # - # Keep trying to match against smaller and smaller suffixes - # of the registry value, since the latter hexadigits appear - # to determine general language and earlier hexadigits determine - # more precise information, such as territory. For example, - # 0409 - English - United States - # 0809 - English - United Kingdom - # Add more translations to the WinRegToISO639 array above. - # - variable WinRegToISO639 - set locale [string tolower $locale] - while {[string length $locale]} { - if {![catch {mclocale [ConvertLocale $WinRegToISO639($locale)]}]} { - return - } - set locale [string range $locale 1 end] - } - # - # No translation known. Fall back on "C" locale - # - mclocale C -} -msgcat::Init diff --git a/mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl b/mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl deleted file mode 100644 index 5888ddb6..00000000 --- a/mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl +++ /dev/null @@ -1,2 +0,0 @@ -if {![package vsatisfies [package provide Tcl] 8.2]} {return} -package ifneeded msgcat 1.3.4 [list source [file join $dir msgcat.tcl]] diff --git a/mingw/lib/tcl8.4/opt0.4/optparse.tcl b/mingw/lib/tcl8.4/opt0.4/optparse.tcl deleted file mode 100644 index 43e9b488..00000000 --- a/mingw/lib/tcl8.4/opt0.4/optparse.tcl +++ /dev/null @@ -1,1074 +0,0 @@ -# optparse.tcl -- -# -# (private) Option parsing package -# Primarily used internally by the safe:: code. -# -# WARNING: This code will go away in a future release -# of Tcl. It is NOT supported and you should not rely -# on it. If your code does rely on this package you -# may directly incorporate this code into your application. -# -# RCS: @(#) $Id: optparse.tcl,v 1.8.2.1 2003/09/10 20:29:59 dgp Exp $ - -package require Tcl 8.2 -# When this version number changes, update the pkgIndex.tcl file -# and the install directory in the Makefiles. -package provide opt 0.4.4.1 - -namespace eval ::tcl { - - # Exported APIs - namespace export OptKeyRegister OptKeyDelete OptKeyError OptKeyParse \ - OptProc OptProcArgGiven OptParse \ - Lempty Lget \ - Lassign Lvarpop Lvarpop1 Lvarset Lvarincr \ - SetMax SetMin - - -################# Example of use / 'user documentation' ################### - - proc OptCreateTestProc {} { - - # Defines ::tcl::OptParseTest as a test proc with parsed arguments - # (can't be defined before the code below is loaded (before "OptProc")) - - # Every OptProc give usage information on "procname -help". - # Try "tcl::OptParseTest -help" and "tcl::OptParseTest -a" and - # then other arguments. - # - # example of 'valid' call: - # ::tcl::OptParseTest save -4 -pr 23 -libsok SybTcl\ - # -nostatics false ch1 - OptProc OptParseTest { - {subcommand -choice {save print} "sub command"} - {arg1 3 "some number"} - {-aflag} - {-intflag 7} - {-weirdflag "help string"} - {-noStatics "Not ok to load static packages"} - {-nestedloading1 true "OK to load into nested slaves"} - {-nestedloading2 -boolean true "OK to load into nested slaves"} - {-libsOK -choice {Tk SybTcl} - "List of packages that can be loaded"} - {-precision -int 12 "Number of digits of precision"} - {-intval 7 "An integer"} - {-scale -float 1.0 "Scale factor"} - {-zoom 1.0 "Zoom factor"} - {-arbitrary foobar "Arbitrary string"} - {-random -string 12 "Random string"} - {-listval -list {} "List value"} - {-blahflag -blah abc "Funny type"} - {arg2 -boolean "a boolean"} - {arg3 -choice "ch1 ch2"} - {?optarg? -list {} "optional argument"} - } { - foreach v [info locals] { - puts stderr [format "%14s : %s" $v [set $v]] - } - } - } - -################### No User serviceable part below ! ############### - - # Array storing the parsed descriptions - variable OptDesc; - array set OptDesc {}; - # Next potentially free key id (numeric) - variable OptDescN 0; - -# Inside algorithm/mechanism description: -# (not for the faint hearted ;-) -# -# The argument description is parsed into a "program tree" -# It is called a "program" because it is the program used by -# the state machine interpreter that use that program to -# actually parse the arguments at run time. -# -# The general structure of a "program" is -# notation (pseudo bnf like) -# name :== definition defines "name" as being "definition" -# { x y z } means list of x, y, and z -# x* means x repeated 0 or more time -# x+ means "x x*" -# x? means optionally x -# x | y means x or y -# "cccc" means the literal string -# -# program :== { programCounter programStep* } -# -# programStep :== program | singleStep -# -# programCounter :== {"P" integer+ } -# -# singleStep :== { instruction parameters* } -# -# instruction :== single element list -# -# (the difference between singleStep and program is that \ -# llength [lindex $program 0] >= 2 -# while -# llength [lindex $singleStep 0] == 1 -# ) -# -# And for this application: -# -# singleStep :== { instruction varname {hasBeenSet currentValue} type -# typeArgs help } -# instruction :== "flags" | "value" -# type :== knowType | anyword -# knowType :== "string" | "int" | "boolean" | "boolflag" | "float" -# | "choice" -# -# for type "choice" typeArgs is a list of possible choices, the first one -# is the default value. for all other types the typeArgs is the default value -# -# a "boolflag" is the type for a flag whose presence or absence, without -# additional arguments means respectively true or false (default flag type). -# -# programCounter is the index in the list of the currently processed -# programStep (thus starting at 1 (0 is {"P" prgCounterValue}). -# If it is a list it points toward each currently selected programStep. -# (like for "flags", as they are optional, form a set and programStep). - -# Performance/Implementation issues -# --------------------------------- -# We use tcl lists instead of arrays because with tcl8.0 -# they should start to be much faster. -# But this code use a lot of helper procs (like Lvarset) -# which are quite slow and would be helpfully optimized -# for instance by being written in C. Also our struture -# is complex and there is maybe some places where the -# string rep might be calculated at great exense. to be checked. - -# -# Parse a given description and saves it here under the given key -# generate a unused keyid if not given -# -proc ::tcl::OptKeyRegister {desc {key ""}} { - variable OptDesc; - variable OptDescN; - if {[string equal $key ""]} { - # in case a key given to us as a parameter was a number - while {[info exists OptDesc($OptDescN)]} {incr OptDescN} - set key $OptDescN; - incr OptDescN; - } - # program counter - set program [list [list "P" 1]]; - - # are we processing flags (which makes a single program step) - set inflags 0; - - set state {}; - - # flag used to detect that we just have a single (flags set) subprogram. - set empty 1; - - foreach item $desc { - if {$state == "args"} { - # more items after 'args'... - return -code error "'args' special argument must be the last one"; - } - set res [OptNormalizeOne $item]; - set state [lindex $res 0]; - if {$inflags} { - if {$state == "flags"} { - # add to 'subprogram' - lappend flagsprg $res; - } else { - # put in the flags - # structure for flag programs items is a list of - # {subprgcounter {prg flag 1} {prg flag 2} {...}} - lappend program $flagsprg; - # put the other regular stuff - lappend program $res; - set inflags 0; - set empty 0; - } - } else { - if {$state == "flags"} { - set inflags 1; - # sub program counter + first sub program - set flagsprg [list [list "P" 1] $res]; - } else { - lappend program $res; - set empty 0; - } - } - } - if {$inflags} { - if {$empty} { - # We just have the subprogram, optimize and remove - # unneeded level: - set program $flagsprg; - } else { - lappend program $flagsprg; - } - } - - set OptDesc($key) $program; - - return $key; -} - -# -# Free the storage for that given key -# -proc ::tcl::OptKeyDelete {key} { - variable OptDesc; - unset OptDesc($key); -} - - # Get the parsed description stored under the given key. - proc OptKeyGetDesc {descKey} { - variable OptDesc; - if {![info exists OptDesc($descKey)]} { - return -code error "Unknown option description key \"$descKey\""; - } - set OptDesc($descKey); - } - -# Parse entry point for ppl who don't want to register with a key, -# for instance because the description changes dynamically. -# (otherwise one should really use OptKeyRegister once + OptKeyParse -# as it is way faster or simply OptProc which does it all) -# Assign a temporary key, call OptKeyParse and then free the storage -proc ::tcl::OptParse {desc arglist} { - set tempkey [OptKeyRegister $desc]; - set ret [catch {uplevel 1 [list ::tcl::OptKeyParse $tempkey $arglist]} res]; - OptKeyDelete $tempkey; - return -code $ret $res; -} - -# Helper function, replacement for proc that both -# register the description under a key which is the name of the proc -# (and thus unique to that code) -# and add a first line to the code to call the OptKeyParse proc -# Stores the list of variables that have been actually given by the user -# (the other will be sets to their default value) -# into local variable named "Args". -proc ::tcl::OptProc {name desc body} { - set namespace [uplevel 1 [list ::namespace current]]; - if {[string match "::*" $name] || [string equal $namespace "::"]} { - # absolute name or global namespace, name is the key - set key $name; - } else { - # we are relative to some non top level namespace: - set key "${namespace}::${name}"; - } - OptKeyRegister $desc $key; - uplevel 1 [list ::proc $name args "set Args \[::tcl::OptKeyParse $key \$args\]\n$body"]; - return $key; -} -# Check that a argument has been given -# assumes that "OptProc" has been used as it will check in "Args" list -proc ::tcl::OptProcArgGiven {argname} { - upvar Args alist; - expr {[lsearch $alist $argname] >=0} -} - - ####### - # Programs/Descriptions manipulation - - # Return the instruction word/list of a given step/(sub)program - proc OptInstr {lst} { - lindex $lst 0; - } - # Is a (sub) program or a plain instruction ? - proc OptIsPrg {lst} { - expr {[llength [OptInstr $lst]]>=2} - } - # Is this instruction a program counter or a real instr - proc OptIsCounter {item} { - expr {[lindex $item 0]=="P"} - } - # Current program counter (2nd word of first word) - proc OptGetPrgCounter {lst} { - Lget $lst {0 1} - } - # Current program counter (2nd word of first word) - proc OptSetPrgCounter {lstName newValue} { - upvar $lstName lst; - set lst [lreplace $lst 0 0 [concat "P" $newValue]]; - } - # returns a list of currently selected items. - proc OptSelection {lst} { - set res {}; - foreach idx [lrange [lindex $lst 0] 1 end] { - lappend res [Lget $lst $idx]; - } - return $res; - } - - # Advance to next description - proc OptNextDesc {descName} { - uplevel 1 [list Lvarincr $descName {0 1}]; - } - - # Get the current description, eventually descend - proc OptCurDesc {descriptions} { - lindex $descriptions [OptGetPrgCounter $descriptions]; - } - # get the current description, eventually descend - # through sub programs as needed. - proc OptCurDescFinal {descriptions} { - set item [OptCurDesc $descriptions]; - # Descend untill we get the actual item and not a sub program - while {[OptIsPrg $item]} { - set item [OptCurDesc $item]; - } - return $item; - } - # Current final instruction adress - proc OptCurAddr {descriptions {start {}}} { - set adress [OptGetPrgCounter $descriptions]; - lappend start $adress; - set item [lindex $descriptions $adress]; - if {[OptIsPrg $item]} { - return [OptCurAddr $item $start]; - } else { - return $start; - } - } - # Set the value field of the current instruction - proc OptCurSetValue {descriptionsName value} { - upvar $descriptionsName descriptions - # get the current item full adress - set adress [OptCurAddr $descriptions]; - # use the 3th field of the item (see OptValue / OptNewInst) - lappend adress 2 - Lvarset descriptions $adress [list 1 $value]; - # ^hasBeenSet flag - } - - # empty state means done/paste the end of the program - proc OptState {item} { - lindex $item 0 - } - - # current state - proc OptCurState {descriptions} { - OptState [OptCurDesc $descriptions]; - } - - ####### - # Arguments manipulation - - # Returns the argument that has to be processed now - proc OptCurrentArg {lst} { - lindex $lst 0; - } - # Advance to next argument - proc OptNextArg {argsName} { - uplevel 1 [list Lvarpop1 $argsName]; - } - ####### - - - - - - # Loop over all descriptions, calling OptDoOne which will - # eventually eat all the arguments. - proc OptDoAll {descriptionsName argumentsName} { - upvar $descriptionsName descriptions - upvar $argumentsName arguments; -# puts "entered DoAll"; - # Nb: the places where "state" can be set are tricky to figure - # because DoOne sets the state to flagsValue and return -continue - # when needed... - set state [OptCurState $descriptions]; - # We'll exit the loop in "OptDoOne" or when state is empty. - while 1 { - set curitem [OptCurDesc $descriptions]; - # Do subprograms if needed, call ourselves on the sub branch - while {[OptIsPrg $curitem]} { - OptDoAll curitem arguments -# puts "done DoAll sub"; - # Insert back the results in current tree; - Lvarset1nc descriptions [OptGetPrgCounter $descriptions]\ - $curitem; - OptNextDesc descriptions; - set curitem [OptCurDesc $descriptions]; - set state [OptCurState $descriptions]; - } -# puts "state = \"$state\" - arguments=($arguments)"; - if {[Lempty $state]} { - # Nothing left to do, we are done in this branch: - break; - } - # The following statement can make us terminate/continue - # as it use return -code {break, continue, return and error} - # codes - OptDoOne descriptions state arguments; - # If we are here, no special return code where issued, - # we'll step to next instruction : -# puts "new state = \"$state\""; - OptNextDesc descriptions; - set state [OptCurState $descriptions]; - } - } - - # Process one step for the state machine, - # eventually consuming the current argument. - proc OptDoOne {descriptionsName stateName argumentsName} { - upvar $argumentsName arguments; - upvar $descriptionsName descriptions; - upvar $stateName state; - - # the special state/instruction "args" eats all - # the remaining args (if any) - if {($state == "args")} { - if {![Lempty $arguments]} { - # If there is no additional arguments, leave the default value - # in. - OptCurSetValue descriptions $arguments; - set arguments {}; - } -# puts "breaking out ('args' state: consuming every reminding args)" - return -code break; - } - - if {[Lempty $arguments]} { - if {$state == "flags"} { - # no argument and no flags : we're done -# puts "returning to previous (sub)prg (no more args)"; - return -code return; - } elseif {$state == "optValue"} { - set state next; # not used, for debug only - # go to next state - return ; - } else { - return -code error [OptMissingValue $descriptions]; - } - } else { - set arg [OptCurrentArg $arguments]; - } - - switch $state { - flags { - # A non-dash argument terminates the options, as does -- - - # Still a flag ? - if {![OptIsFlag $arg]} { - # don't consume the argument, return to previous prg - return -code return; - } - # consume the flag - OptNextArg arguments; - if {[string equal "--" $arg]} { - # return from 'flags' state - return -code return; - } - - set hits [OptHits descriptions $arg]; - if {$hits > 1} { - return -code error [OptAmbigous $descriptions $arg] - } elseif {$hits == 0} { - return -code error [OptFlagUsage $descriptions $arg] - } - set item [OptCurDesc $descriptions]; - if {[OptNeedValue $item]} { - # we need a value, next state is - set state flagValue; - } else { - OptCurSetValue descriptions 1; - } - # continue - return -code continue; - } - flagValue - - value { - set item [OptCurDesc $descriptions]; - # Test the values against their required type - if {[catch {OptCheckType $arg\ - [OptType $item] [OptTypeArgs $item]} val]} { - return -code error [OptBadValue $item $arg $val] - } - # consume the value - OptNextArg arguments; - # set the value - OptCurSetValue descriptions $val; - # go to next state - if {$state == "flagValue"} { - set state flags - return -code continue; - } else { - set state next; # not used, for debug only - return ; # will go on next step - } - } - optValue { - set item [OptCurDesc $descriptions]; - # Test the values against their required type - if {![catch {OptCheckType $arg\ - [OptType $item] [OptTypeArgs $item]} val]} { - # right type, so : - # consume the value - OptNextArg arguments; - # set the value - OptCurSetValue descriptions $val; - } - # go to next state - set state next; # not used, for debug only - return ; # will go on next step - } - } - # If we reach this point: an unknown - # state as been entered ! - return -code error "Bug! unknown state in DoOne \"$state\"\ - (prg counter [OptGetPrgCounter $descriptions]:\ - [OptCurDesc $descriptions])"; - } - -# Parse the options given the key to previously registered description -# and arguments list -proc ::tcl::OptKeyParse {descKey arglist} { - - set desc [OptKeyGetDesc $descKey]; - - # make sure -help always give usage - if {[string equal -nocase "-help" $arglist]} { - return -code error [OptError "Usage information:" $desc 1]; - } - - OptDoAll desc arglist; - - if {![Lempty $arglist]} { - return -code error [OptTooManyArgs $desc $arglist]; - } - - # Analyse the result - # Walk through the tree: - OptTreeVars $desc "#[expr {[info level]-1}]" ; -} - - # determine string length for nice tabulated output - proc OptTreeVars {desc level {vnamesLst {}}} { - foreach item $desc { - if {[OptIsCounter $item]} continue; - if {[OptIsPrg $item]} { - set vnamesLst [OptTreeVars $item $level $vnamesLst]; - } else { - set vname [OptVarName $item]; - upvar $level $vname var - if {[OptHasBeenSet $item]} { -# puts "adding $vname" - # lets use the input name for the returned list - # it is more usefull, for instance you can check that - # no flags at all was given with expr - # {![string match "*-*" $Args]} - lappend vnamesLst [OptName $item]; - set var [OptValue $item]; - } else { - set var [OptDefaultValue $item]; - } - } - } - return $vnamesLst - } - - -# Check the type of a value -# and emit an error if arg is not of the correct type -# otherwise returns the canonical value of that arg (ie 0/1 for booleans) -proc ::tcl::OptCheckType {arg type {typeArgs ""}} { -# puts "checking '$arg' against '$type' ($typeArgs)"; - - # only types "any", "choice", and numbers can have leading "-" - - switch -exact -- $type { - int { - if {![string is integer -strict $arg]} { - error "not an integer" - } - return $arg; - } - float { - return [expr {double($arg)}] - } - script - - list { - # if llength fail : malformed list - if {[llength $arg]==0 && [OptIsFlag $arg]} { - error "no values with leading -" - } - return $arg; - } - boolean { - if {![string is boolean -strict $arg]} { - error "non canonic boolean" - } - # convert true/false because expr/if is broken with "!,... - return [expr {$arg ? 1 : 0}] - } - choice { - if {[lsearch -exact $typeArgs $arg] < 0} { - error "invalid choice" - } - return $arg; - } - any { - return $arg; - } - string - - default { - if {[OptIsFlag $arg]} { - error "no values with leading -" - } - return $arg - } - } - return neverReached; -} - - # internal utilities - - # returns the number of flags matching the given arg - # sets the (local) prg counter to the list of matches - proc OptHits {descName arg} { - upvar $descName desc; - set hits 0 - set hitems {} - set i 1; - - set larg [string tolower $arg]; - set len [string length $larg]; - set last [expr {$len-1}]; - - foreach item [lrange $desc 1 end] { - set flag [OptName $item] - # lets try to match case insensitively - # (string length ought to be cheap) - set lflag [string tolower $flag]; - if {$len == [string length $lflag]} { - if {[string equal $larg $lflag]} { - # Exact match case - OptSetPrgCounter desc $i; - return 1; - } - } elseif {[string equal $larg [string range $lflag 0 $last]]} { - lappend hitems $i; - incr hits; - } - incr i; - } - if {$hits} { - OptSetPrgCounter desc $hitems; - } - return $hits - } - - # Extract fields from the list structure: - - proc OptName {item} { - lindex $item 1; - } - proc OptHasBeenSet {item} { - Lget $item {2 0}; - } - proc OptValue {item} { - Lget $item {2 1}; - } - - proc OptIsFlag {name} { - string match "-*" $name; - } - proc OptIsOpt {name} { - string match {\?*} $name; - } - proc OptVarName {item} { - set name [OptName $item]; - if {[OptIsFlag $name]} { - return [string range $name 1 end]; - } elseif {[OptIsOpt $name]} { - return [string trim $name "?"]; - } else { - return $name; - } - } - proc OptType {item} { - lindex $item 3 - } - proc OptTypeArgs {item} { - lindex $item 4 - } - proc OptHelp {item} { - lindex $item 5 - } - proc OptNeedValue {item} { - expr {![string equal [OptType $item] boolflag]} - } - proc OptDefaultValue {item} { - set val [OptTypeArgs $item] - switch -exact -- [OptType $item] { - choice {return [lindex $val 0]} - boolean - - boolflag { - # convert back false/true to 0/1 because expr !$bool - # is broken.. - if {$val} { - return 1 - } else { - return 0 - } - } - } - return $val - } - - # Description format error helper - proc OptOptUsage {item {what ""}} { - return -code error "invalid description format$what: $item\n\ - should be a list of {varname|-flagname ?-type? ?defaultvalue?\ - ?helpstring?}"; - } - - - # Generate a canonical form single instruction - proc OptNewInst {state varname type typeArgs help} { - list $state $varname [list 0 {}] $type $typeArgs $help; - # ^ ^ - # | | - # hasBeenSet=+ +=currentValue - } - - # Translate one item to canonical form - proc OptNormalizeOne {item} { - set lg [Lassign $item varname arg1 arg2 arg3]; -# puts "called optnormalizeone '$item' v=($varname), lg=$lg"; - set isflag [OptIsFlag $varname]; - set isopt [OptIsOpt $varname]; - if {$isflag} { - set state "flags"; - } elseif {$isopt} { - set state "optValue"; - } elseif {![string equal $varname "args"]} { - set state "value"; - } else { - set state "args"; - } - - # apply 'smart' 'fuzzy' logic to try to make - # description writer's life easy, and our's difficult : - # let's guess the missing arguments :-) - - switch $lg { - 1 { - if {$isflag} { - return [OptNewInst $state $varname boolflag false ""]; - } else { - return [OptNewInst $state $varname any "" ""]; - } - } - 2 { - # varname default - # varname help - set type [OptGuessType $arg1] - if {[string equal $type "string"]} { - if {$isflag} { - set type boolflag - set def false - } else { - set type any - set def "" - } - set help $arg1 - } else { - set help "" - set def $arg1 - } - return [OptNewInst $state $varname $type $def $help]; - } - 3 { - # varname type value - # varname value comment - - if {[regexp {^-(.+)$} $arg1 x type]} { - # flags/optValue as they are optional, need a "value", - # on the contrary, for a variable (non optional), - # default value is pointless, 'cept for choices : - if {$isflag || $isopt || ($type == "choice")} { - return [OptNewInst $state $varname $type $arg2 ""]; - } else { - return [OptNewInst $state $varname $type "" $arg2]; - } - } else { - return [OptNewInst $state $varname\ - [OptGuessType $arg1] $arg1 $arg2] - } - } - 4 { - if {[regexp {^-(.+)$} $arg1 x type]} { - return [OptNewInst $state $varname $type $arg2 $arg3]; - } else { - return -code error [OptOptUsage $item]; - } - } - default { - return -code error [OptOptUsage $item]; - } - } - } - - # Auto magic lasy type determination - proc OptGuessType {arg} { - if {[regexp -nocase {^(true|false)$} $arg]} { - return boolean - } - if {[regexp {^(-+)?[0-9]+$} $arg]} { - return int - } - if {![catch {expr {double($arg)}}]} { - return float - } - return string - } - - # Error messages front ends - - proc OptAmbigous {desc arg} { - OptError "ambigous option \"$arg\", choose from:" [OptSelection $desc] - } - proc OptFlagUsage {desc arg} { - OptError "bad flag \"$arg\", must be one of" $desc; - } - proc OptTooManyArgs {desc arguments} { - OptError "too many arguments (unexpected argument(s): $arguments),\ - usage:"\ - $desc 1 - } - proc OptParamType {item} { - if {[OptIsFlag $item]} { - return "flag"; - } else { - return "parameter"; - } - } - proc OptBadValue {item arg {err {}}} { -# puts "bad val err = \"$err\""; - OptError "bad value \"$arg\" for [OptParamType $item]"\ - [list $item] - } - proc OptMissingValue {descriptions} { -# set item [OptCurDescFinal $descriptions]; - set item [OptCurDesc $descriptions]; - OptError "no value given for [OptParamType $item] \"[OptName $item]\"\ - (use -help for full usage) :"\ - [list $item] - } - -proc ::tcl::OptKeyError {prefix descKey {header 0}} { - OptError $prefix [OptKeyGetDesc $descKey] $header; -} - - # determine string length for nice tabulated output - proc OptLengths {desc nlName tlName dlName} { - upvar $nlName nl; - upvar $tlName tl; - upvar $dlName dl; - foreach item $desc { - if {[OptIsCounter $item]} continue; - if {[OptIsPrg $item]} { - OptLengths $item nl tl dl - } else { - SetMax nl [string length [OptName $item]] - SetMax tl [string length [OptType $item]] - set dv [OptTypeArgs $item]; - if {[OptState $item] != "header"} { - set dv "($dv)"; - } - set l [string length $dv]; - # limit the space allocated to potentially big "choices" - if {([OptType $item] != "choice") || ($l<=12)} { - SetMax dl $l - } else { - if {![info exists dl]} { - set dl 0 - } - } - } - } - } - # output the tree - proc OptTree {desc nl tl dl} { - set res ""; - foreach item $desc { - if {[OptIsCounter $item]} continue; - if {[OptIsPrg $item]} { - append res [OptTree $item $nl $tl $dl]; - } else { - set dv [OptTypeArgs $item]; - if {[OptState $item] != "header"} { - set dv "($dv)"; - } - append res [format "\n %-*s %-*s %-*s %s" \ - $nl [OptName $item] $tl [OptType $item] \ - $dl $dv [OptHelp $item]] - } - } - return $res; - } - -# Give nice usage string -proc ::tcl::OptError {prefix desc {header 0}} { - # determine length - if {$header} { - # add faked instruction - set h [list [OptNewInst header Var/FlagName Type Value Help]]; - lappend h [OptNewInst header ------------ ---- ----- ----]; - lappend h [OptNewInst header {( -help} "" "" {gives this help )}] - set desc [concat $h $desc] - } - OptLengths $desc nl tl dl - # actually output - return "$prefix[OptTree $desc $nl $tl $dl]" -} - - -################ General Utility functions ####################### - -# -# List utility functions -# Naming convention: -# "Lvarxxx" take the list VARiable name as argument -# "Lxxxx" take the list value as argument -# (which is not costly with Tcl8 objects system -# as it's still a reference and not a copy of the values) -# - -# Is that list empty ? -proc ::tcl::Lempty {list} { - expr {[llength $list]==0} -} - -# Gets the value of one leaf of a lists tree -proc ::tcl::Lget {list indexLst} { - if {[llength $indexLst] <= 1} { - return [lindex $list $indexLst]; - } - Lget [lindex $list [lindex $indexLst 0]] [lrange $indexLst 1 end]; -} -# Sets the value of one leaf of a lists tree -# (we use the version that does not create the elements because -# it would be even slower... needs to be written in C !) -# (nb: there is a non trivial recursive problem with indexes 0, -# which appear because there is no difference between a list -# of 1 element and 1 element alone : [list "a"] == "a" while -# it should be {a} and [listp a] should be 0 while [listp {a b}] would be 1 -# and [listp "a b"] maybe 0. listp does not exist either...) -proc ::tcl::Lvarset {listName indexLst newValue} { - upvar $listName list; - if {[llength $indexLst] <= 1} { - Lvarset1nc list $indexLst $newValue; - } else { - set idx [lindex $indexLst 0]; - set targetList [lindex $list $idx]; - # reduce refcount on targetList (not really usefull now, - # could be with optimizing compiler) -# Lvarset1 list $idx {}; - # recursively replace in targetList - Lvarset targetList [lrange $indexLst 1 end] $newValue; - # put updated sub list back in the tree - Lvarset1nc list $idx $targetList; - } -} -# Set one cell to a value, eventually create all the needed elements -# (on level-1 of lists) -variable emptyList {} -proc ::tcl::Lvarset1 {listName index newValue} { - upvar $listName list; - if {$index < 0} {return -code error "invalid negative index"} - set lg [llength $list]; - if {$index >= $lg} { - variable emptyList; - for {set i $lg} {$i<$index} {incr i} { - lappend list $emptyList; - } - lappend list $newValue; - } else { - set list [lreplace $list $index $index $newValue]; - } -} -# same as Lvarset1 but no bound checking / creation -proc ::tcl::Lvarset1nc {listName index newValue} { - upvar $listName list; - set list [lreplace $list $index $index $newValue]; -} -# Increments the value of one leaf of a lists tree -# (which must exists) -proc ::tcl::Lvarincr {listName indexLst {howMuch 1}} { - upvar $listName list; - if {[llength $indexLst] <= 1} { - Lvarincr1 list $indexLst $howMuch; - } else { - set idx [lindex $indexLst 0]; - set targetList [lindex $list $idx]; - # reduce refcount on targetList - Lvarset1nc list $idx {}; - # recursively replace in targetList - Lvarincr targetList [lrange $indexLst 1 end] $howMuch; - # put updated sub list back in the tree - Lvarset1nc list $idx $targetList; - } -} -# Increments the value of one cell of a list -proc ::tcl::Lvarincr1 {listName index {howMuch 1}} { - upvar $listName list; - set newValue [expr {[lindex $list $index]+$howMuch}]; - set list [lreplace $list $index $index $newValue]; - return $newValue; -} -# Removes the first element of a list -# and returns the new list value -proc ::tcl::Lvarpop1 {listName} { - upvar $listName list; - set list [lrange $list 1 end]; -} -# Same but returns the removed element -# (Like the tclX version) -proc ::tcl::Lvarpop {listName} { - upvar $listName list; - set el [lindex $list 0]; - set list [lrange $list 1 end]; - return $el; -} -# Assign list elements to variables and return the length of the list -proc ::tcl::Lassign {list args} { - # faster than direct blown foreach (which does not byte compile) - set i 0; - set lg [llength $list]; - foreach vname $args { - if {$i>=$lg} break - uplevel 1 [list ::set $vname [lindex $list $i]]; - incr i; - } - return $lg; -} - -# Misc utilities - -# Set the varname to value if value is greater than varname's current value -# or if varname is undefined -proc ::tcl::SetMax {varname value} { - upvar 1 $varname var - if {![info exists var] || $value > $var} { - set var $value - } -} - -# Set the varname to value if value is smaller than varname's current value -# or if varname is undefined -proc ::tcl::SetMin {varname value} { - upvar 1 $varname var - if {![info exists var] || $value < $var} { - set var $value - } -} - - - # everything loaded fine, lets create the test proc: - # OptCreateTestProc - # Don't need the create temp proc anymore: - # rename OptCreateTestProc {} -} diff --git a/mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl b/mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl deleted file mode 100644 index 754d2ee8..00000000 --- a/mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl +++ /dev/null @@ -1,12 +0,0 @@ -# Tcl package index file, version 1.1 -# This file is generated by the "pkg_mkIndex -direct" command -# and sourced either when an application starts up or -# by a "package unknown" script. It invokes the -# "package ifneeded" command to set up package-related -# information so that packages will be loaded automatically -# in response to "package require" commands. When this -# script is sourced, the variable $dir must contain the -# full path name of this file's directory. - -if {![package vsatisfies [package provide Tcl] 8.2]} {return} -package ifneeded opt 0.4.4.1 [list source [file join $dir optparse.tcl]] diff --git a/mingw/lib/tcl8.4/package.tcl b/mingw/lib/tcl8.4/package.tcl deleted file mode 100644 index 04145dd0..00000000 --- a/mingw/lib/tcl8.4/package.tcl +++ /dev/null @@ -1,828 +0,0 @@ -# package.tcl -- -# -# utility procs formerly in init.tcl which can be loaded on demand -# for package management. -# -# RCS: @(#) $Id: package.tcl,v 1.23.2.4 2006/09/22 01:26:24 andreas_kupries Exp $ -# -# Copyright (c) 1991-1993 The Regents of the University of California. -# Copyright (c) 1994-1998 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# Create the package namespace -namespace eval ::pkg { -} - -# pkg_compareExtension -- -# -# Used internally by pkg_mkIndex to compare the extension of a file to -# a given extension. On Windows, it uses a case-insensitive comparison -# because the file system can be file insensitive. -# -# Arguments: -# fileName name of a file whose extension is compared -# ext (optional) The extension to compare against; you must -# provide the starting dot. -# Defaults to [info sharedlibextension] -# -# Results: -# Returns 1 if the extension matches, 0 otherwise - -proc pkg_compareExtension { fileName {ext {}} } { - global tcl_platform - if {$ext eq ""} {set ext [info sharedlibextension]} - if {$tcl_platform(platform) eq "windows"} { - return [string equal -nocase [file extension $fileName] $ext] - } else { - # Some unices add trailing numbers after the .so, so - # we could have something like '.so.1.2'. - set root $fileName - while {1} { - set currExt [file extension $root] - if {$currExt eq $ext} { - return 1 - } - - # The current extension does not match; if it is not a numeric - # value, quit, as we are only looking to ignore version number - # extensions. Otherwise we might return 1 in this case: - # pkg_compareExtension foo.so.bar .so - # which should not match. - - if { ![string is integer -strict [string range $currExt 1 end]] } { - return 0 - } - set root [file rootname $root] - } - } -} - -# pkg_mkIndex -- -# This procedure creates a package index in a given directory. The -# package index consists of a "pkgIndex.tcl" file whose contents are -# a Tcl script that sets up package information with "package require" -# commands. The commands describe all of the packages defined by the -# files given as arguments. -# -# Arguments: -# -direct (optional) If this flag is present, the generated -# code in pkgMkIndex.tcl will cause the package to be -# loaded when "package require" is executed, rather -# than lazily when the first reference to an exported -# procedure in the package is made. -# -verbose (optional) Verbose output; the name of each file that -# was successfully rocessed is printed out. Additionally, -# if processing of a file failed a message is printed. -# -load pat (optional) Preload any packages whose names match -# the pattern. Used to handle DLLs that depend on -# other packages during their Init procedure. -# dir - Name of the directory in which to create the index. -# args - Any number of additional arguments, each giving -# a glob pattern that matches the names of one or -# more shared libraries or Tcl script files in -# dir. - -proc pkg_mkIndex {args} { - global errorCode errorInfo - set usage {"pkg_mkIndex ?-direct? ?-lazy? ?-load pattern? ?-verbose? ?--? dir ?pattern ...?"}; - - set argCount [llength $args] - if {$argCount < 1} { - return -code error "wrong # args: should be\n$usage" - } - - set more "" - set direct 1 - set doVerbose 0 - set loadPat "" - for {set idx 0} {$idx < $argCount} {incr idx} { - set flag [lindex $args $idx] - switch -glob -- $flag { - -- { - # done with the flags - incr idx - break - } - -verbose { - set doVerbose 1 - } - -lazy { - set direct 0 - append more " -lazy" - } - -direct { - append more " -direct" - } - -load { - incr idx - set loadPat [lindex $args $idx] - append more " -load $loadPat" - } - -* { - return -code error "unknown flag $flag: should be\n$usage" - } - default { - # done with the flags - break - } - } - } - - set dir [lindex $args $idx] - set patternList [lrange $args [expr {$idx + 1}] end] - if {[llength $patternList] == 0} { - set patternList [list "*.tcl" "*[info sharedlibextension]"] - } - - set oldDir [pwd] - cd $dir - - if {[catch {eval [linsert $patternList 0 glob --]} fileList]} { - global errorCode errorInfo - cd $oldDir - return -code error -errorcode $errorCode -errorinfo $errorInfo $fileList - } - foreach file $fileList { - # For each file, figure out what commands and packages it provides. - # To do this, create a child interpreter, load the file into the - # interpreter, and get a list of the new commands and packages - # that are defined. - - if {$file eq "pkgIndex.tcl"} { - continue - } - - # Changed back to the original directory before initializing the - # slave in case TCL_LIBRARY is a relative path (e.g. in the test - # suite). - - cd $oldDir - set c [interp create] - - # Load into the child any packages currently loaded in the parent - # interpreter that match the -load pattern. - - if {$loadPat ne ""} { - if {$doVerbose} { - tclLog "currently loaded packages: '[info loaded]'" - tclLog "trying to load all packages matching $loadPat" - } - if {![llength [info loaded]]} { - tclLog "warning: no packages are currently loaded, nothing" - tclLog "can possibly match '$loadPat'" - } - } - foreach pkg [info loaded] { - if {! [string match -nocase $loadPat [lindex $pkg 1]]} { - continue - } - if {$doVerbose} { - tclLog "package [lindex $pkg 1] matches '$loadPat'" - } - if {[catch { - load [lindex $pkg 0] [lindex $pkg 1] $c - } err]} { - if {$doVerbose} { - tclLog "warning: load [lindex $pkg 0] [lindex $pkg 1]\nfailed with: $err" - } - } elseif {$doVerbose} { - tclLog "loaded [lindex $pkg 0] [lindex $pkg 1]" - } - if {[lindex $pkg 1] eq "Tk"} { - # Withdraw . if Tk was loaded, to avoid showing a window. - $c eval [list wm withdraw .] - } - } - cd $dir - - $c eval { - # Stub out the package command so packages can - # require other packages. - - rename package __package_orig - proc package {what args} { - switch -- $what { - require { return ; # ignore transitive requires } - default { uplevel 1 [linsert $args 0 __package_orig $what] } - } - } - proc tclPkgUnknown args {} - package unknown tclPkgUnknown - - # Stub out the unknown command so package can call - # into each other during their initialilzation. - - proc unknown {args} {} - - # Stub out the auto_import mechanism - - proc auto_import {args} {} - - # reserve the ::tcl namespace for support procs - # and temporary variables. This might make it awkward - # to generate a pkgIndex.tcl file for the ::tcl namespace. - - namespace eval ::tcl { - variable file ;# Current file being processed - variable direct ;# -direct flag value - variable x ;# Loop variable - variable debug ;# For debugging - variable type ;# "load" or "source", for -direct - variable namespaces ;# Existing namespaces (e.g., ::tcl) - variable packages ;# Existing packages (e.g., Tcl) - variable origCmds ;# Existing commands - variable newCmds ;# Newly created commands - variable newPkgs {} ;# Newly created packages - } - } - - $c eval [list set ::tcl::file $file] - $c eval [list set ::tcl::direct $direct] - - # Download needed procedures into the slave because we've - # just deleted the unknown procedure. This doesn't handle - # procedures with default arguments. - - foreach p {pkg_compareExtension} { - $c eval [list proc $p [info args $p] [info body $p]] - } - - if {[catch { - $c eval { - set ::tcl::debug "loading or sourcing" - - # we need to track command defined by each package even in - # the -direct case, because they are needed internally by - # the "partial pkgIndex.tcl" step above. - - proc ::tcl::GetAllNamespaces {{root ::}} { - set list $root - foreach ns [namespace children $root] { - eval [linsert [::tcl::GetAllNamespaces $ns] 0 \ - lappend list] - } - return $list - } - - # init the list of existing namespaces, packages, commands - - foreach ::tcl::x [::tcl::GetAllNamespaces] { - set ::tcl::namespaces($::tcl::x) 1 - } - foreach ::tcl::x [package names] { - if {[package provide $::tcl::x] ne ""} { - set ::tcl::packages($::tcl::x) 1 - } - } - set ::tcl::origCmds [info commands] - - # Try to load the file if it has the shared library - # extension, otherwise source it. It's important not to - # try to load files that aren't shared libraries, because - # on some systems (like SunOS) the loader will abort the - # whole application when it gets an error. - - if {[pkg_compareExtension $::tcl::file [info sharedlibextension]]} { - # The "file join ." command below is necessary. - # Without it, if the file name has no \'s and we're - # on UNIX, the load command will invoke the - # LD_LIBRARY_PATH search mechanism, which could cause - # the wrong file to be used. - - set ::tcl::debug loading - load [file join . $::tcl::file] - set ::tcl::type load - } else { - set ::tcl::debug sourcing - source $::tcl::file - set ::tcl::type source - } - - # As a performance optimization, if we are creating - # direct load packages, don't bother figuring out the - # set of commands created by the new packages. We - # only need that list for setting up the autoloading - # used in the non-direct case. - if { !$::tcl::direct } { - # See what new namespaces appeared, and import commands - # from them. Only exported commands go into the index. - - foreach ::tcl::x [::tcl::GetAllNamespaces] { - if {! [info exists ::tcl::namespaces($::tcl::x)]} { - namespace import -force ${::tcl::x}::* - } - - # Figure out what commands appeared - - foreach ::tcl::x [info commands] { - set ::tcl::newCmds($::tcl::x) 1 - } - foreach ::tcl::x $::tcl::origCmds { - unset -nocomplain ::tcl::newCmds($::tcl::x) - } - foreach ::tcl::x [array names ::tcl::newCmds] { - # determine which namespace a command comes from - - set ::tcl::abs [namespace origin $::tcl::x] - - # special case so that global names have no leading - # ::, this is required by the unknown command - - set ::tcl::abs \ - [lindex [auto_qualify $::tcl::abs ::] 0] - - if {$::tcl::x ne $::tcl::abs} { - # Name changed during qualification - - set ::tcl::newCmds($::tcl::abs) 1 - unset ::tcl::newCmds($::tcl::x) - } - } - } - } - - # Look through the packages that appeared, and if there is - # a version provided, then record it - - foreach ::tcl::x [package names] { - if {[package provide $::tcl::x] ne "" - && ![info exists ::tcl::packages($::tcl::x)]} { - lappend ::tcl::newPkgs \ - [list $::tcl::x [package provide $::tcl::x]] - } - } - } - } msg] == 1} { - set what [$c eval set ::tcl::debug] - if {$doVerbose} { - tclLog "warning: error while $what $file: $msg" - } - } else { - set what [$c eval set ::tcl::debug] - if {$doVerbose} { - tclLog "successful $what of $file" - } - set type [$c eval set ::tcl::type] - set cmds [lsort [$c eval array names ::tcl::newCmds]] - set pkgs [$c eval set ::tcl::newPkgs] - if {$doVerbose} { - if { !$direct } { - tclLog "commands provided were $cmds" - } - tclLog "packages provided were $pkgs" - } - if {[llength $pkgs] > 1} { - tclLog "warning: \"$file\" provides more than one package ($pkgs)" - } - foreach pkg $pkgs { - # cmds is empty/not used in the direct case - lappend files($pkg) [list $file $type $cmds] - } - - if {$doVerbose} { - tclLog "processed $file" - } - } - interp delete $c - } - - append index "# Tcl package index file, version 1.1\n" - append index "# This file is generated by the \"pkg_mkIndex$more\" command\n" - append index "# and sourced either when an application starts up or\n" - append index "# by a \"package unknown\" script. It invokes the\n" - append index "# \"package ifneeded\" command to set up package-related\n" - append index "# information so that packages will be loaded automatically\n" - append index "# in response to \"package require\" commands. When this\n" - append index "# script is sourced, the variable \$dir must contain the\n" - append index "# full path name of this file's directory.\n" - - foreach pkg [lsort [array names files]] { - set cmd {} - foreach {name version} $pkg { - break - } - lappend cmd ::pkg::create -name $name -version $version - foreach spec $files($pkg) { - foreach {file type procs} $spec { - if { $direct } { - set procs {} - } - lappend cmd "-$type" [list $file $procs] - } - } - append index "\n[eval $cmd]" - } - - set f [open pkgIndex.tcl w] - puts $f $index - close $f - cd $oldDir -} - -# tclPkgSetup -- -# This is a utility procedure use by pkgIndex.tcl files. It is invoked -# as part of a "package ifneeded" script. It calls "package provide" -# to indicate that a package is available, then sets entries in the -# auto_index array so that the package's files will be auto-loaded when -# the commands are used. -# -# Arguments: -# dir - Directory containing all the files for this package. -# pkg - Name of the package (no version number). -# version - Version number for the package, such as 2.1.3. -# files - List of files that constitute the package. Each -# element is a sub-list with three elements. The first -# is the name of a file relative to $dir, the second is -# "load" or "source", indicating whether the file is a -# loadable binary or a script to source, and the third -# is a list of commands defined by this file. - -proc tclPkgSetup {dir pkg version files} { - global auto_index - - package provide $pkg $version - foreach fileInfo $files { - set f [lindex $fileInfo 0] - set type [lindex $fileInfo 1] - foreach cmd [lindex $fileInfo 2] { - if {$type eq "load"} { - set auto_index($cmd) [list load [file join $dir $f] $pkg] - } else { - set auto_index($cmd) [list source [file join $dir $f]] - } - } - } -} - -# tclPkgUnknown -- -# This procedure provides the default for the "package unknown" function. -# It is invoked when a package that's needed can't be found. It scans -# the auto_path directories and their immediate children looking for -# pkgIndex.tcl files and sources any such files that are found to setup -# the package database. (On the Macintosh we also search for pkgIndex -# TEXT resources in all files.) As it searches, it will recognize changes -# to the auto_path and scan any new directories. -# -# Arguments: -# name - Name of desired package. Not used. -# version - Version of desired package. Not used. -# exact - Either "-exact" or omitted. Not used. - - -proc tclPkgUnknown [expr { - [info exists tcl_platform(tip,268)] - ? "name args" - : "name version {exact {}}" - }] { - global auto_path env - - if {![info exists auto_path]} { - return - } - # Cache the auto_path, because it may change while we run through - # the first set of pkgIndex.tcl files - set old_path [set use_path $auto_path] - while {[llength $use_path]} { - set dir [lindex $use_path end] - - # Make sure we only scan each directory one time. - if {[info exists tclSeenPath($dir)]} { - set use_path [lrange $use_path 0 end-1] - continue - } - set tclSeenPath($dir) 1 - - # we can't use glob in safe interps, so enclose the following - # in a catch statement, where we get the pkgIndex files out - # of the subdirectories - catch { - foreach file [glob -directory $dir -join -nocomplain \ - * pkgIndex.tcl] { - set dir [file dirname $file] - if {![info exists procdDirs($dir)] && [file readable $file]} { - if {[catch {source $file} msg]} { - tclLog "error reading package index file $file: $msg" - } else { - set procdDirs($dir) 1 - } - } - } - } - set dir [lindex $use_path end] - if {![info exists procdDirs($dir)]} { - set file [file join $dir pkgIndex.tcl] - # safe interps usually don't have "file readable", - # nor stderr channel - if {([interp issafe] || [file readable $file])} { - if {[catch {source $file} msg] && ![interp issafe]} { - tclLog "error reading package index file $file: $msg" - } else { - set procdDirs($dir) 1 - } - } - } - - set use_path [lrange $use_path 0 end-1] - - # Check whether any of the index scripts we [source]d above - # set a new value for $::auto_path. If so, then find any - # new directories on the $::auto_path, and lappend them to - # the $use_path we are working from. This gives index scripts - # the (arguably unwise) power to expand the index script search - # path while the search is in progress. - set index 0 - if {[llength $old_path] == [llength $auto_path]} { - foreach dir $auto_path old $old_path { - if {$dir ne $old} { - # This entry in $::auto_path has changed. - break - } - incr index - } - } - - # $index now points to the first element of $auto_path that - # has changed, or the beginning if $auto_path has changed length - # Scan the new elements of $auto_path for directories to add to - # $use_path. Don't add directories we've already seen, or ones - # already on the $use_path. - foreach dir [lrange $auto_path $index end] { - if {![info exists tclSeenPath($dir)] - && ([lsearch -exact $use_path $dir] == -1) } { - lappend use_path $dir - } - } - set old_path $auto_path - } -} - -# tcl::MacOSXPkgUnknown -- -# This procedure extends the "package unknown" function for MacOSX. -# It scans the Resources/Scripts directories of the immediate children -# of the auto_path directories for pkgIndex files. -# Only installed in interps that are not safe so we don't check -# for [interp issafe] as in tclPkgUnknown. -# -# Arguments: -# original - original [package unknown] procedure -# name - Name of desired package. Not used. -#ifndef TCL_TIP268 -# version - Version of desired package. Not used. -# exact - Either "-exact" or omitted. Not used. -#else -# args - List of requirements. Not used. -#endif - -if {[info exists tcl_platform(tip,268)]} { - proc tcl::MacOSXPkgUnknown {original name args} { - # First do the cross-platform default search - uplevel 1 $original [linsert $args 0 $name] - - # Now do MacOSX specific searching - global auto_path - - if {![info exists auto_path]} { - return - } - # Cache the auto_path, because it may change while we run through - # the first set of pkgIndex.tcl files - set old_path [set use_path $auto_path] - while {[llength $use_path]} { - set dir [lindex $use_path end] - # get the pkgIndex files out of the subdirectories - foreach file [glob -directory $dir -join -nocomplain \ - * Resources Scripts pkgIndex.tcl] { - set dir [file dirname $file] - if {[file readable $file] && ![info exists procdDirs($dir)]} { - if {[catch {source $file} msg]} { - tclLog "error reading package index file $file: $msg" - } else { - set procdDirs($dir) 1 - } - } - } - set use_path [lrange $use_path 0 end-1] - if {$old_path ne $auto_path} { - foreach dir $auto_path { - lappend use_path $dir - } - set old_path $auto_path - } - } - } -} else { - proc tcl::MacOSXPkgUnknown {original name version {exact {}}} { - - # First do the cross-platform default search - uplevel 1 $original [list $name $version $exact] - - # Now do MacOSX specific searching - global auto_path - - if {![info exists auto_path]} { - return - } - # Cache the auto_path, because it may change while we run through - # the first set of pkgIndex.tcl files - set old_path [set use_path $auto_path] - while {[llength $use_path]} { - set dir [lindex $use_path end] - # get the pkgIndex files out of the subdirectories - foreach file [glob -directory $dir -join -nocomplain \ - * Resources Scripts pkgIndex.tcl] { - set dir [file dirname $file] - if {[file readable $file] && ![info exists procdDirs($dir)]} { - if {[catch {source $file} msg]} { - tclLog "error reading package index file $file: $msg" - } else { - set procdDirs($dir) 1 - } - } - } - set use_path [lrange $use_path 0 end-1] - if {$old_path ne $auto_path} { - foreach dir $auto_path { - lappend use_path $dir - } - set old_path $auto_path - } - } - } -} - -# tcl::MacPkgUnknown -- -# This procedure extends the "package unknown" function for Mac. -# It searches for pkgIndex TEXT resources in all files -# Only installed in interps that are not safe so we don't check -# for [interp issafe] as in tclPkgUnknown. -# -# Arguments: -# original - original [package unknown] procedure -# name - Name of desired package. Not used. -# version - Version of desired package. Not used. -# exact - Either "-exact" or omitted. Not used. - -proc tcl::MacPkgUnknown {original name version {exact {}}} { - - # First do the cross-platform default search - uplevel 1 $original [list $name $version $exact] - - # Now do Mac specific searching - global auto_path - - if {![info exists auto_path]} { - return - } - # Cache the auto_path, because it may change while we run through - # the first set of pkgIndex.tcl files - set old_path [set use_path $auto_path] - while {[llength $use_path]} { - # We look for pkgIndex TEXT resources in the resource fork of shared libraries - set dir [lindex $use_path end] - foreach x [concat [list $dir] [glob -directory $dir -nocomplain *] ] { - if {[file isdirectory $x] && ![info exists procdDirs($x)]} { - set dir $x - foreach x [glob -directory $dir -nocomplain *.shlb] { - if {[file isfile $x]} { - set res [resource open $x] - foreach y [resource list TEXT $res] { - if {$y eq "pkgIndex"} {source -rsrc pkgIndex} - } - catch {resource close $res} - } - } - set procdDirs($dir) 1 - } - } - set use_path [lrange $use_path 0 end-1] - if {$old_path ne $auto_path} { - foreach dir $auto_path { - lappend use_path $dir - } - set old_path $auto_path - } - } -} - -# ::pkg::create -- -# -# Given a package specification generate a "package ifneeded" statement -# for the package, suitable for inclusion in a pkgIndex.tcl file. -# -# Arguments: -# args arguments used by the create function: -# -name packageName -# -version packageVersion -# -load {filename ?{procs}?} -# ... -# -source {filename ?{procs}?} -# ... -# -# Any number of -load and -source parameters may be -# specified, so long as there is at least one -load or -# -source parameter. If the procs component of a -# module specifier is left off, that module will be -# set up for direct loading; otherwise, it will be -# set up for lazy loading. If both -source and -load -# are specified, the -load'ed files will be loaded -# first, followed by the -source'd files. -# -# Results: -# An appropriate "package ifneeded" statement for the package. - -proc ::pkg::create {args} { - append err(usage) "[lindex [info level 0] 0] " - append err(usage) "-name packageName -version packageVersion" - append err(usage) "?-load {filename ?{procs}?}? ... " - append err(usage) "?-source {filename ?{procs}?}? ..." - - set err(wrongNumArgs) "wrong # args: should be \"$err(usage)\"" - set err(valueMissing) "value for \"%s\" missing: should be \"$err(usage)\"" - set err(unknownOpt) "unknown option \"%s\": should be \"$err(usage)\"" - set err(noLoadOrSource) "at least one of -load and -source must be given" - - # process arguments - set len [llength $args] - if { $len < 6 } { - error $err(wrongNumArgs) - } - - # Initialize parameters - set opts(-name) {} - set opts(-version) {} - set opts(-source) {} - set opts(-load) {} - - # process parameters - for {set i 0} {$i < $len} {incr i} { - set flag [lindex $args $i] - incr i - switch -glob -- $flag { - "-name" - - "-version" { - if { $i >= $len } { - error [format $err(valueMissing) $flag] - } - set opts($flag) [lindex $args $i] - } - "-source" - - "-load" { - if { $i >= $len } { - error [format $err(valueMissing) $flag] - } - lappend opts($flag) [lindex $args $i] - } - default { - error [format $err(unknownOpt) [lindex $args $i]] - } - } - } - - # Validate the parameters - if { [llength $opts(-name)] == 0 } { - error [format $err(valueMissing) "-name"] - } - if { [llength $opts(-version)] == 0 } { - error [format $err(valueMissing) "-version"] - } - - if { [llength $opts(-source)] == 0 && [llength $opts(-load)] == 0 } { - error $err(noLoadOrSource) - } - - # OK, now everything is good. Generate the package ifneeded statment. - set cmdline "package ifneeded $opts(-name) $opts(-version) " - - set cmdList {} - set lazyFileList {} - - # Handle -load and -source specs - foreach key {load source} { - foreach filespec $opts(-$key) { - foreach {filename proclist} {{} {}} { - break - } - foreach {filename proclist} $filespec { - break - } - - if { [llength $proclist] == 0 } { - set cmd "\[list $key \[file join \$dir [list $filename]\]\]" - lappend cmdList $cmd - } else { - lappend lazyFileList [list $filename $key $proclist] - } - } - } - - if { [llength $lazyFileList] > 0 } { - lappend cmdList "\[list tclPkgSetup \$dir $opts(-name)\ - $opts(-version) [list $lazyFileList]\]" - } - append cmdline [join $cmdList "\\n"] - return $cmdline -} - diff --git a/mingw/lib/tcl8.4/parray.tcl b/mingw/lib/tcl8.4/parray.tcl deleted file mode 100644 index 92655b2e..00000000 --- a/mingw/lib/tcl8.4/parray.tcl +++ /dev/null @@ -1,29 +0,0 @@ -# parray: -# Print the contents of a global array on stdout. -# -# RCS: @(#) $Id: parray.tcl,v 1.3 1998/09/14 18:40:03 stanton Exp $ -# -# Copyright (c) 1991-1993 The Regents of the University of California. -# Copyright (c) 1994 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -proc parray {a {pattern *}} { - upvar 1 $a array - if {![array exists array]} { - error "\"$a\" isn't an array" - } - set maxl 0 - foreach name [lsort [array names array $pattern]] { - if {[string length $name] > $maxl} { - set maxl [string length $name] - } - } - set maxl [expr {$maxl + [string length $a] + 2}] - foreach name [lsort [array names array $pattern]] { - set nameString [format %s(%s) $a $name] - puts stdout [format "%-*s = %s" $maxl $nameString $array($name)] - } -} diff --git a/mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl b/mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl deleted file mode 100644 index 55775f26..00000000 --- a/mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl +++ /dev/null @@ -1,9 +0,0 @@ -if {![package vsatisfies [package provide Tcl] 8]} {return} -if {[string compare $::tcl_platform(platform) windows]} {return} -if {[info exists ::tcl_platform(debug)]} { - package ifneeded registry 1.1.3 \ - [list load [file join $dir tclreg11g.dll] registry] -} else { - package ifneeded registry 1.1.3 \ - [list load [file join $dir tclreg11.dll] registry] -} diff --git a/mingw/lib/tcl8.4/reg1.1/registry.tap b/mingw/lib/tcl8.4/reg1.1/registry.tap deleted file mode 100644 index 2fd2ecbc..00000000 --- a/mingw/lib/tcl8.4/reg1.1/registry.tap +++ /dev/null @@ -1,20 +0,0 @@ -format {TclDevKit Project File} -fmtver 2.0 -fmttool {TclDevKit TclApp PackageDefinition} 2.5 - -######## -##### -### -## -# - -Package {registry 1.1.3} -Base @TAP_DIR@ -Path tclreg11.dll -Path pkgIndex.tcl - -# -## -### -##### -######## diff --git a/mingw/lib/tcl8.4/reg1.1/tclreg11.dll b/mingw/lib/tcl8.4/reg1.1/tclreg11.dll deleted file mode 100644 index 59f8ac3be435ab7e10faf039dd27ea70a1f36987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 24576 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 diff --git a/mingw/lib/tcl8.4/safe.tcl b/mingw/lib/tcl8.4/safe.tcl deleted file mode 100644 index 9c8aff54..00000000 --- a/mingw/lib/tcl8.4/safe.tcl +++ /dev/null @@ -1,924 +0,0 @@ -# safe.tcl -- -# -# This file provide a safe loading/sourcing mechanism for safe interpreters. -# It implements a virtual path mecanism to hide the real pathnames from the -# slave. It runs in a master interpreter and sets up data structure and -# aliases that will be invoked when used from a slave interpreter. -# -# See the safe.n man page for details. -# -# Copyright (c) 1996-1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: safe.tcl,v 1.9.2.3 2005/07/22 21:59:41 dgp Exp $ - -# -# The implementation is based on namespaces. These naming conventions -# are followed: -# Private procs starts with uppercase. -# Public procs are exported and starts with lowercase -# - -# Needed utilities package -package require opt 0.4.1; - -# Create the safe namespace -namespace eval ::safe { - - # Exported API: - namespace export interpCreate interpInit interpConfigure interpDelete \ - interpAddToAccessPath interpFindInAccessPath setLogCmd - - #### - # - # Setup the arguments parsing - # - #### - - # Make sure that our temporary variable is local to this - # namespace. [Bug 981733] - variable temp - - # Share the descriptions - set temp [::tcl::OptKeyRegister { - {-accessPath -list {} "access path for the slave"} - {-noStatics "prevent loading of statically linked pkgs"} - {-statics true "loading of statically linked pkgs"} - {-nestedLoadOk "allow nested loading"} - {-nested false "nested loading"} - {-deleteHook -script {} "delete hook"} - }] - - # create case (slave is optional) - ::tcl::OptKeyRegister { - {?slave? -name {} "name of the slave (optional)"} - } ::safe::interpCreate - # adding the flags sub programs to the command program - # (relying on Opt's internal implementation details) - lappend ::tcl::OptDesc(::safe::interpCreate) $::tcl::OptDesc($temp) - - # init and configure (slave is needed) - ::tcl::OptKeyRegister { - {slave -name {} "name of the slave"} - } ::safe::interpIC - # adding the flags sub programs to the command program - # (relying on Opt's internal implementation details) - lappend ::tcl::OptDesc(::safe::interpIC) $::tcl::OptDesc($temp) - # temp not needed anymore - ::tcl::OptKeyDelete $temp - - - # Helper function to resolve the dual way of specifying staticsok - # (either by -noStatics or -statics 0) - proc InterpStatics {} { - foreach v {Args statics noStatics} { - upvar $v $v - } - set flag [::tcl::OptProcArgGiven -noStatics]; - if {$flag && (!$noStatics == !$statics) - && ([::tcl::OptProcArgGiven -statics])} { - return -code error\ - "conflicting values given for -statics and -noStatics" - } - if {$flag} { - return [expr {!$noStatics}] - } else { - return $statics - } - } - - # Helper function to resolve the dual way of specifying nested loading - # (either by -nestedLoadOk or -nested 1) - proc InterpNested {} { - foreach v {Args nested nestedLoadOk} { - upvar $v $v - } - set flag [::tcl::OptProcArgGiven -nestedLoadOk]; - # note that the test here is the opposite of the "InterpStatics" - # one (it is not -noNested... because of the wanted default value) - if {$flag && (!$nestedLoadOk != !$nested) - && ([::tcl::OptProcArgGiven -nested])} { - return -code error\ - "conflicting values given for -nested and -nestedLoadOk" - } - if {$flag} { - # another difference with "InterpStatics" - return $nestedLoadOk - } else { - return $nested - } - } - - #### - # - # API entry points that needs argument parsing : - # - #### - - - # Interface/entry point function and front end for "Create" - proc interpCreate {args} { - set Args [::tcl::OptKeyParse ::safe::interpCreate $args] - InterpCreate $slave $accessPath \ - [InterpStatics] [InterpNested] $deleteHook - } - - proc interpInit {args} { - set Args [::tcl::OptKeyParse ::safe::interpIC $args] - if {![::interp exists $slave]} { - return -code error "\"$slave\" is not an interpreter" - } - InterpInit $slave $accessPath \ - [InterpStatics] [InterpNested] $deleteHook; - } - - proc CheckInterp {slave} { - if {![IsInterp $slave]} { - return -code error \ - "\"$slave\" is not an interpreter managed by ::safe::" - } - } - - # Interface/entry point function and front end for "Configure" - # This code is awfully pedestrian because it would need - # more coupling and support between the way we store the - # configuration values in safe::interp's and the Opt package - # Obviously we would like an OptConfigure - # to avoid duplicating all this code everywhere. -> TODO - # (the app should share or access easily the program/value - # stored by opt) - # This is even more complicated by the boolean flags with no values - # that we had the bad idea to support for the sake of user simplicity - # in create/init but which makes life hard in configure... - # So this will be hopefully written and some integrated with opt1.0 - # (hopefully for tcl8.1 ?) - proc interpConfigure {args} { - switch [llength $args] { - 1 { - # If we have exactly 1 argument - # the semantic is to return all the current configuration - # We still call OptKeyParse though we know that "slave" - # is our given argument because it also checks - # for the "-help" option. - set Args [::tcl::OptKeyParse ::safe::interpIC $args] - CheckInterp $slave - set res {} - lappend res [list -accessPath [Set [PathListName $slave]]] - lappend res [list -statics [Set [StaticsOkName $slave]]] - lappend res [list -nested [Set [NestedOkName $slave]]] - lappend res [list -deleteHook [Set [DeleteHookName $slave]]] - join $res - } - 2 { - # If we have exactly 2 arguments - # the semantic is a "configure get" - ::tcl::Lassign $args slave arg - # get the flag sub program (we 'know' about Opt's internal - # representation of data) - set desc [lindex [::tcl::OptKeyGetDesc ::safe::interpIC] 2] - set hits [::tcl::OptHits desc $arg] - if {$hits > 1} { - return -code error [::tcl::OptAmbigous $desc $arg] - } elseif {$hits == 0} { - return -code error [::tcl::OptFlagUsage $desc $arg] - } - CheckInterp $slave - set item [::tcl::OptCurDesc $desc] - set name [::tcl::OptName $item] - switch -exact -- $name { - -accessPath { - return [list -accessPath [Set [PathListName $slave]]] - } - -statics { - return [list -statics [Set [StaticsOkName $slave]]] - } - -nested { - return [list -nested [Set [NestedOkName $slave]]] - } - -deleteHook { - return [list -deleteHook [Set [DeleteHookName $slave]]] - } - -noStatics { - # it is most probably a set in fact - # but we would need then to jump to the set part - # and it is not *sure* that it is a set action - # that the user want, so force it to use the - # unambigous -statics ?value? instead: - return -code error\ - "ambigous query (get or set -noStatics ?)\ - use -statics instead" - } - -nestedLoadOk { - return -code error\ - "ambigous query (get or set -nestedLoadOk ?)\ - use -nested instead" - } - default { - return -code error "unknown flag $name (bug)" - } - } - } - default { - # Otherwise we want to parse the arguments like init and create - # did - set Args [::tcl::OptKeyParse ::safe::interpIC $args] - CheckInterp $slave - # Get the current (and not the default) values of - # whatever has not been given: - if {![::tcl::OptProcArgGiven -accessPath]} { - set doreset 1 - set accessPath [Set [PathListName $slave]] - } else { - set doreset 0 - } - if {(![::tcl::OptProcArgGiven -statics]) \ - && (![::tcl::OptProcArgGiven -noStatics]) } { - set statics [Set [StaticsOkName $slave]] - } else { - set statics [InterpStatics] - } - if {([::tcl::OptProcArgGiven -nested]) \ - || ([::tcl::OptProcArgGiven -nestedLoadOk]) } { - set nested [InterpNested] - } else { - set nested [Set [NestedOkName $slave]] - } - if {![::tcl::OptProcArgGiven -deleteHook]} { - set deleteHook [Set [DeleteHookName $slave]] - } - # we can now reconfigure : - InterpSetConfig $slave $accessPath $statics $nested $deleteHook - # auto_reset the slave (to completly synch the new access_path) - if {$doreset} { - if {[catch {::interp eval $slave {auto_reset}} msg]} { - Log $slave "auto_reset failed: $msg" - } else { - Log $slave "successful auto_reset" NOTICE - } - } - } - } - } - - - #### - # - # Functions that actually implements the exported APIs - # - #### - - - # - # safe::InterpCreate : doing the real job - # - # This procedure creates a safe slave and initializes it with the - # safe base aliases. - # NB: slave name must be simple alphanumeric string, no spaces, - # no (), no {},... {because the state array is stored as part of the name} - # - # Returns the slave name. - # - # Optional Arguments : - # + slave name : if empty, generated name will be used - # + access_path: path list controlling where load/source can occur, - # if empty: the master auto_path will be used. - # + staticsok : flag, if 0 :no static package can be loaded (load {} Xxx) - # if 1 :static packages are ok. - # + nestedok: flag, if 0 :no loading to sub-sub interps (load xx xx sub) - # if 1 : multiple levels are ok. - - # use the full name and no indent so auto_mkIndex can find us - proc ::safe::InterpCreate { - slave - access_path - staticsok - nestedok - deletehook - } { - # Create the slave. - if {$slave ne ""} { - ::interp create -safe $slave - } else { - # empty argument: generate slave name - set slave [::interp create -safe] - } - Log $slave "Created" NOTICE - - # Initialize it. (returns slave name) - InterpInit $slave $access_path $staticsok $nestedok $deletehook - } - - - # - # InterpSetConfig (was setAccessPath) : - # Sets up slave virtual auto_path and corresponding structure - # within the master. Also sets the tcl_library in the slave - # to be the first directory in the path. - # Nb: If you change the path after the slave has been initialized - # you probably need to call "auto_reset" in the slave in order that it - # gets the right auto_index() array values. - - proc ::safe::InterpSetConfig {slave access_path staticsok\ - nestedok deletehook} { - - # determine and store the access path if empty - if {$access_path eq ""} { - set access_path [uplevel \#0 set auto_path] - # Make sure that tcl_library is in auto_path - # and at the first position (needed by setAccessPath) - set where [lsearch -exact $access_path [info library]] - if {$where == -1} { - # not found, add it. - set access_path [concat [list [info library]] $access_path] - Log $slave "tcl_library was not in auto_path,\ - added it to slave's access_path" NOTICE - } elseif {$where != 0} { - # not first, move it first - set access_path [concat [list [info library]]\ - [lreplace $access_path $where $where]] - Log $slave "tcl_libray was not in first in auto_path,\ - moved it to front of slave's access_path" NOTICE - - } - - # Add 1st level sub dirs (will searched by auto loading from tcl - # code in the slave using glob and thus fail, so we add them - # here so by default it works the same). - set access_path [AddSubDirs $access_path] - } - - Log $slave "Setting accessPath=($access_path) staticsok=$staticsok\ - nestedok=$nestedok deletehook=($deletehook)" NOTICE - - # clear old autopath if it existed - set nname [PathNumberName $slave] - if {[Exists $nname]} { - set n [Set $nname] - for {set i 0} {$i<$n} {incr i} { - Unset [PathToken $i $slave] - } - } - - # build new one - set slave_auto_path {} - set i 0 - foreach dir $access_path { - Set [PathToken $i $slave] $dir - lappend slave_auto_path "\$[PathToken $i]" - incr i - } - Set $nname $i - Set [PathListName $slave] $access_path - Set [VirtualPathListName $slave] $slave_auto_path - - Set [StaticsOkName $slave] $staticsok - Set [NestedOkName $slave] $nestedok - Set [DeleteHookName $slave] $deletehook - - SyncAccessPath $slave - } - - # - # - # FindInAccessPath: - # Search for a real directory and returns its virtual Id - # (including the "$") -proc ::safe::interpFindInAccessPath {slave path} { - set access_path [GetAccessPath $slave] - set where [lsearch -exact $access_path $path] - if {$where == -1} { - return -code error "$path not found in access path $access_path" - } - return "\$[PathToken $where]" - } - - # - # addToAccessPath: - # add (if needed) a real directory to access path - # and return its virtual token (including the "$"). -proc ::safe::interpAddToAccessPath {slave path} { - # first check if the directory is already in there - if {![catch {interpFindInAccessPath $slave $path} res]} { - return $res - } - # new one, add it: - set nname [PathNumberName $slave] - set n [Set $nname] - Set [PathToken $n $slave] $path - - set token "\$[PathToken $n]" - - Lappend [VirtualPathListName $slave] $token - Lappend [PathListName $slave] $path - Set $nname [expr {$n+1}] - - SyncAccessPath $slave - - return $token - } - - # This procedure applies the initializations to an already existing - # interpreter. It is useful when you want to install the safe base - # aliases into a preexisting safe interpreter. - proc ::safe::InterpInit { - slave - access_path - staticsok - nestedok - deletehook - } { - - # Configure will generate an access_path when access_path is - # empty. - InterpSetConfig $slave $access_path $staticsok $nestedok $deletehook - - # These aliases let the slave load files to define new commands - - # NB we need to add [namespace current], aliases are always - # absolute paths. - ::interp alias $slave source {} [namespace current]::AliasSource $slave - ::interp alias $slave load {} [namespace current]::AliasLoad $slave - - # This alias lets the slave use the encoding names, convertfrom, - # convertto, and system, but not "encoding system " to set - # the system encoding. - - ::interp alias $slave encoding {} [namespace current]::AliasEncoding \ - $slave - - # This alias lets the slave have access to a subset of the 'file' - # command functionality. - - AliasSubset $slave file file dir.* join root.* ext.* tail \ - path.* split - - # This alias interposes on the 'exit' command and cleanly terminates - # the slave. - - ::interp alias $slave exit {} [namespace current]::interpDelete $slave - - # The allowed slave variables already have been set - # by Tcl_MakeSafe(3) - - - # Source init.tcl into the slave, to get auto_load and other - # procedures defined: - - # We don't try to use the -rsrc on the mac because it would get - # confusing if you would want to customize init.tcl - # for a given set of safe slaves, on all the platforms - # you just need to give a specific access_path and - # the mac should be no exception. As there is no - # obvious full "safe ressources" design nor implementation - # for the mac, safe interps there will just don't - # have that ability. (A specific app can still reenable - # that using custom aliases if they want to). - # It would also make the security analysis and the Safe Tcl security - # model platform dependant and thus more error prone. - - if {[catch {::interp eval $slave\ - {source [file join $tcl_library init.tcl]}} msg]} { - Log $slave "can't source init.tcl ($msg)" - error "can't source init.tcl into slave $slave ($msg)" - } - - return $slave - } - - - # Add (only if needed, avoid duplicates) 1 level of - # sub directories to an existing path list. - # Also removes non directories from the returned list. - proc AddSubDirs {pathList} { - set res {} - foreach dir $pathList { - if {[file isdirectory $dir]} { - # check that we don't have it yet as a children - # of a previous dir - if {[lsearch -exact $res $dir]<0} { - lappend res $dir - } - foreach sub [glob -directory $dir -nocomplain *] { - if {([file isdirectory $sub]) \ - && ([lsearch -exact $res $sub]<0) } { - # new sub dir, add it ! - lappend res $sub - } - } - } - } - return $res - } - - # This procedure deletes a safe slave managed by Safe Tcl and - # cleans up associated state: - -proc ::safe::interpDelete {slave} { - - Log $slave "About to delete" NOTICE - - # If the slave has a cleanup hook registered, call it. - # check the existance because we might be called to delete an interp - # which has not been registered with us at all - set hookname [DeleteHookName $slave] - if {[Exists $hookname]} { - set hook [Set $hookname] - if {![::tcl::Lempty $hook]} { - # remove the hook now, otherwise if the hook - # calls us somehow, we'll loop - Unset $hookname - if {[catch {eval $hook [list $slave]} err]} { - Log $slave "Delete hook error ($err)" - } - } - } - - # Discard the global array of state associated with the slave, and - # delete the interpreter. - - set statename [InterpStateName $slave] - if {[Exists $statename]} { - Unset $statename - } - - # if we have been called twice, the interp might have been deleted - # already - if {[::interp exists $slave]} { - ::interp delete $slave - Log $slave "Deleted" NOTICE - } - - return - } - - # Set (or get) the loging mecanism - -proc ::safe::setLogCmd {args} { - variable Log - if {[llength $args] == 0} { - return $Log - } else { - if {[llength $args] == 1} { - set Log [lindex $args 0] - } else { - set Log $args - } - } -} - - # internal variable - variable Log {} - - # ------------------- END OF PUBLIC METHODS ------------ - - - # - # sets the slave auto_path to the master recorded value. - # also sets tcl_library to the first token of the virtual path. - # - proc SyncAccessPath {slave} { - set slave_auto_path [Set [VirtualPathListName $slave]] - ::interp eval $slave [list set auto_path $slave_auto_path] - Log $slave "auto_path in $slave has been set to $slave_auto_path"\ - NOTICE - ::interp eval $slave [list set tcl_library [lindex $slave_auto_path 0]] - } - - # base name for storing all the slave states - # the array variable name for slave foo is thus "Sfoo" - # and for sub slave {foo bar} "Sfoo bar" (spaces are handled - # ok everywhere (or should)) - # We add the S prefix to avoid that a slave interp called "Log" - # would smash our "Log" variable. - proc InterpStateName {slave} { - return "S$slave" - } - - # Check that the given slave is "one of us" - proc IsInterp {slave} { - expr {[Exists [InterpStateName $slave]] && [::interp exists $slave]} - } - - # returns the virtual token for directory number N - # if the slave argument is given, - # it will return the corresponding master global variable name - proc PathToken {n {slave ""}} { - if {$slave ne ""} { - return "[InterpStateName $slave](access_path,$n)" - } else { - # We need to have a ":" in the token string so - # [file join] on the mac won't turn it into a relative - # path. - return "p(:$n:)" - } - } - # returns the variable name of the complete path list - proc PathListName {slave} { - return "[InterpStateName $slave](access_path)" - } - # returns the variable name of the complete path list - proc VirtualPathListName {slave} { - return "[InterpStateName $slave](access_path_slave)" - } - # returns the variable name of the number of items - proc PathNumberName {slave} { - return "[InterpStateName $slave](access_path,n)" - } - # returns the staticsok flag var name - proc StaticsOkName {slave} { - return "[InterpStateName $slave](staticsok)" - } - # returns the nestedok flag var name - proc NestedOkName {slave} { - return "[InterpStateName $slave](nestedok)" - } - # Run some code at the namespace toplevel - proc Toplevel {args} { - namespace eval [namespace current] $args - } - # set/get values - proc Set {args} { - eval [linsert $args 0 Toplevel set] - } - # lappend on toplevel vars - proc Lappend {args} { - eval [linsert $args 0 Toplevel lappend] - } - # unset a var/token (currently just an global level eval) - proc Unset {args} { - eval [linsert $args 0 Toplevel unset] - } - # test existance - proc Exists {varname} { - Toplevel info exists $varname - } - # short cut for access path getting - proc GetAccessPath {slave} { - Set [PathListName $slave] - } - # short cut for statics ok flag getting - proc StaticsOk {slave} { - Set [StaticsOkName $slave] - } - # short cut for getting the multiples interps sub loading ok flag - proc NestedOk {slave} { - Set [NestedOkName $slave] - } - # interp deletion storing hook name - proc DeleteHookName {slave} { - return [InterpStateName $slave](cleanupHook) - } - - # - # translate virtual path into real path - # - proc TranslatePath {slave path} { - # somehow strip the namespaces 'functionality' out (the danger - # is that we would strip valid macintosh "../" queries... : - if {[regexp {(::)|(\.\.)} $path]} { - error "invalid characters in path $path" - } - set n [expr {[Set [PathNumberName $slave]]-1}] - for {} {$n>=0} {incr n -1} { - # fill the token virtual names with their real value - set [PathToken $n] [Set [PathToken $n $slave]] - } - # replaces the token by their value - subst -nobackslashes -nocommands $path - } - - - # Log eventually log an error - # to enable error logging, set Log to {puts stderr} for instance - proc Log {slave msg {type ERROR}} { - variable Log - if {[info exists Log] && [llength $Log]} { - eval $Log [list "$type for slave $slave : $msg"] - } - } - - - # file name control (limit access to files/ressources that should be - # a valid tcl source file) - proc CheckFileName {slave file} { - # This used to limit what can be sourced to ".tcl" and forbid files - # with more than 1 dot and longer than 14 chars, but I changed that - # for 8.4 as a safe interp has enough internal protection already - # to allow sourcing anything. - hobbs - - if {![file exists $file]} { - # don't tell the file path - error "no such file or directory" - } - - if {![file readable $file]} { - # don't tell the file path - error "not readable" - } - } - - - # AliasSource is the target of the "source" alias in safe interpreters. - - proc AliasSource {slave args} { - - set argc [llength $args] - # Allow only "source filename" - # (and not mac specific -rsrc for instance - see comment in ::init - # for current rationale) - if {$argc != 1} { - set msg "wrong # args: should be \"source fileName\"" - Log $slave "$msg ($args)" - return -code error $msg - } - set file [lindex $args 0] - - # get the real path from the virtual one. - if {[catch {set file [TranslatePath $slave $file]} msg]} { - Log $slave $msg - return -code error "permission denied" - } - - # check that the path is in the access path of that slave - if {[catch {FileInAccessPath $slave $file} msg]} { - Log $slave $msg - return -code error "permission denied" - } - - # do the checks on the filename : - if {[catch {CheckFileName $slave $file} msg]} { - Log $slave "$file:$msg" - return -code error $msg - } - - # passed all the tests , lets source it: - if {[catch {::interp invokehidden $slave source $file} msg]} { - Log $slave $msg - return -code error "script error" - } - return $msg - } - - # AliasLoad is the target of the "load" alias in safe interpreters. - - proc AliasLoad {slave file args} { - - set argc [llength $args] - if {$argc > 2} { - set msg "load error: too many arguments" - Log $slave "$msg ($argc) {$file $args}" - return -code error $msg - } - - # package name (can be empty if file is not). - set package [lindex $args 0] - - # Determine where to load. load use a relative interp path - # and {} means self, so we can directly and safely use passed arg. - set target [lindex $args 1] - if {$target ne ""} { - # we will try to load into a sub sub interp - # check that we want to authorize that. - if {![NestedOk $slave]} { - Log $slave "loading to a sub interp (nestedok)\ - disabled (trying to load $package to $target)" - return -code error "permission denied (nested load)" - } - - } - - # Determine what kind of load is requested - if {$file eq ""} { - # static package loading - if {$package eq ""} { - set msg "load error: empty filename and no package name" - Log $slave $msg - return -code error $msg - } - if {![StaticsOk $slave]} { - Log $slave "static packages loading disabled\ - (trying to load $package to $target)" - return -code error "permission denied (static package)" - } - } else { - # file loading - - # get the real path from the virtual one. - if {[catch {set file [TranslatePath $slave $file]} msg]} { - Log $slave $msg - return -code error "permission denied" - } - - # check the translated path - if {[catch {FileInAccessPath $slave $file} msg]} { - Log $slave $msg - return -code error "permission denied (path)" - } - } - - if {[catch {::interp invokehidden\ - $slave load $file $package $target} msg]} { - Log $slave $msg - return -code error $msg - } - - return $msg - } - - # FileInAccessPath raises an error if the file is not found in - # the list of directories contained in the (master side recorded) slave's - # access path. - - # the security here relies on "file dirname" answering the proper - # result.... needs checking ? - proc FileInAccessPath {slave file} { - - set access_path [GetAccessPath $slave] - - if {[file isdirectory $file]} { - error "\"$file\": is a directory" - } - set parent [file dirname $file] - - # Normalize paths for comparison since lsearch knows nothing of - # potential pathname anomalies. - set norm_parent [file normalize $parent] - foreach path $access_path { - lappend norm_access_path [file normalize $path] - } - - if {[lsearch -exact $norm_access_path $norm_parent] == -1} { - error "\"$file\": not in access_path" - } - } - - # This procedure enables access from a safe interpreter to only a subset of - # the subcommands of a command: - - proc Subset {slave command okpat args} { - set subcommand [lindex $args 0] - if {[regexp $okpat $subcommand]} { - return [eval [linsert $args 0 $command]] - } - set msg "not allowed to invoke subcommand $subcommand of $command" - Log $slave $msg - error $msg - } - - # This procedure installs an alias in a slave that invokes "safesubset" - # in the master to execute allowed subcommands. It precomputes the pattern - # of allowed subcommands; you can use wildcards in the pattern if you wish - # to allow subcommand abbreviation. - # - # Syntax is: AliasSubset slave alias target subcommand1 subcommand2... - - proc AliasSubset {slave alias target args} { - set pat ^(; set sep "" - foreach sub $args { - append pat $sep$sub - set sep | - } - append pat )\$ - ::interp alias $slave $alias {}\ - [namespace current]::Subset $slave $target $pat - } - - # AliasEncoding is the target of the "encoding" alias in safe interpreters. - - proc AliasEncoding {slave args} { - - set argc [llength $args] - - set okpat "^(name.*|convert.*)\$" - set subcommand [lindex $args 0] - - if {[regexp $okpat $subcommand]} { - return [eval [linsert $args 0 \ - ::interp invokehidden $slave encoding]] - } - - if {[string first $subcommand system] == 0} { - if {$argc == 1} { - # passed all the tests , lets source it: - if {[catch {::interp invokehidden \ - $slave encoding system} msg]} { - Log $slave $msg - return -code error "script error" - } - } else { - set msg "wrong # args: should be \"encoding system\"" - Log $slave $msg - error $msg - } - } else { - set msg "wrong # args: should be \"encoding option ?arg ...?\"" - Log $slave $msg - error $msg - } - - return $msg - } - -} diff --git a/mingw/lib/tcl8.4/tclIndex b/mingw/lib/tcl8.4/tclIndex deleted file mode 100644 index 16680eaf..00000000 --- a/mingw/lib/tcl8.4/tclIndex +++ /dev/null @@ -1,83 +0,0 @@ -# Tcl autoload index file, version 2.0 -# This file is generated by the "auto_mkindex" command -# and sourced to set up indexing information for one or -# more commands. Typically each line is a command that -# sets an element in the auto_index array, where the -# element name is the name of a command and the value is -# a script that loads the command. - -set auto_index(auto_reset) [list source [file join $dir auto.tcl]] -set auto_index(tcl_findLibrary) [list source [file join $dir auto.tcl]] -set auto_index(auto_mkindex) [list source [file join $dir auto.tcl]] -set auto_index(auto_mkindex_old) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::init) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::cleanup) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::mkindex) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::hook) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::slavehook) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::command) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::commandInit) [list source [file join $dir auto.tcl]] -set auto_index(::auto_mkindex_parser::fullname) [list source [file join $dir auto.tcl]] -set auto_index(history) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistAdd) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistKeep) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistClear) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistInfo) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistRedo) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistIndex) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistEvent) [list source [file join $dir history.tcl]] -set auto_index(::tcl::HistChange) [list source [file join $dir history.tcl]] -set auto_index(tclLdAout) [list source [file join $dir ldAout.tcl]] -set auto_index(pkg_compareExtension) [list source [file join $dir package.tcl]] -set auto_index(pkg_mkIndex) [list source [file join $dir package.tcl]] -set auto_index(tclPkgSetup) [list source [file join $dir package.tcl]] -set auto_index(tclPkgUnknown) [list source [file join $dir package.tcl]] -set auto_index(::tcl::MacOSXPkgUnknown) [list source [file join $dir package.tcl]] -set auto_index(::tcl::MacPkgUnknown) [list source [file join $dir package.tcl]] -set auto_index(::pkg::create) [list source [file join $dir package.tcl]] -set auto_index(parray) [list source [file join $dir parray.tcl]] -set auto_index(::safe::InterpStatics) [list source [file join $dir safe.tcl]] -set auto_index(::safe::InterpNested) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpCreate) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpInit) [list source [file join $dir safe.tcl]] -set auto_index(::safe::CheckInterp) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpConfigure) [list source [file join $dir safe.tcl]] -set auto_index(::safe::InterpCreate) [list source [file join $dir safe.tcl]] -set auto_index(::safe::InterpSetConfig) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpFindInAccessPath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpAddToAccessPath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::InterpInit) [list source [file join $dir safe.tcl]] -set auto_index(::safe::AddSubDirs) [list source [file join $dir safe.tcl]] -set auto_index(::safe::interpDelete) [list source [file join $dir safe.tcl]] -set auto_index(::safe::setLogCmd) [list source [file join $dir safe.tcl]] -set auto_index(::safe::SyncAccessPath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::InterpStateName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::IsInterp) [list source [file join $dir safe.tcl]] -set auto_index(::safe::PathToken) [list source [file join $dir safe.tcl]] -set auto_index(::safe::PathListName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::VirtualPathListName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::PathNumberName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::StaticsOkName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::NestedOkName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Toplevel) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Set) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Lappend) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Unset) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Exists) [list source [file join $dir safe.tcl]] -set auto_index(::safe::GetAccessPath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::StaticsOk) [list source [file join $dir safe.tcl]] -set auto_index(::safe::NestedOk) [list source [file join $dir safe.tcl]] -set auto_index(::safe::DeleteHookName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::TranslatePath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Log) [list source [file join $dir safe.tcl]] -set auto_index(::safe::CheckFileName) [list source [file join $dir safe.tcl]] -set auto_index(::safe::AliasSource) [list source [file join $dir safe.tcl]] -set auto_index(::safe::AliasLoad) [list source [file join $dir safe.tcl]] -set auto_index(::safe::FileInAccessPath) [list source [file join $dir safe.tcl]] -set auto_index(::safe::Subset) [list source [file join $dir safe.tcl]] -set auto_index(::safe::AliasSubset) [list source [file join $dir safe.tcl]] -set auto_index(tcl_wordBreakAfter) [list source [file join $dir word.tcl]] -set auto_index(tcl_wordBreakBefore) [list source [file join $dir word.tcl]] -set auto_index(tcl_endOfWord) [list source [file join $dir word.tcl]] -set auto_index(tcl_startOfNextWord) [list source [file join $dir word.tcl]] -set auto_index(tcl_startOfPreviousWord) [list source [file join $dir word.tcl]] diff --git a/mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl b/mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl deleted file mode 100644 index 1aa4a460..00000000 --- a/mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl +++ /dev/null @@ -1,12 +0,0 @@ -# Tcl package index file, version 1.1 -# This file is generated by the "pkg_mkIndex -direct" command -# and sourced either when an application starts up or -# by a "package unknown" script. It invokes the -# "package ifneeded" command to set up package-related -# information so that packages will be loaded automatically -# in response to "package require" commands. When this -# script is sourced, the variable $dir must contain the -# full path name of this file's directory. - -if {![package vsatisfies [package provide Tcl] 8.3]} {return} -package ifneeded tcltest 2.2.8 [list source [file join $dir tcltest.tcl]] diff --git a/mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl b/mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl deleted file mode 100644 index 4e429324..00000000 --- a/mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl +++ /dev/null @@ -1,3354 +0,0 @@ -# tcltest.tcl -- -# -# This file contains support code for the Tcl test suite. It -# defines the tcltest namespace and finds and defines the output -# directory, constraints available, output and error channels, -# etc. used by Tcl tests. See the tcltest man page for more -# details. -# -# This design was based on the Tcl testing approach designed and -# initially implemented by Mary Ann May-Pumphrey of Sun -# Microsystems. -# -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# Copyright (c) 1998-1999 by Scriptics Corporation. -# Copyright (c) 2000 by Ajuba Solutions -# Contributions from Don Porter, NIST, 2002. (not subject to US copyright) -# All rights reserved. -# -# RCS: @(#) $Id: tcltest.tcl,v 1.78.2.13 2005/02/24 18:03:36 dgp Exp $ - -package require Tcl 8.3 ;# uses [glob -directory] -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.2.8 - - # Compatibility support for dumb variables defined in tcltest 1 - # Do not use these. Call [package provide Tcl] and [info patchlevel] - # yourself. You don't need tcltest to wrap it for you. - variable version [package provide Tcl] - variable patchLevel [info patchlevel] - -##### Export the public tcltest procs; several categories - # - # Export the main functional commands that do useful things - namespace export cleanupTests loadTestedCommands makeDirectory \ - makeFile removeDirectory removeFile runAllTests test - - # Export configuration commands that control the functional commands - namespace export configure customMatch errorChannel interpreter \ - outputChannel testConstraint - - # Export commands that are duplication (candidates for deprecation) - namespace export bytestring ;# dups [encoding convertfrom identity] - namespace export debug ;# [configure -debug] - namespace export errorFile ;# [configure -errfile] - namespace export limitConstraints ;# [configure -limitconstraints] - namespace export loadFile ;# [configure -loadfile] - namespace export loadScript ;# [configure -load] - namespace export match ;# [configure -match] - namespace export matchFiles ;# [configure -file] - namespace export matchDirectories ;# [configure -relateddir] - namespace export normalizeMsg ;# application of [customMatch] - namespace export normalizePath ;# [file normalize] (8.4) - namespace export outputFile ;# [configure -outfile] - namespace export preserveCore ;# [configure -preservecore] - namespace export singleProcess ;# [configure -singleproc] - namespace export skip ;# [configure -skip] - namespace export skipFiles ;# [configure -notfile] - namespace export skipDirectories ;# [configure -asidefromdir] - namespace export temporaryDirectory ;# [configure -tmpdir] - namespace export testsDirectory ;# [configure -testdir] - namespace export verbose ;# [configure -verbose] - namespace export viewFile ;# binary encoding [read] - namespace export workingDirectory ;# [cd] [pwd] - - # Export deprecated commands for tcltest 1 compatibility - namespace export getMatchingFiles mainThread restoreState saveState \ - threadReap - - # tcltest::normalizePath -- - # - # This procedure resolves any symlinks in the path thus creating - # a path without internal redirection. It assumes that the - # incoming path is absolute. - # - # Arguments - # pathVar - name of variable containing path to modify. - # - # Results - # The path is modified in place. - # - # Side Effects: - # None. - # - proc normalizePath {pathVar} { - upvar $pathVar path - set oldpwd [pwd] - catch {cd $path} - set path [pwd] - cd $oldpwd - return $path - } - -##### Verification commands used to test values of variables and options - # - # Verification command that accepts everything - proc AcceptAll {value} { - return $value - } - - # Verification command that accepts valid Tcl lists - proc AcceptList { list } { - return [lrange $list 0 end] - } - - # Verification command that accepts a glob pattern - proc AcceptPattern { pattern } { - return [AcceptAll $pattern] - } - - # Verification command that accepts integers - proc AcceptInteger { level } { - return [incr level 0] - } - - # Verification command that accepts boolean values - proc AcceptBoolean { boolean } { - return [expr {$boolean && $boolean}] - } - - # Verification command that accepts (syntactically) valid Tcl scripts - proc AcceptScript { script } { - if {![info complete $script]} { - return -code error "invalid Tcl script: $script" - } - return $script - } - - # Verification command that accepts (converts to) absolute pathnames - proc AcceptAbsolutePath { path } { - return [file join [pwd] $path] - } - - # Verification command that accepts existing readable directories - proc AcceptReadable { path } { - if {![file readable $path]} { - return -code error "\"$path\" is not readable" - } - return $path - } - proc AcceptDirectory { directory } { - set directory [AcceptAbsolutePath $directory] - if {![file exists $directory]} { - return -code error "\"$directory\" does not exist" - } - if {![file isdir $directory]} { - return -code error "\"$directory\" is not a directory" - } - return [AcceptReadable $directory] - } - -##### Initialize internal arrays of tcltest, but only if the caller - # has not already pre-initialized them. This is done to support - # compatibility with older tests that directly access internals - # rather than go through command interfaces. - # - proc ArrayDefault {varName value} { - variable $varName - if {[array exists $varName]} { - return - } - if {[info exists $varName]} { - # Pre-initialized value is a scalar: destroy it! - unset $varName - } - array set $varName $value - } - - # save the original environment so that it can be restored later - ArrayDefault originalEnv [array get ::env] - - # initialize numTests array to keep track of the number of tests - # that pass, fail, and are skipped. - ArrayDefault numTests [list Total 0 Passed 0 Skipped 0 Failed 0] - - # createdNewFiles will store test files as indices and the list of - # files (that should not have been) left behind by the test files - # as values. - ArrayDefault createdNewFiles {} - - # initialize skippedBecause array to keep track of constraints that - # kept tests from running; a constraint name of "userSpecifiedSkip" - # means that the test appeared on the list of tests that matched the - # -skip value given to the flag; "userSpecifiedNonMatch" means that - # the test didn't match the argument given to the -match flag; both - # of these constraints are counted only if tcltest::debug is set to - # true. - ArrayDefault skippedBecause {} - - # initialize the testConstraints array to keep track of valid - # predefined constraints (see the explanation for the - # InitConstraints proc for more details). - ArrayDefault testConstraints {} - -##### Initialize internal variables of tcltest, but only if the caller - # has not already pre-initialized them. This is done to support - # compatibility with older tests that directly access internals - # rather than go through command interfaces. - # - proc Default {varName value {verify AcceptAll}} { - variable $varName - if {![info exists $varName]} { - variable $varName [$verify $value] - } else { - variable $varName [$verify [set $varName]] - } - } - - # Save any arguments that we might want to pass through to other - # programs. This is used by the -args flag. - # FINDUSER - Default parameters {} - - # Count the number of files tested (0 if runAllTests wasn't called). - # runAllTests will set testSingleFile to false, so stats will - # not be printed until runAllTests calls the cleanupTests proc. - # The currentFailure var stores the boolean value of whether the - # current test file has had any failures. The failFiles list - # stores the names of test files that had failures. - Default numTestFiles 0 AcceptInteger - Default testSingleFile true AcceptBoolean - Default currentFailure false AcceptBoolean - Default failFiles {} AcceptList - - # Tests should remove all files they create. The test suite will - # check the current working dir for files created by the tests. - # filesMade keeps track of such files created using the makeFile and - # makeDirectory procedures. filesExisted stores the names of - # pre-existing files. - # - # Note that $filesExisted lists only those files that exist in - # the original [temporaryDirectory]. - Default filesMade {} AcceptList - Default filesExisted {} AcceptList - proc FillFilesExisted {} { - variable filesExisted - - # Save the names of files that already exist in the scratch directory. - foreach file [glob -nocomplain -directory [temporaryDirectory] *] { - lappend filesExisted [file tail $file] - } - - # After successful filling, turn this into a no-op. - proc FillFilesExisted args {} - } - - # Kept only for compatibility - Default constraintsSpecified {} AcceptList - trace variable constraintsSpecified r {set ::tcltest::constraintsSpecified \ - [array names ::tcltest::testConstraints] ;# } - - # tests that use threads need to know which is the main thread - Default mainThread 1 - variable mainThread - if {[info commands thread::id] != {}} { - set mainThread [thread::id] - } elseif {[info commands testthread] != {}} { - set mainThread [testthread id] - } - - # Set workingDirectory to [pwd]. The default output directory for - # Tcl tests is the working directory. Whenever this value changes - # change to that directory. - variable workingDirectory - trace variable workingDirectory w \ - [namespace code {cd $workingDirectory ;#}] - - Default workingDirectory [pwd] AcceptAbsolutePath - proc workingDirectory { {dir ""} } { - variable workingDirectory - if {[llength [info level 0]] == 1} { - return $workingDirectory - } - set workingDirectory [AcceptAbsolutePath $dir] - } - - # Set the location of the execuatble - Default tcltest [info nameofexecutable] - trace variable tcltest w [namespace code {testConstraint stdio \ - [eval [ConstraintInitializer stdio]] ;#}] - - # save the platform information so it can be restored later - Default originalTclPlatform [array get ::tcl_platform] - - # If a core file exists, save its modification time. - if {[file exists [file join [workingDirectory] core]]} { - Default coreModTime \ - [file mtime [file join [workingDirectory] core]] - } - - # stdout and stderr buffers for use when we want to store them - Default outData {} - Default errData {} - - # keep track of test level for nested test commands - variable testLevel 0 - - # the variables and procs that existed when saveState was called are - # stored in a variable of the same name - Default saveState {} - - # Internationalization support -- used in [SetIso8859_1_Locale] and - # [RestoreLocale]. Those commands are used in cmdIL.test. - - if {![info exists [namespace current]::isoLocale]} { - variable isoLocale fr - switch -- $::tcl_platform(platform) { - "unix" { - - # Try some 'known' values for some platforms: - - switch -exact -- $::tcl_platform(os) { - "FreeBSD" { - set isoLocale fr_FR.ISO_8859-1 - } - HP-UX { - set isoLocale fr_FR.iso88591 - } - Linux - - IRIX { - set isoLocale fr - } - default { - - # Works on SunOS 4 and Solaris, and maybe - # others... Define it to something else on your - # system if you want to test those. - - set isoLocale iso_8859_1 - } - } - } - "windows" { - set isoLocale French - } - } - } - - variable ChannelsWeOpened; array set ChannelsWeOpened {} - # output goes to stdout by default - Default outputChannel stdout - proc outputChannel { {filename ""} } { - variable outputChannel - variable ChannelsWeOpened - - # This is very subtle and tricky, so let me try to explain. - # (Hopefully this longer comment will be clear when I come - # back in a few months, unlike its predecessor :) ) - # - # The [outputChannel] command (and underlying variable) have to - # be kept in sync with the [configure -outfile] configuration - # option ( and underlying variable Option(-outfile) ). This is - # accomplished with a write trace on Option(-outfile) that will - # update [outputChannel] whenver a new value is written. That - # much is easy. - # - # The trick is that in order to maintain compatibility with - # version 1 of tcltest, we must allow every configuration option - # to get its inital value from command line arguments. This is - # accomplished by setting initial read traces on all the - # configuration options to parse the command line option the first - # time they are read. These traces are cancelled whenever the - # program itself calls [configure]. - # - # OK, then so to support tcltest 1 compatibility, it seems we want - # to get the return from [outputFile] to trigger the read traces, - # just in case. - # - # BUT! A little known feature of Tcl variable traces is that - # traces are disabled during the handling of other traces. So, - # if we trigger read traces on Option(-outfile) and that triggers - # command line parsing which turns around and sets an initial - # value for Option(-outfile) -- -- the write trace that - # would keep [outputChannel] in sync with that new initial value - # would not fire! - # - # SO, finally, as a workaround, instead of triggering read traces - # by invoking [outputFile], we instead trigger the same set of - # read traces by invoking [debug]. Any command that reads a - # configuration option would do. [debug] is just a handy one. - # The end result is that we support tcltest 1 compatibility and - # keep outputChannel and -outfile in sync in all cases. - debug - - if {[llength [info level 0]] == 1} { - return $outputChannel - } - if {[info exists ChannelsWeOpened($outputChannel)]} { - close $outputChannel - unset ChannelsWeOpened($outputChannel) - } - switch -exact -- $filename { - stderr - - stdout { - set outputChannel $filename - } - default { - set outputChannel [open $filename a] - set ChannelsWeOpened($outputChannel) 1 - - # If we created the file in [temporaryDirectory], then - # [cleanupTests] will delete it, unless we claim it was - # already there. - set outdir [normalizePath [file dirname \ - [file join [pwd] $filename]]] - if {[string equal $outdir [temporaryDirectory]]} { - variable filesExisted - FillFilesExisted - set filename [file tail $filename] - if {[lsearch -exact $filesExisted $filename] == -1} { - lappend filesExisted $filename - } - } - } - } - return $outputChannel - } - - # errors go to stderr by default - Default errorChannel stderr - proc errorChannel { {filename ""} } { - variable errorChannel - variable ChannelsWeOpened - - # This is subtle and tricky. See the comment above in - # [outputChannel] for a detailed explanation. - debug - - if {[llength [info level 0]] == 1} { - return $errorChannel - } - if {[info exists ChannelsWeOpened($errorChannel)]} { - close $errorChannel - unset ChannelsWeOpened($errorChannel) - } - switch -exact -- $filename { - stderr - - stdout { - set errorChannel $filename - } - default { - set errorChannel [open $filename a] - set ChannelsWeOpened($errorChannel) 1 - - # If we created the file in [temporaryDirectory], then - # [cleanupTests] will delete it, unless we claim it was - # already there. - set outdir [normalizePath [file dirname \ - [file join [pwd] $filename]]] - if {[string equal $outdir [temporaryDirectory]]} { - variable filesExisted - FillFilesExisted - set filename [file tail $filename] - if {[lsearch -exact $filesExisted $filename] == -1} { - lappend filesExisted $filename - } - } - } - } - return $errorChannel - } - -##### Set up the configurable options - # - # The configurable options of the package - variable Option; array set Option {} - - # Usage strings for those options - variable Usage; array set Usage {} - - # Verification commands for those options - variable Verify; array set Verify {} - - # Initialize the default values of the configurable options that are - # historically associated with an exported variable. If that variable - # is already set, support compatibility by accepting its pre-set value. - # Use [trace] to establish ongoing connection between the deprecated - # exported variable and the modern option kept as a true internal var. - # Also set up usage string and value testing for the option. - proc Option {option value usage {verify AcceptAll} {varName {}}} { - variable Option - variable Verify - variable Usage - variable OptionControlledVariables - set Usage($option) $usage - set Verify($option) $verify - if {[catch {$verify $value} msg]} { - return -code error $msg - } else { - set Option($option) $msg - } - if {[string length $varName]} { - variable $varName - if {[info exists $varName]} { - if {[catch {$verify [set $varName]} msg]} { - return -code error $msg - } else { - set Option($option) $msg - } - unset $varName - } - namespace eval [namespace current] \ - [list upvar 0 Option($option) $varName] - # Workaround for Bug (now Feature Request) 572889. Grrrr.... - # Track all the variables tied to options - lappend OptionControlledVariables $varName - # Later, set auto-configure read traces on all - # of them, since a single trace on Option does not work. - proc $varName {{value {}}} [subst -nocommands { - if {[llength [info level 0]] == 2} { - Configure $option [set value] - } - return [Configure $option] - }] - } - } - - proc MatchingOption {option} { - variable Option - set match [array names Option $option*] - switch -- [llength $match] { - 0 { - set sorted [lsort [array names Option]] - set values [join [lrange $sorted 0 end-1] ", "] - append values ", or [lindex $sorted end]" - return -code error "unknown option $option: should be\ - one of $values" - } - 1 { - return [lindex $match 0] - } - default { - # Exact match trumps ambiguity - if {[lsearch -exact $match $option] >= 0} { - return $option - } - set values [join [lrange $match 0 end-1] ", "] - append values ", or [lindex $match end]" - return -code error "ambiguous option $option:\ - could match $values" - } - } - } - - proc EstablishAutoConfigureTraces {} { - variable OptionControlledVariables - foreach varName [concat $OptionControlledVariables Option] { - variable $varName - trace variable $varName r [namespace code {ProcessCmdLineArgs ;#}] - } - } - - proc RemoveAutoConfigureTraces {} { - variable OptionControlledVariables - foreach varName [concat $OptionControlledVariables Option] { - variable $varName - foreach pair [trace vinfo $varName] { - foreach {op cmd} $pair break - if {[string equal r $op] - && [string match *ProcessCmdLineArgs* $cmd]} { - trace vdelete $varName $op $cmd - } - } - } - # Once the traces are removed, this can become a no-op - proc RemoveAutoConfigureTraces {} {} - } - - proc Configure args { - variable Option - variable Verify - set n [llength $args] - if {$n == 0} { - return [lsort [array names Option]] - } - if {$n == 1} { - if {[catch {MatchingOption [lindex $args 0]} option]} { - return -code error $option - } - return $Option($option) - } - while {[llength $args] > 1} { - if {[catch {MatchingOption [lindex $args 0]} option]} { - return -code error $option - } - if {[catch {$Verify($option) [lindex $args 1]} value]} { - return -code error "invalid $option\ - value \"[lindex $args 1]\": $value" - } - set Option($option) $value - set args [lrange $args 2 end] - } - if {[llength $args]} { - if {[catch {MatchingOption [lindex $args 0]} option]} { - return -code error $option - } - return -code error "missing value for option $option" - } - } - proc configure args { - RemoveAutoConfigureTraces - set code [catch {eval Configure $args} msg] - return -code $code $msg - } - - proc AcceptVerbose { level } { - set level [AcceptList $level] - if {[llength $level] == 1} { - if {![regexp {^(pass|body|skip|start|error)$} $level]} { - # translate single characters abbreviations to expanded list - set level [string map {p pass b body s skip t start e error} \ - [split $level {}]] - } - } - set valid [list] - foreach v $level { - if {[regexp {^(pass|body|skip|start|error)$} $v]} { - lappend valid $v - } - } - return $valid - } - - proc IsVerbose {level} { - variable Option - return [expr {[lsearch -exact $Option(-verbose) $level] != -1}] - } - - # Default verbosity is to show bodies of failed tests - Option -verbose {body error} { - Takes any combination of the values 'p', 's', 'b', 't' and 'e'. - Test suite will display all passed tests if 'p' is specified, all - skipped tests if 's' is specified, the bodies of failed tests if - 'b' is specified, and when tests start if 't' is specified. - ErrorInfo is displayed if 'e' is specified. - } AcceptVerbose verbose - - # Match and skip patterns default to the empty list, except for - # matchFiles, which defaults to all .test files in the - # testsDirectory and matchDirectories, which defaults to all - # directories. - Option -match * { - Run all tests within the specified files that match one of the - list of glob patterns given. - } AcceptList match - - Option -skip {} { - Skip all tests within the specified tests (via -match) and files - that match one of the list of glob patterns given. - } AcceptList skip - - Option -file *.test { - Run tests in all test files that match the glob pattern given. - } AcceptPattern matchFiles - - # By default, skip files that appear to be SCCS lock files. - Option -notfile l.*.test { - Skip all test files that match the glob pattern given. - } AcceptPattern skipFiles - - Option -relateddir * { - Run tests in directories that match the glob pattern given. - } AcceptPattern matchDirectories - - Option -asidefromdir {} { - Skip tests in directories that match the glob pattern given. - } AcceptPattern skipDirectories - - # By default, don't save core files - Option -preservecore 0 { - If 2, save any core files produced during testing in the directory - specified by -tmpdir. If 1, notify the user if core files are - created. - } AcceptInteger preserveCore - - # debug output doesn't get printed by default; debug level 1 spits - # up only the tests that were skipped because they didn't match or - # were specifically skipped. A debug level of 2 would spit up the - # tcltest variables and flags provided; a debug level of 3 causes - # some additional output regarding operations of the test harness. - # The tcltest package currently implements only up to debug level 3. - Option -debug 0 { - Internal debug level - } AcceptInteger debug - - proc SetSelectedConstraints args { - variable Option - foreach c $Option(-constraints) { - testConstraint $c 1 - } - } - Option -constraints {} { - Do not skip the listed constraints listed in -constraints. - } AcceptList - trace variable Option(-constraints) w \ - [namespace code {SetSelectedConstraints ;#}] - - # Don't run only the "-constraint" specified tests by default - proc ClearUnselectedConstraints args { - variable Option - variable testConstraints - if {!$Option(-limitconstraints)} {return} - foreach c [array names testConstraints] { - if {[lsearch -exact $Option(-constraints) $c] == -1} { - testConstraint $c 0 - } - } - } - Option -limitconstraints false { - whether to run only tests with the constraints - } AcceptBoolean limitConstraints - trace variable Option(-limitconstraints) w \ - [namespace code {ClearUnselectedConstraints ;#}] - - # A test application has to know how to load the tested commands - # into the interpreter. - Option -load {} { - Specifies the script to load the tested commands. - } AcceptScript loadScript - - # Default is to run each test file in a separate process - Option -singleproc 0 { - whether to run all tests in one process - } AcceptBoolean singleProcess - - proc AcceptTemporaryDirectory { directory } { - set directory [AcceptAbsolutePath $directory] - if {![file exists $directory]} { - file mkdir $directory - } - set directory [AcceptDirectory $directory] - if {![file writable $directory]} { - if {[string equal [workingDirectory] $directory]} { - # Special exception: accept the default value - # even if the directory is not writable - return $directory - } - return -code error "\"$directory\" is not writeable" - } - return $directory - } - - # Directory where files should be created - Option -tmpdir [workingDirectory] { - Save temporary files in the specified directory. - } AcceptTemporaryDirectory temporaryDirectory - trace variable Option(-tmpdir) w \ - [namespace code {normalizePath Option(-tmpdir) ;#}] - - # Tests should not rely on the current working directory. - # Files that are part of the test suite should be accessed relative - # to [testsDirectory] - Option -testdir [workingDirectory] { - Search tests in the specified directory. - } AcceptDirectory testsDirectory - trace variable Option(-testdir) w \ - [namespace code {normalizePath Option(-testdir) ;#}] - - proc AcceptLoadFile { file } { - if {[string equal "" $file]} {return $file} - set file [file join [temporaryDirectory] $file] - return [AcceptReadable $file] - } - proc ReadLoadScript {args} { - variable Option - if {[string equal "" $Option(-loadfile)]} {return} - set tmp [open $Option(-loadfile) r] - loadScript [read $tmp] - close $tmp - } - Option -loadfile {} { - Read the script to load the tested commands from the specified file. - } AcceptLoadFile loadFile - trace variable Option(-loadfile) w [namespace code ReadLoadScript] - - proc AcceptOutFile { file } { - if {[string equal stderr $file]} {return $file} - if {[string equal stdout $file]} {return $file} - return [file join [temporaryDirectory] $file] - } - - # output goes to stdout by default - Option -outfile stdout { - Send output from test runs to the specified file. - } AcceptOutFile outputFile - trace variable Option(-outfile) w \ - [namespace code {outputChannel $Option(-outfile) ;#}] - - # errors go to stderr by default - Option -errfile stderr { - Send errors from test runs to the specified file. - } AcceptOutFile errorFile - trace variable Option(-errfile) w \ - [namespace code {errorChannel $Option(-errfile) ;#}] - -} - -##################################################################### - -# tcltest::Debug* -- -# -# Internal helper procedures to write out debug information -# dependent on the chosen level. A test shell may overide -# them, f.e. to redirect the output into a different -# channel, or even into a GUI. - -# tcltest::DebugPuts -- -# -# Prints the specified string if the current debug level is -# higher than the provided level argument. -# -# Arguments: -# level The lowest debug level triggering the output -# string The string to print out. -# -# Results: -# Prints the string. Nothing else is allowed. -# -# Side Effects: -# None. -# - -proc tcltest::DebugPuts {level string} { - variable debug - if {$debug >= $level} { - puts $string - } - return -} - -# tcltest::DebugPArray -- -# -# Prints the contents of the specified array if the current -# debug level is higher than the provided level argument -# -# Arguments: -# level The lowest debug level triggering the output -# arrayvar The name of the array to print out. -# -# Results: -# Prints the contents of the array. Nothing else is allowed. -# -# Side Effects: -# None. -# - -proc tcltest::DebugPArray {level arrayvar} { - variable debug - - if {$debug >= $level} { - catch {upvar $arrayvar $arrayvar} - parray $arrayvar - } - return -} - -# Define our own [parray] in ::tcltest that will inherit use of the [puts] -# defined in ::tcltest. NOTE: Ought to construct with [info args] and -# [info default], but can't be bothered now. If [parray] changes, then -# this will need changing too. -auto_load ::parray -proc tcltest::parray {a {pattern *}} [info body ::parray] - -# tcltest::DebugDo -- -# -# Executes the script if the current debug level is greater than -# the provided level argument -# -# Arguments: -# level The lowest debug level triggering the execution. -# script The tcl script executed upon a debug level high enough. -# -# Results: -# Arbitrary side effects, dependent on the executed script. -# -# Side Effects: -# None. -# - -proc tcltest::DebugDo {level script} { - variable debug - - if {$debug >= $level} { - uplevel 1 $script - } - return -} - -##################################################################### - -proc tcltest::Warn {msg} { - puts [outputChannel] "WARNING: $msg" -} - -# tcltest::mainThread -# -# Accessor command for tcltest variable mainThread. -# -proc tcltest::mainThread { {new ""} } { - variable mainThread - if {[llength [info level 0]] == 1} { - return $mainThread - } - set mainThread $new -} - -# tcltest::testConstraint -- -# -# sets a test constraint to a value; to do multiple constraints, -# call this proc multiple times. also returns the value of the -# named constraint if no value was supplied. -# -# Arguments: -# constraint - name of the constraint -# value - new value for constraint (should be boolean) - if not -# supplied, this is a query -# -# Results: -# content of tcltest::testConstraints($constraint) -# -# Side effects: -# none - -proc tcltest::testConstraint {constraint {value ""}} { - variable testConstraints - variable Option - DebugPuts 3 "entering testConstraint $constraint $value" - if {[llength [info level 0]] == 2} { - return $testConstraints($constraint) - } - # Check for boolean values - if {[catch {expr {$value && $value}} msg]} { - return -code error $msg - } - if {[limitConstraints] - && [lsearch -exact $Option(-constraints) $constraint] == -1} { - set value 0 - } - set testConstraints($constraint) $value -} - -# tcltest::interpreter -- -# -# the interpreter name stored in tcltest::tcltest -# -# Arguments: -# executable name -# -# Results: -# content of tcltest::tcltest -# -# Side effects: -# None. - -proc tcltest::interpreter { {interp ""} } { - variable tcltest - if {[llength [info level 0]] == 1} { - return $tcltest - } - if {[string equal {} $interp]} { - set tcltest {} - } else { - set tcltest $interp - } -} - -##################################################################### - -# tcltest::AddToSkippedBecause -- -# -# Increments the variable used to track how many tests were -# skipped because of a particular constraint. -# -# Arguments: -# constraint The name of the constraint to be modified -# -# Results: -# Modifies tcltest::skippedBecause; sets the variable to 1 if -# didn't previously exist - otherwise, it just increments it. -# -# Side effects: -# None. - -proc tcltest::AddToSkippedBecause { constraint {value 1}} { - # add the constraint to the list of constraints that kept tests - # from running - variable skippedBecause - - if {[info exists skippedBecause($constraint)]} { - incr skippedBecause($constraint) $value - } else { - set skippedBecause($constraint) $value - } - return -} - -# tcltest::PrintError -- -# -# Prints errors to tcltest::errorChannel and then flushes that -# channel, making sure that all messages are < 80 characters per -# line. -# -# Arguments: -# errorMsg String containing the error to be printed -# -# Results: -# None. -# -# Side effects: -# None. - -proc tcltest::PrintError {errorMsg} { - set InitialMessage "Error: " - set InitialMsgLen [string length $InitialMessage] - puts -nonewline [errorChannel] $InitialMessage - - # Keep track of where the end of the string is. - set endingIndex [string length $errorMsg] - - if {$endingIndex < (80 - $InitialMsgLen)} { - puts [errorChannel] $errorMsg - } else { - # Print up to 80 characters on the first line, including the - # InitialMessage. - set beginningIndex [string last " " [string range $errorMsg 0 \ - [expr {80 - $InitialMsgLen}]]] - puts [errorChannel] [string range $errorMsg 0 $beginningIndex] - - while {![string equal end $beginningIndex]} { - puts -nonewline [errorChannel] \ - [string repeat " " $InitialMsgLen] - if {($endingIndex - $beginningIndex) - < (80 - $InitialMsgLen)} { - puts [errorChannel] [string trim \ - [string range $errorMsg $beginningIndex end]] - break - } else { - set newEndingIndex [expr {[string last " " \ - [string range $errorMsg $beginningIndex \ - [expr {$beginningIndex - + (80 - $InitialMsgLen)}] - ]] + $beginningIndex}] - if {($newEndingIndex <= 0) - || ($newEndingIndex <= $beginningIndex)} { - set newEndingIndex end - } - puts [errorChannel] [string trim \ - [string range $errorMsg \ - $beginningIndex $newEndingIndex]] - set beginningIndex $newEndingIndex - } - } - } - flush [errorChannel] - return -} - -# tcltest::SafeFetch -- -# -# The following trace procedure makes it so that we can safely -# refer to non-existent members of the testConstraints array -# without causing an error. Instead, reading a non-existent -# member will return 0. This is necessary because tests are -# allowed to use constraint "X" without ensuring that -# testConstraints("X") is defined. -# -# Arguments: -# n1 - name of the array (testConstraints) -# n2 - array key value (constraint name) -# op - operation performed on testConstraints (generally r) -# -# Results: -# none -# -# Side effects: -# sets testConstraints($n2) to 0 if it's referenced but never -# before used - -proc tcltest::SafeFetch {n1 n2 op} { - variable testConstraints - DebugPuts 3 "entering SafeFetch $n1 $n2 $op" - if {[string equal {} $n2]} {return} - if {![info exists testConstraints($n2)]} { - if {[catch {testConstraint $n2 [eval [ConstraintInitializer $n2]]}]} { - testConstraint $n2 0 - } - } -} - -# tcltest::ConstraintInitializer -- -# -# Get or set a script that when evaluated in the tcltest namespace -# will return a boolean value with which to initialize the -# associated constraint. -# -# Arguments: -# constraint - name of the constraint initialized by the script -# script - the initializer script -# -# Results -# boolean value of the constraint - enabled or disabled -# -# Side effects: -# Constraint is initialized for future reference by [test] -proc tcltest::ConstraintInitializer {constraint {script ""}} { - variable ConstraintInitializer - DebugPuts 3 "entering ConstraintInitializer $constraint $script" - if {[llength [info level 0]] == 2} { - return $ConstraintInitializer($constraint) - } - # Check for boolean values - if {![info complete $script]} { - return -code error "ConstraintInitializer must be complete script" - } - set ConstraintInitializer($constraint) $script -} - -# tcltest::InitConstraints -- -# -# Call all registered constraint initializers to force initialization -# of all known constraints. -# See the tcltest man page for the list of built-in constraints defined -# in this procedure. -# -# Arguments: -# none -# -# Results: -# The testConstraints array is reset to have an index for each -# built-in test constraint. -# -# Side Effects: -# None. -# - -proc tcltest::InitConstraints {} { - variable ConstraintInitializer - initConstraintsHook - foreach constraint [array names ConstraintInitializer] { - testConstraint $constraint - } -} - -proc tcltest::DefineConstraintInitializers {} { - ConstraintInitializer singleTestInterp {singleProcess} - - # All the 'pc' constraints are here for backward compatibility and - # are not documented. They have been replaced with equivalent 'win' - # constraints. - - ConstraintInitializer unixOnly \ - {string equal $::tcl_platform(platform) unix} - ConstraintInitializer macOnly \ - {string equal $::tcl_platform(platform) macintosh} - ConstraintInitializer pcOnly \ - {string equal $::tcl_platform(platform) windows} - ConstraintInitializer winOnly \ - {string equal $::tcl_platform(platform) windows} - - ConstraintInitializer unix {testConstraint unixOnly} - ConstraintInitializer mac {testConstraint macOnly} - ConstraintInitializer pc {testConstraint pcOnly} - ConstraintInitializer win {testConstraint winOnly} - - ConstraintInitializer unixOrPc \ - {expr {[testConstraint unix] || [testConstraint pc]}} - ConstraintInitializer macOrPc \ - {expr {[testConstraint mac] || [testConstraint pc]}} - ConstraintInitializer unixOrWin \ - {expr {[testConstraint unix] || [testConstraint win]}} - ConstraintInitializer macOrWin \ - {expr {[testConstraint mac] || [testConstraint win]}} - ConstraintInitializer macOrUnix \ - {expr {[testConstraint mac] || [testConstraint unix]}} - - ConstraintInitializer nt {string equal $::tcl_platform(os) "Windows NT"} - ConstraintInitializer 95 {string equal $::tcl_platform(os) "Windows 95"} - ConstraintInitializer 98 {string equal $::tcl_platform(os) "Windows 98"} - - # The following Constraints switches are used to mark tests that - # should work, but have been temporarily disabled on certain - # platforms because they don't and we haven't gotten around to - # fixing the underlying problem. - - ConstraintInitializer tempNotPc {expr {![testConstraint pc]}} - ConstraintInitializer tempNotWin {expr {![testConstraint win]}} - ConstraintInitializer tempNotMac {expr {![testConstraint mac]}} - ConstraintInitializer tempNotUnix {expr {![testConstraint unix]}} - - # The following Constraints switches are used to mark tests that - # crash on certain platforms, so that they can be reactivated again - # when the underlying problem is fixed. - - ConstraintInitializer pcCrash {expr {![testConstraint pc]}} - ConstraintInitializer winCrash {expr {![testConstraint win]}} - ConstraintInitializer macCrash {expr {![testConstraint mac]}} - ConstraintInitializer unixCrash {expr {![testConstraint unix]}} - - # Skip empty tests - - ConstraintInitializer emptyTest {format 0} - - # By default, tests that expose known bugs are skipped. - - ConstraintInitializer knownBug {format 0} - - # By default, non-portable tests are skipped. - - ConstraintInitializer nonPortable {format 0} - - # Some tests require user interaction. - - ConstraintInitializer userInteraction {format 0} - - # Some tests must be skipped if the interpreter is not in - # interactive mode - - ConstraintInitializer interactive \ - {expr {[info exists ::tcl_interactive] && $::tcl_interactive}} - - # Some tests can only be run if the installation came from a CD - # image instead of a web image. Some tests must be skipped if you - # are running as root on Unix. Other tests can only be run if you - # are running as root on Unix. - - ConstraintInitializer root {expr \ - {[string equal unix $::tcl_platform(platform)] - && ([string equal root $::tcl_platform(user)] - || [string equal "" $::tcl_platform(user)])}} - ConstraintInitializer notRoot {expr {![testConstraint root]}} - - # Set nonBlockFiles constraint: 1 means this platform supports - # setting files into nonblocking mode. - - ConstraintInitializer nonBlockFiles { - set code [expr {[catch {set f [open defs r]}] - || [catch {fconfigure $f -blocking off}]}] - catch {close $f} - set code - } - - # Set asyncPipeClose constraint: 1 means this platform supports - # async flush and async close on a pipe. - # - # Test for SCO Unix - cannot run async flushing tests because a - # potential problem with select is apparently interfering. - # (Mark Diekhans). - - ConstraintInitializer asyncPipeClose {expr { - !([string equal unix $::tcl_platform(platform)] - && ([catch {exec uname -X | fgrep {Release = 3.2v}}] == 0))}} - - # Test to see if we have a broken version of sprintf with respect - # to the "e" format of floating-point numbers. - - ConstraintInitializer eformat {string equal [format %g 5e-5] 5e-05} - - # Test to see if execed commands such as cat, echo, rm and so forth - # are present on this machine. - - ConstraintInitializer unixExecs { - set code 1 - if {[string equal macintosh $::tcl_platform(platform)]} { - set code 0 - } - if {[string equal windows $::tcl_platform(platform)]} { - if {[catch { - set file _tcl_test_remove_me.txt - makeFile {hello} $file - }]} { - set code 0 - } elseif { - [catch {exec cat $file}] || - [catch {exec echo hello}] || - [catch {exec sh -c echo hello}] || - [catch {exec wc $file}] || - [catch {exec sleep 1}] || - [catch {exec echo abc > $file}] || - [catch {exec chmod 644 $file}] || - [catch {exec rm $file}] || - [llength [auto_execok mkdir]] == 0 || - [llength [auto_execok fgrep]] == 0 || - [llength [auto_execok grep]] == 0 || - [llength [auto_execok ps]] == 0 - } { - set code 0 - } - removeFile $file - } - set code - } - - ConstraintInitializer stdio { - set code 0 - if {![catch {set f [open "|[list [interpreter]]" w]}]} { - if {![catch {puts $f exit}]} { - if {![catch {close $f}]} { - set code 1 - } - } - } - set code - } - - # Deliberately call socket with the wrong number of arguments. The - # error message you get will indicate whether sockets are available - # on this system. - - ConstraintInitializer socket { - catch {socket} msg - string compare $msg "sockets are not available on this system" - } - - # Check for internationalization - ConstraintInitializer hasIsoLocale { - if {[llength [info commands testlocale]] == 0} { - set code 0 - } else { - set code [string length [SetIso8859_1_Locale]] - RestoreLocale - } - set code - } - -} -##################################################################### - -# Usage and command line arguments processing. - -# tcltest::PrintUsageInfo -# -# Prints out the usage information for package tcltest. This can -# be customized with the redefinition of [PrintUsageInfoHook]. -# -# Arguments: -# none -# -# Results: -# none -# -# Side Effects: -# none -proc tcltest::PrintUsageInfo {} { - puts [Usage] - PrintUsageInfoHook -} - -proc tcltest::Usage { {option ""} } { - variable Usage - variable Verify - if {[llength [info level 0]] == 1} { - set msg "Usage: [file tail [info nameofexecutable]] script " - append msg "?-help? ?flag value? ... \n" - append msg "Available flags (and valid input values) are:" - - set max 0 - set allOpts [concat -help [Configure]] - foreach opt $allOpts { - set foo [Usage $opt] - foreach [list x type($opt) usage($opt)] $foo break - set line($opt) " $opt $type($opt) " - set length($opt) [string length $line($opt)] - if {$length($opt) > $max} {set max $length($opt)} - } - set rest [expr {72 - $max}] - foreach opt $allOpts { - append msg \n$line($opt) - append msg [string repeat " " [expr {$max - $length($opt)}]] - set u [string trim $usage($opt)] - catch {append u " (default: \[[Configure $opt]])"} - regsub -all {\s*\n\s*} $u " " u - while {[string length $u] > $rest} { - set break [string wordstart $u $rest] - if {$break == 0} { - set break [string wordend $u 0] - } - append msg [string range $u 0 [expr {$break - 1}]] - set u [string trim [string range $u $break end]] - append msg \n[string repeat " " $max] - } - append msg $u - } - return $msg\n - } elseif {[string equal -help $option]} { - return [list -help "" "Display this usage information."] - } else { - set type [lindex [info args $Verify($option)] 0] - return [list $option $type $Usage($option)] - } -} - -# tcltest::ProcessFlags -- -# -# process command line arguments supplied in the flagArray - this -# is called by processCmdLineArgs. Modifies tcltest variables -# according to the content of the flagArray. -# -# Arguments: -# flagArray - array containing name/value pairs of flags -# -# Results: -# sets tcltest variables according to their values as defined by -# flagArray -# -# Side effects: -# None. - -proc tcltest::ProcessFlags {flagArray} { - # Process -help first - if {[lsearch -exact $flagArray {-help}] != -1} { - PrintUsageInfo - exit 1 - } - - if {[llength $flagArray] == 0} { - RemoveAutoConfigureTraces - } else { - set args $flagArray - while {[llength $args]>1 && [catch {eval configure $args} msg]} { - - # Something went wrong parsing $args for tcltest options - # Check whether the problem is "unknown option" - if {[regexp {^unknown option (\S+):} $msg -> option]} { - # Could be this is an option the Hook knows about - set moreOptions [processCmdLineArgsAddFlagsHook] - if {[lsearch -exact $moreOptions $option] == -1} { - # Nope. Report the error, including additional options, - # but keep going - if {[llength $moreOptions]} { - append msg ", " - append msg [join [lrange $moreOptions 0 end-1] ", "] - append msg "or [lindex $moreOptions end]" - } - Warn $msg - } - } else { - # error is something other than "unknown option" - # notify user of the error; and exit - puts [errorChannel] $msg - exit 1 - } - - # To recover, find that unknown option and remove up to it. - # then retry - while {![string equal [lindex $args 0] $option]} { - set args [lrange $args 2 end] - } - set args [lrange $args 2 end] - } - if {[llength $args] == 1} { - puts [errorChannel] \ - "missing value for option [lindex $args 0]" - exit 1 - } - } - - # Call the hook - catch { - array set flag $flagArray - processCmdLineArgsHook [array get flag] - } - return -} - -# tcltest::ProcessCmdLineArgs -- -# -# This procedure must be run after constraint initialization is -# set up (by [DefineConstraintInitializers]) because some constraints -# can be overridden. -# -# Perform configuration according to the command-line options. -# -# Arguments: -# none -# -# Results: -# Sets the above-named variables in the tcltest namespace. -# -# Side Effects: -# None. -# - -proc tcltest::ProcessCmdLineArgs {} { - variable originalEnv - variable testConstraints - - # The "argv" var doesn't exist in some cases, so use {}. - if {![info exists ::argv]} { - ProcessFlags {} - } else { - ProcessFlags $::argv - } - - # Spit out everything you know if we're at a debug level 2 or - # greater - DebugPuts 2 "Flags passed into tcltest:" - if {[info exists ::env(TCLTEST_OPTIONS)]} { - DebugPuts 2 \ - " ::env(TCLTEST_OPTIONS): $::env(TCLTEST_OPTIONS)" - } - if {[info exists ::argv]} { - DebugPuts 2 " argv: $::argv" - } - DebugPuts 2 "tcltest::debug = [debug]" - DebugPuts 2 "tcltest::testsDirectory = [testsDirectory]" - DebugPuts 2 "tcltest::workingDirectory = [workingDirectory]" - DebugPuts 2 "tcltest::temporaryDirectory = [temporaryDirectory]" - DebugPuts 2 "tcltest::outputChannel = [outputChannel]" - DebugPuts 2 "tcltest::errorChannel = [errorChannel]" - DebugPuts 2 "Original environment (tcltest::originalEnv):" - DebugPArray 2 originalEnv - DebugPuts 2 "Constraints:" - DebugPArray 2 testConstraints -} - -##################################################################### - -# Code to run the tests goes here. - -# tcltest::TestPuts -- -# -# Used to redefine puts in test environment. Stores whatever goes -# out on stdout in tcltest::outData and stderr in errData before -# sending it on to the regular puts. -# -# Arguments: -# same as standard puts -# -# Results: -# none -# -# Side effects: -# Intercepts puts; data that would otherwise go to stdout, stderr, -# or file channels specified in outputChannel and errorChannel -# does not get sent to the normal puts function. -namespace eval tcltest::Replace { - namespace export puts -} -proc tcltest::Replace::puts {args} { - variable [namespace parent]::outData - variable [namespace parent]::errData - switch [llength $args] { - 1 { - # Only the string to be printed is specified - append outData [lindex $args 0]\n - return - # return [Puts [lindex $args 0]] - } - 2 { - # Either -nonewline or channelId has been specified - if {[string equal -nonewline [lindex $args 0]]} { - append outData [lindex $args end] - return - # return [Puts -nonewline [lindex $args end]] - } else { - set channel [lindex $args 0] - set newline \n - } - } - 3 { - if {[string equal -nonewline [lindex $args 0]]} { - # Both -nonewline and channelId are specified, unless - # it's an error. -nonewline is supposed to be argv[0]. - set channel [lindex $args 1] - set newline "" - } - } - } - - if {[info exists channel]} { - if {[string equal $channel [[namespace parent]::outputChannel]] - || [string equal $channel stdout]} { - append outData [lindex $args end]$newline - return - } elseif {[string equal $channel [[namespace parent]::errorChannel]] - || [string equal $channel stderr]} { - append errData [lindex $args end]$newline - return - } - } - - # If we haven't returned by now, we don't know how to handle the - # input. Let puts handle it. - return [eval Puts $args] -} - -# tcltest::Eval -- -# -# Evaluate the script in the test environment. If ignoreOutput is -# false, store data sent to stderr and stdout in outData and -# errData. Otherwise, ignore this output altogether. -# -# Arguments: -# script Script to evaluate -# ?ignoreOutput? Indicates whether or not to ignore output -# sent to stdout & stderr -# -# Results: -# result from running the script -# -# Side effects: -# Empties the contents of outData and errData before running a -# test if ignoreOutput is set to 0. - -proc tcltest::Eval {script {ignoreOutput 1}} { - variable outData - variable errData - DebugPuts 3 "[lindex [info level 0] 0] called" - if {!$ignoreOutput} { - set outData {} - set errData {} - rename ::puts [namespace current]::Replace::Puts - namespace eval :: \ - [list namespace import [namespace origin Replace::puts]] - namespace import Replace::puts - } - set result [uplevel 1 $script] - if {!$ignoreOutput} { - namespace forget puts - namespace eval :: namespace forget puts - rename [namespace current]::Replace::Puts ::puts - } - return $result -} - -# tcltest::CompareStrings -- -# -# compares the expected answer to the actual answer, depending on -# the mode provided. Mode determines whether a regexp, exact, -# glob or custom comparison is done. -# -# Arguments: -# actual - string containing the actual result -# expected - pattern to be matched against -# mode - type of comparison to be done -# -# Results: -# result of the match -# -# Side effects: -# None. - -proc tcltest::CompareStrings {actual expected mode} { - variable CustomMatch - if {![info exists CustomMatch($mode)]} { - return -code error "No matching command registered for `-match $mode'" - } - set match [namespace eval :: $CustomMatch($mode) [list $expected $actual]] - if {[catch {expr {$match && $match}} result]} { - return -code error "Invalid result from `-match $mode' command: $result" - } - return $match -} - -# tcltest::customMatch -- -# -# registers a command to be called when a particular type of -# matching is required. -# -# Arguments: -# nickname - Keyword for the type of matching -# cmd - Incomplete command that implements that type of matching -# when completed with expected string and actual string -# and then evaluated. -# -# Results: -# None. -# -# Side effects: -# Sets the variable tcltest::CustomMatch - -proc tcltest::customMatch {mode script} { - variable CustomMatch - if {![info complete $script]} { - return -code error \ - "invalid customMatch script; can't evaluate after completion" - } - set CustomMatch($mode) $script -} - -# tcltest::SubstArguments list -# -# This helper function takes in a list of words, then perform a -# substitution on the list as though each word in the list is a separate -# argument to the Tcl function. For example, if this function is -# invoked as: -# -# SubstArguments {$a {$a}} -# -# Then it is as though the function is invoked as: -# -# SubstArguments $a {$a} -# -# This code is adapted from Paul Duffin's function "SplitIntoWords". -# The original function can be found on: -# -# http://purl.org/thecliff/tcl/wiki/858.html -# -# Results: -# a list containing the result of the substitution -# -# Exceptions: -# An error may occur if the list containing unbalanced quote or -# unknown variable. -# -# Side Effects: -# None. -# - -proc tcltest::SubstArguments {argList} { - - # We need to split the argList up into tokens but cannot use list - # operations as they throw away some significant quoting, and - # [split] ignores braces as it should. Therefore what we do is - # gradually build up a string out of whitespace seperated strings. - # We cannot use [split] to split the argList into whitespace - # separated strings as it throws away the whitespace which maybe - # important so we have to do it all by hand. - - set result {} - set token "" - - while {[string length $argList]} { - # Look for the next word containing a quote: " { } - if {[regexp -indices {[^ \t\n]*[\"\{\}]+[^ \t\n]*} \ - $argList all]} { - # Get the text leading up to this word, but not including - # this word, from the argList. - set text [string range $argList 0 \ - [expr {[lindex $all 0] - 1}]] - # Get the word with the quote - set word [string range $argList \ - [lindex $all 0] [lindex $all 1]] - - # Remove all text up to and including the word from the - # argList. - set argList [string range $argList \ - [expr {[lindex $all 1] + 1}] end] - } else { - # Take everything up to the end of the argList. - set text $argList - set word {} - set argList {} - } - - if {$token != {}} { - # If we saw a word with quote before, then there is a - # multi-word token starting with that word. In this case, - # add the text and the current word to this token. - append token $text $word - } else { - # Add the text to the result. There is no need to parse - # the text because it couldn't be a part of any multi-word - # token. Then start a new multi-word token with the word - # because we need to pass this token to the Tcl parser to - # check for balancing quotes - append result $text - set token $word - } - - if { [catch {llength $token} length] == 0 && $length == 1} { - # The token is a valid list so add it to the result. - # lappend result [string trim $token] - append result \{$token\} - set token {} - } - } - - # If the last token has not been added to the list then there - # is a problem. - if { [string length $token] } { - error "incomplete token \"$token\"" - } - - return $result -} - - -# tcltest::test -- -# -# This procedure runs a test and prints an error message if the test -# fails. If verbose has been set, it also prints a message even if the -# test succeeds. The test will be skipped if it doesn't match the -# match variable, if it matches an element in skip, or if one of the -# elements of "constraints" turns out not to be true. -# -# If testLevel is 1, then this is a top level test, and we record -# pass/fail information; otherwise, this information is not logged and -# is not added to running totals. -# -# Attributes: -# Only description is a required attribute. All others are optional. -# Default values are indicated. -# -# constraints - A list of one or more keywords, each of which -# must be the name of an element in the array -# "testConstraints". If any of these elements is -# zero, the test is skipped. This attribute is -# optional; default is {} -# body - Script to run to carry out the test. It must -# return a result that can be checked for -# correctness. This attribute is optional; -# default is {} -# result - Expected result from script. This attribute is -# optional; default is {}. -# output - Expected output sent to stdout. This attribute -# is optional; default is {}. -# errorOutput - Expected output sent to stderr. This attribute -# is optional; default is {}. -# returnCodes - Expected return codes. This attribute is -# optional; default is {0 2}. -# setup - Code to run before $script (above). This -# attribute is optional; default is {}. -# cleanup - Code to run after $script (above). This -# attribute is optional; default is {}. -# match - specifies type of matching to do on result, -# output, errorOutput; this must be a string -# previously registered by a call to [customMatch]. -# The strings exact, glob, and regexp are pre-registered -# by the tcltest package. Default value is exact. -# -# Arguments: -# name - Name of test, in the form foo-1.2. -# description - Short textual description of the test, to -# help humans understand what it does. -# -# Results: -# None. -# -# Side effects: -# Just about anything is possible depending on the test. -# - -proc tcltest::test {name description args} { - global tcl_platform - variable testLevel - variable coreModTime - DebugPuts 3 "test $name $args" - DebugDo 1 { - variable TestNames - catch { - puts "test name '$name' re-used; prior use in $TestNames($name)" - } - set TestNames($name) [info script] - } - - FillFilesExisted - incr testLevel - - # Pre-define everything to null except output and errorOutput. We - # determine whether or not to trap output based on whether or not - # these variables (output & errorOutput) are defined. - foreach item {constraints setup cleanup body result returnCodes - match} { - set $item {} - } - - # Set the default match mode - set match exact - - # Set the default match values for return codes (0 is the standard - # expected return value if everything went well; 2 represents - # 'return' being used in the test script). - set returnCodes [list 0 2] - - # The old test format can't have a 3rd argument (constraints or - # script) that starts with '-'. - if {[string match -* [lindex $args 0]] - || ([llength $args] <= 1)} { - if {[llength $args] == 1} { - set list [SubstArguments [lindex $args 0]] - foreach {element value} $list { - set testAttributes($element) $value - } - foreach item {constraints match setup body cleanup \ - result returnCodes output errorOutput} { - if {[info exists testAttributes(-$item)]} { - set testAttributes(-$item) [uplevel 1 \ - ::concat $testAttributes(-$item)] - } - } - } else { - array set testAttributes $args - } - - set validFlags {-setup -cleanup -body -result -returnCodes \ - -match -output -errorOutput -constraints} - - foreach flag [array names testAttributes] { - if {[lsearch -exact $validFlags $flag] == -1} { - incr testLevel -1 - set sorted [lsort $validFlags] - set options [join [lrange $sorted 0 end-1] ", "] - append options ", or [lindex $sorted end]" - return -code error "bad option \"$flag\": must be $options" - } - } - - # store whatever the user gave us - foreach item [array names testAttributes] { - set [string trimleft $item "-"] $testAttributes($item) - } - - # Check the values supplied for -match - variable CustomMatch - if {[lsearch [array names CustomMatch] $match] == -1} { - incr testLevel -1 - set sorted [lsort [array names CustomMatch]] - set values [join [lrange $sorted 0 end-1] ", "] - append values ", or [lindex $sorted end]" - return -code error "bad -match value \"$match\":\ - must be $values" - } - - # Replace symbolic valies supplied for -returnCodes - foreach {strcode numcode} {ok 0 normal 0 error 1 return 2 break 3 continue 4} { - set returnCodes [string map -nocase [list $strcode $numcode] $returnCodes] - } - } else { - # This is parsing for the old test command format; it is here - # for backward compatibility. - set result [lindex $args end] - if {[llength $args] == 2} { - set body [lindex $args 0] - } elseif {[llength $args] == 3} { - set constraints [lindex $args 0] - set body [lindex $args 1] - } else { - incr testLevel -1 - return -code error "wrong # args:\ - should be \"test name desc ?options?\"" - } - } - - if {[Skipped $name $constraints]} { - incr testLevel -1 - return - } - - # Save information about the core file. - if {[preserveCore]} { - if {[file exists [file join [workingDirectory] core]]} { - set coreModTime [file mtime [file join [workingDirectory] core]] - } - } - - # First, run the setup script - set code [catch {uplevel 1 $setup} setupMsg] - if {$code == 1} { - set errorInfo(setup) $::errorInfo - set errorCode(setup) $::errorCode - } - set setupFailure [expr {$code != 0}] - - # Only run the test body if the setup was successful - if {!$setupFailure} { - - # Verbose notification of $body start - if {[IsVerbose start]} { - puts [outputChannel] "---- $name start" - flush [outputChannel] - } - - set command [list [namespace origin RunTest] $name $body] - if {[info exists output] || [info exists errorOutput]} { - set testResult [uplevel 1 [list [namespace origin Eval] $command 0]] - } else { - set testResult [uplevel 1 [list [namespace origin Eval] $command 1]] - } - foreach {actualAnswer returnCode} $testResult break - if {$returnCode == 1} { - set errorInfo(body) $::errorInfo - set errorCode(body) $::errorCode - } - } - - # 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 {[string length $msg] > 0} { - append coreMsg "\nError:\ - Problem renaming core file: $msg" - } - } - } - } - - # check if the return code matched the expected return code - set codeFailure 0 - if {!$setupFailure && [lsearch -exact $returnCodes $returnCode] == -1} { - set codeFailure 1 - } - - # If expected output/error strings exist, we have to compare - # them. If the comparison fails, then so did the test. - set outputFailure 0 - variable outData - if {[info exists output] && !$codeFailure} { - if {[set outputCompare [catch { - CompareStrings $outData $output $match - } outputMatch]] == 0} { - set outputFailure [expr {!$outputMatch}] - } else { - set outputFailure 1 - } - } - - set errorFailure 0 - variable errData - if {[info exists errorOutput] && !$codeFailure} { - if {[set errorCompare [catch { - CompareStrings $errData $errorOutput $match - } errorMatch]] == 0} { - set errorFailure [expr {!$errorMatch}] - } else { - set errorFailure 1 - } - } - - # check if the answer matched the expected answer - # Only check if we ran the body of the test (no setup failure) - if {$setupFailure || $codeFailure} { - set scriptFailure 0 - } elseif {[set scriptCompare [catch { - CompareStrings $actualAnswer $result $match - } scriptMatch]] == 0} { - set scriptFailure [expr {!$scriptMatch}] - } else { - set scriptFailure 1 - } - - # if we didn't experience any failures, then we passed - variable numTests - if {!($setupFailure || $cleanupFailure || $coreFailure - || $outputFailure || $errorFailure || $codeFailure - || $scriptFailure)} { - if {$testLevel == 1} { - incr numTests(Passed) - if {[IsVerbose pass]} { - puts [outputChannel] "++++ $name PASSED" - } - } - incr testLevel -1 - return - } - - # We know the test failed, tally it... - if {$testLevel == 1} { - incr numTests(Failed) - } - - # ... then report according to the type of failure - variable currentFailure true - if {![IsVerbose body]} { - set body "" - } - puts [outputChannel] "\n==== $name\ - [string trim $description] FAILED" - if {[string length $body]} { - puts [outputChannel] "==== Contents of test case:" - puts [outputChannel] $body - } - if {$setupFailure} { - puts [outputChannel] "---- Test setup\ - failed:\n$setupMsg" - if {[info exists errorInfo(setup)]} { - puts [outputChannel] "---- errorInfo(setup): $errorInfo(setup)" - puts [outputChannel] "---- errorCode(setup): $errorCode(setup)" - } - } - if {$scriptFailure} { - if {$scriptCompare} { - puts [outputChannel] "---- Error testing result: $scriptMatch" - } else { - puts [outputChannel] "---- Result was:\n$actualAnswer" - puts [outputChannel] "---- Result should have been\ - ($match matching):\n$result" - } - } - if {$codeFailure} { - switch -- $returnCode { - 0 { set msg "Test completed normally" } - 1 { set msg "Test generated error" } - 2 { set msg "Test generated return exception" } - 3 { set msg "Test generated break exception" } - 4 { set msg "Test generated continue exception" } - default { set msg "Test generated exception" } - } - puts [outputChannel] "---- $msg; Return code was: $returnCode" - puts [outputChannel] "---- Return code should have been\ - one of: $returnCodes" - if {[IsVerbose error]} { - if {[info exists errorInfo(body)] && ([lsearch $returnCodes 1]<0)} { - puts [outputChannel] "---- errorInfo: $errorInfo(body)" - puts [outputChannel] "---- errorCode: $errorCode(body)" - } - } - } - if {$outputFailure} { - if {$outputCompare} { - puts [outputChannel] "---- Error testing output: $outputMatch" - } else { - puts [outputChannel] "---- Output was:\n$outData" - puts [outputChannel] "---- Output should have been\ - ($match matching):\n$output" - } - } - if {$errorFailure} { - if {$errorCompare} { - puts [outputChannel] "---- Error testing errorOutput: $errorMatch" - } else { - puts [outputChannel] "---- Error output was:\n$errData" - puts [outputChannel] "---- Error output should have\ - been ($match matching):\n$errorOutput" - } - } - if {$cleanupFailure} { - puts [outputChannel] "---- Test cleanup failed:\n$cleanupMsg" - if {[info exists errorInfo(cleanup)]} { - puts [outputChannel] "---- errorInfo(cleanup): $errorInfo(cleanup)" - puts [outputChannel] "---- errorCode(cleanup): $errorCode(cleanup)" - } - } - if {$coreFailure} { - puts [outputChannel] "---- Core file produced while running\ - test! $coreMsg" - } - puts [outputChannel] "==== $name FAILED\n" - - incr testLevel -1 - return -} - -# Skipped -- -# -# Given a test name and it constraints, returns a boolean indicating -# whether the current configuration says the test should be skipped. -# -# Side Effects: Maintains tally of total tests seen and tests skipped. -# -proc tcltest::Skipped {name constraints} { - variable testLevel - variable numTests - variable testConstraints - - if {$testLevel == 1} { - incr numTests(Total) - } - # skip the test if it's name matches an element of skip - foreach pattern [skip] { - if {[string match $pattern $name]} { - if {$testLevel == 1} { - incr numTests(Skipped) - DebugDo 1 {AddToSkippedBecause userSpecifiedSkip} - } - return 1 - } - } - # skip the test if it's name doesn't match any element of match - set ok 0 - foreach pattern [match] { - if {[string match $pattern $name]} { - set ok 1 - break - } - } - if {!$ok} { - if {$testLevel == 1} { - incr numTests(Skipped) - DebugDo 1 {AddToSkippedBecause userSpecifiedNonMatch} - } - return 1 - } - if {[string equal {} $constraints]} { - # If we're limited to the listed constraints and there aren't - # any listed, then we shouldn't run the test. - if {[limitConstraints]} { - AddToSkippedBecause userSpecifiedLimitConstraint - if {$testLevel == 1} { - incr numTests(Skipped) - } - return 1 - } - } else { - # "constraints" argument exists; - # make sure that the constraints are satisfied. - - set doTest 0 - if {[string match {*[$\[]*} $constraints] != 0} { - # full expression, e.g. {$foo > [info tclversion]} - catch {set doTest [uplevel #0 expr $constraints]} - } elseif {[regexp {[^.a-zA-Z0-9 \n\r\t]+} $constraints] != 0} { - # something like {a || b} should be turned into - # $testConstraints(a) || $testConstraints(b). - regsub -all {[.\w]+} $constraints {$testConstraints(&)} c - catch {set doTest [eval expr $c]} - } elseif {![catch {llength $constraints}]} { - # just simple constraints such as {unixOnly fonts}. - set doTest 1 - foreach constraint $constraints { - if {(![info exists testConstraints($constraint)]) \ - || (!$testConstraints($constraint))} { - set doTest 0 - - # store the constraint that kept the test from - # running - set constraints $constraint - break - } - } - } - - if {$doTest == 0} { - if {[IsVerbose skip]} { - puts [outputChannel] "++++ $name SKIPPED: $constraints" - } - - if {$testLevel == 1} { - incr numTests(Skipped) - AddToSkippedBecause $constraints - } - return 1 - } - } - return 0 -} - -# RunTest -- -# -# This is where the body of a test is evaluated. The combination of -# [RunTest] and [Eval] allows the output and error output of the test -# body to be captured for comparison against the expected values. - -proc tcltest::RunTest {name script} { - DebugPuts 3 "Running $name {$script}" - - # If there is no "memory" command (because memory debugging isn't - # enabled), then don't attempt to use the command. - - if {[llength [info commands memory]] == 1} { - memory tag $name - } - - set code [catch {uplevel 1 $script} actualAnswer] - - return [list $actualAnswer $code] -} - -##################################################################### - -# tcltest::cleanupTestsHook -- -# -# This hook allows a harness that builds upon tcltest to specify -# additional things that should be done at cleanup. -# - -if {[llength [info commands tcltest::cleanupTestsHook]] == 0} { - proc tcltest::cleanupTestsHook {} {} -} - -# tcltest::cleanupTests -- -# -# Remove files and dirs created using the makeFile and makeDirectory -# commands since the last time this proc was invoked. -# -# Print the names of the files created without the makeFile command -# since the tests were invoked. -# -# Print the number tests (total, passed, failed, and skipped) since the -# tests were invoked. -# -# Restore original environment (as reported by special variable env). -# -# Arguments: -# calledFromAllFile - if 0, behave as if we are running a single -# test file within an entire suite of tests. if we aren't running -# a single test file, then don't report status. check for new -# files created during the test run and report on them. if 1, -# report collated status from all the test file runs. -# -# Results: -# None. -# -# Side Effects: -# None -# - -proc tcltest::cleanupTests {{calledFromAllFile 0}} { - variable filesMade - variable filesExisted - variable createdNewFiles - variable testSingleFile - variable numTests - variable numTestFiles - variable failFiles - variable skippedBecause - variable currentFailure - variable originalEnv - variable originalTclPlatform - variable coreModTime - - FillFilesExisted - set testFileName [file tail [info script]] - - # Call the cleanup hook - cleanupTestsHook - - # Remove files and directories created by the makeFile and - # makeDirectory procedures. Record the names of files in - # workingDirectory that were not pre-existing, and associate them - # with the test file that created them. - - if {!$calledFromAllFile} { - foreach file $filesMade { - if {[file exists $file]} { - DebugDo 1 {Warn "cleanupTests deleting $file..."} - catch {file delete -force $file} - } - } - set currentFiles {} - foreach file [glob -nocomplain \ - -directory [temporaryDirectory] *] { - lappend currentFiles [file tail $file] - } - set newFiles {} - foreach file $currentFiles { - if {[lsearch -exact $filesExisted $file] == -1} { - lappend newFiles $file - } - } - set filesExisted $currentFiles - if {[llength $newFiles] > 0} { - set createdNewFiles($testFileName) $newFiles - } - } - - if {$calledFromAllFile || $testSingleFile} { - - # print stats - - puts -nonewline [outputChannel] "$testFileName:" - foreach index [list "Total" "Passed" "Skipped" "Failed"] { - puts -nonewline [outputChannel] \ - "\t$index\t$numTests($index)" - } - puts [outputChannel] "" - - # print number test files sourced - # print names of files that ran tests which failed - - if {$calledFromAllFile} { - puts [outputChannel] \ - "Sourced $numTestFiles Test Files." - set numTestFiles 0 - if {[llength $failFiles] > 0} { - puts [outputChannel] \ - "Files with failing tests: $failFiles" - set failFiles {} - } - } - - # if any tests were skipped, print the constraints that kept - # them from running. - - set constraintList [array names skippedBecause] - if {[llength $constraintList] > 0} { - puts [outputChannel] \ - "Number of tests skipped for each constraint:" - foreach constraint [lsort $constraintList] { - puts [outputChannel] \ - "\t$skippedBecause($constraint)\t$constraint" - unset skippedBecause($constraint) - } - } - - # report the names of test files in createdNewFiles, and reset - # the array to be empty. - - set testFilesThatTurded [lsort [array names createdNewFiles]] - if {[llength $testFilesThatTurded] > 0} { - puts [outputChannel] "Warning: files left behind:" - foreach testFile $testFilesThatTurded { - puts [outputChannel] \ - "\t$testFile:\t$createdNewFiles($testFile)" - unset createdNewFiles($testFile) - } - } - - # reset filesMade, filesExisted, and numTests - - set filesMade {} - foreach index [list "Total" "Passed" "Skipped" "Failed"] { - set numTests($index) 0 - } - - # exit only if running Tk in non-interactive mode - # This should be changed to determine if an event - # loop is running, which is the real issue. - # Actually, this doesn't belong here at all. A package - # really has no business [exit]-ing an application. - if {![catch {package present Tk}] && ![testConstraint interactive]} { - exit - } - } else { - - # if we're deferring stat-reporting until all files are sourced, - # then add current file to failFile list if any tests in this - # file failed - - if {$currentFailure \ - && ([lsearch -exact $failFiles $testFileName] == -1)} { - lappend failFiles $testFileName - } - set currentFailure false - - # restore the environment to the state it was in before this package - # was loaded - - set newEnv {} - set changedEnv {} - set removedEnv {} - foreach index [array names ::env] { - if {![info exists originalEnv($index)]} { - lappend newEnv $index - unset ::env($index) - } else { - if {$::env($index) != $originalEnv($index)} { - lappend changedEnv $index - set ::env($index) $originalEnv($index) - } - } - } - foreach index [array names originalEnv] { - if {![info exists ::env($index)]} { - lappend removedEnv $index - set ::env($index) $originalEnv($index) - } - } - if {[llength $newEnv] > 0} { - puts [outputChannel] \ - "env array elements created:\t$newEnv" - } - if {[llength $changedEnv] > 0} { - puts [outputChannel] \ - "env array elements changed:\t$changedEnv" - } - if {[llength $removedEnv] > 0} { - puts [outputChannel] \ - "env array elements removed:\t$removedEnv" - } - - set changedTclPlatform {} - foreach index [array names originalTclPlatform] { - if {$::tcl_platform($index) \ - != $originalTclPlatform($index)} { - lappend changedTclPlatform $index - set ::tcl_platform($index) $originalTclPlatform($index) - } - } - if {[llength $changedTclPlatform] > 0} { - puts [outputChannel] "tcl_platform array elements\ - changed:\t$changedTclPlatform" - } - - if {[file exists [file join [workingDirectory] core]]} { - if {[preserveCore] > 1} { - puts "rename core file (> 1)" - puts [outputChannel] "produced core file! \ - Moving file to: \ - [file join [temporaryDirectory] core-$testFileName]" - catch {file rename -force \ - [file join [workingDirectory] core] \ - [file join [temporaryDirectory] core-$testFileName] - } msg - if {[string length $msg] > 0} { - PrintError "Problem renaming file: $msg" - } - } else { - # Print a message 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]]} { - puts [outputChannel] "A core file was created!" - } - } else { - puts [outputChannel] "A core file was created!" - } - } - } - } - flush [outputChannel] - flush [errorChannel] - return -} - -##################################################################### - -# Procs that determine which tests/test files to run - -# tcltest::GetMatchingFiles -# -# Looks at the patterns given to match and skip files and uses -# them to put together a list of the tests that will be run. -# -# Arguments: -# directory to search -# -# Results: -# The constructed list is returned to the user. This will -# primarily be used in 'all.tcl' files. It is used in -# runAllTests. -# -# Side Effects: -# None - -# a lower case version is needed for compatibility with tcltest 1.0 -proc tcltest::getMatchingFiles args {eval GetMatchingFiles $args} - -proc tcltest::GetMatchingFiles { args } { - if {[llength $args]} { - set dirList $args - } else { - # Finding tests only in [testsDirectory] is normal operation. - # This procedure is written to accept multiple directory arguments - # only to satisfy version 1 compatibility. - set dirList [list [testsDirectory]] - } - - set matchingFiles [list] - foreach directory $dirList { - - # List files in $directory that match patterns to run. - set matchFileList [list] - foreach match [matchFiles] { - set matchFileList [concat $matchFileList \ - [glob -directory $directory -types {b c f p s} \ - -nocomplain -- $match]] - } - - # List files in $directory that match patterns to skip. - set skipFileList [list] - foreach skip [skipFiles] { - set skipFileList [concat $skipFileList \ - [glob -directory $directory -types {b c f p s} \ - -nocomplain -- $skip]] - } - - # Add to result list all files in match list and not in skip list - foreach file $matchFileList { - if {[lsearch -exact $skipFileList $file] == -1} { - lappend matchingFiles $file - } - } - } - - if {[llength $matchingFiles] == 0} { - PrintError "No test files remain after applying your match and\ - skip patterns!" - } - return $matchingFiles -} - -# tcltest::GetMatchingDirectories -- -# -# Looks at the patterns given to match and skip directories and -# uses them to put together a list of the test directories that we -# should attempt to run. (Only subdirectories containing an -# "all.tcl" file are put into the list.) -# -# Arguments: -# root directory from which to search -# -# Results: -# The constructed list is returned to the user. This is used in -# the primary all.tcl file. -# -# Side Effects: -# None. - -proc tcltest::GetMatchingDirectories {rootdir} { - - # Determine the skip list first, to avoid [glob]-ing over subdirectories - # we're going to throw away anyway. Be sure we skip the $rootdir if it - # comes up to avoid infinite loops. - set skipDirs [list $rootdir] - foreach pattern [skipDirectories] { - set skipDirs [concat $skipDirs [glob -directory $rootdir -types d \ - -nocomplain -- $pattern]] - } - - # Now step through the matching directories, prune out the skipped ones - # as you go. - set matchDirs [list] - foreach pattern [matchDirectories] { - foreach path [glob -directory $rootdir -types d -nocomplain -- \ - $pattern] { - if {[lsearch -exact $skipDirs $path] == -1} { - set matchDirs [concat $matchDirs [GetMatchingDirectories $path]] - if {[file exists [file join $path all.tcl]]} { - lappend matchDirs $path - } - } - } - } - - if {[llength $matchDirs] == 0} { - DebugPuts 1 "No test directories remain after applying match\ - and skip patterns!" - } - return $matchDirs -} - -# tcltest::runAllTests -- -# -# prints output and sources test files according to the match and -# skip patterns provided. after sourcing test files, it goes on -# to source all.tcl files in matching test subdirectories. -# -# Arguments: -# shell being tested -# -# Results: -# None. -# -# Side effects: -# None. - -proc tcltest::runAllTests { {shell ""} } { - variable testSingleFile - variable numTestFiles - variable numTests - variable failFiles - - FillFilesExisted - if {[llength [info level 0]] == 1} { - set shell [interpreter] - } - - set testSingleFile false - - puts [outputChannel] "Tests running in interp: $shell" - puts [outputChannel] "Tests located in: [testsDirectory]" - puts [outputChannel] "Tests running in: [workingDirectory]" - puts [outputChannel] "Temporary files stored in\ - [temporaryDirectory]" - - # [file system] first available in Tcl 8.4 - if {![catch {file system [testsDirectory]} result] - && ![string equal native [lindex $result 0]]} { - # If we aren't running in the native filesystem, then we must - # run the tests in a single process (via 'source'), because - # trying to run then via a pipe will fail since the files don't - # really exist. - singleProcess 1 - } - - if {[singleProcess]} { - puts [outputChannel] \ - "Test files sourced into current interpreter" - } else { - puts [outputChannel] \ - "Test files run in separate interpreters" - } - if {[llength [skip]] > 0} { - puts [outputChannel] "Skipping tests that match: [skip]" - } - puts [outputChannel] "Running tests that match: [match]" - - if {[llength [skipFiles]] > 0} { - puts [outputChannel] \ - "Skipping test files that match: [skipFiles]" - } - if {[llength [matchFiles]] > 0} { - puts [outputChannel] \ - "Only running test files that match: [matchFiles]" - } - - set timeCmd {clock format [clock seconds]} - puts [outputChannel] "Tests began at [eval $timeCmd]" - - # Run each of the specified tests - foreach file [lsort [GetMatchingFiles]] { - set tail [file tail $file] - puts [outputChannel] $tail - flush [outputChannel] - - if {[singleProcess]} { - incr numTestFiles - uplevel 1 [list ::source $file] - } else { - # Pass along our configuration to the child processes. - # EXCEPT for the -outfile, because the parent process - # needs to read and process output of children. - set childargv [list] - foreach opt [Configure] { - if {[string equal $opt -outfile]} {continue} - lappend childargv $opt [Configure $opt] - } - set cmd [linsert $childargv 0 | $shell $file] - if {[catch { - incr numTestFiles - set pipeFd [open $cmd "r"] - while {[gets $pipeFd line] >= 0} { - if {[regexp [join { - {^([^:]+):\t} - {Total\t([0-9]+)\t} - {Passed\t([0-9]+)\t} - {Skipped\t([0-9]+)\t} - {Failed\t([0-9]+)} - } ""] $line null testFile \ - Total Passed Skipped Failed]} { - foreach index {Total Passed Skipped Failed} { - incr numTests($index) [set $index] - } - if {$Failed > 0} { - lappend failFiles $testFile - } - } elseif {[regexp [join { - {^Number of tests skipped } - {for each constraint:} - {|^\t(\d+)\t(.+)$} - } ""] $line match skipped constraint]} { - if {[string match \t* $match]} { - AddToSkippedBecause $constraint $skipped - } - } else { - puts [outputChannel] $line - } - } - close $pipeFd - } msg]} { - puts [outputChannel] "Test file error: $msg" - # append the name of the test to a list to be reported - # later - lappend testFileFailures $file - } - } - } - - # cleanup - puts [outputChannel] "\nTests ended at [eval $timeCmd]" - cleanupTests 1 - if {[info exists testFileFailures]} { - puts [outputChannel] "\nTest files exiting with errors: \n" - foreach file $testFileFailures { - puts [outputChannel] " [file tail $file]\n" - } - } - - # Checking for subdirectories in which to run tests - foreach directory [GetMatchingDirectories [testsDirectory]] { - set dir [file tail $directory] - puts [outputChannel] [string repeat ~ 44] - puts [outputChannel] "$dir test began at [eval $timeCmd]\n" - - uplevel 1 [list ::source [file join $directory all.tcl]] - - set endTime [eval $timeCmd] - puts [outputChannel] "\n$dir test ended at $endTime" - puts [outputChannel] "" - puts [outputChannel] [string repeat ~ 44] - } - return -} - -##################################################################### - -# Test utility procs - not used in tcltest, but may be useful for -# testing. - -# tcltest::loadTestedCommands -- -# -# Uses the specified script to load the commands to test. Allowed to -# be empty, as the tested commands could have been compiled into the -# interpreter. -# -# Arguments -# none -# -# Results -# none -# -# Side Effects: -# none. - -proc tcltest::loadTestedCommands {} { - variable l - if {[string equal {} [loadScript]]} { - return - } - - return [uplevel 1 [loadScript]] -} - -# tcltest::saveState -- -# -# Save information regarding what procs and variables exist. -# -# Arguments: -# none -# -# Results: -# Modifies the variable saveState -# -# Side effects: -# None. - -proc tcltest::saveState {} { - variable saveState - uplevel 1 [list ::set [namespace which -variable saveState]] \ - {[::list [::info procs] [::info vars]]} - DebugPuts 2 "[lindex [info level 0] 0]: $saveState" - return -} - -# tcltest::restoreState -- -# -# Remove procs and variables that didn't exist before the call to -# [saveState]. -# -# Arguments: -# none -# -# Results: -# Removes procs and variables from your environment if they don't -# exist in the saveState variable. -# -# Side effects: -# None. - -proc tcltest::restoreState {} { - variable saveState - foreach p [uplevel 1 {::info procs}] { - if {([lsearch [lindex $saveState 0] $p] < 0) - && ![string equal [namespace current]::$p \ - [uplevel 1 [list ::namespace origin $p]]]} { - - DebugPuts 2 "[lindex [info level 0] 0]: Removing proc $p" - uplevel 1 [list ::catch [list ::rename $p {}]] - } - } - foreach p [uplevel 1 {::info vars}] { - if {[lsearch [lindex $saveState 1] $p] < 0} { - DebugPuts 2 "[lindex [info level 0] 0]:\ - Removing variable $p" - uplevel 1 [list ::catch [list ::unset $p]] - } - } - return -} - -# tcltest::normalizeMsg -- -# -# Removes "extra" newlines from a string. -# -# Arguments: -# msg String to be modified -# -# Results: -# string with extra newlines removed -# -# Side effects: -# None. - -proc tcltest::normalizeMsg {msg} { - regsub "\n$" [string tolower $msg] "" msg - set msg [string map [list "\n\n" "\n"] $msg] - return [string map [list "\n\}" "\}"] $msg] -} - -# tcltest::makeFile -- -# -# Create a new file with the name , and write to it. -# -# If this file hasn't been created via makeFile since the last time -# cleanupTests was called, add it to the $filesMade list, so it will be -# removed by the next call to cleanupTests. -# -# Arguments: -# contents content of the new file -# name name of the new file -# directory directory name for new file -# -# Results: -# absolute path to the file created -# -# Side effects: -# None. - -proc tcltest::makeFile {contents name {directory ""}} { - variable filesMade - FillFilesExisted - - if {[llength [info level 0]] == 3} { - set directory [temporaryDirectory] - } - - set fullName [file join $directory $name] - - DebugPuts 3 "[lindex [info level 0] 0]:\ - putting ``$contents'' into $fullName" - - set fd [open $fullName w] - fconfigure $fd -translation lf - if {[string equal [string index $contents end] \n]} { - puts -nonewline $fd $contents - } else { - puts $fd $contents - } - close $fd - - if {[lsearch -exact $filesMade $fullName] == -1} { - lappend filesMade $fullName - } - return $fullName -} - -# tcltest::removeFile -- -# -# Removes the named file from the filesystem -# -# Arguments: -# name file to be removed -# directory directory from which to remove file -# -# Results: -# return value from [file delete] -# -# Side effects: -# None. - -proc tcltest::removeFile {name {directory ""}} { - variable filesMade - FillFilesExisted - if {[llength [info level 0]] == 2} { - set directory [temporaryDirectory] - } - set fullName [file join $directory $name] - DebugPuts 3 "[lindex [info level 0] 0]: removing $fullName" - set idx [lsearch -exact $filesMade $fullName] - set filesMade [lreplace $filesMade $idx $idx] - if {$idx == -1} { - DebugDo 1 { - Warn "removeFile removing \"$fullName\":\n not created by makeFile" - } - } - if {![file isfile $fullName]} { - DebugDo 1 { - Warn "removeFile removing \"$fullName\":\n not a file" - } - } - return [file delete $fullName] -} - -# tcltest::makeDirectory -- -# -# Create a new dir with the name . -# -# If this dir hasn't been created via makeDirectory since the last time -# cleanupTests was called, add it to the $directoriesMade list, so it -# will be removed by the next call to cleanupTests. -# -# Arguments: -# name name of the new directory -# directory directory in which to create new dir -# -# Results: -# absolute path to the directory created -# -# Side effects: -# None. - -proc tcltest::makeDirectory {name {directory ""}} { - variable filesMade - FillFilesExisted - if {[llength [info level 0]] == 2} { - set directory [temporaryDirectory] - } - set fullName [file join $directory $name] - DebugPuts 3 "[lindex [info level 0] 0]: creating $fullName" - file mkdir $fullName - if {[lsearch -exact $filesMade $fullName] == -1} { - lappend filesMade $fullName - } - return $fullName -} - -# tcltest::removeDirectory -- -# -# Removes a named directory from the file system. -# -# Arguments: -# name Name of the directory to remove -# directory Directory from which to remove -# -# Results: -# return value from [file delete] -# -# Side effects: -# None - -proc tcltest::removeDirectory {name {directory ""}} { - variable filesMade - FillFilesExisted - if {[llength [info level 0]] == 2} { - set directory [temporaryDirectory] - } - set fullName [file join $directory $name] - DebugPuts 3 "[lindex [info level 0] 0]: deleting $fullName" - set idx [lsearch -exact $filesMade $fullName] - set filesMade [lreplace $filesMade $idx $idx] - if {$idx == -1} { - DebugDo 1 { - Warn "removeDirectory removing \"$fullName\":\n not created\ - by makeDirectory" - } - } - if {![file isdirectory $fullName]} { - DebugDo 1 { - Warn "removeDirectory removing \"$fullName\":\n not a directory" - } - } - return [file delete -force $fullName] -} - -# tcltest::viewFile -- -# -# reads the content of a file and returns it -# -# Arguments: -# name of the file to read -# directory in which file is located -# -# Results: -# content of the named file -# -# Side effects: -# None. - -proc tcltest::viewFile {name {directory ""}} { - FillFilesExisted - if {[llength [info level 0]] == 2} { - set directory [temporaryDirectory] - } - set fullName [file join $directory $name] - set f [open $fullName] - set data [read -nonewline $f] - close $f - return $data -} - -# tcltest::bytestring -- -# -# Construct a string that consists of the requested sequence of bytes, -# as opposed to a string of properly formed UTF-8 characters. -# This allows the tester to -# 1. Create denormalized or improperly formed strings to pass to C -# procedures that are supposed to accept strings with embedded NULL -# bytes. -# 2. Confirm that a string result has a certain pattern of bytes, for -# instance to confirm that "\xe0\0" in a Tcl script is stored -# internally in UTF-8 as the sequence of bytes "\xc3\xa0\xc0\x80". -# -# Generally, it's a bad idea to examine the bytes in a Tcl string or to -# construct improperly formed strings in this manner, because it involves -# exposing that Tcl uses UTF-8 internally. -# -# Arguments: -# string being converted -# -# Results: -# result fom encoding -# -# Side effects: -# None - -proc tcltest::bytestring {string} { - return [encoding convertfrom identity $string] -} - -# tcltest::OpenFiles -- -# -# used in io tests, uses testchannel -# -# Arguments: -# None. -# -# Results: -# ??? -# -# Side effects: -# None. - -proc tcltest::OpenFiles {} { - if {[catch {testchannel open} result]} { - return {} - } - return $result -} - -# tcltest::LeakFiles -- -# -# used in io tests, uses testchannel -# -# Arguments: -# None. -# -# Results: -# ??? -# -# Side effects: -# None. - -proc tcltest::LeakFiles {old} { - if {[catch {testchannel open} new]} { - return {} - } - set leak {} - foreach p $new { - if {[lsearch $old $p] < 0} { - lappend leak $p - } - } - return $leak -} - -# -# Internationalization / ISO support procs -- dl -# - -# tcltest::SetIso8859_1_Locale -- -# -# used in cmdIL.test, uses testlocale -# -# Arguments: -# None. -# -# Results: -# None. -# -# Side effects: -# None. - -proc tcltest::SetIso8859_1_Locale {} { - variable previousLocale - variable isoLocale - if {[info commands testlocale] != ""} { - set previousLocale [testlocale ctype] - testlocale ctype $isoLocale - } - return -} - -# tcltest::RestoreLocale -- -# -# used in cmdIL.test, uses testlocale -# -# Arguments: -# None. -# -# Results: -# None. -# -# Side effects: -# None. - -proc tcltest::RestoreLocale {} { - variable previousLocale - if {[info commands testlocale] != ""} { - testlocale ctype $previousLocale - } - return -} - -# tcltest::threadReap -- -# -# Kill all threads except for the main thread. -# Do nothing if testthread is not defined. -# -# Arguments: -# none. -# -# Results: -# Returns the number of existing threads. -# -# Side Effects: -# none. -# - -proc tcltest::threadReap {} { - if {[info commands testthread] != {}} { - - # testthread built into tcltest - - testthread errorproc ThreadNullError - while {[llength [testthread names]] > 1} { - foreach tid [testthread names] { - if {$tid != [mainThread]} { - catch { - testthread send -async $tid {testthread exit} - } - } - } - ## Enter a bit a sleep to give the threads enough breathing - ## room to kill themselves off, otherwise the end up with a - ## massive queue of repeated events - after 1 - } - testthread errorproc ThreadError - return [llength [testthread names]] - } elseif {[info commands thread::id] != {}} { - - # Thread extension - - thread::errorproc ThreadNullError - while {[llength [thread::names]] > 1} { - foreach tid [thread::names] { - if {$tid != [mainThread]} { - catch {thread::send -async $tid {thread::exit}} - } - } - ## Enter a bit a sleep to give the threads enough breathing - ## room to kill themselves off, otherwise the end up with a - ## massive queue of repeated events - after 1 - } - thread::errorproc ThreadError - return [llength [thread::names]] - } else { - return 1 - } - return 0 -} - -# Initialize the constraints and set up command line arguments -namespace eval tcltest { - # Define initializers for all the built-in contraint definitions - DefineConstraintInitializers - - # Set up the constraints in the testConstraints array to be lazily - # initialized by a registered initializer, or by "false" if no - # initializer is registered. - trace variable testConstraints r [namespace code SafeFetch] - - # Only initialize constraints at package load time if an - # [initConstraintsHook] has been pre-defined. This is only - # for compatibility support. The modern way to add a custom - # test constraint is to just call the [testConstraint] command - # straight away, without all this "hook" nonsense. - if {[string equal [namespace current] \ - [namespace qualifiers [namespace which initConstraintsHook]]]} { - InitConstraints - } else { - proc initConstraintsHook {} {} - } - - # Define the standard match commands - customMatch exact [list string equal] - customMatch glob [list string match] - customMatch regexp [list regexp --] - - # If the TCLTEST_OPTIONS environment variable exists, configure - # tcltest according to the option values it specifies. This has - # the effect of resetting tcltest's default configuration. - proc ConfigureFromEnvironment {} { - upvar #0 env(TCLTEST_OPTIONS) options - if {[catch {llength $options} msg]} { - Warn "invalid TCLTEST_OPTIONS \"$options\":\n invalid\ - Tcl list: $msg" - return - } - if {[llength $::env(TCLTEST_OPTIONS)] % 2} { - Warn "invalid TCLTEST_OPTIONS: \"$options\":\n should be\ - -option value ?-option value ...?" - return - } - if {[catch {eval Configure $::env(TCLTEST_OPTIONS)} msg]} { - Warn "invalid TCLTEST_OPTIONS: \"$options\":\n $msg" - return - } - } - if {[info exists ::env(TCLTEST_OPTIONS)]} { - ConfigureFromEnvironment - } - - proc LoadTimeCmdLineArgParsingRequired {} { - set required false - if {[info exists ::argv] && [lsearch -exact $::argv -help] != -1} { - # The command line asks for -help, so give it (and exit) - # right now. ([configure] does not process -help) - set required true - } - foreach hook { PrintUsageInfoHook processCmdLineArgsHook - processCmdLineArgsAddFlagsHook } { - if {[string equal [namespace current] [namespace qualifiers \ - [namespace which $hook]]]} { - set required true - } else { - proc $hook args {} - } - } - return $required - } - - # Only initialize configurable options from the command line arguments - # at package load time if necessary for backward compatibility. This - # lets the tcltest user call [configure] for themselves if they wish. - # Traces are established for auto-configuration from the command line - # if any configurable options are accessed before the user calls - # [configure]. - if {[LoadTimeCmdLineArgParsingRequired]} { - ProcessCmdLineArgs - } else { - EstablishAutoConfigureTraces - } - - package provide [namespace tail [namespace current]] $Version -} diff --git a/mingw/lib/tcl8.4/word.tcl b/mingw/lib/tcl8.4/word.tcl deleted file mode 100644 index c18c9615..00000000 --- a/mingw/lib/tcl8.4/word.tcl +++ /dev/null @@ -1,132 +0,0 @@ -# word.tcl -- -# -# This file defines various procedures for computing word boundaries -# in strings. This file is primarily needed so Tk text and entry -# widgets behave properly for different platforms. -# -# Copyright (c) 1996 by Sun Microsystems, Inc. -# Copyright (c) 1998 by Scritpics Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# RCS: @(#) $Id: word.tcl,v 1.7.2.1 2005/07/22 21:59:41 dgp Exp $ - -# The following variables are used to determine which characters are -# interpreted as white space. - -if {$::tcl_platform(platform) eq "windows"} { - # Windows style - any but a unicode space char - set tcl_wordchars "\\S" - set tcl_nonwordchars "\\s" -} else { - # Motif style - any unicode word char (number, letter, or underscore) - set tcl_wordchars "\\w" - set tcl_nonwordchars "\\W" -} - -# tcl_wordBreakAfter -- -# -# This procedure returns the index of the first word boundary -# after the starting point in the given string, or -1 if there -# are no more boundaries in the given string. The index returned refers -# to the first character of the pair that comprises a boundary. -# -# Arguments: -# str - String to search. -# start - Index into string specifying starting point. - -proc tcl_wordBreakAfter {str start} { - global tcl_nonwordchars tcl_wordchars - set str [string range $str $start end] - if {[regexp -indices "$tcl_wordchars$tcl_nonwordchars|$tcl_nonwordchars$tcl_wordchars" $str result]} { - return [expr {[lindex $result 1] + $start}] - } - return -1 -} - -# tcl_wordBreakBefore -- -# -# This procedure returns the index of the first word boundary -# before the starting point in the given string, or -1 if there -# are no more boundaries in the given string. The index returned -# refers to the second character of the pair that comprises a boundary. -# -# Arguments: -# str - String to search. -# start - Index into string specifying starting point. - -proc tcl_wordBreakBefore {str start} { - global tcl_nonwordchars tcl_wordchars - if {$start eq "end"} { - set start [string length $str] - } - if {[regexp -indices "^.*($tcl_wordchars$tcl_nonwordchars|$tcl_nonwordchars$tcl_wordchars)" [string range $str 0 $start] result]} { - return [lindex $result 1] - } - return -1 -} - -# tcl_endOfWord -- -# -# This procedure returns the index of the first end-of-word location -# after a starting index in the given string. An end-of-word location -# is defined to be the first whitespace character following the first -# non-whitespace character after the starting point. Returns -1 if -# there are no more words after the starting point. -# -# Arguments: -# str - String to search. -# start - Index into string specifying starting point. - -proc tcl_endOfWord {str start} { - global tcl_nonwordchars tcl_wordchars - if {[regexp -indices "$tcl_nonwordchars*$tcl_wordchars+$tcl_nonwordchars" \ - [string range $str $start end] result]} { - return [expr {[lindex $result 1] + $start}] - } - return -1 -} - -# tcl_startOfNextWord -- -# -# This procedure returns the index of the first start-of-word location -# after a starting index in the given string. A start-of-word -# location is defined to be a non-whitespace character following a -# whitespace character. Returns -1 if there are no more start-of-word -# locations after the starting point. -# -# Arguments: -# str - String to search. -# start - Index into string specifying starting point. - -proc tcl_startOfNextWord {str start} { - global tcl_nonwordchars tcl_wordchars - if {[regexp -indices "$tcl_wordchars*$tcl_nonwordchars+$tcl_wordchars" \ - [string range $str $start end] result]} { - return [expr {[lindex $result 1] + $start}] - } - return -1 -} - -# tcl_startOfPreviousWord -- -# -# This procedure returns the index of the first start-of-word location -# before a starting index in the given string. -# -# Arguments: -# str - String to search. -# start - Index into string specifying starting point. - -proc tcl_startOfPreviousWord {str start} { - global tcl_nonwordchars tcl_wordchars - if {$start eq "end"} { - set start [string length $str] - } - if {[regexp -indices \ - "$tcl_nonwordchars*($tcl_wordchars+)$tcl_nonwordchars*\$" \ - [string range $str 0 [expr {$start - 1}]] result word]} { - return [lindex $word 0] - } - return -1 -} diff --git a/mingw/lib/tcl8.5/auto.tcl b/mingw/lib/tcl8.5/auto.tcl new file mode 100644 index 00000000..881e6b98 --- /dev/null +++ b/mingw/lib/tcl8.5/auto.tcl @@ -0,0 +1,610 @@ +# auto.tcl -- +# +# utility procs formerly in init.tcl dealing with auto execution +# of commands and can be auto loaded themselves. +# +# RCS: @(#) $Id: auto.tcl,v 1.28 2006/11/03 00:34:52 hobbs Exp $ +# +# Copyright (c) 1991-1993 The Regents of the University of California. +# Copyright (c) 1994-1998 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# auto_reset -- +# +# Destroy all cached information for auto-loading and auto-execution, +# so that the information gets recomputed the next time it's needed. +# Also delete any commands that are listed in the auto-load index. +# +# Arguments: +# None. + +proc auto_reset {} { + if {[array exists ::auto_index]} { + foreach cmdName [array names ::auto_index] { + set fqcn [namespace which $cmdName] + if {$fqcn eq ""} {continue} + rename $fqcn {} + } + } + unset -nocomplain ::auto_execs ::auto_index ::tcl::auto_oldpath + if {[catch {llength $::auto_path}]} { + set ::auto_path [list [info library]] + } else { + if {[info library] ni $::auto_path} { + lappend ::auto_path [info library] + } + } +} + +# tcl_findLibrary -- +# +# This is a utility for extensions that searches for a library directory +# using a canonical searching algorithm. A side effect is to source +# the initialization script and set a global library variable. +# +# Arguments: +# basename Prefix of the directory name, (e.g., "tk") +# version Version number of the package, (e.g., "8.0") +# patch Patchlevel of the package, (e.g., "8.0.3") +# initScript Initialization script to source (e.g., tk.tcl) +# enVarName environment variable to honor (e.g., TK_LIBRARY) +# varName Global variable to set when done (e.g., tk_library) + +proc tcl_findLibrary {basename version patch initScript enVarName varName} { + upvar #0 $varName the_library + global env + + set dirs {} + set errors {} + + # The C application may have hardwired a path, which we honor + + if {[info exists the_library] && $the_library ne ""} { + lappend dirs $the_library + } else { + + # Do the canonical search + + # 1. From an environment variable, if it exists. + # Placing this first gives the end-user ultimate control + # to work-around any bugs, or to customize. + + if {[info exists env($enVarName)]} { + lappend dirs $env($enVarName) + } + + # 2. In the package script directory registered within + # the configuration of the package itself. + + if {[catch { + ::${basename}::pkgconfig get scriptdir,runtime + } value] == 0} { + lappend dirs $value + } + + # 3. Relative to auto_path directories. This checks relative to the + # Tcl library as well as allowing loading of libraries added to the + # auto_path that is not relative to the core library or binary paths. + foreach d $::auto_path { + lappend dirs [file join $d $basename$version] + if {$::tcl_platform(platform) eq "unix" + && $::tcl_platform(os) eq "Darwin"} { + # 4. On MacOSX, check the Resources/Scripts subdir too + lappend dirs [file join $d $basename$version Resources Scripts] + } + } + + # 3. Various locations relative to the executable + # ../lib/foo1.0 (From bin directory in install hierarchy) + # ../../lib/foo1.0 (From bin/arch directory in install hierarchy) + # ../library (From unix directory in build hierarchy) + # + # Remaining locations are out of date (when relevant, they ought + # to be covered by the $::auto_path seach above) and disabled. + # + # ../../library (From unix/arch directory in build hierarchy) + # ../../foo1.0.1/library + # (From unix directory in parallel build hierarchy) + # ../../../foo1.0.1/library + # (From unix/arch directory in parallel build hierarchy) + + set parentDir [file dirname [file dirname [info nameofexecutable]]] + set grandParentDir [file dirname $parentDir] + lappend dirs [file join $parentDir lib $basename$version] + lappend dirs [file join $grandParentDir lib $basename$version] + lappend dirs [file join $parentDir library] + if {0} { + lappend dirs [file join $grandParentDir library] + lappend dirs [file join $grandParentDir $basename$patch library] + lappend dirs [file join [file dirname $grandParentDir] \ + $basename$patch library] + } + } + # uniquify $dirs in order + array set seen {} + foreach i $dirs { + # Take note that the [file normalize] below has been noted to + # cause difficulties for the freewrap utility. See Bug 1072136. + # Until freewrap resolves the matter, one might work around the + # problem by disabling that branch. + if {[interp issafe]} { + set norm $i + } else { + set norm [file normalize $i] + } + if {[info exists seen($norm)]} { continue } + set seen($norm) "" + lappend uniqdirs $i + } + set dirs $uniqdirs + foreach i $dirs { + set the_library $i + set file [file join $i $initScript] + + # source everything when in a safe interpreter because + # we have a source command, but no file exists command + + if {[interp issafe] || [file exists $file]} { + if {![catch {uplevel #0 [list source $file]} msg opts]} { + return + } else { + append errors "$file: $msg\n" + append errors [dict get $opts -errorinfo]\n + } + } + } + unset -nocomplain the_library + set msg "Can't find a usable $initScript in the following directories: \n" + append msg " $dirs\n\n" + append msg "$errors\n\n" + append msg "This probably means that $basename wasn't installed properly.\n" + error $msg +} + + +# ---------------------------------------------------------------------- +# auto_mkindex +# ---------------------------------------------------------------------- +# The following procedures are used to generate the tclIndex file +# from Tcl source files. They use a special safe interpreter to +# parse Tcl source files, writing out index entries as "proc" +# commands are encountered. This implementation won't work in a +# safe interpreter, since a safe interpreter can't create the +# special parser and mess with its commands. + +if {[interp issafe]} { + return ;# Stop sourcing the file here +} + +# auto_mkindex -- +# Regenerate a tclIndex file from Tcl source files. Takes as argument +# the name of the directory in which the tclIndex file is to be placed, +# followed by any number of glob patterns to use in that directory to +# locate all of the relevant files. +# +# Arguments: +# dir - Name of the directory in which to create an index. +# args - Any number of additional arguments giving the +# names of files within dir. If no additional +# are given auto_mkindex will look for *.tcl. + +proc auto_mkindex {dir args} { + if {[interp issafe]} { + error "can't generate index within safe interpreter" + } + + set oldDir [pwd] + cd $dir + set dir [pwd] + + append index "# Tcl autoload index file, version 2.0\n" + append index "# This file is generated by the \"auto_mkindex\" command\n" + append index "# and sourced to set up indexing information for one or\n" + append index "# more commands. Typically each line is a command that\n" + append index "# sets an element in the auto_index array, where the\n" + append index "# element name is the name of a command and the value is\n" + append index "# a script that loads the command.\n\n" + if {[llength $args] == 0} { + set args *.tcl + } + + auto_mkindex_parser::init + foreach file [glob -- {*}$args] { + if {[catch {auto_mkindex_parser::mkindex $file} msg opts] == 0} { + append index $msg + } else { + cd $oldDir + return -options $opts $msg + } + } + auto_mkindex_parser::cleanup + + set fid [open "tclIndex" w] + puts -nonewline $fid $index + close $fid + cd $oldDir +} + +# Original version of auto_mkindex that just searches the source +# code for "proc" at the beginning of the line. + +proc auto_mkindex_old {dir args} { + set oldDir [pwd] + cd $dir + set dir [pwd] + append index "# Tcl autoload index file, version 2.0\n" + append index "# This file is generated by the \"auto_mkindex\" command\n" + append index "# and sourced to set up indexing information for one or\n" + append index "# more commands. Typically each line is a command that\n" + append index "# sets an element in the auto_index array, where the\n" + append index "# element name is the name of a command and the value is\n" + append index "# a script that loads the command.\n\n" + if {[llength $args] == 0} { + set args *.tcl + } + foreach file [glob -- {*}$args] { + set f "" + set error [catch { + set f [open $file] + while {[gets $f line] >= 0} { + if {[regexp {^proc[ ]+([^ ]*)} $line match procName]} { + set procName [lindex [auto_qualify $procName "::"] 0] + append index "set [list auto_index($procName)]" + append index " \[list source \[file join \$dir [list $file]\]\]\n" + } + } + close $f + } msg opts] + if {$error} { + catch {close $f} + cd $oldDir + return -options $opts $msg + } + } + set f "" + set error [catch { + set f [open tclIndex w] + puts -nonewline $f $index + close $f + cd $oldDir + } msg opts] + if {$error} { + catch {close $f} + cd $oldDir + error $msg $info $code + return -options $opts $msg + } +} + +# Create a safe interpreter that can be used to parse Tcl source files +# generate a tclIndex file for autoloading. This interp contains +# commands for things that need index entries. Each time a command +# is executed, it writes an entry out to the index file. + +namespace eval auto_mkindex_parser { + variable parser "" ;# parser used to build index + variable index "" ;# maintains index as it is built + variable scriptFile "" ;# name of file being processed + variable contextStack "" ;# stack of namespace scopes + variable imports "" ;# keeps track of all imported cmds + variable initCommands ;# list of commands that create aliases + if {![info exists initCommands]} { + set initCommands [list] + } + + proc init {} { + variable parser + variable initCommands + + if {![interp issafe]} { + set parser [interp create -safe] + $parser hide info + $parser hide rename + $parser hide proc + $parser hide namespace + $parser hide eval + $parser hide puts + $parser invokehidden namespace delete :: + $parser invokehidden proc unknown {args} {} + + # We'll need access to the "namespace" command within the + # interp. Put it back, but move it out of the way. + + $parser expose namespace + $parser invokehidden rename namespace _%@namespace + $parser expose eval + $parser invokehidden rename eval _%@eval + + # Install all the registered psuedo-command implementations + + foreach cmd $initCommands { + eval $cmd + } + } + } + proc cleanup {} { + variable parser + interp delete $parser + unset parser + } +} + +# auto_mkindex_parser::mkindex -- +# +# Used by the "auto_mkindex" command to create a "tclIndex" file for +# the given Tcl source file. Executes the commands in the file, and +# handles things like the "proc" command by adding an entry for the +# index file. Returns a string that represents the index file. +# +# Arguments: +# file Name of Tcl source file to be indexed. + +proc auto_mkindex_parser::mkindex {file} { + variable parser + variable index + variable scriptFile + variable contextStack + variable imports + + set scriptFile $file + + set fid [open $file] + set contents [read $fid] + close $fid + + # There is one problem with sourcing files into the safe + # interpreter: references like "$x" will fail since code is not + # really being executed and variables do not really exist. + # To avoid this, we replace all $ with \0 (literally, the null char) + # later, when getting proc names we will have to reverse this replacement, + # in case there were any $ in the proc name. This will cause a problem + # if somebody actually tries to have a \0 in their proc name. Too bad + # for them. + set contents [string map [list \$ \0] $contents] + + set index "" + set contextStack "" + set imports "" + + $parser eval $contents + + foreach name $imports { + catch {$parser eval [list _%@namespace forget $name]} + } + return $index +} + +# auto_mkindex_parser::hook command +# +# Registers a Tcl command to evaluate when initializing the +# slave interpreter used by the mkindex parser. +# The command is evaluated in the master interpreter, and can +# use the variable auto_mkindex_parser::parser to get to the slave + +proc auto_mkindex_parser::hook {cmd} { + variable initCommands + + lappend initCommands $cmd +} + +# auto_mkindex_parser::slavehook command +# +# Registers a Tcl command to evaluate when initializing the +# slave interpreter used by the mkindex parser. +# The command is evaluated in the slave interpreter. + +proc auto_mkindex_parser::slavehook {cmd} { + variable initCommands + + # The $parser variable is defined to be the name of the + # slave interpreter when this command is used later. + + lappend initCommands "\$parser eval [list $cmd]" +} + +# auto_mkindex_parser::command -- +# +# Registers a new command with the "auto_mkindex_parser" interpreter +# that parses Tcl files. These commands are fake versions of things +# like the "proc" command. When you execute them, they simply write +# out an entry to a "tclIndex" file for auto-loading. +# +# This procedure allows extensions to register their own commands +# with the auto_mkindex facility. For example, a package like +# [incr Tcl] might register a "class" command so that class definitions +# could be added to a "tclIndex" file for auto-loading. +# +# Arguments: +# name Name of command recognized in Tcl files. +# arglist Argument list for command. +# body Implementation of command to handle indexing. + +proc auto_mkindex_parser::command {name arglist body} { + hook [list auto_mkindex_parser::commandInit $name $arglist $body] +} + +# auto_mkindex_parser::commandInit -- +# +# This does the actual work set up by auto_mkindex_parser::command +# This is called when the interpreter used by the parser is created. +# +# Arguments: +# name Name of command recognized in Tcl files. +# arglist Argument list for command. +# body Implementation of command to handle indexing. + +proc auto_mkindex_parser::commandInit {name arglist body} { + variable parser + + set ns [namespace qualifiers $name] + set tail [namespace tail $name] + if {$ns eq ""} { + set fakeName [namespace current]::_%@fake_$tail + } else { + set fakeName [namespace current]::[string map {:: _} _%@fake_$name] + } + proc $fakeName $arglist $body + + # YUK! Tcl won't let us alias fully qualified command names, + # so we can't handle names like "::itcl::class". Instead, + # we have to build procs with the fully qualified names, and + # have the procs point to the aliases. + + if {[string match *::* $name]} { + set exportCmd [list _%@namespace export [namespace tail $name]] + $parser eval [list _%@namespace eval $ns $exportCmd] + + # The following proc definition does not work if you + # want to tolerate space or something else diabolical + # in the procedure name, (i.e., space in $alias) + # The following does not work: + # "_%@eval {$alias} \$args" + # because $alias gets concat'ed to $args. + # The following does not work because $cmd is somehow undefined + # "set cmd {$alias} \; _%@eval {\$cmd} \$args" + # A gold star to someone that can make test + # autoMkindex-3.3 work properly + + set alias [namespace tail $fakeName] + $parser invokehidden proc $name {args} "_%@eval {$alias} \$args" + $parser alias $alias $fakeName + } else { + $parser alias $name $fakeName + } + return +} + +# auto_mkindex_parser::fullname -- +# Used by commands like "proc" within the auto_mkindex parser. +# Returns the qualified namespace name for the "name" argument. +# If the "name" does not start with "::", elements are added from +# the current namespace stack to produce a qualified name. Then, +# the name is examined to see whether or not it should really be +# qualified. If the name has more than the leading "::", it is +# returned as a fully qualified name. Otherwise, it is returned +# as a simple name. That way, the Tcl autoloader will recognize +# it properly. +# +# Arguments: +# name - Name that is being added to index. + +proc auto_mkindex_parser::fullname {name} { + variable contextStack + + if {![string match ::* $name]} { + foreach ns $contextStack { + set name "${ns}::$name" + if {[string match ::* $name]} { + break + } + } + } + + if {[namespace qualifiers $name] eq ""} { + set name [namespace tail $name] + } elseif {![string match ::* $name]} { + set name "::$name" + } + + # Earlier, mkindex replaced all $'s with \0. Now, we have to reverse + # that replacement. + return [string map [list \0 \$] $name] +} + +if {[llength $::auto_mkindex_parser::initCommands]} { + return +} + +# Register all of the procedures for the auto_mkindex parser that +# will build the "tclIndex" file. + +# AUTO MKINDEX: proc name arglist body +# Adds an entry to the auto index list for the given procedure name. + +auto_mkindex_parser::command proc {name args} { + variable index + variable scriptFile + # Do some fancy reformatting on the "source" call to handle platform + # differences with respect to pathnames. Use format just so that the + # command is a little easier to read (otherwise it'd be full of + # backslashed dollar signs, etc. + append index [list set auto_index([fullname $name])] \ + [format { [list source [file join $dir %s]]} \ + [file split $scriptFile]] "\n" +} + +# Conditionally add support for Tcl byte code files. There are some +# tricky details here. First, we need to get the tbcload library +# initialized in the current interpreter. We cannot load tbcload into the +# slave until we have done so because it needs access to the tcl_patchLevel +# variable. Second, because the package index file may defer loading the +# library until we invoke a command, we need to explicitly invoke auto_load +# to force it to be loaded. This should be a noop if the package has +# already been loaded + +auto_mkindex_parser::hook { + if {![catch {package require tbcload}]} { + if {[namespace which -command tbcload::bcproc] eq ""} { + auto_load tbcload::bcproc + } + load {} tbcload $auto_mkindex_parser::parser + + # AUTO MKINDEX: tbcload::bcproc name arglist body + # Adds an entry to the auto index list for the given pre-compiled + # procedure name. + + auto_mkindex_parser::commandInit tbcload::bcproc {name args} { + variable index + variable scriptFile + # Do some nice reformatting of the "source" call, to get around + # path differences on different platforms. We use the format + # command just so that the code is a little easier to read. + append index [list set auto_index([fullname $name])] \ + [format { [list source [file join $dir %s]]} \ + [file split $scriptFile]] "\n" + } + } +} + +# AUTO MKINDEX: namespace eval name command ?arg arg...? +# Adds the namespace name onto the context stack and evaluates the +# associated body of commands. +# +# AUTO MKINDEX: namespace import ?-force? pattern ?pattern...? +# Performs the "import" action in the parser interpreter. This is +# important for any commands contained in a namespace that affect +# the index. For example, a script may say "itcl::class ...", +# or it may import "itcl::*" and then say "class ...". This +# procedure does the import operation, but keeps track of imported +# patterns so we can remove the imports later. + +auto_mkindex_parser::command namespace {op args} { + switch -- $op { + eval { + variable parser + variable contextStack + + set name [lindex $args 0] + set args [lrange $args 1 end] + + set contextStack [linsert $contextStack 0 $name] + $parser eval [list _%@namespace eval $name] $args + set contextStack [lrange $contextStack 1 end] + } + import { + variable parser + variable imports + foreach pattern $args { + if {$pattern ne "-force"} { + lappend imports $pattern + } + } + catch {$parser eval "_%@namespace import $args"} + } + } +} + +return diff --git a/mingw/lib/tcl8.5/clock.tcl b/mingw/lib/tcl8.5/clock.tcl new file mode 100644 index 00000000..fcce1b46 --- /dev/null +++ b/mingw/lib/tcl8.5/clock.tcl @@ -0,0 +1,4713 @@ +#---------------------------------------------------------------------- +# +# clock.tcl -- +# +# This file implements the portions of the [clock] ensemble that +# are coded in Tcl. Refer to the users' manual to see the description +# of the [clock] command and its subcommands. +# +# +#---------------------------------------------------------------------- +# +# Copyright (c) 2004,2005,2006,2007 by Kevin B. Kenny +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: clock.tcl,v 1.44 2007/08/25 16:53:25 kennykb Exp $ +# +#---------------------------------------------------------------------- + +# We must have message catalogs that support the root locale, and +# we need access to the Registry on Windows systems. + +uplevel \#0 { + package require msgcat 1.4 + if { $::tcl_platform(platform) eq {windows} } { + if { [catch { package require registry 1.1 }] } { + namespace eval ::tcl::clock [list variable NoRegistry {}] + } + } +} + +# Put the library directory into the namespace for the ensemble +# so that the library code can find message catalogs and time zone +# definition files. + +namespace eval ::tcl::clock \ + [list variable LibDir [file dirname [info script]]] + +#---------------------------------------------------------------------- +# +# clock -- +# +# Manipulate times. +# +# The 'clock' command manipulates time. Refer to the user documentation +# for the available subcommands and what they do. +# +#---------------------------------------------------------------------- + +namespace eval ::tcl::clock { + + # Export the subcommands + + namespace export format + namespace export clicks + namespace export microseconds + namespace export milliseconds + namespace export scan + namespace export seconds + namespace export add + + # Import the message catalog commands that we use. + + namespace import ::msgcat::mcload + namespace import ::msgcat::mclocale + +} + +#---------------------------------------------------------------------- +# +# ::tcl::clock::Initialize -- +# +# Finish initializing the 'clock' subsystem +# +# Results: +# None. +# +# Side effects: +# Namespace variable in the 'clock' subsystem are initialized. +# +# The '::tcl::clock::Initialize' procedure initializes the namespace +# variables and root locale message catalog for the 'clock' subsystem. +# It is broken into a procedure rather than simply evaluated as a script +# so that it will be able to use local variables, avoiding the dangers +# of 'creative writing' as in Bug 1185933. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::Initialize {} { + + rename ::tcl::clock::Initialize {} + + variable LibDir + + # Define the Greenwich time zone + + proc InitTZData {} { + variable TZData + array unset TZData + set TZData(:Etc/GMT) { + {-9223372036854775808 0 0 GMT} + } + set TZData(:GMT) $TZData(:Etc/GMT) + set TZData(:Etc/UTC) { + {-9223372036854775808 0 0 UTC} + } + set TZData(:UTC) $TZData(:Etc/UTC) + set TZData(:localtime) {} + } + InitTZData + + # Define the message catalog for the root locale. + + ::msgcat::mcmset {} { + AM {am} + BCE {B.C.E.} + CE {C.E.} + DATE_FORMAT {%m/%d/%Y} + DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y} + DAYS_OF_WEEK_ABBREV { + Sun Mon Tue Wed Thu Fri Sat + } + DAYS_OF_WEEK_FULL { + Sunday Monday Tuesday Wednesday Thursday Friday Saturday + } + GREGORIAN_CHANGE_DATE 2299161 + LOCALE_DATE_FORMAT {%m/%d/%Y} + LOCALE_DATE_TIME_FORMAT {%a %b %e %H:%M:%S %Y} + LOCALE_ERAS {} + LOCALE_NUMERALS { + 00 01 02 03 04 05 06 07 08 09 + 10 11 12 13 14 15 16 17 18 19 + 20 21 22 23 24 25 26 27 28 29 + 30 31 32 33 34 35 36 37 38 39 + 40 41 42 43 44 45 46 47 48 49 + 50 51 52 53 54 55 56 57 58 59 + 60 61 62 63 64 65 66 67 68 69 + 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 + 90 91 92 93 94 95 96 97 98 99 + } + LOCALE_TIME_FORMAT {%H:%M:%S} + LOCALE_YEAR_FORMAT {%EC%Ey} + MONTHS_ABBREV { + Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec + } + MONTHS_FULL { + January February March + April May June + July August September + October November December + } + PM {pm} + TIME_FORMAT {%H:%M:%S} + TIME_FORMAT_12 {%I:%M:%S %P} + TIME_FORMAT_24 {%H:%M} + TIME_FORMAT_24_SECS {%H:%M:%S} + } + + # Define a few Gregorian change dates for other locales. In most cases + # the change date follows a language, because a nation's colonies changed + # at the same time as the nation itself. In many cases, different + # national boundaries existed; the dominating rule is to follow the + # nation's capital. + + # Italy, Spain, Portugal, Poland + + ::msgcat::mcset it GREGORIAN_CHANGE_DATE 2299161 + ::msgcat::mcset es GREGORIAN_CHANGE_DATE 2299161 + ::msgcat::mcset pt GREGORIAN_CHANGE_DATE 2299161 + ::msgcat::mcset pl GREGORIAN_CHANGE_DATE 2299161 + + # France, Austria + + ::msgcat::mcset fr GREGORIAN_CHANGE_DATE 2299227 + + # For Belgium, we follow Southern Netherlands; Liege Diocese + # changed several weeks later. + + ::msgcat::mcset fr_BE GREGORIAN_CHANGE_DATE 2299238 + ::msgcat::mcset nl_BE GREGORIAN_CHANGE_DATE 2299238 + + # Austria + + ::msgcat::mcset de_AT GREGORIAN_CHANGE_DATE 2299527 + + # Hungary + + ::msgcat::mcset hu GREGORIAN_CHANGE_DATE 2301004 + + # Germany, Norway, Denmark (Catholic Germany changed earlier) + + ::msgcat::mcset de_DE GREGORIAN_CHANGE_DATE 2342032 + ::msgcat::mcset nb GREGORIAN_CHANGE_DATE 2342032 + ::msgcat::mcset nn GREGORIAN_CHANGE_DATE 2342032 + ::msgcat::mcset no GREGORIAN_CHANGE_DATE 2342032 + ::msgcat::mcset da GREGORIAN_CHANGE_DATE 2342032 + + # Holland (Brabant, Gelderland, Flanders, Friesland, etc. changed + # at various times) + + ::msgcat::mcset nl GREGORIAN_CHANGE_DATE 2342165 + + # Protestant Switzerland (Catholic cantons changed earlier) + + ::msgcat::mcset fr_CH GREGORIAN_CHANGE_DATE 2361342 + ::msgcat::mcset it_CH GREGORIAN_CHANGE_DATE 2361342 + ::msgcat::mcset de_CH GREGORIAN_CHANGE_DATE 2361342 + + # English speaking countries + + ::msgcat::mcset en GREGORIAN_CHANGE_DATE 2361222 + + # Sweden (had several changes onto and off of the Gregorian calendar) + + ::msgcat::mcset sv GREGORIAN_CHANGE_DATE 2361390 + + # Russia + + ::msgcat::mcset ru GREGORIAN_CHANGE_DATE 2421639 + + # Romania (Transylvania changed earler - perhaps de_RO should show + # the earlier date?) + + ::msgcat::mcset ro GREGORIAN_CHANGE_DATE 2422063 + + # Greece + + ::msgcat::mcset el GREGORIAN_CHANGE_DATE 2423480 + + #------------------------------------------------------------------ + # + # CONSTANTS + # + #------------------------------------------------------------------ + + # Paths at which binary time zone data for the Olson libraries + # are known to reside on various operating systems + + variable ZoneinfoPaths {} + foreach path { + /usr/share/zoneinfo + /usr/share/lib/zoneinfo + /usr/lib/zoneinfo + /usr/local/etc/zoneinfo + } { + if { [file isdirectory $path] } { + lappend ZoneinfoPaths $path + } + } + + # Define the directories for time zone data and message catalogs. + + variable DataDir [file join $LibDir tzdata] + variable MsgDir [file join $LibDir msgs] + + # Number of days in the months, in common years and leap years. + + variable DaysInRomanMonthInCommonYear \ + { 31 28 31 30 31 30 31 31 30 31 30 31 } + variable DaysInRomanMonthInLeapYear \ + { 31 29 31 30 31 30 31 31 30 31 30 31 } + variable DaysInPriorMonthsInCommonYear [list 0] + variable DaysInPriorMonthsInLeapYear [list 0] + set i 0 + foreach j $DaysInRomanMonthInCommonYear { + lappend DaysInPriorMonthsInCommonYear [incr i $j] + } + set i 0 + foreach j $DaysInRomanMonthInLeapYear { + lappend DaysInPriorMonthsInLeapYear [incr i $j] + } + + # Another epoch (Hi, Jeff!) + + variable Roddenberry 1946 + + # Integer ranges + + variable MINWIDE -9223372036854775808 + variable MAXWIDE 9223372036854775807 + + # Day before Leap Day + + variable FEB_28 58 + + # Translation table to map Windows TZI onto cities, so that + # the Olson rules can apply. In some cases the mapping is ambiguous, + # so it's wise to specify $::env(TCL_TZ) rather than simply depending + # on the system time zone. + + # The keys are long lists of values obtained from the time zone + # information in the Registry. In order, the list elements are: + # Bias StandardBias DaylightBias + # StandardDate.wYear StandardDate.wMonth StandardDate.wDayOfWeek + # StandardDate.wDay StandardDate.wHour StandardDate.wMinute + # StandardDate.wSecond StandardDate.wMilliseconds + # DaylightDate.wYear DaylightDate.wMonth DaylightDate.wDayOfWeek + # DaylightDate.wDay DaylightDate.wHour DaylightDate.wMinute + # DaylightDate.wSecond DaylightDate.wMilliseconds + # The values are the names of time zones where those rules apply. + # There is considerable ambiguity in certain zones; an attempt has + # been made to make a reasonable guess, but this table needs to be + # taken with a grain of salt. + + variable WinZoneInfo [dict create {*}{ + {-43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Kwajalein + {-39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Midway + {-36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Honolulu + {-32400 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Anchorage + {-28800 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Los_Angeles + {-28800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Tijuana + {-25200 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Denver + {-25200 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Chihuahua + {-25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Phoenix + {-21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Regina + {-21600 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Chicago + {-21600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Mexico_City + {-18000 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/New_York + {-18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Indianapolis + {-14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Caracas + {-14400 0 3600 0 3 6 2 23 59 59 999 0 10 6 2 23 59 59 999} + :America/Santiago + {-14400 0 3600 0 2 0 5 2 0 0 0 0 11 0 1 2 0 0 0} :America/Manaus + {-14400 0 3600 0 11 0 1 2 0 0 0 0 3 0 2 2 0 0 0} :America/Halifax + {-12600 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/St_Johns + {-10800 0 3600 0 2 0 2 2 0 0 0 0 10 0 3 2 0 0 0} :America/Sao_Paulo + {-10800 0 3600 0 10 0 5 2 0 0 0 0 4 0 1 2 0 0 0} :America/Godthab + {-10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :America/Buenos_Aires + {-10800 0 3600 0 2 0 5 2 0 0 0 0 11 0 1 2 0 0 0} :America/Brasilia + {-10800 0 3600 0 3 0 2 2 0 0 0 0 10 0 1 2 0 0 0} :America/Montevideo + {-7200 0 3600 0 9 0 5 2 0 0 0 0 3 0 5 2 0 0 0} :America/Noronha + {-3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Atlantic/Azores + {-3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Atlantic/Cape_Verde + {0 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :UTC + {0 0 3600 0 10 0 5 2 0 0 0 0 3 0 5 1 0 0 0} :Europe/London + {3600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Africa/Kinshasa + {3600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :CET + {7200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Africa/Harare + {7200 0 3600 0 9 4 5 23 59 59 0 0 4 4 5 23 59 59 0} + :Africa/Cairo + {7200 0 3600 0 10 0 5 4 0 0 0 0 3 0 5 3 0 0 0} :Europe/Helsinki + {7200 0 3600 0 9 0 3 2 0 0 0 0 3 5 5 2 0 0 0} :Asia/Jerusalem + {7200 0 3600 0 9 0 5 1 0 0 0 0 3 0 5 0 0 0 0} :Europe/Bucharest + {7200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Athens + {7200 0 3600 0 9 5 5 1 0 0 0 0 3 4 5 0 0 0 0} :Asia/Amman + {7200 0 3600 0 10 6 5 23 59 59 999 0 3 0 5 0 0 0 0} + :Asia/Beirut + {7200 0 -3600 0 4 0 1 2 0 0 0 0 9 0 1 2 0 0 0} :Africa/Windhoek + {10800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Riyadh + {10800 0 3600 0 10 0 1 4 0 0 0 0 4 0 1 3 0 0 0} :Asia/Baghdad + {10800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Europe/Moscow + {12600 0 3600 0 9 2 4 2 0 0 0 0 3 0 1 2 0 0 0} :Asia/Tehran + {14400 0 3600 0 10 0 5 5 0 0 0 0 3 0 5 4 0 0 0} :Asia/Baku + {14400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Muscat + {14400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Tbilisi + {16200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Kabul + {18000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Karachi + {18000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yekaterinburg + {19800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Calcutta + {20700 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Katmandu + {21600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Dhaka + {21600 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Novosibirsk + {23400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Rangoon + {25200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Bangkok + {25200 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Krasnoyarsk + {28800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Chongqing + {28800 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Irkutsk + {32400 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Asia/Tokyo + {32400 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Yakutsk + {34200 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Adelaide + {34200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Darwin + {36000 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Australia/Brisbane + {36000 0 3600 0 10 0 5 3 0 0 0 0 3 0 5 2 0 0 0} :Asia/Vladivostok + {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 1 2 0 0 0} :Australia/Hobart + {36000 0 3600 0 3 0 5 3 0 0 0 0 10 0 5 2 0 0 0} :Australia/Sydney + {39600 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Noumea + {43200 0 3600 0 3 0 3 3 0 0 0 0 10 0 1 2 0 0 0} :Pacific/Auckland + {43200 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Fiji + {46800 0 3600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} :Pacific/Tongatapu + }] + + # Groups of fields that specify the date, priorities, and + # code bursts that determine Julian Day Number given those groups. + # The code in [clock scan] will choose the highest priority + # (lowest numbered) set of fields that determines the date. + + variable DateParseActions { + + { seconds } 0 {} + + { julianDay } 1 {} + + { era century yearOfCentury month dayOfMonth } 2 { + dict set date year [expr { 100 * [dict get $date century] + + [dict get $date yearOfCentury] }] + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ + $changeover] + } + { era century yearOfCentury dayOfYear } 2 { + dict set date year [expr { 100 * [dict get $date century] + + [dict get $date yearOfCentury] }] + set date [GetJulianDayFromEraYearDay $date[set date {}] \ + $changeover] + } + + { century yearOfCentury month dayOfMonth } 3 { + dict set date era CE + dict set date year [expr { 100 * [dict get $date century] + + [dict get $date yearOfCentury] }] + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ + $changeover] + } + { century yearOfCentury dayOfYear } 3 { + dict set date era CE + dict set date year [expr { 100 * [dict get $date century] + + [dict get $date yearOfCentury] }] + set date [GetJulianDayFromEraYearDay $date[set date {}] \ + $changeover] + } + { iso8601Century iso8601YearOfCentury iso8601Week dayOfWeek } 3 { + dict set date era CE + dict set date iso8601Year \ + [expr { 100 * [dict get $date iso8601Century] + + [dict get $date iso8601YearOfCentury] }] + set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ + $changeover] + } + + { yearOfCentury month dayOfMonth } 4 { + set date [InterpretTwoDigitYear $date[set date {}] $baseTime] + dict set date era CE + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ + $changeover] + } + { yearOfCentury dayOfYear } 4 { + set date [InterpretTwoDigitYear $date[set date {}] $baseTime] + dict set date era CE + set date [GetJulianDayFromEraYearDay $date[set date {}] \ + $changeover] + } + { iso8601YearOfCentury iso8601Week dayOfWeek } 4 { + set date [InterpretTwoDigitYear \ + $date[set date {}] $baseTime \ + iso8601YearOfCentury iso8601Year] + dict set date era CE + set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ + $changeover] + } + + { month dayOfMonth } 5 { + set date [AssignBaseYear $date[set date {}] \ + $baseTime $timeZone $changeover] + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ + $changeover] + } + { dayOfYear } 5 { + set date [AssignBaseYear $date[set date {}] \ + $baseTime $timeZone $changeover] + set date [GetJulianDayFromEraYearDay $date[set date {}] \ + $changeover] + } + { iso8601Week dayOfWeek } 5 { + set date [AssignBaseIso8601Year $date[set date {}] \ + $baseTime $timeZone $changeover] + set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ + $changeover] + } + + { dayOfMonth } 6 { + set date [AssignBaseMonth $date[set date {}] \ + $baseTime $timeZone $changeover] + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] \ + $changeover] + } + + { dayOfWeek } 7 { + set date [AssignBaseWeek $date[set date {}] \ + $baseTime $timeZone $changeover] + set date [GetJulianDayFromEraYearWeekDay $date[set date {}] \ + $changeover] + } + + {} 8 { + set date [AssignBaseJulianDay $date[set date {}] \ + $baseTime $timeZone $changeover] + } + } + + # Groups of fields that specify time of day, priorities, + # and code that processes them + + variable TimeParseActions { + + seconds 1 {} + + { hourAMPM minute second amPmIndicator } 2 { + dict set date secondOfDay [InterpretHMSP $date] + } + { hour minute second } 2 { + dict set date secondOfDay [InterpretHMS $date] + } + + { hourAMPM minute amPmIndicator } 3 { + dict set date second 0 + dict set date secondOfDay [InterpretHMSP $date] + } + { hour minute } 3 { + dict set date second 0 + dict set date secondOfDay [InterpretHMS $date] + } + + { hourAMPM amPmIndicator } 4 { + dict set date minute 0 + dict set date second 0 + dict set date secondOfDay [InterpretHMSP $date] + } + { hour } 4 { + dict set date minute 0 + dict set date second 0 + dict set date secondOfDay [InterpretHMS $date] + } + + { } 5 { + dict set date secondOfDay 0 + } + } + + # Legacy time zones, used primarily for parsing RFC822 dates. + + variable LegacyTimeZone [dict create \ + gmt +0000 \ + ut +0000 \ + utc +0000 \ + bst +0100 \ + wet +0000 \ + wat -0100 \ + at -0200 \ + nft -0330 \ + nst -0330 \ + ndt -0230 \ + ast -0400 \ + adt -0300 \ + est -0500 \ + edt -0400 \ + cst -0600 \ + cdt -0500 \ + mst -0700 \ + mdt -0600 \ + pst -0800 \ + pdt -0700 \ + yst -0900 \ + ydt -0800 \ + hst -1000 \ + hdt -0900 \ + cat -1000 \ + ahst -1000 \ + nt -1100 \ + idlw -1200 \ + cet +0100 \ + cest +0200 \ + met +0100 \ + mewt +0100 \ + mest +0200 \ + swt +0100 \ + sst +0200 \ + fwt +0100 \ + fst +0200 \ + eet +0200 \ + eest +0300 \ + bt +0300 \ + it +0330 \ + zp4 +0400 \ + zp5 +0500 \ + ist +0530 \ + zp6 +0600 \ + wast +0700 \ + wadt +0800 \ + jt +0730 \ + cct +0800 \ + jst +0900 \ + kst +0900 \ + cast +0930 \ + jdt +1000 \ + kdt +1000 \ + cadt +1030 \ + east +1000 \ + eadt +1030 \ + gst +1000 \ + nzt +1200 \ + nzst +1200 \ + nzdt +1300 \ + idle +1200 \ + a +0100 \ + b +0200 \ + c +0300 \ + d +0400 \ + e +0500 \ + f +0600 \ + g +0700 \ + h +0800 \ + i +0900 \ + k +1000 \ + l +1100 \ + m +1200 \ + n -0100 \ + o -0200 \ + p -0300 \ + q -0400 \ + r -0500 \ + s -0600 \ + t -0700 \ + u -0800 \ + v -0900 \ + w -1000 \ + x -1100 \ + y -1200 \ + z +0000 \ + ] + + # Caches + + variable LocaleNumeralCache {}; # Dictionary whose keys are locale + # names and whose values are pairs + # comprising regexes matching numerals + # in the given locales and dictionaries + # mapping the numerals to their numeric + # values. + variable McLoaded {}; # Dictionary whose keys are locales + # in which [mcload] has been executed + # and whose values are second-level + # dictionaries indexed by message + # name and giving message text. + # variable CachedSystemTimeZone; # If 'CachedSystemTimeZone' exists, + # it contains the value of the + # system time zone, as determined from + # the environment. + variable TimeZoneBad {}; # Dictionary whose keys are time zone + # names and whose values are 1 if + # the time zone is unknown and 0 + # if it is known. + variable TZData; # Array whose keys are time zone names + # and whose values are lists of quads + # comprising start time, UTC offset, + # Daylight Saving Time indicator, and + # time zone abbreviation. +} +::tcl::clock::Initialize + +#---------------------------------------------------------------------- +# +# clock format -- +# +# Formats a count of seconds since the Posix Epoch as a time +# of day. +# +# The 'clock format' command formats times of day for output. +# Refer to the user documentation to see what it does. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::format { args } { + + variable TZData + set format {} + + # Check the count of args + + if { [llength $args] < 1 || [llength $args] % 2 != 1 } { + set cmdName "clock format" + return -code error \ + -errorcode [list CLOCK wrongNumArgs] \ + "wrong \# args: should be\ + \"$cmdName clockval\ + ?-format string? ?-gmt boolean?\ + ?-locale LOCALE? ?-timezone ZONE?\"" + } + + # Set defaults + + set clockval [lindex $args 0] + set format {%a %b %d %H:%M:%S %Z %Y} + set gmt 0 + set locale C + set timezone {} + + # Pick up command line options. + + foreach { flag value } [lreplace $args 0 0] { + set saw($flag) {} + switch -exact -- $flag { + -f - -fo - -for - -form - -forma - -format { + set format $value + } + -g - -gm - -gmt { + set gmt $value + } + -l - -lo - -loc - -loca - -local - -locale { + set locale $value + } + -t - -ti - -tim - -time - -timez - -timezo - -timezon - -timezone { + set timezone $value + } + default { + return -code error \ + -errorcode [list CLOCK badSwitch $flag] \ + "bad switch \"$flag\",\ + must be -format, -gmt, -locale or -timezone" + } + } + } + + # Check options for validity + + if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } { + return -code error \ + -errorcode [list CLOCK gmtWithTimezone] \ + "cannot use -gmt and -timezone in same call" + } + if { ![string is wide -strict $clockval] } { + return -code error \ + "expected integer but got \"$clockval\"" + } + if { ![string is boolean -strict $gmt] } { + return -code error \ + "expected boolean value but got \"$gmt\"" + } else { + if { $gmt } { + set timezone :GMT + } + } + + # Get the data for time changes in the given zone + + if {$timezone eq ""} { + set timezone [GetSystemTimeZone] + } + if {![info exists TZData($timezone)]} { + if {[catch {SetupTimeZone $timezone} retval opts]} { + dict unset opts -errorinfo + return -options $opts $retval + } + } + + # Format the result + + set formatter [ParseClockFormatFormat $format $locale] + return [$formatter $clockval $timezone] + +} + +#---------------------------------------------------------------------- +# +# ParseClockFormatFormat -- +# +# Builds and caches a procedure that formats a time value. +# +# Parameters: +# format -- Format string to use +# locale -- Locale in which the format string is to be interpreted +# +# Results: +# Returns the name of the newly-built procedure. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ParseClockFormatFormat {format locale} { + + set procName [namespace current]::formatproc'$format'$locale + if {[namespace which $procName] != {}} { + return $procName + } + + # Map away the locale-dependent composite format groups + + EnterLocale $locale oldLocale + + # Change locale if a fresh locale has been given on the command line. + + set status [catch { + + ParseClockFormatFormat2 $format $locale $procName + + } result opts] + + # Restore the locale + + if { [info exists oldLocale] } { + mclocale $oldLocale + } + + # Return either the error or the proc name + + if { $status == 1 } { + if { [lindex [dict get $opts -errorcode] 0] eq {clock} } { + return -code error $result + } else { + return -options $opts $result + } + } else { + return $result + } + +} + +proc ::tcl::clock::ParseClockFormatFormat2 {format locale procName} { + + set didLocaleEra 0 + set didLocaleNumerals 0 + set preFormatCode \ + [string map [list @GREGORIAN_CHANGE_DATE@ \ + [mc GREGORIAN_CHANGE_DATE]] \ + { + variable TZData + set date [GetDateFields $clockval \ + $TZData($timezone) \ + @GREGORIAN_CHANGE_DATE@] + }] + set formatString {} + set substituents {} + set state {} + + set format [LocalizeFormat $locale $format] + + foreach char [split $format {}] { + switch -exact -- $state { + {} { + if { [string equal % $char] } { + set state percent + } else { + append formatString $char + } + } + percent { # Character following a '%' character + set state {} + switch -exact -- $char { + % { # A literal character, '%' + append formatString %% + } + a { # Day of week, abbreviated + append formatString %s + append substituents \ + [string map \ + [list @DAYS_OF_WEEK_ABBREV@ \ + [list [mc DAYS_OF_WEEK_ABBREV]]] \ + { [lindex @DAYS_OF_WEEK_ABBREV@ \ + [expr {[dict get $date dayOfWeek] \ + % 7}]]}] + } + A { # Day of week, spelt out. + append formatString %s + append substituents \ + [string map \ + [list @DAYS_OF_WEEK_FULL@ \ + [list [mc DAYS_OF_WEEK_FULL]]] \ + { [lindex @DAYS_OF_WEEK_FULL@ \ + [expr {[dict get $date dayOfWeek] \ + % 7}]]}] + } + b - h { # Name of month, abbreviated. + append formatString %s + append substituents \ + [string map \ + [list @MONTHS_ABBREV@ \ + [list [mc MONTHS_ABBREV]]] \ + { [lindex @MONTHS_ABBREV@ \ + [expr {[dict get $date month]-1}]]}] + } + B { # Name of month, spelt out + append formatString %s + append substituents \ + [string map \ + [list @MONTHS_FULL@ \ + [list [mc MONTHS_FULL]]] \ + { [lindex @MONTHS_FULL@ \ + [expr {[dict get $date month]-1}]]}] + } + C { # Century number + append formatString %02d + append substituents \ + { [expr {[dict get $date year] / 100}]} + } + d { # Day of month, with leading zero + append formatString %02d + append substituents { [dict get $date dayOfMonth]} + } + e { # Day of month, without leading zero + append formatString %2d + append substituents { [dict get $date dayOfMonth]} + } + E { # Format group in a locale-dependent + # alternative era + set state percentE + if {!$didLocaleEra} { + append preFormatCode \ + [string map \ + [list @LOCALE_ERAS@ \ + [list [mc LOCALE_ERAS]]] \ + { + set date [GetLocaleEra \ + $date[set date {}] \ + @LOCALE_ERAS@]}] \n + set didLocaleEra 1 + } + if {!$didLocaleNumerals} { + append preFormatCode \ + [list set localeNumerals \ + [mc LOCALE_NUMERALS]] \n + set didLocaleNumerals 1 + } + } + g { # Two-digit year relative to ISO8601 + # week number + append formatString %02d + append substituents \ + { [expr { [dict get $date iso8601Year] % 100 }]} + } + G { # Four-digit year relative to ISO8601 + # week number + append formatString %02d + append substituents { [dict get $date iso8601Year]} + } + H { # Hour in the 24-hour day, leading zero + append formatString %02d + append substituents \ + { [expr { [dict get $date localSeconds] \ + / 3600 % 24}]} + } + I { # Hour AM/PM, with leading zero + append formatString %02d + append substituents \ + { [expr { ( ( ( [dict get $date localSeconds] \ + % 86400 ) \ + + 86400 \ + - 3600 ) \ + / 3600 ) \ + % 12 + 1 }] } + } + j { # Day of year (001-366) + append formatString %03d + append substituents { [dict get $date dayOfYear]} + } + J { # Julian Day Number + append formatString %07ld + append substituents { [dict get $date julianDay]} + } + k { # Hour (0-23), no leading zero + append formatString %2d + append substituents \ + { [expr { [dict get $date localSeconds] + / 3600 + % 24 }]} + } + l { # Hour (12-11), no leading zero + append formatString %2d + append substituents \ + { [expr { ( ( ( [dict get $date localSeconds] + % 86400 ) + + 86400 + - 3600 ) + / 3600 ) + % 12 + 1 }]} + } + m { # Month number, leading zero + append formatString %02d + append substituents { [dict get $date month]} + } + M { # Minute of the hour, leading zero + append formatString %02d + append substituents \ + { [expr { [dict get $date localSeconds] + / 60 + % 60 }]} + } + n { # A literal newline + append formatString \n + } + N { # Month number, no leading zero + append formatString %2d + append substituents { [dict get $date month]} + } + O { # A format group in the locale's + # alternative numerals + set state percentO + if {!$didLocaleNumerals} { + append preFormatCode \ + [list set localeNumerals \ + [mc LOCALE_NUMERALS]] \n + set didLocaleNumerals 1 + } + } + p { # Localized 'AM' or 'PM' indicator + # converted to uppercase + append formatString %s + append preFormatCode \ + [list set AM [string toupper [mc AM]]] \n \ + [list set PM [string toupper [mc PM]]] \n + append substituents \ + { [expr {(([dict get $date localSeconds] + % 86400) < 43200) ? + $AM : $PM}]} + } + P { # Localized 'AM' or 'PM' indicator + append formatString %s + append preFormatCode \ + [list set am [mc AM]] \n \ + [list set pm [mc PM]] \n + append substituents \ + { [expr {(([dict get $date localSeconds] + % 86400) < 43200) ? + $am : $pm}]} + + } + Q { # Hi, Jeff! + append formatString %s + append substituents { [FormatStarDate $date]} + } + s { # Seconds from the Posix Epoch + append formatString %s + append substituents { [dict get $date seconds]} + } + S { # Second of the minute, with + # leading zero + append formatString %02d + append substituents \ + { [expr { [dict get $date localSeconds] + % 60 }]} + } + t { # A literal tab character + append formatString \t + } + u { # Day of the week (1-Monday, 7-Sunday) + append formatString %1d + append substituents { [dict get $date dayOfWeek]} + } + U { # Week of the year (00-53). The + # first Sunday of the year is the + # first day of week 01 + append formatString %02d + append preFormatCode { + set dow [dict get $date dayOfWeek] + if { $dow == 7 } { + set dow 0 + } + incr dow + set UweekNumber \ + [expr { ( [dict get $date dayOfYear] + - $dow + 7 ) + / 7 }] + } + append substituents { $UweekNumber} + } + V { # The ISO8601 week number + append formatString %02d + append substituents { [dict get $date iso8601Week]} + } + w { # Day of the week (0-Sunday, + # 6-Saturday) + append formatString %1d + append substituents \ + { [expr { [dict get $date dayOfWeek] % 7 }]} + } + W { # Week of the year (00-53). The first + # Monday of the year is the first day + # of week 01. + append preFormatCode { + set WweekNumber \ + [expr { ( [dict get $date dayOfYear] + - [dict get $date dayOfWeek] + + 7 ) + / 7 }] + } + append formatString %02d + append substituents { $WweekNumber} + } + y { # The two-digit year of the century + append formatString %02d + append substituents \ + { [expr { [dict get $date year] % 100 }]} + } + Y { # The four-digit year + append formatString %04d + append substituents { [dict get $date year]} + } + z { # The time zone as hours and minutes + # east (+) or west (-) of Greenwich + append formatString %s + append substituents { [FormatNumericTimeZone \ + [dict get $date tzOffset]]} + } + Z { # The name of the time zone + append formatString %s + append substituents { [dict get $date tzName]} + } + % { # A literal percent character + append formatString %% + } + default { # An unknown escape sequence + append formatString %% $char + } + } + } + percentE { # Character following %E + set state {} + switch -exact -- $char { + E { + append formatString %s + append substituents { } \ + [string map \ + [list @BCE@ [list [mc BCE]] \ + @CE@ [list [mc CE]]] \ + {[dict get {BCE @BCE@ CE @CE@} \ + [dict get $date era]]}] + } + C { # Locale-dependent era + append formatString %s + append substituents { [dict get $date localeEra]} + } + y { # Locale-dependent year of the era + append preFormatCode { + set y [dict get $date localeYear] + if { $y >= 0 && $y < 100 } { + set Eyear [lindex $localeNumerals $y] + } else { + set Eyear $y + } + } + append formatString %s + append substituents { $Eyear} + } + default { # Unknown %E format group + append formatString %%E $char + } + } + } + percentO { # Character following %O + set state {} + switch -exact -- $char { + d - e { # Day of the month in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [dict get $date dayOfMonth]]} + } + H - k { # Hour of the day in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { [dict get $date localSeconds] + / 3600 + % 24 }]]} + } + I - l { # Hour (12-11) AM/PM in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { ( ( ( [dict get $date localSeconds] + % 86400 ) + + 86400 + - 3600 ) + / 3600 ) + % 12 + 1 }]]} + } + m { # Month number in alternative numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals [dict get $date month]]} + } + M { # Minute of the hour in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { [dict get $date localSeconds] + / 60 + % 60 }]]} + } + S { # Second of the minute in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { [dict get $date localSeconds] + % 60 }]]} + } + u { # Day of the week (Monday=1,Sunday=7) + # in alternative numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [dict get $date dayOfWeek]]} + } + w { # Day of the week (Sunday=0,Saturday=6) + # in alternative numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { [dict get $date dayOfWeek] % 7 }]]} + } + y { # Year of the century in alternative + # numerals + append formatString %s + append substituents \ + { [lindex $localeNumerals \ + [expr { [dict get $date year] % 100 }]]} + } + default { # Unknown format group + append formatString %%O $char + } + } + } + } + } + + # Clean up any improperly terminated groups + + switch -exact -- $state { + percent { + append formatString %% + } + percentE { + append retval %%E + } + percentO { + append retval %%O + } + } + + proc $procName {clockval timezone} " + $preFormatCode + return \[::format [list $formatString] $substituents\] + " + + # puts [list $procName [info args $procName] [info body $procName]] + + return $procName +} + +#---------------------------------------------------------------------- +# +# clock scan -- +# +# Inputs a count of seconds since the Posix Epoch as a time +# of day. +# +# The 'clock format' command scans times of day on input. +# Refer to the user documentation to see what it does. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::scan { args } { + + set format {} + + # Check the count of args + + if { [llength $args] < 1 || [llength $args] % 2 != 1 } { + set cmdName "clock scan" + return -code error \ + -errorcode [list CLOCK wrongNumArgs] \ + "wrong \# args: should be\ + \"$cmdName string\ + ?-base seconds?\ + ?-format string? ?-gmt boolean?\ + ?-locale LOCALE? ?-timezone ZONE?\"" + } + + # Set defaults + + set base [clock seconds] + set string [lindex $args 0] + set format {} + set gmt 0 + set locale C + set timezone [GetSystemTimeZone] + + # Pick up command line options. + + foreach { flag value } [lreplace $args 0 0] { + set saw($flag) {} + switch -exact -- $flag { + -b - -ba - -bas - -base { + set base $value + } + -f - -fo - -for - -form - -forma - -format { + set format $value + } + -g - -gm - -gmt { + set gmt $value + } + -l - -lo - -loc - -loca - -local - -locale { + set locale $value + } + -t - -ti - -tim - -time - -timez - -timezo - -timezon - -timezone { + set timezone $value + } + default { + return -code error \ + -errorcode [list CLOCK badSwitch $flag] \ + "bad switch \"$flag\",\ + must be -base, -format, -gmt, -locale or -timezone" + } + } + } + + # Check options for validity + + if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } { + return -code error \ + -errorcode [list CLOCK gmtWithTimezone] \ + "cannot use -gmt and -timezone in same call" + } + if { [catch { expr { wide($base) } } result] } { + return -code error \ + "expected integer but got \"$base\"" + } + if { ![string is boolean $gmt] } { + return -code error \ + "expected boolean value but got \"$gmt\"" + } else { + if { $gmt } { + set timezone :GMT + } + } + + if { ![info exists saw(-format)] } { + # Perhaps someday we'll localize the legacy code. Right now, + # it's not localized. + if { [info exists saw(-locale)] } { + return -code error \ + -errorcode [list CLOCK flagWithLegacyFormat] \ + "legacy \[clock scan\] does not support -locale" + + } + return [FreeScan $string $base $timezone $locale] + } + + # Change locale if a fresh locale has been given on the command line. + + EnterLocale $locale oldLocale + + set status [catch { + + # Map away the locale-dependent composite format groups + + set scanner [ParseClockScanFormat $format $locale] + $scanner $string $base $timezone + + } result opts] + + # Restore the locale + + if { [info exists oldLocale] } { + mclocale $oldLocale + } + + if { $status == 1 } { + if { [lindex [dict get $opts -errorcode] 0] eq {clock} } { + return -code error $result + } else { + return -options $opts $result + } + } else { + return $result + } + +} + +#---------------------------------------------------------------------- +# +# FreeScan -- +# +# Scans a time in free format +# +# Parameters: +# string - String containing the time to scan +# base - Base time, expressed in seconds from the Epoch +# timezone - Default time zone in which the time will be expressed +# locale - (Unused) Name of the locale where the time will be scanned. +# +# Results: +# Returns the date and time extracted from the string in seconds +# from the epoch +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::FreeScan { string base timezone locale } { + + variable TZData + + # Get the data for time changes in the given zone + + if {[catch {SetupTimeZone $timezone} retval opts]} { + dict unset opts -errorinfo + return -options $opts $retval + } + + # Extract year, month and day from the base time for the + # parser to use as defaults + + set date [GetDateFields \ + $base \ + $TZData($timezone) \ + 2361222] + dict set date secondOfDay [expr { [dict get $date localSeconds] + % 86400 }] + + # Parse the date. The parser will return a list comprising + # date, time, time zone, relative month/day/seconds, relative + # weekday, ordinal month. + + set status [catch { + Oldscan $string \ + [dict get $date year] \ + [dict get $date month] \ + [dict get $date dayOfMonth] + } result] + if { $status != 0 } { + return -code error "unable to convert date-time string \"$string\"" + } + + foreach { parseDate parseTime parseZone parseRel + parseWeekday parseOrdinalMonth } $result break + + # If the caller supplied a date in the string, update the 'date' dict + # with the value. If the caller didn't specify a time with the date, + # default to midnight. + + if { [llength $parseDate] > 0 } { + foreach { y m d } $parseDate break + if { $y < 100 } { + if { $y >= 39 } { + incr y 1900 + } else { + incr y 2000 + } + } + dict set date era CE + dict set date year $y + dict set date month $m + dict set date dayOfMonth $d + if { $parseTime eq {} } { + set parseTime 0 + } + } + + # If the caller supplied a time zone in the string, it comes back + # as a two-element list; the first element is the number of minutes + # east of Greenwich, and the second is a Daylight Saving Time + # indicator ( 1 == yes, 0 == no, -1 == unknown ). We make it into + # a time zone indicator of +-hhmm. + + if { [llength $parseZone] > 0 } { + foreach { minEast dstFlag } $parseZone break + set timezone [FormatNumericTimeZone \ + [expr { 60 * $minEast + 3600 * $dstFlag }]] + SetupTimeZone $timezone + } + dict set date tzName $timezone + + # Assemble date, time, zone into seconds-from-epoch + + set date [GetJulianDayFromEraYearMonthDay $date[set date {}] 2361222] + if { $parseTime ne {} } { + dict set date secondOfDay $parseTime + } elseif { [llength $parseWeekday] != 0 + || [llength $parseOrdinalMonth] != 0 + || ( [llength $parseRel] != 0 + && ( [lindex $parseRel 0] != 0 + || [lindex $parseRel 1] != 0 ) ) } { + dict set date secondOfDay 0 + } + + dict set date localSeconds \ + [expr { -210866803200 + + ( 86400 * wide([dict get $date julianDay]) ) + + [dict get $date secondOfDay] }] + dict set date tzName $timezone + set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) 2361222] + set seconds [dict get $date seconds] + + # Do relative times + + if { [llength $parseRel] > 0 } { + foreach { relMonth relDay relSecond } $parseRel break + set seconds [add $seconds \ + $relMonth months $relDay days $relSecond seconds \ + -timezone $timezone -locale $locale] + } + + # Do relative weekday + + if { [llength $parseWeekday] > 0 } { + + foreach {dayOrdinal dayOfWeek} $parseWeekday break + set date2 [GetDateFields $seconds $TZData($timezone) 2361222] + dict set date2 era CE + set jdwkday [WeekdayOnOrBefore $dayOfWeek \ + [expr { [dict get $date2 julianDay] + + 6 }]] + incr jdwkday [expr { 7 * $dayOrdinal }] + if { $dayOrdinal > 0 } { + incr jdwkday -7 + } + dict set date2 secondOfDay \ + [expr { [dict get $date2 localSeconds] % 86400 }] + dict set date2 julianDay $jdwkday + dict set date2 localSeconds \ + [expr { -210866803200 + + ( 86400 * wide([dict get $date2 julianDay]) ) + + [dict get $date secondOfDay] }] + dict set date2 tzName $timezone + set date2 [ConvertLocalToUTC $date2[set date2 {}] $TZData($timezone) \ + 2361222] + set seconds [dict get $date2 seconds] + + } + + # Do relative month + + if { [llength $parseOrdinalMonth] > 0 } { + + foreach {monthOrdinal monthNumber} $parseOrdinalMonth break + if { $monthOrdinal > 0 } { + set monthDiff [expr { $monthNumber - [dict get $date month] }] + if { $monthDiff <= 0 } { + incr monthDiff 12 + } + incr monthOrdinal -1 + } else { + set monthDiff [expr { [dict get $date month] - $monthNumber }] + if { $monthDiff >= 0 } { + incr monthDiff -12 + } + incr monthOrdinal + } + set seconds [add $seconds $monthOrdinal years $monthDiff months \ + -timezone $timezone -locale $locale] + + } + + return $seconds +} + + +#---------------------------------------------------------------------- +# +# ParseClockScanFormat -- +# +# Parses a format string given to [clock scan -format] +# +# Parameters: +# formatString - The format being parsed +# locale - The current locale +# +# Results: +# Constructs and returns a procedure that accepts the +# string being scanned, the base time, and the time zone. +# The procedure will either return the scanned time or +# else throw an error that should be rethrown to the caller +# of [clock scan] +# +# Side effects: +# The given procedure is defined in the ::tcl::clock +# namespace. Scan procedures are not deleted once installed. +# +# Why do we parse dates by defining a procedure to parse them? +# The reason is that by doing so, we have one convenient place to +# cache all the information: the regular expressions that match the +# patterns (which will be compiled), the code that assembles the +# date information, everything lands in one place. In this way, +# when a given format is reused at run time, all the information +# of how to apply it is available in a single place. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ParseClockScanFormat {formatString locale} { + + # Check whether the format has been parsed previously, and return + # the existing recognizer if it has. + + set procName [namespace current]::scanproc'$formatString'$locale + if { [namespace which $procName] != {} } { + return $procName + } + + variable DateParseActions + variable TimeParseActions + + # Localize the %x, %X, etc. groups + + set formatString [LocalizeFormat $locale $formatString] + + # Condense whitespace + + regsub -all {[[:space:]]+} $formatString { } formatString + + # Walk through the groups of the format string. In this loop, we + # accumulate: + # - a regular expression that matches the string, + # - the count of capturing brackets in the regexp + # - a set of code that post-processes the fields captured by the regexp, + # - a dictionary whose keys are the names of fields that are present + # in the format string. + + set re {^[[:space:]]*} + set captureCount 0 + set postcode {} + set fieldSet [dict create] + set fieldCount 0 + set postSep {} + set state {} + + foreach c [split $formatString {}] { + switch -exact -- $state { + {} { + if { $c eq "%" } { + set state % + } elseif { $c eq " " } { + append re {[[:space:]]+} + } else { + if { ! [string is alnum $c] } { + append re \\ + } + append re $c + } + } + % { + set state {} + switch -exact -- $c { + % { + append re % + } + { } { + append re "\[\[:space:\]\]*" + } + a - A { # Day of week, in words + set l {} + foreach \ + i {7 1 2 3 4 5 6} \ + abr [mc DAYS_OF_WEEK_ABBREV] \ + full [mc DAYS_OF_WEEK_FULL] { + dict set l [string tolower $abr] $i + dict set l [string tolower $full] $i + incr i + } + foreach { regex lookup } [UniquePrefixRegexp $l] break + append re ( $regex ) + dict set fieldSet dayOfWeek [incr fieldCount] + append postcode "dict set date dayOfWeek \[" \ + "dict get " [list $lookup] " " \ + \[ {string tolower $field} [incr captureCount] \] \ + "\]\n" + } + b - B - h { # Name of month + set i 0 + set l {} + foreach \ + abr [mc MONTHS_ABBREV] \ + full [mc MONTHS_FULL] { + incr i + dict set l [string tolower $abr] $i + dict set l [string tolower $full] $i + } + foreach { regex lookup } [UniquePrefixRegexp $l] break + append re ( $regex ) + dict set fieldSet month [incr fieldCount] + append postcode "dict set date month \[" \ + "dict get " [list $lookup] \ + " " \[ {string tolower $field} \ + [incr captureCount] \] \ + "\]\n" + } + C { # Gregorian century + append re \\s*(\\d\\d?) + dict set fieldSet century [incr fieldCount] + append postcode "dict set date century \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + d - e { # Day of month + append re \\s*(\\d\\d?) + dict set fieldSet dayOfMonth [incr fieldCount] + append postcode "dict set date dayOfMonth \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + E { # Prefix for locale-specific codes + set state %E + } + g { # ISO8601 2-digit year + append re \\s*(\\d\\d) + dict set fieldSet iso8601YearOfCentury \ + [incr fieldCount] + append postcode \ + "dict set date iso8601YearOfCentury \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + G { # ISO8601 4-digit year + append re \\s*(\\d\\d)(\\d\\d) + dict set fieldSet iso8601Century [incr fieldCount] + dict set fieldSet iso8601YearOfCentury \ + [incr fieldCount] + append postcode \ + "dict set date iso8601Century \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" \ + "dict set date iso8601YearOfCentury \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + H - k { # Hour of day + append re \\s*(\\d\\d?) + dict set fieldSet hour [incr fieldCount] + append postcode "dict set date hour \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + I - l { # Hour, AM/PM + append re \\s*(\\d\\d?) + dict set fieldSet hourAMPM [incr fieldCount] + append postcode "dict set date hourAMPM \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + j { # Day of year + append re \\s*(\\d\\d?\\d?) + dict set fieldSet dayOfYear [incr fieldCount] + append postcode "dict set date dayOfYear \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + J { # Julian Day Number + append re \\s*(\\d+) + dict set fieldSet julianDay [incr fieldCount] + append postcode "dict set date julianDay \[" \ + "::scan \$field" [incr captureCount] " %ld" \ + "\]\n" + } + m - N { # Month number + append re \\s*(\\d\\d?) + dict set fieldSet month [incr fieldCount] + append postcode "dict set date month \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + M { # Minute + append re \\s*(\\d\\d?) + dict set fieldSet minute [incr fieldCount] + append postcode "dict set date minute \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + n { # Literal newline + append re \\n + } + O { # Prefix for locale numerics + set state %O + } + p - P { # AM/PM indicator + set l [list [string tolower [mc AM]] 0 \ + [string tolower [mc PM]] 1] + foreach { regex lookup } [UniquePrefixRegexp $l] break + append re ( $regex ) + dict set fieldSet amPmIndicator [incr fieldCount] + append postcode "dict set date amPmIndicator \[" \ + "dict get " [list $lookup] " \[string tolower " \ + "\$field" \ + [incr captureCount] \ + "\]\]\n" + } + Q { # Hi, Jeff! + append re {Stardate\s+([-+]?\d+)(\d\d\d)[.](\d)} + incr captureCount + dict set fieldSet seconds [incr fieldCount] + append postcode {dict set date seconds } \[ \ + {ParseStarDate $field} [incr captureCount] \ + { $field} [incr captureCount] \ + { $field} [incr captureCount] \ + \] \n + } + s { # Seconds from Posix Epoch + # This next case is insanely difficult, + # because it's problematic to determine + # whether the field is actually within + # the range of a wide integer. + append re {\s*([-+]?\d+)} + dict set fieldSet seconds [incr fieldCount] + append postcode {dict set date seconds } \[ \ + {ScanWide $field} [incr captureCount] \] \n + } + S { # Second + append re \\s*(\\d\\d?) + dict set fieldSet second [incr fieldCount] + append postcode "dict set date second \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + t { # Literal tab character + append re \\t + } + u - w { # Day number within week, 0 or 7 == Sun + # 1=Mon, 6=Sat + append re \\s*(\\d) + dict set fieldSet dayOfWeek [incr fieldCount] + append postcode {::scan $field} [incr captureCount] \ + { %d dow} \n \ + { + if { $dow == 0 } { + set dow 7 + } elseif { $dow > 7 } { + return -code error \ + -errorcode [list CLOCK badDayOfWeek] \ + "day of week is greater than 7" + } + dict set date dayOfWeek $dow + } + } + U { # Week of year. The + # first Sunday of the year is the + # first day of week 01. No scan rule + # uses this group. + append re \\s*\\d\\d? + } + V { # Week of ISO8601 year + + append re \\s*(\\d\\d?) + dict set fieldSet iso8601Week [incr fieldCount] + append postcode "dict set date iso8601Week \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + W { # Week of the year (00-53). The first + # Monday of the year is the first day + # of week 01. No scan rule uses this + # group. + append re \\s*\\d\\d? + } + y { # Two-digit Gregorian year + append re \\s*(\\d\\d?) + dict set fieldSet yearOfCentury [incr fieldCount] + append postcode "dict set date yearOfCentury \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + Y { # 4-digit Gregorian year + append re \\s*(\\d\\d)(\\d\\d) + dict set fieldSet century [incr fieldCount] + dict set fieldSet yearOfCentury [incr fieldCount] + append postcode \ + "dict set date century \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" \ + "dict set date yearOfCentury \[" \ + "::scan \$field" [incr captureCount] " %d" \ + "\]\n" + } + z - Z { # Time zone name + append re {(?:([-+]\d\d(?::?\d\d(?::?\d\d)?)?)|([[:alnum:]]{1,4}))} + dict set fieldSet tzName [incr fieldCount] + append postcode \ + {if } \{ { $field} [incr captureCount] \ + { ne "" } \} { } \{ \n \ + {dict set date tzName $field} \ + $captureCount \n \ + \} { else } \{ \n \ + {dict set date tzName } \[ \ + {ConvertLegacyTimeZone $field} \ + [incr captureCount] \] \n \ + \} \n \ + } + % { # Literal percent character + append re % + } + default { + append re % + if { ! [string is alnum $c] } { + append re \\ + } + append re $c + } + } + } + %E { + switch -exact -- $c { + C { # Locale-dependent era + set d {} + foreach triple [mc LOCALE_ERAS] { + foreach {t symbol year} $triple break + dict set d [string tolower $symbol] $year + } + foreach { regex lookup } [UniquePrefixRegexp $d] break + append re (?: $regex ) + } + E { + set l {} + dict set l [string tolower [mc BCE]] BCE + dict set l [string tolower [mc CE]] CE + dict set l b.c.e. BCE + dict set l c.e. CE + dict set l b.c. BCE + dict set l a.d. CE + foreach {regex lookup} [UniquePrefixRegexp $l] break + append re ( $regex ) + dict set fieldSet era [incr fieldCount] + append postcode "dict set date era \["\ + "dict get " [list $lookup] \ + { } \[ {string tolower $field} \ + [incr captureCount] \] \ + "\]\n" + } + y { # Locale-dependent year of the era + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + incr captureCount + } + default { + append re %E + if { ! [string is alnum $c] } { + append re \\ + } + append re $c + } + } + set state {} + } + %O { + switch -exact -- $c { + d - e { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet dayOfMonth [incr fieldCount] + append postcode "dict set date dayOfMonth \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + H - k { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet hour [incr fieldCount] + append postcode "dict set date hour \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + I - l { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet hourAMPM [incr fieldCount] + append postcode "dict set date hourAMPM \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + m { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet month [incr fieldCount] + append postcode "dict set date month \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + M { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet minute [incr fieldCount] + append postcode "dict set date minute \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + S { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet second [incr fieldCount] + append postcode "dict set date second \[" \ + "dict get " [list $lookup] " \$field" \ + [incr captureCount] \ + "\]\n" + } + u - w { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet dayOfWeek [incr fieldCount] + append postcode "set dow \[dict get " [list $lookup] \ + { $field} [incr captureCount] \] \n \ + { + if { $dow == 0 } { + set dow 7 + } elseif { $dow > 7 } { + return -code error \ + -errorcode [list CLOCK badDayOfWeek] \ + "day of week is greater than 7" + } + dict set date dayOfWeek $dow + } + } + y { + foreach {regex lookup} \ + [LocaleNumeralMatcher $locale] break + append re $regex + dict set fieldSet yearOfCentury [incr fieldCount] + append postcode {dict set date yearOfCentury } \[ \ + {dict get } [list $lookup] { $field} \ + [incr captureCount] \] \n + } + default { + append re %O + if { ! [string is alnum $c] } { + append re \\ + } + append re $c + } + } + set state {} + } + } + } + + # Clean up any unfinished format groups + + append re $state \\s*\$ + + # Build the procedure + + set procBody {} + append procBody "variable ::tcl::clock::TZData" \n + append procBody "if \{ !\[ regexp -nocase [list $re] \$string ->" + for { set i 1 } { $i <= $captureCount } { incr i } { + append procBody " " field $i + } + append procBody "\] \} \{" \n + append procBody { + return -code error -errorcode [list CLOCK badInputString] \ + {input string does not match supplied format} + } + append procBody \}\n + append procBody "set date \[dict create\]" \n + append procBody {dict set date tzName $timeZone} \n + append procBody $postcode + append procBody [list set changeover [mc GREGORIAN_CHANGE_DATE]] \n + + # Add code that gets Julian Day Number from the fields. + + append procBody [MakeParseCodeFromFields $fieldSet $DateParseActions] + + # Get time of day + + append procBody [MakeParseCodeFromFields $fieldSet $TimeParseActions] + + # Assemble seconds, and convert local nominal time to UTC. + + if { ![dict exists $fieldSet seconds] + && ![dict exists $fieldSet starDate] } { + append procBody { + if { [dict get $date julianDay] > 5373484 } { + return -code error -errorcode [list CLOCK dateTooLarge] \ + "requested date too large to represent" + } + dict set date localSeconds \ + [expr { -210866803200 + + ( 86400 * wide([dict get $date julianDay]) ) + + [dict get $date secondOfDay] }] + } + } + + if { ![dict exists $fieldSet seconds] + && ![dict exists $fieldSet starDate] } { + if { [dict exists $fieldSet tzName] } { + append procBody { + set timeZone [dict get $date tzName] + } + } + append procBody { + ::tcl::clock::SetupTimeZone $timeZone + set date [::tcl::clock::ConvertLocalToUTC $date[set date {}] \ + $TZData($timeZone) \ + $changeover] + } + } + + # Return result + + append procBody {return [dict get $date seconds]} \n + + proc $procName { string baseTime timeZone } $procBody + + # puts [list proc $procName [list string baseTime timeZone] $procBody] + + return $procName +} + +#---------------------------------------------------------------------- +# +# LocaleNumeralMatcher -- +# +# Composes a regexp that captures the numerals in the given +# locale, and a dictionary to map them to conventional numerals. +# +# Parameters: +# locale - Name of the current locale +# +# Results: +# Returns a two-element list comprising the regexp and the +# dictionary. +# +# Side effects: +# Caches the result. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::LocaleNumeralMatcher {l} { + + variable LocaleNumeralCache + + if { ![dict exists $LocaleNumeralCache $l] } { + set d {} + set i 0 + set sep \( + foreach n [mc LOCALE_NUMERALS] { + dict set d $n $i + regsub -all {[^[:alnum:]]} $n \\\\& subex + append re $sep $subex + set sep | + incr i + } + append re \) + dict set LocaleNumeralCache $l [list $re $d] + } + return [dict get $LocaleNumeralCache $l] +} + + + +#---------------------------------------------------------------------- +# +# UniquePrefixRegexp -- +# +# Composes a regexp that performs unique-prefix matching. The +# RE matches one of a supplied set of strings, or any unique +# prefix thereof. +# +# Parameters: +# data - List of alternating match-strings and values. +# Match-strings with distinct values are considered +# distinct. +# +# Results: +# Returns a two-element list. The first is a regexp that +# matches any unique prefix of any of the strings. The second +# is a dictionary whose keys are match values from the regexp +# and whose values are the corresponding values from 'data'. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::UniquePrefixRegexp { data } { + + # The 'successors' dictionary will contain, for each string that + # is a prefix of any key, all characters that may follow that + # prefix. The 'prefixMapping' dictionary will have keys that + # are prefixes of keys and values that correspond to the keys. + + set prefixMapping [dict create] + set successors [dict create {} {}] + + # Walk the key-value pairs + + foreach { key value } $data { + + # Construct all prefixes of the key; + + set prefix {} + foreach char [split $key {}] { + set oldPrefix $prefix + dict set successors $oldPrefix $char {} + append prefix $char + + # Put the prefixes in the 'prefixMapping' and 'successors' + # dictionaries + + dict lappend prefixMapping $prefix $value + if { ![dict exists $successors $prefix] } { + dict set successors $prefix {} + } + } + } + + # Identify those prefixes that designate unique values, and + # those that are the full keys + + set uniquePrefixMapping {} + dict for { key valueList } $prefixMapping { + if { [llength $valueList] == 1 } { + dict set uniquePrefixMapping $key [lindex $valueList 0] + } + } + foreach { key value } $data { + dict set uniquePrefixMapping $key $value + } + + # Construct the re. + + return [list \ + [MakeUniquePrefixRegexp $successors $uniquePrefixMapping {}] \ + $uniquePrefixMapping] +} + +#---------------------------------------------------------------------- +# +# MakeUniquePrefixRegexp -- +# +# Service procedure for 'UniquePrefixRegexp' that constructs +# a regular expresison that matches the unique prefixes. +# +# Parameters: +# successors - Dictionary whose keys are all prefixes +# of keys passed to 'UniquePrefixRegexp' and whose +# values are dictionaries whose keys are the characters +# that may follow those prefixes. +# uniquePrefixMapping - Dictionary whose keys are the unique +# prefixes and whose values are not examined. +# prefixString - Current prefix being processed. +# +# Results: +# Returns a constructed regular expression that matches the set +# of unique prefixes beginning with the 'prefixString'. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::MakeUniquePrefixRegexp { successors + uniquePrefixMapping + prefixString } { + + # Get the characters that may follow the current prefix string + + set schars [lsort -ascii [dict keys [dict get $successors $prefixString]]] + if { [llength $schars] == 0 } { + return {} + } + + # If there is more than one successor character, or if the current + # prefix is a unique prefix, surround the generated re with non-capturing + # parentheses. + + set re {} + if { [dict exists $uniquePrefixMapping $prefixString] + || [llength $schars] > 1 } { + append re "(?:" + } + + # Generate a regexp that matches the successors. + + set sep "" + foreach { c } $schars { + set nextPrefix $prefixString$c + regsub -all {[^[:alnum:]]} $c \\\\& rechar + append re $sep $rechar \ + [MakeUniquePrefixRegexp \ + $successors $uniquePrefixMapping $nextPrefix] + set sep | + } + + # If the current prefix is a unique prefix, make all following text + # optional. Otherwise, if there is more than one successor character, + # close the non-capturing parentheses. + + if { [dict exists $uniquePrefixMapping $prefixString] } { + append re ")?" + } elseif { [llength $schars] > 1 } { + append re ")" + } + + return $re +} + +#---------------------------------------------------------------------- +# +# MakeParseCodeFromFields -- +# +# Composes Tcl code to extract the Julian Day Number from a +# dictionary containing date fields. +# +# Parameters: +# dateFields -- Dictionary whose keys are fields of the date, +# and whose values are the rightmost positions +# at which those fields appear. +# parseActions -- List of triples: field set, priority, and +# code to emit. Smaller priorities are better, and +# the list must be in ascending order by priority +# +# Results: +# Returns a burst of code that extracts the day number from the +# given date. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::MakeParseCodeFromFields { dateFields parseActions } { + + set currPrio 999 + set currFieldPos [list] + set currCodeBurst { + error "in ::tcl::clock::MakeParseCodeFromFields: can't happen" + } + + foreach { fieldSet prio parseAction } $parseActions { + + # If we've found an answer that's better than any that follow, + # quit now. + + if { $prio > $currPrio } { + break + } + + # Accumulate the field positions that are used in the current + # field grouping. + + set fieldPos [list] + set ok true + foreach field $fieldSet { + if { ! [dict exists $dateFields $field] } { + set ok 0 + break + } + lappend fieldPos [dict get $dateFields $field] + } + + # Quit if we don't have a complete set of fields + if { !$ok } { + continue + } + + # Determine whether the current answer is better than the last. + + set fPos [lsort -integer -decreasing $fieldPos] + + if { $prio == $currPrio } { + foreach currPos $currFieldPos newPos $fPos { + if { ![string is integer $newPos] + || ![string is integer $currPos] + || $newPos > $currPos } { + break + } + if { $newPos < $currPos } { + set ok 0 + break + } + } + } + if { !$ok } { + continue + } + + # Remember the best possibility for extracting date information + + set currPrio $prio + set currFieldPos $fPos + set currCodeBurst $parseAction + + } + + return $currCodeBurst + +} + +#---------------------------------------------------------------------- +# +# EnterLocale -- +# +# Switch [mclocale] to a given locale if necessary +# +# Parameters: +# locale -- Desired locale +# oldLocaleVar -- Name of a variable in caller's scope that +# tracks the previous locale name. +# +# Results: +# Returns the locale that was previously current. +# +# Side effects: +# Does [mclocale]. If necessary, uses [mcload] to load the +# designated locale's files, and tracks that it has done so +# in the 'McLoaded' variable. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::EnterLocale { locale oldLocaleVar } { + + upvar 1 $oldLocaleVar oldLocale + + variable MsgDir + variable McLoaded + + set oldLocale [mclocale] + if { $locale eq {system} } { + + if { $::tcl_platform(platform) ne {windows} } { + + # On a non-windows platform, the 'system' locale is + # the same as the 'current' locale + + set locale current + } else { + + # On a windows platform, the 'system' locale is + # adapted from the 'current' locale by applying the + # date and time formats from the Control Panel. + # First, load the 'current' locale if it's not yet loaded + + if {![dict exists $McLoaded $oldLocale] } { + mcload $MsgDir + dict set McLoaded $oldLocale {} + } + + # Make a new locale string for the system locale, and + # get the Control Panel information + + set locale ${oldLocale}_windows + if { ![dict exists $McLoaded $locale] } { + LoadWindowsDateTimeFormats $locale + dict set mcloaded $locale {} + } + } + } + if { $locale eq {current}} { + set locale $oldLocale + unset oldLocale + } elseif { $locale eq $oldLocale } { + unset oldLocale + } else { + mclocale $locale + } + if { ![dict exists $McLoaded $locale] } { + mcload $MsgDir + dict set McLoaded $locale {} + } + +} + +#---------------------------------------------------------------------- +# +# LoadWindowsDateTimeFormats -- +# +# Load the date/time formats from the Control Panel in Windows +# and convert them so that they're usable by Tcl. +# +# Parameters: +# locale - Name of the locale in whose message catalog +# the converted formats are to be stored. +# +# Results: +# None. +# +# Side effects: +# Updates the given message catalog with the locale strings. +# +# Presumes that on entry, [mclocale] is set to the current locale, +# so that default strings can be obtained if the Registry query +# fails. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::LoadWindowsDateTimeFormats { locale } { + + # Bail out if we can't find the Registry + + variable NoRegistry + if { [info exists NoRegistry] } return + + if { ![catch { + registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ + sShortDate + } string] } { + set quote {} + set datefmt {} + foreach { unquoted quoted } [split $string '] { + append datefmt $quote [string map { + dddd %A + ddd %a + dd %d + d %e + MMMM %B + MMM %b + MM %m + M %N + yyyy %Y + yy %y + y %y + gg {} + } $unquoted] + if { $quoted eq {} } { + set quote ' + } else { + set quote $quoted + } + } + ::msgcat::mcset $locale DATE_FORMAT $datefmt + } + + if { ![catch { + registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ + sLongDate + } string] } { + set quote {} + set ldatefmt {} + foreach { unquoted quoted } [split $string '] { + append ldatefmt $quote [string map { + dddd %A + ddd %a + dd %d + d %e + MMMM %B + MMM %b + MM %m + M %N + yyyy %Y + yy %y + y %y + gg {} + } $unquoted] + if { $quoted eq {} } { + set quote ' + } else { + set quote $quoted + } + } + ::msgcat::mcset $locale LOCALE_DATE_FORMAT $ldatefmt + } + + if { ![catch { + registry get "HKEY_CURRENT_USER\\Control Panel\\International" \ + sTimeFormat + } string] } { + set quote {} + set timefmt {} + foreach { unquoted quoted } [split $string '] { + append timefmt $quote [string map { + HH %H + H %k + hh %I + h %l + mm %M + m %M + ss %S + s %S + tt %p + t %p + } $unquoted] + if { $quoted eq {} } { + set quote ' + } else { + set quote $quoted + } + } + ::msgcat::mcset $locale TIME_FORMAT $timefmt + } + + catch { + ::msgcat::mcset $locale DATE_TIME_FORMAT "$datefmt $timefmt" + } + catch { + ::msgcat::mcset $locale LOCALE_DATE_TIME_FORMAT "$ldatefmt $timefmt" + } + + return + +} + +#---------------------------------------------------------------------- +# +# LocalizeFormat -- +# +# Map away locale-dependent format groups in a clock format. +# +# Parameters: +# locale -- Current [mclocale] locale, supplied to avoid +# an extra call +# format -- Format supplied to [clock scan] or [clock format] +# +# Results: +# Returns the string with locale-dependent composite format +# groups substituted out. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::LocalizeFormat { locale format } { + + variable McLoaded + + if { [dict exists $McLoaded $locale FORMAT $format] } { + return [dict get $McLoaded $locale FORMAT $format] + } + set inFormat $format + + # Handle locale-dependent format groups by mapping them out of + # the input string. Note that the order of the [string map] + # operations is significant because earlier formats can refer + # to later ones; for example %c can refer to %X, which in turn + # can refer to %T. + + set format [string map [list %c [mc DATE_TIME_FORMAT] \ + %Ec [mc LOCALE_DATE_TIME_FORMAT]] $format] + set format [string map [list %x [mc DATE_FORMAT] \ + %Ex [mc LOCALE_DATE_FORMAT] \ + %X [mc TIME_FORMAT] \ + %EX [mc LOCALE_TIME_FORMAT]] $format] + set format [string map [list %r [mc TIME_FORMAT_12] \ + %R [mc TIME_FORMAT_24] \ + %T [mc TIME_FORMAT_24_SECS]] $format] + set format [string map [list %D %m/%d/%Y \ + %EY [mc LOCALE_YEAR_FORMAT]\ + %+ {%a %b %e %H:%M:%S %Z %Y}] $format] + + dict set McLoaded $locale FORMAT $format $inFormat + return $format +} + +#---------------------------------------------------------------------- +# +# FormatNumericTimeZone -- +# +# Formats a time zone as +hhmmss +# +# Parameters: +# z - Time zone in seconds east of Greenwich +# +# Results: +# Returns the time zone formatted in a numeric form +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::FormatNumericTimeZone { z } { + + if { $z < 0 } { + set z [expr { - $z }] + set retval - + } else { + set retval + + } + append retval [::format %02d [expr { $z / 3600 }]] + set z [expr { $z % 3600 }] + append retval [::format %02d [expr { $z / 60 }]] + set z [expr { $z % 60 }] + if { $z != 0 } { + append retval [::format %02d $z] + } + return $retval + +} + +#---------------------------------------------------------------------- +# +# FormatStarDate -- +# +# Formats a date as a StarDate. +# +# Parameters: +# date - Dictionary containing 'year', 'dayOfYear', and +# 'localSeconds' fields. +# +# Results: +# Returns the given date formatted as a StarDate. +# +# Side effects: +# None. +# +# Jeff Hobbs put this in to support an atrocious pun about Tcl being +# "Enterprise ready." Now we're stuck with it. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::FormatStarDate { date } { + + variable Roddenberry + + # Get day of year, zero based + + set doy [expr { [dict get $date dayOfYear] - 1 }] + + # Determine whether the year is a leap year + + set lp [IsGregorianLeapYear $date] + + # Convert day of year to a fractional year + + if { $lp } { + set fractYear [expr { 1000 * $doy / 366 }] + } else { + set fractYear [expr { 1000 * $doy / 365 }] + } + + # Put together the StarDate + + return [::format "Stardate %02d%03d.%1d" \ + [expr { [dict get $date year] - $Roddenberry }] \ + $fractYear \ + [expr { [dict get $date localSeconds] % 86400 + / ( 86400 / 10 ) }]] +} + +#---------------------------------------------------------------------- +# +# ParseStarDate -- +# +# Parses a StarDate +# +# Parameters: +# year - Year from the Roddenberry epoch +# fractYear - Fraction of a year specifiying the day of year. +# fractDay - Fraction of a day +# +# Results: +# Returns a count of seconds from the Posix epoch. +# +# Side effects: +# None. +# +# Jeff Hobbs put this in to support an atrocious pun about Tcl being +# "Enterprise ready." Now we're stuck with it. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ParseStarDate { year fractYear fractDay } { + + variable Roddenberry + + # Build a tentative date from year and fraction. + + set date [dict create \ + gregorian 1 \ + era CE \ + year [expr { $year + $Roddenberry }] \ + dayOfYear [expr { $fractYear * 365 / 1000 + 1 }]] + set date [GetJulianDayFromGregorianEraYearDay $date[set date {}]] + + # Determine whether the given year is a leap year + + set lp [IsGregorianLeapYear $date] + + # Reconvert the fractional year according to whether the given + # year is a leap year + + if { $lp } { + dict set date dayOfYear \ + [expr { $fractYear * 366 / 1000 + 1 }] + } else { + dict set date dayOfYear \ + [expr { $fractYear * 365 / 1000 + 1 }] + } + dict unset date julianDay + dict unset date gregorian + set date [GetJulianDayFromGregorianEraYearDay $date[set date {}]] + + return [expr { 86400 * [dict get $date julianDay] + - 210866803200 + + ( 86400 / 10 ) * $fractDay }] + +} + +#---------------------------------------------------------------------- +# +# ScanWide -- +# +# Scans a wide integer from an input +# +# Parameters: +# str - String containing a decimal wide integer +# +# Results: +# Returns the string as a pure wide integer. Throws an error if +# the string is misformatted or out of range. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ScanWide { str } { + set count [::scan $str {%ld %c} result junk] + if { $count != 1 } { + return -code error -errorcode [list CLOCK notAnInteger $str] \ + "\"$str\" is not an integer" + } + if { [incr result 0] != $str } { + return -code error -errorcode [list CLOCK integervalueTooLarge] \ + "integer value too large to represent" + } + return $result +} + +#---------------------------------------------------------------------- +# +# InterpretTwoDigitYear -- +# +# Given a date that contains only the year of the century, +# determines the target value of a two-digit year. +# +# Parameters: +# date - Dictionary containing fields of the date. +# baseTime - Base time relative to which the date is expressed. +# twoDigitField - Name of the field that stores the two-digit year. +# Default is 'yearOfCentury' +# fourDigitField - Name of the field that will receive the four-digit +# year. Default is 'year' +# +# Results: +# Returns the dictionary augmented with the four-digit year, stored in +# the given key. +# +# Side effects: +# None. +# +# The current rule for interpreting a two-digit year is that the year +# shall be between 1937 and 2037, thus staying within the range of a +# 32-bit signed value for time. This rule may change to a sliding +# window in future versions, so the 'baseTime' parameter (which is +# currently ignored) is provided in the procedure signature. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::InterpretTwoDigitYear { date baseTime + { twoDigitField yearOfCentury } + { fourDigitField year } } { + + set yr [dict get $date $twoDigitField] + if { $yr <= 37 } { + dict set date $fourDigitField [expr { $yr + 2000 }] + } else { + dict set date $fourDigitField [expr { $yr + 1900 }] + } + return $date + +} + +#---------------------------------------------------------------------- +# +# AssignBaseYear -- +# +# Places the number of the current year into a dictionary. +# +# Parameters: +# date - Dictionary value to update +# baseTime - Base time from which to extract the year, expressed +# in seconds from the Posix epoch +# timezone - the time zone in which the date is being scanned +# changeover - the Julian Day on which the Gregorian calendar +# was adopted in the target locale. +# +# Results: +# Returns the dictionary with the current year assigned. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AssignBaseYear { date baseTime timezone changeover } { + + variable TZData + + # Find the Julian Day Number corresponding to the base time, and + # find the Gregorian year corresponding to that Julian Day. + + set date2 [GetDateFields $baseTime $TZData($timezone) $changeover] + + # Store the converted year + + dict set date era [dict get $date2 era] + dict set date year [dict get $date2 year] + + return $date + +} + +#---------------------------------------------------------------------- +# +# AssignBaseIso8601Year -- +# +# Determines the base year in the ISO8601 fiscal calendar. +# +# Parameters: +# date - Dictionary containing the fields of the date that +# is to be augmented with the base year. +# baseTime - Base time expressed in seconds from the Posix epoch. +# timeZone - Target time zone +# changeover - Julian Day of adoption of the Gregorian calendar in +# the target locale. +# +# Results: +# Returns the given date with "iso8601Year" set to the +# base year. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AssignBaseIso8601Year {date baseTime timeZone changeover} { + + variable TZData + + # Find the Julian Day Number corresponding to the base time + + set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] + + # Calculate the ISO8601 date and transfer the year + + dict set date era CE + dict set date iso8601Year [dict get $date2 iso8601Year] + return $date +} + +#---------------------------------------------------------------------- +# +# AssignBaseMonth -- +# +# Places the number of the current year and month into a +# dictionary. +# +# Parameters: +# date - Dictionary value to update +# baseTime - Time from which the year and month are to be +# obtained, expressed in seconds from the Posix epoch. +# timezone - Name of the desired time zone +# changeover - Julian Day on which the Gregorian calendar was adopted. +# +# Results: +# Returns the dictionary with the base year and month assigned. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AssignBaseMonth {date baseTime timezone changeover} { + + variable TZData + + # Find the year and month corresponding to the base time + + set date2 [GetDateFields $baseTime $TZData($timezone) $changeover] + dict set date era [dict get $date2 era] + dict set date year [dict get $date2 year] + dict set date month [dict get $date2 month] + return $date + +} + +#---------------------------------------------------------------------- +# +# AssignBaseWeek -- +# +# Determines the base year and week in the ISO8601 fiscal calendar. +# +# Parameters: +# date - Dictionary containing the fields of the date that +# is to be augmented with the base year and week. +# baseTime - Base time expressed in seconds from the Posix epoch. +# changeover - Julian Day on which the Gregorian calendar was adopted +# in the target locale. +# +# Results: +# Returns the given date with "iso8601Year" set to the +# base year and "iso8601Week" to the week number. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AssignBaseWeek {date baseTime timeZone changeover} { + + variable TZData + + # Find the Julian Day Number corresponding to the base time + + set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] + + # Calculate the ISO8601 date and transfer the year + + dict set date era CE + dict set date iso8601Year [dict get $date2 iso8601Year] + dict set date iso8601Week [dict get $date2 iso8601Week] + return $date +} + +#---------------------------------------------------------------------- +# +# AssignBaseJulianDay -- +# +# Determines the base day for a time-of-day conversion. +# +# Parameters: +# date - Dictionary that is to get the base day +# baseTime - Base time expressed in seconds from the Posix epoch +# changeover - Julian day on which the Gregorian calendar was +# adpoted in the target locale. +# +# Results: +# Returns the given dictionary augmented with a 'julianDay' field +# that contains the base day. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AssignBaseJulianDay { date baseTime timeZone changeover } { + + variable TZData + + # Find the Julian Day Number corresponding to the base time + + set date2 [GetDateFields $baseTime $TZData($timeZone) $changeover] + dict set date julianDay [dict get $date2 julianDay] + + return $date +} + +#---------------------------------------------------------------------- +# +# InterpretHMSP -- +# +# Interprets a time in the form "hh:mm:ss am". +# +# Parameters: +# date -- Dictionary containing "hourAMPM", "minute", "second" +# and "amPmIndicator" fields. +# +# Results: +# Returns the number of seconds from local midnight. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::InterpretHMSP { date } { + + set hr [dict get $date hourAMPM] + if { $hr == 12 } { + set hr 0 + } + if { [dict get $date amPmIndicator] } { + incr hr 12 + } + dict set date hour $hr + return [InterpretHMS $date[set date {}]] + +} + +#---------------------------------------------------------------------- +# +# InterpretHMS -- +# +# Interprets a 24-hour time "hh:mm:ss" +# +# Parameters: +# date -- Dictionary containing the "hour", "minute" and "second" +# fields. +# +# Results: +# Returns the given dictionary augmented with a "secondOfDay" +# field containing the number of seconds from local midnight. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::InterpretHMS { date } { + + return [expr { ( [dict get $date hour] * 60 + + [dict get $date minute] ) * 60 + + [dict get $date second] }] + +} + +#---------------------------------------------------------------------- +# +# GetSystemTimeZone -- +# +# Determines the system time zone, which is the default for the +# 'clock' command if no other zone is supplied. +# +# Parameters: +# None. +# +# Results: +# Returns the system time zone. +# +# Side effects: +# Stores the sustem time zone in the 'CachedSystemTimeZone' +# variable, since determining it may be an expensive process. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::GetSystemTimeZone {} { + + variable CachedSystemTimeZone + variable TimeZoneBad + + if {[set result [getenv TCL_TZ]] ne {}} { + set timezone $result + } elseif {[set result [getenv TZ]] ne {}} { + set timezone $result + } elseif { [info exists CachedSystemTimeZone] } { + set timezone $CachedSystemTimeZone + } elseif { $::tcl_platform(platform) eq {windows} } { + set timezone [GuessWindowsTimeZone] + } elseif { [file exists /etc/localtime] + && ![catch {ReadZoneinfoFile \ + Tcl/Localtime /etc/localtime}] } { + set timezone :Tcl/Localtime + } else { + set timezone :localtime + } + set CachedSystemTimeZone $timezone + if { ![dict exists $TimeZoneBad $timezone] } { + dict set TimeZoneBad $timezone [catch {SetupTimeZone $timezone}] + } + if { [dict get $TimeZoneBad $timezone] } { + return :localtime + } else { + return $timezone + } + +} + +#---------------------------------------------------------------------- +# +# ConvertLegacyTimeZone -- +# +# Given an alphanumeric time zone identifier and the system +# time zone, convert the alphanumeric identifier to an +# unambiguous time zone. +# +# Parameters: +# tzname - Name of the time zone to convert +# +# Results: +# Returns a time zone name corresponding to tzname, but +# in an unambiguous form, generally +hhmm. +# +# This procedure is implemented primarily to allow the parsing of +# RFC822 date/time strings. Processing a time zone name on input +# is not recommended practice, because there is considerable room +# for ambiguity; for instance, is BST Brazilian Standard Time, or +# British Summer Time? +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ConvertLegacyTimeZone { tzname } { + + variable LegacyTimeZone + + set tzname [string tolower $tzname] + if { ![dict exists $LegacyTimeZone $tzname] } { + return -code error -errorcode [list CLOCK badTZName $tzname] \ + "time zone \"$tzname\" not found" + } else { + return [dict get $LegacyTimeZone $tzname] + } + +} + +#---------------------------------------------------------------------- +# +# SetupTimeZone -- +# +# Given the name or specification of a time zone, sets up +# its in-memory data. +# +# Parameters: +# tzname - Name of a time zone +# +# Results: +# Unless the time zone is ':localtime', sets the TZData array +# to contain the lookup table for local<->UTC conversion. +# Returns an error if the time zone cannot be parsed. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::SetupTimeZone { timezone } { + + variable TZData + + if {! [info exists TZData($timezone)] } { + variable MINWIDE + if { $timezone eq {:localtime} } { + + # Nothing to do, we'll convert using the localtime function + + } elseif { [regexp {^([-+])(\d\d)(?::?(\d\d)(?::?(\d\d))?)?} $timezone \ + -> s hh mm ss] } { + + # Make a fixed offset + + ::scan $hh %d hh + if { $mm eq {} } { + set mm 0 + } else { + ::scan $mm %d mm + } + if { $ss eq {} } { + set ss 0 + } else { + ::scan $ss %d ss + } + set offset [expr { ( $hh * 60 + $mm ) * 60 + $ss }] + if { $s eq {-} } { + set offset [expr { - $offset }] + } + set TZData($timezone) [list [list $MINWIDE $offset -1 $timezone]] + + } elseif { [string index $timezone 0] eq {:} } { + + # Convert using a time zone file + + if { + [catch { + LoadTimeZoneFile [string range $timezone 1 end] + }] + && [catch { + LoadZoneinfoFile [string range $timezone 1 end] + }] + } { + return -code error \ + -errorcode [list CLOCK badTimeZone $timezone] \ + "time zone \"$timezone\" not found" + } + + } elseif { ![catch {ParsePosixTimeZone $timezone} tzfields] } { + + # This looks like a POSIX time zone - try to process it + + if { [catch {ProcessPosixTimeZone $tzfields} data opts] } { + if { [lindex [dict get $opts -errorcode] 0] eq {CLOCK} } { + dict unset opts -errorinfo + } + return -options $opts $data + } else { + set TZData($timezone) $data + } + + } else { + + # We couldn't parse this as a POSIX time zone. Try + # again with a time zone file - this time without a colon + + if { [catch { LoadTimeZoneFile $timezone }] + && [catch { ZoneinfoFile $timezone } - opts] } { + dict unset opts -errorinfo + return -options $opts "time zone $timezone not found" + } + set TZData($timezone) $TZData(:$timezone) + } + } + + return +} + +#---------------------------------------------------------------------- +# +# GuessWindowsTimeZone -- +# +# Determines the system time zone on windows. +# +# Parameters: +# None. +# +# Results: +# Returns a time zone specifier that corresponds to the system +# time zone information found in the Registry. +# +# Bugs: +# Fixed dates for DST change are unimplemented at present, because +# no time zone information supplied with Windows actually uses +# them! +# +# On a Windows system where neither $env(TCL_TZ) nor $env(TZ) is +# specified, GuessWindowsTimeZone looks in the Registry for the +# system time zone information. It then attempts to find an entry +# in WinZoneInfo for a time zone that uses the same rules. If +# it finds one, it returns it; otherwise, it constructs a Posix-style +# time zone string and returns that. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::GuessWindowsTimeZone {} { + + variable WinZoneInfo + variable NoRegistry + variable TimeZoneBad + + if { [info exists NoRegistry] } { + return :localtime + } + + # Dredge time zone information out of the registry + + if { [catch { + set rpath HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\TimeZoneInformation + set data [list \ + [expr { -60 + * [registry get $rpath Bias] }] \ + [expr { -60 + * [registry get $rpath StandardBias] }] \ + [expr { -60 \ + * [registry get $rpath DaylightBias] }]] + set stdtzi [registry get $rpath StandardStart] + foreach ind {0 2 14 4 6 8 10 12} { + binary scan $stdtzi @${ind}s val + lappend data $val + } + set daytzi [registry get $rpath DaylightStart] + foreach ind {0 2 14 4 6 8 10 12} { + binary scan $daytzi @${ind}s val + lappend data $val + } + }] } { + + # Missing values in the Registry - bail out + + return :localtime + } + + # Make up a Posix time zone specifier if we can't find one. + # Check here that the tzdata file exists, in case we're running + # in an environment (e.g. starpack) where tzdata is incomplete. + # (Bug 1237907) + + if { [dict exists $WinZoneInfo $data] } { + set tzname [dict get $WinZoneInfo $data] + if { ! [dict exists $TimeZoneBad $tzname] } { + dict set TimeZoneBad $tzname [catch {SetupTimeZone $tzname}] + } + } else { + set tzname {} + } + if { $tzname eq {} || [dict get $TimeZoneBad $tzname] } { + foreach { + bias stdBias dstBias + stdYear stdMonth stdDayOfWeek stdDayOfMonth + stdHour stdMinute stdSecond stdMillisec + dstYear dstMonth dstDayOfWeek dstDayOfMonth + dstHour dstMinute dstSecond dstMillisec + } $data break + set stdDelta [expr { $bias + $stdBias }] + set dstDelta [expr { $bias + $dstBias }] + if { $stdDelta <= 0 } { + set stdSignum + + set stdDelta [expr { - $stdDelta }] + set dispStdSignum - + } else { + set stdSignum - + set dispStdSignum + + } + set hh [::format %02d [expr { $stdDelta / 3600 }]] + set mm [::format %02d [expr { ($stdDelta / 60 ) % 60 }]] + set ss [::format %02d [expr { $stdDelta % 60 }]] + set tzname {} + append tzname < $dispStdSignum $hh $mm > $stdSignum $hh : $mm : $ss + if { $stdMonth >= 0 } { + if { $dstDelta <= 0 } { + set dstSignum + + set dstDelta [expr { - $dstDelta }] + set dispDstSignum - + } else { + set dstSignum - + set dispDstSignum + + } + set hh [::format %02d [expr { $dstDelta / 3600 }]] + set mm [::format %02d [expr { ($dstDelta / 60 ) % 60 }]] + set ss [::format %02d [expr { $dstDelta % 60 }]] + append tzname < $dispDstSignum $hh $mm > $dstSignum $hh : $mm : $ss + if { $dstYear == 0 } { + append tzname ,M $dstMonth . $dstDayOfMonth . $dstDayOfWeek + } else { + # I have not been able to find any locale on which + # Windows converts time zone on a fixed day of the year, + # hence don't know how to interpret the fields. + # If someone can inform me, I'd be glad to code it up. + # For right now, we bail out in such a case. + return :localtime + } + append tzname / [::format %02d $dstHour] \ + : [::format %02d $dstMinute] \ + : [::format %02d $dstSecond] + if { $stdYear == 0 } { + append tzname ,M $stdMonth . $stdDayOfMonth . $stdDayOfWeek + } else { + # I have not been able to find any locale on which + # Windows converts time zone on a fixed day of the year, + # hence don't know how to interpret the fields. + # If someone can inform me, I'd be glad to code it up. + # For right now, we bail out in such a case. + return :localtime + } + append tzname / [::format %02d $stdHour] \ + : [::format %02d $stdMinute] \ + : [::format %02d $stdSecond] + } + dict set WinZoneInfo $data $tzname + } + + return [dict get $WinZoneInfo $data] + +} + +#---------------------------------------------------------------------- +# +# LoadTimeZoneFile -- +# +# Load the data file that specifies the conversion between a +# given time zone and Greenwich. +# +# Parameters: +# fileName -- Name of the file to load +# +# Results: +# None. +# +# Side effects: +# TZData(:fileName) contains the time zone data +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::LoadTimeZoneFile { fileName } { + variable DataDir + variable TZData + + if { [info exists TZData($fileName)] } { + return + } + + # Since an unsafe interp uses the [clock] command in the master, + # this code is security sensitive. Make sure that the path name + # cannot escape the given directory. + + if { ![regexp {^[[.-.][:alpha:]_]+(?:/[[.-.][:alpha:]_]+)*$} $fileName] } { + return -code error \ + -errorcode [list CLOCK badTimeZone $:fileName] \ + "time zone \":$fileName\" not valid" + } + if { [catch { + source -encoding utf-8 [file join $DataDir $fileName] + }] } { + return -code error \ + -errorcode [list CLOCK badTimeZone :$fileName] \ + "time zone \":$fileName\" not found" + } + return +} + +#---------------------------------------------------------------------- +# +# LoadZoneinfoFile -- +# +# Loads a binary time zone information file in Olson format. +# +# Parameters: +# fileName - Relative path name of the file to load. +# +# Results: +# Returns an empty result normally; returns an error if no +# Olson file was found or the file was malformed in some way. +# +# Side effects: +# TZData(:fileName) contains the time zone data +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::LoadZoneinfoFile { fileName } { + + variable ZoneinfoPaths + + # Since an unsafe interp uses the [clock] command in the master, + # this code is security sensitive. Make sure that the path name + # cannot escape the given directory. + + if { ![regexp {^[[.-.][:alpha:]_]+(?:/[[.-.][:alpha:]_]+)*$} $fileName] } { + return -code error \ + -errorcode [list CLOCK badTimeZone $:fileName] \ + "time zone \":$fileName\" not valid" + } + foreach d $ZoneinfoPaths { + set fname [file join $d $fileName] + if { [file readable $fname] && [file isfile $fname] } { + break + } + unset fname + } + ReadZoneinfoFile $fileName $fname +} + +#---------------------------------------------------------------------- +# +# ReadZoneinfoFile -- +# +# Loads a binary time zone information file in Olson format. +# +# Parameters: +# fileName - Name of the time zone (relative path name of the +# file). +# fname - Absolute path name of the file. +# +# Results: +# Returns an empty result normally; returns an error if no +# Olson file was found or the file was malformed in some way. +# +# Side effects: +# TZData(:fileName) contains the time zone data +# +#---------------------------------------------------------------------- + + +proc ::tcl::clock::ReadZoneinfoFile {fileName fname} { + variable MINWIDE + variable TZData + if { ![info exists fname] } { + return -code error "$fileName not found" + } + + if { [file size $fname] > 262144 } { + return -code error "$fileName too big" + } + + # Suck in all the data from the file + + set f [open $fname r] + fconfigure $f -translation binary + set d [read $f] + close $f + + # The file begins with a magic number, sixteen reserved bytes, + # and then six 4-byte integers giving counts of fileds in the file. + + binary scan $d a4a1x15IIIIII \ + magic version nIsGMT nIsStd nLeap nTime nType nChar + set seek 44 + set ilen 4 + set iformat I + if { $magic != {TZif} } { + return -code error "$fileName not a time zone information file" + } + if { $nType > 255 } { + return -code error "$fileName contains too many time types" + } + # Accept only Posix-style zoneinfo. Sorry, 'leaps' bigots. + if { $nLeap != 0 } { + return -code error "$fileName contains leap seconds" + } + + # In a version 2 file, we use the second part of the file, which + # contains 64-bit transition times. + + if {$version eq "2"} { + set seek [expr {44 + + 5 * $nTime + + 6 * $nType + + 4 * $nLeap + + $nIsStd + + $nIsGMT + + $nChar + }] + binary scan $d @${seek}a4a1x15IIIIII \ + magic version nIsGMT nIsStd nLeap nTime nType nChar + if {$magic ne {TZif}} { + return -code error "seek address $seek miscomputed, magic = $magic" + } + set iformat W + set ilen 8 + incr seek 44 + } + + # Next come ${nTime} transition times, followed by ${nTime} time type + # codes. The type codes are unsigned 1-byte quantities. We insert an + # arbitrary start time in front of the transitions. + + binary scan $d @${seek}${iformat}${nTime}c${nTime} times tempCodes + incr seek [expr { ($ilen + 1) * $nTime }] + set times [linsert $times 0 $MINWIDE] + set codes {} + foreach c $tempCodes { + lappend codes [expr { $c & 0xff }] + } + set codes [linsert $codes 0 0] + + # Next come ${nType} time type descriptions, each of which has an + # offset (seconds east of GMT), a DST indicator, and an index into + # the abbreviation text. + + for { set i 0 } { $i < $nType } { incr i } { + binary scan $d @${seek}Icc gmtOff isDst abbrInd + lappend types [list $gmtOff $isDst $abbrInd] + incr seek 6 + } + + # Next come $nChar characters of time zone name abbreviations, + # which are null-terminated. + # We build them up into a dictionary indexed by character index, + # because that's what's in the indices above. + + binary scan $d @${seek}a${nChar} abbrs + incr seek ${nChar} + set abbrList [split $abbrs \0] + set i 0 + set abbrevs {} + foreach a $abbrList { + dict set abbrevs $i $a + incr i [expr { [string length $a] + 1 }] + } + + # Package up a list of tuples, each of which contains transition time, + # seconds east of Greenwich, DST flag and time zone abbreviation. + + set r {} + set lastTime $MINWIDE + foreach t $times c $codes { + if { $t < $lastTime } { + return -code error "$fileName has times out of order" + } + set lastTime $t + foreach { gmtoff isDst abbrInd } [lindex $types $c] break + set abbrev [dict get $abbrevs $abbrInd] + lappend r [list $t $gmtoff $isDst $abbrev] + } + + # In a version 2 file, there is also a POSIX-style time zone description + # at the very end of the file. To get to it, skip over + # nLeap leap second values (8 bytes each), + # nIsStd standard/DST indicators and nIsGMT UTC/local indicators. + + if {$version eq {2}} { + set seek [expr {$seek + 8 * $nLeap + $nIsStd + $nIsGMT + 1}] + set last [string first \n $d $seek] + set posix [string range $d $seek [expr {$last-1}]] + if {[llength $posix] > 0} { + set posixFields [ParsePosixTimeZone $posix] + foreach tuple [ProcessPosixTimeZone $posixFields] { + foreach {t gmtoff isDst abbrev} $tuple break + if {$t > $lastTime} { + lappend r $tuple + } + } + } + } + + set TZData(:$fileName) $r + + return +} + +#---------------------------------------------------------------------- +# +# ParsePosixTimeZone -- +# +# Parses the TZ environment variable in Posix form +# +# Parameters: +# tz Time zone specifier to be interpreted +# +# Results: +# Returns a dictionary whose values contain the various pieces of +# the time zone specification. +# +# Side effects: +# None. +# +# Errors: +# Throws an error if the syntax of the time zone is incorrect. +# +# The following keys are present in the dictionary: +# stdName - Name of the time zone when Daylight Saving Time +# is not in effect. +# stdSignum - Sign (+, -, or empty) of the offset from Greenwich +# to the given (non-DST) time zone. + and the empty +# string denote zones west of Greenwich, - denotes east +# of Greenwich; this is contrary to the ISO convention +# but follows Posix. +# stdHours - Hours part of the offset from Greenwich to the given +# (non-DST) time zone. +# stdMinutes - Minutes part of the offset from Greenwich to the +# given (non-DST) time zone. Empty denotes zero. +# stdSeconds - Seconds part of the offset from Greenwich to the +# given (non-DST) time zone. Empty denotes zero. +# dstName - Name of the time zone when DST is in effect, or the +# empty string if the time zone does not observe Daylight +# Saving Time. +# dstSignum, dstHours, dstMinutes, dstSeconds - +# Fields corresponding to stdSignum, stdHours, stdMinutes, +# stdSeconds for the Daylight Saving Time version of the +# time zone. If dstHours is empty, it is presumed to be 1. +# startDayOfYear - The ordinal number of the day of the year on which +# Daylight Saving Time begins. If this field is +# empty, then DST begins on a given month-week-day, +# as below. +# startJ - The letter J, or an empty string. If a J is present in +# this field, then startDayOfYear does not count February 29 +# even in leap years. +# startMonth - The number of the month in which Daylight Saving Time +# begins, supplied if startDayOfYear is empty. If both +# startDayOfYear and startMonth are empty, then US rules +# are presumed. +# startWeekOfMonth - The number of the week in the month in which +# Daylight Saving Time begins, in the range 1-5. +# 5 denotes the last week of the month even in a +# 4-week month. +# startDayOfWeek - The number of the day of the week (Sunday=0, +# Saturday=6) on which Daylight Saving Time begins. +# startHours - The hours part of the time of day at which Daylight +# Saving Time begins. An empty string is presumed to be 2. +# startMinutes - The minutes part of the time of day at which DST begins. +# An empty string is presumed zero. +# startSeconds - The seconds part of the time of day at which DST begins. +# An empty string is presumed zero. +# endDayOfYear, endJ, endMonth, endWeekOfMonth, endDayOfWeek, +# endHours, endMinutes, endSeconds - +# Specify the end of DST in the same way that the start* fields +# specify the beginning of DST. +# +# This procedure serves only to break the time specifier into fields. +# No attempt is made to canonicalize the fields or supply default values. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ParsePosixTimeZone { tz } { + + if {[regexp -expanded -nocase -- { + ^ + # 1 - Standard time zone name + ([[:alpha:]]+ | <[-+[:alnum:]]+>) + # 2 - Standard time zone offset, signum + ([-+]?) + # 3 - Standard time zone offset, hours + ([[:digit:]]{1,2}) + (?: + # 4 - Standard time zone offset, minutes + : ([[:digit:]]{1,2}) + (?: + # 5 - Standard time zone offset, seconds + : ([[:digit:]]{1,2} ) + )? + )? + (?: + # 6 - DST time zone name + ([[:alpha:]]+ | <[-+[:alnum:]]+>) + (?: + (?: + # 7 - DST time zone offset, signum + ([-+]?) + # 8 - DST time zone offset, hours + ([[:digit:]]{1,2}) + (?: + # 9 - DST time zone offset, minutes + : ([[:digit:]]{1,2}) + (?: + # 10 - DST time zone offset, seconds + : ([[:digit:]]{1,2}) + )? + )? + )? + (?: + , + (?: + # 11 - Optional J in n and Jn form 12 - Day of year + ( J ? ) ( [[:digit:]]+ ) + | M + # 13 - Month number 14 - Week of month 15 - Day of week + ( [[:digit:]] + ) + [.] ( [[:digit:]] + ) + [.] ( [[:digit:]] + ) + ) + (?: + # 16 - Start time of DST - hours + / ( [[:digit:]]{1,2} ) + (?: + # 17 - Start time of DST - minutes + : ( [[:digit:]]{1,2} ) + (?: + # 18 - Start time of DST - seconds + : ( [[:digit:]]{1,2} ) + )? + )? + )? + , + (?: + # 19 - Optional J in n and Jn form 20 - Day of year + ( J ? ) ( [[:digit:]]+ ) + | M + # 21 - Month number 22 - Week of month 23 - Day of week + ( [[:digit:]] + ) + [.] ( [[:digit:]] + ) + [.] ( [[:digit:]] + ) + ) + (?: + # 24 - End time of DST - hours + / ( [[:digit:]]{1,2} ) + (?: + # 25 - End time of DST - minutes + : ( [[:digit:]]{1,2} ) + (?: + # 26 - End time of DST - seconds + : ( [[:digit:]]{1,2} ) + )? + )? + )? + )? + )? + )? + $ + } $tz -> x(stdName) x(stdSignum) x(stdHours) x(stdMinutes) x(stdSeconds) \ + x(dstName) x(dstSignum) x(dstHours) x(dstMinutes) x(dstSeconds) \ + x(startJ) x(startDayOfYear) \ + x(startMonth) x(startWeekOfMonth) x(startDayOfWeek) \ + x(startHours) x(startMinutes) x(startSeconds) \ + x(endJ) x(endDayOfYear) \ + x(endMonth) x(endWeekOfMonth) x(endDayOfWeek) \ + x(endHours) x(endMinutes) x(endSeconds)] } { + + # it's a good timezone + + return [array get x] + + } else { + + return -code error\ + -errorcode [list CLOCK badTimeZone $tz] \ + "unable to parse time zone specification \"$tz\"" + + } + +} + +#---------------------------------------------------------------------- +# +# ProcessPosixTimeZone -- +# +# Handle a Posix time zone after it's been broken out into +# fields. +# +# Parameters: +# z - Dictionary returned from 'ParsePosixTimeZone' +# +# Results: +# Returns time zone information for the 'TZData' array. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ProcessPosixTimeZone { z } { + + variable MINWIDE + variable TZData + + # Determine the standard time zone name and seconds east of Greenwich + + set stdName [dict get $z stdName] + if { [string index $stdName 0] eq {<} } { + set stdName [string range $stdName 1 end-1] + } + if { [dict get $z stdSignum] eq {-} } { + set stdSignum +1 + } else { + set stdSignum -1 + } + set stdHours [lindex [::scan [dict get $z stdHours] %d] 0] + if { [dict get $z stdMinutes] ne {} } { + set stdMinutes [lindex [::scan [dict get $z stdMinutes] %d] 0] + } else { + set stdMinutes 0 + } + if { [dict get $z stdSeconds] ne {} } { + set stdSeconds [lindex [::scan [dict get $z stdSeconds] %d] 0] + } else { + set stdSeconds 0 + } + set stdOffset [expr { ( ( $stdHours * 60 + $stdMinutes ) + * 60 + $stdSeconds ) + * $stdSignum }] + set data [list [list $MINWIDE $stdOffset 0 $stdName]] + + # If there's no daylight zone, we're done + + set dstName [dict get $z dstName] + if { $dstName eq {} } { + return $data + } + if { [string index $dstName 0] eq {<} } { + set dstName [string range $dstName 1 end-1] + } + + # Determine the daylight name + + if { [dict get $z dstSignum] eq {-} } { + set dstSignum +1 + } else { + set dstSignum -1 + } + if { [dict get $z dstHours] eq {} } { + set dstOffset [expr { 3600 + $stdOffset }] + } else { + set dstHours [lindex [::scan [dict get $z dstHours] %d] 0] + if { [dict get $z dstMinutes] ne {} } { + set dstMinutes [lindex [::scan [dict get $z dstMinutes] %d] 0] + } else { + set dstMinutes 0 + } + if { [dict get $z dstSeconds] ne {} } { + set dstSeconds [lindex [::scan [dict get $z dstSeconds] %d] 0] + } else { + set dstSeconds 0 + } + set dstOffset [expr { ( ( $dstHours * 60 + $dstMinutes ) + * 60 + $dstSeconds ) + * $dstSignum }] + } + + # Fill in defaults for US DST rules + + if { [dict get $z startDayOfYear] eq {} + && [dict get $z startMonth] eq {} } { + dict set z startMonth 3 + dict set z startWeekOfMonth 2 + dict set z startDayOfWeek 0 + dict set z startHours 2 + dict set z startMinutes 0 + dict set z startSeconds 0 + } + if { [dict get $z endDayOfYear] eq {} + && [dict get $z endMonth] eq {} } { + dict set z endMonth 11 + dict set z endWeekOfMonth 1 + dict set z endDayOfWeek 0 + dict set z endHours 2 + dict set z endMinutes 0 + dict set z endSeconds 0 + } + + # Put DST in effect in all years from 1916 to 2099. + + for { set y 1916 } { $y < 2099 } { incr y } { + set startTime [DeterminePosixDSTTime $z start $y] + incr startTime [expr { - wide($stdOffset) }] + set endTime [DeterminePosixDSTTime $z end $y] + incr endTime [expr { - wide($dstOffset) }] + if { $startTime < $endTime } { + lappend data \ + [list $startTime $dstOffset 1 $dstName] \ + [list $endTime $stdOffset 0 $stdName] + } else { + lappend data \ + [list $endTime $stdOffset 0 $stdName] \ + [list $startTime $dstOffset 1 $dstName] + } + } + + return $data + +} + +#---------------------------------------------------------------------- +# +# DeterminePosixDSTTime -- +# +# Determines the time that Daylight Saving Time starts or ends +# from a Posix time zone specification. +# +# Parameters: +# z - Time zone data returned from ParsePosixTimeZone. +# Missing fields are expected to be filled in with +# default values. +# bound - The word 'start' or 'end' +# y - The year for which the transition time is to be determined. +# +# Results: +# Returns the transition time as a count of seconds from +# the epoch. The time is relative to the wall clock, not UTC. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::DeterminePosixDSTTime { z bound y } { + + variable FEB_28 + + # Determine the start or end day of DST + + set date [dict create era CE year $y] + set doy [dict get $z ${bound}DayOfYear] + if { $doy ne {} } { + + # Time was specified as a day of the year + + if { [dict get $z ${bound}J] ne {} + && [IsGregorianLeapYear $y] + && ( $doy > $FEB_28 ) } { + incr doy + } + dict set date dayOfYear $doy + set date [GetJulianDayFromEraYearDay $date[set date {}] 2361222] + } else { + + # Time was specified as a day of the week within a month + + dict set date month [dict get $z ${bound}Month] + dict set date dayOfWeek [dict get $z ${bound}DayOfWeek] + set dowim [dict get $z ${bound}WeekOfMonth] + if { $dowim >= 5 } { + set dowim -1 + } + dict set date dayOfWeekInMonth $dowim + set date [GetJulianDayFromEraYearMonthWeekDay $date[set date {}] 2361222] + + } + + set jd [dict get $date julianDay] + set seconds [expr { wide($jd) * wide(86400) + - wide(210866803200) }] + + set h [dict get $z ${bound}Hours] + if { $h eq {} } { + set h 2 + } else { + set h [lindex [::scan $h %d] 0] + } + set m [dict get $z ${bound}Minutes] + if { $m eq {} } { + set m 0 + } else { + set m [lindex [::scan $m %d] 0] + } + set s [dict get $z ${bound}Seconds] + if { $s eq {} } { + set s 0 + } else { + set s [lindex [::scan $s %d] 0] + } + set tod [expr { ( $h * 60 + $m ) * 60 + $s }] + return [expr { $seconds + $tod }] + +} + +#---------------------------------------------------------------------- +# +# GetLocaleEra -- +# +# Given local time expressed in seconds from the Posix epoch, +# determine localized era and year within the era. +# +# Parameters: +# date - Dictionary that must contain the keys, 'localSeconds', +# whose value is expressed as the appropriate local time; +# and 'year', whose value is the Gregorian year. +# etable - Value of the LOCALE_ERAS key in the message catalogue +# for the target locale. +# +# Results: +# Returns the dictionary, augmented with the keys, 'localeEra' +# and 'localeYear'. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::GetLocaleEra { date etable } { + + set index [BSearch $etable [dict get $date localSeconds]] + if { $index < 0} { + dict set date localeEra \ + [::format %02d [expr { [dict get $date year] / 100 }]] + dict set date localeYear \ + [expr { [dict get $date year] % 100 }] + } else { + dict set date localeEra [lindex $etable $index 1] + dict set date localeYear [expr { [dict get $date year] + - [lindex $etable $index 2] }] + } + return $date + +} + +#---------------------------------------------------------------------- +# +# GetJulianDayFromEraYearDay -- +# +# Given a year, month and day on the Gregorian calendar, determines +# the Julian Day Number beginning at noon on that date. +# +# Parameters: +# date -- A dictionary in which the 'era', 'year', and +# 'dayOfYear' slots are populated. The calendar in use +# is determined by the date itself relative to: +# changeover -- Julian day on which the Gregorian calendar was +# adopted in the current locale. +# +# Results: +# Returns the given dictionary augmented with a 'julianDay' key +# whose value is the desired Julian Day Number, and a 'gregorian' +# key that specifies whether the calendar is Gregorian (1) or +# Julian (0). +# +# Side effects: +# None. +# +# Bugs: +# This code needs to be moved to the C layer. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::GetJulianDayFromEraYearDay {date changeover} { + + # Get absolute year number from the civil year + + switch -exact -- [dict get $date era] { + BCE { + set year [expr { 1 - [dict get $date year] }] + } + CE { + set year [dict get $date year] + } + } + set ym1 [expr { $year - 1 }] + + # Try the Gregorian calendar first. + + dict set date gregorian 1 + set jd [expr { 1721425 + + [dict get $date dayOfYear] + + ( 365 * $ym1 ) + + ( $ym1 / 4 ) + - ( $ym1 / 100 ) + + ( $ym1 / 400 ) }] + + # If the date is before the Gregorian change, use the Julian calendar. + + if { $jd < $changeover } { + dict set date gregorian 0 + set jd [expr { 1721423 + + [dict get $date dayOfYear] + + ( 365 * $ym1 ) + + ( $ym1 / 4 ) }] + } + + dict set date julianDay $jd + return $date +} + +#---------------------------------------------------------------------- +# +# GetJulianDayFromEraYearMonthWeekDay -- +# +# Determines the Julian Day number corresponding to the nth +# given day-of-the-week in a given month. +# +# Parameters: +# date - Dictionary containing the keys, 'era', 'year', 'month' +# 'weekOfMonth', 'dayOfWeek', and 'dayOfWeekInMonth'. +# changeover - Julian Day of adoption of the Gregorian calendar +# +# Results: +# Returns the given dictionary, augmented with a 'julianDay' key. +# +# Side effects: +# None. +# +# Bugs: +# This code needs to be moved to the C layer. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::GetJulianDayFromEraYearMonthWeekDay {date changeover} { + + # Come up with a reference day; either the zeroeth day of the + # given month (dayOfWeekInMonth >= 0) or the seventh day of the + # following month (dayOfWeekInMonth < 0) + + set date2 $date + set week [dict get $date dayOfWeekInMonth] + if { $week >= 0 } { + dict set date2 dayOfMonth 0 + } else { + dict incr date2 month + dict set date2 dayOfMonth 7 + } + set date2 [GetJulianDayFromEraYearMonthDay $date2[set date2 {}] \ + $changeover] + set wd0 [WeekdayOnOrBefore [dict get $date dayOfWeek] \ + [dict get $date2 julianDay]] + dict set date julianDay [expr { $wd0 + 7 * $week }] + return $date + +} + +#---------------------------------------------------------------------- +# +# IsGregorianLeapYear -- +# +# Determines whether a given date represents a leap year in the +# Gregorian calendar. +# +# Parameters: +# date -- The date to test. The fields, 'era', 'year' and 'gregorian' +# must be set. +# +# Results: +# Returns 1 if the year is a leap year, 0 otherwise. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::IsGregorianLeapYear { date } { + + switch -exact -- [dict get $date era] { + BCE { + set year [expr { 1 - [dict get $date year]}] + } + CE { + set year [dict get $date year] + } + } + if { $year % 4 != 0 } { + return 0 + } elseif { ![dict get $date gregorian] } { + return 1 + } elseif { $year % 400 == 0 } { + return 1 + } elseif { $year % 100 == 0 } { + return 0 + } else { + return 1 + } + +} + +#---------------------------------------------------------------------- +# +# WeekdayOnOrBefore -- +# +# Determine the nearest day of week (given by the 'weekday' +# parameter, Sunday==0) on or before a given Julian Day. +# +# Parameters: +# weekday -- Day of the week +# j -- Julian Day number +# +# Results: +# Returns the Julian Day Number of the desired date. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::WeekdayOnOrBefore { weekday j } { + + set k [expr { ( $weekday + 6 ) % 7 }] + return [expr { $j - ( $j - $k ) % 7 }] + +} + +#---------------------------------------------------------------------- +# +# BSearch -- +# +# Service procedure that does binary search in several places +# inside the 'clock' command. +# +# Parameters: +# list - List of lists, sorted in ascending order by the +# first elements +# key - Value to search for +# +# Results: +# Returns the index of the greatest element in $list that is less +# than or equal to $key. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::BSearch { list key } { + + if {[llength $list] == 0} { + return -1 + } + if { $key < [lindex $list 0 0] } { + return -1 + } + + set l 0 + set u [expr { [llength $list] - 1 }] + + while { $l < $u } { + + # At this point, we know that + # $k >= [lindex $list $l 0] + # Either $u == [llength $list] or else $k < [lindex $list $u+1 0] + # We find the midpoint of the interval {l,u} rounded UP, compare + # against it, and set l or u to maintain the invariant. Note + # that the interval shrinks at each step, guaranteeing convergence. + + set m [expr { ( $l + $u + 1 ) / 2 }] + if { $key >= [lindex $list $m 0] } { + set l $m + } else { + set u [expr { $m - 1 }] + } + } + + return $l +} + +#---------------------------------------------------------------------- +# +# clock add -- +# +# Adds an offset to a given time. +# +# Syntax: +# clock add clockval ?count unit?... ?-option value? +# +# Parameters: +# clockval -- Starting time value +# count -- Amount of a unit of time to add +# unit -- Unit of time to add, must be one of: +# years year months month weeks week +# days day hours hour minutes minute +# seconds second +# +# Options: +# -gmt BOOLEAN +# (Deprecated) Flag synonymous with '-timezone :GMT' +# -timezone ZONE +# Name of the time zone in which calculations are to be done. +# -locale NAME +# Name of the locale in which calculations are to be done. +# Used to determine the Gregorian change date. +# +# Results: +# Returns the given time adjusted by the given offset(s) in +# order. +# +# Notes: +# It is possible that adding a number of months or years will adjust +# the day of the month as well. For instance, the time at +# one month after 31 January is either 28 or 29 February, because +# February has fewer than 31 days. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::add { clockval args } { + + if { [llength $args] % 2 != 0 } { + set cmdName "clock add" + return -code error \ + -errorcode [list CLOCK wrongNumArgs] \ + "wrong \# args: should be\ + \"$cmdName clockval ?number units?...\ + ?-gmt boolean? ?-locale LOCALE? ?-timezone ZONE?\"" + } + if { [catch { expr {wide($clockval)} } result] } { + return -code error $result + } + + set offsets {} + set gmt 0 + set locale C + set timezone [GetSystemTimeZone] + + foreach { a b } $args { + + if { [string is integer -strict $a] } { + + lappend offsets $a $b + + } else { + + switch -exact -- $a { + + -g - -gm - -gmt { + set gmt $b + } + -l - -lo - -loc - -loca - -local - -locale { + set locale $b + } + -t - -ti - -tim - -time - -timez - -timezo - -timezon - + -timezone { + set timezone $b + } + default { + return -code error \ + -errorcode [list CLOCK badSwitch $flag] \ + "bad switch \"$flag\",\ + must be -gmt, -locale or -timezone" + } + } + } + } + + # Check options for validity + + if { [info exists saw(-gmt)] && [info exists saw(-timezone)] } { + return -code error \ + -errorcode [list CLOCK gmtWithTimezone] \ + "cannot use -gmt and -timezone in same call" + } + if { [catch { expr { wide($clockval) } } result] } { + return -code error \ + "expected integer but got \"$clockval\"" + } + if { ![string is boolean $gmt] } { + return -code error \ + "expected boolean value but got \"$gmt\"" + } else { + if { $gmt } { + set timezone :GMT + } + } + + EnterLocale $locale oldLocale + + set changeover [mc GREGORIAN_CHANGE_DATE] + + if {[catch {SetupTimeZone $timezone} retval opts]} { + dict unset opts -errorinfo + return -options $opts $retval + } + + set status [catch { + + foreach { quantity unit } $offsets { + + switch -exact -- $unit { + + years - year { + set clockval \ + [AddMonths [expr { 12 * $quantity }] \ + $clockval $timezone $changeover] + } + months - month { + set clockval [AddMonths $quantity $clockval $timezone \ + $changeover] + } + + weeks - week { + set clockval [AddDays [expr { 7 * $quantity }] \ + $clockval $timezone $changeover] + } + days - day { + set clockval [AddDays $quantity $clockval $timezone \ + $changeover] + } + + hours - hour { + set clockval [expr { 3600 * $quantity + $clockval }] + } + minutes - minute { + set clockval [expr { 60 * $quantity + $clockval }] + } + seconds - second { + set clockval [expr { $quantity + $clockval }] + } + + default { + error "unknown unit \"$unit\", must be \ + years, months, weeks, days, hours, minutes or seconds" \ + "unknown unit \"$unit\", must be \ + years, months, weeks, days, hours, minutes or seconds" \ + [list CLOCK badUnit $unit] + } + } + } + } result opts] + + # Restore the locale + + if { [info exists oldLocale] } { + mclocale $oldLocale + } + + if { $status == 1 } { + if { [lindex [dict get $opts -errorcode] 0] eq {CLOCK} } { + dict unset opts -errorinfo + } + return -options $opts $result + } else { + return $clockval + } + +} + +#---------------------------------------------------------------------- +# +# AddMonths -- +# +# Add a given number of months to a given clock value in a given +# time zone. +# +# Parameters: +# months - Number of months to add (may be negative) +# clockval - Seconds since the epoch before the operation +# timezone - Time zone in which the operation is to be performed +# +# Results: +# Returns the new clock value as a number of seconds since +# the epoch. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AddMonths { months clockval timezone changeover } { + + variable DaysInRomanMonthInCommonYear + variable DaysInRomanMonthInLeapYear + variable TZData + + # Convert the time to year, month, day, and fraction of day. + + set date [GetDateFields $clockval $TZData($timezone) $changeover] + dict set date secondOfDay [expr { [dict get $date localSeconds] + % 86400 }] + dict set date tzName $timezone + + # Add the requisite number of months + + set m [dict get $date month] + incr m $months + incr m -1 + set delta [expr { $m / 12 }] + set mm [expr { $m % 12 }] + dict set date month [expr { $mm + 1 }] + dict incr date year $delta + + # If the date doesn't exist in the current month, repair it + + if { [IsGregorianLeapYear $date] } { + set hath [lindex $DaysInRomanMonthInLeapYear $mm] + } else { + set hath [lindex $DaysInRomanMonthInCommonYear $mm] + } + if { [dict get $date dayOfMonth] > $hath } { + dict set date dayOfMonth $hath + } + + # Reconvert to a number of seconds + + set date [GetJulianDayFromEraYearMonthDay \ + $date[set date {}]\ + $changeover] + dict set date localSeconds \ + [expr { -210866803200 + + ( 86400 * wide([dict get $date julianDay]) ) + + [dict get $date secondOfDay] }] + set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) \ + $changeover] + + return [dict get $date seconds] + +} + +#---------------------------------------------------------------------- +# +# AddDays -- +# +# Add a given number of days to a given clock value in a given +# time zone. +# +# Parameters: +# days - Number of days to add (may be negative) +# clockval - Seconds since the epoch before the operation +# timezone - Time zone in which the operation is to be performed +# changeover - Julian Day on which the Gregorian calendar was adopted +# in the target locale. +# +# Results: +# Returns the new clock value as a number of seconds since +# the epoch. +# +# Side effects: +# None. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::AddDays { days clockval timezone changeover } { + + variable TZData + + # Convert the time to Julian Day + + set date [GetDateFields $clockval $TZData($timezone) $changeover] + dict set date secondOfDay [expr { [dict get $date localSeconds] + % 86400 }] + dict set date tzName $timezone + + # Add the requisite number of days + + dict incr date julianDay $days + + # Reconvert to a number of seconds + + dict set date localSeconds \ + [expr { -210866803200 + + ( 86400 * wide([dict get $date julianDay]) ) + + [dict get $date secondOfDay] }] + set date [ConvertLocalToUTC $date[set date {}] $TZData($timezone) \ + $changeover] + + return [dict get $date seconds] + +} + +#---------------------------------------------------------------------- +# +# mc -- +# +# Wrapper around ::msgcat::mc that caches the result according +# to the locale. +# +# Parameters: +# Accepts the name of the message to retrieve. +# +# Results: +# Returns the message text. +# +# Side effects: +# Caches the message text. +# +# Notes: +# Only the single-argument version of [mc] is supported. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::mc { name } { + variable McLoaded + set Locale [mclocale] + if { [dict exists $McLoaded $Locale $name] } { + return [dict get $McLoaded $Locale $name] + } else { + set val [::msgcat::mc $name] + dict set McLoaded $Locale $name $val + return $val + } +} + +#---------------------------------------------------------------------- +# +# ClearCaches -- +# +# Clears all caches to reclaim the memory used in [clock] +# +# Parameters: +# None. +# +# Results: +# None. +# +# Side effects: +# Caches are cleared. +# +#---------------------------------------------------------------------- + +proc ::tcl::clock::ClearCaches {} { + + variable LocaleNumeralCache + variable McLoaded + variable CachedSystemTimeZone + variable TimeZoneBad + + foreach p [info procs [namespace current]::scanproc'*] { + rename $p {} + } + foreach p [info procs [namespace current]::formatproc'*] { + rename $p {} + } + + set LocaleNumeralCache {} + set McLoaded {} + catch {unset CachedSystemTimeZone} + set TimeZoneBad {} + InitTZData + +} diff --git a/mingw/lib/tcl8.4/encoding/ascii.enc b/mingw/lib/tcl8.5/encoding/ascii.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/ascii.enc rename to mingw/lib/tcl8.5/encoding/ascii.enc diff --git a/mingw/lib/tcl8.4/encoding/big5.enc b/mingw/lib/tcl8.5/encoding/big5.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/big5.enc rename to mingw/lib/tcl8.5/encoding/big5.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1250.enc b/mingw/lib/tcl8.5/encoding/cp1250.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1250.enc rename to mingw/lib/tcl8.5/encoding/cp1250.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1251.enc b/mingw/lib/tcl8.5/encoding/cp1251.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1251.enc rename to mingw/lib/tcl8.5/encoding/cp1251.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1252.enc b/mingw/lib/tcl8.5/encoding/cp1252.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1252.enc rename to mingw/lib/tcl8.5/encoding/cp1252.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1253.enc b/mingw/lib/tcl8.5/encoding/cp1253.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1253.enc rename to mingw/lib/tcl8.5/encoding/cp1253.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1254.enc b/mingw/lib/tcl8.5/encoding/cp1254.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1254.enc rename to mingw/lib/tcl8.5/encoding/cp1254.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1255.enc b/mingw/lib/tcl8.5/encoding/cp1255.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1255.enc rename to mingw/lib/tcl8.5/encoding/cp1255.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1256.enc b/mingw/lib/tcl8.5/encoding/cp1256.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1256.enc rename to mingw/lib/tcl8.5/encoding/cp1256.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1257.enc b/mingw/lib/tcl8.5/encoding/cp1257.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1257.enc rename to mingw/lib/tcl8.5/encoding/cp1257.enc diff --git a/mingw/lib/tcl8.4/encoding/cp1258.enc b/mingw/lib/tcl8.5/encoding/cp1258.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp1258.enc rename to mingw/lib/tcl8.5/encoding/cp1258.enc diff --git a/mingw/lib/tcl8.4/encoding/cp437.enc b/mingw/lib/tcl8.5/encoding/cp437.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp437.enc rename to mingw/lib/tcl8.5/encoding/cp437.enc diff --git a/mingw/lib/tcl8.4/encoding/cp737.enc b/mingw/lib/tcl8.5/encoding/cp737.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp737.enc rename to mingw/lib/tcl8.5/encoding/cp737.enc diff --git a/mingw/lib/tcl8.4/encoding/cp775.enc b/mingw/lib/tcl8.5/encoding/cp775.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp775.enc rename to mingw/lib/tcl8.5/encoding/cp775.enc diff --git a/mingw/lib/tcl8.4/encoding/cp850.enc b/mingw/lib/tcl8.5/encoding/cp850.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp850.enc rename to mingw/lib/tcl8.5/encoding/cp850.enc diff --git a/mingw/lib/tcl8.4/encoding/cp852.enc b/mingw/lib/tcl8.5/encoding/cp852.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp852.enc rename to mingw/lib/tcl8.5/encoding/cp852.enc diff --git a/mingw/lib/tcl8.4/encoding/cp855.enc b/mingw/lib/tcl8.5/encoding/cp855.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp855.enc rename to mingw/lib/tcl8.5/encoding/cp855.enc diff --git a/mingw/lib/tcl8.4/encoding/cp857.enc b/mingw/lib/tcl8.5/encoding/cp857.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp857.enc rename to mingw/lib/tcl8.5/encoding/cp857.enc diff --git a/mingw/lib/tcl8.4/encoding/cp860.enc b/mingw/lib/tcl8.5/encoding/cp860.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp860.enc rename to mingw/lib/tcl8.5/encoding/cp860.enc diff --git a/mingw/lib/tcl8.4/encoding/cp861.enc b/mingw/lib/tcl8.5/encoding/cp861.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp861.enc rename to mingw/lib/tcl8.5/encoding/cp861.enc diff --git a/mingw/lib/tcl8.4/encoding/cp862.enc b/mingw/lib/tcl8.5/encoding/cp862.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp862.enc rename to mingw/lib/tcl8.5/encoding/cp862.enc diff --git a/mingw/lib/tcl8.4/encoding/cp863.enc b/mingw/lib/tcl8.5/encoding/cp863.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp863.enc rename to mingw/lib/tcl8.5/encoding/cp863.enc diff --git a/mingw/lib/tcl8.4/encoding/cp864.enc b/mingw/lib/tcl8.5/encoding/cp864.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp864.enc rename to mingw/lib/tcl8.5/encoding/cp864.enc diff --git a/mingw/lib/tcl8.4/encoding/cp865.enc b/mingw/lib/tcl8.5/encoding/cp865.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp865.enc rename to mingw/lib/tcl8.5/encoding/cp865.enc diff --git a/mingw/lib/tcl8.4/encoding/cp866.enc b/mingw/lib/tcl8.5/encoding/cp866.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp866.enc rename to mingw/lib/tcl8.5/encoding/cp866.enc diff --git a/mingw/lib/tcl8.4/encoding/cp869.enc b/mingw/lib/tcl8.5/encoding/cp869.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp869.enc rename to mingw/lib/tcl8.5/encoding/cp869.enc diff --git a/mingw/lib/tcl8.4/encoding/cp874.enc b/mingw/lib/tcl8.5/encoding/cp874.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp874.enc rename to mingw/lib/tcl8.5/encoding/cp874.enc diff --git a/mingw/lib/tcl8.4/encoding/cp932.enc b/mingw/lib/tcl8.5/encoding/cp932.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp932.enc rename to mingw/lib/tcl8.5/encoding/cp932.enc diff --git a/mingw/lib/tcl8.4/encoding/cp936.enc b/mingw/lib/tcl8.5/encoding/cp936.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp936.enc rename to mingw/lib/tcl8.5/encoding/cp936.enc diff --git a/mingw/lib/tcl8.4/encoding/cp949.enc b/mingw/lib/tcl8.5/encoding/cp949.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp949.enc rename to mingw/lib/tcl8.5/encoding/cp949.enc diff --git a/mingw/lib/tcl8.4/encoding/cp950.enc b/mingw/lib/tcl8.5/encoding/cp950.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/cp950.enc rename to mingw/lib/tcl8.5/encoding/cp950.enc diff --git a/mingw/lib/tcl8.4/encoding/dingbats.enc b/mingw/lib/tcl8.5/encoding/dingbats.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/dingbats.enc rename to mingw/lib/tcl8.5/encoding/dingbats.enc diff --git a/mingw/lib/tcl8.4/encoding/ebcdic.enc b/mingw/lib/tcl8.5/encoding/ebcdic.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/ebcdic.enc rename to mingw/lib/tcl8.5/encoding/ebcdic.enc diff --git a/mingw/lib/tcl8.4/encoding/euc-cn.enc b/mingw/lib/tcl8.5/encoding/euc-cn.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/euc-cn.enc rename to mingw/lib/tcl8.5/encoding/euc-cn.enc diff --git a/mingw/lib/tcl8.4/encoding/euc-jp.enc b/mingw/lib/tcl8.5/encoding/euc-jp.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/euc-jp.enc rename to mingw/lib/tcl8.5/encoding/euc-jp.enc diff --git a/mingw/lib/tcl8.4/encoding/euc-kr.enc b/mingw/lib/tcl8.5/encoding/euc-kr.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/euc-kr.enc rename to mingw/lib/tcl8.5/encoding/euc-kr.enc diff --git a/mingw/lib/tcl8.4/encoding/gb12345.enc b/mingw/lib/tcl8.5/encoding/gb12345.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/gb12345.enc rename to mingw/lib/tcl8.5/encoding/gb12345.enc diff --git a/mingw/lib/tcl8.4/encoding/gb1988.enc b/mingw/lib/tcl8.5/encoding/gb1988.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/gb1988.enc rename to mingw/lib/tcl8.5/encoding/gb1988.enc diff --git a/mingw/lib/tcl8.4/encoding/gb2312-raw.enc b/mingw/lib/tcl8.5/encoding/gb2312-raw.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/gb2312-raw.enc rename to mingw/lib/tcl8.5/encoding/gb2312-raw.enc diff --git a/mingw/lib/tcl8.4/encoding/gb2312.enc b/mingw/lib/tcl8.5/encoding/gb2312.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/gb2312.enc rename to mingw/lib/tcl8.5/encoding/gb2312.enc diff --git a/mingw/lib/tcl8.4/encoding/iso2022-jp.enc b/mingw/lib/tcl8.5/encoding/iso2022-jp.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso2022-jp.enc rename to mingw/lib/tcl8.5/encoding/iso2022-jp.enc diff --git a/mingw/lib/tcl8.4/encoding/iso2022-kr.enc b/mingw/lib/tcl8.5/encoding/iso2022-kr.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso2022-kr.enc rename to mingw/lib/tcl8.5/encoding/iso2022-kr.enc diff --git a/mingw/lib/tcl8.4/encoding/iso2022.enc b/mingw/lib/tcl8.5/encoding/iso2022.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso2022.enc rename to mingw/lib/tcl8.5/encoding/iso2022.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-1.enc b/mingw/lib/tcl8.5/encoding/iso8859-1.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-1.enc rename to mingw/lib/tcl8.5/encoding/iso8859-1.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-10.enc b/mingw/lib/tcl8.5/encoding/iso8859-10.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-10.enc rename to mingw/lib/tcl8.5/encoding/iso8859-10.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-13.enc b/mingw/lib/tcl8.5/encoding/iso8859-13.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-13.enc rename to mingw/lib/tcl8.5/encoding/iso8859-13.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-14.enc b/mingw/lib/tcl8.5/encoding/iso8859-14.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-14.enc rename to mingw/lib/tcl8.5/encoding/iso8859-14.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-15.enc b/mingw/lib/tcl8.5/encoding/iso8859-15.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-15.enc rename to mingw/lib/tcl8.5/encoding/iso8859-15.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-16.enc b/mingw/lib/tcl8.5/encoding/iso8859-16.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-16.enc rename to mingw/lib/tcl8.5/encoding/iso8859-16.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-2.enc b/mingw/lib/tcl8.5/encoding/iso8859-2.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-2.enc rename to mingw/lib/tcl8.5/encoding/iso8859-2.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-3.enc b/mingw/lib/tcl8.5/encoding/iso8859-3.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-3.enc rename to mingw/lib/tcl8.5/encoding/iso8859-3.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-4.enc b/mingw/lib/tcl8.5/encoding/iso8859-4.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-4.enc rename to mingw/lib/tcl8.5/encoding/iso8859-4.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-5.enc b/mingw/lib/tcl8.5/encoding/iso8859-5.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-5.enc rename to mingw/lib/tcl8.5/encoding/iso8859-5.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-6.enc b/mingw/lib/tcl8.5/encoding/iso8859-6.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-6.enc rename to mingw/lib/tcl8.5/encoding/iso8859-6.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-7.enc b/mingw/lib/tcl8.5/encoding/iso8859-7.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-7.enc rename to mingw/lib/tcl8.5/encoding/iso8859-7.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-8.enc b/mingw/lib/tcl8.5/encoding/iso8859-8.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-8.enc rename to mingw/lib/tcl8.5/encoding/iso8859-8.enc diff --git a/mingw/lib/tcl8.4/encoding/iso8859-9.enc b/mingw/lib/tcl8.5/encoding/iso8859-9.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/iso8859-9.enc rename to mingw/lib/tcl8.5/encoding/iso8859-9.enc diff --git a/mingw/lib/tcl8.4/encoding/jis0201.enc b/mingw/lib/tcl8.5/encoding/jis0201.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/jis0201.enc rename to mingw/lib/tcl8.5/encoding/jis0201.enc diff --git a/mingw/lib/tcl8.4/encoding/jis0208.enc b/mingw/lib/tcl8.5/encoding/jis0208.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/jis0208.enc rename to mingw/lib/tcl8.5/encoding/jis0208.enc diff --git a/mingw/lib/tcl8.4/encoding/jis0212.enc b/mingw/lib/tcl8.5/encoding/jis0212.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/jis0212.enc rename to mingw/lib/tcl8.5/encoding/jis0212.enc diff --git a/mingw/lib/tcl8.4/encoding/koi8-r.enc b/mingw/lib/tcl8.5/encoding/koi8-r.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/koi8-r.enc rename to mingw/lib/tcl8.5/encoding/koi8-r.enc diff --git a/mingw/lib/tcl8.4/encoding/koi8-u.enc b/mingw/lib/tcl8.5/encoding/koi8-u.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/koi8-u.enc rename to mingw/lib/tcl8.5/encoding/koi8-u.enc diff --git a/mingw/lib/tcl8.4/encoding/ksc5601.enc b/mingw/lib/tcl8.5/encoding/ksc5601.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/ksc5601.enc rename to mingw/lib/tcl8.5/encoding/ksc5601.enc diff --git a/mingw/lib/tcl8.4/encoding/macCentEuro.enc b/mingw/lib/tcl8.5/encoding/macCentEuro.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macCentEuro.enc rename to mingw/lib/tcl8.5/encoding/macCentEuro.enc diff --git a/mingw/lib/tcl8.4/encoding/macCroatian.enc b/mingw/lib/tcl8.5/encoding/macCroatian.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macCroatian.enc rename to mingw/lib/tcl8.5/encoding/macCroatian.enc diff --git a/mingw/lib/tcl8.4/encoding/macCyrillic.enc b/mingw/lib/tcl8.5/encoding/macCyrillic.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macCyrillic.enc rename to mingw/lib/tcl8.5/encoding/macCyrillic.enc diff --git a/mingw/lib/tcl8.4/encoding/macDingbats.enc b/mingw/lib/tcl8.5/encoding/macDingbats.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macDingbats.enc rename to mingw/lib/tcl8.5/encoding/macDingbats.enc diff --git a/mingw/lib/tcl8.4/encoding/macGreek.enc b/mingw/lib/tcl8.5/encoding/macGreek.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macGreek.enc rename to mingw/lib/tcl8.5/encoding/macGreek.enc diff --git a/mingw/lib/tcl8.4/encoding/macIceland.enc b/mingw/lib/tcl8.5/encoding/macIceland.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macIceland.enc rename to mingw/lib/tcl8.5/encoding/macIceland.enc diff --git a/mingw/lib/tcl8.4/encoding/macJapan.enc b/mingw/lib/tcl8.5/encoding/macJapan.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macJapan.enc rename to mingw/lib/tcl8.5/encoding/macJapan.enc diff --git a/mingw/lib/tcl8.4/encoding/macRoman.enc b/mingw/lib/tcl8.5/encoding/macRoman.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macRoman.enc rename to mingw/lib/tcl8.5/encoding/macRoman.enc diff --git a/mingw/lib/tcl8.4/encoding/macRomania.enc b/mingw/lib/tcl8.5/encoding/macRomania.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macRomania.enc rename to mingw/lib/tcl8.5/encoding/macRomania.enc diff --git a/mingw/lib/tcl8.4/encoding/macThai.enc b/mingw/lib/tcl8.5/encoding/macThai.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macThai.enc rename to mingw/lib/tcl8.5/encoding/macThai.enc diff --git a/mingw/lib/tcl8.4/encoding/macTurkish.enc b/mingw/lib/tcl8.5/encoding/macTurkish.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macTurkish.enc rename to mingw/lib/tcl8.5/encoding/macTurkish.enc diff --git a/mingw/lib/tcl8.4/encoding/macUkraine.enc b/mingw/lib/tcl8.5/encoding/macUkraine.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/macUkraine.enc rename to mingw/lib/tcl8.5/encoding/macUkraine.enc diff --git a/mingw/lib/tcl8.4/encoding/shiftjis.enc b/mingw/lib/tcl8.5/encoding/shiftjis.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/shiftjis.enc rename to mingw/lib/tcl8.5/encoding/shiftjis.enc diff --git a/mingw/lib/tcl8.4/encoding/symbol.enc b/mingw/lib/tcl8.5/encoding/symbol.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/symbol.enc rename to mingw/lib/tcl8.5/encoding/symbol.enc diff --git a/mingw/lib/tcl8.4/encoding/tis-620.enc b/mingw/lib/tcl8.5/encoding/tis-620.enc similarity index 100% rename from mingw/lib/tcl8.4/encoding/tis-620.enc rename to mingw/lib/tcl8.5/encoding/tis-620.enc diff --git a/mingw/lib/tcl8.5/history.tcl b/mingw/lib/tcl8.5/history.tcl new file mode 100644 index 00000000..3a3f16a6 --- /dev/null +++ b/mingw/lib/tcl8.5/history.tcl @@ -0,0 +1,375 @@ +# history.tcl -- +# +# Implementation of the history command. +# +# RCS: @(#) $Id: history.tcl,v 1.7 2005/07/23 04:12:49 dgp Exp $ +# +# Copyright (c) 1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# The tcl::history array holds the history list and +# some additional bookkeeping variables. +# +# nextid the index used for the next history list item. +# keep the max size of the history list +# oldest the index of the oldest item in the history. + +namespace eval tcl { + variable history + if {![info exists history]} { + array set history { + nextid 0 + keep 20 + oldest -20 + } + } +} + +# history -- +# +# This is the main history command. See the man page for its interface. +# This does argument checking and calls helper procedures in the +# history namespace. + +proc history {args} { + set len [llength $args] + if {$len == 0} { + return [tcl::HistInfo] + } + set key [lindex $args 0] + set options "add, change, clear, event, info, keep, nextid, or redo" + switch -glob -- $key { + a* { # history add + + if {$len > 3} { + return -code error "wrong # args: should be \"history add event ?exec?\"" + } + if {![string match $key* add]} { + return -code error "bad option \"$key\": must be $options" + } + if {$len == 3} { + set arg [lindex $args 2] + if {! ([string match e* $arg] && [string match $arg* exec])} { + return -code error "bad argument \"$arg\": should be \"exec\"" + } + } + return [tcl::HistAdd [lindex $args 1] [lindex $args 2]] + } + ch* { # history change + + if {($len > 3) || ($len < 2)} { + return -code error "wrong # args: should be \"history change newValue ?event?\"" + } + if {![string match $key* change]} { + return -code error "bad option \"$key\": must be $options" + } + if {$len == 2} { + set event 0 + } else { + set event [lindex $args 2] + } + + return [tcl::HistChange [lindex $args 1] $event] + } + cl* { # history clear + + if {($len > 1)} { + return -code error "wrong # args: should be \"history clear\"" + } + if {![string match $key* clear]} { + return -code error "bad option \"$key\": must be $options" + } + return [tcl::HistClear] + } + e* { # history event + + if {$len > 2} { + return -code error "wrong # args: should be \"history event ?event?\"" + } + if {![string match $key* event]} { + return -code error "bad option \"$key\": must be $options" + } + if {$len == 1} { + set event -1 + } else { + set event [lindex $args 1] + } + return [tcl::HistEvent $event] + } + i* { # history info + + if {$len > 2} { + return -code error "wrong # args: should be \"history info ?count?\"" + } + if {![string match $key* info]} { + return -code error "bad option \"$key\": must be $options" + } + return [tcl::HistInfo [lindex $args 1]] + } + k* { # history keep + + if {$len > 2} { + return -code error "wrong # args: should be \"history keep ?count?\"" + } + if {$len == 1} { + return [tcl::HistKeep] + } else { + set limit [lindex $args 1] + if {[catch {expr {~$limit}}] || ($limit < 0)} { + return -code error "illegal keep count \"$limit\"" + } + return [tcl::HistKeep $limit] + } + } + n* { # history nextid + + if {$len > 1} { + return -code error "wrong # args: should be \"history nextid\"" + } + if {![string match $key* nextid]} { + return -code error "bad option \"$key\": must be $options" + } + return [expr {$tcl::history(nextid) + 1}] + } + r* { # history redo + + if {$len > 2} { + return -code error "wrong # args: should be \"history redo ?event?\"" + } + if {![string match $key* redo]} { + return -code error "bad option \"$key\": must be $options" + } + return [tcl::HistRedo [lindex $args 1]] + } + default { + return -code error "bad option \"$key\": must be $options" + } + } +} + +# tcl::HistAdd -- +# +# Add an item to the history, and optionally eval it at the global scope +# +# Parameters: +# command the command to add +# exec (optional) a substring of "exec" causes the +# command to be evaled. +# Results: +# If executing, then the results of the command are returned +# +# Side Effects: +# Adds to the history list + + proc tcl::HistAdd {command {exec {}}} { + variable history + + # Do not add empty commands to the history + if {[string trim $command] eq ""} { + return "" + } + + set i [incr history(nextid)] + set history($i) $command + set j [incr history(oldest)] + unset -nocomplain history($j) + if {[string match e* $exec]} { + return [uplevel #0 $command] + } else { + return {} + } +} + +# tcl::HistKeep -- +# +# Set or query the limit on the length of the history list +# +# Parameters: +# limit (optional) the length of the history list +# +# Results: +# If no limit is specified, the current limit is returned +# +# Side Effects: +# Updates history(keep) if a limit is specified + + proc tcl::HistKeep {{limit {}}} { + variable history + if {$limit eq ""} { + return $history(keep) + } else { + set oldold $history(oldest) + set history(oldest) [expr {$history(nextid) - $limit}] + for {} {$oldold <= $history(oldest)} {incr oldold} { + unset -nocomplain history($oldold) + } + set history(keep) $limit + } +} + +# tcl::HistClear -- +# +# Erase the history list +# +# Parameters: +# none +# +# Results: +# none +# +# Side Effects: +# Resets the history array, except for the keep limit + + proc tcl::HistClear {} { + variable history + set keep $history(keep) + unset history + array set history [list \ + nextid 0 \ + keep $keep \ + oldest -$keep \ + ] +} + +# tcl::HistInfo -- +# +# Return a pretty-printed version of the history list +# +# Parameters: +# num (optional) the length of the history list to return +# +# Results: +# A formatted history list + + proc tcl::HistInfo {{num {}}} { + variable history + if {$num eq ""} { + set num [expr {$history(keep) + 1}] + } + set result {} + set newline "" + for {set i [expr {$history(nextid) - $num + 1}]} \ + {$i <= $history(nextid)} {incr i} { + if {![info exists history($i)]} { + continue + } + set cmd [string map [list \n \n\t] [string trimright $history($i) \ \n]] + append result $newline[format "%6d %s" $i $cmd] + set newline \n + } + return $result +} + +# tcl::HistRedo -- +# +# Fetch the previous or specified event, execute it, and then +# replace the current history item with that event. +# +# Parameters: +# event (optional) index of history item to redo. Defaults to -1, +# which means the previous event. +# +# Results: +# Those of the command being redone. +# +# Side Effects: +# Replaces the current history list item with the one being redone. + + proc tcl::HistRedo {{event -1}} { + variable history + if {$event eq ""} { + set event -1 + } + set i [HistIndex $event] + if {$i == $history(nextid)} { + return -code error "cannot redo the current event" + } + set cmd $history($i) + HistChange $cmd 0 + uplevel #0 $cmd +} + +# tcl::HistIndex -- +# +# Map from an event specifier to an index in the history list. +# +# Parameters: +# event index of history item to redo. +# If this is a positive number, it is used directly. +# If it is a negative number, then it counts back to a previous +# event, where -1 is the most recent event. +# A string can be matched, either by being the prefix of +# a command or by matching a command with string match. +# +# Results: +# The index into history, or an error if the index didn't match. + + proc tcl::HistIndex {event} { + variable history + if {[catch {expr {~$event}}]} { + for {set i [expr {$history(nextid)-1}]} {[info exists history($i)]} \ + {incr i -1} { + if {[string match $event* $history($i)]} { + return $i; + } + if {[string match $event $history($i)]} { + return $i; + } + } + return -code error "no event matches \"$event\"" + } elseif {$event <= 0} { + set i [expr {$history(nextid) + $event}] + } else { + set i $event + } + if {$i <= $history(oldest)} { + return -code error "event \"$event\" is too far in the past" + } + if {$i > $history(nextid)} { + return -code error "event \"$event\" hasn't occured yet" + } + return $i +} + +# tcl::HistEvent -- +# +# Map from an event specifier to the value in the history list. +# +# Parameters: +# event index of history item to redo. See index for a +# description of possible event patterns. +# +# Results: +# The value from the history list. + + proc tcl::HistEvent {event} { + variable history + set i [HistIndex $event] + if {[info exists history($i)]} { + return [string trimright $history($i) \ \n] + } else { + return ""; + } +} + +# tcl::HistChange -- +# +# Replace a value in the history list. +# +# Parameters: +# cmd The new value to put into the history list. +# event (optional) index of history item to redo. See index for a +# description of possible event patterns. This defaults +# to 0, which specifies the current event. +# +# Side Effects: +# Changes the history list. + + proc tcl::HistChange {cmd {event 0}} { + variable history + set i [HistIndex $event] + set history($i) $cmd +} diff --git a/mingw/lib/tcl8.4/http1.0/http.tcl b/mingw/lib/tcl8.5/http1.0/http.tcl similarity index 100% rename from mingw/lib/tcl8.4/http1.0/http.tcl rename to mingw/lib/tcl8.5/http1.0/http.tcl diff --git a/mingw/lib/tcl8.4/http1.0/pkgIndex.tcl b/mingw/lib/tcl8.5/http1.0/pkgIndex.tcl similarity index 100% rename from mingw/lib/tcl8.4/http1.0/pkgIndex.tcl rename to mingw/lib/tcl8.5/http1.0/pkgIndex.tcl diff --git a/mingw/lib/tcl8.5/init.tcl b/mingw/lib/tcl8.5/init.tcl new file mode 100644 index 00000000..6e040bab --- /dev/null +++ b/mingw/lib/tcl8.5/init.tcl @@ -0,0 +1,848 @@ +# init.tcl -- +# +# Default system startup file for Tcl-based applications. Defines +# "unknown" procedure and auto-load facilities. +# +# RCS: @(#) $Id: init.tcl,v 1.96 2007/10/26 15:17:56 dgp Exp $ +# +# Copyright (c) 1991-1993 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# Copyright (c) 1998-1999 Scriptics Corporation. +# Copyright (c) 2004 by Kevin B. Kenny. All rights reserved. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +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.5b2 + +# Compute the auto path to use in this interpreter. +# The values on the path come from several locations: +# +# The environment variable TCLLIBPATH +# +# tcl_library, which is the directory containing this init.tcl script. +# [tclInit] (Tcl_Init()) searches around for the directory containing this +# init.tcl and defines tcl_library to that location before sourcing it. +# +# The parent directory of tcl_library. Adding the parent +# means that packages in peer directories will be found automatically. +# +# Also add the directory ../lib relative to the directory where the +# executable is located. This is meant to find binary packages for the +# same architecture as the current executable. +# +# tcl_pkgPath, which is set by the platform-specific initialization routines +# On UNIX it is compiled in +# On Windows, it is not used + +if {![info exists auto_path]} { + if {[info exists env(TCLLIBPATH)]} { + set auto_path $env(TCLLIBPATH) + } else { + set auto_path "" + } +} +namespace eval tcl { + variable Dir + foreach Dir [list $::tcl_library [file dirname $::tcl_library]] { + if {$Dir ni $::auto_path} { + lappend ::auto_path $Dir + } + } + set Dir [file join [file dirname [file dirname \ + [info nameofexecutable]]] lib] + if {$Dir ni $::auto_path} { + lappend ::auto_path $Dir + } + catch { + foreach Dir $::tcl_pkgPath { + if {$Dir ni $::auto_path} { + lappend ::auto_path $Dir + } + } + } + + if {![interp issafe]} { + variable Path [encoding dirs] + set Dir [file join $::tcl_library encoding] + if {$Dir ni $Path} { + lappend Path $Dir + encoding dirs $Path + } + } + + # Set up the 'chan' ensemble (TIP #208). + namespace eval chan { + # TIP #219. Added methods: create, postevent. + # TIP 287. Added method: pending. + namespace ensemble create -command ::chan -map { + blocked ::tcl::chan::blocked + close ::tcl::chan::close + configure ::tcl::chan::configure + copy ::tcl::chan::copy + create ::tcl::chan::rCreate + eof ::tcl::chan::eof + event ::tcl::chan::event + flush ::tcl::chan::flush + gets ::tcl::chan::gets + names {::file channels} + pending ::tcl::chan::Pending + postevent ::tcl::chan::rPostevent + puts ::tcl::chan::puts + read ::tcl::chan::read + seek ::tcl::chan::seek + tell ::tcl::chan::tell + truncate ::tcl::chan::Truncate + } + } + + # TIP #255 min and max functions + namespace eval mathfunc { + proc min {args} { + if {[llength $args] == 0} { + return -code error \ + "too few arguments to math function \"min\"" + } + set val Inf + foreach arg $args { + # This will handle forcing the numeric value without + # ruining the internal type of a numeric object + if {[catch {expr {double($arg)}} err]} { + return -code error $err + } + if {$arg < $val} { set val $arg } + } + return $val + } + proc max {args} { + if {[llength $args] == 0} { + return -code error \ + "too few arguments to math function \"max\"" + } + set val -Inf + foreach arg $args { + # This will handle forcing the numeric value without + # ruining the internal type of a numeric object + if {[catch {expr {double($arg)}} err]} { + return -code error $err + } + if {$arg > $val} { set val $arg } + } + return $val + } + } +} + +# Windows specific end of initialization + +if {(![interp issafe]) && ($tcl_platform(platform) eq "windows")} { + namespace eval tcl { + proc EnvTraceProc {lo n1 n2 op} { + set x $::env($n2) + set ::env($lo) $x + set ::env([string toupper $lo]) $x + } + proc InitWinEnv {} { + global env tcl_platform + foreach p [array names env] { + set u [string toupper $p] + if {$u ne $p} { + switch -- $u { + COMSPEC - + PATH { + if {![info exists env($u)]} { + set env($u) $env($p) + } + trace add variable env($p) write \ + [namespace code [list EnvTraceProc $p]] + trace add variable env($u) write \ + [namespace code [list EnvTraceProc $p]] + } + } + } + } + if {![info exists env(COMSPEC)]} { + if {$tcl_platform(os) eq "Windows NT"} { + set env(COMSPEC) cmd.exe + } else { + set env(COMSPEC) command.com + } + } + } + InitWinEnv + } +} + +# Setup the unknown package handler + + +if {[interp issafe]} { + package unknown ::tclPkgUnknown +} else { + # Set up search for Tcl Modules (TIP #189). + # and setup platform specific unknown package handlers + if {$::tcl_platform(os) eq "Darwin" + && $::tcl_platform(platform) eq "unix"} { + package unknown {::tcl::tm::UnknownHandler \ + {::tcl::MacOSXPkgUnknown ::tclPkgUnknown}} + } else { + package unknown {::tcl::tm::UnknownHandler ::tclPkgUnknown} + } + + # Set up the 'clock' ensemble + + namespace eval ::tcl::clock [list variable TclLibDir $::tcl_library] + + proc clock args { + namespace eval ::tcl::clock [list namespace ensemble create -command \ + [uplevel 1 [list namespace origin [lindex [info level 0] 0]]] \ + -subcommands { + add clicks format microseconds milliseconds scan seconds + }] + + # Auto-loading stubs for 'clock.tcl' + + foreach cmd {add format scan} { + proc ::tcl::clock::$cmd args { + variable TclLibDir + source -encoding utf-8 [file join $TclLibDir clock.tcl] + return [uplevel 1 [info level 0]] + } + } + + return [uplevel 1 [info level 0]] + } +} + +# Conditionalize for presence of exec. + +if {[namespace which -command exec] eq ""} { + + # Some machines do not have exec. Also, on all + # platforms, safe interpreters do not have exec. + + set auto_noexec 1 +} + +# Define a log command (which can be overwitten to log errors +# differently, specially when stderr is not available) + +if {[namespace which -command tclLog] eq ""} { + proc tclLog {string} { + catch {puts stderr $string} + } +} + +# unknown -- +# This procedure is called when a Tcl command is invoked that doesn't +# exist in the interpreter. It takes the following steps to make the +# command available: +# +# 1. See if the command has the form "namespace inscope ns cmd" and +# if so, concatenate its arguments onto the end and evaluate it. +# 2. See if the autoload facility can locate the command in a +# Tcl script file. If so, load it and execute it. +# 3. If the command was invoked interactively at top-level: +# (a) see if the command exists as an executable UNIX program. +# If so, "exec" the command. +# (b) see if the command requests csh-like history substitution +# in one of the common forms !!, !, or ^old^new. If +# so, emulate csh's history substitution. +# (c) see if the command is a unique abbreviation for another +# command. If so, invoke the command. +# +# Arguments: +# args - A list whose elements are the words of the original +# command, including the command name. + +proc unknown args { + variable ::tcl::UnknownPending + global auto_noexec auto_noload env tcl_interactive + + # If the command word has the form "namespace inscope ns cmd" + # then concatenate its arguments onto the end and evaluate it. + + set cmd [lindex $args 0] + if {[regexp "^:*namespace\[ \t\n\]+inscope" $cmd] && [llength $cmd] == 4} { + #return -code error "You need an {*}" + set arglist [lrange $args 1 end] + set ret [catch {uplevel 1 ::$cmd $arglist} result opts] + dict unset opts -errorinfo + dict incr opts -level + return -options $opts $result + } + + catch {set savedErrorInfo $::errorInfo} + catch {set savedErrorCode $::errorCode} + set name $cmd + if {![info exists auto_noload]} { + # + # Make sure we're not trying to load the same proc twice. + # + if {[info exists UnknownPending($name)]} { + return -code error "self-referential recursion\ + in \"unknown\" for command \"$name\""; + } + set UnknownPending($name) pending; + set ret [catch { + auto_load $name [uplevel 1 {::namespace current}] + } msg opts] + unset UnknownPending($name); + if {$ret != 0} { + dict append opts -errorinfo "\n (autoloading \"$name\")" + return -options $opts $msg + } + if {![array size UnknownPending]} { + unset UnknownPending + } + if {$msg} { + catch {set ::errorCode $savedErrorCode} + catch {set ::errorInfo $savedErrorInfo} + set code [catch {uplevel 1 $args} msg opts] + if {$code == 1} { + # + # Compute stack trace contribution from the [uplevel]. + # Note the dependence on how Tcl_AddErrorInfo, etc. + # construct the stack trace. + # + set errorInfo [dict get $opts -errorinfo] + set errorCode [dict get $opts -errorcode] + set cinfo $args + if {[string bytelength $cinfo] > 150} { + set cinfo [string range $cinfo 0 150] + while {[string bytelength $cinfo] > 150} { + set cinfo [string range $cinfo 0 end-1] + } + append cinfo ... + } + append cinfo "\"\n (\"uplevel\" body line 1)" + append cinfo "\n invoked from within" + append cinfo "\n\"uplevel 1 \$args\"" + # + # Try each possible form of the stack trace + # and trim the extra contribution from the matching case + # + set expect "$msg\n while executing\n\"$cinfo" + if {$errorInfo eq $expect} { + # + # The stack has only the eval from the expanded command + # Do not generate any stack trace here. + # + dict unset opts -errorinfo + dict incr opts -level + return -options $opts $msg + } + # + # Stack trace is nested, trim off just the contribution + # from the extra "eval" of $args due to the "catch" above. + # + set expect "\n invoked from within\n\"$cinfo" + set exlen [string length $expect] + set eilen [string length $errorInfo] + set i [expr {$eilen - $exlen - 1}] + set einfo [string range $errorInfo 0 $i] + # + # For now verify that $errorInfo consists of what we are about + # to return plus what we expected to trim off. + # + if {$errorInfo ne "$einfo$expect"} { + error "Tcl bug: unexpected stack trace in \"unknown\"" {} \ + [list CORE UNKNOWN BADTRACE $einfo $expect $errorInfo] + } + return -code error -errorcode $errorCode \ + -errorinfo $einfo $msg + } else { + dict incr opts -level + return -options $opts $msg + } + } + } + + if {([info level] == 1) && ([info script] eq "") \ + && [info exists tcl_interactive] && $tcl_interactive} { + if {![info exists auto_noexec]} { + set new [auto_execok $name] + if {$new ne ""} { + set redir "" + if {[namespace which -command console] eq ""} { + set redir ">&@stdout <@stdin" + } + uplevel 1 [list ::catch \ + [concat exec $redir $new [lrange $args 1 end]] \ + ::tcl::UnknownResult ::tcl::UnknownOptions] + dict incr ::tcl::UnknownOptions -level + return -options $::tcl::UnknownOptions $::tcl::UnknownResult + } + } + if {$name eq "!!"} { + set newcmd [history event] + } elseif {[regexp {^!(.+)$} $name -> event]} { + set newcmd [history event $event] + } elseif {[regexp {^\^([^^]*)\^([^^]*)\^?$} $name -> old new]} { + set newcmd [history event -1] + catch {regsub -all -- $old $newcmd $new newcmd} + } + if {[info exists newcmd]} { + tclLog $newcmd + history change $newcmd 0 + uplevel 1 [list ::catch $newcmd \ + ::tcl::UnknownResult ::tcl::UnknownOptions] + dict incr ::tcl::UnknownOptions -level + return -options $::tcl::UnknownOptions $::tcl::UnknownResult + } + + set ret [catch {set candidates [info commands $name*]} msg] + if {$name eq "::"} { + set name "" + } + if {$ret != 0} { + dict append opts -errorinfo \ + "\n (expanding command prefix \"$name\" in unknown)" + return -options $opts $msg + } + # Filter out bogus matches when $name contained + # a glob-special char [Bug 946952] + if {$name eq ""} { + # Handle empty $name separately due to strangeness + # in [string first] (See RFE 1243354) + set cmds $candidates + } else { + set cmds [list] + foreach x $candidates { + if {[string first $name $x] == 0} { + lappend cmds $x + } + } + } + if {[llength $cmds] == 1} { + uplevel 1 [list ::catch [lreplace $args 0 0 [lindex $cmds 0]] \ + ::tcl::UnknownResult ::tcl::UnknownOptions] + dict incr ::tcl::UnknownOptions -level + return -options $::tcl::UnknownOptions $::tcl::UnknownResult + } + if {[llength $cmds]} { + return -code error "ambiguous command name \"$name\": [lsort $cmds]" + } + } + return -code error "invalid command name \"$name\"" +} + +# auto_load -- +# Checks a collection of library directories to see if a procedure +# is defined in one of them. If so, it sources the appropriate +# library file to create the procedure. Returns 1 if it successfully +# loaded the procedure, 0 otherwise. +# +# Arguments: +# cmd - Name of the command to find and load. +# namespace (optional) The namespace where the command is being used - must be +# a canonical namespace as returned [namespace current] +# for instance. If not given, namespace current is used. + +proc auto_load {cmd {namespace {}}} { + global auto_index auto_path + + if {$namespace eq ""} { + set namespace [uplevel 1 [list ::namespace current]] + } + set nameList [auto_qualify $cmd $namespace] + # workaround non canonical auto_index entries that might be around + # from older auto_mkindex versions + lappend nameList $cmd + foreach name $nameList { + if {[info exists auto_index($name)]} { + namespace eval :: $auto_index($name) + # There's a couple of ways to look for a command of a given + # name. One is to use + # info commands $name + # Unfortunately, if the name has glob-magic chars in it like * + # or [], it may not match. For our purposes here, a better + # route is to use + # namespace which -command $name + if {[namespace which -command $name] ne ""} { + return 1 + } + } + } + if {![info exists auto_path]} { + return 0 + } + + if {![auto_load_index]} { + return 0 + } + foreach name $nameList { + if {[info exists auto_index($name)]} { + namespace eval :: $auto_index($name) + if {[namespace which -command $name] ne ""} { + return 1 + } + } + } + return 0 +} + +# auto_load_index -- +# Loads the contents of tclIndex files on the auto_path directory +# list. This is usually invoked within auto_load to load the index +# of available commands. Returns 1 if the index is loaded, and 0 if +# the index is already loaded and up to date. +# +# Arguments: +# None. + +proc auto_load_index {} { + variable ::tcl::auto_oldpath + global auto_index auto_path + + if {[info exists auto_oldpath] && ($auto_oldpath eq $auto_path)} { + return 0 + } + set auto_oldpath $auto_path + + # Check if we are a safe interpreter. In that case, we support only + # newer format tclIndex files. + + set issafe [interp issafe] + for {set i [expr {[llength $auto_path] - 1}]} {$i >= 0} {incr i -1} { + set dir [lindex $auto_path $i] + set f "" + if {$issafe} { + catch {source [file join $dir tclIndex]} + } elseif {[catch {set f [open [file join $dir tclIndex]]}]} { + continue + } else { + set error [catch { + set id [gets $f] + if {$id eq "# Tcl autoload index file, version 2.0"} { + eval [read $f] + } elseif {$id eq "# Tcl autoload index file: each line identifies a Tcl"} { + while {[gets $f line] >= 0} { + if {([string index $line 0] eq "#") \ + || ([llength $line] != 2)} { + continue + } + set name [lindex $line 0] + set auto_index($name) \ + "source [file join $dir [lindex $line 1]]" + } + } else { + error "[file join $dir tclIndex] isn't a proper Tcl index file" + } + } msg opts] + if {$f ne ""} { + close $f + } + if {$error} { + return -options $opts $msg + } + } + } + return 1 +} + +# auto_qualify -- +# +# Compute a fully qualified names list for use in the auto_index array. +# For historical reasons, commands in the global namespace do not have leading +# :: in the index key. The list has two elements when the command name is +# relative (no leading ::) and the namespace is not the global one. Otherwise +# only one name is returned (and searched in the auto_index). +# +# Arguments - +# cmd The command name. Can be any name accepted for command +# invocations (Like "foo::::bar"). +# namespace The namespace where the command is being used - must be +# a canonical namespace as returned by [namespace current] +# for instance. + +proc auto_qualify {cmd namespace} { + + # count separators and clean them up + # (making sure that foo:::::bar will be treated as foo::bar) + set n [regsub -all {::+} $cmd :: cmd] + + # Ignore namespace if the name starts with :: + # Handle special case of only leading :: + + # Before each return case we give an example of which category it is + # with the following form : + # ( inputCmd, inputNameSpace) -> output + + if {[string match ::* $cmd]} { + if {$n > 1} { + # ( ::foo::bar , * ) -> ::foo::bar + return [list $cmd] + } else { + # ( ::global , * ) -> global + return [list [string range $cmd 2 end]] + } + } + + # Potentially returning 2 elements to try : + # (if the current namespace is not the global one) + + if {$n == 0} { + if {$namespace eq "::"} { + # ( nocolons , :: ) -> nocolons + return [list $cmd] + } else { + # ( nocolons , ::sub ) -> ::sub::nocolons nocolons + return [list ${namespace}::$cmd $cmd] + } + } elseif {$namespace eq "::"} { + # ( foo::bar , :: ) -> ::foo::bar + return [list ::$cmd] + } else { + # ( foo::bar , ::sub ) -> ::sub::foo::bar ::foo::bar + return [list ${namespace}::$cmd ::$cmd] + } +} + +# auto_import -- +# +# Invoked during "namespace import" to make see if the imported commands +# reside in an autoloaded library. If so, the commands are loaded so +# that they will be available for the import links. If not, then this +# procedure does nothing. +# +# Arguments - +# pattern The pattern of commands being imported (like "foo::*") +# a canonical namespace as returned by [namespace current] + +proc auto_import {pattern} { + global auto_index + + # If no namespace is specified, this will be an error case + + if {![string match *::* $pattern]} { + return + } + + set ns [uplevel 1 [list ::namespace current]] + set patternList [auto_qualify $pattern $ns] + + auto_load_index + + foreach pattern $patternList { + foreach name [array names auto_index $pattern] { + if {([namespace which -command $name] eq "") + && ([namespace qualifiers $pattern] eq [namespace qualifiers $name])} { + namespace eval :: $auto_index($name) + } + } + } +} + +# auto_execok -- +# +# Returns string that indicates name of program to execute if +# name corresponds to a shell builtin or an executable in the +# Windows search path, or "" otherwise. Builds an associative +# array auto_execs that caches information about previous checks, +# for speed. +# +# Arguments: +# name - Name of a command. + +if {$tcl_platform(platform) eq "windows"} { +# Windows version. +# +# Note that info executable doesn't work under Windows, so we have to +# look for files with .exe, .com, or .bat extensions. Also, the path +# may be in the Path or PATH environment variables, and path +# components are separated with semicolons, not colons as under Unix. +# +proc auto_execok name { + global auto_execs env tcl_platform + + if {[info exists auto_execs($name)]} { + return $auto_execs($name) + } + set auto_execs($name) "" + + set shellBuiltins [list cls copy date del erase dir echo mkdir \ + md rename ren rmdir rd time type ver vol] + if {$tcl_platform(os) eq "Windows NT"} { + # NT includes the 'start' built-in + lappend shellBuiltins "start" + } + if {[info exists env(PATHEXT)]} { + # Add an initial ; to have the {} extension check first. + set execExtensions [split ";$env(PATHEXT)" ";"] + } else { + set execExtensions [list {} .com .exe .bat] + } + + if {$name in $shellBuiltins} { + # When this is command.com for some reason on Win2K, Tcl won't + # exec it unless the case is right, which this corrects. COMSPEC + # may not point to a real file, so do the check. + set cmd $env(COMSPEC) + if {[file exists $cmd]} { + set cmd [file attributes $cmd -shortname] + } + return [set auto_execs($name) [list $cmd /c $name]] + } + + if {[llength [file split $name]] != 1} { + foreach ext $execExtensions { + set file ${name}${ext} + if {[file exists $file] && ![file isdirectory $file]} { + return [set auto_execs($name) [list $file]] + } + } + return "" + } + + set path "[file dirname [info nameof]];.;" + if {[info exists env(WINDIR)]} { + set windir $env(WINDIR) + } + if {[info exists windir]} { + if {$tcl_platform(os) eq "Windows NT"} { + append path "$windir/system32;" + } + append path "$windir/system;$windir;" + } + + foreach var {PATH Path path} { + if {[info exists env($var)]} { + append path ";$env($var)" + } + } + + foreach dir [split $path {;}] { + # Skip already checked directories + if {[info exists checked($dir)] || ($dir eq {})} { continue } + set checked($dir) {} + foreach ext $execExtensions { + set file [file join $dir ${name}${ext}] + if {[file exists $file] && ![file isdirectory $file]} { + return [set auto_execs($name) [list $file]] + } + } + } + return "" +} + +} else { +# Unix version. +# +proc auto_execok name { + global auto_execs env + + if {[info exists auto_execs($name)]} { + return $auto_execs($name) + } + set auto_execs($name) "" + if {[llength [file split $name]] != 1} { + if {[file executable $name] && ![file isdirectory $name]} { + set auto_execs($name) [list $name] + } + return $auto_execs($name) + } + foreach dir [split $env(PATH) :] { + if {$dir eq ""} { + set dir . + } + set file [file join $dir $name] + if {[file executable $file] && ![file isdirectory $file]} { + set auto_execs($name) [list $file] + return $auto_execs($name) + } + } + return "" +} + +} + +# ::tcl::CopyDirectory -- +# +# This procedure is called by Tcl's core when attempts to call the +# filesystem's copydirectory function fail. The semantics of the call +# are that 'dest' does not yet exist, i.e. dest should become the exact +# image of src. If dest does exist, we throw an error. +# +# Note that making changes to this procedure can change the results +# of running Tcl's tests. +# +# Arguments: +# action - "renaming" or "copying" +# src - source directory +# dest - destination directory +proc tcl::CopyDirectory {action src dest} { + set nsrc [file normalize $src] + set ndest [file normalize $dest] + + if {$action eq "renaming"} { + # Can't rename volumes. We could give a more precise + # error message here, but that would break the test suite. + if {$nsrc in [file volumes]} { + return -code error "error $action \"$src\" to\ + \"$dest\": trying to rename a volume or move a directory\ + into itself" + } + } + if {[file exists $dest]} { + if {$nsrc eq $ndest} { + return -code error "error $action \"$src\" to\ + \"$dest\": trying to rename a volume or move a directory\ + into itself" + } + if {$action eq "copying"} { + # We used to throw an error here, but, looking more closely + # at the core copy code in tclFCmd.c, if the destination + # exists, then we should only call this function if -force + # is true, which means we just want to over-write. So, + # the following code is now commented out. + # + # return -code error "error $action \"$src\" to\ + # \"$dest\": file already exists" + } else { + # Depending on the platform, and on the current + # working directory, the directories '.', '..' + # can be returned in various combinations. Anyway, + # if any other file is returned, we must signal an error. + set existing [glob -nocomplain -directory $dest * .*] + lappend existing {*}[glob -nocomplain -directory $dest \ + -type hidden * .*] + foreach s $existing { + if {([file tail $s] ne ".") && ([file tail $s] ne "..")} { + return -code error "error $action \"$src\" to\ + \"$dest\": file already exists" + } + } + } + } else { + if {[string first $nsrc $ndest] != -1} { + set srclen [expr {[llength [file split $nsrc]] -1}] + set ndest [lindex [file split $ndest] $srclen] + if {$ndest eq [file tail $nsrc]} { + return -code error "error $action \"$src\" to\ + \"$dest\": trying to rename a volume or move a directory\ + into itself" + } + } + file mkdir $dest + } + # Have to be careful to capture both visible and hidden files. + # We will also be more generous to the file system and not + # assume the hidden and non-hidden lists are non-overlapping. + # + # On Unix 'hidden' files begin with '.'. On other platforms + # or filesystems hidden files may have other interpretations. + set filelist [concat [glob -nocomplain -directory $src *] \ + [glob -nocomplain -directory $src -types hidden *]] + + foreach s [lsort -unique $filelist] { + if {([file tail $s] ne ".") && ([file tail $s] ne "..")} { + file copy -force $s [file join $dest [file tail $s]] + } + } + return +} diff --git a/mingw/lib/tcl8.5/msgs/af.msg b/mingw/lib/tcl8.5/msgs/af.msg new file mode 100644 index 00000000..08926157 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/af.msg @@ -0,0 +1,49 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset af DAYS_OF_WEEK_ABBREV [list \ + "So"\ + "Ma"\ + "Di"\ + "Wo"\ + "Do"\ + "Vr"\ + "Sa"] + ::msgcat::mcset af DAYS_OF_WEEK_FULL [list \ + "Sondag"\ + "Maandag"\ + "Dinsdag"\ + "Woensdag"\ + "Donderdag"\ + "Vrydag"\ + "Saterdag"] + ::msgcat::mcset af MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mar"\ + "Apr"\ + "Mei"\ + "Jun"\ + "Jul"\ + "Aug"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Des"\ + ""] + ::msgcat::mcset af MONTHS_FULL [list \ + "Januarie"\ + "Februarie"\ + "Maart"\ + "April"\ + "Mei"\ + "Junie"\ + "Julie"\ + "Augustus"\ + "September"\ + "Oktober"\ + "November"\ + "Desember"\ + ""] + ::msgcat::mcset af AM "VM" + ::msgcat::mcset af PM "NM" +} diff --git a/mingw/lib/tcl8.5/msgs/af_za.msg b/mingw/lib/tcl8.5/msgs/af_za.msg new file mode 100644 index 00000000..fef48ad4 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/af_za.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset af_ZA DATE_FORMAT "%d %B %Y" + ::msgcat::mcset af_ZA TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset af_ZA DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ar.msg b/mingw/lib/tcl8.5/msgs/ar.msg new file mode 100644 index 00000000..257157fd --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ar.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ar DAYS_OF_WEEK_ABBREV [list \ + "\u062d"\ + "\u0646"\ + "\u062b"\ + "\u0631"\ + "\u062e"\ + "\u062c"\ + "\u0633"] + ::msgcat::mcset ar DAYS_OF_WEEK_FULL [list \ + "\u0627\u0644\u0623\u062d\u062f"\ + "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\ + "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\ + "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\ + "\u0627\u0644\u062e\u0645\u064a\u0633"\ + "\u0627\u0644\u062c\u0645\u0639\u0629"\ + "\u0627\u0644\u0633\u0628\u062a"] + ::msgcat::mcset ar MONTHS_ABBREV [list \ + "\u064a\u0646\u0627"\ + "\u0641\u0628\u0631"\ + "\u0645\u0627\u0631"\ + "\u0623\u0628\u0631"\ + "\u0645\u0627\u064a"\ + "\u064a\u0648\u0646"\ + "\u064a\u0648\u0644"\ + "\u0623\u063a\u0633"\ + "\u0633\u0628\u062a"\ + "\u0623\u0643\u062a"\ + "\u0646\u0648\u0641"\ + "\u062f\u064a\u0633"\ + ""] + ::msgcat::mcset ar MONTHS_FULL [list \ + "\u064a\u0646\u0627\u064a\u0631"\ + "\u0641\u0628\u0631\u0627\u064a\u0631"\ + "\u0645\u0627\u0631\u0633"\ + "\u0623\u0628\u0631\u064a\u0644"\ + "\u0645\u0627\u064a\u0648"\ + "\u064a\u0648\u0646\u064a\u0648"\ + "\u064a\u0648\u0644\u064a\u0648"\ + "\u0623\u063a\u0633\u0637\u0633"\ + "\u0633\u0628\u062a\u0645\u0628\u0631"\ + "\u0623\u0643\u062a\u0648\u0628\u0631"\ + "\u0646\u0648\u0641\u0645\u0628\u0631"\ + "\u062f\u064a\u0633\u0645\u0628\u0631"\ + ""] + ::msgcat::mcset ar BCE "\u0642.\u0645" + ::msgcat::mcset ar CE "\u0645" + ::msgcat::mcset ar AM "\u0635" + ::msgcat::mcset ar PM "\u0645" + ::msgcat::mcset ar DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset ar TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset ar DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ar_in.msg b/mingw/lib/tcl8.5/msgs/ar_in.msg new file mode 100644 index 00000000..185e49c3 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ar_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ar_IN DATE_FORMAT "%A %d %B %Y" + ::msgcat::mcset ar_IN TIME_FORMAT_12 "%I:%M:%S %z" + ::msgcat::mcset ar_IN DATE_TIME_FORMAT "%A %d %B %Y %I:%M:%S %z %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ar_jo.msg b/mingw/lib/tcl8.5/msgs/ar_jo.msg new file mode 100644 index 00000000..0f5e2697 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ar_jo.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ar_JO DAYS_OF_WEEK_ABBREV [list \ + "\u0627\u0644\u0623\u062d\u062f"\ + "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\ + "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\ + "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\ + "\u0627\u0644\u062e\u0645\u064a\u0633"\ + "\u0627\u0644\u062c\u0645\u0639\u0629"\ + "\u0627\u0644\u0633\u0628\u062a"] + ::msgcat::mcset ar_JO MONTHS_ABBREV [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631"\ + "\u062d\u0632\u064a\u0631\u0627\u0646"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] + ::msgcat::mcset ar_JO MONTHS_FULL [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631"\ + "\u062d\u0632\u064a\u0631\u0627\u0646"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/ar_lb.msg b/mingw/lib/tcl8.5/msgs/ar_lb.msg new file mode 100644 index 00000000..e62acd35 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ar_lb.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ar_LB DAYS_OF_WEEK_ABBREV [list \ + "\u0627\u0644\u0623\u062d\u062f"\ + "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\ + "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\ + "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\ + "\u0627\u0644\u062e\u0645\u064a\u0633"\ + "\u0627\u0644\u062c\u0645\u0639\u0629"\ + "\u0627\u0644\u0633\u0628\u062a"] + ::msgcat::mcset ar_LB MONTHS_ABBREV [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631"\ + "\u062d\u0632\u064a\u0631\u0627\u0646"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] + ::msgcat::mcset ar_LB MONTHS_FULL [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631"\ + "\u062d\u0632\u064a\u0631\u0627\u0646"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/ar_sy.msg b/mingw/lib/tcl8.5/msgs/ar_sy.msg new file mode 100644 index 00000000..d5e1c873 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ar_sy.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ar_SY DAYS_OF_WEEK_ABBREV [list \ + "\u0627\u0644\u0623\u062d\u062f"\ + "\u0627\u0644\u0627\u062b\u0646\u064a\u0646"\ + "\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621"\ + "\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621"\ + "\u0627\u0644\u062e\u0645\u064a\u0633"\ + "\u0627\u0644\u062c\u0645\u0639\u0629"\ + "\u0627\u0644\u0633\u0628\u062a"] + ::msgcat::mcset ar_SY MONTHS_ABBREV [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631"\ + "\u062d\u0632\u064a\u0631\u0627\u0646"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] + ::msgcat::mcset ar_SY MONTHS_FULL [list \ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0634\u0628\u0627\u0637"\ + "\u0622\u0630\u0627\u0631"\ + "\u0646\u064a\u0633\u0627\u0646"\ + "\u0646\u0648\u0627\u0631\u0627\u0646"\ + "\u062d\u0632\u064a\u0631"\ + "\u062a\u0645\u0648\u0632"\ + "\u0622\u0628"\ + "\u0623\u064a\u0644\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644"\ + "\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a"\ + "\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/be.msg b/mingw/lib/tcl8.5/msgs/be.msg new file mode 100644 index 00000000..379a1d7e --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/be.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset be DAYS_OF_WEEK_ABBREV [list \ + "\u043d\u0434"\ + "\u043f\u043d"\ + "\u0430\u0442"\ + "\u0441\u0440"\ + "\u0447\u0446"\ + "\u043f\u0442"\ + "\u0441\u0431"] + ::msgcat::mcset be DAYS_OF_WEEK_FULL [list \ + "\u043d\u044f\u0434\u0437\u0435\u043b\u044f"\ + "\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a"\ + "\u0430\u045e\u0442\u043e\u0440\u0430\u043a"\ + "\u0441\u0435\u0440\u0430\u0434\u0430"\ + "\u0447\u0430\u0446\u0432\u0435\u0440"\ + "\u043f\u044f\u0442\u043d\u0456\u0446\u0430"\ + "\u0441\u0443\u0431\u043e\u0442\u0430"] + ::msgcat::mcset be MONTHS_ABBREV [list \ + "\u0441\u0442\u0434"\ + "\u043b\u044e\u0442"\ + "\u0441\u043a\u0432"\ + "\u043a\u0440\u0441"\ + "\u043c\u0430\u0439"\ + "\u0447\u0440\u0432"\ + "\u043b\u043f\u043d"\ + "\u0436\u043d\u0432"\ + "\u0432\u0440\u0441"\ + "\u043a\u0441\u0442"\ + "\u043b\u0441\u0442"\ + "\u0441\u043d\u0436"\ + ""] + ::msgcat::mcset be MONTHS_FULL [list \ + "\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f"\ + "\u043b\u044e\u0442\u0430\u0433\u0430"\ + "\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430"\ + "\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430"\ + "\u043c\u0430\u044f"\ + "\u0447\u0440\u0432\u0435\u043d\u044f"\ + "\u043b\u0456\u043f\u0435\u043d\u044f"\ + "\u0436\u043d\u0456\u045e\u043d\u044f"\ + "\u0432\u0435\u0440\u0430\u0441\u043d\u044f"\ + "\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430"\ + "\u043b\u0438\u0441\u0442\u0430\u043f\u0430\u0434\u0430"\ + "\u0441\u043d\u0435\u0436\u043d\u044f"\ + ""] + ::msgcat::mcset be BCE "\u0434\u0430 \u043d.\u0435." + ::msgcat::mcset be CE "\u043d.\u0435." + ::msgcat::mcset be DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset be TIME_FORMAT "%k.%M.%S" + ::msgcat::mcset be DATE_TIME_FORMAT "%e.%m.%Y %k.%M.%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/bg.msg b/mingw/lib/tcl8.5/msgs/bg.msg new file mode 100644 index 00000000..ff177590 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/bg.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset bg DAYS_OF_WEEK_ABBREV [list \ + "\u041d\u0434"\ + "\u041f\u043d"\ + "\u0412\u0442"\ + "\u0421\u0440"\ + "\u0427\u0442"\ + "\u041f\u0442"\ + "\u0421\u0431"] + ::msgcat::mcset bg DAYS_OF_WEEK_FULL [list \ + "\u041d\u0435\u0434\u0435\u043b\u044f"\ + "\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a"\ + "\u0412\u0442\u043e\u0440\u043d\u0438\u043a"\ + "\u0421\u0440\u044f\u0434\u0430"\ + "\u0427\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a"\ + "\u041f\u0435\u0442\u044a\u043a"\ + "\u0421\u044a\u0431\u043e\u0442\u0430"] + ::msgcat::mcset bg MONTHS_ABBREV [list \ + "I"\ + "II"\ + "III"\ + "IV"\ + "V"\ + "VI"\ + "VII"\ + "VIII"\ + "IX"\ + "X"\ + "XI"\ + "XII"\ + ""] + ::msgcat::mcset bg MONTHS_FULL [list \ + "\u042f\u043d\u0443\u0430\u0440\u0438"\ + "\u0424\u0435\u0432\u0440\u0443\u0430\u0440\u0438"\ + "\u041c\u0430\u0440\u0442"\ + "\u0410\u043f\u0440\u0438\u043b"\ + "\u041c\u0430\u0439"\ + "\u042e\u043d\u0438"\ + "\u042e\u043b\u0438"\ + "\u0410\u0432\u0433\u0443\u0441\u0442"\ + "\u0421\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438"\ + "\u041e\u043a\u0442\u043e\u043c\u0432\u0440\u0438"\ + "\u041d\u043e\u0435\u043c\u0432\u0440\u0438"\ + "\u0414\u0435\u043a\u0435\u043c\u0432\u0440\u0438"\ + ""] + ::msgcat::mcset bg BCE "\u043f\u0440.\u043d.\u0435." + ::msgcat::mcset bg CE "\u043d.\u0435." + ::msgcat::mcset bg DATE_FORMAT "%Y-%m-%e" + ::msgcat::mcset bg TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset bg DATE_TIME_FORMAT "%Y-%m-%e %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/bn.msg b/mingw/lib/tcl8.5/msgs/bn.msg new file mode 100644 index 00000000..664b9d84 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/bn.msg @@ -0,0 +1,49 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset bn DAYS_OF_WEEK_ABBREV [list \ + "\u09b0\u09ac\u09bf"\ + "\u09b8\u09cb\u09ae"\ + "\u09ae\u0999\u0997\u09b2"\ + "\u09ac\u09c1\u09a7"\ + "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf"\ + "\u09b6\u09c1\u0995\u09cd\u09b0"\ + "\u09b6\u09a8\u09bf"] + ::msgcat::mcset bn DAYS_OF_WEEK_FULL [list \ + "\u09b0\u09ac\u09bf\u09ac\u09be\u09b0"\ + "\u09b8\u09cb\u09ae\u09ac\u09be\u09b0"\ + "\u09ae\u0999\u0997\u09b2\u09ac\u09be\u09b0"\ + "\u09ac\u09c1\u09a7\u09ac\u09be\u09b0"\ + "\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0"\ + "\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0"\ + "\u09b6\u09a8\u09bf\u09ac\u09be\u09b0"] + ::msgcat::mcset bn MONTHS_ABBREV [list \ + "\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0"\ + "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0"\ + "\u09ae\u09be\u09b0\u09cd\u099a"\ + "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2"\ + "\u09ae\u09c7"\ + "\u099c\u09c1\u09a8"\ + "\u099c\u09c1\u09b2\u09be\u0987"\ + "\u0986\u0997\u09b8\u09cd\u099f"\ + "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0"\ + "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0"\ + "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0"\ + "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"\ + ""] + ::msgcat::mcset bn MONTHS_FULL [list \ + "\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0"\ + "\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0"\ + "\u09ae\u09be\u09b0\u09cd\u099a"\ + "\u098f\u09aa\u09cd\u09b0\u09bf\u09b2"\ + "\u09ae\u09c7"\ + "\u099c\u09c1\u09a8"\ + "\u099c\u09c1\u09b2\u09be\u0987"\ + "\u0986\u0997\u09b8\u09cd\u099f"\ + "\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0"\ + "\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0"\ + "\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0"\ + "\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0"\ + ""] + ::msgcat::mcset bn AM "\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3" + ::msgcat::mcset bn PM "\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3" +} diff --git a/mingw/lib/tcl8.5/msgs/bn_in.msg b/mingw/lib/tcl8.5/msgs/bn_in.msg new file mode 100644 index 00000000..28c000f2 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/bn_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset bn_IN DATE_FORMAT "%A %d %b %Y" + ::msgcat::mcset bn_IN TIME_FORMAT_12 "%I:%M:%S %z" + ::msgcat::mcset bn_IN DATE_TIME_FORMAT "%A %d %b %Y %I:%M:%S %z %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ca.msg b/mingw/lib/tcl8.5/msgs/ca.msg new file mode 100644 index 00000000..36c97725 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ca.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ca DAYS_OF_WEEK_ABBREV [list \ + "dg."\ + "dl."\ + "dt."\ + "dc."\ + "dj."\ + "dv."\ + "ds."] + ::msgcat::mcset ca DAYS_OF_WEEK_FULL [list \ + "diumenge"\ + "dilluns"\ + "dimarts"\ + "dimecres"\ + "dijous"\ + "divendres"\ + "dissabte"] + ::msgcat::mcset ca MONTHS_ABBREV [list \ + "gen."\ + "feb."\ + "mar\u00e7"\ + "abr."\ + "maig"\ + "juny"\ + "jul."\ + "ag."\ + "set."\ + "oct."\ + "nov."\ + "des."\ + ""] + ::msgcat::mcset ca MONTHS_FULL [list \ + "gener"\ + "febrer"\ + "mar\u00e7"\ + "abril"\ + "maig"\ + "juny"\ + "juliol"\ + "agost"\ + "setembre"\ + "octubre"\ + "novembre"\ + "desembre"\ + ""] + ::msgcat::mcset ca DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset ca TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset ca DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/cs.msg b/mingw/lib/tcl8.5/msgs/cs.msg new file mode 100644 index 00000000..8db8bdd8 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/cs.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset cs DAYS_OF_WEEK_ABBREV [list \ + "Ne"\ + "Po"\ + "\u00dat"\ + "St"\ + "\u010ct"\ + "P\u00e1"\ + "So"] + ::msgcat::mcset cs DAYS_OF_WEEK_FULL [list \ + "Ned\u011ble"\ + "Pond\u011bl\u00ed"\ + "\u00dater\u00fd"\ + "St\u0159eda"\ + "\u010ctvrtek"\ + "P\u00e1tek"\ + "Sobota"] + ::msgcat::mcset cs MONTHS_ABBREV [list \ + "I"\ + "II"\ + "III"\ + "IV"\ + "V"\ + "VI"\ + "VII"\ + "VIII"\ + "IX"\ + "X"\ + "XI"\ + "XII"\ + ""] + ::msgcat::mcset cs MONTHS_FULL [list \ + "leden"\ + "\u00fanor"\ + "b\u0159ezen"\ + "duben"\ + "kv\u011bten"\ + "\u010derven"\ + "\u010dervenec"\ + "srpen"\ + "z\u00e1\u0159\u00ed"\ + "\u0159\u00edjen"\ + "listopad"\ + "prosinec"\ + ""] + ::msgcat::mcset cs BCE "p\u0159.Kr." + ::msgcat::mcset cs CE "po Kr." + ::msgcat::mcset cs AM "dop." + ::msgcat::mcset cs PM "odp." + ::msgcat::mcset cs DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset cs TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset cs DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/da.msg b/mingw/lib/tcl8.5/msgs/da.msg new file mode 100644 index 00000000..e4fec7f0 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/da.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset da DAYS_OF_WEEK_ABBREV [list \ + "s\u00f8"\ + "ma"\ + "ti"\ + "on"\ + "to"\ + "fr"\ + "l\u00f8"] + ::msgcat::mcset da DAYS_OF_WEEK_FULL [list \ + "s\u00f8ndag"\ + "mandag"\ + "tirsdag"\ + "onsdag"\ + "torsdag"\ + "fredag"\ + "l\u00f8rdag"] + ::msgcat::mcset da MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "maj"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset da MONTHS_FULL [list \ + "januar"\ + "februar"\ + "marts"\ + "april"\ + "maj"\ + "juni"\ + "juli"\ + "august"\ + "september"\ + "oktober"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset da BCE "f.Kr." + ::msgcat::mcset da CE "e.Kr." + ::msgcat::mcset da DATE_FORMAT "%d-%m-%Y" + ::msgcat::mcset da TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset da DATE_TIME_FORMAT "%d-%m-%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/de.msg b/mingw/lib/tcl8.5/msgs/de.msg new file mode 100644 index 00000000..9eb31454 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/de.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset de DAYS_OF_WEEK_ABBREV [list \ + "So"\ + "Mo"\ + "Di"\ + "Mi"\ + "Do"\ + "Fr"\ + "Sa"] + ::msgcat::mcset de DAYS_OF_WEEK_FULL [list \ + "Sonntag"\ + "Montag"\ + "Dienstag"\ + "Mittwoch"\ + "Donnerstag"\ + "Freitag"\ + "Samstag"] + ::msgcat::mcset de MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mrz"\ + "Apr"\ + "Mai"\ + "Jun"\ + "Jul"\ + "Aug"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dez"\ + ""] + ::msgcat::mcset de MONTHS_FULL [list \ + "Januar"\ + "Februar"\ + "M\u00e4rz"\ + "April"\ + "Mai"\ + "Juni"\ + "Juli"\ + "August"\ + "September"\ + "Oktober"\ + "November"\ + "Dezember"\ + ""] + ::msgcat::mcset de BCE "v. Chr." + ::msgcat::mcset de CE "n. Chr." + ::msgcat::mcset de AM "vorm." + ::msgcat::mcset de PM "nachm." + ::msgcat::mcset de DATE_FORMAT "%d.%m.%Y" + ::msgcat::mcset de TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset de DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/de_at.msg b/mingw/lib/tcl8.5/msgs/de_at.msg new file mode 100644 index 00000000..61bc2666 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/de_at.msg @@ -0,0 +1,35 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset de_AT MONTHS_ABBREV [list \ + "J\u00e4n"\ + "Feb"\ + "M\u00e4r"\ + "Apr"\ + "Mai"\ + "Jun"\ + "Jul"\ + "Aug"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dez"\ + ""] + ::msgcat::mcset de_AT MONTHS_FULL [list \ + "J\u00e4nner"\ + "Februar"\ + "M\u00e4rz"\ + "April"\ + "Mai"\ + "Juni"\ + "Juli"\ + "August"\ + "September"\ + "Oktober"\ + "November"\ + "Dezember"\ + ""] + ::msgcat::mcset de_AT DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset de_AT TIME_FORMAT "%T" + ::msgcat::mcset de_AT TIME_FORMAT_12 "%T" + ::msgcat::mcset de_AT DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/de_be.msg b/mingw/lib/tcl8.5/msgs/de_be.msg new file mode 100644 index 00000000..3614763a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/de_be.msg @@ -0,0 +1,53 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset de_BE DAYS_OF_WEEK_ABBREV [list \ + "Son"\ + "Mon"\ + "Die"\ + "Mit"\ + "Don"\ + "Fre"\ + "Sam"] + ::msgcat::mcset de_BE DAYS_OF_WEEK_FULL [list \ + "Sonntag"\ + "Montag"\ + "Dienstag"\ + "Mittwoch"\ + "Donnerstag"\ + "Freitag"\ + "Samstag"] + ::msgcat::mcset de_BE MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "M\u00e4r"\ + "Apr"\ + "Mai"\ + "Jun"\ + "Jul"\ + "Aug"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dez"\ + ""] + ::msgcat::mcset de_BE MONTHS_FULL [list \ + "Januar"\ + "Februar"\ + "M\u00e4rz"\ + "April"\ + "Mai"\ + "Juni"\ + "Juli"\ + "August"\ + "September"\ + "Oktober"\ + "November"\ + "Dezember"\ + ""] + ::msgcat::mcset de_BE AM "vorm" + ::msgcat::mcset de_BE PM "nachm" + ::msgcat::mcset de_BE DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset de_BE TIME_FORMAT "%T" + ::msgcat::mcset de_BE TIME_FORMAT_12 "%T" + ::msgcat::mcset de_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/el.msg b/mingw/lib/tcl8.5/msgs/el.msg new file mode 100644 index 00000000..ac19f62d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/el.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset el DAYS_OF_WEEK_ABBREV [list \ + "\u039a\u03c5\u03c1"\ + "\u0394\u03b5\u03c5"\ + "\u03a4\u03c1\u03b9"\ + "\u03a4\u03b5\u03c4"\ + "\u03a0\u03b5\u03bc"\ + "\u03a0\u03b1\u03c1"\ + "\u03a3\u03b1\u03b2"] + ::msgcat::mcset el DAYS_OF_WEEK_FULL [list \ + "\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae"\ + "\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1"\ + "\u03a4\u03c1\u03af\u03c4\u03b7"\ + "\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7"\ + "\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7"\ + "\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae"\ + "\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf"] + ::msgcat::mcset el MONTHS_ABBREV [list \ + "\u0399\u03b1\u03bd"\ + "\u03a6\u03b5\u03b2"\ + "\u039c\u03b1\u03c1"\ + "\u0391\u03c0\u03c1"\ + "\u039c\u03b1\u03ca"\ + "\u0399\u03bf\u03c5\u03bd"\ + "\u0399\u03bf\u03c5\u03bb"\ + "\u0391\u03c5\u03b3"\ + "\u03a3\u03b5\u03c0"\ + "\u039f\u03ba\u03c4"\ + "\u039d\u03bf\u03b5"\ + "\u0394\u03b5\u03ba"\ + ""] + ::msgcat::mcset el MONTHS_FULL [list \ + "\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2"\ + "\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2"\ + "\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2"\ + "\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2"\ + "\u039c\u03ac\u03ca\u03bf\u03c2"\ + "\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2"\ + "\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2"\ + "\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2"\ + "\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\ + "\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2"\ + "\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\ + "\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2"\ + ""] + ::msgcat::mcset el AM "\u03c0\u03bc" + ::msgcat::mcset el PM "\u03bc\u03bc" + ::msgcat::mcset el DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset el TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset el DATE_TIME_FORMAT "%e/%m/%Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_au.msg b/mingw/lib/tcl8.5/msgs/en_au.msg new file mode 100644 index 00000000..7f9870c9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_au.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_AU DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset en_AU TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset en_AU TIME_FORMAT_12 "%I:%M:%S %P %z" + ::msgcat::mcset en_AU DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_be.msg b/mingw/lib/tcl8.5/msgs/en_be.msg new file mode 100644 index 00000000..5072986d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_be.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_BE DATE_FORMAT "%d %b %Y" + ::msgcat::mcset en_BE TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset en_BE TIME_FORMAT_12 "%k h %M min %S s %z" + ::msgcat::mcset en_BE DATE_TIME_FORMAT "%d %b %Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_bw.msg b/mingw/lib/tcl8.5/msgs/en_bw.msg new file mode 100644 index 00000000..8fd20c7e --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_bw.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_BW DATE_FORMAT "%d %B %Y" + ::msgcat::mcset en_BW TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset en_BW DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_ca.msg b/mingw/lib/tcl8.5/msgs/en_ca.msg new file mode 100644 index 00000000..278efe71 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_ca.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_CA DATE_FORMAT "%d/%m/%y" + ::msgcat::mcset en_CA TIME_FORMAT "%r" + ::msgcat::mcset en_CA TIME_FORMAT_12 "%I:%M:%S %p" + ::msgcat::mcset en_CA DATE_TIME_FORMAT "%a %d %b %Y %r %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_gb.msg b/mingw/lib/tcl8.5/msgs/en_gb.msg new file mode 100644 index 00000000..5c61c43c --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_gb.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_GB DATE_FORMAT "%d/%m/%y" + ::msgcat::mcset en_GB TIME_FORMAT "%T" + ::msgcat::mcset en_GB TIME_FORMAT_12 "%T" + ::msgcat::mcset en_GB DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_hk.msg b/mingw/lib/tcl8.5/msgs/en_hk.msg new file mode 100644 index 00000000..8b33bc06 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_hk.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_HK AM "AM" + ::msgcat::mcset en_HK PM "PM" + ::msgcat::mcset en_HK DATE_FORMAT "%B %e, %Y" + ::msgcat::mcset en_HK TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset en_HK DATE_TIME_FORMAT "%B %e, %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_ie.msg b/mingw/lib/tcl8.5/msgs/en_ie.msg new file mode 100644 index 00000000..ba621cf2 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_ie.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_IE DATE_FORMAT "%d/%m/%y" + ::msgcat::mcset en_IE TIME_FORMAT "%T" + ::msgcat::mcset en_IE TIME_FORMAT_12 "%T" + ::msgcat::mcset en_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_in.msg b/mingw/lib/tcl8.5/msgs/en_in.msg new file mode 100644 index 00000000..a1f155d2 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_in.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_IN AM "AM" + ::msgcat::mcset en_IN PM "PM" + ::msgcat::mcset en_IN DATE_FORMAT "%d %B %Y" + ::msgcat::mcset en_IN TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset en_IN DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_nz.msg b/mingw/lib/tcl8.5/msgs/en_nz.msg new file mode 100644 index 00000000..b419017a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_nz.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_NZ DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset en_NZ TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset en_NZ TIME_FORMAT_12 "%I:%M:%S %P %z" + ::msgcat::mcset en_NZ DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_ph.msg b/mingw/lib/tcl8.5/msgs/en_ph.msg new file mode 100644 index 00000000..682666d5 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_ph.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_PH AM "AM" + ::msgcat::mcset en_PH PM "PM" + ::msgcat::mcset en_PH DATE_FORMAT "%B %e, %Y" + ::msgcat::mcset en_PH TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset en_PH DATE_TIME_FORMAT "%B %e, %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_sg.msg b/mingw/lib/tcl8.5/msgs/en_sg.msg new file mode 100644 index 00000000..4dc5b1d3 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_sg.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_SG DATE_FORMAT "%d %b %Y" + ::msgcat::mcset en_SG TIME_FORMAT_12 "%P %I:%M:%S" + ::msgcat::mcset en_SG DATE_TIME_FORMAT "%d %b %Y %P %I:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_za.msg b/mingw/lib/tcl8.5/msgs/en_za.msg new file mode 100644 index 00000000..fe43797f --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_za.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_ZA DATE_FORMAT "%Y/%m/%d" + ::msgcat::mcset en_ZA TIME_FORMAT_12 "%I:%M:%S" + ::msgcat::mcset en_ZA DATE_TIME_FORMAT "%Y/%m/%d %I:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/en_zw.msg b/mingw/lib/tcl8.5/msgs/en_zw.msg new file mode 100644 index 00000000..2a5804fa --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/en_zw.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset en_ZW DATE_FORMAT "%d %B %Y" + ::msgcat::mcset en_ZW TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset en_ZW DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/eo.msg b/mingw/lib/tcl8.5/msgs/eo.msg new file mode 100644 index 00000000..1d2a24fe --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/eo.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset eo DAYS_OF_WEEK_ABBREV [list \ + "di"\ + "lu"\ + "ma"\ + "me"\ + "\u0135a"\ + "ve"\ + "sa"] + ::msgcat::mcset eo DAYS_OF_WEEK_FULL [list \ + "diman\u0109o"\ + "lundo"\ + "mardo"\ + "merkredo"\ + "\u0135a\u016ddo"\ + "vendredo"\ + "sabato"] + ::msgcat::mcset eo MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "maj"\ + "jun"\ + "jul"\ + "a\u016dg"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset eo MONTHS_FULL [list \ + "januaro"\ + "februaro"\ + "marto"\ + "aprilo"\ + "majo"\ + "junio"\ + "julio"\ + "a\u016dgusto"\ + "septembro"\ + "oktobro"\ + "novembro"\ + "decembro"\ + ""] + ::msgcat::mcset eo BCE "aK" + ::msgcat::mcset eo CE "pK" + ::msgcat::mcset eo AM "atm" + ::msgcat::mcset eo PM "ptm" + ::msgcat::mcset eo DATE_FORMAT "%Y-%b-%d" + ::msgcat::mcset eo TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset eo DATE_TIME_FORMAT "%Y-%b-%d %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es.msg b/mingw/lib/tcl8.5/msgs/es.msg new file mode 100644 index 00000000..a24f0a1b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es DAYS_OF_WEEK_ABBREV [list \ + "dom"\ + "lun"\ + "mar"\ + "mi\u00e9"\ + "jue"\ + "vie"\ + "s\u00e1b"] + ::msgcat::mcset es DAYS_OF_WEEK_FULL [list \ + "domingo"\ + "lunes"\ + "martes"\ + "mi\u00e9rcoles"\ + "jueves"\ + "viernes"\ + "s\u00e1bado"] + ::msgcat::mcset es MONTHS_ABBREV [list \ + "ene"\ + "feb"\ + "mar"\ + "abr"\ + "may"\ + "jun"\ + "jul"\ + "ago"\ + "sep"\ + "oct"\ + "nov"\ + "dic"\ + ""] + ::msgcat::mcset es MONTHS_FULL [list \ + "enero"\ + "febrero"\ + "marzo"\ + "abril"\ + "mayo"\ + "junio"\ + "julio"\ + "agosto"\ + "septiembre"\ + "octubre"\ + "noviembre"\ + "diciembre"\ + ""] + ::msgcat::mcset es BCE "a.C." + ::msgcat::mcset es CE "d.C." + ::msgcat::mcset es DATE_FORMAT "%e de %B de %Y" + ::msgcat::mcset es TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset es DATE_TIME_FORMAT "%e de %B de %Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_ar.msg b/mingw/lib/tcl8.5/msgs/es_ar.msg new file mode 100644 index 00000000..7d350274 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_ar.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_AR DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_AR TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset es_AR DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_bo.msg b/mingw/lib/tcl8.5/msgs/es_bo.msg new file mode 100644 index 00000000..498ad0d1 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_bo.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_BO DATE_FORMAT "%d-%m-%Y" + ::msgcat::mcset es_BO TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_BO DATE_TIME_FORMAT "%d-%m-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_cl.msg b/mingw/lib/tcl8.5/msgs/es_cl.msg new file mode 100644 index 00000000..31d465c9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_cl.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_CL DATE_FORMAT "%d-%m-%Y" + ::msgcat::mcset es_CL TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_CL DATE_TIME_FORMAT "%d-%m-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_co.msg b/mingw/lib/tcl8.5/msgs/es_co.msg new file mode 100644 index 00000000..77e57f0b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_co.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_CO DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset es_CO TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_CO DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_cr.msg b/mingw/lib/tcl8.5/msgs/es_cr.msg new file mode 100644 index 00000000..7a652fa4 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_cr.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_CR DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_CR TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_CR DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_do.msg b/mingw/lib/tcl8.5/msgs/es_do.msg new file mode 100644 index 00000000..0e283da8 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_do.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_DO DATE_FORMAT "%m/%d/%Y" + ::msgcat::mcset es_DO TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_DO DATE_TIME_FORMAT "%m/%d/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_ec.msg b/mingw/lib/tcl8.5/msgs/es_ec.msg new file mode 100644 index 00000000..9e921e02 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_ec.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_EC DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_EC TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_EC DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_gt.msg b/mingw/lib/tcl8.5/msgs/es_gt.msg new file mode 100644 index 00000000..ecd6faf9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_gt.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_GT DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset es_GT TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_GT DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_hn.msg b/mingw/lib/tcl8.5/msgs/es_hn.msg new file mode 100644 index 00000000..a758ca2b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_hn.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_HN DATE_FORMAT "%m-%d-%Y" + ::msgcat::mcset es_HN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_HN DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_mx.msg b/mingw/lib/tcl8.5/msgs/es_mx.msg new file mode 100644 index 00000000..7cfb545b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_mx.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_MX DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset es_MX TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_MX DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_ni.msg b/mingw/lib/tcl8.5/msgs/es_ni.msg new file mode 100644 index 00000000..7c394953 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_ni.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_NI DATE_FORMAT "%m-%d-%Y" + ::msgcat::mcset es_NI TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_NI DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_pa.msg b/mingw/lib/tcl8.5/msgs/es_pa.msg new file mode 100644 index 00000000..cecacdce --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_pa.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_PA DATE_FORMAT "%m/%d/%Y" + ::msgcat::mcset es_PA TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_PA DATE_TIME_FORMAT "%m/%d/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_pe.msg b/mingw/lib/tcl8.5/msgs/es_pe.msg new file mode 100644 index 00000000..9f90595f --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_pe.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_PE DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_PE TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_PE DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_pr.msg b/mingw/lib/tcl8.5/msgs/es_pr.msg new file mode 100644 index 00000000..8511b126 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_pr.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_PR DATE_FORMAT "%m-%d-%Y" + ::msgcat::mcset es_PR TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_PR DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_py.msg b/mingw/lib/tcl8.5/msgs/es_py.msg new file mode 100644 index 00000000..aa93d36b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_py.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_PY DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_PY TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_PY DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_sv.msg b/mingw/lib/tcl8.5/msgs/es_sv.msg new file mode 100644 index 00000000..fc7954d6 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_sv.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_SV DATE_FORMAT "%m-%d-%Y" + ::msgcat::mcset es_SV TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_SV DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_uy.msg b/mingw/lib/tcl8.5/msgs/es_uy.msg new file mode 100644 index 00000000..b33525c0 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_uy.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_UY DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_UY TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_UY DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/es_ve.msg b/mingw/lib/tcl8.5/msgs/es_ve.msg new file mode 100644 index 00000000..7c2a7b0a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/es_ve.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset es_VE DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset es_VE TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset es_VE DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/et.msg b/mingw/lib/tcl8.5/msgs/et.msg new file mode 100644 index 00000000..8d32e9e5 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/et.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset et DAYS_OF_WEEK_ABBREV [list \ + "P"\ + "E"\ + "T"\ + "K"\ + "N"\ + "R"\ + "L"] + ::msgcat::mcset et DAYS_OF_WEEK_FULL [list \ + "p\u00fchap\u00e4ev"\ + "esmasp\u00e4ev"\ + "teisip\u00e4ev"\ + "kolmap\u00e4ev"\ + "neljap\u00e4ev"\ + "reede"\ + "laup\u00e4ev"] + ::msgcat::mcset et MONTHS_ABBREV [list \ + "Jaan"\ + "Veebr"\ + "M\u00e4rts"\ + "Apr"\ + "Mai"\ + "Juuni"\ + "Juuli"\ + "Aug"\ + "Sept"\ + "Okt"\ + "Nov"\ + "Dets"\ + ""] + ::msgcat::mcset et MONTHS_FULL [list \ + "Jaanuar"\ + "Veebruar"\ + "M\u00e4rts"\ + "Aprill"\ + "Mai"\ + "Juuni"\ + "Juuli"\ + "August"\ + "September"\ + "Oktoober"\ + "November"\ + "Detsember"\ + ""] + ::msgcat::mcset et BCE "e.m.a." + ::msgcat::mcset et CE "m.a.j." + ::msgcat::mcset et DATE_FORMAT "%e-%m-%Y" + ::msgcat::mcset et TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset et DATE_TIME_FORMAT "%e-%m-%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/eu.msg b/mingw/lib/tcl8.5/msgs/eu.msg new file mode 100644 index 00000000..cf708b6b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/eu.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset eu DAYS_OF_WEEK_ABBREV [list \ + "igandea"\ + "astelehena"\ + "asteartea"\ + "asteazkena"\ + "osteguna"\ + "ostirala"\ + "larunbata"] + ::msgcat::mcset eu DAYS_OF_WEEK_FULL [list \ + "igandea"\ + "astelehena"\ + "asteartea"\ + "asteazkena"\ + "osteguna"\ + "ostirala"\ + "larunbata"] + ::msgcat::mcset eu MONTHS_ABBREV [list \ + "urt"\ + "ots"\ + "mar"\ + "api"\ + "mai"\ + "eka"\ + "uzt"\ + "abu"\ + "ira"\ + "urr"\ + "aza"\ + "abe"\ + ""] + ::msgcat::mcset eu MONTHS_FULL [list \ + "urtarrila"\ + "otsaila"\ + "martxoa"\ + "apirila"\ + "maiatza"\ + "ekaina"\ + "uztaila"\ + "abuztua"\ + "iraila"\ + "urria"\ + "azaroa"\ + "abendua"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/eu_es.msg b/mingw/lib/tcl8.5/msgs/eu_es.msg new file mode 100644 index 00000000..2694418d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/eu_es.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset eu_ES DATE_FORMAT "%a, %Yeko %bren %da" + ::msgcat::mcset eu_ES TIME_FORMAT "%T" + ::msgcat::mcset eu_ES TIME_FORMAT_12 "%T" + ::msgcat::mcset eu_ES DATE_TIME_FORMAT "%y-%m-%d %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fa.msg b/mingw/lib/tcl8.5/msgs/fa.msg new file mode 100644 index 00000000..89b2f908 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fa.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fa DAYS_OF_WEEK_ABBREV [list \ + "\u06cc\u2214"\ + "\u062f\u2214"\ + "\u0633\u2214"\ + "\u0686\u2214"\ + "\u067e\u2214"\ + "\u062c\u2214"\ + "\u0634\u2214"] + ::msgcat::mcset fa DAYS_OF_WEEK_FULL [list \ + "\u06cc\u06cc\u200c\u0634\u0646\u0628\u0647"\ + "\u062f\u0648\u0634\u0646\u0628\u0647"\ + "\u0633\u0647\u200c\u0634\u0646\u0628\u0647"\ + "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647"\ + "\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647"\ + "\u062c\u0645\u0639\u0647"\ + "\u0634\u0646\u0628\u0647"] + ::msgcat::mcset fa MONTHS_ABBREV [list \ + "\u0698\u0627\u0646"\ + "\u0641\u0648\u0631"\ + "\u0645\u0627\u0631"\ + "\u0622\u0648\u0631"\ + "\u0645\u0640\u0647"\ + "\u0698\u0648\u0646"\ + "\u0698\u0648\u06cc"\ + "\u0627\u0648\u062a"\ + "\u0633\u067e\u062a"\ + "\u0627\u0643\u062a"\ + "\u0646\u0648\u0627"\ + "\u062f\u0633\u0627"\ + ""] + ::msgcat::mcset fa MONTHS_FULL [list \ + "\u0698\u0627\u0646\u0648\u06cc\u0647"\ + "\u0641\u0648\u0631\u0648\u06cc\u0647"\ + "\u0645\u0627\u0631\u0633"\ + "\u0622\u0648\u0631\u06cc\u0644"\ + "\u0645\u0647"\ + "\u0698\u0648\u0626\u0646"\ + "\u0698\u0648\u0626\u06cc\u0647"\ + "\u0627\u0648\u062a"\ + "\u0633\u067e\u062a\u0627\u0645\u0628\u0631"\ + "\u0627\u0643\u062a\u0628\u0631"\ + "\u0646\u0648\u0627\u0645\u0628\u0631"\ + "\u062f\u0633\u0627\u0645\u0628\u0631"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/fa_in.msg b/mingw/lib/tcl8.5/msgs/fa_in.msg new file mode 100644 index 00000000..adc9e91d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fa_in.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fa_IN DAYS_OF_WEEK_ABBREV [list \ + "\u06cc\u2214"\ + "\u062f\u2214"\ + "\u0633\u2214"\ + "\u0686\u2214"\ + "\u067e\u2214"\ + "\u062c\u2214"\ + "\u0634\u2214"] + ::msgcat::mcset fa_IN DAYS_OF_WEEK_FULL [list \ + "\u06cc\u06cc\u200c\u0634\u0646\u0628\u0647"\ + "\u062f\u0648\u0634\u0646\u0628\u0647"\ + "\u0633\u0647\u200c\u0634\u0646\u0628\u0647"\ + "\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647"\ + "\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647"\ + "\u062c\u0645\u0639\u0647"\ + "\u0634\u0646\u0628\u0647"] + ::msgcat::mcset fa_IN MONTHS_ABBREV [list \ + "\u0698\u0627\u0646"\ + "\u0641\u0648\u0631"\ + "\u0645\u0627\u0631"\ + "\u0622\u0648\u0631"\ + "\u0645\u0640\u0647"\ + "\u0698\u0648\u0646"\ + "\u0698\u0648\u06cc"\ + "\u0627\u0648\u062a"\ + "\u0633\u067e\u062a"\ + "\u0627\u0643\u062a"\ + "\u0646\u0648\u0627"\ + "\u062f\u0633\u0627"\ + ""] + ::msgcat::mcset fa_IN MONTHS_FULL [list \ + "\u0698\u0627\u0646\u0648\u06cc\u0647"\ + "\u0641\u0648\u0631\u0648\u06cc\u0647"\ + "\u0645\u0627\u0631\u0633"\ + "\u0622\u0648\u0631\u06cc\u0644"\ + "\u0645\u0647"\ + "\u0698\u0648\u0626\u0646"\ + "\u0698\u0648\u0626\u06cc\u0647"\ + "\u0627\u0648\u062a"\ + "\u0633\u067e\u062a\u0627\u0645\u0628\u0631"\ + "\u0627\u0643\u062a\u0628\u0631"\ + "\u0646\u0648\u0627\u0645\u0628\u0631"\ + "\u062f\u0633\u0627\u0645\u0628\u0631"\ + ""] + ::msgcat::mcset fa_IN AM "\u0635\u0628\u062d" + ::msgcat::mcset fa_IN PM "\u0639\u0635\u0631" + ::msgcat::mcset fa_IN DATE_FORMAT "%A %d %B %Y" + ::msgcat::mcset fa_IN TIME_FORMAT_12 "%I:%M:%S %z" + ::msgcat::mcset fa_IN DATE_TIME_FORMAT "%A %d %B %Y %I:%M:%S %z %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fa_ir.msg b/mingw/lib/tcl8.5/msgs/fa_ir.msg new file mode 100644 index 00000000..597ce9d7 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fa_ir.msg @@ -0,0 +1,9 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fa_IR AM "\u0635\u0628\u062d" + ::msgcat::mcset fa_IR PM "\u0639\u0635\u0631" + ::msgcat::mcset fa_IR DATE_FORMAT "%d\u2044%m\u2044%Y" + ::msgcat::mcset fa_IR TIME_FORMAT "%S:%M:%H" + ::msgcat::mcset fa_IR TIME_FORMAT_12 "%S:%M:%l %P" + ::msgcat::mcset fa_IR DATE_TIME_FORMAT "%d\u2044%m\u2044%Y %S:%M:%H %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fi.msg b/mingw/lib/tcl8.5/msgs/fi.msg new file mode 100644 index 00000000..acabba09 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fi.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fi DAYS_OF_WEEK_ABBREV [list \ + "su"\ + "ma"\ + "ti"\ + "ke"\ + "to"\ + "pe"\ + "la"] + ::msgcat::mcset fi DAYS_OF_WEEK_FULL [list \ + "sunnuntai"\ + "maanantai"\ + "tiistai"\ + "keskiviikko"\ + "torstai"\ + "perjantai"\ + "lauantai"] + ::msgcat::mcset fi MONTHS_ABBREV [list \ + "tammi"\ + "helmi"\ + "maalis"\ + "huhti"\ + "touko"\ + "kes\u00e4"\ + "hein\u00e4"\ + "elo"\ + "syys"\ + "loka"\ + "marras"\ + "joulu"\ + ""] + ::msgcat::mcset fi MONTHS_FULL [list \ + "tammikuu"\ + "helmikuu"\ + "maaliskuu"\ + "huhtikuu"\ + "toukokuu"\ + "kes\u00e4kuu"\ + "hein\u00e4kuu"\ + "elokuu"\ + "syyskuu"\ + "lokakuu"\ + "marraskuu"\ + "joulukuu"\ + ""] + ::msgcat::mcset fi DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset fi TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset fi DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fo.msg b/mingw/lib/tcl8.5/msgs/fo.msg new file mode 100644 index 00000000..4696e628 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fo.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fo DAYS_OF_WEEK_ABBREV [list \ + "sun"\ + "m\u00e1n"\ + "t\u00fds"\ + "mik"\ + "h\u00f3s"\ + "fr\u00ed"\ + "ley"] + ::msgcat::mcset fo DAYS_OF_WEEK_FULL [list \ + "sunnudagur"\ + "m\u00e1nadagur"\ + "t\u00fdsdagur"\ + "mikudagur"\ + "h\u00f3sdagur"\ + "fr\u00edggjadagur"\ + "leygardagur"] + ::msgcat::mcset fo MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "mai"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "des"\ + ""] + ::msgcat::mcset fo MONTHS_FULL [list \ + "januar"\ + "februar"\ + "mars"\ + "apr\u00edl"\ + "mai"\ + "juni"\ + "juli"\ + "august"\ + "september"\ + "oktober"\ + "november"\ + "desember"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/fo_fo.msg b/mingw/lib/tcl8.5/msgs/fo_fo.msg new file mode 100644 index 00000000..2392b8e6 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fo_fo.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fo_FO DATE_FORMAT "%d/%m-%Y" + ::msgcat::mcset fo_FO TIME_FORMAT "%T" + ::msgcat::mcset fo_FO TIME_FORMAT_12 "%T" + ::msgcat::mcset fo_FO DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fr.msg b/mingw/lib/tcl8.5/msgs/fr.msg new file mode 100644 index 00000000..55b19bf9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fr.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fr DAYS_OF_WEEK_ABBREV [list \ + "dim."\ + "lun."\ + "mar."\ + "mer."\ + "jeu."\ + "ven."\ + "sam."] + ::msgcat::mcset fr DAYS_OF_WEEK_FULL [list \ + "dimanche"\ + "lundi"\ + "mardi"\ + "mercredi"\ + "jeudi"\ + "vendredi"\ + "samedi"] + ::msgcat::mcset fr MONTHS_ABBREV [list \ + "janv."\ + "f\u00e9vr."\ + "mars"\ + "avr."\ + "mai"\ + "juin"\ + "juil."\ + "ao\u00fbt"\ + "sept."\ + "oct."\ + "nov."\ + "d\u00e9c."\ + ""] + ::msgcat::mcset fr MONTHS_FULL [list \ + "janvier"\ + "f\u00e9vrier"\ + "mars"\ + "avril"\ + "mai"\ + "juin"\ + "juillet"\ + "ao\u00fbt"\ + "septembre"\ + "octobre"\ + "novembre"\ + "d\u00e9cembre"\ + ""] + ::msgcat::mcset fr BCE "av. J.-C." + ::msgcat::mcset fr CE "ap. J.-C." + ::msgcat::mcset fr DATE_FORMAT "%e %B %Y" + ::msgcat::mcset fr TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset fr DATE_TIME_FORMAT "%e %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fr_be.msg b/mingw/lib/tcl8.5/msgs/fr_be.msg new file mode 100644 index 00000000..cdb13bd7 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fr_be.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fr_BE DATE_FORMAT "%d/%m/%y" + ::msgcat::mcset fr_BE TIME_FORMAT "%T" + ::msgcat::mcset fr_BE TIME_FORMAT_12 "%T" + ::msgcat::mcset fr_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fr_ca.msg b/mingw/lib/tcl8.5/msgs/fr_ca.msg new file mode 100644 index 00000000..00ccfffc --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fr_ca.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fr_CA DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset fr_CA TIME_FORMAT "%T" + ::msgcat::mcset fr_CA TIME_FORMAT_12 "%T" + ::msgcat::mcset fr_CA DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/fr_ch.msg b/mingw/lib/tcl8.5/msgs/fr_ch.msg new file mode 100644 index 00000000..7e2bac73 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/fr_ch.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset fr_CH DATE_FORMAT "%d. %m. %y" + ::msgcat::mcset fr_CH TIME_FORMAT "%T" + ::msgcat::mcset fr_CH TIME_FORMAT_12 "%T" + ::msgcat::mcset fr_CH DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ga.msg b/mingw/lib/tcl8.5/msgs/ga.msg new file mode 100644 index 00000000..6edf13aa --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ga.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ga DAYS_OF_WEEK_ABBREV [list \ + "Domh"\ + "Luan"\ + "M\u00e1irt"\ + "C\u00e9ad"\ + "D\u00e9ar"\ + "Aoine"\ + "Sath"] + ::msgcat::mcset ga DAYS_OF_WEEK_FULL [list \ + "D\u00e9 Domhnaigh"\ + "D\u00e9 Luain"\ + "D\u00e9 M\u00e1irt"\ + "D\u00e9 C\u00e9adaoin"\ + "D\u00e9ardaoin"\ + "D\u00e9 hAoine"\ + "D\u00e9 Sathairn"] + ::msgcat::mcset ga MONTHS_ABBREV [list \ + "Ean"\ + "Feabh"\ + "M\u00e1rta"\ + "Aib"\ + "Beal"\ + "Meith"\ + "I\u00fail"\ + "L\u00fan"\ + "MF\u00f3mh"\ + "DF\u00f3mh"\ + "Samh"\ + "Noll"\ + ""] + ::msgcat::mcset ga MONTHS_FULL [list \ + "Ean\u00e1ir"\ + "Feabhra"\ + "M\u00e1rta"\ + "Aibre\u00e1n"\ + "M\u00ed na Bealtaine"\ + "Meith"\ + "I\u00fail"\ + "L\u00fanasa"\ + "Me\u00e1n F\u00f3mhair"\ + "Deireadh F\u00f3mhair"\ + "M\u00ed na Samhna"\ + "M\u00ed na Nollag"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/ga_ie.msg b/mingw/lib/tcl8.5/msgs/ga_ie.msg new file mode 100644 index 00000000..b6acbbc2 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ga_ie.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ga_IE DATE_FORMAT "%d.%m.%y" + ::msgcat::mcset ga_IE TIME_FORMAT "%T" + ::msgcat::mcset ga_IE TIME_FORMAT_12 "%T" + ::msgcat::mcset ga_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/gl.msg b/mingw/lib/tcl8.5/msgs/gl.msg new file mode 100644 index 00000000..4b869e85 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/gl.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset gl DAYS_OF_WEEK_ABBREV [list \ + "Dom"\ + "Lun"\ + "Mar"\ + "M\u00e9r"\ + "Xov"\ + "Ven"\ + "S\u00e1b"] + ::msgcat::mcset gl DAYS_OF_WEEK_FULL [list \ + "Domingo"\ + "Luns"\ + "Martes"\ + "M\u00e9rcores"\ + "Xoves"\ + "Venres"\ + "S\u00e1bado"] + ::msgcat::mcset gl MONTHS_ABBREV [list \ + "Xan"\ + "Feb"\ + "Mar"\ + "Abr"\ + "Mai"\ + "Xu\u00f1"\ + "Xul"\ + "Ago"\ + "Set"\ + "Out"\ + "Nov"\ + "Dec"\ + ""] + ::msgcat::mcset gl MONTHS_FULL [list \ + "Xaneiro"\ + "Febreiro"\ + "Marzo"\ + "Abril"\ + "Maio"\ + "Xu\u00f1o"\ + "Xullo"\ + "Agosto"\ + "Setembro"\ + "Outubro"\ + "Novembro"\ + "Decembro"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/gl_es.msg b/mingw/lib/tcl8.5/msgs/gl_es.msg new file mode 100644 index 00000000..d4ed2704 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/gl_es.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset gl_ES DATE_FORMAT "%d %B %Y" + ::msgcat::mcset gl_ES TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset gl_ES DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/gv.msg b/mingw/lib/tcl8.5/msgs/gv.msg new file mode 100644 index 00000000..7d332ad5 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/gv.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset gv DAYS_OF_WEEK_ABBREV [list \ + "Jed"\ + "Jel"\ + "Jem"\ + "Jerc"\ + "Jerd"\ + "Jeh"\ + "Jes"] + ::msgcat::mcset gv DAYS_OF_WEEK_FULL [list \ + "Jedoonee"\ + "Jelhein"\ + "Jemayrt"\ + "Jercean"\ + "Jerdein"\ + "Jeheiney"\ + "Jesarn"] + ::msgcat::mcset gv MONTHS_ABBREV [list \ + "J-guer"\ + "T-arree"\ + "Mayrnt"\ + "Avrril"\ + "Boaldyn"\ + "M-souree"\ + "J-souree"\ + "Luanistyn"\ + "M-fouyir"\ + "J-fouyir"\ + "M.Houney"\ + "M.Nollick"\ + ""] + ::msgcat::mcset gv MONTHS_FULL [list \ + "Jerrey-geuree"\ + "Toshiaght-arree"\ + "Mayrnt"\ + "Averil"\ + "Boaldyn"\ + "Mean-souree"\ + "Jerrey-souree"\ + "Luanistyn"\ + "Mean-fouyir"\ + "Jerrey-fouyir"\ + "Mee Houney"\ + "Mee ny Nollick"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/gv_gb.msg b/mingw/lib/tcl8.5/msgs/gv_gb.msg new file mode 100644 index 00000000..5e96e6f3 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/gv_gb.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset gv_GB DATE_FORMAT "%d %B %Y" + ::msgcat::mcset gv_GB TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset gv_GB DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/he.msg b/mingw/lib/tcl8.5/msgs/he.msg new file mode 100644 index 00000000..52a94e26 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/he.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset he DAYS_OF_WEEK_ABBREV [list \ + "\u05d0"\ + "\u05d1"\ + "\u05d2"\ + "\u05d3"\ + "\u05d4"\ + "\u05d5"\ + "\u05e9"] + ::msgcat::mcset he DAYS_OF_WEEK_FULL [list \ + "\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df"\ + "\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9"\ + "\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9"\ + "\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9"\ + "\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9"\ + "\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9"\ + "\u05e9\u05d1\u05ea"] + ::msgcat::mcset he MONTHS_ABBREV [list \ + "\u05d9\u05e0\u05d5"\ + "\u05e4\u05d1\u05e8"\ + "\u05de\u05e8\u05e5"\ + "\u05d0\u05e4\u05e8"\ + "\u05de\u05d0\u05d9"\ + "\u05d9\u05d5\u05e0"\ + "\u05d9\u05d5\u05dc"\ + "\u05d0\u05d5\u05d2"\ + "\u05e1\u05e4\u05d8"\ + "\u05d0\u05d5\u05e7"\ + "\u05e0\u05d5\u05d1"\ + "\u05d3\u05e6\u05de"\ + ""] + ::msgcat::mcset he MONTHS_FULL [list \ + "\u05d9\u05e0\u05d5\u05d0\u05e8"\ + "\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8"\ + "\u05de\u05e8\u05e5"\ + "\u05d0\u05e4\u05e8\u05d9\u05dc"\ + "\u05de\u05d0\u05d9"\ + "\u05d9\u05d5\u05e0\u05d9"\ + "\u05d9\u05d5\u05dc\u05d9"\ + "\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8"\ + "\u05e1\u05e4\u05d8\u05de\u05d1\u05e8"\ + "\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8"\ + "\u05e0\u05d5\u05d1\u05de\u05d1\u05e8"\ + "\u05d3\u05e6\u05de\u05d1\u05e8"\ + ""] + ::msgcat::mcset he BCE "\u05dc\u05e1\u05d4"\u05e0" + ::msgcat::mcset he CE "\u05dc\u05e4\u05e1\u05d4"\u05e0" + ::msgcat::mcset he DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset he TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset he DATE_TIME_FORMAT "%d/%m/%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/hi.msg b/mingw/lib/tcl8.5/msgs/hi.msg new file mode 100644 index 00000000..50c9fb80 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/hi.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset hi DAYS_OF_WEEK_FULL [list \ + "\u0930\u0935\u093f\u0935\u093e\u0930"\ + "\u0938\u094b\u092e\u0935\u093e\u0930"\ + "\u092e\u0902\u0917\u0932\u0935\u093e\u0930"\ + "\u092c\u0941\u0927\u0935\u093e\u0930"\ + "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\ + "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\ + "\u0936\u0928\u093f\u0935\u093e\u0930"] + ::msgcat::mcset hi MONTHS_ABBREV [list \ + "\u091c\u0928\u0935\u0930\u0940"\ + "\u092b\u093c\u0930\u0935\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u0905\u092a\u094d\u0930\u0947\u0932"\ + "\u092e\u0908"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u093e\u0908"\ + "\u0905\u0917\u0938\u094d\u0924"\ + "\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\ + "\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\ + "\u0928\u0935\u092e\u094d\u092c\u0930"\ + "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"] + ::msgcat::mcset hi MONTHS_FULL [list \ + "\u091c\u0928\u0935\u0930\u0940"\ + "\u092b\u093c\u0930\u0935\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u0905\u092a\u094d\u0930\u0947\u0932"\ + "\u092e\u0908"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u093e\u0908"\ + "\u0905\u0917\u0938\u094d\u0924"\ + "\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\ + "\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\ + "\u0928\u0935\u092e\u094d\u092c\u0930"\ + "\u0926\u093f\u0938\u092e\u094d\u092c\u0930"] + ::msgcat::mcset hi AM "\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935" + ::msgcat::mcset hi PM "." +} diff --git a/mingw/lib/tcl8.5/msgs/hi_in.msg b/mingw/lib/tcl8.5/msgs/hi_in.msg new file mode 100644 index 00000000..239793f1 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/hi_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset hi_IN DATE_FORMAT "%d %M %Y" + ::msgcat::mcset hi_IN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset hi_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/hr.msg b/mingw/lib/tcl8.5/msgs/hr.msg new file mode 100644 index 00000000..cec145b0 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/hr.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset hr DAYS_OF_WEEK_ABBREV [list \ + "ned"\ + "pon"\ + "uto"\ + "sri"\ + "\u010det"\ + "pet"\ + "sub"] + ::msgcat::mcset hr DAYS_OF_WEEK_FULL [list \ + "nedjelja"\ + "ponedjeljak"\ + "utorak"\ + "srijeda"\ + "\u010detvrtak"\ + "petak"\ + "subota"] + ::msgcat::mcset hr MONTHS_ABBREV [list \ + "sij"\ + "vel"\ + "o\u017eu"\ + "tra"\ + "svi"\ + "lip"\ + "srp"\ + "kol"\ + "ruj"\ + "lis"\ + "stu"\ + "pro"\ + ""] + ::msgcat::mcset hr MONTHS_FULL [list \ + "sije\u010danj"\ + "velja\u010da"\ + "o\u017eujak"\ + "travanj"\ + "svibanj"\ + "lipanj"\ + "srpanj"\ + "kolovoz"\ + "rujan"\ + "listopad"\ + "studeni"\ + "prosinac"\ + ""] + ::msgcat::mcset hr DATE_FORMAT "%Y.%m.%d" + ::msgcat::mcset hr TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset hr DATE_TIME_FORMAT "%Y.%m.%d %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/hu.msg b/mingw/lib/tcl8.5/msgs/hu.msg new file mode 100644 index 00000000..e5e68d92 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/hu.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset hu DAYS_OF_WEEK_ABBREV [list \ + "V"\ + "H"\ + "K"\ + "Sze"\ + "Cs"\ + "P"\ + "Szo"] + ::msgcat::mcset hu DAYS_OF_WEEK_FULL [list \ + "vas\u00e1rnap"\ + "h\u00e9tf\u0151"\ + "kedd"\ + "szerda"\ + "cs\u00fct\u00f6rt\u00f6k"\ + "p\u00e9ntek"\ + "szombat"] + ::msgcat::mcset hu MONTHS_ABBREV [list \ + "jan."\ + "febr."\ + "m\u00e1rc."\ + "\u00e1pr."\ + "m\u00e1j."\ + "j\u00fan."\ + "j\u00fal."\ + "aug."\ + "szept."\ + "okt."\ + "nov."\ + "dec."\ + ""] + ::msgcat::mcset hu MONTHS_FULL [list \ + "janu\u00e1r"\ + "febru\u00e1r"\ + "m\u00e1rcius"\ + "\u00e1prilis"\ + "m\u00e1jus"\ + "j\u00fanius"\ + "j\u00falius"\ + "augusztus"\ + "szeptember"\ + "okt\u00f3ber"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset hu BCE "i.e." + ::msgcat::mcset hu CE "i.u." + ::msgcat::mcset hu AM "DE" + ::msgcat::mcset hu PM "DU" + ::msgcat::mcset hu DATE_FORMAT "%Y.%m.%d." + ::msgcat::mcset hu TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset hu DATE_TIME_FORMAT "%Y.%m.%d. %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/id.msg b/mingw/lib/tcl8.5/msgs/id.msg new file mode 100644 index 00000000..17c6bb59 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/id.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset id DAYS_OF_WEEK_ABBREV [list \ + "Min"\ + "Sen"\ + "Sel"\ + "Rab"\ + "Kam"\ + "Jum"\ + "Sab"] + ::msgcat::mcset id DAYS_OF_WEEK_FULL [list \ + "Minggu"\ + "Senin"\ + "Selasa"\ + "Rabu"\ + "Kamis"\ + "Jumat"\ + "Sabtu"] + ::msgcat::mcset id MONTHS_ABBREV [list \ + "Jan"\ + "Peb"\ + "Mar"\ + "Apr"\ + "Mei"\ + "Jun"\ + "Jul"\ + "Agu"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Des"\ + ""] + ::msgcat::mcset id MONTHS_FULL [list \ + "Januari"\ + "Pebruari"\ + "Maret"\ + "April"\ + "Mei"\ + "Juni"\ + "Juli"\ + "Agustus"\ + "September"\ + "Oktober"\ + "November"\ + "Desember"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/id_id.msg b/mingw/lib/tcl8.5/msgs/id_id.msg new file mode 100644 index 00000000..bb672c11 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/id_id.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset id_ID DATE_FORMAT "%d %B %Y" + ::msgcat::mcset id_ID TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset id_ID DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/is.msg b/mingw/lib/tcl8.5/msgs/is.msg new file mode 100644 index 00000000..adc2d2a3 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/is.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset is DAYS_OF_WEEK_ABBREV [list \ + "sun."\ + "m\u00e1n."\ + "\u00feri."\ + "mi\u00f0."\ + "fim."\ + "f\u00f6s."\ + "lau."] + ::msgcat::mcset is DAYS_OF_WEEK_FULL [list \ + "sunnudagur"\ + "m\u00e1nudagur"\ + "\u00feri\u00f0judagur"\ + "mi\u00f0vikudagur"\ + "fimmtudagur"\ + "f\u00f6studagur"\ + "laugardagur"] + ::msgcat::mcset is MONTHS_ABBREV [list \ + "jan."\ + "feb."\ + "mar."\ + "apr."\ + "ma\u00ed"\ + "j\u00fan."\ + "j\u00fal."\ + "\u00e1g\u00fa."\ + "sep."\ + "okt."\ + "n\u00f3v."\ + "des."\ + ""] + ::msgcat::mcset is MONTHS_FULL [list \ + "jan\u00faar"\ + "febr\u00faar"\ + "mars"\ + "apr\u00edl"\ + "ma\u00ed"\ + "j\u00fan\u00ed"\ + "j\u00fal\u00ed"\ + "\u00e1g\u00fast"\ + "september"\ + "okt\u00f3ber"\ + "n\u00f3vember"\ + "desember"\ + ""] + ::msgcat::mcset is DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset is TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset is DATE_TIME_FORMAT "%e.%m.%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/it.msg b/mingw/lib/tcl8.5/msgs/it.msg new file mode 100644 index 00000000..b641cdec --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/it.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset it DAYS_OF_WEEK_ABBREV [list \ + "dom"\ + "lun"\ + "mar"\ + "mer"\ + "gio"\ + "ven"\ + "sab"] + ::msgcat::mcset it DAYS_OF_WEEK_FULL [list \ + "domenica"\ + "luned\u00ec"\ + "marted\u00ec"\ + "mercoled\u00ec"\ + "gioved\u00ec"\ + "venerd\u00ec"\ + "sabato"] + ::msgcat::mcset it MONTHS_ABBREV [list \ + "gen"\ + "feb"\ + "mar"\ + "apr"\ + "mag"\ + "giu"\ + "lug"\ + "ago"\ + "set"\ + "ott"\ + "nov"\ + "dic"\ + ""] + ::msgcat::mcset it MONTHS_FULL [list \ + "gennaio"\ + "febbraio"\ + "marzo"\ + "aprile"\ + "maggio"\ + "giugno"\ + "luglio"\ + "agosto"\ + "settembre"\ + "ottobre"\ + "novembre"\ + "dicembre"\ + ""] + ::msgcat::mcset it BCE "aC" + ::msgcat::mcset it CE "dC" + ::msgcat::mcset it AM "m." + ::msgcat::mcset it PM "p." + ::msgcat::mcset it DATE_FORMAT "%d %B %Y" + ::msgcat::mcset it TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset it DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/it_ch.msg b/mingw/lib/tcl8.5/msgs/it_ch.msg new file mode 100644 index 00000000..b36ed368 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/it_ch.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset it_CH DATE_FORMAT "%e. %B %Y" + ::msgcat::mcset it_CH TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset it_CH DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ja.msg b/mingw/lib/tcl8.5/msgs/ja.msg new file mode 100644 index 00000000..27676655 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ja.msg @@ -0,0 +1,44 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ja DAYS_OF_WEEK_ABBREV [list \ + "\u65e5"\ + "\u6708"\ + "\u706b"\ + "\u6c34"\ + "\u6728"\ + "\u91d1"\ + "\u571f"] + ::msgcat::mcset ja DAYS_OF_WEEK_FULL [list \ + "\u65e5\u66dc\u65e5"\ + "\u6708\u66dc\u65e5"\ + "\u706b\u66dc\u65e5"\ + "\u6c34\u66dc\u65e5"\ + "\u6728\u66dc\u65e5"\ + "\u91d1\u66dc\u65e5"\ + "\u571f\u66dc\u65e5"] + ::msgcat::mcset ja MONTHS_FULL [list \ + "1\u6708"\ + "2\u6708"\ + "3\u6708"\ + "4\u6708"\ + "5\u6708"\ + "6\u6708"\ + "7\u6708"\ + "8\u6708"\ + "9\u6708"\ + "10\u6708"\ + "11\u6708"\ + "12\u6708"] + ::msgcat::mcset ja BCE "\u7d00\u5143\u524d" + ::msgcat::mcset ja CE "\u897f\u66a6" + ::msgcat::mcset ja AM "\u5348\u524d" + ::msgcat::mcset ja PM "\u5348\u5f8c" + ::msgcat::mcset ja DATE_FORMAT "%Y/%m/%d" + ::msgcat::mcset ja TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset ja TIME_FORMAT_12 "%P %I:%M:%S" + ::msgcat::mcset ja DATE_TIME_FORMAT "%Y/%m/%d %k:%M:%S %z" + ::msgcat::mcset ja LOCALE_DATE_FORMAT "%EY\u5e74%m\u6708%d\u65e5" + ::msgcat::mcset ja LOCALE_TIME_FORMAT "%H\u6642%M\u5206%S\u79d2" + ::msgcat::mcset ja LOCALE_DATE_TIME_FORMAT "%EY\u5e74%m\u6708%d\u65e5 (%a) %H\u6642%M\u5206%S\u79d2 %z" + ::msgcat::mcset ja LOCALE_ERAS "\u007b-9223372036854775808 \u897f\u66a6 0\u007d \u007b-3061011600 \u660e\u6cbb 1867\u007d \u007b-1812186000 \u5927\u6b63 1911\u007d \u007b-1357635600 \u662d\u548c 1925\u007d \u007b600220800 \u5e73\u6210 1988\u007d" +} diff --git a/mingw/lib/tcl8.5/msgs/kl.msg b/mingw/lib/tcl8.5/msgs/kl.msg new file mode 100644 index 00000000..d877bfe6 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kl.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kl DAYS_OF_WEEK_ABBREV [list \ + "sab"\ + "ata"\ + "mar"\ + "pin"\ + "sis"\ + "tal"\ + "arf"] + ::msgcat::mcset kl DAYS_OF_WEEK_FULL [list \ + "sabaat"\ + "ataasinngorneq"\ + "marlunngorneq"\ + "pingasunngorneq"\ + "sisamanngorneq"\ + "tallimanngorneq"\ + "arfininngorneq"] + ::msgcat::mcset kl MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "maj"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset kl MONTHS_FULL [list \ + "januari"\ + "februari"\ + "martsi"\ + "aprili"\ + "maji"\ + "juni"\ + "juli"\ + "augustusi"\ + "septemberi"\ + "oktoberi"\ + "novemberi"\ + "decemberi"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/kl_gl.msg b/mingw/lib/tcl8.5/msgs/kl_gl.msg new file mode 100644 index 00000000..403aa10f --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kl_gl.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kl_GL DATE_FORMAT "%d %b %Y" + ::msgcat::mcset kl_GL TIME_FORMAT "%T" + ::msgcat::mcset kl_GL TIME_FORMAT_12 "%T" + ::msgcat::mcset kl_GL DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ko.msg b/mingw/lib/tcl8.5/msgs/ko.msg new file mode 100644 index 00000000..0cd17a19 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ko.msg @@ -0,0 +1,55 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ko DAYS_OF_WEEK_ABBREV [list \ + "\uc77c"\ + "\uc6d4"\ + "\ud654"\ + "\uc218"\ + "\ubaa9"\ + "\uae08"\ + "\ud1a0"] + ::msgcat::mcset ko DAYS_OF_WEEK_FULL [list \ + "\uc77c\uc694\uc77c"\ + "\uc6d4\uc694\uc77c"\ + "\ud654\uc694\uc77c"\ + "\uc218\uc694\uc77c"\ + "\ubaa9\uc694\uc77c"\ + "\uae08\uc694\uc77c"\ + "\ud1a0\uc694\uc77c"] + ::msgcat::mcset ko MONTHS_ABBREV [list \ + "1\uc6d4"\ + "2\uc6d4"\ + "3\uc6d4"\ + "4\uc6d4"\ + "5\uc6d4"\ + "6\uc6d4"\ + "7\uc6d4"\ + "8\uc6d4"\ + "9\uc6d4"\ + "10\uc6d4"\ + "11\uc6d4"\ + "12\uc6d4"\ + ""] + ::msgcat::mcset ko MONTHS_FULL [list \ + "1\uc6d4"\ + "2\uc6d4"\ + "3\uc6d4"\ + "4\uc6d4"\ + "5\uc6d4"\ + "6\uc6d4"\ + "7\uc6d4"\ + "8\uc6d4"\ + "9\uc6d4"\ + "10\uc6d4"\ + "11\uc6d4"\ + "12\uc6d4"\ + ""] + ::msgcat::mcset ko AM "\uc624\uc804" + ::msgcat::mcset ko PM "\uc624\ud6c4" + ::msgcat::mcset ko DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset ko TIME_FORMAT_12 "%P %l:%M:%S" + ::msgcat::mcset ko DATE_TIME_FORMAT "%Y-%m-%d %P %l:%M:%S %z" + ::msgcat::mcset ko LOCALE_DATE_FORMAT "%Y\ub144%B%Od\uc77c" + ::msgcat::mcset ko LOCALE_TIME_FORMAT "%H\uc2dc%M\ubd84%S\ucd08" + ::msgcat::mcset ko LOCALE_DATE_TIME_FORMAT "%A %Y\ub144%B%Od\uc77c%H\uc2dc%M\ubd84%S\ucd08 %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ko_kr.msg b/mingw/lib/tcl8.5/msgs/ko_kr.msg new file mode 100644 index 00000000..ea5bbd72 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ko_kr.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ko_KR BCE "\uae30\uc6d0\uc804" + ::msgcat::mcset ko_KR CE "\uc11c\uae30" + ::msgcat::mcset ko_KR DATE_FORMAT "%Y.%m.%d" + ::msgcat::mcset ko_KR TIME_FORMAT_12 "%P %l:%M:%S" + ::msgcat::mcset ko_KR DATE_TIME_FORMAT "%Y.%m.%d %P %l:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/kok.msg b/mingw/lib/tcl8.5/msgs/kok.msg new file mode 100644 index 00000000..0869f207 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kok.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kok DAYS_OF_WEEK_FULL [list \ + "\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930"\ + "\u0938\u094b\u092e\u0935\u093e\u0930"\ + "\u092e\u0902\u0917\u0933\u093e\u0930"\ + "\u092c\u0941\u0927\u0935\u093e\u0930"\ + "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\ + "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\ + "\u0936\u0928\u093f\u0935\u093e\u0930"] + ::msgcat::mcset kok MONTHS_ABBREV [list \ + "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\ + "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u090f\u092a\u094d\u0930\u093f\u0932"\ + "\u092e\u0947"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u0948"\ + "\u0913\u0917\u0938\u094d\u091f"\ + "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\ + "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\ + "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\ + "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"] + ::msgcat::mcset kok MONTHS_FULL [list \ + "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\ + "\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u090f\u092a\u094d\u0930\u093f\u0932"\ + "\u092e\u0947"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u0948"\ + "\u0913\u0917\u0938\u094d\u091f"\ + "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\ + "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\ + "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\ + "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"] + ::msgcat::mcset kok AM "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935" + ::msgcat::mcset kok PM "\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e" +} diff --git a/mingw/lib/tcl8.5/msgs/kok_in.msg b/mingw/lib/tcl8.5/msgs/kok_in.msg new file mode 100644 index 00000000..abcb1ff8 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kok_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kok_IN DATE_FORMAT "%d %M %Y" + ::msgcat::mcset kok_IN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset kok_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/kw.msg b/mingw/lib/tcl8.5/msgs/kw.msg new file mode 100644 index 00000000..aaf79b32 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kw.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kw DAYS_OF_WEEK_ABBREV [list \ + "Sul"\ + "Lun"\ + "Mth"\ + "Mhr"\ + "Yow"\ + "Gwe"\ + "Sad"] + ::msgcat::mcset kw DAYS_OF_WEEK_FULL [list \ + "De Sul"\ + "De Lun"\ + "De Merth"\ + "De Merher"\ + "De Yow"\ + "De Gwener"\ + "De Sadorn"] + ::msgcat::mcset kw MONTHS_ABBREV [list \ + "Gen"\ + "Whe"\ + "Mer"\ + "Ebr"\ + "Me"\ + "Evn"\ + "Gor"\ + "Est"\ + "Gwn"\ + "Hed"\ + "Du"\ + "Kev"\ + ""] + ::msgcat::mcset kw MONTHS_FULL [list \ + "Mys Genver"\ + "Mys Whevrel"\ + "Mys Merth"\ + "Mys Ebrel"\ + "Mys Me"\ + "Mys Evan"\ + "Mys Gortheren"\ + "Mye Est"\ + "Mys Gwyngala"\ + "Mys Hedra"\ + "Mys Du"\ + "Mys Kevardhu"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/kw_gb.msg b/mingw/lib/tcl8.5/msgs/kw_gb.msg new file mode 100644 index 00000000..29676804 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/kw_gb.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset kw_GB DATE_FORMAT "%d %B %Y" + ::msgcat::mcset kw_GB TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset kw_GB DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/lt.msg b/mingw/lib/tcl8.5/msgs/lt.msg new file mode 100644 index 00000000..27b09850 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/lt.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset lt DAYS_OF_WEEK_ABBREV [list \ + "Sk"\ + "Pr"\ + "An"\ + "Tr"\ + "Kt"\ + "Pn"\ + "\u0160t"] + ::msgcat::mcset lt DAYS_OF_WEEK_FULL [list \ + "Sekmadienis"\ + "Pirmadienis"\ + "Antradienis"\ + "Tre\u010diadienis"\ + "Ketvirtadienis"\ + "Penktadienis"\ + "\u0160e\u0161tadienis"] + ::msgcat::mcset lt MONTHS_ABBREV [list \ + "Sau"\ + "Vas"\ + "Kov"\ + "Bal"\ + "Geg"\ + "Bir"\ + "Lie"\ + "Rgp"\ + "Rgs"\ + "Spa"\ + "Lap"\ + "Grd"\ + ""] + ::msgcat::mcset lt MONTHS_FULL [list \ + "Sausio"\ + "Vasario"\ + "Kovo"\ + "Baland\u017eio"\ + "Gegu\u017e\u0117s"\ + "Bir\u017eelio"\ + "Liepos"\ + "Rugpj\u016b\u010dio"\ + "Rugs\u0117jo"\ + "Spalio"\ + "Lapkri\u010dio"\ + "Gruod\u017eio"\ + ""] + ::msgcat::mcset lt BCE "pr.Kr." + ::msgcat::mcset lt CE "po.Kr." + ::msgcat::mcset lt DATE_FORMAT "%Y.%m.%e" + ::msgcat::mcset lt TIME_FORMAT "%H.%M.%S" + ::msgcat::mcset lt DATE_TIME_FORMAT "%Y.%m.%e %H.%M.%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/lv.msg b/mingw/lib/tcl8.5/msgs/lv.msg new file mode 100644 index 00000000..a037b151 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/lv.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset lv DAYS_OF_WEEK_ABBREV [list \ + "Sv"\ + "P"\ + "O"\ + "T"\ + "C"\ + "Pk"\ + "S"] + ::msgcat::mcset lv DAYS_OF_WEEK_FULL [list \ + "sv\u0113tdiena"\ + "pirmdiena"\ + "otrdiena"\ + "tre\u0161diena"\ + "ceturdien"\ + "piektdiena"\ + "sestdiena"] + ::msgcat::mcset lv MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mar"\ + "Apr"\ + "Maijs"\ + "J\u016bn"\ + "J\u016bl"\ + "Aug"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dec"\ + ""] + ::msgcat::mcset lv MONTHS_FULL [list \ + "janv\u0101ris"\ + "febru\u0101ris"\ + "marts"\ + "apr\u012blis"\ + "maijs"\ + "j\u016bnijs"\ + "j\u016blijs"\ + "augusts"\ + "septembris"\ + "oktobris"\ + "novembris"\ + "decembris"\ + ""] + ::msgcat::mcset lv BCE "pm\u0113" + ::msgcat::mcset lv CE "m\u0113" + ::msgcat::mcset lv DATE_FORMAT "%Y.%e.%m" + ::msgcat::mcset lv TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset lv DATE_TIME_FORMAT "%Y.%e.%m %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/mk.msg b/mingw/lib/tcl8.5/msgs/mk.msg new file mode 100644 index 00000000..41cf60db --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/mk.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset mk DAYS_OF_WEEK_ABBREV [list \ + "\u043d\u0435\u0434."\ + "\u043f\u043e\u043d."\ + "\u0432\u0442."\ + "\u0441\u0440\u0435."\ + "\u0447\u0435\u0442."\ + "\u043f\u0435\u0442."\ + "\u0441\u0430\u0431."] + ::msgcat::mcset mk DAYS_OF_WEEK_FULL [list \ + "\u043d\u0435\u0434\u0435\u043b\u0430"\ + "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a"\ + "\u0432\u0442\u043e\u0440\u043d\u0438\u043a"\ + "\u0441\u0440\u0435\u0434\u0430"\ + "\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a"\ + "\u043f\u0435\u0442\u043e\u043a"\ + "\u0441\u0430\u0431\u043e\u0442\u0430"] + ::msgcat::mcset mk MONTHS_ABBREV [list \ + "\u0458\u0430\u043d."\ + "\u0444\u0435\u0432."\ + "\u043c\u0430\u0440."\ + "\u0430\u043f\u0440."\ + "\u043c\u0430\u0458."\ + "\u0458\u0443\u043d."\ + "\u0458\u0443\u043b."\ + "\u0430\u0432\u0433."\ + "\u0441\u0435\u043f\u0442."\ + "\u043e\u043a\u0442."\ + "\u043d\u043e\u0435\u043c."\ + "\u0434\u0435\u043a\u0435\u043c."\ + ""] + ::msgcat::mcset mk MONTHS_FULL [list \ + "\u0458\u0430\u043d\u0443\u0430\u0440\u0438"\ + "\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438"\ + "\u043c\u0430\u0440\u0442"\ + "\u0430\u043f\u0440\u0438\u043b"\ + "\u043c\u0430\u0458"\ + "\u0458\u0443\u043d\u0438"\ + "\u0458\u0443\u043b\u0438"\ + "\u0430\u0432\u0433\u0443\u0441\u0442"\ + "\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438"\ + "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438"\ + "\u043d\u043e\u0435\u043c\u0432\u0440\u0438"\ + "\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438"\ + ""] + ::msgcat::mcset mk BCE "\u043f\u0440.\u043d.\u0435." + ::msgcat::mcset mk CE "\u0430\u0435." + ::msgcat::mcset mk DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset mk TIME_FORMAT "%H:%M:%S %z" + ::msgcat::mcset mk DATE_TIME_FORMAT "%e.%m.%Y %H:%M:%S %z %z" +} diff --git a/mingw/lib/tcl8.5/msgs/mr.msg b/mingw/lib/tcl8.5/msgs/mr.msg new file mode 100644 index 00000000..cea427a9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/mr.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset mr DAYS_OF_WEEK_FULL [list \ + "\u0930\u0935\u093f\u0935\u093e\u0930"\ + "\u0938\u094b\u092e\u0935\u093e\u0930"\ + "\u092e\u0902\u0917\u0933\u0935\u093e\u0930"\ + "\u092e\u0902\u0917\u0933\u0935\u093e\u0930"\ + "\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\ + "\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\ + "\u0936\u0928\u093f\u0935\u093e\u0930"] + ::msgcat::mcset mr MONTHS_ABBREV [list \ + "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\ + "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u090f\u092a\u094d\u0930\u093f\u0932"\ + "\u092e\u0947"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u0948"\ + "\u0913\u0917\u0938\u094d\u091f"\ + "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\ + "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\ + "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\ + "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"] + ::msgcat::mcset mr MONTHS_FULL [list \ + "\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940"\ + "\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940"\ + "\u092e\u093e\u0930\u094d\u091a"\ + "\u090f\u092a\u094d\u0930\u093f\u0932"\ + "\u092e\u0947"\ + "\u091c\u0942\u0928"\ + "\u091c\u0941\u0932\u0948"\ + "\u0913\u0917\u0938\u094d\u091f"\ + "\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930"\ + "\u0913\u0915\u094d\u091f\u094b\u092c\u0930"\ + "\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930"\ + "\u0921\u093f\u0938\u0947\u0902\u092c\u0930"] + ::msgcat::mcset mr AM "BC" + ::msgcat::mcset mr PM "AD" +} diff --git a/mingw/lib/tcl8.5/msgs/mr_in.msg b/mingw/lib/tcl8.5/msgs/mr_in.msg new file mode 100644 index 00000000..1889da5c --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/mr_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset mr_IN DATE_FORMAT "%d %M %Y" + ::msgcat::mcset mr_IN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset mr_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ms.msg b/mingw/lib/tcl8.5/msgs/ms.msg new file mode 100644 index 00000000..e954431b --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ms.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ms DAYS_OF_WEEK_ABBREV [list \ + "Aha"\ + "Isn"\ + "Sei"\ + "Rab"\ + "Kha"\ + "Jum"\ + "Sab"] + ::msgcat::mcset ms DAYS_OF_WEEK_FULL [list \ + "Ahad"\ + "Isnin"\ + "Selasa"\ + "Rahu"\ + "Khamis"\ + "Jumaat"\ + "Sabtu"] + ::msgcat::mcset ms MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mac"\ + "Apr"\ + "Mei"\ + "Jun"\ + "Jul"\ + "Ogos"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dis"\ + ""] + ::msgcat::mcset ms MONTHS_FULL [list \ + "Januari"\ + "Februari"\ + "Mac"\ + "April"\ + "Mei"\ + "Jun"\ + "Julai"\ + "Ogos"\ + "September"\ + "Oktober"\ + "November"\ + "Disember"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/ms_my.msg b/mingw/lib/tcl8.5/msgs/ms_my.msg new file mode 100644 index 00000000..c1f93d42 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ms_my.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ms_MY DATE_FORMAT "%A %d %b %Y" + ::msgcat::mcset ms_MY TIME_FORMAT_12 "%I:%M:%S %z" + ::msgcat::mcset ms_MY DATE_TIME_FORMAT "%A %d %b %Y %I:%M:%S %z %z" +} diff --git a/mingw/lib/tcl8.5/msgs/mt.msg b/mingw/lib/tcl8.5/msgs/mt.msg new file mode 100644 index 00000000..ddd54464 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/mt.msg @@ -0,0 +1,27 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset mt DAYS_OF_WEEK_ABBREV [list \ + "\u0126ad"\ + "Tne"\ + "Tli"\ + "Erb"\ + "\u0126am"\ + "\u0120im"] + ::msgcat::mcset mt MONTHS_ABBREV [list \ + "Jan"\ + "Fra"\ + "Mar"\ + "Apr"\ + "Mej"\ + "\u0120un"\ + "Lul"\ + "Awi"\ + "Set"\ + "Ott"\ + "Nov"] + ::msgcat::mcset mt BCE "QK" + ::msgcat::mcset mt CE "" + ::msgcat::mcset mt DATE_FORMAT "%A, %e ta %B, %Y" + ::msgcat::mcset mt TIME_FORMAT_12 "%l:%M:%S %P" + ::msgcat::mcset mt DATE_TIME_FORMAT "%A, %e ta %B, %Y %l:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/nb.msg b/mingw/lib/tcl8.5/msgs/nb.msg new file mode 100644 index 00000000..90d49a33 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/nb.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset nb DAYS_OF_WEEK_ABBREV [list \ + "s\u00f8"\ + "ma"\ + "ti"\ + "on"\ + "to"\ + "fr"\ + "l\u00f8"] + ::msgcat::mcset nb DAYS_OF_WEEK_FULL [list \ + "s\u00f8ndag"\ + "mandag"\ + "tirsdag"\ + "onsdag"\ + "torsdag"\ + "fredag"\ + "l\u00f8rdag"] + ::msgcat::mcset nb MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "mai"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "des"\ + ""] + ::msgcat::mcset nb MONTHS_FULL [list \ + "januar"\ + "februar"\ + "mars"\ + "april"\ + "mai"\ + "juni"\ + "juli"\ + "august"\ + "september"\ + "oktober"\ + "november"\ + "desember"\ + ""] + ::msgcat::mcset nb BCE "f.Kr." + ::msgcat::mcset nb CE "e.Kr." + ::msgcat::mcset nb DATE_FORMAT "%e. %B %Y" + ::msgcat::mcset nb TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset nb DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/nl.msg b/mingw/lib/tcl8.5/msgs/nl.msg new file mode 100644 index 00000000..4c5c6755 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/nl.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset nl DAYS_OF_WEEK_ABBREV [list \ + "zo"\ + "ma"\ + "di"\ + "wo"\ + "do"\ + "vr"\ + "za"] + ::msgcat::mcset nl DAYS_OF_WEEK_FULL [list \ + "zondag"\ + "maandag"\ + "dinsdag"\ + "woensdag"\ + "donderdag"\ + "vrijdag"\ + "zaterdag"] + ::msgcat::mcset nl MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mrt"\ + "apr"\ + "mei"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset nl MONTHS_FULL [list \ + "januari"\ + "februari"\ + "maart"\ + "april"\ + "mei"\ + "juni"\ + "juli"\ + "augustus"\ + "september"\ + "oktober"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset nl DATE_FORMAT "%e %B %Y" + ::msgcat::mcset nl TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset nl DATE_TIME_FORMAT "%e %B %Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/nl_be.msg b/mingw/lib/tcl8.5/msgs/nl_be.msg new file mode 100644 index 00000000..4b19670f --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/nl_be.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset nl_BE DATE_FORMAT "%d-%m-%y" + ::msgcat::mcset nl_BE TIME_FORMAT "%T" + ::msgcat::mcset nl_BE TIME_FORMAT_12 "%T" + ::msgcat::mcset nl_BE DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/nn.msg b/mingw/lib/tcl8.5/msgs/nn.msg new file mode 100644 index 00000000..bd61ac94 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/nn.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset nn DAYS_OF_WEEK_ABBREV [list \ + "su"\ + "m\u00e5"\ + "ty"\ + "on"\ + "to"\ + "fr"\ + "lau"] + ::msgcat::mcset nn DAYS_OF_WEEK_FULL [list \ + "sundag"\ + "m\u00e5ndag"\ + "tysdag"\ + "onsdag"\ + "torsdag"\ + "fredag"\ + "laurdag"] + ::msgcat::mcset nn MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "mai"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "des"\ + ""] + ::msgcat::mcset nn MONTHS_FULL [list \ + "januar"\ + "februar"\ + "mars"\ + "april"\ + "mai"\ + "juni"\ + "juli"\ + "august"\ + "september"\ + "oktober"\ + "november"\ + "desember"\ + ""] + ::msgcat::mcset nn BCE "f.Kr." + ::msgcat::mcset nn CE "e.Kr." + ::msgcat::mcset nn DATE_FORMAT "%e. %B %Y" + ::msgcat::mcset nn TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset nn DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/pl.msg b/mingw/lib/tcl8.5/msgs/pl.msg new file mode 100644 index 00000000..d206f4b7 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/pl.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset pl DAYS_OF_WEEK_ABBREV [list \ + "N"\ + "Pn"\ + "Wt"\ + "\u015ar"\ + "Cz"\ + "Pt"\ + "So"] + ::msgcat::mcset pl DAYS_OF_WEEK_FULL [list \ + "niedziela"\ + "poniedzia\u0142ek"\ + "wtorek"\ + "\u015broda"\ + "czwartek"\ + "pi\u0105tek"\ + "sobota"] + ::msgcat::mcset pl MONTHS_ABBREV [list \ + "sty"\ + "lut"\ + "mar"\ + "kwi"\ + "maj"\ + "cze"\ + "lip"\ + "sie"\ + "wrz"\ + "pa\u017a"\ + "lis"\ + "gru"\ + ""] + ::msgcat::mcset pl MONTHS_FULL [list \ + "stycze\u0144"\ + "luty"\ + "marzec"\ + "kwiecie\u0144"\ + "maj"\ + "czerwiec"\ + "lipiec"\ + "sierpie\u0144"\ + "wrzesie\u0144"\ + "pa\u017adziernik"\ + "listopad"\ + "grudzie\u0144"\ + ""] + ::msgcat::mcset pl BCE "p.n.e." + ::msgcat::mcset pl CE "n.e." + ::msgcat::mcset pl DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset pl TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset pl DATE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/pt.msg b/mingw/lib/tcl8.5/msgs/pt.msg new file mode 100644 index 00000000..96fdb35a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/pt.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset pt DAYS_OF_WEEK_ABBREV [list \ + "Dom"\ + "Seg"\ + "Ter"\ + "Qua"\ + "Qui"\ + "Sex"\ + "S\u00e1b"] + ::msgcat::mcset pt DAYS_OF_WEEK_FULL [list \ + "Domingo"\ + "Segunda-feira"\ + "Ter\u00e7a-feira"\ + "Quarta-feira"\ + "Quinta-feira"\ + "Sexta-feira"\ + "S\u00e1bado"] + ::msgcat::mcset pt MONTHS_ABBREV [list \ + "Jan"\ + "Fev"\ + "Mar"\ + "Abr"\ + "Mai"\ + "Jun"\ + "Jul"\ + "Ago"\ + "Set"\ + "Out"\ + "Nov"\ + "Dez"\ + ""] + ::msgcat::mcset pt MONTHS_FULL [list \ + "Janeiro"\ + "Fevereiro"\ + "Mar\u00e7o"\ + "Abril"\ + "Maio"\ + "Junho"\ + "Julho"\ + "Agosto"\ + "Setembro"\ + "Outubro"\ + "Novembro"\ + "Dezembro"\ + ""] + ::msgcat::mcset pt DATE_FORMAT "%d-%m-%Y" + ::msgcat::mcset pt TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset pt DATE_TIME_FORMAT "%d-%m-%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/pt_br.msg b/mingw/lib/tcl8.5/msgs/pt_br.msg new file mode 100644 index 00000000..86843279 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/pt_br.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset pt_BR DATE_FORMAT "%d-%m-%Y" + ::msgcat::mcset pt_BR TIME_FORMAT "%T" + ::msgcat::mcset pt_BR TIME_FORMAT_12 "%T" + ::msgcat::mcset pt_BR DATE_TIME_FORMAT "%a %d %b %Y %T %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ro.msg b/mingw/lib/tcl8.5/msgs/ro.msg new file mode 100644 index 00000000..bdd7c619 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ro.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ro DAYS_OF_WEEK_ABBREV [list \ + "D"\ + "L"\ + "Ma"\ + "Mi"\ + "J"\ + "V"\ + "S"] + ::msgcat::mcset ro DAYS_OF_WEEK_FULL [list \ + "duminic\u0103"\ + "luni"\ + "mar\u0163i"\ + "miercuri"\ + "joi"\ + "vineri"\ + "s\u00eemb\u0103t\u0103"] + ::msgcat::mcset ro MONTHS_ABBREV [list \ + "Ian"\ + "Feb"\ + "Mar"\ + "Apr"\ + "Mai"\ + "Iun"\ + "Iul"\ + "Aug"\ + "Sep"\ + "Oct"\ + "Nov"\ + "Dec"\ + ""] + ::msgcat::mcset ro MONTHS_FULL [list \ + "ianuarie"\ + "februarie"\ + "martie"\ + "aprilie"\ + "mai"\ + "iunie"\ + "iulie"\ + "august"\ + "septembrie"\ + "octombrie"\ + "noiembrie"\ + "decembrie"\ + ""] + ::msgcat::mcset ro BCE "d.C." + ::msgcat::mcset ro CE "\u00ee.d.C." + ::msgcat::mcset ro DATE_FORMAT "%d.%m.%Y" + ::msgcat::mcset ro TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset ro DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ru.msg b/mingw/lib/tcl8.5/msgs/ru.msg new file mode 100644 index 00000000..65b075d6 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ru.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ru DAYS_OF_WEEK_ABBREV [list \ + "\u0412\u0441"\ + "\u041f\u043d"\ + "\u0412\u0442"\ + "\u0421\u0440"\ + "\u0427\u0442"\ + "\u041f\u0442"\ + "\u0421\u0431"] + ::msgcat::mcset ru DAYS_OF_WEEK_FULL [list \ + "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435"\ + "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a"\ + "\u0432\u0442\u043e\u0440\u043d\u0438\u043a"\ + "\u0441\u0440\u0435\u0434\u0430"\ + "\u0447\u0435\u0442\u0432\u0435\u0440\u0433"\ + "\u043f\u044f\u0442\u043d\u0438\u0446\u0430"\ + "\u0441\u0443\u0431\u0431\u043e\u0442\u0430"] + ::msgcat::mcset ru MONTHS_ABBREV [list \ + "\u044f\u043d\u0432"\ + "\u0444\u0435\u0432"\ + "\u043c\u0430\u0440"\ + "\u0430\u043f\u0440"\ + "\u043c\u0430\u0439"\ + "\u0438\u044e\u043d"\ + "\u0438\u044e\u043b"\ + "\u0430\u0432\u0433"\ + "\u0441\u0435\u043d"\ + "\u043e\u043a\u0442"\ + "\u043d\u043e\u044f"\ + "\u0434\u0435\u043a"\ + ""] + ::msgcat::mcset ru MONTHS_FULL [list \ + "\u042f\u043d\u0432\u0430\u0440\u044c"\ + "\u0424\u0435\u0432\u0440\u0430\u043b\u044c"\ + "\u041c\u0430\u0440\u0442"\ + "\u0410\u043f\u0440\u0435\u043b\u044c"\ + "\u041c\u0430\u0439"\ + "\u0418\u044e\u043d\u044c"\ + "\u0418\u044e\u043b\u044c"\ + "\u0410\u0432\u0433\u0443\u0441\u0442"\ + "\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c"\ + "\u041e\u043a\u0442\u044f\u0431\u0440\u044c"\ + "\u041d\u043e\u044f\u0431\u0440\u044c"\ + "\u0414\u0435\u043a\u0430\u0431\u0440\u044c"\ + ""] + ::msgcat::mcset ru BCE "\u0434\u043e \u043d.\u044d." + ::msgcat::mcset ru CE "\u043d.\u044d." + ::msgcat::mcset ru DATE_FORMAT "%d.%m.%Y" + ::msgcat::mcset ru TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset ru DATE_TIME_FORMAT "%d.%m.%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/ru_ua.msg b/mingw/lib/tcl8.5/msgs/ru_ua.msg new file mode 100644 index 00000000..6e1f8a86 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ru_ua.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ru_UA DATE_FORMAT "%d.%m.%Y" + ::msgcat::mcset ru_UA TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset ru_UA DATE_TIME_FORMAT "%d.%m.%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sh.msg b/mingw/lib/tcl8.5/msgs/sh.msg new file mode 100644 index 00000000..6ee0fc7f --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sh.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sh DAYS_OF_WEEK_ABBREV [list \ + "Ned"\ + "Pon"\ + "Uto"\ + "Sre"\ + "\u010cet"\ + "Pet"\ + "Sub"] + ::msgcat::mcset sh DAYS_OF_WEEK_FULL [list \ + "Nedelja"\ + "Ponedeljak"\ + "Utorak"\ + "Sreda"\ + "\u010cetvrtak"\ + "Petak"\ + "Subota"] + ::msgcat::mcset sh MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mar"\ + "Apr"\ + "Maj"\ + "Jun"\ + "Jul"\ + "Avg"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Dec"\ + ""] + ::msgcat::mcset sh MONTHS_FULL [list \ + "Januar"\ + "Februar"\ + "Mart"\ + "April"\ + "Maj"\ + "Juni"\ + "Juli"\ + "Avgust"\ + "Septembar"\ + "Oktobar"\ + "Novembar"\ + "Decembar"\ + ""] + ::msgcat::mcset sh BCE "p. n. e." + ::msgcat::mcset sh CE "n. e." + ::msgcat::mcset sh DATE_FORMAT "%d.%m.%Y." + ::msgcat::mcset sh TIME_FORMAT "%k.%M.%S" + ::msgcat::mcset sh DATE_TIME_FORMAT "%d.%m.%Y. %k.%M.%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sk.msg b/mingw/lib/tcl8.5/msgs/sk.msg new file mode 100644 index 00000000..9b2f0aad --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sk.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sk DAYS_OF_WEEK_ABBREV [list \ + "Ne"\ + "Po"\ + "Ut"\ + "St"\ + "\u0160t"\ + "Pa"\ + "So"] + ::msgcat::mcset sk DAYS_OF_WEEK_FULL [list \ + "Nede\u013ee"\ + "Pondelok"\ + "Utorok"\ + "Streda"\ + "\u0160tvrtok"\ + "Piatok"\ + "Sobota"] + ::msgcat::mcset sk MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "m\u00e1j"\ + "j\u00fan"\ + "j\u00fal"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset sk MONTHS_FULL [list \ + "janu\u00e1r"\ + "febru\u00e1r"\ + "marec"\ + "apr\u00edl"\ + "m\u00e1j"\ + "j\u00fan"\ + "j\u00fal"\ + "august"\ + "september"\ + "okt\u00f3ber"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset sk BCE "pred n.l." + ::msgcat::mcset sk CE "n.l." + ::msgcat::mcset sk DATE_FORMAT "%e.%m.%Y" + ::msgcat::mcset sk TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset sk DATE_TIME_FORMAT "%e.%m.%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sl.msg b/mingw/lib/tcl8.5/msgs/sl.msg new file mode 100644 index 00000000..42bc5097 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sl.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sl DAYS_OF_WEEK_ABBREV [list \ + "Ned"\ + "Pon"\ + "Tor"\ + "Sre"\ + "\u010cet"\ + "Pet"\ + "Sob"] + ::msgcat::mcset sl DAYS_OF_WEEK_FULL [list \ + "Nedelja"\ + "Ponedeljek"\ + "Torek"\ + "Sreda"\ + "\u010cetrtek"\ + "Petek"\ + "Sobota"] + ::msgcat::mcset sl MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "maj"\ + "jun"\ + "jul"\ + "avg"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset sl MONTHS_FULL [list \ + "januar"\ + "februar"\ + "marec"\ + "april"\ + "maj"\ + "junij"\ + "julij"\ + "avgust"\ + "september"\ + "oktober"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset sl BCE "pr.n.\u0161." + ::msgcat::mcset sl CE "po Kr." + ::msgcat::mcset sl DATE_FORMAT "%Y.%m.%e" + ::msgcat::mcset sl TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset sl DATE_TIME_FORMAT "%Y.%m.%e %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sq.msg b/mingw/lib/tcl8.5/msgs/sq.msg new file mode 100644 index 00000000..8fb1fce9 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sq.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sq DAYS_OF_WEEK_ABBREV [list \ + "Die"\ + "H\u00ebn"\ + "Mar"\ + "M\u00ebr"\ + "Enj"\ + "Pre"\ + "Sht"] + ::msgcat::mcset sq DAYS_OF_WEEK_FULL [list \ + "e diel"\ + "e h\u00ebn\u00eb"\ + "e mart\u00eb"\ + "e m\u00ebrkur\u00eb"\ + "e enjte"\ + "e premte"\ + "e shtun\u00eb"] + ::msgcat::mcset sq MONTHS_ABBREV [list \ + "Jan"\ + "Shk"\ + "Mar"\ + "Pri"\ + "Maj"\ + "Qer"\ + "Kor"\ + "Gsh"\ + "Sht"\ + "Tet"\ + "N\u00ebn"\ + "Dhj"\ + ""] + ::msgcat::mcset sq MONTHS_FULL [list \ + "janar"\ + "shkurt"\ + "mars"\ + "prill"\ + "maj"\ + "qershor"\ + "korrik"\ + "gusht"\ + "shtator"\ + "tetor"\ + "n\u00ebntor"\ + "dhjetor"\ + ""] + ::msgcat::mcset sq BCE "p.e.r." + ::msgcat::mcset sq CE "n.e.r." + ::msgcat::mcset sq AM "PD" + ::msgcat::mcset sq PM "MD" + ::msgcat::mcset sq DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset sq TIME_FORMAT_12 "%l:%M:%S.%P" + ::msgcat::mcset sq DATE_TIME_FORMAT "%Y-%m-%d %l:%M:%S.%P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sr.msg b/mingw/lib/tcl8.5/msgs/sr.msg new file mode 100644 index 00000000..75766687 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sr.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sr DAYS_OF_WEEK_ABBREV [list \ + "\u041d\u0435\u0434"\ + "\u041f\u043e\u043d"\ + "\u0423\u0442\u043e"\ + "\u0421\u0440\u0435"\ + "\u0427\u0435\u0442"\ + "\u041f\u0435\u0442"\ + "\u0421\u0443\u0431"] + ::msgcat::mcset sr DAYS_OF_WEEK_FULL [list \ + "\u041d\u0435\u0434\u0435\u0459\u0430"\ + "\u041f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a"\ + "\u0423\u0442\u043e\u0440\u0430\u043a"\ + "\u0421\u0440\u0435\u0434\u0430"\ + "\u0427\u0435\u0442\u0432\u0440\u0442\u0430\u043a"\ + "\u041f\u0435\u0442\u0430\u043a"\ + "\u0421\u0443\u0431\u043e\u0442\u0430"] + ::msgcat::mcset sr MONTHS_ABBREV [list \ + "\u0408\u0430\u043d"\ + "\u0424\u0435\u0431"\ + "\u041c\u0430\u0440"\ + "\u0410\u043f\u0440"\ + "\u041c\u0430\u0458"\ + "\u0408\u0443\u043d"\ + "\u0408\u0443\u043b"\ + "\u0410\u0432\u0433"\ + "\u0421\u0435\u043f"\ + "\u041e\u043a\u0442"\ + "\u041d\u043e\u0432"\ + "\u0414\u0435\u0446"\ + ""] + ::msgcat::mcset sr MONTHS_FULL [list \ + "\u0408\u0430\u043d\u0443\u0430\u0440"\ + "\u0424\u0435\u0431\u0440\u0443\u0430\u0440"\ + "\u041c\u0430\u0440\u0442"\ + "\u0410\u043f\u0440\u0438\u043b"\ + "\u041c\u0430\u0458"\ + "\u0408\u0443\u043d\u0438"\ + "\u0408\u0443\u043b\u0438"\ + "\u0410\u0432\u0433\u0443\u0441\u0442"\ + "\u0421\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440"\ + "\u041e\u043a\u0442\u043e\u0431\u0430\u0440"\ + "\u041d\u043e\u0432\u0435\u043c\u0431\u0430\u0440"\ + "\u0414\u0435\u0446\u0435\u043c\u0431\u0430\u0440"\ + ""] + ::msgcat::mcset sr BCE "\u043f. \u043d. \u0435." + ::msgcat::mcset sr CE "\u043d. \u0435" + ::msgcat::mcset sr DATE_FORMAT "%Y.%m.%e" + ::msgcat::mcset sr TIME_FORMAT "%k.%M.%S" + ::msgcat::mcset sr DATE_TIME_FORMAT "%Y.%m.%e %k.%M.%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sv.msg b/mingw/lib/tcl8.5/msgs/sv.msg new file mode 100644 index 00000000..f7a67c6e --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sv.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sv DAYS_OF_WEEK_ABBREV [list \ + "s\u00f6"\ + "m\u00e5"\ + "ti"\ + "on"\ + "to"\ + "fr"\ + "l\u00f6"] + ::msgcat::mcset sv DAYS_OF_WEEK_FULL [list \ + "s\u00f6ndag"\ + "m\u00e5ndag"\ + "tisdag"\ + "onsdag"\ + "torsdag"\ + "fredag"\ + "l\u00f6rdag"] + ::msgcat::mcset sv MONTHS_ABBREV [list \ + "jan"\ + "feb"\ + "mar"\ + "apr"\ + "maj"\ + "jun"\ + "jul"\ + "aug"\ + "sep"\ + "okt"\ + "nov"\ + "dec"\ + ""] + ::msgcat::mcset sv MONTHS_FULL [list \ + "januari"\ + "februari"\ + "mars"\ + "april"\ + "maj"\ + "juni"\ + "juli"\ + "augusti"\ + "september"\ + "oktober"\ + "november"\ + "december"\ + ""] + ::msgcat::mcset sv BCE "f.Kr." + ::msgcat::mcset sv CE "e.Kr." + ::msgcat::mcset sv DATE_FORMAT "%Y-%m-%d" + ::msgcat::mcset sv TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset sv DATE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/sw.msg b/mingw/lib/tcl8.5/msgs/sw.msg new file mode 100644 index 00000000..b888b43d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/sw.msg @@ -0,0 +1,49 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset sw DAYS_OF_WEEK_ABBREV [list \ + "Jpi"\ + "Jtt"\ + "Jnn"\ + "Jtn"\ + "Alh"\ + "Iju"\ + "Jmo"] + ::msgcat::mcset sw DAYS_OF_WEEK_FULL [list \ + "Jumapili"\ + "Jumatatu"\ + "Jumanne"\ + "Jumatano"\ + "Alhamisi"\ + "Ijumaa"\ + "Jumamosi"] + ::msgcat::mcset sw MONTHS_ABBREV [list \ + "Jan"\ + "Feb"\ + "Mar"\ + "Apr"\ + "Mei"\ + "Jun"\ + "Jul"\ + "Ago"\ + "Sep"\ + "Okt"\ + "Nov"\ + "Des"\ + ""] + ::msgcat::mcset sw MONTHS_FULL [list \ + "Januari"\ + "Februari"\ + "Machi"\ + "Aprili"\ + "Mei"\ + "Juni"\ + "Julai"\ + "Agosti"\ + "Septemba"\ + "Oktoba"\ + "Novemba"\ + "Desemba"\ + ""] + ::msgcat::mcset sw BCE "KK" + ::msgcat::mcset sw CE "BK" +} diff --git a/mingw/lib/tcl8.5/msgs/ta.msg b/mingw/lib/tcl8.5/msgs/ta.msg new file mode 100644 index 00000000..4abb90ca --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ta.msg @@ -0,0 +1,39 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ta DAYS_OF_WEEK_FULL [list \ + "\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1"\ + "\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd"\ + "\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd"\ + "\u0baa\u0bc1\u0ba4\u0ba9\u0bcd"\ + "\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd"\ + "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf"\ + "\u0b9a\u0ba9\u0bbf"] + ::msgcat::mcset ta MONTHS_ABBREV [list \ + "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf"\ + "\u0baa\u0bc6\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf"\ + "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd"\ + "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd"\ + "\u0bae\u0bc7"\ + "\u0b9c\u0bc2\u0ba9\u0bcd"\ + "\u0b9c\u0bc2\u0bb2\u0bc8"\ + "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd"\ + "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\ + "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd"\ + "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\ + "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcdr"] + ::msgcat::mcset ta MONTHS_FULL [list \ + "\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf"\ + "\u0baa\u0bc6\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf"\ + "\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd"\ + "\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd"\ + "\u0bae\u0bc7"\ + "\u0b9c\u0bc2\u0ba9\u0bcd"\ + "\u0b9c\u0bc2\u0bb2\u0bc8"\ + "\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd"\ + "\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\ + "\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd"\ + "\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd"\ + "\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcdr"] + ::msgcat::mcset ta AM "\u0b95\u0bbf\u0bae\u0bc1" + ::msgcat::mcset ta PM "\u0b95\u0bbf\u0baa\u0bbf" +} diff --git a/mingw/lib/tcl8.5/msgs/ta_in.msg b/mingw/lib/tcl8.5/msgs/ta_in.msg new file mode 100644 index 00000000..24590ac4 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/ta_in.msg @@ -0,0 +1,6 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset ta_IN DATE_FORMAT "%d %M %Y" + ::msgcat::mcset ta_IN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset ta_IN DATE_TIME_FORMAT "%d %M %Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/te.msg b/mingw/lib/tcl8.5/msgs/te.msg new file mode 100644 index 00000000..6111473c --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/te.msg @@ -0,0 +1,47 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset te DAYS_OF_WEEK_ABBREV [list \ + "\u0c06\u0c26\u0c3f"\ + "\u0c38\u0c4b\u0c2e"\ + "\u0c2e\u0c02\u0c17\u0c33"\ + "\u0c2c\u0c41\u0c27"\ + "\u0c17\u0c41\u0c30\u0c41"\ + "\u0c36\u0c41\u0c15\u0c4d\u0c30"\ + "\u0c36\u0c28\u0c3f"] + ::msgcat::mcset te DAYS_OF_WEEK_FULL [list \ + "\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02"\ + "\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"] + ::msgcat::mcset te MONTHS_ABBREV [list \ + "\u0c1c\u0c28\u0c35\u0c30\u0c3f"\ + "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\ + "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\ + "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\ + "\u0c2e\u0c47"\ + "\u0c1c\u0c42\u0c28\u0c4d"\ + "\u0c1c\u0c42\u0c32\u0c48"\ + "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\ + "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\ + "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\ + "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\ + "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\ + ""] + ::msgcat::mcset te MONTHS_FULL [list \ + "\u0c1c\u0c28\u0c35\u0c30\u0c3f"\ + "\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\ + "\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\ + "\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\ + "\u0c2e\u0c47"\ + "\u0c1c\u0c42\u0c28\u0c4d"\ + "\u0c1c\u0c42\u0c32\u0c48"\ + "\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\ + "\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\ + "\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\ + "\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\ + "\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\ + ""] +} diff --git a/mingw/lib/tcl8.5/msgs/te_in.msg b/mingw/lib/tcl8.5/msgs/te_in.msg new file mode 100644 index 00000000..61638b5a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/te_in.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset te_IN AM "\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28" + ::msgcat::mcset te_IN PM "\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28" + ::msgcat::mcset te_IN DATE_FORMAT "%d/%m/%Y" + ::msgcat::mcset te_IN TIME_FORMAT_12 "%I:%M:%S %P" + ::msgcat::mcset te_IN DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z" +} diff --git a/mingw/lib/tcl8.5/msgs/th.msg b/mingw/lib/tcl8.5/msgs/th.msg new file mode 100644 index 00000000..7486c35a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/th.msg @@ -0,0 +1,54 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset th DAYS_OF_WEEK_ABBREV [list \ + "\u0e2d\u0e32."\ + "\u0e08."\ + "\u0e2d."\ + "\u0e1e."\ + "\u0e1e\u0e24."\ + "\u0e28."\ + "\u0e2a."] + ::msgcat::mcset th DAYS_OF_WEEK_FULL [list \ + "\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c"\ + "\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c"\ + "\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23"\ + "\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18"\ + "\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35"\ + "\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c"\ + "\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"] + ::msgcat::mcset th MONTHS_ABBREV [list \ + "\u0e21.\u0e04."\ + "\u0e01.\u0e1e."\ + "\u0e21\u0e35.\u0e04."\ + "\u0e40\u0e21.\u0e22."\ + "\u0e1e.\u0e04."\ + "\u0e21\u0e34.\u0e22."\ + "\u0e01.\u0e04."\ + "\u0e2a.\u0e04."\ + "\u0e01.\u0e22."\ + "\u0e15.\u0e04."\ + "\u0e1e.\u0e22."\ + "\u0e18.\u0e04."\ + ""] + ::msgcat::mcset th MONTHS_FULL [list \ + "\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21"\ + "\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c"\ + "\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21"\ + "\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19"\ + "\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21"\ + "\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19"\ + "\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21"\ + "\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21"\ + "\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19"\ + "\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21"\ + "\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19"\ + "\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"\ + ""] + ::msgcat::mcset th BCE "\u0e25\u0e17\u0e35\u0e48" + ::msgcat::mcset th CE "\u0e04.\u0e28." + ::msgcat::mcset th AM "\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07" + ::msgcat::mcset th PM "\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07" + ::msgcat::mcset th DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset th TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset th DATE_TIME_FORMAT "%e/%m/%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/tr.msg b/mingw/lib/tcl8.5/msgs/tr.msg new file mode 100644 index 00000000..7b2ecf97 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/tr.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset tr DAYS_OF_WEEK_ABBREV [list \ + "Paz"\ + "Pzt"\ + "Sal"\ + "\u00c7ar"\ + "Per"\ + "Cum"\ + "Cmt"] + ::msgcat::mcset tr DAYS_OF_WEEK_FULL [list \ + "Pazar"\ + "Pazartesi"\ + "Sal\u0131"\ + "\u00c7ar\u015famba"\ + "Per\u015fembe"\ + "Cuma"\ + "Cumartesi"] + ::msgcat::mcset tr MONTHS_ABBREV [list \ + "Oca"\ + "\u015eub"\ + "Mar"\ + "Nis"\ + "May"\ + "Haz"\ + "Tem"\ + "A\u011fu"\ + "Eyl"\ + "Eki"\ + "Kas"\ + "Ara"\ + ""] + ::msgcat::mcset tr MONTHS_FULL [list \ + "Ocak"\ + "\u015eubat"\ + "Mart"\ + "Nisan"\ + "May\u0131s"\ + "Haziran"\ + "Temmuz"\ + "A\u011fustos"\ + "Eyl\u00fcl"\ + "Ekim"\ + "Kas\u0131m"\ + "Aral\u0131k"\ + ""] + ::msgcat::mcset tr DATE_FORMAT "%d.%m.%Y" + ::msgcat::mcset tr TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset tr DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/uk.msg b/mingw/lib/tcl8.5/msgs/uk.msg new file mode 100644 index 00000000..3e24f865 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/uk.msg @@ -0,0 +1,52 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset uk DAYS_OF_WEEK_ABBREV [list \ + "\u043d\u0434"\ + "\u043f\u043d"\ + "\u0432\u0442"\ + "\u0441\u0440"\ + "\u0447\u0442"\ + "\u043f\u0442"\ + "\u0441\u0431"] + ::msgcat::mcset uk DAYS_OF_WEEK_FULL [list \ + "\u043d\u0435\u0434\u0456\u043b\u044f"\ + "\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a"\ + "\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a"\ + "\u0441\u0435\u0440\u0435\u0434\u0430"\ + "\u0447\u0435\u0442\u0432\u0435\u0440"\ + "\u043f'\u044f\u0442\u043d\u0438\u0446\u044f"\ + "\u0441\u0443\u0431\u043e\u0442\u0430"] + ::msgcat::mcset uk MONTHS_ABBREV [list \ + "\u0441\u0456\u0447"\ + "\u043b\u044e\u0442"\ + "\u0431\u0435\u0440"\ + "\u043a\u0432\u0456\u0442"\ + "\u0442\u0440\u0430\u0432"\ + "\u0447\u0435\u0440\u0432"\ + "\u043b\u0438\u043f"\ + "\u0441\u0435\u0440\u043f"\ + "\u0432\u0435\u0440"\ + "\u0436\u043e\u0432\u0442"\ + "\u043b\u0438\u0441\u0442"\ + "\u0433\u0440\u0443\u0434"\ + ""] + ::msgcat::mcset uk MONTHS_FULL [list \ + "\u0441\u0456\u0447\u043d\u044f"\ + "\u043b\u044e\u0442\u043e\u0433\u043e"\ + "\u0431\u0435\u0440\u0435\u0436\u043d\u044f"\ + "\u043a\u0432\u0456\u0442\u043d\u044f"\ + "\u0442\u0440\u0430\u0432\u043d\u044f"\ + "\u0447\u0435\u0440\u0432\u043d\u044f"\ + "\u043b\u0438\u043f\u043d\u044f"\ + "\u0441\u0435\u0440\u043f\u043d\u044f"\ + "\u0432\u0435\u0440\u0435\u0441\u043d\u044f"\ + "\u0436\u043e\u0432\u0442\u043d\u044f"\ + "\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430"\ + "\u0433\u0440\u0443\u0434\u043d\u044f"\ + ""] + ::msgcat::mcset uk BCE "\u0434\u043e \u043d.\u0435." + ::msgcat::mcset uk CE "\u043f\u0456\u0441\u043b\u044f \u043d.\u0435." + ::msgcat::mcset uk DATE_FORMAT "%e/%m/%Y" + ::msgcat::mcset uk TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset uk DATE_TIME_FORMAT "%e/%m/%Y %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/vi.msg b/mingw/lib/tcl8.5/msgs/vi.msg new file mode 100644 index 00000000..c98b2a6a --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/vi.msg @@ -0,0 +1,50 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset vi DAYS_OF_WEEK_ABBREV [list \ + "Th 2"\ + "Th 3"\ + "Th 4"\ + "Th 5"\ + "Th 6"\ + "Th 7"\ + "CN"] + ::msgcat::mcset vi DAYS_OF_WEEK_FULL [list \ + "Th\u01b0\u0301 hai"\ + "Th\u01b0\u0301 ba"\ + "Th\u01b0\u0301 t\u01b0"\ + "Th\u01b0\u0301 n\u0103m"\ + "Th\u01b0\u0301 s\u00e1u"\ + "Th\u01b0\u0301 ba\u0309y"\ + "Chu\u0309 nh\u00e2\u0323t"] + ::msgcat::mcset vi MONTHS_ABBREV [list \ + "Thg 1"\ + "Thg 2"\ + "Thg 3"\ + "Thg 4"\ + "Thg 5"\ + "Thg 6"\ + "Thg 7"\ + "Thg 8"\ + "Thg 9"\ + "Thg 10"\ + "Thg 11"\ + "Thg 12"\ + ""] + ::msgcat::mcset vi MONTHS_FULL [list \ + "Th\u00e1ng m\u00f4\u0323t"\ + "Th\u00e1ng hai"\ + "Th\u00e1ng ba"\ + "Th\u00e1ng t\u01b0"\ + "Th\u00e1ng n\u0103m"\ + "Th\u00e1ng s\u00e1u"\ + "Th\u00e1ng ba\u0309y"\ + "Th\u00e1ng t\u00e1m"\ + "Th\u00e1ng ch\u00edn"\ + "Th\u00e1ng m\u01b0\u01a1\u0300i"\ + "Th\u00e1ng m\u01b0\u01a1\u0300i m\u00f4\u0323t"\ + "Th\u00e1ng m\u01b0\u01a1\u0300i hai"\ + ""] + ::msgcat::mcset vi DATE_FORMAT "%d %b %Y" + ::msgcat::mcset vi TIME_FORMAT "%H:%M:%S" + ::msgcat::mcset vi DATE_TIME_FORMAT "%d %b %Y %H:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/zh.msg b/mingw/lib/tcl8.5/msgs/zh.msg new file mode 100644 index 00000000..b799a326 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/zh.msg @@ -0,0 +1,55 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset zh DAYS_OF_WEEK_ABBREV [list \ + "\u661f\u671f\u65e5"\ + "\u661f\u671f\u4e00"\ + "\u661f\u671f\u4e8c"\ + "\u661f\u671f\u4e09"\ + "\u661f\u671f\u56db"\ + "\u661f\u671f\u4e94"\ + "\u661f\u671f\u516d"] + ::msgcat::mcset zh DAYS_OF_WEEK_FULL [list \ + "\u661f\u671f\u65e5"\ + "\u661f\u671f\u4e00"\ + "\u661f\u671f\u4e8c"\ + "\u661f\u671f\u4e09"\ + "\u661f\u671f\u56db"\ + "\u661f\u671f\u4e94"\ + "\u661f\u671f\u516d"] + ::msgcat::mcset zh MONTHS_ABBREV [list \ + "\u4e00\u6708"\ + "\u4e8c\u6708"\ + "\u4e09\u6708"\ + "\u56db\u6708"\ + "\u4e94\u6708"\ + "\u516d\u6708"\ + "\u4e03\u6708"\ + "\u516b\u6708"\ + "\u4e5d\u6708"\ + "\u5341\u6708"\ + "\u5341\u4e00\u6708"\ + "\u5341\u4e8c\u6708"\ + ""] + ::msgcat::mcset zh MONTHS_FULL [list \ + "\u4e00\u6708"\ + "\u4e8c\u6708"\ + "\u4e09\u6708"\ + "\u56db\u6708"\ + "\u4e94\u6708"\ + "\u516d\u6708"\ + "\u4e03\u6708"\ + "\u516b\u6708"\ + "\u4e5d\u6708"\ + "\u5341\u6708"\ + "\u5341\u4e00\u6708"\ + "\u5341\u4e8c\u6708"\ + ""] + ::msgcat::mcset zh BCE "\u516c\u5143\u524d" + ::msgcat::mcset zh CE "\u516c\u5143" + ::msgcat::mcset zh AM "\u4e0a\u5348" + ::msgcat::mcset zh PM "\u4e0b\u5348" + ::msgcat::mcset zh LOCALE_NUMERALS "\u3007 \u4e00 \u4e8c \u4e09 \u56db \u4e94 \u516d \u4e03 \u516b \u4e5d \u5341 \u5341\u4e00 \u5341\u4e8c \u5341\u4e09 \u5341\u56db \u5341\u4e94 \u5341\u516d \u5341\u4e03 \u5341\u516b \u5341\u4e5d \u4e8c\u5341 \u5eff\u4e00 \u5eff\u4e8c \u5eff\u4e09 \u5eff\u56db \u5eff\u4e94 \u5eff\u516d \u5eff\u4e03 \u5eff\u516b \u5eff\u4e5d \u4e09\u5341 \u5345\u4e00 \u5345\u4e8c \u5345\u4e09 \u5345\u56db \u5345\u4e94 \u5345\u516d \u5345\u4e03 \u5345\u516b \u5345\u4e5d \u56db\u5341 \u56db\u5341\u4e00 \u56db\u5341\u4e8c \u56db\u5341\u4e09 \u56db\u5341\u56db \u56db\u5341\u4e94 \u56db\u5341\u516d \u56db\u5341\u4e03 \u56db\u5341\u516b \u56db\u5341\u4e5d \u4e94\u5341 \u4e94\u5341\u4e00 \u4e94\u5341\u4e8c \u4e94\u5341\u4e09 \u4e94\u5341\u56db \u4e94\u5341\u4e94 \u4e94\u5341\u516d \u4e94\u5341\u4e03 \u4e94\u5341\u516b \u4e94\u5341\u4e5d \u516d\u5341 \u516d\u5341\u4e00 \u516d\u5341\u4e8c \u516d\u5341\u4e09 \u516d\u5341\u56db \u516d\u5341\u4e94 \u516d\u5341\u516d \u516d\u5341\u4e03 \u516d\u5341\u516b \u516d\u5341\u4e5d \u4e03\u5341 \u4e03\u5341\u4e00 \u4e03\u5341\u4e8c \u4e03\u5341\u4e09 \u4e03\u5341\u56db \u4e03\u5341\u4e94 \u4e03\u5341\u516d \u4e03\u5341\u4e03 \u4e03\u5341\u516b \u4e03\u5341\u4e5d \u516b\u5341 \u516b\u5341\u4e00 \u516b\u5341\u4e8c \u516b\u5341\u4e09 \u516b\u5341\u56db \u516b\u5341\u4e94 \u516b\u5341\u516d \u516b\u5341\u4e03 \u516b\u5341\u516b \u516b\u5341\u4e5d \u4e5d\u5341 \u4e5d\u5341\u4e00 \u4e5d\u5341\u4e8c \u4e5d\u5341\u4e09 \u4e5d\u5341\u56db \u4e5d\u5341\u4e94 \u4e5d\u5341\u516d \u4e5d\u5341\u4e03 \u4e5d\u5341\u516b \u4e5d\u5341\u4e5d" + ::msgcat::mcset zh LOCALE_DATE_FORMAT "\u516c\u5143%Y\u5e74%B%Od\u65e5" + ::msgcat::mcset zh LOCALE_TIME_FORMAT "%OH\u65f6%OM\u5206%OS\u79d2" + ::msgcat::mcset zh LOCALE_DATE_TIME_FORMAT "%A %Y\u5e74%B%Od\u65e5%OH\u65f6%OM\u5206%OS\u79d2 %z" +} diff --git a/mingw/lib/tcl8.5/msgs/zh_cn.msg b/mingw/lib/tcl8.5/msgs/zh_cn.msg new file mode 100644 index 00000000..d62ce775 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/zh_cn.msg @@ -0,0 +1,7 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset zh_CN DATE_FORMAT "%Y-%m-%e" + ::msgcat::mcset zh_CN TIME_FORMAT "%k:%M:%S" + ::msgcat::mcset zh_CN TIME_FORMAT_12 "%P%I\u65f6%M\u5206%S\u79d2" + ::msgcat::mcset zh_CN DATE_TIME_FORMAT "%Y-%m-%e %k:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/zh_hk.msg b/mingw/lib/tcl8.5/msgs/zh_hk.msg new file mode 100644 index 00000000..badb1dd3 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/zh_hk.msg @@ -0,0 +1,28 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset zh_HK DAYS_OF_WEEK_ABBREV [list \ + "\u65e5"\ + "\u4e00"\ + "\u4e8c"\ + "\u4e09"\ + "\u56db"\ + "\u4e94"\ + "\u516d"] + ::msgcat::mcset zh_HK MONTHS_ABBREV [list \ + "1\u6708"\ + "2\u6708"\ + "3\u6708"\ + "4\u6708"\ + "5\u6708"\ + "6\u6708"\ + "7\u6708"\ + "8\u6708"\ + "9\u6708"\ + "10\u6708"\ + "11\u6708"\ + "12\u6708"\ + ""] + ::msgcat::mcset zh_HK DATE_FORMAT "%Y\u5e74%m\u6708%e\u65e5" + ::msgcat::mcset zh_HK TIME_FORMAT_12 "%P%I:%M:%S" + ::msgcat::mcset zh_HK DATE_TIME_FORMAT "%Y\u5e74%m\u6708%e\u65e5 %P%I:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/zh_sg.msg b/mingw/lib/tcl8.5/msgs/zh_sg.msg new file mode 100644 index 00000000..a2f3e39d --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/zh_sg.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset zh_SG AM "\u4e0a\u5348" + ::msgcat::mcset zh_SG PM "\u4e2d\u5348" + ::msgcat::mcset zh_SG DATE_FORMAT "%d %B %Y" + ::msgcat::mcset zh_SG TIME_FORMAT_12 "%P %I:%M:%S" + ::msgcat::mcset zh_SG DATE_TIME_FORMAT "%d %B %Y %P %I:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/msgs/zh_tw.msg b/mingw/lib/tcl8.5/msgs/zh_tw.msg new file mode 100644 index 00000000..e0796b11 --- /dev/null +++ b/mingw/lib/tcl8.5/msgs/zh_tw.msg @@ -0,0 +1,8 @@ +# created by tools/loadICU.tcl -- do not edit +namespace eval ::tcl::clock { + ::msgcat::mcset zh_TW BCE "\u6c11\u570b\u524d" + ::msgcat::mcset zh_TW CE "\u6c11\u570b" + ::msgcat::mcset zh_TW DATE_FORMAT "%Y/%m/%e" + ::msgcat::mcset zh_TW TIME_FORMAT_12 "%P %I:%M:%S" + ::msgcat::mcset zh_TW DATE_TIME_FORMAT "%Y/%m/%e %P %I:%M:%S %z" +} diff --git a/mingw/lib/tcl8.5/opt0.4/optparse.tcl b/mingw/lib/tcl8.5/opt0.4/optparse.tcl new file mode 100644 index 00000000..4622bde8 --- /dev/null +++ b/mingw/lib/tcl8.5/opt0.4/optparse.tcl @@ -0,0 +1,1074 @@ +# optparse.tcl -- +# +# (private) Option parsing package +# Primarily used internally by the safe:: code. +# +# WARNING: This code will go away in a future release +# of Tcl. It is NOT supported and you should not rely +# on it. If your code does rely on this package you +# may directly incorporate this code into your application. +# +# RCS: @(#) $Id: optparse.tcl,v 1.10 2003/09/10 20:27:30 dgp Exp $ + +package require Tcl 8.2 +# When this version number changes, update the pkgIndex.tcl file +# and the install directory in the Makefiles. +package provide opt 0.4.5 + +namespace eval ::tcl { + + # Exported APIs + namespace export OptKeyRegister OptKeyDelete OptKeyError OptKeyParse \ + OptProc OptProcArgGiven OptParse \ + Lempty Lget \ + Lassign Lvarpop Lvarpop1 Lvarset Lvarincr \ + SetMax SetMin + + +################# Example of use / 'user documentation' ################### + + proc OptCreateTestProc {} { + + # Defines ::tcl::OptParseTest as a test proc with parsed arguments + # (can't be defined before the code below is loaded (before "OptProc")) + + # Every OptProc give usage information on "procname -help". + # Try "tcl::OptParseTest -help" and "tcl::OptParseTest -a" and + # then other arguments. + # + # example of 'valid' call: + # ::tcl::OptParseTest save -4 -pr 23 -libsok SybTcl\ + # -nostatics false ch1 + OptProc OptParseTest { + {subcommand -choice {save print} "sub command"} + {arg1 3 "some number"} + {-aflag} + {-intflag 7} + {-weirdflag "help string"} + {-noStatics "Not ok to load static packages"} + {-nestedloading1 true "OK to load into nested slaves"} + {-nestedloading2 -boolean true "OK to load into nested slaves"} + {-libsOK -choice {Tk SybTcl} + "List of packages that can be loaded"} + {-precision -int 12 "Number of digits of precision"} + {-intval 7 "An integer"} + {-scale -float 1.0 "Scale factor"} + {-zoom 1.0 "Zoom factor"} + {-arbitrary foobar "Arbitrary string"} + {-random -string 12 "Random string"} + {-listval -list {} "List value"} + {-blahflag -blah abc "Funny type"} + {arg2 -boolean "a boolean"} + {arg3 -choice "ch1 ch2"} + {?optarg? -list {} "optional argument"} + } { + foreach v [info locals] { + puts stderr [format "%14s : %s" $v [set $v]] + } + } + } + +################### No User serviceable part below ! ############### + + # Array storing the parsed descriptions + variable OptDesc; + array set OptDesc {}; + # Next potentially free key id (numeric) + variable OptDescN 0; + +# Inside algorithm/mechanism description: +# (not for the faint hearted ;-) +# +# The argument description is parsed into a "program tree" +# It is called a "program" because it is the program used by +# the state machine interpreter that use that program to +# actually parse the arguments at run time. +# +# The general structure of a "program" is +# notation (pseudo bnf like) +# name :== definition defines "name" as being "definition" +# { x y z } means list of x, y, and z +# x* means x repeated 0 or more time +# x+ means "x x*" +# x? means optionally x +# x | y means x or y +# "cccc" means the literal string +# +# program :== { programCounter programStep* } +# +# programStep :== program | singleStep +# +# programCounter :== {"P" integer+ } +# +# singleStep :== { instruction parameters* } +# +# instruction :== single element list +# +# (the difference between singleStep and program is that \ +# llength [lindex $program 0] >= 2 +# while +# llength [lindex $singleStep 0] == 1 +# ) +# +# And for this application: +# +# singleStep :== { instruction varname {hasBeenSet currentValue} type +# typeArgs help } +# instruction :== "flags" | "value" +# type :== knowType | anyword +# knowType :== "string" | "int" | "boolean" | "boolflag" | "float" +# | "choice" +# +# for type "choice" typeArgs is a list of possible choices, the first one +# is the default value. for all other types the typeArgs is the default value +# +# a "boolflag" is the type for a flag whose presence or absence, without +# additional arguments means respectively true or false (default flag type). +# +# programCounter is the index in the list of the currently processed +# programStep (thus starting at 1 (0 is {"P" prgCounterValue}). +# If it is a list it points toward each currently selected programStep. +# (like for "flags", as they are optional, form a set and programStep). + +# Performance/Implementation issues +# --------------------------------- +# We use tcl lists instead of arrays because with tcl8.0 +# they should start to be much faster. +# But this code use a lot of helper procs (like Lvarset) +# which are quite slow and would be helpfully optimized +# for instance by being written in C. Also our struture +# is complex and there is maybe some places where the +# string rep might be calculated at great exense. to be checked. + +# +# Parse a given description and saves it here under the given key +# generate a unused keyid if not given +# +proc ::tcl::OptKeyRegister {desc {key ""}} { + variable OptDesc; + variable OptDescN; + if {[string equal $key ""]} { + # in case a key given to us as a parameter was a number + while {[info exists OptDesc($OptDescN)]} {incr OptDescN} + set key $OptDescN; + incr OptDescN; + } + # program counter + set program [list [list "P" 1]]; + + # are we processing flags (which makes a single program step) + set inflags 0; + + set state {}; + + # flag used to detect that we just have a single (flags set) subprogram. + set empty 1; + + foreach item $desc { + if {$state == "args"} { + # more items after 'args'... + return -code error "'args' special argument must be the last one"; + } + set res [OptNormalizeOne $item]; + set state [lindex $res 0]; + if {$inflags} { + if {$state == "flags"} { + # add to 'subprogram' + lappend flagsprg $res; + } else { + # put in the flags + # structure for flag programs items is a list of + # {subprgcounter {prg flag 1} {prg flag 2} {...}} + lappend program $flagsprg; + # put the other regular stuff + lappend program $res; + set inflags 0; + set empty 0; + } + } else { + if {$state == "flags"} { + set inflags 1; + # sub program counter + first sub program + set flagsprg [list [list "P" 1] $res]; + } else { + lappend program $res; + set empty 0; + } + } + } + if {$inflags} { + if {$empty} { + # We just have the subprogram, optimize and remove + # unneeded level: + set program $flagsprg; + } else { + lappend program $flagsprg; + } + } + + set OptDesc($key) $program; + + return $key; +} + +# +# Free the storage for that given key +# +proc ::tcl::OptKeyDelete {key} { + variable OptDesc; + unset OptDesc($key); +} + + # Get the parsed description stored under the given key. + proc OptKeyGetDesc {descKey} { + variable OptDesc; + if {![info exists OptDesc($descKey)]} { + return -code error "Unknown option description key \"$descKey\""; + } + set OptDesc($descKey); + } + +# Parse entry point for ppl who don't want to register with a key, +# for instance because the description changes dynamically. +# (otherwise one should really use OptKeyRegister once + OptKeyParse +# as it is way faster or simply OptProc which does it all) +# Assign a temporary key, call OptKeyParse and then free the storage +proc ::tcl::OptParse {desc arglist} { + set tempkey [OptKeyRegister $desc]; + set ret [catch {uplevel 1 [list ::tcl::OptKeyParse $tempkey $arglist]} res]; + OptKeyDelete $tempkey; + return -code $ret $res; +} + +# Helper function, replacement for proc that both +# register the description under a key which is the name of the proc +# (and thus unique to that code) +# and add a first line to the code to call the OptKeyParse proc +# Stores the list of variables that have been actually given by the user +# (the other will be sets to their default value) +# into local variable named "Args". +proc ::tcl::OptProc {name desc body} { + set namespace [uplevel 1 [list ::namespace current]]; + if {[string match "::*" $name] || [string equal $namespace "::"]} { + # absolute name or global namespace, name is the key + set key $name; + } else { + # we are relative to some non top level namespace: + set key "${namespace}::${name}"; + } + OptKeyRegister $desc $key; + uplevel 1 [list ::proc $name args "set Args \[::tcl::OptKeyParse $key \$args\]\n$body"]; + return $key; +} +# Check that a argument has been given +# assumes that "OptProc" has been used as it will check in "Args" list +proc ::tcl::OptProcArgGiven {argname} { + upvar Args alist; + expr {[lsearch $alist $argname] >=0} +} + + ####### + # Programs/Descriptions manipulation + + # Return the instruction word/list of a given step/(sub)program + proc OptInstr {lst} { + lindex $lst 0; + } + # Is a (sub) program or a plain instruction ? + proc OptIsPrg {lst} { + expr {[llength [OptInstr $lst]]>=2} + } + # Is this instruction a program counter or a real instr + proc OptIsCounter {item} { + expr {[lindex $item 0]=="P"} + } + # Current program counter (2nd word of first word) + proc OptGetPrgCounter {lst} { + Lget $lst {0 1} + } + # Current program counter (2nd word of first word) + proc OptSetPrgCounter {lstName newValue} { + upvar $lstName lst; + set lst [lreplace $lst 0 0 [concat "P" $newValue]]; + } + # returns a list of currently selected items. + proc OptSelection {lst} { + set res {}; + foreach idx [lrange [lindex $lst 0] 1 end] { + lappend res [Lget $lst $idx]; + } + return $res; + } + + # Advance to next description + proc OptNextDesc {descName} { + uplevel 1 [list Lvarincr $descName {0 1}]; + } + + # Get the current description, eventually descend + proc OptCurDesc {descriptions} { + lindex $descriptions [OptGetPrgCounter $descriptions]; + } + # get the current description, eventually descend + # through sub programs as needed. + proc OptCurDescFinal {descriptions} { + set item [OptCurDesc $descriptions]; + # Descend untill we get the actual item and not a sub program + while {[OptIsPrg $item]} { + set item [OptCurDesc $item]; + } + return $item; + } + # Current final instruction adress + proc OptCurAddr {descriptions {start {}}} { + set adress [OptGetPrgCounter $descriptions]; + lappend start $adress; + set item [lindex $descriptions $adress]; + if {[OptIsPrg $item]} { + return [OptCurAddr $item $start]; + } else { + return $start; + } + } + # Set the value field of the current instruction + proc OptCurSetValue {descriptionsName value} { + upvar $descriptionsName descriptions + # get the current item full adress + set adress [OptCurAddr $descriptions]; + # use the 3th field of the item (see OptValue / OptNewInst) + lappend adress 2 + Lvarset descriptions $adress [list 1 $value]; + # ^hasBeenSet flag + } + + # empty state means done/paste the end of the program + proc OptState {item} { + lindex $item 0 + } + + # current state + proc OptCurState {descriptions} { + OptState [OptCurDesc $descriptions]; + } + + ####### + # Arguments manipulation + + # Returns the argument that has to be processed now + proc OptCurrentArg {lst} { + lindex $lst 0; + } + # Advance to next argument + proc OptNextArg {argsName} { + uplevel 1 [list Lvarpop1 $argsName]; + } + ####### + + + + + + # Loop over all descriptions, calling OptDoOne which will + # eventually eat all the arguments. + proc OptDoAll {descriptionsName argumentsName} { + upvar $descriptionsName descriptions + upvar $argumentsName arguments; +# puts "entered DoAll"; + # Nb: the places where "state" can be set are tricky to figure + # because DoOne sets the state to flagsValue and return -continue + # when needed... + set state [OptCurState $descriptions]; + # We'll exit the loop in "OptDoOne" or when state is empty. + while 1 { + set curitem [OptCurDesc $descriptions]; + # Do subprograms if needed, call ourselves on the sub branch + while {[OptIsPrg $curitem]} { + OptDoAll curitem arguments +# puts "done DoAll sub"; + # Insert back the results in current tree; + Lvarset1nc descriptions [OptGetPrgCounter $descriptions]\ + $curitem; + OptNextDesc descriptions; + set curitem [OptCurDesc $descriptions]; + set state [OptCurState $descriptions]; + } +# puts "state = \"$state\" - arguments=($arguments)"; + if {[Lempty $state]} { + # Nothing left to do, we are done in this branch: + break; + } + # The following statement can make us terminate/continue + # as it use return -code {break, continue, return and error} + # codes + OptDoOne descriptions state arguments; + # If we are here, no special return code where issued, + # we'll step to next instruction : +# puts "new state = \"$state\""; + OptNextDesc descriptions; + set state [OptCurState $descriptions]; + } + } + + # Process one step for the state machine, + # eventually consuming the current argument. + proc OptDoOne {descriptionsName stateName argumentsName} { + upvar $argumentsName arguments; + upvar $descriptionsName descriptions; + upvar $stateName state; + + # the special state/instruction "args" eats all + # the remaining args (if any) + if {($state == "args")} { + if {![Lempty $arguments]} { + # If there is no additional arguments, leave the default value + # in. + OptCurSetValue descriptions $arguments; + set arguments {}; + } +# puts "breaking out ('args' state: consuming every reminding args)" + return -code break; + } + + if {[Lempty $arguments]} { + if {$state == "flags"} { + # no argument and no flags : we're done +# puts "returning to previous (sub)prg (no more args)"; + return -code return; + } elseif {$state == "optValue"} { + set state next; # not used, for debug only + # go to next state + return ; + } else { + return -code error [OptMissingValue $descriptions]; + } + } else { + set arg [OptCurrentArg $arguments]; + } + + switch $state { + flags { + # A non-dash argument terminates the options, as does -- + + # Still a flag ? + if {![OptIsFlag $arg]} { + # don't consume the argument, return to previous prg + return -code return; + } + # consume the flag + OptNextArg arguments; + if {[string equal "--" $arg]} { + # return from 'flags' state + return -code return; + } + + set hits [OptHits descriptions $arg]; + if {$hits > 1} { + return -code error [OptAmbigous $descriptions $arg] + } elseif {$hits == 0} { + return -code error [OptFlagUsage $descriptions $arg] + } + set item [OptCurDesc $descriptions]; + if {[OptNeedValue $item]} { + # we need a value, next state is + set state flagValue; + } else { + OptCurSetValue descriptions 1; + } + # continue + return -code continue; + } + flagValue - + value { + set item [OptCurDesc $descriptions]; + # Test the values against their required type + if {[catch {OptCheckType $arg\ + [OptType $item] [OptTypeArgs $item]} val]} { + return -code error [OptBadValue $item $arg $val] + } + # consume the value + OptNextArg arguments; + # set the value + OptCurSetValue descriptions $val; + # go to next state + if {$state == "flagValue"} { + set state flags + return -code continue; + } else { + set state next; # not used, for debug only + return ; # will go on next step + } + } + optValue { + set item [OptCurDesc $descriptions]; + # Test the values against their required type + if {![catch {OptCheckType $arg\ + [OptType $item] [OptTypeArgs $item]} val]} { + # right type, so : + # consume the value + OptNextArg arguments; + # set the value + OptCurSetValue descriptions $val; + } + # go to next state + set state next; # not used, for debug only + return ; # will go on next step + } + } + # If we reach this point: an unknown + # state as been entered ! + return -code error "Bug! unknown state in DoOne \"$state\"\ + (prg counter [OptGetPrgCounter $descriptions]:\ + [OptCurDesc $descriptions])"; + } + +# Parse the options given the key to previously registered description +# and arguments list +proc ::tcl::OptKeyParse {descKey arglist} { + + set desc [OptKeyGetDesc $descKey]; + + # make sure -help always give usage + if {[string equal -nocase "-help" $arglist]} { + return -code error [OptError "Usage information:" $desc 1]; + } + + OptDoAll desc arglist; + + if {![Lempty $arglist]} { + return -code error [OptTooManyArgs $desc $arglist]; + } + + # Analyse the result + # Walk through the tree: + OptTreeVars $desc "#[expr {[info level]-1}]" ; +} + + # determine string length for nice tabulated output + proc OptTreeVars {desc level {vnamesLst {}}} { + foreach item $desc { + if {[OptIsCounter $item]} continue; + if {[OptIsPrg $item]} { + set vnamesLst [OptTreeVars $item $level $vnamesLst]; + } else { + set vname [OptVarName $item]; + upvar $level $vname var + if {[OptHasBeenSet $item]} { +# puts "adding $vname" + # lets use the input name for the returned list + # it is more usefull, for instance you can check that + # no flags at all was given with expr + # {![string match "*-*" $Args]} + lappend vnamesLst [OptName $item]; + set var [OptValue $item]; + } else { + set var [OptDefaultValue $item]; + } + } + } + return $vnamesLst + } + + +# Check the type of a value +# and emit an error if arg is not of the correct type +# otherwise returns the canonical value of that arg (ie 0/1 for booleans) +proc ::tcl::OptCheckType {arg type {typeArgs ""}} { +# puts "checking '$arg' against '$type' ($typeArgs)"; + + # only types "any", "choice", and numbers can have leading "-" + + switch -exact -- $type { + int { + if {![string is integer -strict $arg]} { + error "not an integer" + } + return $arg; + } + float { + return [expr {double($arg)}] + } + script - + list { + # if llength fail : malformed list + if {[llength $arg]==0 && [OptIsFlag $arg]} { + error "no values with leading -" + } + return $arg; + } + boolean { + if {![string is boolean -strict $arg]} { + error "non canonic boolean" + } + # convert true/false because expr/if is broken with "!,... + return [expr {$arg ? 1 : 0}] + } + choice { + if {[lsearch -exact $typeArgs $arg] < 0} { + error "invalid choice" + } + return $arg; + } + any { + return $arg; + } + string - + default { + if {[OptIsFlag $arg]} { + error "no values with leading -" + } + return $arg + } + } + return neverReached; +} + + # internal utilities + + # returns the number of flags matching the given arg + # sets the (local) prg counter to the list of matches + proc OptHits {descName arg} { + upvar $descName desc; + set hits 0 + set hitems {} + set i 1; + + set larg [string tolower $arg]; + set len [string length $larg]; + set last [expr {$len-1}]; + + foreach item [lrange $desc 1 end] { + set flag [OptName $item] + # lets try to match case insensitively + # (string length ought to be cheap) + set lflag [string tolower $flag]; + if {$len == [string length $lflag]} { + if {[string equal $larg $lflag]} { + # Exact match case + OptSetPrgCounter desc $i; + return 1; + } + } elseif {[string equal $larg [string range $lflag 0 $last]]} { + lappend hitems $i; + incr hits; + } + incr i; + } + if {$hits} { + OptSetPrgCounter desc $hitems; + } + return $hits + } + + # Extract fields from the list structure: + + proc OptName {item} { + lindex $item 1; + } + proc OptHasBeenSet {item} { + Lget $item {2 0}; + } + proc OptValue {item} { + Lget $item {2 1}; + } + + proc OptIsFlag {name} { + string match "-*" $name; + } + proc OptIsOpt {name} { + string match {\?*} $name; + } + proc OptVarName {item} { + set name [OptName $item]; + if {[OptIsFlag $name]} { + return [string range $name 1 end]; + } elseif {[OptIsOpt $name]} { + return [string trim $name "?"]; + } else { + return $name; + } + } + proc OptType {item} { + lindex $item 3 + } + proc OptTypeArgs {item} { + lindex $item 4 + } + proc OptHelp {item} { + lindex $item 5 + } + proc OptNeedValue {item} { + expr {![string equal [OptType $item] boolflag]} + } + proc OptDefaultValue {item} { + set val [OptTypeArgs $item] + switch -exact -- [OptType $item] { + choice {return [lindex $val 0]} + boolean - + boolflag { + # convert back false/true to 0/1 because expr !$bool + # is broken.. + if {$val} { + return 1 + } else { + return 0 + } + } + } + return $val + } + + # Description format error helper + proc OptOptUsage {item {what ""}} { + return -code error "invalid description format$what: $item\n\ + should be a list of {varname|-flagname ?-type? ?defaultvalue?\ + ?helpstring?}"; + } + + + # Generate a canonical form single instruction + proc OptNewInst {state varname type typeArgs help} { + list $state $varname [list 0 {}] $type $typeArgs $help; + # ^ ^ + # | | + # hasBeenSet=+ +=currentValue + } + + # Translate one item to canonical form + proc OptNormalizeOne {item} { + set lg [Lassign $item varname arg1 arg2 arg3]; +# puts "called optnormalizeone '$item' v=($varname), lg=$lg"; + set isflag [OptIsFlag $varname]; + set isopt [OptIsOpt $varname]; + if {$isflag} { + set state "flags"; + } elseif {$isopt} { + set state "optValue"; + } elseif {![string equal $varname "args"]} { + set state "value"; + } else { + set state "args"; + } + + # apply 'smart' 'fuzzy' logic to try to make + # description writer's life easy, and our's difficult : + # let's guess the missing arguments :-) + + switch $lg { + 1 { + if {$isflag} { + return [OptNewInst $state $varname boolflag false ""]; + } else { + return [OptNewInst $state $varname any "" ""]; + } + } + 2 { + # varname default + # varname help + set type [OptGuessType $arg1] + if {[string equal $type "string"]} { + if {$isflag} { + set type boolflag + set def false + } else { + set type any + set def "" + } + set help $arg1 + } else { + set help "" + set def $arg1 + } + return [OptNewInst $state $varname $type $def $help]; + } + 3 { + # varname type value + # varname value comment + + if {[regexp {^-(.+)$} $arg1 x type]} { + # flags/optValue as they are optional, need a "value", + # on the contrary, for a variable (non optional), + # default value is pointless, 'cept for choices : + if {$isflag || $isopt || ($type == "choice")} { + return [OptNewInst $state $varname $type $arg2 ""]; + } else { + return [OptNewInst $state $varname $type "" $arg2]; + } + } else { + return [OptNewInst $state $varname\ + [OptGuessType $arg1] $arg1 $arg2] + } + } + 4 { + if {[regexp {^-(.+)$} $arg1 x type]} { + return [OptNewInst $state $varname $type $arg2 $arg3]; + } else { + return -code error [OptOptUsage $item]; + } + } + default { + return -code error [OptOptUsage $item]; + } + } + } + + # Auto magic lazy type determination + proc OptGuessType {arg} { + if { $arg == "true" || $arg == "false" } { + return boolean + } + if {[string is integer -strict $arg]} { + return int + } + if {[string is double -strict $arg]} { + return float + } + return string + } + + # Error messages front ends + + proc OptAmbigous {desc arg} { + OptError "ambigous option \"$arg\", choose from:" [OptSelection $desc] + } + proc OptFlagUsage {desc arg} { + OptError "bad flag \"$arg\", must be one of" $desc; + } + proc OptTooManyArgs {desc arguments} { + OptError "too many arguments (unexpected argument(s): $arguments),\ + usage:"\ + $desc 1 + } + proc OptParamType {item} { + if {[OptIsFlag $item]} { + return "flag"; + } else { + return "parameter"; + } + } + proc OptBadValue {item arg {err {}}} { +# puts "bad val err = \"$err\""; + OptError "bad value \"$arg\" for [OptParamType $item]"\ + [list $item] + } + proc OptMissingValue {descriptions} { +# set item [OptCurDescFinal $descriptions]; + set item [OptCurDesc $descriptions]; + OptError "no value given for [OptParamType $item] \"[OptName $item]\"\ + (use -help for full usage) :"\ + [list $item] + } + +proc ::tcl::OptKeyError {prefix descKey {header 0}} { + OptError $prefix [OptKeyGetDesc $descKey] $header; +} + + # determine string length for nice tabulated output + proc OptLengths {desc nlName tlName dlName} { + upvar $nlName nl; + upvar $tlName tl; + upvar $dlName dl; + foreach item $desc { + if {[OptIsCounter $item]} continue; + if {[OptIsPrg $item]} { + OptLengths $item nl tl dl + } else { + SetMax nl [string length [OptName $item]] + SetMax tl [string length [OptType $item]] + set dv [OptTypeArgs $item]; + if {[OptState $item] != "header"} { + set dv "($dv)"; + } + set l [string length $dv]; + # limit the space allocated to potentially big "choices" + if {([OptType $item] != "choice") || ($l<=12)} { + SetMax dl $l + } else { + if {![info exists dl]} { + set dl 0 + } + } + } + } + } + # output the tree + proc OptTree {desc nl tl dl} { + set res ""; + foreach item $desc { + if {[OptIsCounter $item]} continue; + if {[OptIsPrg $item]} { + append res [OptTree $item $nl $tl $dl]; + } else { + set dv [OptTypeArgs $item]; + if {[OptState $item] != "header"} { + set dv "($dv)"; + } + append res [format "\n %-*s %-*s %-*s %s" \ + $nl [OptName $item] $tl [OptType $item] \ + $dl $dv [OptHelp $item]] + } + } + return $res; + } + +# Give nice usage string +proc ::tcl::OptError {prefix desc {header 0}} { + # determine length + if {$header} { + # add faked instruction + set h [list [OptNewInst header Var/FlagName Type Value Help]]; + lappend h [OptNewInst header ------------ ---- ----- ----]; + lappend h [OptNewInst header {( -help} "" "" {gives this help )}] + set desc [concat $h $desc] + } + OptLengths $desc nl tl dl + # actually output + return "$prefix[OptTree $desc $nl $tl $dl]" +} + + +################ General Utility functions ####################### + +# +# List utility functions +# Naming convention: +# "Lvarxxx" take the list VARiable name as argument +# "Lxxxx" take the list value as argument +# (which is not costly with Tcl8 objects system +# as it's still a reference and not a copy of the values) +# + +# Is that list empty ? +proc ::tcl::Lempty {list} { + expr {[llength $list]==0} +} + +# Gets the value of one leaf of a lists tree +proc ::tcl::Lget {list indexLst} { + if {[llength $indexLst] <= 1} { + return [lindex $list $indexLst]; + } + Lget [lindex $list [lindex $indexLst 0]] [lrange $indexLst 1 end]; +} +# Sets the value of one leaf of a lists tree +# (we use the version that does not create the elements because +# it would be even slower... needs to be written in C !) +# (nb: there is a non trivial recursive problem with indexes 0, +# which appear because there is no difference between a list +# of 1 element and 1 element alone : [list "a"] == "a" while +# it should be {a} and [listp a] should be 0 while [listp {a b}] would be 1 +# and [listp "a b"] maybe 0. listp does not exist either...) +proc ::tcl::Lvarset {listName indexLst newValue} { + upvar $listName list; + if {[llength $indexLst] <= 1} { + Lvarset1nc list $indexLst $newValue; + } else { + set idx [lindex $indexLst 0]; + set targetList [lindex $list $idx]; + # reduce refcount on targetList (not really usefull now, + # could be with optimizing compiler) +# Lvarset1 list $idx {}; + # recursively replace in targetList + Lvarset targetList [lrange $indexLst 1 end] $newValue; + # put updated sub list back in the tree + Lvarset1nc list $idx $targetList; + } +} +# Set one cell to a value, eventually create all the needed elements +# (on level-1 of lists) +variable emptyList {} +proc ::tcl::Lvarset1 {listName index newValue} { + upvar $listName list; + if {$index < 0} {return -code error "invalid negative index"} + set lg [llength $list]; + if {$index >= $lg} { + variable emptyList; + for {set i $lg} {$i<$index} {incr i} { + lappend list $emptyList; + } + lappend list $newValue; + } else { + set list [lreplace $list $index $index $newValue]; + } +} +# same as Lvarset1 but no bound checking / creation +proc ::tcl::Lvarset1nc {listName index newValue} { + upvar $listName list; + set list [lreplace $list $index $index $newValue]; +} +# Increments the value of one leaf of a lists tree +# (which must exists) +proc ::tcl::Lvarincr {listName indexLst {howMuch 1}} { + upvar $listName list; + if {[llength $indexLst] <= 1} { + Lvarincr1 list $indexLst $howMuch; + } else { + set idx [lindex $indexLst 0]; + set targetList [lindex $list $idx]; + # reduce refcount on targetList + Lvarset1nc list $idx {}; + # recursively replace in targetList + Lvarincr targetList [lrange $indexLst 1 end] $howMuch; + # put updated sub list back in the tree + Lvarset1nc list $idx $targetList; + } +} +# Increments the value of one cell of a list +proc ::tcl::Lvarincr1 {listName index {howMuch 1}} { + upvar $listName list; + set newValue [expr {[lindex $list $index]+$howMuch}]; + set list [lreplace $list $index $index $newValue]; + return $newValue; +} +# Removes the first element of a list +# and returns the new list value +proc ::tcl::Lvarpop1 {listName} { + upvar $listName list; + set list [lrange $list 1 end]; +} +# Same but returns the removed element +# (Like the tclX version) +proc ::tcl::Lvarpop {listName} { + upvar $listName list; + set el [lindex $list 0]; + set list [lrange $list 1 end]; + return $el; +} +# Assign list elements to variables and return the length of the list +proc ::tcl::Lassign {list args} { + # faster than direct blown foreach (which does not byte compile) + set i 0; + set lg [llength $list]; + foreach vname $args { + if {$i>=$lg} break + uplevel 1 [list ::set $vname [lindex $list $i]]; + incr i; + } + return $lg; +} + +# Misc utilities + +# Set the varname to value if value is greater than varname's current value +# or if varname is undefined +proc ::tcl::SetMax {varname value} { + upvar 1 $varname var + if {![info exists var] || $value > $var} { + set var $value + } +} + +# Set the varname to value if value is smaller than varname's current value +# or if varname is undefined +proc ::tcl::SetMin {varname value} { + upvar 1 $varname var + if {![info exists var] || $value < $var} { + set var $value + } +} + + + # everything loaded fine, lets create the test proc: + # OptCreateTestProc + # Don't need the create temp proc anymore: + # rename OptCreateTestProc {} +} diff --git a/mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl b/mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl new file mode 100644 index 00000000..c5d36354 --- /dev/null +++ b/mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl @@ -0,0 +1,12 @@ +# Tcl package index file, version 1.1 +# This file is generated by the "pkg_mkIndex -direct" command +# and sourced either when an application starts up or +# by a "package unknown" script. It invokes the +# "package ifneeded" command to set up package-related +# information so that packages will be loaded automatically +# in response to "package require" commands. When this +# script is sourced, the variable $dir must contain the +# full path name of this file's directory. + +if {![package vsatisfies [package provide Tcl] 8.2]} {return} +package ifneeded opt 0.4.5 [list source [file join $dir optparse.tcl]] diff --git a/mingw/lib/tcl8.5/package.tcl b/mingw/lib/tcl8.5/package.tcl new file mode 100644 index 00000000..64197f7b --- /dev/null +++ b/mingw/lib/tcl8.5/package.tcl @@ -0,0 +1,747 @@ +# package.tcl -- +# +# utility procs formerly in init.tcl which can be loaded on demand +# for package management. +# +# RCS: @(#) $Id: package.tcl,v 1.35 2006/11/03 00:34:52 hobbs Exp $ +# +# Copyright (c) 1991-1993 The Regents of the University of California. +# Copyright (c) 1994-1998 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +namespace eval tcl::Pkg {} + +# ::tcl::Pkg::CompareExtension -- +# +# Used internally by pkg_mkIndex to compare the extension of a file to +# a given extension. On Windows, it uses a case-insensitive comparison +# because the file system can be file insensitive. +# +# Arguments: +# fileName name of a file whose extension is compared +# ext (optional) The extension to compare against; you must +# provide the starting dot. +# Defaults to [info sharedlibextension] +# +# Results: +# Returns 1 if the extension matches, 0 otherwise + +proc tcl::Pkg::CompareExtension { fileName {ext {}} } { + global tcl_platform + if {$ext eq ""} {set ext [info sharedlibextension]} + if {$tcl_platform(platform) eq "windows"} { + return [string equal -nocase [file extension $fileName] $ext] + } else { + # Some unices add trailing numbers after the .so, so + # we could have something like '.so.1.2'. + set root $fileName + while {1} { + set currExt [file extension $root] + if {$currExt eq $ext} { + return 1 + } + + # The current extension does not match; if it is not a numeric + # value, quit, as we are only looking to ignore version number + # extensions. Otherwise we might return 1 in this case: + # tcl::Pkg::CompareExtension foo.so.bar .so + # which should not match. + + if { ![string is integer -strict [string range $currExt 1 end]] } { + return 0 + } + set root [file rootname $root] + } + } +} + +# pkg_mkIndex -- +# This procedure creates a package index in a given directory. The +# package index consists of a "pkgIndex.tcl" file whose contents are +# a Tcl script that sets up package information with "package require" +# commands. The commands describe all of the packages defined by the +# files given as arguments. +# +# Arguments: +# -direct (optional) If this flag is present, the generated +# code in pkgMkIndex.tcl will cause the package to be +# loaded when "package require" is executed, rather +# than lazily when the first reference to an exported +# procedure in the package is made. +# -verbose (optional) Verbose output; the name of each file that +# was successfully rocessed is printed out. Additionally, +# if processing of a file failed a message is printed. +# -load pat (optional) Preload any packages whose names match +# the pattern. Used to handle DLLs that depend on +# other packages during their Init procedure. +# dir - Name of the directory in which to create the index. +# args - Any number of additional arguments, each giving +# a glob pattern that matches the names of one or +# more shared libraries or Tcl script files in +# dir. + +proc pkg_mkIndex {args} { + set usage {"pkg_mkIndex ?-direct? ?-lazy? ?-load pattern? ?-verbose? ?--? dir ?pattern ...?"}; + + set argCount [llength $args] + if {$argCount < 1} { + return -code error "wrong # args: should be\n$usage" + } + + set more "" + set direct 1 + set doVerbose 0 + set loadPat "" + for {set idx 0} {$idx < $argCount} {incr idx} { + set flag [lindex $args $idx] + switch -glob -- $flag { + -- { + # done with the flags + incr idx + break + } + -verbose { + set doVerbose 1 + } + -lazy { + set direct 0 + append more " -lazy" + } + -direct { + append more " -direct" + } + -load { + incr idx + set loadPat [lindex $args $idx] + append more " -load $loadPat" + } + -* { + return -code error "unknown flag $flag: should be\n$usage" + } + default { + # done with the flags + break + } + } + } + + set dir [lindex $args $idx] + set patternList [lrange $args [expr {$idx + 1}] end] + if {[llength $patternList] == 0} { + set patternList [list "*.tcl" "*[info sharedlibextension]"] + } + + if {[catch { + glob -directory $dir -tails -types {r f} -- {*}$patternList + } fileList o]} { + return -options $o $fileList + } + foreach file $fileList { + # For each file, figure out what commands and packages it provides. + # To do this, create a child interpreter, load the file into the + # interpreter, and get a list of the new commands and packages + # that are defined. + + if {$file eq "pkgIndex.tcl"} { + continue + } + + set c [interp create] + + # Load into the child any packages currently loaded in the parent + # interpreter that match the -load pattern. + + if {$loadPat ne ""} { + if {$doVerbose} { + tclLog "currently loaded packages: '[info loaded]'" + tclLog "trying to load all packages matching $loadPat" + } + if {![llength [info loaded]]} { + tclLog "warning: no packages are currently loaded, nothing" + tclLog "can possibly match '$loadPat'" + } + } + foreach pkg [info loaded] { + if {! [string match -nocase $loadPat [lindex $pkg 1]]} { + continue + } + if {$doVerbose} { + tclLog "package [lindex $pkg 1] matches '$loadPat'" + } + if {[catch { + load [lindex $pkg 0] [lindex $pkg 1] $c + } err]} { + if {$doVerbose} { + tclLog "warning: load [lindex $pkg 0] [lindex $pkg 1]\nfailed with: $err" + } + } elseif {$doVerbose} { + tclLog "loaded [lindex $pkg 0] [lindex $pkg 1]" + } + if {[lindex $pkg 1] eq "Tk"} { + # Withdraw . if Tk was loaded, to avoid showing a window. + $c eval [list wm withdraw .] + } + } + + $c eval { + # Stub out the package command so packages can + # require other packages. + + rename package __package_orig + proc package {what args} { + switch -- $what { + require { return ; # ignore transitive requires } + default { __package_orig $what {*}$args } + } + } + proc tclPkgUnknown args {} + package unknown tclPkgUnknown + + # Stub out the unknown command so package can call + # into each other during their initialilzation. + + proc unknown {args} {} + + # Stub out the auto_import mechanism + + proc auto_import {args} {} + + # reserve the ::tcl namespace for support procs + # and temporary variables. This might make it awkward + # to generate a pkgIndex.tcl file for the ::tcl namespace. + + namespace eval ::tcl { + variable dir ;# Current directory being processed + variable file ;# Current file being processed + variable direct ;# -direct flag value + variable x ;# Loop variable + variable debug ;# For debugging + variable type ;# "load" or "source", for -direct + variable namespaces ;# Existing namespaces (e.g., ::tcl) + variable packages ;# Existing packages (e.g., Tcl) + variable origCmds ;# Existing commands + variable newCmds ;# Newly created commands + variable newPkgs {} ;# Newly created packages + } + } + + $c eval [list set ::tcl::dir $dir] + $c eval [list set ::tcl::file $file] + $c eval [list set ::tcl::direct $direct] + + # Download needed procedures into the slave because we've + # just deleted the unknown procedure. This doesn't handle + # procedures with default arguments. + + foreach p {::tcl::Pkg::CompareExtension} { + $c eval [list namespace eval [namespace qualifiers $p] {}] + $c eval [list proc $p [info args $p] [info body $p]] + } + + if {[catch { + $c eval { + set ::tcl::debug "loading or sourcing" + + # we need to track command defined by each package even in + # the -direct case, because they are needed internally by + # the "partial pkgIndex.tcl" step above. + + proc ::tcl::GetAllNamespaces {{root ::}} { + set list $root + foreach ns [namespace children $root] { + lappend list {*}[::tcl::GetAllNamespaces $ns] + } + return $list + } + + # init the list of existing namespaces, packages, commands + + foreach ::tcl::x [::tcl::GetAllNamespaces] { + set ::tcl::namespaces($::tcl::x) 1 + } + foreach ::tcl::x [package names] { + if {[package provide $::tcl::x] ne ""} { + set ::tcl::packages($::tcl::x) 1 + } + } + set ::tcl::origCmds [info commands] + + # Try to load the file if it has the shared library + # extension, otherwise source it. It's important not to + # try to load files that aren't shared libraries, because + # on some systems (like SunOS) the loader will abort the + # whole application when it gets an error. + + if {[::tcl::Pkg::CompareExtension $::tcl::file [info sharedlibextension]]} { + # The "file join ." command below is necessary. + # Without it, if the file name has no \'s and we're + # on UNIX, the load command will invoke the + # LD_LIBRARY_PATH search mechanism, which could cause + # the wrong file to be used. + + set ::tcl::debug loading + load [file join $::tcl::dir $::tcl::file] + set ::tcl::type load + } else { + set ::tcl::debug sourcing + source [file join $::tcl::dir $::tcl::file] + set ::tcl::type source + } + + # As a performance optimization, if we are creating + # direct load packages, don't bother figuring out the + # set of commands created by the new packages. We + # only need that list for setting up the autoloading + # used in the non-direct case. + if { !$::tcl::direct } { + # See what new namespaces appeared, and import commands + # from them. Only exported commands go into the index. + + foreach ::tcl::x [::tcl::GetAllNamespaces] { + if {! [info exists ::tcl::namespaces($::tcl::x)]} { + namespace import -force ${::tcl::x}::* + } + + # Figure out what commands appeared + + foreach ::tcl::x [info commands] { + set ::tcl::newCmds($::tcl::x) 1 + } + foreach ::tcl::x $::tcl::origCmds { + unset -nocomplain ::tcl::newCmds($::tcl::x) + } + foreach ::tcl::x [array names ::tcl::newCmds] { + # determine which namespace a command comes from + + set ::tcl::abs [namespace origin $::tcl::x] + + # special case so that global names have no leading + # ::, this is required by the unknown command + + set ::tcl::abs \ + [lindex [auto_qualify $::tcl::abs ::] 0] + + if {$::tcl::x ne $::tcl::abs} { + # Name changed during qualification + + set ::tcl::newCmds($::tcl::abs) 1 + unset ::tcl::newCmds($::tcl::x) + } + } + } + } + + # Look through the packages that appeared, and if there is + # a version provided, then record it + + foreach ::tcl::x [package names] { + if {[package provide $::tcl::x] ne "" + && ![info exists ::tcl::packages($::tcl::x)]} { + lappend ::tcl::newPkgs \ + [list $::tcl::x [package provide $::tcl::x]] + } + } + } + } msg] == 1} { + set what [$c eval set ::tcl::debug] + if {$doVerbose} { + tclLog "warning: error while $what $file: $msg" + } + } else { + set what [$c eval set ::tcl::debug] + if {$doVerbose} { + tclLog "successful $what of $file" + } + set type [$c eval set ::tcl::type] + set cmds [lsort [$c eval array names ::tcl::newCmds]] + set pkgs [$c eval set ::tcl::newPkgs] + if {$doVerbose} { + if { !$direct } { + tclLog "commands provided were $cmds" + } + tclLog "packages provided were $pkgs" + } + if {[llength $pkgs] > 1} { + tclLog "warning: \"$file\" provides more than one package ($pkgs)" + } + foreach pkg $pkgs { + # cmds is empty/not used in the direct case + lappend files($pkg) [list $file $type $cmds] + } + + if {$doVerbose} { + tclLog "processed $file" + } + } + interp delete $c + } + + append index "# Tcl package index file, version 1.1\n" + append index "# This file is generated by the \"pkg_mkIndex$more\" command\n" + append index "# and sourced either when an application starts up or\n" + append index "# by a \"package unknown\" script. It invokes the\n" + append index "# \"package ifneeded\" command to set up package-related\n" + append index "# information so that packages will be loaded automatically\n" + append index "# in response to \"package require\" commands. When this\n" + append index "# script is sourced, the variable \$dir must contain the\n" + append index "# full path name of this file's directory.\n" + + foreach pkg [lsort [array names files]] { + set cmd {} + foreach {name version} $pkg { + break + } + lappend cmd ::tcl::Pkg::Create -name $name -version $version + foreach spec $files($pkg) { + foreach {file type procs} $spec { + if { $direct } { + set procs {} + } + lappend cmd "-$type" [list $file $procs] + } + } + append index "\n[eval $cmd]" + } + + set f [open [file join $dir pkgIndex.tcl] w] + puts $f $index + close $f +} + +# tclPkgSetup -- +# This is a utility procedure use by pkgIndex.tcl files. It is invoked +# as part of a "package ifneeded" script. It calls "package provide" +# to indicate that a package is available, then sets entries in the +# auto_index array so that the package's files will be auto-loaded when +# the commands are used. +# +# Arguments: +# dir - Directory containing all the files for this package. +# pkg - Name of the package (no version number). +# version - Version number for the package, such as 2.1.3. +# files - List of files that constitute the package. Each +# element is a sub-list with three elements. The first +# is the name of a file relative to $dir, the second is +# "load" or "source", indicating whether the file is a +# loadable binary or a script to source, and the third +# is a list of commands defined by this file. + +proc tclPkgSetup {dir pkg version files} { + global auto_index + + package provide $pkg $version + foreach fileInfo $files { + set f [lindex $fileInfo 0] + set type [lindex $fileInfo 1] + foreach cmd [lindex $fileInfo 2] { + if {$type eq "load"} { + set auto_index($cmd) [list load [file join $dir $f] $pkg] + } else { + set auto_index($cmd) [list source [file join $dir $f]] + } + } + } +} + +# tclPkgUnknown -- +# This procedure provides the default for the "package unknown" function. +# It is invoked when a package that's needed can't be found. It scans +# the auto_path directories and their immediate children looking for +# pkgIndex.tcl files and sources any such files that are found to setup +# the package database. As it searches, it will recognize changes +# to the auto_path and scan any new directories. +# +# Arguments: +# name - Name of desired package. Not used. +# version - Version of desired package. Not used. +# exact - Either "-exact" or omitted. Not used. + +proc tclPkgUnknown {name args} { + global auto_path env + + if {![info exists auto_path]} { + return + } + # Cache the auto_path, because it may change while we run through + # the first set of pkgIndex.tcl files + set old_path [set use_path $auto_path] + while {[llength $use_path]} { + set dir [lindex $use_path end] + + # Make sure we only scan each directory one time. + if {[info exists tclSeenPath($dir)]} { + set use_path [lrange $use_path 0 end-1] + continue + } + set tclSeenPath($dir) 1 + + # we can't use glob in safe interps, so enclose the following + # in a catch statement, where we get the pkgIndex files out + # of the subdirectories + catch { + foreach file [glob -directory $dir -join -nocomplain \ + * pkgIndex.tcl] { + set dir [file dirname $file] + if {![info exists procdDirs($dir)] && [file readable $file]} { + if {[catch {source $file} msg]} { + tclLog "error reading package index file $file: $msg" + } else { + set procdDirs($dir) 1 + } + } + } + } + set dir [lindex $use_path end] + if {![info exists procdDirs($dir)]} { + set file [file join $dir pkgIndex.tcl] + # safe interps usually don't have "file readable", + # nor stderr channel + if {([interp issafe] || [file readable $file])} { + if {[catch {source $file} msg] && ![interp issafe]} { + tclLog "error reading package index file $file: $msg" + } else { + set procdDirs($dir) 1 + } + } + } + + set use_path [lrange $use_path 0 end-1] + + # Check whether any of the index scripts we [source]d above + # set a new value for $::auto_path. If so, then find any + # new directories on the $::auto_path, and lappend them to + # the $use_path we are working from. This gives index scripts + # the (arguably unwise) power to expand the index script search + # path while the search is in progress. + set index 0 + if {[llength $old_path] == [llength $auto_path]} { + foreach dir $auto_path old $old_path { + if {$dir ne $old} { + # This entry in $::auto_path has changed. + break + } + incr index + } + } + + # $index now points to the first element of $auto_path that + # has changed, or the beginning if $auto_path has changed length + # Scan the new elements of $auto_path for directories to add to + # $use_path. Don't add directories we've already seen, or ones + # already on the $use_path. + foreach dir [lrange $auto_path $index end] { + if {![info exists tclSeenPath($dir)] + && ([lsearch -exact $use_path $dir] == -1) } { + lappend use_path $dir + } + } + set old_path $auto_path + } +} + +# tcl::MacOSXPkgUnknown -- +# This procedure extends the "package unknown" function for MacOSX. +# It scans the Resources/Scripts directories of the immediate children +# of the auto_path directories for pkgIndex files. +# Only installed in interps that are not safe so we don't check +# for [interp issafe] as in tclPkgUnknown. +# +# Arguments: +# original - original [package unknown] procedure +# name - Name of desired package. Not used. +# version - Version of desired package. Not used. +# exact - Either "-exact" or omitted. Not used. + +proc tcl::MacOSXPkgUnknown {original name args} { + + # First do the cross-platform default search + uplevel 1 $original [linsert $args 0 $name] + + # Now do MacOSX specific searching + global auto_path + + if {![info exists auto_path]} { + return + } + # Cache the auto_path, because it may change while we run through + # the first set of pkgIndex.tcl files + set old_path [set use_path $auto_path] + while {[llength $use_path]} { + set dir [lindex $use_path end] + + # Make sure we only scan each directory one time. + if {[info exists tclSeenPath($dir)]} { + set use_path [lrange $use_path 0 end-1] + continue + } + set tclSeenPath($dir) 1 + + # get the pkgIndex files out of the subdirectories + foreach file [glob -directory $dir -join -nocomplain \ + * Resources Scripts pkgIndex.tcl] { + set dir [file dirname $file] + if {![info exists procdDirs($dir)] && [file readable $file]} { + if {[catch {source $file} msg]} { + tclLog "error reading package index file $file: $msg" + } else { + set procdDirs($dir) 1 + } + } + } + set use_path [lrange $use_path 0 end-1] + + # Check whether any of the index scripts we [source]d above + # set a new value for $::auto_path. If so, then find any + # new directories on the $::auto_path, and lappend them to + # the $use_path we are working from. This gives index scripts + # the (arguably unwise) power to expand the index script search + # path while the search is in progress. + set index 0 + if {[llength $old_path] == [llength $auto_path]} { + foreach dir $auto_path old $old_path { + if {$dir ne $old} { + # This entry in $::auto_path has changed. + break + } + incr index + } + } + + # $index now points to the first element of $auto_path that + # has changed, or the beginning if $auto_path has changed length + # Scan the new elements of $auto_path for directories to add to + # $use_path. Don't add directories we've already seen, or ones + # already on the $use_path. + foreach dir [lrange $auto_path $index end] { + if {![info exists tclSeenPath($dir)] + && ([lsearch -exact $use_path $dir] == -1) } { + lappend use_path $dir + } + } + set old_path $auto_path + } +} + +# ::tcl::Pkg::Create -- +# +# Given a package specification generate a "package ifneeded" statement +# for the package, suitable for inclusion in a pkgIndex.tcl file. +# +# Arguments: +# args arguments used by the Create function: +# -name packageName +# -version packageVersion +# -load {filename ?{procs}?} +# ... +# -source {filename ?{procs}?} +# ... +# +# Any number of -load and -source parameters may be +# specified, so long as there is at least one -load or +# -source parameter. If the procs component of a +# module specifier is left off, that module will be +# set up for direct loading; otherwise, it will be +# set up for lazy loading. If both -source and -load +# are specified, the -load'ed files will be loaded +# first, followed by the -source'd files. +# +# Results: +# An appropriate "package ifneeded" statement for the package. + +proc ::tcl::Pkg::Create {args} { + append err(usage) "[lindex [info level 0] 0] " + append err(usage) "-name packageName -version packageVersion" + append err(usage) "?-load {filename ?{procs}?}? ... " + append err(usage) "?-source {filename ?{procs}?}? ..." + + set err(wrongNumArgs) "wrong # args: should be \"$err(usage)\"" + set err(valueMissing) "value for \"%s\" missing: should be \"$err(usage)\"" + set err(unknownOpt) "unknown option \"%s\": should be \"$err(usage)\"" + set err(noLoadOrSource) "at least one of -load and -source must be given" + + # process arguments + set len [llength $args] + if { $len < 6 } { + error $err(wrongNumArgs) + } + + # Initialize parameters + set opts(-name) {} + set opts(-version) {} + set opts(-source) {} + set opts(-load) {} + + # process parameters + for {set i 0} {$i < $len} {incr i} { + set flag [lindex $args $i] + incr i + switch -glob -- $flag { + "-name" - + "-version" { + if { $i >= $len } { + error [format $err(valueMissing) $flag] + } + set opts($flag) [lindex $args $i] + } + "-source" - + "-load" { + if { $i >= $len } { + error [format $err(valueMissing) $flag] + } + lappend opts($flag) [lindex $args $i] + } + default { + error [format $err(unknownOpt) [lindex $args $i]] + } + } + } + + # Validate the parameters + if { [llength $opts(-name)] == 0 } { + error [format $err(valueMissing) "-name"] + } + if { [llength $opts(-version)] == 0 } { + error [format $err(valueMissing) "-version"] + } + + if { [llength $opts(-source)] == 0 && [llength $opts(-load)] == 0 } { + error $err(noLoadOrSource) + } + + # OK, now everything is good. Generate the package ifneeded statment. + set cmdline "package ifneeded $opts(-name) $opts(-version) " + + set cmdList {} + set lazyFileList {} + + # Handle -load and -source specs + foreach key {load source} { + foreach filespec $opts(-$key) { + foreach {filename proclist} {{} {}} { + break + } + foreach {filename proclist} $filespec { + break + } + + if { [llength $proclist] == 0 } { + set cmd "\[list $key \[file join \$dir [list $filename]\]\]" + lappend cmdList $cmd + } else { + lappend lazyFileList [list $filename $key $proclist] + } + } + } + + if { [llength $lazyFileList] > 0 } { + lappend cmdList "\[list tclPkgSetup \$dir $opts(-name)\ + $opts(-version) [list $lazyFileList]\]" + } + append cmdline [join $cmdList "\\n"] + return $cmdline +} + +interp alias {} ::pkg::create {} ::tcl::Pkg::Create diff --git a/mingw/lib/tcl8.5/parray.tcl b/mingw/lib/tcl8.5/parray.tcl new file mode 100644 index 00000000..e331d4de --- /dev/null +++ b/mingw/lib/tcl8.5/parray.tcl @@ -0,0 +1,30 @@ +# parray: +# Print the contents of a global array on stdout. +# +# RCS: @(#) $Id: parray.tcl,v 1.4 2005/06/03 10:02:23 dkf Exp $ +# +# Copyright (c) 1991-1993 The Regents of the University of California. +# Copyright (c) 1994 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +proc parray {a {pattern *}} { + upvar 1 $a array + if {![array exists array]} { + error "\"$a\" isn't an array" + } + set maxl 0 + set names [lsort [array names array $pattern]] + foreach name $names { + if {[string length $name] > $maxl} { + set maxl [string length $name] + } + } + set maxl [expr {$maxl + [string length $a] + 2}] + foreach name $names { + set nameString [format %s(%s) $a $name] + puts stdout [format "%-*s = %s" $maxl $nameString $array($name)] + } +} diff --git a/mingw/lib/tcl8.5/safe.tcl b/mingw/lib/tcl8.5/safe.tcl new file mode 100644 index 00000000..186c2e7c --- /dev/null +++ b/mingw/lib/tcl8.5/safe.tcl @@ -0,0 +1,909 @@ +# safe.tcl -- +# +# This file provide a safe loading/sourcing mechanism for safe interpreters. +# It implements a virtual path mecanism to hide the real pathnames from the +# slave. It runs in a master interpreter and sets up data structure and +# aliases that will be invoked when used from a slave interpreter. +# +# See the safe.n man page for details. +# +# Copyright (c) 1996-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: safe.tcl,v 1.16 2006/11/03 00:34:52 hobbs Exp $ + +# +# The implementation is based on namespaces. These naming conventions +# are followed: +# Private procs starts with uppercase. +# Public procs are exported and starts with lowercase +# + +# Needed utilities package +package require opt 0.4.1; + +# Create the safe namespace +namespace eval ::safe { + + # Exported API: + namespace export interpCreate interpInit interpConfigure interpDelete \ + interpAddToAccessPath interpFindInAccessPath setLogCmd + + #### + # + # Setup the arguments parsing + # + #### + + # Make sure that our temporary variable is local to this + # namespace. [Bug 981733] + variable temp + + # Share the descriptions + set temp [::tcl::OptKeyRegister { + {-accessPath -list {} "access path for the slave"} + {-noStatics "prevent loading of statically linked pkgs"} + {-statics true "loading of statically linked pkgs"} + {-nestedLoadOk "allow nested loading"} + {-nested false "nested loading"} + {-deleteHook -script {} "delete hook"} + }] + + # create case (slave is optional) + ::tcl::OptKeyRegister { + {?slave? -name {} "name of the slave (optional)"} + } ::safe::interpCreate + # adding the flags sub programs to the command program + # (relying on Opt's internal implementation details) + lappend ::tcl::OptDesc(::safe::interpCreate) $::tcl::OptDesc($temp) + + # init and configure (slave is needed) + ::tcl::OptKeyRegister { + {slave -name {} "name of the slave"} + } ::safe::interpIC + # adding the flags sub programs to the command program + # (relying on Opt's internal implementation details) + lappend ::tcl::OptDesc(::safe::interpIC) $::tcl::OptDesc($temp) + # temp not needed anymore + ::tcl::OptKeyDelete $temp + + + # Helper function to resolve the dual way of specifying staticsok + # (either by -noStatics or -statics 0) + proc InterpStatics {} { + foreach v {Args statics noStatics} { + upvar $v $v + } + set flag [::tcl::OptProcArgGiven -noStatics]; + if {$flag && (!$noStatics == !$statics) + && ([::tcl::OptProcArgGiven -statics])} { + return -code error\ + "conflicting values given for -statics and -noStatics" + } + if {$flag} { + return [expr {!$noStatics}] + } else { + return $statics + } + } + + # Helper function to resolve the dual way of specifying nested loading + # (either by -nestedLoadOk or -nested 1) + proc InterpNested {} { + foreach v {Args nested nestedLoadOk} { + upvar $v $v + } + set flag [::tcl::OptProcArgGiven -nestedLoadOk]; + # note that the test here is the opposite of the "InterpStatics" + # one (it is not -noNested... because of the wanted default value) + if {$flag && (!$nestedLoadOk != !$nested) + && ([::tcl::OptProcArgGiven -nested])} { + return -code error\ + "conflicting values given for -nested and -nestedLoadOk" + } + if {$flag} { + # another difference with "InterpStatics" + return $nestedLoadOk + } else { + return $nested + } + } + + #### + # + # API entry points that needs argument parsing : + # + #### + + + # Interface/entry point function and front end for "Create" + proc interpCreate {args} { + set Args [::tcl::OptKeyParse ::safe::interpCreate $args] + InterpCreate $slave $accessPath \ + [InterpStatics] [InterpNested] $deleteHook + } + + proc interpInit {args} { + set Args [::tcl::OptKeyParse ::safe::interpIC $args] + if {![::interp exists $slave]} { + return -code error "\"$slave\" is not an interpreter" + } + InterpInit $slave $accessPath \ + [InterpStatics] [InterpNested] $deleteHook; + } + + proc CheckInterp {slave} { + if {![IsInterp $slave]} { + return -code error \ + "\"$slave\" is not an interpreter managed by ::safe::" + } + } + + # Interface/entry point function and front end for "Configure" + # This code is awfully pedestrian because it would need + # more coupling and support between the way we store the + # configuration values in safe::interp's and the Opt package + # Obviously we would like an OptConfigure + # to avoid duplicating all this code everywhere. -> TODO + # (the app should share or access easily the program/value + # stored by opt) + # This is even more complicated by the boolean flags with no values + # that we had the bad idea to support for the sake of user simplicity + # in create/init but which makes life hard in configure... + # So this will be hopefully written and some integrated with opt1.0 + # (hopefully for tcl8.1 ?) + proc interpConfigure {args} { + switch [llength $args] { + 1 { + # If we have exactly 1 argument + # the semantic is to return all the current configuration + # We still call OptKeyParse though we know that "slave" + # is our given argument because it also checks + # for the "-help" option. + set Args [::tcl::OptKeyParse ::safe::interpIC $args] + CheckInterp $slave + set res {} + lappend res [list -accessPath [Set [PathListName $slave]]] + lappend res [list -statics [Set [StaticsOkName $slave]]] + lappend res [list -nested [Set [NestedOkName $slave]]] + lappend res [list -deleteHook [Set [DeleteHookName $slave]]] + join $res + } + 2 { + # If we have exactly 2 arguments + # the semantic is a "configure get" + ::tcl::Lassign $args slave arg + # get the flag sub program (we 'know' about Opt's internal + # representation of data) + set desc [lindex [::tcl::OptKeyGetDesc ::safe::interpIC] 2] + set hits [::tcl::OptHits desc $arg] + if {$hits > 1} { + return -code error [::tcl::OptAmbigous $desc $arg] + } elseif {$hits == 0} { + return -code error [::tcl::OptFlagUsage $desc $arg] + } + CheckInterp $slave + set item [::tcl::OptCurDesc $desc] + set name [::tcl::OptName $item] + switch -exact -- $name { + -accessPath { + return [list -accessPath [Set [PathListName $slave]]] + } + -statics { + return [list -statics [Set [StaticsOkName $slave]]] + } + -nested { + return [list -nested [Set [NestedOkName $slave]]] + } + -deleteHook { + return [list -deleteHook [Set [DeleteHookName $slave]]] + } + -noStatics { + # it is most probably a set in fact + # but we would need then to jump to the set part + # and it is not *sure* that it is a set action + # that the user want, so force it to use the + # unambigous -statics ?value? instead: + return -code error\ + "ambigous query (get or set -noStatics ?)\ + use -statics instead" + } + -nestedLoadOk { + return -code error\ + "ambigous query (get or set -nestedLoadOk ?)\ + use -nested instead" + } + default { + return -code error "unknown flag $name (bug)" + } + } + } + default { + # Otherwise we want to parse the arguments like init and create + # did + set Args [::tcl::OptKeyParse ::safe::interpIC $args] + CheckInterp $slave + # Get the current (and not the default) values of + # whatever has not been given: + if {![::tcl::OptProcArgGiven -accessPath]} { + set doreset 1 + set accessPath [Set [PathListName $slave]] + } else { + set doreset 0 + } + if {(![::tcl::OptProcArgGiven -statics]) \ + && (![::tcl::OptProcArgGiven -noStatics]) } { + set statics [Set [StaticsOkName $slave]] + } else { + set statics [InterpStatics] + } + if {([::tcl::OptProcArgGiven -nested]) \ + || ([::tcl::OptProcArgGiven -nestedLoadOk]) } { + set nested [InterpNested] + } else { + set nested [Set [NestedOkName $slave]] + } + if {![::tcl::OptProcArgGiven -deleteHook]} { + set deleteHook [Set [DeleteHookName $slave]] + } + # we can now reconfigure : + InterpSetConfig $slave $accessPath $statics $nested $deleteHook + # auto_reset the slave (to completly synch the new access_path) + if {$doreset} { + if {[catch {::interp eval $slave {auto_reset}} msg]} { + Log $slave "auto_reset failed: $msg" + } else { + Log $slave "successful auto_reset" NOTICE + } + } + } + } + } + + + #### + # + # Functions that actually implements the exported APIs + # + #### + + + # + # safe::InterpCreate : doing the real job + # + # This procedure creates a safe slave and initializes it with the + # safe base aliases. + # NB: slave name must be simple alphanumeric string, no spaces, + # no (), no {},... {because the state array is stored as part of the name} + # + # Returns the slave name. + # + # Optional Arguments : + # + slave name : if empty, generated name will be used + # + access_path: path list controlling where load/source can occur, + # if empty: the master auto_path will be used. + # + staticsok : flag, if 0 :no static package can be loaded (load {} Xxx) + # if 1 :static packages are ok. + # + nestedok: flag, if 0 :no loading to sub-sub interps (load xx xx sub) + # if 1 : multiple levels are ok. + + # use the full name and no indent so auto_mkIndex can find us + proc ::safe::InterpCreate { + slave + access_path + staticsok + nestedok + deletehook + } { + # Create the slave. + if {$slave ne ""} { + ::interp create -safe $slave + } else { + # empty argument: generate slave name + set slave [::interp create -safe] + } + Log $slave "Created" NOTICE + + # Initialize it. (returns slave name) + InterpInit $slave $access_path $staticsok $nestedok $deletehook + } + + + # + # InterpSetConfig (was setAccessPath) : + # Sets up slave virtual auto_path and corresponding structure + # within the master. Also sets the tcl_library in the slave + # to be the first directory in the path. + # Nb: If you change the path after the slave has been initialized + # you probably need to call "auto_reset" in the slave in order that it + # gets the right auto_index() array values. + + proc ::safe::InterpSetConfig {slave access_path staticsok\ + nestedok deletehook} { + + # determine and store the access path if empty + if {$access_path eq ""} { + set access_path [uplevel \#0 set auto_path] + # Make sure that tcl_library is in auto_path + # and at the first position (needed by setAccessPath) + set where [lsearch -exact $access_path [info library]] + if {$where == -1} { + # not found, add it. + set access_path [concat [list [info library]] $access_path] + Log $slave "tcl_library was not in auto_path,\ + added it to slave's access_path" NOTICE + } elseif {$where != 0} { + # not first, move it first + set access_path [concat [list [info library]]\ + [lreplace $access_path $where $where]] + Log $slave "tcl_libray was not in first in auto_path,\ + moved it to front of slave's access_path" NOTICE + + } + + # Add 1st level sub dirs (will searched by auto loading from tcl + # code in the slave using glob and thus fail, so we add them + # here so by default it works the same). + set access_path [AddSubDirs $access_path] + } + + Log $slave "Setting accessPath=($access_path) staticsok=$staticsok\ + nestedok=$nestedok deletehook=($deletehook)" NOTICE + + # clear old autopath if it existed + set nname [PathNumberName $slave] + if {[Exists $nname]} { + set n [Set $nname] + for {set i 0} {$i<$n} {incr i} { + Unset [PathToken $i $slave] + } + } + + # build new one + set slave_auto_path {} + set i 0 + foreach dir $access_path { + Set [PathToken $i $slave] $dir + lappend slave_auto_path "\$[PathToken $i]" + incr i + } + Set $nname $i + Set [PathListName $slave] $access_path + Set [VirtualPathListName $slave] $slave_auto_path + + Set [StaticsOkName $slave] $staticsok + Set [NestedOkName $slave] $nestedok + Set [DeleteHookName $slave] $deletehook + + SyncAccessPath $slave + } + + # + # + # FindInAccessPath: + # Search for a real directory and returns its virtual Id + # (including the "$") +proc ::safe::interpFindInAccessPath {slave path} { + set access_path [GetAccessPath $slave] + set where [lsearch -exact $access_path $path] + if {$where == -1} { + return -code error "$path not found in access path $access_path" + } + return "\$[PathToken $where]" + } + + # + # addToAccessPath: + # add (if needed) a real directory to access path + # and return its virtual token (including the "$"). +proc ::safe::interpAddToAccessPath {slave path} { + # first check if the directory is already in there + if {![catch {interpFindInAccessPath $slave $path} res]} { + return $res + } + # new one, add it: + set nname [PathNumberName $slave] + set n [Set $nname] + Set [PathToken $n $slave] $path + + set token "\$[PathToken $n]" + + Lappend [VirtualPathListName $slave] $token + Lappend [PathListName $slave] $path + Set $nname [expr {$n+1}] + + SyncAccessPath $slave + + return $token + } + + # This procedure applies the initializations to an already existing + # interpreter. It is useful when you want to install the safe base + # aliases into a preexisting safe interpreter. + proc ::safe::InterpInit { + slave + access_path + staticsok + nestedok + deletehook + } { + + # Configure will generate an access_path when access_path is + # empty. + InterpSetConfig $slave $access_path $staticsok $nestedok $deletehook + + # These aliases let the slave load files to define new commands + + # NB we need to add [namespace current], aliases are always + # absolute paths. + ::interp alias $slave source {} [namespace current]::AliasSource $slave + ::interp alias $slave load {} [namespace current]::AliasLoad $slave + + # This alias lets the slave use the encoding names, convertfrom, + # convertto, and system, but not "encoding system " to set + # the system encoding. + + ::interp alias $slave encoding {} [namespace current]::AliasEncoding \ + $slave + + # This alias lets the slave have access to a subset of the 'file' + # command functionality. + + AliasSubset $slave file file dir.* join root.* ext.* tail \ + path.* split + + # This alias interposes on the 'exit' command and cleanly terminates + # the slave. + + ::interp alias $slave exit {} [namespace current]::interpDelete $slave + + # The allowed slave variables already have been set + # by Tcl_MakeSafe(3) + + + # Source init.tcl into the slave, to get auto_load and other + # procedures defined: + + if {[catch {::interp eval $slave\ + {source [file join $tcl_library init.tcl]}} msg]} { + Log $slave "can't source init.tcl ($msg)" + error "can't source init.tcl into slave $slave ($msg)" + } + + return $slave + } + + + # Add (only if needed, avoid duplicates) 1 level of + # sub directories to an existing path list. + # Also removes non directories from the returned list. + proc AddSubDirs {pathList} { + set res {} + foreach dir $pathList { + if {[file isdirectory $dir]} { + # check that we don't have it yet as a children + # of a previous dir + if {[lsearch -exact $res $dir]<0} { + lappend res $dir + } + foreach sub [glob -directory $dir -nocomplain *] { + if {([file isdirectory $sub]) \ + && ([lsearch -exact $res $sub]<0) } { + # new sub dir, add it ! + lappend res $sub + } + } + } + } + return $res + } + + # This procedure deletes a safe slave managed by Safe Tcl and + # cleans up associated state: + +proc ::safe::interpDelete {slave} { + + Log $slave "About to delete" NOTICE + + # If the slave has a cleanup hook registered, call it. + # check the existance because we might be called to delete an interp + # which has not been registered with us at all + set hookname [DeleteHookName $slave] + if {[Exists $hookname]} { + set hook [Set $hookname] + if {![::tcl::Lempty $hook]} { + # remove the hook now, otherwise if the hook + # calls us somehow, we'll loop + Unset $hookname + if {[catch {{*}$hook $slave} err]} { + Log $slave "Delete hook error ($err)" + } + } + } + + # Discard the global array of state associated with the slave, and + # delete the interpreter. + + set statename [InterpStateName $slave] + if {[Exists $statename]} { + Unset $statename + } + + # if we have been called twice, the interp might have been deleted + # already + if {[::interp exists $slave]} { + ::interp delete $slave + Log $slave "Deleted" NOTICE + } + + return + } + + # Set (or get) the loging mecanism + +proc ::safe::setLogCmd {args} { + variable Log + if {[llength $args] == 0} { + return $Log + } else { + if {[llength $args] == 1} { + set Log [lindex $args 0] + } else { + set Log $args + } + } +} + + # internal variable + variable Log {} + + # ------------------- END OF PUBLIC METHODS ------------ + + + # + # sets the slave auto_path to the master recorded value. + # also sets tcl_library to the first token of the virtual path. + # + proc SyncAccessPath {slave} { + set slave_auto_path [Set [VirtualPathListName $slave]] + ::interp eval $slave [list set auto_path $slave_auto_path] + Log $slave "auto_path in $slave has been set to $slave_auto_path"\ + NOTICE + ::interp eval $slave [list set tcl_library [lindex $slave_auto_path 0]] + } + + # base name for storing all the slave states + # the array variable name for slave foo is thus "Sfoo" + # and for sub slave {foo bar} "Sfoo bar" (spaces are handled + # ok everywhere (or should)) + # We add the S prefix to avoid that a slave interp called "Log" + # would smash our "Log" variable. + proc InterpStateName {slave} { + return "S$slave" + } + + # Check that the given slave is "one of us" + proc IsInterp {slave} { + expr {[Exists [InterpStateName $slave]] && [::interp exists $slave]} + } + + # returns the virtual token for directory number N + # if the slave argument is given, + # it will return the corresponding master global variable name + proc PathToken {n {slave ""}} { + if {$slave ne ""} { + return "[InterpStateName $slave](access_path,$n)" + } else { + # We need to have a ":" in the token string so + # [file join] on the mac won't turn it into a relative + # path. + return "p(:$n:)" + } + } + # returns the variable name of the complete path list + proc PathListName {slave} { + return "[InterpStateName $slave](access_path)" + } + # returns the variable name of the complete path list + proc VirtualPathListName {slave} { + return "[InterpStateName $slave](access_path_slave)" + } + # returns the variable name of the number of items + proc PathNumberName {slave} { + return "[InterpStateName $slave](access_path,n)" + } + # returns the staticsok flag var name + proc StaticsOkName {slave} { + return "[InterpStateName $slave](staticsok)" + } + # returns the nestedok flag var name + proc NestedOkName {slave} { + return "[InterpStateName $slave](nestedok)" + } + # Run some code at the namespace toplevel + proc Toplevel {args} { + namespace eval [namespace current] $args + } + # set/get values + proc Set {args} { + Toplevel set {*}$args + } + # lappend on toplevel vars + proc Lappend {args} { + Toplevel lappend {*}$args + } + # unset a var/token (currently just an global level eval) + proc Unset {args} { + Toplevel unset {*}$args + } + # test existance + proc Exists {varname} { + Toplevel info exists $varname + } + # short cut for access path getting + proc GetAccessPath {slave} { + Set [PathListName $slave] + } + # short cut for statics ok flag getting + proc StaticsOk {slave} { + Set [StaticsOkName $slave] + } + # short cut for getting the multiples interps sub loading ok flag + proc NestedOk {slave} { + Set [NestedOkName $slave] + } + # interp deletion storing hook name + proc DeleteHookName {slave} { + return [InterpStateName $slave](cleanupHook) + } + + # + # translate virtual path into real path + # + proc TranslatePath {slave path} { + # somehow strip the namespaces 'functionality' out (the danger + # is that we would strip valid macintosh "../" queries... : + if {[string match "*::*" $path] || [string match "*..*" $path]} { + error "invalid characters in path $path" + } + set n [expr {[Set [PathNumberName $slave]]-1}] + for {} {$n>=0} {incr n -1} { + # fill the token virtual names with their real value + set [PathToken $n] [Set [PathToken $n $slave]] + } + # replaces the token by their value + subst -nobackslashes -nocommands $path + } + + + # Log eventually log an error + # to enable error logging, set Log to {puts stderr} for instance + proc Log {slave msg {type ERROR}} { + variable Log + if {[info exists Log] && [llength $Log]} { + {*}$Log "$type for slave $slave : $msg" + } + } + + + # file name control (limit access to files/ressources that should be + # a valid tcl source file) + proc CheckFileName {slave file} { + # This used to limit what can be sourced to ".tcl" and forbid files + # with more than 1 dot and longer than 14 chars, but I changed that + # for 8.4 as a safe interp has enough internal protection already + # to allow sourcing anything. - hobbs + + if {![file exists $file]} { + # don't tell the file path + error "no such file or directory" + } + + if {![file readable $file]} { + # don't tell the file path + error "not readable" + } + } + + + # AliasSource is the target of the "source" alias in safe interpreters. + + proc AliasSource {slave args} { + + set argc [llength $args] + # Allow only "source filename" + if {$argc != 1} { + set msg "wrong # args: should be \"source fileName\"" + Log $slave "$msg ($args)" + return -code error $msg + } + set file [lindex $args 0] + + # get the real path from the virtual one. + if {[catch {set file [TranslatePath $slave $file]} msg]} { + Log $slave $msg + return -code error "permission denied" + } + + # check that the path is in the access path of that slave + if {[catch {FileInAccessPath $slave $file} msg]} { + Log $slave $msg + return -code error "permission denied" + } + + # do the checks on the filename : + if {[catch {CheckFileName $slave $file} msg]} { + Log $slave "$file:$msg" + return -code error $msg + } + + # passed all the tests , lets source it: + if {[catch {::interp invokehidden $slave source $file} msg]} { + Log $slave $msg + return -code error "script error" + } + return $msg + } + + # AliasLoad is the target of the "load" alias in safe interpreters. + + proc AliasLoad {slave file args} { + + set argc [llength $args] + if {$argc > 2} { + set msg "load error: too many arguments" + Log $slave "$msg ($argc) {$file $args}" + return -code error $msg + } + + # package name (can be empty if file is not). + set package [lindex $args 0] + + # Determine where to load. load use a relative interp path + # and {} means self, so we can directly and safely use passed arg. + set target [lindex $args 1] + if {$target ne ""} { + # we will try to load into a sub sub interp + # check that we want to authorize that. + if {![NestedOk $slave]} { + Log $slave "loading to a sub interp (nestedok)\ + disabled (trying to load $package to $target)" + return -code error "permission denied (nested load)" + } + + } + + # Determine what kind of load is requested + if {$file eq ""} { + # static package loading + if {$package eq ""} { + set msg "load error: empty filename and no package name" + Log $slave $msg + return -code error $msg + } + if {![StaticsOk $slave]} { + Log $slave "static packages loading disabled\ + (trying to load $package to $target)" + return -code error "permission denied (static package)" + } + } else { + # file loading + + # get the real path from the virtual one. + if {[catch {set file [TranslatePath $slave $file]} msg]} { + Log $slave $msg + return -code error "permission denied" + } + + # check the translated path + if {[catch {FileInAccessPath $slave $file} msg]} { + Log $slave $msg + return -code error "permission denied (path)" + } + } + + if {[catch {::interp invokehidden\ + $slave load $file $package $target} msg]} { + Log $slave $msg + return -code error $msg + } + + return $msg + } + + # FileInAccessPath raises an error if the file is not found in + # the list of directories contained in the (master side recorded) slave's + # access path. + + # the security here relies on "file dirname" answering the proper + # result.... needs checking ? + proc FileInAccessPath {slave file} { + + set access_path [GetAccessPath $slave] + + if {[file isdirectory $file]} { + error "\"$file\": is a directory" + } + set parent [file dirname $file] + + # Normalize paths for comparison since lsearch knows nothing of + # potential pathname anomalies. + set norm_parent [file normalize $parent] + foreach path $access_path { + lappend norm_access_path [file normalize $path] + } + + if {[lsearch -exact $norm_access_path $norm_parent] == -1} { + error "\"$file\": not in access_path" + } + } + + # This procedure enables access from a safe interpreter to only a subset of + # the subcommands of a command: + + proc Subset {slave command okpat args} { + set subcommand [lindex $args 0] + if {[regexp $okpat $subcommand]} { + return [$command {*}$args] + } + set msg "not allowed to invoke subcommand $subcommand of $command" + Log $slave $msg + error $msg + } + + # This procedure installs an alias in a slave that invokes "safesubset" + # in the master to execute allowed subcommands. It precomputes the pattern + # of allowed subcommands; you can use wildcards in the pattern if you wish + # to allow subcommand abbreviation. + # + # Syntax is: AliasSubset slave alias target subcommand1 subcommand2... + + proc AliasSubset {slave alias target args} { + set pat ^(; set sep "" + foreach sub $args { + append pat $sep$sub + set sep | + } + append pat )\$ + ::interp alias $slave $alias {}\ + [namespace current]::Subset $slave $target $pat + } + + # AliasEncoding is the target of the "encoding" alias in safe interpreters. + + proc AliasEncoding {slave args} { + + set argc [llength $args] + + set okpat "^(name.*|convert.*)\$" + set subcommand [lindex $args 0] + + if {[regexp $okpat $subcommand]} { + return [::interp invokehidden $slave encoding {*}$args] + } + + if {[string first $subcommand system] == 0} { + if {$argc == 1} { + # passed all the tests , lets source it: + if {[catch {::interp invokehidden \ + $slave encoding system} msg]} { + Log $slave $msg + return -code error "script error" + } + } else { + set msg "wrong # args: should be \"encoding system\"" + Log $slave $msg + error $msg + } + } else { + set msg "wrong # args: should be \"encoding option ?arg ...?\"" + Log $slave $msg + error $msg + } + + return $msg + } + +} diff --git a/mingw/lib/tcl8.5/tclIndex b/mingw/lib/tcl8.5/tclIndex new file mode 100644 index 00000000..2fcf4a56 --- /dev/null +++ b/mingw/lib/tcl8.5/tclIndex @@ -0,0 +1,88 @@ +# Tcl autoload index file, version 2.0 +# This file is generated by the "auto_mkindex" command +# and sourced to set up indexing information for one or +# more commands. Typically each line is a command that +# sets an element in the auto_index array, where the +# element name is the name of a command and the value is +# a script that loads the command. + +set auto_index(auto_reset) [list source [file join $dir auto.tcl]] +set auto_index(tcl_findLibrary) [list source [file join $dir auto.tcl]] +set auto_index(auto_mkindex) [list source [file join $dir auto.tcl]] +set auto_index(auto_mkindex_old) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::init) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::cleanup) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::mkindex) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::hook) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::slavehook) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::command) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::commandInit) [list source [file join $dir auto.tcl]] +set auto_index(::auto_mkindex_parser::fullname) [list source [file join $dir auto.tcl]] +set auto_index(history) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistAdd) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistKeep) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistClear) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistInfo) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistRedo) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistIndex) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistEvent) [list source [file join $dir history.tcl]] +set auto_index(::tcl::HistChange) [list source [file join $dir history.tcl]] +set auto_index(tclLdAout) [list source [file join $dir ldAout.tcl]] +set auto_index(pkg_mkIndex) [list source [file join $dir package.tcl]] +set auto_index(tclPkgSetup) [list source [file join $dir package.tcl]] +set auto_index(tclPkgUnknown) [list source [file join $dir package.tcl]] +set auto_index(::tcl::MacOSXPkgUnknown) [list source [file join $dir package.tcl]] +set auto_index(::pkg::create) [list source [file join $dir package.tcl]] +set auto_index(parray) [list source [file join $dir parray.tcl]] +set auto_index(::safe::InterpStatics) [list source [file join $dir safe.tcl]] +set auto_index(::safe::InterpNested) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpCreate) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpInit) [list source [file join $dir safe.tcl]] +set auto_index(::safe::CheckInterp) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpConfigure) [list source [file join $dir safe.tcl]] +set auto_index(::safe::InterpCreate) [list source [file join $dir safe.tcl]] +set auto_index(::safe::InterpSetConfig) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpFindInAccessPath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpAddToAccessPath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::InterpInit) [list source [file join $dir safe.tcl]] +set auto_index(::safe::AddSubDirs) [list source [file join $dir safe.tcl]] +set auto_index(::safe::interpDelete) [list source [file join $dir safe.tcl]] +set auto_index(::safe::setLogCmd) [list source [file join $dir safe.tcl]] +set auto_index(::safe::SyncAccessPath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::InterpStateName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::IsInterp) [list source [file join $dir safe.tcl]] +set auto_index(::safe::PathToken) [list source [file join $dir safe.tcl]] +set auto_index(::safe::PathListName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::VirtualPathListName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::PathNumberName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::StaticsOkName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::NestedOkName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Toplevel) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Set) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Lappend) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Unset) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Exists) [list source [file join $dir safe.tcl]] +set auto_index(::safe::GetAccessPath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::StaticsOk) [list source [file join $dir safe.tcl]] +set auto_index(::safe::NestedOk) [list source [file join $dir safe.tcl]] +set auto_index(::safe::DeleteHookName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::TranslatePath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Log) [list source [file join $dir safe.tcl]] +set auto_index(::safe::CheckFileName) [list source [file join $dir safe.tcl]] +set auto_index(::safe::AliasSource) [list source [file join $dir safe.tcl]] +set auto_index(::safe::AliasLoad) [list source [file join $dir safe.tcl]] +set auto_index(::safe::FileInAccessPath) [list source [file join $dir safe.tcl]] +set auto_index(::safe::Subset) [list source [file join $dir safe.tcl]] +set auto_index(::safe::AliasSubset) [list source [file join $dir safe.tcl]] +set auto_index(::safe::AliasEncoding) [list source [file join $dir safe.tcl]] +set auto_index(tcl_wordBreakAfter) [list source [file join $dir word.tcl]] +set auto_index(tcl_wordBreakBefore) [list source [file join $dir word.tcl]] +set auto_index(tcl_endOfWord) [list source [file join $dir word.tcl]] +set auto_index(tcl_startOfNextWord) [list source [file join $dir word.tcl]] +set auto_index(tcl_startOfPreviousWord) [list source [file join $dir word.tcl]] +set auto_index(::tcl::tm::add) [list source [file join $dir tm.tcl]] +set auto_index(::tcl::tm::remove) [list source [file join $dir tm.tcl]] +set auto_index(::tcl::tm::list) [list source [file join $dir tm.tcl]] +set auto_index(::tcl::tm::UnknownHandler) [list source [file join $dir tm.tcl]] +set auto_index(::tcl::tm::roots) [list source [file join $dir tm.tcl]] +set auto_index(::tcl::tm::path) [list source [file join $dir tm.tcl]] diff --git a/mingw/lib/tcl8.5/tm.tcl b/mingw/lib/tcl8.5/tm.tcl new file mode 100644 index 00000000..8fac14a3 --- /dev/null +++ b/mingw/lib/tcl8.5/tm.tcl @@ -0,0 +1,362 @@ +# -*- tcl -*- +# +# Searching for Tcl Modules. Defines a procedure, declares it as the +# primary command for finding packages, however also uses the former +# 'package unknown' command as a fallback. +# +# Locates all possible packages in a directory via a less restricted +# glob. The targeted directory is derived from the name of the +# requested package. I.e. the TM scan will look only at directories +# which can contain the requested package. It will register all +# packages it found in the directory so that future requests have a +# higher chance of being fulfilled by the ifneeded database without +# having to come to us again. +# +# We do not remember where we have been and simply rescan targeted +# directories when invoked again. The reasoning is this: +# +# - The only way we get back to the same directory is if someone is +# trying to [package require] something that wasn't there on the +# first scan. +# +# Either +# 1) It is there now: If we rescan, you get it; if not you don't. +# +# This covers the possibility that the application asked for a +# package late, and the package was actually added to the +# installation after the application was started. It shoukld +# still be able to find it. +# +# 2) It still is not there: Either way, you don't get it, but the +# rescan takes time. This is however an error case and we dont't +# care that much about it +# +# 3) It was there the first time; but for some reason a "package +# forget" has been run, and "package" doesn't know about it +# anymore. +# +# This can be an indication that the application wishes to reload +# some functionality. And should work as well. +# +# Note that this also strikes a balance between doing a glob targeting +# a single package, and thus most likely requiring multiple globs of +# the same directory when the application is asking for many packages, +# and trying to glob for _everything_ in all subdirectories when +# looking for a package, which comes with a heavy startup cost. +# +# We scan for regular packages only if no satisfying module was found. + +namespace eval ::tcl::tm { + # Default paths. None yet. + + variable paths {} + + # The regex pattern a file name has to match to make it a Tcl Module. + + set pkgpattern {^([_[:alpha:]][:_[:alnum:]]*)-([[:digit:]].*)[.]tm$} + + # Export the public API + + namespace export path + namespace ensemble create -command path -subcommand {add remove list} +} + +# ::tcl::tm::path implementations -- +# +# Public API to the module path. See specification. +# +# Arguments +# cmd - The subcommand to execute +# args - The paths to add/remove. Must not appear querying the +# path with 'list'. +# +# Results +# No result for subcommands 'add' and 'remove'. A list of paths +# for 'list'. +# +# Sideeffects +# The subcommands 'add' and 'remove' manipulate the list of +# paths to search for Tcl Modules. The subcommand 'list' has no +# sideeffects. + +proc ::tcl::tm::add {path args} { + # PART OF THE ::tcl::tm::path ENSEMBLE + # + # The path is added at the head to the list of module paths. + # + # The command enforces the restriction that no path may be an + # ancestor directory of any other path on the list. If the new + # path violates this restriction an error wil be raised. + # + # If the path is already present as is no error will be raised and + # no action will be taken. + + variable paths + + # We use a copy of the path as source during validation, and + # extend it as well. Because we not only have to detect if the new + # paths are bogus with respect to the existing paths, but also + # between themselves. Otherwise we can still add bogus paths, by + # specifying them in a single call. This makes the use of the new + # paths simpler as well, a trivial assignment of the collected + # paths to the official state var. + + set newpaths $paths + foreach p [linsert $args 0 $path] { + if {$p in $newpaths} { + # Ignore a path already on the list. + continue + } + + # Search for paths which are subdirectories of the new one. If + # there are any then the new path violates the restriction + # about ancestors. + + set pos [lsearch -glob $newpaths ${p}/*] + # Cannot use "in", we need the position for the message. + if {$pos >= 0} { + return -code error \ + "$p is ancestor of existing module path [lindex $newpaths $pos]." + } + + # Now look for existing paths which are ancestors of the new + # one. This reverse question forces us to loop over the + # existing paths, as each element is the pattern, not the new + # path :( + + foreach ep $newpaths { + if {[string match ${ep}/* $p]} { + return -code error \ + "$p is subdirectory of existing module path $ep." + } + } + + set newpaths [linsert $newpaths 0 $p] + } + + # The validation of the input is complete and successful, and + # everything in newpaths is either an old path, or added. We can + # now extend the official list of paths, a simple assignment is + # sufficient. + + set paths $newpaths + return +} + +proc ::tcl::tm::remove {path args} { + # PART OF THE ::tcl::tm::path ENSEMBLE + # + # Removes the path from the list of module paths. The command is + # silently ignored if the path is not on the list. + + variable paths + + foreach p [linsert $args 0 $path] { + set pos [lsearch -exact $paths $p] + if {$pos >= 0} { + set paths [lreplace $paths $pos $pos] + } + } +} + +proc ::tcl::tm::list {} { + # PART OF THE ::tcl::tm::path ENSEMBLE + + variable paths + return $paths +} + +# ::tcl::tm::UnknownHandler -- +# +# Unknown handler for Tcl Modules, i.e. packages in module form. +# +# Arguments +# original - Original [package unknown] procedure. +# name - Name of desired package. +# version - Version of desired package. Can be the +# empty string. +# exact - Either -exact or ommitted. +# +# Name, version, and exact are used to determine +# satisfaction. The original is called iff no satisfaction was +# achieved. The name is also used to compute the directory to +# target in the search. +# +# Results +# None. +# +# Sideeffects +# May populate the package ifneeded database with additional +# provide scripts. + +proc ::tcl::tm::UnknownHandler {original name args} { + # Import the list of paths to search for packages in module form. + # Import the pattern used to check package names in detail. + + variable paths + variable pkgpattern + + # Without paths to search we can do nothing. (Except falling back + # to the regular search). + + if {[llength $paths]} { + set pkgpath [string map {:: /} $name] + set pkgroot [file dirname $pkgpath] + if {$pkgroot eq "."} { + set pkgroot "" + } + + # We don't remember a copy of the paths while looping. Tcl + # Modules are unable to change the list while we are searching + # for them. This also simplifies the loop, as we cannot get + # additional directories while iterating over the list. A + # simple foreach is sufficient. + + set satisfied 0 + foreach path $paths { + if {![file exists $path]} { + continue + } + set currentsearchpath [file join $path $pkgroot] + if {![file exists $currentsearchpath]} { + continue + } + set strip [llength [file split $path]] + + # We can't use glob in safe interps, so enclose the following + # in a catch statement, where we get the module files out + # of the subdirectories. In other words, Tcl Modules are + # not-functional in such an interpreter. This is the same + # as for the command "tclPkgUnknown", i.e. the search for + # regular packages. + + catch { + # We always look for _all_ possible modules in the current + # path, to get the max result out of the glob. + + foreach file [glob -nocomplain -directory $currentsearchpath *.tm] { + set pkgfilename [join [lrange [file split $file] $strip end] ::] + + if {![regexp -- $pkgpattern $pkgfilename --> pkgname pkgversion]} { + # Ignore everything not matching our pattern + # for package names. + continue + } + if {[catch {package vcompare $pkgversion 0}]} { + # Ignore everything where the version part is + # not acceptable to "package vcompare". + continue + } + + # We have found a candidate, generate a "provide + # script" for it, and remember it. Note that we + # are using ::list to do this; locally [list] + # means something else without the namespace + # specifier. + + package ifneeded $pkgname $pkgversion [::list source $file] + + # We abort in this unknown handler only if we got + # a satisfying candidate for the requested + # package. Otherwise we still have to fallback to + # the regular package search to complete the + # processing. + + if { + ($pkgname eq $name) && + [package vsatisfies $pkgversion {*}$args] + } then { + set satisfied 1 + # We do not abort the loop, and keep adding + # provide scripts for every candidate in the + # directory, just remember to not fall back to + # the regular search anymore. + } + } + } + } + + if {$satisfied} { + return + } + } + + # Fallback to previous command, if existing. See comment above + # about ::list... + + if {[llength $original]} { + uplevel 1 $original [::linsert $args 0 $name] + } +} + +# ::tcl::tm::Defaults -- +# +# Determines the default search paths. +# +# Arguments +# None +# +# Results +# None. +# +# Sideeffects +# May add paths to the list of defaults. + +proc ::tcl::tm::Defaults {} { + global env tcl_platform + + lassign [split [info tclversion] .] major minor + set exe [file normalize [info nameofexecutable]] + + # Note that we're using [::list], not [list] because [list] means + # something other than [::list] in this namespace. + roots [::list \ + [file dirname [info library]] \ + [file join [file dirname [file dirname $exe]] lib] \ + ] + + if {$tcl_platform(platform) eq "windows"} { + set sep ";" + } else { + set sep ":" + } + for {set n $minor} {$n >= 0} {incr n -1} { + set ev TCL${major}.${n}_TM_PATH + if {[info exists env($ev)]} { + foreach p [split $env($ev) $sep] { + path add $p + } + } + } + return +} + +# ::tcl::tm::roots -- +# +# Public API to the module path. See specification. +# +# Arguments +# paths - List of 'root' paths to derive search paths from. +# +# Results +# No result. +# +# Sideeffects +# Calls 'path add' to paths to the list of module search paths. + +proc ::tcl::tm::roots {paths} { + foreach {major minor} [split [info tclversion] .] break + foreach pa $paths { + set p [file join $pa tcl$major] + for {set n $minor} {$n >= 0} {incr n -1} { + path add [file normalize [file join $p ${major}.${n}]] + } + path add [file normalize [file join $p site-tcl]] + } + return +} + +# Initialization. Set up the default paths, then insert the new +# handler into the chain. + +::tcl::tm::Defaults diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Abidjan b/mingw/lib/tcl8.5/tzdata/Africa/Abidjan new file mode 100644 index 00000000..4b4f5b22 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Abidjan @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Abidjan) { + {-9223372036854775808 -968 0 LMT} + {-1830383032 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Accra b/mingw/lib/tcl8.5/tzdata/Africa/Accra new file mode 100644 index 00000000..faf58fb9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Accra @@ -0,0 +1,20 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Accra) { + {-9223372036854775808 -52 0 LMT} + {-1640995148 0 0 GMT} + {-1051920000 1200 1 GHST} + {-1041466800 0 0 GMT} + {-1020384000 1200 1 GHST} + {-1009930800 0 0 GMT} + {-988848000 1200 1 GHST} + {-978394800 0 0 GMT} + {-957312000 1200 1 GHST} + {-946858800 0 0 GMT} + {-925689600 1200 1 GHST} + {-915236400 0 0 GMT} + {-894153600 1200 1 GHST} + {-883700400 0 0 GMT} + {-862617600 1200 1 GHST} + {-852164400 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa b/mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa new file mode 100644 index 00000000..4b92483b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa @@ -0,0 +1,7 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Algiers b/mingw/lib/tcl8.5/tzdata/Africa/Algiers new file mode 100644 index 00000000..fe4de22b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Algiers @@ -0,0 +1,39 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Algiers) { + {-9223372036854775808 732 0 LMT} + {-2486679072 561 0 PMT} + {-1855958961 0 0 WET} + {-1689814800 3600 1 WEST} + {-1680397200 0 0 WET} + {-1665363600 3600 1 WEST} + {-1648342800 0 0 WET} + {-1635123600 3600 1 WEST} + {-1616893200 0 0 WET} + {-1604278800 3600 1 WEST} + {-1585443600 0 0 WET} + {-1574038800 3600 1 WEST} + {-1552266000 0 0 WET} + {-1539997200 3600 1 WEST} + {-1531443600 0 0 WET} + {-956365200 3600 1 WEST} + {-950486400 0 0 WET} + {-942012000 3600 0 CET} + {-812502000 7200 1 CEST} + {-796262400 3600 0 CET} + {-781052400 7200 1 CEST} + {-766630800 3600 0 CET} + {-733280400 0 0 WET} + {-439430400 3600 0 CET} + {-212029200 0 0 WET} + {41468400 3600 1 WEST} + {54774000 0 0 WET} + {231724800 3600 1 WEST} + {246240000 3600 0 CET} + {259545600 7200 1 CEST} + {275274000 3600 0 CET} + {309740400 0 0 WET} + {325468800 3600 1 WEST} + {341802000 0 0 WET} + {357523200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Asmara b/mingw/lib/tcl8.5/tzdata/Africa/Asmara new file mode 100644 index 00000000..1f0f13e1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Asmara @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Asmera b/mingw/lib/tcl8.5/tzdata/Africa/Asmera new file mode 100644 index 00000000..931c36da --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Asmera @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Africa/Asmara)]} { + LoadTimeZoneFile Africa/Asmara +} +set TZData(:Africa/Asmera) $TZData(:Africa/Asmara) diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Bamako b/mingw/lib/tcl8.5/tzdata/Africa/Bamako new file mode 100644 index 00000000..7ed62e0f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Bamako @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Bangui b/mingw/lib/tcl8.5/tzdata/Africa/Bangui new file mode 100644 index 00000000..94f5058f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Bangui @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Bangui) { + {-9223372036854775808 4460 0 LMT} + {-1830388460 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Banjul b/mingw/lib/tcl8.5/tzdata/Africa/Banjul new file mode 100644 index 00000000..a7f01689 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Banjul @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Bissau b/mingw/lib/tcl8.5/tzdata/Africa/Bissau new file mode 100644 index 00000000..d51cb9f4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Bissau @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Bissau) { + {-9223372036854775808 -3740 0 LMT} + {-1849388260 -3600 0 WAT} + {157770000 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Blantyre b/mingw/lib/tcl8.5/tzdata/Africa/Blantyre new file mode 100644 index 00000000..17b58f47 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Blantyre @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Blantyre) { + {-9223372036854775808 8400 0 LMT} + {-2109291600 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Brazzaville b/mingw/lib/tcl8.5/tzdata/Africa/Brazzaville new file mode 100644 index 00000000..b4e09231 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Brazzaville @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Brazzaville) { + {-9223372036854775808 3668 0 LMT} + {-1830387668 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Bujumbura b/mingw/lib/tcl8.5/tzdata/Africa/Bujumbura new file mode 100644 index 00000000..c26d0534 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Bujumbura @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Bujumbura) { + {-9223372036854775808 7048 0 LMT} + {-2524528648 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Cairo b/mingw/lib/tcl8.5/tzdata/Africa/Cairo new file mode 100644 index 00000000..0ae874fb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Cairo @@ -0,0 +1,304 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Cairo) { + {-9223372036854775808 7500 0 LMT} + {-2185409100 7200 0 EET} + {-929844000 10800 1 EEST} + {-923108400 7200 0 EET} + {-906170400 10800 1 EEST} + {-892868400 7200 0 EET} + {-875844000 10800 1 EEST} + {-857790000 7200 0 EET} + {-844308000 10800 1 EEST} + {-825822000 7200 0 EET} + {-812685600 10800 1 EEST} + {-794199600 7200 0 EET} + {-779853600 10800 1 EEST} + {-762663600 7200 0 EET} + {-399088800 10800 1 EEST} + {-386650800 7200 0 EET} + {-368330400 10800 1 EEST} + {-355114800 7200 0 EET} + {-336790800 10800 1 EEST} + {-323654400 7200 0 EET} + {-305168400 10800 1 EEST} + {-292032000 7200 0 EET} + {-273632400 10800 1 EEST} + {-260496000 7200 0 EET} + {-242096400 10800 1 EEST} + {-228960000 7200 0 EET} + {-210560400 10800 1 EEST} + {-197424000 7200 0 EET} + {-178938000 10800 1 EEST} + {-165801600 7200 0 EET} + {-147402000 10800 1 EEST} + {-134265600 7200 0 EET} + {-115866000 10800 1 EEST} + {-102643200 7200 0 EET} + {-84330000 10800 1 EEST} + {-71107200 7200 0 EET} + {-52707600 10800 1 EEST} + {-39484800 7200 0 EET} + {-21171600 10800 1 EEST} + {-7948800 7200 0 EET} + {10364400 10800 1 EEST} + {23587200 7200 0 EET} + {41900400 10800 1 EEST} + {55123200 7200 0 EET} + {73522800 10800 1 EEST} + {86745600 7200 0 EET} + {105058800 10800 1 EEST} + {118281600 7200 0 EET} + {136594800 10800 1 EEST} + {149817600 7200 0 EET} + {168130800 10800 1 EEST} + {181353600 7200 0 EET} + {199753200 10800 1 EEST} + {212976000 7200 0 EET} + {231289200 10800 1 EEST} + {244512000 7200 0 EET} + {262825200 10800 1 EEST} + {276048000 7200 0 EET} + {294361200 10800 1 EEST} + {307584000 7200 0 EET} + {325983600 10800 1 EEST} + {339206400 7200 0 EET} + {357519600 10800 1 EEST} + {370742400 7200 0 EET} + {396399600 10800 1 EEST} + {402278400 7200 0 EET} + {426812400 10800 1 EEST} + {433814400 7200 0 EET} + {452214000 10800 1 EEST} + {465436800 7200 0 EET} + {483750000 10800 1 EEST} + {496972800 7200 0 EET} + {515286000 10800 1 EEST} + {528508800 7200 0 EET} + {546822000 10800 1 EEST} + {560044800 7200 0 EET} + {578444400 10800 1 EEST} + {591667200 7200 0 EET} + {610412400 10800 1 EEST} + {623203200 7200 0 EET} + {641516400 10800 1 EEST} + {654739200 7200 0 EET} + {673052400 10800 1 EEST} + {686275200 7200 0 EET} + {704674800 10800 1 EEST} + {717897600 7200 0 EET} + {736210800 10800 1 EEST} + {749433600 7200 0 EET} + {767746800 10800 1 EEST} + {780969600 7200 0 EET} + {799020000 10800 1 EEST} + {812322000 7200 0 EET} + {830469600 10800 1 EEST} + {843771600 7200 0 EET} + {861919200 10800 1 EEST} + {875221200 7200 0 EET} + {893368800 10800 1 EEST} + {906670800 7200 0 EET} + {925423200 10800 1 EEST} + {938725200 7200 0 EET} + {956872800 10800 1 EEST} + {970174800 7200 0 EET} + {988322400 10800 1 EEST} + {1001624400 7200 0 EET} + {1019772000 10800 1 EEST} + {1033074000 7200 0 EET} + {1051221600 10800 1 EEST} + {1064523600 7200 0 EET} + {1083276000 10800 1 EEST} + {1096578000 7200 0 EET} + {1114725600 10800 1 EEST} + {1128027600 7200 0 EET} + {1146175200 10800 1 EEST} + {1158872400 7200 0 EET} + {1177624800 10800 1 EEST} + {1189112400 7200 0 EET} + {1209074400 10800 1 EEST} + {1220562000 7200 0 EET} + {1240524000 10800 1 EEST} + {1252011600 7200 0 EET} + {1272578400 10800 1 EEST} + {1283461200 7200 0 EET} + {1304028000 10800 1 EEST} + {1314910800 7200 0 EET} + {1335477600 10800 1 EEST} + {1346965200 7200 0 EET} + {1366927200 10800 1 EEST} + {1378414800 7200 0 EET} + {1398376800 10800 1 EEST} + {1409864400 7200 0 EET} + {1429826400 10800 1 EEST} + {1441314000 7200 0 EET} + {1461880800 10800 1 EEST} + {1472763600 7200 0 EET} + {1493330400 10800 1 EEST} + {1504818000 7200 0 EET} + {1524780000 10800 1 EEST} + {1536267600 7200 0 EET} + {1556229600 10800 1 EEST} + {1567717200 7200 0 EET} + {1587679200 10800 1 EEST} + {1599166800 7200 0 EET} + {1619733600 10800 1 EEST} + {1630616400 7200 0 EET} + {1651183200 10800 1 EEST} + {1662066000 7200 0 EET} + {1682632800 10800 1 EEST} + {1694120400 7200 0 EET} + {1714082400 10800 1 EEST} + {1725570000 7200 0 EET} + {1745532000 10800 1 EEST} + {1757019600 7200 0 EET} + {1776981600 10800 1 EEST} + {1788469200 7200 0 EET} + {1809036000 10800 1 EEST} + {1819918800 7200 0 EET} + {1840485600 10800 1 EEST} + {1851973200 7200 0 EET} + {1871935200 10800 1 EEST} + {1883422800 7200 0 EET} + {1903384800 10800 1 EEST} + {1914872400 7200 0 EET} + {1934834400 10800 1 EEST} + {1946322000 7200 0 EET} + {1966888800 10800 1 EEST} + {1977771600 7200 0 EET} + {1998338400 10800 1 EEST} + {2009221200 7200 0 EET} + {2029788000 10800 1 EEST} + {2041275600 7200 0 EET} + {2061237600 10800 1 EEST} + {2072725200 7200 0 EET} + {2092687200 10800 1 EEST} + {2104174800 7200 0 EET} + {2124136800 10800 1 EEST} + {2135624400 7200 0 EET} + {2156191200 10800 1 EEST} + {2167074000 7200 0 EET} + {2187640800 10800 1 EEST} + {2198523600 7200 0 EET} + {2219090400 10800 1 EEST} + {2230578000 7200 0 EET} + {2250540000 10800 1 EEST} + {2262027600 7200 0 EET} + {2281989600 10800 1 EEST} + {2293477200 7200 0 EET} + {2313439200 10800 1 EEST} + {2324926800 7200 0 EET} + {2345493600 10800 1 EEST} + {2356376400 7200 0 EET} + {2376943200 10800 1 EEST} + {2388430800 7200 0 EET} + {2408392800 10800 1 EEST} + {2419880400 7200 0 EET} + {2439842400 10800 1 EEST} + {2451330000 7200 0 EET} + {2471292000 10800 1 EEST} + {2482779600 7200 0 EET} + {2503346400 10800 1 EEST} + {2514229200 7200 0 EET} + {2534796000 10800 1 EEST} + {2545678800 7200 0 EET} + {2566245600 10800 1 EEST} + {2577733200 7200 0 EET} + {2597695200 10800 1 EEST} + {2609182800 7200 0 EET} + {2629144800 10800 1 EEST} + {2640632400 7200 0 EET} + {2660594400 10800 1 EEST} + {2672082000 7200 0 EET} + {2692648800 10800 1 EEST} + {2703531600 7200 0 EET} + {2724098400 10800 1 EEST} + {2735586000 7200 0 EET} + {2755548000 10800 1 EEST} + {2767035600 7200 0 EET} + {2786997600 10800 1 EEST} + {2798485200 7200 0 EET} + {2818447200 10800 1 EEST} + {2829934800 7200 0 EET} + {2850501600 10800 1 EEST} + {2861384400 7200 0 EET} + {2881951200 10800 1 EEST} + {2892834000 7200 0 EET} + {2913400800 10800 1 EEST} + {2924888400 7200 0 EET} + {2944850400 10800 1 EEST} + {2956338000 7200 0 EET} + {2976300000 10800 1 EEST} + {2987787600 7200 0 EET} + {3007749600 10800 1 EEST} + {3019237200 7200 0 EET} + {3039804000 10800 1 EEST} + {3050686800 7200 0 EET} + {3071253600 10800 1 EEST} + {3082136400 7200 0 EET} + {3102703200 10800 1 EEST} + {3114190800 7200 0 EET} + {3134152800 10800 1 EEST} + {3145640400 7200 0 EET} + {3165602400 10800 1 EEST} + {3177090000 7200 0 EET} + {3197052000 10800 1 EEST} + {3208539600 7200 0 EET} + {3229106400 10800 1 EEST} + {3239989200 7200 0 EET} + {3260556000 10800 1 EEST} + {3272043600 7200 0 EET} + {3292005600 10800 1 EEST} + {3303493200 7200 0 EET} + {3323455200 10800 1 EEST} + {3334942800 7200 0 EET} + {3354904800 10800 1 EEST} + {3366392400 7200 0 EET} + {3386959200 10800 1 EEST} + {3397842000 7200 0 EET} + {3418408800 10800 1 EEST} + {3429291600 7200 0 EET} + {3449858400 10800 1 EEST} + {3461346000 7200 0 EET} + {3481308000 10800 1 EEST} + {3492795600 7200 0 EET} + {3512757600 10800 1 EEST} + {3524245200 7200 0 EET} + {3544207200 10800 1 EEST} + {3555694800 7200 0 EET} + {3576261600 10800 1 EEST} + {3587144400 7200 0 EET} + {3607711200 10800 1 EEST} + {3619198800 7200 0 EET} + {3639160800 10800 1 EEST} + {3650648400 7200 0 EET} + {3670610400 10800 1 EEST} + {3682098000 7200 0 EET} + {3702060000 10800 1 EEST} + {3713547600 7200 0 EET} + {3734114400 10800 1 EEST} + {3744997200 7200 0 EET} + {3765564000 10800 1 EEST} + {3776446800 7200 0 EET} + {3797013600 10800 1 EEST} + {3808501200 7200 0 EET} + {3828463200 10800 1 EEST} + {3839950800 7200 0 EET} + {3859912800 10800 1 EEST} + {3871400400 7200 0 EET} + {3891362400 10800 1 EEST} + {3902850000 7200 0 EET} + {3923416800 10800 1 EEST} + {3934299600 7200 0 EET} + {3954866400 10800 1 EEST} + {3965749200 7200 0 EET} + {3986316000 10800 1 EEST} + {3997803600 7200 0 EET} + {4017765600 10800 1 EEST} + {4029253200 7200 0 EET} + {4049215200 10800 1 EEST} + {4060702800 7200 0 EET} + {4080664800 10800 1 EEST} + {4092152400 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Casablanca b/mingw/lib/tcl8.5/tzdata/Africa/Casablanca new file mode 100644 index 00000000..aa4c8e33 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Casablanca @@ -0,0 +1,24 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Casablanca) { + {-9223372036854775808 -1820 0 LMT} + {-1773012580 0 0 WET} + {-956361600 3600 1 WEST} + {-950490000 0 0 WET} + {-942019200 3600 1 WEST} + {-761187600 0 0 WET} + {-617241600 3600 1 WEST} + {-605149200 0 0 WET} + {-81432000 3600 1 WEST} + {-71110800 0 0 WET} + {141264000 3600 1 WEST} + {147222000 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} + {448243200 3600 0 CET} + {504918000 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Ceuta b/mingw/lib/tcl8.5/tzdata/Africa/Ceuta new file mode 100644 index 00000000..882c13d1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Ceuta @@ -0,0 +1,258 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Ceuta) { + {-9223372036854775808 -1276 0 LMT} + {-2177451524 0 0 WET} + {-1630112400 3600 1 WEST} + {-1616810400 0 0 WET} + {-1451692800 0 0 WET} + {-1442451600 3600 1 WEST} + {-1427677200 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301274000 0 0 WET} + {-1293840000 0 0 WET} + {-81432000 3600 1 WEST} + {-71110800 0 0 WET} + {141264000 3600 1 WEST} + {147222000 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} + {448243200 3600 0 CET} + {504918000 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Conakry b/mingw/lib/tcl8.5/tzdata/Africa/Conakry new file mode 100644 index 00000000..d17ce4b3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Conakry @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Dakar b/mingw/lib/tcl8.5/tzdata/Africa/Dakar new file mode 100644 index 00000000..487dc62f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Dakar @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Dakar) { + {-9223372036854775808 -4184 0 LMT} + {-1830379816 -3600 0 WAT} + {-902098800 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam b/mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam new file mode 100644 index 00000000..e427b9c0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Dar_es_Salaam) { + {-9223372036854775808 9428 0 LMT} + {-1230777428 10800 0 EAT} + {-694321200 9885 0 BEAUT} + {-284006685 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Djibouti b/mingw/lib/tcl8.5/tzdata/Africa/Djibouti new file mode 100644 index 00000000..0ec510c9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Djibouti @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Djibouti) { + {-9223372036854775808 10356 0 LMT} + {-1846291956 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Douala b/mingw/lib/tcl8.5/tzdata/Africa/Douala new file mode 100644 index 00000000..301a5303 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Douala @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Douala) { + {-9223372036854775808 2328 0 LMT} + {-1830386328 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun b/mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun new file mode 100644 index 00000000..a8b9d345 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/El_Aaiun) { + {-9223372036854775808 -3168 0 LMT} + {-1136070432 -3600 0 WAT} + {198291600 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Freetown b/mingw/lib/tcl8.5/tzdata/Africa/Freetown new file mode 100644 index 00000000..c3f2d2ec --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Freetown @@ -0,0 +1,36 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Gaborone b/mingw/lib/tcl8.5/tzdata/Africa/Gaborone new file mode 100644 index 00000000..7753ba04 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Gaborone @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Gaborone) { + {-9223372036854775808 6220 0 LMT} + {-2682294220 7200 0 CAT} + {-829526400 10800 1 CAST} + {-813805200 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Harare b/mingw/lib/tcl8.5/tzdata/Africa/Harare new file mode 100644 index 00000000..7482b15e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Harare @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Harare) { + {-9223372036854775808 7452 0 LMT} + {-2109290652 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Johannesburg b/mingw/lib/tcl8.5/tzdata/Africa/Johannesburg new file mode 100644 index 00000000..b9a8348b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Johannesburg @@ -0,0 +1,11 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Johannesburg) { + {-9223372036854775808 6720 0 LMT} + {-2458173120 5400 0 SAST} + {-2109288600 7200 0 SAST} + {-860976000 10800 1 SAST} + {-845254800 7200 0 SAST} + {-829526400 10800 1 SAST} + {-813805200 7200 0 SAST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Kampala b/mingw/lib/tcl8.5/tzdata/Africa/Kampala new file mode 100644 index 00000000..ab3f0853 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Kampala @@ -0,0 +1,9 @@ +# 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 9885 0 BEAUT} + {-410237085 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Khartoum b/mingw/lib/tcl8.5/tzdata/Africa/Khartoum new file mode 100644 index 00000000..dfcac823 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Khartoum @@ -0,0 +1,39 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Khartoum) { + {-9223372036854775808 7808 0 LMT} + {-1230775808 7200 0 CAT} + {10360800 10800 1 CAST} + {24786000 7200 0 CAT} + {41810400 10800 1 CAST} + {56322000 7200 0 CAT} + {73432800 10800 1 CAST} + {87944400 7200 0 CAT} + {104882400 10800 1 CAST} + {119480400 7200 0 CAT} + {136332000 10800 1 CAST} + {151016400 7200 0 CAT} + {167781600 10800 1 CAST} + {182552400 7200 0 CAT} + {199231200 10800 1 CAST} + {214174800 7200 0 CAT} + {230680800 10800 1 CAST} + {245710800 7200 0 CAT} + {262735200 10800 1 CAST} + {277246800 7200 0 CAT} + {294184800 10800 1 CAST} + {308782800 7200 0 CAT} + {325634400 10800 1 CAST} + {340405200 7200 0 CAT} + {357084000 10800 1 CAST} + {371941200 7200 0 CAT} + {388533600 10800 1 CAST} + {403477200 7200 0 CAT} + {419983200 10800 1 CAST} + {435013200 7200 0 CAT} + {452037600 10800 1 CAST} + {466635600 7200 0 CAT} + {483487200 10800 1 CAST} + {498171600 7200 0 CAT} + {947930400 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Kigali b/mingw/lib/tcl8.5/tzdata/Africa/Kigali new file mode 100644 index 00000000..f723bcd5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Kigali @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Kigali) { + {-9223372036854775808 7216 0 LMT} + {-1091498416 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Kinshasa b/mingw/lib/tcl8.5/tzdata/Africa/Kinshasa new file mode 100644 index 00000000..050c1fa1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Kinshasa @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Kinshasa) { + {-9223372036854775808 3672 0 LMT} + {-2276643672 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Lagos b/mingw/lib/tcl8.5/tzdata/Africa/Lagos new file mode 100644 index 00000000..079572f4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Lagos @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Lagos) { + {-9223372036854775808 816 0 LMT} + {-1588464816 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Libreville b/mingw/lib/tcl8.5/tzdata/Africa/Libreville new file mode 100644 index 00000000..84275510 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Libreville @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Libreville) { + {-9223372036854775808 2268 0 LMT} + {-1830386268 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Lome b/mingw/lib/tcl8.5/tzdata/Africa/Lome new file mode 100644 index 00000000..606625c5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Lome @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Lome) { + {-9223372036854775808 292 0 LMT} + {-2429827492 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Luanda b/mingw/lib/tcl8.5/tzdata/Africa/Luanda new file mode 100644 index 00000000..cd1b29ed --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Luanda @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Luanda) { + {-9223372036854775808 3176 0 LMT} + {-2461452776 3124 0 AOT} + {-1849395124 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi b/mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi new file mode 100644 index 00000000..bd67221a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Lubumbashi) { + {-9223372036854775808 6592 0 LMT} + {-2276646592 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Lusaka b/mingw/lib/tcl8.5/tzdata/Africa/Lusaka new file mode 100644 index 00000000..ed9c30d2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Lusaka @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Lusaka) { + {-9223372036854775808 6788 0 LMT} + {-2109289988 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Malabo b/mingw/lib/tcl8.5/tzdata/Africa/Malabo new file mode 100644 index 00000000..bec0524e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Malabo @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Malabo) { + {-9223372036854775808 2108 0 LMT} + {-1830386108 0 0 GMT} + {-190857600 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Maputo b/mingw/lib/tcl8.5/tzdata/Africa/Maputo new file mode 100644 index 00000000..6ee208c1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Maputo @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Maputo) { + {-9223372036854775808 7820 0 LMT} + {-2109291020 7200 0 CAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Maseru b/mingw/lib/tcl8.5/tzdata/Africa/Maseru new file mode 100644 index 00000000..21ca968b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Maseru @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Mbabane b/mingw/lib/tcl8.5/tzdata/Africa/Mbabane new file mode 100644 index 00000000..4d174d53 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Mbabane @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Mbabane) { + {-9223372036854775808 7464 0 LMT} + {-2109290664 7200 0 SAST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Mogadishu b/mingw/lib/tcl8.5/tzdata/Africa/Mogadishu new file mode 100644 index 00000000..570d3ea6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Mogadishu @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Monrovia b/mingw/lib/tcl8.5/tzdata/Africa/Monrovia new file mode 100644 index 00000000..1cfff58b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Monrovia @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Monrovia) { + {-9223372036854775808 -2588 0 LMT} + {-2776979812 -2588 0 MMT} + {-1604359012 -2670 0 LRT} + {73529070 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Nairobi b/mingw/lib/tcl8.5/tzdata/Africa/Nairobi new file mode 100644 index 00000000..99b0d706 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Nairobi @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Nairobi) { + {-9223372036854775808 8836 0 LMT} + {-1309746436 10800 0 EAT} + {-1262314800 9000 0 BEAT} + {-946780200 9885 0 BEAUT} + {-315629085 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Ndjamena b/mingw/lib/tcl8.5/tzdata/Africa/Ndjamena new file mode 100644 index 00000000..af4daaa0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Ndjamena @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Ndjamena) { + {-9223372036854775808 3612 0 LMT} + {-1830387612 3600 0 WAT} + {308703600 7200 1 WAST} + {321314400 3600 0 WAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Niamey b/mingw/lib/tcl8.5/tzdata/Africa/Niamey new file mode 100644 index 00000000..40ded06b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Niamey @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Nouakchott b/mingw/lib/tcl8.5/tzdata/Africa/Nouakchott new file mode 100644 index 00000000..f7369d0d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Nouakchott @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou b/mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou new file mode 100644 index 00000000..88a7145c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Ouagadougou) { + {-9223372036854775808 -364 0 LMT} + {-1830383636 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo b/mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo new file mode 100644 index 00000000..b89cf1be --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo @@ -0,0 +1,7 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome b/mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome new file mode 100644 index 00000000..ab1590d1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome @@ -0,0 +1,7 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Timbuktu b/mingw/lib/tcl8.5/tzdata/Africa/Timbuktu new file mode 100644 index 00000000..8057eed4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Timbuktu @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Africa/Bamako)]} { + LoadTimeZoneFile Africa/Bamako +} +set TZData(:Africa/Timbuktu) $TZData(:Africa/Bamako) diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Tripoli b/mingw/lib/tcl8.5/tzdata/Africa/Tripoli new file mode 100644 index 00000000..e9932498 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Tripoli @@ -0,0 +1,31 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Tripoli) { + {-9223372036854775808 3164 0 LMT} + {-1577926364 3600 0 CET} + {-574902000 7200 1 CEST} + {-512175600 7200 1 CEST} + {-449888400 7200 1 CEST} + {-347158800 7200 0 EET} + {378684000 3600 0 CET} + {386463600 7200 1 CEST} + {402271200 3600 0 CET} + {417999600 7200 1 CEST} + {433807200 3600 0 CET} + {449622000 7200 1 CEST} + {465429600 3600 0 CET} + {481590000 7200 1 CEST} + {496965600 3600 0 CET} + {512953200 7200 1 CEST} + {528674400 3600 0 CET} + {544230000 7200 1 CEST} + {560037600 3600 0 CET} + {575852400 7200 1 CEST} + {591660000 3600 0 CET} + {607388400 7200 1 CEST} + {623196000 3600 0 CET} + {641775600 7200 0 EET} + {844034400 3600 0 CET} + {860108400 7200 1 CEST} + {875916000 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Tunis b/mingw/lib/tcl8.5/tzdata/Africa/Tunis new file mode 100644 index 00000000..8fdb11b6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Tunis @@ -0,0 +1,221 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Tunis) { + {-9223372036854775808 2444 0 LMT} + {-2797202444 561 0 PMT} + {-1855958961 3600 0 CET} + {-969242400 7200 1 CEST} + {-950493600 3600 0 CET} + {-941940000 7200 1 CEST} + {-891136800 3600 0 CET} + {-877827600 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-842918400 3600 0 CET} + {-842223600 7200 1 CEST} + {-828230400 3600 0 CET} + {-812502000 7200 1 CEST} + {-796269600 3600 0 CET} + {-781052400 7200 1 CEST} + {-766634400 3600 0 CET} + {231202800 7200 1 CEST} + {243903600 3600 0 CET} + {262825200 7200 1 CEST} + {276044400 3600 0 CET} + {581122800 7200 1 CEST} + {591145200 3600 0 CET} + {606870000 7200 1 CEST} + {622594800 3600 0 CET} + {641516400 7200 1 CEST} + {654649200 3600 0 CET} + {1114902000 7200 1 CEST} + {1128038400 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Africa/Windhoek b/mingw/lib/tcl8.5/tzdata/Africa/Windhoek new file mode 100644 index 00000000..a655f2e4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Africa/Windhoek @@ -0,0 +1,222 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Africa/Windhoek) { + {-9223372036854775808 4104 0 LMT} + {-2458170504 5400 0 SWAT} + {-2109288600 7200 0 SAST} + {-860976000 10800 1 SAST} + {-845254800 7200 0 SAST} + {637970400 7200 0 CAT} + {765324000 3600 0 WAT} + {778640400 7200 1 WAST} + {796780800 3600 0 WAT} + {810090000 7200 1 WAST} + {828835200 3600 0 WAT} + {841539600 7200 1 WAST} + {860284800 3600 0 WAT} + {873594000 7200 1 WAST} + {891734400 3600 0 WAT} + {905043600 7200 1 WAST} + {923184000 3600 0 WAT} + {936493200 7200 1 WAST} + {954633600 3600 0 WAT} + {967942800 7200 1 WAST} + {986083200 3600 0 WAT} + {999392400 7200 1 WAST} + {1018137600 3600 0 WAT} + {1030842000 7200 1 WAST} + {1049587200 3600 0 WAT} + {1062896400 7200 1 WAST} + {1081036800 3600 0 WAT} + {1094346000 7200 1 WAST} + {1112486400 3600 0 WAT} + {1125795600 7200 1 WAST} + {1143936000 3600 0 WAT} + {1157245200 7200 1 WAST} + {1175385600 3600 0 WAT} + {1188694800 7200 1 WAST} + {1207440000 3600 0 WAT} + {1220749200 7200 1 WAST} + {1238889600 3600 0 WAT} + {1252198800 7200 1 WAST} + {1270339200 3600 0 WAT} + {1283648400 7200 1 WAST} + {1301788800 3600 0 WAT} + {1315098000 7200 1 WAST} + {1333238400 3600 0 WAT} + {1346547600 7200 1 WAST} + {1365292800 3600 0 WAT} + {1377997200 7200 1 WAST} + {1396742400 3600 0 WAT} + {1410051600 7200 1 WAST} + {1428192000 3600 0 WAT} + {1441501200 7200 1 WAST} + {1459641600 3600 0 WAT} + {1472950800 7200 1 WAST} + {1491091200 3600 0 WAT} + {1504400400 7200 1 WAST} + {1522540800 3600 0 WAT} + {1535850000 7200 1 WAST} + {1554595200 3600 0 WAT} + {1567299600 7200 1 WAST} + {1586044800 3600 0 WAT} + {1599354000 7200 1 WAST} + {1617494400 3600 0 WAT} + {1630803600 7200 1 WAST} + {1648944000 3600 0 WAT} + {1662253200 7200 1 WAST} + {1680393600 3600 0 WAT} + {1693702800 7200 1 WAST} + {1712448000 3600 0 WAT} + {1725152400 7200 1 WAST} + {1743897600 3600 0 WAT} + {1757206800 7200 1 WAST} + {1775347200 3600 0 WAT} + {1788656400 7200 1 WAST} + {1806796800 3600 0 WAT} + {1820106000 7200 1 WAST} + {1838246400 3600 0 WAT} + {1851555600 7200 1 WAST} + {1869696000 3600 0 WAT} + {1883005200 7200 1 WAST} + {1901750400 3600 0 WAT} + {1914454800 7200 1 WAST} + {1933200000 3600 0 WAT} + {1946509200 7200 1 WAST} + {1964649600 3600 0 WAT} + {1977958800 7200 1 WAST} + {1996099200 3600 0 WAT} + {2009408400 7200 1 WAST} + {2027548800 3600 0 WAT} + {2040858000 7200 1 WAST} + {2058998400 3600 0 WAT} + {2072307600 7200 1 WAST} + {2091052800 3600 0 WAT} + {2104362000 7200 1 WAST} + {2122502400 3600 0 WAT} + {2135811600 7200 1 WAST} + {2153952000 3600 0 WAT} + {2167261200 7200 1 WAST} + {2185401600 3600 0 WAT} + {2198710800 7200 1 WAST} + {2216851200 3600 0 WAT} + {2230160400 7200 1 WAST} + {2248905600 3600 0 WAT} + {2261610000 7200 1 WAST} + {2280355200 3600 0 WAT} + {2293664400 7200 1 WAST} + {2311804800 3600 0 WAT} + {2325114000 7200 1 WAST} + {2343254400 3600 0 WAT} + {2356563600 7200 1 WAST} + {2374704000 3600 0 WAT} + {2388013200 7200 1 WAST} + {2406153600 3600 0 WAT} + {2419462800 7200 1 WAST} + {2438208000 3600 0 WAT} + {2450912400 7200 1 WAST} + {2469657600 3600 0 WAT} + {2482966800 7200 1 WAST} + {2501107200 3600 0 WAT} + {2514416400 7200 1 WAST} + {2532556800 3600 0 WAT} + {2545866000 7200 1 WAST} + {2564006400 3600 0 WAT} + {2577315600 7200 1 WAST} + {2596060800 3600 0 WAT} + {2608765200 7200 1 WAST} + {2627510400 3600 0 WAT} + {2640819600 7200 1 WAST} + {2658960000 3600 0 WAT} + {2672269200 7200 1 WAST} + {2690409600 3600 0 WAT} + {2703718800 7200 1 WAST} + {2721859200 3600 0 WAT} + {2735168400 7200 1 WAST} + {2753308800 3600 0 WAT} + {2766618000 7200 1 WAST} + {2785363200 3600 0 WAT} + {2798067600 7200 1 WAST} + {2816812800 3600 0 WAT} + {2830122000 7200 1 WAST} + {2848262400 3600 0 WAT} + {2861571600 7200 1 WAST} + {2879712000 3600 0 WAT} + {2893021200 7200 1 WAST} + {2911161600 3600 0 WAT} + {2924470800 7200 1 WAST} + {2942611200 3600 0 WAT} + {2955920400 7200 1 WAST} + {2974665600 3600 0 WAT} + {2987974800 7200 1 WAST} + {3006115200 3600 0 WAT} + {3019424400 7200 1 WAST} + {3037564800 3600 0 WAT} + {3050874000 7200 1 WAST} + {3069014400 3600 0 WAT} + {3082323600 7200 1 WAST} + {3100464000 3600 0 WAT} + {3113773200 7200 1 WAST} + {3132518400 3600 0 WAT} + {3145222800 7200 1 WAST} + {3163968000 3600 0 WAT} + {3177277200 7200 1 WAST} + {3195417600 3600 0 WAT} + {3208726800 7200 1 WAST} + {3226867200 3600 0 WAT} + {3240176400 7200 1 WAST} + {3258316800 3600 0 WAT} + {3271626000 7200 1 WAST} + {3289766400 3600 0 WAT} + {3303075600 7200 1 WAST} + {3321820800 3600 0 WAT} + {3334525200 7200 1 WAST} + {3353270400 3600 0 WAT} + {3366579600 7200 1 WAST} + {3384720000 3600 0 WAT} + {3398029200 7200 1 WAST} + {3416169600 3600 0 WAT} + {3429478800 7200 1 WAST} + {3447619200 3600 0 WAT} + {3460928400 7200 1 WAST} + {3479673600 3600 0 WAT} + {3492378000 7200 1 WAST} + {3511123200 3600 0 WAT} + {3524432400 7200 1 WAST} + {3542572800 3600 0 WAT} + {3555882000 7200 1 WAST} + {3574022400 3600 0 WAT} + {3587331600 7200 1 WAST} + {3605472000 3600 0 WAT} + {3618781200 7200 1 WAST} + {3636921600 3600 0 WAT} + {3650230800 7200 1 WAST} + {3668976000 3600 0 WAT} + {3681680400 7200 1 WAST} + {3700425600 3600 0 WAT} + {3713734800 7200 1 WAST} + {3731875200 3600 0 WAT} + {3745184400 7200 1 WAST} + {3763324800 3600 0 WAT} + {3776634000 7200 1 WAST} + {3794774400 3600 0 WAT} + {3808083600 7200 1 WAST} + {3826224000 3600 0 WAT} + {3839533200 7200 1 WAST} + {3858278400 3600 0 WAT} + {3871587600 7200 1 WAST} + {3889728000 3600 0 WAT} + {3903037200 7200 1 WAST} + {3921177600 3600 0 WAT} + {3934486800 7200 1 WAST} + {3952627200 3600 0 WAT} + {3965936400 7200 1 WAST} + {3984076800 3600 0 WAT} + {3997386000 7200 1 WAST} + {4016131200 3600 0 WAT} + {4028835600 7200 1 WAST} + {4047580800 3600 0 WAT} + {4060890000 7200 1 WAST} + {4079030400 3600 0 WAT} + {4092339600 7200 1 WAST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Adak b/mingw/lib/tcl8.5/tzdata/America/Adak new file mode 100644 index 00000000..f3c5e5c6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Adak @@ -0,0 +1,276 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Adak) { + {-9223372036854775808 44001 0 LMT} + {-3225356001 -42398 0 LMT} + {-2188944802 -39600 0 NST} + {-883573200 -39600 0 NST} + {-880196400 -36000 1 NWT} + {-769395600 -36000 1 NPT} + {-765374400 -39600 0 NST} + {-757342800 -39600 0 NST} + {-86878800 -39600 0 BST} + {-31496400 -39600 0 BST} + {-21466800 -36000 1 BDT} + {-5745600 -39600 0 BST} + {9982800 -36000 1 BDT} + {25704000 -39600 0 BST} + {41432400 -36000 1 BDT} + {57758400 -39600 0 BST} + {73486800 -36000 1 BDT} + {89208000 -39600 0 BST} + {104936400 -36000 1 BDT} + {120657600 -39600 0 BST} + {126709200 -36000 1 BDT} + {152107200 -39600 0 BST} + {162392400 -36000 1 BDT} + {183556800 -39600 0 BST} + {199285200 -36000 1 BDT} + {215611200 -39600 0 BST} + {230734800 -36000 1 BDT} + {247060800 -39600 0 BST} + {262789200 -36000 1 BDT} + {278510400 -39600 0 BST} + {294238800 -36000 1 BDT} + {309960000 -39600 0 BST} + {325688400 -36000 1 BDT} + {341409600 -39600 0 BST} + {357138000 -36000 1 BDT} + {372859200 -39600 0 BST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Anchorage b/mingw/lib/tcl8.5/tzdata/America/Anchorage new file mode 100644 index 00000000..e02dd016 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Anchorage @@ -0,0 +1,276 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Anchorage) { + {-9223372036854775808 50424 0 LMT} + {-3225362424 -35976 0 LMT} + {-2188951224 -36000 0 CAT} + {-883576800 -36000 0 CAWT} + {-880200000 -32400 1 CAWT} + {-769395600 -32400 0 CAPT} + {-765378000 -36000 0 CAPT} + {-757346400 -36000 0 CAT} + {-86882400 -36000 0 AHST} + {-31500000 -36000 0 AHST} + {-21470400 -32400 1 AHDT} + {-5749200 -36000 0 AHST} + {9979200 -32400 1 AHDT} + {25700400 -36000 0 AHST} + {41428800 -32400 1 AHDT} + {57754800 -36000 0 AHST} + {73483200 -32400 1 AHDT} + {89204400 -36000 0 AHST} + {104932800 -32400 1 AHDT} + {120654000 -36000 0 AHST} + {126705600 -32400 1 AHDT} + {152103600 -36000 0 AHST} + {162388800 -32400 1 AHDT} + {183553200 -36000 0 AHST} + {199281600 -32400 1 AHDT} + {215607600 -36000 0 AHST} + {230731200 -32400 1 AHDT} + {247057200 -36000 0 AHST} + {262785600 -32400 1 AHDT} + {278506800 -36000 0 AHST} + {294235200 -32400 1 AHDT} + {309956400 -36000 0 AHST} + {325684800 -32400 1 AHDT} + {341406000 -36000 0 AHST} + {357134400 -32400 1 AHDT} + {372855600 -36000 0 AHST} + {388584000 -32400 1 AHDT} + {404910000 -36000 0 AHST} + {420033600 -32400 1 AHDT} + {439030800 -32400 0 AKST} + {452084400 -28800 1 AKDT} + {467805600 -32400 0 AKST} + {483534000 -28800 1 AKDT} + {499255200 -32400 0 AKST} + {514983600 -28800 1 AKDT} + {530704800 -32400 0 AKST} + {544618800 -28800 1 AKDT} + {562154400 -32400 0 AKST} + {576068400 -28800 1 AKDT} + {594208800 -32400 0 AKST} + {607518000 -28800 1 AKDT} + {625658400 -32400 0 AKST} + {638967600 -28800 1 AKDT} + {657108000 -32400 0 AKST} + {671022000 -28800 1 AKDT} + {688557600 -32400 0 AKST} + {702471600 -28800 1 AKDT} + {720007200 -32400 0 AKST} + {733921200 -28800 1 AKDT} + {752061600 -32400 0 AKST} + {765370800 -28800 1 AKDT} + {783511200 -32400 0 AKST} + {796820400 -28800 1 AKDT} + {814960800 -32400 0 AKST} + {828874800 -28800 1 AKDT} + {846410400 -32400 0 AKST} + {860324400 -28800 1 AKDT} + {877860000 -32400 0 AKST} + {891774000 -28800 1 AKDT} + {909309600 -32400 0 AKST} + {923223600 -28800 1 AKDT} + {941364000 -32400 0 AKST} + {954673200 -28800 1 AKDT} + {972813600 -32400 0 AKST} + {986122800 -28800 1 AKDT} + {1004263200 -32400 0 AKST} + {1018177200 -28800 1 AKDT} + {1035712800 -32400 0 AKST} + {1049626800 -28800 1 AKDT} + {1067162400 -32400 0 AKST} + {1081076400 -28800 1 AKDT} + {1099216800 -32400 0 AKST} + {1112526000 -28800 1 AKDT} + {1130666400 -32400 0 AKST} + {1143975600 -28800 1 AKDT} + {1162116000 -32400 0 AKST} + {1173610800 -28800 1 AKDT} + {1194170400 -32400 0 AKST} + {1205060400 -28800 1 AKDT} + {1225620000 -32400 0 AKST} + {1236510000 -28800 1 AKDT} + {1257069600 -32400 0 AKST} + {1268564400 -28800 1 AKDT} + {1289124000 -32400 0 AKST} + {1300014000 -28800 1 AKDT} + {1320573600 -32400 0 AKST} + {1331463600 -28800 1 AKDT} + {1352023200 -32400 0 AKST} + {1362913200 -28800 1 AKDT} + {1383472800 -32400 0 AKST} + {1394362800 -28800 1 AKDT} + {1414922400 -32400 0 AKST} + {1425812400 -28800 1 AKDT} + {1446372000 -32400 0 AKST} + {1457866800 -28800 1 AKDT} + {1478426400 -32400 0 AKST} + {1489316400 -28800 1 AKDT} + {1509876000 -32400 0 AKST} + {1520766000 -28800 1 AKDT} + {1541325600 -32400 0 AKST} + {1552215600 -28800 1 AKDT} + {1572775200 -32400 0 AKST} + {1583665200 -28800 1 AKDT} + {1604224800 -32400 0 AKST} + {1615719600 -28800 1 AKDT} + {1636279200 -32400 0 AKST} + {1647169200 -28800 1 AKDT} + {1667728800 -32400 0 AKST} + {1678618800 -28800 1 AKDT} + {1699178400 -32400 0 AKST} + {1710068400 -28800 1 AKDT} + {1730628000 -32400 0 AKST} + {1741518000 -28800 1 AKDT} + {1762077600 -32400 0 AKST} + {1772967600 -28800 1 AKDT} + {1793527200 -32400 0 AKST} + {1805022000 -28800 1 AKDT} + {1825581600 -32400 0 AKST} + {1836471600 -28800 1 AKDT} + {1857031200 -32400 0 AKST} + {1867921200 -28800 1 AKDT} + {1888480800 -32400 0 AKST} + {1899370800 -28800 1 AKDT} + {1919930400 -32400 0 AKST} + {1930820400 -28800 1 AKDT} + {1951380000 -32400 0 AKST} + {1962874800 -28800 1 AKDT} + {1983434400 -32400 0 AKST} + {1994324400 -28800 1 AKDT} + {2014884000 -32400 0 AKST} + {2025774000 -28800 1 AKDT} + {2046333600 -32400 0 AKST} + {2057223600 -28800 1 AKDT} + {2077783200 -32400 0 AKST} + {2088673200 -28800 1 AKDT} + {2109232800 -32400 0 AKST} + {2120122800 -28800 1 AKDT} + {2140682400 -32400 0 AKST} + {2152177200 -28800 1 AKDT} + {2172736800 -32400 0 AKST} + {2183626800 -28800 1 AKDT} + {2204186400 -32400 0 AKST} + {2215076400 -28800 1 AKDT} + {2235636000 -32400 0 AKST} + {2246526000 -28800 1 AKDT} + {2267085600 -32400 0 AKST} + {2277975600 -28800 1 AKDT} + {2298535200 -32400 0 AKST} + {2309425200 -28800 1 AKDT} + {2329984800 -32400 0 AKST} + {2341479600 -28800 1 AKDT} + {2362039200 -32400 0 AKST} + {2372929200 -28800 1 AKDT} + {2393488800 -32400 0 AKST} + {2404378800 -28800 1 AKDT} + {2424938400 -32400 0 AKST} + {2435828400 -28800 1 AKDT} + {2456388000 -32400 0 AKST} + {2467278000 -28800 1 AKDT} + {2487837600 -32400 0 AKST} + {2499332400 -28800 1 AKDT} + {2519892000 -32400 0 AKST} + {2530782000 -28800 1 AKDT} + {2551341600 -32400 0 AKST} + {2562231600 -28800 1 AKDT} + {2582791200 -32400 0 AKST} + {2593681200 -28800 1 AKDT} + {2614240800 -32400 0 AKST} + {2625130800 -28800 1 AKDT} + {2645690400 -32400 0 AKST} + {2656580400 -28800 1 AKDT} + {2677140000 -32400 0 AKST} + {2688634800 -28800 1 AKDT} + {2709194400 -32400 0 AKST} + {2720084400 -28800 1 AKDT} + {2740644000 -32400 0 AKST} + {2751534000 -28800 1 AKDT} + {2772093600 -32400 0 AKST} + {2782983600 -28800 1 AKDT} + {2803543200 -32400 0 AKST} + {2814433200 -28800 1 AKDT} + {2834992800 -32400 0 AKST} + {2846487600 -28800 1 AKDT} + {2867047200 -32400 0 AKST} + {2877937200 -28800 1 AKDT} + {2898496800 -32400 0 AKST} + {2909386800 -28800 1 AKDT} + {2929946400 -32400 0 AKST} + {2940836400 -28800 1 AKDT} + {2961396000 -32400 0 AKST} + {2972286000 -28800 1 AKDT} + {2992845600 -32400 0 AKST} + {3003735600 -28800 1 AKDT} + {3024295200 -32400 0 AKST} + {3035790000 -28800 1 AKDT} + {3056349600 -32400 0 AKST} + {3067239600 -28800 1 AKDT} + {3087799200 -32400 0 AKST} + {3098689200 -28800 1 AKDT} + {3119248800 -32400 0 AKST} + {3130138800 -28800 1 AKDT} + {3150698400 -32400 0 AKST} + {3161588400 -28800 1 AKDT} + {3182148000 -32400 0 AKST} + {3193038000 -28800 1 AKDT} + {3213597600 -32400 0 AKST} + {3225092400 -28800 1 AKDT} + {3245652000 -32400 0 AKST} + {3256542000 -28800 1 AKDT} + {3277101600 -32400 0 AKST} + {3287991600 -28800 1 AKDT} + {3308551200 -32400 0 AKST} + {3319441200 -28800 1 AKDT} + {3340000800 -32400 0 AKST} + {3350890800 -28800 1 AKDT} + {3371450400 -32400 0 AKST} + {3382945200 -28800 1 AKDT} + {3403504800 -32400 0 AKST} + {3414394800 -28800 1 AKDT} + {3434954400 -32400 0 AKST} + {3445844400 -28800 1 AKDT} + {3466404000 -32400 0 AKST} + {3477294000 -28800 1 AKDT} + {3497853600 -32400 0 AKST} + {3508743600 -28800 1 AKDT} + {3529303200 -32400 0 AKST} + {3540193200 -28800 1 AKDT} + {3560752800 -32400 0 AKST} + {3572247600 -28800 1 AKDT} + {3592807200 -32400 0 AKST} + {3603697200 -28800 1 AKDT} + {3624256800 -32400 0 AKST} + {3635146800 -28800 1 AKDT} + {3655706400 -32400 0 AKST} + {3666596400 -28800 1 AKDT} + {3687156000 -32400 0 AKST} + {3698046000 -28800 1 AKDT} + {3718605600 -32400 0 AKST} + {3730100400 -28800 1 AKDT} + {3750660000 -32400 0 AKST} + {3761550000 -28800 1 AKDT} + {3782109600 -32400 0 AKST} + {3792999600 -28800 1 AKDT} + {3813559200 -32400 0 AKST} + {3824449200 -28800 1 AKDT} + {3845008800 -32400 0 AKST} + {3855898800 -28800 1 AKDT} + {3876458400 -32400 0 AKST} + {3887348400 -28800 1 AKDT} + {3907908000 -32400 0 AKST} + {3919402800 -28800 1 AKDT} + {3939962400 -32400 0 AKST} + {3950852400 -28800 1 AKDT} + {3971412000 -32400 0 AKST} + {3982302000 -28800 1 AKDT} + {4002861600 -32400 0 AKST} + {4013751600 -28800 1 AKDT} + {4034311200 -32400 0 AKST} + {4045201200 -28800 1 AKDT} + {4065760800 -32400 0 AKST} + {4076650800 -28800 1 AKDT} + {4097210400 -32400 0 AKST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Anguilla b/mingw/lib/tcl8.5/tzdata/America/Anguilla new file mode 100644 index 00000000..cfe7483d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Anguilla @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Anguilla) { + {-9223372036854775808 -15136 0 LMT} + {-1825098464 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Antigua b/mingw/lib/tcl8.5/tzdata/America/Antigua new file mode 100644 index 00000000..5433e9bb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Antigua @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Antigua) { + {-9223372036854775808 -14832 0 LMT} + {-1825098768 -18000 0 EST} + {-599598000 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Araguaina b/mingw/lib/tcl8.5/tzdata/America/Araguaina new file mode 100644 index 00000000..5073c563 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Araguaina @@ -0,0 +1,57 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Araguaina) { + {-9223372036854775808 -11568 0 LMT} + {-1767214032 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {653536800 -10800 0 BRT} + {811047600 -10800 0 BRT} + {813726000 -7200 1 BRST} + {824004000 -10800 0 BRT} + {844570800 -7200 1 BRST} + {856058400 -10800 0 BRT} + {876106800 -7200 1 BRST} + {888717600 -10800 0 BRT} + {908074800 -7200 1 BRST} + {919562400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {982461600 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1036292400 -7200 1 BRST} + {1045360800 -10800 0 BRT} + {1064368800 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Buenos_Aires b/mingw/lib/tcl8.5/tzdata/America/Argentina/Buenos_Aires new file mode 100644 index 00000000..235f3221 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Buenos_Aires @@ -0,0 +1,63 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Buenos_Aires) { + {-9223372036854775808 -14028 0 LMT} + {-2372097972 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -10800 0 ART} + {687927600 -7200 1 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Catamarca b/mingw/lib/tcl8.5/tzdata/America/Argentina/Catamarca new file mode 100644 index 00000000..9ae55ffe --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Catamarca @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Catamarca) { + {-9223372036854775808 -15788 0 LMT} + {-2372096212 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -14400 0 WART} + {687931200 -7200 0 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1086058800 -14400 0 WART} + {1087704000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/ComodRivadavia b/mingw/lib/tcl8.5/tzdata/America/Argentina/ComodRivadavia new file mode 100644 index 00000000..2611a3d5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/ComodRivadavia @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Catamarca)]} { + LoadTimeZoneFile America/Argentina/Catamarca +} +set TZData(:America/Argentina/ComodRivadavia) $TZData(:America/Argentina/Catamarca) diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba b/mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba new file mode 100644 index 00000000..479c5ea2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba @@ -0,0 +1,63 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Cordoba) { + {-9223372036854775808 -15408 0 LMT} + {-2372096592 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -14400 0 WART} + {687931200 -7200 0 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy b/mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy new file mode 100644 index 00000000..50b80058 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy @@ -0,0 +1,64 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Jujuy) { + {-9223372036854775808 -15672 0 LMT} + {-2372096328 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -14400 0 WART} + {657086400 -10800 1 WARST} + {669178800 -14400 0 WART} + {686721600 -7200 1 ARST} + {694231200 -7200 0 ART} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja b/mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja new file mode 100644 index 00000000..49d27c19 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja @@ -0,0 +1,66 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/La_Rioja) { + {-9223372036854775808 -16044 0 LMT} + {-2372095956 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667792800 -14400 0 WART} + {673588800 -10800 0 ART} + {687927600 -7200 1 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1086058800 -14400 0 WART} + {1087704000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza b/mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza new file mode 100644 index 00000000..4ea4a7f1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Mendoza) { + {-9223372036854775808 -16516 0 LMT} + {-2372095484 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -14400 0 WART} + {655963200 -10800 1 WARST} + {667796400 -14400 0 WART} + {687499200 -10800 1 WARST} + {699418800 -14400 0 WART} + {719380800 -7200 0 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1085281200 -14400 0 WART} + {1096171200 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Rio_Gallegos b/mingw/lib/tcl8.5/tzdata/America/Argentina/Rio_Gallegos new file mode 100644 index 00000000..70fe2d5c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Rio_Gallegos @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Rio_Gallegos) { + {-9223372036854775808 -16612 0 LMT} + {-2372095388 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -10800 0 ART} + {687927600 -7200 1 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1086058800 -14400 0 WART} + {1087704000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan b/mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan new file mode 100644 index 00000000..b3355b88 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan @@ -0,0 +1,66 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/San_Juan) { + {-9223372036854775808 -16444 0 LMT} + {-2372095556 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667792800 -14400 0 WART} + {673588800 -10800 0 ART} + {687927600 -7200 1 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1085972400 -14400 0 WART} + {1090728000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman b/mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman new file mode 100644 index 00000000..25045cc8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Tucuman) { + {-9223372036854775808 -15652 0 LMT} + {-2372096348 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -14400 0 WART} + {687931200 -7200 0 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1086058800 -14400 0 WART} + {1087099200 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia b/mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia new file mode 100644 index 00000000..82a72020 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Argentina/Ushuaia) { + {-9223372036854775808 -16392 0 LMT} + {-2372095608 -15408 0 CMT} + {-1567453392 -14400 0 ART} + {-1233432000 -10800 0 ARST} + {-1222981200 -14400 0 ART} + {-1205956800 -10800 1 ARST} + {-1194037200 -14400 0 ART} + {-1172865600 -10800 1 ARST} + {-1162501200 -14400 0 ART} + {-1141329600 -10800 1 ARST} + {-1130965200 -14400 0 ART} + {-1109793600 -10800 1 ARST} + {-1099429200 -14400 0 ART} + {-1078257600 -10800 1 ARST} + {-1067806800 -14400 0 ART} + {-1046635200 -10800 1 ARST} + {-1036270800 -14400 0 ART} + {-1015099200 -10800 1 ARST} + {-1004734800 -14400 0 ART} + {-983563200 -10800 1 ARST} + {-973198800 -14400 0 ART} + {-952027200 -10800 1 ARST} + {-941576400 -14400 0 ART} + {-931032000 -10800 1 ARST} + {-900882000 -14400 0 ART} + {-890337600 -10800 1 ARST} + {-833749200 -14400 0 ART} + {-827265600 -10800 1 ARST} + {-752274000 -14400 0 ART} + {-733780800 -10800 1 ARST} + {-197326800 -14400 0 ART} + {-190843200 -10800 1 ARST} + {-184194000 -14400 0 ART} + {-164491200 -10800 1 ARST} + {-152658000 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {596948400 -7200 1 ARST} + {605066400 -10800 0 ART} + {624423600 -7200 1 ARST} + {636516000 -10800 0 ART} + {656478000 -7200 1 ARST} + {667965600 -10800 0 ART} + {687927600 -7200 1 ARST} + {699415200 -10800 0 ART} + {719377200 -7200 1 ARST} + {731469600 -10800 0 ART} + {938916000 -10800 0 ART} + {938919600 -10800 1 ARST} + {952056000 -10800 0 ART} + {1085886000 -14400 0 WART} + {1087704000 -10800 0 ART} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Aruba b/mingw/lib/tcl8.5/tzdata/America/Aruba new file mode 100644 index 00000000..92f182d1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Aruba @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Aruba) { + {-9223372036854775808 -16824 0 LMT} + {-1826738376 -16200 0 ANT} + {-157750200 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Asuncion b/mingw/lib/tcl8.5/tzdata/America/Asuncion new file mode 100644 index 00000000..fde228cf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Asuncion @@ -0,0 +1,259 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Asuncion) { + {-9223372036854775808 -13840 0 LMT} + {-2524507760 -13840 0 AMT} + {-1206389360 -14400 0 PYT} + {86760000 -10800 0 PYT} + {134017200 -14400 0 PYT} + {162878400 -14400 0 PYT} + {181368000 -10800 1 PYST} + {194497200 -14400 0 PYT} + {212990400 -10800 1 PYST} + {226033200 -14400 0 PYT} + {244526400 -10800 1 PYST} + {257569200 -14400 0 PYT} + {276062400 -10800 1 PYST} + {291783600 -14400 0 PYT} + {307598400 -10800 1 PYST} + {323406000 -14400 0 PYT} + {339220800 -10800 1 PYST} + {354942000 -14400 0 PYT} + {370756800 -10800 1 PYST} + {386478000 -14400 0 PYT} + {402292800 -10800 1 PYST} + {418014000 -14400 0 PYT} + {433828800 -10800 1 PYST} + {449636400 -14400 0 PYT} + {465451200 -10800 1 PYST} + {481172400 -14400 0 PYT} + {496987200 -10800 1 PYST} + {512708400 -14400 0 PYT} + {528523200 -10800 1 PYST} + {544244400 -14400 0 PYT} + {560059200 -10800 1 PYST} + {575866800 -14400 0 PYT} + {591681600 -10800 1 PYST} + {607402800 -14400 0 PYT} + {625032000 -10800 1 PYST} + {638938800 -14400 0 PYT} + {654753600 -10800 1 PYST} + {670474800 -14400 0 PYT} + {686721600 -10800 1 PYST} + {699418800 -14400 0 PYT} + {718257600 -10800 1 PYST} + {733546800 -14400 0 PYT} + {749448000 -10800 1 PYST} + {762318000 -14400 0 PYT} + {780984000 -10800 1 PYST} + {793767600 -14400 0 PYT} + {812520000 -10800 1 PYST} + {825649200 -14400 0 PYT} + {844574400 -10800 1 PYST} + {856666800 -14400 0 PYT} + {876024000 -10800 1 PYST} + {888721200 -14400 0 PYT} + {907473600 -10800 1 PYST} + {920775600 -14400 0 PYT} + {938923200 -10800 1 PYST} + {952225200 -14400 0 PYT} + {970372800 -10800 1 PYST} + {983674800 -14400 0 PYT} + {1002427200 -10800 1 PYST} + {1018148400 -14400 0 PYT} + {1030852800 -10800 1 PYST} + {1049598000 -14400 0 PYT} + {1062907200 -10800 1 PYST} + {1081047600 -14400 0 PYT} + {1097985600 -10800 1 PYST} + {1110682800 -14400 0 PYT} + {1129435200 -10800 1 PYST} + {1142132400 -14400 0 PYT} + {1160884800 -10800 1 PYST} + {1173582000 -14400 0 PYT} + {1192939200 -10800 1 PYST} + {1205031600 -14400 0 PYT} + {1224388800 -10800 1 PYST} + {1236481200 -14400 0 PYT} + {1255838400 -10800 1 PYST} + {1268535600 -14400 0 PYT} + {1287288000 -10800 1 PYST} + {1299985200 -14400 0 PYT} + {1318737600 -10800 1 PYST} + {1331434800 -14400 0 PYT} + {1350792000 -10800 1 PYST} + {1362884400 -14400 0 PYT} + {1382241600 -10800 1 PYST} + {1394334000 -14400 0 PYT} + {1413691200 -10800 1 PYST} + {1425783600 -14400 0 PYT} + {1445140800 -10800 1 PYST} + {1457838000 -14400 0 PYT} + {1476590400 -10800 1 PYST} + {1489287600 -14400 0 PYT} + {1508040000 -10800 1 PYST} + {1520737200 -14400 0 PYT} + {1540094400 -10800 1 PYST} + {1552186800 -14400 0 PYT} + {1571544000 -10800 1 PYST} + {1583636400 -14400 0 PYT} + {1602993600 -10800 1 PYST} + {1615690800 -14400 0 PYT} + {1634443200 -10800 1 PYST} + {1647140400 -14400 0 PYT} + {1665892800 -10800 1 PYST} + {1678590000 -14400 0 PYT} + {1697342400 -10800 1 PYST} + {1710039600 -14400 0 PYT} + {1729396800 -10800 1 PYST} + {1741489200 -14400 0 PYT} + {1760846400 -10800 1 PYST} + {1772938800 -14400 0 PYT} + {1792296000 -10800 1 PYST} + {1804993200 -14400 0 PYT} + {1823745600 -10800 1 PYST} + {1836442800 -14400 0 PYT} + {1855195200 -10800 1 PYST} + {1867892400 -14400 0 PYT} + {1887249600 -10800 1 PYST} + {1899342000 -14400 0 PYT} + {1918699200 -10800 1 PYST} + {1930791600 -14400 0 PYT} + {1950148800 -10800 1 PYST} + {1962846000 -14400 0 PYT} + {1981598400 -10800 1 PYST} + {1994295600 -14400 0 PYT} + {2013048000 -10800 1 PYST} + {2025745200 -14400 0 PYT} + {2044497600 -10800 1 PYST} + {2057194800 -14400 0 PYT} + {2076552000 -10800 1 PYST} + {2088644400 -14400 0 PYT} + {2108001600 -10800 1 PYST} + {2120094000 -14400 0 PYT} + {2139451200 -10800 1 PYST} + {2152148400 -14400 0 PYT} + {2170900800 -10800 1 PYST} + {2183598000 -14400 0 PYT} + {2202350400 -10800 1 PYST} + {2215047600 -14400 0 PYT} + {2234404800 -10800 1 PYST} + {2246497200 -14400 0 PYT} + {2265854400 -10800 1 PYST} + {2277946800 -14400 0 PYT} + {2297304000 -10800 1 PYST} + {2309396400 -14400 0 PYT} + {2328753600 -10800 1 PYST} + {2341450800 -14400 0 PYT} + {2360203200 -10800 1 PYST} + {2372900400 -14400 0 PYT} + {2391652800 -10800 1 PYST} + {2404350000 -14400 0 PYT} + {2423707200 -10800 1 PYST} + {2435799600 -14400 0 PYT} + {2455156800 -10800 1 PYST} + {2467249200 -14400 0 PYT} + {2486606400 -10800 1 PYST} + {2499303600 -14400 0 PYT} + {2518056000 -10800 1 PYST} + {2530753200 -14400 0 PYT} + {2549505600 -10800 1 PYST} + {2562202800 -14400 0 PYT} + {2580955200 -10800 1 PYST} + {2593652400 -14400 0 PYT} + {2613009600 -10800 1 PYST} + {2625102000 -14400 0 PYT} + {2644459200 -10800 1 PYST} + {2656551600 -14400 0 PYT} + {2675908800 -10800 1 PYST} + {2688606000 -14400 0 PYT} + {2707358400 -10800 1 PYST} + {2720055600 -14400 0 PYT} + {2738808000 -10800 1 PYST} + {2751505200 -14400 0 PYT} + {2770862400 -10800 1 PYST} + {2782954800 -14400 0 PYT} + {2802312000 -10800 1 PYST} + {2814404400 -14400 0 PYT} + {2833761600 -10800 1 PYST} + {2846458800 -14400 0 PYT} + {2865211200 -10800 1 PYST} + {2877908400 -14400 0 PYT} + {2896660800 -10800 1 PYST} + {2909358000 -14400 0 PYT} + {2928110400 -10800 1 PYST} + {2940807600 -14400 0 PYT} + {2960164800 -10800 1 PYST} + {2972257200 -14400 0 PYT} + {2991614400 -10800 1 PYST} + {3003706800 -14400 0 PYT} + {3023064000 -10800 1 PYST} + {3035761200 -14400 0 PYT} + {3054513600 -10800 1 PYST} + {3067210800 -14400 0 PYT} + {3085963200 -10800 1 PYST} + {3098660400 -14400 0 PYT} + {3118017600 -10800 1 PYST} + {3130110000 -14400 0 PYT} + {3149467200 -10800 1 PYST} + {3161559600 -14400 0 PYT} + {3180916800 -10800 1 PYST} + {3193009200 -14400 0 PYT} + {3212366400 -10800 1 PYST} + {3225063600 -14400 0 PYT} + {3243816000 -10800 1 PYST} + {3256513200 -14400 0 PYT} + {3275265600 -10800 1 PYST} + {3287962800 -14400 0 PYT} + {3307320000 -10800 1 PYST} + {3319412400 -14400 0 PYT} + {3338769600 -10800 1 PYST} + {3350862000 -14400 0 PYT} + {3370219200 -10800 1 PYST} + {3382916400 -14400 0 PYT} + {3401668800 -10800 1 PYST} + {3414366000 -14400 0 PYT} + {3433118400 -10800 1 PYST} + {3445815600 -14400 0 PYT} + {3464568000 -10800 1 PYST} + {3477265200 -14400 0 PYT} + {3496622400 -10800 1 PYST} + {3508714800 -14400 0 PYT} + {3528072000 -10800 1 PYST} + {3540164400 -14400 0 PYT} + {3559521600 -10800 1 PYST} + {3572218800 -14400 0 PYT} + {3590971200 -10800 1 PYST} + {3603668400 -14400 0 PYT} + {3622420800 -10800 1 PYST} + {3635118000 -14400 0 PYT} + {3654475200 -10800 1 PYST} + {3666567600 -14400 0 PYT} + {3685924800 -10800 1 PYST} + {3698017200 -14400 0 PYT} + {3717374400 -10800 1 PYST} + {3730071600 -14400 0 PYT} + {3748824000 -10800 1 PYST} + {3761521200 -14400 0 PYT} + {3780273600 -10800 1 PYST} + {3792970800 -14400 0 PYT} + {3811723200 -10800 1 PYST} + {3824420400 -14400 0 PYT} + {3843777600 -10800 1 PYST} + {3855870000 -14400 0 PYT} + {3875227200 -10800 1 PYST} + {3887319600 -14400 0 PYT} + {3906676800 -10800 1 PYST} + {3919374000 -14400 0 PYT} + {3938126400 -10800 1 PYST} + {3950823600 -14400 0 PYT} + {3969576000 -10800 1 PYST} + {3982273200 -14400 0 PYT} + {4001630400 -10800 1 PYST} + {4013722800 -14400 0 PYT} + {4033080000 -10800 1 PYST} + {4045172400 -14400 0 PYT} + {4064529600 -10800 1 PYST} + {4076622000 -14400 0 PYT} + {4095979200 -10800 1 PYST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Atikokan b/mingw/lib/tcl8.5/tzdata/America/Atikokan new file mode 100644 index 00000000..ca0ac1cb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Atikokan @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Atikokan) { + {-9223372036854775808 -21988 0 LMT} + {-2366733212 -21600 0 CST} + {-1632067200 -18000 1 CDT} + {-1614790800 -21600 0 CST} + {-923248800 -18000 1 CDT} + {-880214400 -18000 0 CWT} + {-769395600 -18000 1 CPT} + {-765388800 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Atka b/mingw/lib/tcl8.5/tzdata/America/Atka new file mode 100644 index 00000000..8da33027 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Atka @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Adak)]} { + LoadTimeZoneFile America/Adak +} +set TZData(:America/Atka) $TZData(:America/Adak) diff --git a/mingw/lib/tcl8.5/tzdata/America/Bahia b/mingw/lib/tcl8.5/tzdata/America/Bahia new file mode 100644 index 00000000..b10a9390 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Bahia @@ -0,0 +1,65 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Bahia) { + {-9223372036854775808 -9244 0 LMT} + {-1767216356 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {656478000 -7200 1 BRST} + {666756000 -10800 0 BRT} + {687927600 -7200 1 BRST} + {697600800 -10800 0 BRT} + {719982000 -7200 1 BRST} + {728445600 -10800 0 BRT} + {750826800 -7200 1 BRST} + {761709600 -10800 0 BRT} + {782276400 -7200 1 BRST} + {793159200 -10800 0 BRT} + {813726000 -7200 1 BRST} + {824004000 -10800 0 BRT} + {844570800 -7200 1 BRST} + {856058400 -10800 0 BRT} + {876106800 -7200 1 BRST} + {888717600 -10800 0 BRT} + {908074800 -7200 1 BRST} + {919562400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {982461600 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1036292400 -7200 1 BRST} + {1045360800 -10800 0 BRT} + {1064368800 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Barbados b/mingw/lib/tcl8.5/tzdata/America/Barbados new file mode 100644 index 00000000..5c064089 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Barbados @@ -0,0 +1,15 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Barbados) { + {-9223372036854775808 -14308 0 LMT} + {-1451678492 -14308 0 BMT} + {-1199217692 -14400 0 AST} + {234943200 -10800 1 ADT} + {244616400 -14400 0 AST} + {261554400 -10800 1 ADT} + {276066000 -14400 0 AST} + {293004000 -10800 1 ADT} + {307515600 -14400 0 AST} + {325058400 -10800 1 ADT} + {338706000 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Belem b/mingw/lib/tcl8.5/tzdata/America/Belem new file mode 100644 index 00000000..ed92fd14 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Belem @@ -0,0 +1,35 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Belem) { + {-9223372036854775808 -11636 0 LMT} + {-1767213964 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {590032800 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Belize b/mingw/lib/tcl8.5/tzdata/America/Belize new file mode 100644 index 00000000..547fd72e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Belize @@ -0,0 +1,60 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Belize) { + {-9223372036854775808 -21168 0 LMT} + {-1822500432 -21600 0 CST} + {-1616954400 -19800 1 CHDT} + {-1606069800 -21600 0 CST} + {-1585504800 -19800 1 CHDT} + {-1574015400 -21600 0 CST} + {-1554055200 -19800 1 CHDT} + {-1542565800 -21600 0 CST} + {-1522605600 -19800 1 CHDT} + {-1511116200 -21600 0 CST} + {-1490551200 -19800 1 CHDT} + {-1479666600 -21600 0 CST} + {-1459101600 -19800 1 CHDT} + {-1448217000 -21600 0 CST} + {-1427652000 -19800 1 CHDT} + {-1416162600 -21600 0 CST} + {-1396202400 -19800 1 CHDT} + {-1384713000 -21600 0 CST} + {-1364752800 -19800 1 CHDT} + {-1353263400 -21600 0 CST} + {-1333303200 -19800 1 CHDT} + {-1321813800 -21600 0 CST} + {-1301248800 -19800 1 CHDT} + {-1290364200 -21600 0 CST} + {-1269799200 -19800 1 CHDT} + {-1258914600 -21600 0 CST} + {-1238349600 -19800 1 CHDT} + {-1226860200 -21600 0 CST} + {-1206900000 -19800 1 CHDT} + {-1195410600 -21600 0 CST} + {-1175450400 -19800 1 CHDT} + {-1163961000 -21600 0 CST} + {-1143396000 -19800 1 CHDT} + {-1132511400 -21600 0 CST} + {-1111946400 -19800 1 CHDT} + {-1101061800 -21600 0 CST} + {-1080496800 -19800 1 CHDT} + {-1069612200 -21600 0 CST} + {-1049047200 -19800 1 CHDT} + {-1037557800 -21600 0 CST} + {-1017597600 -19800 1 CHDT} + {-1006108200 -21600 0 CST} + {-986148000 -19800 1 CHDT} + {-974658600 -21600 0 CST} + {-954093600 -19800 1 CHDT} + {-943209000 -21600 0 CST} + {-922644000 -19800 1 CHDT} + {-911759400 -21600 0 CST} + {-891194400 -19800 1 CHDT} + {-879705000 -21600 0 CST} + {-859744800 -19800 1 CHDT} + {-848255400 -21600 0 CST} + {123919200 -18000 1 CDT} + {129618000 -21600 0 CST} + {409039200 -18000 1 CDT} + {413874000 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon b/mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon new file mode 100644 index 00000000..47f161a0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Blanc-Sablon) { + {-9223372036854775808 -13708 0 LMT} + {-2713896692 -14400 0 AST} + {-1632074400 -10800 1 ADT} + {-1614798000 -14400 0 AST} + {-880221600 -10800 1 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {14400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Boa_Vista b/mingw/lib/tcl8.5/tzdata/America/Boa_Vista new file mode 100644 index 00000000..c85bc272 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Boa_Vista @@ -0,0 +1,40 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Boa_Vista) { + {-9223372036854775808 -14560 0 LMT} + {-1767211040 -14400 0 AMT} + {-1206954000 -10800 1 AMST} + {-1191358800 -14400 0 AMT} + {-1175371200 -10800 1 AMST} + {-1159822800 -14400 0 AMT} + {-633816000 -10800 1 AMST} + {-622065600 -14400 0 AMT} + {-602280000 -10800 1 AMST} + {-591829200 -14400 0 AMT} + {-570744000 -10800 1 AMST} + {-560206800 -14400 0 AMT} + {-539121600 -10800 1 AMST} + {-531349200 -14400 0 AMT} + {-191361600 -10800 1 AMST} + {-184194000 -14400 0 AMT} + {-155160000 -10800 1 AMST} + {-150066000 -14400 0 AMT} + {-128894400 -10800 1 AMST} + {-121122000 -14400 0 AMT} + {-99950400 -10800 1 AMST} + {-89586000 -14400 0 AMT} + {-68414400 -10800 1 AMST} + {-57963600 -14400 0 AMT} + {499752000 -10800 1 AMST} + {511239600 -14400 0 AMT} + {530596800 -10800 1 AMST} + {540270000 -14400 0 AMT} + {562132800 -10800 1 AMST} + {571201200 -14400 0 AMT} + {590036400 -14400 0 AMT} + {938664000 -14400 0 AMT} + {938923200 -10800 1 AMST} + {951620400 -14400 0 AMT} + {970977600 -10800 1 AMST} + {971578800 -14400 0 AMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Bogota b/mingw/lib/tcl8.5/tzdata/America/Bogota new file mode 100644 index 00000000..f727d178 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Bogota @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Bogota) { + {-9223372036854775808 -17780 0 LMT} + {-2707671820 -17780 0 BMT} + {-1739041420 -18000 0 COT} + {704869200 -14400 1 COST} + {733896000 -18000 0 COT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Boise b/mingw/lib/tcl8.5/tzdata/America/Boise new file mode 100644 index 00000000..62b22a01 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Boise @@ -0,0 +1,281 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Boise) { + {-9223372036854775808 -27889 0 LMT} + {-2717640000 -28800 0 PST} + {-1633269600 -25200 1 PDT} + {-1615129200 -28800 0 PST} + {-1601820000 -25200 1 PDT} + {-1583679600 -28800 0 PST} + {-1471788000 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-52930800 -21600 1 MDT} + {-37209600 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {9968400 -21600 1 MDT} + {25689600 -25200 0 MST} + {41418000 -21600 1 MDT} + {57744000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {126255600 -25200 0 MST} + {129114000 -21600 0 MDT} + {152092800 -25200 0 MST} + {162378000 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Buenos_Aires b/mingw/lib/tcl8.5/tzdata/America/Buenos_Aires new file mode 100644 index 00000000..13891954 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Buenos_Aires @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Buenos_Aires)]} { + LoadTimeZoneFile America/Argentina/Buenos_Aires +} +set TZData(:America/Buenos_Aires) $TZData(:America/Argentina/Buenos_Aires) diff --git a/mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay b/mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay new file mode 100644 index 00000000..23004bb5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay @@ -0,0 +1,252 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Cambridge_Bay) { + {-9223372036854775808 0 0 zzz} + {-1577923200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-147891600 -18000 1 MDDT} + {-131562000 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941360400 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -18000 0 EST} + {973400400 -21600 0 CST} + {986115600 -21600 0 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Campo_Grande b/mingw/lib/tcl8.5/tzdata/America/Campo_Grande new file mode 100644 index 00000000..7f9ac173 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Campo_Grande @@ -0,0 +1,257 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Campo_Grande) { + {-9223372036854775808 -13108 0 LMT} + {-1767212492 -14400 0 AMT} + {-1206954000 -10800 1 AMST} + {-1191358800 -14400 0 AMT} + {-1175371200 -10800 1 AMST} + {-1159822800 -14400 0 AMT} + {-633816000 -10800 1 AMST} + {-622065600 -14400 0 AMT} + {-602280000 -10800 1 AMST} + {-591829200 -14400 0 AMT} + {-570744000 -10800 1 AMST} + {-560206800 -14400 0 AMT} + {-539121600 -10800 1 AMST} + {-531349200 -14400 0 AMT} + {-191361600 -10800 1 AMST} + {-184194000 -14400 0 AMT} + {-155160000 -10800 1 AMST} + {-150066000 -14400 0 AMT} + {-128894400 -10800 1 AMST} + {-121122000 -14400 0 AMT} + {-99950400 -10800 1 AMST} + {-89586000 -14400 0 AMT} + {-68414400 -10800 1 AMST} + {-57963600 -14400 0 AMT} + {499752000 -10800 1 AMST} + {511239600 -14400 0 AMT} + {530596800 -10800 1 AMST} + {540270000 -14400 0 AMT} + {562132800 -10800 1 AMST} + {571201200 -14400 0 AMT} + {592977600 -10800 1 AMST} + {602046000 -14400 0 AMT} + {624427200 -10800 1 AMST} + {634705200 -14400 0 AMT} + {656481600 -10800 1 AMST} + {666759600 -14400 0 AMT} + {687931200 -10800 1 AMST} + {697604400 -14400 0 AMT} + {719985600 -10800 1 AMST} + {728449200 -14400 0 AMT} + {750830400 -10800 1 AMST} + {761713200 -14400 0 AMT} + {782280000 -10800 1 AMST} + {793162800 -14400 0 AMT} + {813729600 -10800 1 AMST} + {824007600 -14400 0 AMT} + {844574400 -10800 1 AMST} + {856062000 -14400 0 AMT} + {876110400 -10800 1 AMST} + {888721200 -14400 0 AMT} + {908078400 -10800 1 AMST} + {919566000 -14400 0 AMT} + {938923200 -10800 1 AMST} + {951620400 -14400 0 AMT} + {970977600 -10800 1 AMST} + {982465200 -14400 0 AMT} + {1003032000 -10800 1 AMST} + {1013914800 -14400 0 AMT} + {1036296000 -10800 1 AMST} + {1045364400 -14400 0 AMT} + {1066536000 -10800 1 AMST} + {1076814000 -14400 0 AMT} + {1099368000 -10800 1 AMST} + {1108868400 -14400 0 AMT} + {1129435200 -10800 1 AMST} + {1140318000 -14400 0 AMT} + {1162699200 -10800 1 AMST} + {1172372400 -14400 0 AMT} + {1194148800 -10800 1 AMST} + {1203822000 -14400 0 AMT} + {1225598400 -10800 1 AMST} + {1235271600 -14400 0 AMT} + {1257048000 -10800 1 AMST} + {1267326000 -14400 0 AMT} + {1289102400 -10800 1 AMST} + {1298775600 -14400 0 AMT} + {1320552000 -10800 1 AMST} + {1330225200 -14400 0 AMT} + {1352001600 -10800 1 AMST} + {1361674800 -14400 0 AMT} + {1383451200 -10800 1 AMST} + {1393124400 -14400 0 AMT} + {1414900800 -10800 1 AMST} + {1424574000 -14400 0 AMT} + {1446350400 -10800 1 AMST} + {1456628400 -14400 0 AMT} + {1478404800 -10800 1 AMST} + {1488078000 -14400 0 AMT} + {1509854400 -10800 1 AMST} + {1519527600 -14400 0 AMT} + {1541304000 -10800 1 AMST} + {1550977200 -14400 0 AMT} + {1572753600 -10800 1 AMST} + {1582426800 -14400 0 AMT} + {1604203200 -10800 1 AMST} + {1614481200 -14400 0 AMT} + {1636257600 -10800 1 AMST} + {1645930800 -14400 0 AMT} + {1667707200 -10800 1 AMST} + {1677380400 -14400 0 AMT} + {1699156800 -10800 1 AMST} + {1708830000 -14400 0 AMT} + {1730606400 -10800 1 AMST} + {1740279600 -14400 0 AMT} + {1762056000 -10800 1 AMST} + {1771729200 -14400 0 AMT} + {1793505600 -10800 1 AMST} + {1803783600 -14400 0 AMT} + {1825560000 -10800 1 AMST} + {1835233200 -14400 0 AMT} + {1857009600 -10800 1 AMST} + {1866682800 -14400 0 AMT} + {1888459200 -10800 1 AMST} + {1898132400 -14400 0 AMT} + {1919908800 -10800 1 AMST} + {1929582000 -14400 0 AMT} + {1951358400 -10800 1 AMST} + {1961636400 -14400 0 AMT} + {1983412800 -10800 1 AMST} + {1993086000 -14400 0 AMT} + {2014862400 -10800 1 AMST} + {2024535600 -14400 0 AMT} + {2046312000 -10800 1 AMST} + {2055985200 -14400 0 AMT} + {2077761600 -10800 1 AMST} + {2087434800 -14400 0 AMT} + {2109211200 -10800 1 AMST} + {2118884400 -14400 0 AMT} + {2140660800 -10800 1 AMST} + {2150938800 -14400 0 AMT} + {2172715200 -10800 1 AMST} + {2182388400 -14400 0 AMT} + {2204164800 -10800 1 AMST} + {2213838000 -14400 0 AMT} + {2235614400 -10800 1 AMST} + {2245287600 -14400 0 AMT} + {2267064000 -10800 1 AMST} + {2276737200 -14400 0 AMT} + {2298513600 -10800 1 AMST} + {2308186800 -14400 0 AMT} + {2329963200 -10800 1 AMST} + {2340241200 -14400 0 AMT} + {2362017600 -10800 1 AMST} + {2371690800 -14400 0 AMT} + {2393467200 -10800 1 AMST} + {2403140400 -14400 0 AMT} + {2424916800 -10800 1 AMST} + {2434590000 -14400 0 AMT} + {2456366400 -10800 1 AMST} + {2466039600 -14400 0 AMT} + {2487816000 -10800 1 AMST} + {2498094000 -14400 0 AMT} + {2519870400 -10800 1 AMST} + {2529543600 -14400 0 AMT} + {2551320000 -10800 1 AMST} + {2560993200 -14400 0 AMT} + {2582769600 -10800 1 AMST} + {2592442800 -14400 0 AMT} + {2614219200 -10800 1 AMST} + {2623892400 -14400 0 AMT} + {2645668800 -10800 1 AMST} + {2655342000 -14400 0 AMT} + {2677118400 -10800 1 AMST} + {2687396400 -14400 0 AMT} + {2709172800 -10800 1 AMST} + {2718846000 -14400 0 AMT} + {2740622400 -10800 1 AMST} + {2750295600 -14400 0 AMT} + {2772072000 -10800 1 AMST} + {2781745200 -14400 0 AMT} + {2803521600 -10800 1 AMST} + {2813194800 -14400 0 AMT} + {2834971200 -10800 1 AMST} + {2845249200 -14400 0 AMT} + {2867025600 -10800 1 AMST} + {2876698800 -14400 0 AMT} + {2898475200 -10800 1 AMST} + {2908148400 -14400 0 AMT} + {2929924800 -10800 1 AMST} + {2939598000 -14400 0 AMT} + {2961374400 -10800 1 AMST} + {2971047600 -14400 0 AMT} + {2992824000 -10800 1 AMST} + {3002497200 -14400 0 AMT} + {3024273600 -10800 1 AMST} + {3034551600 -14400 0 AMT} + {3056328000 -10800 1 AMST} + {3066001200 -14400 0 AMT} + {3087777600 -10800 1 AMST} + {3097450800 -14400 0 AMT} + {3119227200 -10800 1 AMST} + {3128900400 -14400 0 AMT} + {3150676800 -10800 1 AMST} + {3160350000 -14400 0 AMT} + {3182126400 -10800 1 AMST} + {3191799600 -14400 0 AMT} + {3213576000 -10800 1 AMST} + {3223854000 -14400 0 AMT} + {3245630400 -10800 1 AMST} + {3255303600 -14400 0 AMT} + {3277080000 -10800 1 AMST} + {3286753200 -14400 0 AMT} + {3308529600 -10800 1 AMST} + {3318202800 -14400 0 AMT} + {3339979200 -10800 1 AMST} + {3349652400 -14400 0 AMT} + {3371428800 -10800 1 AMST} + {3381706800 -14400 0 AMT} + {3403483200 -10800 1 AMST} + {3413156400 -14400 0 AMT} + {3434932800 -10800 1 AMST} + {3444606000 -14400 0 AMT} + {3466382400 -10800 1 AMST} + {3476055600 -14400 0 AMT} + {3497832000 -10800 1 AMST} + {3507505200 -14400 0 AMT} + {3529281600 -10800 1 AMST} + {3538954800 -14400 0 AMT} + {3560731200 -10800 1 AMST} + {3571009200 -14400 0 AMT} + {3592785600 -10800 1 AMST} + {3602458800 -14400 0 AMT} + {3624235200 -10800 1 AMST} + {3633908400 -14400 0 AMT} + {3655684800 -10800 1 AMST} + {3665358000 -14400 0 AMT} + {3687134400 -10800 1 AMST} + {3696807600 -14400 0 AMT} + {3718584000 -10800 1 AMST} + {3728862000 -14400 0 AMT} + {3750638400 -10800 1 AMST} + {3760311600 -14400 0 AMT} + {3782088000 -10800 1 AMST} + {3791761200 -14400 0 AMT} + {3813537600 -10800 1 AMST} + {3823210800 -14400 0 AMT} + {3844987200 -10800 1 AMST} + {3854660400 -14400 0 AMT} + {3876436800 -10800 1 AMST} + {3886110000 -14400 0 AMT} + {3907886400 -10800 1 AMST} + {3918164400 -14400 0 AMT} + {3939940800 -10800 1 AMST} + {3949614000 -14400 0 AMT} + {3971390400 -10800 1 AMST} + {3981063600 -14400 0 AMT} + {4002840000 -10800 1 AMST} + {4012513200 -14400 0 AMT} + {4034289600 -10800 1 AMST} + {4043962800 -14400 0 AMT} + {4065739200 -10800 1 AMST} + {4075412400 -14400 0 AMT} + {4097188800 -10800 1 AMST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Cancun b/mingw/lib/tcl8.5/tzdata/America/Cancun new file mode 100644 index 00000000..1620b150 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cancun @@ -0,0 +1,216 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Cancun) { + {-9223372036854775808 -20824 0 LMT} + {-1514743200 -21600 0 CST} + {377935200 -18000 0 EST} + {828860400 -14400 1 EDT} + {846396000 -18000 0 EST} + {860310000 -14400 1 EDT} + {877845600 -18000 0 EST} + {891759600 -14400 1 EDT} + {902041200 -18000 0 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {989136000 -18000 1 CDT} + {1001833200 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1175414400 -18000 1 CDT} + {1193554800 -21600 0 CST} + {1207468800 -18000 1 CDT} + {1225004400 -21600 0 CST} + {1238918400 -18000 1 CDT} + {1256454000 -21600 0 CST} + {1270368000 -18000 1 CDT} + {1288508400 -21600 0 CST} + {1301817600 -18000 1 CDT} + {1319958000 -21600 0 CST} + {1333267200 -18000 1 CDT} + {1351407600 -21600 0 CST} + {1365321600 -18000 1 CDT} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Caracas b/mingw/lib/tcl8.5/tzdata/America/Caracas new file mode 100644 index 00000000..057d3008 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Caracas @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Caracas) { + {-9223372036854775808 -16064 0 LMT} + {-2524505536 -16060 0 CMT} + {-1826739140 -16200 0 VET} + {-157750200 -14400 0 VET} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Catamarca b/mingw/lib/tcl8.5/tzdata/America/Catamarca new file mode 100644 index 00000000..01c8ab6d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Catamarca @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Catamarca)]} { + LoadTimeZoneFile America/Argentina/Catamarca +} +set TZData(:America/Catamarca) $TZData(:America/Argentina/Catamarca) diff --git a/mingw/lib/tcl8.5/tzdata/America/Cayenne b/mingw/lib/tcl8.5/tzdata/America/Cayenne new file mode 100644 index 00000000..de3d65be --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cayenne @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Cayenne) { + {-9223372036854775808 -12560 0 LMT} + {-1846269040 -14400 0 GFT} + {-71092800 -10800 0 GFT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Cayman b/mingw/lib/tcl8.5/tzdata/America/Cayman new file mode 100644 index 00000000..ab5d12b3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cayman @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Cayman) { + {-9223372036854775808 -19532 0 LMT} + {-2524502068 -18432 0 KMT} + {-1827687168 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Chicago b/mingw/lib/tcl8.5/tzdata/America/Chicago new file mode 100644 index 00000000..545aedb4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Chicago @@ -0,0 +1,369 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Chicago) { + {-9223372036854775808 -21036 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-1577901600 -21600 0 CST} + {-1563724800 -18000 1 CDT} + {-1551632400 -21600 0 CST} + {-1538928000 -18000 1 CDT} + {-1520182800 -21600 0 CST} + {-1504454400 -18000 1 CDT} + {-1491757200 -21600 0 CST} + {-1473004800 -18000 1 CDT} + {-1459702800 -21600 0 CST} + {-1441555200 -18000 1 CDT} + {-1428253200 -21600 0 CST} + {-1410105600 -18000 1 CDT} + {-1396803600 -21600 0 CST} + {-1378656000 -18000 1 CDT} + {-1365354000 -21600 0 CST} + {-1347206400 -18000 1 CDT} + {-1333904400 -21600 0 CST} + {-1315152000 -18000 1 CDT} + {-1301850000 -21600 0 CST} + {-1283702400 -18000 1 CDT} + {-1270400400 -21600 0 CST} + {-1252252800 -18000 1 CDT} + {-1238950800 -21600 0 CST} + {-1220803200 -18000 1 CDT} + {-1207501200 -21600 0 CST} + {-1189353600 -18000 1 CDT} + {-1176051600 -21600 0 CST} + {-1157299200 -18000 1 CDT} + {-1144602000 -21600 0 CST} + {-1125849600 -18000 1 CDT} + {-1112547600 -21600 0 CST} + {-1094400000 -18000 1 CDT} + {-1081098000 -21600 0 CST} + {-1067788800 -18000 0 EST} + {-1045414800 -21600 0 CST} + {-1031500800 -18000 1 CDT} + {-1018198800 -21600 0 CST} + {-1000051200 -18000 1 CDT} + {-986749200 -21600 0 CST} + {-967996800 -18000 1 CDT} + {-955299600 -21600 0 CST} + {-936547200 -18000 1 CDT} + {-923245200 -21600 0 CST} + {-905097600 -18000 1 CDT} + {-891795600 -21600 0 CST} + {-883591200 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-702493200 -21600 0 CST} + {-684345600 -18000 1 CDT} + {-671043600 -21600 0 CST} + {-652896000 -18000 1 CDT} + {-639594000 -21600 0 CST} + {-620841600 -18000 1 CDT} + {-608144400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-447267600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-415818000 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-384368400 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-352918800 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-321469200 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-289414800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-257965200 -21600 0 CST} + {-242236800 -18000 1 CDT} + {-226515600 -21600 0 CST} + {-210787200 -18000 1 CDT} + {-195066000 -21600 0 CST} + {-179337600 -18000 1 CDT} + {-163616400 -21600 0 CST} + {-147888000 -18000 1 CDT} + {-131562000 -21600 0 CST} + {-116438400 -18000 1 CDT} + {-100112400 -21600 0 CST} + {-94672800 -21600 0 CST} + {-84384000 -18000 1 CDT} + {-68662800 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37213200 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5763600 -21600 0 CST} + {9964800 -18000 1 CDT} + {25686000 -21600 0 CST} + {41414400 -18000 1 CDT} + {57740400 -21600 0 CST} + {73468800 -18000 1 CDT} + {89190000 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Chihuahua b/mingw/lib/tcl8.5/tzdata/America/Chihuahua new file mode 100644 index 00000000..54449303 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Chihuahua @@ -0,0 +1,221 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Chihuahua) { + {-9223372036854775808 -25460 0 LMT} + {-1514739600 -25200 0 MST} + {-1343066400 -21600 0 CST} + {-1234807200 -25200 0 MST} + {-1220292000 -21600 0 CST} + {-1207159200 -25200 0 MST} + {-1191344400 -21600 0 CST} + {820476000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {883634400 -21600 0 CST} + {891766800 -21600 0 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {989139600 -21600 1 MDT} + {1001836800 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1175418000 -21600 1 MDT} + {1193558400 -25200 0 MST} + {1207472400 -21600 1 MDT} + {1225008000 -25200 0 MST} + {1238922000 -21600 1 MDT} + {1256457600 -25200 0 MST} + {1270371600 -21600 1 MDT} + {1288512000 -25200 0 MST} + {1301821200 -21600 1 MDT} + {1319961600 -25200 0 MST} + {1333270800 -21600 1 MDT} + {1351411200 -25200 0 MST} + {1365325200 -21600 1 MDT} + {1382860800 -25200 0 MST} + {1396774800 -21600 1 MDT} + {1414310400 -25200 0 MST} + {1428224400 -21600 1 MDT} + {1445760000 -25200 0 MST} + {1459674000 -21600 1 MDT} + {1477814400 -25200 0 MST} + {1491123600 -21600 1 MDT} + {1509264000 -25200 0 MST} + {1522573200 -21600 1 MDT} + {1540713600 -25200 0 MST} + {1554627600 -21600 1 MDT} + {1572163200 -25200 0 MST} + {1586077200 -21600 1 MDT} + {1603612800 -25200 0 MST} + {1617526800 -21600 1 MDT} + {1635667200 -25200 0 MST} + {1648976400 -21600 1 MDT} + {1667116800 -25200 0 MST} + {1680426000 -21600 1 MDT} + {1698566400 -25200 0 MST} + {1712480400 -21600 1 MDT} + {1730016000 -25200 0 MST} + {1743930000 -21600 1 MDT} + {1761465600 -25200 0 MST} + {1775379600 -21600 1 MDT} + {1792915200 -25200 0 MST} + {1806829200 -21600 1 MDT} + {1824969600 -25200 0 MST} + {1838278800 -21600 1 MDT} + {1856419200 -25200 0 MST} + {1869728400 -21600 1 MDT} + {1887868800 -25200 0 MST} + {1901782800 -21600 1 MDT} + {1919318400 -25200 0 MST} + {1933232400 -21600 1 MDT} + {1950768000 -25200 0 MST} + {1964682000 -21600 1 MDT} + {1982822400 -25200 0 MST} + {1996131600 -21600 1 MDT} + {2014272000 -25200 0 MST} + {2027581200 -21600 1 MDT} + {2045721600 -25200 0 MST} + {2059030800 -21600 1 MDT} + {2077171200 -25200 0 MST} + {2091085200 -21600 1 MDT} + {2108620800 -25200 0 MST} + {2122534800 -21600 1 MDT} + {2140070400 -25200 0 MST} + {2153984400 -21600 1 MDT} + {2172124800 -25200 0 MST} + {2185434000 -21600 1 MDT} + {2203574400 -25200 0 MST} + {2216883600 -21600 1 MDT} + {2235024000 -25200 0 MST} + {2248938000 -21600 1 MDT} + {2266473600 -25200 0 MST} + {2280387600 -21600 1 MDT} + {2297923200 -25200 0 MST} + {2311837200 -21600 1 MDT} + {2329372800 -25200 0 MST} + {2343286800 -21600 1 MDT} + {2361427200 -25200 0 MST} + {2374736400 -21600 1 MDT} + {2392876800 -25200 0 MST} + {2406186000 -21600 1 MDT} + {2424326400 -25200 0 MST} + {2438240400 -21600 1 MDT} + {2455776000 -25200 0 MST} + {2469690000 -21600 1 MDT} + {2487225600 -25200 0 MST} + {2501139600 -21600 1 MDT} + {2519280000 -25200 0 MST} + {2532589200 -21600 1 MDT} + {2550729600 -25200 0 MST} + {2564038800 -21600 1 MDT} + {2582179200 -25200 0 MST} + {2596093200 -21600 1 MDT} + {2613628800 -25200 0 MST} + {2627542800 -21600 1 MDT} + {2645078400 -25200 0 MST} + {2658992400 -21600 1 MDT} + {2676528000 -25200 0 MST} + {2690442000 -21600 1 MDT} + {2708582400 -25200 0 MST} + {2721891600 -21600 1 MDT} + {2740032000 -25200 0 MST} + {2753341200 -21600 1 MDT} + {2771481600 -25200 0 MST} + {2785395600 -21600 1 MDT} + {2802931200 -25200 0 MST} + {2816845200 -21600 1 MDT} + {2834380800 -25200 0 MST} + {2848294800 -21600 1 MDT} + {2866435200 -25200 0 MST} + {2879744400 -21600 1 MDT} + {2897884800 -25200 0 MST} + {2911194000 -21600 1 MDT} + {2929334400 -25200 0 MST} + {2942643600 -21600 1 MDT} + {2960784000 -25200 0 MST} + {2974698000 -21600 1 MDT} + {2992233600 -25200 0 MST} + {3006147600 -21600 1 MDT} + {3023683200 -25200 0 MST} + {3037597200 -21600 1 MDT} + {3055737600 -25200 0 MST} + {3069046800 -21600 1 MDT} + {3087187200 -25200 0 MST} + {3100496400 -21600 1 MDT} + {3118636800 -25200 0 MST} + {3132550800 -21600 1 MDT} + {3150086400 -25200 0 MST} + {3164000400 -21600 1 MDT} + {3181536000 -25200 0 MST} + {3195450000 -21600 1 MDT} + {3212985600 -25200 0 MST} + {3226899600 -21600 1 MDT} + {3245040000 -25200 0 MST} + {3258349200 -21600 1 MDT} + {3276489600 -25200 0 MST} + {3289798800 -21600 1 MDT} + {3307939200 -25200 0 MST} + {3321853200 -21600 1 MDT} + {3339388800 -25200 0 MST} + {3353302800 -21600 1 MDT} + {3370838400 -25200 0 MST} + {3384752400 -21600 1 MDT} + {3402892800 -25200 0 MST} + {3416202000 -21600 1 MDT} + {3434342400 -25200 0 MST} + {3447651600 -21600 1 MDT} + {3465792000 -25200 0 MST} + {3479706000 -21600 1 MDT} + {3497241600 -25200 0 MST} + {3511155600 -21600 1 MDT} + {3528691200 -25200 0 MST} + {3542605200 -21600 1 MDT} + {3560140800 -25200 0 MST} + {3574054800 -21600 1 MDT} + {3592195200 -25200 0 MST} + {3605504400 -21600 1 MDT} + {3623644800 -25200 0 MST} + {3636954000 -21600 1 MDT} + {3655094400 -25200 0 MST} + {3669008400 -21600 1 MDT} + {3686544000 -25200 0 MST} + {3700458000 -21600 1 MDT} + {3717993600 -25200 0 MST} + {3731907600 -21600 1 MDT} + {3750048000 -25200 0 MST} + {3763357200 -21600 1 MDT} + {3781497600 -25200 0 MST} + {3794806800 -21600 1 MDT} + {3812947200 -25200 0 MST} + {3826256400 -21600 1 MDT} + {3844396800 -25200 0 MST} + {3858310800 -21600 1 MDT} + {3875846400 -25200 0 MST} + {3889760400 -21600 1 MDT} + {3907296000 -25200 0 MST} + {3921210000 -21600 1 MDT} + {3939350400 -25200 0 MST} + {3952659600 -21600 1 MDT} + {3970800000 -25200 0 MST} + {3984109200 -21600 1 MDT} + {4002249600 -25200 0 MST} + {4016163600 -21600 1 MDT} + {4033699200 -25200 0 MST} + {4047613200 -21600 1 MDT} + {4065148800 -25200 0 MST} + {4079062800 -21600 1 MDT} + {4096598400 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Coral_Harbour b/mingw/lib/tcl8.5/tzdata/America/Coral_Harbour new file mode 100644 index 00000000..a27dc034 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Coral_Harbour @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Atikokan)]} { + LoadTimeZoneFile America/Atikokan +} +set TZData(:America/Coral_Harbour) $TZData(:America/Atikokan) diff --git a/mingw/lib/tcl8.5/tzdata/America/Cordoba b/mingw/lib/tcl8.5/tzdata/America/Cordoba new file mode 100644 index 00000000..c8815583 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cordoba @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Cordoba)]} { + LoadTimeZoneFile America/Argentina/Cordoba +} +set TZData(:America/Cordoba) $TZData(:America/Argentina/Cordoba) diff --git a/mingw/lib/tcl8.5/tzdata/America/Costa_Rica b/mingw/lib/tcl8.5/tzdata/America/Costa_Rica new file mode 100644 index 00000000..04420a45 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Costa_Rica @@ -0,0 +1,15 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Costa_Rica) { + {-9223372036854775808 -20180 0 LMT} + {-2524501420 -20180 0 SJMT} + {-1545071020 -21600 0 CST} + {288770400 -18000 1 CDT} + {297234000 -21600 0 CST} + {320220000 -18000 1 CDT} + {328683600 -21600 0 CST} + {664264800 -18000 1 CDT} + {678344400 -21600 0 CST} + {695714400 -18000 1 CDT} + {700635600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Cuiaba b/mingw/lib/tcl8.5/tzdata/America/Cuiaba new file mode 100644 index 00000000..d5e761d5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Cuiaba @@ -0,0 +1,257 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Cuiaba) { + {-9223372036854775808 -13460 0 LMT} + {-1767212140 -14400 0 AMT} + {-1206954000 -10800 1 AMST} + {-1191358800 -14400 0 AMT} + {-1175371200 -10800 1 AMST} + {-1159822800 -14400 0 AMT} + {-633816000 -10800 1 AMST} + {-622065600 -14400 0 AMT} + {-602280000 -10800 1 AMST} + {-591829200 -14400 0 AMT} + {-570744000 -10800 1 AMST} + {-560206800 -14400 0 AMT} + {-539121600 -10800 1 AMST} + {-531349200 -14400 0 AMT} + {-191361600 -10800 1 AMST} + {-184194000 -14400 0 AMT} + {-155160000 -10800 1 AMST} + {-150066000 -14400 0 AMT} + {-128894400 -10800 1 AMST} + {-121122000 -14400 0 AMT} + {-99950400 -10800 1 AMST} + {-89586000 -14400 0 AMT} + {-68414400 -10800 1 AMST} + {-57963600 -14400 0 AMT} + {499752000 -10800 1 AMST} + {511239600 -14400 0 AMT} + {530596800 -10800 1 AMST} + {540270000 -14400 0 AMT} + {562132800 -10800 1 AMST} + {571201200 -14400 0 AMT} + {592977600 -10800 1 AMST} + {602046000 -14400 0 AMT} + {624427200 -10800 1 AMST} + {634705200 -14400 0 AMT} + {656481600 -10800 1 AMST} + {666759600 -14400 0 AMT} + {687931200 -10800 1 AMST} + {697604400 -14400 0 AMT} + {719985600 -10800 1 AMST} + {728449200 -14400 0 AMT} + {750830400 -10800 1 AMST} + {761713200 -14400 0 AMT} + {782280000 -10800 1 AMST} + {793162800 -14400 0 AMT} + {813729600 -10800 1 AMST} + {824007600 -14400 0 AMT} + {844574400 -10800 1 AMST} + {856062000 -14400 0 AMT} + {876110400 -10800 1 AMST} + {888721200 -14400 0 AMT} + {908078400 -10800 1 AMST} + {919566000 -14400 0 AMT} + {938923200 -10800 1 AMST} + {951620400 -14400 0 AMT} + {970977600 -10800 1 AMST} + {982465200 -14400 0 AMT} + {1003032000 -10800 1 AMST} + {1013914800 -14400 0 AMT} + {1036296000 -10800 1 AMST} + {1045364400 -14400 0 AMT} + {1064372400 -14400 0 AMT} + {1096603200 -14400 0 AMT} + {1099368000 -10800 1 AMST} + {1108868400 -14400 0 AMT} + {1129435200 -10800 1 AMST} + {1140318000 -14400 0 AMT} + {1162699200 -10800 1 AMST} + {1172372400 -14400 0 AMT} + {1194148800 -10800 1 AMST} + {1203822000 -14400 0 AMT} + {1225598400 -10800 1 AMST} + {1235271600 -14400 0 AMT} + {1257048000 -10800 1 AMST} + {1267326000 -14400 0 AMT} + {1289102400 -10800 1 AMST} + {1298775600 -14400 0 AMT} + {1320552000 -10800 1 AMST} + {1330225200 -14400 0 AMT} + {1352001600 -10800 1 AMST} + {1361674800 -14400 0 AMT} + {1383451200 -10800 1 AMST} + {1393124400 -14400 0 AMT} + {1414900800 -10800 1 AMST} + {1424574000 -14400 0 AMT} + {1446350400 -10800 1 AMST} + {1456628400 -14400 0 AMT} + {1478404800 -10800 1 AMST} + {1488078000 -14400 0 AMT} + {1509854400 -10800 1 AMST} + {1519527600 -14400 0 AMT} + {1541304000 -10800 1 AMST} + {1550977200 -14400 0 AMT} + {1572753600 -10800 1 AMST} + {1582426800 -14400 0 AMT} + {1604203200 -10800 1 AMST} + {1614481200 -14400 0 AMT} + {1636257600 -10800 1 AMST} + {1645930800 -14400 0 AMT} + {1667707200 -10800 1 AMST} + {1677380400 -14400 0 AMT} + {1699156800 -10800 1 AMST} + {1708830000 -14400 0 AMT} + {1730606400 -10800 1 AMST} + {1740279600 -14400 0 AMT} + {1762056000 -10800 1 AMST} + {1771729200 -14400 0 AMT} + {1793505600 -10800 1 AMST} + {1803783600 -14400 0 AMT} + {1825560000 -10800 1 AMST} + {1835233200 -14400 0 AMT} + {1857009600 -10800 1 AMST} + {1866682800 -14400 0 AMT} + {1888459200 -10800 1 AMST} + {1898132400 -14400 0 AMT} + {1919908800 -10800 1 AMST} + {1929582000 -14400 0 AMT} + {1951358400 -10800 1 AMST} + {1961636400 -14400 0 AMT} + {1983412800 -10800 1 AMST} + {1993086000 -14400 0 AMT} + {2014862400 -10800 1 AMST} + {2024535600 -14400 0 AMT} + {2046312000 -10800 1 AMST} + {2055985200 -14400 0 AMT} + {2077761600 -10800 1 AMST} + {2087434800 -14400 0 AMT} + {2109211200 -10800 1 AMST} + {2118884400 -14400 0 AMT} + {2140660800 -10800 1 AMST} + {2150938800 -14400 0 AMT} + {2172715200 -10800 1 AMST} + {2182388400 -14400 0 AMT} + {2204164800 -10800 1 AMST} + {2213838000 -14400 0 AMT} + {2235614400 -10800 1 AMST} + {2245287600 -14400 0 AMT} + {2267064000 -10800 1 AMST} + {2276737200 -14400 0 AMT} + {2298513600 -10800 1 AMST} + {2308186800 -14400 0 AMT} + {2329963200 -10800 1 AMST} + {2340241200 -14400 0 AMT} + {2362017600 -10800 1 AMST} + {2371690800 -14400 0 AMT} + {2393467200 -10800 1 AMST} + {2403140400 -14400 0 AMT} + {2424916800 -10800 1 AMST} + {2434590000 -14400 0 AMT} + {2456366400 -10800 1 AMST} + {2466039600 -14400 0 AMT} + {2487816000 -10800 1 AMST} + {2498094000 -14400 0 AMT} + {2519870400 -10800 1 AMST} + {2529543600 -14400 0 AMT} + {2551320000 -10800 1 AMST} + {2560993200 -14400 0 AMT} + {2582769600 -10800 1 AMST} + {2592442800 -14400 0 AMT} + {2614219200 -10800 1 AMST} + {2623892400 -14400 0 AMT} + {2645668800 -10800 1 AMST} + {2655342000 -14400 0 AMT} + {2677118400 -10800 1 AMST} + {2687396400 -14400 0 AMT} + {2709172800 -10800 1 AMST} + {2718846000 -14400 0 AMT} + {2740622400 -10800 1 AMST} + {2750295600 -14400 0 AMT} + {2772072000 -10800 1 AMST} + {2781745200 -14400 0 AMT} + {2803521600 -10800 1 AMST} + {2813194800 -14400 0 AMT} + {2834971200 -10800 1 AMST} + {2845249200 -14400 0 AMT} + {2867025600 -10800 1 AMST} + {2876698800 -14400 0 AMT} + {2898475200 -10800 1 AMST} + {2908148400 -14400 0 AMT} + {2929924800 -10800 1 AMST} + {2939598000 -14400 0 AMT} + {2961374400 -10800 1 AMST} + {2971047600 -14400 0 AMT} + {2992824000 -10800 1 AMST} + {3002497200 -14400 0 AMT} + {3024273600 -10800 1 AMST} + {3034551600 -14400 0 AMT} + {3056328000 -10800 1 AMST} + {3066001200 -14400 0 AMT} + {3087777600 -10800 1 AMST} + {3097450800 -14400 0 AMT} + {3119227200 -10800 1 AMST} + {3128900400 -14400 0 AMT} + {3150676800 -10800 1 AMST} + {3160350000 -14400 0 AMT} + {3182126400 -10800 1 AMST} + {3191799600 -14400 0 AMT} + {3213576000 -10800 1 AMST} + {3223854000 -14400 0 AMT} + {3245630400 -10800 1 AMST} + {3255303600 -14400 0 AMT} + {3277080000 -10800 1 AMST} + {3286753200 -14400 0 AMT} + {3308529600 -10800 1 AMST} + {3318202800 -14400 0 AMT} + {3339979200 -10800 1 AMST} + {3349652400 -14400 0 AMT} + {3371428800 -10800 1 AMST} + {3381706800 -14400 0 AMT} + {3403483200 -10800 1 AMST} + {3413156400 -14400 0 AMT} + {3434932800 -10800 1 AMST} + {3444606000 -14400 0 AMT} + {3466382400 -10800 1 AMST} + {3476055600 -14400 0 AMT} + {3497832000 -10800 1 AMST} + {3507505200 -14400 0 AMT} + {3529281600 -10800 1 AMST} + {3538954800 -14400 0 AMT} + {3560731200 -10800 1 AMST} + {3571009200 -14400 0 AMT} + {3592785600 -10800 1 AMST} + {3602458800 -14400 0 AMT} + {3624235200 -10800 1 AMST} + {3633908400 -14400 0 AMT} + {3655684800 -10800 1 AMST} + {3665358000 -14400 0 AMT} + {3687134400 -10800 1 AMST} + {3696807600 -14400 0 AMT} + {3718584000 -10800 1 AMST} + {3728862000 -14400 0 AMT} + {3750638400 -10800 1 AMST} + {3760311600 -14400 0 AMT} + {3782088000 -10800 1 AMST} + {3791761200 -14400 0 AMT} + {3813537600 -10800 1 AMST} + {3823210800 -14400 0 AMT} + {3844987200 -10800 1 AMST} + {3854660400 -14400 0 AMT} + {3876436800 -10800 1 AMST} + {3886110000 -14400 0 AMT} + {3907886400 -10800 1 AMST} + {3918164400 -14400 0 AMT} + {3939940800 -10800 1 AMST} + {3949614000 -14400 0 AMT} + {3971390400 -10800 1 AMST} + {3981063600 -14400 0 AMT} + {4002840000 -10800 1 AMST} + {4012513200 -14400 0 AMT} + {4034289600 -10800 1 AMST} + {4043962800 -14400 0 AMT} + {4065739200 -10800 1 AMST} + {4075412400 -14400 0 AMT} + {4097188800 -10800 1 AMST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Curacao b/mingw/lib/tcl8.5/tzdata/America/Curacao new file mode 100644 index 00000000..443a3191 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Curacao @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Curacao) { + {-9223372036854775808 -16544 0 LMT} + {-1826738656 -16200 0 ANT} + {-157750200 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Danmarkshavn b/mingw/lib/tcl8.5/tzdata/America/Danmarkshavn new file mode 100644 index 00000000..8d66d3a5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Danmarkshavn @@ -0,0 +1,39 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Danmarkshavn) { + {-9223372036854775808 -4480 0 LMT} + {-1686091520 -10800 0 WGT} + {323845200 -7200 0 WGST} + {338950800 -10800 0 WGT} + {354675600 -7200 1 WGST} + {370400400 -10800 0 WGT} + {386125200 -7200 1 WGST} + {401850000 -10800 0 WGT} + {417574800 -7200 1 WGST} + {433299600 -10800 0 WGT} + {449024400 -7200 1 WGST} + {465354000 -10800 0 WGT} + {481078800 -7200 1 WGST} + {496803600 -10800 0 WGT} + {512528400 -7200 1 WGST} + {528253200 -10800 0 WGT} + {543978000 -7200 1 WGST} + {559702800 -10800 0 WGT} + {575427600 -7200 1 WGST} + {591152400 -10800 0 WGT} + {606877200 -7200 1 WGST} + {622602000 -10800 0 WGT} + {638326800 -7200 1 WGST} + {654656400 -10800 0 WGT} + {670381200 -7200 1 WGST} + {686106000 -10800 0 WGT} + {701830800 -7200 1 WGST} + {717555600 -10800 0 WGT} + {733280400 -7200 1 WGST} + {749005200 -10800 0 WGT} + {764730000 -7200 1 WGST} + {780454800 -10800 0 WGT} + {796179600 -7200 1 WGST} + {811904400 -10800 0 WGT} + {820465200 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Dawson b/mingw/lib/tcl8.5/tzdata/America/Dawson new file mode 100644 index 00000000..8d2b6419 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Dawson @@ -0,0 +1,256 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Dawson) { + {-9223372036854775808 -33460 0 LMT} + {-2188996940 -32400 0 YST} + {-1632056400 -28800 1 YDT} + {-1615125600 -32400 0 YST} + {-1596978000 -28800 1 YDT} + {-1583164800 -32400 0 YST} + {-880203600 -28800 1 YWT} + {-769395600 -28800 1 YPT} + {-765381600 -32400 0 YST} + {-147884400 -25200 1 YDDT} + {-131554800 -32400 0 YST} + {315561600 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1173607200 -25200 1 PDT} + {1194166800 -28800 0 PST} + {1205056800 -25200 1 PDT} + {1225616400 -28800 0 PST} + {1236506400 -25200 1 PDT} + {1257066000 -28800 0 PST} + {1268560800 -25200 1 PDT} + {1289120400 -28800 0 PST} + {1300010400 -25200 1 PDT} + {1320570000 -28800 0 PST} + {1331460000 -25200 1 PDT} + {1352019600 -28800 0 PST} + {1362909600 -25200 1 PDT} + {1383469200 -28800 0 PST} + {1394359200 -25200 1 PDT} + {1414918800 -28800 0 PST} + {1425808800 -25200 1 PDT} + {1446368400 -28800 0 PST} + {1457863200 -25200 1 PDT} + {1478422800 -28800 0 PST} + {1489312800 -25200 1 PDT} + {1509872400 -28800 0 PST} + {1520762400 -25200 1 PDT} + {1541322000 -28800 0 PST} + {1552212000 -25200 1 PDT} + {1572771600 -28800 0 PST} + {1583661600 -25200 1 PDT} + {1604221200 -28800 0 PST} + {1615716000 -25200 1 PDT} + {1636275600 -28800 0 PST} + {1647165600 -25200 1 PDT} + {1667725200 -28800 0 PST} + {1678615200 -25200 1 PDT} + {1699174800 -28800 0 PST} + {1710064800 -25200 1 PDT} + {1730624400 -28800 0 PST} + {1741514400 -25200 1 PDT} + {1762074000 -28800 0 PST} + {1772964000 -25200 1 PDT} + {1793523600 -28800 0 PST} + {1805018400 -25200 1 PDT} + {1825578000 -28800 0 PST} + {1836468000 -25200 1 PDT} + {1857027600 -28800 0 PST} + {1867917600 -25200 1 PDT} + {1888477200 -28800 0 PST} + {1899367200 -25200 1 PDT} + {1919926800 -28800 0 PST} + {1930816800 -25200 1 PDT} + {1951376400 -28800 0 PST} + {1962871200 -25200 1 PDT} + {1983430800 -28800 0 PST} + {1994320800 -25200 1 PDT} + {2014880400 -28800 0 PST} + {2025770400 -25200 1 PDT} + {2046330000 -28800 0 PST} + {2057220000 -25200 1 PDT} + {2077779600 -28800 0 PST} + {2088669600 -25200 1 PDT} + {2109229200 -28800 0 PST} + {2120119200 -25200 1 PDT} + {2140678800 -28800 0 PST} + {2152173600 -25200 1 PDT} + {2172733200 -28800 0 PST} + {2183623200 -25200 1 PDT} + {2204182800 -28800 0 PST} + {2215072800 -25200 1 PDT} + {2235632400 -28800 0 PST} + {2246522400 -25200 1 PDT} + {2267082000 -28800 0 PST} + {2277972000 -25200 1 PDT} + {2298531600 -28800 0 PST} + {2309421600 -25200 1 PDT} + {2329981200 -28800 0 PST} + {2341476000 -25200 1 PDT} + {2362035600 -28800 0 PST} + {2372925600 -25200 1 PDT} + {2393485200 -28800 0 PST} + {2404375200 -25200 1 PDT} + {2424934800 -28800 0 PST} + {2435824800 -25200 1 PDT} + {2456384400 -28800 0 PST} + {2467274400 -25200 1 PDT} + {2487834000 -28800 0 PST} + {2499328800 -25200 1 PDT} + {2519888400 -28800 0 PST} + {2530778400 -25200 1 PDT} + {2551338000 -28800 0 PST} + {2562228000 -25200 1 PDT} + {2582787600 -28800 0 PST} + {2593677600 -25200 1 PDT} + {2614237200 -28800 0 PST} + {2625127200 -25200 1 PDT} + {2645686800 -28800 0 PST} + {2656576800 -25200 1 PDT} + {2677136400 -28800 0 PST} + {2688631200 -25200 1 PDT} + {2709190800 -28800 0 PST} + {2720080800 -25200 1 PDT} + {2740640400 -28800 0 PST} + {2751530400 -25200 1 PDT} + {2772090000 -28800 0 PST} + {2782980000 -25200 1 PDT} + {2803539600 -28800 0 PST} + {2814429600 -25200 1 PDT} + {2834989200 -28800 0 PST} + {2846484000 -25200 1 PDT} + {2867043600 -28800 0 PST} + {2877933600 -25200 1 PDT} + {2898493200 -28800 0 PST} + {2909383200 -25200 1 PDT} + {2929942800 -28800 0 PST} + {2940832800 -25200 1 PDT} + {2961392400 -28800 0 PST} + {2972282400 -25200 1 PDT} + {2992842000 -28800 0 PST} + {3003732000 -25200 1 PDT} + {3024291600 -28800 0 PST} + {3035786400 -25200 1 PDT} + {3056346000 -28800 0 PST} + {3067236000 -25200 1 PDT} + {3087795600 -28800 0 PST} + {3098685600 -25200 1 PDT} + {3119245200 -28800 0 PST} + {3130135200 -25200 1 PDT} + {3150694800 -28800 0 PST} + {3161584800 -25200 1 PDT} + {3182144400 -28800 0 PST} + {3193034400 -25200 1 PDT} + {3213594000 -28800 0 PST} + {3225088800 -25200 1 PDT} + {3245648400 -28800 0 PST} + {3256538400 -25200 1 PDT} + {3277098000 -28800 0 PST} + {3287988000 -25200 1 PDT} + {3308547600 -28800 0 PST} + {3319437600 -25200 1 PDT} + {3339997200 -28800 0 PST} + {3350887200 -25200 1 PDT} + {3371446800 -28800 0 PST} + {3382941600 -25200 1 PDT} + {3403501200 -28800 0 PST} + {3414391200 -25200 1 PDT} + {3434950800 -28800 0 PST} + {3445840800 -25200 1 PDT} + {3466400400 -28800 0 PST} + {3477290400 -25200 1 PDT} + {3497850000 -28800 0 PST} + {3508740000 -25200 1 PDT} + {3529299600 -28800 0 PST} + {3540189600 -25200 1 PDT} + {3560749200 -28800 0 PST} + {3572244000 -25200 1 PDT} + {3592803600 -28800 0 PST} + {3603693600 -25200 1 PDT} + {3624253200 -28800 0 PST} + {3635143200 -25200 1 PDT} + {3655702800 -28800 0 PST} + {3666592800 -25200 1 PDT} + {3687152400 -28800 0 PST} + {3698042400 -25200 1 PDT} + {3718602000 -28800 0 PST} + {3730096800 -25200 1 PDT} + {3750656400 -28800 0 PST} + {3761546400 -25200 1 PDT} + {3782106000 -28800 0 PST} + {3792996000 -25200 1 PDT} + {3813555600 -28800 0 PST} + {3824445600 -25200 1 PDT} + {3845005200 -28800 0 PST} + {3855895200 -25200 1 PDT} + {3876454800 -28800 0 PST} + {3887344800 -25200 1 PDT} + {3907904400 -28800 0 PST} + {3919399200 -25200 1 PDT} + {3939958800 -28800 0 PST} + {3950848800 -25200 1 PDT} + {3971408400 -28800 0 PST} + {3982298400 -25200 1 PDT} + {4002858000 -28800 0 PST} + {4013748000 -25200 1 PDT} + {4034307600 -28800 0 PST} + {4045197600 -25200 1 PDT} + {4065757200 -28800 0 PST} + {4076647200 -25200 1 PDT} + {4097206800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Dawson_Creek b/mingw/lib/tcl8.5/tzdata/America/Dawson_Creek new file mode 100644 index 00000000..9f8c921f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Dawson_Creek @@ -0,0 +1,64 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Dawson_Creek) { + {-9223372036854775808 -28856 0 LMT} + {-2713881544 -28800 0 PST} + {-1632060000 -25200 1 PDT} + {-1614783600 -28800 0 PST} + {-880207200 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-765385200 -28800 0 PST} + {-725817600 -28800 0 PST} + {-715788000 -25200 1 PDT} + {-702486000 -28800 0 PST} + {-684338400 -25200 1 PDT} + {-671036400 -28800 0 PST} + {-652888800 -25200 1 PDT} + {-639586800 -28800 0 PST} + {-620834400 -25200 1 PDT} + {-608137200 -28800 0 PST} + {-589384800 -25200 1 PDT} + {-576082800 -28800 0 PST} + {-557935200 -25200 1 PDT} + {-544633200 -28800 0 PST} + {-526485600 -25200 1 PDT} + {-513183600 -28800 0 PST} + {-495036000 -25200 1 PDT} + {-481734000 -28800 0 PST} + {-463586400 -25200 1 PDT} + {-450284400 -28800 0 PST} + {-431532000 -25200 1 PDT} + {-418230000 -28800 0 PST} + {-400082400 -25200 1 PDT} + {-386780400 -28800 0 PST} + {-368632800 -25200 1 PDT} + {-355330800 -28800 0 PST} + {-337183200 -25200 1 PDT} + {-323881200 -28800 0 PST} + {-305733600 -25200 1 PDT} + {-292431600 -28800 0 PST} + {-273679200 -25200 1 PDT} + {-260982000 -28800 0 PST} + {-242229600 -25200 1 PDT} + {-226508400 -28800 0 PST} + {-210780000 -25200 1 PDT} + {-195058800 -28800 0 PST} + {-179330400 -25200 1 PDT} + {-163609200 -28800 0 PST} + {-147880800 -25200 1 PDT} + {-131554800 -28800 0 PST} + {-116431200 -25200 1 PDT} + {-100105200 -28800 0 PST} + {-84376800 -25200 1 PDT} + {-68655600 -28800 0 PST} + {-52927200 -25200 1 PDT} + {-37206000 -28800 0 PST} + {-21477600 -25200 1 PDT} + {-5756400 -28800 0 PST} + {9972000 -25200 1 PDT} + {25693200 -28800 0 PST} + {41421600 -25200 1 PDT} + {57747600 -28800 0 PST} + {73476000 -25200 1 PDT} + {84016800 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Denver b/mingw/lib/tcl8.5/tzdata/America/Denver new file mode 100644 index 00000000..06bc80d6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Denver @@ -0,0 +1,291 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Denver) { + {-9223372036854775808 -25196 0 LMT} + {-2717643600 -25200 0 MST} + {-1633273200 -21600 1 MDT} + {-1615132800 -25200 0 MST} + {-1601823600 -21600 1 MDT} + {-1583683200 -25200 0 MST} + {-1577898000 -25200 0 MST} + {-1570374000 -21600 1 MDT} + {-1551628800 -25200 0 MST} + {-1538924400 -21600 1 MDT} + {-1534089600 -25200 0 MST} + {-883587600 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-757357200 -25200 0 MST} + {-147884400 -21600 1 MDT} + {-131558400 -25200 0 MST} + {-116434800 -21600 1 MDT} + {-100108800 -25200 0 MST} + {-94669200 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-52930800 -21600 1 MDT} + {-37209600 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {9968400 -21600 1 MDT} + {25689600 -25200 0 MST} + {41418000 -21600 1 MDT} + {57744000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {126694800 -21600 1 MDT} + {152092800 -25200 0 MST} + {162378000 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Detroit b/mingw/lib/tcl8.5/tzdata/America/Detroit new file mode 100644 index 00000000..696a663a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Detroit @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Detroit) { + {-9223372036854775808 -19931 0 LMT} + {-2051202469 -21600 0 CST} + {-1724083200 -18000 0 EST} + {-883594800 -18000 0 EST} + {-880218000 -14400 1 EWT} + {-769395600 -14400 1 EPT} + {-765396000 -18000 0 EST} + {-757364400 -18000 0 EST} + {-684349200 -14400 1 EDT} + {-671047200 -18000 0 EST} + {-80499600 -14400 1 EDT} + {-68666400 -18000 0 EST} + {94712400 -18000 0 EST} + {104914800 -14400 1 EDT} + {120636000 -18000 0 EST} + {126687600 -14400 1 EDT} + {152085600 -18000 0 EST} + {157784400 -18000 0 EST} + {167814000 -14400 0 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Dominica b/mingw/lib/tcl8.5/tzdata/America/Dominica new file mode 100644 index 00000000..3503a659 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Dominica @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Dominica) { + {-9223372036854775808 -14736 0 LMT} + {-1846266804 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Edmonton b/mingw/lib/tcl8.5/tzdata/America/Edmonton new file mode 100644 index 00000000..c4252f8c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Edmonton @@ -0,0 +1,284 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Edmonton) { + {-9223372036854775808 -27232 0 LMT} + {-1998663968 -25200 0 MST} + {-1632063600 -21600 1 MDT} + {-1614787200 -25200 0 MST} + {-1600614000 -21600 1 MDT} + {-1596816000 -25200 0 MST} + {-1567954800 -21600 1 MDT} + {-1551628800 -25200 0 MST} + {-1536505200 -21600 1 MDT} + {-1523203200 -25200 0 MST} + {-1504450800 -21600 1 MDT} + {-1491753600 -25200 0 MST} + {-1473001200 -21600 1 MDT} + {-1459699200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-715791600 -21600 1 MDT} + {-702489600 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {136371600 -21600 1 MDT} + {152092800 -25200 0 MST} + {167821200 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {536482800 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Eirunepe b/mingw/lib/tcl8.5/tzdata/America/Eirunepe new file mode 100644 index 00000000..b168fccd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Eirunepe @@ -0,0 +1,39 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Eirunepe) { + {-9223372036854775808 -16768 0 LMT} + {-1767208832 -18000 0 ACT} + {-1206950400 -14400 1 ACST} + {-1191355200 -18000 0 ACT} + {-1175367600 -14400 1 ACST} + {-1159819200 -18000 0 ACT} + {-633812400 -14400 1 ACST} + {-622062000 -18000 0 ACT} + {-602276400 -14400 1 ACST} + {-591825600 -18000 0 ACT} + {-570740400 -14400 1 ACST} + {-560203200 -18000 0 ACT} + {-539118000 -14400 1 ACST} + {-531345600 -18000 0 ACT} + {-191358000 -14400 1 ACST} + {-184190400 -18000 0 ACT} + {-155156400 -14400 1 ACST} + {-150062400 -18000 0 ACT} + {-128890800 -14400 1 ACST} + {-121118400 -18000 0 ACT} + {-99946800 -14400 1 ACST} + {-89582400 -18000 0 ACT} + {-68410800 -14400 1 ACST} + {-57960000 -18000 0 ACT} + {499755600 -14400 1 ACST} + {511243200 -18000 0 ACT} + {530600400 -14400 1 ACST} + {540273600 -18000 0 ACT} + {562136400 -14400 1 ACST} + {571204800 -18000 0 ACT} + {590040000 -18000 0 ACT} + {749192400 -18000 0 ACT} + {750834000 -14400 1 ACST} + {761716800 -18000 0 ACT} + {780206400 -18000 0 ACT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/El_Salvador b/mingw/lib/tcl8.5/tzdata/America/El_Salvador new file mode 100644 index 00000000..75d8129a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/El_Salvador @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/El_Salvador) { + {-9223372036854775808 -21408 0 LMT} + {-1546279392 -21600 0 CST} + {547020000 -18000 1 CDT} + {559717200 -21600 0 CST} + {578469600 -18000 1 CDT} + {591166800 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Ensenada b/mingw/lib/tcl8.5/tzdata/America/Ensenada new file mode 100644 index 00000000..f600305d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Ensenada @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Tijuana)]} { + LoadTimeZoneFile America/Tijuana +} +set TZData(:America/Ensenada) $TZData(:America/Tijuana) diff --git a/mingw/lib/tcl8.5/tzdata/America/Fort_Wayne b/mingw/lib/tcl8.5/tzdata/America/Fort_Wayne new file mode 100644 index 00000000..9514d57f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Fort_Wayne @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indiana/Indianapolis)]} { + LoadTimeZoneFile America/Indiana/Indianapolis +} +set TZData(:America/Fort_Wayne) $TZData(:America/Indiana/Indianapolis) diff --git a/mingw/lib/tcl8.5/tzdata/America/Fortaleza b/mingw/lib/tcl8.5/tzdata/America/Fortaleza new file mode 100644 index 00000000..581faa5b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Fortaleza @@ -0,0 +1,48 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Fortaleza) { + {-9223372036854775808 -9240 0 LMT} + {-1767216360 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {653536800 -10800 0 BRT} + {938660400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {972180000 -10800 0 BRT} + {1000350000 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1033437600 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Glace_Bay b/mingw/lib/tcl8.5/tzdata/America/Glace_Bay new file mode 100644 index 00000000..84b4822c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Glace_Bay @@ -0,0 +1,273 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Glace_Bay) { + {-9223372036854775808 -14388 0 LMT} + {-2131646412 -14400 0 AST} + {-1632074400 -10800 1 ADT} + {-1614798000 -14400 0 AST} + {-880221600 -10800 1 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {-536443200 -14400 0 AST} + {-526500000 -10800 1 ADT} + {-513198000 -14400 0 AST} + {-504907200 -14400 0 AST} + {63086400 -14400 0 AST} + {73461600 -10800 1 ADT} + {89182800 -14400 0 AST} + {104911200 -10800 1 ADT} + {120632400 -14400 0 AST} + {126244800 -14400 0 AST} + {136360800 -10800 1 ADT} + {152082000 -14400 0 AST} + {167810400 -10800 1 ADT} + {183531600 -14400 0 AST} + {199260000 -10800 1 ADT} + {215586000 -14400 0 AST} + {230709600 -10800 1 ADT} + {247035600 -14400 0 AST} + {262764000 -10800 1 ADT} + {278485200 -14400 0 AST} + {294213600 -10800 1 ADT} + {309934800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544600800 -10800 1 ADT} + {562136400 -14400 0 AST} + {576050400 -10800 1 ADT} + {594190800 -14400 0 AST} + {607500000 -10800 1 ADT} + {625640400 -14400 0 AST} + {638949600 -10800 1 ADT} + {657090000 -14400 0 AST} + {671004000 -10800 1 ADT} + {688539600 -14400 0 AST} + {702453600 -10800 1 ADT} + {719989200 -14400 0 AST} + {733903200 -10800 1 ADT} + {752043600 -14400 0 AST} + {765352800 -10800 1 ADT} + {783493200 -14400 0 AST} + {796802400 -10800 1 ADT} + {814942800 -14400 0 AST} + {828856800 -10800 1 ADT} + {846392400 -14400 0 AST} + {860306400 -10800 1 ADT} + {877842000 -14400 0 AST} + {891756000 -10800 1 ADT} + {909291600 -14400 0 AST} + {923205600 -10800 1 ADT} + {941346000 -14400 0 AST} + {954655200 -10800 1 ADT} + {972795600 -14400 0 AST} + {986104800 -10800 1 ADT} + {1004245200 -14400 0 AST} + {1018159200 -10800 1 ADT} + {1035694800 -14400 0 AST} + {1049608800 -10800 1 ADT} + {1067144400 -14400 0 AST} + {1081058400 -10800 1 ADT} + {1099198800 -14400 0 AST} + {1112508000 -10800 1 ADT} + {1130648400 -14400 0 AST} + {1143957600 -10800 1 ADT} + {1162098000 -14400 0 AST} + {1173592800 -10800 1 ADT} + {1194152400 -14400 0 AST} + {1205042400 -10800 1 ADT} + {1225602000 -14400 0 AST} + {1236492000 -10800 1 ADT} + {1257051600 -14400 0 AST} + {1268546400 -10800 1 ADT} + {1289106000 -14400 0 AST} + {1299996000 -10800 1 ADT} + {1320555600 -14400 0 AST} + {1331445600 -10800 1 ADT} + {1352005200 -14400 0 AST} + {1362895200 -10800 1 ADT} + {1383454800 -14400 0 AST} + {1394344800 -10800 1 ADT} + {1414904400 -14400 0 AST} + {1425794400 -10800 1 ADT} + {1446354000 -14400 0 AST} + {1457848800 -10800 1 ADT} + {1478408400 -14400 0 AST} + {1489298400 -10800 1 ADT} + {1509858000 -14400 0 AST} + {1520748000 -10800 1 ADT} + {1541307600 -14400 0 AST} + {1552197600 -10800 1 ADT} + {1572757200 -14400 0 AST} + {1583647200 -10800 1 ADT} + {1604206800 -14400 0 AST} + {1615701600 -10800 1 ADT} + {1636261200 -14400 0 AST} + {1647151200 -10800 1 ADT} + {1667710800 -14400 0 AST} + {1678600800 -10800 1 ADT} + {1699160400 -14400 0 AST} + {1710050400 -10800 1 ADT} + {1730610000 -14400 0 AST} + {1741500000 -10800 1 ADT} + {1762059600 -14400 0 AST} + {1772949600 -10800 1 ADT} + {1793509200 -14400 0 AST} + {1805004000 -10800 1 ADT} + {1825563600 -14400 0 AST} + {1836453600 -10800 1 ADT} + {1857013200 -14400 0 AST} + {1867903200 -10800 1 ADT} + {1888462800 -14400 0 AST} + {1899352800 -10800 1 ADT} + {1919912400 -14400 0 AST} + {1930802400 -10800 1 ADT} + {1951362000 -14400 0 AST} + {1962856800 -10800 1 ADT} + {1983416400 -14400 0 AST} + {1994306400 -10800 1 ADT} + {2014866000 -14400 0 AST} + {2025756000 -10800 1 ADT} + {2046315600 -14400 0 AST} + {2057205600 -10800 1 ADT} + {2077765200 -14400 0 AST} + {2088655200 -10800 1 ADT} + {2109214800 -14400 0 AST} + {2120104800 -10800 1 ADT} + {2140664400 -14400 0 AST} + {2152159200 -10800 1 ADT} + {2172718800 -14400 0 AST} + {2183608800 -10800 1 ADT} + {2204168400 -14400 0 AST} + {2215058400 -10800 1 ADT} + {2235618000 -14400 0 AST} + {2246508000 -10800 1 ADT} + {2267067600 -14400 0 AST} + {2277957600 -10800 1 ADT} + {2298517200 -14400 0 AST} + {2309407200 -10800 1 ADT} + {2329966800 -14400 0 AST} + {2341461600 -10800 1 ADT} + {2362021200 -14400 0 AST} + {2372911200 -10800 1 ADT} + {2393470800 -14400 0 AST} + {2404360800 -10800 1 ADT} + {2424920400 -14400 0 AST} + {2435810400 -10800 1 ADT} + {2456370000 -14400 0 AST} + {2467260000 -10800 1 ADT} + {2487819600 -14400 0 AST} + {2499314400 -10800 1 ADT} + {2519874000 -14400 0 AST} + {2530764000 -10800 1 ADT} + {2551323600 -14400 0 AST} + {2562213600 -10800 1 ADT} + {2582773200 -14400 0 AST} + {2593663200 -10800 1 ADT} + {2614222800 -14400 0 AST} + {2625112800 -10800 1 ADT} + {2645672400 -14400 0 AST} + {2656562400 -10800 1 ADT} + {2677122000 -14400 0 AST} + {2688616800 -10800 1 ADT} + {2709176400 -14400 0 AST} + {2720066400 -10800 1 ADT} + {2740626000 -14400 0 AST} + {2751516000 -10800 1 ADT} + {2772075600 -14400 0 AST} + {2782965600 -10800 1 ADT} + {2803525200 -14400 0 AST} + {2814415200 -10800 1 ADT} + {2834974800 -14400 0 AST} + {2846469600 -10800 1 ADT} + {2867029200 -14400 0 AST} + {2877919200 -10800 1 ADT} + {2898478800 -14400 0 AST} + {2909368800 -10800 1 ADT} + {2929928400 -14400 0 AST} + {2940818400 -10800 1 ADT} + {2961378000 -14400 0 AST} + {2972268000 -10800 1 ADT} + {2992827600 -14400 0 AST} + {3003717600 -10800 1 ADT} + {3024277200 -14400 0 AST} + {3035772000 -10800 1 ADT} + {3056331600 -14400 0 AST} + {3067221600 -10800 1 ADT} + {3087781200 -14400 0 AST} + {3098671200 -10800 1 ADT} + {3119230800 -14400 0 AST} + {3130120800 -10800 1 ADT} + {3150680400 -14400 0 AST} + {3161570400 -10800 1 ADT} + {3182130000 -14400 0 AST} + {3193020000 -10800 1 ADT} + {3213579600 -14400 0 AST} + {3225074400 -10800 1 ADT} + {3245634000 -14400 0 AST} + {3256524000 -10800 1 ADT} + {3277083600 -14400 0 AST} + {3287973600 -10800 1 ADT} + {3308533200 -14400 0 AST} + {3319423200 -10800 1 ADT} + {3339982800 -14400 0 AST} + {3350872800 -10800 1 ADT} + {3371432400 -14400 0 AST} + {3382927200 -10800 1 ADT} + {3403486800 -14400 0 AST} + {3414376800 -10800 1 ADT} + {3434936400 -14400 0 AST} + {3445826400 -10800 1 ADT} + {3466386000 -14400 0 AST} + {3477276000 -10800 1 ADT} + {3497835600 -14400 0 AST} + {3508725600 -10800 1 ADT} + {3529285200 -14400 0 AST} + {3540175200 -10800 1 ADT} + {3560734800 -14400 0 AST} + {3572229600 -10800 1 ADT} + {3592789200 -14400 0 AST} + {3603679200 -10800 1 ADT} + {3624238800 -14400 0 AST} + {3635128800 -10800 1 ADT} + {3655688400 -14400 0 AST} + {3666578400 -10800 1 ADT} + {3687138000 -14400 0 AST} + {3698028000 -10800 1 ADT} + {3718587600 -14400 0 AST} + {3730082400 -10800 1 ADT} + {3750642000 -14400 0 AST} + {3761532000 -10800 1 ADT} + {3782091600 -14400 0 AST} + {3792981600 -10800 1 ADT} + {3813541200 -14400 0 AST} + {3824431200 -10800 1 ADT} + {3844990800 -14400 0 AST} + {3855880800 -10800 1 ADT} + {3876440400 -14400 0 AST} + {3887330400 -10800 1 ADT} + {3907890000 -14400 0 AST} + {3919384800 -10800 1 ADT} + {3939944400 -14400 0 AST} + {3950834400 -10800 1 ADT} + {3971394000 -14400 0 AST} + {3982284000 -10800 1 ADT} + {4002843600 -14400 0 AST} + {4013733600 -10800 1 ADT} + {4034293200 -14400 0 AST} + {4045183200 -10800 1 ADT} + {4065742800 -14400 0 AST} + {4076632800 -10800 1 ADT} + {4097192400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Godthab b/mingw/lib/tcl8.5/tzdata/America/Godthab new file mode 100644 index 00000000..3c003ccf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Godthab @@ -0,0 +1,246 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Godthab) { + {-9223372036854775808 -12416 0 LMT} + {-1686083584 -10800 0 WGT} + {323845200 -7200 0 WGST} + {338950800 -10800 0 WGT} + {354675600 -7200 1 WGST} + {370400400 -10800 0 WGT} + {386125200 -7200 1 WGST} + {401850000 -10800 0 WGT} + {417574800 -7200 1 WGST} + {433299600 -10800 0 WGT} + {449024400 -7200 1 WGST} + {465354000 -10800 0 WGT} + {481078800 -7200 1 WGST} + {496803600 -10800 0 WGT} + {512528400 -7200 1 WGST} + {528253200 -10800 0 WGT} + {543978000 -7200 1 WGST} + {559702800 -10800 0 WGT} + {575427600 -7200 1 WGST} + {591152400 -10800 0 WGT} + {606877200 -7200 1 WGST} + {622602000 -10800 0 WGT} + {638326800 -7200 1 WGST} + {654656400 -10800 0 WGT} + {670381200 -7200 1 WGST} + {686106000 -10800 0 WGT} + {701830800 -7200 1 WGST} + {717555600 -10800 0 WGT} + {733280400 -7200 1 WGST} + {749005200 -10800 0 WGT} + {764730000 -7200 1 WGST} + {780454800 -10800 0 WGT} + {796179600 -7200 1 WGST} + {811904400 -10800 0 WGT} + {828234000 -7200 1 WGST} + {846378000 -10800 0 WGT} + {859683600 -7200 1 WGST} + {877827600 -10800 0 WGT} + {891133200 -7200 1 WGST} + {909277200 -10800 0 WGT} + {922582800 -7200 1 WGST} + {941331600 -10800 0 WGT} + {954032400 -7200 1 WGST} + {972781200 -10800 0 WGT} + {985482000 -7200 1 WGST} + {1004230800 -10800 0 WGT} + {1017536400 -7200 1 WGST} + {1035680400 -10800 0 WGT} + {1048986000 -7200 1 WGST} + {1067130000 -10800 0 WGT} + {1080435600 -7200 1 WGST} + {1099184400 -10800 0 WGT} + {1111885200 -7200 1 WGST} + {1130634000 -10800 0 WGT} + {1143334800 -7200 1 WGST} + {1162083600 -10800 0 WGT} + {1174784400 -7200 1 WGST} + {1193533200 -10800 0 WGT} + {1206838800 -7200 1 WGST} + {1224982800 -10800 0 WGT} + {1238288400 -7200 1 WGST} + {1256432400 -10800 0 WGT} + {1269738000 -7200 1 WGST} + {1288486800 -10800 0 WGT} + {1301187600 -7200 1 WGST} + {1319936400 -10800 0 WGT} + {1332637200 -7200 1 WGST} + {1351386000 -10800 0 WGT} + {1364691600 -7200 1 WGST} + {1382835600 -10800 0 WGT} + {1396141200 -7200 1 WGST} + {1414285200 -10800 0 WGT} + {1427590800 -7200 1 WGST} + {1445734800 -10800 0 WGT} + {1459040400 -7200 1 WGST} + {1477789200 -10800 0 WGT} + {1490490000 -7200 1 WGST} + {1509238800 -10800 0 WGT} + {1521939600 -7200 1 WGST} + {1540688400 -10800 0 WGT} + {1553994000 -7200 1 WGST} + {1572138000 -10800 0 WGT} + {1585443600 -7200 1 WGST} + {1603587600 -10800 0 WGT} + {1616893200 -7200 1 WGST} + {1635642000 -10800 0 WGT} + {1648342800 -7200 1 WGST} + {1667091600 -10800 0 WGT} + {1679792400 -7200 1 WGST} + {1698541200 -10800 0 WGT} + {1711846800 -7200 1 WGST} + {1729990800 -10800 0 WGT} + {1743296400 -7200 1 WGST} + {1761440400 -10800 0 WGT} + {1774746000 -7200 1 WGST} + {1792890000 -10800 0 WGT} + {1806195600 -7200 1 WGST} + {1824944400 -10800 0 WGT} + {1837645200 -7200 1 WGST} + {1856394000 -10800 0 WGT} + {1869094800 -7200 1 WGST} + {1887843600 -10800 0 WGT} + {1901149200 -7200 1 WGST} + {1919293200 -10800 0 WGT} + {1932598800 -7200 1 WGST} + {1950742800 -10800 0 WGT} + {1964048400 -7200 1 WGST} + {1982797200 -10800 0 WGT} + {1995498000 -7200 1 WGST} + {2014246800 -10800 0 WGT} + {2026947600 -7200 1 WGST} + {2045696400 -10800 0 WGT} + {2058397200 -7200 1 WGST} + {2077146000 -10800 0 WGT} + {2090451600 -7200 1 WGST} + {2108595600 -10800 0 WGT} + {2121901200 -7200 1 WGST} + {2140045200 -10800 0 WGT} + {2153350800 -7200 1 WGST} + {2172099600 -10800 0 WGT} + {2184800400 -7200 1 WGST} + {2203549200 -10800 0 WGT} + {2216250000 -7200 1 WGST} + {2234998800 -10800 0 WGT} + {2248304400 -7200 1 WGST} + {2266448400 -10800 0 WGT} + {2279754000 -7200 1 WGST} + {2297898000 -10800 0 WGT} + {2311203600 -7200 1 WGST} + {2329347600 -10800 0 WGT} + {2342653200 -7200 1 WGST} + {2361402000 -10800 0 WGT} + {2374102800 -7200 1 WGST} + {2392851600 -10800 0 WGT} + {2405552400 -7200 1 WGST} + {2424301200 -10800 0 WGT} + {2437606800 -7200 1 WGST} + {2455750800 -10800 0 WGT} + {2469056400 -7200 1 WGST} + {2487200400 -10800 0 WGT} + {2500506000 -7200 1 WGST} + {2519254800 -10800 0 WGT} + {2531955600 -7200 1 WGST} + {2550704400 -10800 0 WGT} + {2563405200 -7200 1 WGST} + {2582154000 -10800 0 WGT} + {2595459600 -7200 1 WGST} + {2613603600 -10800 0 WGT} + {2626909200 -7200 1 WGST} + {2645053200 -10800 0 WGT} + {2658358800 -7200 1 WGST} + {2676502800 -10800 0 WGT} + {2689808400 -7200 1 WGST} + {2708557200 -10800 0 WGT} + {2721258000 -7200 1 WGST} + {2740006800 -10800 0 WGT} + {2752707600 -7200 1 WGST} + {2771456400 -10800 0 WGT} + {2784762000 -7200 1 WGST} + {2802906000 -10800 0 WGT} + {2816211600 -7200 1 WGST} + {2834355600 -10800 0 WGT} + {2847661200 -7200 1 WGST} + {2866410000 -10800 0 WGT} + {2879110800 -7200 1 WGST} + {2897859600 -10800 0 WGT} + {2910560400 -7200 1 WGST} + {2929309200 -10800 0 WGT} + {2942010000 -7200 1 WGST} + {2960758800 -10800 0 WGT} + {2974064400 -7200 1 WGST} + {2992208400 -10800 0 WGT} + {3005514000 -7200 1 WGST} + {3023658000 -10800 0 WGT} + {3036963600 -7200 1 WGST} + {3055712400 -10800 0 WGT} + {3068413200 -7200 1 WGST} + {3087162000 -10800 0 WGT} + {3099862800 -7200 1 WGST} + {3118611600 -10800 0 WGT} + {3131917200 -7200 1 WGST} + {3150061200 -10800 0 WGT} + {3163366800 -7200 1 WGST} + {3181510800 -10800 0 WGT} + {3194816400 -7200 1 WGST} + {3212960400 -10800 0 WGT} + {3226266000 -7200 1 WGST} + {3245014800 -10800 0 WGT} + {3257715600 -7200 1 WGST} + {3276464400 -10800 0 WGT} + {3289165200 -7200 1 WGST} + {3307914000 -10800 0 WGT} + {3321219600 -7200 1 WGST} + {3339363600 -10800 0 WGT} + {3352669200 -7200 1 WGST} + {3370813200 -10800 0 WGT} + {3384118800 -7200 1 WGST} + {3402867600 -10800 0 WGT} + {3415568400 -7200 1 WGST} + {3434317200 -10800 0 WGT} + {3447018000 -7200 1 WGST} + {3465766800 -10800 0 WGT} + {3479072400 -7200 1 WGST} + {3497216400 -10800 0 WGT} + {3510522000 -7200 1 WGST} + {3528666000 -10800 0 WGT} + {3541971600 -7200 1 WGST} + {3560115600 -10800 0 WGT} + {3573421200 -7200 1 WGST} + {3592170000 -10800 0 WGT} + {3604870800 -7200 1 WGST} + {3623619600 -10800 0 WGT} + {3636320400 -7200 1 WGST} + {3655069200 -10800 0 WGT} + {3668374800 -7200 1 WGST} + {3686518800 -10800 0 WGT} + {3699824400 -7200 1 WGST} + {3717968400 -10800 0 WGT} + {3731274000 -7200 1 WGST} + {3750022800 -10800 0 WGT} + {3762723600 -7200 1 WGST} + {3781472400 -10800 0 WGT} + {3794173200 -7200 1 WGST} + {3812922000 -10800 0 WGT} + {3825622800 -7200 1 WGST} + {3844371600 -10800 0 WGT} + {3857677200 -7200 1 WGST} + {3875821200 -10800 0 WGT} + {3889126800 -7200 1 WGST} + {3907270800 -10800 0 WGT} + {3920576400 -7200 1 WGST} + {3939325200 -10800 0 WGT} + {3952026000 -7200 1 WGST} + {3970774800 -10800 0 WGT} + {3983475600 -7200 1 WGST} + {4002224400 -10800 0 WGT} + {4015530000 -7200 1 WGST} + {4033674000 -10800 0 WGT} + {4046979600 -7200 1 WGST} + {4065123600 -10800 0 WGT} + {4078429200 -7200 1 WGST} + {4096573200 -10800 0 WGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Goose_Bay b/mingw/lib/tcl8.5/tzdata/America/Goose_Bay new file mode 100644 index 00000000..f93b6123 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Goose_Bay @@ -0,0 +1,337 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Goose_Bay) { + {-9223372036854775808 -14500 0 LMT} + {-2713895900 -12652 0 NST} + {-1640982548 -12652 0 NST} + {-1632076148 -9052 1 NDT} + {-1614799748 -12652 0 NST} + {-1609446548 -12652 0 NST} + {-1096921748 -12600 0 NST} + {-1072989000 -12600 0 NST} + {-1061670600 -9000 1 NDT} + {-1048973400 -12600 0 NST} + {-1030221000 -9000 1 NDT} + {-1017523800 -12600 0 NST} + {-998771400 -9000 1 NDT} + {-986074200 -12600 0 NST} + {-966717000 -9000 1 NDT} + {-954624600 -12600 0 NST} + {-935267400 -9000 1 NDT} + {-922570200 -12600 0 NST} + {-903817800 -9000 1 NDT} + {-891120600 -12600 0 NST} + {-872368200 -9000 0 NWT} + {-769395600 -9000 1 NPT} + {-765401400 -12600 0 NST} + {-757369800 -12600 0 NST} + {-746044200 -9000 1 NDT} + {-733347000 -12600 0 NST} + {-714594600 -9000 1 NDT} + {-701897400 -12600 0 NST} + {-683145000 -9000 1 NDT} + {-670447800 -12600 0 NST} + {-651695400 -9000 1 NDT} + {-638998200 -12600 0 NST} + {-619641000 -9000 1 NDT} + {-606943800 -12600 0 NST} + {-589401000 -9000 1 NDT} + {-576099000 -12600 0 NST} + {-557951400 -9000 1 NDT} + {-544649400 -12600 0 NST} + {-526501800 -9000 1 NDT} + {-513199800 -12600 0 NST} + {-495052200 -9000 1 NDT} + {-481750200 -12600 0 NST} + {-463602600 -9000 1 NDT} + {-450300600 -12600 0 NST} + {-431548200 -9000 1 NDT} + {-418246200 -12600 0 NST} + {-400098600 -9000 1 NDT} + {-386796600 -12600 0 NST} + {-368649000 -9000 1 NDT} + {-355347000 -12600 0 NST} + {-337199400 -9000 1 NDT} + {-323897400 -12600 0 NST} + {-305749800 -9000 1 NDT} + {-289423800 -12600 0 NST} + {-273695400 -9000 1 NDT} + {-257974200 -12600 0 NST} + {-242245800 -9000 1 NDT} + {-226524600 -12600 0 NST} + {-210796200 -9000 1 NDT} + {-195075000 -12600 0 NST} + {-179346600 -9000 1 NDT} + {-163625400 -12600 0 NST} + {-147897000 -9000 1 NDT} + {-131571000 -12600 0 NST} + {-119903400 -14400 0 AST} + {-116445600 -10800 1 ADT} + {-100119600 -14400 0 AST} + {-84391200 -10800 1 ADT} + {-68670000 -14400 0 AST} + {-52941600 -10800 1 ADT} + {-37220400 -14400 0 AST} + {-21492000 -10800 1 ADT} + {-5770800 -14400 0 AST} + {9957600 -10800 1 ADT} + {25678800 -14400 0 AST} + {41407200 -10800 1 ADT} + {57733200 -14400 0 AST} + {73461600 -10800 1 ADT} + {89182800 -14400 0 AST} + {104911200 -10800 1 ADT} + {120632400 -14400 0 AST} + {136360800 -10800 1 ADT} + {152082000 -14400 0 AST} + {167810400 -10800 1 ADT} + {183531600 -14400 0 AST} + {199260000 -10800 1 ADT} + {215586000 -14400 0 AST} + {230709600 -10800 1 ADT} + {247035600 -14400 0 AST} + {262764000 -10800 1 ADT} + {278485200 -14400 0 AST} + {294213600 -10800 1 ADT} + {309934800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544593660 -10800 1 ADT} + {562129260 -14400 0 AST} + {576043260 -7200 1 ADDT} + {594180060 -14400 0 AST} + {607492860 -10800 1 ADT} + {625633260 -14400 0 AST} + {638942460 -10800 1 ADT} + {657082860 -14400 0 AST} + {670996860 -10800 1 ADT} + {688532460 -14400 0 AST} + {702446460 -10800 1 ADT} + {719982060 -14400 0 AST} + {733896060 -10800 1 ADT} + {752036460 -14400 0 AST} + {765345660 -10800 1 ADT} + {783486060 -14400 0 AST} + {796795260 -10800 1 ADT} + {814935660 -14400 0 AST} + {828849660 -10800 1 ADT} + {846385260 -14400 0 AST} + {860299260 -10800 1 ADT} + {877834860 -14400 0 AST} + {891748860 -10800 1 ADT} + {909284460 -14400 0 AST} + {923198460 -10800 1 ADT} + {941338860 -14400 0 AST} + {954648060 -10800 1 ADT} + {972788460 -14400 0 AST} + {986097660 -10800 1 ADT} + {1004238060 -14400 0 AST} + {1018152060 -10800 1 ADT} + {1035687660 -14400 0 AST} + {1049601660 -10800 1 ADT} + {1067137260 -14400 0 AST} + {1081051260 -10800 1 ADT} + {1099191660 -14400 0 AST} + {1112500860 -10800 1 ADT} + {1130641260 -14400 0 AST} + {1143950460 -10800 1 ADT} + {1162090860 -14400 0 AST} + {1173585660 -10800 1 ADT} + {1194145260 -14400 0 AST} + {1205035260 -10800 1 ADT} + {1225594860 -14400 0 AST} + {1236484860 -10800 1 ADT} + {1257044460 -14400 0 AST} + {1268539260 -10800 1 ADT} + {1289098860 -14400 0 AST} + {1299988860 -10800 1 ADT} + {1320548460 -14400 0 AST} + {1331438460 -10800 1 ADT} + {1351998060 -14400 0 AST} + {1362888060 -10800 1 ADT} + {1383447660 -14400 0 AST} + {1394337660 -10800 1 ADT} + {1414897260 -14400 0 AST} + {1425787260 -10800 1 ADT} + {1446346860 -14400 0 AST} + {1457841660 -10800 1 ADT} + {1478401260 -14400 0 AST} + {1489291260 -10800 1 ADT} + {1509850860 -14400 0 AST} + {1520740860 -10800 1 ADT} + {1541300460 -14400 0 AST} + {1552190460 -10800 1 ADT} + {1572750060 -14400 0 AST} + {1583640060 -10800 1 ADT} + {1604199660 -14400 0 AST} + {1615694460 -10800 1 ADT} + {1636254060 -14400 0 AST} + {1647144060 -10800 1 ADT} + {1667703660 -14400 0 AST} + {1678593660 -10800 1 ADT} + {1699153260 -14400 0 AST} + {1710043260 -10800 1 ADT} + {1730602860 -14400 0 AST} + {1741492860 -10800 1 ADT} + {1762052460 -14400 0 AST} + {1772942460 -10800 1 ADT} + {1793502060 -14400 0 AST} + {1804996860 -10800 1 ADT} + {1825556460 -14400 0 AST} + {1836446460 -10800 1 ADT} + {1857006060 -14400 0 AST} + {1867896060 -10800 1 ADT} + {1888455660 -14400 0 AST} + {1899345660 -10800 1 ADT} + {1919905260 -14400 0 AST} + {1930795260 -10800 1 ADT} + {1951354860 -14400 0 AST} + {1962849660 -10800 1 ADT} + {1983409260 -14400 0 AST} + {1994299260 -10800 1 ADT} + {2014858860 -14400 0 AST} + {2025748860 -10800 1 ADT} + {2046308460 -14400 0 AST} + {2057198460 -10800 1 ADT} + {2077758060 -14400 0 AST} + {2088648060 -10800 1 ADT} + {2109207660 -14400 0 AST} + {2120097660 -10800 1 ADT} + {2140657260 -14400 0 AST} + {2152152060 -10800 1 ADT} + {2172711660 -14400 0 AST} + {2183601660 -10800 1 ADT} + {2204161260 -14400 0 AST} + {2215051260 -10800 1 ADT} + {2235610860 -14400 0 AST} + {2246500860 -10800 1 ADT} + {2267060460 -14400 0 AST} + {2277950460 -10800 1 ADT} + {2298510060 -14400 0 AST} + {2309400060 -10800 1 ADT} + {2329959660 -14400 0 AST} + {2341454460 -10800 1 ADT} + {2362014060 -14400 0 AST} + {2372904060 -10800 1 ADT} + {2393463660 -14400 0 AST} + {2404353660 -10800 1 ADT} + {2424913260 -14400 0 AST} + {2435803260 -10800 1 ADT} + {2456362860 -14400 0 AST} + {2467252860 -10800 1 ADT} + {2487812460 -14400 0 AST} + {2499307260 -10800 1 ADT} + {2519866860 -14400 0 AST} + {2530756860 -10800 1 ADT} + {2551316460 -14400 0 AST} + {2562206460 -10800 1 ADT} + {2582766060 -14400 0 AST} + {2593656060 -10800 1 ADT} + {2614215660 -14400 0 AST} + {2625105660 -10800 1 ADT} + {2645665260 -14400 0 AST} + {2656555260 -10800 1 ADT} + {2677114860 -14400 0 AST} + {2688609660 -10800 1 ADT} + {2709169260 -14400 0 AST} + {2720059260 -10800 1 ADT} + {2740618860 -14400 0 AST} + {2751508860 -10800 1 ADT} + {2772068460 -14400 0 AST} + {2782958460 -10800 1 ADT} + {2803518060 -14400 0 AST} + {2814408060 -10800 1 ADT} + {2834967660 -14400 0 AST} + {2846462460 -10800 1 ADT} + {2867022060 -14400 0 AST} + {2877912060 -10800 1 ADT} + {2898471660 -14400 0 AST} + {2909361660 -10800 1 ADT} + {2929921260 -14400 0 AST} + {2940811260 -10800 1 ADT} + {2961370860 -14400 0 AST} + {2972260860 -10800 1 ADT} + {2992820460 -14400 0 AST} + {3003710460 -10800 1 ADT} + {3024270060 -14400 0 AST} + {3035764860 -10800 1 ADT} + {3056324460 -14400 0 AST} + {3067214460 -10800 1 ADT} + {3087774060 -14400 0 AST} + {3098664060 -10800 1 ADT} + {3119223660 -14400 0 AST} + {3130113660 -10800 1 ADT} + {3150673260 -14400 0 AST} + {3161563260 -10800 1 ADT} + {3182122860 -14400 0 AST} + {3193012860 -10800 1 ADT} + {3213572460 -14400 0 AST} + {3225067260 -10800 1 ADT} + {3245626860 -14400 0 AST} + {3256516860 -10800 1 ADT} + {3277076460 -14400 0 AST} + {3287966460 -10800 1 ADT} + {3308526060 -14400 0 AST} + {3319416060 -10800 1 ADT} + {3339975660 -14400 0 AST} + {3350865660 -10800 1 ADT} + {3371425260 -14400 0 AST} + {3382920060 -10800 1 ADT} + {3403479660 -14400 0 AST} + {3414369660 -10800 1 ADT} + {3434929260 -14400 0 AST} + {3445819260 -10800 1 ADT} + {3466378860 -14400 0 AST} + {3477268860 -10800 1 ADT} + {3497828460 -14400 0 AST} + {3508718460 -10800 1 ADT} + {3529278060 -14400 0 AST} + {3540168060 -10800 1 ADT} + {3560727660 -14400 0 AST} + {3572222460 -10800 1 ADT} + {3592782060 -14400 0 AST} + {3603672060 -10800 1 ADT} + {3624231660 -14400 0 AST} + {3635121660 -10800 1 ADT} + {3655681260 -14400 0 AST} + {3666571260 -10800 1 ADT} + {3687130860 -14400 0 AST} + {3698020860 -10800 1 ADT} + {3718580460 -14400 0 AST} + {3730075260 -10800 1 ADT} + {3750634860 -14400 0 AST} + {3761524860 -10800 1 ADT} + {3782084460 -14400 0 AST} + {3792974460 -10800 1 ADT} + {3813534060 -14400 0 AST} + {3824424060 -10800 1 ADT} + {3844983660 -14400 0 AST} + {3855873660 -10800 1 ADT} + {3876433260 -14400 0 AST} + {3887323260 -10800 1 ADT} + {3907882860 -14400 0 AST} + {3919377660 -10800 1 ADT} + {3939937260 -14400 0 AST} + {3950827260 -10800 1 ADT} + {3971386860 -14400 0 AST} + {3982276860 -10800 1 ADT} + {4002836460 -14400 0 AST} + {4013726460 -10800 1 ADT} + {4034286060 -14400 0 AST} + {4045176060 -10800 1 ADT} + {4065735660 -14400 0 AST} + {4076625660 -10800 1 ADT} + {4097185260 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Grand_Turk b/mingw/lib/tcl8.5/tzdata/America/Grand_Turk new file mode 100644 index 00000000..a455dd5d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Grand_Turk @@ -0,0 +1,249 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Grand_Turk) { + {-9223372036854775808 -17072 0 LMT} + {-2524504528 -18432 0 KMT} + {-1827687168 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Grenada b/mingw/lib/tcl8.5/tzdata/America/Grenada new file mode 100644 index 00000000..3c2919b2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Grenada @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Grenada) { + {-9223372036854775808 -14820 0 LMT} + {-1846266780 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Guadeloupe b/mingw/lib/tcl8.5/tzdata/America/Guadeloupe new file mode 100644 index 00000000..b1987cef --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Guadeloupe @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Guadeloupe) { + {-9223372036854775808 -14768 0 LMT} + {-1848254032 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Guatemala b/mingw/lib/tcl8.5/tzdata/America/Guatemala new file mode 100644 index 00000000..e4db5ac3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Guatemala @@ -0,0 +1,14 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Guatemala) { + {-9223372036854775808 -21724 0 LMT} + {-1617040676 -21600 0 CST} + {123055200 -18000 1 CDT} + {130914000 -21600 0 CST} + {422344800 -18000 1 CDT} + {433054800 -21600 0 CST} + {669708000 -18000 1 CDT} + {684219600 -21600 0 CST} + {1146376800 -18000 1 CDT} + {1159678800 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Guayaquil b/mingw/lib/tcl8.5/tzdata/America/Guayaquil new file mode 100644 index 00000000..e940a5bf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Guayaquil @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Guayaquil) { + {-9223372036854775808 -19160 0 LMT} + {-2524502440 -18840 0 QMT} + {-1230749160 -18000 0 ECT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Guyana b/mingw/lib/tcl8.5/tzdata/America/Guyana new file mode 100644 index 00000000..c58a9891 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Guyana @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Guyana) { + {-9223372036854775808 -13960 0 LMT} + {-1730578040 -13500 0 GBGT} + {-113688900 -13500 0 GYT} + {176010300 -10800 0 GYT} + {662698800 -14400 0 GYT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Halifax b/mingw/lib/tcl8.5/tzdata/America/Halifax new file mode 100644 index 00000000..76f016a2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Halifax @@ -0,0 +1,361 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Halifax) { + {-9223372036854775808 -15264 0 LMT} + {-2131645536 -14400 0 AST} + {-1696276800 -10800 1 ADT} + {-1680469200 -14400 0 AST} + {-1640980800 -14400 0 AST} + {-1632074400 -10800 1 ADT} + {-1614798000 -14400 0 AST} + {-1609444800 -14400 0 AST} + {-1566763200 -10800 1 ADT} + {-1557090000 -14400 0 AST} + {-1535486400 -10800 1 ADT} + {-1524949200 -14400 0 AST} + {-1504468800 -10800 1 ADT} + {-1493413200 -14400 0 AST} + {-1472414400 -10800 1 ADT} + {-1461963600 -14400 0 AST} + {-1440964800 -10800 1 ADT} + {-1429390800 -14400 0 AST} + {-1409515200 -10800 1 ADT} + {-1396731600 -14400 0 AST} + {-1376856000 -10800 1 ADT} + {-1366491600 -14400 0 AST} + {-1346616000 -10800 1 ADT} + {-1333832400 -14400 0 AST} + {-1313956800 -10800 1 ADT} + {-1303678800 -14400 0 AST} + {-1282507200 -10800 1 ADT} + {-1272661200 -14400 0 AST} + {-1251057600 -10800 1 ADT} + {-1240088400 -14400 0 AST} + {-1219608000 -10800 1 ADT} + {-1207429200 -14400 0 AST} + {-1188763200 -10800 1 ADT} + {-1175979600 -14400 0 AST} + {-1157313600 -10800 1 ADT} + {-1143925200 -14400 0 AST} + {-1124049600 -10800 1 ADT} + {-1113771600 -14400 0 AST} + {-1091390400 -10800 1 ADT} + {-1081026000 -14400 0 AST} + {-1059854400 -10800 1 ADT} + {-1050786000 -14400 0 AST} + {-1030910400 -10800 1 ADT} + {-1018126800 -14400 0 AST} + {-999460800 -10800 1 ADT} + {-986677200 -14400 0 AST} + {-965592000 -10800 1 ADT} + {-955227600 -14400 0 AST} + {-935956800 -10800 1 ADT} + {-923173200 -14400 0 AST} + {-904507200 -10800 1 ADT} + {-891723600 -14400 0 AST} + {-880221600 -10800 0 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {-757368000 -14400 0 AST} + {-747252000 -10800 1 ADT} + {-733950000 -14400 0 AST} + {-715802400 -10800 1 ADT} + {-702500400 -14400 0 AST} + {-684352800 -10800 1 ADT} + {-671050800 -14400 0 AST} + {-652903200 -10800 1 ADT} + {-639601200 -14400 0 AST} + {-589399200 -10800 1 ADT} + {-576097200 -14400 0 AST} + {-557949600 -10800 1 ADT} + {-544647600 -14400 0 AST} + {-526500000 -10800 1 ADT} + {-513198000 -14400 0 AST} + {-495050400 -10800 1 ADT} + {-481748400 -14400 0 AST} + {-431546400 -10800 1 ADT} + {-418244400 -14400 0 AST} + {-400096800 -10800 1 ADT} + {-386794800 -14400 0 AST} + {-368647200 -10800 1 ADT} + {-355345200 -14400 0 AST} + {-337197600 -10800 1 ADT} + {-323895600 -14400 0 AST} + {-242244000 -10800 1 ADT} + {-226522800 -14400 0 AST} + {-210794400 -10800 1 ADT} + {-195073200 -14400 0 AST} + {-179344800 -10800 1 ADT} + {-163623600 -14400 0 AST} + {-147895200 -10800 1 ADT} + {-131569200 -14400 0 AST} + {-116445600 -10800 1 ADT} + {-100119600 -14400 0 AST} + {-84391200 -10800 1 ADT} + {-68670000 -14400 0 AST} + {-52941600 -10800 1 ADT} + {-37220400 -14400 0 AST} + {-21492000 -10800 1 ADT} + {-5770800 -14400 0 AST} + {9957600 -10800 1 ADT} + {25678800 -14400 0 AST} + {41407200 -10800 1 ADT} + {57733200 -14400 0 AST} + {73461600 -10800 1 ADT} + {89182800 -14400 0 AST} + {104911200 -10800 1 ADT} + {120632400 -14400 0 AST} + {126244800 -14400 0 AST} + {136360800 -10800 1 ADT} + {152082000 -14400 0 AST} + {167810400 -10800 1 ADT} + {183531600 -14400 0 AST} + {199260000 -10800 1 ADT} + {215586000 -14400 0 AST} + {230709600 -10800 1 ADT} + {247035600 -14400 0 AST} + {262764000 -10800 1 ADT} + {278485200 -14400 0 AST} + {294213600 -10800 1 ADT} + {309934800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544600800 -10800 1 ADT} + {562136400 -14400 0 AST} + {576050400 -10800 1 ADT} + {594190800 -14400 0 AST} + {607500000 -10800 1 ADT} + {625640400 -14400 0 AST} + {638949600 -10800 1 ADT} + {657090000 -14400 0 AST} + {671004000 -10800 1 ADT} + {688539600 -14400 0 AST} + {702453600 -10800 1 ADT} + {719989200 -14400 0 AST} + {733903200 -10800 1 ADT} + {752043600 -14400 0 AST} + {765352800 -10800 1 ADT} + {783493200 -14400 0 AST} + {796802400 -10800 1 ADT} + {814942800 -14400 0 AST} + {828856800 -10800 1 ADT} + {846392400 -14400 0 AST} + {860306400 -10800 1 ADT} + {877842000 -14400 0 AST} + {891756000 -10800 1 ADT} + {909291600 -14400 0 AST} + {923205600 -10800 1 ADT} + {941346000 -14400 0 AST} + {954655200 -10800 1 ADT} + {972795600 -14400 0 AST} + {986104800 -10800 1 ADT} + {1004245200 -14400 0 AST} + {1018159200 -10800 1 ADT} + {1035694800 -14400 0 AST} + {1049608800 -10800 1 ADT} + {1067144400 -14400 0 AST} + {1081058400 -10800 1 ADT} + {1099198800 -14400 0 AST} + {1112508000 -10800 1 ADT} + {1130648400 -14400 0 AST} + {1143957600 -10800 1 ADT} + {1162098000 -14400 0 AST} + {1173592800 -10800 1 ADT} + {1194152400 -14400 0 AST} + {1205042400 -10800 1 ADT} + {1225602000 -14400 0 AST} + {1236492000 -10800 1 ADT} + {1257051600 -14400 0 AST} + {1268546400 -10800 1 ADT} + {1289106000 -14400 0 AST} + {1299996000 -10800 1 ADT} + {1320555600 -14400 0 AST} + {1331445600 -10800 1 ADT} + {1352005200 -14400 0 AST} + {1362895200 -10800 1 ADT} + {1383454800 -14400 0 AST} + {1394344800 -10800 1 ADT} + {1414904400 -14400 0 AST} + {1425794400 -10800 1 ADT} + {1446354000 -14400 0 AST} + {1457848800 -10800 1 ADT} + {1478408400 -14400 0 AST} + {1489298400 -10800 1 ADT} + {1509858000 -14400 0 AST} + {1520748000 -10800 1 ADT} + {1541307600 -14400 0 AST} + {1552197600 -10800 1 ADT} + {1572757200 -14400 0 AST} + {1583647200 -10800 1 ADT} + {1604206800 -14400 0 AST} + {1615701600 -10800 1 ADT} + {1636261200 -14400 0 AST} + {1647151200 -10800 1 ADT} + {1667710800 -14400 0 AST} + {1678600800 -10800 1 ADT} + {1699160400 -14400 0 AST} + {1710050400 -10800 1 ADT} + {1730610000 -14400 0 AST} + {1741500000 -10800 1 ADT} + {1762059600 -14400 0 AST} + {1772949600 -10800 1 ADT} + {1793509200 -14400 0 AST} + {1805004000 -10800 1 ADT} + {1825563600 -14400 0 AST} + {1836453600 -10800 1 ADT} + {1857013200 -14400 0 AST} + {1867903200 -10800 1 ADT} + {1888462800 -14400 0 AST} + {1899352800 -10800 1 ADT} + {1919912400 -14400 0 AST} + {1930802400 -10800 1 ADT} + {1951362000 -14400 0 AST} + {1962856800 -10800 1 ADT} + {1983416400 -14400 0 AST} + {1994306400 -10800 1 ADT} + {2014866000 -14400 0 AST} + {2025756000 -10800 1 ADT} + {2046315600 -14400 0 AST} + {2057205600 -10800 1 ADT} + {2077765200 -14400 0 AST} + {2088655200 -10800 1 ADT} + {2109214800 -14400 0 AST} + {2120104800 -10800 1 ADT} + {2140664400 -14400 0 AST} + {2152159200 -10800 1 ADT} + {2172718800 -14400 0 AST} + {2183608800 -10800 1 ADT} + {2204168400 -14400 0 AST} + {2215058400 -10800 1 ADT} + {2235618000 -14400 0 AST} + {2246508000 -10800 1 ADT} + {2267067600 -14400 0 AST} + {2277957600 -10800 1 ADT} + {2298517200 -14400 0 AST} + {2309407200 -10800 1 ADT} + {2329966800 -14400 0 AST} + {2341461600 -10800 1 ADT} + {2362021200 -14400 0 AST} + {2372911200 -10800 1 ADT} + {2393470800 -14400 0 AST} + {2404360800 -10800 1 ADT} + {2424920400 -14400 0 AST} + {2435810400 -10800 1 ADT} + {2456370000 -14400 0 AST} + {2467260000 -10800 1 ADT} + {2487819600 -14400 0 AST} + {2499314400 -10800 1 ADT} + {2519874000 -14400 0 AST} + {2530764000 -10800 1 ADT} + {2551323600 -14400 0 AST} + {2562213600 -10800 1 ADT} + {2582773200 -14400 0 AST} + {2593663200 -10800 1 ADT} + {2614222800 -14400 0 AST} + {2625112800 -10800 1 ADT} + {2645672400 -14400 0 AST} + {2656562400 -10800 1 ADT} + {2677122000 -14400 0 AST} + {2688616800 -10800 1 ADT} + {2709176400 -14400 0 AST} + {2720066400 -10800 1 ADT} + {2740626000 -14400 0 AST} + {2751516000 -10800 1 ADT} + {2772075600 -14400 0 AST} + {2782965600 -10800 1 ADT} + {2803525200 -14400 0 AST} + {2814415200 -10800 1 ADT} + {2834974800 -14400 0 AST} + {2846469600 -10800 1 ADT} + {2867029200 -14400 0 AST} + {2877919200 -10800 1 ADT} + {2898478800 -14400 0 AST} + {2909368800 -10800 1 ADT} + {2929928400 -14400 0 AST} + {2940818400 -10800 1 ADT} + {2961378000 -14400 0 AST} + {2972268000 -10800 1 ADT} + {2992827600 -14400 0 AST} + {3003717600 -10800 1 ADT} + {3024277200 -14400 0 AST} + {3035772000 -10800 1 ADT} + {3056331600 -14400 0 AST} + {3067221600 -10800 1 ADT} + {3087781200 -14400 0 AST} + {3098671200 -10800 1 ADT} + {3119230800 -14400 0 AST} + {3130120800 -10800 1 ADT} + {3150680400 -14400 0 AST} + {3161570400 -10800 1 ADT} + {3182130000 -14400 0 AST} + {3193020000 -10800 1 ADT} + {3213579600 -14400 0 AST} + {3225074400 -10800 1 ADT} + {3245634000 -14400 0 AST} + {3256524000 -10800 1 ADT} + {3277083600 -14400 0 AST} + {3287973600 -10800 1 ADT} + {3308533200 -14400 0 AST} + {3319423200 -10800 1 ADT} + {3339982800 -14400 0 AST} + {3350872800 -10800 1 ADT} + {3371432400 -14400 0 AST} + {3382927200 -10800 1 ADT} + {3403486800 -14400 0 AST} + {3414376800 -10800 1 ADT} + {3434936400 -14400 0 AST} + {3445826400 -10800 1 ADT} + {3466386000 -14400 0 AST} + {3477276000 -10800 1 ADT} + {3497835600 -14400 0 AST} + {3508725600 -10800 1 ADT} + {3529285200 -14400 0 AST} + {3540175200 -10800 1 ADT} + {3560734800 -14400 0 AST} + {3572229600 -10800 1 ADT} + {3592789200 -14400 0 AST} + {3603679200 -10800 1 ADT} + {3624238800 -14400 0 AST} + {3635128800 -10800 1 ADT} + {3655688400 -14400 0 AST} + {3666578400 -10800 1 ADT} + {3687138000 -14400 0 AST} + {3698028000 -10800 1 ADT} + {3718587600 -14400 0 AST} + {3730082400 -10800 1 ADT} + {3750642000 -14400 0 AST} + {3761532000 -10800 1 ADT} + {3782091600 -14400 0 AST} + {3792981600 -10800 1 ADT} + {3813541200 -14400 0 AST} + {3824431200 -10800 1 ADT} + {3844990800 -14400 0 AST} + {3855880800 -10800 1 ADT} + {3876440400 -14400 0 AST} + {3887330400 -10800 1 ADT} + {3907890000 -14400 0 AST} + {3919384800 -10800 1 ADT} + {3939944400 -14400 0 AST} + {3950834400 -10800 1 ADT} + {3971394000 -14400 0 AST} + {3982284000 -10800 1 ADT} + {4002843600 -14400 0 AST} + {4013733600 -10800 1 ADT} + {4034293200 -14400 0 AST} + {4045183200 -10800 1 ADT} + {4065742800 -14400 0 AST} + {4076632800 -10800 1 ADT} + {4097192400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Havana b/mingw/lib/tcl8.5/tzdata/America/Havana new file mode 100644 index 00000000..43206dca --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Havana @@ -0,0 +1,287 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Havana) { + {-9223372036854775808 -19768 0 LMT} + {-2524501832 -19776 0 HMT} + {-1402813824 -18000 0 CST} + {-1311534000 -14400 1 CDT} + {-1300996800 -18000 0 CST} + {-933534000 -14400 1 CDT} + {-925675200 -18000 0 CST} + {-902084400 -14400 1 CDT} + {-893620800 -18000 0 CST} + {-870030000 -14400 1 CDT} + {-862171200 -18000 0 CST} + {-775681200 -14400 1 CDT} + {-767822400 -18000 0 CST} + {-744231600 -14400 1 CDT} + {-736372800 -18000 0 CST} + {-144702000 -14400 1 CDT} + {-134251200 -18000 0 CST} + {-113425200 -14400 1 CDT} + {-102542400 -18000 0 CST} + {-86295600 -14400 1 CDT} + {-72907200 -18000 0 CST} + {-54154800 -14400 1 CDT} + {-41457600 -18000 0 CST} + {-21495600 -14400 1 CDT} + {-5774400 -18000 0 CST} + {9954000 -14400 1 CDT} + {25675200 -18000 0 CST} + {41403600 -14400 1 CDT} + {57729600 -18000 0 CST} + {73458000 -14400 1 CDT} + {87364800 -18000 0 CST} + {104907600 -14400 1 CDT} + {118900800 -18000 0 CST} + {136357200 -14400 1 CDT} + {150436800 -18000 0 CST} + {167806800 -14400 1 CDT} + {183528000 -18000 0 CST} + {199256400 -14400 1 CDT} + {215582400 -18000 0 CST} + {230706000 -14400 1 CDT} + {247032000 -18000 0 CST} + {263365200 -14400 1 CDT} + {276667200 -18000 0 CST} + {290581200 -14400 1 CDT} + {308721600 -18000 0 CST} + {322030800 -14400 1 CDT} + {340171200 -18000 0 CST} + {358318800 -14400 1 CDT} + {371620800 -18000 0 CST} + {389768400 -14400 1 CDT} + {403070400 -18000 0 CST} + {421218000 -14400 1 CDT} + {434520000 -18000 0 CST} + {452667600 -14400 1 CDT} + {466574400 -18000 0 CST} + {484117200 -14400 1 CDT} + {498024000 -18000 0 CST} + {511333200 -14400 1 CDT} + {529473600 -18000 0 CST} + {542782800 -14400 1 CDT} + {560923200 -18000 0 CST} + {574837200 -14400 1 CDT} + {592372800 -18000 0 CST} + {606286800 -14400 1 CDT} + {623822400 -18000 0 CST} + {638946000 -14400 1 CDT} + {655876800 -18000 0 CST} + {671000400 -14400 1 CDT} + {687330000 -18000 0 CST} + {702450000 -14400 1 CDT} + {718779600 -18000 0 CST} + {733899600 -14400 1 CDT} + {750229200 -18000 0 CST} + {765349200 -14400 1 CDT} + {781678800 -18000 0 CST} + {796798800 -14400 1 CDT} + {813128400 -18000 0 CST} + {828853200 -14400 1 CDT} + {844578000 -18000 0 CST} + {860302800 -14400 1 CDT} + {876632400 -18000 0 CST} + {891147600 -14400 1 CDT} + {909291600 -18000 0 CST} + {922597200 -14400 1 CDT} + {941346000 -18000 0 CST} + {954651600 -14400 1 CDT} + {972795600 -18000 0 CST} + {986101200 -14400 1 CDT} + {1004245200 -18000 0 CST} + {1018155600 -14400 1 CDT} + {1035694800 -18000 0 CST} + {1049605200 -14400 1 CDT} + {1067144400 -18000 0 CST} + {1081054800 -14400 1 CDT} + {1112504400 -14400 1 CDT} + {1143954000 -14400 1 CDT} + {1162098000 -18000 0 CST} + {1173589200 -14400 1 CDT} + {1194152400 -18000 0 CST} + {1205038800 -14400 1 CDT} + {1225602000 -18000 0 CST} + {1236488400 -14400 1 CDT} + {1257051600 -18000 0 CST} + {1268542800 -14400 1 CDT} + {1289106000 -18000 0 CST} + {1299992400 -14400 1 CDT} + {1320555600 -18000 0 CST} + {1331442000 -14400 1 CDT} + {1352005200 -18000 0 CST} + {1362891600 -14400 1 CDT} + {1383454800 -18000 0 CST} + {1394341200 -14400 1 CDT} + {1414904400 -18000 0 CST} + {1425790800 -14400 1 CDT} + {1446354000 -18000 0 CST} + {1457845200 -14400 1 CDT} + {1478408400 -18000 0 CST} + {1489294800 -14400 1 CDT} + {1509858000 -18000 0 CST} + {1520744400 -14400 1 CDT} + {1541307600 -18000 0 CST} + {1552194000 -14400 1 CDT} + {1572757200 -18000 0 CST} + {1583643600 -14400 1 CDT} + {1604206800 -18000 0 CST} + {1615698000 -14400 1 CDT} + {1636261200 -18000 0 CST} + {1647147600 -14400 1 CDT} + {1667710800 -18000 0 CST} + {1678597200 -14400 1 CDT} + {1699160400 -18000 0 CST} + {1710046800 -14400 1 CDT} + {1730610000 -18000 0 CST} + {1741496400 -14400 1 CDT} + {1762059600 -18000 0 CST} + {1772946000 -14400 1 CDT} + {1793509200 -18000 0 CST} + {1805000400 -14400 1 CDT} + {1825563600 -18000 0 CST} + {1836450000 -14400 1 CDT} + {1857013200 -18000 0 CST} + {1867899600 -14400 1 CDT} + {1888462800 -18000 0 CST} + {1899349200 -14400 1 CDT} + {1919912400 -18000 0 CST} + {1930798800 -14400 1 CDT} + {1951362000 -18000 0 CST} + {1962853200 -14400 1 CDT} + {1983416400 -18000 0 CST} + {1994302800 -14400 1 CDT} + {2014866000 -18000 0 CST} + {2025752400 -14400 1 CDT} + {2046315600 -18000 0 CST} + {2057202000 -14400 1 CDT} + {2077765200 -18000 0 CST} + {2088651600 -14400 1 CDT} + {2109214800 -18000 0 CST} + {2120101200 -14400 1 CDT} + {2140664400 -18000 0 CST} + {2152155600 -14400 1 CDT} + {2172718800 -18000 0 CST} + {2183605200 -14400 1 CDT} + {2204168400 -18000 0 CST} + {2215054800 -14400 1 CDT} + {2235618000 -18000 0 CST} + {2246504400 -14400 1 CDT} + {2267067600 -18000 0 CST} + {2277954000 -14400 1 CDT} + {2298517200 -18000 0 CST} + {2309403600 -14400 1 CDT} + {2329966800 -18000 0 CST} + {2341458000 -14400 1 CDT} + {2362021200 -18000 0 CST} + {2372907600 -14400 1 CDT} + {2393470800 -18000 0 CST} + {2404357200 -14400 1 CDT} + {2424920400 -18000 0 CST} + {2435806800 -14400 1 CDT} + {2456370000 -18000 0 CST} + {2467256400 -14400 1 CDT} + {2487819600 -18000 0 CST} + {2499310800 -14400 1 CDT} + {2519874000 -18000 0 CST} + {2530760400 -14400 1 CDT} + {2551323600 -18000 0 CST} + {2562210000 -14400 1 CDT} + {2582773200 -18000 0 CST} + {2593659600 -14400 1 CDT} + {2614222800 -18000 0 CST} + {2625109200 -14400 1 CDT} + {2645672400 -18000 0 CST} + {2656558800 -14400 1 CDT} + {2677122000 -18000 0 CST} + {2688613200 -14400 1 CDT} + {2709176400 -18000 0 CST} + {2720062800 -14400 1 CDT} + {2740626000 -18000 0 CST} + {2751512400 -14400 1 CDT} + {2772075600 -18000 0 CST} + {2782962000 -14400 1 CDT} + {2803525200 -18000 0 CST} + {2814411600 -14400 1 CDT} + {2834974800 -18000 0 CST} + {2846466000 -14400 1 CDT} + {2867029200 -18000 0 CST} + {2877915600 -14400 1 CDT} + {2898478800 -18000 0 CST} + {2909365200 -14400 1 CDT} + {2929928400 -18000 0 CST} + {2940814800 -14400 1 CDT} + {2961378000 -18000 0 CST} + {2972264400 -14400 1 CDT} + {2992827600 -18000 0 CST} + {3003714000 -14400 1 CDT} + {3024277200 -18000 0 CST} + {3035768400 -14400 1 CDT} + {3056331600 -18000 0 CST} + {3067218000 -14400 1 CDT} + {3087781200 -18000 0 CST} + {3098667600 -14400 1 CDT} + {3119230800 -18000 0 CST} + {3130117200 -14400 1 CDT} + {3150680400 -18000 0 CST} + {3161566800 -14400 1 CDT} + {3182130000 -18000 0 CST} + {3193016400 -14400 1 CDT} + {3213579600 -18000 0 CST} + {3225070800 -14400 1 CDT} + {3245634000 -18000 0 CST} + {3256520400 -14400 1 CDT} + {3277083600 -18000 0 CST} + {3287970000 -14400 1 CDT} + {3308533200 -18000 0 CST} + {3319419600 -14400 1 CDT} + {3339982800 -18000 0 CST} + {3350869200 -14400 1 CDT} + {3371432400 -18000 0 CST} + {3382923600 -14400 1 CDT} + {3403486800 -18000 0 CST} + {3414373200 -14400 1 CDT} + {3434936400 -18000 0 CST} + {3445822800 -14400 1 CDT} + {3466386000 -18000 0 CST} + {3477272400 -14400 1 CDT} + {3497835600 -18000 0 CST} + {3508722000 -14400 1 CDT} + {3529285200 -18000 0 CST} + {3540171600 -14400 1 CDT} + {3560734800 -18000 0 CST} + {3572226000 -14400 1 CDT} + {3592789200 -18000 0 CST} + {3603675600 -14400 1 CDT} + {3624238800 -18000 0 CST} + {3635125200 -14400 1 CDT} + {3655688400 -18000 0 CST} + {3666574800 -14400 1 CDT} + {3687138000 -18000 0 CST} + {3698024400 -14400 1 CDT} + {3718587600 -18000 0 CST} + {3730078800 -14400 1 CDT} + {3750642000 -18000 0 CST} + {3761528400 -14400 1 CDT} + {3782091600 -18000 0 CST} + {3792978000 -14400 1 CDT} + {3813541200 -18000 0 CST} + {3824427600 -14400 1 CDT} + {3844990800 -18000 0 CST} + {3855877200 -14400 1 CDT} + {3876440400 -18000 0 CST} + {3887326800 -14400 1 CDT} + {3907890000 -18000 0 CST} + {3919381200 -14400 1 CDT} + {3939944400 -18000 0 CST} + {3950830800 -14400 1 CDT} + {3971394000 -18000 0 CST} + {3982280400 -14400 1 CDT} + {4002843600 -18000 0 CST} + {4013730000 -14400 1 CDT} + {4034293200 -18000 0 CST} + {4045179600 -14400 1 CDT} + {4065742800 -18000 0 CST} + {4076629200 -14400 1 CDT} + {4097192400 -18000 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Hermosillo b/mingw/lib/tcl8.5/tzdata/America/Hermosillo new file mode 100644 index 00000000..779020e6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Hermosillo @@ -0,0 +1,21 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Hermosillo) { + {-9223372036854775808 -26632 0 LMT} + {-1514739600 -25200 0 MST} + {-1343066400 -21600 0 CST} + {-1234807200 -25200 0 MST} + {-1220292000 -21600 0 CST} + {-1207159200 -25200 0 MST} + {-1191344400 -21600 0 CST} + {-873828000 -25200 0 MST} + {-661539600 -28800 0 PST} + {28800 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {915174000 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Indianapolis b/mingw/lib/tcl8.5/tzdata/America/Indiana/Indianapolis new file mode 100644 index 00000000..63c410ca --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Indianapolis @@ -0,0 +1,234 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Indianapolis) { + {-9223372036854775808 -20678 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-1577901600 -21600 0 CST} + {-900259200 -18000 1 CDT} + {-891795600 -21600 0 CST} + {-883591200 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-702493200 -21600 0 CST} + {-684345600 -18000 1 CDT} + {-671043600 -21600 0 CST} + {-652896000 -18000 1 CDT} + {-639594000 -21600 0 CST} + {-620841600 -18000 1 CDT} + {-608144400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 0 EST} + {-386787600 -21600 0 CST} + {-368640000 -18000 0 EST} + {-31518000 -18000 0 EST} + {-21488400 -14400 1 EDT} + {-5767200 -18000 0 EST} + {9961200 -14400 1 EDT} + {25682400 -18000 0 EST} + {31554000 -18000 0 EST} + {1136091600 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Knox b/mingw/lib/tcl8.5/tzdata/America/Indiana/Knox new file mode 100644 index 00000000..eee3ff4e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Knox @@ -0,0 +1,285 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Knox) { + {-9223372036854775808 -20790 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-725824800 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-702493200 -21600 0 CST} + {-684345600 -18000 1 CDT} + {-671043600 -21600 0 CST} + {-652896000 -18000 1 CDT} + {-639594000 -21600 0 CST} + {-620841600 -18000 1 CDT} + {-608144400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-447267600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-415818000 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-321469200 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-289414800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-257965200 -21600 0 CST} + {-242236800 -18000 0 EST} + {-195066000 -21600 0 CST} + {-84384000 -18000 1 CDT} + {-68662800 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37213200 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5763600 -21600 0 CST} + {9964800 -18000 1 CDT} + {25686000 -21600 0 CST} + {41414400 -18000 1 CDT} + {57740400 -21600 0 CST} + {73468800 -18000 1 CDT} + {89190000 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688550400 -18000 0 EST} + {1143961200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo b/mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo new file mode 100644 index 00000000..3f1d578b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo @@ -0,0 +1,236 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Marengo) { + {-9223372036854775808 -20723 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-599594400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-418237200 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-323888400 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-292438800 -21600 0 CST} + {-273686400 -18000 0 EST} + {-31518000 -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} + {126687600 -18000 1 CDT} + {152089200 -18000 0 EST} + {162370800 -14400 1 EDT} + {183535200 -18000 0 EST} + {189320400 -18000 0 EST} + {1136091600 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg b/mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg new file mode 100644 index 00000000..6992bfc4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Petersburg) { + {-9223372036854775808 -20947 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-473364000 -21600 0 CST} + {-462996000 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-418237200 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-323888400 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-292438800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-257965200 -21600 0 CST} + {-242236800 -18000 1 CDT} + {-226515600 -21600 0 CST} + {-210787200 -18000 1 CDT} + {-195066000 -21600 0 CST} + {-179337600 -18000 1 CDT} + {-163616400 -21600 0 CST} + {-147888000 -18000 0 EST} + {-100112400 -21600 0 CST} + {-84384000 -18000 1 CDT} + {-68662800 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37213200 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5763600 -21600 0 CST} + {9964800 -18000 1 CDT} + {25686000 -21600 0 CST} + {41414400 -18000 1 CDT} + {57740400 -21600 0 CST} + {73468800 -18000 1 CDT} + {89190000 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247046400 -18000 0 EST} + {1143961200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194163200 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City b/mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City new file mode 100644 index 00000000..9eebcf76 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City @@ -0,0 +1,234 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Tell_City) { + {-9223372036854775808 -20823 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-462996000 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-418237200 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-323888400 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-289414800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-260989200 -21600 0 CST} + {-242236800 -18000 1 CDT} + {-226515600 -21600 0 CST} + {-210787200 -18000 1 CDT} + {-195066000 -21600 0 CST} + {-179337600 -18000 0 EST} + {-31518000 -18000 0 EST} + {-21488400 -14400 1 EDT} + {-5767200 -18000 0 EST} + {9961200 -14400 1 EDT} + {25682400 -18000 0 EST} + {31554000 -18000 0 EST} + {1143961200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay b/mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay new file mode 100644 index 00000000..8d4157fb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay @@ -0,0 +1,213 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Vevay) { + {-9223372036854775808 -20416 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-495043200 -18000 0 EST} + {-31518000 -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} + {94712400 -18000 0 EST} + {1136091600 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes b/mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes new file mode 100644 index 00000000..1af7fc92 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes @@ -0,0 +1,234 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Vincennes) { + {-9223372036854775808 -21007 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-462996000 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-418237200 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-323888400 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-289414800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-260989200 -21600 0 CST} + {-242236800 -18000 1 CDT} + {-226515600 -21600 0 CST} + {-210787200 -18000 1 CDT} + {-195066000 -21600 0 CST} + {-179337600 -18000 0 EST} + {-31518000 -18000 0 EST} + {-21488400 -14400 1 EDT} + {-5767200 -18000 0 EST} + {9961200 -14400 1 EDT} + {25682400 -18000 0 EST} + {31554000 -18000 0 EST} + {1143961200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194163200 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac b/mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac new file mode 100644 index 00000000..fb6cd37a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac @@ -0,0 +1,240 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Indiana/Winamac) { + {-9223372036854775808 -20785 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-702493200 -21600 0 CST} + {-684345600 -18000 1 CDT} + {-671043600 -21600 0 CST} + {-652896000 -18000 1 CDT} + {-639594000 -21600 0 CST} + {-620841600 -18000 1 CDT} + {-608144400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-447267600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-415818000 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-323888400 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-292438800 -21600 0 CST} + {-273686400 -18000 0 EST} + {-31518000 -18000 0 EST} + {-21488400 -14400 1 EDT} + {-5767200 -18000 0 EST} + {9961200 -14400 1 EDT} + {25682400 -18000 0 EST} + {31554000 -18000 0 EST} + {1143961200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -14400 0 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Indianapolis b/mingw/lib/tcl8.5/tzdata/America/Indianapolis new file mode 100644 index 00000000..73985454 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Indianapolis @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indiana/Indianapolis)]} { + LoadTimeZoneFile America/Indiana/Indianapolis +} +set TZData(:America/Indianapolis) $TZData(:America/Indiana/Indianapolis) diff --git a/mingw/lib/tcl8.5/tzdata/America/Inuvik b/mingw/lib/tcl8.5/tzdata/America/Inuvik new file mode 100644 index 00000000..dd0d151b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Inuvik @@ -0,0 +1,249 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Inuvik) { + {-9223372036854775808 0 0 zzz} + {-536457600 -28800 0 PST} + {-147888000 -21600 1 PDDT} + {-131558400 -28800 0 PST} + {315558000 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Iqaluit b/mingw/lib/tcl8.5/tzdata/America/Iqaluit new file mode 100644 index 00000000..2a2e9fee --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Iqaluit @@ -0,0 +1,250 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Iqaluit) { + {-9223372036854775808 0 0 zzz} + {-865296000 -14400 0 EWT} + {-769395600 -14400 1 EPT} + {-765396000 -18000 0 EST} + {-147898800 -10800 1 EDDT} + {-131569200 -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} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Jamaica b/mingw/lib/tcl8.5/tzdata/America/Jamaica new file mode 100644 index 00000000..393d90a8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Jamaica @@ -0,0 +1,28 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Jamaica) { + {-9223372036854775808 -18432 0 LMT} + {-2524503168 -18432 0 KMT} + {-1827687168 -18000 0 EST} + {136364400 -14400 0 EDT} + {152085600 -18000 0 EST} + {162370800 -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} + {441781200 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Jujuy b/mingw/lib/tcl8.5/tzdata/America/Jujuy new file mode 100644 index 00000000..b4c5da3d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Jujuy @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Jujuy)]} { + LoadTimeZoneFile America/Argentina/Jujuy +} +set TZData(:America/Jujuy) $TZData(:America/Argentina/Jujuy) diff --git a/mingw/lib/tcl8.5/tzdata/America/Juneau b/mingw/lib/tcl8.5/tzdata/America/Juneau new file mode 100644 index 00000000..88fe0ce6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Juneau @@ -0,0 +1,275 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Juneau) { + {-9223372036854775808 54139 0 LMT} + {-3225366139 -32261 0 LMT} + {-2188954939 -28800 0 PST} + {-883584000 -28800 0 PST} + {-880207200 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-765385200 -28800 0 PST} + {-757353600 -28800 0 PST} + {-31507200 -28800 0 PST} + {-21477600 -25200 1 PDT} + {-5756400 -28800 0 PST} + {9972000 -25200 1 PDT} + {25693200 -28800 0 PST} + {41421600 -25200 1 PDT} + {57747600 -28800 0 PST} + {73476000 -25200 1 PDT} + {89197200 -28800 0 PST} + {104925600 -25200 1 PDT} + {120646800 -28800 0 PST} + {126698400 -25200 1 PDT} + {152096400 -28800 0 PST} + {162381600 -25200 1 PDT} + {183546000 -28800 0 PST} + {199274400 -25200 1 PDT} + {215600400 -28800 0 PST} + {230724000 -25200 1 PDT} + {247050000 -28800 0 PST} + {262778400 -25200 1 PDT} + {278499600 -28800 0 PST} + {294228000 -25200 1 PDT} + {309949200 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {439030800 -32400 0 AKST} + {452084400 -28800 1 AKDT} + {467805600 -32400 0 AKST} + {483534000 -28800 1 AKDT} + {499255200 -32400 0 AKST} + {514983600 -28800 1 AKDT} + {530704800 -32400 0 AKST} + {544618800 -28800 1 AKDT} + {562154400 -32400 0 AKST} + {576068400 -28800 1 AKDT} + {594208800 -32400 0 AKST} + {607518000 -28800 1 AKDT} + {625658400 -32400 0 AKST} + {638967600 -28800 1 AKDT} + {657108000 -32400 0 AKST} + {671022000 -28800 1 AKDT} + {688557600 -32400 0 AKST} + {702471600 -28800 1 AKDT} + {720007200 -32400 0 AKST} + {733921200 -28800 1 AKDT} + {752061600 -32400 0 AKST} + {765370800 -28800 1 AKDT} + {783511200 -32400 0 AKST} + {796820400 -28800 1 AKDT} + {814960800 -32400 0 AKST} + {828874800 -28800 1 AKDT} + {846410400 -32400 0 AKST} + {860324400 -28800 1 AKDT} + {877860000 -32400 0 AKST} + {891774000 -28800 1 AKDT} + {909309600 -32400 0 AKST} + {923223600 -28800 1 AKDT} + {941364000 -32400 0 AKST} + {954673200 -28800 1 AKDT} + {972813600 -32400 0 AKST} + {986122800 -28800 1 AKDT} + {1004263200 -32400 0 AKST} + {1018177200 -28800 1 AKDT} + {1035712800 -32400 0 AKST} + {1049626800 -28800 1 AKDT} + {1067162400 -32400 0 AKST} + {1081076400 -28800 1 AKDT} + {1099216800 -32400 0 AKST} + {1112526000 -28800 1 AKDT} + {1130666400 -32400 0 AKST} + {1143975600 -28800 1 AKDT} + {1162116000 -32400 0 AKST} + {1173610800 -28800 1 AKDT} + {1194170400 -32400 0 AKST} + {1205060400 -28800 1 AKDT} + {1225620000 -32400 0 AKST} + {1236510000 -28800 1 AKDT} + {1257069600 -32400 0 AKST} + {1268564400 -28800 1 AKDT} + {1289124000 -32400 0 AKST} + {1300014000 -28800 1 AKDT} + {1320573600 -32400 0 AKST} + {1331463600 -28800 1 AKDT} + {1352023200 -32400 0 AKST} + {1362913200 -28800 1 AKDT} + {1383472800 -32400 0 AKST} + {1394362800 -28800 1 AKDT} + {1414922400 -32400 0 AKST} + {1425812400 -28800 1 AKDT} + {1446372000 -32400 0 AKST} + {1457866800 -28800 1 AKDT} + {1478426400 -32400 0 AKST} + {1489316400 -28800 1 AKDT} + {1509876000 -32400 0 AKST} + {1520766000 -28800 1 AKDT} + {1541325600 -32400 0 AKST} + {1552215600 -28800 1 AKDT} + {1572775200 -32400 0 AKST} + {1583665200 -28800 1 AKDT} + {1604224800 -32400 0 AKST} + {1615719600 -28800 1 AKDT} + {1636279200 -32400 0 AKST} + {1647169200 -28800 1 AKDT} + {1667728800 -32400 0 AKST} + {1678618800 -28800 1 AKDT} + {1699178400 -32400 0 AKST} + {1710068400 -28800 1 AKDT} + {1730628000 -32400 0 AKST} + {1741518000 -28800 1 AKDT} + {1762077600 -32400 0 AKST} + {1772967600 -28800 1 AKDT} + {1793527200 -32400 0 AKST} + {1805022000 -28800 1 AKDT} + {1825581600 -32400 0 AKST} + {1836471600 -28800 1 AKDT} + {1857031200 -32400 0 AKST} + {1867921200 -28800 1 AKDT} + {1888480800 -32400 0 AKST} + {1899370800 -28800 1 AKDT} + {1919930400 -32400 0 AKST} + {1930820400 -28800 1 AKDT} + {1951380000 -32400 0 AKST} + {1962874800 -28800 1 AKDT} + {1983434400 -32400 0 AKST} + {1994324400 -28800 1 AKDT} + {2014884000 -32400 0 AKST} + {2025774000 -28800 1 AKDT} + {2046333600 -32400 0 AKST} + {2057223600 -28800 1 AKDT} + {2077783200 -32400 0 AKST} + {2088673200 -28800 1 AKDT} + {2109232800 -32400 0 AKST} + {2120122800 -28800 1 AKDT} + {2140682400 -32400 0 AKST} + {2152177200 -28800 1 AKDT} + {2172736800 -32400 0 AKST} + {2183626800 -28800 1 AKDT} + {2204186400 -32400 0 AKST} + {2215076400 -28800 1 AKDT} + {2235636000 -32400 0 AKST} + {2246526000 -28800 1 AKDT} + {2267085600 -32400 0 AKST} + {2277975600 -28800 1 AKDT} + {2298535200 -32400 0 AKST} + {2309425200 -28800 1 AKDT} + {2329984800 -32400 0 AKST} + {2341479600 -28800 1 AKDT} + {2362039200 -32400 0 AKST} + {2372929200 -28800 1 AKDT} + {2393488800 -32400 0 AKST} + {2404378800 -28800 1 AKDT} + {2424938400 -32400 0 AKST} + {2435828400 -28800 1 AKDT} + {2456388000 -32400 0 AKST} + {2467278000 -28800 1 AKDT} + {2487837600 -32400 0 AKST} + {2499332400 -28800 1 AKDT} + {2519892000 -32400 0 AKST} + {2530782000 -28800 1 AKDT} + {2551341600 -32400 0 AKST} + {2562231600 -28800 1 AKDT} + {2582791200 -32400 0 AKST} + {2593681200 -28800 1 AKDT} + {2614240800 -32400 0 AKST} + {2625130800 -28800 1 AKDT} + {2645690400 -32400 0 AKST} + {2656580400 -28800 1 AKDT} + {2677140000 -32400 0 AKST} + {2688634800 -28800 1 AKDT} + {2709194400 -32400 0 AKST} + {2720084400 -28800 1 AKDT} + {2740644000 -32400 0 AKST} + {2751534000 -28800 1 AKDT} + {2772093600 -32400 0 AKST} + {2782983600 -28800 1 AKDT} + {2803543200 -32400 0 AKST} + {2814433200 -28800 1 AKDT} + {2834992800 -32400 0 AKST} + {2846487600 -28800 1 AKDT} + {2867047200 -32400 0 AKST} + {2877937200 -28800 1 AKDT} + {2898496800 -32400 0 AKST} + {2909386800 -28800 1 AKDT} + {2929946400 -32400 0 AKST} + {2940836400 -28800 1 AKDT} + {2961396000 -32400 0 AKST} + {2972286000 -28800 1 AKDT} + {2992845600 -32400 0 AKST} + {3003735600 -28800 1 AKDT} + {3024295200 -32400 0 AKST} + {3035790000 -28800 1 AKDT} + {3056349600 -32400 0 AKST} + {3067239600 -28800 1 AKDT} + {3087799200 -32400 0 AKST} + {3098689200 -28800 1 AKDT} + {3119248800 -32400 0 AKST} + {3130138800 -28800 1 AKDT} + {3150698400 -32400 0 AKST} + {3161588400 -28800 1 AKDT} + {3182148000 -32400 0 AKST} + {3193038000 -28800 1 AKDT} + {3213597600 -32400 0 AKST} + {3225092400 -28800 1 AKDT} + {3245652000 -32400 0 AKST} + {3256542000 -28800 1 AKDT} + {3277101600 -32400 0 AKST} + {3287991600 -28800 1 AKDT} + {3308551200 -32400 0 AKST} + {3319441200 -28800 1 AKDT} + {3340000800 -32400 0 AKST} + {3350890800 -28800 1 AKDT} + {3371450400 -32400 0 AKST} + {3382945200 -28800 1 AKDT} + {3403504800 -32400 0 AKST} + {3414394800 -28800 1 AKDT} + {3434954400 -32400 0 AKST} + {3445844400 -28800 1 AKDT} + {3466404000 -32400 0 AKST} + {3477294000 -28800 1 AKDT} + {3497853600 -32400 0 AKST} + {3508743600 -28800 1 AKDT} + {3529303200 -32400 0 AKST} + {3540193200 -28800 1 AKDT} + {3560752800 -32400 0 AKST} + {3572247600 -28800 1 AKDT} + {3592807200 -32400 0 AKST} + {3603697200 -28800 1 AKDT} + {3624256800 -32400 0 AKST} + {3635146800 -28800 1 AKDT} + {3655706400 -32400 0 AKST} + {3666596400 -28800 1 AKDT} + {3687156000 -32400 0 AKST} + {3698046000 -28800 1 AKDT} + {3718605600 -32400 0 AKST} + {3730100400 -28800 1 AKDT} + {3750660000 -32400 0 AKST} + {3761550000 -28800 1 AKDT} + {3782109600 -32400 0 AKST} + {3792999600 -28800 1 AKDT} + {3813559200 -32400 0 AKST} + {3824449200 -28800 1 AKDT} + {3845008800 -32400 0 AKST} + {3855898800 -28800 1 AKDT} + {3876458400 -32400 0 AKST} + {3887348400 -28800 1 AKDT} + {3907908000 -32400 0 AKST} + {3919402800 -28800 1 AKDT} + {3939962400 -32400 0 AKST} + {3950852400 -28800 1 AKDT} + {3971412000 -32400 0 AKST} + {3982302000 -28800 1 AKDT} + {4002861600 -32400 0 AKST} + {4013751600 -28800 1 AKDT} + {4034311200 -32400 0 AKST} + {4045201200 -28800 1 AKDT} + {4065760800 -32400 0 AKST} + {4076650800 -28800 1 AKDT} + {4097210400 -32400 0 AKST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Kentucky/Louisville b/mingw/lib/tcl8.5/tzdata/America/Kentucky/Louisville new file mode 100644 index 00000000..c2aa10c4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Kentucky/Louisville @@ -0,0 +1,314 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Kentucky/Louisville) { + {-9223372036854775808 -20582 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-1546279200 -21600 0 CST} + {-1535904000 -18000 1 CDT} + {-1525280400 -21600 0 CST} + {-905097600 -18000 1 CDT} + {-891795600 -21600 0 CST} + {-883591200 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-744224400 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-684349200 -18000 1 CDT} + {-652899600 -18000 1 CDT} + {-620845200 -18000 1 CDT} + {-608144400 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-415818000 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-384368400 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-352918800 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-321469200 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-289414800 -21600 0 CST} + {-273686400 -18000 1 CDT} + {-266432400 -18000 0 EST} + {-63140400 -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} + {126687600 -18000 1 CDT} + {152089200 -18000 0 EST} + {162370800 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Kentucky/Monticello b/mingw/lib/tcl8.5/tzdata/America/Kentucky/Monticello new file mode 100644 index 00000000..e523ecbb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Kentucky/Monticello @@ -0,0 +1,279 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Kentucky/Monticello) { + {-9223372036854775808 -20364 0 LMT} + {-2717647200 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-63136800 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37213200 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5763600 -21600 0 CST} + {9964800 -18000 1 CDT} + {25686000 -21600 0 CST} + {41414400 -18000 1 CDT} + {57740400 -21600 0 CST} + {73468800 -18000 1 CDT} + {89190000 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Knox_IN b/mingw/lib/tcl8.5/tzdata/America/Knox_IN new file mode 100644 index 00000000..00d21c08 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Knox_IN @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indiana/Knox)]} { + LoadTimeZoneFile America/Indiana/Knox +} +set TZData(:America/Knox_IN) $TZData(:America/Indiana/Knox) diff --git a/mingw/lib/tcl8.5/tzdata/America/La_Paz b/mingw/lib/tcl8.5/tzdata/America/La_Paz new file mode 100644 index 00000000..38ffbb0c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/La_Paz @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/La_Paz) { + {-9223372036854775808 -16356 0 LMT} + {-2524505244 -16356 0 CMT} + {-1205954844 -12756 1 BOST} + {-1192307244 -14400 0 BOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Lima b/mingw/lib/tcl8.5/tzdata/America/Lima new file mode 100644 index 00000000..c6e6ac15 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Lima @@ -0,0 +1,16 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Lima) { + {-9223372036854775808 -18492 0 LMT} + {-2524503108 -18516 0 LMT} + {-1938538284 -14400 0 PEST} + {-1002052800 -18000 0 PET} + {-986756400 -14400 1 PEST} + {-971035200 -18000 0 PET} + {-955306800 -14400 1 PEST} + {-939585600 -18000 0 PET} + {512712000 -18000 0 PET} + {544248000 -18000 0 PET} + {638942400 -18000 0 PET} + {765172800 -18000 0 PET} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Los_Angeles b/mingw/lib/tcl8.5/tzdata/America/Los_Angeles new file mode 100644 index 00000000..da6ca996 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Los_Angeles @@ -0,0 +1,317 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Los_Angeles) { + {-9223372036854775808 -28378 0 LMT} + {-2717640000 -28800 0 PST} + {-1633269600 -25200 1 PDT} + {-1615129200 -28800 0 PST} + {-1601820000 -25200 1 PDT} + {-1583679600 -28800 0 PST} + {-880207200 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-765385200 -28800 0 PST} + {-757353600 -28800 0 PST} + {-687967200 -25200 1 PDT} + {-662655600 -28800 0 PST} + {-620834400 -25200 1 PDT} + {-608137200 -28800 0 PST} + {-589384800 -25200 1 PDT} + {-576082800 -28800 0 PST} + {-557935200 -25200 1 PDT} + {-544633200 -28800 0 PST} + {-526485600 -25200 1 PDT} + {-513183600 -28800 0 PST} + {-495036000 -25200 1 PDT} + {-481734000 -28800 0 PST} + {-463586400 -25200 1 PDT} + {-450284400 -28800 0 PST} + {-431532000 -25200 1 PDT} + {-418230000 -28800 0 PST} + {-400082400 -25200 1 PDT} + {-386780400 -28800 0 PST} + {-368632800 -25200 1 PDT} + {-355330800 -28800 0 PST} + {-337183200 -25200 1 PDT} + {-323881200 -28800 0 PST} + {-305733600 -25200 1 PDT} + {-292431600 -28800 0 PST} + {-273679200 -25200 1 PDT} + {-260982000 -28800 0 PST} + {-242229600 -25200 1 PDT} + {-226508400 -28800 0 PST} + {-210780000 -25200 1 PDT} + {-195058800 -28800 0 PST} + {-179330400 -25200 1 PDT} + {-163609200 -28800 0 PST} + {-147880800 -25200 1 PDT} + {-131554800 -28800 0 PST} + {-116431200 -25200 1 PDT} + {-100105200 -28800 0 PST} + {-94665600 -28800 0 PST} + {-84376800 -25200 1 PDT} + {-68655600 -28800 0 PST} + {-52927200 -25200 1 PDT} + {-37206000 -28800 0 PST} + {-21477600 -25200 1 PDT} + {-5756400 -28800 0 PST} + {9972000 -25200 1 PDT} + {25693200 -28800 0 PST} + {41421600 -25200 1 PDT} + {57747600 -28800 0 PST} + {73476000 -25200 1 PDT} + {89197200 -28800 0 PST} + {104925600 -25200 1 PDT} + {120646800 -28800 0 PST} + {126698400 -25200 1 PDT} + {152096400 -28800 0 PST} + {162381600 -25200 1 PDT} + {183546000 -28800 0 PST} + {199274400 -25200 1 PDT} + {215600400 -28800 0 PST} + {230724000 -25200 1 PDT} + {247050000 -28800 0 PST} + {262778400 -25200 1 PDT} + {278499600 -28800 0 PST} + {294228000 -25200 1 PDT} + {309949200 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1173607200 -25200 1 PDT} + {1194166800 -28800 0 PST} + {1205056800 -25200 1 PDT} + {1225616400 -28800 0 PST} + {1236506400 -25200 1 PDT} + {1257066000 -28800 0 PST} + {1268560800 -25200 1 PDT} + {1289120400 -28800 0 PST} + {1300010400 -25200 1 PDT} + {1320570000 -28800 0 PST} + {1331460000 -25200 1 PDT} + {1352019600 -28800 0 PST} + {1362909600 -25200 1 PDT} + {1383469200 -28800 0 PST} + {1394359200 -25200 1 PDT} + {1414918800 -28800 0 PST} + {1425808800 -25200 1 PDT} + {1446368400 -28800 0 PST} + {1457863200 -25200 1 PDT} + {1478422800 -28800 0 PST} + {1489312800 -25200 1 PDT} + {1509872400 -28800 0 PST} + {1520762400 -25200 1 PDT} + {1541322000 -28800 0 PST} + {1552212000 -25200 1 PDT} + {1572771600 -28800 0 PST} + {1583661600 -25200 1 PDT} + {1604221200 -28800 0 PST} + {1615716000 -25200 1 PDT} + {1636275600 -28800 0 PST} + {1647165600 -25200 1 PDT} + {1667725200 -28800 0 PST} + {1678615200 -25200 1 PDT} + {1699174800 -28800 0 PST} + {1710064800 -25200 1 PDT} + {1730624400 -28800 0 PST} + {1741514400 -25200 1 PDT} + {1762074000 -28800 0 PST} + {1772964000 -25200 1 PDT} + {1793523600 -28800 0 PST} + {1805018400 -25200 1 PDT} + {1825578000 -28800 0 PST} + {1836468000 -25200 1 PDT} + {1857027600 -28800 0 PST} + {1867917600 -25200 1 PDT} + {1888477200 -28800 0 PST} + {1899367200 -25200 1 PDT} + {1919926800 -28800 0 PST} + {1930816800 -25200 1 PDT} + {1951376400 -28800 0 PST} + {1962871200 -25200 1 PDT} + {1983430800 -28800 0 PST} + {1994320800 -25200 1 PDT} + {2014880400 -28800 0 PST} + {2025770400 -25200 1 PDT} + {2046330000 -28800 0 PST} + {2057220000 -25200 1 PDT} + {2077779600 -28800 0 PST} + {2088669600 -25200 1 PDT} + {2109229200 -28800 0 PST} + {2120119200 -25200 1 PDT} + {2140678800 -28800 0 PST} + {2152173600 -25200 1 PDT} + {2172733200 -28800 0 PST} + {2183623200 -25200 1 PDT} + {2204182800 -28800 0 PST} + {2215072800 -25200 1 PDT} + {2235632400 -28800 0 PST} + {2246522400 -25200 1 PDT} + {2267082000 -28800 0 PST} + {2277972000 -25200 1 PDT} + {2298531600 -28800 0 PST} + {2309421600 -25200 1 PDT} + {2329981200 -28800 0 PST} + {2341476000 -25200 1 PDT} + {2362035600 -28800 0 PST} + {2372925600 -25200 1 PDT} + {2393485200 -28800 0 PST} + {2404375200 -25200 1 PDT} + {2424934800 -28800 0 PST} + {2435824800 -25200 1 PDT} + {2456384400 -28800 0 PST} + {2467274400 -25200 1 PDT} + {2487834000 -28800 0 PST} + {2499328800 -25200 1 PDT} + {2519888400 -28800 0 PST} + {2530778400 -25200 1 PDT} + {2551338000 -28800 0 PST} + {2562228000 -25200 1 PDT} + {2582787600 -28800 0 PST} + {2593677600 -25200 1 PDT} + {2614237200 -28800 0 PST} + {2625127200 -25200 1 PDT} + {2645686800 -28800 0 PST} + {2656576800 -25200 1 PDT} + {2677136400 -28800 0 PST} + {2688631200 -25200 1 PDT} + {2709190800 -28800 0 PST} + {2720080800 -25200 1 PDT} + {2740640400 -28800 0 PST} + {2751530400 -25200 1 PDT} + {2772090000 -28800 0 PST} + {2782980000 -25200 1 PDT} + {2803539600 -28800 0 PST} + {2814429600 -25200 1 PDT} + {2834989200 -28800 0 PST} + {2846484000 -25200 1 PDT} + {2867043600 -28800 0 PST} + {2877933600 -25200 1 PDT} + {2898493200 -28800 0 PST} + {2909383200 -25200 1 PDT} + {2929942800 -28800 0 PST} + {2940832800 -25200 1 PDT} + {2961392400 -28800 0 PST} + {2972282400 -25200 1 PDT} + {2992842000 -28800 0 PST} + {3003732000 -25200 1 PDT} + {3024291600 -28800 0 PST} + {3035786400 -25200 1 PDT} + {3056346000 -28800 0 PST} + {3067236000 -25200 1 PDT} + {3087795600 -28800 0 PST} + {3098685600 -25200 1 PDT} + {3119245200 -28800 0 PST} + {3130135200 -25200 1 PDT} + {3150694800 -28800 0 PST} + {3161584800 -25200 1 PDT} + {3182144400 -28800 0 PST} + {3193034400 -25200 1 PDT} + {3213594000 -28800 0 PST} + {3225088800 -25200 1 PDT} + {3245648400 -28800 0 PST} + {3256538400 -25200 1 PDT} + {3277098000 -28800 0 PST} + {3287988000 -25200 1 PDT} + {3308547600 -28800 0 PST} + {3319437600 -25200 1 PDT} + {3339997200 -28800 0 PST} + {3350887200 -25200 1 PDT} + {3371446800 -28800 0 PST} + {3382941600 -25200 1 PDT} + {3403501200 -28800 0 PST} + {3414391200 -25200 1 PDT} + {3434950800 -28800 0 PST} + {3445840800 -25200 1 PDT} + {3466400400 -28800 0 PST} + {3477290400 -25200 1 PDT} + {3497850000 -28800 0 PST} + {3508740000 -25200 1 PDT} + {3529299600 -28800 0 PST} + {3540189600 -25200 1 PDT} + {3560749200 -28800 0 PST} + {3572244000 -25200 1 PDT} + {3592803600 -28800 0 PST} + {3603693600 -25200 1 PDT} + {3624253200 -28800 0 PST} + {3635143200 -25200 1 PDT} + {3655702800 -28800 0 PST} + {3666592800 -25200 1 PDT} + {3687152400 -28800 0 PST} + {3698042400 -25200 1 PDT} + {3718602000 -28800 0 PST} + {3730096800 -25200 1 PDT} + {3750656400 -28800 0 PST} + {3761546400 -25200 1 PDT} + {3782106000 -28800 0 PST} + {3792996000 -25200 1 PDT} + {3813555600 -28800 0 PST} + {3824445600 -25200 1 PDT} + {3845005200 -28800 0 PST} + {3855895200 -25200 1 PDT} + {3876454800 -28800 0 PST} + {3887344800 -25200 1 PDT} + {3907904400 -28800 0 PST} + {3919399200 -25200 1 PDT} + {3939958800 -28800 0 PST} + {3950848800 -25200 1 PDT} + {3971408400 -28800 0 PST} + {3982298400 -25200 1 PDT} + {4002858000 -28800 0 PST} + {4013748000 -25200 1 PDT} + {4034307600 -28800 0 PST} + {4045197600 -25200 1 PDT} + {4065757200 -28800 0 PST} + {4076647200 -25200 1 PDT} + {4097206800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Louisville b/mingw/lib/tcl8.5/tzdata/America/Louisville new file mode 100644 index 00000000..c5a3e1c8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Louisville @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Kentucky/Louisville)]} { + LoadTimeZoneFile America/Kentucky/Louisville +} +set TZData(:America/Louisville) $TZData(:America/Kentucky/Louisville) diff --git a/mingw/lib/tcl8.5/tzdata/America/Maceio b/mingw/lib/tcl8.5/tzdata/America/Maceio new file mode 100644 index 00000000..333b878a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Maceio @@ -0,0 +1,52 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Maceio) { + {-9223372036854775808 -8572 0 LMT} + {-1767217028 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {653536800 -10800 0 BRT} + {813553200 -10800 0 BRT} + {813726000 -7200 1 BRST} + {824004000 -10800 0 BRT} + {841802400 -10800 0 BRT} + {938660400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {972180000 -10800 0 BRT} + {1000350000 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1033437600 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Managua b/mingw/lib/tcl8.5/tzdata/America/Managua new file mode 100644 index 00000000..f729b8ac --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Managua @@ -0,0 +1,21 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Managua) { + {-9223372036854775808 -20708 0 LMT} + {-2524500892 -20712 0 MMT} + {-1121105688 -21600 0 CST} + {105084000 -18000 0 EST} + {161758800 -21600 0 CST} + {290584800 -18000 1 CDT} + {299134800 -21600 0 CST} + {322034400 -18000 1 CDT} + {330584400 -21600 0 CST} + {694260000 -18000 0 EST} + {717310800 -21600 0 CST} + {725868000 -18000 0 EST} + {852094800 -21600 0 CST} + {1113112800 -18000 1 CDT} + {1128229200 -21600 0 CST} + {1146384000 -18000 1 CDT} + {1159682400 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Manaus b/mingw/lib/tcl8.5/tzdata/America/Manaus new file mode 100644 index 00000000..058e0f7f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Manaus @@ -0,0 +1,39 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Manaus) { + {-9223372036854775808 -14404 0 LMT} + {-1767211196 -14400 0 AMT} + {-1206954000 -10800 1 AMST} + {-1191358800 -14400 0 AMT} + {-1175371200 -10800 1 AMST} + {-1159822800 -14400 0 AMT} + {-633816000 -10800 1 AMST} + {-622065600 -14400 0 AMT} + {-602280000 -10800 1 AMST} + {-591829200 -14400 0 AMT} + {-570744000 -10800 1 AMST} + {-560206800 -14400 0 AMT} + {-539121600 -10800 1 AMST} + {-531349200 -14400 0 AMT} + {-191361600 -10800 1 AMST} + {-184194000 -14400 0 AMT} + {-155160000 -10800 1 AMST} + {-150066000 -14400 0 AMT} + {-128894400 -10800 1 AMST} + {-121122000 -14400 0 AMT} + {-99950400 -10800 1 AMST} + {-89586000 -14400 0 AMT} + {-68414400 -10800 1 AMST} + {-57963600 -14400 0 AMT} + {499752000 -10800 1 AMST} + {511239600 -14400 0 AMT} + {530596800 -10800 1 AMST} + {540270000 -14400 0 AMT} + {562132800 -10800 1 AMST} + {571201200 -14400 0 AMT} + {590036400 -14400 0 AMT} + {749188800 -14400 0 AMT} + {750830400 -10800 1 AMST} + {761713200 -14400 0 AMT} + {780202800 -14400 0 AMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Martinique b/mingw/lib/tcl8.5/tzdata/America/Martinique new file mode 100644 index 00000000..1f1b491b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Martinique @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Martinique) { + {-9223372036854775808 -14660 0 LMT} + {-2524506940 -14660 0 FFMT} + {-1851537340 -14400 0 AST} + {323841600 -10800 1 ADT} + {338958000 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Mazatlan b/mingw/lib/tcl8.5/tzdata/America/Mazatlan new file mode 100644 index 00000000..e56d7d0d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Mazatlan @@ -0,0 +1,222 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Mazatlan) { + {-9223372036854775808 -25540 0 LMT} + {-1514739600 -25200 0 MST} + {-1343066400 -21600 0 CST} + {-1234807200 -25200 0 MST} + {-1220292000 -21600 0 CST} + {-1207159200 -25200 0 MST} + {-1191344400 -21600 0 CST} + {-873828000 -25200 0 MST} + {-661539600 -28800 0 PST} + {28800 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {989139600 -21600 1 MDT} + {1001836800 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1175418000 -21600 1 MDT} + {1193558400 -25200 0 MST} + {1207472400 -21600 1 MDT} + {1225008000 -25200 0 MST} + {1238922000 -21600 1 MDT} + {1256457600 -25200 0 MST} + {1270371600 -21600 1 MDT} + {1288512000 -25200 0 MST} + {1301821200 -21600 1 MDT} + {1319961600 -25200 0 MST} + {1333270800 -21600 1 MDT} + {1351411200 -25200 0 MST} + {1365325200 -21600 1 MDT} + {1382860800 -25200 0 MST} + {1396774800 -21600 1 MDT} + {1414310400 -25200 0 MST} + {1428224400 -21600 1 MDT} + {1445760000 -25200 0 MST} + {1459674000 -21600 1 MDT} + {1477814400 -25200 0 MST} + {1491123600 -21600 1 MDT} + {1509264000 -25200 0 MST} + {1522573200 -21600 1 MDT} + {1540713600 -25200 0 MST} + {1554627600 -21600 1 MDT} + {1572163200 -25200 0 MST} + {1586077200 -21600 1 MDT} + {1603612800 -25200 0 MST} + {1617526800 -21600 1 MDT} + {1635667200 -25200 0 MST} + {1648976400 -21600 1 MDT} + {1667116800 -25200 0 MST} + {1680426000 -21600 1 MDT} + {1698566400 -25200 0 MST} + {1712480400 -21600 1 MDT} + {1730016000 -25200 0 MST} + {1743930000 -21600 1 MDT} + {1761465600 -25200 0 MST} + {1775379600 -21600 1 MDT} + {1792915200 -25200 0 MST} + {1806829200 -21600 1 MDT} + {1824969600 -25200 0 MST} + {1838278800 -21600 1 MDT} + {1856419200 -25200 0 MST} + {1869728400 -21600 1 MDT} + {1887868800 -25200 0 MST} + {1901782800 -21600 1 MDT} + {1919318400 -25200 0 MST} + {1933232400 -21600 1 MDT} + {1950768000 -25200 0 MST} + {1964682000 -21600 1 MDT} + {1982822400 -25200 0 MST} + {1996131600 -21600 1 MDT} + {2014272000 -25200 0 MST} + {2027581200 -21600 1 MDT} + {2045721600 -25200 0 MST} + {2059030800 -21600 1 MDT} + {2077171200 -25200 0 MST} + {2091085200 -21600 1 MDT} + {2108620800 -25200 0 MST} + {2122534800 -21600 1 MDT} + {2140070400 -25200 0 MST} + {2153984400 -21600 1 MDT} + {2172124800 -25200 0 MST} + {2185434000 -21600 1 MDT} + {2203574400 -25200 0 MST} + {2216883600 -21600 1 MDT} + {2235024000 -25200 0 MST} + {2248938000 -21600 1 MDT} + {2266473600 -25200 0 MST} + {2280387600 -21600 1 MDT} + {2297923200 -25200 0 MST} + {2311837200 -21600 1 MDT} + {2329372800 -25200 0 MST} + {2343286800 -21600 1 MDT} + {2361427200 -25200 0 MST} + {2374736400 -21600 1 MDT} + {2392876800 -25200 0 MST} + {2406186000 -21600 1 MDT} + {2424326400 -25200 0 MST} + {2438240400 -21600 1 MDT} + {2455776000 -25200 0 MST} + {2469690000 -21600 1 MDT} + {2487225600 -25200 0 MST} + {2501139600 -21600 1 MDT} + {2519280000 -25200 0 MST} + {2532589200 -21600 1 MDT} + {2550729600 -25200 0 MST} + {2564038800 -21600 1 MDT} + {2582179200 -25200 0 MST} + {2596093200 -21600 1 MDT} + {2613628800 -25200 0 MST} + {2627542800 -21600 1 MDT} + {2645078400 -25200 0 MST} + {2658992400 -21600 1 MDT} + {2676528000 -25200 0 MST} + {2690442000 -21600 1 MDT} + {2708582400 -25200 0 MST} + {2721891600 -21600 1 MDT} + {2740032000 -25200 0 MST} + {2753341200 -21600 1 MDT} + {2771481600 -25200 0 MST} + {2785395600 -21600 1 MDT} + {2802931200 -25200 0 MST} + {2816845200 -21600 1 MDT} + {2834380800 -25200 0 MST} + {2848294800 -21600 1 MDT} + {2866435200 -25200 0 MST} + {2879744400 -21600 1 MDT} + {2897884800 -25200 0 MST} + {2911194000 -21600 1 MDT} + {2929334400 -25200 0 MST} + {2942643600 -21600 1 MDT} + {2960784000 -25200 0 MST} + {2974698000 -21600 1 MDT} + {2992233600 -25200 0 MST} + {3006147600 -21600 1 MDT} + {3023683200 -25200 0 MST} + {3037597200 -21600 1 MDT} + {3055737600 -25200 0 MST} + {3069046800 -21600 1 MDT} + {3087187200 -25200 0 MST} + {3100496400 -21600 1 MDT} + {3118636800 -25200 0 MST} + {3132550800 -21600 1 MDT} + {3150086400 -25200 0 MST} + {3164000400 -21600 1 MDT} + {3181536000 -25200 0 MST} + {3195450000 -21600 1 MDT} + {3212985600 -25200 0 MST} + {3226899600 -21600 1 MDT} + {3245040000 -25200 0 MST} + {3258349200 -21600 1 MDT} + {3276489600 -25200 0 MST} + {3289798800 -21600 1 MDT} + {3307939200 -25200 0 MST} + {3321853200 -21600 1 MDT} + {3339388800 -25200 0 MST} + {3353302800 -21600 1 MDT} + {3370838400 -25200 0 MST} + {3384752400 -21600 1 MDT} + {3402892800 -25200 0 MST} + {3416202000 -21600 1 MDT} + {3434342400 -25200 0 MST} + {3447651600 -21600 1 MDT} + {3465792000 -25200 0 MST} + {3479706000 -21600 1 MDT} + {3497241600 -25200 0 MST} + {3511155600 -21600 1 MDT} + {3528691200 -25200 0 MST} + {3542605200 -21600 1 MDT} + {3560140800 -25200 0 MST} + {3574054800 -21600 1 MDT} + {3592195200 -25200 0 MST} + {3605504400 -21600 1 MDT} + {3623644800 -25200 0 MST} + {3636954000 -21600 1 MDT} + {3655094400 -25200 0 MST} + {3669008400 -21600 1 MDT} + {3686544000 -25200 0 MST} + {3700458000 -21600 1 MDT} + {3717993600 -25200 0 MST} + {3731907600 -21600 1 MDT} + {3750048000 -25200 0 MST} + {3763357200 -21600 1 MDT} + {3781497600 -25200 0 MST} + {3794806800 -21600 1 MDT} + {3812947200 -25200 0 MST} + {3826256400 -21600 1 MDT} + {3844396800 -25200 0 MST} + {3858310800 -21600 1 MDT} + {3875846400 -25200 0 MST} + {3889760400 -21600 1 MDT} + {3907296000 -25200 0 MST} + {3921210000 -21600 1 MDT} + {3939350400 -25200 0 MST} + {3952659600 -21600 1 MDT} + {3970800000 -25200 0 MST} + {3984109200 -21600 1 MDT} + {4002249600 -25200 0 MST} + {4016163600 -21600 1 MDT} + {4033699200 -25200 0 MST} + {4047613200 -21600 1 MDT} + {4065148800 -25200 0 MST} + {4079062800 -21600 1 MDT} + {4096598400 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Mendoza b/mingw/lib/tcl8.5/tzdata/America/Mendoza new file mode 100644 index 00000000..511d83ec --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Mendoza @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Mendoza)]} { + LoadTimeZoneFile America/Argentina/Mendoza +} +set TZData(:America/Mendoza) $TZData(:America/Argentina/Mendoza) diff --git a/mingw/lib/tcl8.5/tzdata/America/Menominee b/mingw/lib/tcl8.5/tzdata/America/Menominee new file mode 100644 index 00000000..382aeda2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Menominee @@ -0,0 +1,274 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Menominee) { + {-9223372036854775808 -21027 0 LMT} + {-2659759773 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-757360800 -21600 0 CST} + {-747244800 -18000 1 CDT} + {-733942800 -21600 0 CST} + {-116438400 -18000 1 CDT} + {-100112400 -21600 0 CST} + {-21484800 -18000 0 EST} + {104914800 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Merida b/mingw/lib/tcl8.5/tzdata/America/Merida new file mode 100644 index 00000000..ebf59277 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Merida @@ -0,0 +1,216 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Merida) { + {-9223372036854775808 -21508 0 LMT} + {-1514743200 -21600 0 CST} + {377935200 -18000 0 EST} + {407653200 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {989136000 -18000 1 CDT} + {1001833200 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1175414400 -18000 1 CDT} + {1193554800 -21600 0 CST} + {1207468800 -18000 1 CDT} + {1225004400 -21600 0 CST} + {1238918400 -18000 1 CDT} + {1256454000 -21600 0 CST} + {1270368000 -18000 1 CDT} + {1288508400 -21600 0 CST} + {1301817600 -18000 1 CDT} + {1319958000 -21600 0 CST} + {1333267200 -18000 1 CDT} + {1351407600 -21600 0 CST} + {1365321600 -18000 1 CDT} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Mexico_City b/mingw/lib/tcl8.5/tzdata/America/Mexico_City new file mode 100644 index 00000000..48462e49 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Mexico_City @@ -0,0 +1,228 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Mexico_City) { + {-9223372036854775808 -23796 0 LMT} + {-1514739600 -25200 0 MST} + {-1343066400 -21600 0 CST} + {-1234807200 -25200 0 MST} + {-1220292000 -21600 0 CST} + {-1207159200 -25200 0 MST} + {-1191344400 -21600 0 CST} + {-975261600 -18000 1 CDT} + {-963169200 -21600 0 CST} + {-917114400 -18000 1 CDT} + {-907354800 -21600 0 CST} + {-821901600 -18000 1 CWT} + {-810068400 -21600 0 CST} + {-627501600 -18000 1 CDT} + {-612990000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {989136000 -18000 1 CDT} + {1001836800 -21600 0 CST} + {1014184800 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1175414400 -18000 1 CDT} + {1193554800 -21600 0 CST} + {1207468800 -18000 1 CDT} + {1225004400 -21600 0 CST} + {1238918400 -18000 1 CDT} + {1256454000 -21600 0 CST} + {1270368000 -18000 1 CDT} + {1288508400 -21600 0 CST} + {1301817600 -18000 1 CDT} + {1319958000 -21600 0 CST} + {1333267200 -18000 1 CDT} + {1351407600 -21600 0 CST} + {1365321600 -18000 1 CDT} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Miquelon b/mingw/lib/tcl8.5/tzdata/America/Miquelon new file mode 100644 index 00000000..a7410f12 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Miquelon @@ -0,0 +1,234 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Miquelon) { + {-9223372036854775808 -13480 0 LMT} + {-1850328920 -14400 0 AST} + {326001600 -10800 0 PMST} + {536468400 -10800 0 PMST} + {544597200 -7200 1 PMDT} + {562132800 -10800 0 PMST} + {576046800 -7200 1 PMDT} + {594187200 -10800 0 PMST} + {607496400 -7200 1 PMDT} + {625636800 -10800 0 PMST} + {638946000 -7200 1 PMDT} + {657086400 -10800 0 PMST} + {671000400 -7200 1 PMDT} + {688536000 -10800 0 PMST} + {702450000 -7200 1 PMDT} + {719985600 -10800 0 PMST} + {733899600 -7200 1 PMDT} + {752040000 -10800 0 PMST} + {765349200 -7200 1 PMDT} + {783489600 -10800 0 PMST} + {796798800 -7200 1 PMDT} + {814939200 -10800 0 PMST} + {828853200 -7200 1 PMDT} + {846388800 -10800 0 PMST} + {860302800 -7200 1 PMDT} + {877838400 -10800 0 PMST} + {891752400 -7200 1 PMDT} + {909288000 -10800 0 PMST} + {923202000 -7200 1 PMDT} + {941342400 -10800 0 PMST} + {954651600 -7200 1 PMDT} + {972792000 -10800 0 PMST} + {986101200 -7200 1 PMDT} + {1004241600 -10800 0 PMST} + {1018155600 -7200 1 PMDT} + {1035691200 -10800 0 PMST} + {1049605200 -7200 1 PMDT} + {1067140800 -10800 0 PMST} + {1081054800 -7200 1 PMDT} + {1099195200 -10800 0 PMST} + {1112504400 -7200 1 PMDT} + {1130644800 -10800 0 PMST} + {1143954000 -7200 1 PMDT} + {1162094400 -10800 0 PMST} + {1173589200 -7200 1 PMDT} + {1194148800 -10800 0 PMST} + {1205038800 -7200 1 PMDT} + {1225598400 -10800 0 PMST} + {1236488400 -7200 1 PMDT} + {1257048000 -10800 0 PMST} + {1268542800 -7200 1 PMDT} + {1289102400 -10800 0 PMST} + {1299992400 -7200 1 PMDT} + {1320552000 -10800 0 PMST} + {1331442000 -7200 1 PMDT} + {1352001600 -10800 0 PMST} + {1362891600 -7200 1 PMDT} + {1383451200 -10800 0 PMST} + {1394341200 -7200 1 PMDT} + {1414900800 -10800 0 PMST} + {1425790800 -7200 1 PMDT} + {1446350400 -10800 0 PMST} + {1457845200 -7200 1 PMDT} + {1478404800 -10800 0 PMST} + {1489294800 -7200 1 PMDT} + {1509854400 -10800 0 PMST} + {1520744400 -7200 1 PMDT} + {1541304000 -10800 0 PMST} + {1552194000 -7200 1 PMDT} + {1572753600 -10800 0 PMST} + {1583643600 -7200 1 PMDT} + {1604203200 -10800 0 PMST} + {1615698000 -7200 1 PMDT} + {1636257600 -10800 0 PMST} + {1647147600 -7200 1 PMDT} + {1667707200 -10800 0 PMST} + {1678597200 -7200 1 PMDT} + {1699156800 -10800 0 PMST} + {1710046800 -7200 1 PMDT} + {1730606400 -10800 0 PMST} + {1741496400 -7200 1 PMDT} + {1762056000 -10800 0 PMST} + {1772946000 -7200 1 PMDT} + {1793505600 -10800 0 PMST} + {1805000400 -7200 1 PMDT} + {1825560000 -10800 0 PMST} + {1836450000 -7200 1 PMDT} + {1857009600 -10800 0 PMST} + {1867899600 -7200 1 PMDT} + {1888459200 -10800 0 PMST} + {1899349200 -7200 1 PMDT} + {1919908800 -10800 0 PMST} + {1930798800 -7200 1 PMDT} + {1951358400 -10800 0 PMST} + {1962853200 -7200 1 PMDT} + {1983412800 -10800 0 PMST} + {1994302800 -7200 1 PMDT} + {2014862400 -10800 0 PMST} + {2025752400 -7200 1 PMDT} + {2046312000 -10800 0 PMST} + {2057202000 -7200 1 PMDT} + {2077761600 -10800 0 PMST} + {2088651600 -7200 1 PMDT} + {2109211200 -10800 0 PMST} + {2120101200 -7200 1 PMDT} + {2140660800 -10800 0 PMST} + {2152155600 -7200 1 PMDT} + {2172715200 -10800 0 PMST} + {2183605200 -7200 1 PMDT} + {2204164800 -10800 0 PMST} + {2215054800 -7200 1 PMDT} + {2235614400 -10800 0 PMST} + {2246504400 -7200 1 PMDT} + {2267064000 -10800 0 PMST} + {2277954000 -7200 1 PMDT} + {2298513600 -10800 0 PMST} + {2309403600 -7200 1 PMDT} + {2329963200 -10800 0 PMST} + {2341458000 -7200 1 PMDT} + {2362017600 -10800 0 PMST} + {2372907600 -7200 1 PMDT} + {2393467200 -10800 0 PMST} + {2404357200 -7200 1 PMDT} + {2424916800 -10800 0 PMST} + {2435806800 -7200 1 PMDT} + {2456366400 -10800 0 PMST} + {2467256400 -7200 1 PMDT} + {2487816000 -10800 0 PMST} + {2499310800 -7200 1 PMDT} + {2519870400 -10800 0 PMST} + {2530760400 -7200 1 PMDT} + {2551320000 -10800 0 PMST} + {2562210000 -7200 1 PMDT} + {2582769600 -10800 0 PMST} + {2593659600 -7200 1 PMDT} + {2614219200 -10800 0 PMST} + {2625109200 -7200 1 PMDT} + {2645668800 -10800 0 PMST} + {2656558800 -7200 1 PMDT} + {2677118400 -10800 0 PMST} + {2688613200 -7200 1 PMDT} + {2709172800 -10800 0 PMST} + {2720062800 -7200 1 PMDT} + {2740622400 -10800 0 PMST} + {2751512400 -7200 1 PMDT} + {2772072000 -10800 0 PMST} + {2782962000 -7200 1 PMDT} + {2803521600 -10800 0 PMST} + {2814411600 -7200 1 PMDT} + {2834971200 -10800 0 PMST} + {2846466000 -7200 1 PMDT} + {2867025600 -10800 0 PMST} + {2877915600 -7200 1 PMDT} + {2898475200 -10800 0 PMST} + {2909365200 -7200 1 PMDT} + {2929924800 -10800 0 PMST} + {2940814800 -7200 1 PMDT} + {2961374400 -10800 0 PMST} + {2972264400 -7200 1 PMDT} + {2992824000 -10800 0 PMST} + {3003714000 -7200 1 PMDT} + {3024273600 -10800 0 PMST} + {3035768400 -7200 1 PMDT} + {3056328000 -10800 0 PMST} + {3067218000 -7200 1 PMDT} + {3087777600 -10800 0 PMST} + {3098667600 -7200 1 PMDT} + {3119227200 -10800 0 PMST} + {3130117200 -7200 1 PMDT} + {3150676800 -10800 0 PMST} + {3161566800 -7200 1 PMDT} + {3182126400 -10800 0 PMST} + {3193016400 -7200 1 PMDT} + {3213576000 -10800 0 PMST} + {3225070800 -7200 1 PMDT} + {3245630400 -10800 0 PMST} + {3256520400 -7200 1 PMDT} + {3277080000 -10800 0 PMST} + {3287970000 -7200 1 PMDT} + {3308529600 -10800 0 PMST} + {3319419600 -7200 1 PMDT} + {3339979200 -10800 0 PMST} + {3350869200 -7200 1 PMDT} + {3371428800 -10800 0 PMST} + {3382923600 -7200 1 PMDT} + {3403483200 -10800 0 PMST} + {3414373200 -7200 1 PMDT} + {3434932800 -10800 0 PMST} + {3445822800 -7200 1 PMDT} + {3466382400 -10800 0 PMST} + {3477272400 -7200 1 PMDT} + {3497832000 -10800 0 PMST} + {3508722000 -7200 1 PMDT} + {3529281600 -10800 0 PMST} + {3540171600 -7200 1 PMDT} + {3560731200 -10800 0 PMST} + {3572226000 -7200 1 PMDT} + {3592785600 -10800 0 PMST} + {3603675600 -7200 1 PMDT} + {3624235200 -10800 0 PMST} + {3635125200 -7200 1 PMDT} + {3655684800 -10800 0 PMST} + {3666574800 -7200 1 PMDT} + {3687134400 -10800 0 PMST} + {3698024400 -7200 1 PMDT} + {3718584000 -10800 0 PMST} + {3730078800 -7200 1 PMDT} + {3750638400 -10800 0 PMST} + {3761528400 -7200 1 PMDT} + {3782088000 -10800 0 PMST} + {3792978000 -7200 1 PMDT} + {3813537600 -10800 0 PMST} + {3824427600 -7200 1 PMDT} + {3844987200 -10800 0 PMST} + {3855877200 -7200 1 PMDT} + {3876436800 -10800 0 PMST} + {3887326800 -7200 1 PMDT} + {3907886400 -10800 0 PMST} + {3919381200 -7200 1 PMDT} + {3939940800 -10800 0 PMST} + {3950830800 -7200 1 PMDT} + {3971390400 -10800 0 PMST} + {3982280400 -7200 1 PMDT} + {4002840000 -10800 0 PMST} + {4013730000 -7200 1 PMDT} + {4034289600 -10800 0 PMST} + {4045179600 -7200 1 PMDT} + {4065739200 -10800 0 PMST} + {4076629200 -7200 1 PMDT} + {4097188800 -10800 0 PMST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Moncton b/mingw/lib/tcl8.5/tzdata/America/Moncton new file mode 100644 index 00000000..408e3a10 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Moncton @@ -0,0 +1,342 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Moncton) { + {-9223372036854775808 -15548 0 LMT} + {-2715882052 -18000 0 EST} + {-2131642800 -14400 0 AST} + {-1632074400 -10800 1 ADT} + {-1614798000 -14400 0 AST} + {-1167595200 -14400 0 AST} + {-1153681200 -10800 1 ADT} + {-1145822400 -14400 0 AST} + {-1122231600 -10800 1 ADT} + {-1114372800 -14400 0 AST} + {-1090782000 -10800 1 ADT} + {-1082923200 -14400 0 AST} + {-1059332400 -10800 1 ADT} + {-1051473600 -14400 0 AST} + {-1027882800 -10800 1 ADT} + {-1020024000 -14400 0 AST} + {-996433200 -10800 1 ADT} + {-988574400 -14400 0 AST} + {-965674800 -10800 1 ADT} + {-955396800 -14400 0 AST} + {-934743600 -10800 1 ADT} + {-923947200 -14400 0 AST} + {-904503600 -10800 1 ADT} + {-891892800 -14400 0 AST} + {-883598400 -14400 0 AST} + {-880221600 -10800 1 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {-757368000 -14400 0 AST} + {-747252000 -10800 1 ADT} + {-733950000 -14400 0 AST} + {-715802400 -10800 1 ADT} + {-702500400 -14400 0 AST} + {-684352800 -10800 1 ADT} + {-671050800 -14400 0 AST} + {-652903200 -10800 1 ADT} + {-639601200 -14400 0 AST} + {-620848800 -10800 1 ADT} + {-608151600 -14400 0 AST} + {-589399200 -10800 1 ADT} + {-576097200 -14400 0 AST} + {-557949600 -10800 1 ADT} + {-544647600 -14400 0 AST} + {-526500000 -10800 1 ADT} + {-513198000 -14400 0 AST} + {-495050400 -10800 1 ADT} + {-481748400 -14400 0 AST} + {-463600800 -10800 1 ADT} + {-450298800 -14400 0 AST} + {-431546400 -10800 1 ADT} + {-418244400 -14400 0 AST} + {-400096800 -10800 1 ADT} + {-384375600 -14400 0 AST} + {-368647200 -10800 1 ADT} + {-352926000 -14400 0 AST} + {-337197600 -10800 1 ADT} + {-321476400 -14400 0 AST} + {-305748000 -10800 1 ADT} + {-289422000 -14400 0 AST} + {-273693600 -10800 1 ADT} + {-257972400 -14400 0 AST} + {-242244000 -10800 1 ADT} + {-226522800 -14400 0 AST} + {-210794400 -10800 1 ADT} + {-195073200 -14400 0 AST} + {-179344800 -10800 1 ADT} + {-163623600 -14400 0 AST} + {-147895200 -10800 1 ADT} + {-131569200 -14400 0 AST} + {-116445600 -10800 1 ADT} + {-100119600 -14400 0 AST} + {-84391200 -10800 1 ADT} + {-68670000 -14400 0 AST} + {-52941600 -10800 1 ADT} + {-37220400 -14400 0 AST} + {-21492000 -10800 1 ADT} + {-5770800 -14400 0 AST} + {9957600 -10800 1 ADT} + {25678800 -14400 0 AST} + {41407200 -10800 1 ADT} + {57733200 -14400 0 AST} + {73461600 -10800 1 ADT} + {89182800 -14400 0 AST} + {94708800 -14400 0 AST} + {136360800 -10800 1 ADT} + {152082000 -14400 0 AST} + {167810400 -10800 1 ADT} + {183531600 -14400 0 AST} + {199260000 -10800 1 ADT} + {215586000 -14400 0 AST} + {230709600 -10800 1 ADT} + {247035600 -14400 0 AST} + {262764000 -10800 1 ADT} + {278485200 -14400 0 AST} + {294213600 -10800 1 ADT} + {309934800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544600800 -10800 1 ADT} + {562136400 -14400 0 AST} + {576050400 -10800 1 ADT} + {594190800 -14400 0 AST} + {607500000 -10800 1 ADT} + {625640400 -14400 0 AST} + {638949600 -10800 1 ADT} + {657090000 -14400 0 AST} + {671004000 -10800 1 ADT} + {688539600 -14400 0 AST} + {702453600 -10800 1 ADT} + {719989200 -14400 0 AST} + {725860800 -14400 0 AST} + {733896060 -10800 1 ADT} + {752036460 -14400 0 AST} + {765345660 -10800 1 ADT} + {783486060 -14400 0 AST} + {796795260 -10800 1 ADT} + {814935660 -14400 0 AST} + {828849660 -10800 1 ADT} + {846385260 -14400 0 AST} + {860299260 -10800 1 ADT} + {877834860 -14400 0 AST} + {891748860 -10800 1 ADT} + {909284460 -14400 0 AST} + {923198460 -10800 1 ADT} + {941338860 -14400 0 AST} + {954648060 -10800 1 ADT} + {972788460 -14400 0 AST} + {986097660 -10800 1 ADT} + {1004238060 -14400 0 AST} + {1018152060 -10800 1 ADT} + {1035687660 -14400 0 AST} + {1049601660 -10800 1 ADT} + {1067137260 -14400 0 AST} + {1081051260 -10800 1 ADT} + {1099191660 -14400 0 AST} + {1112500860 -10800 1 ADT} + {1130641260 -14400 0 AST} + {1143950460 -10800 1 ADT} + {1162090860 -14400 0 AST} + {1167624000 -14400 0 AST} + {1173592800 -10800 1 ADT} + {1194152400 -14400 0 AST} + {1205042400 -10800 1 ADT} + {1225602000 -14400 0 AST} + {1236492000 -10800 1 ADT} + {1257051600 -14400 0 AST} + {1268546400 -10800 1 ADT} + {1289106000 -14400 0 AST} + {1299996000 -10800 1 ADT} + {1320555600 -14400 0 AST} + {1331445600 -10800 1 ADT} + {1352005200 -14400 0 AST} + {1362895200 -10800 1 ADT} + {1383454800 -14400 0 AST} + {1394344800 -10800 1 ADT} + {1414904400 -14400 0 AST} + {1425794400 -10800 1 ADT} + {1446354000 -14400 0 AST} + {1457848800 -10800 1 ADT} + {1478408400 -14400 0 AST} + {1489298400 -10800 1 ADT} + {1509858000 -14400 0 AST} + {1520748000 -10800 1 ADT} + {1541307600 -14400 0 AST} + {1552197600 -10800 1 ADT} + {1572757200 -14400 0 AST} + {1583647200 -10800 1 ADT} + {1604206800 -14400 0 AST} + {1615701600 -10800 1 ADT} + {1636261200 -14400 0 AST} + {1647151200 -10800 1 ADT} + {1667710800 -14400 0 AST} + {1678600800 -10800 1 ADT} + {1699160400 -14400 0 AST} + {1710050400 -10800 1 ADT} + {1730610000 -14400 0 AST} + {1741500000 -10800 1 ADT} + {1762059600 -14400 0 AST} + {1772949600 -10800 1 ADT} + {1793509200 -14400 0 AST} + {1805004000 -10800 1 ADT} + {1825563600 -14400 0 AST} + {1836453600 -10800 1 ADT} + {1857013200 -14400 0 AST} + {1867903200 -10800 1 ADT} + {1888462800 -14400 0 AST} + {1899352800 -10800 1 ADT} + {1919912400 -14400 0 AST} + {1930802400 -10800 1 ADT} + {1951362000 -14400 0 AST} + {1962856800 -10800 1 ADT} + {1983416400 -14400 0 AST} + {1994306400 -10800 1 ADT} + {2014866000 -14400 0 AST} + {2025756000 -10800 1 ADT} + {2046315600 -14400 0 AST} + {2057205600 -10800 1 ADT} + {2077765200 -14400 0 AST} + {2088655200 -10800 1 ADT} + {2109214800 -14400 0 AST} + {2120104800 -10800 1 ADT} + {2140664400 -14400 0 AST} + {2152159200 -10800 1 ADT} + {2172718800 -14400 0 AST} + {2183608800 -10800 1 ADT} + {2204168400 -14400 0 AST} + {2215058400 -10800 1 ADT} + {2235618000 -14400 0 AST} + {2246508000 -10800 1 ADT} + {2267067600 -14400 0 AST} + {2277957600 -10800 1 ADT} + {2298517200 -14400 0 AST} + {2309407200 -10800 1 ADT} + {2329966800 -14400 0 AST} + {2341461600 -10800 1 ADT} + {2362021200 -14400 0 AST} + {2372911200 -10800 1 ADT} + {2393470800 -14400 0 AST} + {2404360800 -10800 1 ADT} + {2424920400 -14400 0 AST} + {2435810400 -10800 1 ADT} + {2456370000 -14400 0 AST} + {2467260000 -10800 1 ADT} + {2487819600 -14400 0 AST} + {2499314400 -10800 1 ADT} + {2519874000 -14400 0 AST} + {2530764000 -10800 1 ADT} + {2551323600 -14400 0 AST} + {2562213600 -10800 1 ADT} + {2582773200 -14400 0 AST} + {2593663200 -10800 1 ADT} + {2614222800 -14400 0 AST} + {2625112800 -10800 1 ADT} + {2645672400 -14400 0 AST} + {2656562400 -10800 1 ADT} + {2677122000 -14400 0 AST} + {2688616800 -10800 1 ADT} + {2709176400 -14400 0 AST} + {2720066400 -10800 1 ADT} + {2740626000 -14400 0 AST} + {2751516000 -10800 1 ADT} + {2772075600 -14400 0 AST} + {2782965600 -10800 1 ADT} + {2803525200 -14400 0 AST} + {2814415200 -10800 1 ADT} + {2834974800 -14400 0 AST} + {2846469600 -10800 1 ADT} + {2867029200 -14400 0 AST} + {2877919200 -10800 1 ADT} + {2898478800 -14400 0 AST} + {2909368800 -10800 1 ADT} + {2929928400 -14400 0 AST} + {2940818400 -10800 1 ADT} + {2961378000 -14400 0 AST} + {2972268000 -10800 1 ADT} + {2992827600 -14400 0 AST} + {3003717600 -10800 1 ADT} + {3024277200 -14400 0 AST} + {3035772000 -10800 1 ADT} + {3056331600 -14400 0 AST} + {3067221600 -10800 1 ADT} + {3087781200 -14400 0 AST} + {3098671200 -10800 1 ADT} + {3119230800 -14400 0 AST} + {3130120800 -10800 1 ADT} + {3150680400 -14400 0 AST} + {3161570400 -10800 1 ADT} + {3182130000 -14400 0 AST} + {3193020000 -10800 1 ADT} + {3213579600 -14400 0 AST} + {3225074400 -10800 1 ADT} + {3245634000 -14400 0 AST} + {3256524000 -10800 1 ADT} + {3277083600 -14400 0 AST} + {3287973600 -10800 1 ADT} + {3308533200 -14400 0 AST} + {3319423200 -10800 1 ADT} + {3339982800 -14400 0 AST} + {3350872800 -10800 1 ADT} + {3371432400 -14400 0 AST} + {3382927200 -10800 1 ADT} + {3403486800 -14400 0 AST} + {3414376800 -10800 1 ADT} + {3434936400 -14400 0 AST} + {3445826400 -10800 1 ADT} + {3466386000 -14400 0 AST} + {3477276000 -10800 1 ADT} + {3497835600 -14400 0 AST} + {3508725600 -10800 1 ADT} + {3529285200 -14400 0 AST} + {3540175200 -10800 1 ADT} + {3560734800 -14400 0 AST} + {3572229600 -10800 1 ADT} + {3592789200 -14400 0 AST} + {3603679200 -10800 1 ADT} + {3624238800 -14400 0 AST} + {3635128800 -10800 1 ADT} + {3655688400 -14400 0 AST} + {3666578400 -10800 1 ADT} + {3687138000 -14400 0 AST} + {3698028000 -10800 1 ADT} + {3718587600 -14400 0 AST} + {3730082400 -10800 1 ADT} + {3750642000 -14400 0 AST} + {3761532000 -10800 1 ADT} + {3782091600 -14400 0 AST} + {3792981600 -10800 1 ADT} + {3813541200 -14400 0 AST} + {3824431200 -10800 1 ADT} + {3844990800 -14400 0 AST} + {3855880800 -10800 1 ADT} + {3876440400 -14400 0 AST} + {3887330400 -10800 1 ADT} + {3907890000 -14400 0 AST} + {3919384800 -10800 1 ADT} + {3939944400 -14400 0 AST} + {3950834400 -10800 1 ADT} + {3971394000 -14400 0 AST} + {3982284000 -10800 1 ADT} + {4002843600 -14400 0 AST} + {4013733600 -10800 1 ADT} + {4034293200 -14400 0 AST} + {4045183200 -10800 1 ADT} + {4065742800 -14400 0 AST} + {4076632800 -10800 1 ADT} + {4097192400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Monterrey b/mingw/lib/tcl8.5/tzdata/America/Monterrey new file mode 100644 index 00000000..41358848 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Monterrey @@ -0,0 +1,218 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Monterrey) { + {-9223372036854775808 -24076 0 LMT} + {-1514743200 -21600 0 CST} + {568015200 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {599637600 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {989136000 -18000 1 CDT} + {1001833200 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1175414400 -18000 1 CDT} + {1193554800 -21600 0 CST} + {1207468800 -18000 1 CDT} + {1225004400 -21600 0 CST} + {1238918400 -18000 1 CDT} + {1256454000 -21600 0 CST} + {1270368000 -18000 1 CDT} + {1288508400 -21600 0 CST} + {1301817600 -18000 1 CDT} + {1319958000 -21600 0 CST} + {1333267200 -18000 1 CDT} + {1351407600 -21600 0 CST} + {1365321600 -18000 1 CDT} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Montevideo b/mingw/lib/tcl8.5/tzdata/America/Montevideo new file mode 100644 index 00000000..aa469b91 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Montevideo @@ -0,0 +1,261 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Montevideo) { + {-9223372036854775808 -13484 0 LMT} + {-2256668116 -13484 0 MMT} + {-1567455316 -12600 0 UYT} + {-1459542600 -10800 1 UYHST} + {-1443819600 -12600 0 UYT} + {-1428006600 -10800 1 UYHST} + {-1412283600 -12600 0 UYT} + {-1396470600 -10800 1 UYHST} + {-1380747600 -12600 0 UYT} + {-1141590600 -10800 1 UYHST} + {-1128286800 -12600 0 UYT} + {-1110141000 -10800 1 UYHST} + {-1096837200 -12600 0 UYT} + {-1078691400 -10800 1 UYHST} + {-1065387600 -12600 0 UYT} + {-1046637000 -10800 1 UYHST} + {-1033938000 -12600 0 UYT} + {-1015187400 -10800 1 UYHST} + {-1002488400 -12600 0 UYT} + {-983737800 -10800 1 UYHST} + {-971038800 -12600 0 UYT} + {-952288200 -10800 1 UYHST} + {-938984400 -12600 0 UYT} + {-920838600 -10800 1 UYHST} + {-907534800 -12600 0 UYT} + {-896819400 -10800 1 UYHST} + {-853623000 -10800 0 UYT} + {-853621200 -7200 1 UYST} + {-845848800 -10800 0 UYT} + {-334789200 -7200 1 UYST} + {-319672800 -10800 0 UYT} + {-314226000 -7200 1 UYST} + {-309996000 -10800 0 UYT} + {-149720400 -7200 1 UYST} + {-134604000 -10800 0 UYT} + {-118270800 -7200 1 UYST} + {-100044000 -10800 0 UYT} + {-86821200 -7200 1 UYST} + {-68508000 -10800 0 UYT} + {-50446800 -9000 1 UYHST} + {-34119000 -10800 0 UYT} + {-18910800 -9000 1 UYHST} + {-2583000 -10800 0 UYT} + {12625200 -9000 1 UYHST} + {28953000 -10800 0 UYT} + {72932400 -7200 1 UYST} + {82692000 -10800 0 UYT} + {132116400 -9000 1 UYHST} + {156911400 -7200 1 UYST} + {212983200 -10800 0 UYT} + {250052400 -7200 1 UYST} + {260244000 -10800 0 UYT} + {307594800 -7200 1 UYST} + {325994400 -10800 0 UYT} + {566449200 -7200 1 UYST} + {574308000 -10800 0 UYT} + {597812400 -7200 1 UYST} + {605671200 -10800 0 UYT} + {625633200 -7200 1 UYST} + {636516000 -10800 0 UYT} + {656478000 -7200 1 UYST} + {667965600 -10800 0 UYT} + {688532400 -7200 1 UYST} + {699415200 -10800 0 UYT} + {719377200 -7200 1 UYST} + {730864800 -10800 0 UYT} + {1095562800 -7200 1 UYST} + {1111896000 -10800 0 UYT} + {1128834000 -7200 1 UYST} + {1142136000 -10800 0 UYT} + {1159678800 -7200 1 UYST} + {1173585600 -10800 0 UYT} + {1191733200 -7200 1 UYST} + {1205035200 -10800 0 UYT} + {1223182800 -7200 1 UYST} + {1236484800 -10800 0 UYT} + {1254632400 -7200 1 UYST} + {1268539200 -10800 0 UYT} + {1286082000 -7200 1 UYST} + {1299988800 -10800 0 UYT} + {1317531600 -7200 1 UYST} + {1331438400 -10800 0 UYT} + {1349586000 -7200 1 UYST} + {1362888000 -10800 0 UYT} + {1381035600 -7200 1 UYST} + {1394337600 -10800 0 UYT} + {1412485200 -7200 1 UYST} + {1425787200 -10800 0 UYT} + {1443934800 -7200 1 UYST} + {1457841600 -10800 0 UYT} + {1475384400 -7200 1 UYST} + {1489291200 -10800 0 UYT} + {1506834000 -7200 1 UYST} + {1520740800 -10800 0 UYT} + {1538888400 -7200 1 UYST} + {1552190400 -10800 0 UYT} + {1570338000 -7200 1 UYST} + {1583640000 -10800 0 UYT} + {1601787600 -7200 1 UYST} + {1615694400 -10800 0 UYT} + {1633237200 -7200 1 UYST} + {1647144000 -10800 0 UYT} + {1664686800 -7200 1 UYST} + {1678593600 -10800 0 UYT} + {1696136400 -7200 1 UYST} + {1710043200 -10800 0 UYT} + {1728190800 -7200 1 UYST} + {1741492800 -10800 0 UYT} + {1759640400 -7200 1 UYST} + {1772942400 -10800 0 UYT} + {1791090000 -7200 1 UYST} + {1804996800 -10800 0 UYT} + {1822539600 -7200 1 UYST} + {1836446400 -10800 0 UYT} + {1853989200 -7200 1 UYST} + {1867896000 -10800 0 UYT} + {1886043600 -7200 1 UYST} + {1899345600 -10800 0 UYT} + {1917493200 -7200 1 UYST} + {1930795200 -10800 0 UYT} + {1948942800 -7200 1 UYST} + {1962849600 -10800 0 UYT} + {1980392400 -7200 1 UYST} + {1994299200 -10800 0 UYT} + {2011842000 -7200 1 UYST} + {2025748800 -10800 0 UYT} + {2043291600 -7200 1 UYST} + {2057198400 -10800 0 UYT} + {2075346000 -7200 1 UYST} + {2088648000 -10800 0 UYT} + {2106795600 -7200 1 UYST} + {2120097600 -10800 0 UYT} + {2138245200 -7200 1 UYST} + {2152152000 -10800 0 UYT} + {2169694800 -7200 1 UYST} + {2183601600 -10800 0 UYT} + {2201144400 -7200 1 UYST} + {2215051200 -10800 0 UYT} + {2233198800 -7200 1 UYST} + {2246500800 -10800 0 UYT} + {2264648400 -7200 1 UYST} + {2277950400 -10800 0 UYT} + {2296098000 -7200 1 UYST} + {2309400000 -10800 0 UYT} + {2327547600 -7200 1 UYST} + {2341454400 -10800 0 UYT} + {2358997200 -7200 1 UYST} + {2372904000 -10800 0 UYT} + {2390446800 -7200 1 UYST} + {2404353600 -10800 0 UYT} + {2422501200 -7200 1 UYST} + {2435803200 -10800 0 UYT} + {2453950800 -7200 1 UYST} + {2467252800 -10800 0 UYT} + {2485400400 -7200 1 UYST} + {2499307200 -10800 0 UYT} + {2516850000 -7200 1 UYST} + {2530756800 -10800 0 UYT} + {2548299600 -7200 1 UYST} + {2562206400 -10800 0 UYT} + {2579749200 -7200 1 UYST} + {2593656000 -10800 0 UYT} + {2611803600 -7200 1 UYST} + {2625105600 -10800 0 UYT} + {2643253200 -7200 1 UYST} + {2656555200 -10800 0 UYT} + {2674702800 -7200 1 UYST} + {2688609600 -10800 0 UYT} + {2706152400 -7200 1 UYST} + {2720059200 -10800 0 UYT} + {2737602000 -7200 1 UYST} + {2751508800 -10800 0 UYT} + {2769656400 -7200 1 UYST} + {2782958400 -10800 0 UYT} + {2801106000 -7200 1 UYST} + {2814408000 -10800 0 UYT} + {2832555600 -7200 1 UYST} + {2846462400 -10800 0 UYT} + {2864005200 -7200 1 UYST} + {2877912000 -10800 0 UYT} + {2895454800 -7200 1 UYST} + {2909361600 -10800 0 UYT} + {2926904400 -7200 1 UYST} + {2940811200 -10800 0 UYT} + {2958958800 -7200 1 UYST} + {2972260800 -10800 0 UYT} + {2990408400 -7200 1 UYST} + {3003710400 -10800 0 UYT} + {3021858000 -7200 1 UYST} + {3035764800 -10800 0 UYT} + {3053307600 -7200 1 UYST} + {3067214400 -10800 0 UYT} + {3084757200 -7200 1 UYST} + {3098664000 -10800 0 UYT} + {3116811600 -7200 1 UYST} + {3130113600 -10800 0 UYT} + {3148261200 -7200 1 UYST} + {3161563200 -10800 0 UYT} + {3179710800 -7200 1 UYST} + {3193012800 -10800 0 UYT} + {3211160400 -7200 1 UYST} + {3225067200 -10800 0 UYT} + {3242610000 -7200 1 UYST} + {3256516800 -10800 0 UYT} + {3274059600 -7200 1 UYST} + {3287966400 -10800 0 UYT} + {3306114000 -7200 1 UYST} + {3319416000 -10800 0 UYT} + {3337563600 -7200 1 UYST} + {3350865600 -10800 0 UYT} + {3369013200 -7200 1 UYST} + {3382920000 -10800 0 UYT} + {3400462800 -7200 1 UYST} + {3414369600 -10800 0 UYT} + {3431912400 -7200 1 UYST} + {3445819200 -10800 0 UYT} + {3463362000 -7200 1 UYST} + {3477268800 -10800 0 UYT} + {3495416400 -7200 1 UYST} + {3508718400 -10800 0 UYT} + {3526866000 -7200 1 UYST} + {3540168000 -10800 0 UYT} + {3558315600 -7200 1 UYST} + {3572222400 -10800 0 UYT} + {3589765200 -7200 1 UYST} + {3603672000 -10800 0 UYT} + {3621214800 -7200 1 UYST} + {3635121600 -10800 0 UYT} + {3653269200 -7200 1 UYST} + {3666571200 -10800 0 UYT} + {3684718800 -7200 1 UYST} + {3698020800 -10800 0 UYT} + {3716168400 -7200 1 UYST} + {3730075200 -10800 0 UYT} + {3747618000 -7200 1 UYST} + {3761524800 -10800 0 UYT} + {3779067600 -7200 1 UYST} + {3792974400 -10800 0 UYT} + {3810517200 -7200 1 UYST} + {3824424000 -10800 0 UYT} + {3842571600 -7200 1 UYST} + {3855873600 -10800 0 UYT} + {3874021200 -7200 1 UYST} + {3887323200 -10800 0 UYT} + {3905470800 -7200 1 UYST} + {3919377600 -10800 0 UYT} + {3936920400 -7200 1 UYST} + {3950827200 -10800 0 UYT} + {3968370000 -7200 1 UYST} + {3982276800 -10800 0 UYT} + {4000424400 -7200 1 UYST} + {4013726400 -10800 0 UYT} + {4031874000 -7200 1 UYST} + {4045176000 -10800 0 UYT} + {4063323600 -7200 1 UYST} + {4076625600 -10800 0 UYT} + {4094773200 -7200 1 UYST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Montreal b/mingw/lib/tcl8.5/tzdata/America/Montreal new file mode 100644 index 00000000..b9535ebc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Montreal @@ -0,0 +1,366 @@ +# 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} + {-1614794400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Montserrat b/mingw/lib/tcl8.5/tzdata/America/Montserrat new file mode 100644 index 00000000..4d827665 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Montserrat @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Montserrat) { + {-9223372036854775808 -14932 0 LMT} + {-1846266608 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Nassau b/mingw/lib/tcl8.5/tzdata/America/Nassau new file mode 100644 index 00000000..06c5f064 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Nassau @@ -0,0 +1,279 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Nassau) { + {-9223372036854775808 -18564 0 LMT} + {-1825095036 -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} + {136364400 -14400 1 EDT} + {152085600 -18000 0 EST} + {167814000 -14400 1 EDT} + {183535200 -18000 0 EST} + {189320400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/New_York b/mingw/lib/tcl8.5/tzdata/America/New_York new file mode 100644 index 00000000..72f2c961 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/New_York @@ -0,0 +1,369 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/New_York) { + {-9223372036854775808 -17762 0 LMT} + {-2717650800 -18000 0 EST} + {-1633280400 -14400 1 EDT} + {-1615140000 -18000 0 EST} + {-1601830800 -14400 1 EDT} + {-1583690400 -18000 0 EST} + {-1577905200 -18000 0 EST} + {-1570381200 -14400 1 EDT} + {-1551636000 -18000 0 EST} + {-1536512400 -14400 1 EDT} + {-1523210400 -18000 0 EST} + {-1504458000 -14400 1 EDT} + {-1491760800 -18000 0 EST} + {-1473008400 -14400 1 EDT} + {-1459706400 -18000 0 EST} + {-1441558800 -14400 1 EDT} + {-1428256800 -18000 0 EST} + {-1410109200 -14400 1 EDT} + {-1396807200 -18000 0 EST} + {-1378659600 -14400 1 EDT} + {-1365357600 -18000 0 EST} + {-1347210000 -14400 1 EDT} + {-1333908000 -18000 0 EST} + {-1315155600 -14400 1 EDT} + {-1301853600 -18000 0 EST} + {-1283706000 -14400 1 EDT} + {-1270404000 -18000 0 EST} + {-1252256400 -14400 1 EDT} + {-1238954400 -18000 0 EST} + {-1220806800 -14400 1 EDT} + {-1207504800 -18000 0 EST} + {-1189357200 -14400 1 EDT} + {-1176055200 -18000 0 EST} + {-1157302800 -14400 1 EDT} + {-1144605600 -18000 0 EST} + {-1125853200 -14400 1 EDT} + {-1112551200 -18000 0 EST} + {-1094403600 -14400 1 EDT} + {-1081101600 -18000 0 EST} + {-1062954000 -14400 1 EDT} + {-1049652000 -18000 0 EST} + {-1031504400 -14400 1 EDT} + {-1018202400 -18000 0 EST} + {-1000054800 -14400 1 EDT} + {-986752800 -18000 0 EST} + {-968000400 -14400 1 EDT} + {-955303200 -18000 0 EST} + {-936550800 -14400 1 EDT} + {-923248800 -18000 0 EST} + {-905101200 -14400 1 EDT} + {-891799200 -18000 0 EST} + {-883594800 -18000 0 EST} + {-880218000 -14400 1 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} + {-639597600 -18000 0 EST} + {-620845200 -14400 1 EDT} + {-608148000 -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} + {-447271200 -18000 0 EST} + {-431542800 -14400 1 EDT} + {-415821600 -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} + {-94676400 -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} + {126687600 -14400 1 EDT} + {152085600 -18000 0 EST} + {162370800 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Nipigon b/mingw/lib/tcl8.5/tzdata/America/Nipigon new file mode 100644 index 00000000..e98bb8c7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Nipigon @@ -0,0 +1,264 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Nipigon) { + {-9223372036854775808 -21184 0 LMT} + {-2366734016 -18000 0 EST} + {-1632070800 -14400 1 EDT} + {-1614794400 -18000 0 EST} + {-923252400 -14400 1 EDT} + {-880218000 -14400 0 EWT} + {-769395600 -14400 1 EPT} + {-765396000 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Nome b/mingw/lib/tcl8.5/tzdata/America/Nome new file mode 100644 index 00000000..c095b79b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Nome @@ -0,0 +1,276 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Nome) { + {-9223372036854775808 46701 0 LMT} + {-3225358701 -39698 0 LMT} + {-2188947502 -39600 0 NST} + {-883573200 -39600 0 NST} + {-880196400 -36000 1 NWT} + {-769395600 -36000 1 NPT} + {-765374400 -39600 0 NST} + {-757342800 -39600 0 NST} + {-86878800 -39600 0 BST} + {-31496400 -39600 0 BST} + {-21466800 -36000 1 BDT} + {-5745600 -39600 0 BST} + {9982800 -36000 1 BDT} + {25704000 -39600 0 BST} + {41432400 -36000 1 BDT} + {57758400 -39600 0 BST} + {73486800 -36000 1 BDT} + {89208000 -39600 0 BST} + {104936400 -36000 1 BDT} + {120657600 -39600 0 BST} + {126709200 -36000 1 BDT} + {152107200 -39600 0 BST} + {162392400 -36000 1 BDT} + {183556800 -39600 0 BST} + {199285200 -36000 1 BDT} + {215611200 -39600 0 BST} + {230734800 -36000 1 BDT} + {247060800 -39600 0 BST} + {262789200 -36000 1 BDT} + {278510400 -39600 0 BST} + {294238800 -36000 1 BDT} + {309960000 -39600 0 BST} + {325688400 -36000 1 BDT} + {341409600 -39600 0 BST} + {357138000 -36000 1 BDT} + {372859200 -39600 0 BST} + {388587600 -36000 1 BDT} + {404913600 -39600 0 BST} + {420037200 -36000 1 BDT} + {439030800 -32400 0 AKST} + {452084400 -28800 1 AKDT} + {467805600 -32400 0 AKST} + {483534000 -28800 1 AKDT} + {499255200 -32400 0 AKST} + {514983600 -28800 1 AKDT} + {530704800 -32400 0 AKST} + {544618800 -28800 1 AKDT} + {562154400 -32400 0 AKST} + {576068400 -28800 1 AKDT} + {594208800 -32400 0 AKST} + {607518000 -28800 1 AKDT} + {625658400 -32400 0 AKST} + {638967600 -28800 1 AKDT} + {657108000 -32400 0 AKST} + {671022000 -28800 1 AKDT} + {688557600 -32400 0 AKST} + {702471600 -28800 1 AKDT} + {720007200 -32400 0 AKST} + {733921200 -28800 1 AKDT} + {752061600 -32400 0 AKST} + {765370800 -28800 1 AKDT} + {783511200 -32400 0 AKST} + {796820400 -28800 1 AKDT} + {814960800 -32400 0 AKST} + {828874800 -28800 1 AKDT} + {846410400 -32400 0 AKST} + {860324400 -28800 1 AKDT} + {877860000 -32400 0 AKST} + {891774000 -28800 1 AKDT} + {909309600 -32400 0 AKST} + {923223600 -28800 1 AKDT} + {941364000 -32400 0 AKST} + {954673200 -28800 1 AKDT} + {972813600 -32400 0 AKST} + {986122800 -28800 1 AKDT} + {1004263200 -32400 0 AKST} + {1018177200 -28800 1 AKDT} + {1035712800 -32400 0 AKST} + {1049626800 -28800 1 AKDT} + {1067162400 -32400 0 AKST} + {1081076400 -28800 1 AKDT} + {1099216800 -32400 0 AKST} + {1112526000 -28800 1 AKDT} + {1130666400 -32400 0 AKST} + {1143975600 -28800 1 AKDT} + {1162116000 -32400 0 AKST} + {1173610800 -28800 1 AKDT} + {1194170400 -32400 0 AKST} + {1205060400 -28800 1 AKDT} + {1225620000 -32400 0 AKST} + {1236510000 -28800 1 AKDT} + {1257069600 -32400 0 AKST} + {1268564400 -28800 1 AKDT} + {1289124000 -32400 0 AKST} + {1300014000 -28800 1 AKDT} + {1320573600 -32400 0 AKST} + {1331463600 -28800 1 AKDT} + {1352023200 -32400 0 AKST} + {1362913200 -28800 1 AKDT} + {1383472800 -32400 0 AKST} + {1394362800 -28800 1 AKDT} + {1414922400 -32400 0 AKST} + {1425812400 -28800 1 AKDT} + {1446372000 -32400 0 AKST} + {1457866800 -28800 1 AKDT} + {1478426400 -32400 0 AKST} + {1489316400 -28800 1 AKDT} + {1509876000 -32400 0 AKST} + {1520766000 -28800 1 AKDT} + {1541325600 -32400 0 AKST} + {1552215600 -28800 1 AKDT} + {1572775200 -32400 0 AKST} + {1583665200 -28800 1 AKDT} + {1604224800 -32400 0 AKST} + {1615719600 -28800 1 AKDT} + {1636279200 -32400 0 AKST} + {1647169200 -28800 1 AKDT} + {1667728800 -32400 0 AKST} + {1678618800 -28800 1 AKDT} + {1699178400 -32400 0 AKST} + {1710068400 -28800 1 AKDT} + {1730628000 -32400 0 AKST} + {1741518000 -28800 1 AKDT} + {1762077600 -32400 0 AKST} + {1772967600 -28800 1 AKDT} + {1793527200 -32400 0 AKST} + {1805022000 -28800 1 AKDT} + {1825581600 -32400 0 AKST} + {1836471600 -28800 1 AKDT} + {1857031200 -32400 0 AKST} + {1867921200 -28800 1 AKDT} + {1888480800 -32400 0 AKST} + {1899370800 -28800 1 AKDT} + {1919930400 -32400 0 AKST} + {1930820400 -28800 1 AKDT} + {1951380000 -32400 0 AKST} + {1962874800 -28800 1 AKDT} + {1983434400 -32400 0 AKST} + {1994324400 -28800 1 AKDT} + {2014884000 -32400 0 AKST} + {2025774000 -28800 1 AKDT} + {2046333600 -32400 0 AKST} + {2057223600 -28800 1 AKDT} + {2077783200 -32400 0 AKST} + {2088673200 -28800 1 AKDT} + {2109232800 -32400 0 AKST} + {2120122800 -28800 1 AKDT} + {2140682400 -32400 0 AKST} + {2152177200 -28800 1 AKDT} + {2172736800 -32400 0 AKST} + {2183626800 -28800 1 AKDT} + {2204186400 -32400 0 AKST} + {2215076400 -28800 1 AKDT} + {2235636000 -32400 0 AKST} + {2246526000 -28800 1 AKDT} + {2267085600 -32400 0 AKST} + {2277975600 -28800 1 AKDT} + {2298535200 -32400 0 AKST} + {2309425200 -28800 1 AKDT} + {2329984800 -32400 0 AKST} + {2341479600 -28800 1 AKDT} + {2362039200 -32400 0 AKST} + {2372929200 -28800 1 AKDT} + {2393488800 -32400 0 AKST} + {2404378800 -28800 1 AKDT} + {2424938400 -32400 0 AKST} + {2435828400 -28800 1 AKDT} + {2456388000 -32400 0 AKST} + {2467278000 -28800 1 AKDT} + {2487837600 -32400 0 AKST} + {2499332400 -28800 1 AKDT} + {2519892000 -32400 0 AKST} + {2530782000 -28800 1 AKDT} + {2551341600 -32400 0 AKST} + {2562231600 -28800 1 AKDT} + {2582791200 -32400 0 AKST} + {2593681200 -28800 1 AKDT} + {2614240800 -32400 0 AKST} + {2625130800 -28800 1 AKDT} + {2645690400 -32400 0 AKST} + {2656580400 -28800 1 AKDT} + {2677140000 -32400 0 AKST} + {2688634800 -28800 1 AKDT} + {2709194400 -32400 0 AKST} + {2720084400 -28800 1 AKDT} + {2740644000 -32400 0 AKST} + {2751534000 -28800 1 AKDT} + {2772093600 -32400 0 AKST} + {2782983600 -28800 1 AKDT} + {2803543200 -32400 0 AKST} + {2814433200 -28800 1 AKDT} + {2834992800 -32400 0 AKST} + {2846487600 -28800 1 AKDT} + {2867047200 -32400 0 AKST} + {2877937200 -28800 1 AKDT} + {2898496800 -32400 0 AKST} + {2909386800 -28800 1 AKDT} + {2929946400 -32400 0 AKST} + {2940836400 -28800 1 AKDT} + {2961396000 -32400 0 AKST} + {2972286000 -28800 1 AKDT} + {2992845600 -32400 0 AKST} + {3003735600 -28800 1 AKDT} + {3024295200 -32400 0 AKST} + {3035790000 -28800 1 AKDT} + {3056349600 -32400 0 AKST} + {3067239600 -28800 1 AKDT} + {3087799200 -32400 0 AKST} + {3098689200 -28800 1 AKDT} + {3119248800 -32400 0 AKST} + {3130138800 -28800 1 AKDT} + {3150698400 -32400 0 AKST} + {3161588400 -28800 1 AKDT} + {3182148000 -32400 0 AKST} + {3193038000 -28800 1 AKDT} + {3213597600 -32400 0 AKST} + {3225092400 -28800 1 AKDT} + {3245652000 -32400 0 AKST} + {3256542000 -28800 1 AKDT} + {3277101600 -32400 0 AKST} + {3287991600 -28800 1 AKDT} + {3308551200 -32400 0 AKST} + {3319441200 -28800 1 AKDT} + {3340000800 -32400 0 AKST} + {3350890800 -28800 1 AKDT} + {3371450400 -32400 0 AKST} + {3382945200 -28800 1 AKDT} + {3403504800 -32400 0 AKST} + {3414394800 -28800 1 AKDT} + {3434954400 -32400 0 AKST} + {3445844400 -28800 1 AKDT} + {3466404000 -32400 0 AKST} + {3477294000 -28800 1 AKDT} + {3497853600 -32400 0 AKST} + {3508743600 -28800 1 AKDT} + {3529303200 -32400 0 AKST} + {3540193200 -28800 1 AKDT} + {3560752800 -32400 0 AKST} + {3572247600 -28800 1 AKDT} + {3592807200 -32400 0 AKST} + {3603697200 -28800 1 AKDT} + {3624256800 -32400 0 AKST} + {3635146800 -28800 1 AKDT} + {3655706400 -32400 0 AKST} + {3666596400 -28800 1 AKDT} + {3687156000 -32400 0 AKST} + {3698046000 -28800 1 AKDT} + {3718605600 -32400 0 AKST} + {3730100400 -28800 1 AKDT} + {3750660000 -32400 0 AKST} + {3761550000 -28800 1 AKDT} + {3782109600 -32400 0 AKST} + {3792999600 -28800 1 AKDT} + {3813559200 -32400 0 AKST} + {3824449200 -28800 1 AKDT} + {3845008800 -32400 0 AKST} + {3855898800 -28800 1 AKDT} + {3876458400 -32400 0 AKST} + {3887348400 -28800 1 AKDT} + {3907908000 -32400 0 AKST} + {3919402800 -28800 1 AKDT} + {3939962400 -32400 0 AKST} + {3950852400 -28800 1 AKDT} + {3971412000 -32400 0 AKST} + {3982302000 -28800 1 AKDT} + {4002861600 -32400 0 AKST} + {4013751600 -28800 1 AKDT} + {4034311200 -32400 0 AKST} + {4045201200 -28800 1 AKDT} + {4065760800 -32400 0 AKST} + {4076650800 -28800 1 AKDT} + {4097210400 -32400 0 AKST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Noronha b/mingw/lib/tcl8.5/tzdata/America/Noronha new file mode 100644 index 00000000..94d6f422 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Noronha @@ -0,0 +1,48 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Noronha) { + {-9223372036854775808 -7780 0 LMT} + {-1767217820 -7200 0 FNT} + {-1206961200 -3600 1 FNST} + {-1191366000 -7200 0 FNT} + {-1175378400 -3600 1 FNST} + {-1159830000 -7200 0 FNT} + {-633823200 -3600 1 FNST} + {-622072800 -7200 0 FNT} + {-602287200 -3600 1 FNST} + {-591836400 -7200 0 FNT} + {-570751200 -3600 1 FNST} + {-560214000 -7200 0 FNT} + {-539128800 -3600 1 FNST} + {-531356400 -7200 0 FNT} + {-191368800 -3600 1 FNST} + {-184201200 -7200 0 FNT} + {-155167200 -3600 1 FNST} + {-150073200 -7200 0 FNT} + {-128901600 -3600 1 FNST} + {-121129200 -7200 0 FNT} + {-99957600 -3600 1 FNST} + {-89593200 -7200 0 FNT} + {-68421600 -3600 1 FNST} + {-57970800 -7200 0 FNT} + {499744800 -3600 1 FNST} + {511232400 -7200 0 FNT} + {530589600 -3600 1 FNST} + {540262800 -7200 0 FNT} + {562125600 -3600 1 FNST} + {571194000 -7200 0 FNT} + {592970400 -3600 1 FNST} + {602038800 -7200 0 FNT} + {624420000 -3600 1 FNST} + {634698000 -7200 0 FNT} + {653533200 -7200 0 FNT} + {938656800 -7200 0 FNT} + {938916000 -3600 1 FNST} + {951613200 -7200 0 FNT} + {970970400 -3600 1 FNST} + {971571600 -7200 0 FNT} + {1000346400 -7200 0 FNT} + {1003024800 -3600 1 FNST} + {1013907600 -7200 0 FNT} + {1033434000 -7200 0 FNT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/North_Dakota/Center b/mingw/lib/tcl8.5/tzdata/America/North_Dakota/Center new file mode 100644 index 00000000..30782f7a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/North_Dakota/Center @@ -0,0 +1,279 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/North_Dakota/Center) { + {-9223372036854775808 -24312 0 LMT} + {-2717643600 -25200 0 MST} + {-1633273200 -21600 1 MDT} + {-1615132800 -25200 0 MST} + {-1601823600 -21600 1 MDT} + {-1583683200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-52930800 -21600 1 MDT} + {-37209600 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {9968400 -21600 1 MDT} + {25689600 -25200 0 MST} + {41418000 -21600 1 MDT} + {57744000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {126694800 -21600 1 MDT} + {152092800 -25200 0 MST} + {162378000 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720003600 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/North_Dakota/New_Salem b/mingw/lib/tcl8.5/tzdata/America/North_Dakota/New_Salem new file mode 100644 index 00000000..5a9d2298 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/North_Dakota/New_Salem @@ -0,0 +1,279 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/North_Dakota/New_Salem) { + {-9223372036854775808 -24339 0 LMT} + {-2717643600 -25200 0 MST} + {-1633273200 -21600 1 MDT} + {-1615132800 -25200 0 MST} + {-1601823600 -21600 1 MDT} + {-1583683200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-52930800 -21600 1 MDT} + {-37209600 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {9968400 -21600 1 MDT} + {25689600 -25200 0 MST} + {41418000 -21600 1 MDT} + {57744000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {126694800 -21600 1 MDT} + {152092800 -25200 0 MST} + {162378000 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067158800 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Panama b/mingw/lib/tcl8.5/tzdata/America/Panama new file mode 100644 index 00000000..3006785b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Panama @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Panama) { + {-9223372036854775808 -19088 0 LMT} + {-2524502512 -19176 0 CMT} + {-1946918424 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Pangnirtung b/mingw/lib/tcl8.5/tzdata/America/Pangnirtung new file mode 100644 index 00000000..640808e2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Pangnirtung @@ -0,0 +1,252 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Pangnirtung) { + {-9223372036854775808 0 0 zzz} + {-1546300800 -14400 0 AST} + {-880221600 -10800 1 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {-147902400 -7200 1 ADDT} + {-131572800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544600800 -10800 1 ADT} + {562136400 -14400 0 AST} + {576050400 -10800 1 ADT} + {594190800 -14400 0 AST} + {607500000 -10800 1 ADT} + {625640400 -14400 0 AST} + {638949600 -10800 1 ADT} + {657090000 -14400 0 AST} + {671004000 -10800 1 ADT} + {688539600 -14400 0 AST} + {702453600 -10800 1 ADT} + {719989200 -14400 0 AST} + {733903200 -10800 1 ADT} + {752043600 -14400 0 AST} + {765352800 -10800 1 ADT} + {783493200 -14400 0 AST} + {796802400 -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} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Paramaribo b/mingw/lib/tcl8.5/tzdata/America/Paramaribo new file mode 100644 index 00000000..d15f5c7e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Paramaribo @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Paramaribo) { + {-9223372036854775808 -13240 0 LMT} + {-1861906760 -13252 0 PMT} + {-1104524348 -13236 0 PMT} + {-765317964 -12600 0 NEGT} + {185686200 -12600 0 SRT} + {465449400 -10800 0 SRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Phoenix b/mingw/lib/tcl8.5/tzdata/America/Phoenix new file mode 100644 index 00000000..3d37bb4e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Phoenix @@ -0,0 +1,17 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Phoenix) { + {-9223372036854775808 -26898 0 LMT} + {-2717643600 -25200 0 MST} + {-1633273200 -21600 1 MDT} + {-1615132800 -25200 0 MST} + {-1601823600 -21600 1 MDT} + {-1583683200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-820519140 -25200 0 MST} + {-796841940 -25200 0 MST} + {-94669200 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-56221200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Port-au-Prince b/mingw/lib/tcl8.5/tzdata/America/Port-au-Prince new file mode 100644 index 00000000..04ee62c3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Port-au-Prince @@ -0,0 +1,41 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Port-au-Prince) { + {-9223372036854775808 -17360 0 LMT} + {-2524504240 -17340 0 PPMT} + {-1670483460 -18000 0 EST} + {421218000 -14400 1 EDT} + {436334400 -18000 0 EST} + {452062800 -14400 1 EDT} + {467784000 -18000 0 EST} + {483512400 -14400 1 EDT} + {499233600 -18000 0 EST} + {514962000 -14400 1 EDT} + {530683200 -18000 0 EST} + {546411600 -14400 1 EDT} + {562132800 -18000 0 EST} + {576050400 -14400 1 EDT} + {594194400 -18000 0 EST} + {607500000 -14400 1 EDT} + {625644000 -18000 0 EST} + {638949600 -14400 1 EDT} + {657093600 -18000 0 EST} + {671004000 -14400 1 EDT} + {688543200 -18000 0 EST} + {702453600 -14400 1 EDT} + {719992800 -18000 0 EST} + {733903200 -14400 1 EDT} + {752047200 -18000 0 EST} + {765352800 -14400 1 EDT} + {783496800 -18000 0 EST} + {796802400 -14400 1 EDT} + {814946400 -18000 0 EST} + {828856800 -14400 1 EDT} + {846396000 -18000 0 EST} + {860306400 -14400 1 EDT} + {877845600 -18000 0 EST} + {1112504400 -14400 1 EDT} + {1130644800 -18000 0 EST} + {1143954000 -14400 1 EDT} + {1162094400 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Port_of_Spain b/mingw/lib/tcl8.5/tzdata/America/Port_of_Spain new file mode 100644 index 00000000..c360c87a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Port_of_Spain @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Port_of_Spain) { + {-9223372036854775808 -14764 0 LMT} + {-1825098836 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Porto_Acre b/mingw/lib/tcl8.5/tzdata/America/Porto_Acre new file mode 100644 index 00000000..0626001b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Porto_Acre @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Rio_Branco)]} { + LoadTimeZoneFile America/Rio_Branco +} +set TZData(:America/Porto_Acre) $TZData(:America/Rio_Branco) diff --git a/mingw/lib/tcl8.5/tzdata/America/Porto_Velho b/mingw/lib/tcl8.5/tzdata/America/Porto_Velho new file mode 100644 index 00000000..ce611d23 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Porto_Velho @@ -0,0 +1,35 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Porto_Velho) { + {-9223372036854775808 -15336 0 LMT} + {-1767210264 -14400 0 AMT} + {-1206954000 -10800 1 AMST} + {-1191358800 -14400 0 AMT} + {-1175371200 -10800 1 AMST} + {-1159822800 -14400 0 AMT} + {-633816000 -10800 1 AMST} + {-622065600 -14400 0 AMT} + {-602280000 -10800 1 AMST} + {-591829200 -14400 0 AMT} + {-570744000 -10800 1 AMST} + {-560206800 -14400 0 AMT} + {-539121600 -10800 1 AMST} + {-531349200 -14400 0 AMT} + {-191361600 -10800 1 AMST} + {-184194000 -14400 0 AMT} + {-155160000 -10800 1 AMST} + {-150066000 -14400 0 AMT} + {-128894400 -10800 1 AMST} + {-121122000 -14400 0 AMT} + {-99950400 -10800 1 AMST} + {-89586000 -14400 0 AMT} + {-68414400 -10800 1 AMST} + {-57963600 -14400 0 AMT} + {499752000 -10800 1 AMST} + {511239600 -14400 0 AMT} + {530596800 -10800 1 AMST} + {540270000 -14400 0 AMT} + {562132800 -10800 1 AMST} + {571201200 -14400 0 AMT} + {590036400 -14400 0 AMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Puerto_Rico b/mingw/lib/tcl8.5/tzdata/America/Puerto_Rico new file mode 100644 index 00000000..0d5c9b4b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Puerto_Rico @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Puerto_Rico) { + {-9223372036854775808 -15865 0 LMT} + {-2233035335 -14400 0 AST} + {-873057600 -10800 0 AWT} + {-769395600 -10800 1 APT} + {-765399600 -14400 0 AST} + {-757368000 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Rainy_River b/mingw/lib/tcl8.5/tzdata/America/Rainy_River new file mode 100644 index 00000000..331bac62 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Rainy_River @@ -0,0 +1,264 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Rainy_River) { + {-9223372036854775808 -22696 0 LMT} + {-2366732504 -21600 0 CST} + {-1632067200 -18000 1 CDT} + {-1614790800 -21600 0 CST} + {-923248800 -18000 1 CDT} + {-880214400 -18000 0 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {136368000 -18000 1 CDT} + {152089200 -21600 0 CST} + {167817600 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet b/mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet new file mode 100644 index 00000000..770ec5d2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Rankin_Inlet) { + {-9223372036854775808 0 0 zzz} + {-410227200 -21600 0 CST} + {-147895200 -14400 1 CDDT} + {-131565600 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -18000 0 EST} + {986112000 -18000 0 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Recife b/mingw/lib/tcl8.5/tzdata/America/Recife new file mode 100644 index 00000000..f6ae00e2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Recife @@ -0,0 +1,48 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Recife) { + {-9223372036854775808 -8376 0 LMT} + {-1767217224 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-191365200 -7200 1 BRST} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {653536800 -10800 0 BRT} + {938660400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {971575200 -10800 0 BRT} + {1000350000 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1033437600 -10800 0 BRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Regina b/mingw/lib/tcl8.5/tzdata/America/Regina new file mode 100644 index 00000000..2030d75f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Regina @@ -0,0 +1,58 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Regina) { + {-9223372036854775808 -25116 0 LMT} + {-2030202084 -25200 0 MST} + {-1632063600 -21600 1 MDT} + {-1614787200 -25200 0 MST} + {-1251651600 -21600 1 MDT} + {-1238349600 -25200 0 MST} + {-1220202000 -21600 1 MDT} + {-1206900000 -25200 0 MST} + {-1188752400 -21600 1 MDT} + {-1175450400 -25200 0 MST} + {-1156698000 -21600 1 MDT} + {-1144000800 -25200 0 MST} + {-1125248400 -21600 1 MDT} + {-1111946400 -25200 0 MST} + {-1032714000 -21600 1 MDT} + {-1016992800 -25200 0 MST} + {-1001264400 -21600 1 MDT} + {-986148000 -25200 0 MST} + {-969814800 -21600 1 MDT} + {-954093600 -25200 0 MST} + {-937760400 -21600 1 MDT} + {-922039200 -25200 0 MST} + {-906310800 -21600 1 MDT} + {-890589600 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-748450800 -21600 1 MDT} + {-732729600 -25200 0 MST} + {-715791600 -21600 1 MDT} + {-702489600 -25200 0 MST} + {-684342000 -21600 1 MDT} + {-671040000 -25200 0 MST} + {-652892400 -21600 1 MDT} + {-639590400 -25200 0 MST} + {-620838000 -21600 1 MDT} + {-608140800 -25200 0 MST} + {-589388400 -21600 1 MDT} + {-576086400 -25200 0 MST} + {-557938800 -21600 1 MDT} + {-544636800 -25200 0 MST} + {-526489200 -21600 1 MDT} + {-513187200 -25200 0 MST} + {-495039600 -21600 1 MDT} + {-481737600 -25200 0 MST} + {-463590000 -21600 1 MDT} + {-450288000 -25200 0 MST} + {-431535600 -21600 1 MDT} + {-418233600 -25200 0 MST} + {-400086000 -21600 1 MDT} + {-386784000 -25200 0 MST} + {-337186800 -21600 1 MDT} + {-321465600 -25200 0 MST} + {-305737200 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Resolute b/mingw/lib/tcl8.5/tzdata/America/Resolute new file mode 100644 index 00000000..d82a8370 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Resolute @@ -0,0 +1,62 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Resolute) { + {-9223372036854775808 0 0 zzz} + {-704937600 -21600 0 CST} + {-147895200 -14400 1 CDDT} + {-131565600 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -18000 0 EST} + {986112000 -18000 0 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162108800 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Rio_Branco b/mingw/lib/tcl8.5/tzdata/America/Rio_Branco new file mode 100644 index 00000000..f4513e3b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Rio_Branco @@ -0,0 +1,35 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Rio_Branco) { + {-9223372036854775808 -16272 0 LMT} + {-1767209328 -18000 0 ACT} + {-1206950400 -14400 1 ACST} + {-1191355200 -18000 0 ACT} + {-1175367600 -14400 1 ACST} + {-1159819200 -18000 0 ACT} + {-633812400 -14400 1 ACST} + {-622062000 -18000 0 ACT} + {-602276400 -14400 1 ACST} + {-591825600 -18000 0 ACT} + {-570740400 -14400 1 ACST} + {-560203200 -18000 0 ACT} + {-539118000 -14400 1 ACST} + {-531345600 -18000 0 ACT} + {-191358000 -14400 1 ACST} + {-184190400 -18000 0 ACT} + {-155156400 -14400 1 ACST} + {-150062400 -18000 0 ACT} + {-128890800 -14400 1 ACST} + {-121118400 -18000 0 ACT} + {-99946800 -14400 1 ACST} + {-89582400 -18000 0 ACT} + {-68410800 -14400 1 ACST} + {-57960000 -18000 0 ACT} + {499755600 -14400 1 ACST} + {511243200 -18000 0 ACT} + {530600400 -14400 1 ACST} + {540273600 -18000 0 ACT} + {562136400 -14400 1 ACST} + {571204800 -18000 0 ACT} + {590040000 -18000 0 ACT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Rosario b/mingw/lib/tcl8.5/tzdata/America/Rosario new file mode 100644 index 00000000..6687f880 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Rosario @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Argentina/Cordoba)]} { + LoadTimeZoneFile America/Argentina/Cordoba +} +set TZData(:America/Rosario) $TZData(:America/Argentina/Cordoba) diff --git a/mingw/lib/tcl8.5/tzdata/America/Santiago b/mingw/lib/tcl8.5/tzdata/America/Santiago new file mode 100644 index 00000000..7189c2df --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Santiago @@ -0,0 +1,291 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Santiago) { + {-9223372036854775808 -16966 0 LMT} + {-2524504634 -16966 0 SMT} + {-1893439034 -18000 0 CLT} + {-1688410800 -16966 0 SMT} + {-1619983034 -14400 0 CLT} + {-1593806400 -16966 0 SMT} + {-1335986234 -18000 0 CLT} + {-1335985200 -14400 1 CLST} + {-1317585600 -18000 0 CLT} + {-1304362800 -14400 1 CLST} + {-1286049600 -18000 0 CLT} + {-1272826800 -14400 1 CLST} + {-1254513600 -18000 0 CLT} + {-1241290800 -14400 1 CLST} + {-1222977600 -18000 0 CLT} + {-1209754800 -14400 1 CLST} + {-1191355200 -18000 0 CLT} + {-1178132400 -14400 1 CLST} + {-870552000 -18000 0 CLT} + {-865278000 -14400 1 CLST} + {-740520000 -14400 1 CLST} + {-736376400 -18000 0 CLT} + {-718056000 -18000 0 CLT} + {-713646000 -14400 0 CLT} + {-36619200 -10800 1 CLST} + {-23922000 -14400 0 CLT} + {-3355200 -10800 1 CLST} + {7527600 -14400 0 CLT} + {24465600 -10800 1 CLST} + {37767600 -14400 0 CLT} + {55915200 -10800 1 CLST} + {69217200 -14400 0 CLT} + {87969600 -10800 1 CLST} + {100666800 -14400 0 CLT} + {118209600 -10800 1 CLST} + {132116400 -14400 0 CLT} + {150868800 -10800 1 CLST} + {163566000 -14400 0 CLT} + {182318400 -10800 1 CLST} + {195620400 -14400 0 CLT} + {213768000 -10800 1 CLST} + {227070000 -14400 0 CLT} + {245217600 -10800 1 CLST} + {258519600 -14400 0 CLT} + {277272000 -10800 1 CLST} + {289969200 -14400 0 CLT} + {308721600 -10800 1 CLST} + {321418800 -14400 0 CLT} + {340171200 -10800 1 CLST} + {353473200 -14400 0 CLT} + {371620800 -10800 1 CLST} + {384922800 -14400 0 CLT} + {403070400 -10800 1 CLST} + {416372400 -14400 0 CLT} + {434520000 -10800 1 CLST} + {447822000 -14400 0 CLT} + {466574400 -10800 1 CLST} + {479271600 -14400 0 CLT} + {498024000 -10800 1 CLST} + {510721200 -14400 0 CLT} + {529473600 -10800 1 CLST} + {545194800 -14400 0 CLT} + {560923200 -10800 1 CLST} + {574225200 -14400 0 CLT} + {591768000 -10800 1 CLST} + {605674800 -14400 0 CLT} + {624427200 -10800 1 CLST} + {637729200 -14400 0 CLT} + {653457600 -10800 1 CLST} + {668574000 -14400 0 CLT} + {687326400 -10800 1 CLST} + {700628400 -14400 0 CLT} + {718776000 -10800 1 CLST} + {732078000 -14400 0 CLT} + {750225600 -10800 1 CLST} + {763527600 -14400 0 CLT} + {781675200 -10800 1 CLST} + {794977200 -14400 0 CLT} + {813729600 -10800 1 CLST} + {826426800 -14400 0 CLT} + {845179200 -10800 1 CLST} + {859690800 -14400 0 CLT} + {876628800 -10800 1 CLST} + {889930800 -14400 0 CLT} + {906868800 -10800 1 CLST} + {923194800 -14400 0 CLT} + {939528000 -10800 1 CLST} + {952830000 -14400 0 CLT} + {971582400 -10800 1 CLST} + {984279600 -14400 0 CLT} + {1003032000 -10800 1 CLST} + {1015729200 -14400 0 CLT} + {1034481600 -10800 1 CLST} + {1047178800 -14400 0 CLT} + {1065931200 -10800 1 CLST} + {1079233200 -14400 0 CLT} + {1097380800 -10800 1 CLST} + {1110682800 -14400 0 CLT} + {1128830400 -10800 1 CLST} + {1142132400 -14400 0 CLT} + {1160884800 -10800 1 CLST} + {1173582000 -14400 0 CLT} + {1192334400 -10800 1 CLST} + {1205031600 -14400 0 CLT} + {1223784000 -10800 1 CLST} + {1237086000 -14400 0 CLT} + {1255233600 -10800 1 CLST} + {1268535600 -14400 0 CLT} + {1286683200 -10800 1 CLST} + {1299985200 -14400 0 CLT} + {1318132800 -10800 1 CLST} + {1331434800 -14400 0 CLT} + {1350187200 -10800 1 CLST} + {1362884400 -14400 0 CLT} + {1381636800 -10800 1 CLST} + {1394334000 -14400 0 CLT} + {1413086400 -10800 1 CLST} + {1426388400 -14400 0 CLT} + {1444536000 -10800 1 CLST} + {1457838000 -14400 0 CLT} + {1475985600 -10800 1 CLST} + {1489287600 -14400 0 CLT} + {1508040000 -10800 1 CLST} + {1520737200 -14400 0 CLT} + {1539489600 -10800 1 CLST} + {1552186800 -14400 0 CLT} + {1570939200 -10800 1 CLST} + {1584241200 -14400 0 CLT} + {1602388800 -10800 1 CLST} + {1615690800 -14400 0 CLT} + {1633838400 -10800 1 CLST} + {1647140400 -14400 0 CLT} + {1665288000 -10800 1 CLST} + {1678590000 -14400 0 CLT} + {1697342400 -10800 1 CLST} + {1710039600 -14400 0 CLT} + {1728792000 -10800 1 CLST} + {1741489200 -14400 0 CLT} + {1760241600 -10800 1 CLST} + {1773543600 -14400 0 CLT} + {1791691200 -10800 1 CLST} + {1804993200 -14400 0 CLT} + {1823140800 -10800 1 CLST} + {1836442800 -14400 0 CLT} + {1855195200 -10800 1 CLST} + {1867892400 -14400 0 CLT} + {1886644800 -10800 1 CLST} + {1899342000 -14400 0 CLT} + {1918094400 -10800 1 CLST} + {1930791600 -14400 0 CLT} + {1949544000 -10800 1 CLST} + {1962846000 -14400 0 CLT} + {1980993600 -10800 1 CLST} + {1994295600 -14400 0 CLT} + {2012443200 -10800 1 CLST} + {2025745200 -14400 0 CLT} + {2044497600 -10800 1 CLST} + {2057194800 -14400 0 CLT} + {2075947200 -10800 1 CLST} + {2088644400 -14400 0 CLT} + {2107396800 -10800 1 CLST} + {2120698800 -14400 0 CLT} + {2138846400 -10800 1 CLST} + {2152148400 -14400 0 CLT} + {2170296000 -10800 1 CLST} + {2183598000 -14400 0 CLT} + {2201745600 -10800 1 CLST} + {2215047600 -14400 0 CLT} + {2233800000 -10800 1 CLST} + {2246497200 -14400 0 CLT} + {2265249600 -10800 1 CLST} + {2277946800 -14400 0 CLT} + {2296699200 -10800 1 CLST} + {2310001200 -14400 0 CLT} + {2328148800 -10800 1 CLST} + {2341450800 -14400 0 CLT} + {2359598400 -10800 1 CLST} + {2372900400 -14400 0 CLT} + {2391652800 -10800 1 CLST} + {2404350000 -14400 0 CLT} + {2423102400 -10800 1 CLST} + {2435799600 -14400 0 CLT} + {2454552000 -10800 1 CLST} + {2467854000 -14400 0 CLT} + {2486001600 -10800 1 CLST} + {2499303600 -14400 0 CLT} + {2517451200 -10800 1 CLST} + {2530753200 -14400 0 CLT} + {2548900800 -10800 1 CLST} + {2562202800 -14400 0 CLT} + {2580955200 -10800 1 CLST} + {2593652400 -14400 0 CLT} + {2612404800 -10800 1 CLST} + {2625102000 -14400 0 CLT} + {2643854400 -10800 1 CLST} + {2657156400 -14400 0 CLT} + {2675304000 -10800 1 CLST} + {2688606000 -14400 0 CLT} + {2706753600 -10800 1 CLST} + {2720055600 -14400 0 CLT} + {2738808000 -10800 1 CLST} + {2751505200 -14400 0 CLT} + {2770257600 -10800 1 CLST} + {2782954800 -14400 0 CLT} + {2801707200 -10800 1 CLST} + {2814404400 -14400 0 CLT} + {2833156800 -10800 1 CLST} + {2846458800 -14400 0 CLT} + {2864606400 -10800 1 CLST} + {2877908400 -14400 0 CLT} + {2896056000 -10800 1 CLST} + {2909358000 -14400 0 CLT} + {2928110400 -10800 1 CLST} + {2940807600 -14400 0 CLT} + {2959560000 -10800 1 CLST} + {2972257200 -14400 0 CLT} + {2991009600 -10800 1 CLST} + {3004311600 -14400 0 CLT} + {3022459200 -10800 1 CLST} + {3035761200 -14400 0 CLT} + {3053908800 -10800 1 CLST} + {3067210800 -14400 0 CLT} + {3085358400 -10800 1 CLST} + {3098660400 -14400 0 CLT} + {3117412800 -10800 1 CLST} + {3130110000 -14400 0 CLT} + {3148862400 -10800 1 CLST} + {3161559600 -14400 0 CLT} + {3180312000 -10800 1 CLST} + {3193614000 -14400 0 CLT} + {3211761600 -10800 1 CLST} + {3225063600 -14400 0 CLT} + {3243211200 -10800 1 CLST} + {3256513200 -14400 0 CLT} + {3275265600 -10800 1 CLST} + {3287962800 -14400 0 CLT} + {3306715200 -10800 1 CLST} + {3319412400 -14400 0 CLT} + {3338164800 -10800 1 CLST} + {3351466800 -14400 0 CLT} + {3369614400 -10800 1 CLST} + {3382916400 -14400 0 CLT} + {3401064000 -10800 1 CLST} + {3414366000 -14400 0 CLT} + {3432513600 -10800 1 CLST} + {3445815600 -14400 0 CLT} + {3464568000 -10800 1 CLST} + {3477265200 -14400 0 CLT} + {3496017600 -10800 1 CLST} + {3508714800 -14400 0 CLT} + {3527467200 -10800 1 CLST} + {3540769200 -14400 0 CLT} + {3558916800 -10800 1 CLST} + {3572218800 -14400 0 CLT} + {3590366400 -10800 1 CLST} + {3603668400 -14400 0 CLT} + {3622420800 -10800 1 CLST} + {3635118000 -14400 0 CLT} + {3653870400 -10800 1 CLST} + {3666567600 -14400 0 CLT} + {3685320000 -10800 1 CLST} + {3698017200 -14400 0 CLT} + {3716769600 -10800 1 CLST} + {3730071600 -14400 0 CLT} + {3748219200 -10800 1 CLST} + {3761521200 -14400 0 CLT} + {3779668800 -10800 1 CLST} + {3792970800 -14400 0 CLT} + {3811723200 -10800 1 CLST} + {3824420400 -14400 0 CLT} + {3843172800 -10800 1 CLST} + {3855870000 -14400 0 CLT} + {3874622400 -10800 1 CLST} + {3887924400 -14400 0 CLT} + {3906072000 -10800 1 CLST} + {3919374000 -14400 0 CLT} + {3937521600 -10800 1 CLST} + {3950823600 -14400 0 CLT} + {3968971200 -10800 1 CLST} + {3982273200 -14400 0 CLT} + {4001025600 -10800 1 CLST} + {4013722800 -14400 0 CLT} + {4032475200 -10800 1 CLST} + {4045172400 -14400 0 CLT} + {4063924800 -10800 1 CLST} + {4077226800 -14400 0 CLT} + {4095374400 -10800 1 CLST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Santo_Domingo b/mingw/lib/tcl8.5/tzdata/America/Santo_Domingo new file mode 100644 index 00000000..7706918d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Santo_Domingo @@ -0,0 +1,21 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Santo_Domingo) { + {-9223372036854775808 -16776 0 LMT} + {-2524504824 -16800 0 SDMT} + {-1159773600 -18000 0 EST} + {-100119600 -14400 1 EDT} + {-89668800 -18000 0 EST} + {-5770800 -16200 1 EHDT} + {4422600 -18000 0 EST} + {25678800 -16200 1 EHDT} + {33193800 -18000 0 EST} + {57733200 -16200 1 EHDT} + {64816200 -18000 0 EST} + {89182800 -16200 1 EHDT} + {96438600 -18000 0 EST} + {120632400 -16200 1 EHDT} + {127974600 -18000 0 EST} + {152082000 -14400 0 AST} + {975823200 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Sao_Paulo b/mingw/lib/tcl8.5/tzdata/America/Sao_Paulo new file mode 100644 index 00000000..e2d8a8f2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Sao_Paulo @@ -0,0 +1,258 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Sao_Paulo) { + {-9223372036854775808 -11188 0 LMT} + {-1767214412 -10800 0 BRT} + {-1206957600 -7200 1 BRST} + {-1191362400 -10800 0 BRT} + {-1175374800 -7200 1 BRST} + {-1159826400 -10800 0 BRT} + {-633819600 -7200 1 BRST} + {-622069200 -10800 0 BRT} + {-602283600 -7200 1 BRST} + {-591832800 -10800 0 BRT} + {-570747600 -7200 1 BRST} + {-560210400 -10800 0 BRT} + {-539125200 -7200 1 BRST} + {-531352800 -10800 0 BRT} + {-195429600 -7200 1 BRST} + {-189381600 -7200 0 BRT} + {-184197600 -10800 0 BRT} + {-155163600 -7200 1 BRST} + {-150069600 -10800 0 BRT} + {-128898000 -7200 1 BRST} + {-121125600 -10800 0 BRT} + {-99954000 -7200 1 BRST} + {-89589600 -10800 0 BRT} + {-68418000 -7200 1 BRST} + {-57967200 -10800 0 BRT} + {499748400 -7200 1 BRST} + {511236000 -10800 0 BRT} + {530593200 -7200 1 BRST} + {540266400 -10800 0 BRT} + {562129200 -7200 1 BRST} + {571197600 -10800 0 BRT} + {592974000 -7200 1 BRST} + {602042400 -10800 0 BRT} + {624423600 -7200 1 BRST} + {634701600 -10800 0 BRT} + {656478000 -7200 1 BRST} + {666756000 -10800 0 BRT} + {687927600 -7200 1 BRST} + {697600800 -10800 0 BRT} + {719982000 -7200 1 BRST} + {728445600 -10800 0 BRT} + {750826800 -7200 1 BRST} + {761709600 -10800 0 BRT} + {782276400 -7200 1 BRST} + {793159200 -10800 0 BRT} + {813726000 -7200 1 BRST} + {824004000 -10800 0 BRT} + {844570800 -7200 1 BRST} + {856058400 -10800 0 BRT} + {876106800 -7200 1 BRST} + {888717600 -10800 0 BRT} + {908074800 -7200 1 BRST} + {919562400 -10800 0 BRT} + {938919600 -7200 1 BRST} + {951616800 -10800 0 BRT} + {970974000 -7200 1 BRST} + {982461600 -10800 0 BRT} + {1003028400 -7200 1 BRST} + {1013911200 -10800 0 BRT} + {1036292400 -7200 1 BRST} + {1045360800 -10800 0 BRT} + {1066532400 -7200 1 BRST} + {1076810400 -10800 0 BRT} + {1099364400 -7200 1 BRST} + {1108864800 -10800 0 BRT} + {1129431600 -7200 1 BRST} + {1140314400 -10800 0 BRT} + {1162695600 -7200 1 BRST} + {1172368800 -10800 0 BRT} + {1194145200 -7200 1 BRST} + {1203818400 -10800 0 BRT} + {1225594800 -7200 1 BRST} + {1235268000 -10800 0 BRT} + {1257044400 -7200 1 BRST} + {1267322400 -10800 0 BRT} + {1289098800 -7200 1 BRST} + {1298772000 -10800 0 BRT} + {1320548400 -7200 1 BRST} + {1330221600 -10800 0 BRT} + {1351998000 -7200 1 BRST} + {1361671200 -10800 0 BRT} + {1383447600 -7200 1 BRST} + {1393120800 -10800 0 BRT} + {1414897200 -7200 1 BRST} + {1424570400 -10800 0 BRT} + {1446346800 -7200 1 BRST} + {1456624800 -10800 0 BRT} + {1478401200 -7200 1 BRST} + {1488074400 -10800 0 BRT} + {1509850800 -7200 1 BRST} + {1519524000 -10800 0 BRT} + {1541300400 -7200 1 BRST} + {1550973600 -10800 0 BRT} + {1572750000 -7200 1 BRST} + {1582423200 -10800 0 BRT} + {1604199600 -7200 1 BRST} + {1614477600 -10800 0 BRT} + {1636254000 -7200 1 BRST} + {1645927200 -10800 0 BRT} + {1667703600 -7200 1 BRST} + {1677376800 -10800 0 BRT} + {1699153200 -7200 1 BRST} + {1708826400 -10800 0 BRT} + {1730602800 -7200 1 BRST} + {1740276000 -10800 0 BRT} + {1762052400 -7200 1 BRST} + {1771725600 -10800 0 BRT} + {1793502000 -7200 1 BRST} + {1803780000 -10800 0 BRT} + {1825556400 -7200 1 BRST} + {1835229600 -10800 0 BRT} + {1857006000 -7200 1 BRST} + {1866679200 -10800 0 BRT} + {1888455600 -7200 1 BRST} + {1898128800 -10800 0 BRT} + {1919905200 -7200 1 BRST} + {1929578400 -10800 0 BRT} + {1951354800 -7200 1 BRST} + {1961632800 -10800 0 BRT} + {1983409200 -7200 1 BRST} + {1993082400 -10800 0 BRT} + {2014858800 -7200 1 BRST} + {2024532000 -10800 0 BRT} + {2046308400 -7200 1 BRST} + {2055981600 -10800 0 BRT} + {2077758000 -7200 1 BRST} + {2087431200 -10800 0 BRT} + {2109207600 -7200 1 BRST} + {2118880800 -10800 0 BRT} + {2140657200 -7200 1 BRST} + {2150935200 -10800 0 BRT} + {2172711600 -7200 1 BRST} + {2182384800 -10800 0 BRT} + {2204161200 -7200 1 BRST} + {2213834400 -10800 0 BRT} + {2235610800 -7200 1 BRST} + {2245284000 -10800 0 BRT} + {2267060400 -7200 1 BRST} + {2276733600 -10800 0 BRT} + {2298510000 -7200 1 BRST} + {2308183200 -10800 0 BRT} + {2329959600 -7200 1 BRST} + {2340237600 -10800 0 BRT} + {2362014000 -7200 1 BRST} + {2371687200 -10800 0 BRT} + {2393463600 -7200 1 BRST} + {2403136800 -10800 0 BRT} + {2424913200 -7200 1 BRST} + {2434586400 -10800 0 BRT} + {2456362800 -7200 1 BRST} + {2466036000 -10800 0 BRT} + {2487812400 -7200 1 BRST} + {2498090400 -10800 0 BRT} + {2519866800 -7200 1 BRST} + {2529540000 -10800 0 BRT} + {2551316400 -7200 1 BRST} + {2560989600 -10800 0 BRT} + {2582766000 -7200 1 BRST} + {2592439200 -10800 0 BRT} + {2614215600 -7200 1 BRST} + {2623888800 -10800 0 BRT} + {2645665200 -7200 1 BRST} + {2655338400 -10800 0 BRT} + {2677114800 -7200 1 BRST} + {2687392800 -10800 0 BRT} + {2709169200 -7200 1 BRST} + {2718842400 -10800 0 BRT} + {2740618800 -7200 1 BRST} + {2750292000 -10800 0 BRT} + {2772068400 -7200 1 BRST} + {2781741600 -10800 0 BRT} + {2803518000 -7200 1 BRST} + {2813191200 -10800 0 BRT} + {2834967600 -7200 1 BRST} + {2845245600 -10800 0 BRT} + {2867022000 -7200 1 BRST} + {2876695200 -10800 0 BRT} + {2898471600 -7200 1 BRST} + {2908144800 -10800 0 BRT} + {2929921200 -7200 1 BRST} + {2939594400 -10800 0 BRT} + {2961370800 -7200 1 BRST} + {2971044000 -10800 0 BRT} + {2992820400 -7200 1 BRST} + {3002493600 -10800 0 BRT} + {3024270000 -7200 1 BRST} + {3034548000 -10800 0 BRT} + {3056324400 -7200 1 BRST} + {3065997600 -10800 0 BRT} + {3087774000 -7200 1 BRST} + {3097447200 -10800 0 BRT} + {3119223600 -7200 1 BRST} + {3128896800 -10800 0 BRT} + {3150673200 -7200 1 BRST} + {3160346400 -10800 0 BRT} + {3182122800 -7200 1 BRST} + {3191796000 -10800 0 BRT} + {3213572400 -7200 1 BRST} + {3223850400 -10800 0 BRT} + {3245626800 -7200 1 BRST} + {3255300000 -10800 0 BRT} + {3277076400 -7200 1 BRST} + {3286749600 -10800 0 BRT} + {3308526000 -7200 1 BRST} + {3318199200 -10800 0 BRT} + {3339975600 -7200 1 BRST} + {3349648800 -10800 0 BRT} + {3371425200 -7200 1 BRST} + {3381703200 -10800 0 BRT} + {3403479600 -7200 1 BRST} + {3413152800 -10800 0 BRT} + {3434929200 -7200 1 BRST} + {3444602400 -10800 0 BRT} + {3466378800 -7200 1 BRST} + {3476052000 -10800 0 BRT} + {3497828400 -7200 1 BRST} + {3507501600 -10800 0 BRT} + {3529278000 -7200 1 BRST} + {3538951200 -10800 0 BRT} + {3560727600 -7200 1 BRST} + {3571005600 -10800 0 BRT} + {3592782000 -7200 1 BRST} + {3602455200 -10800 0 BRT} + {3624231600 -7200 1 BRST} + {3633904800 -10800 0 BRT} + {3655681200 -7200 1 BRST} + {3665354400 -10800 0 BRT} + {3687130800 -7200 1 BRST} + {3696804000 -10800 0 BRT} + {3718580400 -7200 1 BRST} + {3728858400 -10800 0 BRT} + {3750634800 -7200 1 BRST} + {3760308000 -10800 0 BRT} + {3782084400 -7200 1 BRST} + {3791757600 -10800 0 BRT} + {3813534000 -7200 1 BRST} + {3823207200 -10800 0 BRT} + {3844983600 -7200 1 BRST} + {3854656800 -10800 0 BRT} + {3876433200 -7200 1 BRST} + {3886106400 -10800 0 BRT} + {3907882800 -7200 1 BRST} + {3918160800 -10800 0 BRT} + {3939937200 -7200 1 BRST} + {3949610400 -10800 0 BRT} + {3971386800 -7200 1 BRST} + {3981060000 -10800 0 BRT} + {4002836400 -7200 1 BRST} + {4012509600 -10800 0 BRT} + {4034286000 -7200 1 BRST} + {4043959200 -10800 0 BRT} + {4065735600 -7200 1 BRST} + {4075408800 -10800 0 BRT} + {4097185200 -7200 1 BRST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Scoresbysund b/mingw/lib/tcl8.5/tzdata/America/Scoresbysund new file mode 100644 index 00000000..74a332cc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Scoresbysund @@ -0,0 +1,246 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Scoresbysund) { + {-9223372036854775808 -5272 0 LMT} + {-1686090728 -7200 0 CGT} + {323841600 -3600 0 CGST} + {338961600 -7200 0 CGT} + {354679200 0 0 EGST} + {370400400 -3600 0 EGT} + {386125200 0 1 EGST} + {401850000 -3600 0 EGT} + {417574800 0 1 EGST} + {433299600 -3600 0 EGT} + {449024400 0 1 EGST} + {465354000 -3600 0 EGT} + {481078800 0 1 EGST} + {496803600 -3600 0 EGT} + {512528400 0 1 EGST} + {528253200 -3600 0 EGT} + {543978000 0 1 EGST} + {559702800 -3600 0 EGT} + {575427600 0 1 EGST} + {591152400 -3600 0 EGT} + {606877200 0 1 EGST} + {622602000 -3600 0 EGT} + {638326800 0 1 EGST} + {654656400 -3600 0 EGT} + {670381200 0 1 EGST} + {686106000 -3600 0 EGT} + {701830800 0 1 EGST} + {717555600 -3600 0 EGT} + {733280400 0 1 EGST} + {749005200 -3600 0 EGT} + {764730000 0 1 EGST} + {780454800 -3600 0 EGT} + {796179600 0 1 EGST} + {811904400 -3600 0 EGT} + {828234000 0 1 EGST} + {846378000 -3600 0 EGT} + {859683600 0 1 EGST} + {877827600 -3600 0 EGT} + {891133200 0 1 EGST} + {909277200 -3600 0 EGT} + {922582800 0 1 EGST} + {941331600 -3600 0 EGT} + {954032400 0 1 EGST} + {972781200 -3600 0 EGT} + {985482000 0 1 EGST} + {1004230800 -3600 0 EGT} + {1017536400 0 1 EGST} + {1035680400 -3600 0 EGT} + {1048986000 0 1 EGST} + {1067130000 -3600 0 EGT} + {1080435600 0 1 EGST} + {1099184400 -3600 0 EGT} + {1111885200 0 1 EGST} + {1130634000 -3600 0 EGT} + {1143334800 0 1 EGST} + {1162083600 -3600 0 EGT} + {1174784400 0 1 EGST} + {1193533200 -3600 0 EGT} + {1206838800 0 1 EGST} + {1224982800 -3600 0 EGT} + {1238288400 0 1 EGST} + {1256432400 -3600 0 EGT} + {1269738000 0 1 EGST} + {1288486800 -3600 0 EGT} + {1301187600 0 1 EGST} + {1319936400 -3600 0 EGT} + {1332637200 0 1 EGST} + {1351386000 -3600 0 EGT} + {1364691600 0 1 EGST} + {1382835600 -3600 0 EGT} + {1396141200 0 1 EGST} + {1414285200 -3600 0 EGT} + {1427590800 0 1 EGST} + {1445734800 -3600 0 EGT} + {1459040400 0 1 EGST} + {1477789200 -3600 0 EGT} + {1490490000 0 1 EGST} + {1509238800 -3600 0 EGT} + {1521939600 0 1 EGST} + {1540688400 -3600 0 EGT} + {1553994000 0 1 EGST} + {1572138000 -3600 0 EGT} + {1585443600 0 1 EGST} + {1603587600 -3600 0 EGT} + {1616893200 0 1 EGST} + {1635642000 -3600 0 EGT} + {1648342800 0 1 EGST} + {1667091600 -3600 0 EGT} + {1679792400 0 1 EGST} + {1698541200 -3600 0 EGT} + {1711846800 0 1 EGST} + {1729990800 -3600 0 EGT} + {1743296400 0 1 EGST} + {1761440400 -3600 0 EGT} + {1774746000 0 1 EGST} + {1792890000 -3600 0 EGT} + {1806195600 0 1 EGST} + {1824944400 -3600 0 EGT} + {1837645200 0 1 EGST} + {1856394000 -3600 0 EGT} + {1869094800 0 1 EGST} + {1887843600 -3600 0 EGT} + {1901149200 0 1 EGST} + {1919293200 -3600 0 EGT} + {1932598800 0 1 EGST} + {1950742800 -3600 0 EGT} + {1964048400 0 1 EGST} + {1982797200 -3600 0 EGT} + {1995498000 0 1 EGST} + {2014246800 -3600 0 EGT} + {2026947600 0 1 EGST} + {2045696400 -3600 0 EGT} + {2058397200 0 1 EGST} + {2077146000 -3600 0 EGT} + {2090451600 0 1 EGST} + {2108595600 -3600 0 EGT} + {2121901200 0 1 EGST} + {2140045200 -3600 0 EGT} + {2153350800 0 1 EGST} + {2172099600 -3600 0 EGT} + {2184800400 0 1 EGST} + {2203549200 -3600 0 EGT} + {2216250000 0 1 EGST} + {2234998800 -3600 0 EGT} + {2248304400 0 1 EGST} + {2266448400 -3600 0 EGT} + {2279754000 0 1 EGST} + {2297898000 -3600 0 EGT} + {2311203600 0 1 EGST} + {2329347600 -3600 0 EGT} + {2342653200 0 1 EGST} + {2361402000 -3600 0 EGT} + {2374102800 0 1 EGST} + {2392851600 -3600 0 EGT} + {2405552400 0 1 EGST} + {2424301200 -3600 0 EGT} + {2437606800 0 1 EGST} + {2455750800 -3600 0 EGT} + {2469056400 0 1 EGST} + {2487200400 -3600 0 EGT} + {2500506000 0 1 EGST} + {2519254800 -3600 0 EGT} + {2531955600 0 1 EGST} + {2550704400 -3600 0 EGT} + {2563405200 0 1 EGST} + {2582154000 -3600 0 EGT} + {2595459600 0 1 EGST} + {2613603600 -3600 0 EGT} + {2626909200 0 1 EGST} + {2645053200 -3600 0 EGT} + {2658358800 0 1 EGST} + {2676502800 -3600 0 EGT} + {2689808400 0 1 EGST} + {2708557200 -3600 0 EGT} + {2721258000 0 1 EGST} + {2740006800 -3600 0 EGT} + {2752707600 0 1 EGST} + {2771456400 -3600 0 EGT} + {2784762000 0 1 EGST} + {2802906000 -3600 0 EGT} + {2816211600 0 1 EGST} + {2834355600 -3600 0 EGT} + {2847661200 0 1 EGST} + {2866410000 -3600 0 EGT} + {2879110800 0 1 EGST} + {2897859600 -3600 0 EGT} + {2910560400 0 1 EGST} + {2929309200 -3600 0 EGT} + {2942010000 0 1 EGST} + {2960758800 -3600 0 EGT} + {2974064400 0 1 EGST} + {2992208400 -3600 0 EGT} + {3005514000 0 1 EGST} + {3023658000 -3600 0 EGT} + {3036963600 0 1 EGST} + {3055712400 -3600 0 EGT} + {3068413200 0 1 EGST} + {3087162000 -3600 0 EGT} + {3099862800 0 1 EGST} + {3118611600 -3600 0 EGT} + {3131917200 0 1 EGST} + {3150061200 -3600 0 EGT} + {3163366800 0 1 EGST} + {3181510800 -3600 0 EGT} + {3194816400 0 1 EGST} + {3212960400 -3600 0 EGT} + {3226266000 0 1 EGST} + {3245014800 -3600 0 EGT} + {3257715600 0 1 EGST} + {3276464400 -3600 0 EGT} + {3289165200 0 1 EGST} + {3307914000 -3600 0 EGT} + {3321219600 0 1 EGST} + {3339363600 -3600 0 EGT} + {3352669200 0 1 EGST} + {3370813200 -3600 0 EGT} + {3384118800 0 1 EGST} + {3402867600 -3600 0 EGT} + {3415568400 0 1 EGST} + {3434317200 -3600 0 EGT} + {3447018000 0 1 EGST} + {3465766800 -3600 0 EGT} + {3479072400 0 1 EGST} + {3497216400 -3600 0 EGT} + {3510522000 0 1 EGST} + {3528666000 -3600 0 EGT} + {3541971600 0 1 EGST} + {3560115600 -3600 0 EGT} + {3573421200 0 1 EGST} + {3592170000 -3600 0 EGT} + {3604870800 0 1 EGST} + {3623619600 -3600 0 EGT} + {3636320400 0 1 EGST} + {3655069200 -3600 0 EGT} + {3668374800 0 1 EGST} + {3686518800 -3600 0 EGT} + {3699824400 0 1 EGST} + {3717968400 -3600 0 EGT} + {3731274000 0 1 EGST} + {3750022800 -3600 0 EGT} + {3762723600 0 1 EGST} + {3781472400 -3600 0 EGT} + {3794173200 0 1 EGST} + {3812922000 -3600 0 EGT} + {3825622800 0 1 EGST} + {3844371600 -3600 0 EGT} + {3857677200 0 1 EGST} + {3875821200 -3600 0 EGT} + {3889126800 0 1 EGST} + {3907270800 -3600 0 EGT} + {3920576400 0 1 EGST} + {3939325200 -3600 0 EGT} + {3952026000 0 1 EGST} + {3970774800 -3600 0 EGT} + {3983475600 0 1 EGST} + {4002224400 -3600 0 EGT} + {4015530000 0 1 EGST} + {4033674000 -3600 0 EGT} + {4046979600 0 1 EGST} + {4065123600 -3600 0 EGT} + {4078429200 0 1 EGST} + {4096573200 -3600 0 EGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Shiprock b/mingw/lib/tcl8.5/tzdata/America/Shiprock new file mode 100644 index 00000000..995d25d3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Shiprock @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Denver)]} { + LoadTimeZoneFile America/Denver +} +set TZData(:America/Shiprock) $TZData(:America/Denver) diff --git a/mingw/lib/tcl8.5/tzdata/America/St_Johns b/mingw/lib/tcl8.5/tzdata/America/St_Johns new file mode 100644 index 00000000..59f92bbe --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/St_Johns @@ -0,0 +1,371 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/St_Johns) { + {-9223372036854775808 -12652 0 LMT} + {-2713897748 -12652 0 NST} + {-1664130548 -9052 1 NDT} + {-1650137348 -12652 0 NST} + {-1640982548 -12652 0 NST} + {-1632076148 -9052 1 NDT} + {-1614799748 -12652 0 NST} + {-1609446548 -12652 0 NST} + {-1598650148 -9052 1 NDT} + {-1590100148 -12652 0 NST} + {-1567286948 -9052 1 NDT} + {-1551565748 -12652 0 NST} + {-1535837348 -9052 1 NDT} + {-1520116148 -12652 0 NST} + {-1503782948 -9052 1 NDT} + {-1488666548 -12652 0 NST} + {-1472333348 -9052 1 NDT} + {-1457216948 -12652 0 NST} + {-1440883748 -9052 1 NDT} + {-1425767348 -12652 0 NST} + {-1409434148 -9052 1 NDT} + {-1394317748 -12652 0 NST} + {-1377984548 -9052 1 NDT} + {-1362263348 -12652 0 NST} + {-1346534948 -9052 1 NDT} + {-1330813748 -12652 0 NST} + {-1314480548 -9052 1 NDT} + {-1299364148 -12652 0 NST} + {-1283030948 -9052 1 NDT} + {-1267914548 -12652 0 NST} + {-1251581348 -9052 1 NDT} + {-1236464948 -12652 0 NST} + {-1220131748 -9052 1 NDT} + {-1205015348 -12652 0 NST} + {-1188682148 -9052 1 NDT} + {-1172960948 -12652 0 NST} + {-1156627748 -9052 1 NDT} + {-1141511348 -12652 0 NST} + {-1125178148 -9052 1 NDT} + {-1110061748 -12652 0 NST} + {-1096921748 -12600 0 NST} + {-1093728600 -9000 1 NDT} + {-1078612200 -12600 0 NST} + {-1061670600 -9000 1 NDT} + {-1048973400 -12600 0 NST} + {-1030221000 -9000 1 NDT} + {-1017523800 -12600 0 NST} + {-998771400 -9000 1 NDT} + {-986074200 -12600 0 NST} + {-966717000 -9000 1 NDT} + {-954624600 -12600 0 NST} + {-935267400 -9000 1 NDT} + {-922570200 -12600 0 NST} + {-903817800 -9000 1 NDT} + {-891120600 -12600 0 NST} + {-872368200 -9000 0 NWT} + {-769395600 -9000 1 NPT} + {-765401400 -12600 0 NST} + {-757369800 -12600 0 NST} + {-746044200 -9000 1 NDT} + {-733347000 -12600 0 NST} + {-714594600 -9000 1 NDT} + {-701897400 -12600 0 NST} + {-683145000 -9000 1 NDT} + {-670447800 -12600 0 NST} + {-651695400 -9000 1 NDT} + {-638998200 -12600 0 NST} + {-619641000 -9000 1 NDT} + {-606943800 -12600 0 NST} + {-589401000 -9000 1 NDT} + {-576099000 -12600 0 NST} + {-557951400 -9000 1 NDT} + {-544649400 -12600 0 NST} + {-526501800 -9000 1 NDT} + {-513199800 -12600 0 NST} + {-495052200 -9000 1 NDT} + {-481750200 -12600 0 NST} + {-463602600 -9000 1 NDT} + {-450300600 -12600 0 NST} + {-431548200 -9000 1 NDT} + {-418246200 -12600 0 NST} + {-400098600 -9000 1 NDT} + {-386796600 -12600 0 NST} + {-368649000 -9000 1 NDT} + {-355347000 -12600 0 NST} + {-337199400 -9000 1 NDT} + {-323897400 -12600 0 NST} + {-305749800 -9000 1 NDT} + {-289423800 -12600 0 NST} + {-273695400 -9000 1 NDT} + {-257974200 -12600 0 NST} + {-242245800 -9000 1 NDT} + {-226524600 -12600 0 NST} + {-210796200 -9000 1 NDT} + {-195075000 -12600 0 NST} + {-179346600 -9000 1 NDT} + {-163625400 -12600 0 NST} + {-147897000 -9000 1 NDT} + {-131571000 -12600 0 NST} + {-116447400 -9000 1 NDT} + {-100121400 -12600 0 NST} + {-84393000 -9000 1 NDT} + {-68671800 -12600 0 NST} + {-52943400 -9000 1 NDT} + {-37222200 -12600 0 NST} + {-21493800 -9000 1 NDT} + {-5772600 -12600 0 NST} + {9955800 -9000 1 NDT} + {25677000 -12600 0 NST} + {41405400 -9000 1 NDT} + {57731400 -12600 0 NST} + {73459800 -9000 1 NDT} + {89181000 -12600 0 NST} + {104909400 -9000 1 NDT} + {120630600 -12600 0 NST} + {136359000 -9000 1 NDT} + {152080200 -12600 0 NST} + {167808600 -9000 1 NDT} + {183529800 -12600 0 NST} + {199258200 -9000 1 NDT} + {215584200 -12600 0 NST} + {230707800 -9000 1 NDT} + {247033800 -12600 0 NST} + {262762200 -9000 1 NDT} + {278483400 -12600 0 NST} + {294211800 -9000 1 NDT} + {309933000 -12600 0 NST} + {325661400 -9000 1 NDT} + {341382600 -12600 0 NST} + {357111000 -9000 1 NDT} + {372832200 -12600 0 NST} + {388560600 -9000 1 NDT} + {404886600 -12600 0 NST} + {420010200 -9000 1 NDT} + {436336200 -12600 0 NST} + {452064600 -9000 1 NDT} + {467785800 -12600 0 NST} + {483514200 -9000 1 NDT} + {499235400 -12600 0 NST} + {514963800 -9000 1 NDT} + {530685000 -12600 0 NST} + {544591860 -9000 1 NDT} + {562127460 -12600 0 NST} + {576041460 -5400 1 NDDT} + {594178260 -12600 0 NST} + {607491060 -9000 1 NDT} + {625631460 -12600 0 NST} + {638940660 -9000 1 NDT} + {657081060 -12600 0 NST} + {670995060 -9000 1 NDT} + {688530660 -12600 0 NST} + {702444660 -9000 1 NDT} + {719980260 -12600 0 NST} + {733894260 -9000 1 NDT} + {752034660 -12600 0 NST} + {765343860 -9000 1 NDT} + {783484260 -12600 0 NST} + {796793460 -9000 1 NDT} + {814933860 -12600 0 NST} + {828847860 -9000 1 NDT} + {846383460 -12600 0 NST} + {860297460 -9000 1 NDT} + {877833060 -12600 0 NST} + {891747060 -9000 1 NDT} + {909282660 -12600 0 NST} + {923196660 -9000 1 NDT} + {941337060 -12600 0 NST} + {954646260 -9000 1 NDT} + {972786660 -12600 0 NST} + {986095860 -9000 1 NDT} + {1004236260 -12600 0 NST} + {1018150260 -9000 1 NDT} + {1035685860 -12600 0 NST} + {1049599860 -9000 1 NDT} + {1067135460 -12600 0 NST} + {1081049460 -9000 1 NDT} + {1099189860 -12600 0 NST} + {1112499060 -9000 1 NDT} + {1130639460 -12600 0 NST} + {1143948660 -9000 1 NDT} + {1162089060 -12600 0 NST} + {1173583860 -9000 1 NDT} + {1194143460 -12600 0 NST} + {1205033460 -9000 1 NDT} + {1225593060 -12600 0 NST} + {1236483060 -9000 1 NDT} + {1257042660 -12600 0 NST} + {1268537460 -9000 1 NDT} + {1289097060 -12600 0 NST} + {1299987060 -9000 1 NDT} + {1320546660 -12600 0 NST} + {1331436660 -9000 1 NDT} + {1351996260 -12600 0 NST} + {1362886260 -9000 1 NDT} + {1383445860 -12600 0 NST} + {1394335860 -9000 1 NDT} + {1414895460 -12600 0 NST} + {1425785460 -9000 1 NDT} + {1446345060 -12600 0 NST} + {1457839860 -9000 1 NDT} + {1478399460 -12600 0 NST} + {1489289460 -9000 1 NDT} + {1509849060 -12600 0 NST} + {1520739060 -9000 1 NDT} + {1541298660 -12600 0 NST} + {1552188660 -9000 1 NDT} + {1572748260 -12600 0 NST} + {1583638260 -9000 1 NDT} + {1604197860 -12600 0 NST} + {1615692660 -9000 1 NDT} + {1636252260 -12600 0 NST} + {1647142260 -9000 1 NDT} + {1667701860 -12600 0 NST} + {1678591860 -9000 1 NDT} + {1699151460 -12600 0 NST} + {1710041460 -9000 1 NDT} + {1730601060 -12600 0 NST} + {1741491060 -9000 1 NDT} + {1762050660 -12600 0 NST} + {1772940660 -9000 1 NDT} + {1793500260 -12600 0 NST} + {1804995060 -9000 1 NDT} + {1825554660 -12600 0 NST} + {1836444660 -9000 1 NDT} + {1857004260 -12600 0 NST} + {1867894260 -9000 1 NDT} + {1888453860 -12600 0 NST} + {1899343860 -9000 1 NDT} + {1919903460 -12600 0 NST} + {1930793460 -9000 1 NDT} + {1951353060 -12600 0 NST} + {1962847860 -9000 1 NDT} + {1983407460 -12600 0 NST} + {1994297460 -9000 1 NDT} + {2014857060 -12600 0 NST} + {2025747060 -9000 1 NDT} + {2046306660 -12600 0 NST} + {2057196660 -9000 1 NDT} + {2077756260 -12600 0 NST} + {2088646260 -9000 1 NDT} + {2109205860 -12600 0 NST} + {2120095860 -9000 1 NDT} + {2140655460 -12600 0 NST} + {2152150260 -9000 1 NDT} + {2172709860 -12600 0 NST} + {2183599860 -9000 1 NDT} + {2204159460 -12600 0 NST} + {2215049460 -9000 1 NDT} + {2235609060 -12600 0 NST} + {2246499060 -9000 1 NDT} + {2267058660 -12600 0 NST} + {2277948660 -9000 1 NDT} + {2298508260 -12600 0 NST} + {2309398260 -9000 1 NDT} + {2329957860 -12600 0 NST} + {2341452660 -9000 1 NDT} + {2362012260 -12600 0 NST} + {2372902260 -9000 1 NDT} + {2393461860 -12600 0 NST} + {2404351860 -9000 1 NDT} + {2424911460 -12600 0 NST} + {2435801460 -9000 1 NDT} + {2456361060 -12600 0 NST} + {2467251060 -9000 1 NDT} + {2487810660 -12600 0 NST} + {2499305460 -9000 1 NDT} + {2519865060 -12600 0 NST} + {2530755060 -9000 1 NDT} + {2551314660 -12600 0 NST} + {2562204660 -9000 1 NDT} + {2582764260 -12600 0 NST} + {2593654260 -9000 1 NDT} + {2614213860 -12600 0 NST} + {2625103860 -9000 1 NDT} + {2645663460 -12600 0 NST} + {2656553460 -9000 1 NDT} + {2677113060 -12600 0 NST} + {2688607860 -9000 1 NDT} + {2709167460 -12600 0 NST} + {2720057460 -9000 1 NDT} + {2740617060 -12600 0 NST} + {2751507060 -9000 1 NDT} + {2772066660 -12600 0 NST} + {2782956660 -9000 1 NDT} + {2803516260 -12600 0 NST} + {2814406260 -9000 1 NDT} + {2834965860 -12600 0 NST} + {2846460660 -9000 1 NDT} + {2867020260 -12600 0 NST} + {2877910260 -9000 1 NDT} + {2898469860 -12600 0 NST} + {2909359860 -9000 1 NDT} + {2929919460 -12600 0 NST} + {2940809460 -9000 1 NDT} + {2961369060 -12600 0 NST} + {2972259060 -9000 1 NDT} + {2992818660 -12600 0 NST} + {3003708660 -9000 1 NDT} + {3024268260 -12600 0 NST} + {3035763060 -9000 1 NDT} + {3056322660 -12600 0 NST} + {3067212660 -9000 1 NDT} + {3087772260 -12600 0 NST} + {3098662260 -9000 1 NDT} + {3119221860 -12600 0 NST} + {3130111860 -9000 1 NDT} + {3150671460 -12600 0 NST} + {3161561460 -9000 1 NDT} + {3182121060 -12600 0 NST} + {3193011060 -9000 1 NDT} + {3213570660 -12600 0 NST} + {3225065460 -9000 1 NDT} + {3245625060 -12600 0 NST} + {3256515060 -9000 1 NDT} + {3277074660 -12600 0 NST} + {3287964660 -9000 1 NDT} + {3308524260 -12600 0 NST} + {3319414260 -9000 1 NDT} + {3339973860 -12600 0 NST} + {3350863860 -9000 1 NDT} + {3371423460 -12600 0 NST} + {3382918260 -9000 1 NDT} + {3403477860 -12600 0 NST} + {3414367860 -9000 1 NDT} + {3434927460 -12600 0 NST} + {3445817460 -9000 1 NDT} + {3466377060 -12600 0 NST} + {3477267060 -9000 1 NDT} + {3497826660 -12600 0 NST} + {3508716660 -9000 1 NDT} + {3529276260 -12600 0 NST} + {3540166260 -9000 1 NDT} + {3560725860 -12600 0 NST} + {3572220660 -9000 1 NDT} + {3592780260 -12600 0 NST} + {3603670260 -9000 1 NDT} + {3624229860 -12600 0 NST} + {3635119860 -9000 1 NDT} + {3655679460 -12600 0 NST} + {3666569460 -9000 1 NDT} + {3687129060 -12600 0 NST} + {3698019060 -9000 1 NDT} + {3718578660 -12600 0 NST} + {3730073460 -9000 1 NDT} + {3750633060 -12600 0 NST} + {3761523060 -9000 1 NDT} + {3782082660 -12600 0 NST} + {3792972660 -9000 1 NDT} + {3813532260 -12600 0 NST} + {3824422260 -9000 1 NDT} + {3844981860 -12600 0 NST} + {3855871860 -9000 1 NDT} + {3876431460 -12600 0 NST} + {3887321460 -9000 1 NDT} + {3907881060 -12600 0 NST} + {3919375860 -9000 1 NDT} + {3939935460 -12600 0 NST} + {3950825460 -9000 1 NDT} + {3971385060 -12600 0 NST} + {3982275060 -9000 1 NDT} + {4002834660 -12600 0 NST} + {4013724660 -9000 1 NDT} + {4034284260 -12600 0 NST} + {4045174260 -9000 1 NDT} + {4065733860 -12600 0 NST} + {4076623860 -9000 1 NDT} + {4097183460 -12600 0 NST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/St_Kitts b/mingw/lib/tcl8.5/tzdata/America/St_Kitts new file mode 100644 index 00000000..bfd803be --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/St_Kitts @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/St_Kitts) { + {-9223372036854775808 -15052 0 LMT} + {-1825098548 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/St_Lucia b/mingw/lib/tcl8.5/tzdata/America/St_Lucia new file mode 100644 index 00000000..c2767dde --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/St_Lucia @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/St_Lucia) { + {-9223372036854775808 -14640 0 LMT} + {-2524506960 -14640 0 CMT} + {-1830369360 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/St_Thomas b/mingw/lib/tcl8.5/tzdata/America/St_Thomas new file mode 100644 index 00000000..bf935959 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/St_Thomas @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/St_Thomas) { + {-9223372036854775808 -15584 0 LMT} + {-1846266016 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/St_Vincent b/mingw/lib/tcl8.5/tzdata/America/St_Vincent new file mode 100644 index 00000000..3a884c7d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/St_Vincent @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/St_Vincent) { + {-9223372036854775808 -14696 0 LMT} + {-2524506904 -14696 0 KMT} + {-1830369304 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Swift_Current b/mingw/lib/tcl8.5/tzdata/America/Swift_Current new file mode 100644 index 00000000..dc4aa370 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Swift_Current @@ -0,0 +1,29 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Swift_Current) { + {-9223372036854775808 -25880 0 LMT} + {-2030201320 -25200 0 MST} + {-1632063600 -21600 1 MDT} + {-1614787200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-747241200 -21600 0 MDT} + {-732729600 -25200 0 MST} + {-715791600 -21600 1 MDT} + {-702489600 -25200 0 MST} + {-684342000 -21600 1 MDT} + {-671040000 -25200 0 MST} + {-652892400 -21600 1 MDT} + {-639590400 -25200 0 MST} + {-631126800 -25200 0 MST} + {-400086000 -21600 1 MDT} + {-384364800 -25200 0 MST} + {-337186800 -21600 1 MDT} + {-321465600 -25200 0 MST} + {-305737200 -21600 1 MDT} + {-292435200 -25200 0 MST} + {-273682800 -21600 1 MDT} + {-260985600 -25200 0 MST} + {73472400 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Tegucigalpa b/mingw/lib/tcl8.5/tzdata/America/Tegucigalpa new file mode 100644 index 00000000..050661e4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Tegucigalpa @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Tegucigalpa) { + {-9223372036854775808 -20932 0 LMT} + {-1538503868 -21600 0 CST} + {547020000 -18000 1 CDT} + {559717200 -21600 0 CST} + {578469600 -18000 1 CDT} + {591166800 -21600 0 CST} + {1146981600 -18000 1 CDT} + {1154926800 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Thule b/mingw/lib/tcl8.5/tzdata/America/Thule new file mode 100644 index 00000000..0aaf9a10 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Thule @@ -0,0 +1,224 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Thule) { + {-9223372036854775808 -16508 0 LMT} + {-1686079492 -14400 0 AST} + {670399200 -10800 1 ADT} + {686120400 -14400 0 AST} + {701848800 -10800 1 ADT} + {717570000 -14400 0 AST} + {733903200 -10800 1 ADT} + {752043600 -14400 0 AST} + {765352800 -10800 1 ADT} + {783493200 -14400 0 AST} + {796802400 -10800 1 ADT} + {814942800 -14400 0 AST} + {828856800 -10800 1 ADT} + {846392400 -14400 0 AST} + {860306400 -10800 1 ADT} + {877842000 -14400 0 AST} + {891756000 -10800 1 ADT} + {909291600 -14400 0 AST} + {923205600 -10800 1 ADT} + {941346000 -14400 0 AST} + {954655200 -10800 1 ADT} + {972795600 -14400 0 AST} + {986104800 -10800 1 ADT} + {1004245200 -14400 0 AST} + {1018159200 -10800 1 ADT} + {1035694800 -14400 0 AST} + {1049608800 -10800 1 ADT} + {1067144400 -14400 0 AST} + {1081058400 -10800 1 ADT} + {1099198800 -14400 0 AST} + {1112508000 -10800 1 ADT} + {1130648400 -14400 0 AST} + {1143957600 -10800 1 ADT} + {1162098000 -14400 0 AST} + {1173592800 -10800 1 ADT} + {1194152400 -14400 0 AST} + {1205042400 -10800 1 ADT} + {1225602000 -14400 0 AST} + {1236492000 -10800 1 ADT} + {1257051600 -14400 0 AST} + {1268546400 -10800 1 ADT} + {1289106000 -14400 0 AST} + {1299996000 -10800 1 ADT} + {1320555600 -14400 0 AST} + {1331445600 -10800 1 ADT} + {1352005200 -14400 0 AST} + {1362895200 -10800 1 ADT} + {1383454800 -14400 0 AST} + {1394344800 -10800 1 ADT} + {1414904400 -14400 0 AST} + {1425794400 -10800 1 ADT} + {1446354000 -14400 0 AST} + {1457848800 -10800 1 ADT} + {1478408400 -14400 0 AST} + {1489298400 -10800 1 ADT} + {1509858000 -14400 0 AST} + {1520748000 -10800 1 ADT} + {1541307600 -14400 0 AST} + {1552197600 -10800 1 ADT} + {1572757200 -14400 0 AST} + {1583647200 -10800 1 ADT} + {1604206800 -14400 0 AST} + {1615701600 -10800 1 ADT} + {1636261200 -14400 0 AST} + {1647151200 -10800 1 ADT} + {1667710800 -14400 0 AST} + {1678600800 -10800 1 ADT} + {1699160400 -14400 0 AST} + {1710050400 -10800 1 ADT} + {1730610000 -14400 0 AST} + {1741500000 -10800 1 ADT} + {1762059600 -14400 0 AST} + {1772949600 -10800 1 ADT} + {1793509200 -14400 0 AST} + {1805004000 -10800 1 ADT} + {1825563600 -14400 0 AST} + {1836453600 -10800 1 ADT} + {1857013200 -14400 0 AST} + {1867903200 -10800 1 ADT} + {1888462800 -14400 0 AST} + {1899352800 -10800 1 ADT} + {1919912400 -14400 0 AST} + {1930802400 -10800 1 ADT} + {1951362000 -14400 0 AST} + {1962856800 -10800 1 ADT} + {1983416400 -14400 0 AST} + {1994306400 -10800 1 ADT} + {2014866000 -14400 0 AST} + {2025756000 -10800 1 ADT} + {2046315600 -14400 0 AST} + {2057205600 -10800 1 ADT} + {2077765200 -14400 0 AST} + {2088655200 -10800 1 ADT} + {2109214800 -14400 0 AST} + {2120104800 -10800 1 ADT} + {2140664400 -14400 0 AST} + {2152159200 -10800 1 ADT} + {2172718800 -14400 0 AST} + {2183608800 -10800 1 ADT} + {2204168400 -14400 0 AST} + {2215058400 -10800 1 ADT} + {2235618000 -14400 0 AST} + {2246508000 -10800 1 ADT} + {2267067600 -14400 0 AST} + {2277957600 -10800 1 ADT} + {2298517200 -14400 0 AST} + {2309407200 -10800 1 ADT} + {2329966800 -14400 0 AST} + {2341461600 -10800 1 ADT} + {2362021200 -14400 0 AST} + {2372911200 -10800 1 ADT} + {2393470800 -14400 0 AST} + {2404360800 -10800 1 ADT} + {2424920400 -14400 0 AST} + {2435810400 -10800 1 ADT} + {2456370000 -14400 0 AST} + {2467260000 -10800 1 ADT} + {2487819600 -14400 0 AST} + {2499314400 -10800 1 ADT} + {2519874000 -14400 0 AST} + {2530764000 -10800 1 ADT} + {2551323600 -14400 0 AST} + {2562213600 -10800 1 ADT} + {2582773200 -14400 0 AST} + {2593663200 -10800 1 ADT} + {2614222800 -14400 0 AST} + {2625112800 -10800 1 ADT} + {2645672400 -14400 0 AST} + {2656562400 -10800 1 ADT} + {2677122000 -14400 0 AST} + {2688616800 -10800 1 ADT} + {2709176400 -14400 0 AST} + {2720066400 -10800 1 ADT} + {2740626000 -14400 0 AST} + {2751516000 -10800 1 ADT} + {2772075600 -14400 0 AST} + {2782965600 -10800 1 ADT} + {2803525200 -14400 0 AST} + {2814415200 -10800 1 ADT} + {2834974800 -14400 0 AST} + {2846469600 -10800 1 ADT} + {2867029200 -14400 0 AST} + {2877919200 -10800 1 ADT} + {2898478800 -14400 0 AST} + {2909368800 -10800 1 ADT} + {2929928400 -14400 0 AST} + {2940818400 -10800 1 ADT} + {2961378000 -14400 0 AST} + {2972268000 -10800 1 ADT} + {2992827600 -14400 0 AST} + {3003717600 -10800 1 ADT} + {3024277200 -14400 0 AST} + {3035772000 -10800 1 ADT} + {3056331600 -14400 0 AST} + {3067221600 -10800 1 ADT} + {3087781200 -14400 0 AST} + {3098671200 -10800 1 ADT} + {3119230800 -14400 0 AST} + {3130120800 -10800 1 ADT} + {3150680400 -14400 0 AST} + {3161570400 -10800 1 ADT} + {3182130000 -14400 0 AST} + {3193020000 -10800 1 ADT} + {3213579600 -14400 0 AST} + {3225074400 -10800 1 ADT} + {3245634000 -14400 0 AST} + {3256524000 -10800 1 ADT} + {3277083600 -14400 0 AST} + {3287973600 -10800 1 ADT} + {3308533200 -14400 0 AST} + {3319423200 -10800 1 ADT} + {3339982800 -14400 0 AST} + {3350872800 -10800 1 ADT} + {3371432400 -14400 0 AST} + {3382927200 -10800 1 ADT} + {3403486800 -14400 0 AST} + {3414376800 -10800 1 ADT} + {3434936400 -14400 0 AST} + {3445826400 -10800 1 ADT} + {3466386000 -14400 0 AST} + {3477276000 -10800 1 ADT} + {3497835600 -14400 0 AST} + {3508725600 -10800 1 ADT} + {3529285200 -14400 0 AST} + {3540175200 -10800 1 ADT} + {3560734800 -14400 0 AST} + {3572229600 -10800 1 ADT} + {3592789200 -14400 0 AST} + {3603679200 -10800 1 ADT} + {3624238800 -14400 0 AST} + {3635128800 -10800 1 ADT} + {3655688400 -14400 0 AST} + {3666578400 -10800 1 ADT} + {3687138000 -14400 0 AST} + {3698028000 -10800 1 ADT} + {3718587600 -14400 0 AST} + {3730082400 -10800 1 ADT} + {3750642000 -14400 0 AST} + {3761532000 -10800 1 ADT} + {3782091600 -14400 0 AST} + {3792981600 -10800 1 ADT} + {3813541200 -14400 0 AST} + {3824431200 -10800 1 ADT} + {3844990800 -14400 0 AST} + {3855880800 -10800 1 ADT} + {3876440400 -14400 0 AST} + {3887330400 -10800 1 ADT} + {3907890000 -14400 0 AST} + {3919384800 -10800 1 ADT} + {3939944400 -14400 0 AST} + {3950834400 -10800 1 ADT} + {3971394000 -14400 0 AST} + {3982284000 -10800 1 ADT} + {4002843600 -14400 0 AST} + {4013733600 -10800 1 ADT} + {4034293200 -14400 0 AST} + {4045183200 -10800 1 ADT} + {4065742800 -14400 0 AST} + {4076632800 -10800 1 ADT} + {4097192400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Thunder_Bay b/mingw/lib/tcl8.5/tzdata/America/Thunder_Bay new file mode 100644 index 00000000..8a454be1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Thunder_Bay @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Thunder_Bay) { + {-9223372036854775808 -21420 0 LMT} + {-2366733780 -21600 0 CST} + {-1893434400 -18000 0 EST} + {-883594800 -18000 0 EST} + {-880218000 -14400 1 EWT} + {-769395600 -14400 1 EPT} + {-765396000 -18000 0 EST} + {18000 -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} + {94712400 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Tijuana b/mingw/lib/tcl8.5/tzdata/America/Tijuana new file mode 100644 index 00000000..c191c3cf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Tijuana @@ -0,0 +1,284 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Tijuana) { + {-9223372036854775808 -28084 0 LMT} + {-1514736000 -25200 0 MST} + {-1451667600 -28800 0 PST} + {-1343062800 -25200 0 MST} + {-1234803600 -28800 0 PST} + {-1222963200 -25200 1 PDT} + {-1207242000 -28800 0 PST} + {-873820800 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-761677200 -28800 0 PST} + {-686073600 -25200 1 PDT} + {-661539600 -28800 0 PST} + {-504892800 -28800 0 PST} + {-495036000 -25200 1 PDT} + {-481734000 -28800 0 PST} + {-463586400 -25200 1 PDT} + {-450284400 -28800 0 PST} + {-431532000 -25200 1 PDT} + {-418230000 -28800 0 PST} + {-400082400 -25200 1 PDT} + {-386780400 -28800 0 PST} + {-368632800 -25200 1 PDT} + {-355330800 -28800 0 PST} + {-337183200 -25200 1 PDT} + {-323881200 -28800 0 PST} + {-305733600 -25200 1 PDT} + {-292431600 -28800 0 PST} + {-283968000 -28800 0 PST} + {189331200 -28800 0 PST} + {199274400 -25200 1 PDT} + {215600400 -28800 0 PST} + {230724000 -25200 1 PDT} + {247050000 -28800 0 PST} + {262778400 -25200 1 PDT} + {278499600 -28800 0 PST} + {294228000 -25200 1 PDT} + {309949200 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {820483200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {978336000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1014192000 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1175421600 -25200 1 PDT} + {1193562000 -28800 0 PST} + {1207476000 -25200 1 PDT} + {1225011600 -28800 0 PST} + {1238925600 -25200 1 PDT} + {1256461200 -28800 0 PST} + {1270375200 -25200 1 PDT} + {1288515600 -28800 0 PST} + {1301824800 -25200 1 PDT} + {1319965200 -28800 0 PST} + {1333274400 -25200 1 PDT} + {1351414800 -28800 0 PST} + {1365328800 -25200 1 PDT} + {1382864400 -28800 0 PST} + {1396778400 -25200 1 PDT} + {1414314000 -28800 0 PST} + {1428228000 -25200 1 PDT} + {1445763600 -28800 0 PST} + {1459677600 -25200 1 PDT} + {1477818000 -28800 0 PST} + {1491127200 -25200 1 PDT} + {1509267600 -28800 0 PST} + {1522576800 -25200 1 PDT} + {1540717200 -28800 0 PST} + {1554631200 -25200 1 PDT} + {1572166800 -28800 0 PST} + {1586080800 -25200 1 PDT} + {1603616400 -28800 0 PST} + {1617530400 -25200 1 PDT} + {1635670800 -28800 0 PST} + {1648980000 -25200 1 PDT} + {1667120400 -28800 0 PST} + {1680429600 -25200 1 PDT} + {1698570000 -28800 0 PST} + {1712484000 -25200 1 PDT} + {1730019600 -28800 0 PST} + {1743933600 -25200 1 PDT} + {1761469200 -28800 0 PST} + {1775383200 -25200 1 PDT} + {1792918800 -28800 0 PST} + {1806832800 -25200 1 PDT} + {1824973200 -28800 0 PST} + {1838282400 -25200 1 PDT} + {1856422800 -28800 0 PST} + {1869732000 -25200 1 PDT} + {1887872400 -28800 0 PST} + {1901786400 -25200 1 PDT} + {1919322000 -28800 0 PST} + {1933236000 -25200 1 PDT} + {1950771600 -28800 0 PST} + {1964685600 -25200 1 PDT} + {1982826000 -28800 0 PST} + {1996135200 -25200 1 PDT} + {2014275600 -28800 0 PST} + {2027584800 -25200 1 PDT} + {2045725200 -28800 0 PST} + {2059034400 -25200 1 PDT} + {2077174800 -28800 0 PST} + {2091088800 -25200 1 PDT} + {2108624400 -28800 0 PST} + {2122538400 -25200 1 PDT} + {2140074000 -28800 0 PST} + {2153988000 -25200 1 PDT} + {2172128400 -28800 0 PST} + {2185437600 -25200 1 PDT} + {2203578000 -28800 0 PST} + {2216887200 -25200 1 PDT} + {2235027600 -28800 0 PST} + {2248941600 -25200 1 PDT} + {2266477200 -28800 0 PST} + {2280391200 -25200 1 PDT} + {2297926800 -28800 0 PST} + {2311840800 -25200 1 PDT} + {2329376400 -28800 0 PST} + {2343290400 -25200 1 PDT} + {2361430800 -28800 0 PST} + {2374740000 -25200 1 PDT} + {2392880400 -28800 0 PST} + {2406189600 -25200 1 PDT} + {2424330000 -28800 0 PST} + {2438244000 -25200 1 PDT} + {2455779600 -28800 0 PST} + {2469693600 -25200 1 PDT} + {2487229200 -28800 0 PST} + {2501143200 -25200 1 PDT} + {2519283600 -28800 0 PST} + {2532592800 -25200 1 PDT} + {2550733200 -28800 0 PST} + {2564042400 -25200 1 PDT} + {2582182800 -28800 0 PST} + {2596096800 -25200 1 PDT} + {2613632400 -28800 0 PST} + {2627546400 -25200 1 PDT} + {2645082000 -28800 0 PST} + {2658996000 -25200 1 PDT} + {2676531600 -28800 0 PST} + {2690445600 -25200 1 PDT} + {2708586000 -28800 0 PST} + {2721895200 -25200 1 PDT} + {2740035600 -28800 0 PST} + {2753344800 -25200 1 PDT} + {2771485200 -28800 0 PST} + {2785399200 -25200 1 PDT} + {2802934800 -28800 0 PST} + {2816848800 -25200 1 PDT} + {2834384400 -28800 0 PST} + {2848298400 -25200 1 PDT} + {2866438800 -28800 0 PST} + {2879748000 -25200 1 PDT} + {2897888400 -28800 0 PST} + {2911197600 -25200 1 PDT} + {2929338000 -28800 0 PST} + {2942647200 -25200 1 PDT} + {2960787600 -28800 0 PST} + {2974701600 -25200 1 PDT} + {2992237200 -28800 0 PST} + {3006151200 -25200 1 PDT} + {3023686800 -28800 0 PST} + {3037600800 -25200 1 PDT} + {3055741200 -28800 0 PST} + {3069050400 -25200 1 PDT} + {3087190800 -28800 0 PST} + {3100500000 -25200 1 PDT} + {3118640400 -28800 0 PST} + {3132554400 -25200 1 PDT} + {3150090000 -28800 0 PST} + {3164004000 -25200 1 PDT} + {3181539600 -28800 0 PST} + {3195453600 -25200 1 PDT} + {3212989200 -28800 0 PST} + {3226903200 -25200 1 PDT} + {3245043600 -28800 0 PST} + {3258352800 -25200 1 PDT} + {3276493200 -28800 0 PST} + {3289802400 -25200 1 PDT} + {3307942800 -28800 0 PST} + {3321856800 -25200 1 PDT} + {3339392400 -28800 0 PST} + {3353306400 -25200 1 PDT} + {3370842000 -28800 0 PST} + {3384756000 -25200 1 PDT} + {3402896400 -28800 0 PST} + {3416205600 -25200 1 PDT} + {3434346000 -28800 0 PST} + {3447655200 -25200 1 PDT} + {3465795600 -28800 0 PST} + {3479709600 -25200 1 PDT} + {3497245200 -28800 0 PST} + {3511159200 -25200 1 PDT} + {3528694800 -28800 0 PST} + {3542608800 -25200 1 PDT} + {3560144400 -28800 0 PST} + {3574058400 -25200 1 PDT} + {3592198800 -28800 0 PST} + {3605508000 -25200 1 PDT} + {3623648400 -28800 0 PST} + {3636957600 -25200 1 PDT} + {3655098000 -28800 0 PST} + {3669012000 -25200 1 PDT} + {3686547600 -28800 0 PST} + {3700461600 -25200 1 PDT} + {3717997200 -28800 0 PST} + {3731911200 -25200 1 PDT} + {3750051600 -28800 0 PST} + {3763360800 -25200 1 PDT} + {3781501200 -28800 0 PST} + {3794810400 -25200 1 PDT} + {3812950800 -28800 0 PST} + {3826260000 -25200 1 PDT} + {3844400400 -28800 0 PST} + {3858314400 -25200 1 PDT} + {3875850000 -28800 0 PST} + {3889764000 -25200 1 PDT} + {3907299600 -28800 0 PST} + {3921213600 -25200 1 PDT} + {3939354000 -28800 0 PST} + {3952663200 -25200 1 PDT} + {3970803600 -28800 0 PST} + {3984112800 -25200 1 PDT} + {4002253200 -28800 0 PST} + {4016167200 -25200 1 PDT} + {4033702800 -28800 0 PST} + {4047616800 -25200 1 PDT} + {4065152400 -28800 0 PST} + {4079066400 -25200 1 PDT} + {4096602000 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Toronto b/mingw/lib/tcl8.5/tzdata/America/Toronto new file mode 100644 index 00000000..e4fc91ac --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Toronto @@ -0,0 +1,365 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Toronto) { + {-9223372036854775808 -19052 0 LMT} + {-2366736148 -18000 0 EST} + {-1632070800 -14400 1 EDT} + {-1614794400 -18000 0 EST} + {-1609441200 -18000 0 EST} + {-1601753400 -14400 1 EDT} + {-1583697600 -18000 0 EST} + {-1567357200 -14400 1 EDT} + {-1554667200 -18000 0 EST} + {-1534698000 -14400 1 EDT} + {-1524074400 -18000 0 EST} + {-1503248400 -14400 1 EDT} + {-1492365600 -18000 0 EST} + {-1471798800 -14400 1 EDT} + {-1460916000 -18000 0 EST} + {-1440954000 -14400 1 EDT} + {-1428861600 -18000 0 EST} + {-1409504400 -14400 1 EDT} + {-1397412000 -18000 0 EST} + {-1378054800 -14400 1 EDT} + {-1365962400 -18000 0 EST} + {-1346605200 -14400 1 EDT} + {-1333908000 -18000 0 EST} + {-1315155600 -14400 1 EDT} + {-1301853600 -18000 0 EST} + {-1283706000 -14400 1 EDT} + {-1270404000 -18000 0 EST} + {-1252256400 -14400 1 EDT} + {-1238954400 -18000 0 EST} + {-1220806800 -14400 1 EDT} + {-1207504800 -18000 0 EST} + {-1188752400 -14400 1 EDT} + {-1176055200 -18000 0 EST} + {-1157302800 -14400 1 EDT} + {-1144000800 -18000 0 EST} + {-1125853200 -14400 1 EDT} + {-1112551200 -18000 0 EST} + {-1094403600 -14400 1 EDT} + {-1081101600 -18000 0 EST} + {-1062954000 -14400 1 EDT} + {-1049652000 -18000 0 EST} + {-1031504400 -14400 1 EDT} + {-1018202400 -18000 0 EST} + {-1000054800 -14400 1 EDT} + {-986752800 -18000 0 EST} + {-968000400 -14400 1 EDT} + {-955303200 -18000 0 EST} + {-936550800 -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} + {-715806000 -14400 1 EDT} + {-702504000 -18000 0 EST} + {-684356400 -14400 1 EDT} + {-671054400 -18000 0 EST} + {-652906800 -14400 1 EDT} + {-634161600 -18000 0 EST} + {-620845200 -14400 1 EDT} + {-602704800 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Tortola b/mingw/lib/tcl8.5/tzdata/America/Tortola new file mode 100644 index 00000000..bf7f1fcd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Tortola @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Tortola) { + {-9223372036854775808 -15508 0 LMT} + {-1846266092 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Vancouver b/mingw/lib/tcl8.5/tzdata/America/Vancouver new file mode 100644 index 00000000..b2e0415f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Vancouver @@ -0,0 +1,320 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Vancouver) { + {-9223372036854775808 -29548 0 LMT} + {-2713880852 -28800 0 PST} + {-1632060000 -25200 1 PDT} + {-1614783600 -28800 0 PST} + {-880207200 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-765385200 -28800 0 PST} + {-747237600 -25200 1 PDT} + {-732726000 -28800 0 PST} + {-715788000 -25200 1 PDT} + {-702486000 -28800 0 PST} + {-684338400 -25200 1 PDT} + {-671036400 -28800 0 PST} + {-652888800 -25200 1 PDT} + {-639586800 -28800 0 PST} + {-620834400 -25200 1 PDT} + {-608137200 -28800 0 PST} + {-589384800 -25200 1 PDT} + {-576082800 -28800 0 PST} + {-557935200 -25200 1 PDT} + {-544633200 -28800 0 PST} + {-526485600 -25200 1 PDT} + {-513183600 -28800 0 PST} + {-495036000 -25200 1 PDT} + {-481734000 -28800 0 PST} + {-463586400 -25200 1 PDT} + {-450284400 -28800 0 PST} + {-431532000 -25200 1 PDT} + {-418230000 -28800 0 PST} + {-400082400 -25200 1 PDT} + {-386780400 -28800 0 PST} + {-368632800 -25200 1 PDT} + {-355330800 -28800 0 PST} + {-337183200 -25200 1 PDT} + {-323881200 -28800 0 PST} + {-305733600 -25200 1 PDT} + {-292431600 -28800 0 PST} + {-273679200 -25200 1 PDT} + {-260982000 -28800 0 PST} + {-242229600 -25200 1 PDT} + {-226508400 -28800 0 PST} + {-210780000 -25200 1 PDT} + {-195058800 -28800 0 PST} + {-179330400 -25200 1 PDT} + {-163609200 -28800 0 PST} + {-147880800 -25200 1 PDT} + {-131554800 -28800 0 PST} + {-116431200 -25200 1 PDT} + {-100105200 -28800 0 PST} + {-84376800 -25200 1 PDT} + {-68655600 -28800 0 PST} + {-52927200 -25200 1 PDT} + {-37206000 -28800 0 PST} + {-21477600 -25200 1 PDT} + {-5756400 -28800 0 PST} + {9972000 -25200 1 PDT} + {25693200 -28800 0 PST} + {41421600 -25200 1 PDT} + {57747600 -28800 0 PST} + {73476000 -25200 1 PDT} + {89197200 -28800 0 PST} + {104925600 -25200 1 PDT} + {120646800 -28800 0 PST} + {136375200 -25200 1 PDT} + {152096400 -28800 0 PST} + {167824800 -25200 1 PDT} + {183546000 -28800 0 PST} + {199274400 -25200 1 PDT} + {215600400 -28800 0 PST} + {230724000 -25200 1 PDT} + {247050000 -28800 0 PST} + {262778400 -25200 1 PDT} + {278499600 -28800 0 PST} + {294228000 -25200 1 PDT} + {309949200 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {536486400 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1173607200 -25200 1 PDT} + {1194166800 -28800 0 PST} + {1205056800 -25200 1 PDT} + {1225616400 -28800 0 PST} + {1236506400 -25200 1 PDT} + {1257066000 -28800 0 PST} + {1268560800 -25200 1 PDT} + {1289120400 -28800 0 PST} + {1300010400 -25200 1 PDT} + {1320570000 -28800 0 PST} + {1331460000 -25200 1 PDT} + {1352019600 -28800 0 PST} + {1362909600 -25200 1 PDT} + {1383469200 -28800 0 PST} + {1394359200 -25200 1 PDT} + {1414918800 -28800 0 PST} + {1425808800 -25200 1 PDT} + {1446368400 -28800 0 PST} + {1457863200 -25200 1 PDT} + {1478422800 -28800 0 PST} + {1489312800 -25200 1 PDT} + {1509872400 -28800 0 PST} + {1520762400 -25200 1 PDT} + {1541322000 -28800 0 PST} + {1552212000 -25200 1 PDT} + {1572771600 -28800 0 PST} + {1583661600 -25200 1 PDT} + {1604221200 -28800 0 PST} + {1615716000 -25200 1 PDT} + {1636275600 -28800 0 PST} + {1647165600 -25200 1 PDT} + {1667725200 -28800 0 PST} + {1678615200 -25200 1 PDT} + {1699174800 -28800 0 PST} + {1710064800 -25200 1 PDT} + {1730624400 -28800 0 PST} + {1741514400 -25200 1 PDT} + {1762074000 -28800 0 PST} + {1772964000 -25200 1 PDT} + {1793523600 -28800 0 PST} + {1805018400 -25200 1 PDT} + {1825578000 -28800 0 PST} + {1836468000 -25200 1 PDT} + {1857027600 -28800 0 PST} + {1867917600 -25200 1 PDT} + {1888477200 -28800 0 PST} + {1899367200 -25200 1 PDT} + {1919926800 -28800 0 PST} + {1930816800 -25200 1 PDT} + {1951376400 -28800 0 PST} + {1962871200 -25200 1 PDT} + {1983430800 -28800 0 PST} + {1994320800 -25200 1 PDT} + {2014880400 -28800 0 PST} + {2025770400 -25200 1 PDT} + {2046330000 -28800 0 PST} + {2057220000 -25200 1 PDT} + {2077779600 -28800 0 PST} + {2088669600 -25200 1 PDT} + {2109229200 -28800 0 PST} + {2120119200 -25200 1 PDT} + {2140678800 -28800 0 PST} + {2152173600 -25200 1 PDT} + {2172733200 -28800 0 PST} + {2183623200 -25200 1 PDT} + {2204182800 -28800 0 PST} + {2215072800 -25200 1 PDT} + {2235632400 -28800 0 PST} + {2246522400 -25200 1 PDT} + {2267082000 -28800 0 PST} + {2277972000 -25200 1 PDT} + {2298531600 -28800 0 PST} + {2309421600 -25200 1 PDT} + {2329981200 -28800 0 PST} + {2341476000 -25200 1 PDT} + {2362035600 -28800 0 PST} + {2372925600 -25200 1 PDT} + {2393485200 -28800 0 PST} + {2404375200 -25200 1 PDT} + {2424934800 -28800 0 PST} + {2435824800 -25200 1 PDT} + {2456384400 -28800 0 PST} + {2467274400 -25200 1 PDT} + {2487834000 -28800 0 PST} + {2499328800 -25200 1 PDT} + {2519888400 -28800 0 PST} + {2530778400 -25200 1 PDT} + {2551338000 -28800 0 PST} + {2562228000 -25200 1 PDT} + {2582787600 -28800 0 PST} + {2593677600 -25200 1 PDT} + {2614237200 -28800 0 PST} + {2625127200 -25200 1 PDT} + {2645686800 -28800 0 PST} + {2656576800 -25200 1 PDT} + {2677136400 -28800 0 PST} + {2688631200 -25200 1 PDT} + {2709190800 -28800 0 PST} + {2720080800 -25200 1 PDT} + {2740640400 -28800 0 PST} + {2751530400 -25200 1 PDT} + {2772090000 -28800 0 PST} + {2782980000 -25200 1 PDT} + {2803539600 -28800 0 PST} + {2814429600 -25200 1 PDT} + {2834989200 -28800 0 PST} + {2846484000 -25200 1 PDT} + {2867043600 -28800 0 PST} + {2877933600 -25200 1 PDT} + {2898493200 -28800 0 PST} + {2909383200 -25200 1 PDT} + {2929942800 -28800 0 PST} + {2940832800 -25200 1 PDT} + {2961392400 -28800 0 PST} + {2972282400 -25200 1 PDT} + {2992842000 -28800 0 PST} + {3003732000 -25200 1 PDT} + {3024291600 -28800 0 PST} + {3035786400 -25200 1 PDT} + {3056346000 -28800 0 PST} + {3067236000 -25200 1 PDT} + {3087795600 -28800 0 PST} + {3098685600 -25200 1 PDT} + {3119245200 -28800 0 PST} + {3130135200 -25200 1 PDT} + {3150694800 -28800 0 PST} + {3161584800 -25200 1 PDT} + {3182144400 -28800 0 PST} + {3193034400 -25200 1 PDT} + {3213594000 -28800 0 PST} + {3225088800 -25200 1 PDT} + {3245648400 -28800 0 PST} + {3256538400 -25200 1 PDT} + {3277098000 -28800 0 PST} + {3287988000 -25200 1 PDT} + {3308547600 -28800 0 PST} + {3319437600 -25200 1 PDT} + {3339997200 -28800 0 PST} + {3350887200 -25200 1 PDT} + {3371446800 -28800 0 PST} + {3382941600 -25200 1 PDT} + {3403501200 -28800 0 PST} + {3414391200 -25200 1 PDT} + {3434950800 -28800 0 PST} + {3445840800 -25200 1 PDT} + {3466400400 -28800 0 PST} + {3477290400 -25200 1 PDT} + {3497850000 -28800 0 PST} + {3508740000 -25200 1 PDT} + {3529299600 -28800 0 PST} + {3540189600 -25200 1 PDT} + {3560749200 -28800 0 PST} + {3572244000 -25200 1 PDT} + {3592803600 -28800 0 PST} + {3603693600 -25200 1 PDT} + {3624253200 -28800 0 PST} + {3635143200 -25200 1 PDT} + {3655702800 -28800 0 PST} + {3666592800 -25200 1 PDT} + {3687152400 -28800 0 PST} + {3698042400 -25200 1 PDT} + {3718602000 -28800 0 PST} + {3730096800 -25200 1 PDT} + {3750656400 -28800 0 PST} + {3761546400 -25200 1 PDT} + {3782106000 -28800 0 PST} + {3792996000 -25200 1 PDT} + {3813555600 -28800 0 PST} + {3824445600 -25200 1 PDT} + {3845005200 -28800 0 PST} + {3855895200 -25200 1 PDT} + {3876454800 -28800 0 PST} + {3887344800 -25200 1 PDT} + {3907904400 -28800 0 PST} + {3919399200 -25200 1 PDT} + {3939958800 -28800 0 PST} + {3950848800 -25200 1 PDT} + {3971408400 -28800 0 PST} + {3982298400 -25200 1 PDT} + {4002858000 -28800 0 PST} + {4013748000 -25200 1 PDT} + {4034307600 -28800 0 PST} + {4045197600 -25200 1 PDT} + {4065757200 -28800 0 PST} + {4076647200 -25200 1 PDT} + {4097206800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Virgin b/mingw/lib/tcl8.5/tzdata/America/Virgin new file mode 100644 index 00000000..390d7c26 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Virgin @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/St_Thomas)]} { + LoadTimeZoneFile America/St_Thomas +} +set TZData(:America/Virgin) $TZData(:America/St_Thomas) diff --git a/mingw/lib/tcl8.5/tzdata/America/Whitehorse b/mingw/lib/tcl8.5/tzdata/America/Whitehorse new file mode 100644 index 00000000..1d61093e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Whitehorse @@ -0,0 +1,256 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Whitehorse) { + {-9223372036854775808 -32412 0 LMT} + {-2188997988 -32400 0 YST} + {-1632056400 -28800 1 YDT} + {-1615125600 -32400 0 YST} + {-1596978000 -28800 1 YDT} + {-1583164800 -32400 0 YST} + {-880203600 -28800 1 YWT} + {-769395600 -28800 1 YPT} + {-765381600 -32400 0 YST} + {-147884400 -25200 1 YDDT} + {-131554800 -32400 0 YST} + {315561600 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1173607200 -25200 1 PDT} + {1194166800 -28800 0 PST} + {1205056800 -25200 1 PDT} + {1225616400 -28800 0 PST} + {1236506400 -25200 1 PDT} + {1257066000 -28800 0 PST} + {1268560800 -25200 1 PDT} + {1289120400 -28800 0 PST} + {1300010400 -25200 1 PDT} + {1320570000 -28800 0 PST} + {1331460000 -25200 1 PDT} + {1352019600 -28800 0 PST} + {1362909600 -25200 1 PDT} + {1383469200 -28800 0 PST} + {1394359200 -25200 1 PDT} + {1414918800 -28800 0 PST} + {1425808800 -25200 1 PDT} + {1446368400 -28800 0 PST} + {1457863200 -25200 1 PDT} + {1478422800 -28800 0 PST} + {1489312800 -25200 1 PDT} + {1509872400 -28800 0 PST} + {1520762400 -25200 1 PDT} + {1541322000 -28800 0 PST} + {1552212000 -25200 1 PDT} + {1572771600 -28800 0 PST} + {1583661600 -25200 1 PDT} + {1604221200 -28800 0 PST} + {1615716000 -25200 1 PDT} + {1636275600 -28800 0 PST} + {1647165600 -25200 1 PDT} + {1667725200 -28800 0 PST} + {1678615200 -25200 1 PDT} + {1699174800 -28800 0 PST} + {1710064800 -25200 1 PDT} + {1730624400 -28800 0 PST} + {1741514400 -25200 1 PDT} + {1762074000 -28800 0 PST} + {1772964000 -25200 1 PDT} + {1793523600 -28800 0 PST} + {1805018400 -25200 1 PDT} + {1825578000 -28800 0 PST} + {1836468000 -25200 1 PDT} + {1857027600 -28800 0 PST} + {1867917600 -25200 1 PDT} + {1888477200 -28800 0 PST} + {1899367200 -25200 1 PDT} + {1919926800 -28800 0 PST} + {1930816800 -25200 1 PDT} + {1951376400 -28800 0 PST} + {1962871200 -25200 1 PDT} + {1983430800 -28800 0 PST} + {1994320800 -25200 1 PDT} + {2014880400 -28800 0 PST} + {2025770400 -25200 1 PDT} + {2046330000 -28800 0 PST} + {2057220000 -25200 1 PDT} + {2077779600 -28800 0 PST} + {2088669600 -25200 1 PDT} + {2109229200 -28800 0 PST} + {2120119200 -25200 1 PDT} + {2140678800 -28800 0 PST} + {2152173600 -25200 1 PDT} + {2172733200 -28800 0 PST} + {2183623200 -25200 1 PDT} + {2204182800 -28800 0 PST} + {2215072800 -25200 1 PDT} + {2235632400 -28800 0 PST} + {2246522400 -25200 1 PDT} + {2267082000 -28800 0 PST} + {2277972000 -25200 1 PDT} + {2298531600 -28800 0 PST} + {2309421600 -25200 1 PDT} + {2329981200 -28800 0 PST} + {2341476000 -25200 1 PDT} + {2362035600 -28800 0 PST} + {2372925600 -25200 1 PDT} + {2393485200 -28800 0 PST} + {2404375200 -25200 1 PDT} + {2424934800 -28800 0 PST} + {2435824800 -25200 1 PDT} + {2456384400 -28800 0 PST} + {2467274400 -25200 1 PDT} + {2487834000 -28800 0 PST} + {2499328800 -25200 1 PDT} + {2519888400 -28800 0 PST} + {2530778400 -25200 1 PDT} + {2551338000 -28800 0 PST} + {2562228000 -25200 1 PDT} + {2582787600 -28800 0 PST} + {2593677600 -25200 1 PDT} + {2614237200 -28800 0 PST} + {2625127200 -25200 1 PDT} + {2645686800 -28800 0 PST} + {2656576800 -25200 1 PDT} + {2677136400 -28800 0 PST} + {2688631200 -25200 1 PDT} + {2709190800 -28800 0 PST} + {2720080800 -25200 1 PDT} + {2740640400 -28800 0 PST} + {2751530400 -25200 1 PDT} + {2772090000 -28800 0 PST} + {2782980000 -25200 1 PDT} + {2803539600 -28800 0 PST} + {2814429600 -25200 1 PDT} + {2834989200 -28800 0 PST} + {2846484000 -25200 1 PDT} + {2867043600 -28800 0 PST} + {2877933600 -25200 1 PDT} + {2898493200 -28800 0 PST} + {2909383200 -25200 1 PDT} + {2929942800 -28800 0 PST} + {2940832800 -25200 1 PDT} + {2961392400 -28800 0 PST} + {2972282400 -25200 1 PDT} + {2992842000 -28800 0 PST} + {3003732000 -25200 1 PDT} + {3024291600 -28800 0 PST} + {3035786400 -25200 1 PDT} + {3056346000 -28800 0 PST} + {3067236000 -25200 1 PDT} + {3087795600 -28800 0 PST} + {3098685600 -25200 1 PDT} + {3119245200 -28800 0 PST} + {3130135200 -25200 1 PDT} + {3150694800 -28800 0 PST} + {3161584800 -25200 1 PDT} + {3182144400 -28800 0 PST} + {3193034400 -25200 1 PDT} + {3213594000 -28800 0 PST} + {3225088800 -25200 1 PDT} + {3245648400 -28800 0 PST} + {3256538400 -25200 1 PDT} + {3277098000 -28800 0 PST} + {3287988000 -25200 1 PDT} + {3308547600 -28800 0 PST} + {3319437600 -25200 1 PDT} + {3339997200 -28800 0 PST} + {3350887200 -25200 1 PDT} + {3371446800 -28800 0 PST} + {3382941600 -25200 1 PDT} + {3403501200 -28800 0 PST} + {3414391200 -25200 1 PDT} + {3434950800 -28800 0 PST} + {3445840800 -25200 1 PDT} + {3466400400 -28800 0 PST} + {3477290400 -25200 1 PDT} + {3497850000 -28800 0 PST} + {3508740000 -25200 1 PDT} + {3529299600 -28800 0 PST} + {3540189600 -25200 1 PDT} + {3560749200 -28800 0 PST} + {3572244000 -25200 1 PDT} + {3592803600 -28800 0 PST} + {3603693600 -25200 1 PDT} + {3624253200 -28800 0 PST} + {3635143200 -25200 1 PDT} + {3655702800 -28800 0 PST} + {3666592800 -25200 1 PDT} + {3687152400 -28800 0 PST} + {3698042400 -25200 1 PDT} + {3718602000 -28800 0 PST} + {3730096800 -25200 1 PDT} + {3750656400 -28800 0 PST} + {3761546400 -25200 1 PDT} + {3782106000 -28800 0 PST} + {3792996000 -25200 1 PDT} + {3813555600 -28800 0 PST} + {3824445600 -25200 1 PDT} + {3845005200 -28800 0 PST} + {3855895200 -25200 1 PDT} + {3876454800 -28800 0 PST} + {3887344800 -25200 1 PDT} + {3907904400 -28800 0 PST} + {3919399200 -25200 1 PDT} + {3939958800 -28800 0 PST} + {3950848800 -25200 1 PDT} + {3971408400 -28800 0 PST} + {3982298400 -25200 1 PDT} + {4002858000 -28800 0 PST} + {4013748000 -25200 1 PDT} + {4034307600 -28800 0 PST} + {4045197600 -25200 1 PDT} + {4065757200 -28800 0 PST} + {4076647200 -25200 1 PDT} + {4097206800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Winnipeg b/mingw/lib/tcl8.5/tzdata/America/Winnipeg new file mode 100644 index 00000000..7e6208a2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Winnipeg @@ -0,0 +1,316 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Winnipeg) { + {-9223372036854775808 -23316 0 LMT} + {-2602258284 -21600 0 CST} + {-1694368800 -18000 1 CDT} + {-1681671600 -21600 0 CST} + {-1632067200 -18000 1 CDT} + {-1614790800 -21600 0 CST} + {-1029686400 -18000 1 CDT} + {-1018198800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-746035200 -18000 1 CDT} + {-732733200 -21600 0 CST} + {-715795200 -18000 1 CDT} + {-702493200 -21600 0 CST} + {-684345600 -18000 1 CDT} + {-671043600 -21600 0 CST} + {-652896000 -18000 1 CDT} + {-639594000 -21600 0 CST} + {-620755200 -18000 1 CDT} + {-607626000 -21600 0 CST} + {-589392000 -18000 1 CDT} + {-576090000 -21600 0 CST} + {-557942400 -18000 1 CDT} + {-544640400 -21600 0 CST} + {-526492800 -18000 1 CDT} + {-513190800 -21600 0 CST} + {-495043200 -18000 1 CDT} + {-481741200 -21600 0 CST} + {-463593600 -18000 1 CDT} + {-450291600 -21600 0 CST} + {-431539200 -18000 1 CDT} + {-418237200 -21600 0 CST} + {-400089600 -18000 1 CDT} + {-386787600 -21600 0 CST} + {-368640000 -18000 1 CDT} + {-355338000 -21600 0 CST} + {-337190400 -18000 1 CDT} + {-321469200 -21600 0 CST} + {-305740800 -18000 1 CDT} + {-292438800 -21600 0 CST} + {-210787200 -18000 1 CDT} + {-198090000 -21600 0 CST} + {-116438400 -18000 1 CDT} + {-100108800 -21600 0 CST} + {-84384000 -18000 1 CDT} + {-68659200 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37209600 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5760000 -21600 0 CST} + {9964800 -18000 1 CDT} + {25689600 -21600 0 CST} + {41414400 -18000 1 CDT} + {57744000 -21600 0 CST} + {73468800 -18000 1 CDT} + {89193600 -21600 0 CST} + {104918400 -18000 1 CDT} + {120643200 -21600 0 CST} + {136368000 -18000 1 CDT} + {152092800 -21600 0 CST} + {167817600 -18000 1 CDT} + {183542400 -21600 0 CST} + {199267200 -18000 1 CDT} + {215596800 -21600 0 CST} + {230716800 -18000 1 CDT} + {247046400 -21600 0 CST} + {262771200 -18000 1 CDT} + {278496000 -21600 0 CST} + {294220800 -18000 1 CDT} + {309945600 -21600 0 CST} + {325670400 -18000 1 CDT} + {341395200 -21600 0 CST} + {357120000 -18000 1 CDT} + {372844800 -21600 0 CST} + {388569600 -18000 1 CDT} + {404899200 -21600 0 CST} + {420019200 -18000 1 CDT} + {436348800 -21600 0 CST} + {452073600 -18000 1 CDT} + {467798400 -21600 0 CST} + {483523200 -18000 1 CDT} + {499248000 -21600 0 CST} + {514972800 -18000 1 CDT} + {530697600 -21600 0 CST} + {544608000 -18000 1 CDT} + {562147200 -21600 0 CST} + {576057600 -18000 1 CDT} + {594201600 -21600 0 CST} + {607507200 -18000 1 CDT} + {625651200 -21600 0 CST} + {638956800 -18000 1 CDT} + {657100800 -21600 0 CST} + {671011200 -18000 1 CDT} + {688550400 -21600 0 CST} + {702460800 -18000 1 CDT} + {720000000 -21600 0 CST} + {733910400 -18000 1 CDT} + {752054400 -21600 0 CST} + {765360000 -18000 1 CDT} + {783504000 -21600 0 CST} + {796809600 -18000 1 CDT} + {814953600 -21600 0 CST} + {828864000 -18000 1 CDT} + {846403200 -21600 0 CST} + {860313600 -18000 1 CDT} + {877852800 -21600 0 CST} + {891763200 -18000 1 CDT} + {909302400 -21600 0 CST} + {923212800 -18000 1 CDT} + {941356800 -21600 0 CST} + {954662400 -18000 1 CDT} + {972806400 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004256000 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035705600 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067155200 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099209600 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130659200 -21600 0 CST} + {1136095200 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Yakutat b/mingw/lib/tcl8.5/tzdata/America/Yakutat new file mode 100644 index 00000000..a0420c54 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Yakutat @@ -0,0 +1,276 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Yakutat) { + {-9223372036854775808 52865 0 LMT} + {-3225364865 -33535 0 LMT} + {-2188953665 -32400 0 YST} + {-883580400 -32400 0 YST} + {-880203600 -28800 1 YWT} + {-769395600 -28800 1 YPT} + {-765381600 -32400 0 YST} + {-757350000 -32400 0 YST} + {-31503600 -32400 0 YST} + {-21474000 -28800 1 YDT} + {-5752800 -32400 0 YST} + {9975600 -28800 1 YDT} + {25696800 -32400 0 YST} + {41425200 -28800 1 YDT} + {57751200 -32400 0 YST} + {73479600 -28800 1 YDT} + {89200800 -32400 0 YST} + {104929200 -28800 1 YDT} + {120650400 -32400 0 YST} + {126702000 -28800 1 YDT} + {152100000 -32400 0 YST} + {162385200 -28800 1 YDT} + {183549600 -32400 0 YST} + {199278000 -28800 1 YDT} + {215604000 -32400 0 YST} + {230727600 -28800 1 YDT} + {247053600 -32400 0 YST} + {262782000 -28800 1 YDT} + {278503200 -32400 0 YST} + {294231600 -28800 1 YDT} + {309952800 -32400 0 YST} + {325681200 -28800 1 YDT} + {341402400 -32400 0 YST} + {357130800 -28800 1 YDT} + {372852000 -32400 0 YST} + {388580400 -28800 1 YDT} + {404906400 -32400 0 YST} + {420030000 -28800 1 YDT} + {436356000 -32400 0 YST} + {439030800 -32400 0 AKST} + {452084400 -28800 1 AKDT} + {467805600 -32400 0 AKST} + {483534000 -28800 1 AKDT} + {499255200 -32400 0 AKST} + {514983600 -28800 1 AKDT} + {530704800 -32400 0 AKST} + {544618800 -28800 1 AKDT} + {562154400 -32400 0 AKST} + {576068400 -28800 1 AKDT} + {594208800 -32400 0 AKST} + {607518000 -28800 1 AKDT} + {625658400 -32400 0 AKST} + {638967600 -28800 1 AKDT} + {657108000 -32400 0 AKST} + {671022000 -28800 1 AKDT} + {688557600 -32400 0 AKST} + {702471600 -28800 1 AKDT} + {720007200 -32400 0 AKST} + {733921200 -28800 1 AKDT} + {752061600 -32400 0 AKST} + {765370800 -28800 1 AKDT} + {783511200 -32400 0 AKST} + {796820400 -28800 1 AKDT} + {814960800 -32400 0 AKST} + {828874800 -28800 1 AKDT} + {846410400 -32400 0 AKST} + {860324400 -28800 1 AKDT} + {877860000 -32400 0 AKST} + {891774000 -28800 1 AKDT} + {909309600 -32400 0 AKST} + {923223600 -28800 1 AKDT} + {941364000 -32400 0 AKST} + {954673200 -28800 1 AKDT} + {972813600 -32400 0 AKST} + {986122800 -28800 1 AKDT} + {1004263200 -32400 0 AKST} + {1018177200 -28800 1 AKDT} + {1035712800 -32400 0 AKST} + {1049626800 -28800 1 AKDT} + {1067162400 -32400 0 AKST} + {1081076400 -28800 1 AKDT} + {1099216800 -32400 0 AKST} + {1112526000 -28800 1 AKDT} + {1130666400 -32400 0 AKST} + {1143975600 -28800 1 AKDT} + {1162116000 -32400 0 AKST} + {1173610800 -28800 1 AKDT} + {1194170400 -32400 0 AKST} + {1205060400 -28800 1 AKDT} + {1225620000 -32400 0 AKST} + {1236510000 -28800 1 AKDT} + {1257069600 -32400 0 AKST} + {1268564400 -28800 1 AKDT} + {1289124000 -32400 0 AKST} + {1300014000 -28800 1 AKDT} + {1320573600 -32400 0 AKST} + {1331463600 -28800 1 AKDT} + {1352023200 -32400 0 AKST} + {1362913200 -28800 1 AKDT} + {1383472800 -32400 0 AKST} + {1394362800 -28800 1 AKDT} + {1414922400 -32400 0 AKST} + {1425812400 -28800 1 AKDT} + {1446372000 -32400 0 AKST} + {1457866800 -28800 1 AKDT} + {1478426400 -32400 0 AKST} + {1489316400 -28800 1 AKDT} + {1509876000 -32400 0 AKST} + {1520766000 -28800 1 AKDT} + {1541325600 -32400 0 AKST} + {1552215600 -28800 1 AKDT} + {1572775200 -32400 0 AKST} + {1583665200 -28800 1 AKDT} + {1604224800 -32400 0 AKST} + {1615719600 -28800 1 AKDT} + {1636279200 -32400 0 AKST} + {1647169200 -28800 1 AKDT} + {1667728800 -32400 0 AKST} + {1678618800 -28800 1 AKDT} + {1699178400 -32400 0 AKST} + {1710068400 -28800 1 AKDT} + {1730628000 -32400 0 AKST} + {1741518000 -28800 1 AKDT} + {1762077600 -32400 0 AKST} + {1772967600 -28800 1 AKDT} + {1793527200 -32400 0 AKST} + {1805022000 -28800 1 AKDT} + {1825581600 -32400 0 AKST} + {1836471600 -28800 1 AKDT} + {1857031200 -32400 0 AKST} + {1867921200 -28800 1 AKDT} + {1888480800 -32400 0 AKST} + {1899370800 -28800 1 AKDT} + {1919930400 -32400 0 AKST} + {1930820400 -28800 1 AKDT} + {1951380000 -32400 0 AKST} + {1962874800 -28800 1 AKDT} + {1983434400 -32400 0 AKST} + {1994324400 -28800 1 AKDT} + {2014884000 -32400 0 AKST} + {2025774000 -28800 1 AKDT} + {2046333600 -32400 0 AKST} + {2057223600 -28800 1 AKDT} + {2077783200 -32400 0 AKST} + {2088673200 -28800 1 AKDT} + {2109232800 -32400 0 AKST} + {2120122800 -28800 1 AKDT} + {2140682400 -32400 0 AKST} + {2152177200 -28800 1 AKDT} + {2172736800 -32400 0 AKST} + {2183626800 -28800 1 AKDT} + {2204186400 -32400 0 AKST} + {2215076400 -28800 1 AKDT} + {2235636000 -32400 0 AKST} + {2246526000 -28800 1 AKDT} + {2267085600 -32400 0 AKST} + {2277975600 -28800 1 AKDT} + {2298535200 -32400 0 AKST} + {2309425200 -28800 1 AKDT} + {2329984800 -32400 0 AKST} + {2341479600 -28800 1 AKDT} + {2362039200 -32400 0 AKST} + {2372929200 -28800 1 AKDT} + {2393488800 -32400 0 AKST} + {2404378800 -28800 1 AKDT} + {2424938400 -32400 0 AKST} + {2435828400 -28800 1 AKDT} + {2456388000 -32400 0 AKST} + {2467278000 -28800 1 AKDT} + {2487837600 -32400 0 AKST} + {2499332400 -28800 1 AKDT} + {2519892000 -32400 0 AKST} + {2530782000 -28800 1 AKDT} + {2551341600 -32400 0 AKST} + {2562231600 -28800 1 AKDT} + {2582791200 -32400 0 AKST} + {2593681200 -28800 1 AKDT} + {2614240800 -32400 0 AKST} + {2625130800 -28800 1 AKDT} + {2645690400 -32400 0 AKST} + {2656580400 -28800 1 AKDT} + {2677140000 -32400 0 AKST} + {2688634800 -28800 1 AKDT} + {2709194400 -32400 0 AKST} + {2720084400 -28800 1 AKDT} + {2740644000 -32400 0 AKST} + {2751534000 -28800 1 AKDT} + {2772093600 -32400 0 AKST} + {2782983600 -28800 1 AKDT} + {2803543200 -32400 0 AKST} + {2814433200 -28800 1 AKDT} + {2834992800 -32400 0 AKST} + {2846487600 -28800 1 AKDT} + {2867047200 -32400 0 AKST} + {2877937200 -28800 1 AKDT} + {2898496800 -32400 0 AKST} + {2909386800 -28800 1 AKDT} + {2929946400 -32400 0 AKST} + {2940836400 -28800 1 AKDT} + {2961396000 -32400 0 AKST} + {2972286000 -28800 1 AKDT} + {2992845600 -32400 0 AKST} + {3003735600 -28800 1 AKDT} + {3024295200 -32400 0 AKST} + {3035790000 -28800 1 AKDT} + {3056349600 -32400 0 AKST} + {3067239600 -28800 1 AKDT} + {3087799200 -32400 0 AKST} + {3098689200 -28800 1 AKDT} + {3119248800 -32400 0 AKST} + {3130138800 -28800 1 AKDT} + {3150698400 -32400 0 AKST} + {3161588400 -28800 1 AKDT} + {3182148000 -32400 0 AKST} + {3193038000 -28800 1 AKDT} + {3213597600 -32400 0 AKST} + {3225092400 -28800 1 AKDT} + {3245652000 -32400 0 AKST} + {3256542000 -28800 1 AKDT} + {3277101600 -32400 0 AKST} + {3287991600 -28800 1 AKDT} + {3308551200 -32400 0 AKST} + {3319441200 -28800 1 AKDT} + {3340000800 -32400 0 AKST} + {3350890800 -28800 1 AKDT} + {3371450400 -32400 0 AKST} + {3382945200 -28800 1 AKDT} + {3403504800 -32400 0 AKST} + {3414394800 -28800 1 AKDT} + {3434954400 -32400 0 AKST} + {3445844400 -28800 1 AKDT} + {3466404000 -32400 0 AKST} + {3477294000 -28800 1 AKDT} + {3497853600 -32400 0 AKST} + {3508743600 -28800 1 AKDT} + {3529303200 -32400 0 AKST} + {3540193200 -28800 1 AKDT} + {3560752800 -32400 0 AKST} + {3572247600 -28800 1 AKDT} + {3592807200 -32400 0 AKST} + {3603697200 -28800 1 AKDT} + {3624256800 -32400 0 AKST} + {3635146800 -28800 1 AKDT} + {3655706400 -32400 0 AKST} + {3666596400 -28800 1 AKDT} + {3687156000 -32400 0 AKST} + {3698046000 -28800 1 AKDT} + {3718605600 -32400 0 AKST} + {3730100400 -28800 1 AKDT} + {3750660000 -32400 0 AKST} + {3761550000 -28800 1 AKDT} + {3782109600 -32400 0 AKST} + {3792999600 -28800 1 AKDT} + {3813559200 -32400 0 AKST} + {3824449200 -28800 1 AKDT} + {3845008800 -32400 0 AKST} + {3855898800 -28800 1 AKDT} + {3876458400 -32400 0 AKST} + {3887348400 -28800 1 AKDT} + {3907908000 -32400 0 AKST} + {3919402800 -28800 1 AKDT} + {3939962400 -32400 0 AKST} + {3950852400 -28800 1 AKDT} + {3971412000 -32400 0 AKST} + {3982302000 -28800 1 AKDT} + {4002861600 -32400 0 AKST} + {4013751600 -28800 1 AKDT} + {4034311200 -32400 0 AKST} + {4045201200 -28800 1 AKDT} + {4065760800 -32400 0 AKST} + {4076650800 -28800 1 AKDT} + {4097210400 -32400 0 AKST} +} diff --git a/mingw/lib/tcl8.5/tzdata/America/Yellowknife b/mingw/lib/tcl8.5/tzdata/America/Yellowknife new file mode 100644 index 00000000..44ca658b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/America/Yellowknife @@ -0,0 +1,252 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:America/Yellowknife) { + {-9223372036854775808 0 0 zzz} + {-1104537600 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-147891600 -18000 1 MDDT} + {-131562000 -25200 0 MST} + {315558000 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Casey b/mingw/lib/tcl8.5/tzdata/Antarctica/Casey new file mode 100644 index 00000000..6d383f38 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Casey @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Casey) { + {-9223372036854775808 0 0 zzz} + {-31536000 28800 0 WST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Davis b/mingw/lib/tcl8.5/tzdata/Antarctica/Davis new file mode 100644 index 00000000..f4b72829 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Davis @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Davis) { + {-9223372036854775808 0 0 zzz} + {-409190400 25200 0 DAVT} + {-163062000 0 0 zzz} + {-28857600 25200 0 DAVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville b/mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville new file mode 100644 index 00000000..41dc1e3e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/DumontDUrville) { + {-9223372036854775808 0 0 zzz} + {-725846400 36000 0 PMT} + {-566992800 0 0 zzz} + {-415497600 36000 0 DDUT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Mawson b/mingw/lib/tcl8.5/tzdata/Antarctica/Mawson new file mode 100644 index 00000000..1f0c3fec --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Mawson @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Mawson) { + {-9223372036854775808 0 0 zzz} + {-501206400 21600 0 MAWT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo b/mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo new file mode 100644 index 00000000..670f7eb6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo @@ -0,0 +1,257 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/McMurdo) { + {-9223372036854775808 0 0 zzz} + {-441849600 43200 0 NZST} + {152632800 46800 1 NZDT} + {162309600 43200 0 NZST} + {183477600 46800 1 NZDT} + {194968800 43200 0 NZST} + {215532000 46800 1 NZDT} + {226418400 43200 0 NZST} + {246981600 46800 1 NZDT} + {257868000 43200 0 NZST} + {278431200 46800 1 NZDT} + {289317600 43200 0 NZST} + {309880800 46800 1 NZDT} + {320767200 43200 0 NZST} + {341330400 46800 1 NZDT} + {352216800 43200 0 NZST} + {372780000 46800 1 NZDT} + {384271200 43200 0 NZST} + {404834400 46800 1 NZDT} + {415720800 43200 0 NZST} + {436284000 46800 1 NZDT} + {447170400 43200 0 NZST} + {467733600 46800 1 NZDT} + {478620000 43200 0 NZST} + {499183200 46800 1 NZDT} + {510069600 43200 0 NZST} + {530632800 46800 1 NZDT} + {541519200 43200 0 NZST} + {562082400 46800 1 NZDT} + {573573600 43200 0 NZST} + {594136800 46800 1 NZDT} + {605023200 43200 0 NZST} + {623772000 46800 1 NZDT} + {637682400 43200 0 NZST} + {655221600 46800 1 NZDT} + {669132000 43200 0 NZST} + {686671200 46800 1 NZDT} + {700581600 43200 0 NZST} + {718120800 46800 1 NZDT} + {732636000 43200 0 NZST} + {749570400 46800 1 NZDT} + {764085600 43200 0 NZST} + {781020000 46800 1 NZDT} + {795535200 43200 0 NZST} + {812469600 46800 1 NZDT} + {826984800 43200 0 NZST} + {844524000 46800 1 NZDT} + {858434400 43200 0 NZST} + {875973600 46800 1 NZDT} + {889884000 43200 0 NZST} + {907423200 46800 1 NZDT} + {921938400 43200 0 NZST} + {938872800 46800 1 NZDT} + {953388000 43200 0 NZST} + {970322400 46800 1 NZDT} + {984837600 43200 0 NZST} + {1002376800 46800 1 NZDT} + {1016287200 43200 0 NZST} + {1033826400 46800 1 NZDT} + {1047736800 43200 0 NZST} + {1065276000 46800 1 NZDT} + {1079791200 43200 0 NZST} + {1096725600 46800 1 NZDT} + {1111240800 43200 0 NZST} + {1128175200 46800 1 NZDT} + {1142690400 43200 0 NZST} + {1159624800 46800 1 NZDT} + {1174140000 43200 0 NZST} + {1191074400 46800 1 NZDT} + {1207404000 43200 0 NZST} + {1222524000 46800 1 NZDT} + {1238853600 43200 0 NZST} + {1253973600 46800 1 NZDT} + {1270303200 43200 0 NZST} + {1285423200 46800 1 NZDT} + {1301752800 43200 0 NZST} + {1316872800 46800 1 NZDT} + {1333202400 43200 0 NZST} + {1348927200 46800 1 NZDT} + {1365256800 43200 0 NZST} + {1380376800 46800 1 NZDT} + {1396706400 43200 0 NZST} + {1411826400 46800 1 NZDT} + {1428156000 43200 0 NZST} + {1443276000 46800 1 NZDT} + {1459605600 43200 0 NZST} + {1474725600 46800 1 NZDT} + {1491055200 43200 0 NZST} + {1506175200 46800 1 NZDT} + {1522504800 43200 0 NZST} + {1538229600 46800 1 NZDT} + {1554559200 43200 0 NZST} + {1569679200 46800 1 NZDT} + {1586008800 43200 0 NZST} + {1601128800 46800 1 NZDT} + {1617458400 43200 0 NZST} + {1632578400 46800 1 NZDT} + {1648908000 43200 0 NZST} + {1664028000 46800 1 NZDT} + {1680357600 43200 0 NZST} + {1695477600 46800 1 NZDT} + {1712412000 43200 0 NZST} + {1727532000 46800 1 NZDT} + {1743861600 43200 0 NZST} + {1758981600 46800 1 NZDT} + {1775311200 43200 0 NZST} + {1790431200 46800 1 NZDT} + {1806760800 43200 0 NZST} + {1821880800 46800 1 NZDT} + {1838210400 43200 0 NZST} + {1853330400 46800 1 NZDT} + {1869660000 43200 0 NZST} + {1885384800 46800 1 NZDT} + {1901714400 43200 0 NZST} + {1916834400 46800 1 NZDT} + {1933164000 43200 0 NZST} + {1948284000 46800 1 NZDT} + {1964613600 43200 0 NZST} + {1979733600 46800 1 NZDT} + {1996063200 43200 0 NZST} + {2011183200 46800 1 NZDT} + {2027512800 43200 0 NZST} + {2042632800 46800 1 NZDT} + {2058962400 43200 0 NZST} + {2074687200 46800 1 NZDT} + {2091016800 43200 0 NZST} + {2106136800 46800 1 NZDT} + {2122466400 43200 0 NZST} + {2137586400 46800 1 NZDT} + {2153916000 43200 0 NZST} + {2169036000 46800 1 NZDT} + {2185365600 43200 0 NZST} + {2200485600 46800 1 NZDT} + {2216815200 43200 0 NZST} + {2232540000 46800 1 NZDT} + {2248869600 43200 0 NZST} + {2263989600 46800 1 NZDT} + {2280319200 43200 0 NZST} + {2295439200 46800 1 NZDT} + {2311768800 43200 0 NZST} + {2326888800 46800 1 NZDT} + {2343218400 43200 0 NZST} + {2358338400 46800 1 NZDT} + {2374668000 43200 0 NZST} + {2389788000 46800 1 NZDT} + {2406117600 43200 0 NZST} + {2421842400 46800 1 NZDT} + {2438172000 43200 0 NZST} + {2453292000 46800 1 NZDT} + {2469621600 43200 0 NZST} + {2484741600 46800 1 NZDT} + {2501071200 43200 0 NZST} + {2516191200 46800 1 NZDT} + {2532520800 43200 0 NZST} + {2547640800 46800 1 NZDT} + {2563970400 43200 0 NZST} + {2579090400 46800 1 NZDT} + {2596024800 43200 0 NZST} + {2611144800 46800 1 NZDT} + {2627474400 43200 0 NZST} + {2642594400 46800 1 NZDT} + {2658924000 43200 0 NZST} + {2674044000 46800 1 NZDT} + {2690373600 43200 0 NZST} + {2705493600 46800 1 NZDT} + {2721823200 43200 0 NZST} + {2736943200 46800 1 NZDT} + {2753272800 43200 0 NZST} + {2768997600 46800 1 NZDT} + {2785327200 43200 0 NZST} + {2800447200 46800 1 NZDT} + {2816776800 43200 0 NZST} + {2831896800 46800 1 NZDT} + {2848226400 43200 0 NZST} + {2863346400 46800 1 NZDT} + {2879676000 43200 0 NZST} + {2894796000 46800 1 NZDT} + {2911125600 43200 0 NZST} + {2926245600 46800 1 NZDT} + {2942575200 43200 0 NZST} + {2958300000 46800 1 NZDT} + {2974629600 43200 0 NZST} + {2989749600 46800 1 NZDT} + {3006079200 43200 0 NZST} + {3021199200 46800 1 NZDT} + {3037528800 43200 0 NZST} + {3052648800 46800 1 NZDT} + {3068978400 43200 0 NZST} + {3084098400 46800 1 NZDT} + {3100428000 43200 0 NZST} + {3116152800 46800 1 NZDT} + {3132482400 43200 0 NZST} + {3147602400 46800 1 NZDT} + {3163932000 43200 0 NZST} + {3179052000 46800 1 NZDT} + {3195381600 43200 0 NZST} + {3210501600 46800 1 NZDT} + {3226831200 43200 0 NZST} + {3241951200 46800 1 NZDT} + {3258280800 43200 0 NZST} + {3273400800 46800 1 NZDT} + {3289730400 43200 0 NZST} + {3305455200 46800 1 NZDT} + {3321784800 43200 0 NZST} + {3336904800 46800 1 NZDT} + {3353234400 43200 0 NZST} + {3368354400 46800 1 NZDT} + {3384684000 43200 0 NZST} + {3399804000 46800 1 NZDT} + {3416133600 43200 0 NZST} + {3431253600 46800 1 NZDT} + {3447583200 43200 0 NZST} + {3462703200 46800 1 NZDT} + {3479637600 43200 0 NZST} + {3494757600 46800 1 NZDT} + {3511087200 43200 0 NZST} + {3526207200 46800 1 NZDT} + {3542536800 43200 0 NZST} + {3557656800 46800 1 NZDT} + {3573986400 43200 0 NZST} + {3589106400 46800 1 NZDT} + {3605436000 43200 0 NZST} + {3620556000 46800 1 NZDT} + {3636885600 43200 0 NZST} + {3652610400 46800 1 NZDT} + {3668940000 43200 0 NZST} + {3684060000 46800 1 NZDT} + {3700389600 43200 0 NZST} + {3715509600 46800 1 NZDT} + {3731839200 43200 0 NZST} + {3746959200 46800 1 NZDT} + {3763288800 43200 0 NZST} + {3778408800 46800 1 NZDT} + {3794738400 43200 0 NZST} + {3809858400 46800 1 NZDT} + {3826188000 43200 0 NZST} + {3841912800 46800 1 NZDT} + {3858242400 43200 0 NZST} + {3873362400 46800 1 NZDT} + {3889692000 43200 0 NZST} + {3904812000 46800 1 NZDT} + {3921141600 43200 0 NZST} + {3936261600 46800 1 NZDT} + {3952591200 43200 0 NZST} + {3967711200 46800 1 NZDT} + {3984040800 43200 0 NZST} + {3999765600 46800 1 NZDT} + {4016095200 43200 0 NZST} + {4031215200 46800 1 NZDT} + {4047544800 43200 0 NZST} + {4062664800 46800 1 NZDT} + {4078994400 43200 0 NZST} + {4094114400 46800 1 NZDT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Palmer b/mingw/lib/tcl8.5/tzdata/Antarctica/Palmer new file mode 100644 index 00000000..1e247541 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Palmer @@ -0,0 +1,254 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Palmer) { + {-9223372036854775808 0 0 zzz} + {-157766400 -14400 0 ART} + {-152654400 -14400 0 ART} + {-132955200 -10800 1 ARST} + {-121122000 -14400 0 ART} + {-101419200 -10800 1 ARST} + {-86821200 -14400 0 ART} + {-71092800 -10800 1 ARST} + {-54766800 -14400 0 ART} + {-39038400 -10800 1 ARST} + {-23317200 -14400 0 ART} + {-7588800 -10800 0 ART} + {128142000 -7200 1 ARST} + {136605600 -10800 0 ART} + {389070000 -14400 0 CLT} + {403070400 -10800 1 CLST} + {416372400 -14400 0 CLT} + {434520000 -10800 1 CLST} + {447822000 -14400 0 CLT} + {466574400 -10800 1 CLST} + {479271600 -14400 0 CLT} + {498024000 -10800 1 CLST} + {510721200 -14400 0 CLT} + {529473600 -10800 1 CLST} + {545194800 -14400 0 CLT} + {560923200 -10800 1 CLST} + {574225200 -14400 0 CLT} + {591768000 -10800 1 CLST} + {605674800 -14400 0 CLT} + {624427200 -10800 1 CLST} + {637729200 -14400 0 CLT} + {653457600 -10800 1 CLST} + {668574000 -14400 0 CLT} + {687326400 -10800 1 CLST} + {700628400 -14400 0 CLT} + {718776000 -10800 1 CLST} + {732078000 -14400 0 CLT} + {750225600 -10800 1 CLST} + {763527600 -14400 0 CLT} + {781675200 -10800 1 CLST} + {794977200 -14400 0 CLT} + {813729600 -10800 1 CLST} + {826426800 -14400 0 CLT} + {845179200 -10800 1 CLST} + {859690800 -14400 0 CLT} + {876628800 -10800 1 CLST} + {889930800 -14400 0 CLT} + {906868800 -10800 1 CLST} + {923194800 -14400 0 CLT} + {939528000 -10800 1 CLST} + {952830000 -14400 0 CLT} + {971582400 -10800 1 CLST} + {984279600 -14400 0 CLT} + {1003032000 -10800 1 CLST} + {1015729200 -14400 0 CLT} + {1034481600 -10800 1 CLST} + {1047178800 -14400 0 CLT} + {1065931200 -10800 1 CLST} + {1079233200 -14400 0 CLT} + {1097380800 -10800 1 CLST} + {1110682800 -14400 0 CLT} + {1128830400 -10800 1 CLST} + {1142132400 -14400 0 CLT} + {1160884800 -10800 1 CLST} + {1173582000 -14400 0 CLT} + {1192334400 -10800 1 CLST} + {1205031600 -14400 0 CLT} + {1223784000 -10800 1 CLST} + {1237086000 -14400 0 CLT} + {1255233600 -10800 1 CLST} + {1268535600 -14400 0 CLT} + {1286683200 -10800 1 CLST} + {1299985200 -14400 0 CLT} + {1318132800 -10800 1 CLST} + {1331434800 -14400 0 CLT} + {1350187200 -10800 1 CLST} + {1362884400 -14400 0 CLT} + {1381636800 -10800 1 CLST} + {1394334000 -14400 0 CLT} + {1413086400 -10800 1 CLST} + {1426388400 -14400 0 CLT} + {1444536000 -10800 1 CLST} + {1457838000 -14400 0 CLT} + {1475985600 -10800 1 CLST} + {1489287600 -14400 0 CLT} + {1508040000 -10800 1 CLST} + {1520737200 -14400 0 CLT} + {1539489600 -10800 1 CLST} + {1552186800 -14400 0 CLT} + {1570939200 -10800 1 CLST} + {1584241200 -14400 0 CLT} + {1602388800 -10800 1 CLST} + {1615690800 -14400 0 CLT} + {1633838400 -10800 1 CLST} + {1647140400 -14400 0 CLT} + {1665288000 -10800 1 CLST} + {1678590000 -14400 0 CLT} + {1697342400 -10800 1 CLST} + {1710039600 -14400 0 CLT} + {1728792000 -10800 1 CLST} + {1741489200 -14400 0 CLT} + {1760241600 -10800 1 CLST} + {1773543600 -14400 0 CLT} + {1791691200 -10800 1 CLST} + {1804993200 -14400 0 CLT} + {1823140800 -10800 1 CLST} + {1836442800 -14400 0 CLT} + {1855195200 -10800 1 CLST} + {1867892400 -14400 0 CLT} + {1886644800 -10800 1 CLST} + {1899342000 -14400 0 CLT} + {1918094400 -10800 1 CLST} + {1930791600 -14400 0 CLT} + {1949544000 -10800 1 CLST} + {1962846000 -14400 0 CLT} + {1980993600 -10800 1 CLST} + {1994295600 -14400 0 CLT} + {2012443200 -10800 1 CLST} + {2025745200 -14400 0 CLT} + {2044497600 -10800 1 CLST} + {2057194800 -14400 0 CLT} + {2075947200 -10800 1 CLST} + {2088644400 -14400 0 CLT} + {2107396800 -10800 1 CLST} + {2120698800 -14400 0 CLT} + {2138846400 -10800 1 CLST} + {2152148400 -14400 0 CLT} + {2170296000 -10800 1 CLST} + {2183598000 -14400 0 CLT} + {2201745600 -10800 1 CLST} + {2215047600 -14400 0 CLT} + {2233800000 -10800 1 CLST} + {2246497200 -14400 0 CLT} + {2265249600 -10800 1 CLST} + {2277946800 -14400 0 CLT} + {2296699200 -10800 1 CLST} + {2310001200 -14400 0 CLT} + {2328148800 -10800 1 CLST} + {2341450800 -14400 0 CLT} + {2359598400 -10800 1 CLST} + {2372900400 -14400 0 CLT} + {2391652800 -10800 1 CLST} + {2404350000 -14400 0 CLT} + {2423102400 -10800 1 CLST} + {2435799600 -14400 0 CLT} + {2454552000 -10800 1 CLST} + {2467854000 -14400 0 CLT} + {2486001600 -10800 1 CLST} + {2499303600 -14400 0 CLT} + {2517451200 -10800 1 CLST} + {2530753200 -14400 0 CLT} + {2548900800 -10800 1 CLST} + {2562202800 -14400 0 CLT} + {2580955200 -10800 1 CLST} + {2593652400 -14400 0 CLT} + {2612404800 -10800 1 CLST} + {2625102000 -14400 0 CLT} + {2643854400 -10800 1 CLST} + {2657156400 -14400 0 CLT} + {2675304000 -10800 1 CLST} + {2688606000 -14400 0 CLT} + {2706753600 -10800 1 CLST} + {2720055600 -14400 0 CLT} + {2738808000 -10800 1 CLST} + {2751505200 -14400 0 CLT} + {2770257600 -10800 1 CLST} + {2782954800 -14400 0 CLT} + {2801707200 -10800 1 CLST} + {2814404400 -14400 0 CLT} + {2833156800 -10800 1 CLST} + {2846458800 -14400 0 CLT} + {2864606400 -10800 1 CLST} + {2877908400 -14400 0 CLT} + {2896056000 -10800 1 CLST} + {2909358000 -14400 0 CLT} + {2928110400 -10800 1 CLST} + {2940807600 -14400 0 CLT} + {2959560000 -10800 1 CLST} + {2972257200 -14400 0 CLT} + {2991009600 -10800 1 CLST} + {3004311600 -14400 0 CLT} + {3022459200 -10800 1 CLST} + {3035761200 -14400 0 CLT} + {3053908800 -10800 1 CLST} + {3067210800 -14400 0 CLT} + {3085358400 -10800 1 CLST} + {3098660400 -14400 0 CLT} + {3117412800 -10800 1 CLST} + {3130110000 -14400 0 CLT} + {3148862400 -10800 1 CLST} + {3161559600 -14400 0 CLT} + {3180312000 -10800 1 CLST} + {3193614000 -14400 0 CLT} + {3211761600 -10800 1 CLST} + {3225063600 -14400 0 CLT} + {3243211200 -10800 1 CLST} + {3256513200 -14400 0 CLT} + {3275265600 -10800 1 CLST} + {3287962800 -14400 0 CLT} + {3306715200 -10800 1 CLST} + {3319412400 -14400 0 CLT} + {3338164800 -10800 1 CLST} + {3351466800 -14400 0 CLT} + {3369614400 -10800 1 CLST} + {3382916400 -14400 0 CLT} + {3401064000 -10800 1 CLST} + {3414366000 -14400 0 CLT} + {3432513600 -10800 1 CLST} + {3445815600 -14400 0 CLT} + {3464568000 -10800 1 CLST} + {3477265200 -14400 0 CLT} + {3496017600 -10800 1 CLST} + {3508714800 -14400 0 CLT} + {3527467200 -10800 1 CLST} + {3540769200 -14400 0 CLT} + {3558916800 -10800 1 CLST} + {3572218800 -14400 0 CLT} + {3590366400 -10800 1 CLST} + {3603668400 -14400 0 CLT} + {3622420800 -10800 1 CLST} + {3635118000 -14400 0 CLT} + {3653870400 -10800 1 CLST} + {3666567600 -14400 0 CLT} + {3685320000 -10800 1 CLST} + {3698017200 -14400 0 CLT} + {3716769600 -10800 1 CLST} + {3730071600 -14400 0 CLT} + {3748219200 -10800 1 CLST} + {3761521200 -14400 0 CLT} + {3779668800 -10800 1 CLST} + {3792970800 -14400 0 CLT} + {3811723200 -10800 1 CLST} + {3824420400 -14400 0 CLT} + {3843172800 -10800 1 CLST} + {3855870000 -14400 0 CLT} + {3874622400 -10800 1 CLST} + {3887924400 -14400 0 CLT} + {3906072000 -10800 1 CLST} + {3919374000 -14400 0 CLT} + {3937521600 -10800 1 CLST} + {3950823600 -14400 0 CLT} + {3968971200 -10800 1 CLST} + {3982273200 -14400 0 CLT} + {4001025600 -10800 1 CLST} + {4013722800 -14400 0 CLT} + {4032475200 -10800 1 CLST} + {4045172400 -14400 0 CLT} + {4063924800 -10800 1 CLST} + {4077226800 -14400 0 CLT} + {4095374400 -10800 1 CLST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Rothera b/mingw/lib/tcl8.5/tzdata/Antarctica/Rothera new file mode 100644 index 00000000..24d7f3e1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Rothera @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Rothera) { + {-9223372036854775808 0 0 zzz} + {218246400 -10800 0 ROTT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole b/mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole new file mode 100644 index 00000000..34d0db1a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Antarctica/McMurdo)]} { + LoadTimeZoneFile Antarctica/McMurdo +} +set TZData(:Antarctica/South_Pole) $TZData(:Antarctica/McMurdo) diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Syowa b/mingw/lib/tcl8.5/tzdata/Antarctica/Syowa new file mode 100644 index 00000000..4d046b56 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Syowa @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Syowa) { + {-9223372036854775808 0 0 zzz} + {-407808000 10800 0 SYOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Antarctica/Vostok b/mingw/lib/tcl8.5/tzdata/Antarctica/Vostok new file mode 100644 index 00000000..f846f655 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Antarctica/Vostok @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Antarctica/Vostok) { + {-9223372036854775808 0 0 zzz} + {-380073600 21600 0 VOST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen b/mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen new file mode 100644 index 00000000..51f83dca --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Oslo)]} { + LoadTimeZoneFile Europe/Oslo +} +set TZData(:Arctic/Longyearbyen) $TZData(:Europe/Oslo) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Aden b/mingw/lib/tcl8.5/tzdata/Asia/Aden new file mode 100644 index 00000000..e9392356 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Aden @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Aden) { + {-9223372036854775808 10848 0 LMT} + {-631162848 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Almaty b/mingw/lib/tcl8.5/tzdata/Asia/Almaty new file mode 100644 index 00000000..68dee299 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Almaty @@ -0,0 +1,56 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Almaty) { + {-9223372036854775808 18468 0 LMT} + {-1441170468 18000 0 ALMT} + {-1247547600 21600 0 ALMT} + {354909600 25200 1 ALMST} + {370717200 21600 0 ALMT} + {386445600 25200 1 ALMST} + {402253200 21600 0 ALMT} + {417981600 25200 1 ALMST} + {433789200 21600 0 ALMT} + {449604000 25200 1 ALMST} + {465336000 21600 0 ALMT} + {481060800 25200 1 ALMST} + {496785600 21600 0 ALMT} + {512510400 25200 1 ALMST} + {528235200 21600 0 ALMT} + {543960000 25200 1 ALMST} + {559684800 21600 0 ALMT} + {575409600 25200 1 ALMST} + {591134400 21600 0 ALMT} + {606859200 25200 1 ALMST} + {622584000 21600 0 ALMT} + {638308800 25200 1 ALMST} + {654638400 21600 0 ALMT} + {662666400 21600 0 ALMT} + {694202400 21600 0 ALMT} + {701802000 25200 1 ALMST} + {717523200 21600 0 ALMT} + {733262400 25200 1 ALMST} + {748987200 21600 0 ALMT} + {764712000 25200 1 ALMST} + {780436800 21600 0 ALMT} + {796161600 25200 1 ALMST} + {811886400 21600 0 ALMT} + {828216000 25200 1 ALMST} + {846360000 21600 0 ALMT} + {859665600 25200 1 ALMST} + {877809600 21600 0 ALMT} + {891115200 25200 1 ALMST} + {909259200 21600 0 ALMT} + {922564800 25200 1 ALMST} + {941313600 21600 0 ALMT} + {954014400 25200 1 ALMST} + {972763200 21600 0 ALMT} + {985464000 25200 1 ALMST} + {1004212800 21600 0 ALMT} + {1017518400 25200 1 ALMST} + {1035662400 21600 0 ALMT} + {1048968000 25200 1 ALMST} + {1067112000 21600 0 ALMT} + {1080417600 25200 1 ALMST} + {1099166400 21600 0 ALMT} + {1110823200 21600 0 ALMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Amman b/mingw/lib/tcl8.5/tzdata/Asia/Amman new file mode 100644 index 00000000..5b34dbd5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Amman @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Amman) { + {-9223372036854775808 8624 0 LMT} + {-1230776624 7200 0 EET} + {108165600 10800 1 EEST} + {118270800 7200 0 EET} + {136591200 10800 1 EEST} + {149806800 7200 0 EET} + {168127200 10800 1 EEST} + {181342800 7200 0 EET} + {199749600 10800 1 EEST} + {215643600 7200 0 EET} + {231285600 10800 1 EEST} + {244501200 7200 0 EET} + {262735200 10800 1 EEST} + {275950800 7200 0 EET} + {481154400 10800 1 EEST} + {496962000 7200 0 EET} + {512949600 10800 1 EEST} + {528670800 7200 0 EET} + {544399200 10800 1 EEST} + {560120400 7200 0 EET} + {575848800 10800 1 EEST} + {592174800 7200 0 EET} + {610581600 10800 1 EEST} + {623624400 7200 0 EET} + {641167200 10800 1 EEST} + {655074000 7200 0 EET} + {671839200 10800 1 EEST} + {685918800 7200 0 EET} + {702856800 10800 1 EEST} + {717973200 7200 0 EET} + {733701600 10800 1 EEST} + {749422800 7200 0 EET} + {765151200 10800 1 EEST} + {779662800 7200 0 EET} + {797205600 10800 1 EEST} + {811116000 7200 0 EET} + {828655200 10800 1 EEST} + {843170400 7200 0 EET} + {860104800 10800 1 EEST} + {874620000 7200 0 EET} + {891554400 10800 1 EEST} + {906069600 7200 0 EET} + {930780000 10800 1 EEST} + {938642400 7200 0 EET} + {954367200 10800 1 EEST} + {970092000 7200 0 EET} + {985816800 10800 1 EEST} + {1001541600 7200 0 EET} + {1017266400 10800 1 EEST} + {1032991200 7200 0 EET} + {1048716000 10800 1 EEST} + {1066946400 7200 0 EET} + {1080165600 10800 1 EEST} + {1097791200 7200 0 EET} + {1112220000 10800 1 EEST} + {1128031200 7200 0 EET} + {1143669600 10800 1 EEST} + {1161900000 7200 0 EET} + {1175119200 10800 1 EEST} + {1193349600 7200 0 EET} + {1206568800 10800 1 EEST} + {1225404000 7200 0 EET} + {1238018400 10800 1 EEST} + {1256853600 7200 0 EET} + {1269468000 10800 1 EEST} + {1288303200 7200 0 EET} + {1301522400 10800 1 EEST} + {1319752800 7200 0 EET} + {1332972000 10800 1 EEST} + {1351202400 7200 0 EET} + {1364421600 10800 1 EEST} + {1382652000 7200 0 EET} + {1395871200 10800 1 EEST} + {1414706400 7200 0 EET} + {1427320800 10800 1 EEST} + {1446156000 7200 0 EET} + {1459375200 10800 1 EEST} + {1477605600 7200 0 EET} + {1490824800 10800 1 EEST} + {1509055200 7200 0 EET} + {1522274400 10800 1 EEST} + {1540504800 7200 0 EET} + {1553724000 10800 1 EEST} + {1571954400 7200 0 EET} + {1585173600 10800 1 EEST} + {1604008800 7200 0 EET} + {1616623200 10800 1 EEST} + {1635458400 7200 0 EET} + {1648677600 10800 1 EEST} + {1666908000 7200 0 EET} + {1680127200 10800 1 EEST} + {1698357600 7200 0 EET} + {1711576800 10800 1 EEST} + {1729807200 7200 0 EET} + {1743026400 10800 1 EEST} + {1761861600 7200 0 EET} + {1774476000 10800 1 EEST} + {1793311200 7200 0 EET} + {1805925600 10800 1 EEST} + {1824760800 7200 0 EET} + {1837980000 10800 1 EEST} + {1856210400 7200 0 EET} + {1869429600 10800 1 EEST} + {1887660000 7200 0 EET} + {1900879200 10800 1 EEST} + {1919109600 7200 0 EET} + {1932328800 10800 1 EEST} + {1951164000 7200 0 EET} + {1963778400 10800 1 EEST} + {1982613600 7200 0 EET} + {1995832800 10800 1 EEST} + {2014063200 7200 0 EET} + {2027282400 10800 1 EEST} + {2045512800 7200 0 EET} + {2058732000 10800 1 EEST} + {2076962400 7200 0 EET} + {2090181600 10800 1 EEST} + {2109016800 7200 0 EET} + {2121631200 10800 1 EEST} + {2140466400 7200 0 EET} + {2153080800 10800 1 EEST} + {2171916000 7200 0 EET} + {2185135200 10800 1 EEST} + {2203365600 7200 0 EET} + {2216584800 10800 1 EEST} + {2234815200 7200 0 EET} + {2248034400 10800 1 EEST} + {2266264800 7200 0 EET} + {2279484000 10800 1 EEST} + {2298319200 7200 0 EET} + {2310933600 10800 1 EEST} + {2329768800 7200 0 EET} + {2342988000 10800 1 EEST} + {2361218400 7200 0 EET} + {2374437600 10800 1 EEST} + {2392668000 7200 0 EET} + {2405887200 10800 1 EEST} + {2424117600 7200 0 EET} + {2437336800 10800 1 EEST} + {2455567200 7200 0 EET} + {2468786400 10800 1 EEST} + {2487621600 7200 0 EET} + {2500236000 10800 1 EEST} + {2519071200 7200 0 EET} + {2532290400 10800 1 EEST} + {2550520800 7200 0 EET} + {2563740000 10800 1 EEST} + {2581970400 7200 0 EET} + {2595189600 10800 1 EEST} + {2613420000 7200 0 EET} + {2626639200 10800 1 EEST} + {2645474400 7200 0 EET} + {2658088800 10800 1 EEST} + {2676924000 7200 0 EET} + {2689538400 10800 1 EEST} + {2708373600 7200 0 EET} + {2721592800 10800 1 EEST} + {2739823200 7200 0 EET} + {2753042400 10800 1 EEST} + {2771272800 7200 0 EET} + {2784492000 10800 1 EEST} + {2802722400 7200 0 EET} + {2815941600 10800 1 EEST} + {2834776800 7200 0 EET} + {2847391200 10800 1 EEST} + {2866226400 7200 0 EET} + {2879445600 10800 1 EEST} + {2897676000 7200 0 EET} + {2910895200 10800 1 EEST} + {2929125600 7200 0 EET} + {2942344800 10800 1 EEST} + {2960575200 7200 0 EET} + {2973794400 10800 1 EEST} + {2992629600 7200 0 EET} + {3005244000 10800 1 EEST} + {3024079200 7200 0 EET} + {3036693600 10800 1 EEST} + {3055528800 7200 0 EET} + {3068748000 10800 1 EEST} + {3086978400 7200 0 EET} + {3100197600 10800 1 EEST} + {3118428000 7200 0 EET} + {3131647200 10800 1 EEST} + {3149877600 7200 0 EET} + {3163096800 10800 1 EEST} + {3181932000 7200 0 EET} + {3194546400 10800 1 EEST} + {3213381600 7200 0 EET} + {3226600800 10800 1 EEST} + {3244831200 7200 0 EET} + {3258050400 10800 1 EEST} + {3276280800 7200 0 EET} + {3289500000 10800 1 EEST} + {3307730400 7200 0 EET} + {3320949600 10800 1 EEST} + {3339180000 7200 0 EET} + {3352399200 10800 1 EEST} + {3371234400 7200 0 EET} + {3383848800 10800 1 EEST} + {3402684000 7200 0 EET} + {3415903200 10800 1 EEST} + {3434133600 7200 0 EET} + {3447352800 10800 1 EEST} + {3465583200 7200 0 EET} + {3478802400 10800 1 EEST} + {3497032800 7200 0 EET} + {3510252000 10800 1 EEST} + {3529087200 7200 0 EET} + {3541701600 10800 1 EEST} + {3560536800 7200 0 EET} + {3573151200 10800 1 EEST} + {3591986400 7200 0 EET} + {3605205600 10800 1 EEST} + {3623436000 7200 0 EET} + {3636655200 10800 1 EEST} + {3654885600 7200 0 EET} + {3668104800 10800 1 EEST} + {3686335200 7200 0 EET} + {3699554400 10800 1 EEST} + {3718389600 7200 0 EET} + {3731004000 10800 1 EEST} + {3749839200 7200 0 EET} + {3763058400 10800 1 EEST} + {3781288800 7200 0 EET} + {3794508000 10800 1 EEST} + {3812738400 7200 0 EET} + {3825957600 10800 1 EEST} + {3844188000 7200 0 EET} + {3857407200 10800 1 EEST} + {3876242400 7200 0 EET} + {3888856800 10800 1 EEST} + {3907692000 7200 0 EET} + {3920306400 10800 1 EEST} + {3939141600 7200 0 EET} + {3952360800 10800 1 EEST} + {3970591200 7200 0 EET} + {3983810400 10800 1 EEST} + {4002040800 7200 0 EET} + {4015260000 10800 1 EEST} + {4033490400 7200 0 EET} + {4046709600 10800 1 EEST} + {4065544800 7200 0 EET} + {4078159200 10800 1 EEST} + {4096994400 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Anadyr b/mingw/lib/tcl8.5/tzdata/Asia/Anadyr new file mode 100644 index 00000000..c0e98a72 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Anadyr @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Anadyr) { + {-9223372036854775808 42596 0 LMT} + {-1441194596 43200 0 ANAT} + {-1247572800 46800 0 ANAMMTT} + {354884400 50400 1 ANAST} + {370692000 46800 0 ANAT} + {386420400 43200 0 ANAMMTT} + {386424000 46800 1 ANAST} + {402231600 43200 0 ANAT} + {417960000 46800 1 ANAST} + {433767600 43200 0 ANAT} + {449582400 46800 1 ANAST} + {465314400 43200 0 ANAT} + {481039200 46800 1 ANAST} + {496764000 43200 0 ANAT} + {512488800 46800 1 ANAST} + {528213600 43200 0 ANAT} + {543938400 46800 1 ANAST} + {559663200 43200 0 ANAT} + {575388000 46800 1 ANAST} + {591112800 43200 0 ANAT} + {606837600 46800 1 ANAST} + {622562400 43200 0 ANAT} + {638287200 46800 1 ANAST} + {654616800 43200 0 ANAT} + {670341600 39600 0 ANAMMTT} + {670345200 43200 1 ANAST} + {686070000 39600 0 ANAT} + {695746800 43200 0 ANAMMTT} + {701780400 46800 1 ANAST} + {717501600 43200 0 ANAT} + {733240800 46800 1 ANAST} + {748965600 43200 0 ANAT} + {764690400 46800 1 ANAST} + {780415200 43200 0 ANAT} + {796140000 46800 1 ANAST} + {811864800 43200 0 ANAT} + {828194400 46800 1 ANAST} + {846338400 43200 0 ANAT} + {859644000 46800 1 ANAST} + {877788000 43200 0 ANAT} + {891093600 46800 1 ANAST} + {909237600 43200 0 ANAT} + {922543200 46800 1 ANAST} + {941292000 43200 0 ANAT} + {953992800 46800 1 ANAST} + {972741600 43200 0 ANAT} + {985442400 46800 1 ANAST} + {1004191200 43200 0 ANAT} + {1017496800 46800 1 ANAST} + {1035640800 43200 0 ANAT} + {1048946400 46800 1 ANAST} + {1067090400 43200 0 ANAT} + {1080396000 46800 1 ANAST} + {1099144800 43200 0 ANAT} + {1111845600 46800 1 ANAST} + {1130594400 43200 0 ANAT} + {1143295200 46800 1 ANAST} + {1162044000 43200 0 ANAT} + {1174744800 46800 1 ANAST} + {1193493600 43200 0 ANAT} + {1206799200 46800 1 ANAST} + {1224943200 43200 0 ANAT} + {1238248800 46800 1 ANAST} + {1256392800 43200 0 ANAT} + {1269698400 46800 1 ANAST} + {1288447200 43200 0 ANAT} + {1301148000 46800 1 ANAST} + {1319896800 43200 0 ANAT} + {1332597600 46800 1 ANAST} + {1351346400 43200 0 ANAT} + {1364652000 46800 1 ANAST} + {1382796000 43200 0 ANAT} + {1396101600 46800 1 ANAST} + {1414245600 43200 0 ANAT} + {1427551200 46800 1 ANAST} + {1445695200 43200 0 ANAT} + {1459000800 46800 1 ANAST} + {1477749600 43200 0 ANAT} + {1490450400 46800 1 ANAST} + {1509199200 43200 0 ANAT} + {1521900000 46800 1 ANAST} + {1540648800 43200 0 ANAT} + {1553954400 46800 1 ANAST} + {1572098400 43200 0 ANAT} + {1585404000 46800 1 ANAST} + {1603548000 43200 0 ANAT} + {1616853600 46800 1 ANAST} + {1635602400 43200 0 ANAT} + {1648303200 46800 1 ANAST} + {1667052000 43200 0 ANAT} + {1679752800 46800 1 ANAST} + {1698501600 43200 0 ANAT} + {1711807200 46800 1 ANAST} + {1729951200 43200 0 ANAT} + {1743256800 46800 1 ANAST} + {1761400800 43200 0 ANAT} + {1774706400 46800 1 ANAST} + {1792850400 43200 0 ANAT} + {1806156000 46800 1 ANAST} + {1824904800 43200 0 ANAT} + {1837605600 46800 1 ANAST} + {1856354400 43200 0 ANAT} + {1869055200 46800 1 ANAST} + {1887804000 43200 0 ANAT} + {1901109600 46800 1 ANAST} + {1919253600 43200 0 ANAT} + {1932559200 46800 1 ANAST} + {1950703200 43200 0 ANAT} + {1964008800 46800 1 ANAST} + {1982757600 43200 0 ANAT} + {1995458400 46800 1 ANAST} + {2014207200 43200 0 ANAT} + {2026908000 46800 1 ANAST} + {2045656800 43200 0 ANAT} + {2058357600 46800 1 ANAST} + {2077106400 43200 0 ANAT} + {2090412000 46800 1 ANAST} + {2108556000 43200 0 ANAT} + {2121861600 46800 1 ANAST} + {2140005600 43200 0 ANAT} + {2153311200 46800 1 ANAST} + {2172060000 43200 0 ANAT} + {2184760800 46800 1 ANAST} + {2203509600 43200 0 ANAT} + {2216210400 46800 1 ANAST} + {2234959200 43200 0 ANAT} + {2248264800 46800 1 ANAST} + {2266408800 43200 0 ANAT} + {2279714400 46800 1 ANAST} + {2297858400 43200 0 ANAT} + {2311164000 46800 1 ANAST} + {2329308000 43200 0 ANAT} + {2342613600 46800 1 ANAST} + {2361362400 43200 0 ANAT} + {2374063200 46800 1 ANAST} + {2392812000 43200 0 ANAT} + {2405512800 46800 1 ANAST} + {2424261600 43200 0 ANAT} + {2437567200 46800 1 ANAST} + {2455711200 43200 0 ANAT} + {2469016800 46800 1 ANAST} + {2487160800 43200 0 ANAT} + {2500466400 46800 1 ANAST} + {2519215200 43200 0 ANAT} + {2531916000 46800 1 ANAST} + {2550664800 43200 0 ANAT} + {2563365600 46800 1 ANAST} + {2582114400 43200 0 ANAT} + {2595420000 46800 1 ANAST} + {2613564000 43200 0 ANAT} + {2626869600 46800 1 ANAST} + {2645013600 43200 0 ANAT} + {2658319200 46800 1 ANAST} + {2676463200 43200 0 ANAT} + {2689768800 46800 1 ANAST} + {2708517600 43200 0 ANAT} + {2721218400 46800 1 ANAST} + {2739967200 43200 0 ANAT} + {2752668000 46800 1 ANAST} + {2771416800 43200 0 ANAT} + {2784722400 46800 1 ANAST} + {2802866400 43200 0 ANAT} + {2816172000 46800 1 ANAST} + {2834316000 43200 0 ANAT} + {2847621600 46800 1 ANAST} + {2866370400 43200 0 ANAT} + {2879071200 46800 1 ANAST} + {2897820000 43200 0 ANAT} + {2910520800 46800 1 ANAST} + {2929269600 43200 0 ANAT} + {2941970400 46800 1 ANAST} + {2960719200 43200 0 ANAT} + {2974024800 46800 1 ANAST} + {2992168800 43200 0 ANAT} + {3005474400 46800 1 ANAST} + {3023618400 43200 0 ANAT} + {3036924000 46800 1 ANAST} + {3055672800 43200 0 ANAT} + {3068373600 46800 1 ANAST} + {3087122400 43200 0 ANAT} + {3099823200 46800 1 ANAST} + {3118572000 43200 0 ANAT} + {3131877600 46800 1 ANAST} + {3150021600 43200 0 ANAT} + {3163327200 46800 1 ANAST} + {3181471200 43200 0 ANAT} + {3194776800 46800 1 ANAST} + {3212920800 43200 0 ANAT} + {3226226400 46800 1 ANAST} + {3244975200 43200 0 ANAT} + {3257676000 46800 1 ANAST} + {3276424800 43200 0 ANAT} + {3289125600 46800 1 ANAST} + {3307874400 43200 0 ANAT} + {3321180000 46800 1 ANAST} + {3339324000 43200 0 ANAT} + {3352629600 46800 1 ANAST} + {3370773600 43200 0 ANAT} + {3384079200 46800 1 ANAST} + {3402828000 43200 0 ANAT} + {3415528800 46800 1 ANAST} + {3434277600 43200 0 ANAT} + {3446978400 46800 1 ANAST} + {3465727200 43200 0 ANAT} + {3479032800 46800 1 ANAST} + {3497176800 43200 0 ANAT} + {3510482400 46800 1 ANAST} + {3528626400 43200 0 ANAT} + {3541932000 46800 1 ANAST} + {3560076000 43200 0 ANAT} + {3573381600 46800 1 ANAST} + {3592130400 43200 0 ANAT} + {3604831200 46800 1 ANAST} + {3623580000 43200 0 ANAT} + {3636280800 46800 1 ANAST} + {3655029600 43200 0 ANAT} + {3668335200 46800 1 ANAST} + {3686479200 43200 0 ANAT} + {3699784800 46800 1 ANAST} + {3717928800 43200 0 ANAT} + {3731234400 46800 1 ANAST} + {3749983200 43200 0 ANAT} + {3762684000 46800 1 ANAST} + {3781432800 43200 0 ANAT} + {3794133600 46800 1 ANAST} + {3812882400 43200 0 ANAT} + {3825583200 46800 1 ANAST} + {3844332000 43200 0 ANAT} + {3857637600 46800 1 ANAST} + {3875781600 43200 0 ANAT} + {3889087200 46800 1 ANAST} + {3907231200 43200 0 ANAT} + {3920536800 46800 1 ANAST} + {3939285600 43200 0 ANAT} + {3951986400 46800 1 ANAST} + {3970735200 43200 0 ANAT} + {3983436000 46800 1 ANAST} + {4002184800 43200 0 ANAT} + {4015490400 46800 1 ANAST} + {4033634400 43200 0 ANAT} + {4046940000 46800 1 ANAST} + {4065084000 43200 0 ANAT} + {4078389600 46800 1 ANAST} + {4096533600 43200 0 ANAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Aqtau b/mingw/lib/tcl8.5/tzdata/Asia/Aqtau new file mode 100644 index 00000000..11e89a26 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Aqtau @@ -0,0 +1,58 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Aqtau) { + {-9223372036854775808 12064 0 LMT} + {-1441164064 14400 0 FORT} + {-1247544000 18000 0 FORT} + {-220942800 18000 0 SHET} + {370724400 21600 0 SHET} + {386445600 18000 0 SHET} + {386449200 21600 1 SHEST} + {402256800 18000 0 SHET} + {417985200 21600 1 SHEST} + {433792800 18000 0 SHET} + {449607600 21600 1 SHEST} + {465339600 18000 0 SHET} + {481064400 21600 1 SHEST} + {496789200 18000 0 SHET} + {512514000 21600 1 SHEST} + {528238800 18000 0 SHET} + {543963600 21600 1 SHEST} + {559688400 18000 0 SHET} + {575413200 21600 1 SHEST} + {591138000 18000 0 SHET} + {606862800 21600 1 SHEST} + {622587600 18000 0 SHET} + {638312400 21600 1 SHEST} + {654642000 18000 0 SHET} + {662670000 18000 0 SHET} + {692823600 18000 0 AQTT} + {701805600 21600 1 AQTST} + {717526800 18000 0 AQTT} + {733266000 21600 1 AQTST} + {748990800 18000 0 AQTT} + {764715600 21600 1 AQTST} + {780440400 18000 0 AQTT} + {796165200 14400 0 AQTT} + {796168800 18000 1 AQTST} + {811893600 14400 0 AQTT} + {828223200 18000 1 AQTST} + {846367200 14400 0 AQTT} + {859672800 18000 1 AQTST} + {877816800 14400 0 AQTT} + {891122400 18000 1 AQTST} + {909266400 14400 0 AQTT} + {922572000 18000 1 AQTST} + {941320800 14400 0 AQTT} + {954021600 18000 1 AQTST} + {972770400 14400 0 AQTT} + {985471200 18000 1 AQTST} + {1004220000 14400 0 AQTT} + {1017525600 18000 1 AQTST} + {1035669600 14400 0 AQTT} + {1048975200 18000 1 AQTST} + {1067119200 14400 0 AQTT} + {1080424800 18000 1 AQTST} + {1099173600 14400 0 AQTT} + {1110830400 18000 0 AQTT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Aqtobe b/mingw/lib/tcl8.5/tzdata/Asia/Aqtobe new file mode 100644 index 00000000..c8574912 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Aqtobe @@ -0,0 +1,57 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Aqtobe) { + {-9223372036854775808 13720 0 LMT} + {-1441165720 14400 0 AKTT} + {-1247544000 18000 0 AKTT} + {354913200 21600 1 AKTST} + {370720800 21600 0 AKTT} + {386445600 18000 0 AKTT} + {386449200 21600 1 AKTST} + {402256800 18000 0 AKTT} + {417985200 21600 1 AKTST} + {433792800 18000 0 AKTT} + {449607600 21600 1 AKTST} + {465339600 18000 0 AKTT} + {481064400 21600 1 AKTST} + {496789200 18000 0 AKTT} + {512514000 21600 1 AKTST} + {528238800 18000 0 AKTT} + {543963600 21600 1 AKTST} + {559688400 18000 0 AKTT} + {575413200 21600 1 AKTST} + {591138000 18000 0 AKTT} + {606862800 21600 1 AKTST} + {622587600 18000 0 AKTT} + {638312400 21600 1 AKTST} + {654642000 18000 0 AKTT} + {662670000 18000 0 AKTT} + {692823600 18000 0 AQTT} + {701805600 21600 1 AQTST} + {717526800 18000 0 AQTT} + {733266000 21600 1 AQTST} + {748990800 18000 0 AQTT} + {764715600 21600 1 AQTST} + {780440400 18000 0 AQTT} + {796165200 21600 1 AQTST} + {811890000 18000 0 AQTT} + {828219600 21600 1 AQTST} + {846363600 18000 0 AQTT} + {859669200 21600 1 AQTST} + {877813200 18000 0 AQTT} + {891118800 21600 1 AQTST} + {909262800 18000 0 AQTT} + {922568400 21600 1 AQTST} + {941317200 18000 0 AQTT} + {954018000 21600 1 AQTST} + {972766800 18000 0 AQTT} + {985467600 21600 1 AQTST} + {1004216400 18000 0 AQTT} + {1017522000 21600 1 AQTST} + {1035666000 18000 0 AQTT} + {1048971600 21600 1 AQTST} + {1067115600 18000 0 AQTT} + {1080421200 21600 1 AQTST} + {1099170000 18000 0 AQTT} + {1110826800 18000 0 AQTT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Ashgabat b/mingw/lib/tcl8.5/tzdata/Asia/Ashgabat new file mode 100644 index 00000000..64bdb3aa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Ashgabat @@ -0,0 +1,31 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Ashgabat) { + {-9223372036854775808 14012 0 LMT} + {-1441166012 14400 0 ASHT} + {-1247544000 18000 0 ASHT} + {354913200 21600 1 ASHST} + {370720800 18000 0 ASHT} + {386449200 21600 1 ASHST} + {402256800 18000 0 ASHT} + {417985200 21600 1 ASHST} + {433792800 18000 0 ASHT} + {449607600 21600 1 ASHST} + {465339600 18000 0 ASHT} + {481064400 21600 1 ASHST} + {496789200 18000 0 ASHT} + {512514000 21600 1 ASHST} + {528238800 18000 0 ASHT} + {543963600 21600 1 ASHST} + {559688400 18000 0 ASHT} + {575413200 21600 1 ASHST} + {591138000 18000 0 ASHT} + {606862800 21600 1 ASHST} + {622587600 18000 0 ASHT} + {638312400 21600 1 ASHST} + {654642000 18000 0 ASHT} + {670366800 14400 0 ASHT} + {670370400 18000 1 ASHST} + {686095200 14400 0 ASHT} + {695772000 18000 0 TMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad b/mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad new file mode 100644 index 00000000..3000c94c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Ashgabat)]} { + LoadTimeZoneFile Asia/Ashgabat +} +set TZData(:Asia/Ashkhabad) $TZData(:Asia/Ashgabat) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Baghdad b/mingw/lib/tcl8.5/tzdata/Asia/Baghdad new file mode 100644 index 00000000..64b45f1d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Baghdad @@ -0,0 +1,243 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Baghdad) { + {-9223372036854775808 10660 0 LMT} + {-2524532260 10656 0 BMT} + {-1641005856 10800 0 AST} + {389048400 14400 0 ADT} + {402264000 10800 0 AST} + {417906000 14400 1 ADT} + {433800000 10800 0 AST} + {449614800 14400 1 ADT} + {465422400 10800 0 AST} + {481150800 14400 1 ADT} + {496792800 10800 0 AST} + {512517600 14400 1 ADT} + {528242400 10800 0 AST} + {543967200 14400 1 ADT} + {559692000 10800 0 AST} + {575416800 14400 1 ADT} + {591141600 10800 0 AST} + {606866400 14400 1 ADT} + {622591200 10800 0 AST} + {638316000 14400 1 ADT} + {654645600 10800 0 AST} + {670464000 14400 1 ADT} + {686275200 10800 0 AST} + {702086400 14400 1 ADT} + {717897600 10800 0 AST} + {733622400 14400 1 ADT} + {749433600 10800 0 AST} + {765158400 14400 1 ADT} + {780969600 10800 0 AST} + {796694400 14400 1 ADT} + {812505600 10800 0 AST} + {828316800 14400 1 ADT} + {844128000 10800 0 AST} + {859852800 14400 1 ADT} + {875664000 10800 0 AST} + {891388800 14400 1 ADT} + {907200000 10800 0 AST} + {922924800 14400 1 ADT} + {938736000 10800 0 AST} + {954547200 14400 1 ADT} + {970358400 10800 0 AST} + {986083200 14400 1 ADT} + {1001894400 10800 0 AST} + {1017619200 14400 1 ADT} + {1033430400 10800 0 AST} + {1049155200 14400 1 ADT} + {1064966400 10800 0 AST} + {1080777600 14400 1 ADT} + {1096588800 10800 0 AST} + {1112313600 14400 1 ADT} + {1128124800 10800 0 AST} + {1143849600 14400 1 ADT} + {1159660800 10800 0 AST} + {1175385600 14400 1 ADT} + {1191196800 10800 0 AST} + {1207008000 14400 1 ADT} + {1222819200 10800 0 AST} + {1238544000 14400 1 ADT} + {1254355200 10800 0 AST} + {1270080000 14400 1 ADT} + {1285891200 10800 0 AST} + {1301616000 14400 1 ADT} + {1317427200 10800 0 AST} + {1333238400 14400 1 ADT} + {1349049600 10800 0 AST} + {1364774400 14400 1 ADT} + {1380585600 10800 0 AST} + {1396310400 14400 1 ADT} + {1412121600 10800 0 AST} + {1427846400 14400 1 ADT} + {1443657600 10800 0 AST} + {1459468800 14400 1 ADT} + {1475280000 10800 0 AST} + {1491004800 14400 1 ADT} + {1506816000 10800 0 AST} + {1522540800 14400 1 ADT} + {1538352000 10800 0 AST} + {1554076800 14400 1 ADT} + {1569888000 10800 0 AST} + {1585699200 14400 1 ADT} + {1601510400 10800 0 AST} + {1617235200 14400 1 ADT} + {1633046400 10800 0 AST} + {1648771200 14400 1 ADT} + {1664582400 10800 0 AST} + {1680307200 14400 1 ADT} + {1696118400 10800 0 AST} + {1711929600 14400 1 ADT} + {1727740800 10800 0 AST} + {1743465600 14400 1 ADT} + {1759276800 10800 0 AST} + {1775001600 14400 1 ADT} + {1790812800 10800 0 AST} + {1806537600 14400 1 ADT} + {1822348800 10800 0 AST} + {1838160000 14400 1 ADT} + {1853971200 10800 0 AST} + {1869696000 14400 1 ADT} + {1885507200 10800 0 AST} + {1901232000 14400 1 ADT} + {1917043200 10800 0 AST} + {1932768000 14400 1 ADT} + {1948579200 10800 0 AST} + {1964390400 14400 1 ADT} + {1980201600 10800 0 AST} + {1995926400 14400 1 ADT} + {2011737600 10800 0 AST} + {2027462400 14400 1 ADT} + {2043273600 10800 0 AST} + {2058998400 14400 1 ADT} + {2074809600 10800 0 AST} + {2090620800 14400 1 ADT} + {2106432000 10800 0 AST} + {2122156800 14400 1 ADT} + {2137968000 10800 0 AST} + {2153692800 14400 1 ADT} + {2169504000 10800 0 AST} + {2185228800 14400 1 ADT} + {2201040000 10800 0 AST} + {2216851200 14400 1 ADT} + {2232662400 10800 0 AST} + {2248387200 14400 1 ADT} + {2264198400 10800 0 AST} + {2279923200 14400 1 ADT} + {2295734400 10800 0 AST} + {2311459200 14400 1 ADT} + {2327270400 10800 0 AST} + {2343081600 14400 1 ADT} + {2358892800 10800 0 AST} + {2374617600 14400 1 ADT} + {2390428800 10800 0 AST} + {2406153600 14400 1 ADT} + {2421964800 10800 0 AST} + {2437689600 14400 1 ADT} + {2453500800 10800 0 AST} + {2469312000 14400 1 ADT} + {2485123200 10800 0 AST} + {2500848000 14400 1 ADT} + {2516659200 10800 0 AST} + {2532384000 14400 1 ADT} + {2548195200 10800 0 AST} + {2563920000 14400 1 ADT} + {2579731200 10800 0 AST} + {2595542400 14400 1 ADT} + {2611353600 10800 0 AST} + {2627078400 14400 1 ADT} + {2642889600 10800 0 AST} + {2658614400 14400 1 ADT} + {2674425600 10800 0 AST} + {2690150400 14400 1 ADT} + {2705961600 10800 0 AST} + {2721772800 14400 1 ADT} + {2737584000 10800 0 AST} + {2753308800 14400 1 ADT} + {2769120000 10800 0 AST} + {2784844800 14400 1 ADT} + {2800656000 10800 0 AST} + {2816380800 14400 1 ADT} + {2832192000 10800 0 AST} + {2848003200 14400 1 ADT} + {2863814400 10800 0 AST} + {2879539200 14400 1 ADT} + {2895350400 10800 0 AST} + {2911075200 14400 1 ADT} + {2926886400 10800 0 AST} + {2942611200 14400 1 ADT} + {2958422400 10800 0 AST} + {2974233600 14400 1 ADT} + {2990044800 10800 0 AST} + {3005769600 14400 1 ADT} + {3021580800 10800 0 AST} + {3037305600 14400 1 ADT} + {3053116800 10800 0 AST} + {3068841600 14400 1 ADT} + {3084652800 10800 0 AST} + {3100464000 14400 1 ADT} + {3116275200 10800 0 AST} + {3132000000 14400 1 ADT} + {3147811200 10800 0 AST} + {3163536000 14400 1 ADT} + {3179347200 10800 0 AST} + {3195072000 14400 1 ADT} + {3210883200 10800 0 AST} + {3226694400 14400 1 ADT} + {3242505600 10800 0 AST} + {3258230400 14400 1 ADT} + {3274041600 10800 0 AST} + {3289766400 14400 1 ADT} + {3305577600 10800 0 AST} + {3321302400 14400 1 ADT} + {3337113600 10800 0 AST} + {3352924800 14400 1 ADT} + {3368736000 10800 0 AST} + {3384460800 14400 1 ADT} + {3400272000 10800 0 AST} + {3415996800 14400 1 ADT} + {3431808000 10800 0 AST} + {3447532800 14400 1 ADT} + {3463344000 10800 0 AST} + {3479155200 14400 1 ADT} + {3494966400 10800 0 AST} + {3510691200 14400 1 ADT} + {3526502400 10800 0 AST} + {3542227200 14400 1 ADT} + {3558038400 10800 0 AST} + {3573763200 14400 1 ADT} + {3589574400 10800 0 AST} + {3605385600 14400 1 ADT} + {3621196800 10800 0 AST} + {3636921600 14400 1 ADT} + {3652732800 10800 0 AST} + {3668457600 14400 1 ADT} + {3684268800 10800 0 AST} + {3699993600 14400 1 ADT} + {3715804800 10800 0 AST} + {3731616000 14400 1 ADT} + {3747427200 10800 0 AST} + {3763152000 14400 1 ADT} + {3778963200 10800 0 AST} + {3794688000 14400 1 ADT} + {3810499200 10800 0 AST} + {3826224000 14400 1 ADT} + {3842035200 10800 0 AST} + {3857846400 14400 1 ADT} + {3873657600 10800 0 AST} + {3889382400 14400 1 ADT} + {3905193600 10800 0 AST} + {3920918400 14400 1 ADT} + {3936729600 10800 0 AST} + {3952454400 14400 1 ADT} + {3968265600 10800 0 AST} + {3984076800 14400 1 ADT} + {3999888000 10800 0 AST} + {4015612800 14400 1 ADT} + {4031424000 10800 0 AST} + {4047148800 14400 1 ADT} + {4062960000 10800 0 AST} + {4078684800 14400 1 ADT} + {4094496000 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Bahrain b/mingw/lib/tcl8.5/tzdata/Asia/Bahrain new file mode 100644 index 00000000..d4b7d2cc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Bahrain @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Bahrain) { + {-9223372036854775808 12140 0 LMT} + {-1577935340 14400 0 GST} + {76190400 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Baku b/mingw/lib/tcl8.5/tzdata/Asia/Baku new file mode 100644 index 00000000..e50071bc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Baku @@ -0,0 +1,242 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Baku) { + {-9223372036854775808 11964 0 LMT} + {-1441163964 10800 0 BAKT} + {-405140400 14400 0 BAKT} + {354916800 18000 1 BAKST} + {370724400 14400 0 BAKT} + {386452800 18000 1 BAKST} + {402260400 14400 0 BAKT} + {417988800 18000 1 BAKST} + {433796400 14400 0 BAKT} + {449611200 18000 1 BAKST} + {465343200 14400 0 BAKT} + {481068000 18000 1 BAKST} + {496792800 14400 0 BAKT} + {512517600 18000 1 BAKST} + {528242400 14400 0 BAKT} + {543967200 18000 1 BAKST} + {559692000 14400 0 BAKT} + {575416800 18000 1 BAKST} + {591141600 14400 0 BAKT} + {606866400 18000 1 BAKST} + {622591200 14400 0 BAKT} + {638316000 18000 1 BAKST} + {654645600 14400 0 BAKT} + {670370400 14400 1 BAKST} + {683496000 14400 0 AZST} + {686098800 10800 0 AZT} + {701812800 14400 1 AZST} + {717537600 14400 0 AZT} + {820440000 14400 0 AZT} + {828234000 18000 1 AZST} + {846378000 14400 0 AZT} + {852062400 14400 0 AZT} + {859680000 18000 1 AZST} + {877824000 14400 0 AZT} + {891129600 18000 1 AZST} + {909273600 14400 0 AZT} + {922579200 18000 1 AZST} + {941328000 14400 0 AZT} + {954028800 18000 1 AZST} + {972777600 14400 0 AZT} + {985478400 18000 1 AZST} + {1004227200 14400 0 AZT} + {1017532800 18000 1 AZST} + {1035676800 14400 0 AZT} + {1048982400 18000 1 AZST} + {1067126400 14400 0 AZT} + {1080432000 18000 1 AZST} + {1099180800 14400 0 AZT} + {1111881600 18000 1 AZST} + {1130630400 14400 0 AZT} + {1143331200 18000 1 AZST} + {1162080000 14400 0 AZT} + {1174780800 18000 1 AZST} + {1193529600 14400 0 AZT} + {1206835200 18000 1 AZST} + {1224979200 14400 0 AZT} + {1238284800 18000 1 AZST} + {1256428800 14400 0 AZT} + {1269734400 18000 1 AZST} + {1288483200 14400 0 AZT} + {1301184000 18000 1 AZST} + {1319932800 14400 0 AZT} + {1332633600 18000 1 AZST} + {1351382400 14400 0 AZT} + {1364688000 18000 1 AZST} + {1382832000 14400 0 AZT} + {1396137600 18000 1 AZST} + {1414281600 14400 0 AZT} + {1427587200 18000 1 AZST} + {1445731200 14400 0 AZT} + {1459036800 18000 1 AZST} + {1477785600 14400 0 AZT} + {1490486400 18000 1 AZST} + {1509235200 14400 0 AZT} + {1521936000 18000 1 AZST} + {1540684800 14400 0 AZT} + {1553990400 18000 1 AZST} + {1572134400 14400 0 AZT} + {1585440000 18000 1 AZST} + {1603584000 14400 0 AZT} + {1616889600 18000 1 AZST} + {1635638400 14400 0 AZT} + {1648339200 18000 1 AZST} + {1667088000 14400 0 AZT} + {1679788800 18000 1 AZST} + {1698537600 14400 0 AZT} + {1711843200 18000 1 AZST} + {1729987200 14400 0 AZT} + {1743292800 18000 1 AZST} + {1761436800 14400 0 AZT} + {1774742400 18000 1 AZST} + {1792886400 14400 0 AZT} + {1806192000 18000 1 AZST} + {1824940800 14400 0 AZT} + {1837641600 18000 1 AZST} + {1856390400 14400 0 AZT} + {1869091200 18000 1 AZST} + {1887840000 14400 0 AZT} + {1901145600 18000 1 AZST} + {1919289600 14400 0 AZT} + {1932595200 18000 1 AZST} + {1950739200 14400 0 AZT} + {1964044800 18000 1 AZST} + {1982793600 14400 0 AZT} + {1995494400 18000 1 AZST} + {2014243200 14400 0 AZT} + {2026944000 18000 1 AZST} + {2045692800 14400 0 AZT} + {2058393600 18000 1 AZST} + {2077142400 14400 0 AZT} + {2090448000 18000 1 AZST} + {2108592000 14400 0 AZT} + {2121897600 18000 1 AZST} + {2140041600 14400 0 AZT} + {2153347200 18000 1 AZST} + {2172096000 14400 0 AZT} + {2184796800 18000 1 AZST} + {2203545600 14400 0 AZT} + {2216246400 18000 1 AZST} + {2234995200 14400 0 AZT} + {2248300800 18000 1 AZST} + {2266444800 14400 0 AZT} + {2279750400 18000 1 AZST} + {2297894400 14400 0 AZT} + {2311200000 18000 1 AZST} + {2329344000 14400 0 AZT} + {2342649600 18000 1 AZST} + {2361398400 14400 0 AZT} + {2374099200 18000 1 AZST} + {2392848000 14400 0 AZT} + {2405548800 18000 1 AZST} + {2424297600 14400 0 AZT} + {2437603200 18000 1 AZST} + {2455747200 14400 0 AZT} + {2469052800 18000 1 AZST} + {2487196800 14400 0 AZT} + {2500502400 18000 1 AZST} + {2519251200 14400 0 AZT} + {2531952000 18000 1 AZST} + {2550700800 14400 0 AZT} + {2563401600 18000 1 AZST} + {2582150400 14400 0 AZT} + {2595456000 18000 1 AZST} + {2613600000 14400 0 AZT} + {2626905600 18000 1 AZST} + {2645049600 14400 0 AZT} + {2658355200 18000 1 AZST} + {2676499200 14400 0 AZT} + {2689804800 18000 1 AZST} + {2708553600 14400 0 AZT} + {2721254400 18000 1 AZST} + {2740003200 14400 0 AZT} + {2752704000 18000 1 AZST} + {2771452800 14400 0 AZT} + {2784758400 18000 1 AZST} + {2802902400 14400 0 AZT} + {2816208000 18000 1 AZST} + {2834352000 14400 0 AZT} + {2847657600 18000 1 AZST} + {2866406400 14400 0 AZT} + {2879107200 18000 1 AZST} + {2897856000 14400 0 AZT} + {2910556800 18000 1 AZST} + {2929305600 14400 0 AZT} + {2942006400 18000 1 AZST} + {2960755200 14400 0 AZT} + {2974060800 18000 1 AZST} + {2992204800 14400 0 AZT} + {3005510400 18000 1 AZST} + {3023654400 14400 0 AZT} + {3036960000 18000 1 AZST} + {3055708800 14400 0 AZT} + {3068409600 18000 1 AZST} + {3087158400 14400 0 AZT} + {3099859200 18000 1 AZST} + {3118608000 14400 0 AZT} + {3131913600 18000 1 AZST} + {3150057600 14400 0 AZT} + {3163363200 18000 1 AZST} + {3181507200 14400 0 AZT} + {3194812800 18000 1 AZST} + {3212956800 14400 0 AZT} + {3226262400 18000 1 AZST} + {3245011200 14400 0 AZT} + {3257712000 18000 1 AZST} + {3276460800 14400 0 AZT} + {3289161600 18000 1 AZST} + {3307910400 14400 0 AZT} + {3321216000 18000 1 AZST} + {3339360000 14400 0 AZT} + {3352665600 18000 1 AZST} + {3370809600 14400 0 AZT} + {3384115200 18000 1 AZST} + {3402864000 14400 0 AZT} + {3415564800 18000 1 AZST} + {3434313600 14400 0 AZT} + {3447014400 18000 1 AZST} + {3465763200 14400 0 AZT} + {3479068800 18000 1 AZST} + {3497212800 14400 0 AZT} + {3510518400 18000 1 AZST} + {3528662400 14400 0 AZT} + {3541968000 18000 1 AZST} + {3560112000 14400 0 AZT} + {3573417600 18000 1 AZST} + {3592166400 14400 0 AZT} + {3604867200 18000 1 AZST} + {3623616000 14400 0 AZT} + {3636316800 18000 1 AZST} + {3655065600 14400 0 AZT} + {3668371200 18000 1 AZST} + {3686515200 14400 0 AZT} + {3699820800 18000 1 AZST} + {3717964800 14400 0 AZT} + {3731270400 18000 1 AZST} + {3750019200 14400 0 AZT} + {3762720000 18000 1 AZST} + {3781468800 14400 0 AZT} + {3794169600 18000 1 AZST} + {3812918400 14400 0 AZT} + {3825619200 18000 1 AZST} + {3844368000 14400 0 AZT} + {3857673600 18000 1 AZST} + {3875817600 14400 0 AZT} + {3889123200 18000 1 AZST} + {3907267200 14400 0 AZT} + {3920572800 18000 1 AZST} + {3939321600 14400 0 AZT} + {3952022400 18000 1 AZST} + {3970771200 14400 0 AZT} + {3983472000 18000 1 AZST} + {4002220800 14400 0 AZT} + {4015526400 18000 1 AZST} + {4033670400 14400 0 AZT} + {4046976000 18000 1 AZST} + {4065120000 14400 0 AZT} + {4078425600 18000 1 AZST} + {4096569600 14400 0 AZT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Bangkok b/mingw/lib/tcl8.5/tzdata/Asia/Bangkok new file mode 100644 index 00000000..6df76808 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Bangkok @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Bangkok) { + {-9223372036854775808 24124 0 LMT} + {-2840164924 24124 0 BMT} + {-1570084924 25200 0 ICT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Beirut b/mingw/lib/tcl8.5/tzdata/Asia/Beirut new file mode 100644 index 00000000..ac0a64e7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Beirut @@ -0,0 +1,270 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Beirut) { + {-9223372036854775808 8520 0 LMT} + {-2840149320 7200 0 EET} + {-1570413600 10800 1 EEST} + {-1552186800 7200 0 EET} + {-1538359200 10800 1 EEST} + {-1522551600 7200 0 EET} + {-1507514400 10800 1 EEST} + {-1490583600 7200 0 EET} + {-1473645600 10800 1 EEST} + {-1460948400 7200 0 EET} + {-399866400 10800 1 EEST} + {-386650800 7200 0 EET} + {-368330400 10800 1 EEST} + {-355114800 7200 0 EET} + {-336794400 10800 1 EEST} + {-323578800 7200 0 EET} + {-305172000 10800 1 EEST} + {-291956400 7200 0 EET} + {-273636000 10800 1 EEST} + {-260420400 7200 0 EET} + {78012000 10800 1 EEST} + {86734800 7200 0 EET} + {105055200 10800 1 EEST} + {118270800 7200 0 EET} + {136591200 10800 1 EEST} + {149806800 7200 0 EET} + {168127200 10800 1 EEST} + {181342800 7200 0 EET} + {199749600 10800 1 EEST} + {212965200 7200 0 EET} + {231285600 10800 1 EEST} + {244501200 7200 0 EET} + {262735200 10800 1 EEST} + {275950800 7200 0 EET} + {452210400 10800 1 EEST} + {466722000 7200 0 EET} + {483746400 10800 1 EEST} + {498258000 7200 0 EET} + {515282400 10800 1 EEST} + {529794000 7200 0 EET} + {546818400 10800 1 EEST} + {561330000 7200 0 EET} + {581119200 10800 1 EEST} + {592952400 7200 0 EET} + {610754400 10800 1 EEST} + {624488400 7200 0 EET} + {641512800 10800 1 EEST} + {656024400 7200 0 EET} + {673048800 10800 1 EEST} + {687560400 7200 0 EET} + {704671200 10800 1 EEST} + {718146000 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {796168800 10800 1 EEST} + {811890000 7200 0 EET} + {828223200 10800 1 EEST} + {843944400 7200 0 EET} + {859672800 10800 1 EEST} + {875394000 7200 0 EET} + {891122400 10800 1 EEST} + {906843600 7200 0 EET} + {922572000 10800 1 EEST} + {941317200 7200 0 EET} + {954021600 10800 1 EEST} + {972766800 7200 0 EET} + {985471200 10800 1 EEST} + {1004216400 7200 0 EET} + {1017525600 10800 1 EEST} + {1035666000 7200 0 EET} + {1048975200 10800 1 EEST} + {1067115600 7200 0 EET} + {1080424800 10800 1 EEST} + {1099170000 7200 0 EET} + {1111874400 10800 1 EEST} + {1130619600 7200 0 EET} + {1143324000 10800 1 EEST} + {1162069200 7200 0 EET} + {1174773600 10800 1 EEST} + {1193518800 7200 0 EET} + {1206828000 10800 1 EEST} + {1224968400 7200 0 EET} + {1238277600 10800 1 EEST} + {1256418000 7200 0 EET} + {1269727200 10800 1 EEST} + {1288472400 7200 0 EET} + {1301176800 10800 1 EEST} + {1319922000 7200 0 EET} + {1332626400 10800 1 EEST} + {1351371600 7200 0 EET} + {1364680800 10800 1 EEST} + {1382821200 7200 0 EET} + {1396130400 10800 1 EEST} + {1414270800 7200 0 EET} + {1427580000 10800 1 EEST} + {1445720400 7200 0 EET} + {1459029600 10800 1 EEST} + {1477774800 7200 0 EET} + {1490479200 10800 1 EEST} + {1509224400 7200 0 EET} + {1521928800 10800 1 EEST} + {1540674000 7200 0 EET} + {1553983200 10800 1 EEST} + {1572123600 7200 0 EET} + {1585432800 10800 1 EEST} + {1603573200 7200 0 EET} + {1616882400 10800 1 EEST} + {1635627600 7200 0 EET} + {1648332000 10800 1 EEST} + {1667077200 7200 0 EET} + {1679781600 10800 1 EEST} + {1698526800 7200 0 EET} + {1711836000 10800 1 EEST} + {1729976400 7200 0 EET} + {1743285600 10800 1 EEST} + {1761426000 7200 0 EET} + {1774735200 10800 1 EEST} + {1792875600 7200 0 EET} + {1806184800 10800 1 EEST} + {1824930000 7200 0 EET} + {1837634400 10800 1 EEST} + {1856379600 7200 0 EET} + {1869084000 10800 1 EEST} + {1887829200 7200 0 EET} + {1901138400 10800 1 EEST} + {1919278800 7200 0 EET} + {1932588000 10800 1 EEST} + {1950728400 7200 0 EET} + {1964037600 10800 1 EEST} + {1982782800 7200 0 EET} + {1995487200 10800 1 EEST} + {2014232400 7200 0 EET} + {2026936800 10800 1 EEST} + {2045682000 7200 0 EET} + {2058386400 10800 1 EEST} + {2077131600 7200 0 EET} + {2090440800 10800 1 EEST} + {2108581200 7200 0 EET} + {2121890400 10800 1 EEST} + {2140030800 7200 0 EET} + {2153340000 10800 1 EEST} + {2172085200 7200 0 EET} + {2184789600 10800 1 EEST} + {2203534800 7200 0 EET} + {2216239200 10800 1 EEST} + {2234984400 7200 0 EET} + {2248293600 10800 1 EEST} + {2266434000 7200 0 EET} + {2279743200 10800 1 EEST} + {2297883600 7200 0 EET} + {2311192800 10800 1 EEST} + {2329333200 7200 0 EET} + {2342642400 10800 1 EEST} + {2361387600 7200 0 EET} + {2374092000 10800 1 EEST} + {2392837200 7200 0 EET} + {2405541600 10800 1 EEST} + {2424286800 7200 0 EET} + {2437596000 10800 1 EEST} + {2455736400 7200 0 EET} + {2469045600 10800 1 EEST} + {2487186000 7200 0 EET} + {2500495200 10800 1 EEST} + {2519240400 7200 0 EET} + {2531944800 10800 1 EEST} + {2550690000 7200 0 EET} + {2563394400 10800 1 EEST} + {2582139600 7200 0 EET} + {2595448800 10800 1 EEST} + {2613589200 7200 0 EET} + {2626898400 10800 1 EEST} + {2645038800 7200 0 EET} + {2658348000 10800 1 EEST} + {2676488400 7200 0 EET} + {2689797600 10800 1 EEST} + {2708542800 7200 0 EET} + {2721247200 10800 1 EEST} + {2739992400 7200 0 EET} + {2752696800 10800 1 EEST} + {2771442000 7200 0 EET} + {2784751200 10800 1 EEST} + {2802891600 7200 0 EET} + {2816200800 10800 1 EEST} + {2834341200 7200 0 EET} + {2847650400 10800 1 EEST} + {2866395600 7200 0 EET} + {2879100000 10800 1 EEST} + {2897845200 7200 0 EET} + {2910549600 10800 1 EEST} + {2929294800 7200 0 EET} + {2941999200 10800 1 EEST} + {2960744400 7200 0 EET} + {2974053600 10800 1 EEST} + {2992194000 7200 0 EET} + {3005503200 10800 1 EEST} + {3023643600 7200 0 EET} + {3036952800 10800 1 EEST} + {3055698000 7200 0 EET} + {3068402400 10800 1 EEST} + {3087147600 7200 0 EET} + {3099852000 10800 1 EEST} + {3118597200 7200 0 EET} + {3131906400 10800 1 EEST} + {3150046800 7200 0 EET} + {3163356000 10800 1 EEST} + {3181496400 7200 0 EET} + {3194805600 10800 1 EEST} + {3212946000 7200 0 EET} + {3226255200 10800 1 EEST} + {3245000400 7200 0 EET} + {3257704800 10800 1 EEST} + {3276450000 7200 0 EET} + {3289154400 10800 1 EEST} + {3307899600 7200 0 EET} + {3321208800 10800 1 EEST} + {3339349200 7200 0 EET} + {3352658400 10800 1 EEST} + {3370798800 7200 0 EET} + {3384108000 10800 1 EEST} + {3402853200 7200 0 EET} + {3415557600 10800 1 EEST} + {3434302800 7200 0 EET} + {3447007200 10800 1 EEST} + {3465752400 7200 0 EET} + {3479061600 10800 1 EEST} + {3497202000 7200 0 EET} + {3510511200 10800 1 EEST} + {3528651600 7200 0 EET} + {3541960800 10800 1 EEST} + {3560101200 7200 0 EET} + {3573410400 10800 1 EEST} + {3592155600 7200 0 EET} + {3604860000 10800 1 EEST} + {3623605200 7200 0 EET} + {3636309600 10800 1 EEST} + {3655054800 7200 0 EET} + {3668364000 10800 1 EEST} + {3686504400 7200 0 EET} + {3699813600 10800 1 EEST} + {3717954000 7200 0 EET} + {3731263200 10800 1 EEST} + {3750008400 7200 0 EET} + {3762712800 10800 1 EEST} + {3781458000 7200 0 EET} + {3794162400 10800 1 EEST} + {3812907600 7200 0 EET} + {3825612000 10800 1 EEST} + {3844357200 7200 0 EET} + {3857666400 10800 1 EEST} + {3875806800 7200 0 EET} + {3889116000 10800 1 EEST} + {3907256400 7200 0 EET} + {3920565600 10800 1 EEST} + {3939310800 7200 0 EET} + {3952015200 10800 1 EEST} + {3970760400 7200 0 EET} + {3983464800 10800 1 EEST} + {4002210000 7200 0 EET} + {4015519200 10800 1 EEST} + {4033659600 7200 0 EET} + {4046968800 10800 1 EEST} + {4065109200 7200 0 EET} + {4078418400 10800 1 EEST} + {4096558800 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Bishkek b/mingw/lib/tcl8.5/tzdata/Asia/Bishkek new file mode 100644 index 00000000..6ba38965 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Bishkek @@ -0,0 +1,57 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Bishkek) { + {-9223372036854775808 17904 0 LMT} + {-1441169904 18000 0 FRUT} + {-1247547600 21600 0 FRUT} + {354909600 25200 1 FRUST} + {370717200 21600 0 FRUT} + {386445600 25200 1 FRUST} + {402253200 21600 0 FRUT} + {417981600 25200 1 FRUST} + {433789200 21600 0 FRUT} + {449604000 25200 1 FRUST} + {465336000 21600 0 FRUT} + {481060800 25200 1 FRUST} + {496785600 21600 0 FRUT} + {512510400 25200 1 FRUST} + {528235200 21600 0 FRUT} + {543960000 25200 1 FRUST} + {559684800 21600 0 FRUT} + {575409600 25200 1 FRUST} + {591134400 21600 0 FRUT} + {606859200 25200 1 FRUST} + {622584000 21600 0 FRUT} + {638308800 25200 1 FRUST} + {654638400 21600 0 FRUT} + {670363200 21600 1 FRUST} + {683582400 21600 0 KGT} + {703018800 21600 1 KGST} + {717530400 18000 0 KGT} + {734468400 21600 1 KGST} + {748980000 18000 0 KGT} + {765918000 21600 1 KGST} + {780429600 18000 0 KGT} + {797367600 21600 1 KGST} + {811879200 18000 0 KGT} + {828817200 21600 1 KGST} + {843933600 18000 0 KGT} + {859671000 21600 1 KGST} + {877811400 18000 0 KGT} + {891120600 21600 1 KGST} + {909261000 18000 0 KGT} + {922570200 21600 1 KGST} + {941315400 18000 0 KGT} + {954019800 21600 1 KGST} + {972765000 18000 0 KGT} + {985469400 21600 1 KGST} + {1004214600 18000 0 KGT} + {1017523800 21600 1 KGST} + {1035664200 18000 0 KGT} + {1048973400 21600 1 KGST} + {1067113800 18000 0 KGT} + {1080423000 21600 1 KGST} + {1099168200 18000 0 KGT} + {1111872600 21600 1 KGST} + {1123783200 21600 0 KGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Brunei b/mingw/lib/tcl8.5/tzdata/Asia/Brunei new file mode 100644 index 00000000..63d380bf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Brunei @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Brunei) { + {-9223372036854775808 27580 0 LMT} + {-1383464380 27000 0 BNT} + {-1167636600 28800 0 BNT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Calcutta b/mingw/lib/tcl8.5/tzdata/Asia/Calcutta new file mode 100644 index 00000000..3dfb94a5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Calcutta @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Calcutta) { + {-9223372036854775808 21208 0 LMT} + {-2840162008 21200 0 HMT} + {-891582800 23400 0 BURT} + {-872058600 19800 0 IST} + {-862637400 23400 1 IST} + {-764145000 19800 0 IST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Choibalsan b/mingw/lib/tcl8.5/tzdata/Asia/Choibalsan new file mode 100644 index 00000000..3d426177 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Choibalsan @@ -0,0 +1,51 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Choibalsan) { + {-9223372036854775808 27480 0 LMT} + {-2032933080 25200 0 ULAT} + {252435600 28800 0 ULAT} + {417974400 36000 0 CHOST} + {433778400 32400 0 CHOT} + {449593200 36000 1 CHOST} + {465314400 32400 0 CHOT} + {481042800 36000 1 CHOST} + {496764000 32400 0 CHOT} + {512492400 36000 1 CHOST} + {528213600 32400 0 CHOT} + {543942000 36000 1 CHOST} + {559663200 32400 0 CHOT} + {575391600 36000 1 CHOST} + {591112800 32400 0 CHOT} + {606841200 36000 1 CHOST} + {622562400 32400 0 CHOT} + {638290800 36000 1 CHOST} + {654616800 32400 0 CHOT} + {670345200 36000 1 CHOST} + {686066400 32400 0 CHOT} + {701794800 36000 1 CHOST} + {717516000 32400 0 CHOT} + {733244400 36000 1 CHOST} + {748965600 32400 0 CHOT} + {764694000 36000 1 CHOST} + {780415200 32400 0 CHOT} + {796143600 36000 1 CHOST} + {811864800 32400 0 CHOT} + {828198000 36000 1 CHOST} + {843919200 32400 0 CHOT} + {859647600 36000 1 CHOST} + {875368800 32400 0 CHOT} + {891097200 36000 1 CHOST} + {906818400 32400 0 CHOT} + {988390800 36000 1 CHOST} + {1001692800 32400 0 CHOT} + {1017421200 36000 1 CHOST} + {1033142400 32400 0 CHOT} + {1048870800 36000 1 CHOST} + {1064592000 32400 0 CHOT} + {1080320400 36000 1 CHOST} + {1096041600 32400 0 CHOT} + {1111770000 36000 1 CHOST} + {1127491200 32400 0 CHOT} + {1143219600 36000 1 CHOST} + {1159545600 32400 0 CHOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Chongqing b/mingw/lib/tcl8.5/tzdata/Asia/Chongqing new file mode 100644 index 00000000..eff35363 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Chongqing @@ -0,0 +1,19 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Chungking b/mingw/lib/tcl8.5/tzdata/Asia/Chungking new file mode 100644 index 00000000..f10d8a14 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Chungking @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Chongqing)]} { + LoadTimeZoneFile Asia/Chongqing +} +set TZData(:Asia/Chungking) $TZData(:Asia/Chongqing) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Colombo b/mingw/lib/tcl8.5/tzdata/Asia/Colombo new file mode 100644 index 00000000..ca7bffcf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Colombo @@ -0,0 +1,13 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Colombo) { + {-9223372036854775808 19164 0 LMT} + {-2840159964 19172 0 MMT} + {-2019705572 19800 0 IST} + {-883287000 21600 1 IHST} + {-862639200 23400 1 IST} + {-764051400 19800 0 IST} + {832962600 23400 0 LKT} + {846266400 21600 0 LKT} + {1145039400 19800 0 IST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Dacca b/mingw/lib/tcl8.5/tzdata/Asia/Dacca new file mode 100644 index 00000000..b91d7faa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Dacca @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Dhaka)]} { + LoadTimeZoneFile Asia/Dhaka +} +set TZData(:Asia/Dacca) $TZData(:Asia/Dhaka) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Damascus b/mingw/lib/tcl8.5/tzdata/Asia/Damascus new file mode 100644 index 00000000..a99f3c1c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Damascus @@ -0,0 +1,280 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Damascus) { + {-9223372036854775808 8712 0 LMT} + {-1577931912 7200 0 EET} + {-1568592000 10800 1 EEST} + {-1554080400 7200 0 EET} + {-1537142400 10800 1 EEST} + {-1522630800 7200 0 EET} + {-1505692800 10800 1 EEST} + {-1491181200 7200 0 EET} + {-1474243200 10800 1 EEST} + {-1459126800 7200 0 EET} + {-242265600 10800 1 EEST} + {-228877200 7200 0 EET} + {-210556800 10800 1 EEST} + {-197427600 7200 0 EET} + {-178934400 10800 1 EEST} + {-165718800 7200 0 EET} + {-147398400 10800 1 EEST} + {-134269200 7200 0 EET} + {-116467200 10800 1 EEST} + {-102646800 7200 0 EET} + {-84326400 10800 1 EEST} + {-71110800 7200 0 EET} + {-52704000 10800 1 EEST} + {-39488400 7200 0 EET} + {-21168000 10800 1 EEST} + {-7952400 7200 0 EET} + {10368000 10800 1 EEST} + {23583600 7200 0 EET} + {41904000 10800 1 EEST} + {55119600 7200 0 EET} + {73526400 10800 1 EEST} + {86742000 7200 0 EET} + {105062400 10800 1 EEST} + {118278000 7200 0 EET} + {136598400 10800 1 EEST} + {149814000 7200 0 EET} + {168134400 10800 1 EEST} + {181350000 7200 0 EET} + {199756800 10800 1 EEST} + {212972400 7200 0 EET} + {231292800 10800 1 EEST} + {241916400 7200 0 EET} + {262828800 10800 1 EEST} + {273452400 7200 0 EET} + {418694400 10800 1 EEST} + {433810800 7200 0 EET} + {450316800 10800 1 EEST} + {465433200 7200 0 EET} + {508896000 10800 1 EEST} + {529196400 7200 0 EET} + {541555200 10800 1 EEST} + {562633200 7200 0 EET} + {574387200 10800 1 EEST} + {594255600 7200 0 EET} + {607305600 10800 1 EEST} + {623199600 7200 0 EET} + {638928000 10800 1 EEST} + {654649200 7200 0 EET} + {670456800 10800 1 EEST} + {686264400 7200 0 EET} + {702684000 10800 1 EEST} + {717886800 7200 0 EET} + {733096800 10800 1 EEST} + {748904400 7200 0 EET} + {765151200 10800 1 EEST} + {780958800 7200 0 EET} + {796687200 10800 1 EEST} + {812494800 7200 0 EET} + {828309600 10800 1 EEST} + {844117200 7200 0 EET} + {859759200 10800 1 EEST} + {875653200 7200 0 EET} + {891208800 10800 1 EEST} + {907189200 7200 0 EET} + {922917600 10800 1 EEST} + {938725200 7200 0 EET} + {954540000 10800 1 EEST} + {970347600 7200 0 EET} + {986076000 10800 1 EEST} + {1001883600 7200 0 EET} + {1017612000 10800 1 EEST} + {1033419600 7200 0 EET} + {1049148000 10800 1 EEST} + {1064955600 7200 0 EET} + {1080770400 10800 1 EEST} + {1096578000 7200 0 EET} + {1112306400 10800 1 EEST} + {1128114000 7200 0 EET} + {1143842400 10800 1 EEST} + {1158872400 7200 0 EET} + {1175205600 10800 1 EEST} + {1191186000 7200 0 EET} + {1206655200 10800 1 EEST} + {1222808400 7200 0 EET} + {1238104800 10800 1 EEST} + {1254344400 7200 0 EET} + {1269554400 10800 1 EEST} + {1285880400 7200 0 EET} + {1301004000 10800 1 EEST} + {1317416400 7200 0 EET} + {1333058400 10800 1 EEST} + {1349038800 7200 0 EET} + {1364508000 10800 1 EEST} + {1380574800 7200 0 EET} + {1395957600 10800 1 EEST} + {1412110800 7200 0 EET} + {1427407200 10800 1 EEST} + {1443646800 7200 0 EET} + {1458856800 10800 1 EEST} + {1475269200 7200 0 EET} + {1490911200 10800 1 EEST} + {1506805200 7200 0 EET} + {1522360800 10800 1 EEST} + {1538341200 7200 0 EET} + {1553810400 10800 1 EEST} + {1569877200 7200 0 EET} + {1585260000 10800 1 EEST} + {1601499600 7200 0 EET} + {1616709600 10800 1 EEST} + {1633035600 7200 0 EET} + {1648159200 10800 1 EEST} + {1664571600 7200 0 EET} + {1680213600 10800 1 EEST} + {1696107600 7200 0 EET} + {1711663200 10800 1 EEST} + {1727730000 7200 0 EET} + {1743112800 10800 1 EEST} + {1759266000 7200 0 EET} + {1774562400 10800 1 EEST} + {1790802000 7200 0 EET} + {1806012000 10800 1 EEST} + {1822338000 7200 0 EET} + {1838066400 10800 1 EEST} + {1853960400 7200 0 EET} + {1869516000 10800 1 EEST} + {1885496400 7200 0 EET} + {1900965600 10800 1 EEST} + {1917032400 7200 0 EET} + {1932415200 10800 1 EEST} + {1948568400 7200 0 EET} + {1963864800 10800 1 EEST} + {1980190800 7200 0 EET} + {1995314400 10800 1 EEST} + {2011726800 7200 0 EET} + {2027368800 10800 1 EEST} + {2043262800 7200 0 EET} + {2058818400 10800 1 EEST} + {2074798800 7200 0 EET} + {2090268000 10800 1 EEST} + {2106421200 7200 0 EET} + {2121717600 10800 1 EEST} + {2137957200 7200 0 EET} + {2153167200 10800 1 EEST} + {2169493200 7200 0 EET} + {2184616800 10800 1 EEST} + {2201029200 7200 0 EET} + {2216671200 10800 1 EEST} + {2232651600 7200 0 EET} + {2248120800 10800 1 EEST} + {2264187600 7200 0 EET} + {2279570400 10800 1 EEST} + {2295723600 7200 0 EET} + {2311020000 10800 1 EEST} + {2327259600 7200 0 EET} + {2342469600 10800 1 EEST} + {2358882000 7200 0 EET} + {2374524000 10800 1 EEST} + {2390418000 7200 0 EET} + {2405973600 10800 1 EEST} + {2421954000 7200 0 EET} + {2437423200 10800 1 EEST} + {2453490000 7200 0 EET} + {2468872800 10800 1 EEST} + {2485112400 7200 0 EET} + {2500322400 10800 1 EEST} + {2516648400 7200 0 EET} + {2531772000 10800 1 EEST} + {2548184400 7200 0 EET} + {2563826400 10800 1 EEST} + {2579720400 7200 0 EET} + {2595276000 10800 1 EEST} + {2611342800 7200 0 EET} + {2626725600 10800 1 EEST} + {2642878800 7200 0 EET} + {2658175200 10800 1 EEST} + {2674414800 7200 0 EET} + {2689624800 10800 1 EEST} + {2705950800 7200 0 EET} + {2721679200 10800 1 EEST} + {2737573200 7200 0 EET} + {2753128800 10800 1 EEST} + {2769109200 7200 0 EET} + {2784578400 10800 1 EEST} + {2800645200 7200 0 EET} + {2816028000 10800 1 EEST} + {2832181200 7200 0 EET} + {2847477600 10800 1 EEST} + {2863803600 7200 0 EET} + {2878927200 10800 1 EEST} + {2895339600 7200 0 EET} + {2910981600 10800 1 EEST} + {2926875600 7200 0 EET} + {2942431200 10800 1 EEST} + {2958411600 7200 0 EET} + {2973880800 10800 1 EEST} + {2990034000 7200 0 EET} + {3005330400 10800 1 EEST} + {3021570000 7200 0 EET} + {3036780000 10800 1 EEST} + {3053106000 7200 0 EET} + {3068229600 10800 1 EEST} + {3084642000 7200 0 EET} + {3100284000 10800 1 EEST} + {3116264400 7200 0 EET} + {3131733600 10800 1 EEST} + {3147800400 7200 0 EET} + {3163183200 10800 1 EEST} + {3179336400 7200 0 EET} + {3194632800 10800 1 EEST} + {3210872400 7200 0 EET} + {3226082400 10800 1 EEST} + {3242494800 7200 0 EET} + {3258136800 10800 1 EEST} + {3274030800 7200 0 EET} + {3289586400 10800 1 EEST} + {3305566800 7200 0 EET} + {3321036000 10800 1 EEST} + {3337102800 7200 0 EET} + {3352485600 10800 1 EEST} + {3368725200 7200 0 EET} + {3383935200 10800 1 EEST} + {3400261200 7200 0 EET} + {3415384800 10800 1 EEST} + {3431797200 7200 0 EET} + {3447439200 10800 1 EEST} + {3463333200 7200 0 EET} + {3478888800 10800 1 EEST} + {3494955600 7200 0 EET} + {3510338400 10800 1 EEST} + {3526491600 7200 0 EET} + {3541788000 10800 1 EEST} + {3558027600 7200 0 EET} + {3573237600 10800 1 EEST} + {3589563600 7200 0 EET} + {3605292000 10800 1 EEST} + {3621186000 7200 0 EET} + {3636741600 10800 1 EEST} + {3652722000 7200 0 EET} + {3668191200 10800 1 EEST} + {3684258000 7200 0 EET} + {3699640800 10800 1 EEST} + {3715794000 7200 0 EET} + {3731090400 10800 1 EEST} + {3747416400 7200 0 EET} + {3762540000 10800 1 EEST} + {3778952400 7200 0 EET} + {3794594400 10800 1 EEST} + {3810488400 7200 0 EET} + {3826044000 10800 1 EEST} + {3842024400 7200 0 EET} + {3857493600 10800 1 EEST} + {3873646800 7200 0 EET} + {3888943200 10800 1 EEST} + {3905182800 7200 0 EET} + {3920392800 10800 1 EEST} + {3936718800 7200 0 EET} + {3951842400 10800 1 EEST} + {3968254800 7200 0 EET} + {3983896800 10800 1 EEST} + {3999877200 7200 0 EET} + {4015346400 10800 1 EEST} + {4031413200 7200 0 EET} + {4046796000 10800 1 EEST} + {4062949200 7200 0 EET} + {4078245600 10800 1 EEST} + {4094485200 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Dhaka b/mingw/lib/tcl8.5/tzdata/Asia/Dhaka new file mode 100644 index 00000000..8eac24fd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Dhaka @@ -0,0 +1,11 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Dhaka) { + {-9223372036854775808 21700 0 LMT} + {-2524543300 21200 0 HMT} + {-891582800 23400 0 BURT} + {-872058600 19800 0 IST} + {-862637400 23400 0 BURT} + {-576138600 21600 0 DACT} + {38772000 21600 0 BDT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Dili b/mingw/lib/tcl8.5/tzdata/Asia/Dili new file mode 100644 index 00000000..36910fd6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Dili @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Dili) { + {-9223372036854775808 30140 0 LMT} + {-1830414140 28800 0 TLT} + {-879152400 32400 0 JST} + {-766054800 32400 0 TLT} + {199897200 28800 0 CIT} + {969120000 32400 0 TLT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Dubai b/mingw/lib/tcl8.5/tzdata/Asia/Dubai new file mode 100644 index 00000000..b8730e51 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Dubai @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Dubai) { + {-9223372036854775808 13272 0 LMT} + {-1577936472 14400 0 GST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Dushanbe b/mingw/lib/tcl8.5/tzdata/Asia/Dushanbe new file mode 100644 index 00000000..59f8cb69 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Dushanbe @@ -0,0 +1,29 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Dushanbe) { + {-9223372036854775808 16512 0 LMT} + {-1441168512 18000 0 DUST} + {-1247547600 21600 0 DUST} + {354909600 25200 1 DUSST} + {370717200 21600 0 DUST} + {386445600 25200 1 DUSST} + {402253200 21600 0 DUST} + {417981600 25200 1 DUSST} + {433789200 21600 0 DUST} + {449604000 25200 1 DUSST} + {465336000 21600 0 DUST} + {481060800 25200 1 DUSST} + {496785600 21600 0 DUST} + {512510400 25200 1 DUSST} + {528235200 21600 0 DUST} + {543960000 25200 1 DUSST} + {559684800 21600 0 DUST} + {575409600 25200 1 DUSST} + {591134400 21600 0 DUST} + {606859200 25200 1 DUSST} + {622584000 21600 0 DUST} + {638308800 25200 1 DUSST} + {654638400 21600 0 DUST} + {670363200 21600 1 DUSST} + {684363600 18000 0 TJT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Gaza b/mingw/lib/tcl8.5/tzdata/Asia/Gaza new file mode 100644 index 00000000..3ceb8bbe --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Gaza @@ -0,0 +1,275 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Gaza) { + {-9223372036854775808 8272 0 LMT} + {-2185409872 7200 0 EET} + {-933645600 10800 1 EET} + {-857358000 7200 0 EET} + {-844300800 10800 1 EET} + {-825822000 7200 0 EET} + {-812685600 10800 1 EET} + {-794199600 7200 0 EET} + {-779853600 10800 1 EET} + {-762656400 7200 0 EET} + {-748310400 10800 1 EET} + {-731127600 7200 0 EET} + {-682653600 7200 0 EET} + {-399088800 10800 1 EEST} + {-386650800 7200 0 EET} + {-368330400 10800 1 EEST} + {-355114800 7200 0 EET} + {-336790800 10800 1 EEST} + {-323654400 7200 0 EET} + {-305168400 10800 1 EEST} + {-292032000 7200 0 EET} + {-273632400 10800 1 EEST} + {-260496000 7200 0 EET} + {-242096400 10800 1 EEST} + {-228960000 7200 0 EET} + {-210560400 10800 1 EEST} + {-197424000 7200 0 EET} + {-178938000 10800 1 EEST} + {-165801600 7200 0 EET} + {-147402000 10800 1 EEST} + {-134265600 7200 0 EET} + {-115866000 10800 1 EEST} + {-102643200 7200 0 EET} + {-84330000 10800 1 EEST} + {-81313200 10800 0 IST} + {142376400 10800 1 IDT} + {150843600 7200 0 IST} + {167176800 10800 1 IDT} + {178664400 7200 0 IST} + {482277600 10800 1 IDT} + {495579600 7200 0 IST} + {516751200 10800 1 IDT} + {526424400 7200 0 IST} + {545436000 10800 1 IDT} + {558478800 7200 0 IST} + {576540000 10800 1 IDT} + {589237200 7200 0 IST} + {609890400 10800 1 IDT} + {620773200 7200 0 IST} + {638316000 10800 1 IDT} + {651618000 7200 0 IST} + {669765600 10800 1 IDT} + {683672400 7200 0 IST} + {701820000 10800 1 IDT} + {715726800 7200 0 IST} + {733701600 10800 1 IDT} + {747176400 7200 0 IST} + {765151200 10800 1 IDT} + {778021200 7200 0 IST} + {796600800 10800 1 IDT} + {810075600 7200 0 IST} + {820447200 7200 0 EET} + {828655200 10800 1 EEST} + {843170400 7200 0 EET} + {860104800 10800 1 EEST} + {874620000 7200 0 EET} + {891554400 10800 1 EEST} + {906069600 7200 0 EET} + {915141600 7200 0 EET} + {924213600 10800 1 EEST} + {939934800 7200 0 EET} + {956268000 10800 1 EEST} + {971989200 7200 0 EET} + {987717600 10800 1 EEST} + {1003438800 7200 0 EET} + {1019167200 10800 1 EEST} + {1034888400 7200 0 EET} + {1050616800 10800 1 EEST} + {1066338000 7200 0 EET} + {1082066400 10800 1 EEST} + {1096581600 7200 0 EET} + {1113516000 10800 1 EEST} + {1128380400 7200 0 EET} + {1143842400 10800 1 EEST} + {1158872400 7200 0 EET} + {1175378400 10800 1 EEST} + {1192741200 7200 0 EET} + {1207000800 10800 1 EEST} + {1224190800 7200 0 EET} + {1238536800 10800 1 EEST} + {1255640400 7200 0 EET} + {1270072800 10800 1 EEST} + {1287090000 7200 0 EET} + {1301608800 10800 1 EEST} + {1319144400 7200 0 EET} + {1333231200 10800 1 EEST} + {1350594000 7200 0 EET} + {1364767200 10800 1 EEST} + {1382043600 7200 0 EET} + {1396303200 10800 1 EEST} + {1413493200 7200 0 EET} + {1427839200 10800 1 EEST} + {1444942800 7200 0 EET} + {1459461600 10800 1 EEST} + {1476997200 7200 0 EET} + {1490997600 10800 1 EEST} + {1508446800 7200 0 EET} + {1522533600 10800 1 EEST} + {1539896400 7200 0 EET} + {1554069600 10800 1 EEST} + {1571346000 7200 0 EET} + {1585692000 10800 1 EEST} + {1602795600 7200 0 EET} + {1617228000 10800 1 EEST} + {1634245200 7200 0 EET} + {1648764000 10800 1 EEST} + {1666299600 7200 0 EET} + {1680300000 10800 1 EEST} + {1697749200 7200 0 EET} + {1711922400 10800 1 EEST} + {1729198800 7200 0 EET} + {1743458400 10800 1 EEST} + {1760648400 7200 0 EET} + {1774994400 10800 1 EEST} + {1792098000 7200 0 EET} + {1806530400 10800 1 EEST} + {1823547600 7200 0 EET} + {1838152800 10800 1 EEST} + {1855602000 7200 0 EET} + {1869688800 10800 1 EEST} + {1887051600 7200 0 EET} + {1901224800 10800 1 EEST} + {1918501200 7200 0 EET} + {1932760800 10800 1 EEST} + {1949950800 7200 0 EET} + {1964383200 10800 1 EEST} + {1981400400 7200 0 EET} + {1995919200 10800 1 EEST} + {2013454800 7200 0 EET} + {2027455200 10800 1 EEST} + {2044904400 7200 0 EET} + {2058991200 10800 1 EEST} + {2076354000 7200 0 EET} + {2090613600 10800 1 EEST} + {2107803600 7200 0 EET} + {2122149600 10800 1 EEST} + {2139253200 7200 0 EET} + {2153685600 10800 1 EEST} + {2170702800 7200 0 EET} + {2185221600 10800 1 EEST} + {2202757200 7200 0 EET} + {2216844000 10800 1 EEST} + {2234206800 7200 0 EET} + {2248380000 10800 1 EEST} + {2265656400 7200 0 EET} + {2279916000 10800 1 EEST} + {2297106000 7200 0 EET} + {2311452000 10800 1 EEST} + {2328555600 7200 0 EET} + {2343074400 10800 1 EEST} + {2360610000 7200 0 EET} + {2374610400 10800 1 EEST} + {2392059600 7200 0 EET} + {2406146400 10800 1 EEST} + {2423509200 7200 0 EET} + {2437682400 10800 1 EEST} + {2454958800 7200 0 EET} + {2469304800 10800 1 EEST} + {2486408400 7200 0 EET} + {2500840800 10800 1 EEST} + {2517858000 7200 0 EET} + {2532376800 10800 1 EEST} + {2549912400 7200 0 EET} + {2563912800 10800 1 EEST} + {2581362000 7200 0 EET} + {2595535200 10800 1 EEST} + {2612811600 7200 0 EET} + {2627071200 10800 1 EEST} + {2644261200 7200 0 EET} + {2658607200 10800 1 EEST} + {2675710800 7200 0 EET} + {2690143200 10800 1 EEST} + {2707160400 7200 0 EET} + {2721765600 10800 1 EEST} + {2739214800 7200 0 EET} + {2753301600 10800 1 EEST} + {2770664400 7200 0 EET} + {2784837600 10800 1 EEST} + {2802114000 7200 0 EET} + {2816373600 10800 1 EEST} + {2833563600 7200 0 EET} + {2847996000 10800 1 EEST} + {2865013200 7200 0 EET} + {2879532000 10800 1 EEST} + {2897067600 7200 0 EET} + {2911068000 10800 1 EEST} + {2928517200 7200 0 EET} + {2942604000 10800 1 EEST} + {2959966800 7200 0 EET} + {2974226400 10800 1 EEST} + {2991416400 7200 0 EET} + {3005762400 10800 1 EEST} + {3022866000 7200 0 EET} + {3037298400 10800 1 EEST} + {3054315600 7200 0 EET} + {3068834400 10800 1 EEST} + {3086370000 7200 0 EET} + {3100456800 10800 1 EEST} + {3117819600 7200 0 EET} + {3131992800 10800 1 EEST} + {3149269200 7200 0 EET} + {3163528800 10800 1 EEST} + {3180718800 7200 0 EET} + {3195064800 10800 1 EEST} + {3212168400 7200 0 EET} + {3226687200 10800 1 EEST} + {3244222800 7200 0 EET} + {3258223200 10800 1 EEST} + {3275672400 7200 0 EET} + {3289759200 10800 1 EEST} + {3307122000 7200 0 EET} + {3321295200 10800 1 EEST} + {3338571600 7200 0 EET} + {3352917600 10800 1 EEST} + {3370021200 7200 0 EET} + {3384453600 10800 1 EEST} + {3401470800 7200 0 EET} + {3415989600 10800 1 EEST} + {3433525200 7200 0 EET} + {3447525600 10800 1 EEST} + {3464974800 7200 0 EET} + {3479148000 10800 1 EEST} + {3496424400 7200 0 EET} + {3510684000 10800 1 EEST} + {3527874000 7200 0 EET} + {3542220000 10800 1 EEST} + {3559323600 7200 0 EET} + {3573756000 10800 1 EEST} + {3590773200 7200 0 EET} + {3605378400 10800 1 EEST} + {3622827600 7200 0 EET} + {3636914400 10800 1 EEST} + {3654277200 7200 0 EET} + {3668450400 10800 1 EEST} + {3685726800 7200 0 EET} + {3699986400 10800 1 EEST} + {3717176400 7200 0 EET} + {3731608800 10800 1 EEST} + {3748626000 7200 0 EET} + {3763144800 10800 1 EEST} + {3780680400 7200 0 EET} + {3794680800 10800 1 EEST} + {3812130000 7200 0 EET} + {3826216800 10800 1 EEST} + {3843579600 7200 0 EET} + {3857839200 10800 1 EEST} + {3875029200 7200 0 EET} + {3889375200 10800 1 EEST} + {3906478800 7200 0 EET} + {3920911200 10800 1 EEST} + {3937928400 7200 0 EET} + {3952447200 10800 1 EEST} + {3969982800 7200 0 EET} + {3984069600 10800 1 EEST} + {4001432400 7200 0 EET} + {4015605600 10800 1 EEST} + {4032882000 7200 0 EET} + {4047141600 10800 1 EEST} + {4064331600 7200 0 EET} + {4078677600 10800 1 EEST} + {4095781200 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Harbin b/mingw/lib/tcl8.5/tzdata/Asia/Harbin new file mode 100644 index 00000000..0eb0c126 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Harbin @@ -0,0 +1,22 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong b/mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong new file mode 100644 index 00000000..88d8091e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong @@ -0,0 +1,74 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Hong_Kong) { + {-9223372036854775808 27396 0 LMT} + {-2056692996 28800 0 HKT} + {-747981000 32400 1 HKST} + {-728544600 28800 0 HKT} + {-717049800 32400 1 HKST} + {-694503000 28800 0 HKT} + {-683785800 32400 1 HKST} + {-668064600 28800 0 HKT} + {-654755400 32400 1 HKST} + {-636615000 28800 0 HKT} + {-623305800 32400 1 HKST} + {-605165400 28800 0 HKT} + {-591856200 32400 1 HKST} + {-573715800 28800 0 HKT} + {-559801800 32400 1 HKST} + {-542266200 28800 0 HKT} + {-528352200 32400 1 HKST} + {-510211800 28800 0 HKT} + {-498112200 32400 1 HKST} + {-478762200 28800 0 HKT} + {-466662600 32400 1 HKST} + {-446707800 28800 0 HKT} + {-435213000 32400 1 HKST} + {-415258200 28800 0 HKT} + {-403158600 32400 1 HKST} + {-383808600 28800 0 HKT} + {-371709000 32400 1 HKST} + {-352359000 28800 0 HKT} + {-340259400 32400 1 HKST} + {-320909400 28800 0 HKT} + {-308809800 32400 1 HKST} + {-288855000 28800 0 HKT} + {-277360200 32400 1 HKST} + {-257405400 28800 0 HKT} + {-245910600 32400 1 HKST} + {-225955800 28800 0 HKT} + {-213856200 32400 1 HKST} + {-194506200 28800 0 HKT} + {-182406600 32400 1 HKST} + {-163056600 28800 0 HKT} + {-148537800 32400 1 HKST} + {-132816600 28800 0 HKT} + {-117088200 32400 1 HKST} + {-101367000 28800 0 HKT} + {-85638600 32400 1 HKST} + {-69312600 28800 0 HKT} + {-53584200 32400 1 HKST} + {-37863000 28800 0 HKT} + {-22134600 32400 1 HKST} + {-6413400 28800 0 HKT} + {9315000 32400 1 HKST} + {25036200 28800 0 HKT} + {40764600 32400 1 HKST} + {56485800 28800 0 HKT} + {72214200 32400 1 HKST} + {88540200 28800 0 HKT} + {104268600 32400 1 HKST} + {119989800 28800 0 HKT} + {135718200 32400 1 HKST} + {151439400 28800 0 HKT} + {167167800 32400 1 HKST} + {182889000 28800 0 HKT} + {198617400 32400 1 HKST} + {214338600 28800 0 HKT} + {230067000 32400 1 HKST} + {245788200 28800 0 HKT} + {295385400 32400 1 HKST} + {309292200 28800 0 HKT} + {326835000 32400 1 HKST} + {340741800 28800 0 HKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Hovd b/mingw/lib/tcl8.5/tzdata/Asia/Hovd new file mode 100644 index 00000000..2a87dab3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Hovd @@ -0,0 +1,51 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Hovd) { + {-9223372036854775808 21996 0 LMT} + {-2032927596 21600 0 HOVT} + {252439200 25200 0 HOVT} + {417978000 28800 1 HOVST} + {433785600 25200 0 HOVT} + {449600400 28800 1 HOVST} + {465321600 25200 0 HOVT} + {481050000 28800 1 HOVST} + {496771200 25200 0 HOVT} + {512499600 28800 1 HOVST} + {528220800 25200 0 HOVT} + {543949200 28800 1 HOVST} + {559670400 25200 0 HOVT} + {575398800 28800 1 HOVST} + {591120000 25200 0 HOVT} + {606848400 28800 1 HOVST} + {622569600 25200 0 HOVT} + {638298000 28800 1 HOVST} + {654624000 25200 0 HOVT} + {670352400 28800 1 HOVST} + {686073600 25200 0 HOVT} + {701802000 28800 1 HOVST} + {717523200 25200 0 HOVT} + {733251600 28800 1 HOVST} + {748972800 25200 0 HOVT} + {764701200 28800 1 HOVST} + {780422400 25200 0 HOVT} + {796150800 28800 1 HOVST} + {811872000 25200 0 HOVT} + {828205200 28800 1 HOVST} + {843926400 25200 0 HOVT} + {859654800 28800 1 HOVST} + {875376000 25200 0 HOVT} + {891104400 28800 1 HOVST} + {906825600 25200 0 HOVT} + {988398000 28800 1 HOVST} + {1001700000 25200 0 HOVT} + {1017428400 28800 1 HOVST} + {1033149600 25200 0 HOVT} + {1048878000 28800 1 HOVST} + {1064599200 25200 0 HOVT} + {1080327600 28800 1 HOVST} + {1096048800 25200 0 HOVT} + {1111777200 28800 1 HOVST} + {1127498400 25200 0 HOVT} + {1143226800 28800 1 HOVST} + {1159552800 25200 0 HOVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Irkutsk b/mingw/lib/tcl8.5/tzdata/Asia/Irkutsk new file mode 100644 index 00000000..771ebc9b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Irkutsk @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Irkutsk) { + {-9223372036854775808 25040 0 LMT} + {-2840165840 25040 0 IMT} + {-1575874640 25200 0 IRKT} + {-1247554800 28800 0 IRKMMTT} + {354902400 32400 1 IRKST} + {370710000 28800 0 IRKT} + {386438400 32400 1 IRKST} + {402246000 28800 0 IRKT} + {417974400 32400 1 IRKST} + {433782000 28800 0 IRKT} + {449596800 32400 1 IRKST} + {465328800 28800 0 IRKT} + {481053600 32400 1 IRKST} + {496778400 28800 0 IRKT} + {512503200 32400 1 IRKST} + {528228000 28800 0 IRKT} + {543952800 32400 1 IRKST} + {559677600 28800 0 IRKT} + {575402400 32400 1 IRKST} + {591127200 28800 0 IRKT} + {606852000 32400 1 IRKST} + {622576800 28800 0 IRKT} + {638301600 32400 1 IRKST} + {654631200 28800 0 IRKT} + {670356000 25200 0 IRKMMTT} + {670359600 28800 1 IRKST} + {686084400 25200 0 IRKT} + {695761200 28800 0 IRKMMTT} + {701794800 32400 1 IRKST} + {717516000 28800 0 IRKT} + {733255200 32400 1 IRKST} + {748980000 28800 0 IRKT} + {764704800 32400 1 IRKST} + {780429600 28800 0 IRKT} + {796154400 32400 1 IRKST} + {811879200 28800 0 IRKT} + {828208800 32400 1 IRKST} + {846352800 28800 0 IRKT} + {859658400 32400 1 IRKST} + {877802400 28800 0 IRKT} + {891108000 32400 1 IRKST} + {909252000 28800 0 IRKT} + {922557600 32400 1 IRKST} + {941306400 28800 0 IRKT} + {954007200 32400 1 IRKST} + {972756000 28800 0 IRKT} + {985456800 32400 1 IRKST} + {1004205600 28800 0 IRKT} + {1017511200 32400 1 IRKST} + {1035655200 28800 0 IRKT} + {1048960800 32400 1 IRKST} + {1067104800 28800 0 IRKT} + {1080410400 32400 1 IRKST} + {1099159200 28800 0 IRKT} + {1111860000 32400 1 IRKST} + {1130608800 28800 0 IRKT} + {1143309600 32400 1 IRKST} + {1162058400 28800 0 IRKT} + {1174759200 32400 1 IRKST} + {1193508000 28800 0 IRKT} + {1206813600 32400 1 IRKST} + {1224957600 28800 0 IRKT} + {1238263200 32400 1 IRKST} + {1256407200 28800 0 IRKT} + {1269712800 32400 1 IRKST} + {1288461600 28800 0 IRKT} + {1301162400 32400 1 IRKST} + {1319911200 28800 0 IRKT} + {1332612000 32400 1 IRKST} + {1351360800 28800 0 IRKT} + {1364666400 32400 1 IRKST} + {1382810400 28800 0 IRKT} + {1396116000 32400 1 IRKST} + {1414260000 28800 0 IRKT} + {1427565600 32400 1 IRKST} + {1445709600 28800 0 IRKT} + {1459015200 32400 1 IRKST} + {1477764000 28800 0 IRKT} + {1490464800 32400 1 IRKST} + {1509213600 28800 0 IRKT} + {1521914400 32400 1 IRKST} + {1540663200 28800 0 IRKT} + {1553968800 32400 1 IRKST} + {1572112800 28800 0 IRKT} + {1585418400 32400 1 IRKST} + {1603562400 28800 0 IRKT} + {1616868000 32400 1 IRKST} + {1635616800 28800 0 IRKT} + {1648317600 32400 1 IRKST} + {1667066400 28800 0 IRKT} + {1679767200 32400 1 IRKST} + {1698516000 28800 0 IRKT} + {1711821600 32400 1 IRKST} + {1729965600 28800 0 IRKT} + {1743271200 32400 1 IRKST} + {1761415200 28800 0 IRKT} + {1774720800 32400 1 IRKST} + {1792864800 28800 0 IRKT} + {1806170400 32400 1 IRKST} + {1824919200 28800 0 IRKT} + {1837620000 32400 1 IRKST} + {1856368800 28800 0 IRKT} + {1869069600 32400 1 IRKST} + {1887818400 28800 0 IRKT} + {1901124000 32400 1 IRKST} + {1919268000 28800 0 IRKT} + {1932573600 32400 1 IRKST} + {1950717600 28800 0 IRKT} + {1964023200 32400 1 IRKST} + {1982772000 28800 0 IRKT} + {1995472800 32400 1 IRKST} + {2014221600 28800 0 IRKT} + {2026922400 32400 1 IRKST} + {2045671200 28800 0 IRKT} + {2058372000 32400 1 IRKST} + {2077120800 28800 0 IRKT} + {2090426400 32400 1 IRKST} + {2108570400 28800 0 IRKT} + {2121876000 32400 1 IRKST} + {2140020000 28800 0 IRKT} + {2153325600 32400 1 IRKST} + {2172074400 28800 0 IRKT} + {2184775200 32400 1 IRKST} + {2203524000 28800 0 IRKT} + {2216224800 32400 1 IRKST} + {2234973600 28800 0 IRKT} + {2248279200 32400 1 IRKST} + {2266423200 28800 0 IRKT} + {2279728800 32400 1 IRKST} + {2297872800 28800 0 IRKT} + {2311178400 32400 1 IRKST} + {2329322400 28800 0 IRKT} + {2342628000 32400 1 IRKST} + {2361376800 28800 0 IRKT} + {2374077600 32400 1 IRKST} + {2392826400 28800 0 IRKT} + {2405527200 32400 1 IRKST} + {2424276000 28800 0 IRKT} + {2437581600 32400 1 IRKST} + {2455725600 28800 0 IRKT} + {2469031200 32400 1 IRKST} + {2487175200 28800 0 IRKT} + {2500480800 32400 1 IRKST} + {2519229600 28800 0 IRKT} + {2531930400 32400 1 IRKST} + {2550679200 28800 0 IRKT} + {2563380000 32400 1 IRKST} + {2582128800 28800 0 IRKT} + {2595434400 32400 1 IRKST} + {2613578400 28800 0 IRKT} + {2626884000 32400 1 IRKST} + {2645028000 28800 0 IRKT} + {2658333600 32400 1 IRKST} + {2676477600 28800 0 IRKT} + {2689783200 32400 1 IRKST} + {2708532000 28800 0 IRKT} + {2721232800 32400 1 IRKST} + {2739981600 28800 0 IRKT} + {2752682400 32400 1 IRKST} + {2771431200 28800 0 IRKT} + {2784736800 32400 1 IRKST} + {2802880800 28800 0 IRKT} + {2816186400 32400 1 IRKST} + {2834330400 28800 0 IRKT} + {2847636000 32400 1 IRKST} + {2866384800 28800 0 IRKT} + {2879085600 32400 1 IRKST} + {2897834400 28800 0 IRKT} + {2910535200 32400 1 IRKST} + {2929284000 28800 0 IRKT} + {2941984800 32400 1 IRKST} + {2960733600 28800 0 IRKT} + {2974039200 32400 1 IRKST} + {2992183200 28800 0 IRKT} + {3005488800 32400 1 IRKST} + {3023632800 28800 0 IRKT} + {3036938400 32400 1 IRKST} + {3055687200 28800 0 IRKT} + {3068388000 32400 1 IRKST} + {3087136800 28800 0 IRKT} + {3099837600 32400 1 IRKST} + {3118586400 28800 0 IRKT} + {3131892000 32400 1 IRKST} + {3150036000 28800 0 IRKT} + {3163341600 32400 1 IRKST} + {3181485600 28800 0 IRKT} + {3194791200 32400 1 IRKST} + {3212935200 28800 0 IRKT} + {3226240800 32400 1 IRKST} + {3244989600 28800 0 IRKT} + {3257690400 32400 1 IRKST} + {3276439200 28800 0 IRKT} + {3289140000 32400 1 IRKST} + {3307888800 28800 0 IRKT} + {3321194400 32400 1 IRKST} + {3339338400 28800 0 IRKT} + {3352644000 32400 1 IRKST} + {3370788000 28800 0 IRKT} + {3384093600 32400 1 IRKST} + {3402842400 28800 0 IRKT} + {3415543200 32400 1 IRKST} + {3434292000 28800 0 IRKT} + {3446992800 32400 1 IRKST} + {3465741600 28800 0 IRKT} + {3479047200 32400 1 IRKST} + {3497191200 28800 0 IRKT} + {3510496800 32400 1 IRKST} + {3528640800 28800 0 IRKT} + {3541946400 32400 1 IRKST} + {3560090400 28800 0 IRKT} + {3573396000 32400 1 IRKST} + {3592144800 28800 0 IRKT} + {3604845600 32400 1 IRKST} + {3623594400 28800 0 IRKT} + {3636295200 32400 1 IRKST} + {3655044000 28800 0 IRKT} + {3668349600 32400 1 IRKST} + {3686493600 28800 0 IRKT} + {3699799200 32400 1 IRKST} + {3717943200 28800 0 IRKT} + {3731248800 32400 1 IRKST} + {3749997600 28800 0 IRKT} + {3762698400 32400 1 IRKST} + {3781447200 28800 0 IRKT} + {3794148000 32400 1 IRKST} + {3812896800 28800 0 IRKT} + {3825597600 32400 1 IRKST} + {3844346400 28800 0 IRKT} + {3857652000 32400 1 IRKST} + {3875796000 28800 0 IRKT} + {3889101600 32400 1 IRKST} + {3907245600 28800 0 IRKT} + {3920551200 32400 1 IRKST} + {3939300000 28800 0 IRKT} + {3952000800 32400 1 IRKST} + {3970749600 28800 0 IRKT} + {3983450400 32400 1 IRKST} + {4002199200 28800 0 IRKT} + {4015504800 32400 1 IRKST} + {4033648800 28800 0 IRKT} + {4046954400 32400 1 IRKST} + {4065098400 28800 0 IRKT} + {4078404000 32400 1 IRKST} + {4096548000 28800 0 IRKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Istanbul b/mingw/lib/tcl8.5/tzdata/Asia/Istanbul new file mode 100644 index 00000000..85b3fc22 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Istanbul @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Istanbul)]} { + LoadTimeZoneFile Europe/Istanbul +} +set TZData(:Asia/Istanbul) $TZData(:Europe/Istanbul) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Jakarta b/mingw/lib/tcl8.5/tzdata/Asia/Jakarta new file mode 100644 index 00000000..27033e87 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Jakarta @@ -0,0 +1,13 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Jakarta) { + {-9223372036854775808 25632 0 LMT} + {-3231299232 25632 0 JMT} + {-1451719200 26400 0 JAVT} + {-1172906400 27000 0 WIT} + {-876641400 32400 0 JST} + {-766054800 27000 0 WIT} + {-683883000 28800 0 WIT} + {-620812800 27000 0 WIT} + {-189415800 25200 0 WIT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Jayapura b/mingw/lib/tcl8.5/tzdata/Asia/Jayapura new file mode 100644 index 00000000..893da8b8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Jayapura @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Jayapura) { + {-9223372036854775808 33768 0 LMT} + {-1172913768 32400 0 EIT} + {-799491600 34200 0 CST} + {-189423000 32400 0 EIT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Jerusalem b/mingw/lib/tcl8.5/tzdata/Asia/Jerusalem new file mode 100644 index 00000000..48e213dd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Jerusalem @@ -0,0 +1,148 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Jerusalem) { + {-9223372036854775808 8456 0 LMT} + {-2840149256 8440 0 JMT} + {-1641003640 7200 0 IST} + {-933645600 10800 1 IDT} + {-857358000 7200 0 IST} + {-844300800 10800 1 IDT} + {-825822000 7200 0 IST} + {-812685600 10800 1 IDT} + {-794199600 7200 0 IST} + {-779853600 10800 1 IDT} + {-762656400 7200 0 IST} + {-748310400 10800 1 IDT} + {-731127600 7200 0 IST} + {-681962400 14400 1 IDDT} + {-673243200 10800 1 IDT} + {-667962000 7200 0 IST} + {-652327200 10800 1 IDT} + {-636426000 7200 0 IST} + {-622087200 10800 1 IDT} + {-608947200 7200 0 IST} + {-591847200 10800 1 IDT} + {-572486400 7200 0 IST} + {-558576000 10800 1 IDT} + {-542851200 7200 0 IST} + {-527731200 10800 1 IDT} + {-514425600 7200 0 IST} + {-490845600 10800 1 IDT} + {-482986800 7200 0 IST} + {-459475200 10800 1 IDT} + {-451537200 7200 0 IST} + {-428551200 10800 1 IDT} + {-418262400 7200 0 IST} + {-400032000 10800 1 IDT} + {-387428400 7200 0 IST} + {142380000 10800 1 IDT} + {150843600 7200 0 IST} + {167176800 10800 1 IDT} + {178664400 7200 0 IST} + {482277600 10800 1 IDT} + {495579600 7200 0 IST} + {516751200 10800 1 IDT} + {526424400 7200 0 IST} + {545436000 10800 1 IDT} + {558478800 7200 0 IST} + {576540000 10800 1 IDT} + {589237200 7200 0 IST} + {609890400 10800 1 IDT} + {620773200 7200 0 IST} + {638316000 10800 1 IDT} + {651618000 7200 0 IST} + {669765600 10800 1 IDT} + {683672400 7200 0 IST} + {701820000 10800 1 IDT} + {715726800 7200 0 IST} + {733701600 10800 1 IDT} + {747176400 7200 0 IST} + {765151200 10800 1 IDT} + {778021200 7200 0 IST} + {796600800 10800 1 IDT} + {810075600 7200 0 IST} + {826840800 10800 1 IDT} + {842821200 7200 0 IST} + {858895200 10800 1 IDT} + {874184400 7200 0 IST} + {890344800 10800 1 IDT} + {905029200 7200 0 IST} + {923011200 10800 1 IDT} + {936313200 7200 0 IST} + {955670400 10800 1 IDT} + {970783200 7200 0 IST} + {986770800 10800 1 IDT} + {1001282400 7200 0 IST} + {1017356400 10800 1 IDT} + {1033941600 7200 0 IST} + {1048806000 10800 1 IDT} + {1065132000 7200 0 IST} + {1081292400 10800 1 IDT} + {1095804000 7200 0 IST} + {1112313600 10800 1 IDT} + {1128812400 7200 0 IST} + {1143763200 10800 1 IDT} + {1159657200 7200 0 IST} + {1175212800 10800 1 IDT} + {1189897200 7200 0 IST} + {1206662400 10800 1 IDT} + {1223161200 7200 0 IST} + {1238112000 10800 1 IDT} + {1254006000 7200 0 IST} + {1269561600 10800 1 IDT} + {1284246000 7200 0 IST} + {1301616000 10800 1 IDT} + {1317510000 7200 0 IST} + {1333065600 10800 1 IDT} + {1348354800 7200 0 IST} + {1364515200 10800 1 IDT} + {1378594800 7200 0 IST} + {1395964800 10800 1 IDT} + {1411858800 7200 0 IST} + {1427414400 10800 1 IDT} + {1442703600 7200 0 IST} + {1459468800 10800 1 IDT} + {1475967600 7200 0 IST} + {1490918400 10800 1 IDT} + {1506207600 7200 0 IST} + {1522368000 10800 1 IDT} + {1537052400 7200 0 IST} + {1553817600 10800 1 IDT} + {1570316400 7200 0 IST} + {1585267200 10800 1 IDT} + {1601161200 7200 0 IST} + {1616716800 10800 1 IDT} + {1631401200 7200 0 IST} + {1648771200 10800 1 IDT} + {1664665200 7200 0 IST} + {1680220800 10800 1 IDT} + {1695510000 7200 0 IST} + {1711670400 10800 1 IDT} + {1728169200 7200 0 IST} + {1743120000 10800 1 IDT} + {1759014000 7200 0 IST} + {1774569600 10800 1 IDT} + {1789858800 7200 0 IST} + {1806019200 10800 1 IDT} + {1823122800 7200 0 IST} + {1838073600 10800 1 IDT} + {1853362800 7200 0 IST} + {1869523200 10800 1 IDT} + {1884207600 7200 0 IST} + {1900972800 10800 1 IDT} + {1917471600 7200 0 IST} + {1932422400 10800 1 IDT} + {1947711600 7200 0 IST} + {1963872000 10800 1 IDT} + {1978556400 7200 0 IST} + {1995926400 10800 1 IDT} + {2011820400 7200 0 IST} + {2027376000 10800 1 IDT} + {2042060400 7200 0 IST} + {2058825600 10800 1 IDT} + {2075324400 7200 0 IST} + {2090275200 10800 1 IDT} + {2106169200 7200 0 IST} + {2121724800 10800 1 IDT} + {2136409200 7200 0 IST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kabul b/mingw/lib/tcl8.5/tzdata/Asia/Kabul new file mode 100644 index 00000000..33d7282d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kabul @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Kabul) { + {-9223372036854775808 16608 0 LMT} + {-2524538208 14400 0 AFT} + {-788932800 16200 0 AFT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kamchatka b/mingw/lib/tcl8.5/tzdata/Asia/Kamchatka new file mode 100644 index 00000000..a3907013 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kamchatka @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Kamchatka) { + {-9223372036854775808 38076 0 LMT} + {-1487759676 39600 0 PETT} + {-1247569200 43200 0 PETMMTT} + {354888000 46800 1 PETST} + {370695600 43200 0 PETT} + {386424000 46800 1 PETST} + {402231600 43200 0 PETT} + {417960000 46800 1 PETST} + {433767600 43200 0 PETT} + {449582400 46800 1 PETST} + {465314400 43200 0 PETT} + {481039200 46800 1 PETST} + {496764000 43200 0 PETT} + {512488800 46800 1 PETST} + {528213600 43200 0 PETT} + {543938400 46800 1 PETST} + {559663200 43200 0 PETT} + {575388000 46800 1 PETST} + {591112800 43200 0 PETT} + {606837600 46800 1 PETST} + {622562400 43200 0 PETT} + {638287200 46800 1 PETST} + {654616800 43200 0 PETT} + {670341600 39600 0 PETMMTT} + {670345200 43200 1 PETST} + {686070000 39600 0 PETT} + {695746800 43200 0 PETMMTT} + {701780400 46800 1 PETST} + {717501600 43200 0 PETT} + {733240800 46800 1 PETST} + {748965600 43200 0 PETT} + {764690400 46800 1 PETST} + {780415200 43200 0 PETT} + {796140000 46800 1 PETST} + {811864800 43200 0 PETT} + {828194400 46800 1 PETST} + {846338400 43200 0 PETT} + {859644000 46800 1 PETST} + {877788000 43200 0 PETT} + {891093600 46800 1 PETST} + {909237600 43200 0 PETT} + {922543200 46800 1 PETST} + {941292000 43200 0 PETT} + {953992800 46800 1 PETST} + {972741600 43200 0 PETT} + {985442400 46800 1 PETST} + {1004191200 43200 0 PETT} + {1017496800 46800 1 PETST} + {1035640800 43200 0 PETT} + {1048946400 46800 1 PETST} + {1067090400 43200 0 PETT} + {1080396000 46800 1 PETST} + {1099144800 43200 0 PETT} + {1111845600 46800 1 PETST} + {1130594400 43200 0 PETT} + {1143295200 46800 1 PETST} + {1162044000 43200 0 PETT} + {1174744800 46800 1 PETST} + {1193493600 43200 0 PETT} + {1206799200 46800 1 PETST} + {1224943200 43200 0 PETT} + {1238248800 46800 1 PETST} + {1256392800 43200 0 PETT} + {1269698400 46800 1 PETST} + {1288447200 43200 0 PETT} + {1301148000 46800 1 PETST} + {1319896800 43200 0 PETT} + {1332597600 46800 1 PETST} + {1351346400 43200 0 PETT} + {1364652000 46800 1 PETST} + {1382796000 43200 0 PETT} + {1396101600 46800 1 PETST} + {1414245600 43200 0 PETT} + {1427551200 46800 1 PETST} + {1445695200 43200 0 PETT} + {1459000800 46800 1 PETST} + {1477749600 43200 0 PETT} + {1490450400 46800 1 PETST} + {1509199200 43200 0 PETT} + {1521900000 46800 1 PETST} + {1540648800 43200 0 PETT} + {1553954400 46800 1 PETST} + {1572098400 43200 0 PETT} + {1585404000 46800 1 PETST} + {1603548000 43200 0 PETT} + {1616853600 46800 1 PETST} + {1635602400 43200 0 PETT} + {1648303200 46800 1 PETST} + {1667052000 43200 0 PETT} + {1679752800 46800 1 PETST} + {1698501600 43200 0 PETT} + {1711807200 46800 1 PETST} + {1729951200 43200 0 PETT} + {1743256800 46800 1 PETST} + {1761400800 43200 0 PETT} + {1774706400 46800 1 PETST} + {1792850400 43200 0 PETT} + {1806156000 46800 1 PETST} + {1824904800 43200 0 PETT} + {1837605600 46800 1 PETST} + {1856354400 43200 0 PETT} + {1869055200 46800 1 PETST} + {1887804000 43200 0 PETT} + {1901109600 46800 1 PETST} + {1919253600 43200 0 PETT} + {1932559200 46800 1 PETST} + {1950703200 43200 0 PETT} + {1964008800 46800 1 PETST} + {1982757600 43200 0 PETT} + {1995458400 46800 1 PETST} + {2014207200 43200 0 PETT} + {2026908000 46800 1 PETST} + {2045656800 43200 0 PETT} + {2058357600 46800 1 PETST} + {2077106400 43200 0 PETT} + {2090412000 46800 1 PETST} + {2108556000 43200 0 PETT} + {2121861600 46800 1 PETST} + {2140005600 43200 0 PETT} + {2153311200 46800 1 PETST} + {2172060000 43200 0 PETT} + {2184760800 46800 1 PETST} + {2203509600 43200 0 PETT} + {2216210400 46800 1 PETST} + {2234959200 43200 0 PETT} + {2248264800 46800 1 PETST} + {2266408800 43200 0 PETT} + {2279714400 46800 1 PETST} + {2297858400 43200 0 PETT} + {2311164000 46800 1 PETST} + {2329308000 43200 0 PETT} + {2342613600 46800 1 PETST} + {2361362400 43200 0 PETT} + {2374063200 46800 1 PETST} + {2392812000 43200 0 PETT} + {2405512800 46800 1 PETST} + {2424261600 43200 0 PETT} + {2437567200 46800 1 PETST} + {2455711200 43200 0 PETT} + {2469016800 46800 1 PETST} + {2487160800 43200 0 PETT} + {2500466400 46800 1 PETST} + {2519215200 43200 0 PETT} + {2531916000 46800 1 PETST} + {2550664800 43200 0 PETT} + {2563365600 46800 1 PETST} + {2582114400 43200 0 PETT} + {2595420000 46800 1 PETST} + {2613564000 43200 0 PETT} + {2626869600 46800 1 PETST} + {2645013600 43200 0 PETT} + {2658319200 46800 1 PETST} + {2676463200 43200 0 PETT} + {2689768800 46800 1 PETST} + {2708517600 43200 0 PETT} + {2721218400 46800 1 PETST} + {2739967200 43200 0 PETT} + {2752668000 46800 1 PETST} + {2771416800 43200 0 PETT} + {2784722400 46800 1 PETST} + {2802866400 43200 0 PETT} + {2816172000 46800 1 PETST} + {2834316000 43200 0 PETT} + {2847621600 46800 1 PETST} + {2866370400 43200 0 PETT} + {2879071200 46800 1 PETST} + {2897820000 43200 0 PETT} + {2910520800 46800 1 PETST} + {2929269600 43200 0 PETT} + {2941970400 46800 1 PETST} + {2960719200 43200 0 PETT} + {2974024800 46800 1 PETST} + {2992168800 43200 0 PETT} + {3005474400 46800 1 PETST} + {3023618400 43200 0 PETT} + {3036924000 46800 1 PETST} + {3055672800 43200 0 PETT} + {3068373600 46800 1 PETST} + {3087122400 43200 0 PETT} + {3099823200 46800 1 PETST} + {3118572000 43200 0 PETT} + {3131877600 46800 1 PETST} + {3150021600 43200 0 PETT} + {3163327200 46800 1 PETST} + {3181471200 43200 0 PETT} + {3194776800 46800 1 PETST} + {3212920800 43200 0 PETT} + {3226226400 46800 1 PETST} + {3244975200 43200 0 PETT} + {3257676000 46800 1 PETST} + {3276424800 43200 0 PETT} + {3289125600 46800 1 PETST} + {3307874400 43200 0 PETT} + {3321180000 46800 1 PETST} + {3339324000 43200 0 PETT} + {3352629600 46800 1 PETST} + {3370773600 43200 0 PETT} + {3384079200 46800 1 PETST} + {3402828000 43200 0 PETT} + {3415528800 46800 1 PETST} + {3434277600 43200 0 PETT} + {3446978400 46800 1 PETST} + {3465727200 43200 0 PETT} + {3479032800 46800 1 PETST} + {3497176800 43200 0 PETT} + {3510482400 46800 1 PETST} + {3528626400 43200 0 PETT} + {3541932000 46800 1 PETST} + {3560076000 43200 0 PETT} + {3573381600 46800 1 PETST} + {3592130400 43200 0 PETT} + {3604831200 46800 1 PETST} + {3623580000 43200 0 PETT} + {3636280800 46800 1 PETST} + {3655029600 43200 0 PETT} + {3668335200 46800 1 PETST} + {3686479200 43200 0 PETT} + {3699784800 46800 1 PETST} + {3717928800 43200 0 PETT} + {3731234400 46800 1 PETST} + {3749983200 43200 0 PETT} + {3762684000 46800 1 PETST} + {3781432800 43200 0 PETT} + {3794133600 46800 1 PETST} + {3812882400 43200 0 PETT} + {3825583200 46800 1 PETST} + {3844332000 43200 0 PETT} + {3857637600 46800 1 PETST} + {3875781600 43200 0 PETT} + {3889087200 46800 1 PETST} + {3907231200 43200 0 PETT} + {3920536800 46800 1 PETST} + {3939285600 43200 0 PETT} + {3951986400 46800 1 PETST} + {3970735200 43200 0 PETT} + {3983436000 46800 1 PETST} + {4002184800 43200 0 PETT} + {4015490400 46800 1 PETST} + {4033634400 43200 0 PETT} + {4046940000 46800 1 PETST} + {4065084000 43200 0 PETT} + {4078389600 46800 1 PETST} + {4096533600 43200 0 PETT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Karachi b/mingw/lib/tcl8.5/tzdata/Asia/Karachi new file mode 100644 index 00000000..8ce9eddc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Karachi @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Karachi) { + {-9223372036854775808 16092 0 LMT} + {-1988166492 19800 0 IST} + {-862637400 23400 1 IST} + {-764145000 19800 0 IST} + {-576135000 18000 0 KART} + {38775600 18000 0 PKT} + {1018119660 21600 1 PKST} + {1033840860 18000 0 PKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kashgar b/mingw/lib/tcl8.5/tzdata/Asia/Kashgar new file mode 100644 index 00000000..2f64f422 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kashgar @@ -0,0 +1,20 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Katmandu b/mingw/lib/tcl8.5/tzdata/Asia/Katmandu new file mode 100644 index 00000000..12f76628 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Katmandu @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Katmandu) { + {-9223372036854775808 20476 0 LMT} + {-1577943676 19800 0 IST} + {504901800 20700 0 NPT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk b/mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk new file mode 100644 index 00000000..24046fef --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Krasnoyarsk) { + {-9223372036854775808 22280 0 LMT} + {-1577513480 21600 0 KRAT} + {-1247551200 25200 0 KRAMMTT} + {354906000 28800 1 KRAST} + {370713600 25200 0 KRAT} + {386442000 28800 1 KRAST} + {402249600 25200 0 KRAT} + {417978000 28800 1 KRAST} + {433785600 25200 0 KRAT} + {449600400 28800 1 KRAST} + {465332400 25200 0 KRAT} + {481057200 28800 1 KRAST} + {496782000 25200 0 KRAT} + {512506800 28800 1 KRAST} + {528231600 25200 0 KRAT} + {543956400 28800 1 KRAST} + {559681200 25200 0 KRAT} + {575406000 28800 1 KRAST} + {591130800 25200 0 KRAT} + {606855600 28800 1 KRAST} + {622580400 25200 0 KRAT} + {638305200 28800 1 KRAST} + {654634800 25200 0 KRAT} + {670359600 21600 0 KRAMMTT} + {670363200 25200 1 KRAST} + {686088000 21600 0 KRAT} + {695764800 25200 0 KRAMMTT} + {701798400 28800 1 KRAST} + {717519600 25200 0 KRAT} + {733258800 28800 1 KRAST} + {748983600 25200 0 KRAT} + {764708400 28800 1 KRAST} + {780433200 25200 0 KRAT} + {796158000 28800 1 KRAST} + {811882800 25200 0 KRAT} + {828212400 28800 1 KRAST} + {846356400 25200 0 KRAT} + {859662000 28800 1 KRAST} + {877806000 25200 0 KRAT} + {891111600 28800 1 KRAST} + {909255600 25200 0 KRAT} + {922561200 28800 1 KRAST} + {941310000 25200 0 KRAT} + {954010800 28800 1 KRAST} + {972759600 25200 0 KRAT} + {985460400 28800 1 KRAST} + {1004209200 25200 0 KRAT} + {1017514800 28800 1 KRAST} + {1035658800 25200 0 KRAT} + {1048964400 28800 1 KRAST} + {1067108400 25200 0 KRAT} + {1080414000 28800 1 KRAST} + {1099162800 25200 0 KRAT} + {1111863600 28800 1 KRAST} + {1130612400 25200 0 KRAT} + {1143313200 28800 1 KRAST} + {1162062000 25200 0 KRAT} + {1174762800 28800 1 KRAST} + {1193511600 25200 0 KRAT} + {1206817200 28800 1 KRAST} + {1224961200 25200 0 KRAT} + {1238266800 28800 1 KRAST} + {1256410800 25200 0 KRAT} + {1269716400 28800 1 KRAST} + {1288465200 25200 0 KRAT} + {1301166000 28800 1 KRAST} + {1319914800 25200 0 KRAT} + {1332615600 28800 1 KRAST} + {1351364400 25200 0 KRAT} + {1364670000 28800 1 KRAST} + {1382814000 25200 0 KRAT} + {1396119600 28800 1 KRAST} + {1414263600 25200 0 KRAT} + {1427569200 28800 1 KRAST} + {1445713200 25200 0 KRAT} + {1459018800 28800 1 KRAST} + {1477767600 25200 0 KRAT} + {1490468400 28800 1 KRAST} + {1509217200 25200 0 KRAT} + {1521918000 28800 1 KRAST} + {1540666800 25200 0 KRAT} + {1553972400 28800 1 KRAST} + {1572116400 25200 0 KRAT} + {1585422000 28800 1 KRAST} + {1603566000 25200 0 KRAT} + {1616871600 28800 1 KRAST} + {1635620400 25200 0 KRAT} + {1648321200 28800 1 KRAST} + {1667070000 25200 0 KRAT} + {1679770800 28800 1 KRAST} + {1698519600 25200 0 KRAT} + {1711825200 28800 1 KRAST} + {1729969200 25200 0 KRAT} + {1743274800 28800 1 KRAST} + {1761418800 25200 0 KRAT} + {1774724400 28800 1 KRAST} + {1792868400 25200 0 KRAT} + {1806174000 28800 1 KRAST} + {1824922800 25200 0 KRAT} + {1837623600 28800 1 KRAST} + {1856372400 25200 0 KRAT} + {1869073200 28800 1 KRAST} + {1887822000 25200 0 KRAT} + {1901127600 28800 1 KRAST} + {1919271600 25200 0 KRAT} + {1932577200 28800 1 KRAST} + {1950721200 25200 0 KRAT} + {1964026800 28800 1 KRAST} + {1982775600 25200 0 KRAT} + {1995476400 28800 1 KRAST} + {2014225200 25200 0 KRAT} + {2026926000 28800 1 KRAST} + {2045674800 25200 0 KRAT} + {2058375600 28800 1 KRAST} + {2077124400 25200 0 KRAT} + {2090430000 28800 1 KRAST} + {2108574000 25200 0 KRAT} + {2121879600 28800 1 KRAST} + {2140023600 25200 0 KRAT} + {2153329200 28800 1 KRAST} + {2172078000 25200 0 KRAT} + {2184778800 28800 1 KRAST} + {2203527600 25200 0 KRAT} + {2216228400 28800 1 KRAST} + {2234977200 25200 0 KRAT} + {2248282800 28800 1 KRAST} + {2266426800 25200 0 KRAT} + {2279732400 28800 1 KRAST} + {2297876400 25200 0 KRAT} + {2311182000 28800 1 KRAST} + {2329326000 25200 0 KRAT} + {2342631600 28800 1 KRAST} + {2361380400 25200 0 KRAT} + {2374081200 28800 1 KRAST} + {2392830000 25200 0 KRAT} + {2405530800 28800 1 KRAST} + {2424279600 25200 0 KRAT} + {2437585200 28800 1 KRAST} + {2455729200 25200 0 KRAT} + {2469034800 28800 1 KRAST} + {2487178800 25200 0 KRAT} + {2500484400 28800 1 KRAST} + {2519233200 25200 0 KRAT} + {2531934000 28800 1 KRAST} + {2550682800 25200 0 KRAT} + {2563383600 28800 1 KRAST} + {2582132400 25200 0 KRAT} + {2595438000 28800 1 KRAST} + {2613582000 25200 0 KRAT} + {2626887600 28800 1 KRAST} + {2645031600 25200 0 KRAT} + {2658337200 28800 1 KRAST} + {2676481200 25200 0 KRAT} + {2689786800 28800 1 KRAST} + {2708535600 25200 0 KRAT} + {2721236400 28800 1 KRAST} + {2739985200 25200 0 KRAT} + {2752686000 28800 1 KRAST} + {2771434800 25200 0 KRAT} + {2784740400 28800 1 KRAST} + {2802884400 25200 0 KRAT} + {2816190000 28800 1 KRAST} + {2834334000 25200 0 KRAT} + {2847639600 28800 1 KRAST} + {2866388400 25200 0 KRAT} + {2879089200 28800 1 KRAST} + {2897838000 25200 0 KRAT} + {2910538800 28800 1 KRAST} + {2929287600 25200 0 KRAT} + {2941988400 28800 1 KRAST} + {2960737200 25200 0 KRAT} + {2974042800 28800 1 KRAST} + {2992186800 25200 0 KRAT} + {3005492400 28800 1 KRAST} + {3023636400 25200 0 KRAT} + {3036942000 28800 1 KRAST} + {3055690800 25200 0 KRAT} + {3068391600 28800 1 KRAST} + {3087140400 25200 0 KRAT} + {3099841200 28800 1 KRAST} + {3118590000 25200 0 KRAT} + {3131895600 28800 1 KRAST} + {3150039600 25200 0 KRAT} + {3163345200 28800 1 KRAST} + {3181489200 25200 0 KRAT} + {3194794800 28800 1 KRAST} + {3212938800 25200 0 KRAT} + {3226244400 28800 1 KRAST} + {3244993200 25200 0 KRAT} + {3257694000 28800 1 KRAST} + {3276442800 25200 0 KRAT} + {3289143600 28800 1 KRAST} + {3307892400 25200 0 KRAT} + {3321198000 28800 1 KRAST} + {3339342000 25200 0 KRAT} + {3352647600 28800 1 KRAST} + {3370791600 25200 0 KRAT} + {3384097200 28800 1 KRAST} + {3402846000 25200 0 KRAT} + {3415546800 28800 1 KRAST} + {3434295600 25200 0 KRAT} + {3446996400 28800 1 KRAST} + {3465745200 25200 0 KRAT} + {3479050800 28800 1 KRAST} + {3497194800 25200 0 KRAT} + {3510500400 28800 1 KRAST} + {3528644400 25200 0 KRAT} + {3541950000 28800 1 KRAST} + {3560094000 25200 0 KRAT} + {3573399600 28800 1 KRAST} + {3592148400 25200 0 KRAT} + {3604849200 28800 1 KRAST} + {3623598000 25200 0 KRAT} + {3636298800 28800 1 KRAST} + {3655047600 25200 0 KRAT} + {3668353200 28800 1 KRAST} + {3686497200 25200 0 KRAT} + {3699802800 28800 1 KRAST} + {3717946800 25200 0 KRAT} + {3731252400 28800 1 KRAST} + {3750001200 25200 0 KRAT} + {3762702000 28800 1 KRAST} + {3781450800 25200 0 KRAT} + {3794151600 28800 1 KRAST} + {3812900400 25200 0 KRAT} + {3825601200 28800 1 KRAST} + {3844350000 25200 0 KRAT} + {3857655600 28800 1 KRAST} + {3875799600 25200 0 KRAT} + {3889105200 28800 1 KRAST} + {3907249200 25200 0 KRAT} + {3920554800 28800 1 KRAST} + {3939303600 25200 0 KRAT} + {3952004400 28800 1 KRAST} + {3970753200 25200 0 KRAT} + {3983454000 28800 1 KRAST} + {4002202800 25200 0 KRAT} + {4015508400 28800 1 KRAST} + {4033652400 25200 0 KRAT} + {4046958000 28800 1 KRAST} + {4065102000 25200 0 KRAT} + {4078407600 28800 1 KRAST} + {4096551600 25200 0 KRAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur b/mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur new file mode 100644 index 00000000..7a54bd6e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur @@ -0,0 +1,13 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Kuala_Lumpur) { + {-9223372036854775808 24406 0 LMT} + {-2177477206 24925 0 SMT} + {-2038200925 25200 0 MALT} + {-1167634800 26400 1 MALST} + {-1073028000 26400 0 MALT} + {-894180000 27000 0 MALT} + {-879665400 32400 0 JST} + {-767005200 27000 0 MALT} + {378664200 28800 0 MYT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kuching b/mingw/lib/tcl8.5/tzdata/Asia/Kuching new file mode 100644 index 00000000..0f9110c6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kuching @@ -0,0 +1,24 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Kuching) { + {-9223372036854775808 26480 0 LMT} + {-1383463280 27000 0 BORT} + {-1167636600 28800 0 BORT} + {-1082448000 30000 1 BORTST} + {-1074586800 28800 0 BORT} + {-1050825600 30000 1 BORTST} + {-1042964400 28800 0 BORT} + {-1019289600 30000 1 BORTST} + {-1011428400 28800 0 BORT} + {-987753600 30000 1 BORTST} + {-979892400 28800 0 BORT} + {-956217600 30000 1 BORTST} + {-948356400 28800 0 BORT} + {-924595200 30000 1 BORTST} + {-916734000 28800 0 BORT} + {-893059200 30000 1 BORTST} + {-885198000 28800 0 BORT} + {-879667200 32400 0 JST} + {-767005200 28800 0 BORT} + {378662400 28800 0 MYT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Kuwait b/mingw/lib/tcl8.5/tzdata/Asia/Kuwait new file mode 100644 index 00000000..15d26dbb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Kuwait @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Kuwait) { + {-9223372036854775808 11516 0 LMT} + {-631163516 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Macao b/mingw/lib/tcl8.5/tzdata/Asia/Macao new file mode 100644 index 00000000..6e972ffa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Macao @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Macau)]} { + LoadTimeZoneFile Asia/Macau +} +set TZData(:Asia/Macao) $TZData(:Asia/Macau) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Macau b/mingw/lib/tcl8.5/tzdata/Asia/Macau new file mode 100644 index 00000000..9d4abfea --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Macau @@ -0,0 +1,46 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Macau) { + {-9223372036854775808 27260 0 LMT} + {-1830411260 28800 0 MOT} + {-277360200 32400 1 MOST} + {-257405400 28800 0 MOT} + {-245910600 32400 1 MOST} + {-225955800 28800 0 MOT} + {-214473600 32400 1 MOST} + {-194506200 28800 0 MOT} + {-182406600 32400 1 MOST} + {-163056600 28800 0 MOT} + {-150969600 32400 1 MOST} + {-131619600 28800 0 MOT} + {-117088200 32400 1 MOST} + {-101367000 28800 0 MOT} + {-85638600 32400 1 MOST} + {-69312600 28800 0 MOT} + {-53584200 32400 1 MOST} + {-37863000 28800 0 MOT} + {-22134600 32400 1 MOST} + {-6413400 28800 0 MOT} + {9315000 32400 1 MOST} + {25036200 28800 0 MOT} + {40764600 32400 1 MOST} + {56485800 28800 0 MOT} + {72201600 32400 1 MOST} + {87922800 28800 0 MOT} + {103651200 32400 1 MOST} + {119977200 28800 0 MOT} + {135705600 32400 1 MOST} + {151439400 28800 0 MOT} + {167167800 32400 1 MOST} + {182889000 28800 0 MOT} + {198617400 32400 1 MOST} + {214338600 28800 0 MOT} + {230067000 32400 1 MOST} + {245788200 28800 0 MOT} + {261504000 32400 1 MOST} + {277225200 28800 0 MOT} + {292953600 32400 1 MOST} + {309279600 28800 0 MOT} + {325008000 32400 1 MOST} + {340729200 28800 0 MOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Magadan b/mingw/lib/tcl8.5/tzdata/Asia/Magadan new file mode 100644 index 00000000..28e1f2fc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Magadan @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Magadan) { + {-9223372036854775808 36192 0 LMT} + {-1441188192 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 1 MAGST} + {1319900400 39600 0 MAGT} + {1332601200 43200 1 MAGST} + {1351350000 39600 0 MAGT} + {1364655600 43200 1 MAGST} + {1382799600 39600 0 MAGT} + {1396105200 43200 1 MAGST} + {1414249200 39600 0 MAGT} + {1427554800 43200 1 MAGST} + {1445698800 39600 0 MAGT} + {1459004400 43200 1 MAGST} + {1477753200 39600 0 MAGT} + {1490454000 43200 1 MAGST} + {1509202800 39600 0 MAGT} + {1521903600 43200 1 MAGST} + {1540652400 39600 0 MAGT} + {1553958000 43200 1 MAGST} + {1572102000 39600 0 MAGT} + {1585407600 43200 1 MAGST} + {1603551600 39600 0 MAGT} + {1616857200 43200 1 MAGST} + {1635606000 39600 0 MAGT} + {1648306800 43200 1 MAGST} + {1667055600 39600 0 MAGT} + {1679756400 43200 1 MAGST} + {1698505200 39600 0 MAGT} + {1711810800 43200 1 MAGST} + {1729954800 39600 0 MAGT} + {1743260400 43200 1 MAGST} + {1761404400 39600 0 MAGT} + {1774710000 43200 1 MAGST} + {1792854000 39600 0 MAGT} + {1806159600 43200 1 MAGST} + {1824908400 39600 0 MAGT} + {1837609200 43200 1 MAGST} + {1856358000 39600 0 MAGT} + {1869058800 43200 1 MAGST} + {1887807600 39600 0 MAGT} + {1901113200 43200 1 MAGST} + {1919257200 39600 0 MAGT} + {1932562800 43200 1 MAGST} + {1950706800 39600 0 MAGT} + {1964012400 43200 1 MAGST} + {1982761200 39600 0 MAGT} + {1995462000 43200 1 MAGST} + {2014210800 39600 0 MAGT} + {2026911600 43200 1 MAGST} + {2045660400 39600 0 MAGT} + {2058361200 43200 1 MAGST} + {2077110000 39600 0 MAGT} + {2090415600 43200 1 MAGST} + {2108559600 39600 0 MAGT} + {2121865200 43200 1 MAGST} + {2140009200 39600 0 MAGT} + {2153314800 43200 1 MAGST} + {2172063600 39600 0 MAGT} + {2184764400 43200 1 MAGST} + {2203513200 39600 0 MAGT} + {2216214000 43200 1 MAGST} + {2234962800 39600 0 MAGT} + {2248268400 43200 1 MAGST} + {2266412400 39600 0 MAGT} + {2279718000 43200 1 MAGST} + {2297862000 39600 0 MAGT} + {2311167600 43200 1 MAGST} + {2329311600 39600 0 MAGT} + {2342617200 43200 1 MAGST} + {2361366000 39600 0 MAGT} + {2374066800 43200 1 MAGST} + {2392815600 39600 0 MAGT} + {2405516400 43200 1 MAGST} + {2424265200 39600 0 MAGT} + {2437570800 43200 1 MAGST} + {2455714800 39600 0 MAGT} + {2469020400 43200 1 MAGST} + {2487164400 39600 0 MAGT} + {2500470000 43200 1 MAGST} + {2519218800 39600 0 MAGT} + {2531919600 43200 1 MAGST} + {2550668400 39600 0 MAGT} + {2563369200 43200 1 MAGST} + {2582118000 39600 0 MAGT} + {2595423600 43200 1 MAGST} + {2613567600 39600 0 MAGT} + {2626873200 43200 1 MAGST} + {2645017200 39600 0 MAGT} + {2658322800 43200 1 MAGST} + {2676466800 39600 0 MAGT} + {2689772400 43200 1 MAGST} + {2708521200 39600 0 MAGT} + {2721222000 43200 1 MAGST} + {2739970800 39600 0 MAGT} + {2752671600 43200 1 MAGST} + {2771420400 39600 0 MAGT} + {2784726000 43200 1 MAGST} + {2802870000 39600 0 MAGT} + {2816175600 43200 1 MAGST} + {2834319600 39600 0 MAGT} + {2847625200 43200 1 MAGST} + {2866374000 39600 0 MAGT} + {2879074800 43200 1 MAGST} + {2897823600 39600 0 MAGT} + {2910524400 43200 1 MAGST} + {2929273200 39600 0 MAGT} + {2941974000 43200 1 MAGST} + {2960722800 39600 0 MAGT} + {2974028400 43200 1 MAGST} + {2992172400 39600 0 MAGT} + {3005478000 43200 1 MAGST} + {3023622000 39600 0 MAGT} + {3036927600 43200 1 MAGST} + {3055676400 39600 0 MAGT} + {3068377200 43200 1 MAGST} + {3087126000 39600 0 MAGT} + {3099826800 43200 1 MAGST} + {3118575600 39600 0 MAGT} + {3131881200 43200 1 MAGST} + {3150025200 39600 0 MAGT} + {3163330800 43200 1 MAGST} + {3181474800 39600 0 MAGT} + {3194780400 43200 1 MAGST} + {3212924400 39600 0 MAGT} + {3226230000 43200 1 MAGST} + {3244978800 39600 0 MAGT} + {3257679600 43200 1 MAGST} + {3276428400 39600 0 MAGT} + {3289129200 43200 1 MAGST} + {3307878000 39600 0 MAGT} + {3321183600 43200 1 MAGST} + {3339327600 39600 0 MAGT} + {3352633200 43200 1 MAGST} + {3370777200 39600 0 MAGT} + {3384082800 43200 1 MAGST} + {3402831600 39600 0 MAGT} + {3415532400 43200 1 MAGST} + {3434281200 39600 0 MAGT} + {3446982000 43200 1 MAGST} + {3465730800 39600 0 MAGT} + {3479036400 43200 1 MAGST} + {3497180400 39600 0 MAGT} + {3510486000 43200 1 MAGST} + {3528630000 39600 0 MAGT} + {3541935600 43200 1 MAGST} + {3560079600 39600 0 MAGT} + {3573385200 43200 1 MAGST} + {3592134000 39600 0 MAGT} + {3604834800 43200 1 MAGST} + {3623583600 39600 0 MAGT} + {3636284400 43200 1 MAGST} + {3655033200 39600 0 MAGT} + {3668338800 43200 1 MAGST} + {3686482800 39600 0 MAGT} + {3699788400 43200 1 MAGST} + {3717932400 39600 0 MAGT} + {3731238000 43200 1 MAGST} + {3749986800 39600 0 MAGT} + {3762687600 43200 1 MAGST} + {3781436400 39600 0 MAGT} + {3794137200 43200 1 MAGST} + {3812886000 39600 0 MAGT} + {3825586800 43200 1 MAGST} + {3844335600 39600 0 MAGT} + {3857641200 43200 1 MAGST} + {3875785200 39600 0 MAGT} + {3889090800 43200 1 MAGST} + {3907234800 39600 0 MAGT} + {3920540400 43200 1 MAGST} + {3939289200 39600 0 MAGT} + {3951990000 43200 1 MAGST} + {3970738800 39600 0 MAGT} + {3983439600 43200 1 MAGST} + {4002188400 39600 0 MAGT} + {4015494000 43200 1 MAGST} + {4033638000 39600 0 MAGT} + {4046943600 43200 1 MAGST} + {4065087600 39600 0 MAGT} + {4078393200 43200 1 MAGST} + {4096537200 39600 0 MAGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Makassar b/mingw/lib/tcl8.5/tzdata/Asia/Makassar new file mode 100644 index 00000000..aa604b4d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Makassar @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Makassar) { + {-9223372036854775808 28656 0 LMT} + {-1577951856 28656 0 MMT} + {-1172908656 28800 0 CIT} + {-880272000 32400 0 JST} + {-766054800 28800 0 CIT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Manila b/mingw/lib/tcl8.5/tzdata/Asia/Manila new file mode 100644 index 00000000..9cc25e80 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Manila @@ -0,0 +1,15 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Manila) { + {-9223372036854775808 -57360 0 LMT} + {-3944621040 29040 0 LMT} + {-2229321840 28800 0 PHT} + {-1046678400 32400 1 PHST} + {-1038733200 28800 0 PHT} + {-873273600 32400 0 JST} + {-794221200 28800 0 PHT} + {-496224000 32400 1 PHST} + {-489315600 28800 0 PHT} + {259344000 32400 1 PHST} + {275151600 28800 0 PHT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Muscat b/mingw/lib/tcl8.5/tzdata/Asia/Muscat new file mode 100644 index 00000000..21b58734 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Muscat @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Muscat) { + {-9223372036854775808 14060 0 LMT} + {-1577937260 14400 0 GST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Nicosia b/mingw/lib/tcl8.5/tzdata/Asia/Nicosia new file mode 100644 index 00000000..73a7b4cb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Nicosia @@ -0,0 +1,257 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Nicosia) { + {-9223372036854775808 8008 0 LMT} + {-1518920008 7200 0 EET} + {166572000 10800 1 EEST} + {182293200 7200 0 EET} + {200959200 10800 1 EEST} + {213829200 7200 0 EET} + {228866400 10800 1 EEST} + {243982800 7200 0 EET} + {260316000 10800 1 EEST} + {276123600 7200 0 EET} + {291765600 10800 1 EEST} + {307486800 7200 0 EET} + {323820000 10800 1 EEST} + {338936400 7200 0 EET} + {354664800 10800 1 EEST} + {370386000 7200 0 EET} + {386114400 10800 1 EEST} + {401835600 7200 0 EET} + {417564000 10800 1 EEST} + {433285200 7200 0 EET} + {449013600 10800 1 EEST} + {465339600 7200 0 EET} + {481068000 10800 1 EEST} + {496789200 7200 0 EET} + {512517600 10800 1 EEST} + {528238800 7200 0 EET} + {543967200 10800 1 EEST} + {559688400 7200 0 EET} + {575416800 10800 1 EEST} + {591138000 7200 0 EET} + {606866400 10800 1 EEST} + {622587600 7200 0 EET} + {638316000 10800 1 EEST} + {654642000 7200 0 EET} + {670370400 10800 1 EEST} + {686091600 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {796168800 10800 1 EEST} + {811890000 7200 0 EET} + {828223200 10800 1 EEST} + {843944400 7200 0 EET} + {859672800 10800 1 EEST} + {875394000 7200 0 EET} + {891122400 10800 1 EEST} + {904597200 10800 0 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk b/mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk new file mode 100644 index 00000000..0b35658f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Novosibirsk) { + {-9223372036854775808 19900 0 LMT} + {-1579476700 21600 0 NOVT} + {-1247551200 25200 0 NOVMMTT} + {354906000 28800 1 NOVST} + {370713600 25200 0 NOVT} + {386442000 28800 1 NOVST} + {402249600 25200 0 NOVT} + {417978000 28800 1 NOVST} + {433785600 25200 0 NOVT} + {449600400 28800 1 NOVST} + {465332400 25200 0 NOVT} + {481057200 28800 1 NOVST} + {496782000 25200 0 NOVT} + {512506800 28800 1 NOVST} + {528231600 25200 0 NOVT} + {543956400 28800 1 NOVST} + {559681200 25200 0 NOVT} + {575406000 28800 1 NOVST} + {591130800 25200 0 NOVT} + {606855600 28800 1 NOVST} + {622580400 25200 0 NOVT} + {638305200 28800 1 NOVST} + {654634800 25200 0 NOVT} + {670359600 21600 0 NOVMMTT} + {670363200 25200 1 NOVST} + {686088000 21600 0 NOVT} + {695764800 25200 0 NOVMMTT} + {701798400 28800 1 NOVST} + {717519600 25200 0 NOVT} + {733258800 28800 1 NOVST} + {738090000 25200 0 NOVST} + {748987200 21600 0 NOVT} + {764712000 25200 1 NOVST} + {780436800 21600 0 NOVT} + {796161600 25200 1 NOVST} + {811886400 21600 0 NOVT} + {828216000 25200 1 NOVST} + {846360000 21600 0 NOVT} + {859665600 25200 1 NOVST} + {877809600 21600 0 NOVT} + {891115200 25200 1 NOVST} + {909259200 21600 0 NOVT} + {922564800 25200 1 NOVST} + {941313600 21600 0 NOVT} + {954014400 25200 1 NOVST} + {972763200 21600 0 NOVT} + {985464000 25200 1 NOVST} + {1004212800 21600 0 NOVT} + {1017518400 25200 1 NOVST} + {1035662400 21600 0 NOVT} + {1048968000 25200 1 NOVST} + {1067112000 21600 0 NOVT} + {1080417600 25200 1 NOVST} + {1099166400 21600 0 NOVT} + {1111867200 25200 1 NOVST} + {1130616000 21600 0 NOVT} + {1143316800 25200 1 NOVST} + {1162065600 21600 0 NOVT} + {1174766400 25200 1 NOVST} + {1193515200 21600 0 NOVT} + {1206820800 25200 1 NOVST} + {1224964800 21600 0 NOVT} + {1238270400 25200 1 NOVST} + {1256414400 21600 0 NOVT} + {1269720000 25200 1 NOVST} + {1288468800 21600 0 NOVT} + {1301169600 25200 1 NOVST} + {1319918400 21600 0 NOVT} + {1332619200 25200 1 NOVST} + {1351368000 21600 0 NOVT} + {1364673600 25200 1 NOVST} + {1382817600 21600 0 NOVT} + {1396123200 25200 1 NOVST} + {1414267200 21600 0 NOVT} + {1427572800 25200 1 NOVST} + {1445716800 21600 0 NOVT} + {1459022400 25200 1 NOVST} + {1477771200 21600 0 NOVT} + {1490472000 25200 1 NOVST} + {1509220800 21600 0 NOVT} + {1521921600 25200 1 NOVST} + {1540670400 21600 0 NOVT} + {1553976000 25200 1 NOVST} + {1572120000 21600 0 NOVT} + {1585425600 25200 1 NOVST} + {1603569600 21600 0 NOVT} + {1616875200 25200 1 NOVST} + {1635624000 21600 0 NOVT} + {1648324800 25200 1 NOVST} + {1667073600 21600 0 NOVT} + {1679774400 25200 1 NOVST} + {1698523200 21600 0 NOVT} + {1711828800 25200 1 NOVST} + {1729972800 21600 0 NOVT} + {1743278400 25200 1 NOVST} + {1761422400 21600 0 NOVT} + {1774728000 25200 1 NOVST} + {1792872000 21600 0 NOVT} + {1806177600 25200 1 NOVST} + {1824926400 21600 0 NOVT} + {1837627200 25200 1 NOVST} + {1856376000 21600 0 NOVT} + {1869076800 25200 1 NOVST} + {1887825600 21600 0 NOVT} + {1901131200 25200 1 NOVST} + {1919275200 21600 0 NOVT} + {1932580800 25200 1 NOVST} + {1950724800 21600 0 NOVT} + {1964030400 25200 1 NOVST} + {1982779200 21600 0 NOVT} + {1995480000 25200 1 NOVST} + {2014228800 21600 0 NOVT} + {2026929600 25200 1 NOVST} + {2045678400 21600 0 NOVT} + {2058379200 25200 1 NOVST} + {2077128000 21600 0 NOVT} + {2090433600 25200 1 NOVST} + {2108577600 21600 0 NOVT} + {2121883200 25200 1 NOVST} + {2140027200 21600 0 NOVT} + {2153332800 25200 1 NOVST} + {2172081600 21600 0 NOVT} + {2184782400 25200 1 NOVST} + {2203531200 21600 0 NOVT} + {2216232000 25200 1 NOVST} + {2234980800 21600 0 NOVT} + {2248286400 25200 1 NOVST} + {2266430400 21600 0 NOVT} + {2279736000 25200 1 NOVST} + {2297880000 21600 0 NOVT} + {2311185600 25200 1 NOVST} + {2329329600 21600 0 NOVT} + {2342635200 25200 1 NOVST} + {2361384000 21600 0 NOVT} + {2374084800 25200 1 NOVST} + {2392833600 21600 0 NOVT} + {2405534400 25200 1 NOVST} + {2424283200 21600 0 NOVT} + {2437588800 25200 1 NOVST} + {2455732800 21600 0 NOVT} + {2469038400 25200 1 NOVST} + {2487182400 21600 0 NOVT} + {2500488000 25200 1 NOVST} + {2519236800 21600 0 NOVT} + {2531937600 25200 1 NOVST} + {2550686400 21600 0 NOVT} + {2563387200 25200 1 NOVST} + {2582136000 21600 0 NOVT} + {2595441600 25200 1 NOVST} + {2613585600 21600 0 NOVT} + {2626891200 25200 1 NOVST} + {2645035200 21600 0 NOVT} + {2658340800 25200 1 NOVST} + {2676484800 21600 0 NOVT} + {2689790400 25200 1 NOVST} + {2708539200 21600 0 NOVT} + {2721240000 25200 1 NOVST} + {2739988800 21600 0 NOVT} + {2752689600 25200 1 NOVST} + {2771438400 21600 0 NOVT} + {2784744000 25200 1 NOVST} + {2802888000 21600 0 NOVT} + {2816193600 25200 1 NOVST} + {2834337600 21600 0 NOVT} + {2847643200 25200 1 NOVST} + {2866392000 21600 0 NOVT} + {2879092800 25200 1 NOVST} + {2897841600 21600 0 NOVT} + {2910542400 25200 1 NOVST} + {2929291200 21600 0 NOVT} + {2941992000 25200 1 NOVST} + {2960740800 21600 0 NOVT} + {2974046400 25200 1 NOVST} + {2992190400 21600 0 NOVT} + {3005496000 25200 1 NOVST} + {3023640000 21600 0 NOVT} + {3036945600 25200 1 NOVST} + {3055694400 21600 0 NOVT} + {3068395200 25200 1 NOVST} + {3087144000 21600 0 NOVT} + {3099844800 25200 1 NOVST} + {3118593600 21600 0 NOVT} + {3131899200 25200 1 NOVST} + {3150043200 21600 0 NOVT} + {3163348800 25200 1 NOVST} + {3181492800 21600 0 NOVT} + {3194798400 25200 1 NOVST} + {3212942400 21600 0 NOVT} + {3226248000 25200 1 NOVST} + {3244996800 21600 0 NOVT} + {3257697600 25200 1 NOVST} + {3276446400 21600 0 NOVT} + {3289147200 25200 1 NOVST} + {3307896000 21600 0 NOVT} + {3321201600 25200 1 NOVST} + {3339345600 21600 0 NOVT} + {3352651200 25200 1 NOVST} + {3370795200 21600 0 NOVT} + {3384100800 25200 1 NOVST} + {3402849600 21600 0 NOVT} + {3415550400 25200 1 NOVST} + {3434299200 21600 0 NOVT} + {3447000000 25200 1 NOVST} + {3465748800 21600 0 NOVT} + {3479054400 25200 1 NOVST} + {3497198400 21600 0 NOVT} + {3510504000 25200 1 NOVST} + {3528648000 21600 0 NOVT} + {3541953600 25200 1 NOVST} + {3560097600 21600 0 NOVT} + {3573403200 25200 1 NOVST} + {3592152000 21600 0 NOVT} + {3604852800 25200 1 NOVST} + {3623601600 21600 0 NOVT} + {3636302400 25200 1 NOVST} + {3655051200 21600 0 NOVT} + {3668356800 25200 1 NOVST} + {3686500800 21600 0 NOVT} + {3699806400 25200 1 NOVST} + {3717950400 21600 0 NOVT} + {3731256000 25200 1 NOVST} + {3750004800 21600 0 NOVT} + {3762705600 25200 1 NOVST} + {3781454400 21600 0 NOVT} + {3794155200 25200 1 NOVST} + {3812904000 21600 0 NOVT} + {3825604800 25200 1 NOVST} + {3844353600 21600 0 NOVT} + {3857659200 25200 1 NOVST} + {3875803200 21600 0 NOVT} + {3889108800 25200 1 NOVST} + {3907252800 21600 0 NOVT} + {3920558400 25200 1 NOVST} + {3939307200 21600 0 NOVT} + {3952008000 25200 1 NOVST} + {3970756800 21600 0 NOVT} + {3983457600 25200 1 NOVST} + {4002206400 21600 0 NOVT} + {4015512000 25200 1 NOVST} + {4033656000 21600 0 NOVT} + {4046961600 25200 1 NOVST} + {4065105600 21600 0 NOVT} + {4078411200 25200 1 NOVST} + {4096555200 21600 0 NOVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Omsk b/mingw/lib/tcl8.5/tzdata/Asia/Omsk new file mode 100644 index 00000000..21db9c92 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Omsk @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Omsk) { + {-9223372036854775808 17616 0 LMT} + {-1582088016 18000 0 OMST} + {-1247547600 21600 0 OMSMMTT} + {354909600 25200 1 OMSST} + {370717200 21600 0 OMST} + {386445600 25200 1 OMSST} + {402253200 21600 0 OMST} + {417981600 25200 1 OMSST} + {433789200 21600 0 OMST} + {449604000 25200 1 OMSST} + {465336000 21600 0 OMST} + {481060800 25200 1 OMSST} + {496785600 21600 0 OMST} + {512510400 25200 1 OMSST} + {528235200 21600 0 OMST} + {543960000 25200 1 OMSST} + {559684800 21600 0 OMST} + {575409600 25200 1 OMSST} + {591134400 21600 0 OMST} + {606859200 25200 1 OMSST} + {622584000 21600 0 OMST} + {638308800 25200 1 OMSST} + {654638400 21600 0 OMST} + {670363200 18000 0 OMSMMTT} + {670366800 21600 1 OMSST} + {686091600 18000 0 OMST} + {695768400 21600 0 OMSMMTT} + {701802000 25200 1 OMSST} + {717523200 21600 0 OMST} + {733262400 25200 1 OMSST} + {748987200 21600 0 OMST} + {764712000 25200 1 OMSST} + {780436800 21600 0 OMST} + {796161600 25200 1 OMSST} + {811886400 21600 0 OMST} + {828216000 25200 1 OMSST} + {846360000 21600 0 OMST} + {859665600 25200 1 OMSST} + {877809600 21600 0 OMST} + {891115200 25200 1 OMSST} + {909259200 21600 0 OMST} + {922564800 25200 1 OMSST} + {941313600 21600 0 OMST} + {954014400 25200 1 OMSST} + {972763200 21600 0 OMST} + {985464000 25200 1 OMSST} + {1004212800 21600 0 OMST} + {1017518400 25200 1 OMSST} + {1035662400 21600 0 OMST} + {1048968000 25200 1 OMSST} + {1067112000 21600 0 OMST} + {1080417600 25200 1 OMSST} + {1099166400 21600 0 OMST} + {1111867200 25200 1 OMSST} + {1130616000 21600 0 OMST} + {1143316800 25200 1 OMSST} + {1162065600 21600 0 OMST} + {1174766400 25200 1 OMSST} + {1193515200 21600 0 OMST} + {1206820800 25200 1 OMSST} + {1224964800 21600 0 OMST} + {1238270400 25200 1 OMSST} + {1256414400 21600 0 OMST} + {1269720000 25200 1 OMSST} + {1288468800 21600 0 OMST} + {1301169600 25200 1 OMSST} + {1319918400 21600 0 OMST} + {1332619200 25200 1 OMSST} + {1351368000 21600 0 OMST} + {1364673600 25200 1 OMSST} + {1382817600 21600 0 OMST} + {1396123200 25200 1 OMSST} + {1414267200 21600 0 OMST} + {1427572800 25200 1 OMSST} + {1445716800 21600 0 OMST} + {1459022400 25200 1 OMSST} + {1477771200 21600 0 OMST} + {1490472000 25200 1 OMSST} + {1509220800 21600 0 OMST} + {1521921600 25200 1 OMSST} + {1540670400 21600 0 OMST} + {1553976000 25200 1 OMSST} + {1572120000 21600 0 OMST} + {1585425600 25200 1 OMSST} + {1603569600 21600 0 OMST} + {1616875200 25200 1 OMSST} + {1635624000 21600 0 OMST} + {1648324800 25200 1 OMSST} + {1667073600 21600 0 OMST} + {1679774400 25200 1 OMSST} + {1698523200 21600 0 OMST} + {1711828800 25200 1 OMSST} + {1729972800 21600 0 OMST} + {1743278400 25200 1 OMSST} + {1761422400 21600 0 OMST} + {1774728000 25200 1 OMSST} + {1792872000 21600 0 OMST} + {1806177600 25200 1 OMSST} + {1824926400 21600 0 OMST} + {1837627200 25200 1 OMSST} + {1856376000 21600 0 OMST} + {1869076800 25200 1 OMSST} + {1887825600 21600 0 OMST} + {1901131200 25200 1 OMSST} + {1919275200 21600 0 OMST} + {1932580800 25200 1 OMSST} + {1950724800 21600 0 OMST} + {1964030400 25200 1 OMSST} + {1982779200 21600 0 OMST} + {1995480000 25200 1 OMSST} + {2014228800 21600 0 OMST} + {2026929600 25200 1 OMSST} + {2045678400 21600 0 OMST} + {2058379200 25200 1 OMSST} + {2077128000 21600 0 OMST} + {2090433600 25200 1 OMSST} + {2108577600 21600 0 OMST} + {2121883200 25200 1 OMSST} + {2140027200 21600 0 OMST} + {2153332800 25200 1 OMSST} + {2172081600 21600 0 OMST} + {2184782400 25200 1 OMSST} + {2203531200 21600 0 OMST} + {2216232000 25200 1 OMSST} + {2234980800 21600 0 OMST} + {2248286400 25200 1 OMSST} + {2266430400 21600 0 OMST} + {2279736000 25200 1 OMSST} + {2297880000 21600 0 OMST} + {2311185600 25200 1 OMSST} + {2329329600 21600 0 OMST} + {2342635200 25200 1 OMSST} + {2361384000 21600 0 OMST} + {2374084800 25200 1 OMSST} + {2392833600 21600 0 OMST} + {2405534400 25200 1 OMSST} + {2424283200 21600 0 OMST} + {2437588800 25200 1 OMSST} + {2455732800 21600 0 OMST} + {2469038400 25200 1 OMSST} + {2487182400 21600 0 OMST} + {2500488000 25200 1 OMSST} + {2519236800 21600 0 OMST} + {2531937600 25200 1 OMSST} + {2550686400 21600 0 OMST} + {2563387200 25200 1 OMSST} + {2582136000 21600 0 OMST} + {2595441600 25200 1 OMSST} + {2613585600 21600 0 OMST} + {2626891200 25200 1 OMSST} + {2645035200 21600 0 OMST} + {2658340800 25200 1 OMSST} + {2676484800 21600 0 OMST} + {2689790400 25200 1 OMSST} + {2708539200 21600 0 OMST} + {2721240000 25200 1 OMSST} + {2739988800 21600 0 OMST} + {2752689600 25200 1 OMSST} + {2771438400 21600 0 OMST} + {2784744000 25200 1 OMSST} + {2802888000 21600 0 OMST} + {2816193600 25200 1 OMSST} + {2834337600 21600 0 OMST} + {2847643200 25200 1 OMSST} + {2866392000 21600 0 OMST} + {2879092800 25200 1 OMSST} + {2897841600 21600 0 OMST} + {2910542400 25200 1 OMSST} + {2929291200 21600 0 OMST} + {2941992000 25200 1 OMSST} + {2960740800 21600 0 OMST} + {2974046400 25200 1 OMSST} + {2992190400 21600 0 OMST} + {3005496000 25200 1 OMSST} + {3023640000 21600 0 OMST} + {3036945600 25200 1 OMSST} + {3055694400 21600 0 OMST} + {3068395200 25200 1 OMSST} + {3087144000 21600 0 OMST} + {3099844800 25200 1 OMSST} + {3118593600 21600 0 OMST} + {3131899200 25200 1 OMSST} + {3150043200 21600 0 OMST} + {3163348800 25200 1 OMSST} + {3181492800 21600 0 OMST} + {3194798400 25200 1 OMSST} + {3212942400 21600 0 OMST} + {3226248000 25200 1 OMSST} + {3244996800 21600 0 OMST} + {3257697600 25200 1 OMSST} + {3276446400 21600 0 OMST} + {3289147200 25200 1 OMSST} + {3307896000 21600 0 OMST} + {3321201600 25200 1 OMSST} + {3339345600 21600 0 OMST} + {3352651200 25200 1 OMSST} + {3370795200 21600 0 OMST} + {3384100800 25200 1 OMSST} + {3402849600 21600 0 OMST} + {3415550400 25200 1 OMSST} + {3434299200 21600 0 OMST} + {3447000000 25200 1 OMSST} + {3465748800 21600 0 OMST} + {3479054400 25200 1 OMSST} + {3497198400 21600 0 OMST} + {3510504000 25200 1 OMSST} + {3528648000 21600 0 OMST} + {3541953600 25200 1 OMSST} + {3560097600 21600 0 OMST} + {3573403200 25200 1 OMSST} + {3592152000 21600 0 OMST} + {3604852800 25200 1 OMSST} + {3623601600 21600 0 OMST} + {3636302400 25200 1 OMSST} + {3655051200 21600 0 OMST} + {3668356800 25200 1 OMSST} + {3686500800 21600 0 OMST} + {3699806400 25200 1 OMSST} + {3717950400 21600 0 OMST} + {3731256000 25200 1 OMSST} + {3750004800 21600 0 OMST} + {3762705600 25200 1 OMSST} + {3781454400 21600 0 OMST} + {3794155200 25200 1 OMSST} + {3812904000 21600 0 OMST} + {3825604800 25200 1 OMSST} + {3844353600 21600 0 OMST} + {3857659200 25200 1 OMSST} + {3875803200 21600 0 OMST} + {3889108800 25200 1 OMSST} + {3907252800 21600 0 OMST} + {3920558400 25200 1 OMSST} + {3939307200 21600 0 OMST} + {3952008000 25200 1 OMSST} + {3970756800 21600 0 OMST} + {3983457600 25200 1 OMSST} + {4002206400 21600 0 OMST} + {4015512000 25200 1 OMSST} + {4033656000 21600 0 OMST} + {4046961600 25200 1 OMSST} + {4065105600 21600 0 OMST} + {4078411200 25200 1 OMSST} + {4096555200 21600 0 OMST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Oral b/mingw/lib/tcl8.5/tzdata/Asia/Oral new file mode 100644 index 00000000..88b9a294 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Oral @@ -0,0 +1,58 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Oral) { + {-9223372036854775808 12324 0 LMT} + {-1441164324 14400 0 URAT} + {-1247544000 18000 0 URAT} + {354913200 21600 1 URAST} + {370720800 21600 0 URAT} + {386445600 18000 0 URAT} + {386449200 21600 1 URAST} + {402256800 18000 0 URAT} + {417985200 21600 1 URAST} + {433792800 18000 0 URAT} + {449607600 21600 1 URAST} + {465339600 18000 0 URAT} + {481064400 21600 1 URAST} + {496789200 18000 0 URAT} + {512514000 21600 1 URAST} + {528238800 18000 0 URAT} + {543963600 21600 1 URAST} + {559688400 18000 0 URAT} + {575413200 21600 1 URAST} + {591138000 18000 0 URAT} + {606862800 14400 0 URAT} + {606866400 18000 1 URAST} + {622591200 14400 0 URAT} + {638316000 18000 1 URAST} + {654645600 14400 0 URAT} + {662673600 14400 0 URAT} + {692827200 14400 0 ORAT} + {701809200 18000 1 ORAST} + {717530400 14400 0 ORAT} + {733269600 18000 1 ORAST} + {748994400 14400 0 ORAT} + {764719200 18000 1 ORAST} + {780444000 14400 0 ORAT} + {796168800 18000 1 ORAST} + {811893600 14400 0 ORAT} + {828223200 18000 1 ORAST} + {846367200 14400 0 ORAT} + {859672800 18000 1 ORAST} + {877816800 14400 0 ORAT} + {891122400 18000 1 ORAST} + {909266400 14400 0 ORAT} + {922572000 18000 1 ORAST} + {941320800 14400 0 ORAT} + {954021600 18000 1 ORAST} + {972770400 14400 0 ORAT} + {985471200 18000 1 ORAST} + {1004220000 14400 0 ORAT} + {1017525600 18000 1 ORAST} + {1035669600 14400 0 ORAT} + {1048975200 18000 1 ORAST} + {1067119200 14400 0 ORAT} + {1080424800 18000 1 ORAST} + {1099173600 14400 0 ORAT} + {1110830400 18000 0 ORAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh b/mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh new file mode 100644 index 00000000..4f284207 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh @@ -0,0 +1,9 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Pontianak b/mingw/lib/tcl8.5/tzdata/Asia/Pontianak new file mode 100644 index 00000000..f3567ddf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Pontianak @@ -0,0 +1,13 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Pontianak) { + {-9223372036854775808 26240 0 LMT} + {-1946186240 26240 0 PMT} + {-1172906240 27000 0 WIT} + {-881220600 32400 0 JST} + {-766054800 27000 0 WIT} + {-683883000 28800 0 WIT} + {-620812800 27000 0 WIT} + {-189415800 28800 0 CIT} + {567964800 25200 0 WIT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Pyongyang b/mingw/lib/tcl8.5/tzdata/Asia/Pyongyang new file mode 100644 index 00000000..21c9a685 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Pyongyang @@ -0,0 +1,11 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Qatar b/mingw/lib/tcl8.5/tzdata/Asia/Qatar new file mode 100644 index 00000000..bfb4eb41 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Qatar @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Qatar) { + {-9223372036854775808 12368 0 LMT} + {-1577935568 14400 0 GST} + {76190400 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda b/mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda new file mode 100644 index 00000000..16da5748 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda @@ -0,0 +1,58 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Qyzylorda) { + {-9223372036854775808 15712 0 LMT} + {-1441167712 14400 0 KIZT} + {-1247544000 18000 0 KIZT} + {354913200 21600 1 KIZST} + {370720800 21600 0 KIZT} + {386445600 18000 0 KIZT} + {386449200 21600 1 KIZST} + {402256800 18000 0 KIZT} + {417985200 21600 1 KIZST} + {433792800 18000 0 KIZT} + {449607600 21600 1 KIZST} + {465339600 18000 0 KIZT} + {481064400 21600 1 KIZST} + {496789200 18000 0 KIZT} + {512514000 21600 1 KIZST} + {528238800 18000 0 KIZT} + {543963600 21600 1 KIZST} + {559688400 18000 0 KIZT} + {575413200 21600 1 KIZST} + {591138000 18000 0 KIZT} + {606862800 21600 1 KIZST} + {622587600 18000 0 KIZT} + {638312400 21600 1 KIZST} + {654642000 18000 0 KIZT} + {662670000 18000 0 KIZT} + {692823600 18000 0 QYZT} + {695768400 21600 0 QYZT} + {701802000 25200 1 QYZST} + {717523200 21600 0 QYZT} + {733262400 25200 1 QYZST} + {748987200 21600 0 QYZT} + {764712000 25200 1 QYZST} + {780436800 21600 0 QYZT} + {796161600 25200 1 QYZST} + {811886400 21600 0 QYZT} + {828216000 25200 1 QYZST} + {846360000 21600 0 QYZT} + {859665600 25200 1 QYZST} + {877809600 21600 0 QYZT} + {891115200 25200 1 QYZST} + {909259200 21600 0 QYZT} + {922564800 25200 1 QYZST} + {941313600 21600 0 QYZT} + {954014400 25200 1 QYZST} + {972763200 21600 0 QYZT} + {985464000 25200 1 QYZST} + {1004212800 21600 0 QYZT} + {1017518400 25200 1 QYZST} + {1035662400 21600 0 QYZT} + {1048968000 25200 1 QYZST} + {1067112000 21600 0 QYZT} + {1080417600 25200 1 QYZST} + {1099166400 21600 0 QYZT} + {1110823200 21600 0 QYZT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Rangoon b/mingw/lib/tcl8.5/tzdata/Asia/Rangoon new file mode 100644 index 00000000..2b8c4fab --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Rangoon @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Rangoon) { + {-9223372036854775808 23080 0 LMT} + {-2840163880 23076 0 RMT} + {-1577946276 23400 0 BURT} + {-873268200 32400 0 JST} + {-778410000 23400 0 MMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Riyadh b/mingw/lib/tcl8.5/tzdata/Asia/Riyadh new file mode 100644 index 00000000..0ef28a9f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Riyadh @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Riyadh) { + {-9223372036854775808 11212 0 LMT} + {-631163212 10800 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Saigon b/mingw/lib/tcl8.5/tzdata/Asia/Saigon new file mode 100644 index 00000000..f867f0bb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Saigon @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Saigon) { + {-9223372036854775808 25600 0 LMT} + {-2005974400 25580 0 SMT} + {-1855983920 25200 0 ICT} + {-1819954800 28800 0 ICT} + {-1220428800 25200 0 ICT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Sakhalin b/mingw/lib/tcl8.5/tzdata/Asia/Sakhalin new file mode 100644 index 00000000..31395ab4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Sakhalin @@ -0,0 +1,249 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Sakhalin) { + {-9223372036854775808 34248 0 LMT} + {-2031039048 32400 0 CJT} + {-1009875600 32400 0 JST} + {-768560400 39600 0 SAKMMTT} + {354891600 43200 1 SAKST} + {370699200 39600 0 SAKT} + {386427600 43200 1 SAKST} + {402235200 39600 0 SAKT} + {417963600 43200 1 SAKST} + {433771200 39600 0 SAKT} + {449586000 43200 1 SAKST} + {465318000 39600 0 SAKT} + {481042800 43200 1 SAKST} + {496767600 39600 0 SAKT} + {512492400 43200 1 SAKST} + {528217200 39600 0 SAKT} + {543942000 43200 1 SAKST} + {559666800 39600 0 SAKT} + {575391600 43200 1 SAKST} + {591116400 39600 0 SAKT} + {606841200 43200 1 SAKST} + {622566000 39600 0 SAKT} + {638290800 43200 1 SAKST} + {654620400 39600 0 SAKT} + {670345200 36000 0 SAKMMTT} + {670348800 39600 1 SAKST} + {686073600 36000 0 SAKT} + {695750400 39600 0 SAKMMTT} + {701784000 43200 1 SAKST} + {717505200 39600 0 SAKT} + {733244400 43200 1 SAKST} + {748969200 39600 0 SAKT} + {764694000 43200 1 SAKST} + {780418800 39600 0 SAKT} + {796143600 43200 1 SAKST} + {811868400 39600 0 SAKT} + {828198000 43200 1 SAKST} + {846342000 39600 0 SAKT} + {859647600 36000 0 SAKMMTT} + {859651200 39600 1 SAKST} + {877795200 36000 0 SAKT} + {891100800 39600 1 SAKST} + {909244800 36000 0 SAKT} + {922550400 39600 1 SAKST} + {941299200 36000 0 SAKT} + {954000000 39600 1 SAKST} + {972748800 36000 0 SAKT} + {985449600 39600 1 SAKST} + {1004198400 36000 0 SAKT} + {1017504000 39600 1 SAKST} + {1035648000 36000 0 SAKT} + {1048953600 39600 1 SAKST} + {1067097600 36000 0 SAKT} + {1080403200 39600 1 SAKST} + {1099152000 36000 0 SAKT} + {1111852800 39600 1 SAKST} + {1130601600 36000 0 SAKT} + {1143302400 39600 1 SAKST} + {1162051200 36000 0 SAKT} + {1174752000 39600 1 SAKST} + {1193500800 36000 0 SAKT} + {1206806400 39600 1 SAKST} + {1224950400 36000 0 SAKT} + {1238256000 39600 1 SAKST} + {1256400000 36000 0 SAKT} + {1269705600 39600 1 SAKST} + {1288454400 36000 0 SAKT} + {1301155200 39600 1 SAKST} + {1319904000 36000 0 SAKT} + {1332604800 39600 1 SAKST} + {1351353600 36000 0 SAKT} + {1364659200 39600 1 SAKST} + {1382803200 36000 0 SAKT} + {1396108800 39600 1 SAKST} + {1414252800 36000 0 SAKT} + {1427558400 39600 1 SAKST} + {1445702400 36000 0 SAKT} + {1459008000 39600 1 SAKST} + {1477756800 36000 0 SAKT} + {1490457600 39600 1 SAKST} + {1509206400 36000 0 SAKT} + {1521907200 39600 1 SAKST} + {1540656000 36000 0 SAKT} + {1553961600 39600 1 SAKST} + {1572105600 36000 0 SAKT} + {1585411200 39600 1 SAKST} + {1603555200 36000 0 SAKT} + {1616860800 39600 1 SAKST} + {1635609600 36000 0 SAKT} + {1648310400 39600 1 SAKST} + {1667059200 36000 0 SAKT} + {1679760000 39600 1 SAKST} + {1698508800 36000 0 SAKT} + {1711814400 39600 1 SAKST} + {1729958400 36000 0 SAKT} + {1743264000 39600 1 SAKST} + {1761408000 36000 0 SAKT} + {1774713600 39600 1 SAKST} + {1792857600 36000 0 SAKT} + {1806163200 39600 1 SAKST} + {1824912000 36000 0 SAKT} + {1837612800 39600 1 SAKST} + {1856361600 36000 0 SAKT} + {1869062400 39600 1 SAKST} + {1887811200 36000 0 SAKT} + {1901116800 39600 1 SAKST} + {1919260800 36000 0 SAKT} + {1932566400 39600 1 SAKST} + {1950710400 36000 0 SAKT} + {1964016000 39600 1 SAKST} + {1982764800 36000 0 SAKT} + {1995465600 39600 1 SAKST} + {2014214400 36000 0 SAKT} + {2026915200 39600 1 SAKST} + {2045664000 36000 0 SAKT} + {2058364800 39600 1 SAKST} + {2077113600 36000 0 SAKT} + {2090419200 39600 1 SAKST} + {2108563200 36000 0 SAKT} + {2121868800 39600 1 SAKST} + {2140012800 36000 0 SAKT} + {2153318400 39600 1 SAKST} + {2172067200 36000 0 SAKT} + {2184768000 39600 1 SAKST} + {2203516800 36000 0 SAKT} + {2216217600 39600 1 SAKST} + {2234966400 36000 0 SAKT} + {2248272000 39600 1 SAKST} + {2266416000 36000 0 SAKT} + {2279721600 39600 1 SAKST} + {2297865600 36000 0 SAKT} + {2311171200 39600 1 SAKST} + {2329315200 36000 0 SAKT} + {2342620800 39600 1 SAKST} + {2361369600 36000 0 SAKT} + {2374070400 39600 1 SAKST} + {2392819200 36000 0 SAKT} + {2405520000 39600 1 SAKST} + {2424268800 36000 0 SAKT} + {2437574400 39600 1 SAKST} + {2455718400 36000 0 SAKT} + {2469024000 39600 1 SAKST} + {2487168000 36000 0 SAKT} + {2500473600 39600 1 SAKST} + {2519222400 36000 0 SAKT} + {2531923200 39600 1 SAKST} + {2550672000 36000 0 SAKT} + {2563372800 39600 1 SAKST} + {2582121600 36000 0 SAKT} + {2595427200 39600 1 SAKST} + {2613571200 36000 0 SAKT} + {2626876800 39600 1 SAKST} + {2645020800 36000 0 SAKT} + {2658326400 39600 1 SAKST} + {2676470400 36000 0 SAKT} + {2689776000 39600 1 SAKST} + {2708524800 36000 0 SAKT} + {2721225600 39600 1 SAKST} + {2739974400 36000 0 SAKT} + {2752675200 39600 1 SAKST} + {2771424000 36000 0 SAKT} + {2784729600 39600 1 SAKST} + {2802873600 36000 0 SAKT} + {2816179200 39600 1 SAKST} + {2834323200 36000 0 SAKT} + {2847628800 39600 1 SAKST} + {2866377600 36000 0 SAKT} + {2879078400 39600 1 SAKST} + {2897827200 36000 0 SAKT} + {2910528000 39600 1 SAKST} + {2929276800 36000 0 SAKT} + {2941977600 39600 1 SAKST} + {2960726400 36000 0 SAKT} + {2974032000 39600 1 SAKST} + {2992176000 36000 0 SAKT} + {3005481600 39600 1 SAKST} + {3023625600 36000 0 SAKT} + {3036931200 39600 1 SAKST} + {3055680000 36000 0 SAKT} + {3068380800 39600 1 SAKST} + {3087129600 36000 0 SAKT} + {3099830400 39600 1 SAKST} + {3118579200 36000 0 SAKT} + {3131884800 39600 1 SAKST} + {3150028800 36000 0 SAKT} + {3163334400 39600 1 SAKST} + {3181478400 36000 0 SAKT} + {3194784000 39600 1 SAKST} + {3212928000 36000 0 SAKT} + {3226233600 39600 1 SAKST} + {3244982400 36000 0 SAKT} + {3257683200 39600 1 SAKST} + {3276432000 36000 0 SAKT} + {3289132800 39600 1 SAKST} + {3307881600 36000 0 SAKT} + {3321187200 39600 1 SAKST} + {3339331200 36000 0 SAKT} + {3352636800 39600 1 SAKST} + {3370780800 36000 0 SAKT} + {3384086400 39600 1 SAKST} + {3402835200 36000 0 SAKT} + {3415536000 39600 1 SAKST} + {3434284800 36000 0 SAKT} + {3446985600 39600 1 SAKST} + {3465734400 36000 0 SAKT} + {3479040000 39600 1 SAKST} + {3497184000 36000 0 SAKT} + {3510489600 39600 1 SAKST} + {3528633600 36000 0 SAKT} + {3541939200 39600 1 SAKST} + {3560083200 36000 0 SAKT} + {3573388800 39600 1 SAKST} + {3592137600 36000 0 SAKT} + {3604838400 39600 1 SAKST} + {3623587200 36000 0 SAKT} + {3636288000 39600 1 SAKST} + {3655036800 36000 0 SAKT} + {3668342400 39600 1 SAKST} + {3686486400 36000 0 SAKT} + {3699792000 39600 1 SAKST} + {3717936000 36000 0 SAKT} + {3731241600 39600 1 SAKST} + {3749990400 36000 0 SAKT} + {3762691200 39600 1 SAKST} + {3781440000 36000 0 SAKT} + {3794140800 39600 1 SAKST} + {3812889600 36000 0 SAKT} + {3825590400 39600 1 SAKST} + {3844339200 36000 0 SAKT} + {3857644800 39600 1 SAKST} + {3875788800 36000 0 SAKT} + {3889094400 39600 1 SAKST} + {3907238400 36000 0 SAKT} + {3920544000 39600 1 SAKST} + {3939292800 36000 0 SAKT} + {3951993600 39600 1 SAKST} + {3970742400 36000 0 SAKT} + {3983443200 39600 1 SAKST} + {4002192000 36000 0 SAKT} + {4015497600 39600 1 SAKST} + {4033641600 36000 0 SAKT} + {4046947200 39600 1 SAKST} + {4065091200 36000 0 SAKT} + {4078396800 39600 1 SAKST} + {4096540800 36000 0 SAKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Samarkand b/mingw/lib/tcl8.5/tzdata/Asia/Samarkand new file mode 100644 index 00000000..6a1be11e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Samarkand @@ -0,0 +1,32 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Samarkand) { + {-9223372036854775808 16032 0 LMT} + {-1441168032 14400 0 SAMT} + {-1247544000 18000 0 SAMT} + {354913200 21600 1 SAMST} + {370720800 21600 0 TAST} + {386445600 18000 0 SAMT} + {386449200 21600 1 SAMST} + {402256800 18000 0 SAMT} + {417985200 21600 1 SAMST} + {433792800 18000 0 SAMT} + {449607600 21600 1 SAMST} + {465339600 18000 0 SAMT} + {481064400 21600 1 SAMST} + {496789200 18000 0 SAMT} + {512514000 21600 1 SAMST} + {528238800 18000 0 SAMT} + {543963600 21600 1 SAMST} + {559688400 18000 0 SAMT} + {575413200 21600 1 SAMST} + {591138000 18000 0 SAMT} + {606862800 21600 1 SAMST} + {622587600 18000 0 SAMT} + {638312400 21600 1 SAMST} + {654642000 18000 0 SAMT} + {670366800 21600 1 SAMST} + {683665200 21600 0 UZST} + {686091600 18000 0 UZT} + {694206000 18000 0 UZT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Seoul b/mingw/lib/tcl8.5/tzdata/Asia/Seoul new file mode 100644 index 00000000..9c83e302 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Seoul @@ -0,0 +1,18 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Shanghai b/mingw/lib/tcl8.5/tzdata/Asia/Shanghai new file mode 100644 index 00000000..aa7dc588 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Shanghai @@ -0,0 +1,23 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Shanghai) { + {-9223372036854775808 29152 0 LMT} + {-1325491552 28800 0 CST} + {-933494400 32400 1 CDT} + {-923130000 28800 0 CST} + {-908784000 32400 1 CDT} + {-891594000 28800 0 CST} + {-662716800 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Singapore b/mingw/lib/tcl8.5/tzdata/Asia/Singapore new file mode 100644 index 00000000..e2f226ee --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Singapore @@ -0,0 +1,14 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Singapore) { + {-9223372036854775808 24925 0 LMT} + {-2177477725 24925 0 SMT} + {-2038200925 25200 0 MALT} + {-1167634800 26400 1 MALST} + {-1073028000 26400 0 MALT} + {-894180000 27000 0 MALT} + {-879665400 32400 0 JST} + {-767005200 27000 0 MALT} + {-138785400 27000 0 SGT} + {378664200 28800 0 SGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Taipei b/mingw/lib/tcl8.5/tzdata/Asia/Taipei new file mode 100644 index 00000000..6366b348 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Taipei @@ -0,0 +1,46 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Taipei) { + {-9223372036854775808 29160 0 LMT} + {-2335248360 28800 0 CST} + {-778579200 32400 1 CDT} + {-765363600 28800 0 CST} + {-747043200 32400 1 CDT} + {-733827600 28800 0 CST} + {-715507200 32400 1 CDT} + {-702291600 28800 0 CST} + {-683884800 32400 1 CDT} + {-670669200 28800 0 CST} + {-652348800 32400 1 CDT} + {-639133200 28800 0 CST} + {-620812800 32400 1 CDT} + {-607597200 28800 0 CST} + {-589276800 32400 1 CDT} + {-576061200 28800 0 CST} + {-562924800 32400 1 CDT} + {-541760400 28800 0 CST} + {-528710400 32400 1 CDT} + {-510224400 28800 0 CST} + {-497174400 32400 1 CDT} + {-478688400 28800 0 CST} + {-465638400 32400 1 CDT} + {-449830800 28800 0 CST} + {-434016000 32400 1 CDT} + {-418208400 28800 0 CST} + {-402480000 32400 1 CDT} + {-386672400 28800 0 CST} + {-370944000 32400 1 CDT} + {-355136400 28800 0 CST} + {-339408000 32400 1 CDT} + {-323600400 28800 0 CST} + {-302515200 32400 1 CDT} + {-291978000 28800 0 CST} + {-270979200 32400 1 CDT} + {-260442000 28800 0 CST} + {133977600 32400 1 CDT} + {149785200 28800 0 CST} + {165513600 32400 1 CDT} + {181321200 28800 0 CST} + {331142400 32400 1 CDT} + {339087600 28800 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Tashkent b/mingw/lib/tcl8.5/tzdata/Asia/Tashkent new file mode 100644 index 00000000..fcee7553 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Tashkent @@ -0,0 +1,32 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Tashkent) { + {-9223372036854775808 16632 0 LMT} + {-1441168632 18000 0 TAST} + {-1247547600 21600 0 TAST} + {354909600 25200 1 TASST} + {370717200 21600 0 TAST} + {386445600 25200 1 TASST} + {402253200 21600 0 TAST} + {417981600 25200 1 TASST} + {433789200 21600 0 TAST} + {449604000 25200 1 TASST} + {465336000 21600 0 TAST} + {481060800 25200 1 TASST} + {496785600 21600 0 TAST} + {512510400 25200 1 TASST} + {528235200 21600 0 TAST} + {543960000 25200 1 TASST} + {559684800 21600 0 TAST} + {575409600 25200 1 TASST} + {591134400 21600 0 TAST} + {606859200 25200 1 TASST} + {622584000 21600 0 TAST} + {638308800 25200 1 TASST} + {654638400 21600 0 TAST} + {670363200 18000 0 TAST} + {670366800 21600 1 TASST} + {683665200 21600 0 UZST} + {686091600 18000 0 UZT} + {694206000 18000 0 UZT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Tbilisi b/mingw/lib/tcl8.5/tzdata/Asia/Tbilisi new file mode 100644 index 00000000..a7169179 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Tbilisi @@ -0,0 +1,60 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Tbilisi) { + {-9223372036854775808 10756 0 LMT} + {-2840151556 10756 0 TBMT} + {-1441162756 10800 0 TBIT} + {-405140400 14400 0 TBIT} + {354916800 18000 1 TBIST} + {370724400 14400 0 TBIT} + {386452800 18000 1 TBIST} + {402260400 14400 0 TBIT} + {417988800 18000 1 TBIST} + {433796400 14400 0 TBIT} + {449611200 18000 1 TBIST} + {465343200 14400 0 TBIT} + {481068000 18000 1 TBIST} + {496792800 14400 0 TBIT} + {512517600 18000 1 TBIST} + {528242400 14400 0 TBIT} + {543967200 18000 1 TBIST} + {559692000 14400 0 TBIT} + {575416800 18000 1 TBIST} + {591141600 14400 0 TBIT} + {606866400 18000 1 TBIST} + {622591200 14400 0 TBIT} + {638316000 18000 1 TBIST} + {654645600 14400 0 TBIT} + {670370400 14400 1 TBIST} + {671140800 14400 0 GEST} + {686098800 10800 0 GET} + {694213200 10800 0 GET} + {701816400 14400 1 GEST} + {717537600 10800 0 GET} + {733266000 14400 1 GEST} + {748987200 10800 0 GET} + {764715600 14400 1 GEST} + {780440400 14400 0 GET} + {796161600 18000 1 GEST} + {811882800 14400 0 GET} + {828216000 18000 1 GEST} + {846360000 18000 1 GEST} + {859662000 18000 0 GEST} + {877806000 14400 0 GET} + {891115200 18000 1 GEST} + {909255600 14400 0 GET} + {922564800 18000 1 GEST} + {941310000 14400 0 GET} + {954014400 18000 1 GEST} + {972759600 14400 0 GET} + {985464000 18000 1 GEST} + {1004209200 14400 0 GET} + {1017518400 18000 1 GEST} + {1035658800 14400 0 GET} + {1048968000 18000 1 GEST} + {1067108400 14400 0 GET} + {1080417600 18000 1 GEST} + {1088280000 14400 0 GEST} + {1099177200 10800 0 GET} + {1111878000 14400 0 GET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Tehran b/mingw/lib/tcl8.5/tzdata/Asia/Tehran new file mode 100644 index 00000000..9985844e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Tehran @@ -0,0 +1,45 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Tehran) { + {-9223372036854775808 12344 0 LMT} + {-1704165944 12344 0 TMT} + {-757394744 12600 0 IRST} + {247177800 14400 0 IRST} + {259272000 18000 1 IRDT} + {277758000 14400 0 IRST} + {283982400 12600 0 IRST} + {290809800 16200 1 IRDT} + {306531000 12600 0 IRST} + {322432200 16200 1 IRDT} + {338499000 12600 0 IRST} + {673216200 16200 1 IRDT} + {685481400 12600 0 IRST} + {701209800 16200 1 IRDT} + {717103800 12600 0 IRST} + {732745800 16200 1 IRDT} + {748639800 12600 0 IRST} + {764281800 16200 1 IRDT} + {780175800 12600 0 IRST} + {795817800 16200 1 IRDT} + {811711800 12600 0 IRST} + {827353800 16200 1 IRDT} + {843247800 12600 0 IRST} + {858976200 16200 1 IRDT} + {874870200 12600 0 IRST} + {890512200 16200 1 IRDT} + {906406200 12600 0 IRST} + {922048200 16200 1 IRDT} + {937942200 12600 0 IRST} + {953584200 16200 1 IRDT} + {969478200 12600 0 IRST} + {985206600 16200 1 IRDT} + {1001100600 12600 0 IRST} + {1016742600 16200 1 IRDT} + {1032636600 12600 0 IRST} + {1048278600 16200 1 IRDT} + {1064172600 12600 0 IRST} + {1079814600 16200 1 IRDT} + {1095708600 12600 0 IRST} + {1111437000 16200 1 IRDT} + {1127331000 12600 0 IRST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv b/mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv new file mode 100644 index 00000000..3e7278d0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Jerusalem)]} { + LoadTimeZoneFile Asia/Jerusalem +} +set TZData(:Asia/Tel_Aviv) $TZData(:Asia/Jerusalem) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Thimbu b/mingw/lib/tcl8.5/tzdata/Asia/Thimbu new file mode 100644 index 00000000..94b0846c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Thimbu @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Thimphu)]} { + LoadTimeZoneFile Asia/Thimphu +} +set TZData(:Asia/Thimbu) $TZData(:Asia/Thimphu) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Thimphu b/mingw/lib/tcl8.5/tzdata/Asia/Thimphu new file mode 100644 index 00000000..8c981de8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Thimphu @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Thimphu) { + {-9223372036854775808 21516 0 LMT} + {-706341516 19800 0 IST} + {560025000 21600 0 BTT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Tokyo b/mingw/lib/tcl8.5/tzdata/Asia/Tokyo new file mode 100644 index 00000000..8d1ce11b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Tokyo @@ -0,0 +1,16 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Tokyo) { + {-9223372036854775808 33539 0 LMT} + {-2587712400 32400 0 JST} + {-2335251600 32400 0 CJT} + {-1009875600 32400 0 JST} + {-683794800 36000 1 JDT} + {-672393600 32400 0 JST} + {-654764400 36000 1 JDT} + {-640944000 32400 0 JST} + {-620290800 36000 1 JDT} + {-609494400 32400 0 JST} + {-588841200 36000 1 JDT} + {-578044800 32400 0 JST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang b/mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang new file mode 100644 index 00000000..abe142e7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Makassar)]} { + LoadTimeZoneFile Asia/Makassar +} +set TZData(:Asia/Ujung_Pandang) $TZData(:Asia/Makassar) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar b/mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar new file mode 100644 index 00000000..fef76ec2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar @@ -0,0 +1,51 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Ulaanbaatar) { + {-9223372036854775808 25652 0 LMT} + {-2032931252 25200 0 ULAT} + {252435600 28800 0 ULAT} + {417974400 32400 1 ULAST} + {433782000 28800 0 ULAT} + {449596800 32400 1 ULAST} + {465318000 28800 0 ULAT} + {481046400 32400 1 ULAST} + {496767600 28800 0 ULAT} + {512496000 32400 1 ULAST} + {528217200 28800 0 ULAT} + {543945600 32400 1 ULAST} + {559666800 28800 0 ULAT} + {575395200 32400 1 ULAST} + {591116400 28800 0 ULAT} + {606844800 32400 1 ULAST} + {622566000 28800 0 ULAT} + {638294400 32400 1 ULAST} + {654620400 28800 0 ULAT} + {670348800 32400 1 ULAST} + {686070000 28800 0 ULAT} + {701798400 32400 1 ULAST} + {717519600 28800 0 ULAT} + {733248000 32400 1 ULAST} + {748969200 28800 0 ULAT} + {764697600 32400 1 ULAST} + {780418800 28800 0 ULAT} + {796147200 32400 1 ULAST} + {811868400 28800 0 ULAT} + {828201600 32400 1 ULAST} + {843922800 28800 0 ULAT} + {859651200 32400 1 ULAST} + {875372400 28800 0 ULAT} + {891100800 32400 1 ULAST} + {906822000 28800 0 ULAT} + {988394400 32400 1 ULAST} + {1001696400 28800 0 ULAT} + {1017424800 32400 1 ULAST} + {1033146000 28800 0 ULAT} + {1048874400 32400 1 ULAST} + {1064595600 28800 0 ULAT} + {1080324000 32400 1 ULAST} + {1096045200 28800 0 ULAT} + {1111773600 32400 1 ULAST} + {1127494800 28800 0 ULAT} + {1143223200 32400 1 ULAST} + {1159549200 28800 0 ULAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator b/mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator new file mode 100644 index 00000000..3215ee79 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Ulaanbaatar)]} { + LoadTimeZoneFile Asia/Ulaanbaatar +} +set TZData(:Asia/Ulan_Bator) $TZData(:Asia/Ulaanbaatar) diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Urumqi b/mingw/lib/tcl8.5/tzdata/Asia/Urumqi new file mode 100644 index 00000000..93fc9098 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Urumqi @@ -0,0 +1,19 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Vientiane b/mingw/lib/tcl8.5/tzdata/Asia/Vientiane new file mode 100644 index 00000000..18ade4d6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Vientiane @@ -0,0 +1,9 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Vladivostok b/mingw/lib/tcl8.5/tzdata/Asia/Vladivostok new file mode 100644 index 00000000..29e8f627 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Vladivostok @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Vladivostok) { + {-9223372036854775808 31664 0 LMT} + {-1487321264 32400 0 VLAT} + {-1247562000 36000 0 VLAMMTT} + {354895200 39600 1 VLAST} + {370702800 36000 0 VLAT} + {386431200 39600 1 VLAST} + {402238800 36000 0 VLAT} + {417967200 39600 1 VLAST} + {433774800 36000 0 VLAT} + {449589600 39600 1 VLAST} + {465321600 36000 0 VLAT} + {481046400 39600 1 VLAST} + {496771200 36000 0 VLAT} + {512496000 39600 1 VLAST} + {528220800 36000 0 VLAT} + {543945600 39600 1 VLAST} + {559670400 36000 0 VLAT} + {575395200 39600 1 VLAST} + {591120000 36000 0 VLAT} + {606844800 39600 1 VLAST} + {622569600 36000 0 VLAT} + {638294400 39600 1 VLAST} + {654624000 36000 0 VLAT} + {670348800 32400 0 VLAMMTST} + {670352400 36000 1 VLASST} + {686077200 32400 0 VLAST} + {695754000 36000 0 VLAMMTT} + {701787600 39600 1 VLAST} + {717508800 36000 0 VLAT} + {733248000 39600 1 VLAST} + {748972800 36000 0 VLAT} + {764697600 39600 1 VLAST} + {780422400 36000 0 VLAT} + {796147200 39600 1 VLAST} + {811872000 36000 0 VLAT} + {828201600 39600 1 VLAST} + {846345600 36000 0 VLAT} + {859651200 39600 1 VLAST} + {877795200 36000 0 VLAT} + {891100800 39600 1 VLAST} + {909244800 36000 0 VLAT} + {922550400 39600 1 VLAST} + {941299200 36000 0 VLAT} + {954000000 39600 1 VLAST} + {972748800 36000 0 VLAT} + {985449600 39600 1 VLAST} + {1004198400 36000 0 VLAT} + {1017504000 39600 1 VLAST} + {1035648000 36000 0 VLAT} + {1048953600 39600 1 VLAST} + {1067097600 36000 0 VLAT} + {1080403200 39600 1 VLAST} + {1099152000 36000 0 VLAT} + {1111852800 39600 1 VLAST} + {1130601600 36000 0 VLAT} + {1143302400 39600 1 VLAST} + {1162051200 36000 0 VLAT} + {1174752000 39600 1 VLAST} + {1193500800 36000 0 VLAT} + {1206806400 39600 1 VLAST} + {1224950400 36000 0 VLAT} + {1238256000 39600 1 VLAST} + {1256400000 36000 0 VLAT} + {1269705600 39600 1 VLAST} + {1288454400 36000 0 VLAT} + {1301155200 39600 1 VLAST} + {1319904000 36000 0 VLAT} + {1332604800 39600 1 VLAST} + {1351353600 36000 0 VLAT} + {1364659200 39600 1 VLAST} + {1382803200 36000 0 VLAT} + {1396108800 39600 1 VLAST} + {1414252800 36000 0 VLAT} + {1427558400 39600 1 VLAST} + {1445702400 36000 0 VLAT} + {1459008000 39600 1 VLAST} + {1477756800 36000 0 VLAT} + {1490457600 39600 1 VLAST} + {1509206400 36000 0 VLAT} + {1521907200 39600 1 VLAST} + {1540656000 36000 0 VLAT} + {1553961600 39600 1 VLAST} + {1572105600 36000 0 VLAT} + {1585411200 39600 1 VLAST} + {1603555200 36000 0 VLAT} + {1616860800 39600 1 VLAST} + {1635609600 36000 0 VLAT} + {1648310400 39600 1 VLAST} + {1667059200 36000 0 VLAT} + {1679760000 39600 1 VLAST} + {1698508800 36000 0 VLAT} + {1711814400 39600 1 VLAST} + {1729958400 36000 0 VLAT} + {1743264000 39600 1 VLAST} + {1761408000 36000 0 VLAT} + {1774713600 39600 1 VLAST} + {1792857600 36000 0 VLAT} + {1806163200 39600 1 VLAST} + {1824912000 36000 0 VLAT} + {1837612800 39600 1 VLAST} + {1856361600 36000 0 VLAT} + {1869062400 39600 1 VLAST} + {1887811200 36000 0 VLAT} + {1901116800 39600 1 VLAST} + {1919260800 36000 0 VLAT} + {1932566400 39600 1 VLAST} + {1950710400 36000 0 VLAT} + {1964016000 39600 1 VLAST} + {1982764800 36000 0 VLAT} + {1995465600 39600 1 VLAST} + {2014214400 36000 0 VLAT} + {2026915200 39600 1 VLAST} + {2045664000 36000 0 VLAT} + {2058364800 39600 1 VLAST} + {2077113600 36000 0 VLAT} + {2090419200 39600 1 VLAST} + {2108563200 36000 0 VLAT} + {2121868800 39600 1 VLAST} + {2140012800 36000 0 VLAT} + {2153318400 39600 1 VLAST} + {2172067200 36000 0 VLAT} + {2184768000 39600 1 VLAST} + {2203516800 36000 0 VLAT} + {2216217600 39600 1 VLAST} + {2234966400 36000 0 VLAT} + {2248272000 39600 1 VLAST} + {2266416000 36000 0 VLAT} + {2279721600 39600 1 VLAST} + {2297865600 36000 0 VLAT} + {2311171200 39600 1 VLAST} + {2329315200 36000 0 VLAT} + {2342620800 39600 1 VLAST} + {2361369600 36000 0 VLAT} + {2374070400 39600 1 VLAST} + {2392819200 36000 0 VLAT} + {2405520000 39600 1 VLAST} + {2424268800 36000 0 VLAT} + {2437574400 39600 1 VLAST} + {2455718400 36000 0 VLAT} + {2469024000 39600 1 VLAST} + {2487168000 36000 0 VLAT} + {2500473600 39600 1 VLAST} + {2519222400 36000 0 VLAT} + {2531923200 39600 1 VLAST} + {2550672000 36000 0 VLAT} + {2563372800 39600 1 VLAST} + {2582121600 36000 0 VLAT} + {2595427200 39600 1 VLAST} + {2613571200 36000 0 VLAT} + {2626876800 39600 1 VLAST} + {2645020800 36000 0 VLAT} + {2658326400 39600 1 VLAST} + {2676470400 36000 0 VLAT} + {2689776000 39600 1 VLAST} + {2708524800 36000 0 VLAT} + {2721225600 39600 1 VLAST} + {2739974400 36000 0 VLAT} + {2752675200 39600 1 VLAST} + {2771424000 36000 0 VLAT} + {2784729600 39600 1 VLAST} + {2802873600 36000 0 VLAT} + {2816179200 39600 1 VLAST} + {2834323200 36000 0 VLAT} + {2847628800 39600 1 VLAST} + {2866377600 36000 0 VLAT} + {2879078400 39600 1 VLAST} + {2897827200 36000 0 VLAT} + {2910528000 39600 1 VLAST} + {2929276800 36000 0 VLAT} + {2941977600 39600 1 VLAST} + {2960726400 36000 0 VLAT} + {2974032000 39600 1 VLAST} + {2992176000 36000 0 VLAT} + {3005481600 39600 1 VLAST} + {3023625600 36000 0 VLAT} + {3036931200 39600 1 VLAST} + {3055680000 36000 0 VLAT} + {3068380800 39600 1 VLAST} + {3087129600 36000 0 VLAT} + {3099830400 39600 1 VLAST} + {3118579200 36000 0 VLAT} + {3131884800 39600 1 VLAST} + {3150028800 36000 0 VLAT} + {3163334400 39600 1 VLAST} + {3181478400 36000 0 VLAT} + {3194784000 39600 1 VLAST} + {3212928000 36000 0 VLAT} + {3226233600 39600 1 VLAST} + {3244982400 36000 0 VLAT} + {3257683200 39600 1 VLAST} + {3276432000 36000 0 VLAT} + {3289132800 39600 1 VLAST} + {3307881600 36000 0 VLAT} + {3321187200 39600 1 VLAST} + {3339331200 36000 0 VLAT} + {3352636800 39600 1 VLAST} + {3370780800 36000 0 VLAT} + {3384086400 39600 1 VLAST} + {3402835200 36000 0 VLAT} + {3415536000 39600 1 VLAST} + {3434284800 36000 0 VLAT} + {3446985600 39600 1 VLAST} + {3465734400 36000 0 VLAT} + {3479040000 39600 1 VLAST} + {3497184000 36000 0 VLAT} + {3510489600 39600 1 VLAST} + {3528633600 36000 0 VLAT} + {3541939200 39600 1 VLAST} + {3560083200 36000 0 VLAT} + {3573388800 39600 1 VLAST} + {3592137600 36000 0 VLAT} + {3604838400 39600 1 VLAST} + {3623587200 36000 0 VLAT} + {3636288000 39600 1 VLAST} + {3655036800 36000 0 VLAT} + {3668342400 39600 1 VLAST} + {3686486400 36000 0 VLAT} + {3699792000 39600 1 VLAST} + {3717936000 36000 0 VLAT} + {3731241600 39600 1 VLAST} + {3749990400 36000 0 VLAT} + {3762691200 39600 1 VLAST} + {3781440000 36000 0 VLAT} + {3794140800 39600 1 VLAST} + {3812889600 36000 0 VLAT} + {3825590400 39600 1 VLAST} + {3844339200 36000 0 VLAT} + {3857644800 39600 1 VLAST} + {3875788800 36000 0 VLAT} + {3889094400 39600 1 VLAST} + {3907238400 36000 0 VLAT} + {3920544000 39600 1 VLAST} + {3939292800 36000 0 VLAT} + {3951993600 39600 1 VLAST} + {3970742400 36000 0 VLAT} + {3983443200 39600 1 VLAST} + {4002192000 36000 0 VLAT} + {4015497600 39600 1 VLAST} + {4033641600 36000 0 VLAT} + {4046947200 39600 1 VLAST} + {4065091200 36000 0 VLAT} + {4078396800 39600 1 VLAST} + {4096540800 36000 0 VLAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Yakutsk b/mingw/lib/tcl8.5/tzdata/Asia/Yakutsk new file mode 100644 index 00000000..acf5d7d7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Yakutsk @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Yakutsk) { + {-9223372036854775808 31120 0 LMT} + {-1579423120 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 1 YAKST} + {1319907600 32400 0 YAKT} + {1332608400 36000 1 YAKST} + {1351357200 32400 0 YAKT} + {1364662800 36000 1 YAKST} + {1382806800 32400 0 YAKT} + {1396112400 36000 1 YAKST} + {1414256400 32400 0 YAKT} + {1427562000 36000 1 YAKST} + {1445706000 32400 0 YAKT} + {1459011600 36000 1 YAKST} + {1477760400 32400 0 YAKT} + {1490461200 36000 1 YAKST} + {1509210000 32400 0 YAKT} + {1521910800 36000 1 YAKST} + {1540659600 32400 0 YAKT} + {1553965200 36000 1 YAKST} + {1572109200 32400 0 YAKT} + {1585414800 36000 1 YAKST} + {1603558800 32400 0 YAKT} + {1616864400 36000 1 YAKST} + {1635613200 32400 0 YAKT} + {1648314000 36000 1 YAKST} + {1667062800 32400 0 YAKT} + {1679763600 36000 1 YAKST} + {1698512400 32400 0 YAKT} + {1711818000 36000 1 YAKST} + {1729962000 32400 0 YAKT} + {1743267600 36000 1 YAKST} + {1761411600 32400 0 YAKT} + {1774717200 36000 1 YAKST} + {1792861200 32400 0 YAKT} + {1806166800 36000 1 YAKST} + {1824915600 32400 0 YAKT} + {1837616400 36000 1 YAKST} + {1856365200 32400 0 YAKT} + {1869066000 36000 1 YAKST} + {1887814800 32400 0 YAKT} + {1901120400 36000 1 YAKST} + {1919264400 32400 0 YAKT} + {1932570000 36000 1 YAKST} + {1950714000 32400 0 YAKT} + {1964019600 36000 1 YAKST} + {1982768400 32400 0 YAKT} + {1995469200 36000 1 YAKST} + {2014218000 32400 0 YAKT} + {2026918800 36000 1 YAKST} + {2045667600 32400 0 YAKT} + {2058368400 36000 1 YAKST} + {2077117200 32400 0 YAKT} + {2090422800 36000 1 YAKST} + {2108566800 32400 0 YAKT} + {2121872400 36000 1 YAKST} + {2140016400 32400 0 YAKT} + {2153322000 36000 1 YAKST} + {2172070800 32400 0 YAKT} + {2184771600 36000 1 YAKST} + {2203520400 32400 0 YAKT} + {2216221200 36000 1 YAKST} + {2234970000 32400 0 YAKT} + {2248275600 36000 1 YAKST} + {2266419600 32400 0 YAKT} + {2279725200 36000 1 YAKST} + {2297869200 32400 0 YAKT} + {2311174800 36000 1 YAKST} + {2329318800 32400 0 YAKT} + {2342624400 36000 1 YAKST} + {2361373200 32400 0 YAKT} + {2374074000 36000 1 YAKST} + {2392822800 32400 0 YAKT} + {2405523600 36000 1 YAKST} + {2424272400 32400 0 YAKT} + {2437578000 36000 1 YAKST} + {2455722000 32400 0 YAKT} + {2469027600 36000 1 YAKST} + {2487171600 32400 0 YAKT} + {2500477200 36000 1 YAKST} + {2519226000 32400 0 YAKT} + {2531926800 36000 1 YAKST} + {2550675600 32400 0 YAKT} + {2563376400 36000 1 YAKST} + {2582125200 32400 0 YAKT} + {2595430800 36000 1 YAKST} + {2613574800 32400 0 YAKT} + {2626880400 36000 1 YAKST} + {2645024400 32400 0 YAKT} + {2658330000 36000 1 YAKST} + {2676474000 32400 0 YAKT} + {2689779600 36000 1 YAKST} + {2708528400 32400 0 YAKT} + {2721229200 36000 1 YAKST} + {2739978000 32400 0 YAKT} + {2752678800 36000 1 YAKST} + {2771427600 32400 0 YAKT} + {2784733200 36000 1 YAKST} + {2802877200 32400 0 YAKT} + {2816182800 36000 1 YAKST} + {2834326800 32400 0 YAKT} + {2847632400 36000 1 YAKST} + {2866381200 32400 0 YAKT} + {2879082000 36000 1 YAKST} + {2897830800 32400 0 YAKT} + {2910531600 36000 1 YAKST} + {2929280400 32400 0 YAKT} + {2941981200 36000 1 YAKST} + {2960730000 32400 0 YAKT} + {2974035600 36000 1 YAKST} + {2992179600 32400 0 YAKT} + {3005485200 36000 1 YAKST} + {3023629200 32400 0 YAKT} + {3036934800 36000 1 YAKST} + {3055683600 32400 0 YAKT} + {3068384400 36000 1 YAKST} + {3087133200 32400 0 YAKT} + {3099834000 36000 1 YAKST} + {3118582800 32400 0 YAKT} + {3131888400 36000 1 YAKST} + {3150032400 32400 0 YAKT} + {3163338000 36000 1 YAKST} + {3181482000 32400 0 YAKT} + {3194787600 36000 1 YAKST} + {3212931600 32400 0 YAKT} + {3226237200 36000 1 YAKST} + {3244986000 32400 0 YAKT} + {3257686800 36000 1 YAKST} + {3276435600 32400 0 YAKT} + {3289136400 36000 1 YAKST} + {3307885200 32400 0 YAKT} + {3321190800 36000 1 YAKST} + {3339334800 32400 0 YAKT} + {3352640400 36000 1 YAKST} + {3370784400 32400 0 YAKT} + {3384090000 36000 1 YAKST} + {3402838800 32400 0 YAKT} + {3415539600 36000 1 YAKST} + {3434288400 32400 0 YAKT} + {3446989200 36000 1 YAKST} + {3465738000 32400 0 YAKT} + {3479043600 36000 1 YAKST} + {3497187600 32400 0 YAKT} + {3510493200 36000 1 YAKST} + {3528637200 32400 0 YAKT} + {3541942800 36000 1 YAKST} + {3560086800 32400 0 YAKT} + {3573392400 36000 1 YAKST} + {3592141200 32400 0 YAKT} + {3604842000 36000 1 YAKST} + {3623590800 32400 0 YAKT} + {3636291600 36000 1 YAKST} + {3655040400 32400 0 YAKT} + {3668346000 36000 1 YAKST} + {3686490000 32400 0 YAKT} + {3699795600 36000 1 YAKST} + {3717939600 32400 0 YAKT} + {3731245200 36000 1 YAKST} + {3749994000 32400 0 YAKT} + {3762694800 36000 1 YAKST} + {3781443600 32400 0 YAKT} + {3794144400 36000 1 YAKST} + {3812893200 32400 0 YAKT} + {3825594000 36000 1 YAKST} + {3844342800 32400 0 YAKT} + {3857648400 36000 1 YAKST} + {3875792400 32400 0 YAKT} + {3889098000 36000 1 YAKST} + {3907242000 32400 0 YAKT} + {3920547600 36000 1 YAKST} + {3939296400 32400 0 YAKT} + {3951997200 36000 1 YAKST} + {3970746000 32400 0 YAKT} + {3983446800 36000 1 YAKST} + {4002195600 32400 0 YAKT} + {4015501200 36000 1 YAKST} + {4033645200 32400 0 YAKT} + {4046950800 36000 1 YAKST} + {4065094800 32400 0 YAKT} + {4078400400 36000 1 YAKST} + {4096544400 32400 0 YAKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg b/mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg new file mode 100644 index 00000000..980f903e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Yekaterinburg) { + {-9223372036854775808 14544 0 LMT} + {-1592611344 14400 0 SVET} + {-1247544000 18000 0 SVEMMTT} + {354913200 21600 1 SVEST} + {370720800 18000 0 SVET} + {386449200 21600 1 SVEST} + {402256800 18000 0 SVET} + {417985200 21600 1 SVEST} + {433792800 18000 0 SVET} + {449607600 21600 1 SVEST} + {465339600 18000 0 SVET} + {481064400 21600 1 SVEST} + {496789200 18000 0 SVET} + {512514000 21600 1 SVEST} + {528238800 18000 0 SVET} + {543963600 21600 1 SVEST} + {559688400 18000 0 SVET} + {575413200 21600 1 SVEST} + {591138000 18000 0 SVET} + {606862800 21600 1 SVEST} + {622587600 18000 0 SVET} + {638312400 21600 1 SVEST} + {654642000 18000 0 SVET} + {670366800 14400 0 SVEMMTT} + {670370400 18000 1 SVEST} + {686095200 14400 0 SVET} + {695772000 18000 0 YEKMMTT} + {701805600 21600 1 YEKST} + {717526800 18000 0 YEKT} + {733266000 21600 1 YEKST} + {748990800 18000 0 YEKT} + {764715600 21600 1 YEKST} + {780440400 18000 0 YEKT} + {796165200 21600 1 YEKST} + {811890000 18000 0 YEKT} + {828219600 21600 1 YEKST} + {846363600 18000 0 YEKT} + {859669200 21600 1 YEKST} + {877813200 18000 0 YEKT} + {891118800 21600 1 YEKST} + {909262800 18000 0 YEKT} + {922568400 21600 1 YEKST} + {941317200 18000 0 YEKT} + {954018000 21600 1 YEKST} + {972766800 18000 0 YEKT} + {985467600 21600 1 YEKST} + {1004216400 18000 0 YEKT} + {1017522000 21600 1 YEKST} + {1035666000 18000 0 YEKT} + {1048971600 21600 1 YEKST} + {1067115600 18000 0 YEKT} + {1080421200 21600 1 YEKST} + {1099170000 18000 0 YEKT} + {1111870800 21600 1 YEKST} + {1130619600 18000 0 YEKT} + {1143320400 21600 1 YEKST} + {1162069200 18000 0 YEKT} + {1174770000 21600 1 YEKST} + {1193518800 18000 0 YEKT} + {1206824400 21600 1 YEKST} + {1224968400 18000 0 YEKT} + {1238274000 21600 1 YEKST} + {1256418000 18000 0 YEKT} + {1269723600 21600 1 YEKST} + {1288472400 18000 0 YEKT} + {1301173200 21600 1 YEKST} + {1319922000 18000 0 YEKT} + {1332622800 21600 1 YEKST} + {1351371600 18000 0 YEKT} + {1364677200 21600 1 YEKST} + {1382821200 18000 0 YEKT} + {1396126800 21600 1 YEKST} + {1414270800 18000 0 YEKT} + {1427576400 21600 1 YEKST} + {1445720400 18000 0 YEKT} + {1459026000 21600 1 YEKST} + {1477774800 18000 0 YEKT} + {1490475600 21600 1 YEKST} + {1509224400 18000 0 YEKT} + {1521925200 21600 1 YEKST} + {1540674000 18000 0 YEKT} + {1553979600 21600 1 YEKST} + {1572123600 18000 0 YEKT} + {1585429200 21600 1 YEKST} + {1603573200 18000 0 YEKT} + {1616878800 21600 1 YEKST} + {1635627600 18000 0 YEKT} + {1648328400 21600 1 YEKST} + {1667077200 18000 0 YEKT} + {1679778000 21600 1 YEKST} + {1698526800 18000 0 YEKT} + {1711832400 21600 1 YEKST} + {1729976400 18000 0 YEKT} + {1743282000 21600 1 YEKST} + {1761426000 18000 0 YEKT} + {1774731600 21600 1 YEKST} + {1792875600 18000 0 YEKT} + {1806181200 21600 1 YEKST} + {1824930000 18000 0 YEKT} + {1837630800 21600 1 YEKST} + {1856379600 18000 0 YEKT} + {1869080400 21600 1 YEKST} + {1887829200 18000 0 YEKT} + {1901134800 21600 1 YEKST} + {1919278800 18000 0 YEKT} + {1932584400 21600 1 YEKST} + {1950728400 18000 0 YEKT} + {1964034000 21600 1 YEKST} + {1982782800 18000 0 YEKT} + {1995483600 21600 1 YEKST} + {2014232400 18000 0 YEKT} + {2026933200 21600 1 YEKST} + {2045682000 18000 0 YEKT} + {2058382800 21600 1 YEKST} + {2077131600 18000 0 YEKT} + {2090437200 21600 1 YEKST} + {2108581200 18000 0 YEKT} + {2121886800 21600 1 YEKST} + {2140030800 18000 0 YEKT} + {2153336400 21600 1 YEKST} + {2172085200 18000 0 YEKT} + {2184786000 21600 1 YEKST} + {2203534800 18000 0 YEKT} + {2216235600 21600 1 YEKST} + {2234984400 18000 0 YEKT} + {2248290000 21600 1 YEKST} + {2266434000 18000 0 YEKT} + {2279739600 21600 1 YEKST} + {2297883600 18000 0 YEKT} + {2311189200 21600 1 YEKST} + {2329333200 18000 0 YEKT} + {2342638800 21600 1 YEKST} + {2361387600 18000 0 YEKT} + {2374088400 21600 1 YEKST} + {2392837200 18000 0 YEKT} + {2405538000 21600 1 YEKST} + {2424286800 18000 0 YEKT} + {2437592400 21600 1 YEKST} + {2455736400 18000 0 YEKT} + {2469042000 21600 1 YEKST} + {2487186000 18000 0 YEKT} + {2500491600 21600 1 YEKST} + {2519240400 18000 0 YEKT} + {2531941200 21600 1 YEKST} + {2550690000 18000 0 YEKT} + {2563390800 21600 1 YEKST} + {2582139600 18000 0 YEKT} + {2595445200 21600 1 YEKST} + {2613589200 18000 0 YEKT} + {2626894800 21600 1 YEKST} + {2645038800 18000 0 YEKT} + {2658344400 21600 1 YEKST} + {2676488400 18000 0 YEKT} + {2689794000 21600 1 YEKST} + {2708542800 18000 0 YEKT} + {2721243600 21600 1 YEKST} + {2739992400 18000 0 YEKT} + {2752693200 21600 1 YEKST} + {2771442000 18000 0 YEKT} + {2784747600 21600 1 YEKST} + {2802891600 18000 0 YEKT} + {2816197200 21600 1 YEKST} + {2834341200 18000 0 YEKT} + {2847646800 21600 1 YEKST} + {2866395600 18000 0 YEKT} + {2879096400 21600 1 YEKST} + {2897845200 18000 0 YEKT} + {2910546000 21600 1 YEKST} + {2929294800 18000 0 YEKT} + {2941995600 21600 1 YEKST} + {2960744400 18000 0 YEKT} + {2974050000 21600 1 YEKST} + {2992194000 18000 0 YEKT} + {3005499600 21600 1 YEKST} + {3023643600 18000 0 YEKT} + {3036949200 21600 1 YEKST} + {3055698000 18000 0 YEKT} + {3068398800 21600 1 YEKST} + {3087147600 18000 0 YEKT} + {3099848400 21600 1 YEKST} + {3118597200 18000 0 YEKT} + {3131902800 21600 1 YEKST} + {3150046800 18000 0 YEKT} + {3163352400 21600 1 YEKST} + {3181496400 18000 0 YEKT} + {3194802000 21600 1 YEKST} + {3212946000 18000 0 YEKT} + {3226251600 21600 1 YEKST} + {3245000400 18000 0 YEKT} + {3257701200 21600 1 YEKST} + {3276450000 18000 0 YEKT} + {3289150800 21600 1 YEKST} + {3307899600 18000 0 YEKT} + {3321205200 21600 1 YEKST} + {3339349200 18000 0 YEKT} + {3352654800 21600 1 YEKST} + {3370798800 18000 0 YEKT} + {3384104400 21600 1 YEKST} + {3402853200 18000 0 YEKT} + {3415554000 21600 1 YEKST} + {3434302800 18000 0 YEKT} + {3447003600 21600 1 YEKST} + {3465752400 18000 0 YEKT} + {3479058000 21600 1 YEKST} + {3497202000 18000 0 YEKT} + {3510507600 21600 1 YEKST} + {3528651600 18000 0 YEKT} + {3541957200 21600 1 YEKST} + {3560101200 18000 0 YEKT} + {3573406800 21600 1 YEKST} + {3592155600 18000 0 YEKT} + {3604856400 21600 1 YEKST} + {3623605200 18000 0 YEKT} + {3636306000 21600 1 YEKST} + {3655054800 18000 0 YEKT} + {3668360400 21600 1 YEKST} + {3686504400 18000 0 YEKT} + {3699810000 21600 1 YEKST} + {3717954000 18000 0 YEKT} + {3731259600 21600 1 YEKST} + {3750008400 18000 0 YEKT} + {3762709200 21600 1 YEKST} + {3781458000 18000 0 YEKT} + {3794158800 21600 1 YEKST} + {3812907600 18000 0 YEKT} + {3825608400 21600 1 YEKST} + {3844357200 18000 0 YEKT} + {3857662800 21600 1 YEKST} + {3875806800 18000 0 YEKT} + {3889112400 21600 1 YEKST} + {3907256400 18000 0 YEKT} + {3920562000 21600 1 YEKST} + {3939310800 18000 0 YEKT} + {3952011600 21600 1 YEKST} + {3970760400 18000 0 YEKT} + {3983461200 21600 1 YEKST} + {4002210000 18000 0 YEKT} + {4015515600 21600 1 YEKST} + {4033659600 18000 0 YEKT} + {4046965200 21600 1 YEKST} + {4065109200 18000 0 YEKT} + {4078414800 21600 1 YEKST} + {4096558800 18000 0 YEKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Asia/Yerevan b/mingw/lib/tcl8.5/tzdata/Asia/Yerevan new file mode 100644 index 00000000..cd70b4f4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Asia/Yerevan @@ -0,0 +1,245 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Asia/Yerevan) { + {-9223372036854775808 10680 0 LMT} + {-1441162680 10800 0 YERT} + {-405140400 14400 0 YERT} + {354916800 18000 1 YERST} + {370724400 14400 0 YERT} + {386452800 18000 1 YERST} + {402260400 14400 0 YERT} + {417988800 18000 1 YERST} + {433796400 14400 0 YERT} + {449611200 18000 1 YERST} + {465343200 14400 0 YERT} + {481068000 18000 1 YERST} + {496792800 14400 0 YERT} + {512517600 18000 1 YERST} + {528242400 14400 0 YERT} + {543967200 18000 1 YERST} + {559692000 14400 0 YERT} + {575416800 18000 1 YERST} + {591141600 14400 0 YERT} + {606866400 18000 1 YERST} + {622591200 14400 0 YERT} + {638316000 18000 1 YERST} + {654645600 14400 0 YERT} + {670370400 14400 1 YERST} + {685569600 14400 0 AMST} + {686098800 10800 0 AMT} + {701812800 14400 1 AMST} + {717534000 10800 0 AMT} + {733273200 14400 1 AMST} + {748998000 10800 0 AMT} + {764722800 14400 1 AMST} + {780447600 10800 0 AMT} + {796172400 14400 1 AMST} + {811897200 14400 0 AMT} + {852062400 14400 0 AMT} + {859672800 18000 1 AMST} + {877816800 14400 0 AMT} + {891122400 18000 1 AMST} + {909266400 14400 0 AMT} + {922572000 18000 1 AMST} + {941320800 14400 0 AMT} + {954021600 18000 1 AMST} + {972770400 14400 0 AMT} + {985471200 18000 1 AMST} + {1004220000 14400 0 AMT} + {1017525600 18000 1 AMST} + {1035669600 14400 0 AMT} + {1048975200 18000 1 AMST} + {1067119200 14400 0 AMT} + {1080424800 18000 1 AMST} + {1099173600 14400 0 AMT} + {1111874400 18000 1 AMST} + {1130623200 14400 0 AMT} + {1143324000 18000 1 AMST} + {1162072800 14400 0 AMT} + {1174773600 18000 1 AMST} + {1193522400 14400 0 AMT} + {1206828000 18000 1 AMST} + {1224972000 14400 0 AMT} + {1238277600 18000 1 AMST} + {1256421600 14400 0 AMT} + {1269727200 18000 1 AMST} + {1288476000 14400 0 AMT} + {1301176800 18000 1 AMST} + {1319925600 14400 0 AMT} + {1332626400 18000 1 AMST} + {1351375200 14400 0 AMT} + {1364680800 18000 1 AMST} + {1382824800 14400 0 AMT} + {1396130400 18000 1 AMST} + {1414274400 14400 0 AMT} + {1427580000 18000 1 AMST} + {1445724000 14400 0 AMT} + {1459029600 18000 1 AMST} + {1477778400 14400 0 AMT} + {1490479200 18000 1 AMST} + {1509228000 14400 0 AMT} + {1521928800 18000 1 AMST} + {1540677600 14400 0 AMT} + {1553983200 18000 1 AMST} + {1572127200 14400 0 AMT} + {1585432800 18000 1 AMST} + {1603576800 14400 0 AMT} + {1616882400 18000 1 AMST} + {1635631200 14400 0 AMT} + {1648332000 18000 1 AMST} + {1667080800 14400 0 AMT} + {1679781600 18000 1 AMST} + {1698530400 14400 0 AMT} + {1711836000 18000 1 AMST} + {1729980000 14400 0 AMT} + {1743285600 18000 1 AMST} + {1761429600 14400 0 AMT} + {1774735200 18000 1 AMST} + {1792879200 14400 0 AMT} + {1806184800 18000 1 AMST} + {1824933600 14400 0 AMT} + {1837634400 18000 1 AMST} + {1856383200 14400 0 AMT} + {1869084000 18000 1 AMST} + {1887832800 14400 0 AMT} + {1901138400 18000 1 AMST} + {1919282400 14400 0 AMT} + {1932588000 18000 1 AMST} + {1950732000 14400 0 AMT} + {1964037600 18000 1 AMST} + {1982786400 14400 0 AMT} + {1995487200 18000 1 AMST} + {2014236000 14400 0 AMT} + {2026936800 18000 1 AMST} + {2045685600 14400 0 AMT} + {2058386400 18000 1 AMST} + {2077135200 14400 0 AMT} + {2090440800 18000 1 AMST} + {2108584800 14400 0 AMT} + {2121890400 18000 1 AMST} + {2140034400 14400 0 AMT} + {2153340000 18000 1 AMST} + {2172088800 14400 0 AMT} + {2184789600 18000 1 AMST} + {2203538400 14400 0 AMT} + {2216239200 18000 1 AMST} + {2234988000 14400 0 AMT} + {2248293600 18000 1 AMST} + {2266437600 14400 0 AMT} + {2279743200 18000 1 AMST} + {2297887200 14400 0 AMT} + {2311192800 18000 1 AMST} + {2329336800 14400 0 AMT} + {2342642400 18000 1 AMST} + {2361391200 14400 0 AMT} + {2374092000 18000 1 AMST} + {2392840800 14400 0 AMT} + {2405541600 18000 1 AMST} + {2424290400 14400 0 AMT} + {2437596000 18000 1 AMST} + {2455740000 14400 0 AMT} + {2469045600 18000 1 AMST} + {2487189600 14400 0 AMT} + {2500495200 18000 1 AMST} + {2519244000 14400 0 AMT} + {2531944800 18000 1 AMST} + {2550693600 14400 0 AMT} + {2563394400 18000 1 AMST} + {2582143200 14400 0 AMT} + {2595448800 18000 1 AMST} + {2613592800 14400 0 AMT} + {2626898400 18000 1 AMST} + {2645042400 14400 0 AMT} + {2658348000 18000 1 AMST} + {2676492000 14400 0 AMT} + {2689797600 18000 1 AMST} + {2708546400 14400 0 AMT} + {2721247200 18000 1 AMST} + {2739996000 14400 0 AMT} + {2752696800 18000 1 AMST} + {2771445600 14400 0 AMT} + {2784751200 18000 1 AMST} + {2802895200 14400 0 AMT} + {2816200800 18000 1 AMST} + {2834344800 14400 0 AMT} + {2847650400 18000 1 AMST} + {2866399200 14400 0 AMT} + {2879100000 18000 1 AMST} + {2897848800 14400 0 AMT} + {2910549600 18000 1 AMST} + {2929298400 14400 0 AMT} + {2941999200 18000 1 AMST} + {2960748000 14400 0 AMT} + {2974053600 18000 1 AMST} + {2992197600 14400 0 AMT} + {3005503200 18000 1 AMST} + {3023647200 14400 0 AMT} + {3036952800 18000 1 AMST} + {3055701600 14400 0 AMT} + {3068402400 18000 1 AMST} + {3087151200 14400 0 AMT} + {3099852000 18000 1 AMST} + {3118600800 14400 0 AMT} + {3131906400 18000 1 AMST} + {3150050400 14400 0 AMT} + {3163356000 18000 1 AMST} + {3181500000 14400 0 AMT} + {3194805600 18000 1 AMST} + {3212949600 14400 0 AMT} + {3226255200 18000 1 AMST} + {3245004000 14400 0 AMT} + {3257704800 18000 1 AMST} + {3276453600 14400 0 AMT} + {3289154400 18000 1 AMST} + {3307903200 14400 0 AMT} + {3321208800 18000 1 AMST} + {3339352800 14400 0 AMT} + {3352658400 18000 1 AMST} + {3370802400 14400 0 AMT} + {3384108000 18000 1 AMST} + {3402856800 14400 0 AMT} + {3415557600 18000 1 AMST} + {3434306400 14400 0 AMT} + {3447007200 18000 1 AMST} + {3465756000 14400 0 AMT} + {3479061600 18000 1 AMST} + {3497205600 14400 0 AMT} + {3510511200 18000 1 AMST} + {3528655200 14400 0 AMT} + {3541960800 18000 1 AMST} + {3560104800 14400 0 AMT} + {3573410400 18000 1 AMST} + {3592159200 14400 0 AMT} + {3604860000 18000 1 AMST} + {3623608800 14400 0 AMT} + {3636309600 18000 1 AMST} + {3655058400 14400 0 AMT} + {3668364000 18000 1 AMST} + {3686508000 14400 0 AMT} + {3699813600 18000 1 AMST} + {3717957600 14400 0 AMT} + {3731263200 18000 1 AMST} + {3750012000 14400 0 AMT} + {3762712800 18000 1 AMST} + {3781461600 14400 0 AMT} + {3794162400 18000 1 AMST} + {3812911200 14400 0 AMT} + {3825612000 18000 1 AMST} + {3844360800 14400 0 AMT} + {3857666400 18000 1 AMST} + {3875810400 14400 0 AMT} + {3889116000 18000 1 AMST} + {3907260000 14400 0 AMT} + {3920565600 18000 1 AMST} + {3939314400 14400 0 AMT} + {3952015200 18000 1 AMST} + {3970764000 14400 0 AMT} + {3983464800 18000 1 AMST} + {4002213600 14400 0 AMT} + {4015519200 18000 1 AMST} + {4033663200 14400 0 AMT} + {4046968800 18000 1 AMST} + {4065112800 14400 0 AMT} + {4078418400 18000 1 AMST} + {4096562400 14400 0 AMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Azores b/mingw/lib/tcl8.5/tzdata/Atlantic/Azores new file mode 100644 index 00000000..c4761914 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Azores @@ -0,0 +1,349 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Azores) { + {-9223372036854775808 -6160 0 LMT} + {-2713904240 -6872 0 HMT} + {-1849557928 -7200 0 AZOT} + {-1689548400 -3600 1 AZOST} + {-1677794400 -7200 0 AZOT} + {-1667430000 -3600 1 AZOST} + {-1647730800 -7200 0 AZOT} + {-1635807600 -3600 1 AZOST} + {-1616194800 -7200 0 AZOT} + {-1604358000 -3600 1 AZOST} + {-1584658800 -7200 0 AZOT} + {-1572735600 -3600 1 AZOST} + {-1553036400 -7200 0 AZOT} + {-1541199600 -3600 1 AZOST} + {-1521500400 -7200 0 AZOT} + {-1442444400 -3600 1 AZOST} + {-1426806000 -7200 0 AZOT} + {-1379286000 -3600 1 AZOST} + {-1364770800 -7200 0 AZOT} + {-1348441200 -3600 1 AZOST} + {-1333321200 -7200 0 AZOT} + {-1316386800 -3600 1 AZOST} + {-1301266800 -7200 0 AZOT} + {-1284332400 -3600 1 AZOST} + {-1269817200 -7200 0 AZOT} + {-1221433200 -3600 1 AZOST} + {-1206918000 -7200 0 AZOT} + {-1191193200 -3600 1 AZOST} + {-1175468400 -7200 0 AZOT} + {-1127689200 -3600 1 AZOST} + {-1111964400 -7200 0 AZOT} + {-1096844400 -3600 1 AZOST} + {-1080514800 -7200 0 AZOT} + {-1063580400 -3600 1 AZOST} + {-1049065200 -7200 0 AZOT} + {-1033340400 -3600 1 AZOST} + {-1017615600 -7200 0 AZOT} + {-1002495600 -3600 1 AZOST} + {-986166000 -7200 0 AZOT} + {-969231600 -3600 1 AZOST} + {-950482800 -7200 0 AZOT} + {-942015600 -3600 1 AZOST} + {-922662000 -7200 0 AZOT} + {-906937200 -3600 1 AZOST} + {-891126000 -7200 0 AZOT} + {-877302000 -3600 1 AZOST} + {-873676800 0 1 AZOMT} + {-864000000 -3600 1 AZOST} + {-857948400 -7200 0 AZOT} + {-845852400 -3600 1 AZOST} + {-842832000 0 1 AZOMT} + {-831340800 -3600 1 AZOST} + {-825894000 -7200 0 AZOT} + {-814402800 -3600 1 AZOST} + {-810777600 0 1 AZOMT} + {-799891200 -3600 1 AZOST} + {-794444400 -7200 0 AZOT} + {-782953200 -3600 1 AZOST} + {-779328000 0 1 AZOMT} + {-768441600 -3600 1 AZOST} + {-762994800 -7200 0 AZOT} + {-749084400 -3600 1 AZOST} + {-733359600 -7200 0 AZOT} + {-717624000 -3600 1 AZOST} + {-701899200 -7200 0 AZOT} + {-686174400 -3600 1 AZOST} + {-670449600 -7200 0 AZOT} + {-654724800 -3600 1 AZOST} + {-639000000 -7200 0 AZOT} + {-591825600 -3600 1 AZOST} + {-575496000 -7200 0 AZOT} + {-559771200 -3600 1 AZOST} + {-544046400 -7200 0 AZOT} + {-528321600 -3600 1 AZOST} + {-512596800 -7200 0 AZOT} + {-496872000 -3600 1 AZOST} + {-481147200 -7200 0 AZOT} + {-465422400 -3600 1 AZOST} + {-449697600 -7200 0 AZOT} + {-433972800 -3600 1 AZOST} + {-417643200 -7200 0 AZOT} + {-401918400 -3600 1 AZOST} + {-386193600 -7200 0 AZOT} + {-370468800 -3600 1 AZOST} + {-354744000 -7200 0 AZOT} + {-339019200 -3600 1 AZOST} + {-323294400 -7200 0 AZOT} + {-307569600 -3600 1 AZOST} + {-291844800 -7200 0 AZOT} + {-276120000 -3600 1 AZOST} + {-260395200 -7200 0 AZOT} + {-244670400 -3600 1 AZOST} + {-228340800 -7200 0 AZOT} + {-212616000 -3600 1 AZOST} + {-196891200 -7200 0 AZOT} + {-181166400 -3600 1 AZOST} + {-165441600 -7200 0 AZOT} + {-149716800 -3600 1 AZOST} + {-133992000 -7200 0 AZOT} + {-118267200 -3600 0 AZOT} + {228272400 0 1 AZOST} + {243997200 -3600 0 AZOT} + {260326800 0 1 AZOST} + {276051600 -3600 0 AZOT} + {291776400 0 1 AZOST} + {307504800 -3600 0 AZOT} + {323226000 0 1 AZOST} + {338954400 -3600 0 AZOT} + {354679200 0 1 AZOST} + {370404000 -3600 0 AZOT} + {386128800 0 1 AZOST} + {401853600 -3600 0 AZOT} + {417582000 0 1 AZOST} + {433303200 -3600 0 AZOT} + {449028000 0 1 AZOST} + {465357600 -3600 0 AZOT} + {481082400 0 1 AZOST} + {496807200 -3600 0 AZOT} + {512532000 0 1 AZOST} + {528256800 -3600 0 AZOT} + {543981600 0 1 AZOST} + {559706400 -3600 0 AZOT} + {575431200 0 1 AZOST} + {591156000 -3600 0 AZOT} + {606880800 0 1 AZOST} + {622605600 -3600 0 AZOT} + {638330400 0 1 AZOST} + {654660000 -3600 0 AZOT} + {670384800 0 1 AZOST} + {686109600 -3600 0 AZOT} + {701834400 0 1 AZOST} + {733280400 0 0 AZOST} + {749005200 -3600 0 AZOT} + {764730000 0 1 AZOST} + {780454800 -3600 0 AZOT} + {796179600 0 1 AZOST} + {811904400 -3600 0 AZOT} + {828234000 0 1 AZOST} + {846378000 -3600 0 AZOT} + {859683600 0 1 AZOST} + {877827600 -3600 0 AZOT} + {891133200 0 1 AZOST} + {909277200 -3600 0 AZOT} + {922582800 0 1 AZOST} + {941331600 -3600 0 AZOT} + {954032400 0 1 AZOST} + {972781200 -3600 0 AZOT} + {985482000 0 1 AZOST} + {1004230800 -3600 0 AZOT} + {1017536400 0 1 AZOST} + {1035680400 -3600 0 AZOT} + {1048986000 0 1 AZOST} + {1067130000 -3600 0 AZOT} + {1080435600 0 1 AZOST} + {1099184400 -3600 0 AZOT} + {1111885200 0 1 AZOST} + {1130634000 -3600 0 AZOT} + {1143334800 0 1 AZOST} + {1162083600 -3600 0 AZOT} + {1174784400 0 1 AZOST} + {1193533200 -3600 0 AZOT} + {1206838800 0 1 AZOST} + {1224982800 -3600 0 AZOT} + {1238288400 0 1 AZOST} + {1256432400 -3600 0 AZOT} + {1269738000 0 1 AZOST} + {1288486800 -3600 0 AZOT} + {1301187600 0 1 AZOST} + {1319936400 -3600 0 AZOT} + {1332637200 0 1 AZOST} + {1351386000 -3600 0 AZOT} + {1364691600 0 1 AZOST} + {1382835600 -3600 0 AZOT} + {1396141200 0 1 AZOST} + {1414285200 -3600 0 AZOT} + {1427590800 0 1 AZOST} + {1445734800 -3600 0 AZOT} + {1459040400 0 1 AZOST} + {1477789200 -3600 0 AZOT} + {1490490000 0 1 AZOST} + {1509238800 -3600 0 AZOT} + {1521939600 0 1 AZOST} + {1540688400 -3600 0 AZOT} + {1553994000 0 1 AZOST} + {1572138000 -3600 0 AZOT} + {1585443600 0 1 AZOST} + {1603587600 -3600 0 AZOT} + {1616893200 0 1 AZOST} + {1635642000 -3600 0 AZOT} + {1648342800 0 1 AZOST} + {1667091600 -3600 0 AZOT} + {1679792400 0 1 AZOST} + {1698541200 -3600 0 AZOT} + {1711846800 0 1 AZOST} + {1729990800 -3600 0 AZOT} + {1743296400 0 1 AZOST} + {1761440400 -3600 0 AZOT} + {1774746000 0 1 AZOST} + {1792890000 -3600 0 AZOT} + {1806195600 0 1 AZOST} + {1824944400 -3600 0 AZOT} + {1837645200 0 1 AZOST} + {1856394000 -3600 0 AZOT} + {1869094800 0 1 AZOST} + {1887843600 -3600 0 AZOT} + {1901149200 0 1 AZOST} + {1919293200 -3600 0 AZOT} + {1932598800 0 1 AZOST} + {1950742800 -3600 0 AZOT} + {1964048400 0 1 AZOST} + {1982797200 -3600 0 AZOT} + {1995498000 0 1 AZOST} + {2014246800 -3600 0 AZOT} + {2026947600 0 1 AZOST} + {2045696400 -3600 0 AZOT} + {2058397200 0 1 AZOST} + {2077146000 -3600 0 AZOT} + {2090451600 0 1 AZOST} + {2108595600 -3600 0 AZOT} + {2121901200 0 1 AZOST} + {2140045200 -3600 0 AZOT} + {2153350800 0 1 AZOST} + {2172099600 -3600 0 AZOT} + {2184800400 0 1 AZOST} + {2203549200 -3600 0 AZOT} + {2216250000 0 1 AZOST} + {2234998800 -3600 0 AZOT} + {2248304400 0 1 AZOST} + {2266448400 -3600 0 AZOT} + {2279754000 0 1 AZOST} + {2297898000 -3600 0 AZOT} + {2311203600 0 1 AZOST} + {2329347600 -3600 0 AZOT} + {2342653200 0 1 AZOST} + {2361402000 -3600 0 AZOT} + {2374102800 0 1 AZOST} + {2392851600 -3600 0 AZOT} + {2405552400 0 1 AZOST} + {2424301200 -3600 0 AZOT} + {2437606800 0 1 AZOST} + {2455750800 -3600 0 AZOT} + {2469056400 0 1 AZOST} + {2487200400 -3600 0 AZOT} + {2500506000 0 1 AZOST} + {2519254800 -3600 0 AZOT} + {2531955600 0 1 AZOST} + {2550704400 -3600 0 AZOT} + {2563405200 0 1 AZOST} + {2582154000 -3600 0 AZOT} + {2595459600 0 1 AZOST} + {2613603600 -3600 0 AZOT} + {2626909200 0 1 AZOST} + {2645053200 -3600 0 AZOT} + {2658358800 0 1 AZOST} + {2676502800 -3600 0 AZOT} + {2689808400 0 1 AZOST} + {2708557200 -3600 0 AZOT} + {2721258000 0 1 AZOST} + {2740006800 -3600 0 AZOT} + {2752707600 0 1 AZOST} + {2771456400 -3600 0 AZOT} + {2784762000 0 1 AZOST} + {2802906000 -3600 0 AZOT} + {2816211600 0 1 AZOST} + {2834355600 -3600 0 AZOT} + {2847661200 0 1 AZOST} + {2866410000 -3600 0 AZOT} + {2879110800 0 1 AZOST} + {2897859600 -3600 0 AZOT} + {2910560400 0 1 AZOST} + {2929309200 -3600 0 AZOT} + {2942010000 0 1 AZOST} + {2960758800 -3600 0 AZOT} + {2974064400 0 1 AZOST} + {2992208400 -3600 0 AZOT} + {3005514000 0 1 AZOST} + {3023658000 -3600 0 AZOT} + {3036963600 0 1 AZOST} + {3055712400 -3600 0 AZOT} + {3068413200 0 1 AZOST} + {3087162000 -3600 0 AZOT} + {3099862800 0 1 AZOST} + {3118611600 -3600 0 AZOT} + {3131917200 0 1 AZOST} + {3150061200 -3600 0 AZOT} + {3163366800 0 1 AZOST} + {3181510800 -3600 0 AZOT} + {3194816400 0 1 AZOST} + {3212960400 -3600 0 AZOT} + {3226266000 0 1 AZOST} + {3245014800 -3600 0 AZOT} + {3257715600 0 1 AZOST} + {3276464400 -3600 0 AZOT} + {3289165200 0 1 AZOST} + {3307914000 -3600 0 AZOT} + {3321219600 0 1 AZOST} + {3339363600 -3600 0 AZOT} + {3352669200 0 1 AZOST} + {3370813200 -3600 0 AZOT} + {3384118800 0 1 AZOST} + {3402867600 -3600 0 AZOT} + {3415568400 0 1 AZOST} + {3434317200 -3600 0 AZOT} + {3447018000 0 1 AZOST} + {3465766800 -3600 0 AZOT} + {3479072400 0 1 AZOST} + {3497216400 -3600 0 AZOT} + {3510522000 0 1 AZOST} + {3528666000 -3600 0 AZOT} + {3541971600 0 1 AZOST} + {3560115600 -3600 0 AZOT} + {3573421200 0 1 AZOST} + {3592170000 -3600 0 AZOT} + {3604870800 0 1 AZOST} + {3623619600 -3600 0 AZOT} + {3636320400 0 1 AZOST} + {3655069200 -3600 0 AZOT} + {3668374800 0 1 AZOST} + {3686518800 -3600 0 AZOT} + {3699824400 0 1 AZOST} + {3717968400 -3600 0 AZOT} + {3731274000 0 1 AZOST} + {3750022800 -3600 0 AZOT} + {3762723600 0 1 AZOST} + {3781472400 -3600 0 AZOT} + {3794173200 0 1 AZOST} + {3812922000 -3600 0 AZOT} + {3825622800 0 1 AZOST} + {3844371600 -3600 0 AZOT} + {3857677200 0 1 AZOST} + {3875821200 -3600 0 AZOT} + {3889126800 0 1 AZOST} + {3907270800 -3600 0 AZOT} + {3920576400 0 1 AZOST} + {3939325200 -3600 0 AZOT} + {3952026000 0 1 AZOST} + {3970774800 -3600 0 AZOT} + {3983475600 0 1 AZOST} + {4002224400 -3600 0 AZOT} + {4015530000 0 1 AZOST} + {4033674000 -3600 0 AZOT} + {4046979600 0 1 AZOST} + {4065123600 -3600 0 AZOT} + {4078429200 0 1 AZOST} + {4096573200 -3600 0 AZOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda b/mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda new file mode 100644 index 00000000..e8b165a0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda @@ -0,0 +1,259 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Bermuda) { + {-9223372036854775808 -15544 0 LMT} + {-1262281256 -14400 0 AST} + {136360800 -10800 0 ADT} + {152082000 -14400 0 AST} + {167810400 -10800 1 ADT} + {183531600 -14400 0 AST} + {189316800 -14400 0 AST} + {199260000 -10800 1 ADT} + {215586000 -14400 0 AST} + {230709600 -10800 1 ADT} + {247035600 -14400 0 AST} + {262764000 -10800 1 ADT} + {278485200 -14400 0 AST} + {294213600 -10800 1 ADT} + {309934800 -14400 0 AST} + {325663200 -10800 1 ADT} + {341384400 -14400 0 AST} + {357112800 -10800 1 ADT} + {372834000 -14400 0 AST} + {388562400 -10800 1 ADT} + {404888400 -14400 0 AST} + {420012000 -10800 1 ADT} + {436338000 -14400 0 AST} + {452066400 -10800 1 ADT} + {467787600 -14400 0 AST} + {483516000 -10800 1 ADT} + {499237200 -14400 0 AST} + {514965600 -10800 1 ADT} + {530686800 -14400 0 AST} + {544600800 -10800 1 ADT} + {562136400 -14400 0 AST} + {576050400 -10800 1 ADT} + {594190800 -14400 0 AST} + {607500000 -10800 1 ADT} + {625640400 -14400 0 AST} + {638949600 -10800 1 ADT} + {657090000 -14400 0 AST} + {671004000 -10800 1 ADT} + {688539600 -14400 0 AST} + {702453600 -10800 1 ADT} + {719989200 -14400 0 AST} + {733903200 -10800 1 ADT} + {752043600 -14400 0 AST} + {765352800 -10800 1 ADT} + {783493200 -14400 0 AST} + {796802400 -10800 1 ADT} + {814942800 -14400 0 AST} + {828856800 -10800 1 ADT} + {846392400 -14400 0 AST} + {860306400 -10800 1 ADT} + {877842000 -14400 0 AST} + {891756000 -10800 1 ADT} + {909291600 -14400 0 AST} + {923205600 -10800 1 ADT} + {941346000 -14400 0 AST} + {954655200 -10800 1 ADT} + {972795600 -14400 0 AST} + {986104800 -10800 1 ADT} + {1004245200 -14400 0 AST} + {1018159200 -10800 1 ADT} + {1035694800 -14400 0 AST} + {1049608800 -10800 1 ADT} + {1067144400 -14400 0 AST} + {1081058400 -10800 1 ADT} + {1099198800 -14400 0 AST} + {1112508000 -10800 1 ADT} + {1130648400 -14400 0 AST} + {1143957600 -10800 1 ADT} + {1162098000 -14400 0 AST} + {1173592800 -10800 1 ADT} + {1194152400 -14400 0 AST} + {1205042400 -10800 1 ADT} + {1225602000 -14400 0 AST} + {1236492000 -10800 1 ADT} + {1257051600 -14400 0 AST} + {1268546400 -10800 1 ADT} + {1289106000 -14400 0 AST} + {1299996000 -10800 1 ADT} + {1320555600 -14400 0 AST} + {1331445600 -10800 1 ADT} + {1352005200 -14400 0 AST} + {1362895200 -10800 1 ADT} + {1383454800 -14400 0 AST} + {1394344800 -10800 1 ADT} + {1414904400 -14400 0 AST} + {1425794400 -10800 1 ADT} + {1446354000 -14400 0 AST} + {1457848800 -10800 1 ADT} + {1478408400 -14400 0 AST} + {1489298400 -10800 1 ADT} + {1509858000 -14400 0 AST} + {1520748000 -10800 1 ADT} + {1541307600 -14400 0 AST} + {1552197600 -10800 1 ADT} + {1572757200 -14400 0 AST} + {1583647200 -10800 1 ADT} + {1604206800 -14400 0 AST} + {1615701600 -10800 1 ADT} + {1636261200 -14400 0 AST} + {1647151200 -10800 1 ADT} + {1667710800 -14400 0 AST} + {1678600800 -10800 1 ADT} + {1699160400 -14400 0 AST} + {1710050400 -10800 1 ADT} + {1730610000 -14400 0 AST} + {1741500000 -10800 1 ADT} + {1762059600 -14400 0 AST} + {1772949600 -10800 1 ADT} + {1793509200 -14400 0 AST} + {1805004000 -10800 1 ADT} + {1825563600 -14400 0 AST} + {1836453600 -10800 1 ADT} + {1857013200 -14400 0 AST} + {1867903200 -10800 1 ADT} + {1888462800 -14400 0 AST} + {1899352800 -10800 1 ADT} + {1919912400 -14400 0 AST} + {1930802400 -10800 1 ADT} + {1951362000 -14400 0 AST} + {1962856800 -10800 1 ADT} + {1983416400 -14400 0 AST} + {1994306400 -10800 1 ADT} + {2014866000 -14400 0 AST} + {2025756000 -10800 1 ADT} + {2046315600 -14400 0 AST} + {2057205600 -10800 1 ADT} + {2077765200 -14400 0 AST} + {2088655200 -10800 1 ADT} + {2109214800 -14400 0 AST} + {2120104800 -10800 1 ADT} + {2140664400 -14400 0 AST} + {2152159200 -10800 1 ADT} + {2172718800 -14400 0 AST} + {2183608800 -10800 1 ADT} + {2204168400 -14400 0 AST} + {2215058400 -10800 1 ADT} + {2235618000 -14400 0 AST} + {2246508000 -10800 1 ADT} + {2267067600 -14400 0 AST} + {2277957600 -10800 1 ADT} + {2298517200 -14400 0 AST} + {2309407200 -10800 1 ADT} + {2329966800 -14400 0 AST} + {2341461600 -10800 1 ADT} + {2362021200 -14400 0 AST} + {2372911200 -10800 1 ADT} + {2393470800 -14400 0 AST} + {2404360800 -10800 1 ADT} + {2424920400 -14400 0 AST} + {2435810400 -10800 1 ADT} + {2456370000 -14400 0 AST} + {2467260000 -10800 1 ADT} + {2487819600 -14400 0 AST} + {2499314400 -10800 1 ADT} + {2519874000 -14400 0 AST} + {2530764000 -10800 1 ADT} + {2551323600 -14400 0 AST} + {2562213600 -10800 1 ADT} + {2582773200 -14400 0 AST} + {2593663200 -10800 1 ADT} + {2614222800 -14400 0 AST} + {2625112800 -10800 1 ADT} + {2645672400 -14400 0 AST} + {2656562400 -10800 1 ADT} + {2677122000 -14400 0 AST} + {2688616800 -10800 1 ADT} + {2709176400 -14400 0 AST} + {2720066400 -10800 1 ADT} + {2740626000 -14400 0 AST} + {2751516000 -10800 1 ADT} + {2772075600 -14400 0 AST} + {2782965600 -10800 1 ADT} + {2803525200 -14400 0 AST} + {2814415200 -10800 1 ADT} + {2834974800 -14400 0 AST} + {2846469600 -10800 1 ADT} + {2867029200 -14400 0 AST} + {2877919200 -10800 1 ADT} + {2898478800 -14400 0 AST} + {2909368800 -10800 1 ADT} + {2929928400 -14400 0 AST} + {2940818400 -10800 1 ADT} + {2961378000 -14400 0 AST} + {2972268000 -10800 1 ADT} + {2992827600 -14400 0 AST} + {3003717600 -10800 1 ADT} + {3024277200 -14400 0 AST} + {3035772000 -10800 1 ADT} + {3056331600 -14400 0 AST} + {3067221600 -10800 1 ADT} + {3087781200 -14400 0 AST} + {3098671200 -10800 1 ADT} + {3119230800 -14400 0 AST} + {3130120800 -10800 1 ADT} + {3150680400 -14400 0 AST} + {3161570400 -10800 1 ADT} + {3182130000 -14400 0 AST} + {3193020000 -10800 1 ADT} + {3213579600 -14400 0 AST} + {3225074400 -10800 1 ADT} + {3245634000 -14400 0 AST} + {3256524000 -10800 1 ADT} + {3277083600 -14400 0 AST} + {3287973600 -10800 1 ADT} + {3308533200 -14400 0 AST} + {3319423200 -10800 1 ADT} + {3339982800 -14400 0 AST} + {3350872800 -10800 1 ADT} + {3371432400 -14400 0 AST} + {3382927200 -10800 1 ADT} + {3403486800 -14400 0 AST} + {3414376800 -10800 1 ADT} + {3434936400 -14400 0 AST} + {3445826400 -10800 1 ADT} + {3466386000 -14400 0 AST} + {3477276000 -10800 1 ADT} + {3497835600 -14400 0 AST} + {3508725600 -10800 1 ADT} + {3529285200 -14400 0 AST} + {3540175200 -10800 1 ADT} + {3560734800 -14400 0 AST} + {3572229600 -10800 1 ADT} + {3592789200 -14400 0 AST} + {3603679200 -10800 1 ADT} + {3624238800 -14400 0 AST} + {3635128800 -10800 1 ADT} + {3655688400 -14400 0 AST} + {3666578400 -10800 1 ADT} + {3687138000 -14400 0 AST} + {3698028000 -10800 1 ADT} + {3718587600 -14400 0 AST} + {3730082400 -10800 1 ADT} + {3750642000 -14400 0 AST} + {3761532000 -10800 1 ADT} + {3782091600 -14400 0 AST} + {3792981600 -10800 1 ADT} + {3813541200 -14400 0 AST} + {3824431200 -10800 1 ADT} + {3844990800 -14400 0 AST} + {3855880800 -10800 1 ADT} + {3876440400 -14400 0 AST} + {3887330400 -10800 1 ADT} + {3907890000 -14400 0 AST} + {3919384800 -10800 1 ADT} + {3939944400 -14400 0 AST} + {3950834400 -10800 1 ADT} + {3971394000 -14400 0 AST} + {3982284000 -10800 1 ADT} + {4002843600 -14400 0 AST} + {4013733600 -10800 1 ADT} + {4034293200 -14400 0 AST} + {4045183200 -10800 1 ADT} + {4065742800 -14400 0 AST} + {4076632800 -10800 1 ADT} + {4097192400 -14400 0 AST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Canary b/mingw/lib/tcl8.5/tzdata/Atlantic/Canary new file mode 100644 index 00000000..4b802c77 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Canary @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Canary) { + {-9223372036854775808 -3696 0 LMT} + {-1509663504 -3600 0 CANT} + {-733874400 0 0 WET} + {323827200 3600 1 WEST} + {338947200 3600 0 WEST} + {338950800 0 0 WET} + {354675600 3600 1 WEST} + {370400400 0 0 WET} + {386125200 3600 1 WEST} + {401850000 0 0 WET} + {417574800 3600 1 WEST} + {433299600 0 0 WET} + {449024400 3600 1 WEST} + {465354000 0 0 WET} + {481078800 3600 1 WEST} + {496803600 0 0 WET} + {512528400 3600 1 WEST} + {528253200 0 0 WET} + {543978000 3600 1 WEST} + {559702800 0 0 WET} + {575427600 3600 1 WEST} + {591152400 0 0 WET} + {606877200 3600 1 WEST} + {622602000 0 0 WET} + {638326800 3600 1 WEST} + {654656400 0 0 WET} + {670381200 3600 1 WEST} + {686106000 0 0 WET} + {701830800 3600 1 WEST} + {717555600 0 0 WET} + {733280400 3600 1 WEST} + {749005200 0 0 WET} + {764730000 3600 1 WEST} + {780454800 0 0 WET} + {796179600 3600 1 WEST} + {811904400 0 0 WET} + {828234000 3600 1 WEST} + {846378000 0 0 WET} + {859683600 3600 1 WEST} + {877827600 0 0 WET} + {891133200 3600 1 WEST} + {909277200 0 0 WET} + {922582800 3600 1 WEST} + {941331600 0 0 WET} + {954032400 3600 1 WEST} + {972781200 0 0 WET} + {985482000 3600 1 WEST} + {1004230800 0 0 WET} + {1017536400 3600 1 WEST} + {1035680400 0 0 WET} + {1048986000 3600 1 WEST} + {1067130000 0 0 WET} + {1080435600 3600 1 WEST} + {1099184400 0 0 WET} + {1111885200 3600 1 WEST} + {1130634000 0 0 WET} + {1143334800 3600 1 WEST} + {1162083600 0 0 WET} + {1174784400 3600 1 WEST} + {1193533200 0 0 WET} + {1206838800 3600 1 WEST} + {1224982800 0 0 WET} + {1238288400 3600 1 WEST} + {1256432400 0 0 WET} + {1269738000 3600 1 WEST} + {1288486800 0 0 WET} + {1301187600 3600 1 WEST} + {1319936400 0 0 WET} + {1332637200 3600 1 WEST} + {1351386000 0 0 WET} + {1364691600 3600 1 WEST} + {1382835600 0 0 WET} + {1396141200 3600 1 WEST} + {1414285200 0 0 WET} + {1427590800 3600 1 WEST} + {1445734800 0 0 WET} + {1459040400 3600 1 WEST} + {1477789200 0 0 WET} + {1490490000 3600 1 WEST} + {1509238800 0 0 WET} + {1521939600 3600 1 WEST} + {1540688400 0 0 WET} + {1553994000 3600 1 WEST} + {1572138000 0 0 WET} + {1585443600 3600 1 WEST} + {1603587600 0 0 WET} + {1616893200 3600 1 WEST} + {1635642000 0 0 WET} + {1648342800 3600 1 WEST} + {1667091600 0 0 WET} + {1679792400 3600 1 WEST} + {1698541200 0 0 WET} + {1711846800 3600 1 WEST} + {1729990800 0 0 WET} + {1743296400 3600 1 WEST} + {1761440400 0 0 WET} + {1774746000 3600 1 WEST} + {1792890000 0 0 WET} + {1806195600 3600 1 WEST} + {1824944400 0 0 WET} + {1837645200 3600 1 WEST} + {1856394000 0 0 WET} + {1869094800 3600 1 WEST} + {1887843600 0 0 WET} + {1901149200 3600 1 WEST} + {1919293200 0 0 WET} + {1932598800 3600 1 WEST} + {1950742800 0 0 WET} + {1964048400 3600 1 WEST} + {1982797200 0 0 WET} + {1995498000 3600 1 WEST} + {2014246800 0 0 WET} + {2026947600 3600 1 WEST} + {2045696400 0 0 WET} + {2058397200 3600 1 WEST} + {2077146000 0 0 WET} + {2090451600 3600 1 WEST} + {2108595600 0 0 WET} + {2121901200 3600 1 WEST} + {2140045200 0 0 WET} + {2153350800 3600 1 WEST} + {2172099600 0 0 WET} + {2184800400 3600 1 WEST} + {2203549200 0 0 WET} + {2216250000 3600 1 WEST} + {2234998800 0 0 WET} + {2248304400 3600 1 WEST} + {2266448400 0 0 WET} + {2279754000 3600 1 WEST} + {2297898000 0 0 WET} + {2311203600 3600 1 WEST} + {2329347600 0 0 WET} + {2342653200 3600 1 WEST} + {2361402000 0 0 WET} + {2374102800 3600 1 WEST} + {2392851600 0 0 WET} + {2405552400 3600 1 WEST} + {2424301200 0 0 WET} + {2437606800 3600 1 WEST} + {2455750800 0 0 WET} + {2469056400 3600 1 WEST} + {2487200400 0 0 WET} + {2500506000 3600 1 WEST} + {2519254800 0 0 WET} + {2531955600 3600 1 WEST} + {2550704400 0 0 WET} + {2563405200 3600 1 WEST} + {2582154000 0 0 WET} + {2595459600 3600 1 WEST} + {2613603600 0 0 WET} + {2626909200 3600 1 WEST} + {2645053200 0 0 WET} + {2658358800 3600 1 WEST} + {2676502800 0 0 WET} + {2689808400 3600 1 WEST} + {2708557200 0 0 WET} + {2721258000 3600 1 WEST} + {2740006800 0 0 WET} + {2752707600 3600 1 WEST} + {2771456400 0 0 WET} + {2784762000 3600 1 WEST} + {2802906000 0 0 WET} + {2816211600 3600 1 WEST} + {2834355600 0 0 WET} + {2847661200 3600 1 WEST} + {2866410000 0 0 WET} + {2879110800 3600 1 WEST} + {2897859600 0 0 WET} + {2910560400 3600 1 WEST} + {2929309200 0 0 WET} + {2942010000 3600 1 WEST} + {2960758800 0 0 WET} + {2974064400 3600 1 WEST} + {2992208400 0 0 WET} + {3005514000 3600 1 WEST} + {3023658000 0 0 WET} + {3036963600 3600 1 WEST} + {3055712400 0 0 WET} + {3068413200 3600 1 WEST} + {3087162000 0 0 WET} + {3099862800 3600 1 WEST} + {3118611600 0 0 WET} + {3131917200 3600 1 WEST} + {3150061200 0 0 WET} + {3163366800 3600 1 WEST} + {3181510800 0 0 WET} + {3194816400 3600 1 WEST} + {3212960400 0 0 WET} + {3226266000 3600 1 WEST} + {3245014800 0 0 WET} + {3257715600 3600 1 WEST} + {3276464400 0 0 WET} + {3289165200 3600 1 WEST} + {3307914000 0 0 WET} + {3321219600 3600 1 WEST} + {3339363600 0 0 WET} + {3352669200 3600 1 WEST} + {3370813200 0 0 WET} + {3384118800 3600 1 WEST} + {3402867600 0 0 WET} + {3415568400 3600 1 WEST} + {3434317200 0 0 WET} + {3447018000 3600 1 WEST} + {3465766800 0 0 WET} + {3479072400 3600 1 WEST} + {3497216400 0 0 WET} + {3510522000 3600 1 WEST} + {3528666000 0 0 WET} + {3541971600 3600 1 WEST} + {3560115600 0 0 WET} + {3573421200 3600 1 WEST} + {3592170000 0 0 WET} + {3604870800 3600 1 WEST} + {3623619600 0 0 WET} + {3636320400 3600 1 WEST} + {3655069200 0 0 WET} + {3668374800 3600 1 WEST} + {3686518800 0 0 WET} + {3699824400 3600 1 WEST} + {3717968400 0 0 WET} + {3731274000 3600 1 WEST} + {3750022800 0 0 WET} + {3762723600 3600 1 WEST} + {3781472400 0 0 WET} + {3794173200 3600 1 WEST} + {3812922000 0 0 WET} + {3825622800 3600 1 WEST} + {3844371600 0 0 WET} + {3857677200 3600 1 WEST} + {3875821200 0 0 WET} + {3889126800 3600 1 WEST} + {3907270800 0 0 WET} + {3920576400 3600 1 WEST} + {3939325200 0 0 WET} + {3952026000 3600 1 WEST} + {3970774800 0 0 WET} + {3983475600 3600 1 WEST} + {4002224400 0 0 WET} + {4015530000 3600 1 WEST} + {4033674000 0 0 WET} + {4046979600 3600 1 WEST} + {4065123600 0 0 WET} + {4078429200 3600 1 WEST} + {4096573200 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde b/mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde new file mode 100644 index 00000000..f0bb79f7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Cape_Verde) { + {-9223372036854775808 -5644 0 LMT} + {-1988144756 -7200 0 CVT} + {-862610400 -3600 1 CVST} + {-764118000 -7200 0 CVT} + {186120000 -3600 0 CVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe b/mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe new file mode 100644 index 00000000..4cafc340 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Atlantic/Faroe)]} { + LoadTimeZoneFile Atlantic/Faroe +} +set TZData(:Atlantic/Faeroe) $TZData(:Atlantic/Faroe) diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Faroe b/mingw/lib/tcl8.5/tzdata/Atlantic/Faroe new file mode 100644 index 00000000..d2c314a3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Faroe @@ -0,0 +1,245 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Faroe) { + {-9223372036854775808 -1624 0 LMT} + {-1955748776 0 0 WET} + {347155200 0 0 WET} + {354675600 3600 1 WEST} + {370400400 0 0 WET} + {386125200 3600 1 WEST} + {401850000 0 0 WET} + {417574800 3600 1 WEST} + {433299600 0 0 WET} + {449024400 3600 1 WEST} + {465354000 0 0 WET} + {481078800 3600 1 WEST} + {496803600 0 0 WET} + {512528400 3600 1 WEST} + {528253200 0 0 WET} + {543978000 3600 1 WEST} + {559702800 0 0 WET} + {575427600 3600 1 WEST} + {591152400 0 0 WET} + {606877200 3600 1 WEST} + {622602000 0 0 WET} + {638326800 3600 1 WEST} + {654656400 0 0 WET} + {670381200 3600 1 WEST} + {686106000 0 0 WET} + {701830800 3600 1 WEST} + {717555600 0 0 WET} + {733280400 3600 1 WEST} + {749005200 0 0 WET} + {764730000 3600 1 WEST} + {780454800 0 0 WET} + {796179600 3600 1 WEST} + {811904400 0 0 WET} + {828234000 3600 1 WEST} + {846378000 0 0 WET} + {859683600 3600 1 WEST} + {877827600 0 0 WET} + {891133200 3600 1 WEST} + {909277200 0 0 WET} + {922582800 3600 1 WEST} + {941331600 0 0 WET} + {954032400 3600 1 WEST} + {972781200 0 0 WET} + {985482000 3600 1 WEST} + {1004230800 0 0 WET} + {1017536400 3600 1 WEST} + {1035680400 0 0 WET} + {1048986000 3600 1 WEST} + {1067130000 0 0 WET} + {1080435600 3600 1 WEST} + {1099184400 0 0 WET} + {1111885200 3600 1 WEST} + {1130634000 0 0 WET} + {1143334800 3600 1 WEST} + {1162083600 0 0 WET} + {1174784400 3600 1 WEST} + {1193533200 0 0 WET} + {1206838800 3600 1 WEST} + {1224982800 0 0 WET} + {1238288400 3600 1 WEST} + {1256432400 0 0 WET} + {1269738000 3600 1 WEST} + {1288486800 0 0 WET} + {1301187600 3600 1 WEST} + {1319936400 0 0 WET} + {1332637200 3600 1 WEST} + {1351386000 0 0 WET} + {1364691600 3600 1 WEST} + {1382835600 0 0 WET} + {1396141200 3600 1 WEST} + {1414285200 0 0 WET} + {1427590800 3600 1 WEST} + {1445734800 0 0 WET} + {1459040400 3600 1 WEST} + {1477789200 0 0 WET} + {1490490000 3600 1 WEST} + {1509238800 0 0 WET} + {1521939600 3600 1 WEST} + {1540688400 0 0 WET} + {1553994000 3600 1 WEST} + {1572138000 0 0 WET} + {1585443600 3600 1 WEST} + {1603587600 0 0 WET} + {1616893200 3600 1 WEST} + {1635642000 0 0 WET} + {1648342800 3600 1 WEST} + {1667091600 0 0 WET} + {1679792400 3600 1 WEST} + {1698541200 0 0 WET} + {1711846800 3600 1 WEST} + {1729990800 0 0 WET} + {1743296400 3600 1 WEST} + {1761440400 0 0 WET} + {1774746000 3600 1 WEST} + {1792890000 0 0 WET} + {1806195600 3600 1 WEST} + {1824944400 0 0 WET} + {1837645200 3600 1 WEST} + {1856394000 0 0 WET} + {1869094800 3600 1 WEST} + {1887843600 0 0 WET} + {1901149200 3600 1 WEST} + {1919293200 0 0 WET} + {1932598800 3600 1 WEST} + {1950742800 0 0 WET} + {1964048400 3600 1 WEST} + {1982797200 0 0 WET} + {1995498000 3600 1 WEST} + {2014246800 0 0 WET} + {2026947600 3600 1 WEST} + {2045696400 0 0 WET} + {2058397200 3600 1 WEST} + {2077146000 0 0 WET} + {2090451600 3600 1 WEST} + {2108595600 0 0 WET} + {2121901200 3600 1 WEST} + {2140045200 0 0 WET} + {2153350800 3600 1 WEST} + {2172099600 0 0 WET} + {2184800400 3600 1 WEST} + {2203549200 0 0 WET} + {2216250000 3600 1 WEST} + {2234998800 0 0 WET} + {2248304400 3600 1 WEST} + {2266448400 0 0 WET} + {2279754000 3600 1 WEST} + {2297898000 0 0 WET} + {2311203600 3600 1 WEST} + {2329347600 0 0 WET} + {2342653200 3600 1 WEST} + {2361402000 0 0 WET} + {2374102800 3600 1 WEST} + {2392851600 0 0 WET} + {2405552400 3600 1 WEST} + {2424301200 0 0 WET} + {2437606800 3600 1 WEST} + {2455750800 0 0 WET} + {2469056400 3600 1 WEST} + {2487200400 0 0 WET} + {2500506000 3600 1 WEST} + {2519254800 0 0 WET} + {2531955600 3600 1 WEST} + {2550704400 0 0 WET} + {2563405200 3600 1 WEST} + {2582154000 0 0 WET} + {2595459600 3600 1 WEST} + {2613603600 0 0 WET} + {2626909200 3600 1 WEST} + {2645053200 0 0 WET} + {2658358800 3600 1 WEST} + {2676502800 0 0 WET} + {2689808400 3600 1 WEST} + {2708557200 0 0 WET} + {2721258000 3600 1 WEST} + {2740006800 0 0 WET} + {2752707600 3600 1 WEST} + {2771456400 0 0 WET} + {2784762000 3600 1 WEST} + {2802906000 0 0 WET} + {2816211600 3600 1 WEST} + {2834355600 0 0 WET} + {2847661200 3600 1 WEST} + {2866410000 0 0 WET} + {2879110800 3600 1 WEST} + {2897859600 0 0 WET} + {2910560400 3600 1 WEST} + {2929309200 0 0 WET} + {2942010000 3600 1 WEST} + {2960758800 0 0 WET} + {2974064400 3600 1 WEST} + {2992208400 0 0 WET} + {3005514000 3600 1 WEST} + {3023658000 0 0 WET} + {3036963600 3600 1 WEST} + {3055712400 0 0 WET} + {3068413200 3600 1 WEST} + {3087162000 0 0 WET} + {3099862800 3600 1 WEST} + {3118611600 0 0 WET} + {3131917200 3600 1 WEST} + {3150061200 0 0 WET} + {3163366800 3600 1 WEST} + {3181510800 0 0 WET} + {3194816400 3600 1 WEST} + {3212960400 0 0 WET} + {3226266000 3600 1 WEST} + {3245014800 0 0 WET} + {3257715600 3600 1 WEST} + {3276464400 0 0 WET} + {3289165200 3600 1 WEST} + {3307914000 0 0 WET} + {3321219600 3600 1 WEST} + {3339363600 0 0 WET} + {3352669200 3600 1 WEST} + {3370813200 0 0 WET} + {3384118800 3600 1 WEST} + {3402867600 0 0 WET} + {3415568400 3600 1 WEST} + {3434317200 0 0 WET} + {3447018000 3600 1 WEST} + {3465766800 0 0 WET} + {3479072400 3600 1 WEST} + {3497216400 0 0 WET} + {3510522000 3600 1 WEST} + {3528666000 0 0 WET} + {3541971600 3600 1 WEST} + {3560115600 0 0 WET} + {3573421200 3600 1 WEST} + {3592170000 0 0 WET} + {3604870800 3600 1 WEST} + {3623619600 0 0 WET} + {3636320400 3600 1 WEST} + {3655069200 0 0 WET} + {3668374800 3600 1 WEST} + {3686518800 0 0 WET} + {3699824400 3600 1 WEST} + {3717968400 0 0 WET} + {3731274000 3600 1 WEST} + {3750022800 0 0 WET} + {3762723600 3600 1 WEST} + {3781472400 0 0 WET} + {3794173200 3600 1 WEST} + {3812922000 0 0 WET} + {3825622800 3600 1 WEST} + {3844371600 0 0 WET} + {3857677200 3600 1 WEST} + {3875821200 0 0 WET} + {3889126800 3600 1 WEST} + {3907270800 0 0 WET} + {3920576400 3600 1 WEST} + {3939325200 0 0 WET} + {3952026000 3600 1 WEST} + {3970774800 0 0 WET} + {3983475600 3600 1 WEST} + {4002224400 0 0 WET} + {4015530000 3600 1 WEST} + {4033674000 0 0 WET} + {4046979600 3600 1 WEST} + {4065123600 0 0 WET} + {4078429200 3600 1 WEST} + {4096573200 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen b/mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen new file mode 100644 index 00000000..e5921878 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Oslo)]} { + LoadTimeZoneFile Europe/Oslo +} +set TZData(:Atlantic/Jan_Mayen) $TZData(:Europe/Oslo) diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Madeira b/mingw/lib/tcl8.5/tzdata/Atlantic/Madeira new file mode 100644 index 00000000..4960eeb5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Madeira @@ -0,0 +1,350 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Madeira) { + {-9223372036854775808 -4056 0 LMT} + {-2713906344 -4056 0 FMT} + {-1849560744 -3600 0 MADT} + {-1689552000 0 1 MADST} + {-1677798000 -3600 0 MADT} + {-1667433600 0 1 MADST} + {-1647734400 -3600 0 MADT} + {-1635811200 0 1 MADST} + {-1616198400 -3600 0 MADT} + {-1604361600 0 1 MADST} + {-1584662400 -3600 0 MADT} + {-1572739200 0 1 MADST} + {-1553040000 -3600 0 MADT} + {-1541203200 0 1 MADST} + {-1521504000 -3600 0 MADT} + {-1442448000 0 1 MADST} + {-1426809600 -3600 0 MADT} + {-1379289600 0 1 MADST} + {-1364774400 -3600 0 MADT} + {-1348444800 0 1 MADST} + {-1333324800 -3600 0 MADT} + {-1316390400 0 1 MADST} + {-1301270400 -3600 0 MADT} + {-1284336000 0 1 MADST} + {-1269820800 -3600 0 MADT} + {-1221436800 0 1 MADST} + {-1206921600 -3600 0 MADT} + {-1191196800 0 1 MADST} + {-1175472000 -3600 0 MADT} + {-1127692800 0 1 MADST} + {-1111968000 -3600 0 MADT} + {-1096848000 0 1 MADST} + {-1080518400 -3600 0 MADT} + {-1063584000 0 1 MADST} + {-1049068800 -3600 0 MADT} + {-1033344000 0 1 MADST} + {-1017619200 -3600 0 MADT} + {-1002499200 0 1 MADST} + {-986169600 -3600 0 MADT} + {-969235200 0 1 MADST} + {-950486400 -3600 0 MADT} + {-942019200 0 1 MADST} + {-922665600 -3600 0 MADT} + {-906940800 0 1 MADST} + {-891129600 -3600 0 MADT} + {-877305600 0 1 MADST} + {-873680400 3600 1 MADMT} + {-864003600 0 1 MADST} + {-857952000 -3600 0 MADT} + {-845856000 0 1 MADST} + {-842835600 3600 1 MADMT} + {-831344400 0 1 MADST} + {-825897600 -3600 0 MADT} + {-814406400 0 1 MADST} + {-810781200 3600 1 MADMT} + {-799894800 0 1 MADST} + {-794448000 -3600 0 MADT} + {-782956800 0 1 MADST} + {-779331600 3600 1 MADMT} + {-768445200 0 1 MADST} + {-762998400 -3600 0 MADT} + {-749088000 0 1 MADST} + {-733363200 -3600 0 MADT} + {-717627600 0 1 MADST} + {-701902800 -3600 0 MADT} + {-686178000 0 1 MADST} + {-670453200 -3600 0 MADT} + {-654728400 0 1 MADST} + {-639003600 -3600 0 MADT} + {-591829200 0 1 MADST} + {-575499600 -3600 0 MADT} + {-559774800 0 1 MADST} + {-544050000 -3600 0 MADT} + {-528325200 0 1 MADST} + {-512600400 -3600 0 MADT} + {-496875600 0 1 MADST} + {-481150800 -3600 0 MADT} + {-465426000 0 1 MADST} + {-449701200 -3600 0 MADT} + {-433976400 0 1 MADST} + {-417646800 -3600 0 MADT} + {-401922000 0 1 MADST} + {-386197200 -3600 0 MADT} + {-370472400 0 1 MADST} + {-354747600 -3600 0 MADT} + {-339022800 0 1 MADST} + {-323298000 -3600 0 MADT} + {-307573200 0 1 MADST} + {-291848400 -3600 0 MADT} + {-276123600 0 1 MADST} + {-260398800 -3600 0 MADT} + {-244674000 0 1 MADST} + {-228344400 -3600 0 MADT} + {-212619600 0 1 MADST} + {-196894800 -3600 0 MADT} + {-181170000 0 1 MADST} + {-165445200 -3600 0 MADT} + {-149720400 0 1 MADST} + {-133995600 -3600 0 MADT} + {-118270800 0 0 WET} + {228268800 3600 1 WEST} + {243993600 0 0 WET} + {260323200 3600 1 WEST} + {276048000 0 0 WET} + {291772800 3600 1 WEST} + {307501200 0 0 WET} + {323222400 3600 1 WEST} + {338950800 0 0 WET} + {354675600 3600 1 WEST} + {370400400 0 0 WET} + {386125200 3600 1 WEST} + {401850000 0 0 WET} + {417578400 3600 1 WEST} + {433299600 0 0 WET} + {449024400 3600 1 WEST} + {465354000 0 0 WET} + {481078800 3600 1 WEST} + {496803600 0 0 WET} + {512528400 3600 1 WEST} + {528253200 0 0 WET} + {543978000 3600 1 WEST} + {559702800 0 0 WET} + {575427600 3600 1 WEST} + {591152400 0 0 WET} + {606877200 3600 1 WEST} + {622602000 0 0 WET} + {638326800 3600 1 WEST} + {654656400 0 0 WET} + {670381200 3600 1 WEST} + {686106000 0 0 WET} + {701830800 3600 1 WEST} + {717555600 0 0 WET} + {733280400 3600 1 WEST} + {749005200 0 0 WET} + {764730000 3600 1 WEST} + {780454800 0 0 WET} + {796179600 3600 1 WEST} + {811904400 0 0 WET} + {828234000 3600 1 WEST} + {846378000 0 0 WET} + {859683600 3600 1 WEST} + {877827600 0 0 WET} + {891133200 3600 1 WEST} + {909277200 0 0 WET} + {922582800 3600 1 WEST} + {941331600 0 0 WET} + {954032400 3600 1 WEST} + {972781200 0 0 WET} + {985482000 3600 1 WEST} + {1004230800 0 0 WET} + {1017536400 3600 1 WEST} + {1035680400 0 0 WET} + {1048986000 3600 1 WEST} + {1067130000 0 0 WET} + {1080435600 3600 1 WEST} + {1099184400 0 0 WET} + {1111885200 3600 1 WEST} + {1130634000 0 0 WET} + {1143334800 3600 1 WEST} + {1162083600 0 0 WET} + {1174784400 3600 1 WEST} + {1193533200 0 0 WET} + {1206838800 3600 1 WEST} + {1224982800 0 0 WET} + {1238288400 3600 1 WEST} + {1256432400 0 0 WET} + {1269738000 3600 1 WEST} + {1288486800 0 0 WET} + {1301187600 3600 1 WEST} + {1319936400 0 0 WET} + {1332637200 3600 1 WEST} + {1351386000 0 0 WET} + {1364691600 3600 1 WEST} + {1382835600 0 0 WET} + {1396141200 3600 1 WEST} + {1414285200 0 0 WET} + {1427590800 3600 1 WEST} + {1445734800 0 0 WET} + {1459040400 3600 1 WEST} + {1477789200 0 0 WET} + {1490490000 3600 1 WEST} + {1509238800 0 0 WET} + {1521939600 3600 1 WEST} + {1540688400 0 0 WET} + {1553994000 3600 1 WEST} + {1572138000 0 0 WET} + {1585443600 3600 1 WEST} + {1603587600 0 0 WET} + {1616893200 3600 1 WEST} + {1635642000 0 0 WET} + {1648342800 3600 1 WEST} + {1667091600 0 0 WET} + {1679792400 3600 1 WEST} + {1698541200 0 0 WET} + {1711846800 3600 1 WEST} + {1729990800 0 0 WET} + {1743296400 3600 1 WEST} + {1761440400 0 0 WET} + {1774746000 3600 1 WEST} + {1792890000 0 0 WET} + {1806195600 3600 1 WEST} + {1824944400 0 0 WET} + {1837645200 3600 1 WEST} + {1856394000 0 0 WET} + {1869094800 3600 1 WEST} + {1887843600 0 0 WET} + {1901149200 3600 1 WEST} + {1919293200 0 0 WET} + {1932598800 3600 1 WEST} + {1950742800 0 0 WET} + {1964048400 3600 1 WEST} + {1982797200 0 0 WET} + {1995498000 3600 1 WEST} + {2014246800 0 0 WET} + {2026947600 3600 1 WEST} + {2045696400 0 0 WET} + {2058397200 3600 1 WEST} + {2077146000 0 0 WET} + {2090451600 3600 1 WEST} + {2108595600 0 0 WET} + {2121901200 3600 1 WEST} + {2140045200 0 0 WET} + {2153350800 3600 1 WEST} + {2172099600 0 0 WET} + {2184800400 3600 1 WEST} + {2203549200 0 0 WET} + {2216250000 3600 1 WEST} + {2234998800 0 0 WET} + {2248304400 3600 1 WEST} + {2266448400 0 0 WET} + {2279754000 3600 1 WEST} + {2297898000 0 0 WET} + {2311203600 3600 1 WEST} + {2329347600 0 0 WET} + {2342653200 3600 1 WEST} + {2361402000 0 0 WET} + {2374102800 3600 1 WEST} + {2392851600 0 0 WET} + {2405552400 3600 1 WEST} + {2424301200 0 0 WET} + {2437606800 3600 1 WEST} + {2455750800 0 0 WET} + {2469056400 3600 1 WEST} + {2487200400 0 0 WET} + {2500506000 3600 1 WEST} + {2519254800 0 0 WET} + {2531955600 3600 1 WEST} + {2550704400 0 0 WET} + {2563405200 3600 1 WEST} + {2582154000 0 0 WET} + {2595459600 3600 1 WEST} + {2613603600 0 0 WET} + {2626909200 3600 1 WEST} + {2645053200 0 0 WET} + {2658358800 3600 1 WEST} + {2676502800 0 0 WET} + {2689808400 3600 1 WEST} + {2708557200 0 0 WET} + {2721258000 3600 1 WEST} + {2740006800 0 0 WET} + {2752707600 3600 1 WEST} + {2771456400 0 0 WET} + {2784762000 3600 1 WEST} + {2802906000 0 0 WET} + {2816211600 3600 1 WEST} + {2834355600 0 0 WET} + {2847661200 3600 1 WEST} + {2866410000 0 0 WET} + {2879110800 3600 1 WEST} + {2897859600 0 0 WET} + {2910560400 3600 1 WEST} + {2929309200 0 0 WET} + {2942010000 3600 1 WEST} + {2960758800 0 0 WET} + {2974064400 3600 1 WEST} + {2992208400 0 0 WET} + {3005514000 3600 1 WEST} + {3023658000 0 0 WET} + {3036963600 3600 1 WEST} + {3055712400 0 0 WET} + {3068413200 3600 1 WEST} + {3087162000 0 0 WET} + {3099862800 3600 1 WEST} + {3118611600 0 0 WET} + {3131917200 3600 1 WEST} + {3150061200 0 0 WET} + {3163366800 3600 1 WEST} + {3181510800 0 0 WET} + {3194816400 3600 1 WEST} + {3212960400 0 0 WET} + {3226266000 3600 1 WEST} + {3245014800 0 0 WET} + {3257715600 3600 1 WEST} + {3276464400 0 0 WET} + {3289165200 3600 1 WEST} + {3307914000 0 0 WET} + {3321219600 3600 1 WEST} + {3339363600 0 0 WET} + {3352669200 3600 1 WEST} + {3370813200 0 0 WET} + {3384118800 3600 1 WEST} + {3402867600 0 0 WET} + {3415568400 3600 1 WEST} + {3434317200 0 0 WET} + {3447018000 3600 1 WEST} + {3465766800 0 0 WET} + {3479072400 3600 1 WEST} + {3497216400 0 0 WET} + {3510522000 3600 1 WEST} + {3528666000 0 0 WET} + {3541971600 3600 1 WEST} + {3560115600 0 0 WET} + {3573421200 3600 1 WEST} + {3592170000 0 0 WET} + {3604870800 3600 1 WEST} + {3623619600 0 0 WET} + {3636320400 3600 1 WEST} + {3655069200 0 0 WET} + {3668374800 3600 1 WEST} + {3686518800 0 0 WET} + {3699824400 3600 1 WEST} + {3717968400 0 0 WET} + {3731274000 3600 1 WEST} + {3750022800 0 0 WET} + {3762723600 3600 1 WEST} + {3781472400 0 0 WET} + {3794173200 3600 1 WEST} + {3812922000 0 0 WET} + {3825622800 3600 1 WEST} + {3844371600 0 0 WET} + {3857677200 3600 1 WEST} + {3875821200 0 0 WET} + {3889126800 3600 1 WEST} + {3907270800 0 0 WET} + {3920576400 3600 1 WEST} + {3939325200 0 0 WET} + {3952026000 3600 1 WEST} + {3970774800 0 0 WET} + {3983475600 3600 1 WEST} + {4002224400 0 0 WET} + {4015530000 3600 1 WEST} + {4033674000 0 0 WET} + {4046979600 3600 1 WEST} + {4065123600 0 0 WET} + {4078429200 3600 1 WEST} + {4096573200 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik b/mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik new file mode 100644 index 00000000..f0248adc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik @@ -0,0 +1,70 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Reykjavik) { + {-9223372036854775808 -5244 0 LMT} + {-4197047556 -5268 0 RMT} + {-1956609132 -3600 0 IST} + {-1668211200 0 1 ISST} + {-1647212400 -3600 0 IST} + {-1636675200 0 1 ISST} + {-1613430000 -3600 0 IST} + {-968025600 0 1 ISST} + {-949615200 -3600 0 IST} + {-942008400 0 1 ISST} + {-920239200 -3600 0 IST} + {-909957600 0 1 ISST} + {-888789600 -3600 0 IST} + {-877903200 0 1 ISST} + {-857944800 -3600 0 IST} + {-846453600 0 1 ISST} + {-826495200 -3600 0 IST} + {-815004000 0 1 ISST} + {-795045600 -3600 0 IST} + {-783554400 0 1 ISST} + {-762991200 -3600 0 IST} + {-752104800 0 1 ISST} + {-731541600 -3600 0 IST} + {-717631200 0 1 ISST} + {-700092000 -3600 0 IST} + {-686181600 0 1 ISST} + {-668642400 -3600 0 IST} + {-654732000 0 1 ISST} + {-636588000 -3600 0 IST} + {-623282400 0 1 ISST} + {-605743200 -3600 0 IST} + {-591832800 0 1 ISST} + {-573688800 -3600 0 IST} + {-559778400 0 1 ISST} + {-542239200 -3600 0 IST} + {-528328800 0 1 ISST} + {-510789600 -3600 0 IST} + {-496879200 0 1 ISST} + {-479340000 -3600 0 IST} + {-465429600 0 1 ISST} + {-447890400 -3600 0 IST} + {-433980000 0 1 ISST} + {-415836000 -3600 0 IST} + {-401925600 0 1 ISST} + {-384386400 -3600 0 IST} + {-370476000 0 1 ISST} + {-352936800 -3600 0 IST} + {-339026400 0 1 ISST} + {-321487200 -3600 0 IST} + {-307576800 0 1 ISST} + {-290037600 -3600 0 IST} + {-276127200 0 1 ISST} + {-258588000 -3600 0 IST} + {-244677600 0 1 ISST} + {-226533600 -3600 0 IST} + {-212623200 0 1 ISST} + {-195084000 -3600 0 IST} + {-181173600 0 1 ISST} + {-163634400 -3600 0 IST} + {-149724000 0 1 ISST} + {-132184800 -3600 0 IST} + {-118274400 0 1 ISST} + {-100735200 -3600 0 IST} + {-86824800 0 1 ISST} + {-68680800 -3600 0 IST} + {-54770400 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia b/mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia new file mode 100644 index 00000000..cbfc8265 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/South_Georgia) { + {-9223372036854775808 -8768 0 LMT} + {-2524512832 -7200 0 GST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena b/mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena new file mode 100644 index 00000000..6d0c00d1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena @@ -0,0 +1,7 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Atlantic/Stanley b/mingw/lib/tcl8.5/tzdata/Atlantic/Stanley new file mode 100644 index 00000000..70dc4023 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Atlantic/Stanley @@ -0,0 +1,253 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Atlantic/Stanley) { + {-9223372036854775808 -13884 0 LMT} + {-2524507716 -13884 0 SMT} + {-1824235716 -14400 0 FKT} + {-1018209600 -10800 1 FKST} + {-1003093200 -14400 0 FKT} + {-986760000 -10800 1 FKST} + {-971643600 -14400 0 FKT} + {-954705600 -10800 1 FKST} + {-939589200 -14400 0 FKT} + {-923256000 -10800 1 FKST} + {-908139600 -14400 0 FKT} + {-891806400 -10800 1 FKST} + {-876690000 -14400 0 FKT} + {-860356800 -10800 1 FKST} + {420606000 -7200 0 FKT} + {433303200 -7200 1 FKST} + {452052000 -10800 0 FKT} + {464151600 -7200 1 FKST} + {483501600 -10800 0 FKT} + {495597600 -14400 0 FKT} + {495604800 -10800 1 FKST} + {514350000 -14400 0 FKT} + {527054400 -10800 1 FKST} + {545799600 -14400 0 FKT} + {558504000 -10800 1 FKST} + {577249200 -14400 0 FKT} + {589953600 -10800 1 FKST} + {608698800 -14400 0 FKT} + {621403200 -10800 1 FKST} + {640753200 -14400 0 FKT} + {652852800 -10800 1 FKST} + {672202800 -14400 0 FKT} + {684907200 -10800 1 FKST} + {703652400 -14400 0 FKT} + {716356800 -10800 1 FKST} + {735102000 -14400 0 FKT} + {747806400 -10800 1 FKST} + {766551600 -14400 0 FKT} + {779256000 -10800 1 FKST} + {798001200 -14400 0 FKT} + {810705600 -10800 1 FKST} + {830055600 -14400 0 FKT} + {842760000 -10800 1 FKST} + {861505200 -14400 0 FKT} + {874209600 -10800 1 FKST} + {892954800 -14400 0 FKT} + {905659200 -10800 1 FKST} + {924404400 -14400 0 FKT} + {937108800 -10800 1 FKST} + {955854000 -14400 0 FKT} + {968558400 -10800 1 FKST} + {987310800 -14400 0 FKT} + {999410400 -10800 1 FKST} + {1019365200 -14400 0 FKT} + {1030860000 -10800 1 FKST} + {1050814800 -14400 0 FKT} + {1062914400 -10800 1 FKST} + {1082264400 -14400 0 FKT} + {1094364000 -10800 1 FKST} + {1113714000 -14400 0 FKT} + {1125813600 -10800 1 FKST} + {1145163600 -14400 0 FKT} + {1157263200 -10800 1 FKST} + {1176613200 -14400 0 FKT} + {1188712800 -10800 1 FKST} + {1208667600 -14400 0 FKT} + {1220767200 -10800 1 FKST} + {1240117200 -14400 0 FKT} + {1252216800 -10800 1 FKST} + {1271566800 -14400 0 FKT} + {1283666400 -10800 1 FKST} + {1303016400 -14400 0 FKT} + {1315116000 -10800 1 FKST} + {1334466000 -14400 0 FKT} + {1346565600 -10800 1 FKST} + {1366520400 -14400 0 FKT} + {1378015200 -10800 1 FKST} + {1397970000 -14400 0 FKT} + {1410069600 -10800 1 FKST} + {1429419600 -14400 0 FKT} + {1441519200 -10800 1 FKST} + {1460869200 -14400 0 FKT} + {1472968800 -10800 1 FKST} + {1492318800 -14400 0 FKT} + {1504418400 -10800 1 FKST} + {1523768400 -14400 0 FKT} + {1535868000 -10800 1 FKST} + {1555822800 -14400 0 FKT} + {1567317600 -10800 1 FKST} + {1587272400 -14400 0 FKT} + {1599372000 -10800 1 FKST} + {1618722000 -14400 0 FKT} + {1630821600 -10800 1 FKST} + {1650171600 -14400 0 FKT} + {1662271200 -10800 1 FKST} + {1681621200 -14400 0 FKT} + {1693720800 -10800 1 FKST} + {1713675600 -14400 0 FKT} + {1725170400 -10800 1 FKST} + {1745125200 -14400 0 FKT} + {1757224800 -10800 1 FKST} + {1776574800 -14400 0 FKT} + {1788674400 -10800 1 FKST} + {1808024400 -14400 0 FKT} + {1820124000 -10800 1 FKST} + {1839474000 -14400 0 FKT} + {1851573600 -10800 1 FKST} + {1870923600 -14400 0 FKT} + {1883023200 -10800 1 FKST} + {1902978000 -14400 0 FKT} + {1914472800 -10800 1 FKST} + {1934427600 -14400 0 FKT} + {1946527200 -10800 1 FKST} + {1965877200 -14400 0 FKT} + {1977976800 -10800 1 FKST} + {1997326800 -14400 0 FKT} + {2009426400 -10800 1 FKST} + {2028776400 -14400 0 FKT} + {2040876000 -10800 1 FKST} + {2060226000 -14400 0 FKT} + {2072325600 -10800 1 FKST} + {2092280400 -14400 0 FKT} + {2104380000 -10800 1 FKST} + {2123730000 -14400 0 FKT} + {2135829600 -10800 1 FKST} + {2155179600 -14400 0 FKT} + {2167279200 -10800 1 FKST} + {2186629200 -14400 0 FKT} + {2198728800 -10800 1 FKST} + {2218078800 -14400 0 FKT} + {2230178400 -10800 1 FKST} + {2250133200 -14400 0 FKT} + {2261628000 -10800 1 FKST} + {2281582800 -14400 0 FKT} + {2293682400 -10800 1 FKST} + {2313032400 -14400 0 FKT} + {2325132000 -10800 1 FKST} + {2344482000 -14400 0 FKT} + {2356581600 -10800 1 FKST} + {2375931600 -14400 0 FKT} + {2388031200 -10800 1 FKST} + {2407381200 -14400 0 FKT} + {2419480800 -10800 1 FKST} + {2439435600 -14400 0 FKT} + {2450930400 -10800 1 FKST} + {2470885200 -14400 0 FKT} + {2482984800 -10800 1 FKST} + {2502334800 -14400 0 FKT} + {2514434400 -10800 1 FKST} + {2533784400 -14400 0 FKT} + {2545884000 -10800 1 FKST} + {2565234000 -14400 0 FKT} + {2577333600 -10800 1 FKST} + {2597288400 -14400 0 FKT} + {2608783200 -10800 1 FKST} + {2628738000 -14400 0 FKT} + {2640837600 -10800 1 FKST} + {2660187600 -14400 0 FKT} + {2672287200 -10800 1 FKST} + {2691637200 -14400 0 FKT} + {2703736800 -10800 1 FKST} + {2723086800 -14400 0 FKT} + {2735186400 -10800 1 FKST} + {2754536400 -14400 0 FKT} + {2766636000 -10800 1 FKST} + {2786590800 -14400 0 FKT} + {2798085600 -10800 1 FKST} + {2818040400 -14400 0 FKT} + {2830140000 -10800 1 FKST} + {2849490000 -14400 0 FKT} + {2861589600 -10800 1 FKST} + {2880939600 -14400 0 FKT} + {2893039200 -10800 1 FKST} + {2912389200 -14400 0 FKT} + {2924488800 -10800 1 FKST} + {2943838800 -14400 0 FKT} + {2955938400 -10800 1 FKST} + {2975893200 -14400 0 FKT} + {2987992800 -10800 1 FKST} + {3007342800 -14400 0 FKT} + {3019442400 -10800 1 FKST} + {3038792400 -14400 0 FKT} + {3050892000 -10800 1 FKST} + {3070242000 -14400 0 FKT} + {3082341600 -10800 1 FKST} + {3101691600 -14400 0 FKT} + {3113791200 -10800 1 FKST} + {3133746000 -14400 0 FKT} + {3145240800 -10800 1 FKST} + {3165195600 -14400 0 FKT} + {3177295200 -10800 1 FKST} + {3196645200 -14400 0 FKT} + {3208744800 -10800 1 FKST} + {3228094800 -14400 0 FKT} + {3240194400 -10800 1 FKST} + {3259544400 -14400 0 FKT} + {3271644000 -10800 1 FKST} + {3290994000 -14400 0 FKT} + {3303093600 -10800 1 FKST} + {3323048400 -14400 0 FKT} + {3334543200 -10800 1 FKST} + {3354498000 -14400 0 FKT} + {3366597600 -10800 1 FKST} + {3385947600 -14400 0 FKT} + {3398047200 -10800 1 FKST} + {3417397200 -14400 0 FKT} + {3429496800 -10800 1 FKST} + {3448846800 -14400 0 FKT} + {3460946400 -10800 1 FKST} + {3480901200 -14400 0 FKT} + {3492396000 -10800 1 FKST} + {3512350800 -14400 0 FKT} + {3524450400 -10800 1 FKST} + {3543800400 -14400 0 FKT} + {3555900000 -10800 1 FKST} + {3575250000 -14400 0 FKT} + {3587349600 -10800 1 FKST} + {3606699600 -14400 0 FKT} + {3618799200 -10800 1 FKST} + {3638149200 -14400 0 FKT} + {3650248800 -10800 1 FKST} + {3670203600 -14400 0 FKT} + {3681698400 -10800 1 FKST} + {3701653200 -14400 0 FKT} + {3713752800 -10800 1 FKST} + {3733102800 -14400 0 FKT} + {3745202400 -10800 1 FKST} + {3764552400 -14400 0 FKT} + {3776652000 -10800 1 FKST} + {3796002000 -14400 0 FKT} + {3808101600 -10800 1 FKST} + {3827451600 -14400 0 FKT} + {3839551200 -10800 1 FKST} + {3859506000 -14400 0 FKT} + {3871605600 -10800 1 FKST} + {3890955600 -14400 0 FKT} + {3903055200 -10800 1 FKST} + {3922405200 -14400 0 FKT} + {3934504800 -10800 1 FKST} + {3953854800 -14400 0 FKT} + {3965954400 -10800 1 FKST} + {3985304400 -14400 0 FKT} + {3997404000 -10800 1 FKST} + {4017358800 -14400 0 FKT} + {4028853600 -10800 1 FKST} + {4048808400 -14400 0 FKT} + {4060908000 -10800 1 FKST} + {4080258000 -14400 0 FKT} + {4092357600 -10800 1 FKST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/ACT b/mingw/lib/tcl8.5/tzdata/Australia/ACT new file mode 100644 index 00000000..f7da2815 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/ACT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Sydney)]} { + LoadTimeZoneFile Australia/Sydney +} +set TZData(:Australia/ACT) $TZData(:Australia/Sydney) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Adelaide b/mingw/lib/tcl8.5/tzdata/Australia/Adelaide new file mode 100644 index 00000000..9abe1927 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Adelaide @@ -0,0 +1,273 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Brisbane b/mingw/lib/tcl8.5/tzdata/Australia/Brisbane new file mode 100644 index 00000000..fe6d154a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Brisbane @@ -0,0 +1,23 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill b/mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill new file mode 100644 index 00000000..35cbb7e6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill @@ -0,0 +1,275 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Canberra b/mingw/lib/tcl8.5/tzdata/Australia/Canberra new file mode 100644 index 00000000..0b7b9ca7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Canberra @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Sydney)]} { + LoadTimeZoneFile Australia/Sydney +} +set TZData(:Australia/Canberra) $TZData(:Australia/Sydney) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Currie b/mingw/lib/tcl8.5/tzdata/Australia/Currie new file mode 100644 index 00000000..ae6d1f0b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Currie @@ -0,0 +1,273 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Darwin b/mingw/lib/tcl8.5/tzdata/Australia/Darwin new file mode 100644 index 00000000..9be372da --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Darwin @@ -0,0 +1,15 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Eucla b/mingw/lib/tcl8.5/tzdata/Australia/Eucla new file mode 100644 index 00000000..0f8ed4d2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Eucla @@ -0,0 +1,25 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Hobart b/mingw/lib/tcl8.5/tzdata/Australia/Hobart new file mode 100644 index 00000000..8f27110e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Hobart @@ -0,0 +1,281 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/LHI b/mingw/lib/tcl8.5/tzdata/Australia/LHI new file mode 100644 index 00000000..ddc79ce3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/LHI @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Lord_Howe)]} { + LoadTimeZoneFile Australia/Lord_Howe +} +set TZData(:Australia/LHI) $TZData(:Australia/Lord_Howe) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Lindeman b/mingw/lib/tcl8.5/tzdata/Australia/Lindeman new file mode 100644 index 00000000..de11c355 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Lindeman @@ -0,0 +1,28 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe b/mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe new file mode 100644 index 00000000..da094e57 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe @@ -0,0 +1,244 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Australia/Lord_Howe) { + {-9223372036854775808 38180 0 LMT} + {-2364114980 36000 0 EST} + {352216800 37800 0 LHST} + {372785400 41400 1 LHST} + {384273000 37800 0 LHST} + {404839800 41400 1 LHST} + {415722600 37800 0 LHST} + {436289400 41400 1 LHST} + {447172200 37800 0 LHST} + {467739000 41400 1 LHST} + {478621800 37800 0 LHST} + {499188600 39600 1 LHST} + {511282800 37800 0 LHST} + {530033400 39600 1 LHST} + {542732400 37800 0 LHST} + {562087800 39600 1 LHST} + {574786800 37800 0 LHST} + {594142200 39600 1 LHST} + {606236400 37800 0 LHST} + {625591800 39600 1 LHST} + {636476400 37800 0 LHST} + {657041400 39600 1 LHST} + {667926000 37800 0 LHST} + {688491000 39600 1 LHST} + {699375600 37800 0 LHST} + {719940600 39600 1 LHST} + {731430000 37800 0 LHST} + {751995000 39600 1 LHST} + {762879600 37800 0 LHST} + {783444600 39600 1 LHST} + {794329200 37800 0 LHST} + {814894200 39600 1 LHST} + {828198000 37800 0 LHST} + {846343800 39600 1 LHST} + {859647600 37800 0 LHST} + {877793400 39600 1 LHST} + {891097200 37800 0 LHST} + {909243000 39600 1 LHST} + {922546800 37800 0 LHST} + {941297400 39600 1 LHST} + {953996400 37800 0 LHST} + {967303800 39600 1 LHST} + {985446000 37800 0 LHST} + {1004196600 39600 1 LHST} + {1017500400 37800 0 LHST} + {1035646200 39600 1 LHST} + {1048950000 37800 0 LHST} + {1067095800 39600 1 LHST} + {1080399600 37800 0 LHST} + {1099150200 39600 1 LHST} + {1111849200 37800 0 LHST} + {1130599800 39600 1 LHST} + {1143903600 37800 0 LHST} + {1162049400 39600 1 LHST} + {1174748400 37800 0 LHST} + {1193499000 39600 1 LHST} + {1207407600 37800 0 LHST} + {1223134200 39600 1 LHST} + {1238857200 37800 0 LHST} + {1254583800 39600 1 LHST} + {1270306800 37800 0 LHST} + {1286033400 39600 1 LHST} + {1301756400 37800 0 LHST} + {1317483000 39600 1 LHST} + {1333206000 37800 0 LHST} + {1349537400 39600 1 LHST} + {1365260400 37800 0 LHST} + {1380987000 39600 1 LHST} + {1396710000 37800 0 LHST} + {1412436600 39600 1 LHST} + {1428159600 37800 0 LHST} + {1443886200 39600 1 LHST} + {1459609200 37800 0 LHST} + {1475335800 39600 1 LHST} + {1491058800 37800 0 LHST} + {1506785400 39600 1 LHST} + {1522508400 37800 0 LHST} + {1538839800 39600 1 LHST} + {1554562800 37800 0 LHST} + {1570289400 39600 1 LHST} + {1586012400 37800 0 LHST} + {1601739000 39600 1 LHST} + {1617462000 37800 0 LHST} + {1633188600 39600 1 LHST} + {1648911600 37800 0 LHST} + {1664638200 39600 1 LHST} + {1680361200 37800 0 LHST} + {1696087800 39600 1 LHST} + {1712415600 37800 0 LHST} + {1728142200 39600 1 LHST} + {1743865200 37800 0 LHST} + {1759591800 39600 1 LHST} + {1775314800 37800 0 LHST} + {1791041400 39600 1 LHST} + {1806764400 37800 0 LHST} + {1822491000 39600 1 LHST} + {1838214000 37800 0 LHST} + {1853940600 39600 1 LHST} + {1869663600 37800 0 LHST} + {1885995000 39600 1 LHST} + {1901718000 37800 0 LHST} + {1917444600 39600 1 LHST} + {1933167600 37800 0 LHST} + {1948894200 39600 1 LHST} + {1964617200 37800 0 LHST} + {1980343800 39600 1 LHST} + {1996066800 37800 0 LHST} + {2011793400 39600 1 LHST} + {2027516400 37800 0 LHST} + {2043243000 39600 1 LHST} + {2058966000 37800 0 LHST} + {2075297400 39600 1 LHST} + {2091020400 37800 0 LHST} + {2106747000 39600 1 LHST} + {2122470000 37800 0 LHST} + {2138196600 39600 1 LHST} + {2153919600 37800 0 LHST} + {2169646200 39600 1 LHST} + {2185369200 37800 0 LHST} + {2201095800 39600 1 LHST} + {2216818800 37800 0 LHST} + {2233150200 39600 1 LHST} + {2248873200 37800 0 LHST} + {2264599800 39600 1 LHST} + {2280322800 37800 0 LHST} + {2296049400 39600 1 LHST} + {2311772400 37800 0 LHST} + {2327499000 39600 1 LHST} + {2343222000 37800 0 LHST} + {2358948600 39600 1 LHST} + {2374671600 37800 0 LHST} + {2390398200 39600 1 LHST} + {2406121200 37800 0 LHST} + {2422452600 39600 1 LHST} + {2438175600 37800 0 LHST} + {2453902200 39600 1 LHST} + {2469625200 37800 0 LHST} + {2485351800 39600 1 LHST} + {2501074800 37800 0 LHST} + {2516801400 39600 1 LHST} + {2532524400 37800 0 LHST} + {2548251000 39600 1 LHST} + {2563974000 37800 0 LHST} + {2579700600 39600 1 LHST} + {2596028400 37800 0 LHST} + {2611755000 39600 1 LHST} + {2627478000 37800 0 LHST} + {2643204600 39600 1 LHST} + {2658927600 37800 0 LHST} + {2674654200 39600 1 LHST} + {2690377200 37800 0 LHST} + {2706103800 39600 1 LHST} + {2721826800 37800 0 LHST} + {2737553400 39600 1 LHST} + {2753276400 37800 0 LHST} + {2769607800 39600 1 LHST} + {2785330800 37800 0 LHST} + {2801057400 39600 1 LHST} + {2816780400 37800 0 LHST} + {2832507000 39600 1 LHST} + {2848230000 37800 0 LHST} + {2863956600 39600 1 LHST} + {2879679600 37800 0 LHST} + {2895406200 39600 1 LHST} + {2911129200 37800 0 LHST} + {2926855800 39600 1 LHST} + {2942578800 37800 0 LHST} + {2958910200 39600 1 LHST} + {2974633200 37800 0 LHST} + {2990359800 39600 1 LHST} + {3006082800 37800 0 LHST} + {3021809400 39600 1 LHST} + {3037532400 37800 0 LHST} + {3053259000 39600 1 LHST} + {3068982000 37800 0 LHST} + {3084708600 39600 1 LHST} + {3100431600 37800 0 LHST} + {3116763000 39600 1 LHST} + {3132486000 37800 0 LHST} + {3148212600 39600 1 LHST} + {3163935600 37800 0 LHST} + {3179662200 39600 1 LHST} + {3195385200 37800 0 LHST} + {3211111800 39600 1 LHST} + {3226834800 37800 0 LHST} + {3242561400 39600 1 LHST} + {3258284400 37800 0 LHST} + {3274011000 39600 1 LHST} + {3289734000 37800 0 LHST} + {3306065400 39600 1 LHST} + {3321788400 37800 0 LHST} + {3337515000 39600 1 LHST} + {3353238000 37800 0 LHST} + {3368964600 39600 1 LHST} + {3384687600 37800 0 LHST} + {3400414200 39600 1 LHST} + {3416137200 37800 0 LHST} + {3431863800 39600 1 LHST} + {3447586800 37800 0 LHST} + {3463313400 39600 1 LHST} + {3479641200 37800 0 LHST} + {3495367800 39600 1 LHST} + {3511090800 37800 0 LHST} + {3526817400 39600 1 LHST} + {3542540400 37800 0 LHST} + {3558267000 39600 1 LHST} + {3573990000 37800 0 LHST} + {3589716600 39600 1 LHST} + {3605439600 37800 0 LHST} + {3621166200 39600 1 LHST} + {3636889200 37800 0 LHST} + {3653220600 39600 1 LHST} + {3668943600 37800 0 LHST} + {3684670200 39600 1 LHST} + {3700393200 37800 0 LHST} + {3716119800 39600 1 LHST} + {3731842800 37800 0 LHST} + {3747569400 39600 1 LHST} + {3763292400 37800 0 LHST} + {3779019000 39600 1 LHST} + {3794742000 37800 0 LHST} + {3810468600 39600 1 LHST} + {3826191600 37800 0 LHST} + {3842523000 39600 1 LHST} + {3858246000 37800 0 LHST} + {3873972600 39600 1 LHST} + {3889695600 37800 0 LHST} + {3905422200 39600 1 LHST} + {3921145200 37800 0 LHST} + {3936871800 39600 1 LHST} + {3952594800 37800 0 LHST} + {3968321400 39600 1 LHST} + {3984044400 37800 0 LHST} + {4000375800 39600 1 LHST} + {4016098800 37800 0 LHST} + {4031825400 39600 1 LHST} + {4047548400 37800 0 LHST} + {4063275000 39600 1 LHST} + {4078998000 37800 0 LHST} + {4094724600 39600 1 LHST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Melbourne b/mingw/lib/tcl8.5/tzdata/Australia/Melbourne new file mode 100644 index 00000000..907b8b91 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Melbourne @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/NSW b/mingw/lib/tcl8.5/tzdata/Australia/NSW new file mode 100644 index 00000000..905bdfea --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/NSW @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Sydney)]} { + LoadTimeZoneFile Australia/Sydney +} +set TZData(:Australia/NSW) $TZData(:Australia/Sydney) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/North b/mingw/lib/tcl8.5/tzdata/Australia/North new file mode 100644 index 00000000..950c88c2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/North @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Darwin)]} { + LoadTimeZoneFile Australia/Darwin +} +set TZData(:Australia/North) $TZData(:Australia/Darwin) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Perth b/mingw/lib/tcl8.5/tzdata/Australia/Perth new file mode 100644 index 00000000..5d8f1168 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Perth @@ -0,0 +1,25 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Queensland b/mingw/lib/tcl8.5/tzdata/Australia/Queensland new file mode 100644 index 00000000..6246e920 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Queensland @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Brisbane)]} { + LoadTimeZoneFile Australia/Brisbane +} +set TZData(:Australia/Queensland) $TZData(:Australia/Brisbane) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/South b/mingw/lib/tcl8.5/tzdata/Australia/South new file mode 100644 index 00000000..9c7dd956 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/South @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Adelaide)]} { + LoadTimeZoneFile Australia/Adelaide +} +set TZData(:Australia/South) $TZData(:Australia/Adelaide) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Sydney b/mingw/lib/tcl8.5/tzdata/Australia/Sydney new file mode 100644 index 00000000..84b1d14f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Sydney @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Tasmania b/mingw/lib/tcl8.5/tzdata/Australia/Tasmania new file mode 100644 index 00000000..1849bdee --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Tasmania @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Hobart)]} { + LoadTimeZoneFile Australia/Hobart +} +set TZData(:Australia/Tasmania) $TZData(:Australia/Hobart) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Victoria b/mingw/lib/tcl8.5/tzdata/Australia/Victoria new file mode 100644 index 00000000..037bfeb5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Victoria @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Melbourne)]} { + LoadTimeZoneFile Australia/Melbourne +} +set TZData(:Australia/Victoria) $TZData(:Australia/Melbourne) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/West b/mingw/lib/tcl8.5/tzdata/Australia/West new file mode 100644 index 00000000..4689f7ea --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/West @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Perth)]} { + LoadTimeZoneFile Australia/Perth +} +set TZData(:Australia/West) $TZData(:Australia/Perth) diff --git a/mingw/lib/tcl8.5/tzdata/Australia/Yancowinna b/mingw/lib/tcl8.5/tzdata/Australia/Yancowinna new file mode 100644 index 00000000..b7d668d6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Australia/Yancowinna @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Australia/Broken_Hill)]} { + LoadTimeZoneFile Australia/Broken_Hill +} +set TZData(:Australia/Yancowinna) $TZData(:Australia/Broken_Hill) diff --git a/mingw/lib/tcl8.5/tzdata/Brazil/Acre b/mingw/lib/tcl8.5/tzdata/Brazil/Acre new file mode 100644 index 00000000..abb0b98e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Brazil/Acre @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Rio_Branco)]} { + LoadTimeZoneFile America/Rio_Branco +} +set TZData(:Brazil/Acre) $TZData(:America/Rio_Branco) diff --git a/mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha b/mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha new file mode 100644 index 00000000..53accb43 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Noronha)]} { + LoadTimeZoneFile America/Noronha +} +set TZData(:Brazil/DeNoronha) $TZData(:America/Noronha) diff --git a/mingw/lib/tcl8.5/tzdata/Brazil/East b/mingw/lib/tcl8.5/tzdata/Brazil/East new file mode 100644 index 00000000..f684633c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Brazil/East @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Sao_Paulo)]} { + LoadTimeZoneFile America/Sao_Paulo +} +set TZData(:Brazil/East) $TZData(:America/Sao_Paulo) diff --git a/mingw/lib/tcl8.5/tzdata/Brazil/West b/mingw/lib/tcl8.5/tzdata/Brazil/West new file mode 100644 index 00000000..67676d90 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Brazil/West @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Manaus)]} { + LoadTimeZoneFile America/Manaus +} +set TZData(:Brazil/West) $TZData(:America/Manaus) diff --git a/mingw/lib/tcl8.5/tzdata/CET b/mingw/lib/tcl8.5/tzdata/CET new file mode 100644 index 00000000..a5fec558 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/CET @@ -0,0 +1,263 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:CET) { + {-9223372036854775808 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-938905200 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/CST6CDT b/mingw/lib/tcl8.5/tzdata/CST6CDT new file mode 100644 index 00000000..11e45f0c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/CST6CDT @@ -0,0 +1,278 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:CST6CDT) { + {-9223372036854775808 -21600 0 CST} + {-1633276800 -18000 1 CDT} + {-1615136400 -21600 0 CST} + {-1601827200 -18000 1 CDT} + {-1583686800 -21600 0 CST} + {-880214400 -18000 1 CWT} + {-769395600 -18000 1 CPT} + {-765392400 -21600 0 CST} + {-84384000 -18000 1 CDT} + {-68662800 -21600 0 CST} + {-52934400 -18000 1 CDT} + {-37213200 -21600 0 CST} + {-21484800 -18000 1 CDT} + {-5763600 -21600 0 CST} + {9964800 -18000 1 CDT} + {25686000 -21600 0 CST} + {41414400 -18000 1 CDT} + {57740400 -21600 0 CST} + {73468800 -18000 1 CDT} + {89190000 -21600 0 CST} + {104918400 -18000 1 CDT} + {120639600 -21600 0 CST} + {126691200 -18000 1 CDT} + {152089200 -21600 0 CST} + {162374400 -18000 1 CDT} + {183538800 -21600 0 CST} + {199267200 -18000 1 CDT} + {215593200 -21600 0 CST} + {230716800 -18000 1 CDT} + {247042800 -21600 0 CST} + {262771200 -18000 1 CDT} + {278492400 -21600 0 CST} + {294220800 -18000 1 CDT} + {309942000 -21600 0 CST} + {325670400 -18000 1 CDT} + {341391600 -21600 0 CST} + {357120000 -18000 1 CDT} + {372841200 -21600 0 CST} + {388569600 -18000 1 CDT} + {404895600 -21600 0 CST} + {420019200 -18000 1 CDT} + {436345200 -21600 0 CST} + {452073600 -18000 1 CDT} + {467794800 -21600 0 CST} + {483523200 -18000 1 CDT} + {499244400 -21600 0 CST} + {514972800 -18000 1 CDT} + {530694000 -21600 0 CST} + {544608000 -18000 1 CDT} + {562143600 -21600 0 CST} + {576057600 -18000 1 CDT} + {594198000 -21600 0 CST} + {607507200 -18000 1 CDT} + {625647600 -21600 0 CST} + {638956800 -18000 1 CDT} + {657097200 -21600 0 CST} + {671011200 -18000 1 CDT} + {688546800 -21600 0 CST} + {702460800 -18000 1 CDT} + {719996400 -21600 0 CST} + {733910400 -18000 1 CDT} + {752050800 -21600 0 CST} + {765360000 -18000 1 CDT} + {783500400 -21600 0 CST} + {796809600 -18000 1 CDT} + {814950000 -21600 0 CST} + {828864000 -18000 1 CDT} + {846399600 -21600 0 CST} + {860313600 -18000 1 CDT} + {877849200 -21600 0 CST} + {891763200 -18000 1 CDT} + {909298800 -21600 0 CST} + {923212800 -18000 1 CDT} + {941353200 -21600 0 CST} + {954662400 -18000 1 CDT} + {972802800 -21600 0 CST} + {986112000 -18000 1 CDT} + {1004252400 -21600 0 CST} + {1018166400 -18000 1 CDT} + {1035702000 -21600 0 CST} + {1049616000 -18000 1 CDT} + {1067151600 -21600 0 CST} + {1081065600 -18000 1 CDT} + {1099206000 -21600 0 CST} + {1112515200 -18000 1 CDT} + {1130655600 -21600 0 CST} + {1143964800 -18000 1 CDT} + {1162105200 -21600 0 CST} + {1173600000 -18000 1 CDT} + {1194159600 -21600 0 CST} + {1205049600 -18000 1 CDT} + {1225609200 -21600 0 CST} + {1236499200 -18000 1 CDT} + {1257058800 -21600 0 CST} + {1268553600 -18000 1 CDT} + {1289113200 -21600 0 CST} + {1300003200 -18000 1 CDT} + {1320562800 -21600 0 CST} + {1331452800 -18000 1 CDT} + {1352012400 -21600 0 CST} + {1362902400 -18000 1 CDT} + {1383462000 -21600 0 CST} + {1394352000 -18000 1 CDT} + {1414911600 -21600 0 CST} + {1425801600 -18000 1 CDT} + {1446361200 -21600 0 CST} + {1457856000 -18000 1 CDT} + {1478415600 -21600 0 CST} + {1489305600 -18000 1 CDT} + {1509865200 -21600 0 CST} + {1520755200 -18000 1 CDT} + {1541314800 -21600 0 CST} + {1552204800 -18000 1 CDT} + {1572764400 -21600 0 CST} + {1583654400 -18000 1 CDT} + {1604214000 -21600 0 CST} + {1615708800 -18000 1 CDT} + {1636268400 -21600 0 CST} + {1647158400 -18000 1 CDT} + {1667718000 -21600 0 CST} + {1678608000 -18000 1 CDT} + {1699167600 -21600 0 CST} + {1710057600 -18000 1 CDT} + {1730617200 -21600 0 CST} + {1741507200 -18000 1 CDT} + {1762066800 -21600 0 CST} + {1772956800 -18000 1 CDT} + {1793516400 -21600 0 CST} + {1805011200 -18000 1 CDT} + {1825570800 -21600 0 CST} + {1836460800 -18000 1 CDT} + {1857020400 -21600 0 CST} + {1867910400 -18000 1 CDT} + {1888470000 -21600 0 CST} + {1899360000 -18000 1 CDT} + {1919919600 -21600 0 CST} + {1930809600 -18000 1 CDT} + {1951369200 -21600 0 CST} + {1962864000 -18000 1 CDT} + {1983423600 -21600 0 CST} + {1994313600 -18000 1 CDT} + {2014873200 -21600 0 CST} + {2025763200 -18000 1 CDT} + {2046322800 -21600 0 CST} + {2057212800 -18000 1 CDT} + {2077772400 -21600 0 CST} + {2088662400 -18000 1 CDT} + {2109222000 -21600 0 CST} + {2120112000 -18000 1 CDT} + {2140671600 -21600 0 CST} + {2152166400 -18000 1 CDT} + {2172726000 -21600 0 CST} + {2183616000 -18000 1 CDT} + {2204175600 -21600 0 CST} + {2215065600 -18000 1 CDT} + {2235625200 -21600 0 CST} + {2246515200 -18000 1 CDT} + {2267074800 -21600 0 CST} + {2277964800 -18000 1 CDT} + {2298524400 -21600 0 CST} + {2309414400 -18000 1 CDT} + {2329974000 -21600 0 CST} + {2341468800 -18000 1 CDT} + {2362028400 -21600 0 CST} + {2372918400 -18000 1 CDT} + {2393478000 -21600 0 CST} + {2404368000 -18000 1 CDT} + {2424927600 -21600 0 CST} + {2435817600 -18000 1 CDT} + {2456377200 -21600 0 CST} + {2467267200 -18000 1 CDT} + {2487826800 -21600 0 CST} + {2499321600 -18000 1 CDT} + {2519881200 -21600 0 CST} + {2530771200 -18000 1 CDT} + {2551330800 -21600 0 CST} + {2562220800 -18000 1 CDT} + {2582780400 -21600 0 CST} + {2593670400 -18000 1 CDT} + {2614230000 -21600 0 CST} + {2625120000 -18000 1 CDT} + {2645679600 -21600 0 CST} + {2656569600 -18000 1 CDT} + {2677129200 -21600 0 CST} + {2688624000 -18000 1 CDT} + {2709183600 -21600 0 CST} + {2720073600 -18000 1 CDT} + {2740633200 -21600 0 CST} + {2751523200 -18000 1 CDT} + {2772082800 -21600 0 CST} + {2782972800 -18000 1 CDT} + {2803532400 -21600 0 CST} + {2814422400 -18000 1 CDT} + {2834982000 -21600 0 CST} + {2846476800 -18000 1 CDT} + {2867036400 -21600 0 CST} + {2877926400 -18000 1 CDT} + {2898486000 -21600 0 CST} + {2909376000 -18000 1 CDT} + {2929935600 -21600 0 CST} + {2940825600 -18000 1 CDT} + {2961385200 -21600 0 CST} + {2972275200 -18000 1 CDT} + {2992834800 -21600 0 CST} + {3003724800 -18000 1 CDT} + {3024284400 -21600 0 CST} + {3035779200 -18000 1 CDT} + {3056338800 -21600 0 CST} + {3067228800 -18000 1 CDT} + {3087788400 -21600 0 CST} + {3098678400 -18000 1 CDT} + {3119238000 -21600 0 CST} + {3130128000 -18000 1 CDT} + {3150687600 -21600 0 CST} + {3161577600 -18000 1 CDT} + {3182137200 -21600 0 CST} + {3193027200 -18000 1 CDT} + {3213586800 -21600 0 CST} + {3225081600 -18000 1 CDT} + {3245641200 -21600 0 CST} + {3256531200 -18000 1 CDT} + {3277090800 -21600 0 CST} + {3287980800 -18000 1 CDT} + {3308540400 -21600 0 CST} + {3319430400 -18000 1 CDT} + {3339990000 -21600 0 CST} + {3350880000 -18000 1 CDT} + {3371439600 -21600 0 CST} + {3382934400 -18000 1 CDT} + {3403494000 -21600 0 CST} + {3414384000 -18000 1 CDT} + {3434943600 -21600 0 CST} + {3445833600 -18000 1 CDT} + {3466393200 -21600 0 CST} + {3477283200 -18000 1 CDT} + {3497842800 -21600 0 CST} + {3508732800 -18000 1 CDT} + {3529292400 -21600 0 CST} + {3540182400 -18000 1 CDT} + {3560742000 -21600 0 CST} + {3572236800 -18000 1 CDT} + {3592796400 -21600 0 CST} + {3603686400 -18000 1 CDT} + {3624246000 -21600 0 CST} + {3635136000 -18000 1 CDT} + {3655695600 -21600 0 CST} + {3666585600 -18000 1 CDT} + {3687145200 -21600 0 CST} + {3698035200 -18000 1 CDT} + {3718594800 -21600 0 CST} + {3730089600 -18000 1 CDT} + {3750649200 -21600 0 CST} + {3761539200 -18000 1 CDT} + {3782098800 -21600 0 CST} + {3792988800 -18000 1 CDT} + {3813548400 -21600 0 CST} + {3824438400 -18000 1 CDT} + {3844998000 -21600 0 CST} + {3855888000 -18000 1 CDT} + {3876447600 -21600 0 CST} + {3887337600 -18000 1 CDT} + {3907897200 -21600 0 CST} + {3919392000 -18000 1 CDT} + {3939951600 -21600 0 CST} + {3950841600 -18000 1 CDT} + {3971401200 -21600 0 CST} + {3982291200 -18000 1 CDT} + {4002850800 -21600 0 CST} + {4013740800 -18000 1 CDT} + {4034300400 -21600 0 CST} + {4045190400 -18000 1 CDT} + {4065750000 -21600 0 CST} + {4076640000 -18000 1 CDT} + {4097199600 -21600 0 CST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Atlantic b/mingw/lib/tcl8.5/tzdata/Canada/Atlantic new file mode 100644 index 00000000..d1478d97 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Atlantic @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Halifax)]} { + LoadTimeZoneFile America/Halifax +} +set TZData(:Canada/Atlantic) $TZData(:America/Halifax) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Central b/mingw/lib/tcl8.5/tzdata/Canada/Central new file mode 100644 index 00000000..b04bef93 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Central @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Winnipeg)]} { + LoadTimeZoneFile America/Winnipeg +} +set TZData(:Canada/Central) $TZData(:America/Winnipeg) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan b/mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan new file mode 100644 index 00000000..f7e500c3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Regina)]} { + LoadTimeZoneFile America/Regina +} +set TZData(:Canada/East-Saskatchewan) $TZData(:America/Regina) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Eastern b/mingw/lib/tcl8.5/tzdata/Canada/Eastern new file mode 100644 index 00000000..74528eb2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Eastern @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Toronto)]} { + LoadTimeZoneFile America/Toronto +} +set TZData(:Canada/Eastern) $TZData(:America/Toronto) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Mountain b/mingw/lib/tcl8.5/tzdata/Canada/Mountain new file mode 100644 index 00000000..8c6458de --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Mountain @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Edmonton)]} { + LoadTimeZoneFile America/Edmonton +} +set TZData(:Canada/Mountain) $TZData(:America/Edmonton) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Newfoundland b/mingw/lib/tcl8.5/tzdata/Canada/Newfoundland new file mode 100644 index 00000000..6904cde8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Newfoundland @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/St_Johns)]} { + LoadTimeZoneFile America/St_Johns +} +set TZData(:Canada/Newfoundland) $TZData(:America/St_Johns) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Pacific b/mingw/lib/tcl8.5/tzdata/Canada/Pacific new file mode 100644 index 00000000..4d70342d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Pacific @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Vancouver)]} { + LoadTimeZoneFile America/Vancouver +} +set TZData(:Canada/Pacific) $TZData(:America/Vancouver) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan b/mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan new file mode 100644 index 00000000..cd56446e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Regina)]} { + LoadTimeZoneFile America/Regina +} +set TZData(:Canada/Saskatchewan) $TZData(:America/Regina) diff --git a/mingw/lib/tcl8.5/tzdata/Canada/Yukon b/mingw/lib/tcl8.5/tzdata/Canada/Yukon new file mode 100644 index 00000000..04b83685 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Canada/Yukon @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Whitehorse)]} { + LoadTimeZoneFile America/Whitehorse +} +set TZData(:Canada/Yukon) $TZData(:America/Whitehorse) diff --git a/mingw/lib/tcl8.5/tzdata/Chile/Continental b/mingw/lib/tcl8.5/tzdata/Chile/Continental new file mode 100644 index 00000000..0f858a3d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Chile/Continental @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Santiago)]} { + LoadTimeZoneFile America/Santiago +} +set TZData(:Chile/Continental) $TZData(:America/Santiago) diff --git a/mingw/lib/tcl8.5/tzdata/Chile/EasterIsland b/mingw/lib/tcl8.5/tzdata/Chile/EasterIsland new file mode 100644 index 00000000..4edc034d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Chile/EasterIsland @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Easter)]} { + LoadTimeZoneFile Pacific/Easter +} +set TZData(:Chile/EasterIsland) $TZData(:Pacific/Easter) diff --git a/mingw/lib/tcl8.5/tzdata/Cuba b/mingw/lib/tcl8.5/tzdata/Cuba new file mode 100644 index 00000000..17f7b453 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Cuba @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Havana)]} { + LoadTimeZoneFile America/Havana +} +set TZData(:Cuba) $TZData(:America/Havana) diff --git a/mingw/lib/tcl8.5/tzdata/EET b/mingw/lib/tcl8.5/tzdata/EET new file mode 100644 index 00000000..e7c102a9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/EET @@ -0,0 +1,251 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:EET) { + {-9223372036854775808 7200 0 EET} + {228877200 10800 1 EEST} + {243997200 7200 0 EET} + {260326800 10800 1 EEST} + {276051600 7200 0 EET} + {291776400 10800 1 EEST} + {307501200 7200 0 EET} + {323830800 10800 1 EEST} + {338950800 7200 0 EET} + {354675600 10800 1 EEST} + {370400400 7200 0 EET} + {386125200 10800 1 EEST} + {401850000 7200 0 EET} + {417574800 10800 1 EEST} + {433299600 7200 0 EET} + {449024400 10800 1 EEST} + {465354000 7200 0 EET} + {481078800 10800 1 EEST} + {496803600 7200 0 EET} + {512528400 10800 1 EEST} + {528253200 7200 0 EET} + {543978000 10800 1 EEST} + {559702800 7200 0 EET} + {575427600 10800 1 EEST} + {591152400 7200 0 EET} + {606877200 10800 1 EEST} + {622602000 7200 0 EET} + {638326800 10800 1 EEST} + {654656400 7200 0 EET} + {670381200 10800 1 EEST} + {686106000 7200 0 EET} + {701830800 10800 1 EEST} + {717555600 7200 0 EET} + {733280400 10800 1 EEST} + {749005200 7200 0 EET} + {764730000 10800 1 EEST} + {780454800 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/EST b/mingw/lib/tcl8.5/tzdata/EST new file mode 100644 index 00000000..72c5b17d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/EST @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:EST) { + {-9223372036854775808 -18000 0 EST} +} diff --git a/mingw/lib/tcl8.5/tzdata/EST5EDT b/mingw/lib/tcl8.5/tzdata/EST5EDT new file mode 100644 index 00000000..968833ef --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/EST5EDT @@ -0,0 +1,278 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:EST5EDT) { + {-9223372036854775808 -18000 0 EST} + {-1633280400 -14400 1 EDT} + {-1615140000 -18000 0 EST} + {-1601830800 -14400 1 EDT} + {-1583690400 -18000 0 EST} + {-880218000 -14400 1 EWT} + {-769395600 -14400 1 EPT} + {-765396000 -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} + {126687600 -14400 1 EDT} + {152085600 -18000 0 EST} + {162370800 -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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Egypt b/mingw/lib/tcl8.5/tzdata/Egypt new file mode 100644 index 00000000..63341bcc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Egypt @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Africa/Cairo)]} { + LoadTimeZoneFile Africa/Cairo +} +set TZData(:Egypt) $TZData(:Africa/Cairo) diff --git a/mingw/lib/tcl8.5/tzdata/Eire b/mingw/lib/tcl8.5/tzdata/Eire new file mode 100644 index 00000000..c86c91c6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Eire @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Dublin)]} { + LoadTimeZoneFile Europe/Dublin +} +set TZData(:Eire) $TZData(:Europe/Dublin) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT b/mingw/lib/tcl8.5/tzdata/Etc/GMT new file mode 100644 index 00000000..7454fd57 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT) { + {-9223372036854775808 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+0 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+0 new file mode 100644 index 00000000..017dee1f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:Etc/GMT+0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+1 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+1 new file mode 100644 index 00000000..12f97ba6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+1 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+1) { + {-9223372036854775808 -3600 0 GMT+1} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+10 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+10 new file mode 100644 index 00000000..6ea50bb1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+10 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+10) { + {-9223372036854775808 -36000 0 GMT+10} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+11 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+11 new file mode 100644 index 00000000..c91b1692 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+11 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+11) { + {-9223372036854775808 -39600 0 GMT+11} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+12 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+12 new file mode 100644 index 00000000..29a4ceef --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+12 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+12) { + {-9223372036854775808 -43200 0 GMT+12} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+2 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+2 new file mode 100644 index 00000000..8c6b526b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+2 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+2) { + {-9223372036854775808 -7200 0 GMT+2} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+3 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+3 new file mode 100644 index 00000000..862571df --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+3 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+3) { + {-9223372036854775808 -10800 0 GMT+3} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+4 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+4 new file mode 100644 index 00000000..a933bbc3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+4 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+4) { + {-9223372036854775808 -14400 0 GMT+4} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+5 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+5 new file mode 100644 index 00000000..80cc25cb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+5 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+5) { + {-9223372036854775808 -18000 0 GMT+5} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+6 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+6 new file mode 100644 index 00000000..bc57bd63 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+6 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+6) { + {-9223372036854775808 -21600 0 GMT+6} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+7 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+7 new file mode 100644 index 00000000..d419eb9e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+7 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+7) { + {-9223372036854775808 -25200 0 GMT+7} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+8 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+8 new file mode 100644 index 00000000..705ad407 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+8 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+8) { + {-9223372036854775808 -28800 0 GMT+8} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT+9 b/mingw/lib/tcl8.5/tzdata/Etc/GMT+9 new file mode 100644 index 00000000..4086639c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT+9 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT+9) { + {-9223372036854775808 -32400 0 GMT+9} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-0 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-0 new file mode 100644 index 00000000..d8913d50 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:Etc/GMT-0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-1 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-1 new file mode 100644 index 00000000..a44dd1fc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-1 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-1) { + {-9223372036854775808 3600 0 GMT-1} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-10 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-10 new file mode 100644 index 00000000..1c50d01d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-10 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-10) { + {-9223372036854775808 36000 0 GMT-10} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-11 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-11 new file mode 100644 index 00000000..d07710f1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-11 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-11) { + {-9223372036854775808 39600 0 GMT-11} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-12 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-12 new file mode 100644 index 00000000..a23b98d4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-12 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-12) { + {-9223372036854775808 43200 0 GMT-12} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-13 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-13 new file mode 100644 index 00000000..1a6700a1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-13 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-13) { + {-9223372036854775808 46800 0 GMT-13} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-14 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-14 new file mode 100644 index 00000000..3707e219 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-14 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-14) { + {-9223372036854775808 50400 0 GMT-14} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-2 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-2 new file mode 100644 index 00000000..f9dea165 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-2 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-2) { + {-9223372036854775808 7200 0 GMT-2} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-3 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-3 new file mode 100644 index 00000000..99145b81 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-3 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-3) { + {-9223372036854775808 10800 0 GMT-3} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-4 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-4 new file mode 100644 index 00000000..27b4fec0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-4 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-4) { + {-9223372036854775808 14400 0 GMT-4} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-5 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-5 new file mode 100644 index 00000000..dbe3df72 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-5 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-5) { + {-9223372036854775808 18000 0 GMT-5} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-6 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-6 new file mode 100644 index 00000000..414dbfaf --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-6 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-6) { + {-9223372036854775808 21600 0 GMT-6} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-7 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-7 new file mode 100644 index 00000000..2bd59db3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-7 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-7) { + {-9223372036854775808 25200 0 GMT-7} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-8 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-8 new file mode 100644 index 00000000..7303721e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-8 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-8) { + {-9223372036854775808 28800 0 GMT-8} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT-9 b/mingw/lib/tcl8.5/tzdata/Etc/GMT-9 new file mode 100644 index 00000000..46e6878e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT-9 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/GMT-9) { + {-9223372036854775808 32400 0 GMT-9} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/GMT0 b/mingw/lib/tcl8.5/tzdata/Etc/GMT0 new file mode 100644 index 00000000..dba1fe9f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/GMT0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:Etc/GMT0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/Greenwich b/mingw/lib/tcl8.5/tzdata/Etc/Greenwich new file mode 100644 index 00000000..53acea06 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/Greenwich @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:Etc/Greenwich) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/UCT b/mingw/lib/tcl8.5/tzdata/Etc/UCT new file mode 100644 index 00000000..f7d795e0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/UCT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/UCT) { + {-9223372036854775808 0 0 UCT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/UTC b/mingw/lib/tcl8.5/tzdata/Etc/UTC new file mode 100644 index 00000000..db5954bd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/UTC @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Etc/UTC) { + {-9223372036854775808 0 0 UTC} +} diff --git a/mingw/lib/tcl8.5/tzdata/Etc/Universal b/mingw/lib/tcl8.5/tzdata/Etc/Universal new file mode 100644 index 00000000..a3b75478 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/Universal @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UTC)]} { + LoadTimeZoneFile Etc/UTC +} +set TZData(:Etc/Universal) $TZData(:Etc/UTC) diff --git a/mingw/lib/tcl8.5/tzdata/Etc/Zulu b/mingw/lib/tcl8.5/tzdata/Etc/Zulu new file mode 100644 index 00000000..f643db98 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Etc/Zulu @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UTC)]} { + LoadTimeZoneFile Etc/UTC +} +set TZData(:Etc/Zulu) $TZData(:Etc/UTC) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Amsterdam b/mingw/lib/tcl8.5/tzdata/Europe/Amsterdam new file mode 100644 index 00000000..bd89127a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Amsterdam @@ -0,0 +1,310 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Amsterdam) { + {-9223372036854775808 1172 0 LMT} + {-4260212372 1172 0 AMT} + {-1693700372 4772 1 NST} + {-1680484772 1172 0 AMT} + {-1663453172 4772 1 NST} + {-1650147572 1172 0 AMT} + {-1633213172 4772 1 NST} + {-1617488372 1172 0 AMT} + {-1601158772 4772 1 NST} + {-1586038772 1172 0 AMT} + {-1569709172 4772 1 NST} + {-1554589172 1172 0 AMT} + {-1538259572 4772 1 NST} + {-1523139572 1172 0 AMT} + {-1507501172 4772 1 NST} + {-1490566772 1172 0 AMT} + {-1470176372 4772 1 NST} + {-1459117172 1172 0 AMT} + {-1443997172 4772 1 NST} + {-1427667572 1172 0 AMT} + {-1406672372 4772 1 NST} + {-1396217972 1172 0 AMT} + {-1376950772 4772 1 NST} + {-1364768372 1172 0 AMT} + {-1345414772 4772 1 NST} + {-1333318772 1172 0 AMT} + {-1313792372 4772 1 NST} + {-1301264372 1172 0 AMT} + {-1282256372 4772 1 NST} + {-1269814772 1172 0 AMT} + {-1250720372 4772 1 NST} + {-1238365172 1172 0 AMT} + {-1219184372 4772 1 NST} + {-1206915572 1172 0 AMT} + {-1186957172 4772 1 NST} + {-1175465972 1172 0 AMT} + {-1156025972 4772 1 NST} + {-1143411572 1172 0 AMT} + {-1124489972 4772 1 NST} + {-1111961972 1172 0 AMT} + {-1092953972 4772 1 NST} + {-1080512372 1172 0 AMT} + {-1061331572 4772 1 NST} + {-1049062772 1172 0 AMT} + {-1029190772 4772 1 NST} + {-1025741972 4800 0 NEST} + {-1017613200 1200 0 NET} + {-998259600 4800 1 NEST} + {-986163600 1200 0 NET} + {-966723600 4800 1 NEST} + {-954109200 1200 0 NET} + {-935022000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 0 CEST} + {-766623600 3600 0 CET} + {220921200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Andorra b/mingw/lib/tcl8.5/tzdata/Europe/Andorra new file mode 100644 index 00000000..89233fe0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Andorra @@ -0,0 +1,237 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Andorra) { + {-9223372036854775808 364 0 LMT} + {-2177453164 0 0 WET} + {-733881600 3600 0 CET} + {481078800 7200 0 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Athens b/mingw/lib/tcl8.5/tzdata/Europe/Athens new file mode 100644 index 00000000..f8df408d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Athens @@ -0,0 +1,268 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Athens) { + {-9223372036854775808 5692 0 LMT} + {-2344642492 5692 0 AMT} + {-1686101632 7200 0 EET} + {-1182996000 10800 1 EEST} + {-1178161200 7200 0 EET} + {-906861600 10800 1 EEST} + {-904878000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844477200 7200 1 CEST} + {-828237600 3600 0 CET} + {-812422800 7200 0 EET} + {-552362400 10800 1 EEST} + {-541652400 7200 0 EET} + {166485600 10800 1 EEST} + {186184800 7200 0 EET} + {198028800 10800 1 EEST} + {213753600 7200 0 EET} + {228873600 10800 1 EEST} + {244080000 7200 0 EET} + {260323200 10800 1 EEST} + {275446800 7200 0 EET} + {291798000 10800 1 EEST} + {307407600 7200 0 EET} + {323388000 10800 1 EEST} + {338936400 7200 0 EET} + {347148000 7200 0 EET} + {354675600 10800 1 EEST} + {370400400 7200 0 EET} + {386125200 10800 1 EEST} + {401850000 7200 0 EET} + {417574800 10800 1 EEST} + {433299600 7200 0 EET} + {449024400 10800 1 EEST} + {465354000 7200 0 EET} + {481078800 10800 1 EEST} + {496803600 7200 0 EET} + {512528400 10800 1 EEST} + {528253200 7200 0 EET} + {543978000 10800 1 EEST} + {559702800 7200 0 EET} + {575427600 10800 1 EEST} + {591152400 7200 0 EET} + {606877200 10800 1 EEST} + {622602000 7200 0 EET} + {638326800 10800 1 EEST} + {654656400 7200 0 EET} + {670381200 10800 1 EEST} + {686106000 7200 0 EET} + {701830800 10800 1 EEST} + {717555600 7200 0 EET} + {733280400 10800 1 EEST} + {749005200 7200 0 EET} + {764730000 10800 1 EEST} + {780454800 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Belfast b/mingw/lib/tcl8.5/tzdata/Europe/Belfast new file mode 100644 index 00000000..51cd3ce4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Belfast @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:Europe/Belfast) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Belgrade b/mingw/lib/tcl8.5/tzdata/Europe/Belgrade new file mode 100644 index 00000000..384ee91e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Belgrade @@ -0,0 +1,249 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Belgrade) { + {-9223372036854775808 4920 0 LMT} + {-2713915320 3600 0 CET} + {-905824800 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-777942000 7200 1 CEST} + {-766623600 3600 0 CET} + {407199600 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Berlin b/mingw/lib/tcl8.5/tzdata/Europe/Berlin new file mode 100644 index 00000000..62a71413 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Berlin @@ -0,0 +1,273 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Berlin) { + {-9223372036854775808 3208 0 LMT} + {-2422054408 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-938905200 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 0 CEST} + {-776563200 10800 1 CEMT} + {-765936000 7200 1 CEST} + {-761180400 3600 0 CET} + {-748479600 7200 1 CEST} + {-733273200 3600 0 CET} + {-717634800 7200 1 CEST} + {-714610800 10800 1 CEMT} + {-710380800 7200 1 CEST} + {-701910000 3600 0 CET} + {-684975600 7200 1 CEST} + {-670460400 3600 0 CET} + {-654130800 7200 1 CEST} + {-639010800 3600 0 CET} + {315529200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Bratislava b/mingw/lib/tcl8.5/tzdata/Europe/Bratislava new file mode 100644 index 00000000..d65ea5a6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Bratislava @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Prague)]} { + LoadTimeZoneFile Europe/Prague +} +set TZData(:Europe/Bratislava) $TZData(:Europe/Prague) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Brussels b/mingw/lib/tcl8.5/tzdata/Europe/Brussels new file mode 100644 index 00000000..3cb9b14c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Brussels @@ -0,0 +1,316 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Brussels) { + {-9223372036854775808 1050 0 LMT} + {-2840141850 1050 0 BMT} + {-2450953050 0 0 WET} + {-1740355200 3600 0 CET} + {-1693702800 7200 0 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-1613826000 0 0 WET} + {-1604278800 3600 1 WEST} + {-1585530000 0 0 WET} + {-1574038800 3600 1 WEST} + {-1552266000 0 0 WET} + {-1539997200 3600 1 WEST} + {-1520557200 0 0 WET} + {-1507510800 3600 1 WEST} + {-1490576400 0 0 WET} + {-1473642000 3600 1 WEST} + {-1459126800 0 0 WET} + {-1444006800 3600 1 WEST} + {-1427677200 0 0 WET} + {-1411952400 3600 1 WEST} + {-1396227600 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301263200 0 0 WET} + {-1284328800 3600 1 WEST} + {-1269813600 0 0 WET} + {-1253484000 3600 1 WEST} + {-1238364000 0 0 WET} + {-1221429600 3600 1 WEST} + {-1206914400 0 0 WET} + {-1191189600 3600 1 WEST} + {-1175464800 0 0 WET} + {-1160344800 3600 1 WEST} + {-1143410400 0 0 WET} + {-1127685600 3600 1 WEST} + {-1111960800 0 0 WET} + {-1096840800 3600 1 WEST} + {-1080511200 0 0 WET} + {-1063576800 3600 1 WEST} + {-1049061600 0 0 WET} + {-1033336800 3600 1 WEST} + {-1017612000 0 0 WET} + {-1002492000 3600 1 WEST} + {-986162400 0 0 WET} + {-969228000 3600 1 WEST} + {-950479200 0 0 WET} + {-942012000 3600 1 WEST} + {-934668000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-799290000 3600 0 CET} + {-798073200 3600 0 CET} + {-781052400 7200 1 CEST} + {-766623600 3600 0 CET} + {-745455600 7200 1 CEST} + {-733273200 3600 0 CET} + {220921200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Bucharest b/mingw/lib/tcl8.5/tzdata/Europe/Bucharest new file mode 100644 index 00000000..7b3bed44 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Bucharest @@ -0,0 +1,268 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Bucharest) { + {-9223372036854775808 6264 0 LMT} + {-2469404664 6264 0 BMT} + {-1213148664 7200 0 EET} + {-1187056800 10800 1 EEST} + {-1175479200 7200 0 EET} + {-1159754400 10800 1 EEST} + {-1144029600 7200 0 EET} + {-1127700000 10800 1 EEST} + {-1111975200 7200 0 EET} + {-1096250400 10800 1 EEST} + {-1080525600 7200 0 EET} + {-1064800800 10800 1 EEST} + {-1049076000 7200 0 EET} + {-1033351200 10800 1 EEST} + {-1017626400 7200 0 EET} + {-1001901600 10800 1 EEST} + {-986176800 7200 0 EET} + {-970452000 10800 1 EEST} + {-954727200 7200 0 EET} + {296604000 10800 1 EEST} + {307486800 7200 0 EET} + {323816400 10800 1 EEST} + {338940000 7200 0 EET} + {354672000 10800 0 EEST} + {370396800 7200 0 EET} + {386121600 10800 1 EEST} + {401846400 7200 0 EET} + {417571200 10800 1 EEST} + {433296000 7200 0 EET} + {449020800 10800 1 EEST} + {465350400 7200 0 EET} + {481075200 10800 1 EEST} + {496800000 7200 0 EET} + {512524800 10800 1 EEST} + {528249600 7200 0 EET} + {543974400 10800 1 EEST} + {559699200 7200 0 EET} + {575424000 10800 1 EEST} + {591148800 7200 0 EET} + {606873600 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {662680800 7200 0 EET} + {670370400 10800 1 EEST} + {686095200 7200 0 EET} + {701820000 10800 1 EEST} + {717544800 7200 0 EET} + {733269600 10800 1 EEST} + {748994400 7200 0 EET} + {757375200 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {796168800 10800 1 EEST} + {811890000 7200 0 EET} + {828223200 10800 1 EEST} + {846363600 7200 0 EET} + {852069600 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Budapest b/mingw/lib/tcl8.5/tzdata/Europe/Budapest new file mode 100644 index 00000000..c39d118a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Budapest @@ -0,0 +1,283 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Budapest) { + {-9223372036854775808 4580 0 LMT} + {-2500938980 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1640998800 3600 0 CET} + {-1633212000 7200 1 CEST} + {-1617577200 3600 0 CET} + {-1600466400 7200 1 CEST} + {-1587250800 3600 0 CET} + {-1569708000 7200 1 CEST} + {-1554332400 3600 0 CET} + {-906937200 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-778471200 7200 0 CEST} + {-762487200 3600 0 CET} + {-749689200 7200 1 CEST} + {-733359600 3600 0 CET} + {-717634800 7200 1 CEST} + {-701910000 3600 0 CET} + {-686185200 7200 1 CEST} + {-670460400 3600 0 CET} + {-654130800 7200 1 CEST} + {-639010800 3600 0 CET} + {-621990000 7200 1 CEST} + {-605660400 3600 0 CET} + {-492656400 7200 1 CEST} + {-481168800 3600 0 CET} + {-461120400 7200 1 CEST} + {-449632800 3600 0 CET} + {-428547600 7200 1 CEST} + {-418269600 3600 0 CET} + {-397094400 7200 1 CEST} + {-386809200 3600 0 CET} + {323827200 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Chisinau b/mingw/lib/tcl8.5/tzdata/Europe/Chisinau new file mode 100644 index 00000000..4ef466ba --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Chisinau @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Chisinau) { + {-9223372036854775808 6920 0 LMT} + {-2840147720 6900 0 CMT} + {-1637114100 6264 0 BMT} + {-1213148664 7200 0 EET} + {-1187056800 10800 1 EEST} + {-1175479200 7200 0 EET} + {-1159754400 10800 1 EEST} + {-1144029600 7200 0 EET} + {-1127700000 10800 1 EEST} + {-1111975200 7200 0 EET} + {-1096250400 10800 1 EEST} + {-1080525600 7200 0 EET} + {-1064800800 10800 1 EEST} + {-1049076000 7200 0 EET} + {-1033351200 10800 1 EEST} + {-1017626400 7200 0 EET} + {-1001901600 10800 1 EEST} + {-986176800 7200 0 EET} + {-970452000 10800 1 EEST} + {-954727200 7200 0 EET} + {-927165600 10800 1 EEST} + {-898138800 7200 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-800154000 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {631141200 10800 0 MSK} + {641941200 7200 0 EET} + {662680800 7200 0 EEMMTT} + {670377600 10800 1 EEST} + {686102400 7200 0 EET} + {694216800 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {796168800 10800 1 EEST} + {811890000 7200 0 EET} + {828223200 10800 1 EEST} + {846363600 7200 0 EET} + {852069600 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Copenhagen b/mingw/lib/tcl8.5/tzdata/Europe/Copenhagen new file mode 100644 index 00000000..c747e58a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Copenhagen @@ -0,0 +1,264 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Copenhagen) { + {-9223372036854775808 3020 0 LMT} + {-2524524620 3020 0 CMT} + {-2398294220 3600 0 CET} + {-1692496800 7200 1 CEST} + {-1680490800 3600 0 CET} + {-935110800 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 0 CEST} + {-769388400 3600 0 CET} + {-747010800 7200 1 CEST} + {-736383600 3600 0 CET} + {-715215600 7200 1 CEST} + {-706748400 3600 0 CET} + {-683161200 7200 1 CEST} + {-675298800 3600 0 CET} + {315529200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Dublin b/mingw/lib/tcl8.5/tzdata/Europe/Dublin new file mode 100644 index 00000000..4b43bc07 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Dublin @@ -0,0 +1,359 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Dublin) { + {-9223372036854775808 -1500 0 LMT} + {-2821649700 -1521 0 DMT} + {-1691962479 2079 1 IST} + {-1680471279 0 0 GMT} + {-1664143200 3600 1 BST} + {-1650146400 0 0 GMT} + {-1633903200 3600 1 BST} + {-1617487200 0 0 GMT} + {-1601848800 3600 1 BST} + {-1586037600 0 0 GMT} + {-1570399200 3600 1 BST} + {-1552168800 0 0 GMT} + {-1538344800 3600 1 BST} + {-1522533600 0 0 GMT} + {-1517011200 0 0 IST} + {-1507500000 3600 1 IST} + {-1490565600 0 0 IST} + {-1473631200 3600 1 IST} + {-1460930400 0 0 IST} + {-1442786400 3600 1 IST} + {-1428876000 0 0 IST} + {-1410732000 3600 1 IST} + {-1396216800 0 0 IST} + {-1379282400 3600 1 IST} + {-1364767200 0 0 IST} + {-1348437600 3600 1 IST} + {-1333317600 0 0 IST} + {-1315778400 3600 1 IST} + {-1301263200 0 0 IST} + {-1284328800 3600 1 IST} + {-1269813600 0 0 IST} + {-1253484000 3600 1 IST} + {-1238364000 0 0 IST} + {-1221429600 3600 1 IST} + {-1206914400 0 0 IST} + {-1189980000 3600 1 IST} + {-1175464800 0 0 IST} + {-1159135200 3600 1 IST} + {-1143410400 0 0 IST} + {-1126476000 3600 1 IST} + {-1111960800 0 0 IST} + {-1095631200 3600 1 IST} + {-1080511200 0 0 IST} + {-1063576800 3600 1 IST} + {-1049061600 0 0 IST} + {-1032127200 3600 1 IST} + {-1017612000 0 0 IST} + {-1001282400 3600 1 IST} + {-986162400 0 0 IST} + {-969228000 3600 1 IST} + {-950479200 0 0 IST} + {-942015600 3600 1 IST} + {-733359600 0 0 GMT} + {-719445600 3600 1 IST} + {-699490800 0 0 GMT} + {-684972000 3600 0 IST} + {-668037600 0 0 IST} + {-654732000 3600 1 IST} + {-636588000 0 0 IST} + {-622072800 3600 1 IST} + {-605743200 0 0 IST} + {-590623200 3600 1 IST} + {-574293600 0 0 IST} + {-558568800 3600 1 IST} + {-542239200 0 0 IST} + {-527119200 3600 1 IST} + {-512604000 0 0 IST} + {-496274400 3600 1 IST} + {-481154400 0 0 IST} + {-464220000 3600 1 IST} + {-449704800 0 0 IST} + {-432165600 3600 1 IST} + {-417650400 0 0 IST} + {-401320800 3600 1 IST} + {-386200800 0 0 IST} + {-369266400 3600 1 IST} + {-354751200 0 0 IST} + {-337816800 3600 1 IST} + {-323301600 0 0 IST} + {-306972000 3600 1 IST} + {-291852000 0 0 IST} + {-276732000 3600 1 IST} + {-257983200 0 0 IST} + {-245282400 3600 1 IST} + {-226533600 0 0 IST} + {-213228000 3600 1 IST} + {-195084000 0 0 IST} + {-182383200 3600 1 IST} + {-163634400 0 0 IST} + {-150933600 3600 1 IST} + {-132184800 0 0 IST} + {-119484000 3600 1 IST} + {-100735200 0 0 IST} + {-88034400 3600 1 IST} + {-68680800 0 0 IST} + {-59004000 3600 1 IST} + {-37238400 3600 0 IST} + {57722400 0 0 IST} + {69818400 3600 1 IST} + {89172000 0 0 IST} + {101268000 3600 1 IST} + {120621600 0 0 IST} + {132717600 3600 1 IST} + {152071200 0 0 IST} + {164167200 3600 1 IST} + {183520800 0 0 IST} + {196221600 3600 1 IST} + {214970400 0 0 IST} + {227671200 3600 1 IST} + {246420000 0 0 IST} + {259120800 3600 1 IST} + {278474400 0 0 IST} + {290570400 3600 1 IST} + {309924000 0 0 IST} + {322020000 3600 1 IST} + {341373600 0 0 IST} + {354675600 3600 1 IST} + {372819600 0 0 IST} + {386125200 3600 1 IST} + {404269200 0 0 IST} + {417574800 3600 1 IST} + {435718800 0 0 IST} + {449024400 3600 1 IST} + {467773200 0 0 IST} + {481078800 3600 1 IST} + {499222800 0 0 IST} + {512528400 3600 1 IST} + {530672400 0 0 IST} + {543978000 3600 1 IST} + {562122000 0 0 IST} + {575427600 3600 1 IST} + {593571600 0 0 IST} + {606877200 3600 1 IST} + {625626000 0 0 IST} + {638326800 3600 1 IST} + {657075600 0 0 IST} + {670381200 3600 1 IST} + {688525200 0 0 IST} + {701830800 3600 1 IST} + {719974800 0 0 IST} + {733280400 3600 1 IST} + {751424400 0 0 IST} + {764730000 3600 1 IST} + {782874000 0 0 IST} + {796179600 3600 1 IST} + {814323600 0 0 IST} + {820454400 0 0 GMT} + {828234000 3600 1 IST} + {846378000 0 0 GMT} + {859683600 3600 1 IST} + {877827600 0 0 GMT} + {891133200 3600 1 IST} + {909277200 0 0 GMT} + {922582800 3600 1 IST} + {941331600 0 0 GMT} + {954032400 3600 1 IST} + {972781200 0 0 GMT} + {985482000 3600 1 IST} + {1004230800 0 0 GMT} + {1017536400 3600 1 IST} + {1035680400 0 0 GMT} + {1048986000 3600 1 IST} + {1067130000 0 0 GMT} + {1080435600 3600 1 IST} + {1099184400 0 0 GMT} + {1111885200 3600 1 IST} + {1130634000 0 0 GMT} + {1143334800 3600 1 IST} + {1162083600 0 0 GMT} + {1174784400 3600 1 IST} + {1193533200 0 0 GMT} + {1206838800 3600 1 IST} + {1224982800 0 0 GMT} + {1238288400 3600 1 IST} + {1256432400 0 0 GMT} + {1269738000 3600 1 IST} + {1288486800 0 0 GMT} + {1301187600 3600 1 IST} + {1319936400 0 0 GMT} + {1332637200 3600 1 IST} + {1351386000 0 0 GMT} + {1364691600 3600 1 IST} + {1382835600 0 0 GMT} + {1396141200 3600 1 IST} + {1414285200 0 0 GMT} + {1427590800 3600 1 IST} + {1445734800 0 0 GMT} + {1459040400 3600 1 IST} + {1477789200 0 0 GMT} + {1490490000 3600 1 IST} + {1509238800 0 0 GMT} + {1521939600 3600 1 IST} + {1540688400 0 0 GMT} + {1553994000 3600 1 IST} + {1572138000 0 0 GMT} + {1585443600 3600 1 IST} + {1603587600 0 0 GMT} + {1616893200 3600 1 IST} + {1635642000 0 0 GMT} + {1648342800 3600 1 IST} + {1667091600 0 0 GMT} + {1679792400 3600 1 IST} + {1698541200 0 0 GMT} + {1711846800 3600 1 IST} + {1729990800 0 0 GMT} + {1743296400 3600 1 IST} + {1761440400 0 0 GMT} + {1774746000 3600 1 IST} + {1792890000 0 0 GMT} + {1806195600 3600 1 IST} + {1824944400 0 0 GMT} + {1837645200 3600 1 IST} + {1856394000 0 0 GMT} + {1869094800 3600 1 IST} + {1887843600 0 0 GMT} + {1901149200 3600 1 IST} + {1919293200 0 0 GMT} + {1932598800 3600 1 IST} + {1950742800 0 0 GMT} + {1964048400 3600 1 IST} + {1982797200 0 0 GMT} + {1995498000 3600 1 IST} + {2014246800 0 0 GMT} + {2026947600 3600 1 IST} + {2045696400 0 0 GMT} + {2058397200 3600 1 IST} + {2077146000 0 0 GMT} + {2090451600 3600 1 IST} + {2108595600 0 0 GMT} + {2121901200 3600 1 IST} + {2140045200 0 0 GMT} + {2153350800 3600 1 IST} + {2172099600 0 0 GMT} + {2184800400 3600 1 IST} + {2203549200 0 0 GMT} + {2216250000 3600 1 IST} + {2234998800 0 0 GMT} + {2248304400 3600 1 IST} + {2266448400 0 0 GMT} + {2279754000 3600 1 IST} + {2297898000 0 0 GMT} + {2311203600 3600 1 IST} + {2329347600 0 0 GMT} + {2342653200 3600 1 IST} + {2361402000 0 0 GMT} + {2374102800 3600 1 IST} + {2392851600 0 0 GMT} + {2405552400 3600 1 IST} + {2424301200 0 0 GMT} + {2437606800 3600 1 IST} + {2455750800 0 0 GMT} + {2469056400 3600 1 IST} + {2487200400 0 0 GMT} + {2500506000 3600 1 IST} + {2519254800 0 0 GMT} + {2531955600 3600 1 IST} + {2550704400 0 0 GMT} + {2563405200 3600 1 IST} + {2582154000 0 0 GMT} + {2595459600 3600 1 IST} + {2613603600 0 0 GMT} + {2626909200 3600 1 IST} + {2645053200 0 0 GMT} + {2658358800 3600 1 IST} + {2676502800 0 0 GMT} + {2689808400 3600 1 IST} + {2708557200 0 0 GMT} + {2721258000 3600 1 IST} + {2740006800 0 0 GMT} + {2752707600 3600 1 IST} + {2771456400 0 0 GMT} + {2784762000 3600 1 IST} + {2802906000 0 0 GMT} + {2816211600 3600 1 IST} + {2834355600 0 0 GMT} + {2847661200 3600 1 IST} + {2866410000 0 0 GMT} + {2879110800 3600 1 IST} + {2897859600 0 0 GMT} + {2910560400 3600 1 IST} + {2929309200 0 0 GMT} + {2942010000 3600 1 IST} + {2960758800 0 0 GMT} + {2974064400 3600 1 IST} + {2992208400 0 0 GMT} + {3005514000 3600 1 IST} + {3023658000 0 0 GMT} + {3036963600 3600 1 IST} + {3055712400 0 0 GMT} + {3068413200 3600 1 IST} + {3087162000 0 0 GMT} + {3099862800 3600 1 IST} + {3118611600 0 0 GMT} + {3131917200 3600 1 IST} + {3150061200 0 0 GMT} + {3163366800 3600 1 IST} + {3181510800 0 0 GMT} + {3194816400 3600 1 IST} + {3212960400 0 0 GMT} + {3226266000 3600 1 IST} + {3245014800 0 0 GMT} + {3257715600 3600 1 IST} + {3276464400 0 0 GMT} + {3289165200 3600 1 IST} + {3307914000 0 0 GMT} + {3321219600 3600 1 IST} + {3339363600 0 0 GMT} + {3352669200 3600 1 IST} + {3370813200 0 0 GMT} + {3384118800 3600 1 IST} + {3402867600 0 0 GMT} + {3415568400 3600 1 IST} + {3434317200 0 0 GMT} + {3447018000 3600 1 IST} + {3465766800 0 0 GMT} + {3479072400 3600 1 IST} + {3497216400 0 0 GMT} + {3510522000 3600 1 IST} + {3528666000 0 0 GMT} + {3541971600 3600 1 IST} + {3560115600 0 0 GMT} + {3573421200 3600 1 IST} + {3592170000 0 0 GMT} + {3604870800 3600 1 IST} + {3623619600 0 0 GMT} + {3636320400 3600 1 IST} + {3655069200 0 0 GMT} + {3668374800 3600 1 IST} + {3686518800 0 0 GMT} + {3699824400 3600 1 IST} + {3717968400 0 0 GMT} + {3731274000 3600 1 IST} + {3750022800 0 0 GMT} + {3762723600 3600 1 IST} + {3781472400 0 0 GMT} + {3794173200 3600 1 IST} + {3812922000 0 0 GMT} + {3825622800 3600 1 IST} + {3844371600 0 0 GMT} + {3857677200 3600 1 IST} + {3875821200 0 0 GMT} + {3889126800 3600 1 IST} + {3907270800 0 0 GMT} + {3920576400 3600 1 IST} + {3939325200 0 0 GMT} + {3952026000 3600 1 IST} + {3970774800 0 0 GMT} + {3983475600 3600 1 IST} + {4002224400 0 0 GMT} + {4015530000 3600 1 IST} + {4033674000 0 0 GMT} + {4046979600 3600 1 IST} + {4065123600 0 0 GMT} + {4078429200 3600 1 IST} + {4096573200 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Gibraltar b/mingw/lib/tcl8.5/tzdata/Europe/Gibraltar new file mode 100644 index 00000000..de29c03a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Gibraltar @@ -0,0 +1,328 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Gibraltar) { + {-9223372036854775808 -1284 0 LMT} + {-2821649916 0 0 GMT} + {-1691964000 3600 1 BST} + {-1680472800 0 0 GMT} + {-1664143200 3600 1 BST} + {-1650146400 0 0 GMT} + {-1633903200 3600 1 BST} + {-1617487200 0 0 GMT} + {-1601848800 3600 1 BST} + {-1586037600 0 0 GMT} + {-1570399200 3600 1 BST} + {-1552168800 0 0 GMT} + {-1538344800 3600 1 BST} + {-1522533600 0 0 GMT} + {-1507500000 3600 1 BST} + {-1490565600 0 0 GMT} + {-1473631200 3600 1 BST} + {-1460930400 0 0 GMT} + {-1442786400 3600 1 BST} + {-1428876000 0 0 GMT} + {-1410732000 3600 1 BST} + {-1396216800 0 0 GMT} + {-1379282400 3600 1 BST} + {-1364767200 0 0 GMT} + {-1348437600 3600 1 BST} + {-1333317600 0 0 GMT} + {-1315778400 3600 1 BST} + {-1301263200 0 0 GMT} + {-1284328800 3600 1 BST} + {-1269813600 0 0 GMT} + {-1253484000 3600 1 BST} + {-1238364000 0 0 GMT} + {-1221429600 3600 1 BST} + {-1206914400 0 0 GMT} + {-1189980000 3600 1 BST} + {-1175464800 0 0 GMT} + {-1159135200 3600 1 BST} + {-1143410400 0 0 GMT} + {-1126476000 3600 1 BST} + {-1111960800 0 0 GMT} + {-1095631200 3600 1 BST} + {-1080511200 0 0 GMT} + {-1063576800 3600 1 BST} + {-1049061600 0 0 GMT} + {-1032127200 3600 1 BST} + {-1017612000 0 0 GMT} + {-1001282400 3600 1 BST} + {-986162400 0 0 GMT} + {-969228000 3600 1 BST} + {-950479200 0 0 GMT} + {-942012000 3600 1 BST} + {-904518000 7200 1 BDST} + {-896050800 3600 1 BST} + {-875487600 7200 1 BDST} + {-864601200 3600 1 BST} + {-844038000 7200 1 BDST} + {-832546800 3600 1 BST} + {-812588400 7200 1 BDST} + {-798073200 3600 1 BST} + {-781052400 7200 1 BDST} + {-772066800 3600 1 BST} + {-764805600 0 0 GMT} + {-748476000 3600 1 BST} + {-733356000 0 0 GMT} + {-719445600 3600 1 BST} + {-717030000 7200 1 BDST} + {-706748400 3600 1 BST} + {-699487200 0 0 GMT} + {-687996000 3600 1 BST} + {-668037600 0 0 GMT} + {-654732000 3600 1 BST} + {-636588000 0 0 GMT} + {-622072800 3600 1 BST} + {-605743200 0 0 GMT} + {-590623200 3600 1 BST} + {-574293600 0 0 GMT} + {-558568800 3600 1 BST} + {-542239200 0 0 GMT} + {-527119200 3600 1 BST} + {-512604000 0 0 GMT} + {-496274400 3600 1 BST} + {-481154400 0 0 GMT} + {-464220000 3600 1 BST} + {-449704800 0 0 GMT} + {-432165600 3600 1 BST} + {-417650400 0 0 GMT} + {-401320800 3600 0 CET} + {378687600 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Guernsey b/mingw/lib/tcl8.5/tzdata/Europe/Guernsey new file mode 100644 index 00000000..4372c640 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Guernsey @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:Europe/Guernsey) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Helsinki b/mingw/lib/tcl8.5/tzdata/Europe/Helsinki new file mode 100644 index 00000000..04bd9916 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Helsinki @@ -0,0 +1,248 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Helsinki) { + {-9223372036854775808 5992 0 LMT} + {-2890258792 5992 0 HMT} + {-1535938792 7200 0 EET} + {-875671200 10800 1 EEST} + {-859863600 7200 0 EET} + {354672000 7200 0 EET} + {354675600 10800 1 EEST} + {370400400 7200 0 EET} + {386125200 10800 1 EEST} + {401850000 7200 0 EET} + {417574800 10800 1 EEST} + {433299600 7200 0 EET} + {449024400 10800 1 EEST} + {465354000 7200 0 EET} + {481078800 10800 1 EEST} + {496803600 7200 0 EET} + {512528400 10800 1 EEST} + {528253200 7200 0 EET} + {543978000 10800 1 EEST} + {559702800 7200 0 EET} + {575427600 10800 1 EEST} + {591152400 7200 0 EET} + {606877200 10800 1 EEST} + {622602000 7200 0 EET} + {638326800 10800 1 EEST} + {654656400 7200 0 EET} + {670381200 10800 1 EEST} + {686106000 7200 0 EET} + {701830800 10800 1 EEST} + {717555600 7200 0 EET} + {733280400 10800 1 EEST} + {749005200 7200 0 EET} + {764730000 10800 1 EEST} + {780454800 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man b/mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man new file mode 100644 index 00000000..870ac45c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:Europe/Isle_of_Man) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Istanbul b/mingw/lib/tcl8.5/tzdata/Europe/Istanbul new file mode 100644 index 00000000..06b2f881 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Istanbul @@ -0,0 +1,303 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Istanbul) { + {-9223372036854775808 6952 0 LMT} + {-2840147752 7016 0 IMT} + {-1869875816 7200 0 EET} + {-1693706400 10800 1 EEST} + {-1680490800 7200 0 EET} + {-1570413600 10800 1 EEST} + {-1552186800 7200 0 EET} + {-1538359200 10800 1 EEST} + {-1522551600 7200 0 EET} + {-1507514400 10800 1 EEST} + {-1490583600 7200 0 EET} + {-1440208800 10800 1 EEST} + {-1428030000 7200 0 EET} + {-1409709600 10800 1 EEST} + {-1396494000 7200 0 EET} + {-931140000 10800 1 EEST} + {-922762800 7200 0 EET} + {-917834400 10800 1 EEST} + {-892436400 7200 0 EET} + {-875844000 10800 1 EEST} + {-857358000 7200 0 EET} + {-781063200 10800 1 EEST} + {-764737200 7200 0 EET} + {-744343200 10800 1 EEST} + {-733806000 7200 0 EET} + {-716436000 10800 1 EEST} + {-701924400 7200 0 EET} + {-684986400 10800 1 EEST} + {-670474800 7200 0 EET} + {-654141600 10800 1 EEST} + {-639025200 7200 0 EET} + {-621828000 10800 1 EEST} + {-606970800 7200 0 EET} + {-590032800 10800 1 EEST} + {-575434800 7200 0 EET} + {-235620000 10800 1 EEST} + {-228279600 7200 0 EET} + {-177732000 10800 1 EEST} + {-165726000 7200 0 EET} + {10533600 10800 1 EEST} + {23835600 7200 0 EET} + {41983200 10800 1 EEST} + {55285200 7200 0 EET} + {74037600 10800 1 EEST} + {87339600 7200 0 EET} + {107910000 10800 1 EEST} + {121219200 7200 0 EET} + {133920000 10800 1 EEST} + {152676000 7200 0 EET} + {165362400 10800 1 EEST} + {183502800 7200 0 EET} + {202428000 10800 1 EEST} + {215557200 7200 0 EET} + {228866400 10800 1 EEST} + {245797200 7200 0 EET} + {260316000 10800 1 EEST} + {277246800 14400 0 TRST} + {291769200 14400 1 TRST} + {308779200 10800 0 TRT} + {323827200 14400 1 TRST} + {340228800 10800 0 TRT} + {354672000 14400 1 TRST} + {371678400 10800 0 TRT} + {386121600 14400 1 TRST} + {403128000 10800 0 TRT} + {428446800 14400 1 TRST} + {433886400 10800 0 TRT} + {482792400 7200 0 EET} + {482796000 10800 1 EEST} + {496702800 7200 0 EET} + {512524800 10800 1 EEST} + {528249600 7200 0 EET} + {543974400 10800 1 EEST} + {559699200 7200 0 EET} + {575424000 10800 1 EEST} + {591148800 7200 0 EET} + {606873600 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {670374000 10800 1 EEST} + {686098800 7200 0 EET} + {701823600 10800 1 EEST} + {717548400 7200 0 EET} + {733273200 10800 1 EEST} + {748998000 7200 0 EET} + {764722800 10800 1 EEST} + {780447600 7200 0 EET} + {796172400 10800 1 EEST} + {811897200 7200 0 EET} + {828226800 10800 1 EEST} + {846370800 7200 0 EET} + {859676400 10800 1 EEST} + {877820400 7200 0 EET} + {891126000 10800 1 EEST} + {909270000 7200 0 EET} + {922575600 10800 1 EEST} + {941324400 7200 0 EET} + {954025200 10800 1 EEST} + {972774000 7200 0 EET} + {985474800 10800 1 EEST} + {1004223600 7200 0 EET} + {1017529200 10800 1 EEST} + {1035673200 7200 0 EET} + {1048978800 10800 1 EEST} + {1067122800 7200 0 EET} + {1080428400 10800 1 EEST} + {1099177200 7200 0 EET} + {1111878000 10800 1 EEST} + {1130626800 7200 0 EET} + {1143327600 10800 1 EEST} + {1162076400 7200 0 EET} + {1167602400 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Jersey b/mingw/lib/tcl8.5/tzdata/Europe/Jersey new file mode 100644 index 00000000..e4da5125 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Jersey @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:Europe/Jersey) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad b/mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad new file mode 100644 index 00000000..94ebb12c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad @@ -0,0 +1,261 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Kaliningrad) { + {-9223372036854775808 4920 0 LMT} + {-2422056120 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-938905200 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-788922000 7200 0 CET} + {-778730400 10800 1 CEST} + {-762663600 7200 0 CET} + {-757389600 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {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 7200 0 EET} + {701816400 10800 1 EEST} + {717537600 7200 0 EET} + {733276800 10800 1 EEST} + {749001600 7200 0 EET} + {764726400 10800 1 EEST} + {780451200 7200 0 EET} + {796176000 10800 1 EEST} + {811900800 7200 0 EET} + {828230400 10800 1 EEST} + {846374400 7200 0 EET} + {859680000 10800 1 EEST} + {877824000 7200 0 EET} + {891129600 10800 1 EEST} + {909273600 7200 0 EET} + {922579200 10800 1 EEST} + {941328000 7200 0 EET} + {954028800 10800 1 EEST} + {972777600 7200 0 EET} + {985478400 10800 1 EEST} + {1004227200 7200 0 EET} + {1017532800 10800 1 EEST} + {1035676800 7200 0 EET} + {1048982400 10800 1 EEST} + {1067126400 7200 0 EET} + {1080432000 10800 1 EEST} + {1099180800 7200 0 EET} + {1111881600 10800 1 EEST} + {1130630400 7200 0 EET} + {1143331200 10800 1 EEST} + {1162080000 7200 0 EET} + {1174780800 10800 1 EEST} + {1193529600 7200 0 EET} + {1206835200 10800 1 EEST} + {1224979200 7200 0 EET} + {1238284800 10800 1 EEST} + {1256428800 7200 0 EET} + {1269734400 10800 1 EEST} + {1288483200 7200 0 EET} + {1301184000 10800 1 EEST} + {1319932800 7200 0 EET} + {1332633600 10800 1 EEST} + {1351382400 7200 0 EET} + {1364688000 10800 1 EEST} + {1382832000 7200 0 EET} + {1396137600 10800 1 EEST} + {1414281600 7200 0 EET} + {1427587200 10800 1 EEST} + {1445731200 7200 0 EET} + {1459036800 10800 1 EEST} + {1477785600 7200 0 EET} + {1490486400 10800 1 EEST} + {1509235200 7200 0 EET} + {1521936000 10800 1 EEST} + {1540684800 7200 0 EET} + {1553990400 10800 1 EEST} + {1572134400 7200 0 EET} + {1585440000 10800 1 EEST} + {1603584000 7200 0 EET} + {1616889600 10800 1 EEST} + {1635638400 7200 0 EET} + {1648339200 10800 1 EEST} + {1667088000 7200 0 EET} + {1679788800 10800 1 EEST} + {1698537600 7200 0 EET} + {1711843200 10800 1 EEST} + {1729987200 7200 0 EET} + {1743292800 10800 1 EEST} + {1761436800 7200 0 EET} + {1774742400 10800 1 EEST} + {1792886400 7200 0 EET} + {1806192000 10800 1 EEST} + {1824940800 7200 0 EET} + {1837641600 10800 1 EEST} + {1856390400 7200 0 EET} + {1869091200 10800 1 EEST} + {1887840000 7200 0 EET} + {1901145600 10800 1 EEST} + {1919289600 7200 0 EET} + {1932595200 10800 1 EEST} + {1950739200 7200 0 EET} + {1964044800 10800 1 EEST} + {1982793600 7200 0 EET} + {1995494400 10800 1 EEST} + {2014243200 7200 0 EET} + {2026944000 10800 1 EEST} + {2045692800 7200 0 EET} + {2058393600 10800 1 EEST} + {2077142400 7200 0 EET} + {2090448000 10800 1 EEST} + {2108592000 7200 0 EET} + {2121897600 10800 1 EEST} + {2140041600 7200 0 EET} + {2153347200 10800 1 EEST} + {2172096000 7200 0 EET} + {2184796800 10800 1 EEST} + {2203545600 7200 0 EET} + {2216246400 10800 1 EEST} + {2234995200 7200 0 EET} + {2248300800 10800 1 EEST} + {2266444800 7200 0 EET} + {2279750400 10800 1 EEST} + {2297894400 7200 0 EET} + {2311200000 10800 1 EEST} + {2329344000 7200 0 EET} + {2342649600 10800 1 EEST} + {2361398400 7200 0 EET} + {2374099200 10800 1 EEST} + {2392848000 7200 0 EET} + {2405548800 10800 1 EEST} + {2424297600 7200 0 EET} + {2437603200 10800 1 EEST} + {2455747200 7200 0 EET} + {2469052800 10800 1 EEST} + {2487196800 7200 0 EET} + {2500502400 10800 1 EEST} + {2519251200 7200 0 EET} + {2531952000 10800 1 EEST} + {2550700800 7200 0 EET} + {2563401600 10800 1 EEST} + {2582150400 7200 0 EET} + {2595456000 10800 1 EEST} + {2613600000 7200 0 EET} + {2626905600 10800 1 EEST} + {2645049600 7200 0 EET} + {2658355200 10800 1 EEST} + {2676499200 7200 0 EET} + {2689804800 10800 1 EEST} + {2708553600 7200 0 EET} + {2721254400 10800 1 EEST} + {2740003200 7200 0 EET} + {2752704000 10800 1 EEST} + {2771452800 7200 0 EET} + {2784758400 10800 1 EEST} + {2802902400 7200 0 EET} + {2816208000 10800 1 EEST} + {2834352000 7200 0 EET} + {2847657600 10800 1 EEST} + {2866406400 7200 0 EET} + {2879107200 10800 1 EEST} + {2897856000 7200 0 EET} + {2910556800 10800 1 EEST} + {2929305600 7200 0 EET} + {2942006400 10800 1 EEST} + {2960755200 7200 0 EET} + {2974060800 10800 1 EEST} + {2992204800 7200 0 EET} + {3005510400 10800 1 EEST} + {3023654400 7200 0 EET} + {3036960000 10800 1 EEST} + {3055708800 7200 0 EET} + {3068409600 10800 1 EEST} + {3087158400 7200 0 EET} + {3099859200 10800 1 EEST} + {3118608000 7200 0 EET} + {3131913600 10800 1 EEST} + {3150057600 7200 0 EET} + {3163363200 10800 1 EEST} + {3181507200 7200 0 EET} + {3194812800 10800 1 EEST} + {3212956800 7200 0 EET} + {3226262400 10800 1 EEST} + {3245011200 7200 0 EET} + {3257712000 10800 1 EEST} + {3276460800 7200 0 EET} + {3289161600 10800 1 EEST} + {3307910400 7200 0 EET} + {3321216000 10800 1 EEST} + {3339360000 7200 0 EET} + {3352665600 10800 1 EEST} + {3370809600 7200 0 EET} + {3384115200 10800 1 EEST} + {3402864000 7200 0 EET} + {3415564800 10800 1 EEST} + {3434313600 7200 0 EET} + {3447014400 10800 1 EEST} + {3465763200 7200 0 EET} + {3479068800 10800 1 EEST} + {3497212800 7200 0 EET} + {3510518400 10800 1 EEST} + {3528662400 7200 0 EET} + {3541968000 10800 1 EEST} + {3560112000 7200 0 EET} + {3573417600 10800 1 EEST} + {3592166400 7200 0 EET} + {3604867200 10800 1 EEST} + {3623616000 7200 0 EET} + {3636316800 10800 1 EEST} + {3655065600 7200 0 EET} + {3668371200 10800 1 EEST} + {3686515200 7200 0 EET} + {3699820800 10800 1 EEST} + {3717964800 7200 0 EET} + {3731270400 10800 1 EEST} + {3750019200 7200 0 EET} + {3762720000 10800 1 EEST} + {3781468800 7200 0 EET} + {3794169600 10800 1 EEST} + {3812918400 7200 0 EET} + {3825619200 10800 1 EEST} + {3844368000 7200 0 EET} + {3857673600 10800 1 EEST} + {3875817600 7200 0 EET} + {3889123200 10800 1 EEST} + {3907267200 7200 0 EET} + {3920572800 10800 1 EEST} + {3939321600 7200 0 EET} + {3952022400 10800 1 EEST} + {3970771200 7200 0 EET} + {3983472000 10800 1 EEST} + {4002220800 7200 0 EET} + {4015526400 10800 1 EEST} + {4033670400 7200 0 EET} + {4046976000 10800 1 EEST} + {4065120000 7200 0 EET} + {4078425600 10800 1 EEST} + {4096569600 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Kiev b/mingw/lib/tcl8.5/tzdata/Europe/Kiev new file mode 100644 index 00000000..0206be71 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Kiev @@ -0,0 +1,251 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Kiev) { + {-9223372036854775808 7324 0 LMT} + {-2840148124 7324 0 KMT} + {-1441159324 7200 0 EET} + {-1247536800 10800 0 MSK} + {-892522800 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-825382800 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {631141200 10800 0 MSK} + {646786800 7200 0 EET} + {694216800 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {788911200 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Lisbon b/mingw/lib/tcl8.5/tzdata/Europe/Lisbon new file mode 100644 index 00000000..79c688a9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Lisbon @@ -0,0 +1,351 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Lisbon) { + {-9223372036854775808 -2192 0 LMT} + {-2713908208 -2192 0 LMT} + {-1830381808 0 0 WET} + {-1689555600 3600 1 WEST} + {-1677801600 0 0 WET} + {-1667437200 3600 1 WEST} + {-1647738000 0 0 WET} + {-1635814800 3600 1 WEST} + {-1616202000 0 0 WET} + {-1604365200 3600 1 WEST} + {-1584666000 0 0 WET} + {-1572742800 3600 1 WEST} + {-1553043600 0 0 WET} + {-1541206800 3600 1 WEST} + {-1521507600 0 0 WET} + {-1442451600 3600 1 WEST} + {-1426813200 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301274000 0 0 WET} + {-1284339600 3600 1 WEST} + {-1269824400 0 0 WET} + {-1221440400 3600 1 WEST} + {-1206925200 0 0 WET} + {-1191200400 3600 1 WEST} + {-1175475600 0 0 WET} + {-1127696400 3600 1 WEST} + {-1111971600 0 0 WET} + {-1096851600 3600 1 WEST} + {-1080522000 0 0 WET} + {-1063587600 3600 1 WEST} + {-1049072400 0 0 WET} + {-1033347600 3600 1 WEST} + {-1017622800 0 0 WET} + {-1002502800 3600 1 WEST} + {-986173200 0 0 WET} + {-969238800 3600 1 WEST} + {-950490000 0 0 WET} + {-942022800 3600 1 WEST} + {-922669200 0 0 WET} + {-906944400 3600 1 WEST} + {-891133200 0 0 WET} + {-877309200 3600 1 WEST} + {-873684000 7200 1 WEMT} + {-864007200 3600 1 WEST} + {-857955600 0 0 WET} + {-845859600 3600 1 WEST} + {-842839200 7200 1 WEMT} + {-831348000 3600 1 WEST} + {-825901200 0 0 WET} + {-814410000 3600 1 WEST} + {-810784800 7200 1 WEMT} + {-799898400 3600 1 WEST} + {-794451600 0 0 WET} + {-782960400 3600 1 WEST} + {-779335200 7200 1 WEMT} + {-768448800 3600 1 WEST} + {-763002000 0 0 WET} + {-749091600 3600 1 WEST} + {-733366800 0 0 WET} + {-717631200 3600 1 WEST} + {-701906400 0 0 WET} + {-686181600 3600 1 WEST} + {-670456800 0 0 WET} + {-654732000 3600 1 WEST} + {-639007200 0 0 WET} + {-591832800 3600 1 WEST} + {-575503200 0 0 WET} + {-559778400 3600 1 WEST} + {-544053600 0 0 WET} + {-528328800 3600 1 WEST} + {-512604000 0 0 WET} + {-496879200 3600 1 WEST} + {-481154400 0 0 WET} + {-465429600 3600 1 WEST} + {-449704800 0 0 WET} + {-433980000 3600 1 WEST} + {-417650400 0 0 WET} + {-401925600 3600 1 WEST} + {-386200800 0 0 WET} + {-370476000 3600 1 WEST} + {-354751200 0 0 WET} + {-339026400 3600 1 WEST} + {-323301600 0 0 WET} + {-307576800 3600 1 WEST} + {-291852000 0 0 WET} + {-276127200 3600 1 WEST} + {-260402400 0 0 WET} + {-244677600 3600 1 WEST} + {-228348000 0 0 WET} + {-212623200 3600 1 WEST} + {-196898400 0 0 WET} + {-181173600 3600 1 WEST} + {-165448800 0 0 WET} + {-149724000 3600 1 WEST} + {-133999200 0 0 WET} + {-118274400 3600 0 CET} + {212544000 0 0 WET} + {228268800 3600 1 WEST} + {243993600 0 0 WET} + {260323200 3600 1 WEST} + {276048000 0 0 WET} + {291772800 3600 1 WEST} + {307501200 0 0 WET} + {323222400 3600 1 WEST} + {338950800 0 0 WET} + {354675600 3600 1 WEST} + {370400400 0 0 WET} + {386125200 3600 1 WEST} + {401850000 0 0 WET} + {417578400 3600 1 WEST} + {433299600 0 0 WET} + {449024400 3600 1 WEST} + {465354000 0 0 WET} + {481078800 3600 1 WEST} + {496803600 0 0 WET} + {512528400 3600 1 WEST} + {528253200 0 0 WET} + {543978000 3600 1 WEST} + {559702800 0 0 WET} + {575427600 3600 1 WEST} + {591152400 0 0 WET} + {606877200 3600 1 WEST} + {622602000 0 0 WET} + {638326800 3600 1 WEST} + {654656400 0 0 WET} + {670381200 3600 1 WEST} + {686106000 0 0 WET} + {701830800 3600 1 WEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 3600 0 WEST} + {846378000 0 0 WET} + {859683600 3600 1 WEST} + {877827600 0 0 WET} + {891133200 3600 1 WEST} + {909277200 0 0 WET} + {922582800 3600 1 WEST} + {941331600 0 0 WET} + {954032400 3600 1 WEST} + {972781200 0 0 WET} + {985482000 3600 1 WEST} + {1004230800 0 0 WET} + {1017536400 3600 1 WEST} + {1035680400 0 0 WET} + {1048986000 3600 1 WEST} + {1067130000 0 0 WET} + {1080435600 3600 1 WEST} + {1099184400 0 0 WET} + {1111885200 3600 1 WEST} + {1130634000 0 0 WET} + {1143334800 3600 1 WEST} + {1162083600 0 0 WET} + {1174784400 3600 1 WEST} + {1193533200 0 0 WET} + {1206838800 3600 1 WEST} + {1224982800 0 0 WET} + {1238288400 3600 1 WEST} + {1256432400 0 0 WET} + {1269738000 3600 1 WEST} + {1288486800 0 0 WET} + {1301187600 3600 1 WEST} + {1319936400 0 0 WET} + {1332637200 3600 1 WEST} + {1351386000 0 0 WET} + {1364691600 3600 1 WEST} + {1382835600 0 0 WET} + {1396141200 3600 1 WEST} + {1414285200 0 0 WET} + {1427590800 3600 1 WEST} + {1445734800 0 0 WET} + {1459040400 3600 1 WEST} + {1477789200 0 0 WET} + {1490490000 3600 1 WEST} + {1509238800 0 0 WET} + {1521939600 3600 1 WEST} + {1540688400 0 0 WET} + {1553994000 3600 1 WEST} + {1572138000 0 0 WET} + {1585443600 3600 1 WEST} + {1603587600 0 0 WET} + {1616893200 3600 1 WEST} + {1635642000 0 0 WET} + {1648342800 3600 1 WEST} + {1667091600 0 0 WET} + {1679792400 3600 1 WEST} + {1698541200 0 0 WET} + {1711846800 3600 1 WEST} + {1729990800 0 0 WET} + {1743296400 3600 1 WEST} + {1761440400 0 0 WET} + {1774746000 3600 1 WEST} + {1792890000 0 0 WET} + {1806195600 3600 1 WEST} + {1824944400 0 0 WET} + {1837645200 3600 1 WEST} + {1856394000 0 0 WET} + {1869094800 3600 1 WEST} + {1887843600 0 0 WET} + {1901149200 3600 1 WEST} + {1919293200 0 0 WET} + {1932598800 3600 1 WEST} + {1950742800 0 0 WET} + {1964048400 3600 1 WEST} + {1982797200 0 0 WET} + {1995498000 3600 1 WEST} + {2014246800 0 0 WET} + {2026947600 3600 1 WEST} + {2045696400 0 0 WET} + {2058397200 3600 1 WEST} + {2077146000 0 0 WET} + {2090451600 3600 1 WEST} + {2108595600 0 0 WET} + {2121901200 3600 1 WEST} + {2140045200 0 0 WET} + {2153350800 3600 1 WEST} + {2172099600 0 0 WET} + {2184800400 3600 1 WEST} + {2203549200 0 0 WET} + {2216250000 3600 1 WEST} + {2234998800 0 0 WET} + {2248304400 3600 1 WEST} + {2266448400 0 0 WET} + {2279754000 3600 1 WEST} + {2297898000 0 0 WET} + {2311203600 3600 1 WEST} + {2329347600 0 0 WET} + {2342653200 3600 1 WEST} + {2361402000 0 0 WET} + {2374102800 3600 1 WEST} + {2392851600 0 0 WET} + {2405552400 3600 1 WEST} + {2424301200 0 0 WET} + {2437606800 3600 1 WEST} + {2455750800 0 0 WET} + {2469056400 3600 1 WEST} + {2487200400 0 0 WET} + {2500506000 3600 1 WEST} + {2519254800 0 0 WET} + {2531955600 3600 1 WEST} + {2550704400 0 0 WET} + {2563405200 3600 1 WEST} + {2582154000 0 0 WET} + {2595459600 3600 1 WEST} + {2613603600 0 0 WET} + {2626909200 3600 1 WEST} + {2645053200 0 0 WET} + {2658358800 3600 1 WEST} + {2676502800 0 0 WET} + {2689808400 3600 1 WEST} + {2708557200 0 0 WET} + {2721258000 3600 1 WEST} + {2740006800 0 0 WET} + {2752707600 3600 1 WEST} + {2771456400 0 0 WET} + {2784762000 3600 1 WEST} + {2802906000 0 0 WET} + {2816211600 3600 1 WEST} + {2834355600 0 0 WET} + {2847661200 3600 1 WEST} + {2866410000 0 0 WET} + {2879110800 3600 1 WEST} + {2897859600 0 0 WET} + {2910560400 3600 1 WEST} + {2929309200 0 0 WET} + {2942010000 3600 1 WEST} + {2960758800 0 0 WET} + {2974064400 3600 1 WEST} + {2992208400 0 0 WET} + {3005514000 3600 1 WEST} + {3023658000 0 0 WET} + {3036963600 3600 1 WEST} + {3055712400 0 0 WET} + {3068413200 3600 1 WEST} + {3087162000 0 0 WET} + {3099862800 3600 1 WEST} + {3118611600 0 0 WET} + {3131917200 3600 1 WEST} + {3150061200 0 0 WET} + {3163366800 3600 1 WEST} + {3181510800 0 0 WET} + {3194816400 3600 1 WEST} + {3212960400 0 0 WET} + {3226266000 3600 1 WEST} + {3245014800 0 0 WET} + {3257715600 3600 1 WEST} + {3276464400 0 0 WET} + {3289165200 3600 1 WEST} + {3307914000 0 0 WET} + {3321219600 3600 1 WEST} + {3339363600 0 0 WET} + {3352669200 3600 1 WEST} + {3370813200 0 0 WET} + {3384118800 3600 1 WEST} + {3402867600 0 0 WET} + {3415568400 3600 1 WEST} + {3434317200 0 0 WET} + {3447018000 3600 1 WEST} + {3465766800 0 0 WET} + {3479072400 3600 1 WEST} + {3497216400 0 0 WET} + {3510522000 3600 1 WEST} + {3528666000 0 0 WET} + {3541971600 3600 1 WEST} + {3560115600 0 0 WET} + {3573421200 3600 1 WEST} + {3592170000 0 0 WET} + {3604870800 3600 1 WEST} + {3623619600 0 0 WET} + {3636320400 3600 1 WEST} + {3655069200 0 0 WET} + {3668374800 3600 1 WEST} + {3686518800 0 0 WET} + {3699824400 3600 1 WEST} + {3717968400 0 0 WET} + {3731274000 3600 1 WEST} + {3750022800 0 0 WET} + {3762723600 3600 1 WEST} + {3781472400 0 0 WET} + {3794173200 3600 1 WEST} + {3812922000 0 0 WET} + {3825622800 3600 1 WEST} + {3844371600 0 0 WET} + {3857677200 3600 1 WEST} + {3875821200 0 0 WET} + {3889126800 3600 1 WEST} + {3907270800 0 0 WET} + {3920576400 3600 1 WEST} + {3939325200 0 0 WET} + {3952026000 3600 1 WEST} + {3970774800 0 0 WET} + {3983475600 3600 1 WEST} + {4002224400 0 0 WET} + {4015530000 3600 1 WEST} + {4033674000 0 0 WET} + {4046979600 3600 1 WEST} + {4065123600 0 0 WET} + {4078429200 3600 1 WEST} + {4096573200 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Ljubljana b/mingw/lib/tcl8.5/tzdata/Europe/Ljubljana new file mode 100644 index 00000000..42c7df43 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Ljubljana @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Belgrade)]} { + LoadTimeZoneFile Europe/Belgrade +} +set TZData(:Europe/Ljubljana) $TZData(:Europe/Belgrade) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/London b/mingw/lib/tcl8.5/tzdata/Europe/London new file mode 100644 index 00000000..2014e00e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/London @@ -0,0 +1,372 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/London) { + {-9223372036854775808 -75 0 LMT} + {-3852662325 0 0 GMT} + {-1691964000 3600 1 BST} + {-1680472800 0 0 GMT} + {-1664143200 3600 1 BST} + {-1650146400 0 0 GMT} + {-1633903200 3600 1 BST} + {-1617487200 0 0 GMT} + {-1601848800 3600 1 BST} + {-1586037600 0 0 GMT} + {-1570399200 3600 1 BST} + {-1552168800 0 0 GMT} + {-1538344800 3600 1 BST} + {-1522533600 0 0 GMT} + {-1507500000 3600 1 BST} + {-1490565600 0 0 GMT} + {-1473631200 3600 1 BST} + {-1460930400 0 0 GMT} + {-1442786400 3600 1 BST} + {-1428876000 0 0 GMT} + {-1410732000 3600 1 BST} + {-1396216800 0 0 GMT} + {-1379282400 3600 1 BST} + {-1364767200 0 0 GMT} + {-1348437600 3600 1 BST} + {-1333317600 0 0 GMT} + {-1315778400 3600 1 BST} + {-1301263200 0 0 GMT} + {-1284328800 3600 1 BST} + {-1269813600 0 0 GMT} + {-1253484000 3600 1 BST} + {-1238364000 0 0 GMT} + {-1221429600 3600 1 BST} + {-1206914400 0 0 GMT} + {-1189980000 3600 1 BST} + {-1175464800 0 0 GMT} + {-1159135200 3600 1 BST} + {-1143410400 0 0 GMT} + {-1126476000 3600 1 BST} + {-1111960800 0 0 GMT} + {-1095631200 3600 1 BST} + {-1080511200 0 0 GMT} + {-1063576800 3600 1 BST} + {-1049061600 0 0 GMT} + {-1032127200 3600 1 BST} + {-1017612000 0 0 GMT} + {-1001282400 3600 1 BST} + {-986162400 0 0 GMT} + {-969228000 3600 1 BST} + {-950479200 0 0 GMT} + {-942012000 3600 1 BST} + {-904518000 7200 1 BDST} + {-896050800 3600 1 BST} + {-875487600 7200 1 BDST} + {-864601200 3600 1 BST} + {-844038000 7200 1 BDST} + {-832546800 3600 1 BST} + {-812588400 7200 1 BDST} + {-798073200 3600 1 BST} + {-781052400 7200 1 BDST} + {-772066800 3600 1 BST} + {-764805600 0 0 GMT} + {-748476000 3600 1 BST} + {-733356000 0 0 GMT} + {-719445600 3600 1 BST} + {-717030000 7200 1 BDST} + {-706748400 3600 1 BST} + {-699487200 0 0 GMT} + {-687996000 3600 1 BST} + {-668037600 0 0 GMT} + {-654732000 3600 1 BST} + {-636588000 0 0 GMT} + {-622072800 3600 1 BST} + {-605743200 0 0 GMT} + {-590623200 3600 1 BST} + {-574293600 0 0 GMT} + {-558568800 3600 1 BST} + {-542239200 0 0 GMT} + {-527119200 3600 1 BST} + {-512604000 0 0 GMT} + {-496274400 3600 1 BST} + {-481154400 0 0 GMT} + {-464220000 3600 1 BST} + {-449704800 0 0 GMT} + {-432165600 3600 1 BST} + {-417650400 0 0 GMT} + {-401320800 3600 1 BST} + {-386200800 0 0 GMT} + {-369266400 3600 1 BST} + {-354751200 0 0 GMT} + {-337816800 3600 1 BST} + {-323301600 0 0 GMT} + {-306972000 3600 1 BST} + {-291852000 0 0 GMT} + {-276732000 3600 1 BST} + {-257983200 0 0 GMT} + {-245282400 3600 1 BST} + {-226533600 0 0 GMT} + {-213228000 3600 1 BST} + {-195084000 0 0 GMT} + {-182383200 3600 1 BST} + {-163634400 0 0 GMT} + {-150933600 3600 1 BST} + {-132184800 0 0 GMT} + {-119484000 3600 1 BST} + {-100735200 0 0 GMT} + {-88034400 3600 1 BST} + {-68680800 0 0 GMT} + {-59004000 3600 1 BST} + {-37238400 3600 0 BST} + {57722400 0 0 GMT} + {69818400 3600 1 BST} + {89172000 0 0 GMT} + {101268000 3600 1 BST} + {120621600 0 0 GMT} + {132717600 3600 1 BST} + {152071200 0 0 GMT} + {164167200 3600 1 BST} + {183520800 0 0 GMT} + {196221600 3600 1 BST} + {214970400 0 0 GMT} + {227671200 3600 1 BST} + {246420000 0 0 GMT} + {259120800 3600 1 BST} + {278474400 0 0 GMT} + {290570400 3600 1 BST} + {309924000 0 0 GMT} + {322020000 3600 1 BST} + {341373600 0 0 GMT} + {354675600 3600 1 BST} + {372819600 0 0 GMT} + {386125200 3600 1 BST} + {404269200 0 0 GMT} + {417574800 3600 1 BST} + {435718800 0 0 GMT} + {449024400 3600 1 BST} + {467773200 0 0 GMT} + {481078800 3600 1 BST} + {499222800 0 0 GMT} + {512528400 3600 1 BST} + {530672400 0 0 GMT} + {543978000 3600 1 BST} + {562122000 0 0 GMT} + {575427600 3600 1 BST} + {593571600 0 0 GMT} + {606877200 3600 1 BST} + {625626000 0 0 GMT} + {638326800 3600 1 BST} + {657075600 0 0 GMT} + {670381200 3600 1 BST} + {688525200 0 0 GMT} + {701830800 3600 1 BST} + {719974800 0 0 GMT} + {733280400 3600 1 BST} + {751424400 0 0 GMT} + {764730000 3600 1 BST} + {782874000 0 0 GMT} + {796179600 3600 1 BST} + {814323600 0 0 GMT} + {820454400 0 0 GMT} + {828234000 3600 1 BST} + {846378000 0 0 GMT} + {859683600 3600 1 BST} + {877827600 0 0 GMT} + {891133200 3600 1 BST} + {909277200 0 0 GMT} + {922582800 3600 1 BST} + {941331600 0 0 GMT} + {954032400 3600 1 BST} + {972781200 0 0 GMT} + {985482000 3600 1 BST} + {1004230800 0 0 GMT} + {1017536400 3600 1 BST} + {1035680400 0 0 GMT} + {1048986000 3600 1 BST} + {1067130000 0 0 GMT} + {1080435600 3600 1 BST} + {1099184400 0 0 GMT} + {1111885200 3600 1 BST} + {1130634000 0 0 GMT} + {1143334800 3600 1 BST} + {1162083600 0 0 GMT} + {1174784400 3600 1 BST} + {1193533200 0 0 GMT} + {1206838800 3600 1 BST} + {1224982800 0 0 GMT} + {1238288400 3600 1 BST} + {1256432400 0 0 GMT} + {1269738000 3600 1 BST} + {1288486800 0 0 GMT} + {1301187600 3600 1 BST} + {1319936400 0 0 GMT} + {1332637200 3600 1 BST} + {1351386000 0 0 GMT} + {1364691600 3600 1 BST} + {1382835600 0 0 GMT} + {1396141200 3600 1 BST} + {1414285200 0 0 GMT} + {1427590800 3600 1 BST} + {1445734800 0 0 GMT} + {1459040400 3600 1 BST} + {1477789200 0 0 GMT} + {1490490000 3600 1 BST} + {1509238800 0 0 GMT} + {1521939600 3600 1 BST} + {1540688400 0 0 GMT} + {1553994000 3600 1 BST} + {1572138000 0 0 GMT} + {1585443600 3600 1 BST} + {1603587600 0 0 GMT} + {1616893200 3600 1 BST} + {1635642000 0 0 GMT} + {1648342800 3600 1 BST} + {1667091600 0 0 GMT} + {1679792400 3600 1 BST} + {1698541200 0 0 GMT} + {1711846800 3600 1 BST} + {1729990800 0 0 GMT} + {1743296400 3600 1 BST} + {1761440400 0 0 GMT} + {1774746000 3600 1 BST} + {1792890000 0 0 GMT} + {1806195600 3600 1 BST} + {1824944400 0 0 GMT} + {1837645200 3600 1 BST} + {1856394000 0 0 GMT} + {1869094800 3600 1 BST} + {1887843600 0 0 GMT} + {1901149200 3600 1 BST} + {1919293200 0 0 GMT} + {1932598800 3600 1 BST} + {1950742800 0 0 GMT} + {1964048400 3600 1 BST} + {1982797200 0 0 GMT} + {1995498000 3600 1 BST} + {2014246800 0 0 GMT} + {2026947600 3600 1 BST} + {2045696400 0 0 GMT} + {2058397200 3600 1 BST} + {2077146000 0 0 GMT} + {2090451600 3600 1 BST} + {2108595600 0 0 GMT} + {2121901200 3600 1 BST} + {2140045200 0 0 GMT} + {2153350800 3600 1 BST} + {2172099600 0 0 GMT} + {2184800400 3600 1 BST} + {2203549200 0 0 GMT} + {2216250000 3600 1 BST} + {2234998800 0 0 GMT} + {2248304400 3600 1 BST} + {2266448400 0 0 GMT} + {2279754000 3600 1 BST} + {2297898000 0 0 GMT} + {2311203600 3600 1 BST} + {2329347600 0 0 GMT} + {2342653200 3600 1 BST} + {2361402000 0 0 GMT} + {2374102800 3600 1 BST} + {2392851600 0 0 GMT} + {2405552400 3600 1 BST} + {2424301200 0 0 GMT} + {2437606800 3600 1 BST} + {2455750800 0 0 GMT} + {2469056400 3600 1 BST} + {2487200400 0 0 GMT} + {2500506000 3600 1 BST} + {2519254800 0 0 GMT} + {2531955600 3600 1 BST} + {2550704400 0 0 GMT} + {2563405200 3600 1 BST} + {2582154000 0 0 GMT} + {2595459600 3600 1 BST} + {2613603600 0 0 GMT} + {2626909200 3600 1 BST} + {2645053200 0 0 GMT} + {2658358800 3600 1 BST} + {2676502800 0 0 GMT} + {2689808400 3600 1 BST} + {2708557200 0 0 GMT} + {2721258000 3600 1 BST} + {2740006800 0 0 GMT} + {2752707600 3600 1 BST} + {2771456400 0 0 GMT} + {2784762000 3600 1 BST} + {2802906000 0 0 GMT} + {2816211600 3600 1 BST} + {2834355600 0 0 GMT} + {2847661200 3600 1 BST} + {2866410000 0 0 GMT} + {2879110800 3600 1 BST} + {2897859600 0 0 GMT} + {2910560400 3600 1 BST} + {2929309200 0 0 GMT} + {2942010000 3600 1 BST} + {2960758800 0 0 GMT} + {2974064400 3600 1 BST} + {2992208400 0 0 GMT} + {3005514000 3600 1 BST} + {3023658000 0 0 GMT} + {3036963600 3600 1 BST} + {3055712400 0 0 GMT} + {3068413200 3600 1 BST} + {3087162000 0 0 GMT} + {3099862800 3600 1 BST} + {3118611600 0 0 GMT} + {3131917200 3600 1 BST} + {3150061200 0 0 GMT} + {3163366800 3600 1 BST} + {3181510800 0 0 GMT} + {3194816400 3600 1 BST} + {3212960400 0 0 GMT} + {3226266000 3600 1 BST} + {3245014800 0 0 GMT} + {3257715600 3600 1 BST} + {3276464400 0 0 GMT} + {3289165200 3600 1 BST} + {3307914000 0 0 GMT} + {3321219600 3600 1 BST} + {3339363600 0 0 GMT} + {3352669200 3600 1 BST} + {3370813200 0 0 GMT} + {3384118800 3600 1 BST} + {3402867600 0 0 GMT} + {3415568400 3600 1 BST} + {3434317200 0 0 GMT} + {3447018000 3600 1 BST} + {3465766800 0 0 GMT} + {3479072400 3600 1 BST} + {3497216400 0 0 GMT} + {3510522000 3600 1 BST} + {3528666000 0 0 GMT} + {3541971600 3600 1 BST} + {3560115600 0 0 GMT} + {3573421200 3600 1 BST} + {3592170000 0 0 GMT} + {3604870800 3600 1 BST} + {3623619600 0 0 GMT} + {3636320400 3600 1 BST} + {3655069200 0 0 GMT} + {3668374800 3600 1 BST} + {3686518800 0 0 GMT} + {3699824400 3600 1 BST} + {3717968400 0 0 GMT} + {3731274000 3600 1 BST} + {3750022800 0 0 GMT} + {3762723600 3600 1 BST} + {3781472400 0 0 GMT} + {3794173200 3600 1 BST} + {3812922000 0 0 GMT} + {3825622800 3600 1 BST} + {3844371600 0 0 GMT} + {3857677200 3600 1 BST} + {3875821200 0 0 GMT} + {3889126800 3600 1 BST} + {3907270800 0 0 GMT} + {3920576400 3600 1 BST} + {3939325200 0 0 GMT} + {3952026000 3600 1 BST} + {3970774800 0 0 GMT} + {3983475600 3600 1 BST} + {4002224400 0 0 GMT} + {4015530000 3600 1 BST} + {4033674000 0 0 GMT} + {4046979600 3600 1 BST} + {4065123600 0 0 GMT} + {4078429200 3600 1 BST} + {4096573200 0 0 GMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Luxembourg b/mingw/lib/tcl8.5/tzdata/Europe/Luxembourg new file mode 100644 index 00000000..2a88c4b0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Luxembourg @@ -0,0 +1,313 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Luxembourg) { + {-9223372036854775808 1476 0 LMT} + {-2069713476 3600 0 CET} + {-1692496800 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1662343200 7200 1 CEST} + {-1650157200 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-1612659600 0 0 WET} + {-1604278800 3600 1 WEST} + {-1585519200 0 0 WET} + {-1574038800 3600 1 WEST} + {-1552258800 0 0 WET} + {-1539997200 3600 1 WEST} + {-1520550000 0 0 WET} + {-1507510800 3600 1 WEST} + {-1490572800 0 0 WET} + {-1473642000 3600 1 WEST} + {-1459119600 0 0 WET} + {-1444006800 3600 1 WEST} + {-1427673600 0 0 WET} + {-1411866000 3600 1 WEST} + {-1396224000 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364774400 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333324800 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301270400 0 0 WET} + {-1284339600 3600 1 WEST} + {-1269813600 0 0 WET} + {-1253484000 3600 1 WEST} + {-1238364000 0 0 WET} + {-1221429600 3600 1 WEST} + {-1206914400 0 0 WET} + {-1191189600 3600 1 WEST} + {-1175464800 0 0 WET} + {-1160344800 3600 1 WEST} + {-1143410400 0 0 WET} + {-1127685600 3600 1 WEST} + {-1111960800 0 0 WET} + {-1096840800 3600 1 WEST} + {-1080511200 0 0 WET} + {-1063576800 3600 1 WEST} + {-1049061600 0 0 WET} + {-1033336800 3600 1 WEST} + {-1017612000 0 0 WET} + {-1002492000 3600 1 WEST} + {-986162400 0 0 WET} + {-969228000 3600 1 WEST} + {-950479200 0 0 WET} + {-942012000 3600 1 WEST} + {-935186400 7200 0 WEST} + {-857257200 3600 0 WET} + {-844556400 7200 1 WEST} + {-828226800 3600 0 WET} + {-812502000 7200 1 WEST} + {-797983200 3600 0 CET} + {-781052400 7200 1 CEST} + {-766623600 3600 0 CET} + {-745455600 7200 1 CEST} + {-733273200 3600 0 CET} + {220921200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Madrid b/mingw/lib/tcl8.5/tzdata/Europe/Madrid new file mode 100644 index 00000000..50de14f0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Madrid @@ -0,0 +1,294 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Madrid) { + {-9223372036854775808 -884 0 LMT} + {-2177451916 0 0 WET} + {-1661734800 3600 1 WEST} + {-1648429200 0 0 WET} + {-1631926800 3600 1 WEST} + {-1616893200 0 0 WET} + {-1601254800 3600 1 WEST} + {-1585357200 0 0 WET} + {-1442451600 3600 1 WEST} + {-1427677200 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301274000 0 0 WET} + {-1284339600 3600 1 WEST} + {-1269824400 0 0 WET} + {-1029114000 3600 1 WEST} + {-1017622800 0 0 WET} + {-1002848400 3600 1 WEST} + {-986173200 0 0 WET} + {-969238800 3600 1 WEST} + {-954118800 0 0 WET} + {-940208400 3600 1 WEST} + {-873079200 7200 1 WEMT} + {-862538400 3600 1 WEST} + {-842839200 7200 1 WEMT} + {-828237600 3600 1 WEST} + {-811389600 7200 1 WEMT} + {-796010400 3600 1 WEST} + {-779940000 7200 1 WEMT} + {-765421200 3600 1 WEST} + {-748490400 7200 1 WEMT} + {-733881600 3600 0 CET} + {-652327200 7200 1 CEST} + {-639190800 3600 0 CET} + {135122400 7200 1 CEST} + {150246000 3600 0 CET} + {167176800 7200 1 CEST} + {181695600 3600 0 CET} + {196812000 7200 1 CEST} + {212540400 3600 0 CET} + {228866400 7200 1 CEST} + {243990000 3600 0 CET} + {260402400 7200 1 CEST} + {276044400 3600 0 CET} + {283993200 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Malta b/mingw/lib/tcl8.5/tzdata/Europe/Malta new file mode 100644 index 00000000..b84f68e5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Malta @@ -0,0 +1,299 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Malta) { + {-9223372036854775808 3484 0 LMT} + {-2403478684 3600 0 CET} + {-1690851600 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1664758800 7200 1 CEST} + {-1649034000 3600 0 CET} + {-1635123600 7200 1 CEST} + {-1616979600 3600 0 CET} + {-1604278800 7200 1 CEST} + {-1585530000 3600 0 CET} + {-1571014800 7200 1 CEST} + {-1555290000 3600 0 CET} + {-932432400 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 0 CEST} + {-766717200 3600 0 CET} + {-750898800 7200 1 CEST} + {-733359600 3600 0 CET} + {-719456400 7200 1 CEST} + {-701917200 3600 0 CET} + {-689209200 7200 1 CEST} + {-670460400 3600 0 CET} + {-114051600 7200 1 CEST} + {-103168800 3600 0 CET} + {-81997200 7200 1 CEST} + {-71719200 3600 0 CET} + {-50547600 7200 1 CEST} + {-40269600 3600 0 CET} + {-18493200 7200 1 CEST} + {-8215200 3600 0 CET} + {12956400 7200 1 CEST} + {23234400 3600 0 CET} + {43801200 7200 1 CEST} + {54687600 3600 0 CET} + {75855600 7200 1 CEST} + {86738400 3600 0 CET} + {102380400 7200 0 CEST} + {118105200 3600 0 CET} + {135730800 7200 1 CEST} + {148518000 3600 0 CET} + {167187600 7200 1 CEST} + {180489600 3600 0 CET} + {198637200 7200 1 CEST} + {211939200 3600 0 CET} + {230086800 7200 1 CEST} + {243388800 3600 0 CET} + {261536400 7200 1 CEST} + {274838400 3600 0 CET} + {292986000 7200 1 CEST} + {306288000 3600 0 CET} + {323312400 7200 1 CEST} + {338342400 3600 0 CET} + {347151600 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Mariehamn b/mingw/lib/tcl8.5/tzdata/Europe/Mariehamn new file mode 100644 index 00000000..26d9177b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Mariehamn @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Helsinki)]} { + LoadTimeZoneFile Europe/Helsinki +} +set TZData(:Europe/Mariehamn) $TZData(:Europe/Helsinki) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Minsk b/mingw/lib/tcl8.5/tzdata/Europe/Minsk new file mode 100644 index 00000000..d7d9434c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Minsk @@ -0,0 +1,251 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Minsk) { + {-9223372036854775808 6616 0 LMT} + {-2840147416 6600 0 MMT} + {-1441158600 7200 0 EET} + {-1247536800 10800 0 MSK} + {-899780400 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-804646800 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {631141200 10800 0 MSK} + {670374000 10800 1 EEST} + {686102400 7200 0 EET} + {701820000 10800 1 EEST} + {717544800 7200 0 EET} + {733276800 10800 1 EEST} + {749001600 7200 0 EET} + {764726400 10800 1 EEST} + {780451200 7200 0 EET} + {796176000 10800 1 EEST} + {811900800 7200 0 EET} + {828230400 10800 1 EEST} + {846374400 7200 0 EET} + {859680000 10800 1 EEST} + {877824000 7200 0 EET} + {891129600 10800 1 EEST} + {909273600 7200 0 EET} + {922579200 10800 1 EEST} + {941328000 7200 0 EET} + {954028800 10800 1 EEST} + {972777600 7200 0 EET} + {985478400 10800 1 EEST} + {1004227200 7200 0 EET} + {1017532800 10800 1 EEST} + {1035676800 7200 0 EET} + {1048982400 10800 1 EEST} + {1067126400 7200 0 EET} + {1080432000 10800 1 EEST} + {1099180800 7200 0 EET} + {1111881600 10800 1 EEST} + {1130630400 7200 0 EET} + {1143331200 10800 1 EEST} + {1162080000 7200 0 EET} + {1174780800 10800 1 EEST} + {1193529600 7200 0 EET} + {1206835200 10800 1 EEST} + {1224979200 7200 0 EET} + {1238284800 10800 1 EEST} + {1256428800 7200 0 EET} + {1269734400 10800 1 EEST} + {1288483200 7200 0 EET} + {1301184000 10800 1 EEST} + {1319932800 7200 0 EET} + {1332633600 10800 1 EEST} + {1351382400 7200 0 EET} + {1364688000 10800 1 EEST} + {1382832000 7200 0 EET} + {1396137600 10800 1 EEST} + {1414281600 7200 0 EET} + {1427587200 10800 1 EEST} + {1445731200 7200 0 EET} + {1459036800 10800 1 EEST} + {1477785600 7200 0 EET} + {1490486400 10800 1 EEST} + {1509235200 7200 0 EET} + {1521936000 10800 1 EEST} + {1540684800 7200 0 EET} + {1553990400 10800 1 EEST} + {1572134400 7200 0 EET} + {1585440000 10800 1 EEST} + {1603584000 7200 0 EET} + {1616889600 10800 1 EEST} + {1635638400 7200 0 EET} + {1648339200 10800 1 EEST} + {1667088000 7200 0 EET} + {1679788800 10800 1 EEST} + {1698537600 7200 0 EET} + {1711843200 10800 1 EEST} + {1729987200 7200 0 EET} + {1743292800 10800 1 EEST} + {1761436800 7200 0 EET} + {1774742400 10800 1 EEST} + {1792886400 7200 0 EET} + {1806192000 10800 1 EEST} + {1824940800 7200 0 EET} + {1837641600 10800 1 EEST} + {1856390400 7200 0 EET} + {1869091200 10800 1 EEST} + {1887840000 7200 0 EET} + {1901145600 10800 1 EEST} + {1919289600 7200 0 EET} + {1932595200 10800 1 EEST} + {1950739200 7200 0 EET} + {1964044800 10800 1 EEST} + {1982793600 7200 0 EET} + {1995494400 10800 1 EEST} + {2014243200 7200 0 EET} + {2026944000 10800 1 EEST} + {2045692800 7200 0 EET} + {2058393600 10800 1 EEST} + {2077142400 7200 0 EET} + {2090448000 10800 1 EEST} + {2108592000 7200 0 EET} + {2121897600 10800 1 EEST} + {2140041600 7200 0 EET} + {2153347200 10800 1 EEST} + {2172096000 7200 0 EET} + {2184796800 10800 1 EEST} + {2203545600 7200 0 EET} + {2216246400 10800 1 EEST} + {2234995200 7200 0 EET} + {2248300800 10800 1 EEST} + {2266444800 7200 0 EET} + {2279750400 10800 1 EEST} + {2297894400 7200 0 EET} + {2311200000 10800 1 EEST} + {2329344000 7200 0 EET} + {2342649600 10800 1 EEST} + {2361398400 7200 0 EET} + {2374099200 10800 1 EEST} + {2392848000 7200 0 EET} + {2405548800 10800 1 EEST} + {2424297600 7200 0 EET} + {2437603200 10800 1 EEST} + {2455747200 7200 0 EET} + {2469052800 10800 1 EEST} + {2487196800 7200 0 EET} + {2500502400 10800 1 EEST} + {2519251200 7200 0 EET} + {2531952000 10800 1 EEST} + {2550700800 7200 0 EET} + {2563401600 10800 1 EEST} + {2582150400 7200 0 EET} + {2595456000 10800 1 EEST} + {2613600000 7200 0 EET} + {2626905600 10800 1 EEST} + {2645049600 7200 0 EET} + {2658355200 10800 1 EEST} + {2676499200 7200 0 EET} + {2689804800 10800 1 EEST} + {2708553600 7200 0 EET} + {2721254400 10800 1 EEST} + {2740003200 7200 0 EET} + {2752704000 10800 1 EEST} + {2771452800 7200 0 EET} + {2784758400 10800 1 EEST} + {2802902400 7200 0 EET} + {2816208000 10800 1 EEST} + {2834352000 7200 0 EET} + {2847657600 10800 1 EEST} + {2866406400 7200 0 EET} + {2879107200 10800 1 EEST} + {2897856000 7200 0 EET} + {2910556800 10800 1 EEST} + {2929305600 7200 0 EET} + {2942006400 10800 1 EEST} + {2960755200 7200 0 EET} + {2974060800 10800 1 EEST} + {2992204800 7200 0 EET} + {3005510400 10800 1 EEST} + {3023654400 7200 0 EET} + {3036960000 10800 1 EEST} + {3055708800 7200 0 EET} + {3068409600 10800 1 EEST} + {3087158400 7200 0 EET} + {3099859200 10800 1 EEST} + {3118608000 7200 0 EET} + {3131913600 10800 1 EEST} + {3150057600 7200 0 EET} + {3163363200 10800 1 EEST} + {3181507200 7200 0 EET} + {3194812800 10800 1 EEST} + {3212956800 7200 0 EET} + {3226262400 10800 1 EEST} + {3245011200 7200 0 EET} + {3257712000 10800 1 EEST} + {3276460800 7200 0 EET} + {3289161600 10800 1 EEST} + {3307910400 7200 0 EET} + {3321216000 10800 1 EEST} + {3339360000 7200 0 EET} + {3352665600 10800 1 EEST} + {3370809600 7200 0 EET} + {3384115200 10800 1 EEST} + {3402864000 7200 0 EET} + {3415564800 10800 1 EEST} + {3434313600 7200 0 EET} + {3447014400 10800 1 EEST} + {3465763200 7200 0 EET} + {3479068800 10800 1 EEST} + {3497212800 7200 0 EET} + {3510518400 10800 1 EEST} + {3528662400 7200 0 EET} + {3541968000 10800 1 EEST} + {3560112000 7200 0 EET} + {3573417600 10800 1 EEST} + {3592166400 7200 0 EET} + {3604867200 10800 1 EEST} + {3623616000 7200 0 EET} + {3636316800 10800 1 EEST} + {3655065600 7200 0 EET} + {3668371200 10800 1 EEST} + {3686515200 7200 0 EET} + {3699820800 10800 1 EEST} + {3717964800 7200 0 EET} + {3731270400 10800 1 EEST} + {3750019200 7200 0 EET} + {3762720000 10800 1 EEST} + {3781468800 7200 0 EET} + {3794169600 10800 1 EEST} + {3812918400 7200 0 EET} + {3825619200 10800 1 EEST} + {3844368000 7200 0 EET} + {3857673600 10800 1 EEST} + {3875817600 7200 0 EET} + {3889123200 10800 1 EEST} + {3907267200 7200 0 EET} + {3920572800 10800 1 EEST} + {3939321600 7200 0 EET} + {3952022400 10800 1 EEST} + {3970771200 7200 0 EET} + {3983472000 10800 1 EEST} + {4002220800 7200 0 EET} + {4015526400 10800 1 EEST} + {4033670400 7200 0 EET} + {4046976000 10800 1 EEST} + {4065120000 7200 0 EET} + {4078425600 10800 1 EEST} + {4096569600 7200 0 EET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Monaco b/mingw/lib/tcl8.5/tzdata/Europe/Monaco new file mode 100644 index 00000000..f887b0b6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Monaco @@ -0,0 +1,315 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Monaco) { + {-9223372036854775808 1772 0 LMT} + {-2486680172 561 0 PMT} + {-1855958961 0 0 WET} + {-1689814800 3600 1 WEST} + {-1680397200 0 0 WET} + {-1665363600 3600 1 WEST} + {-1648342800 0 0 WET} + {-1635123600 3600 1 WEST} + {-1616893200 0 0 WET} + {-1604278800 3600 1 WEST} + {-1585443600 0 0 WET} + {-1574038800 3600 1 WEST} + {-1552266000 0 0 WET} + {-1539997200 3600 1 WEST} + {-1520557200 0 0 WET} + {-1507510800 3600 1 WEST} + {-1490576400 0 0 WET} + {-1470618000 3600 1 WEST} + {-1459126800 0 0 WET} + {-1444006800 3600 1 WEST} + {-1427677200 0 0 WET} + {-1411952400 3600 1 WEST} + {-1396227600 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301274000 0 0 WET} + {-1284339600 3600 1 WEST} + {-1269824400 0 0 WET} + {-1253494800 3600 1 WEST} + {-1238374800 0 0 WET} + {-1221440400 3600 1 WEST} + {-1206925200 0 0 WET} + {-1191200400 3600 1 WEST} + {-1175475600 0 0 WET} + {-1160355600 3600 1 WEST} + {-1143421200 0 0 WET} + {-1127696400 3600 1 WEST} + {-1111971600 0 0 WET} + {-1096851600 3600 1 WEST} + {-1080522000 0 0 WET} + {-1063587600 3600 1 WEST} + {-1049072400 0 0 WET} + {-1033347600 3600 1 WEST} + {-1017622800 0 0 WET} + {-1002502800 3600 1 WEST} + {-986173200 0 0 WET} + {-969238800 3600 1 WEST} + {-950490000 0 0 WET} + {-942012000 3600 1 WEST} + {-904438800 7200 1 WEMT} + {-891136800 3600 1 WEST} + {-877827600 7200 1 WEMT} + {-857257200 3600 1 WEST} + {-844556400 7200 1 WEMT} + {-828226800 3600 1 WEST} + {-812502000 7200 1 WEMT} + {-796266000 3600 1 WEST} + {-781052400 7200 1 WEMT} + {-766616400 3600 0 CET} + {196819200 7200 1 CEST} + {212540400 3600 0 CET} + {220921200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Moscow b/mingw/lib/tcl8.5/tzdata/Europe/Moscow new file mode 100644 index 00000000..9acbd2c4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Moscow @@ -0,0 +1,260 @@ +# 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} + {-1589860800 10800 0 MSK} + {-1542427200 14400 1 MSD} + {-1539493200 18000 1 MSD} + {-1525323600 14400 1 MSD} + {-1522728000 10800 0 MSK} + {-1491188400 7200 0 EET} + {-1247536800 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {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 7200 0 EET} + {695779200 10800 0 MSD} + {701812800 14400 1 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 1 MSD} + {1319929200 10800 0 MSK} + {1332630000 14400 1 MSD} + {1351378800 10800 0 MSK} + {1364684400 14400 1 MSD} + {1382828400 10800 0 MSK} + {1396134000 14400 1 MSD} + {1414278000 10800 0 MSK} + {1427583600 14400 1 MSD} + {1445727600 10800 0 MSK} + {1459033200 14400 1 MSD} + {1477782000 10800 0 MSK} + {1490482800 14400 1 MSD} + {1509231600 10800 0 MSK} + {1521932400 14400 1 MSD} + {1540681200 10800 0 MSK} + {1553986800 14400 1 MSD} + {1572130800 10800 0 MSK} + {1585436400 14400 1 MSD} + {1603580400 10800 0 MSK} + {1616886000 14400 1 MSD} + {1635634800 10800 0 MSK} + {1648335600 14400 1 MSD} + {1667084400 10800 0 MSK} + {1679785200 14400 1 MSD} + {1698534000 10800 0 MSK} + {1711839600 14400 1 MSD} + {1729983600 10800 0 MSK} + {1743289200 14400 1 MSD} + {1761433200 10800 0 MSK} + {1774738800 14400 1 MSD} + {1792882800 10800 0 MSK} + {1806188400 14400 1 MSD} + {1824937200 10800 0 MSK} + {1837638000 14400 1 MSD} + {1856386800 10800 0 MSK} + {1869087600 14400 1 MSD} + {1887836400 10800 0 MSK} + {1901142000 14400 1 MSD} + {1919286000 10800 0 MSK} + {1932591600 14400 1 MSD} + {1950735600 10800 0 MSK} + {1964041200 14400 1 MSD} + {1982790000 10800 0 MSK} + {1995490800 14400 1 MSD} + {2014239600 10800 0 MSK} + {2026940400 14400 1 MSD} + {2045689200 10800 0 MSK} + {2058390000 14400 1 MSD} + {2077138800 10800 0 MSK} + {2090444400 14400 1 MSD} + {2108588400 10800 0 MSK} + {2121894000 14400 1 MSD} + {2140038000 10800 0 MSK} + {2153343600 14400 1 MSD} + {2172092400 10800 0 MSK} + {2184793200 14400 1 MSD} + {2203542000 10800 0 MSK} + {2216242800 14400 1 MSD} + {2234991600 10800 0 MSK} + {2248297200 14400 1 MSD} + {2266441200 10800 0 MSK} + {2279746800 14400 1 MSD} + {2297890800 10800 0 MSK} + {2311196400 14400 1 MSD} + {2329340400 10800 0 MSK} + {2342646000 14400 1 MSD} + {2361394800 10800 0 MSK} + {2374095600 14400 1 MSD} + {2392844400 10800 0 MSK} + {2405545200 14400 1 MSD} + {2424294000 10800 0 MSK} + {2437599600 14400 1 MSD} + {2455743600 10800 0 MSK} + {2469049200 14400 1 MSD} + {2487193200 10800 0 MSK} + {2500498800 14400 1 MSD} + {2519247600 10800 0 MSK} + {2531948400 14400 1 MSD} + {2550697200 10800 0 MSK} + {2563398000 14400 1 MSD} + {2582146800 10800 0 MSK} + {2595452400 14400 1 MSD} + {2613596400 10800 0 MSK} + {2626902000 14400 1 MSD} + {2645046000 10800 0 MSK} + {2658351600 14400 1 MSD} + {2676495600 10800 0 MSK} + {2689801200 14400 1 MSD} + {2708550000 10800 0 MSK} + {2721250800 14400 1 MSD} + {2739999600 10800 0 MSK} + {2752700400 14400 1 MSD} + {2771449200 10800 0 MSK} + {2784754800 14400 1 MSD} + {2802898800 10800 0 MSK} + {2816204400 14400 1 MSD} + {2834348400 10800 0 MSK} + {2847654000 14400 1 MSD} + {2866402800 10800 0 MSK} + {2879103600 14400 1 MSD} + {2897852400 10800 0 MSK} + {2910553200 14400 1 MSD} + {2929302000 10800 0 MSK} + {2942002800 14400 1 MSD} + {2960751600 10800 0 MSK} + {2974057200 14400 1 MSD} + {2992201200 10800 0 MSK} + {3005506800 14400 1 MSD} + {3023650800 10800 0 MSK} + {3036956400 14400 1 MSD} + {3055705200 10800 0 MSK} + {3068406000 14400 1 MSD} + {3087154800 10800 0 MSK} + {3099855600 14400 1 MSD} + {3118604400 10800 0 MSK} + {3131910000 14400 1 MSD} + {3150054000 10800 0 MSK} + {3163359600 14400 1 MSD} + {3181503600 10800 0 MSK} + {3194809200 14400 1 MSD} + {3212953200 10800 0 MSK} + {3226258800 14400 1 MSD} + {3245007600 10800 0 MSK} + {3257708400 14400 1 MSD} + {3276457200 10800 0 MSK} + {3289158000 14400 1 MSD} + {3307906800 10800 0 MSK} + {3321212400 14400 1 MSD} + {3339356400 10800 0 MSK} + {3352662000 14400 1 MSD} + {3370806000 10800 0 MSK} + {3384111600 14400 1 MSD} + {3402860400 10800 0 MSK} + {3415561200 14400 1 MSD} + {3434310000 10800 0 MSK} + {3447010800 14400 1 MSD} + {3465759600 10800 0 MSK} + {3479065200 14400 1 MSD} + {3497209200 10800 0 MSK} + {3510514800 14400 1 MSD} + {3528658800 10800 0 MSK} + {3541964400 14400 1 MSD} + {3560108400 10800 0 MSK} + {3573414000 14400 1 MSD} + {3592162800 10800 0 MSK} + {3604863600 14400 1 MSD} + {3623612400 10800 0 MSK} + {3636313200 14400 1 MSD} + {3655062000 10800 0 MSK} + {3668367600 14400 1 MSD} + {3686511600 10800 0 MSK} + {3699817200 14400 1 MSD} + {3717961200 10800 0 MSK} + {3731266800 14400 1 MSD} + {3750015600 10800 0 MSK} + {3762716400 14400 1 MSD} + {3781465200 10800 0 MSK} + {3794166000 14400 1 MSD} + {3812914800 10800 0 MSK} + {3825615600 14400 1 MSD} + {3844364400 10800 0 MSK} + {3857670000 14400 1 MSD} + {3875814000 10800 0 MSK} + {3889119600 14400 1 MSD} + {3907263600 10800 0 MSK} + {3920569200 14400 1 MSD} + {3939318000 10800 0 MSK} + {3952018800 14400 1 MSD} + {3970767600 10800 0 MSK} + {3983468400 14400 1 MSD} + {4002217200 10800 0 MSK} + {4015522800 14400 1 MSD} + {4033666800 10800 0 MSK} + {4046972400 14400 1 MSD} + {4065116400 10800 0 MSK} + {4078422000 14400 1 MSD} + {4096566000 10800 0 MSK} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Nicosia b/mingw/lib/tcl8.5/tzdata/Europe/Nicosia new file mode 100644 index 00000000..2d58355a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Nicosia @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Nicosia)]} { + LoadTimeZoneFile Asia/Nicosia +} +set TZData(:Europe/Nicosia) $TZData(:Asia/Nicosia) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Oslo b/mingw/lib/tcl8.5/tzdata/Europe/Oslo new file mode 100644 index 00000000..6787c1eb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Oslo @@ -0,0 +1,271 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Oslo) { + {-9223372036854775808 2580 0 LMT} + {-2366757780 3600 0 CET} + {-1691884800 7200 1 CEST} + {-1680573600 3600 0 CET} + {-927511200 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 0 CEST} + {-765327600 3600 0 CET} + {-340844400 7200 1 CEST} + {-324514800 3600 0 CET} + {-308790000 7200 1 CEST} + {-293065200 3600 0 CET} + {-277340400 7200 1 CEST} + {-261615600 3600 0 CET} + {-245890800 7200 1 CEST} + {-230166000 3600 0 CET} + {-214441200 7200 1 CEST} + {-198716400 3600 0 CET} + {-182991600 7200 1 CEST} + {-166662000 3600 0 CET} + {-147913200 7200 1 CEST} + {-135212400 3600 0 CET} + {315529200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Paris b/mingw/lib/tcl8.5/tzdata/Europe/Paris new file mode 100644 index 00000000..4b22a090 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Paris @@ -0,0 +1,314 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Paris) { + {-9223372036854775808 561 0 LMT} + {-2486678901 561 0 PMT} + {-1855958901 0 0 WET} + {-1689814800 3600 1 WEST} + {-1680397200 0 0 WET} + {-1665363600 3600 1 WEST} + {-1648342800 0 0 WET} + {-1635123600 3600 1 WEST} + {-1616893200 0 0 WET} + {-1604278800 3600 1 WEST} + {-1585443600 0 0 WET} + {-1574038800 3600 1 WEST} + {-1552266000 0 0 WET} + {-1539997200 3600 1 WEST} + {-1520557200 0 0 WET} + {-1507510800 3600 1 WEST} + {-1490576400 0 0 WET} + {-1470618000 3600 1 WEST} + {-1459126800 0 0 WET} + {-1444006800 3600 1 WEST} + {-1427677200 0 0 WET} + {-1411952400 3600 1 WEST} + {-1396227600 0 0 WET} + {-1379293200 3600 1 WEST} + {-1364778000 0 0 WET} + {-1348448400 3600 1 WEST} + {-1333328400 0 0 WET} + {-1316394000 3600 1 WEST} + {-1301274000 0 0 WET} + {-1284339600 3600 1 WEST} + {-1269824400 0 0 WET} + {-1253494800 3600 1 WEST} + {-1238374800 0 0 WET} + {-1221440400 3600 1 WEST} + {-1206925200 0 0 WET} + {-1191200400 3600 1 WEST} + {-1175475600 0 0 WET} + {-1160355600 3600 1 WEST} + {-1143421200 0 0 WET} + {-1127696400 3600 1 WEST} + {-1111971600 0 0 WET} + {-1096851600 3600 1 WEST} + {-1080522000 0 0 WET} + {-1063587600 3600 1 WEST} + {-1049072400 0 0 WET} + {-1033347600 3600 1 WEST} + {-1017622800 0 0 WET} + {-1002502800 3600 1 WEST} + {-986173200 0 0 WET} + {-969238800 3600 1 WEST} + {-950490000 0 0 WET} + {-942012000 3600 1 WEST} + {-932436000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-800067600 7200 0 WEMT} + {-796266000 3600 1 WEST} + {-781052400 7200 1 WEMT} + {-766616400 3600 0 CET} + {196819200 7200 1 CEST} + {212540400 3600 0 CET} + {220921200 3600 0 CET} + {228877200 7200 1 CEST} + {243997200 3600 0 CET} + {260326800 7200 1 CEST} + {276051600 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Podgorica b/mingw/lib/tcl8.5/tzdata/Europe/Podgorica new file mode 100644 index 00000000..f4f90669 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Podgorica @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Belgrade)]} { + LoadTimeZoneFile Europe/Belgrade +} +set TZData(:Europe/Podgorica) $TZData(:Europe/Belgrade) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Prague b/mingw/lib/tcl8.5/tzdata/Europe/Prague new file mode 100644 index 00000000..222b1aed --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Prague @@ -0,0 +1,272 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Prague) { + {-9223372036854775808 3464 0 LMT} + {-3786829064 3464 0 PMT} + {-2469401864 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-938905200 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-798073200 3600 0 CET} + {-780534000 7200 1 CEST} + {-761180400 3600 0 CET} + {-746578800 7200 1 CEST} + {-733359600 3600 0 CET} + {-716425200 7200 1 CEST} + {-701910000 3600 0 CET} + {-684975600 7200 1 CEST} + {-670460400 3600 0 CET} + {-654217200 7200 1 CEST} + {-639010800 3600 0 CET} + {283993200 3600 0 CET} + {291776400 7200 1 CEST} + {307501200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Riga b/mingw/lib/tcl8.5/tzdata/Europe/Riga new file mode 100644 index 00000000..9fad0f8e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Riga @@ -0,0 +1,258 @@ +# 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} + {-928029600 10800 0 MSK} + {-899521200 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-795834000 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {670377600 10800 1 EEST} + {686102400 7200 0 EET} + {701827200 10800 1 EEST} + {717552000 7200 0 EET} + {733276800 10800 1 EEST} + {749001600 7200 0 EET} + {764726400 10800 1 EEST} + {780451200 7200 0 EET} + {796176000 10800 1 EEST} + {811900800 7200 0 EET} + {828230400 10800 1 EEST} + {843955200 7200 0 EET} + {853797600 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {951775200 7200 0 EET} + {978386400 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Rome b/mingw/lib/tcl8.5/tzdata/Europe/Rome new file mode 100644 index 00000000..64948b80 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Rome @@ -0,0 +1,301 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Rome) { + {-9223372036854775808 2996 0 LMT} + {-3259097396 2996 0 RMT} + {-2403564596 3600 0 CET} + {-1690851600 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1664758800 7200 1 CEST} + {-1649034000 3600 0 CET} + {-1635123600 7200 1 CEST} + {-1616979600 3600 0 CET} + {-1604278800 7200 1 CEST} + {-1585530000 3600 0 CET} + {-1571014800 7200 1 CEST} + {-1555290000 3600 0 CET} + {-932432400 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-804819600 3600 0 CET} + {-798080400 3600 0 CET} + {-781052400 7200 1 CEST} + {-766717200 3600 0 CET} + {-750898800 7200 1 CEST} + {-733359600 3600 0 CET} + {-719456400 7200 1 CEST} + {-701917200 3600 0 CET} + {-689209200 7200 1 CEST} + {-670460400 3600 0 CET} + {-114051600 7200 1 CEST} + {-103168800 3600 0 CET} + {-81997200 7200 1 CEST} + {-71719200 3600 0 CET} + {-50547600 7200 1 CEST} + {-40269600 3600 0 CET} + {-18493200 7200 1 CEST} + {-8215200 3600 0 CET} + {12956400 7200 1 CEST} + {23234400 3600 0 CET} + {43801200 7200 1 CEST} + {54687600 3600 0 CET} + {75855600 7200 1 CEST} + {86738400 3600 0 CET} + {107910000 7200 1 CEST} + {118188000 3600 0 CET} + {138754800 7200 1 CEST} + {149637600 3600 0 CET} + {170809200 7200 1 CEST} + {181090800 3600 0 CET} + {202258800 7200 1 CEST} + {212540400 3600 0 CET} + {233103600 7200 1 CEST} + {243990000 3600 0 CET} + {265158000 7200 1 CEST} + {276044400 3600 0 CET} + {296607600 7200 1 CEST} + {307494000 3600 0 CET} + {315529200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Samara b/mingw/lib/tcl8.5/tzdata/Europe/Samara new file mode 100644 index 00000000..47e57e4d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Samara @@ -0,0 +1,249 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Samara) { + {-9223372036854775808 12036 0 LMT} + {-1593825636 10800 0 SAMT} + {-1247540400 14400 0 SAMT} + {-1102305600 14400 0 KUYMMTT} + {354916800 18000 1 KUYST} + {370724400 14400 0 KUYT} + {386452800 18000 1 KUYST} + {402260400 14400 0 KUYT} + {417988800 18000 1 KUYST} + {433796400 14400 0 KUYT} + {449611200 18000 1 KUYST} + {465343200 14400 0 KUYT} + {481068000 18000 1 KUYST} + {496792800 14400 0 KUYT} + {512517600 18000 1 KUYST} + {528242400 14400 0 KUYT} + {543967200 18000 1 KUYST} + {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} + {686102400 10800 0 KUYT} + {687916800 14400 0 SAMT} + {701809200 18000 1 SAMST} + {717530400 14400 0 SAMT} + {733269600 18000 1 SAMST} + {748994400 14400 0 SAMT} + {764719200 18000 1 SAMST} + {780444000 14400 0 SAMT} + {796168800 18000 1 SAMST} + {811893600 14400 0 SAMT} + {828223200 18000 1 SAMST} + {846367200 14400 0 SAMT} + {859672800 18000 1 SAMST} + {877816800 14400 0 SAMT} + {891122400 18000 1 SAMST} + {909266400 14400 0 SAMT} + {922572000 18000 1 SAMST} + {941320800 14400 0 SAMT} + {954021600 18000 1 SAMST} + {972770400 14400 0 SAMT} + {985471200 18000 1 SAMST} + {1004220000 14400 0 SAMT} + {1017525600 18000 1 SAMST} + {1035669600 14400 0 SAMT} + {1048975200 18000 1 SAMST} + {1067119200 14400 0 SAMT} + {1080424800 18000 1 SAMST} + {1099173600 14400 0 SAMT} + {1111874400 18000 1 SAMST} + {1130623200 14400 0 SAMT} + {1143324000 18000 1 SAMST} + {1162072800 14400 0 SAMT} + {1174773600 18000 1 SAMST} + {1193522400 14400 0 SAMT} + {1206828000 18000 1 SAMST} + {1224972000 14400 0 SAMT} + {1238277600 18000 1 SAMST} + {1256421600 14400 0 SAMT} + {1269727200 18000 1 SAMST} + {1288476000 14400 0 SAMT} + {1301176800 18000 1 SAMST} + {1319925600 14400 0 SAMT} + {1332626400 18000 1 SAMST} + {1351375200 14400 0 SAMT} + {1364680800 18000 1 SAMST} + {1382824800 14400 0 SAMT} + {1396130400 18000 1 SAMST} + {1414274400 14400 0 SAMT} + {1427580000 18000 1 SAMST} + {1445724000 14400 0 SAMT} + {1459029600 18000 1 SAMST} + {1477778400 14400 0 SAMT} + {1490479200 18000 1 SAMST} + {1509228000 14400 0 SAMT} + {1521928800 18000 1 SAMST} + {1540677600 14400 0 SAMT} + {1553983200 18000 1 SAMST} + {1572127200 14400 0 SAMT} + {1585432800 18000 1 SAMST} + {1603576800 14400 0 SAMT} + {1616882400 18000 1 SAMST} + {1635631200 14400 0 SAMT} + {1648332000 18000 1 SAMST} + {1667080800 14400 0 SAMT} + {1679781600 18000 1 SAMST} + {1698530400 14400 0 SAMT} + {1711836000 18000 1 SAMST} + {1729980000 14400 0 SAMT} + {1743285600 18000 1 SAMST} + {1761429600 14400 0 SAMT} + {1774735200 18000 1 SAMST} + {1792879200 14400 0 SAMT} + {1806184800 18000 1 SAMST} + {1824933600 14400 0 SAMT} + {1837634400 18000 1 SAMST} + {1856383200 14400 0 SAMT} + {1869084000 18000 1 SAMST} + {1887832800 14400 0 SAMT} + {1901138400 18000 1 SAMST} + {1919282400 14400 0 SAMT} + {1932588000 18000 1 SAMST} + {1950732000 14400 0 SAMT} + {1964037600 18000 1 SAMST} + {1982786400 14400 0 SAMT} + {1995487200 18000 1 SAMST} + {2014236000 14400 0 SAMT} + {2026936800 18000 1 SAMST} + {2045685600 14400 0 SAMT} + {2058386400 18000 1 SAMST} + {2077135200 14400 0 SAMT} + {2090440800 18000 1 SAMST} + {2108584800 14400 0 SAMT} + {2121890400 18000 1 SAMST} + {2140034400 14400 0 SAMT} + {2153340000 18000 1 SAMST} + {2172088800 14400 0 SAMT} + {2184789600 18000 1 SAMST} + {2203538400 14400 0 SAMT} + {2216239200 18000 1 SAMST} + {2234988000 14400 0 SAMT} + {2248293600 18000 1 SAMST} + {2266437600 14400 0 SAMT} + {2279743200 18000 1 SAMST} + {2297887200 14400 0 SAMT} + {2311192800 18000 1 SAMST} + {2329336800 14400 0 SAMT} + {2342642400 18000 1 SAMST} + {2361391200 14400 0 SAMT} + {2374092000 18000 1 SAMST} + {2392840800 14400 0 SAMT} + {2405541600 18000 1 SAMST} + {2424290400 14400 0 SAMT} + {2437596000 18000 1 SAMST} + {2455740000 14400 0 SAMT} + {2469045600 18000 1 SAMST} + {2487189600 14400 0 SAMT} + {2500495200 18000 1 SAMST} + {2519244000 14400 0 SAMT} + {2531944800 18000 1 SAMST} + {2550693600 14400 0 SAMT} + {2563394400 18000 1 SAMST} + {2582143200 14400 0 SAMT} + {2595448800 18000 1 SAMST} + {2613592800 14400 0 SAMT} + {2626898400 18000 1 SAMST} + {2645042400 14400 0 SAMT} + {2658348000 18000 1 SAMST} + {2676492000 14400 0 SAMT} + {2689797600 18000 1 SAMST} + {2708546400 14400 0 SAMT} + {2721247200 18000 1 SAMST} + {2739996000 14400 0 SAMT} + {2752696800 18000 1 SAMST} + {2771445600 14400 0 SAMT} + {2784751200 18000 1 SAMST} + {2802895200 14400 0 SAMT} + {2816200800 18000 1 SAMST} + {2834344800 14400 0 SAMT} + {2847650400 18000 1 SAMST} + {2866399200 14400 0 SAMT} + {2879100000 18000 1 SAMST} + {2897848800 14400 0 SAMT} + {2910549600 18000 1 SAMST} + {2929298400 14400 0 SAMT} + {2941999200 18000 1 SAMST} + {2960748000 14400 0 SAMT} + {2974053600 18000 1 SAMST} + {2992197600 14400 0 SAMT} + {3005503200 18000 1 SAMST} + {3023647200 14400 0 SAMT} + {3036952800 18000 1 SAMST} + {3055701600 14400 0 SAMT} + {3068402400 18000 1 SAMST} + {3087151200 14400 0 SAMT} + {3099852000 18000 1 SAMST} + {3118600800 14400 0 SAMT} + {3131906400 18000 1 SAMST} + {3150050400 14400 0 SAMT} + {3163356000 18000 1 SAMST} + {3181500000 14400 0 SAMT} + {3194805600 18000 1 SAMST} + {3212949600 14400 0 SAMT} + {3226255200 18000 1 SAMST} + {3245004000 14400 0 SAMT} + {3257704800 18000 1 SAMST} + {3276453600 14400 0 SAMT} + {3289154400 18000 1 SAMST} + {3307903200 14400 0 SAMT} + {3321208800 18000 1 SAMST} + {3339352800 14400 0 SAMT} + {3352658400 18000 1 SAMST} + {3370802400 14400 0 SAMT} + {3384108000 18000 1 SAMST} + {3402856800 14400 0 SAMT} + {3415557600 18000 1 SAMST} + {3434306400 14400 0 SAMT} + {3447007200 18000 1 SAMST} + {3465756000 14400 0 SAMT} + {3479061600 18000 1 SAMST} + {3497205600 14400 0 SAMT} + {3510511200 18000 1 SAMST} + {3528655200 14400 0 SAMT} + {3541960800 18000 1 SAMST} + {3560104800 14400 0 SAMT} + {3573410400 18000 1 SAMST} + {3592159200 14400 0 SAMT} + {3604860000 18000 1 SAMST} + {3623608800 14400 0 SAMT} + {3636309600 18000 1 SAMST} + {3655058400 14400 0 SAMT} + {3668364000 18000 1 SAMST} + {3686508000 14400 0 SAMT} + {3699813600 18000 1 SAMST} + {3717957600 14400 0 SAMT} + {3731263200 18000 1 SAMST} + {3750012000 14400 0 SAMT} + {3762712800 18000 1 SAMST} + {3781461600 14400 0 SAMT} + {3794162400 18000 1 SAMST} + {3812911200 14400 0 SAMT} + {3825612000 18000 1 SAMST} + {3844360800 14400 0 SAMT} + {3857666400 18000 1 SAMST} + {3875810400 14400 0 SAMT} + {3889116000 18000 1 SAMST} + {3907260000 14400 0 SAMT} + {3920565600 18000 1 SAMST} + {3939314400 14400 0 SAMT} + {3952015200 18000 1 SAMST} + {3970764000 14400 0 SAMT} + {3983464800 18000 1 SAMST} + {4002213600 14400 0 SAMT} + {4015519200 18000 1 SAMST} + {4033663200 14400 0 SAMT} + {4046968800 18000 1 SAMST} + {4065112800 14400 0 SAMT} + {4078418400 18000 1 SAMST} + {4096562400 14400 0 SAMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/San_Marino b/mingw/lib/tcl8.5/tzdata/Europe/San_Marino new file mode 100644 index 00000000..927ad290 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/San_Marino @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Rome)]} { + LoadTimeZoneFile Europe/Rome +} +set TZData(:Europe/San_Marino) $TZData(:Europe/Rome) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Sarajevo b/mingw/lib/tcl8.5/tzdata/Europe/Sarajevo new file mode 100644 index 00000000..1b14286a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Sarajevo @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Belgrade)]} { + LoadTimeZoneFile Europe/Belgrade +} +set TZData(:Europe/Sarajevo) $TZData(:Europe/Belgrade) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Simferopol b/mingw/lib/tcl8.5/tzdata/Europe/Simferopol new file mode 100644 index 00000000..98365608 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Simferopol @@ -0,0 +1,253 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Simferopol) { + {-9223372036854775808 8184 0 LMT} + {-2840148984 8160 0 SMT} + {-1441160160 7200 0 EET} + {-1247536800 10800 0 MSK} + {-888894000 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-811645200 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {631141200 10800 0 MSK} + {646786800 7200 0 EET} + {694216800 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {767743200 14400 0 MSD} + {780436800 10800 0 MSK} + {796165200 14400 1 MSD} + {811886400 10800 0 MSK} + {828219600 14400 1 MSD} + {828230400 14400 1 MSD} + {852066000 10800 0 MSK} + {859683600 10800 0 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Skopje b/mingw/lib/tcl8.5/tzdata/Europe/Skopje new file mode 100644 index 00000000..07eedbe9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Skopje @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Belgrade)]} { + LoadTimeZoneFile Europe/Belgrade +} +set TZData(:Europe/Skopje) $TZData(:Europe/Belgrade) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Sofia b/mingw/lib/tcl8.5/tzdata/Europe/Sofia new file mode 100644 index 00000000..300dca09 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Sofia @@ -0,0 +1,258 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Sofia) { + {-9223372036854775808 5596 0 LMT} + {-2840146396 7016 0 IMT} + {-2369527016 7200 0 EET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781048800 7200 0 EET} + {291762000 10800 0 EEST} + {307576800 7200 0 EET} + {323816400 10800 1 EEST} + {339026400 7200 0 EET} + {355266000 10800 1 EEST} + {370393200 7200 0 EET} + {386715600 10800 1 EEST} + {401842800 10800 0 EEST} + {401846400 7200 0 EET} + {417571200 10800 1 EEST} + {433296000 7200 0 EET} + {449020800 10800 1 EEST} + {465350400 7200 0 EET} + {481075200 10800 1 EEST} + {496800000 7200 0 EET} + {512524800 10800 1 EEST} + {528249600 7200 0 EET} + {543974400 10800 1 EEST} + {559699200 7200 0 EET} + {575424000 10800 1 EEST} + {591148800 7200 0 EET} + {606873600 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {662680800 7200 0 EET} + {670370400 10800 1 EEST} + {686091600 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {796168800 10800 1 EEST} + {811890000 7200 0 EET} + {828223200 10800 1 EEST} + {846363600 7200 0 EET} + {852069600 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Stockholm b/mingw/lib/tcl8.5/tzdata/Europe/Stockholm new file mode 100644 index 00000000..b74d3275 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Stockholm @@ -0,0 +1,250 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Stockholm) { + {-9223372036854775808 4332 0 LMT} + {-2871681132 3614 0 SET} + {-2208992414 3600 0 CET} + {-1692496800 7200 1 CEST} + {-1680483600 3600 0 CET} + {315529200 3600 0 CET} + {323830800 7200 1 CEST} + {338950800 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Tallinn b/mingw/lib/tcl8.5/tzdata/Europe/Tallinn new file mode 100644 index 00000000..17f14e61 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Tallinn @@ -0,0 +1,255 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Tallinn) { + {-9223372036854775808 5940 0 LMT} + {-2840146740 5940 0 TMT} + {-1638322740 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-1593824400 5940 0 TMT} + {-1535938740 7200 0 EET} + {-927943200 10800 0 MSK} + {-892954800 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-797648400 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 10800 1 EEST} + {622598400 7200 0 EET} + {638323200 10800 1 EEST} + {654652800 7200 0 EET} + {670377600 10800 1 EEST} + {686102400 7200 0 EET} + {701827200 10800 1 EEST} + {717552000 7200 0 EET} + {733276800 10800 1 EEST} + {749001600 7200 0 EET} + {764726400 10800 1 EEST} + {780451200 7200 0 EET} + {796176000 10800 1 EEST} + {811900800 7200 0 EET} + {828230400 10800 1 EEST} + {846374400 7200 0 EET} + {859680000 10800 1 EEST} + {877824000 7200 0 EET} + {891129600 10800 1 EEST} + {906415200 10800 0 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {941407200 7200 0 EET} + {1014242400 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Tirane b/mingw/lib/tcl8.5/tzdata/Europe/Tirane new file mode 100644 index 00000000..14ace2e5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Tirane @@ -0,0 +1,263 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Tirane) { + {-9223372036854775808 4760 0 LMT} + {-1767230360 3600 0 CET} + {-932346000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-843519600 3600 0 CET} + {136854000 7200 1 CEST} + {149896800 3600 0 CET} + {168130800 7200 1 CEST} + {181432800 3600 0 CET} + {199839600 7200 1 CEST} + {213141600 3600 0 CET} + {231894000 7200 1 CEST} + {244591200 3600 0 CET} + {263257200 7200 1 CEST} + {276040800 3600 0 CET} + {294706800 7200 1 CEST} + {307490400 3600 0 CET} + {326156400 7200 1 CEST} + {339458400 3600 0 CET} + {357087600 7200 1 CEST} + {370389600 3600 0 CET} + {389142000 7200 1 CEST} + {402444000 3600 0 CET} + {419468400 7200 1 CEST} + {433807200 3600 0 CET} + {449622000 7200 1 CEST} + {457480800 7200 0 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Tiraspol b/mingw/lib/tcl8.5/tzdata/Europe/Tiraspol new file mode 100644 index 00000000..ea8f6710 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Tiraspol @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Chisinau)]} { + LoadTimeZoneFile Europe/Chisinau +} +set TZData(:Europe/Tiraspol) $TZData(:Europe/Chisinau) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod b/mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod new file mode 100644 index 00000000..f6e580b0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod @@ -0,0 +1,254 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Uzhgorod) { + {-9223372036854775808 5352 0 LMT} + {-2500939752 3600 0 CET} + {-946774800 3600 0 CET} + {-938905200 7200 1 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796870800 7200 1 CEST} + {-794714400 3600 0 CET} + {-773456400 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {631141200 10800 0 MSK} + {646786800 3600 0 CET} + {670384800 7200 0 EET} + {694216800 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {788911200 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Vaduz b/mingw/lib/tcl8.5/tzdata/Europe/Vaduz new file mode 100644 index 00000000..31183316 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Vaduz @@ -0,0 +1,245 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Vaduz) { + {-9223372036854775808 2284 0 LMT} + {-2385247084 3600 0 CET} + {347151600 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Vatican b/mingw/lib/tcl8.5/tzdata/Europe/Vatican new file mode 100644 index 00000000..fe507658 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Vatican @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Rome)]} { + LoadTimeZoneFile Europe/Rome +} +set TZData(:Europe/Vatican) $TZData(:Europe/Rome) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Vienna b/mingw/lib/tcl8.5/tzdata/Europe/Vienna new file mode 100644 index 00000000..41d744dd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Vienna @@ -0,0 +1,271 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Vienna) { + {-9223372036854775808 3920 0 LMT} + {-2422055120 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618700400 3600 0 CET} + {-1577926800 3600 0 CET} + {-1569711600 7200 1 CEST} + {-1555801200 3600 0 CET} + {-938905200 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796777200 3600 0 CET} + {-781052400 7200 1 CEST} + {-780188400 3600 0 CET} + {-757386000 3600 0 CET} + {-748479600 7200 1 CEST} + {-733359600 3600 0 CET} + {-717634800 7200 1 CEST} + {-701910000 3600 0 CET} + {-684975600 7200 1 CEST} + {-670460400 3600 0 CET} + {323823600 7200 1 CEST} + {338940000 3600 0 CET} + {347151600 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Vilnius b/mingw/lib/tcl8.5/tzdata/Europe/Vilnius new file mode 100644 index 00000000..62d5d874 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Vilnius @@ -0,0 +1,251 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Vilnius) { + {-9223372036854775808 6076 0 LMT} + {-2840146876 5040 0 WMT} + {-1672536240 5736 0 KMT} + {-1585100136 3600 0 CET} + {-1561251600 7200 0 EET} + {-1553565600 3600 0 CET} + {-928198800 10800 0 MSK} + {-900126000 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-802141200 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {638319600 14400 1 MSD} + {654649200 10800 0 MSK} + {670374000 10800 1 EEST} + {686102400 7200 0 EET} + {701827200 10800 1 EEST} + {717552000 7200 0 EET} + {733276800 10800 1 EEST} + {749001600 7200 0 EET} + {764726400 10800 1 EEST} + {780451200 7200 0 EET} + {796176000 10800 1 EEST} + {811900800 7200 0 EET} + {828230400 10800 1 EEST} + {846374400 7200 0 EET} + {859680000 10800 1 EEST} + {877824000 7200 0 EET} + {883605600 7200 0 EET} + {891133200 7200 0 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 7200 0 EET} + {1041372000 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Volgograd b/mingw/lib/tcl8.5/tzdata/Europe/Volgograd new file mode 100644 index 00000000..49cf1e5b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Volgograd @@ -0,0 +1,247 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Volgograd) { + {-9223372036854775808 10660 0 LMT} + {-1577761060 10800 0 TSAT} + {-1411873200 10800 0 STAT} + {-1247540400 14400 0 STAT} + {-256881600 14400 0 VOLMMTT} + {354916800 18000 1 VOLST} + {370724400 14400 0 VOLT} + {386452800 18000 1 VOLST} + {402260400 14400 0 VOLT} + {417988800 18000 1 VOLST} + {433796400 14400 0 VOLT} + {449611200 18000 1 VOLST} + {465343200 14400 0 VOLT} + {481068000 18000 1 VOLST} + {496792800 14400 0 VOLT} + {512517600 18000 1 VOLST} + {528242400 14400 0 VOLT} + {543967200 18000 1 VOLST} + {559692000 14400 0 VOLT} + {575416800 18000 1 VOLST} + {591141600 14400 0 VOLT} + {606866400 10800 0 VOLMMTT} + {606870000 14400 1 VOLST} + {622594800 10800 0 VOLT} + {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 1 VOLST} + {1319929200 10800 0 VOLT} + {1332630000 14400 1 VOLST} + {1351378800 10800 0 VOLT} + {1364684400 14400 1 VOLST} + {1382828400 10800 0 VOLT} + {1396134000 14400 1 VOLST} + {1414278000 10800 0 VOLT} + {1427583600 14400 1 VOLST} + {1445727600 10800 0 VOLT} + {1459033200 14400 1 VOLST} + {1477782000 10800 0 VOLT} + {1490482800 14400 1 VOLST} + {1509231600 10800 0 VOLT} + {1521932400 14400 1 VOLST} + {1540681200 10800 0 VOLT} + {1553986800 14400 1 VOLST} + {1572130800 10800 0 VOLT} + {1585436400 14400 1 VOLST} + {1603580400 10800 0 VOLT} + {1616886000 14400 1 VOLST} + {1635634800 10800 0 VOLT} + {1648335600 14400 1 VOLST} + {1667084400 10800 0 VOLT} + {1679785200 14400 1 VOLST} + {1698534000 10800 0 VOLT} + {1711839600 14400 1 VOLST} + {1729983600 10800 0 VOLT} + {1743289200 14400 1 VOLST} + {1761433200 10800 0 VOLT} + {1774738800 14400 1 VOLST} + {1792882800 10800 0 VOLT} + {1806188400 14400 1 VOLST} + {1824937200 10800 0 VOLT} + {1837638000 14400 1 VOLST} + {1856386800 10800 0 VOLT} + {1869087600 14400 1 VOLST} + {1887836400 10800 0 VOLT} + {1901142000 14400 1 VOLST} + {1919286000 10800 0 VOLT} + {1932591600 14400 1 VOLST} + {1950735600 10800 0 VOLT} + {1964041200 14400 1 VOLST} + {1982790000 10800 0 VOLT} + {1995490800 14400 1 VOLST} + {2014239600 10800 0 VOLT} + {2026940400 14400 1 VOLST} + {2045689200 10800 0 VOLT} + {2058390000 14400 1 VOLST} + {2077138800 10800 0 VOLT} + {2090444400 14400 1 VOLST} + {2108588400 10800 0 VOLT} + {2121894000 14400 1 VOLST} + {2140038000 10800 0 VOLT} + {2153343600 14400 1 VOLST} + {2172092400 10800 0 VOLT} + {2184793200 14400 1 VOLST} + {2203542000 10800 0 VOLT} + {2216242800 14400 1 VOLST} + {2234991600 10800 0 VOLT} + {2248297200 14400 1 VOLST} + {2266441200 10800 0 VOLT} + {2279746800 14400 1 VOLST} + {2297890800 10800 0 VOLT} + {2311196400 14400 1 VOLST} + {2329340400 10800 0 VOLT} + {2342646000 14400 1 VOLST} + {2361394800 10800 0 VOLT} + {2374095600 14400 1 VOLST} + {2392844400 10800 0 VOLT} + {2405545200 14400 1 VOLST} + {2424294000 10800 0 VOLT} + {2437599600 14400 1 VOLST} + {2455743600 10800 0 VOLT} + {2469049200 14400 1 VOLST} + {2487193200 10800 0 VOLT} + {2500498800 14400 1 VOLST} + {2519247600 10800 0 VOLT} + {2531948400 14400 1 VOLST} + {2550697200 10800 0 VOLT} + {2563398000 14400 1 VOLST} + {2582146800 10800 0 VOLT} + {2595452400 14400 1 VOLST} + {2613596400 10800 0 VOLT} + {2626902000 14400 1 VOLST} + {2645046000 10800 0 VOLT} + {2658351600 14400 1 VOLST} + {2676495600 10800 0 VOLT} + {2689801200 14400 1 VOLST} + {2708550000 10800 0 VOLT} + {2721250800 14400 1 VOLST} + {2739999600 10800 0 VOLT} + {2752700400 14400 1 VOLST} + {2771449200 10800 0 VOLT} + {2784754800 14400 1 VOLST} + {2802898800 10800 0 VOLT} + {2816204400 14400 1 VOLST} + {2834348400 10800 0 VOLT} + {2847654000 14400 1 VOLST} + {2866402800 10800 0 VOLT} + {2879103600 14400 1 VOLST} + {2897852400 10800 0 VOLT} + {2910553200 14400 1 VOLST} + {2929302000 10800 0 VOLT} + {2942002800 14400 1 VOLST} + {2960751600 10800 0 VOLT} + {2974057200 14400 1 VOLST} + {2992201200 10800 0 VOLT} + {3005506800 14400 1 VOLST} + {3023650800 10800 0 VOLT} + {3036956400 14400 1 VOLST} + {3055705200 10800 0 VOLT} + {3068406000 14400 1 VOLST} + {3087154800 10800 0 VOLT} + {3099855600 14400 1 VOLST} + {3118604400 10800 0 VOLT} + {3131910000 14400 1 VOLST} + {3150054000 10800 0 VOLT} + {3163359600 14400 1 VOLST} + {3181503600 10800 0 VOLT} + {3194809200 14400 1 VOLST} + {3212953200 10800 0 VOLT} + {3226258800 14400 1 VOLST} + {3245007600 10800 0 VOLT} + {3257708400 14400 1 VOLST} + {3276457200 10800 0 VOLT} + {3289158000 14400 1 VOLST} + {3307906800 10800 0 VOLT} + {3321212400 14400 1 VOLST} + {3339356400 10800 0 VOLT} + {3352662000 14400 1 VOLST} + {3370806000 10800 0 VOLT} + {3384111600 14400 1 VOLST} + {3402860400 10800 0 VOLT} + {3415561200 14400 1 VOLST} + {3434310000 10800 0 VOLT} + {3447010800 14400 1 VOLST} + {3465759600 10800 0 VOLT} + {3479065200 14400 1 VOLST} + {3497209200 10800 0 VOLT} + {3510514800 14400 1 VOLST} + {3528658800 10800 0 VOLT} + {3541964400 14400 1 VOLST} + {3560108400 10800 0 VOLT} + {3573414000 14400 1 VOLST} + {3592162800 10800 0 VOLT} + {3604863600 14400 1 VOLST} + {3623612400 10800 0 VOLT} + {3636313200 14400 1 VOLST} + {3655062000 10800 0 VOLT} + {3668367600 14400 1 VOLST} + {3686511600 10800 0 VOLT} + {3699817200 14400 1 VOLST} + {3717961200 10800 0 VOLT} + {3731266800 14400 1 VOLST} + {3750015600 10800 0 VOLT} + {3762716400 14400 1 VOLST} + {3781465200 10800 0 VOLT} + {3794166000 14400 1 VOLST} + {3812914800 10800 0 VOLT} + {3825615600 14400 1 VOLST} + {3844364400 10800 0 VOLT} + {3857670000 14400 1 VOLST} + {3875814000 10800 0 VOLT} + {3889119600 14400 1 VOLST} + {3907263600 10800 0 VOLT} + {3920569200 14400 1 VOLST} + {3939318000 10800 0 VOLT} + {3952018800 14400 1 VOLST} + {3970767600 10800 0 VOLT} + {3983468400 14400 1 VOLST} + {4002217200 10800 0 VOLT} + {4015522800 14400 1 VOLST} + {4033666800 10800 0 VOLT} + {4046972400 14400 1 VOLST} + {4065116400 10800 0 VOLT} + {4078422000 14400 1 VOLST} + {4096566000 10800 0 VOLT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Warsaw b/mingw/lib/tcl8.5/tzdata/Europe/Warsaw new file mode 100644 index 00000000..6288a8ab --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Warsaw @@ -0,0 +1,296 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Warsaw) { + {-9223372036854775808 5040 0 LMT} + {-2840145840 5040 0 WMT} + {-1717032240 3600 0 CET} + {-1693706400 7200 1 CEST} + {-1680483600 3600 0 CET} + {-1663455600 7200 1 CEST} + {-1650150000 3600 0 CET} + {-1632006000 7200 1 CEST} + {-1618696800 7200 0 EET} + {-1600473600 10800 1 EEST} + {-1587168000 7200 0 EET} + {-931734000 7200 0 CEST} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-812502000 7200 1 CEST} + {-796870800 7200 0 CEST} + {-796608000 3600 0 CET} + {-778726800 7200 1 CEST} + {-762660000 3600 0 CET} + {-748486800 7200 1 CEST} + {-733273200 3600 0 CET} + {-715215600 7200 1 CEST} + {-701910000 3600 0 CET} + {-684975600 7200 1 CEST} + {-670460400 3600 0 CET} + {-654130800 7200 1 CEST} + {-639010800 3600 0 CET} + {-397094400 7200 1 CEST} + {-386812800 3600 0 CET} + {-371088000 7200 1 CEST} + {-355363200 3600 0 CET} + {-334195200 7200 1 CEST} + {-323308800 3600 0 CET} + {-307584000 7200 1 CEST} + {-291859200 3600 0 CET} + {-271296000 7200 1 CEST} + {-260409600 3600 0 CET} + {-239846400 7200 1 CEST} + {-228960000 3600 0 CET} + {-208396800 7200 1 CEST} + {-197510400 3600 0 CET} + {-176342400 7200 1 CEST} + {-166060800 3600 0 CET} + {220921200 3600 0 CET} + {228873600 7200 1 CEST} + {243993600 3600 0 CET} + {260323200 7200 1 CEST} + {276048000 3600 0 CET} + {291772800 7200 1 CEST} + {307497600 3600 0 CET} + {323827200 7200 1 CEST} + {338947200 3600 0 CET} + {354672000 7200 1 CEST} + {370396800 3600 0 CET} + {386121600 7200 1 CEST} + {401846400 3600 0 CET} + {417571200 7200 1 CEST} + {433296000 3600 0 CET} + {449020800 7200 1 CEST} + {465350400 3600 0 CET} + {481075200 7200 1 CEST} + {496800000 3600 0 CET} + {512524800 7200 1 CEST} + {528249600 3600 0 CET} + {543974400 7200 1 CEST} + {559699200 3600 0 CET} + {567990000 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Zagreb b/mingw/lib/tcl8.5/tzdata/Europe/Zagreb new file mode 100644 index 00000000..46319a41 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Zagreb @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Belgrade)]} { + LoadTimeZoneFile Europe/Belgrade +} +set TZData(:Europe/Zagreb) $TZData(:Europe/Belgrade) diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye b/mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye new file mode 100644 index 00000000..01418cdd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye @@ -0,0 +1,252 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Zaporozhye) { + {-9223372036854775808 8440 0 LMT} + {-2840149240 8400 0 CUT} + {-1441160400 7200 0 EET} + {-1247536800 10800 0 MSK} + {-894769200 3600 0 CET} + {-857257200 3600 0 CET} + {-844556400 7200 1 CEST} + {-828226800 3600 0 CET} + {-826419600 10800 0 MSD} + {354920400 14400 1 MSD} + {370728000 10800 0 MSK} + {386456400 14400 1 MSD} + {402264000 10800 0 MSK} + {417992400 14400 1 MSD} + {433800000 10800 0 MSK} + {449614800 14400 1 MSD} + {465346800 10800 0 MSK} + {481071600 14400 1 MSD} + {496796400 10800 0 MSK} + {512521200 14400 1 MSD} + {528246000 10800 0 MSK} + {543970800 14400 1 MSD} + {559695600 10800 0 MSK} + {575420400 14400 1 MSD} + {591145200 10800 0 MSK} + {606870000 14400 1 MSD} + {622594800 10800 0 MSK} + {638319600 14400 1 MSD} + {654649200 10800 0 MSK} + {670374000 10800 0 EEST} + {686091600 7200 0 EET} + {701820000 10800 1 EEST} + {717541200 7200 0 EET} + {733269600 10800 1 EEST} + {748990800 7200 0 EET} + {764719200 10800 1 EEST} + {780440400 7200 0 EET} + {788911200 7200 0 EET} + {796179600 10800 1 EEST} + {811904400 7200 0 EET} + {828234000 10800 1 EEST} + {846378000 7200 0 EET} + {859683600 10800 1 EEST} + {877827600 7200 0 EET} + {891133200 10800 1 EEST} + {909277200 7200 0 EET} + {922582800 10800 1 EEST} + {941331600 7200 0 EET} + {954032400 10800 1 EEST} + {972781200 7200 0 EET} + {985482000 10800 1 EEST} + {1004230800 7200 0 EET} + {1017536400 10800 1 EEST} + {1035680400 7200 0 EET} + {1048986000 10800 1 EEST} + {1067130000 7200 0 EET} + {1080435600 10800 1 EEST} + {1099184400 7200 0 EET} + {1111885200 10800 1 EEST} + {1130634000 7200 0 EET} + {1143334800 10800 1 EEST} + {1162083600 7200 0 EET} + {1174784400 10800 1 EEST} + {1193533200 7200 0 EET} + {1206838800 10800 1 EEST} + {1224982800 7200 0 EET} + {1238288400 10800 1 EEST} + {1256432400 7200 0 EET} + {1269738000 10800 1 EEST} + {1288486800 7200 0 EET} + {1301187600 10800 1 EEST} + {1319936400 7200 0 EET} + {1332637200 10800 1 EEST} + {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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Europe/Zurich b/mingw/lib/tcl8.5/tzdata/Europe/Zurich new file mode 100644 index 00000000..b6b44d19 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Europe/Zurich @@ -0,0 +1,252 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Europe/Zurich) { + {-9223372036854775808 2048 0 LMT} + {-3827954048 1784 0 BMT} + {-2385246584 3600 0 CET} + {-920336400 7200 1 CEST} + {-915242400 3600 0 CET} + {-904518000 7200 1 CEST} + {-891223200 3600 0 CET} + {-873068400 7200 1 CEST} + {-859773600 3600 0 CET} + {347151600 3600 0 CET} + {354675600 7200 1 CEST} + {370400400 3600 0 CET} + {386125200 7200 1 CEST} + {401850000 3600 0 CET} + {417574800 7200 1 CEST} + {433299600 3600 0 CET} + {449024400 7200 1 CEST} + {465354000 3600 0 CET} + {481078800 7200 1 CEST} + {496803600 3600 0 CET} + {512528400 7200 1 CEST} + {528253200 3600 0 CET} + {543978000 7200 1 CEST} + {559702800 3600 0 CET} + {575427600 7200 1 CEST} + {591152400 3600 0 CET} + {606877200 7200 1 CEST} + {622602000 3600 0 CET} + {638326800 7200 1 CEST} + {654656400 3600 0 CET} + {670381200 7200 1 CEST} + {686106000 3600 0 CET} + {701830800 7200 1 CEST} + {717555600 3600 0 CET} + {733280400 7200 1 CEST} + {749005200 3600 0 CET} + {764730000 7200 1 CEST} + {780454800 3600 0 CET} + {796179600 7200 1 CEST} + {811904400 3600 0 CET} + {828234000 7200 1 CEST} + {846378000 3600 0 CET} + {859683600 7200 1 CEST} + {877827600 3600 0 CET} + {891133200 7200 1 CEST} + {909277200 3600 0 CET} + {922582800 7200 1 CEST} + {941331600 3600 0 CET} + {954032400 7200 1 CEST} + {972781200 3600 0 CET} + {985482000 7200 1 CEST} + {1004230800 3600 0 CET} + {1017536400 7200 1 CEST} + {1035680400 3600 0 CET} + {1048986000 7200 1 CEST} + {1067130000 3600 0 CET} + {1080435600 7200 1 CEST} + {1099184400 3600 0 CET} + {1111885200 7200 1 CEST} + {1130634000 3600 0 CET} + {1143334800 7200 1 CEST} + {1162083600 3600 0 CET} + {1174784400 7200 1 CEST} + {1193533200 3600 0 CET} + {1206838800 7200 1 CEST} + {1224982800 3600 0 CET} + {1238288400 7200 1 CEST} + {1256432400 3600 0 CET} + {1269738000 7200 1 CEST} + {1288486800 3600 0 CET} + {1301187600 7200 1 CEST} + {1319936400 3600 0 CET} + {1332637200 7200 1 CEST} + {1351386000 3600 0 CET} + {1364691600 7200 1 CEST} + {1382835600 3600 0 CET} + {1396141200 7200 1 CEST} + {1414285200 3600 0 CET} + {1427590800 7200 1 CEST} + {1445734800 3600 0 CET} + {1459040400 7200 1 CEST} + {1477789200 3600 0 CET} + {1490490000 7200 1 CEST} + {1509238800 3600 0 CET} + {1521939600 7200 1 CEST} + {1540688400 3600 0 CET} + {1553994000 7200 1 CEST} + {1572138000 3600 0 CET} + {1585443600 7200 1 CEST} + {1603587600 3600 0 CET} + {1616893200 7200 1 CEST} + {1635642000 3600 0 CET} + {1648342800 7200 1 CEST} + {1667091600 3600 0 CET} + {1679792400 7200 1 CEST} + {1698541200 3600 0 CET} + {1711846800 7200 1 CEST} + {1729990800 3600 0 CET} + {1743296400 7200 1 CEST} + {1761440400 3600 0 CET} + {1774746000 7200 1 CEST} + {1792890000 3600 0 CET} + {1806195600 7200 1 CEST} + {1824944400 3600 0 CET} + {1837645200 7200 1 CEST} + {1856394000 3600 0 CET} + {1869094800 7200 1 CEST} + {1887843600 3600 0 CET} + {1901149200 7200 1 CEST} + {1919293200 3600 0 CET} + {1932598800 7200 1 CEST} + {1950742800 3600 0 CET} + {1964048400 7200 1 CEST} + {1982797200 3600 0 CET} + {1995498000 7200 1 CEST} + {2014246800 3600 0 CET} + {2026947600 7200 1 CEST} + {2045696400 3600 0 CET} + {2058397200 7200 1 CEST} + {2077146000 3600 0 CET} + {2090451600 7200 1 CEST} + {2108595600 3600 0 CET} + {2121901200 7200 1 CEST} + {2140045200 3600 0 CET} + {2153350800 7200 1 CEST} + {2172099600 3600 0 CET} + {2184800400 7200 1 CEST} + {2203549200 3600 0 CET} + {2216250000 7200 1 CEST} + {2234998800 3600 0 CET} + {2248304400 7200 1 CEST} + {2266448400 3600 0 CET} + {2279754000 7200 1 CEST} + {2297898000 3600 0 CET} + {2311203600 7200 1 CEST} + {2329347600 3600 0 CET} + {2342653200 7200 1 CEST} + {2361402000 3600 0 CET} + {2374102800 7200 1 CEST} + {2392851600 3600 0 CET} + {2405552400 7200 1 CEST} + {2424301200 3600 0 CET} + {2437606800 7200 1 CEST} + {2455750800 3600 0 CET} + {2469056400 7200 1 CEST} + {2487200400 3600 0 CET} + {2500506000 7200 1 CEST} + {2519254800 3600 0 CET} + {2531955600 7200 1 CEST} + {2550704400 3600 0 CET} + {2563405200 7200 1 CEST} + {2582154000 3600 0 CET} + {2595459600 7200 1 CEST} + {2613603600 3600 0 CET} + {2626909200 7200 1 CEST} + {2645053200 3600 0 CET} + {2658358800 7200 1 CEST} + {2676502800 3600 0 CET} + {2689808400 7200 1 CEST} + {2708557200 3600 0 CET} + {2721258000 7200 1 CEST} + {2740006800 3600 0 CET} + {2752707600 7200 1 CEST} + {2771456400 3600 0 CET} + {2784762000 7200 1 CEST} + {2802906000 3600 0 CET} + {2816211600 7200 1 CEST} + {2834355600 3600 0 CET} + {2847661200 7200 1 CEST} + {2866410000 3600 0 CET} + {2879110800 7200 1 CEST} + {2897859600 3600 0 CET} + {2910560400 7200 1 CEST} + {2929309200 3600 0 CET} + {2942010000 7200 1 CEST} + {2960758800 3600 0 CET} + {2974064400 7200 1 CEST} + {2992208400 3600 0 CET} + {3005514000 7200 1 CEST} + {3023658000 3600 0 CET} + {3036963600 7200 1 CEST} + {3055712400 3600 0 CET} + {3068413200 7200 1 CEST} + {3087162000 3600 0 CET} + {3099862800 7200 1 CEST} + {3118611600 3600 0 CET} + {3131917200 7200 1 CEST} + {3150061200 3600 0 CET} + {3163366800 7200 1 CEST} + {3181510800 3600 0 CET} + {3194816400 7200 1 CEST} + {3212960400 3600 0 CET} + {3226266000 7200 1 CEST} + {3245014800 3600 0 CET} + {3257715600 7200 1 CEST} + {3276464400 3600 0 CET} + {3289165200 7200 1 CEST} + {3307914000 3600 0 CET} + {3321219600 7200 1 CEST} + {3339363600 3600 0 CET} + {3352669200 7200 1 CEST} + {3370813200 3600 0 CET} + {3384118800 7200 1 CEST} + {3402867600 3600 0 CET} + {3415568400 7200 1 CEST} + {3434317200 3600 0 CET} + {3447018000 7200 1 CEST} + {3465766800 3600 0 CET} + {3479072400 7200 1 CEST} + {3497216400 3600 0 CET} + {3510522000 7200 1 CEST} + {3528666000 3600 0 CET} + {3541971600 7200 1 CEST} + {3560115600 3600 0 CET} + {3573421200 7200 1 CEST} + {3592170000 3600 0 CET} + {3604870800 7200 1 CEST} + {3623619600 3600 0 CET} + {3636320400 7200 1 CEST} + {3655069200 3600 0 CET} + {3668374800 7200 1 CEST} + {3686518800 3600 0 CET} + {3699824400 7200 1 CEST} + {3717968400 3600 0 CET} + {3731274000 7200 1 CEST} + {3750022800 3600 0 CET} + {3762723600 7200 1 CEST} + {3781472400 3600 0 CET} + {3794173200 7200 1 CEST} + {3812922000 3600 0 CET} + {3825622800 7200 1 CEST} + {3844371600 3600 0 CET} + {3857677200 7200 1 CEST} + {3875821200 3600 0 CET} + {3889126800 7200 1 CEST} + {3907270800 3600 0 CET} + {3920576400 7200 1 CEST} + {3939325200 3600 0 CET} + {3952026000 7200 1 CEST} + {3970774800 3600 0 CET} + {3983475600 7200 1 CEST} + {4002224400 3600 0 CET} + {4015530000 7200 1 CEST} + {4033674000 3600 0 CET} + {4046979600 7200 1 CEST} + {4065123600 3600 0 CET} + {4078429200 7200 1 CEST} + {4096573200 3600 0 CET} +} diff --git a/mingw/lib/tcl8.5/tzdata/GB b/mingw/lib/tcl8.5/tzdata/GB new file mode 100644 index 00000000..72d77eea --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GB @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:GB) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/GB-Eire b/mingw/lib/tcl8.5/tzdata/GB-Eire new file mode 100644 index 00000000..16224173 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GB-Eire @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/London)]} { + LoadTimeZoneFile Europe/London +} +set TZData(:GB-Eire) $TZData(:Europe/London) diff --git a/mingw/lib/tcl8.5/tzdata/GMT b/mingw/lib/tcl8.5/tzdata/GMT new file mode 100644 index 00000000..4258564e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GMT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:GMT) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/GMT+0 b/mingw/lib/tcl8.5/tzdata/GMT+0 new file mode 100644 index 00000000..a1e81267 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GMT+0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:GMT+0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/GMT-0 b/mingw/lib/tcl8.5/tzdata/GMT-0 new file mode 100644 index 00000000..04ccafe2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GMT-0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:GMT-0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/GMT0 b/mingw/lib/tcl8.5/tzdata/GMT0 new file mode 100644 index 00000000..92e95a34 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/GMT0 @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:GMT0) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/Greenwich b/mingw/lib/tcl8.5/tzdata/Greenwich new file mode 100644 index 00000000..61152331 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Greenwich @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/GMT)]} { + LoadTimeZoneFile Etc/GMT +} +set TZData(:Greenwich) $TZData(:Etc/GMT) diff --git a/mingw/lib/tcl8.5/tzdata/HST b/mingw/lib/tcl8.5/tzdata/HST new file mode 100644 index 00000000..fea7f143 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/HST @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:HST) { + {-9223372036854775808 -36000 0 HST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Hongkong b/mingw/lib/tcl8.5/tzdata/Hongkong new file mode 100644 index 00000000..f9d4dac7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Hongkong @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Hong_Kong)]} { + LoadTimeZoneFile Asia/Hong_Kong +} +set TZData(:Hongkong) $TZData(:Asia/Hong_Kong) diff --git a/mingw/lib/tcl8.5/tzdata/Iceland b/mingw/lib/tcl8.5/tzdata/Iceland new file mode 100644 index 00000000..eb3f3eb2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Iceland @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Atlantic/Reykjavik)]} { + LoadTimeZoneFile Atlantic/Reykjavik +} +set TZData(:Iceland) $TZData(:Atlantic/Reykjavik) diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Antananarivo b/mingw/lib/tcl8.5/tzdata/Indian/Antananarivo new file mode 100644 index 00000000..217715ef --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Antananarivo @@ -0,0 +1,8 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Chagos b/mingw/lib/tcl8.5/tzdata/Indian/Chagos new file mode 100644 index 00000000..a5cec611 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Chagos @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Chagos) { + {-9223372036854775808 17380 0 LMT} + {-1988167780 18000 0 IOT} + {820436400 21600 0 IOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Christmas b/mingw/lib/tcl8.5/tzdata/Indian/Christmas new file mode 100644 index 00000000..c36e973c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Christmas @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Christmas) { + {-9223372036854775808 25372 0 LMT} + {-2364102172 25200 0 CXT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Cocos b/mingw/lib/tcl8.5/tzdata/Indian/Cocos new file mode 100644 index 00000000..a63ae680 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Cocos @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Cocos) { + {-9223372036854775808 23260 0 LMT} + {-2209012060 23400 0 CCT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Comoro b/mingw/lib/tcl8.5/tzdata/Indian/Comoro new file mode 100644 index 00000000..0b3c33aa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Comoro @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Comoro) { + {-9223372036854775808 10384 0 LMT} + {-1846291984 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Kerguelen b/mingw/lib/tcl8.5/tzdata/Indian/Kerguelen new file mode 100644 index 00000000..b41b85a0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Kerguelen @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Kerguelen) { + {-9223372036854775808 0 0 zzz} + {-631152000 18000 0 TFT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Mahe b/mingw/lib/tcl8.5/tzdata/Indian/Mahe new file mode 100644 index 00000000..c88a24b3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Mahe @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Mahe) { + {-9223372036854775808 13308 0 LMT} + {-2006653308 14400 0 SCT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Maldives b/mingw/lib/tcl8.5/tzdata/Indian/Maldives new file mode 100644 index 00000000..2c2c7391 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Maldives @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Maldives) { + {-9223372036854775808 17640 0 LMT} + {-2840158440 17640 0 MMT} + {-315636840 18000 0 MVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Mauritius b/mingw/lib/tcl8.5/tzdata/Indian/Mauritius new file mode 100644 index 00000000..018447a4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Mauritius @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Mauritius) { + {-9223372036854775808 13800 0 LMT} + {-1988164200 14400 0 MUT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Mayotte b/mingw/lib/tcl8.5/tzdata/Indian/Mayotte new file mode 100644 index 00000000..0fe5f56e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Mayotte @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Mayotte) { + {-9223372036854775808 10856 0 LMT} + {-1846292456 10800 0 EAT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Indian/Reunion b/mingw/lib/tcl8.5/tzdata/Indian/Reunion new file mode 100644 index 00000000..de2dd607 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Indian/Reunion @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Indian/Reunion) { + {-9223372036854775808 13312 0 LMT} + {-1848886912 14400 0 RET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Iran b/mingw/lib/tcl8.5/tzdata/Iran new file mode 100644 index 00000000..e200b4df --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Iran @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Tehran)]} { + LoadTimeZoneFile Asia/Tehran +} +set TZData(:Iran) $TZData(:Asia/Tehran) diff --git a/mingw/lib/tcl8.5/tzdata/Israel b/mingw/lib/tcl8.5/tzdata/Israel new file mode 100644 index 00000000..af521f5c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Israel @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Jerusalem)]} { + LoadTimeZoneFile Asia/Jerusalem +} +set TZData(:Israel) $TZData(:Asia/Jerusalem) diff --git a/mingw/lib/tcl8.5/tzdata/Jamaica b/mingw/lib/tcl8.5/tzdata/Jamaica new file mode 100644 index 00000000..ddb5d458 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Jamaica @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Jamaica)]} { + LoadTimeZoneFile America/Jamaica +} +set TZData(:Jamaica) $TZData(:America/Jamaica) diff --git a/mingw/lib/tcl8.5/tzdata/Japan b/mingw/lib/tcl8.5/tzdata/Japan new file mode 100644 index 00000000..428a79f1 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Japan @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Tokyo)]} { + LoadTimeZoneFile Asia/Tokyo +} +set TZData(:Japan) $TZData(:Asia/Tokyo) diff --git a/mingw/lib/tcl8.5/tzdata/Kwajalein b/mingw/lib/tcl8.5/tzdata/Kwajalein new file mode 100644 index 00000000..586db6db --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Kwajalein @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Kwajalein)]} { + LoadTimeZoneFile Pacific/Kwajalein +} +set TZData(:Kwajalein) $TZData(:Pacific/Kwajalein) diff --git a/mingw/lib/tcl8.5/tzdata/Libya b/mingw/lib/tcl8.5/tzdata/Libya new file mode 100644 index 00000000..6cd77e14 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Libya @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Africa/Tripoli)]} { + LoadTimeZoneFile Africa/Tripoli +} +set TZData(:Libya) $TZData(:Africa/Tripoli) diff --git a/mingw/lib/tcl8.5/tzdata/MET b/mingw/lib/tcl8.5/tzdata/MET new file mode 100644 index 00000000..a2c72c01 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/MET @@ -0,0 +1,263 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:MET) { + {-9223372036854775808 3600 0 MET} + {-1693706400 7200 1 MEST} + {-1680483600 3600 0 MET} + {-1663455600 7200 1 MEST} + {-1650150000 3600 0 MET} + {-1632006000 7200 1 MEST} + {-1618700400 3600 0 MET} + {-938905200 7200 1 MEST} + {-857257200 3600 0 MET} + {-844556400 7200 1 MEST} + {-828226800 3600 0 MET} + {-812502000 7200 1 MEST} + {-796777200 3600 0 MET} + {228877200 7200 1 MEST} + {243997200 3600 0 MET} + {260326800 7200 1 MEST} + {276051600 3600 0 MET} + {291776400 7200 1 MEST} + {307501200 3600 0 MET} + {323830800 7200 1 MEST} + {338950800 3600 0 MET} + {354675600 7200 1 MEST} + {370400400 3600 0 MET} + {386125200 7200 1 MEST} + {401850000 3600 0 MET} + {417574800 7200 1 MEST} + {433299600 3600 0 MET} + {449024400 7200 1 MEST} + {465354000 3600 0 MET} + {481078800 7200 1 MEST} + {496803600 3600 0 MET} + {512528400 7200 1 MEST} + {528253200 3600 0 MET} + {543978000 7200 1 MEST} + {559702800 3600 0 MET} + {575427600 7200 1 MEST} + {591152400 3600 0 MET} + {606877200 7200 1 MEST} + {622602000 3600 0 MET} + {638326800 7200 1 MEST} + {654656400 3600 0 MET} + {670381200 7200 1 MEST} + {686106000 3600 0 MET} + {701830800 7200 1 MEST} + {717555600 3600 0 MET} + {733280400 7200 1 MEST} + {749005200 3600 0 MET} + {764730000 7200 1 MEST} + {780454800 3600 0 MET} + {796179600 7200 1 MEST} + {811904400 3600 0 MET} + {828234000 7200 1 MEST} + {846378000 3600 0 MET} + {859683600 7200 1 MEST} + {877827600 3600 0 MET} + {891133200 7200 1 MEST} + {909277200 3600 0 MET} + {922582800 7200 1 MEST} + {941331600 3600 0 MET} + {954032400 7200 1 MEST} + {972781200 3600 0 MET} + {985482000 7200 1 MEST} + {1004230800 3600 0 MET} + {1017536400 7200 1 MEST} + {1035680400 3600 0 MET} + {1048986000 7200 1 MEST} + {1067130000 3600 0 MET} + {1080435600 7200 1 MEST} + {1099184400 3600 0 MET} + {1111885200 7200 1 MEST} + {1130634000 3600 0 MET} + {1143334800 7200 1 MEST} + {1162083600 3600 0 MET} + {1174784400 7200 1 MEST} + {1193533200 3600 0 MET} + {1206838800 7200 1 MEST} + {1224982800 3600 0 MET} + {1238288400 7200 1 MEST} + {1256432400 3600 0 MET} + {1269738000 7200 1 MEST} + {1288486800 3600 0 MET} + {1301187600 7200 1 MEST} + {1319936400 3600 0 MET} + {1332637200 7200 1 MEST} + {1351386000 3600 0 MET} + {1364691600 7200 1 MEST} + {1382835600 3600 0 MET} + {1396141200 7200 1 MEST} + {1414285200 3600 0 MET} + {1427590800 7200 1 MEST} + {1445734800 3600 0 MET} + {1459040400 7200 1 MEST} + {1477789200 3600 0 MET} + {1490490000 7200 1 MEST} + {1509238800 3600 0 MET} + {1521939600 7200 1 MEST} + {1540688400 3600 0 MET} + {1553994000 7200 1 MEST} + {1572138000 3600 0 MET} + {1585443600 7200 1 MEST} + {1603587600 3600 0 MET} + {1616893200 7200 1 MEST} + {1635642000 3600 0 MET} + {1648342800 7200 1 MEST} + {1667091600 3600 0 MET} + {1679792400 7200 1 MEST} + {1698541200 3600 0 MET} + {1711846800 7200 1 MEST} + {1729990800 3600 0 MET} + {1743296400 7200 1 MEST} + {1761440400 3600 0 MET} + {1774746000 7200 1 MEST} + {1792890000 3600 0 MET} + {1806195600 7200 1 MEST} + {1824944400 3600 0 MET} + {1837645200 7200 1 MEST} + {1856394000 3600 0 MET} + {1869094800 7200 1 MEST} + {1887843600 3600 0 MET} + {1901149200 7200 1 MEST} + {1919293200 3600 0 MET} + {1932598800 7200 1 MEST} + {1950742800 3600 0 MET} + {1964048400 7200 1 MEST} + {1982797200 3600 0 MET} + {1995498000 7200 1 MEST} + {2014246800 3600 0 MET} + {2026947600 7200 1 MEST} + {2045696400 3600 0 MET} + {2058397200 7200 1 MEST} + {2077146000 3600 0 MET} + {2090451600 7200 1 MEST} + {2108595600 3600 0 MET} + {2121901200 7200 1 MEST} + {2140045200 3600 0 MET} + {2153350800 7200 1 MEST} + {2172099600 3600 0 MET} + {2184800400 7200 1 MEST} + {2203549200 3600 0 MET} + {2216250000 7200 1 MEST} + {2234998800 3600 0 MET} + {2248304400 7200 1 MEST} + {2266448400 3600 0 MET} + {2279754000 7200 1 MEST} + {2297898000 3600 0 MET} + {2311203600 7200 1 MEST} + {2329347600 3600 0 MET} + {2342653200 7200 1 MEST} + {2361402000 3600 0 MET} + {2374102800 7200 1 MEST} + {2392851600 3600 0 MET} + {2405552400 7200 1 MEST} + {2424301200 3600 0 MET} + {2437606800 7200 1 MEST} + {2455750800 3600 0 MET} + {2469056400 7200 1 MEST} + {2487200400 3600 0 MET} + {2500506000 7200 1 MEST} + {2519254800 3600 0 MET} + {2531955600 7200 1 MEST} + {2550704400 3600 0 MET} + {2563405200 7200 1 MEST} + {2582154000 3600 0 MET} + {2595459600 7200 1 MEST} + {2613603600 3600 0 MET} + {2626909200 7200 1 MEST} + {2645053200 3600 0 MET} + {2658358800 7200 1 MEST} + {2676502800 3600 0 MET} + {2689808400 7200 1 MEST} + {2708557200 3600 0 MET} + {2721258000 7200 1 MEST} + {2740006800 3600 0 MET} + {2752707600 7200 1 MEST} + {2771456400 3600 0 MET} + {2784762000 7200 1 MEST} + {2802906000 3600 0 MET} + {2816211600 7200 1 MEST} + {2834355600 3600 0 MET} + {2847661200 7200 1 MEST} + {2866410000 3600 0 MET} + {2879110800 7200 1 MEST} + {2897859600 3600 0 MET} + {2910560400 7200 1 MEST} + {2929309200 3600 0 MET} + {2942010000 7200 1 MEST} + {2960758800 3600 0 MET} + {2974064400 7200 1 MEST} + {2992208400 3600 0 MET} + {3005514000 7200 1 MEST} + {3023658000 3600 0 MET} + {3036963600 7200 1 MEST} + {3055712400 3600 0 MET} + {3068413200 7200 1 MEST} + {3087162000 3600 0 MET} + {3099862800 7200 1 MEST} + {3118611600 3600 0 MET} + {3131917200 7200 1 MEST} + {3150061200 3600 0 MET} + {3163366800 7200 1 MEST} + {3181510800 3600 0 MET} + {3194816400 7200 1 MEST} + {3212960400 3600 0 MET} + {3226266000 7200 1 MEST} + {3245014800 3600 0 MET} + {3257715600 7200 1 MEST} + {3276464400 3600 0 MET} + {3289165200 7200 1 MEST} + {3307914000 3600 0 MET} + {3321219600 7200 1 MEST} + {3339363600 3600 0 MET} + {3352669200 7200 1 MEST} + {3370813200 3600 0 MET} + {3384118800 7200 1 MEST} + {3402867600 3600 0 MET} + {3415568400 7200 1 MEST} + {3434317200 3600 0 MET} + {3447018000 7200 1 MEST} + {3465766800 3600 0 MET} + {3479072400 7200 1 MEST} + {3497216400 3600 0 MET} + {3510522000 7200 1 MEST} + {3528666000 3600 0 MET} + {3541971600 7200 1 MEST} + {3560115600 3600 0 MET} + {3573421200 7200 1 MEST} + {3592170000 3600 0 MET} + {3604870800 7200 1 MEST} + {3623619600 3600 0 MET} + {3636320400 7200 1 MEST} + {3655069200 3600 0 MET} + {3668374800 7200 1 MEST} + {3686518800 3600 0 MET} + {3699824400 7200 1 MEST} + {3717968400 3600 0 MET} + {3731274000 7200 1 MEST} + {3750022800 3600 0 MET} + {3762723600 7200 1 MEST} + {3781472400 3600 0 MET} + {3794173200 7200 1 MEST} + {3812922000 3600 0 MET} + {3825622800 7200 1 MEST} + {3844371600 3600 0 MET} + {3857677200 7200 1 MEST} + {3875821200 3600 0 MET} + {3889126800 7200 1 MEST} + {3907270800 3600 0 MET} + {3920576400 7200 1 MEST} + {3939325200 3600 0 MET} + {3952026000 7200 1 MEST} + {3970774800 3600 0 MET} + {3983475600 7200 1 MEST} + {4002224400 3600 0 MET} + {4015530000 7200 1 MEST} + {4033674000 3600 0 MET} + {4046979600 7200 1 MEST} + {4065123600 3600 0 MET} + {4078429200 7200 1 MEST} + {4096573200 3600 0 MET} +} diff --git a/mingw/lib/tcl8.5/tzdata/MST b/mingw/lib/tcl8.5/tzdata/MST new file mode 100644 index 00000000..8c967abe --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/MST @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:MST) { + {-9223372036854775808 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/MST7MDT b/mingw/lib/tcl8.5/tzdata/MST7MDT new file mode 100644 index 00000000..ff520486 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/MST7MDT @@ -0,0 +1,278 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:MST7MDT) { + {-9223372036854775808 -25200 0 MST} + {-1633273200 -21600 1 MDT} + {-1615132800 -25200 0 MST} + {-1601823600 -21600 1 MDT} + {-1583683200 -25200 0 MST} + {-880210800 -21600 1 MWT} + {-769395600 -21600 1 MPT} + {-765388800 -25200 0 MST} + {-84380400 -21600 1 MDT} + {-68659200 -25200 0 MST} + {-52930800 -21600 1 MDT} + {-37209600 -25200 0 MST} + {-21481200 -21600 1 MDT} + {-5760000 -25200 0 MST} + {9968400 -21600 1 MDT} + {25689600 -25200 0 MST} + {41418000 -21600 1 MDT} + {57744000 -25200 0 MST} + {73472400 -21600 1 MDT} + {89193600 -25200 0 MST} + {104922000 -21600 1 MDT} + {120643200 -25200 0 MST} + {126694800 -21600 1 MDT} + {152092800 -25200 0 MST} + {162378000 -21600 1 MDT} + {183542400 -25200 0 MST} + {199270800 -21600 1 MDT} + {215596800 -25200 0 MST} + {230720400 -21600 1 MDT} + {247046400 -25200 0 MST} + {262774800 -21600 1 MDT} + {278496000 -25200 0 MST} + {294224400 -21600 1 MDT} + {309945600 -25200 0 MST} + {325674000 -21600 1 MDT} + {341395200 -25200 0 MST} + {357123600 -21600 1 MDT} + {372844800 -25200 0 MST} + {388573200 -21600 1 MDT} + {404899200 -25200 0 MST} + {420022800 -21600 1 MDT} + {436348800 -25200 0 MST} + {452077200 -21600 1 MDT} + {467798400 -25200 0 MST} + {483526800 -21600 1 MDT} + {499248000 -25200 0 MST} + {514976400 -21600 1 MDT} + {530697600 -25200 0 MST} + {544611600 -21600 1 MDT} + {562147200 -25200 0 MST} + {576061200 -21600 1 MDT} + {594201600 -25200 0 MST} + {607510800 -21600 1 MDT} + {625651200 -25200 0 MST} + {638960400 -21600 1 MDT} + {657100800 -25200 0 MST} + {671014800 -21600 1 MDT} + {688550400 -25200 0 MST} + {702464400 -21600 1 MDT} + {720000000 -25200 0 MST} + {733914000 -21600 1 MDT} + {752054400 -25200 0 MST} + {765363600 -21600 1 MDT} + {783504000 -25200 0 MST} + {796813200 -21600 1 MDT} + {814953600 -25200 0 MST} + {828867600 -21600 1 MDT} + {846403200 -25200 0 MST} + {860317200 -21600 1 MDT} + {877852800 -25200 0 MST} + {891766800 -21600 1 MDT} + {909302400 -25200 0 MST} + {923216400 -21600 1 MDT} + {941356800 -25200 0 MST} + {954666000 -21600 1 MDT} + {972806400 -25200 0 MST} + {986115600 -21600 1 MDT} + {1004256000 -25200 0 MST} + {1018170000 -21600 1 MDT} + {1035705600 -25200 0 MST} + {1049619600 -21600 1 MDT} + {1067155200 -25200 0 MST} + {1081069200 -21600 1 MDT} + {1099209600 -25200 0 MST} + {1112518800 -21600 1 MDT} + {1130659200 -25200 0 MST} + {1143968400 -21600 1 MDT} + {1162108800 -25200 0 MST} + {1173603600 -21600 1 MDT} + {1194163200 -25200 0 MST} + {1205053200 -21600 1 MDT} + {1225612800 -25200 0 MST} + {1236502800 -21600 1 MDT} + {1257062400 -25200 0 MST} + {1268557200 -21600 1 MDT} + {1289116800 -25200 0 MST} + {1300006800 -21600 1 MDT} + {1320566400 -25200 0 MST} + {1331456400 -21600 1 MDT} + {1352016000 -25200 0 MST} + {1362906000 -21600 1 MDT} + {1383465600 -25200 0 MST} + {1394355600 -21600 1 MDT} + {1414915200 -25200 0 MST} + {1425805200 -21600 1 MDT} + {1446364800 -25200 0 MST} + {1457859600 -21600 1 MDT} + {1478419200 -25200 0 MST} + {1489309200 -21600 1 MDT} + {1509868800 -25200 0 MST} + {1520758800 -21600 1 MDT} + {1541318400 -25200 0 MST} + {1552208400 -21600 1 MDT} + {1572768000 -25200 0 MST} + {1583658000 -21600 1 MDT} + {1604217600 -25200 0 MST} + {1615712400 -21600 1 MDT} + {1636272000 -25200 0 MST} + {1647162000 -21600 1 MDT} + {1667721600 -25200 0 MST} + {1678611600 -21600 1 MDT} + {1699171200 -25200 0 MST} + {1710061200 -21600 1 MDT} + {1730620800 -25200 0 MST} + {1741510800 -21600 1 MDT} + {1762070400 -25200 0 MST} + {1772960400 -21600 1 MDT} + {1793520000 -25200 0 MST} + {1805014800 -21600 1 MDT} + {1825574400 -25200 0 MST} + {1836464400 -21600 1 MDT} + {1857024000 -25200 0 MST} + {1867914000 -21600 1 MDT} + {1888473600 -25200 0 MST} + {1899363600 -21600 1 MDT} + {1919923200 -25200 0 MST} + {1930813200 -21600 1 MDT} + {1951372800 -25200 0 MST} + {1962867600 -21600 1 MDT} + {1983427200 -25200 0 MST} + {1994317200 -21600 1 MDT} + {2014876800 -25200 0 MST} + {2025766800 -21600 1 MDT} + {2046326400 -25200 0 MST} + {2057216400 -21600 1 MDT} + {2077776000 -25200 0 MST} + {2088666000 -21600 1 MDT} + {2109225600 -25200 0 MST} + {2120115600 -21600 1 MDT} + {2140675200 -25200 0 MST} + {2152170000 -21600 1 MDT} + {2172729600 -25200 0 MST} + {2183619600 -21600 1 MDT} + {2204179200 -25200 0 MST} + {2215069200 -21600 1 MDT} + {2235628800 -25200 0 MST} + {2246518800 -21600 1 MDT} + {2267078400 -25200 0 MST} + {2277968400 -21600 1 MDT} + {2298528000 -25200 0 MST} + {2309418000 -21600 1 MDT} + {2329977600 -25200 0 MST} + {2341472400 -21600 1 MDT} + {2362032000 -25200 0 MST} + {2372922000 -21600 1 MDT} + {2393481600 -25200 0 MST} + {2404371600 -21600 1 MDT} + {2424931200 -25200 0 MST} + {2435821200 -21600 1 MDT} + {2456380800 -25200 0 MST} + {2467270800 -21600 1 MDT} + {2487830400 -25200 0 MST} + {2499325200 -21600 1 MDT} + {2519884800 -25200 0 MST} + {2530774800 -21600 1 MDT} + {2551334400 -25200 0 MST} + {2562224400 -21600 1 MDT} + {2582784000 -25200 0 MST} + {2593674000 -21600 1 MDT} + {2614233600 -25200 0 MST} + {2625123600 -21600 1 MDT} + {2645683200 -25200 0 MST} + {2656573200 -21600 1 MDT} + {2677132800 -25200 0 MST} + {2688627600 -21600 1 MDT} + {2709187200 -25200 0 MST} + {2720077200 -21600 1 MDT} + {2740636800 -25200 0 MST} + {2751526800 -21600 1 MDT} + {2772086400 -25200 0 MST} + {2782976400 -21600 1 MDT} + {2803536000 -25200 0 MST} + {2814426000 -21600 1 MDT} + {2834985600 -25200 0 MST} + {2846480400 -21600 1 MDT} + {2867040000 -25200 0 MST} + {2877930000 -21600 1 MDT} + {2898489600 -25200 0 MST} + {2909379600 -21600 1 MDT} + {2929939200 -25200 0 MST} + {2940829200 -21600 1 MDT} + {2961388800 -25200 0 MST} + {2972278800 -21600 1 MDT} + {2992838400 -25200 0 MST} + {3003728400 -21600 1 MDT} + {3024288000 -25200 0 MST} + {3035782800 -21600 1 MDT} + {3056342400 -25200 0 MST} + {3067232400 -21600 1 MDT} + {3087792000 -25200 0 MST} + {3098682000 -21600 1 MDT} + {3119241600 -25200 0 MST} + {3130131600 -21600 1 MDT} + {3150691200 -25200 0 MST} + {3161581200 -21600 1 MDT} + {3182140800 -25200 0 MST} + {3193030800 -21600 1 MDT} + {3213590400 -25200 0 MST} + {3225085200 -21600 1 MDT} + {3245644800 -25200 0 MST} + {3256534800 -21600 1 MDT} + {3277094400 -25200 0 MST} + {3287984400 -21600 1 MDT} + {3308544000 -25200 0 MST} + {3319434000 -21600 1 MDT} + {3339993600 -25200 0 MST} + {3350883600 -21600 1 MDT} + {3371443200 -25200 0 MST} + {3382938000 -21600 1 MDT} + {3403497600 -25200 0 MST} + {3414387600 -21600 1 MDT} + {3434947200 -25200 0 MST} + {3445837200 -21600 1 MDT} + {3466396800 -25200 0 MST} + {3477286800 -21600 1 MDT} + {3497846400 -25200 0 MST} + {3508736400 -21600 1 MDT} + {3529296000 -25200 0 MST} + {3540186000 -21600 1 MDT} + {3560745600 -25200 0 MST} + {3572240400 -21600 1 MDT} + {3592800000 -25200 0 MST} + {3603690000 -21600 1 MDT} + {3624249600 -25200 0 MST} + {3635139600 -21600 1 MDT} + {3655699200 -25200 0 MST} + {3666589200 -21600 1 MDT} + {3687148800 -25200 0 MST} + {3698038800 -21600 1 MDT} + {3718598400 -25200 0 MST} + {3730093200 -21600 1 MDT} + {3750652800 -25200 0 MST} + {3761542800 -21600 1 MDT} + {3782102400 -25200 0 MST} + {3792992400 -21600 1 MDT} + {3813552000 -25200 0 MST} + {3824442000 -21600 1 MDT} + {3845001600 -25200 0 MST} + {3855891600 -21600 1 MDT} + {3876451200 -25200 0 MST} + {3887341200 -21600 1 MDT} + {3907900800 -25200 0 MST} + {3919395600 -21600 1 MDT} + {3939955200 -25200 0 MST} + {3950845200 -21600 1 MDT} + {3971404800 -25200 0 MST} + {3982294800 -21600 1 MDT} + {4002854400 -25200 0 MST} + {4013744400 -21600 1 MDT} + {4034304000 -25200 0 MST} + {4045194000 -21600 1 MDT} + {4065753600 -25200 0 MST} + {4076643600 -21600 1 MDT} + {4097203200 -25200 0 MST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte b/mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte new file mode 100644 index 00000000..8f6f459e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Tijuana)]} { + LoadTimeZoneFile America/Tijuana +} +set TZData(:Mexico/BajaNorte) $TZData(:America/Tijuana) diff --git a/mingw/lib/tcl8.5/tzdata/Mexico/BajaSur b/mingw/lib/tcl8.5/tzdata/Mexico/BajaSur new file mode 100644 index 00000000..6d335a12 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Mexico/BajaSur @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Mazatlan)]} { + LoadTimeZoneFile America/Mazatlan +} +set TZData(:Mexico/BajaSur) $TZData(:America/Mazatlan) diff --git a/mingw/lib/tcl8.5/tzdata/Mexico/General b/mingw/lib/tcl8.5/tzdata/Mexico/General new file mode 100644 index 00000000..0cac92f8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Mexico/General @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Mexico_City)]} { + LoadTimeZoneFile America/Mexico_City +} +set TZData(:Mexico/General) $TZData(:America/Mexico_City) diff --git a/mingw/lib/tcl8.5/tzdata/NZ b/mingw/lib/tcl8.5/tzdata/NZ new file mode 100644 index 00000000..36d22a7b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/NZ @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Auckland)]} { + LoadTimeZoneFile Pacific/Auckland +} +set TZData(:NZ) $TZData(:Pacific/Auckland) diff --git a/mingw/lib/tcl8.5/tzdata/NZ-CHAT b/mingw/lib/tcl8.5/tzdata/NZ-CHAT new file mode 100644 index 00000000..7f7c9180 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/NZ-CHAT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Chatham)]} { + LoadTimeZoneFile Pacific/Chatham +} +set TZData(:NZ-CHAT) $TZData(:Pacific/Chatham) diff --git a/mingw/lib/tcl8.5/tzdata/Navajo b/mingw/lib/tcl8.5/tzdata/Navajo new file mode 100644 index 00000000..78cc2e24 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Navajo @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Denver)]} { + LoadTimeZoneFile America/Denver +} +set TZData(:Navajo) $TZData(:America/Denver) diff --git a/mingw/lib/tcl8.5/tzdata/PRC b/mingw/lib/tcl8.5/tzdata/PRC new file mode 100644 index 00000000..1d8bb7cc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/PRC @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Shanghai)]} { + LoadTimeZoneFile Asia/Shanghai +} +set TZData(:PRC) $TZData(:Asia/Shanghai) diff --git a/mingw/lib/tcl8.5/tzdata/PST8PDT b/mingw/lib/tcl8.5/tzdata/PST8PDT new file mode 100644 index 00000000..87a94daa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/PST8PDT @@ -0,0 +1,278 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:PST8PDT) { + {-9223372036854775808 -28800 0 PST} + {-1633269600 -25200 1 PDT} + {-1615129200 -28800 0 PST} + {-1601820000 -25200 1 PDT} + {-1583679600 -28800 0 PST} + {-880207200 -25200 1 PWT} + {-769395600 -25200 1 PPT} + {-765385200 -28800 0 PST} + {-84376800 -25200 1 PDT} + {-68655600 -28800 0 PST} + {-52927200 -25200 1 PDT} + {-37206000 -28800 0 PST} + {-21477600 -25200 1 PDT} + {-5756400 -28800 0 PST} + {9972000 -25200 1 PDT} + {25693200 -28800 0 PST} + {41421600 -25200 1 PDT} + {57747600 -28800 0 PST} + {73476000 -25200 1 PDT} + {89197200 -28800 0 PST} + {104925600 -25200 1 PDT} + {120646800 -28800 0 PST} + {126698400 -25200 1 PDT} + {152096400 -28800 0 PST} + {162381600 -25200 1 PDT} + {183546000 -28800 0 PST} + {199274400 -25200 1 PDT} + {215600400 -28800 0 PST} + {230724000 -25200 1 PDT} + {247050000 -28800 0 PST} + {262778400 -25200 1 PDT} + {278499600 -28800 0 PST} + {294228000 -25200 1 PDT} + {309949200 -28800 0 PST} + {325677600 -25200 1 PDT} + {341398800 -28800 0 PST} + {357127200 -25200 1 PDT} + {372848400 -28800 0 PST} + {388576800 -25200 1 PDT} + {404902800 -28800 0 PST} + {420026400 -25200 1 PDT} + {436352400 -28800 0 PST} + {452080800 -25200 1 PDT} + {467802000 -28800 0 PST} + {483530400 -25200 1 PDT} + {499251600 -28800 0 PST} + {514980000 -25200 1 PDT} + {530701200 -28800 0 PST} + {544615200 -25200 1 PDT} + {562150800 -28800 0 PST} + {576064800 -25200 1 PDT} + {594205200 -28800 0 PST} + {607514400 -25200 1 PDT} + {625654800 -28800 0 PST} + {638964000 -25200 1 PDT} + {657104400 -28800 0 PST} + {671018400 -25200 1 PDT} + {688554000 -28800 0 PST} + {702468000 -25200 1 PDT} + {720003600 -28800 0 PST} + {733917600 -25200 1 PDT} + {752058000 -28800 0 PST} + {765367200 -25200 1 PDT} + {783507600 -28800 0 PST} + {796816800 -25200 1 PDT} + {814957200 -28800 0 PST} + {828871200 -25200 1 PDT} + {846406800 -28800 0 PST} + {860320800 -25200 1 PDT} + {877856400 -28800 0 PST} + {891770400 -25200 1 PDT} + {909306000 -28800 0 PST} + {923220000 -25200 1 PDT} + {941360400 -28800 0 PST} + {954669600 -25200 1 PDT} + {972810000 -28800 0 PST} + {986119200 -25200 1 PDT} + {1004259600 -28800 0 PST} + {1018173600 -25200 1 PDT} + {1035709200 -28800 0 PST} + {1049623200 -25200 1 PDT} + {1067158800 -28800 0 PST} + {1081072800 -25200 1 PDT} + {1099213200 -28800 0 PST} + {1112522400 -25200 1 PDT} + {1130662800 -28800 0 PST} + {1143972000 -25200 1 PDT} + {1162112400 -28800 0 PST} + {1173607200 -25200 1 PDT} + {1194166800 -28800 0 PST} + {1205056800 -25200 1 PDT} + {1225616400 -28800 0 PST} + {1236506400 -25200 1 PDT} + {1257066000 -28800 0 PST} + {1268560800 -25200 1 PDT} + {1289120400 -28800 0 PST} + {1300010400 -25200 1 PDT} + {1320570000 -28800 0 PST} + {1331460000 -25200 1 PDT} + {1352019600 -28800 0 PST} + {1362909600 -25200 1 PDT} + {1383469200 -28800 0 PST} + {1394359200 -25200 1 PDT} + {1414918800 -28800 0 PST} + {1425808800 -25200 1 PDT} + {1446368400 -28800 0 PST} + {1457863200 -25200 1 PDT} + {1478422800 -28800 0 PST} + {1489312800 -25200 1 PDT} + {1509872400 -28800 0 PST} + {1520762400 -25200 1 PDT} + {1541322000 -28800 0 PST} + {1552212000 -25200 1 PDT} + {1572771600 -28800 0 PST} + {1583661600 -25200 1 PDT} + {1604221200 -28800 0 PST} + {1615716000 -25200 1 PDT} + {1636275600 -28800 0 PST} + {1647165600 -25200 1 PDT} + {1667725200 -28800 0 PST} + {1678615200 -25200 1 PDT} + {1699174800 -28800 0 PST} + {1710064800 -25200 1 PDT} + {1730624400 -28800 0 PST} + {1741514400 -25200 1 PDT} + {1762074000 -28800 0 PST} + {1772964000 -25200 1 PDT} + {1793523600 -28800 0 PST} + {1805018400 -25200 1 PDT} + {1825578000 -28800 0 PST} + {1836468000 -25200 1 PDT} + {1857027600 -28800 0 PST} + {1867917600 -25200 1 PDT} + {1888477200 -28800 0 PST} + {1899367200 -25200 1 PDT} + {1919926800 -28800 0 PST} + {1930816800 -25200 1 PDT} + {1951376400 -28800 0 PST} + {1962871200 -25200 1 PDT} + {1983430800 -28800 0 PST} + {1994320800 -25200 1 PDT} + {2014880400 -28800 0 PST} + {2025770400 -25200 1 PDT} + {2046330000 -28800 0 PST} + {2057220000 -25200 1 PDT} + {2077779600 -28800 0 PST} + {2088669600 -25200 1 PDT} + {2109229200 -28800 0 PST} + {2120119200 -25200 1 PDT} + {2140678800 -28800 0 PST} + {2152173600 -25200 1 PDT} + {2172733200 -28800 0 PST} + {2183623200 -25200 1 PDT} + {2204182800 -28800 0 PST} + {2215072800 -25200 1 PDT} + {2235632400 -28800 0 PST} + {2246522400 -25200 1 PDT} + {2267082000 -28800 0 PST} + {2277972000 -25200 1 PDT} + {2298531600 -28800 0 PST} + {2309421600 -25200 1 PDT} + {2329981200 -28800 0 PST} + {2341476000 -25200 1 PDT} + {2362035600 -28800 0 PST} + {2372925600 -25200 1 PDT} + {2393485200 -28800 0 PST} + {2404375200 -25200 1 PDT} + {2424934800 -28800 0 PST} + {2435824800 -25200 1 PDT} + {2456384400 -28800 0 PST} + {2467274400 -25200 1 PDT} + {2487834000 -28800 0 PST} + {2499328800 -25200 1 PDT} + {2519888400 -28800 0 PST} + {2530778400 -25200 1 PDT} + {2551338000 -28800 0 PST} + {2562228000 -25200 1 PDT} + {2582787600 -28800 0 PST} + {2593677600 -25200 1 PDT} + {2614237200 -28800 0 PST} + {2625127200 -25200 1 PDT} + {2645686800 -28800 0 PST} + {2656576800 -25200 1 PDT} + {2677136400 -28800 0 PST} + {2688631200 -25200 1 PDT} + {2709190800 -28800 0 PST} + {2720080800 -25200 1 PDT} + {2740640400 -28800 0 PST} + {2751530400 -25200 1 PDT} + {2772090000 -28800 0 PST} + {2782980000 -25200 1 PDT} + {2803539600 -28800 0 PST} + {2814429600 -25200 1 PDT} + {2834989200 -28800 0 PST} + {2846484000 -25200 1 PDT} + {2867043600 -28800 0 PST} + {2877933600 -25200 1 PDT} + {2898493200 -28800 0 PST} + {2909383200 -25200 1 PDT} + {2929942800 -28800 0 PST} + {2940832800 -25200 1 PDT} + {2961392400 -28800 0 PST} + {2972282400 -25200 1 PDT} + {2992842000 -28800 0 PST} + {3003732000 -25200 1 PDT} + {3024291600 -28800 0 PST} + {3035786400 -25200 1 PDT} + {3056346000 -28800 0 PST} + {3067236000 -25200 1 PDT} + {3087795600 -28800 0 PST} + {3098685600 -25200 1 PDT} + {3119245200 -28800 0 PST} + {3130135200 -25200 1 PDT} + {3150694800 -28800 0 PST} + {3161584800 -25200 1 PDT} + {3182144400 -28800 0 PST} + {3193034400 -25200 1 PDT} + {3213594000 -28800 0 PST} + {3225088800 -25200 1 PDT} + {3245648400 -28800 0 PST} + {3256538400 -25200 1 PDT} + {3277098000 -28800 0 PST} + {3287988000 -25200 1 PDT} + {3308547600 -28800 0 PST} + {3319437600 -25200 1 PDT} + {3339997200 -28800 0 PST} + {3350887200 -25200 1 PDT} + {3371446800 -28800 0 PST} + {3382941600 -25200 1 PDT} + {3403501200 -28800 0 PST} + {3414391200 -25200 1 PDT} + {3434950800 -28800 0 PST} + {3445840800 -25200 1 PDT} + {3466400400 -28800 0 PST} + {3477290400 -25200 1 PDT} + {3497850000 -28800 0 PST} + {3508740000 -25200 1 PDT} + {3529299600 -28800 0 PST} + {3540189600 -25200 1 PDT} + {3560749200 -28800 0 PST} + {3572244000 -25200 1 PDT} + {3592803600 -28800 0 PST} + {3603693600 -25200 1 PDT} + {3624253200 -28800 0 PST} + {3635143200 -25200 1 PDT} + {3655702800 -28800 0 PST} + {3666592800 -25200 1 PDT} + {3687152400 -28800 0 PST} + {3698042400 -25200 1 PDT} + {3718602000 -28800 0 PST} + {3730096800 -25200 1 PDT} + {3750656400 -28800 0 PST} + {3761546400 -25200 1 PDT} + {3782106000 -28800 0 PST} + {3792996000 -25200 1 PDT} + {3813555600 -28800 0 PST} + {3824445600 -25200 1 PDT} + {3845005200 -28800 0 PST} + {3855895200 -25200 1 PDT} + {3876454800 -28800 0 PST} + {3887344800 -25200 1 PDT} + {3907904400 -28800 0 PST} + {3919399200 -25200 1 PDT} + {3939958800 -28800 0 PST} + {3950848800 -25200 1 PDT} + {3971408400 -28800 0 PST} + {3982298400 -25200 1 PDT} + {4002858000 -28800 0 PST} + {4013748000 -25200 1 PDT} + {4034307600 -28800 0 PST} + {4045197600 -25200 1 PDT} + {4065757200 -28800 0 PST} + {4076647200 -25200 1 PDT} + {4097206800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Apia b/mingw/lib/tcl8.5/tzdata/Pacific/Apia new file mode 100644 index 00000000..5d34ed19 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Apia @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Apia) { + {-9223372036854775808 45184 0 LMT} + {-2855737984 -41216 0 LMT} + {-1861878784 -41400 0 SAMT} + {-631110600 -39600 0 WST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Auckland b/mingw/lib/tcl8.5/tzdata/Pacific/Auckland new file mode 100644 index 00000000..5f7e2385 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Auckland @@ -0,0 +1,285 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Auckland) { + {-9223372036854775808 41944 0 LMT} + {-3192435544 41400 0 NZMT} + {-1330335000 45000 1 NZST} + {-1320057000 41400 0 NZMT} + {-1300699800 43200 1 NZST} + {-1287396000 41400 0 NZMT} + {-1269250200 43200 1 NZST} + {-1255946400 41400 0 NZMT} + {-1237800600 43200 1 NZST} + {-1224496800 41400 0 NZMT} + {-1206351000 43200 1 NZST} + {-1192442400 41400 0 NZMT} + {-1174901400 43200 1 NZST} + {-1160992800 41400 0 NZMT} + {-1143451800 43200 1 NZST} + {-1125914400 41400 0 NZMT} + {-1112607000 43200 1 NZST} + {-1094464800 41400 0 NZMT} + {-1081157400 43200 1 NZST} + {-1063015200 41400 0 NZMT} + {-1049707800 43200 1 NZST} + {-1031565600 41400 0 NZMT} + {-1018258200 43200 1 NZST} + {-1000116000 41400 0 NZMT} + {-986808600 43200 1 NZST} + {-968061600 41400 0 NZMT} + {-955359000 43200 1 NZST} + {-936612000 41400 0 NZMT} + {-923304600 43200 1 NZST} + {-757425600 43200 0 NZST} + {152632800 46800 1 NZDT} + {162309600 43200 0 NZST} + {183477600 46800 1 NZDT} + {194968800 43200 0 NZST} + {215532000 46800 1 NZDT} + {226418400 43200 0 NZST} + {246981600 46800 1 NZDT} + {257868000 43200 0 NZST} + {278431200 46800 1 NZDT} + {289317600 43200 0 NZST} + {309880800 46800 1 NZDT} + {320767200 43200 0 NZST} + {341330400 46800 1 NZDT} + {352216800 43200 0 NZST} + {372780000 46800 1 NZDT} + {384271200 43200 0 NZST} + {404834400 46800 1 NZDT} + {415720800 43200 0 NZST} + {436284000 46800 1 NZDT} + {447170400 43200 0 NZST} + {467733600 46800 1 NZDT} + {478620000 43200 0 NZST} + {499183200 46800 1 NZDT} + {510069600 43200 0 NZST} + {530632800 46800 1 NZDT} + {541519200 43200 0 NZST} + {562082400 46800 1 NZDT} + {573573600 43200 0 NZST} + {594136800 46800 1 NZDT} + {605023200 43200 0 NZST} + {623772000 46800 1 NZDT} + {637682400 43200 0 NZST} + {655221600 46800 1 NZDT} + {669132000 43200 0 NZST} + {686671200 46800 1 NZDT} + {700581600 43200 0 NZST} + {718120800 46800 1 NZDT} + {732636000 43200 0 NZST} + {749570400 46800 1 NZDT} + {764085600 43200 0 NZST} + {781020000 46800 1 NZDT} + {795535200 43200 0 NZST} + {812469600 46800 1 NZDT} + {826984800 43200 0 NZST} + {844524000 46800 1 NZDT} + {858434400 43200 0 NZST} + {875973600 46800 1 NZDT} + {889884000 43200 0 NZST} + {907423200 46800 1 NZDT} + {921938400 43200 0 NZST} + {938872800 46800 1 NZDT} + {953388000 43200 0 NZST} + {970322400 46800 1 NZDT} + {984837600 43200 0 NZST} + {1002376800 46800 1 NZDT} + {1016287200 43200 0 NZST} + {1033826400 46800 1 NZDT} + {1047736800 43200 0 NZST} + {1065276000 46800 1 NZDT} + {1079791200 43200 0 NZST} + {1096725600 46800 1 NZDT} + {1111240800 43200 0 NZST} + {1128175200 46800 1 NZDT} + {1142690400 43200 0 NZST} + {1159624800 46800 1 NZDT} + {1174140000 43200 0 NZST} + {1191074400 46800 1 NZDT} + {1207404000 43200 0 NZST} + {1222524000 46800 1 NZDT} + {1238853600 43200 0 NZST} + {1253973600 46800 1 NZDT} + {1270303200 43200 0 NZST} + {1285423200 46800 1 NZDT} + {1301752800 43200 0 NZST} + {1316872800 46800 1 NZDT} + {1333202400 43200 0 NZST} + {1348927200 46800 1 NZDT} + {1365256800 43200 0 NZST} + {1380376800 46800 1 NZDT} + {1396706400 43200 0 NZST} + {1411826400 46800 1 NZDT} + {1428156000 43200 0 NZST} + {1443276000 46800 1 NZDT} + {1459605600 43200 0 NZST} + {1474725600 46800 1 NZDT} + {1491055200 43200 0 NZST} + {1506175200 46800 1 NZDT} + {1522504800 43200 0 NZST} + {1538229600 46800 1 NZDT} + {1554559200 43200 0 NZST} + {1569679200 46800 1 NZDT} + {1586008800 43200 0 NZST} + {1601128800 46800 1 NZDT} + {1617458400 43200 0 NZST} + {1632578400 46800 1 NZDT} + {1648908000 43200 0 NZST} + {1664028000 46800 1 NZDT} + {1680357600 43200 0 NZST} + {1695477600 46800 1 NZDT} + {1712412000 43200 0 NZST} + {1727532000 46800 1 NZDT} + {1743861600 43200 0 NZST} + {1758981600 46800 1 NZDT} + {1775311200 43200 0 NZST} + {1790431200 46800 1 NZDT} + {1806760800 43200 0 NZST} + {1821880800 46800 1 NZDT} + {1838210400 43200 0 NZST} + {1853330400 46800 1 NZDT} + {1869660000 43200 0 NZST} + {1885384800 46800 1 NZDT} + {1901714400 43200 0 NZST} + {1916834400 46800 1 NZDT} + {1933164000 43200 0 NZST} + {1948284000 46800 1 NZDT} + {1964613600 43200 0 NZST} + {1979733600 46800 1 NZDT} + {1996063200 43200 0 NZST} + {2011183200 46800 1 NZDT} + {2027512800 43200 0 NZST} + {2042632800 46800 1 NZDT} + {2058962400 43200 0 NZST} + {2074687200 46800 1 NZDT} + {2091016800 43200 0 NZST} + {2106136800 46800 1 NZDT} + {2122466400 43200 0 NZST} + {2137586400 46800 1 NZDT} + {2153916000 43200 0 NZST} + {2169036000 46800 1 NZDT} + {2185365600 43200 0 NZST} + {2200485600 46800 1 NZDT} + {2216815200 43200 0 NZST} + {2232540000 46800 1 NZDT} + {2248869600 43200 0 NZST} + {2263989600 46800 1 NZDT} + {2280319200 43200 0 NZST} + {2295439200 46800 1 NZDT} + {2311768800 43200 0 NZST} + {2326888800 46800 1 NZDT} + {2343218400 43200 0 NZST} + {2358338400 46800 1 NZDT} + {2374668000 43200 0 NZST} + {2389788000 46800 1 NZDT} + {2406117600 43200 0 NZST} + {2421842400 46800 1 NZDT} + {2438172000 43200 0 NZST} + {2453292000 46800 1 NZDT} + {2469621600 43200 0 NZST} + {2484741600 46800 1 NZDT} + {2501071200 43200 0 NZST} + {2516191200 46800 1 NZDT} + {2532520800 43200 0 NZST} + {2547640800 46800 1 NZDT} + {2563970400 43200 0 NZST} + {2579090400 46800 1 NZDT} + {2596024800 43200 0 NZST} + {2611144800 46800 1 NZDT} + {2627474400 43200 0 NZST} + {2642594400 46800 1 NZDT} + {2658924000 43200 0 NZST} + {2674044000 46800 1 NZDT} + {2690373600 43200 0 NZST} + {2705493600 46800 1 NZDT} + {2721823200 43200 0 NZST} + {2736943200 46800 1 NZDT} + {2753272800 43200 0 NZST} + {2768997600 46800 1 NZDT} + {2785327200 43200 0 NZST} + {2800447200 46800 1 NZDT} + {2816776800 43200 0 NZST} + {2831896800 46800 1 NZDT} + {2848226400 43200 0 NZST} + {2863346400 46800 1 NZDT} + {2879676000 43200 0 NZST} + {2894796000 46800 1 NZDT} + {2911125600 43200 0 NZST} + {2926245600 46800 1 NZDT} + {2942575200 43200 0 NZST} + {2958300000 46800 1 NZDT} + {2974629600 43200 0 NZST} + {2989749600 46800 1 NZDT} + {3006079200 43200 0 NZST} + {3021199200 46800 1 NZDT} + {3037528800 43200 0 NZST} + {3052648800 46800 1 NZDT} + {3068978400 43200 0 NZST} + {3084098400 46800 1 NZDT} + {3100428000 43200 0 NZST} + {3116152800 46800 1 NZDT} + {3132482400 43200 0 NZST} + {3147602400 46800 1 NZDT} + {3163932000 43200 0 NZST} + {3179052000 46800 1 NZDT} + {3195381600 43200 0 NZST} + {3210501600 46800 1 NZDT} + {3226831200 43200 0 NZST} + {3241951200 46800 1 NZDT} + {3258280800 43200 0 NZST} + {3273400800 46800 1 NZDT} + {3289730400 43200 0 NZST} + {3305455200 46800 1 NZDT} + {3321784800 43200 0 NZST} + {3336904800 46800 1 NZDT} + {3353234400 43200 0 NZST} + {3368354400 46800 1 NZDT} + {3384684000 43200 0 NZST} + {3399804000 46800 1 NZDT} + {3416133600 43200 0 NZST} + {3431253600 46800 1 NZDT} + {3447583200 43200 0 NZST} + {3462703200 46800 1 NZDT} + {3479637600 43200 0 NZST} + {3494757600 46800 1 NZDT} + {3511087200 43200 0 NZST} + {3526207200 46800 1 NZDT} + {3542536800 43200 0 NZST} + {3557656800 46800 1 NZDT} + {3573986400 43200 0 NZST} + {3589106400 46800 1 NZDT} + {3605436000 43200 0 NZST} + {3620556000 46800 1 NZDT} + {3636885600 43200 0 NZST} + {3652610400 46800 1 NZDT} + {3668940000 43200 0 NZST} + {3684060000 46800 1 NZDT} + {3700389600 43200 0 NZST} + {3715509600 46800 1 NZDT} + {3731839200 43200 0 NZST} + {3746959200 46800 1 NZDT} + {3763288800 43200 0 NZST} + {3778408800 46800 1 NZDT} + {3794738400 43200 0 NZST} + {3809858400 46800 1 NZDT} + {3826188000 43200 0 NZST} + {3841912800 46800 1 NZDT} + {3858242400 43200 0 NZST} + {3873362400 46800 1 NZDT} + {3889692000 43200 0 NZST} + {3904812000 46800 1 NZDT} + {3921141600 43200 0 NZST} + {3936261600 46800 1 NZDT} + {3952591200 43200 0 NZST} + {3967711200 46800 1 NZDT} + {3984040800 43200 0 NZST} + {3999765600 46800 1 NZDT} + {4016095200 43200 0 NZST} + {4031215200 46800 1 NZDT} + {4047544800 43200 0 NZST} + {4062664800 46800 1 NZDT} + {4078994400 43200 0 NZST} + {4094114400 46800 1 NZDT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Chatham b/mingw/lib/tcl8.5/tzdata/Pacific/Chatham new file mode 100644 index 00000000..0ed22604 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Chatham @@ -0,0 +1,257 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Chatham) { + {-9223372036854775808 44028 0 LMT} + {-410271228 45900 0 CHAST} + {152632800 49500 1 CHADT} + {162309600 45900 0 CHAST} + {183477600 49500 1 CHADT} + {194968800 45900 0 CHAST} + {215532000 49500 1 CHADT} + {226418400 45900 0 CHAST} + {246981600 49500 1 CHADT} + {257868000 45900 0 CHAST} + {278431200 49500 1 CHADT} + {289317600 45900 0 CHAST} + {309880800 49500 1 CHADT} + {320767200 45900 0 CHAST} + {341330400 49500 1 CHADT} + {352216800 45900 0 CHAST} + {372780000 49500 1 CHADT} + {384271200 45900 0 CHAST} + {404834400 49500 1 CHADT} + {415720800 45900 0 CHAST} + {436284000 49500 1 CHADT} + {447170400 45900 0 CHAST} + {467733600 49500 1 CHADT} + {478620000 45900 0 CHAST} + {499183200 49500 1 CHADT} + {510069600 45900 0 CHAST} + {530632800 49500 1 CHADT} + {541519200 45900 0 CHAST} + {562082400 49500 1 CHADT} + {573573600 45900 0 CHAST} + {594136800 49500 1 CHADT} + {605023200 45900 0 CHAST} + {623772000 49500 1 CHADT} + {637682400 45900 0 CHAST} + {655221600 49500 1 CHADT} + {669132000 45900 0 CHAST} + {686671200 49500 1 CHADT} + {700581600 45900 0 CHAST} + {718120800 49500 1 CHADT} + {732636000 45900 0 CHAST} + {749570400 49500 1 CHADT} + {764085600 45900 0 CHAST} + {781020000 49500 1 CHADT} + {795535200 45900 0 CHAST} + {812469600 49500 1 CHADT} + {826984800 45900 0 CHAST} + {844524000 49500 1 CHADT} + {858434400 45900 0 CHAST} + {875973600 49500 1 CHADT} + {889884000 45900 0 CHAST} + {907423200 49500 1 CHADT} + {921938400 45900 0 CHAST} + {938872800 49500 1 CHADT} + {953388000 45900 0 CHAST} + {970322400 49500 1 CHADT} + {984837600 45900 0 CHAST} + {1002376800 49500 1 CHADT} + {1016287200 45900 0 CHAST} + {1033826400 49500 1 CHADT} + {1047736800 45900 0 CHAST} + {1065276000 49500 1 CHADT} + {1079791200 45900 0 CHAST} + {1096725600 49500 1 CHADT} + {1111240800 45900 0 CHAST} + {1128175200 49500 1 CHADT} + {1142690400 45900 0 CHAST} + {1159624800 49500 1 CHADT} + {1174140000 45900 0 CHAST} + {1191074400 49500 1 CHADT} + {1207404000 45900 0 CHAST} + {1222524000 49500 1 CHADT} + {1238853600 45900 0 CHAST} + {1253973600 49500 1 CHADT} + {1270303200 45900 0 CHAST} + {1285423200 49500 1 CHADT} + {1301752800 45900 0 CHAST} + {1316872800 49500 1 CHADT} + {1333202400 45900 0 CHAST} + {1348927200 49500 1 CHADT} + {1365256800 45900 0 CHAST} + {1380376800 49500 1 CHADT} + {1396706400 45900 0 CHAST} + {1411826400 49500 1 CHADT} + {1428156000 45900 0 CHAST} + {1443276000 49500 1 CHADT} + {1459605600 45900 0 CHAST} + {1474725600 49500 1 CHADT} + {1491055200 45900 0 CHAST} + {1506175200 49500 1 CHADT} + {1522504800 45900 0 CHAST} + {1538229600 49500 1 CHADT} + {1554559200 45900 0 CHAST} + {1569679200 49500 1 CHADT} + {1586008800 45900 0 CHAST} + {1601128800 49500 1 CHADT} + {1617458400 45900 0 CHAST} + {1632578400 49500 1 CHADT} + {1648908000 45900 0 CHAST} + {1664028000 49500 1 CHADT} + {1680357600 45900 0 CHAST} + {1695477600 49500 1 CHADT} + {1712412000 45900 0 CHAST} + {1727532000 49500 1 CHADT} + {1743861600 45900 0 CHAST} + {1758981600 49500 1 CHADT} + {1775311200 45900 0 CHAST} + {1790431200 49500 1 CHADT} + {1806760800 45900 0 CHAST} + {1821880800 49500 1 CHADT} + {1838210400 45900 0 CHAST} + {1853330400 49500 1 CHADT} + {1869660000 45900 0 CHAST} + {1885384800 49500 1 CHADT} + {1901714400 45900 0 CHAST} + {1916834400 49500 1 CHADT} + {1933164000 45900 0 CHAST} + {1948284000 49500 1 CHADT} + {1964613600 45900 0 CHAST} + {1979733600 49500 1 CHADT} + {1996063200 45900 0 CHAST} + {2011183200 49500 1 CHADT} + {2027512800 45900 0 CHAST} + {2042632800 49500 1 CHADT} + {2058962400 45900 0 CHAST} + {2074687200 49500 1 CHADT} + {2091016800 45900 0 CHAST} + {2106136800 49500 1 CHADT} + {2122466400 45900 0 CHAST} + {2137586400 49500 1 CHADT} + {2153916000 45900 0 CHAST} + {2169036000 49500 1 CHADT} + {2185365600 45900 0 CHAST} + {2200485600 49500 1 CHADT} + {2216815200 45900 0 CHAST} + {2232540000 49500 1 CHADT} + {2248869600 45900 0 CHAST} + {2263989600 49500 1 CHADT} + {2280319200 45900 0 CHAST} + {2295439200 49500 1 CHADT} + {2311768800 45900 0 CHAST} + {2326888800 49500 1 CHADT} + {2343218400 45900 0 CHAST} + {2358338400 49500 1 CHADT} + {2374668000 45900 0 CHAST} + {2389788000 49500 1 CHADT} + {2406117600 45900 0 CHAST} + {2421842400 49500 1 CHADT} + {2438172000 45900 0 CHAST} + {2453292000 49500 1 CHADT} + {2469621600 45900 0 CHAST} + {2484741600 49500 1 CHADT} + {2501071200 45900 0 CHAST} + {2516191200 49500 1 CHADT} + {2532520800 45900 0 CHAST} + {2547640800 49500 1 CHADT} + {2563970400 45900 0 CHAST} + {2579090400 49500 1 CHADT} + {2596024800 45900 0 CHAST} + {2611144800 49500 1 CHADT} + {2627474400 45900 0 CHAST} + {2642594400 49500 1 CHADT} + {2658924000 45900 0 CHAST} + {2674044000 49500 1 CHADT} + {2690373600 45900 0 CHAST} + {2705493600 49500 1 CHADT} + {2721823200 45900 0 CHAST} + {2736943200 49500 1 CHADT} + {2753272800 45900 0 CHAST} + {2768997600 49500 1 CHADT} + {2785327200 45900 0 CHAST} + {2800447200 49500 1 CHADT} + {2816776800 45900 0 CHAST} + {2831896800 49500 1 CHADT} + {2848226400 45900 0 CHAST} + {2863346400 49500 1 CHADT} + {2879676000 45900 0 CHAST} + {2894796000 49500 1 CHADT} + {2911125600 45900 0 CHAST} + {2926245600 49500 1 CHADT} + {2942575200 45900 0 CHAST} + {2958300000 49500 1 CHADT} + {2974629600 45900 0 CHAST} + {2989749600 49500 1 CHADT} + {3006079200 45900 0 CHAST} + {3021199200 49500 1 CHADT} + {3037528800 45900 0 CHAST} + {3052648800 49500 1 CHADT} + {3068978400 45900 0 CHAST} + {3084098400 49500 1 CHADT} + {3100428000 45900 0 CHAST} + {3116152800 49500 1 CHADT} + {3132482400 45900 0 CHAST} + {3147602400 49500 1 CHADT} + {3163932000 45900 0 CHAST} + {3179052000 49500 1 CHADT} + {3195381600 45900 0 CHAST} + {3210501600 49500 1 CHADT} + {3226831200 45900 0 CHAST} + {3241951200 49500 1 CHADT} + {3258280800 45900 0 CHAST} + {3273400800 49500 1 CHADT} + {3289730400 45900 0 CHAST} + {3305455200 49500 1 CHADT} + {3321784800 45900 0 CHAST} + {3336904800 49500 1 CHADT} + {3353234400 45900 0 CHAST} + {3368354400 49500 1 CHADT} + {3384684000 45900 0 CHAST} + {3399804000 49500 1 CHADT} + {3416133600 45900 0 CHAST} + {3431253600 49500 1 CHADT} + {3447583200 45900 0 CHAST} + {3462703200 49500 1 CHADT} + {3479637600 45900 0 CHAST} + {3494757600 49500 1 CHADT} + {3511087200 45900 0 CHAST} + {3526207200 49500 1 CHADT} + {3542536800 45900 0 CHAST} + {3557656800 49500 1 CHADT} + {3573986400 45900 0 CHAST} + {3589106400 49500 1 CHADT} + {3605436000 45900 0 CHAST} + {3620556000 49500 1 CHADT} + {3636885600 45900 0 CHAST} + {3652610400 49500 1 CHADT} + {3668940000 45900 0 CHAST} + {3684060000 49500 1 CHADT} + {3700389600 45900 0 CHAST} + {3715509600 49500 1 CHADT} + {3731839200 45900 0 CHAST} + {3746959200 49500 1 CHADT} + {3763288800 45900 0 CHAST} + {3778408800 49500 1 CHADT} + {3794738400 45900 0 CHAST} + {3809858400 49500 1 CHADT} + {3826188000 45900 0 CHAST} + {3841912800 49500 1 CHADT} + {3858242400 45900 0 CHAST} + {3873362400 49500 1 CHADT} + {3889692000 45900 0 CHAST} + {3904812000 49500 1 CHADT} + {3921141600 45900 0 CHAST} + {3936261600 49500 1 CHADT} + {3952591200 45900 0 CHAST} + {3967711200 49500 1 CHADT} + {3984040800 45900 0 CHAST} + {3999765600 49500 1 CHADT} + {4016095200 45900 0 CHAST} + {4031215200 49500 1 CHADT} + {4047544800 45900 0 CHAST} + {4062664800 49500 1 CHADT} + {4078994400 45900 0 CHAST} + {4094114400 49500 1 CHADT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Easter b/mingw/lib/tcl8.5/tzdata/Pacific/Easter new file mode 100644 index 00000000..073fd4bd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Easter @@ -0,0 +1,275 @@ +# 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} + {-36619200 -21600 1 EASST} + {-23922000 -25200 0 EAST} + {-3355200 -21600 1 EASST} + {7527600 -25200 0 EAST} + {24465600 -21600 1 EASST} + {37767600 -25200 0 EAST} + {55915200 -21600 1 EASST} + {69217200 -25200 0 EAST} + {87969600 -21600 1 EASST} + {100666800 -25200 0 EAST} + {118209600 -21600 1 EASST} + {132116400 -25200 0 EAST} + {150868800 -21600 1 EASST} + {163566000 -25200 0 EAST} + {182318400 -21600 1 EASST} + {195620400 -25200 0 EAST} + {213768000 -21600 1 EASST} + {227070000 -25200 0 EAST} + {245217600 -21600 1 EASST} + {258519600 -25200 0 EAST} + {277272000 -21600 1 EASST} + {289969200 -25200 0 EAST} + {308721600 -21600 1 EASST} + {321418800 -25200 0 EAST} + {340171200 -21600 1 EASST} + {353473200 -25200 0 EAST} + {371620800 -21600 1 EASST} + {384922800 -21600 0 EAST} + {403070400 -18000 1 EASST} + {416372400 -21600 0 EAST} + {434520000 -18000 1 EASST} + {447822000 -21600 0 EAST} + {466574400 -18000 1 EASST} + {479271600 -21600 0 EAST} + {498024000 -18000 1 EASST} + {510721200 -21600 0 EAST} + {529473600 -18000 1 EASST} + {545194800 -21600 0 EAST} + {560923200 -18000 1 EASST} + {574225200 -21600 0 EAST} + {591768000 -18000 1 EASST} + {605674800 -21600 0 EAST} + {624427200 -18000 1 EASST} + {637729200 -21600 0 EAST} + {653457600 -18000 1 EASST} + {668574000 -21600 0 EAST} + {687326400 -18000 1 EASST} + {700628400 -21600 0 EAST} + {718776000 -18000 1 EASST} + {732078000 -21600 0 EAST} + {750225600 -18000 1 EASST} + {763527600 -21600 0 EAST} + {781675200 -18000 1 EASST} + {794977200 -21600 0 EAST} + {813729600 -18000 1 EASST} + {826426800 -21600 0 EAST} + {845179200 -18000 1 EASST} + {859690800 -21600 0 EAST} + {876628800 -18000 1 EASST} + {889930800 -21600 0 EAST} + {906868800 -18000 1 EASST} + {923194800 -21600 0 EAST} + {939528000 -18000 1 EASST} + {952830000 -21600 0 EAST} + {971582400 -18000 1 EASST} + {984279600 -21600 0 EAST} + {1003032000 -18000 1 EASST} + {1015729200 -21600 0 EAST} + {1034481600 -18000 1 EASST} + {1047178800 -21600 0 EAST} + {1065931200 -18000 1 EASST} + {1079233200 -21600 0 EAST} + {1097380800 -18000 1 EASST} + {1110682800 -21600 0 EAST} + {1128830400 -18000 1 EASST} + {1142132400 -21600 0 EAST} + {1160884800 -18000 1 EASST} + {1173582000 -21600 0 EAST} + {1192334400 -18000 1 EASST} + {1205031600 -21600 0 EAST} + {1223784000 -18000 1 EASST} + {1237086000 -21600 0 EAST} + {1255233600 -18000 1 EASST} + {1268535600 -21600 0 EAST} + {1286683200 -18000 1 EASST} + {1299985200 -21600 0 EAST} + {1318132800 -18000 1 EASST} + {1331434800 -21600 0 EAST} + {1350187200 -18000 1 EASST} + {1362884400 -21600 0 EAST} + {1381636800 -18000 1 EASST} + {1394334000 -21600 0 EAST} + {1413086400 -18000 1 EASST} + {1426388400 -21600 0 EAST} + {1444536000 -18000 1 EASST} + {1457838000 -21600 0 EAST} + {1475985600 -18000 1 EASST} + {1489287600 -21600 0 EAST} + {1508040000 -18000 1 EASST} + {1520737200 -21600 0 EAST} + {1539489600 -18000 1 EASST} + {1552186800 -21600 0 EAST} + {1570939200 -18000 1 EASST} + {1584241200 -21600 0 EAST} + {1602388800 -18000 1 EASST} + {1615690800 -21600 0 EAST} + {1633838400 -18000 1 EASST} + {1647140400 -21600 0 EAST} + {1665288000 -18000 1 EASST} + {1678590000 -21600 0 EAST} + {1697342400 -18000 1 EASST} + {1710039600 -21600 0 EAST} + {1728792000 -18000 1 EASST} + {1741489200 -21600 0 EAST} + {1760241600 -18000 1 EASST} + {1773543600 -21600 0 EAST} + {1791691200 -18000 1 EASST} + {1804993200 -21600 0 EAST} + {1823140800 -18000 1 EASST} + {1836442800 -21600 0 EAST} + {1855195200 -18000 1 EASST} + {1867892400 -21600 0 EAST} + {1886644800 -18000 1 EASST} + {1899342000 -21600 0 EAST} + {1918094400 -18000 1 EASST} + {1930791600 -21600 0 EAST} + {1949544000 -18000 1 EASST} + {1962846000 -21600 0 EAST} + {1980993600 -18000 1 EASST} + {1994295600 -21600 0 EAST} + {2012443200 -18000 1 EASST} + {2025745200 -21600 0 EAST} + {2044497600 -18000 1 EASST} + {2057194800 -21600 0 EAST} + {2075947200 -18000 1 EASST} + {2088644400 -21600 0 EAST} + {2107396800 -18000 1 EASST} + {2120698800 -21600 0 EAST} + {2138846400 -18000 1 EASST} + {2152148400 -21600 0 EAST} + {2170296000 -18000 1 EASST} + {2183598000 -21600 0 EAST} + {2201745600 -18000 1 EASST} + {2215047600 -21600 0 EAST} + {2233800000 -18000 1 EASST} + {2246497200 -21600 0 EAST} + {2265249600 -18000 1 EASST} + {2277946800 -21600 0 EAST} + {2296699200 -18000 1 EASST} + {2310001200 -21600 0 EAST} + {2328148800 -18000 1 EASST} + {2341450800 -21600 0 EAST} + {2359598400 -18000 1 EASST} + {2372900400 -21600 0 EAST} + {2391652800 -18000 1 EASST} + {2404350000 -21600 0 EAST} + {2423102400 -18000 1 EASST} + {2435799600 -21600 0 EAST} + {2454552000 -18000 1 EASST} + {2467854000 -21600 0 EAST} + {2486001600 -18000 1 EASST} + {2499303600 -21600 0 EAST} + {2517451200 -18000 1 EASST} + {2530753200 -21600 0 EAST} + {2548900800 -18000 1 EASST} + {2562202800 -21600 0 EAST} + {2580955200 -18000 1 EASST} + {2593652400 -21600 0 EAST} + {2612404800 -18000 1 EASST} + {2625102000 -21600 0 EAST} + {2643854400 -18000 1 EASST} + {2657156400 -21600 0 EAST} + {2675304000 -18000 1 EASST} + {2688606000 -21600 0 EAST} + {2706753600 -18000 1 EASST} + {2720055600 -21600 0 EAST} + {2738808000 -18000 1 EASST} + {2751505200 -21600 0 EAST} + {2770257600 -18000 1 EASST} + {2782954800 -21600 0 EAST} + {2801707200 -18000 1 EASST} + {2814404400 -21600 0 EAST} + {2833156800 -18000 1 EASST} + {2846458800 -21600 0 EAST} + {2864606400 -18000 1 EASST} + {2877908400 -21600 0 EAST} + {2896056000 -18000 1 EASST} + {2909358000 -21600 0 EAST} + {2928110400 -18000 1 EASST} + {2940807600 -21600 0 EAST} + {2959560000 -18000 1 EASST} + {2972257200 -21600 0 EAST} + {2991009600 -18000 1 EASST} + {3004311600 -21600 0 EAST} + {3022459200 -18000 1 EASST} + {3035761200 -21600 0 EAST} + {3053908800 -18000 1 EASST} + {3067210800 -21600 0 EAST} + {3085358400 -18000 1 EASST} + {3098660400 -21600 0 EAST} + {3117412800 -18000 1 EASST} + {3130110000 -21600 0 EAST} + {3148862400 -18000 1 EASST} + {3161559600 -21600 0 EAST} + {3180312000 -18000 1 EASST} + {3193614000 -21600 0 EAST} + {3211761600 -18000 1 EASST} + {3225063600 -21600 0 EAST} + {3243211200 -18000 1 EASST} + {3256513200 -21600 0 EAST} + {3275265600 -18000 1 EASST} + {3287962800 -21600 0 EAST} + {3306715200 -18000 1 EASST} + {3319412400 -21600 0 EAST} + {3338164800 -18000 1 EASST} + {3351466800 -21600 0 EAST} + {3369614400 -18000 1 EASST} + {3382916400 -21600 0 EAST} + {3401064000 -18000 1 EASST} + {3414366000 -21600 0 EAST} + {3432513600 -18000 1 EASST} + {3445815600 -21600 0 EAST} + {3464568000 -18000 1 EASST} + {3477265200 -21600 0 EAST} + {3496017600 -18000 1 EASST} + {3508714800 -21600 0 EAST} + {3527467200 -18000 1 EASST} + {3540769200 -21600 0 EAST} + {3558916800 -18000 1 EASST} + {3572218800 -21600 0 EAST} + {3590366400 -18000 1 EASST} + {3603668400 -21600 0 EAST} + {3622420800 -18000 1 EASST} + {3635118000 -21600 0 EAST} + {3653870400 -18000 1 EASST} + {3666567600 -21600 0 EAST} + {3685320000 -18000 1 EASST} + {3698017200 -21600 0 EAST} + {3716769600 -18000 1 EASST} + {3730071600 -21600 0 EAST} + {3748219200 -18000 1 EASST} + {3761521200 -21600 0 EAST} + {3779668800 -18000 1 EASST} + {3792970800 -21600 0 EAST} + {3811723200 -18000 1 EASST} + {3824420400 -21600 0 EAST} + {3843172800 -18000 1 EASST} + {3855870000 -21600 0 EAST} + {3874622400 -18000 1 EASST} + {3887924400 -21600 0 EAST} + {3906072000 -18000 1 EASST} + {3919374000 -21600 0 EAST} + {3937521600 -18000 1 EASST} + {3950823600 -21600 0 EAST} + {3968971200 -18000 1 EASST} + {3982273200 -21600 0 EAST} + {4001025600 -18000 1 EASST} + {4013722800 -21600 0 EAST} + {4032475200 -18000 1 EASST} + {4045172400 -21600 0 EAST} + {4063924800 -18000 1 EASST} + {4077226800 -21600 0 EAST} + {4095374400 -18000 1 EASST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Efate b/mingw/lib/tcl8.5/tzdata/Pacific/Efate new file mode 100644 index 00000000..18db6de2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Efate @@ -0,0 +1,26 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Efate) { + {-9223372036854775808 40396 0 LMT} + {-1829387596 39600 0 VUT} + {433256400 43200 1 VUST} + {448977600 39600 0 VUT} + {467298000 43200 1 VUST} + {480427200 39600 0 VUT} + {496760400 43200 1 VUST} + {511876800 39600 0 VUT} + {528210000 43200 1 VUST} + {543931200 39600 0 VUT} + {559659600 43200 1 VUST} + {575380800 39600 0 VUT} + {591109200 43200 1 VUST} + {606830400 39600 0 VUT} + {622558800 43200 1 VUST} + {638280000 39600 0 VUT} + {654008400 43200 1 VUST} + {669729600 39600 0 VUT} + {686062800 43200 1 VUST} + {696340800 39600 0 VUT} + {719931600 43200 1 VUST} + {727790400 39600 0 VUT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Enderbury b/mingw/lib/tcl8.5/tzdata/Pacific/Enderbury new file mode 100644 index 00000000..55784c45 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Enderbury @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Enderbury) { + {-9223372036854775808 -41060 0 LMT} + {-2177411740 -43200 0 PHOT} + {307627200 -39600 0 PHOT} + {788958000 46800 0 PHOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo b/mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo new file mode 100644 index 00000000..74206391 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Fakaofo) { + {-9223372036854775808 -41096 0 LMT} + {-2177411704 -36000 0 TKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Fiji b/mingw/lib/tcl8.5/tzdata/Pacific/Fiji new file mode 100644 index 00000000..2194d595 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Fiji @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Fiji) { + {-9223372036854775808 42820 0 LMT} + {-1709985220 43200 0 FJT} + {909842400 46800 1 FJST} + {920124000 43200 0 FJT} + {941896800 46800 1 FJST} + {951573600 43200 0 FJT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Funafuti b/mingw/lib/tcl8.5/tzdata/Pacific/Funafuti new file mode 100644 index 00000000..b94e4fb2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Funafuti @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Funafuti) { + {-9223372036854775808 43012 0 LMT} + {-2177495812 43200 0 TVT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Galapagos b/mingw/lib/tcl8.5/tzdata/Pacific/Galapagos new file mode 100644 index 00000000..d8c80e8d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Galapagos @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Galapagos) { + {-9223372036854775808 -21504 0 LMT} + {-1230746496 -18000 0 ECT} + {504939600 -21600 0 GALT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Gambier b/mingw/lib/tcl8.5/tzdata/Pacific/Gambier new file mode 100644 index 00000000..d69f99a5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Gambier @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Gambier) { + {-9223372036854775808 -32388 0 LMT} + {-1806678012 -32400 0 GAMT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal b/mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal new file mode 100644 index 00000000..09a67dd0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Guadalcanal) { + {-9223372036854775808 38388 0 LMT} + {-1806748788 39600 0 SBT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Guam b/mingw/lib/tcl8.5/tzdata/Pacific/Guam new file mode 100644 index 00000000..79cca80e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Guam @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Guam) { + {-9223372036854775808 -51660 0 LMT} + {-3944626740 34740 0 LMT} + {-2177487540 36000 0 GST} + {977493600 36000 0 ChST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Honolulu b/mingw/lib/tcl8.5/tzdata/Pacific/Honolulu new file mode 100644 index 00000000..f441a020 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Honolulu @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Honolulu) { + {-9223372036854775808 -37886 0 LMT} + {-2208907714 -37800 0 HST} + {-1157283000 -34200 1 HDT} + {-1155472200 -34200 0 HST} + {-880201800 -34200 1 HWT} + {-769395600 -34200 1 HPT} + {-765376200 -37800 0 HST} + {-712150200 -36000 0 HST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Johnston b/mingw/lib/tcl8.5/tzdata/Pacific/Johnston new file mode 100644 index 00000000..7f9fee4b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Johnston @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Johnston) { + {-9223372036854775808 -36000 0 HST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati b/mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati new file mode 100644 index 00000000..06b695b9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Kiritimati) { + {-9223372036854775808 -37760 0 LMT} + {-2177415040 -38400 0 LINT} + {307622400 -36000 0 LINT} + {788954400 50400 0 LINT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Kosrae b/mingw/lib/tcl8.5/tzdata/Pacific/Kosrae new file mode 100644 index 00000000..a16b19d9 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Kosrae @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Kosrae) { + {-9223372036854775808 39116 0 LMT} + {-2177491916 39600 0 KOST} + {-7988400 43200 0 KOST} + {915105600 39600 0 KOST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein b/mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein new file mode 100644 index 00000000..8600b3bb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Kwajalein) { + {-9223372036854775808 40160 0 LMT} + {-2177492960 39600 0 MHT} + {-7988400 -43200 0 KWAT} + {745848000 43200 0 MHT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Majuro b/mingw/lib/tcl8.5/tzdata/Pacific/Majuro new file mode 100644 index 00000000..468baab4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Majuro @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Majuro) { + {-9223372036854775808 41088 0 LMT} + {-2177493888 39600 0 MHT} + {-7988400 43200 0 MHT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Marquesas b/mingw/lib/tcl8.5/tzdata/Pacific/Marquesas new file mode 100644 index 00000000..9bb508f5 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Marquesas @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Marquesas) { + {-9223372036854775808 -33480 0 LMT} + {-1806676920 -34200 0 MART} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Midway b/mingw/lib/tcl8.5/tzdata/Pacific/Midway new file mode 100644 index 00000000..c07b0302 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Midway @@ -0,0 +1,10 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Nauru b/mingw/lib/tcl8.5/tzdata/Pacific/Nauru new file mode 100644 index 00000000..2da1e25e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Nauru @@ -0,0 +1,9 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Nauru) { + {-9223372036854775808 40060 0 LMT} + {-1545131260 41400 0 NRT} + {-877347000 32400 0 JST} + {-800960400 41400 0 NRT} + {294323400 43200 0 NRT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Niue b/mingw/lib/tcl8.5/tzdata/Pacific/Niue new file mode 100644 index 00000000..cf149fca --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Niue @@ -0,0 +1,8 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Niue) { + {-9223372036854775808 -40780 0 LMT} + {-2177412020 -40800 0 NUT} + {-599575200 -41400 0 NUT} + {276089400 -39600 0 NUT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Norfolk b/mingw/lib/tcl8.5/tzdata/Pacific/Norfolk new file mode 100644 index 00000000..a8fac155 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Norfolk @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Norfolk) { + {-9223372036854775808 40312 0 LMT} + {-2177493112 40320 0 NMT} + {-599656320 41400 0 NFT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Noumea b/mingw/lib/tcl8.5/tzdata/Pacific/Noumea new file mode 100644 index 00000000..db1eeae2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Noumea @@ -0,0 +1,12 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Noumea) { + {-9223372036854775808 39948 0 LMT} + {-1829387148 39600 0 NCT} + {250002000 43200 1 NCST} + {257342400 39600 0 NCT} + {281451600 43200 1 NCST} + {288878400 39600 0 NCT} + {849366000 43200 1 NCST} + {857228400 39600 0 NCT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago b/mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago new file mode 100644 index 00000000..830f9ee0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago @@ -0,0 +1,10 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Pago_Pago) { + {-9223372036854775808 45432 0 LMT} + {-2855738232 -40968 0 LMT} + {-1861879032 -41400 0 SAMT} + {-631110600 -39600 0 NST} + {-86878800 -39600 0 BST} + {439038000 -39600 0 SST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Palau b/mingw/lib/tcl8.5/tzdata/Pacific/Palau new file mode 100644 index 00000000..ee0606d4 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Palau @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Palau) { + {-9223372036854775808 32276 0 LMT} + {-2177485076 32400 0 PWT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn b/mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn new file mode 100644 index 00000000..d62644e8 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Pitcairn) { + {-9223372036854775808 -31220 0 LMT} + {-2177421580 -30600 0 PNT} + {893665800 -28800 0 PST} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Ponape b/mingw/lib/tcl8.5/tzdata/Pacific/Ponape new file mode 100644 index 00000000..092b0a9f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Ponape @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Ponape) { + {-9223372036854775808 37972 0 LMT} + {-2177490772 39600 0 PONT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby b/mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby new file mode 100644 index 00000000..65eb533a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby @@ -0,0 +1,7 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Port_Moresby) { + {-9223372036854775808 35320 0 LMT} + {-2840176120 35312 0 PMMT} + {-2366790512 36000 0 PGT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga b/mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga new file mode 100644 index 00000000..a4ecf8d3 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga @@ -0,0 +1,32 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Rarotonga) { + {-9223372036854775808 -38344 0 LMT} + {-2177414456 -37800 0 CKT} + {279714600 -34200 0 CKHST} + {289387800 -36000 0 CKT} + {309952800 -34200 1 CKHST} + {320837400 -36000 0 CKT} + {341402400 -34200 1 CKHST} + {352287000 -36000 0 CKT} + {372852000 -34200 1 CKHST} + {384341400 -36000 0 CKT} + {404906400 -34200 1 CKHST} + {415791000 -36000 0 CKT} + {436356000 -34200 1 CKHST} + {447240600 -36000 0 CKT} + {467805600 -34200 1 CKHST} + {478690200 -36000 0 CKT} + {499255200 -34200 1 CKHST} + {510139800 -36000 0 CKT} + {530704800 -34200 1 CKHST} + {541589400 -36000 0 CKT} + {562154400 -34200 1 CKHST} + {573643800 -36000 0 CKT} + {594208800 -34200 1 CKHST} + {605093400 -36000 0 CKT} + {625658400 -34200 1 CKHST} + {636543000 -36000 0 CKT} + {657108000 -34200 1 CKHST} + {667992600 -36000 0 CKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Saipan b/mingw/lib/tcl8.5/tzdata/Pacific/Saipan new file mode 100644 index 00000000..b7992980 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Saipan @@ -0,0 +1,9 @@ +# 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} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Samoa b/mingw/lib/tcl8.5/tzdata/Pacific/Samoa new file mode 100644 index 00000000..686eb34d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Samoa @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Pago_Pago)]} { + LoadTimeZoneFile Pacific/Pago_Pago +} +set TZData(:Pacific/Samoa) $TZData(:Pacific/Pago_Pago) diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Tahiti b/mingw/lib/tcl8.5/tzdata/Pacific/Tahiti new file mode 100644 index 00000000..f7392231 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Tahiti @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Tahiti) { + {-9223372036854775808 -35896 0 LMT} + {-1806674504 -36000 0 TAHT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Tarawa b/mingw/lib/tcl8.5/tzdata/Pacific/Tarawa new file mode 100644 index 00000000..2dab5a27 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Tarawa @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Tarawa) { + {-9223372036854775808 41524 0 LMT} + {-2177494324 43200 0 GILT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu b/mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu new file mode 100644 index 00000000..da9f8577 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu @@ -0,0 +1,14 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Tongatapu) { + {-9223372036854775808 44360 0 LMT} + {-2177497160 44400 0 TOT} + {-915193200 46800 0 TOT} + {915102000 46800 0 TOT} + {939214800 50400 1 TOST} + {953384400 46800 0 TOT} + {973342800 50400 1 TOST} + {980596800 46800 0 TOT} + {1004792400 50400 1 TOST} + {1012046400 46800 0 TOT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Truk b/mingw/lib/tcl8.5/tzdata/Pacific/Truk new file mode 100644 index 00000000..c152198e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Truk @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Truk) { + {-9223372036854775808 36428 0 LMT} + {-2177489228 36000 0 TRUT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Wake b/mingw/lib/tcl8.5/tzdata/Pacific/Wake new file mode 100644 index 00000000..5afedf51 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Wake @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Wake) { + {-9223372036854775808 39988 0 LMT} + {-2177492788 43200 0 WAKT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Wallis b/mingw/lib/tcl8.5/tzdata/Pacific/Wallis new file mode 100644 index 00000000..7bdd964e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Wallis @@ -0,0 +1,6 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:Pacific/Wallis) { + {-9223372036854775808 44120 0 LMT} + {-2177496920 43200 0 WFT} +} diff --git a/mingw/lib/tcl8.5/tzdata/Pacific/Yap b/mingw/lib/tcl8.5/tzdata/Pacific/Yap new file mode 100644 index 00000000..a97a1951 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Pacific/Yap @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Truk)]} { + LoadTimeZoneFile Pacific/Truk +} +set TZData(:Pacific/Yap) $TZData(:Pacific/Truk) diff --git a/mingw/lib/tcl8.5/tzdata/Poland b/mingw/lib/tcl8.5/tzdata/Poland new file mode 100644 index 00000000..bd240284 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Poland @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Warsaw)]} { + LoadTimeZoneFile Europe/Warsaw +} +set TZData(:Poland) $TZData(:Europe/Warsaw) diff --git a/mingw/lib/tcl8.5/tzdata/Portugal b/mingw/lib/tcl8.5/tzdata/Portugal new file mode 100644 index 00000000..d1ffd9f2 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Portugal @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Lisbon)]} { + LoadTimeZoneFile Europe/Lisbon +} +set TZData(:Portugal) $TZData(:Europe/Lisbon) diff --git a/mingw/lib/tcl8.5/tzdata/ROC b/mingw/lib/tcl8.5/tzdata/ROC new file mode 100644 index 00000000..5dd196d0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/ROC @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Taipei)]} { + LoadTimeZoneFile Asia/Taipei +} +set TZData(:ROC) $TZData(:Asia/Taipei) diff --git a/mingw/lib/tcl8.5/tzdata/ROK b/mingw/lib/tcl8.5/tzdata/ROK new file mode 100644 index 00000000..1162ce40 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/ROK @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Seoul)]} { + LoadTimeZoneFile Asia/Seoul +} +set TZData(:ROK) $TZData(:Asia/Seoul) diff --git a/mingw/lib/tcl8.5/tzdata/Singapore b/mingw/lib/tcl8.5/tzdata/Singapore new file mode 100644 index 00000000..1584b35b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Singapore @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Asia/Singapore)]} { + LoadTimeZoneFile Asia/Singapore +} +set TZData(:Singapore) $TZData(:Asia/Singapore) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/AST4 b/mingw/lib/tcl8.5/tzdata/SystemV/AST4 new file mode 100644 index 00000000..eced0d2d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/AST4 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Puerto_Rico)]} { + LoadTimeZoneFile America/Puerto_Rico +} +set TZData(:SystemV/AST4) $TZData(:America/Puerto_Rico) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT b/mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT new file mode 100644 index 00000000..c24308f6 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Halifax)]} { + LoadTimeZoneFile America/Halifax +} +set TZData(:SystemV/AST4ADT) $TZData(:America/Halifax) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/CST6 b/mingw/lib/tcl8.5/tzdata/SystemV/CST6 new file mode 100644 index 00000000..d46c015b --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/CST6 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Regina)]} { + LoadTimeZoneFile America/Regina +} +set TZData(:SystemV/CST6) $TZData(:America/Regina) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT b/mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT new file mode 100644 index 00000000..234af894 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Chicago)]} { + LoadTimeZoneFile America/Chicago +} +set TZData(:SystemV/CST6CDT) $TZData(:America/Chicago) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/EST5 b/mingw/lib/tcl8.5/tzdata/SystemV/EST5 new file mode 100644 index 00000000..52818c1e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/EST5 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indianapolis)]} { + LoadTimeZoneFile America/Indianapolis +} +set TZData(:SystemV/EST5) $TZData(:America/Indianapolis) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT b/mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT new file mode 100644 index 00000000..6cf27433 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/New_York)]} { + LoadTimeZoneFile America/New_York +} +set TZData(:SystemV/EST5EDT) $TZData(:America/New_York) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/HST10 b/mingw/lib/tcl8.5/tzdata/SystemV/HST10 new file mode 100644 index 00000000..a4316afb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/HST10 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Honolulu)]} { + LoadTimeZoneFile Pacific/Honolulu +} +set TZData(:SystemV/HST10) $TZData(:Pacific/Honolulu) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/MST7 b/mingw/lib/tcl8.5/tzdata/SystemV/MST7 new file mode 100644 index 00000000..e67a781c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/MST7 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Phoenix)]} { + LoadTimeZoneFile America/Phoenix +} +set TZData(:SystemV/MST7) $TZData(:America/Phoenix) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT b/mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT new file mode 100644 index 00000000..fda5bf1d --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Denver)]} { + LoadTimeZoneFile America/Denver +} +set TZData(:SystemV/MST7MDT) $TZData(:America/Denver) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/PST8 b/mingw/lib/tcl8.5/tzdata/SystemV/PST8 new file mode 100644 index 00000000..8e30bb84 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/PST8 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Pitcairn)]} { + LoadTimeZoneFile Pacific/Pitcairn +} +set TZData(:SystemV/PST8) $TZData(:Pacific/Pitcairn) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT b/mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT new file mode 100644 index 00000000..8281a9af --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Los_Angeles)]} { + LoadTimeZoneFile America/Los_Angeles +} +set TZData(:SystemV/PST8PDT) $TZData(:America/Los_Angeles) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/YST9 b/mingw/lib/tcl8.5/tzdata/SystemV/YST9 new file mode 100644 index 00000000..32d37173 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/YST9 @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Gambier)]} { + LoadTimeZoneFile Pacific/Gambier +} +set TZData(:SystemV/YST9) $TZData(:Pacific/Gambier) diff --git a/mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT b/mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT new file mode 100644 index 00000000..fba405f0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT @@ -0,0 +1,5 @@ +# created by ../tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Anchorage)]} { + LoadTimeZoneFile America/Anchorage +} +set TZData(:SystemV/YST9YDT) $TZData(:America/Anchorage) diff --git a/mingw/lib/tcl8.5/tzdata/Turkey b/mingw/lib/tcl8.5/tzdata/Turkey new file mode 100644 index 00000000..e20a7a5e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Turkey @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Istanbul)]} { + LoadTimeZoneFile Europe/Istanbul +} +set TZData(:Turkey) $TZData(:Europe/Istanbul) diff --git a/mingw/lib/tcl8.5/tzdata/UCT b/mingw/lib/tcl8.5/tzdata/UCT new file mode 100644 index 00000000..84493281 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/UCT @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UCT)]} { + LoadTimeZoneFile Etc/UCT +} +set TZData(:UCT) $TZData(:Etc/UCT) diff --git a/mingw/lib/tcl8.5/tzdata/US/Alaska b/mingw/lib/tcl8.5/tzdata/US/Alaska new file mode 100644 index 00000000..69a38997 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Alaska @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Anchorage)]} { + LoadTimeZoneFile America/Anchorage +} +set TZData(:US/Alaska) $TZData(:America/Anchorage) diff --git a/mingw/lib/tcl8.5/tzdata/US/Aleutian b/mingw/lib/tcl8.5/tzdata/US/Aleutian new file mode 100644 index 00000000..024e70bd --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Aleutian @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Adak)]} { + LoadTimeZoneFile America/Adak +} +set TZData(:US/Aleutian) $TZData(:America/Adak) diff --git a/mingw/lib/tcl8.5/tzdata/US/Arizona b/mingw/lib/tcl8.5/tzdata/US/Arizona new file mode 100644 index 00000000..8eaa9619 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Arizona @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Phoenix)]} { + LoadTimeZoneFile America/Phoenix +} +set TZData(:US/Arizona) $TZData(:America/Phoenix) diff --git a/mingw/lib/tcl8.5/tzdata/US/Central b/mingw/lib/tcl8.5/tzdata/US/Central new file mode 100644 index 00000000..2aab66e0 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Central @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Chicago)]} { + LoadTimeZoneFile America/Chicago +} +set TZData(:US/Central) $TZData(:America/Chicago) diff --git a/mingw/lib/tcl8.5/tzdata/US/East-Indiana b/mingw/lib/tcl8.5/tzdata/US/East-Indiana new file mode 100644 index 00000000..2035a060 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/East-Indiana @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indiana/Indianapolis)]} { + LoadTimeZoneFile America/Indiana/Indianapolis +} +set TZData(:US/East-Indiana) $TZData(:America/Indiana/Indianapolis) diff --git a/mingw/lib/tcl8.5/tzdata/US/Eastern b/mingw/lib/tcl8.5/tzdata/US/Eastern new file mode 100644 index 00000000..3cf2651f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Eastern @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/New_York)]} { + LoadTimeZoneFile America/New_York +} +set TZData(:US/Eastern) $TZData(:America/New_York) diff --git a/mingw/lib/tcl8.5/tzdata/US/Hawaii b/mingw/lib/tcl8.5/tzdata/US/Hawaii new file mode 100644 index 00000000..6d1af655 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Hawaii @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Honolulu)]} { + LoadTimeZoneFile Pacific/Honolulu +} +set TZData(:US/Hawaii) $TZData(:Pacific/Honolulu) diff --git a/mingw/lib/tcl8.5/tzdata/US/Indiana-Starke b/mingw/lib/tcl8.5/tzdata/US/Indiana-Starke new file mode 100644 index 00000000..6ffe0e2f --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Indiana-Starke @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Indiana/Knox)]} { + LoadTimeZoneFile America/Indiana/Knox +} +set TZData(:US/Indiana-Starke) $TZData(:America/Indiana/Knox) diff --git a/mingw/lib/tcl8.5/tzdata/US/Michigan b/mingw/lib/tcl8.5/tzdata/US/Michigan new file mode 100644 index 00000000..b15035c7 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Michigan @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Detroit)]} { + LoadTimeZoneFile America/Detroit +} +set TZData(:US/Michigan) $TZData(:America/Detroit) diff --git a/mingw/lib/tcl8.5/tzdata/US/Mountain b/mingw/lib/tcl8.5/tzdata/US/Mountain new file mode 100644 index 00000000..b54235fa --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Mountain @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Denver)]} { + LoadTimeZoneFile America/Denver +} +set TZData(:US/Mountain) $TZData(:America/Denver) diff --git a/mingw/lib/tcl8.5/tzdata/US/Pacific b/mingw/lib/tcl8.5/tzdata/US/Pacific new file mode 100644 index 00000000..72322159 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Pacific @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Los_Angeles)]} { + LoadTimeZoneFile America/Los_Angeles +} +set TZData(:US/Pacific) $TZData(:America/Los_Angeles) diff --git a/mingw/lib/tcl8.5/tzdata/US/Pacific-New b/mingw/lib/tcl8.5/tzdata/US/Pacific-New new file mode 100644 index 00000000..2eb30f85 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Pacific-New @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(America/Los_Angeles)]} { + LoadTimeZoneFile America/Los_Angeles +} +set TZData(:US/Pacific-New) $TZData(:America/Los_Angeles) diff --git a/mingw/lib/tcl8.5/tzdata/US/Samoa b/mingw/lib/tcl8.5/tzdata/US/Samoa new file mode 100644 index 00000000..ad86b4fc --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/US/Samoa @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Pacific/Pago_Pago)]} { + LoadTimeZoneFile Pacific/Pago_Pago +} +set TZData(:US/Samoa) $TZData(:Pacific/Pago_Pago) diff --git a/mingw/lib/tcl8.5/tzdata/UTC b/mingw/lib/tcl8.5/tzdata/UTC new file mode 100644 index 00000000..6d04d96e --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/UTC @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UTC)]} { + LoadTimeZoneFile Etc/UTC +} +set TZData(:UTC) $TZData(:Etc/UTC) diff --git a/mingw/lib/tcl8.5/tzdata/Universal b/mingw/lib/tcl8.5/tzdata/Universal new file mode 100644 index 00000000..4a9ed5eb --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Universal @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UTC)]} { + LoadTimeZoneFile Etc/UTC +} +set TZData(:Universal) $TZData(:Etc/UTC) diff --git a/mingw/lib/tcl8.5/tzdata/W-SU b/mingw/lib/tcl8.5/tzdata/W-SU new file mode 100644 index 00000000..7e1f613a --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/W-SU @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Europe/Moscow)]} { + LoadTimeZoneFile Europe/Moscow +} +set TZData(:W-SU) $TZData(:Europe/Moscow) diff --git a/mingw/lib/tcl8.5/tzdata/WET b/mingw/lib/tcl8.5/tzdata/WET new file mode 100644 index 00000000..60366a3c --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/WET @@ -0,0 +1,251 @@ +# created by tools/tclZIC.tcl - do not edit + +set TZData(:WET) { + {-9223372036854775808 0 0 WET} + {228877200 3600 1 WEST} + {243997200 0 0 WET} + {260326800 3600 1 WEST} + {276051600 0 0 WET} + {291776400 3600 1 WEST} + {307501200 0 0 WET} + {323830800 3600 1 WEST} + {338950800 0 0 WET} + {354675600 3600 1 WEST} + {370400400 0 0 WET} + {386125200 3600 1 WEST} + {401850000 0 0 WET} + {417574800 3600 1 WEST} + {433299600 0 0 WET} + {449024400 3600 1 WEST} + {465354000 0 0 WET} + {481078800 3600 1 WEST} + {496803600 0 0 WET} + {512528400 3600 1 WEST} + {528253200 0 0 WET} + {543978000 3600 1 WEST} + {559702800 0 0 WET} + {575427600 3600 1 WEST} + {591152400 0 0 WET} + {606877200 3600 1 WEST} + {622602000 0 0 WET} + {638326800 3600 1 WEST} + {654656400 0 0 WET} + {670381200 3600 1 WEST} + {686106000 0 0 WET} + {701830800 3600 1 WEST} + {717555600 0 0 WET} + {733280400 3600 1 WEST} + {749005200 0 0 WET} + {764730000 3600 1 WEST} + {780454800 0 0 WET} + {796179600 3600 1 WEST} + {811904400 0 0 WET} + {828234000 3600 1 WEST} + {846378000 0 0 WET} + {859683600 3600 1 WEST} + {877827600 0 0 WET} + {891133200 3600 1 WEST} + {909277200 0 0 WET} + {922582800 3600 1 WEST} + {941331600 0 0 WET} + {954032400 3600 1 WEST} + {972781200 0 0 WET} + {985482000 3600 1 WEST} + {1004230800 0 0 WET} + {1017536400 3600 1 WEST} + {1035680400 0 0 WET} + {1048986000 3600 1 WEST} + {1067130000 0 0 WET} + {1080435600 3600 1 WEST} + {1099184400 0 0 WET} + {1111885200 3600 1 WEST} + {1130634000 0 0 WET} + {1143334800 3600 1 WEST} + {1162083600 0 0 WET} + {1174784400 3600 1 WEST} + {1193533200 0 0 WET} + {1206838800 3600 1 WEST} + {1224982800 0 0 WET} + {1238288400 3600 1 WEST} + {1256432400 0 0 WET} + {1269738000 3600 1 WEST} + {1288486800 0 0 WET} + {1301187600 3600 1 WEST} + {1319936400 0 0 WET} + {1332637200 3600 1 WEST} + {1351386000 0 0 WET} + {1364691600 3600 1 WEST} + {1382835600 0 0 WET} + {1396141200 3600 1 WEST} + {1414285200 0 0 WET} + {1427590800 3600 1 WEST} + {1445734800 0 0 WET} + {1459040400 3600 1 WEST} + {1477789200 0 0 WET} + {1490490000 3600 1 WEST} + {1509238800 0 0 WET} + {1521939600 3600 1 WEST} + {1540688400 0 0 WET} + {1553994000 3600 1 WEST} + {1572138000 0 0 WET} + {1585443600 3600 1 WEST} + {1603587600 0 0 WET} + {1616893200 3600 1 WEST} + {1635642000 0 0 WET} + {1648342800 3600 1 WEST} + {1667091600 0 0 WET} + {1679792400 3600 1 WEST} + {1698541200 0 0 WET} + {1711846800 3600 1 WEST} + {1729990800 0 0 WET} + {1743296400 3600 1 WEST} + {1761440400 0 0 WET} + {1774746000 3600 1 WEST} + {1792890000 0 0 WET} + {1806195600 3600 1 WEST} + {1824944400 0 0 WET} + {1837645200 3600 1 WEST} + {1856394000 0 0 WET} + {1869094800 3600 1 WEST} + {1887843600 0 0 WET} + {1901149200 3600 1 WEST} + {1919293200 0 0 WET} + {1932598800 3600 1 WEST} + {1950742800 0 0 WET} + {1964048400 3600 1 WEST} + {1982797200 0 0 WET} + {1995498000 3600 1 WEST} + {2014246800 0 0 WET} + {2026947600 3600 1 WEST} + {2045696400 0 0 WET} + {2058397200 3600 1 WEST} + {2077146000 0 0 WET} + {2090451600 3600 1 WEST} + {2108595600 0 0 WET} + {2121901200 3600 1 WEST} + {2140045200 0 0 WET} + {2153350800 3600 1 WEST} + {2172099600 0 0 WET} + {2184800400 3600 1 WEST} + {2203549200 0 0 WET} + {2216250000 3600 1 WEST} + {2234998800 0 0 WET} + {2248304400 3600 1 WEST} + {2266448400 0 0 WET} + {2279754000 3600 1 WEST} + {2297898000 0 0 WET} + {2311203600 3600 1 WEST} + {2329347600 0 0 WET} + {2342653200 3600 1 WEST} + {2361402000 0 0 WET} + {2374102800 3600 1 WEST} + {2392851600 0 0 WET} + {2405552400 3600 1 WEST} + {2424301200 0 0 WET} + {2437606800 3600 1 WEST} + {2455750800 0 0 WET} + {2469056400 3600 1 WEST} + {2487200400 0 0 WET} + {2500506000 3600 1 WEST} + {2519254800 0 0 WET} + {2531955600 3600 1 WEST} + {2550704400 0 0 WET} + {2563405200 3600 1 WEST} + {2582154000 0 0 WET} + {2595459600 3600 1 WEST} + {2613603600 0 0 WET} + {2626909200 3600 1 WEST} + {2645053200 0 0 WET} + {2658358800 3600 1 WEST} + {2676502800 0 0 WET} + {2689808400 3600 1 WEST} + {2708557200 0 0 WET} + {2721258000 3600 1 WEST} + {2740006800 0 0 WET} + {2752707600 3600 1 WEST} + {2771456400 0 0 WET} + {2784762000 3600 1 WEST} + {2802906000 0 0 WET} + {2816211600 3600 1 WEST} + {2834355600 0 0 WET} + {2847661200 3600 1 WEST} + {2866410000 0 0 WET} + {2879110800 3600 1 WEST} + {2897859600 0 0 WET} + {2910560400 3600 1 WEST} + {2929309200 0 0 WET} + {2942010000 3600 1 WEST} + {2960758800 0 0 WET} + {2974064400 3600 1 WEST} + {2992208400 0 0 WET} + {3005514000 3600 1 WEST} + {3023658000 0 0 WET} + {3036963600 3600 1 WEST} + {3055712400 0 0 WET} + {3068413200 3600 1 WEST} + {3087162000 0 0 WET} + {3099862800 3600 1 WEST} + {3118611600 0 0 WET} + {3131917200 3600 1 WEST} + {3150061200 0 0 WET} + {3163366800 3600 1 WEST} + {3181510800 0 0 WET} + {3194816400 3600 1 WEST} + {3212960400 0 0 WET} + {3226266000 3600 1 WEST} + {3245014800 0 0 WET} + {3257715600 3600 1 WEST} + {3276464400 0 0 WET} + {3289165200 3600 1 WEST} + {3307914000 0 0 WET} + {3321219600 3600 1 WEST} + {3339363600 0 0 WET} + {3352669200 3600 1 WEST} + {3370813200 0 0 WET} + {3384118800 3600 1 WEST} + {3402867600 0 0 WET} + {3415568400 3600 1 WEST} + {3434317200 0 0 WET} + {3447018000 3600 1 WEST} + {3465766800 0 0 WET} + {3479072400 3600 1 WEST} + {3497216400 0 0 WET} + {3510522000 3600 1 WEST} + {3528666000 0 0 WET} + {3541971600 3600 1 WEST} + {3560115600 0 0 WET} + {3573421200 3600 1 WEST} + {3592170000 0 0 WET} + {3604870800 3600 1 WEST} + {3623619600 0 0 WET} + {3636320400 3600 1 WEST} + {3655069200 0 0 WET} + {3668374800 3600 1 WEST} + {3686518800 0 0 WET} + {3699824400 3600 1 WEST} + {3717968400 0 0 WET} + {3731274000 3600 1 WEST} + {3750022800 0 0 WET} + {3762723600 3600 1 WEST} + {3781472400 0 0 WET} + {3794173200 3600 1 WEST} + {3812922000 0 0 WET} + {3825622800 3600 1 WEST} + {3844371600 0 0 WET} + {3857677200 3600 1 WEST} + {3875821200 0 0 WET} + {3889126800 3600 1 WEST} + {3907270800 0 0 WET} + {3920576400 3600 1 WEST} + {3939325200 0 0 WET} + {3952026000 3600 1 WEST} + {3970774800 0 0 WET} + {3983475600 3600 1 WEST} + {4002224400 0 0 WET} + {4015530000 3600 1 WEST} + {4033674000 0 0 WET} + {4046979600 3600 1 WEST} + {4065123600 0 0 WET} + {4078429200 3600 1 WEST} + {4096573200 0 0 WET} +} diff --git a/mingw/lib/tcl8.5/tzdata/Zulu b/mingw/lib/tcl8.5/tzdata/Zulu new file mode 100644 index 00000000..e9748e49 --- /dev/null +++ b/mingw/lib/tcl8.5/tzdata/Zulu @@ -0,0 +1,5 @@ +# created by tools/tclZIC.tcl - do not edit +if {![info exists TZData(Etc/UTC)]} { + LoadTimeZoneFile Etc/UTC +} +set TZData(:Zulu) $TZData(:Etc/UTC) diff --git a/mingw/lib/tcl8.5/word.tcl b/mingw/lib/tcl8.5/word.tcl new file mode 100644 index 00000000..0eb9237b --- /dev/null +++ b/mingw/lib/tcl8.5/word.tcl @@ -0,0 +1,146 @@ +# word.tcl -- +# +# This file defines various procedures for computing word boundaries in +# strings. This file is primarily needed so Tk text and entry widgets behave +# properly for different platforms. +# +# Copyright (c) 1996 by Sun Microsystems, Inc. +# Copyright (c) 1998 by Scritpics Corporation. +# +# See the file "license.terms" for information on usage and redistribution of +# this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: word.tcl,v 1.9 2007/08/01 15:17:12 dkf Exp $ + +# The following variables are used to determine which characters are +# interpreted as white space. + +if {$::tcl_platform(platform) eq "windows"} { + # Windows style - any but a unicode space char + set ::tcl_wordchars {\S} + set ::tcl_nonwordchars {\s} +} else { + # Motif style - any unicode word char (number, letter, or underscore) + set ::tcl_wordchars {\w} + set ::tcl_nonwordchars {\W} +} + +# Arrange for caches of the real matcher REs to be kept, which enables the REs +# themselves to be cached for greater performance (and somewhat greater +# clarity too). + +namespace eval ::tcl { + variable WordBreakRE + array set WordBreakRE {} + + proc UpdateWordBreakREs args { + # Ignores the arguments + global tcl_wordchars tcl_nonwordchars + variable WordBreakRE + + # To keep the RE strings short... + set letter $tcl_wordchars + set space $tcl_nonwordchars + + set WordBreakRE(after) "$letter$space|$space$letter" + set WordBreakRE(before) "^.*($letter$space|$space$letter)" + set WordBreakRE(end) "$space*$letter+$space" + set WordBreakRE(next) "$letter*$space+$letter" + set WordBreakRE(previous) "$space*($letter+)$space*\$" + } + + # Initialize the cache + UpdateWordBreakREs + trace add variable ::tcl_wordchars write ::tcl::UpdateWordBreakREs + trace add variable ::tcl_nonwordchars write ::tcl::UpdateWordBreakREs +} + +# tcl_wordBreakAfter -- +# +# This procedure returns the index of the first word boundary after the +# starting point in the given string, or -1 if there are no more boundaries in +# the given string. The index returned refers to the first character of the +# pair that comprises a boundary. +# +# Arguments: +# str - String to search. +# start - Index into string specifying starting point. + +proc tcl_wordBreakAfter {str start} { + variable ::tcl::WordBreakRE + set result {-1 -1} + regexp -indices -start $start $WordBreakRE(after) $str result + return [lindex $result 1] +} + +# tcl_wordBreakBefore -- +# +# This procedure returns the index of the first word boundary before the +# starting point in the given string, or -1 if there are no more boundaries in +# the given string. The index returned refers to the second character of the +# pair that comprises a boundary. +# +# Arguments: +# str - String to search. +# start - Index into string specifying starting point. + +proc tcl_wordBreakBefore {str start} { + variable ::tcl::WordBreakRE + set result {-1 -1} + regexp -indices $WordBreakRE(before) [string range $str 0 $start] result + return [lindex $result 1] +} + +# tcl_endOfWord -- +# +# This procedure returns the index of the first end-of-word location after a +# starting index in the given string. An end-of-word location is defined to be +# the first whitespace character following the first non-whitespace character +# after the starting point. Returns -1 if there are no more words after the +# starting point. +# +# Arguments: +# str - String to search. +# start - Index into string specifying starting point. + +proc tcl_endOfWord {str start} { + variable ::tcl::WordBreakRE + set result {-1 -1} + regexp -indices -start $start $WordBreakRE(end) $str result + return [lindex $result 1] +} + +# tcl_startOfNextWord -- +# +# This procedure returns the index of the first start-of-word location after a +# starting index in the given string. A start-of-word location is defined to +# be a non-whitespace character following a whitespace character. Returns -1 +# if there are no more start-of-word locations after the starting point. +# +# Arguments: +# str - String to search. +# start - Index into string specifying starting point. + +proc tcl_startOfNextWord {str start} { + variable ::tcl::WordBreakRE + set result {-1 -1} + regexp -indices -start $start $WordBreakRE(next) $str result + return [lindex $result 1] +} + +# tcl_startOfPreviousWord -- +# +# This procedure returns the index of the first start-of-word location before +# a starting index in the given string. +# +# Arguments: +# str - String to search. +# start - Index into string specifying starting point. + +proc tcl_startOfPreviousWord {str start} { + variable ::tcl::WordBreakRE + set word {-1 -1} + regexp -indices $WordBreakRE(previous) [string range $str 0 $start-1] \ + result word + return [lindex $word 0] +} diff --git a/mingw/lib/tcl8/8.4/http-2.5.3.tm b/mingw/lib/tcl8/8.4/http-2.5.3.tm new file mode 100644 index 00000000..f307a203 --- /dev/null +++ b/mingw/lib/tcl8/8.4/http-2.5.3.tm @@ -0,0 +1,1039 @@ +# http.tcl -- +# +# Client-side HTTP for GET, POST, and HEAD commands. These routines can +# be used in untrusted code that uses the Safesock security policy. These +# procedures use a callback interface to avoid using vwait, which is not +# defined in the safe base. +# +# See the file "license.terms" for information on usage and redistribution of +# this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: http.tcl,v 1.60 2007/03/12 22:08:40 patthoyts Exp $ + +# Rough version history: +# 1.0 Old http_get interface. +# 2.0 http:: namespace and http::geturl. +# 2.1 Added callbacks to handle arriving data, and timeouts. +# 2.2 Added ability to fetch into a channel. +# 2.3 Added SSL support, and ability to post from a channel. This version +# also cleans up error cases and eliminates the "ioerror" status in +# favor of raising an error +# 2.4 Added -binary option to http::geturl and charset element to the state +# array. + +package require Tcl 8.4 +# Keep this in sync with pkgIndex.tcl and with the install directories +# in Makefiles +package provide http 2.5.3 + +namespace eval http { + variable http + array set http { + -accept */* + -proxyhost {} + -proxyport {} + -proxyfilter http::ProxyRequired + -urlencoding utf-8 + } + set http(-useragent) "Tcl http client package [package provide http]" + + proc init {} { + # Set up the map for quoting chars. RFC3986 Section 2.3 say percent + # encode all except: "... percent-encoded octets in the ranges of ALPHA + # (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D), period (%2E), + # underscore (%5F), or tilde (%7E) should not be created by URI + # producers ..." + for {set i 0} {$i <= 256} {incr i} { + set c [format %c $i] + if {![string match {[-._~a-zA-Z0-9]} $c]} { + set map($c) %[format %.2x $i] + } + } + # These are handled specially + set map(\n) %0d%0a + variable formMap [array get map] + } + init + + variable urlTypes + array set urlTypes { + http {80 ::socket} + } + + variable encodings [string tolower [encoding names]] + # This can be changed, but iso8859-1 is the RFC standard. + variable defaultCharset "iso8859-1" + + # Force RFC 3986 strictness in geturl url verification? + variable strict 1 + + namespace export geturl config reset wait formatQuery register unregister + # Useful, but not exported: data size status code +} + +# http::register -- +# +# See documentation for details. +# +# Arguments: +# proto URL protocol prefix, e.g. https +# port Default port for protocol +# command Command to use to create socket +# Results: +# list of port and command that was registered. + +proc http::register {proto port command} { + variable urlTypes + set urlTypes($proto) [list $port $command] +} + +# http::unregister -- +# +# Unregisters URL protocol handler +# +# Arguments: +# proto URL protocol prefix, e.g. https +# Results: +# list of port and command that was unregistered. + +proc http::unregister {proto} { + variable urlTypes + if {![info exists urlTypes($proto)]} { + return -code error "unsupported url type \"$proto\"" + } + set old $urlTypes($proto) + unset urlTypes($proto) + return $old +} + +# http::config -- +# +# See documentation for details. +# +# Arguments: +# args Options parsed by the procedure. +# Results: +# TODO + +proc http::config {args} { + variable http + set options [lsort [array names http -*]] + set usage [join $options ", "] + if {[llength $args] == 0} { + set result {} + foreach name $options { + lappend result $name $http($name) + } + return $result + } + set options [string map {- ""} $options] + set pat ^-([join $options |])$ + if {[llength $args] == 1} { + set flag [lindex $args 0] + if {[regexp -- $pat $flag]} { + return $http($flag) + } else { + return -code error "Unknown option $flag, must be: $usage" + } + } else { + foreach {flag value} $args { + if {[regexp -- $pat $flag]} { + set http($flag) $value + } else { + return -code error "Unknown option $flag, must be: $usage" + } + } + } +} + +# http::Finish -- +# +# Clean up the socket and eval close time callbacks +# +# Arguments: +# token Connection token. +# errormsg (optional) If set, forces status to error. +# skipCB (optional) If set, don't call the -command callback. This +# is useful when geturl wants to throw an exception instead +# of calling the callback. That way, the same error isn't +# reported to two places. +# +# Side Effects: +# Closes the socket + +proc http::Finish { token {errormsg ""} {skipCB 0}} { + variable $token + upvar 0 $token state + global errorInfo errorCode + if {[string length $errormsg] != 0} { + set state(error) [list $errormsg $errorInfo $errorCode] + set state(status) error + } + catch {close $state(sock)} + catch {after cancel $state(after)} + if {[info exists state(-command)] && !$skipCB} { + if {[catch {eval $state(-command) {$token}} err]} { + if {[string length $errormsg] == 0} { + set state(error) [list $err $errorInfo $errorCode] + set state(status) error + } + } + if {[info exists state(-command)]} { + # Command callback may already have unset our state + unset state(-command) + } + } +} + +# http::reset -- +# +# See documentation for details. +# +# Arguments: +# token Connection token. +# why Status info. +# +# Side Effects: +# See Finish + +proc http::reset { token {why reset} } { + variable $token + upvar 0 $token state + set state(status) $why + catch {fileevent $state(sock) readable {}} + catch {fileevent $state(sock) writable {}} + Finish $token + if {[info exists state(error)]} { + set errorlist $state(error) + unset state + eval ::error $errorlist + } +} + +# http::geturl -- +# +# Establishes a connection to a remote url via http. +# +# Arguments: +# url The http URL to goget. +# args Option value pairs. Valid options include: +# -blocksize, -validate, -headers, -timeout +# Results: +# Returns a token for this connection. This token is the name of an array +# that the caller should unset to garbage collect the state. + +proc http::geturl { url args } { + variable http + variable urlTypes + variable defaultCharset + variable strict + + # Initialize the state variable, an array. We'll return the name of this + # array as the token for the transaction. + + if {![info exists http(uid)]} { + set http(uid) 0 + } + set token [namespace current]::[incr http(uid)] + variable $token + upvar 0 $token state + reset $token + + # Process command options. + + array set state { + -binary false + -blocksize 8192 + -queryblocksize 8192 + -validate 0 + -headers {} + -timeout 0 + -type application/x-www-form-urlencoded + -queryprogress {} + state header + meta {} + coding {} + currentsize 0 + totalsize 0 + querylength 0 + queryoffset 0 + type text/html + body {} + status "" + http "" + } + # These flags have their types verified [Bug 811170] + array set type { + -binary boolean + -blocksize integer + -queryblocksize integer + -validate boolean + -timeout integer + } + set state(charset) $defaultCharset + set options {-binary -blocksize -channel -command -handler -headers \ + -progress -query -queryblocksize -querychannel -queryprogress\ + -validate -timeout -type} + set usage [join $options ", "] + set options [string map {- ""} $options] + set pat ^-([join $options |])$ + foreach {flag value} $args { + if {[regexp $pat $flag]} { + # Validate numbers + if {[info exists type($flag)] && \ + ![string is $type($flag) -strict $value]} { + unset $token + return -code error "Bad value for $flag ($value), must be $type($flag)" + } + set state($flag) $value + } else { + unset $token + return -code error "Unknown option $flag, can be: $usage" + } + } + + # Make sure -query and -querychannel aren't both specified + + set isQueryChannel [info exists state(-querychannel)] + set isQuery [info exists state(-query)] + if {$isQuery && $isQueryChannel} { + unset $token + return -code error "Can't combine -query and -querychannel options!" + } + + # Validate URL, determine the server host and port, and check proxy case + # Recognize user:pass@host URLs also, although we do not do anything with + # that info yet. + + # URLs have basically four parts. + # First, before the colon, is the protocol scheme (e.g. http) + # Second, for HTTP-like protocols, is the authority + # The authority is preceded by // and lasts up to (but not including) + # the following / and it identifies up to four parts, of which only one, + # the host, is required (if an authority is present at all). All other + # parts of the authority (user name, password, port number) are optional. + # Third is the resource name, which is split into two parts at a ? + # The first part (from the single "/" up to "?") is the path, and the + # second part (from that "?" up to "#") is the query. *HOWEVER*, we do + # not need to separate them; we send the whole lot to the server. + # Fourth is the fragment identifier, which is everything after the first + # "#" in the URL. The fragment identifier MUST NOT be sent to the server + # and indeed, we don't bother to validate it (it could be an error to + # pass it in here, but it's cheap to strip). + # + # An example of a URL that has all the parts: + # http://jschmoe:xyzzy@www.bogus.net:8000/foo/bar.tml?q=foo#changes + # The "http" is the protocol, the user is "jschmoe", the password is + # "xyzzy", the host is "www.bogus.net", the port is "8000", the path is + # "/foo/bar.tml", the query is "q=foo", and the fragment is "changes". + # + # Note that the RE actually combines the user and password parts, as + # recommended in RFC 3986. Indeed, that RFC states that putting passwords + # in URLs is a Really Bad Idea, something with which I would agree utterly. + # Also note that we do not currently support IPv6 addresses. + # + # From a validation perspective, we need to ensure that the parts of the + # URL that are going to the server are correctly encoded. + # This is only done if $::http::strict is true (default 0 for compat). + + set URLmatcher {(?x) # this is _expanded_ syntax + ^ + (?: (\w+) : ) ? # + (?: // + (?: + ( + [^@/\#?]+ # + ) @ + )? + ( [^/:\#?]+ ) # + (?: : (\d+) )? # + )? + ( / [^\#?]* (?: \? [^\#?]* )?)? # (including query) + (?: \# (.*) )? # + $ + } + + # Phase one: parse + if {![regexp -- $URLmatcher $url -> proto user host port srvurl]} { + unset $token + return -code error "Unsupported URL: $url" + } + # Phase two: validate + if {$host eq ""} { + # Caller has to provide a host name; we do not have a "default host" + # that would enable us to handle relative URLs. + unset $token + return -code error "Missing host part: $url" + # Note that we don't check the hostname for validity here; if it's + # invalid, we'll simply fail to resolve it later on. + } + if {$port ne "" && $port>65535} { + unset $token + return -code error "Invalid port number: $port" + } + # The user identification and resource identification parts of the URL can + # have encoded characters in them; take care! + if {$user ne ""} { + # Check for validity according to RFC 3986, Appendix A + set validityRE {(?xi) + ^ + (?: [-\w.~!$&'()*+,;=:] | %[0-9a-f][0-9a-f] )+ + $ + } + if {$strict && ![regexp -- $validityRE $user]} { + unset $token + # Provide a better error message in this error case + if {[regexp {(?i)%(?![0-9a-f][0-9a-f]).?.?} $user bad]} { + return -code error \ + "Illegal encoding character usage \"$bad\" in URL user" + } + return -code error "Illegal characters in URL user" + } + } + if {$srvurl ne ""} { + # Check for validity according to RFC 3986, Appendix A + set validityRE {(?xi) + ^ + # Path part (already must start with / character) + (?: [-\w.~!$&'()*+,;=:@/] | %[0-9a-f][0-9a-f] )* + # Query part (optional, permits ? characters) + (?: \? (?: [-\w.~!$&'()*+,;=:@/?] | %[0-9a-f][0-9a-f] )* )? + $ + } + if {$strict && ![regexp -- $validityRE $srvurl]} { + unset $token + # Provide a better error message in this error case + if {[regexp {(?i)%(?![0-9a-f][0-9a-f])..} $srvurl bad]} { + return -code error \ + "Illegal encoding character usage \"$bad\" in URL path" + } + return -code error "Illegal characters in URL path" + } + } else { + set srvurl / + } + if {[string length $proto] == 0} { + set proto http + } + if {![info exists urlTypes($proto)]} { + unset $token + return -code error "Unsupported URL type \"$proto\"" + } + set defport [lindex $urlTypes($proto) 0] + set defcmd [lindex $urlTypes($proto) 1] + + if {[string length $port] == 0} { + set port $defport + } + if {![catch {$http(-proxyfilter) $host} proxy]} { + set phost [lindex $proxy 0] + set pport [lindex $proxy 1] + } + + # OK, now reassemble into a full URL + set url ${proto}:// + if {$user ne ""} { + append url $user + append url @ + } + append url $host + if {$port != $defport} { + append url : $port + } + append url $srvurl + # Don't append the fragment! + set state(url) $url + + # If a timeout is specified we set up the after event and arrange for an + # asynchronous socket connection. + + if {$state(-timeout) > 0} { + set state(after) [after $state(-timeout) \ + [list http::reset $token timeout]] + set async -async + } else { + set async "" + } + + # If we are using the proxy, we must pass in the full URL that includes + # the server name. + + if {[info exists phost] && [string length $phost]} { + set srvurl $url + set conStat [catch {eval $defcmd $async {$phost $pport}} s] + } else { + set conStat [catch {eval $defcmd $async {$host $port}} s] + } + + if {$conStat} { + # Something went wrong while trying to establish the connection. Clean + # up after events and such, but DON'T call the command callback (if + # available) because we're going to throw an exception from here + # instead. + Finish $token "" 1 + cleanup $token + return -code error $s + } + set state(sock) $s + + # Wait for the connection to complete. + + if {$state(-timeout) > 0} { + fileevent $s writable [list http::Connect $token] + http::wait $token + + if {$state(status) eq "error"} { + # Something went wrong while trying to establish the connection. + # Clean up after events and such, but DON'T call the command + # callback (if available) because we're going to throw an + # exception from here instead. + set err [lindex $state(error) 0] + cleanup $token + return -code error $err + } elseif {$state(status) ne "connect"} { + # Likely to be connection timeout + return $token + } + set state(status) "" + } + + # Send data in cr-lf format, but accept any line terminators + + fconfigure $s -translation {auto crlf} -buffersize $state(-blocksize) + + # The following is disallowed in safe interpreters, but the socket is + # already in non-blocking mode in that case. + + catch {fconfigure $s -blocking off} + set how GET + if {$isQuery} { + set state(querylength) [string length $state(-query)] + if {$state(querylength) > 0} { + set how POST + set contDone 0 + } else { + # There's no query data. + unset state(-query) + set isQuery 0 + } + } elseif {$state(-validate)} { + set how HEAD + } elseif {$isQueryChannel} { + set how POST + # The query channel must be blocking for the async Write to + # work properly. + fconfigure $state(-querychannel) -blocking 1 -translation binary + set contDone 0 + } + + if {[catch { + puts $s "$how $srvurl HTTP/1.0" + puts $s "Accept: $http(-accept)" + if {$port == $defport} { + # Don't add port in this case, to handle broken servers. [Bug + # 504508] + puts $s "Host: $host" + } else { + puts $s "Host: $host:$port" + } + puts $s "User-Agent: $http(-useragent)" + foreach {key value} $state(-headers) { + set value [string map [list \n "" \r ""] $value] + set key [string trim $key] + if {$key eq "Content-Length"} { + set contDone 1 + set state(querylength) $value + } + if {[string length $key]} { + puts $s "$key: $value" + } + } + if {$isQueryChannel && $state(querylength) == 0} { + # Try to determine size of data in channel. If we cannot seek, the + # surrounding catch will trap us + + set start [tell $state(-querychannel)] + seek $state(-querychannel) 0 end + set state(querylength) \ + [expr {[tell $state(-querychannel)] - $start}] + seek $state(-querychannel) $start + } + + # Flush the request header and set up the fileevent that will either + # push the POST data or read the response. + # + # fileevent note: + # + # It is possible to have both the read and write fileevents active at + # this point. The only scenario it seems to affect is a server that + # closes the connection without reading the POST data. (e.g., early + # versions TclHttpd in various error cases). Depending on the platform, + # the client may or may not be able to get the response from the server + # because of the error it will get trying to write the post data. + # Having both fileevents active changes the timing and the behavior, + # but no two platforms (among Solaris, Linux, and NT) behave the same, + # and none behave all that well in any case. Servers should always read + # their POST data if they expect the client to read their response. + + if {$isQuery || $isQueryChannel} { + puts $s "Content-Type: $state(-type)" + if {!$contDone} { + puts $s "Content-Length: $state(querylength)" + } + puts $s "" + fconfigure $s -translation {auto binary} + fileevent $s writable [list http::Write $token] + } else { + puts $s "" + flush $s + fileevent $s readable [list http::Event $token] + } + + if {! [info exists state(-command)]} { + # geturl does EVERYTHING asynchronously, so if the user calls it + # synchronously, we just do a wait here. + + wait $token + if {$state(status) eq "error"} { + # Something went wrong, so throw the exception, and the + # enclosing catch will do cleanup. + return -code error [lindex $state(error) 0] + } + } + } err]} { + # The socket probably was never connected, or the connection dropped + # later. + + # Clean up after events and such, but DON'T call the command callback + # (if available) because we're going to throw an exception from here + # instead. + + # if state(status) is error, it means someone's already called Finish + # to do the above-described clean up. + if {$state(status) eq "error"} { + Finish $token $err 1 + } + cleanup $token + return -code error $err + } + + return $token +} + +# Data access functions: +# Data - the URL data +# Status - the transaction status: ok, reset, eof, timeout +# Code - the HTTP transaction code, e.g., 200 +# Size - the size of the URL data + +proc http::data {token} { + variable $token + upvar 0 $token state + return $state(body) +} +proc http::status {token} { + variable $token + upvar 0 $token state + return $state(status) +} +proc http::code {token} { + variable $token + upvar 0 $token state + return $state(http) +} +proc http::ncode {token} { + variable $token + upvar 0 $token state + if {[regexp {[0-9]{3}} $state(http) numeric_code]} { + return $numeric_code + } else { + return $state(http) + } +} +proc http::size {token} { + variable $token + upvar 0 $token state + return $state(currentsize) +} + +proc http::error {token} { + variable $token + upvar 0 $token state + if {[info exists state(error)]} { + return $state(error) + } + return "" +} + +# http::cleanup +# +# Garbage collect the state associated with a transaction +# +# Arguments +# token The token returned from http::geturl +# +# Side Effects +# unsets the state array + +proc http::cleanup {token} { + variable $token + upvar 0 $token state + if {[info exists state]} { + unset state + } +} + +# http::Connect +# +# This callback is made when an asyncronous connection completes. +# +# Arguments +# token The token returned from http::geturl +# +# Side Effects +# Sets the status of the connection, which unblocks +# the waiting geturl call + +proc http::Connect {token} { + variable $token + upvar 0 $token state + global errorInfo errorCode + if {[eof $state(sock)] || + [string length [fconfigure $state(sock) -error]]} { + Finish $token "connect failed [fconfigure $state(sock) -error]" 1 + } else { + set state(status) connect + fileevent $state(sock) writable {} + } + return +} + +# http::Write +# +# Write POST query data to the socket +# +# Arguments +# token The token for the connection +# +# Side Effects +# Write the socket and handle callbacks. + +proc http::Write {token} { + variable $token + upvar 0 $token state + set s $state(sock) + + # Output a block. Tcl will buffer this if the socket blocks + set done 0 + if {[catch { + # Catch I/O errors on dead sockets + + if {[info exists state(-query)]} { + # Chop up large query strings so queryprogress callback can give + # smooth feedback. + + puts -nonewline $s \ + [string range $state(-query) $state(queryoffset) \ + [expr {$state(queryoffset) + $state(-queryblocksize) - 1}]] + incr state(queryoffset) $state(-queryblocksize) + if {$state(queryoffset) >= $state(querylength)} { + set state(queryoffset) $state(querylength) + set done 1 + } + } else { + # Copy blocks from the query channel + + set outStr [read $state(-querychannel) $state(-queryblocksize)] + puts -nonewline $s $outStr + incr state(queryoffset) [string length $outStr] + if {[eof $state(-querychannel)]} { + set done 1 + } + } + } err]} { + # Do not call Finish here, but instead let the read half of the socket + # process whatever server reply there is to get. + + set state(posterror) $err + set done 1 + } + if {$done} { + catch {flush $s} + fileevent $s writable {} + fileevent $s readable [list http::Event $token] + } + + # Callback to the client after we've completely handled everything. + + if {[string length $state(-queryprogress)]} { + eval $state(-queryprogress) [list $token $state(querylength)\ + $state(queryoffset)] + } +} + +# http::Event +# +# Handle input on the socket +# +# Arguments +# token The token returned from http::geturl +# +# Side Effects +# Read the socket and handle callbacks. + +proc http::Event {token} { + variable $token + upvar 0 $token state + set s $state(sock) + + if {[eof $s]} { + Eof $token + return + } + if {$state(state) eq "header"} { + if {[catch {gets $s line} n]} { + Finish $token $n + } elseif {$n == 0} { + variable encodings + set state(state) body + if {$state(-binary) || ![string match -nocase text* $state(type)] + || [string match *gzip* $state(coding)] + || [string match *compress* $state(coding)]} { + # Turn off conversions for non-text data + fconfigure $s -translation binary + if {[info exists state(-channel)]} { + fconfigure $state(-channel) -translation binary + } + } else { + # If we are getting text, set the incoming channel's encoding + # correctly. iso8859-1 is the RFC default, but this could be + # any IANA charset. However, we only know how to convert what + # we have encodings for. + set idx [lsearch -exact $encodings \ + [string tolower $state(charset)]] + if {$idx >= 0} { + fconfigure $s -encoding [lindex $encodings $idx] + } + } + if {[info exists state(-channel)] && \ + ![info exists state(-handler)]} { + # Initiate a sequence of background fcopies + fileevent $s readable {} + CopyStart $s $token + } + } elseif {$n > 0} { + if {[regexp -nocase {^content-type:(.+)$} $line x type]} { + set state(type) [string trim $type] + # grab the optional charset information + regexp -nocase {charset\s*=\s*(\S+)} $type x state(charset) + } + if {[regexp -nocase {^content-length:(.+)$} $line x length]} { + set state(totalsize) [string trim $length] + } + if {[regexp -nocase {^content-encoding:(.+)$} $line x coding]} { + set state(coding) [string trim $coding] + } + if {[regexp -nocase {^([^:]+):(.+)$} $line x key value]} { + lappend state(meta) $key [string trim $value] + } elseif {[string match HTTP* $line]} { + set state(http) $line + } + } + } else { + if {[catch { + if {[info exists state(-handler)]} { + set n [eval $state(-handler) {$s $token}] + } else { + set block [read $s $state(-blocksize)] + set n [string length $block] + if {$n >= 0} { + append state(body) $block + } + } + if {$n >= 0} { + incr state(currentsize) $n + } + } err]} { + Finish $token $err + } else { + if {[info exists state(-progress)]} { + eval $state(-progress) \ + {$token $state(totalsize) $state(currentsize)} + } + } + } +} + +# http::CopyStart +# +# Error handling wrapper around fcopy +# +# Arguments +# s The socket to copy from +# token The token returned from http::geturl +# +# Side Effects +# This closes the connection upon error + +proc http::CopyStart {s token} { + variable $token + upvar 0 $token state + if {[catch { + fcopy $s $state(-channel) -size $state(-blocksize) -command \ + [list http::CopyDone $token] + } err]} { + Finish $token $err + } +} + +# http::CopyDone +# +# fcopy completion callback +# +# Arguments +# token The token returned from http::geturl +# count The amount transfered +# +# Side Effects +# Invokes callbacks + +proc http::CopyDone {token count {error {}}} { + variable $token + upvar 0 $token state + set s $state(sock) + incr state(currentsize) $count + if {[info exists state(-progress)]} { + eval $state(-progress) {$token $state(totalsize) $state(currentsize)} + } + # At this point the token may have been reset + if {[string length $error]} { + Finish $token $error + } elseif {[catch {eof $s} iseof] || $iseof} { + Eof $token + } else { + CopyStart $s $token + } +} + +# http::Eof +# +# Handle eof on the socket +# +# Arguments +# token The token returned from http::geturl +# +# Side Effects +# Clean up the socket + +proc http::Eof {token} { + variable $token + upvar 0 $token state + if {$state(state) eq "header"} { + # Premature eof + set state(status) eof + } else { + set state(status) ok + } + set state(state) eof + Finish $token +} + +# http::wait -- +# +# See documentation for details. +# +# Arguments: +# token Connection token. +# +# Results: +# The status after the wait. + +proc http::wait {token} { + variable $token + upvar 0 $token state + + if {![info exists state(status)] || [string length $state(status)] == 0} { + # We must wait on the original variable name, not the upvar alias + vwait $token\(status) + } + + return $state(status) +} + +# http::formatQuery -- +# +# See documentation for details. Call http::formatQuery with an even +# number of arguments, where the first is a name, the second is a value, +# the third is another name, and so on. +# +# Arguments: +# args A list of name-value pairs. +# +# Results: +# TODO + +proc http::formatQuery {args} { + set result "" + set sep "" + foreach i $args { + append result $sep [mapReply $i] + if {$sep eq "="} { + set sep & + } else { + set sep = + } + } + return $result +} + +# http::mapReply -- +# +# Do x-www-urlencoded character mapping +# +# Arguments: +# string The string the needs to be encoded +# +# Results: +# The encoded string + +proc http::mapReply {string} { + variable http + variable formMap + + # The spec says: "non-alphanumeric characters are replaced by '%HH'". Use + # a pre-computed map and [string map] to do the conversion (much faster + # than [regsub]/[subst]). [Bug 1020491] + + if {$http(-urlencoding) ne ""} { + set string [encoding convertto $http(-urlencoding) $string] + return [string map $formMap $string] + } + set converted [string map $formMap $string] + if {[string match "*\[\u0100-\uffff\]*" $converted]} { + regexp {[\u0100-\uffff]} $converted badChar + # Return this error message for maximum compatability... :^/ + return -code error \ + "can't read \"formMap($badChar)\": no such element in array" + } + return $converted +} + +# http::ProxyRequired -- +# Default proxy filter. +# +# Arguments: +# host The destination host +# +# Results: +# The current proxy settings + +proc http::ProxyRequired {host} { + variable http + if {[info exists http(-proxyhost)] && [string length $http(-proxyhost)]} { + if {![info exists http(-proxyport)] || \ + ![string length $http(-proxyport)]} { + set http(-proxyport) 8080 + } + return [list $http(-proxyhost) $http(-proxyport)] + } +} diff --git a/mingw/lib/tcl8/8.4/platform-1.0.3.tm b/mingw/lib/tcl8/8.4/platform-1.0.3.tm new file mode 100644 index 00000000..143cdc5c --- /dev/null +++ b/mingw/lib/tcl8/8.4/platform-1.0.3.tm @@ -0,0 +1,270 @@ +# -*- tcl -*- +# ### ### ### ######### ######### ######### +## Overview + +# Heuristics to assemble a platform identifier from publicly available +# information. The identifier describes the platform of the currently +# running tcl shell. This is a mixture of the runtime environment and +# of build-time properties of the executable itself. +# +# Examples: +# <1> A tcl shell executing on a x86_64 processor, but having a +# wordsize of 4 was compiled for the x86 environment, i.e. 32 +# bit, and loaded packages have to match that, and not the +# actual cpu. +# +# <2> The hp/solaris 32/64 bit builds of the core cannot be +# distinguished by looking at tcl_platform. As packages have to +# match the 32/64 information we have to look in more places. In +# this case we inspect the executable itself (magic numbers, +# i.e. fileutil::magic::filetype). +# +# The basic information used comes out of the 'os' and 'machine' +# entries of the 'tcl_platform' array. A number of general and +# os/machine specific transformation are applied to get a canonical +# result. +# +# General +# Only the first element of 'os' is used - we don't care whether we +# are on "Windows NT" or "Windows XP" or whatever. +# +# Machine specific +# % arm* -> arm +# % sun4* -> sparc +# % intel -> ix86 +# % i*86* -> ix86 +# % Power* -> powerpc +# % x86_64 + wordSize 4 => x86 code +# +# OS specific +# % AIX are always powerpc machines +# % HP-UX 9000/800 etc means parisc +# % linux has to take glibc version into account +# % sunos -> solaris, and keep version number +# +# NOTE: A platform like linux glibc 2.3, which can use glibc 2.2 stuff +# has to provide all possible allowed platform identifiers when +# searching search. Ditto a solaris 2.8 platform can use solaris 2.6 +# packages. Etc. This is handled by the other procedure, see below. + +# ### ### ### ######### ######### ######### +## Requirements + +namespace eval ::platform {} + +# ### ### ### ######### ######### ######### +## Implementation + +# -- platform::generic +# +# Assembles an identifier for the generic platform. It leaves out +# details like kernel version, libc version, etc. + +proc ::platform::generic {} { + global tcl_platform + + set plat [string tolower [lindex $tcl_platform(os) 0]] + set cpu $tcl_platform(machine) + + switch -glob -- $cpu { + sun4* { + set cpu sparc + } + intel - + i*86* { + set cpu ix86 + } + x86_64 { + if {$tcl_platform(wordSize) == 4} { + # See Example <1> at the top of this file. + set cpu ix86 + } + } + "Power*" { + set cpu powerpc + } + "arm*" { + set cpu arm + } + ia64 { + if {$tcl_platform(wordSize) == 4} { + append cpu _32 + } + } + } + + switch -- $plat { + windows { + set plat win32 + if {$cpu eq "amd64"} { + # Do not check wordSize, win32-x64 is an IL32P64 platform. + set cpu x86_64 + } + } + sunos { + set plat solaris + if {$cpu ne "ia64"} { + if {$tcl_platform(wordSize) == 8} { + append cpu 64 + } + } + } + darwin { + set plat macosx + } + aix { + set cpu powerpc + if {$tcl_platform(wordSize) == 8} { + append cpu 64 + } + } + hp-ux { + set plat hpux + if {$cpu ne "ia64"} { + set cpu parisc + if {$tcl_platform(wordSize) == 8} { + append cpu 64 + } + } + } + osf1 { + set plat tru64 + } + } + + return "${plat}-${cpu}" +} + +# -- platform::identify +# +# Assembles an identifier for the exact platform, by extending the +# generic identifier. I.e. it adds in details like kernel version, +# libc version, etc., if they are relevant for the loading of +# packages on the platform. + +proc ::platform::identify {} { + global tcl_platform + + set id [generic] + regexp {^([^-]+)-([^-]+)$} $id -> plat cpu + + switch -- $plat { + solaris { + regsub {^5} $tcl_platform(osVersion) 2 text + append plat $text + return "${plat}-${cpu}" + } + linux { + # Look for the libc*.so and determine its version + # (libc5/6, libc6 further glibc 2.X) + + set v unknown + + if {[file exists /lib64] && [file isdirectory /lib64]} { + set base /lib64 + } else { + set base /lib + } + + set libclist [lsort [glob -nocomplain -directory $base libc*]] + if {[llength $libclist]} { + set libc [lindex $libclist 0] + + # Try executing the library first. This should suceed + # for a glibc library, and return the version + # information. + + if {![catch { + set vdata [lindex [split [exec $libc] \n] 0] + }]} { + regexp {([0-9]+(\.[0-9]+)*)} $vdata -> v + foreach {major minor} [split $v .] break + set v glibc${major}.${minor} + } else { + # We had trouble executing the library. We are now + # inspecting its name to determine the version + # number. This code by Larry McVoy. + + if {[regexp -- {libc-([0-9]+)\.([0-9]+)} $libc -> major minor]} { + set v glibc${major}.${minor} + } + } + } + append plat -$v + return "${plat}-${cpu}" + } + } + + return $id +} + +# -- platform::patterns +# +# Given an exact platform identifier, i.e. _not_ the generic +# identifier it assembles a list of exact platform identifier +# describing platform which should be compatible with the +# input. +# +# I.e. packages for all platforms in the result list should be +# loadable on the specified platform. + +# << Should we add the generic identifier to the list as well ? In +# general it is not compatible I believe. So better not. In many +# cases the exact identifier is identical to the generic one +# anyway. +# >> + +proc ::platform::patterns {id} { + set res [list $id] + if {$id eq "tcl"} {return $res} + + switch -glob -- $id { + solaris*-* { + if {[regexp {solaris([^-]*)-(.*)} $id -> v cpu]} { + if {$v eq ""} {return $id} + foreach {major minor} [split $v .] break + incr minor -1 + for {set j $minor} {$j >= 6} {incr j -1} { + lappend res solaris${major}.${j}-${cpu} + } + } + } + linux*-* { + if {[regexp {linux-glibc([^-]*)-(.*)} $id -> v cpu]} { + foreach {major minor} [split $v .] break + incr minor -1 + for {set j $minor} {$j >= 0} {incr j -1} { + lappend res linux-glibc${major}.${j}-${cpu} + } + } + } + macosx-powerpc - + macosx-ix86 { + lappend res macosx-universal + } + } + lappend res tcl ; # Pure tcl packages are always compatible. + return $res +} + + +# ### ### ### ######### ######### ######### +## Ready + +package provide platform 1.0.3 + +# ### ### ### ######### ######### ######### +## Demo application + +if {[info exists argv0] && ($argv0 eq [info script])} { + puts ==================================== + parray tcl_platform + puts ==================================== + puts Generic\ identification:\ [::platform::generic] + puts Exact\ identification:\ \ \ [::platform::identify] + puts ==================================== + puts Search\ patterns: + puts *\ [join [::platform::patterns [::platform::identify]] \n*\ ] + puts ==================================== + exit 0 +} diff --git a/mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm b/mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm new file mode 100644 index 00000000..b007666f --- /dev/null +++ b/mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm @@ -0,0 +1,236 @@ +# -*- tcl -*- +# ### ### ### ######### ######### ######### +## Overview + +# Higher-level commands which invoke the functionality of this package +# for an arbitrary tcl shell (tclsh, wish, ...). This is required by a +# repository as while the tcl shell executing packages uses the same +# platform in general as a repository application there can be +# differences in detail (i.e. 32/64 bit builds). + +# ### ### ### ######### ######### ######### +## Requirements + +package require platform +namespace eval ::platform::shell {} + +# ### ### ### ######### ######### ######### +## Implementation + +# -- platform::shell::generic + +proc ::platform::shell::generic {shell} { + # Argument is the path to a tcl shell. + + CHECK $shell + LOCATE base out + + set code {} + # Forget any pre-existing platform package, it might be in + # conflict with this one. + lappend code {package forget platform} + # Inject our platform package + lappend code [list source $base] + # Query and print the architecture + lappend code {puts [platform::generic]} + # And done + lappend code {exit 0} + + set arch [RUN $shell [join $code \n]] + + if {$out} {file delete -force $base} + return $arch +} + +# -- platform::shell::identify + +proc ::platform::shell::identify {shell} { + # Argument is the path to a tcl shell. + + CHECK $shell + LOCATE base out + + set code {} + # Forget any pre-existing platform package, it might be in + # conflict with this one. + lappend code {package forget platform} + # Inject our platform package + lappend code [list source $base] + # Query and print the architecture + lappend code {puts [platform::identify]} + # And done + lappend code {exit 0} + + set arch [RUN $shell [join $code \n]] + + if {$out} {file delete -force $base} + return $arch +} + +# -- platform::shell::platform + +proc ::platform::shell::platform {shell} { + # Argument is the path to a tcl shell. + + CHECK $shell + + set code {} + lappend code {puts $tcl_platform(platform)} + lappend code {exit 0} + + return [RUN $shell [join $code \n]] +} + +# ### ### ### ######### ######### ######### +## Internal helper commands. + +proc ::platform::shell::CHECK {shell} { + if {![file exists $shell]} { + return -code error "Shell \"$shell\" does not exist" + } + if {![file executable $shell]} { + return -code error "Shell \"$shell\" is not executable (permissions)" + } + return +} + +proc ::platform::shell::LOCATE {bv ov} { + upvar 1 $bv base $ov out + + # Locate the platform package for injection into the specified + # shell. We are using package management to find it, whereever it + # is, instead of using hardwired relative paths. This allows us to + # install the two packages as TMs without breaking the code + # here. If the found package is wrapped we copy the code somewhere + # where the spawned shell will be able to read it. + + set pl [package ifneeded platform [package require platform]] + foreach {cmd base} $pl break + + set out 0 + if {[lindex [file system $base]] ne "native"} { + set temp [TEMP] + file copy -force $base $temp + set base $temp + set out 1 + } + return +} + +proc ::platform::shell::RUN {shell code} { + set c [TEMP] + set cc [open $c w] + puts $cc $code + close $cc + + set e [TEMP] + + set code [catch { + exec $shell $c 2> $e + } res] + + file delete $c + + if {$code} { + append res \n[read [set chan [open $e r]]][close $chan] + file delete $e + return -code error "Shell \"$shell\" is not executable ($res)" + } + + file delete $e + return $res +} + +proc ::platform::shell::TEMP {} { + set prefix platform + + # This code is copied out of Tcllib's fileutil package. + # (TempFile/tempfile) + + set tmpdir [DIR] + + set chars "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + set nrand_chars 10 + set maxtries 10 + set access [list RDWR CREAT EXCL TRUNC] + set permission 0600 + set channel "" + set checked_dir_writable 0 + set mypid [pid] + for {set i 0} {$i < $maxtries} {incr i} { + set newname $prefix + for {set j 0} {$j < $nrand_chars} {incr j} { + append newname [string index $chars \ + [expr {int(rand()*62)}]] + } + set newname [file join $tmpdir $newname] + if {[file exists $newname]} { + after 1 + } else { + if {[catch {open $newname $access $permission} channel]} { + if {!$checked_dir_writable} { + set dirname [file dirname $newname] + if {![file writable $dirname]} { + return -code error "Directory $dirname is not writable" + } + set checked_dir_writable 1 + } + } else { + # Success + close $channel + return [file normalize $newname] + } + } + } + if {[string compare $channel ""]} { + return -code error "Failed to open a temporary file: $channel" + } else { + return -code error "Failed to find an unused temporary file name" + } +} + +proc ::platform::shell::DIR {} { + # This code is copied out of Tcllib's fileutil package. + # (TempDir/tempdir) + + global tcl_platform env + + set attempdirs [list] + + foreach tmp {TMPDIR TEMP TMP} { + if { [info exists env($tmp)] } { + lappend attempdirs $env($tmp) + } + } + + switch $tcl_platform(platform) { + windows { + lappend attempdirs "C:\\TEMP" "C:\\TMP" "\\TEMP" "\\TMP" + } + macintosh { + set tmpdir $env(TRASH_FOLDER) ;# a better place? + } + default { + lappend attempdirs \ + [file join / tmp] \ + [file join / var tmp] \ + [file join / usr tmp] + } + } + + lappend attempdirs [pwd] + + foreach tmp $attempdirs { + if { [file isdirectory $tmp] && [file writable $tmp] } { + return [file normalize $tmp] + } + } + + # Fail if nothing worked. + return -code error "Unable to determine a proper directory for temporary files" +} + +# ### ### ### ######### ######### ######### +## Ready + +package provide platform::shell 1.1.3 diff --git a/mingw/lib/tcl8/8.5/msgcat-1.4.2.tm b/mingw/lib/tcl8/8.5/msgcat-1.4.2.tm new file mode 100644 index 00000000..ccf4054d --- /dev/null +++ b/mingw/lib/tcl8/8.5/msgcat-1.4.2.tm @@ -0,0 +1,510 @@ +# msgcat.tcl -- +# +# This file defines various procedures which implement a +# message catalog facility for Tcl programs. It should be +# loaded with the command "package require msgcat". +# +# Copyright (c) 1998-2000 by Ajuba Solutions. +# Copyright (c) 1998 by Mark Harrison. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# RCS: @(#) $Id: msgcat.tcl,v 1.26 2006/11/03 00:34:52 hobbs Exp $ + +package require Tcl 8.5 +# When the version number changes, be sure to update the pkgIndex.tcl file, +# and the installation directory in the Makefiles. +package provide msgcat 1.4.2 + +namespace eval msgcat { + namespace export mc mcload mclocale mcmax mcmset mcpreferences mcset \ + mcunknown + + # Records the current locale as passed to mclocale + variable Locale "" + + # Records the list of locales to search + variable Loclist {} + + # Records the mapping between source strings and translated strings. The + # dict key is of the form " ", where locale and + # namespace should be themselves dict values and the value is + # the translated string. + variable Msgs [dict create] + + # Map of language codes used in Windows registry to those of ISO-639 + if { $::tcl_platform(platform) eq "windows" } { + variable WinRegToISO639 [dict create {*}{ + 01 ar 0401 ar_SA 0801 ar_IQ 0c01 ar_EG 1001 ar_LY 1401 ar_DZ + 1801 ar_MA 1c01 ar_TN 2001 ar_OM 2401 ar_YE 2801 ar_SY + 2c01 ar_JO 3001 ar_LB 3401 ar_KW 3801 ar_AE 3c01 ar_BH + 4001 ar_QA + 02 bg 0402 bg_BG + 03 ca 0403 ca_ES + 04 zh 0404 zh_TW 0804 zh_CN 0c04 zh_HK 1004 zh_SG 1404 zh_MO + 05 cs 0405 cs_CZ + 06 da 0406 da_DK + 07 de 0407 de_DE 0807 de_CH 0c07 de_AT 1007 de_LU 1407 de_LI + 08 el 0408 el_GR + 09 en 0409 en_US 0809 en_GB 0c09 en_AU 1009 en_CA 1409 en_NZ + 1809 en_IE 1c09 en_ZA 2009 en_JM 2409 en_GD 2809 en_BZ + 2c09 en_TT 3009 en_ZW 3409 en_PH + 0a es 040a es_ES 080a es_MX 0c0a es_ES@modern 100a es_GT 140a es_CR + 180a es_PA 1c0a es_DO 200a es_VE 240a es_CO 280a es_PE + 2c0a es_AR 300a es_EC 340a es_CL 380a es_UY 3c0a es_PY + 400a es_BO 440a es_SV 480a es_HN 4c0a es_NI 500a es_PR + 0b fi 040b fi_FI + 0c fr 040c fr_FR 080c fr_BE 0c0c fr_CA 100c fr_CH 140c fr_LU + 180c fr_MC + 0d he 040d he_IL + 0e hu 040e hu_HU + 0f is 040f is_IS + 10 it 0410 it_IT 0810 it_CH + 11 ja 0411 ja_JP + 12 ko 0412 ko_KR + 13 nl 0413 nl_NL 0813 nl_BE + 14 no 0414 no_NO 0814 nn_NO + 15 pl 0415 pl_PL + 16 pt 0416 pt_BR 0816 pt_PT + 17 rm 0417 rm_CH + 18 ro 0418 ro_RO + 19 ru + 1a hr 041a hr_HR 081a sr_YU 0c1a sr_YU@cyrillic + 1b sk 041b sk_SK + 1c sq 041c sq_AL + 1d sv 041d sv_SE 081d sv_FI + 1e th 041e th_TH + 1f tr 041f tr_TR + 20 ur 0420 ur_PK 0820 ur_IN + 21 id 0421 id_ID + 22 uk 0422 uk_UA + 23 be 0423 be_BY + 24 sl 0424 sl_SI + 25 et 0425 et_EE + 26 lv 0426 lv_LV + 27 lt 0427 lt_LT + 28 tg 0428 tg_TJ + 29 fa 0429 fa_IR + 2a vi 042a vi_VN + 2b hy 042b hy_AM + 2c az 042c az_AZ@latin 082c az_AZ@cyrillic + 2d eu + 2e wen 042e wen_DE + 2f mk 042f mk_MK + 30 bnt 0430 bnt_TZ + 31 ts 0431 ts_ZA + 33 ven 0433 ven_ZA + 34 xh 0434 xh_ZA + 35 zu 0435 zu_ZA + 36 af 0436 af_ZA + 37 ka 0437 ka_GE + 38 fo 0438 fo_FO + 39 hi 0439 hi_IN + 3a mt 043a mt_MT + 3b se 043b se_NO + 043c gd_UK 083c ga_IE + 3d yi 043d yi_IL + 3e ms 043e ms_MY 083e ms_BN + 3f kk 043f kk_KZ + 40 ky 0440 ky_KG + 41 sw 0441 sw_KE + 42 tk 0442 tk_TM + 43 uz 0443 uz_UZ@latin 0843 uz_UZ@cyrillic + 44 tt 0444 tt_RU + 45 bn 0445 bn_IN + 46 pa 0446 pa_IN + 47 gu 0447 gu_IN + 48 or 0448 or_IN + 49 ta + 4a te 044a te_IN + 4b kn 044b kn_IN + 4c ml 044c ml_IN + 4d as 044d as_IN + 4e mr 044e mr_IN + 4f sa 044f sa_IN + 50 mn + 51 bo 0451 bo_CN + 52 cy 0452 cy_GB + 53 km 0453 km_KH + 54 lo 0454 lo_LA + 55 my 0455 my_MM + 56 gl 0456 gl_ES + 57 kok 0457 kok_IN + 58 mni 0458 mni_IN + 59 sd + 5a syr 045a syr_TR + 5b si 045b si_LK + 5c chr 045c chr_US + 5d iu 045d iu_CA + 5e am 045e am_ET + 5f ber 045f ber_MA + 60 ks 0460 ks_PK 0860 ks_IN + 61 ne 0461 ne_NP 0861 ne_IN + 62 fy 0462 fy_NL + 63 ps + 64 tl 0464 tl_PH + 65 div 0465 div_MV + 66 bin 0466 bin_NG + 67 ful 0467 ful_NG + 68 ha 0468 ha_NG + 69 nic 0469 nic_NG + 6a yo 046a yo_NG + 70 ibo 0470 ibo_NG + 71 kau 0471 kau_NG + 72 om 0472 om_ET + 73 ti 0473 ti_ET + 74 gn 0474 gn_PY + 75 cpe 0475 cpe_US + 76 la 0476 la_VA + 77 so 0477 so_SO + 78 sit 0478 sit_CN + 79 pap 0479 pap_AN + }] + } +} + +# msgcat::mc -- +# +# Find the translation for the given string based on the current +# locale setting. Check the local namespace first, then look in each +# parent namespace until the source is found. If additional args are +# specified, use the format command to work them into the traslated +# string. +# +# Arguments: +# src The string to translate. +# args Args to pass to the format command +# +# Results: +# Returns the translated string. Propagates errors thrown by the +# format command. + +proc msgcat::mc {src args} { + # Check for the src in each namespace starting from the local and + # ending in the global. + + variable Msgs + variable Loclist + variable Locale + + set ns [uplevel 1 [list ::namespace current]] + + while {$ns != ""} { + foreach loc $Loclist { + if {[dict exists $Msgs $loc $ns $src]} { + if {[llength $args] == 0} { + return [dict get $Msgs $loc $ns $src] + } else { + return [format [dict get $Msgs $loc $ns $src] {*}$args] + } + } + } + set ns [namespace parent $ns] + } + # we have not found the translation + return [uplevel 1 [list [namespace origin mcunknown] \ + $Locale $src {*}$args]] +} + +# msgcat::mclocale -- +# +# Query or set the current locale. +# +# Arguments: +# newLocale (Optional) The new locale string. Locale strings +# should be composed of one or more sublocale parts +# separated by underscores (e.g. en_US). +# +# Results: +# Returns the current locale. + +proc msgcat::mclocale {args} { + variable Loclist + variable Locale + set len [llength $args] + + if {$len > 1} { + return -code error "wrong # args: should be\ + \"[lindex [info level 0] 0] ?newLocale?\"" + } + + if {$len == 1} { + set newLocale [lindex $args 0] + if {$newLocale ne [file tail $newLocale]} { + return -code error "invalid newLocale value \"$newLocale\":\ + could be path to unsafe code." + } + set Locale [string tolower $newLocale] + set Loclist {} + set word "" + foreach part [split $Locale _] { + set word [string trim "${word}_${part}" _] + if {$word ne [lindex $Loclist 0]} { + set Loclist [linsert $Loclist 0 $word] + } + } + lappend Loclist {} + set Locale [lindex $Loclist 0] + } + return $Locale +} + +# msgcat::mcpreferences -- +# +# Fetch the list of locales used to look up strings, ordered from +# most preferred to least preferred. +# +# Arguments: +# None. +# +# Results: +# Returns an ordered list of the locales preferred by the user. + +proc msgcat::mcpreferences {} { + variable Loclist + return $Loclist +} + +# msgcat::mcload -- +# +# Attempt to load message catalogs for each locale in the +# preference list from the specified directory. +# +# Arguments: +# langdir The directory to search. +# +# Results: +# Returns the number of message catalogs that were loaded. + +proc msgcat::mcload {langdir} { + set x 0 + foreach p [mcpreferences] { + if { $p eq {} } { + set p ROOT + } + set langfile [file join $langdir $p.msg] + if {[file exists $langfile]} { + incr x + uplevel 1 [list ::source -encoding utf-8 $langfile] + } + } + return $x +} + +# msgcat::mcset -- +# +# Set the translation for a given string in a specified locale. +# +# Arguments: +# locale The locale to use. +# src The source string. +# dest (Optional) The translated string. If omitted, +# the source string is used. +# +# Results: +# Returns the new locale. + +proc msgcat::mcset {locale src {dest ""}} { + variable Msgs + if {[llength [info level 0]] == 3} { ;# dest not specified + set dest $src + } + + set ns [uplevel 1 [list ::namespace current]] + + set locale [string tolower $locale] + + # create nested dictionaries if they do not exist + if {![dict exists $Msgs $locale]} { + dict set Msgs $locale [dict create] + } + if {![dict exists $Msgs $locale $ns]} { + dict set Msgs $locale $ns [dict create] + } + dict set Msgs $locale $ns $src $dest + return $dest +} + +# msgcat::mcmset -- +# +# Set the translation for multiple strings in a specified locale. +# +# Arguments: +# locale The locale to use. +# pairs One or more src/dest pairs (must be even length) +# +# Results: +# Returns the number of pairs processed + +proc msgcat::mcmset {locale pairs } { + variable Msgs + + set length [llength $pairs] + if {$length % 2} { + return -code error "bad translation list:\ + should be \"[lindex [info level 0] 0] locale {src dest ...}\"" + } + + set locale [string tolower $locale] + set ns [uplevel 1 [list ::namespace current]] + + # create nested dictionaries if they do not exist + if {![dict exists $Msgs $locale]} { + dict set Msgs $locale [dict create] + } + if {![dict exists $Msgs $locale $ns]} { + dict set Msgs $locale $ns [dict create] + } + foreach {src dest} $pairs { + dict set Msgs $locale $ns $src $dest + } + + return $length +} + +# msgcat::mcunknown -- +# +# This routine is called by msgcat::mc if a translation cannot +# be found for a string. This routine is intended to be replaced +# by an application specific routine for error reporting +# purposes. The default behavior is to return the source string. +# If additional args are specified, the format command will be used +# to work them into the traslated string. +# +# Arguments: +# locale The current locale. +# src The string to be translated. +# args Args to pass to the format command +# +# Results: +# Returns the translated value. + +proc msgcat::mcunknown {locale src args} { + if {[llength $args]} { + return [format $src {*}$args] + } else { + return $src + } +} + +# msgcat::mcmax -- +# +# Calculates the maximum length of the translated strings of the given +# list. +# +# Arguments: +# args strings to translate. +# +# Results: +# Returns the length of the longest translated string. + +proc msgcat::mcmax {args} { + set max 0 + foreach string $args { + set translated [uplevel 1 [list [namespace origin mc] $string]] + set len [string length $translated] + if {$len>$max} { + set max $len + } + } + return $max +} + +# Convert the locale values stored in environment variables to a form +# suitable for passing to [mclocale] +proc msgcat::ConvertLocale {value} { + # Assume $value is of form: $language[_$territory][.$codeset][@modifier] + # Convert to form: $language[_$territory][_$modifier] + # + # Comment out expanded RE version -- bugs alleged + # regexp -expanded { + # ^ # Match all the way to the beginning + # ([^_.@]*) # Match "lanugage"; ends with _, ., or @ + # (_([^.@]*))? # Match (optional) "territory"; starts with _ + # ([.]([^@]*))? # Match (optional) "codeset"; starts with . + # (@(.*))? # Match (optional) "modifier"; starts with @ + # $ # Match all the way to the end + # } $value -> language _ territory _ codeset _ modifier + if {![regexp {^([^_.@]+)(_([^.@]*))?([.]([^@]*))?(@(.*))?$} $value \ + -> language _ territory _ codeset _ modifier]} { + return -code error "invalid locale '$value': empty language part" + } + set ret $language + if {[string length $territory]} { + append ret _$territory + } + if {[string length $modifier]} { + append ret _$modifier + } + return $ret +} + +# Initialize the default locale +proc msgcat::Init {} { + # + # set default locale, try to get from environment + # + foreach varName {LC_ALL LC_MESSAGES LANG} { + if {[info exists ::env($varName)] && ("" ne $::env($varName))} { + if {![catch { + mclocale [ConvertLocale $::env($varName)] + }]} { + return + } + } + } + # + # On Darwin, fallback to current CFLocale identifier if available. + # + if {$::tcl_platform(os) eq "Darwin" && $::tcl_platform(platform) eq "unix" + && [info exists ::tcl::mac::locale] && $::tcl::mac::locale ne ""} { + if {![catch { + mclocale [ConvertLocale $::tcl::mac::locale] + }]} { + return + } + } + # + # The rest of this routine is special processing for Windows; + # all other platforms, get out now. + # + if { $::tcl_platform(platform) ne "windows" } { + mclocale C + return + } + # + # On Windows, try to set locale depending on registry settings, + # or fall back on locale of "C". + # + set key {HKEY_CURRENT_USER\Control Panel\International} + if {[catch {package require registry}] \ + || [catch {registry get $key "locale"} locale]} { + mclocale C + return + } + # + # Keep trying to match against smaller and smaller suffixes + # of the registry value, since the latter hexadigits appear + # to determine general language and earlier hexadigits determine + # more precise information, such as territory. For example, + # 0409 - English - United States + # 0809 - English - United Kingdom + # Add more translations to the WinRegToISO639 array above. + # + variable WinRegToISO639 + set locale [string tolower $locale] + while {[string length $locale]} { + if {![catch { + mclocale [ConvertLocale [dict get $WinRegToISO639 $locale]] + }]} { + return + } + set locale [string range $locale 1 end] + } + # + # No translation known. Fall back on "C" locale + # + mclocale C +} +msgcat::Init diff --git a/mingw/lib/tcl8/8.5/tcltest-2.3b1.tm b/mingw/lib/tcl8/8.5/tcltest-2.3b1.tm new file mode 100644 index 00000000..1aafd3a1 --- /dev/null +++ b/mingw/lib/tcl8/8.5/tcltest-2.3b1.tm @@ -0,0 +1,3375 @@ +# tcltest.tcl -- +# +# This file contains support code for the Tcl test suite. It +# defines the tcltest namespace and finds and defines the output +# directory, constraints available, output and error channels, +# etc. used by Tcl tests. See the tcltest man page for more +# details. +# +# This design was based on the Tcl testing approach designed and +# initially implemented by Mary Ann May-Pumphrey of Sun +# Microsystems. +# +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1998-1999 by Scriptics Corporation. +# Copyright (c) 2000 by Ajuba Solutions +# Contributions from Don Porter, NIST, 2002. (not subject to US copyright) +# All rights reserved. +# +# RCS: @(#) $Id: tcltest.tcl,v 1.101 2007/09/11 21:26:26 dgp Exp $ + +package require Tcl 8.5 ;# -verbose line uses [info frame] +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.3b1 + + # Compatibility support for dumb variables defined in tcltest 1 + # Do not use these. Call [package provide Tcl] and [info patchlevel] + # yourself. You don't need tcltest to wrap it for you. + variable version [package provide Tcl] + variable patchLevel [info patchlevel] + +##### Export the public tcltest procs; several categories + # + # Export the main functional commands that do useful things + namespace export cleanupTests loadTestedCommands makeDirectory \ + makeFile removeDirectory removeFile runAllTests test + + # Export configuration commands that control the functional commands + namespace export configure customMatch errorChannel interpreter \ + outputChannel testConstraint + + # Export commands that are duplication (candidates for deprecation) + namespace export bytestring ;# dups [encoding convertfrom identity] + namespace export debug ;# [configure -debug] + namespace export errorFile ;# [configure -errfile] + namespace export limitConstraints ;# [configure -limitconstraints] + namespace export loadFile ;# [configure -loadfile] + namespace export loadScript ;# [configure -load] + namespace export match ;# [configure -match] + namespace export matchFiles ;# [configure -file] + namespace export matchDirectories ;# [configure -relateddir] + namespace export normalizeMsg ;# application of [customMatch] + namespace export normalizePath ;# [file normalize] (8.4) + namespace export outputFile ;# [configure -outfile] + namespace export preserveCore ;# [configure -preservecore] + namespace export singleProcess ;# [configure -singleproc] + namespace export skip ;# [configure -skip] + namespace export skipFiles ;# [configure -notfile] + namespace export skipDirectories ;# [configure -asidefromdir] + namespace export temporaryDirectory ;# [configure -tmpdir] + namespace export testsDirectory ;# [configure -testdir] + namespace export verbose ;# [configure -verbose] + namespace export viewFile ;# binary encoding [read] + namespace export workingDirectory ;# [cd] [pwd] + + # Export deprecated commands for tcltest 1 compatibility + namespace export getMatchingFiles mainThread restoreState saveState \ + threadReap + + # tcltest::normalizePath -- + # + # This procedure resolves any symlinks in the path thus creating + # a path without internal redirection. It assumes that the + # incoming path is absolute. + # + # Arguments + # pathVar - name of variable containing path to modify. + # + # Results + # The path is modified in place. + # + # Side Effects: + # None. + # + proc normalizePath {pathVar} { + upvar $pathVar path + set oldpwd [pwd] + catch {cd $path} + set path [pwd] + cd $oldpwd + return $path + } + +##### Verification commands used to test values of variables and options + # + # Verification command that accepts everything + proc AcceptAll {value} { + return $value + } + + # Verification command that accepts valid Tcl lists + proc AcceptList { list } { + return [lrange $list 0 end] + } + + # Verification command that accepts a glob pattern + proc AcceptPattern { pattern } { + return [AcceptAll $pattern] + } + + # Verification command that accepts integers + proc AcceptInteger { level } { + return [incr level 0] + } + + # Verification command that accepts boolean values + proc AcceptBoolean { boolean } { + return [expr {$boolean && $boolean}] + } + + # Verification command that accepts (syntactically) valid Tcl scripts + proc AcceptScript { script } { + if {![info complete $script]} { + return -code error "invalid Tcl script: $script" + } + return $script + } + + # Verification command that accepts (converts to) absolute pathnames + proc AcceptAbsolutePath { path } { + return [file join [pwd] $path] + } + + # Verification command that accepts existing readable directories + proc AcceptReadable { path } { + if {![file readable $path]} { + return -code error "\"$path\" is not readable" + } + return $path + } + proc AcceptDirectory { directory } { + set directory [AcceptAbsolutePath $directory] + if {![file exists $directory]} { + return -code error "\"$directory\" does not exist" + } + if {![file isdir $directory]} { + return -code error "\"$directory\" is not a directory" + } + return [AcceptReadable $directory] + } + +##### Initialize internal arrays of tcltest, but only if the caller + # has not already pre-initialized them. This is done to support + # compatibility with older tests that directly access internals + # rather than go through command interfaces. + # + proc ArrayDefault {varName value} { + variable $varName + if {[array exists $varName]} { + return + } + if {[info exists $varName]} { + # Pre-initialized value is a scalar: destroy it! + unset $varName + } + array set $varName $value + } + + # save the original environment so that it can be restored later + ArrayDefault originalEnv [array get ::env] + + # initialize numTests array to keep track of the number of tests + # that pass, fail, and are skipped. + ArrayDefault numTests [list Total 0 Passed 0 Skipped 0 Failed 0] + + # createdNewFiles will store test files as indices and the list of + # files (that should not have been) left behind by the test files + # as values. + ArrayDefault createdNewFiles {} + + # initialize skippedBecause array to keep track of constraints that + # kept tests from running; a constraint name of "userSpecifiedSkip" + # means that the test appeared on the list of tests that matched the + # -skip value given to the flag; "userSpecifiedNonMatch" means that + # the test didn't match the argument given to the -match flag; both + # of these constraints are counted only if tcltest::debug is set to + # true. + ArrayDefault skippedBecause {} + + # initialize the testConstraints array to keep track of valid + # predefined constraints (see the explanation for the + # InitConstraints proc for more details). + ArrayDefault testConstraints {} + +##### Initialize internal variables of tcltest, but only if the caller + # has not already pre-initialized them. This is done to support + # compatibility with older tests that directly access internals + # rather than go through command interfaces. + # + proc Default {varName value {verify AcceptAll}} { + variable $varName + if {![info exists $varName]} { + variable $varName [$verify $value] + } else { + variable $varName [$verify [set $varName]] + } + } + + # Save any arguments that we might want to pass through to other + # programs. This is used by the -args flag. + # FINDUSER + Default parameters {} + + # Count the number of files tested (0 if runAllTests wasn't called). + # runAllTests will set testSingleFile to false, so stats will + # not be printed until runAllTests calls the cleanupTests proc. + # The currentFailure var stores the boolean value of whether the + # current test file has had any failures. The failFiles list + # stores the names of test files that had failures. + Default numTestFiles 0 AcceptInteger + Default testSingleFile true AcceptBoolean + Default currentFailure false AcceptBoolean + Default failFiles {} AcceptList + + # Tests should remove all files they create. The test suite will + # check the current working dir for files created by the tests. + # filesMade keeps track of such files created using the makeFile and + # makeDirectory procedures. filesExisted stores the names of + # pre-existing files. + # + # Note that $filesExisted lists only those files that exist in + # the original [temporaryDirectory]. + Default filesMade {} AcceptList + Default filesExisted {} AcceptList + proc FillFilesExisted {} { + variable filesExisted + + # Save the names of files that already exist in the scratch directory. + foreach file [glob -nocomplain -directory [temporaryDirectory] *] { + lappend filesExisted [file tail $file] + } + + # After successful filling, turn this into a no-op. + proc FillFilesExisted args {} + } + + # Kept only for compatibility + Default constraintsSpecified {} AcceptList + trace variable constraintsSpecified r {set ::tcltest::constraintsSpecified \ + [array names ::tcltest::testConstraints] ;# } + + # tests that use threads need to know which is the main thread + Default mainThread 1 + variable mainThread + if {[info commands thread::id] != {}} { + set mainThread [thread::id] + } elseif {[info commands testthread] != {}} { + set mainThread [testthread id] + } + + # Set workingDirectory to [pwd]. The default output directory for + # Tcl tests is the working directory. Whenever this value changes + # change to that directory. + variable workingDirectory + trace variable workingDirectory w \ + [namespace code {cd $workingDirectory ;#}] + + Default workingDirectory [pwd] AcceptAbsolutePath + proc workingDirectory { {dir ""} } { + variable workingDirectory + if {[llength [info level 0]] == 1} { + return $workingDirectory + } + set workingDirectory [AcceptAbsolutePath $dir] + } + + # Set the location of the execuatble + Default tcltest [info nameofexecutable] + trace variable tcltest w [namespace code {testConstraint stdio \ + [eval [ConstraintInitializer stdio]] ;#}] + + # save the platform information so it can be restored later + Default originalTclPlatform [array get ::tcl_platform] + + # If a core file exists, save its modification time. + if {[file exists [file join [workingDirectory] core]]} { + Default coreModTime \ + [file mtime [file join [workingDirectory] core]] + } + + # stdout and stderr buffers for use when we want to store them + Default outData {} + Default errData {} + + # keep track of test level for nested test commands + variable testLevel 0 + + # the variables and procs that existed when saveState was called are + # stored in a variable of the same name + Default saveState {} + + # Internationalization support -- used in [SetIso8859_1_Locale] and + # [RestoreLocale]. Those commands are used in cmdIL.test. + + if {![info exists [namespace current]::isoLocale]} { + variable isoLocale fr + switch -- $::tcl_platform(platform) { + "unix" { + + # Try some 'known' values for some platforms: + + switch -exact -- $::tcl_platform(os) { + "FreeBSD" { + set isoLocale fr_FR.ISO_8859-1 + } + HP-UX { + set isoLocale fr_FR.iso88591 + } + Linux - + IRIX { + set isoLocale fr + } + default { + + # Works on SunOS 4 and Solaris, and maybe + # others... Define it to something else on your + # system if you want to test those. + + set isoLocale iso_8859_1 + } + } + } + "windows" { + set isoLocale French + } + } + } + + variable ChannelsWeOpened; array set ChannelsWeOpened {} + # output goes to stdout by default + Default outputChannel stdout + proc outputChannel { {filename ""} } { + variable outputChannel + variable ChannelsWeOpened + + # This is very subtle and tricky, so let me try to explain. + # (Hopefully this longer comment will be clear when I come + # back in a few months, unlike its predecessor :) ) + # + # The [outputChannel] command (and underlying variable) have to + # be kept in sync with the [configure -outfile] configuration + # option ( and underlying variable Option(-outfile) ). This is + # accomplished with a write trace on Option(-outfile) that will + # update [outputChannel] whenver a new value is written. That + # much is easy. + # + # The trick is that in order to maintain compatibility with + # version 1 of tcltest, we must allow every configuration option + # to get its inital value from command line arguments. This is + # accomplished by setting initial read traces on all the + # configuration options to parse the command line option the first + # time they are read. These traces are cancelled whenever the + # program itself calls [configure]. + # + # OK, then so to support tcltest 1 compatibility, it seems we want + # to get the return from [outputFile] to trigger the read traces, + # just in case. + # + # BUT! A little known feature of Tcl variable traces is that + # traces are disabled during the handling of other traces. So, + # if we trigger read traces on Option(-outfile) and that triggers + # command line parsing which turns around and sets an initial + # value for Option(-outfile) -- -- the write trace that + # would keep [outputChannel] in sync with that new initial value + # would not fire! + # + # SO, finally, as a workaround, instead of triggering read traces + # by invoking [outputFile], we instead trigger the same set of + # read traces by invoking [debug]. Any command that reads a + # configuration option would do. [debug] is just a handy one. + # The end result is that we support tcltest 1 compatibility and + # keep outputChannel and -outfile in sync in all cases. + debug + + if {[llength [info level 0]] == 1} { + return $outputChannel + } + if {[info exists ChannelsWeOpened($outputChannel)]} { + close $outputChannel + unset ChannelsWeOpened($outputChannel) + } + switch -exact -- $filename { + stderr - + stdout { + set outputChannel $filename + } + default { + set outputChannel [open $filename a] + set ChannelsWeOpened($outputChannel) 1 + + # If we created the file in [temporaryDirectory], then + # [cleanupTests] will delete it, unless we claim it was + # already there. + set outdir [normalizePath [file dirname \ + [file join [pwd] $filename]]] + if {[string equal $outdir [temporaryDirectory]]} { + variable filesExisted + FillFilesExisted + set filename [file tail $filename] + if {[lsearch -exact $filesExisted $filename] == -1} { + lappend filesExisted $filename + } + } + } + } + return $outputChannel + } + + # errors go to stderr by default + Default errorChannel stderr + proc errorChannel { {filename ""} } { + variable errorChannel + variable ChannelsWeOpened + + # This is subtle and tricky. See the comment above in + # [outputChannel] for a detailed explanation. + debug + + if {[llength [info level 0]] == 1} { + return $errorChannel + } + if {[info exists ChannelsWeOpened($errorChannel)]} { + close $errorChannel + unset ChannelsWeOpened($errorChannel) + } + switch -exact -- $filename { + stderr - + stdout { + set errorChannel $filename + } + default { + set errorChannel [open $filename a] + set ChannelsWeOpened($errorChannel) 1 + + # If we created the file in [temporaryDirectory], then + # [cleanupTests] will delete it, unless we claim it was + # already there. + set outdir [normalizePath [file dirname \ + [file join [pwd] $filename]]] + if {[string equal $outdir [temporaryDirectory]]} { + variable filesExisted + FillFilesExisted + set filename [file tail $filename] + if {[lsearch -exact $filesExisted $filename] == -1} { + lappend filesExisted $filename + } + } + } + } + return $errorChannel + } + +##### Set up the configurable options + # + # The configurable options of the package + variable Option; array set Option {} + + # Usage strings for those options + variable Usage; array set Usage {} + + # Verification commands for those options + variable Verify; array set Verify {} + + # Initialize the default values of the configurable options that are + # historically associated with an exported variable. If that variable + # is already set, support compatibility by accepting its pre-set value. + # Use [trace] to establish ongoing connection between the deprecated + # exported variable and the modern option kept as a true internal var. + # Also set up usage string and value testing for the option. + proc Option {option value usage {verify AcceptAll} {varName {}}} { + variable Option + variable Verify + variable Usage + variable OptionControlledVariables + set Usage($option) $usage + set Verify($option) $verify + if {[catch {$verify $value} msg]} { + return -code error $msg + } else { + set Option($option) $msg + } + if {[string length $varName]} { + variable $varName + if {[info exists $varName]} { + if {[catch {$verify [set $varName]} msg]} { + return -code error $msg + } else { + set Option($option) $msg + } + unset $varName + } + namespace eval [namespace current] \ + [list upvar 0 Option($option) $varName] + # Workaround for Bug (now Feature Request) 572889. Grrrr.... + # Track all the variables tied to options + lappend OptionControlledVariables $varName + # Later, set auto-configure read traces on all + # of them, since a single trace on Option does not work. + proc $varName {{value {}}} [subst -nocommands { + if {[llength [info level 0]] == 2} { + Configure $option [set value] + } + return [Configure $option] + }] + } + } + + proc MatchingOption {option} { + variable Option + set match [array names Option $option*] + switch -- [llength $match] { + 0 { + set sorted [lsort [array names Option]] + set values [join [lrange $sorted 0 end-1] ", "] + append values ", or [lindex $sorted end]" + return -code error "unknown option $option: should be\ + one of $values" + } + 1 { + return [lindex $match 0] + } + default { + # Exact match trumps ambiguity + if {[lsearch -exact $match $option] >= 0} { + return $option + } + set values [join [lrange $match 0 end-1] ", "] + append values ", or [lindex $match end]" + return -code error "ambiguous option $option:\ + could match $values" + } + } + } + + proc EstablishAutoConfigureTraces {} { + variable OptionControlledVariables + foreach varName [concat $OptionControlledVariables Option] { + variable $varName + trace variable $varName r [namespace code {ProcessCmdLineArgs ;#}] + } + } + + proc RemoveAutoConfigureTraces {} { + variable OptionControlledVariables + foreach varName [concat $OptionControlledVariables Option] { + variable $varName + foreach pair [trace vinfo $varName] { + foreach {op cmd} $pair break + if {[string equal r $op] + && [string match *ProcessCmdLineArgs* $cmd]} { + trace vdelete $varName $op $cmd + } + } + } + # Once the traces are removed, this can become a no-op + proc RemoveAutoConfigureTraces {} {} + } + + proc Configure args { + variable Option + variable Verify + set n [llength $args] + if {$n == 0} { + return [lsort [array names Option]] + } + if {$n == 1} { + if {[catch {MatchingOption [lindex $args 0]} option]} { + return -code error $option + } + return $Option($option) + } + while {[llength $args] > 1} { + if {[catch {MatchingOption [lindex $args 0]} option]} { + return -code error $option + } + if {[catch {$Verify($option) [lindex $args 1]} value]} { + return -code error "invalid $option\ + value \"[lindex $args 1]\": $value" + } + set Option($option) $value + set args [lrange $args 2 end] + } + if {[llength $args]} { + if {[catch {MatchingOption [lindex $args 0]} option]} { + return -code error $option + } + return -code error "missing value for option $option" + } + } + proc configure args { + RemoveAutoConfigureTraces + set code [catch {eval Configure $args} msg] + return -code $code $msg + } + + proc AcceptVerbose { level } { + set level [AcceptList $level] + if {[llength $level] == 1} { + if {![regexp {^(pass|body|skip|start|error|line)$} $level]} { + # translate single characters abbreviations to expanded list + set level [string map {p pass b body s skip t start e error l line} \ + [split $level {}]] + } + } + set valid [list] + foreach v $level { + if {[regexp {^(pass|body|skip|start|error|line)$} $v]} { + lappend valid $v + } + } + return $valid + } + + proc IsVerbose {level} { + variable Option + return [expr {[lsearch -exact $Option(-verbose) $level] != -1}] + } + + # Default verbosity is to show bodies of failed tests + Option -verbose {body error} { + Takes any combination of the values 'p', 's', 'b', 't', 'e' and 'l'. + Test suite will display all passed tests if 'p' is specified, all + skipped tests if 's' is specified, the bodies of failed tests if + 'b' is specified, and when tests start if 't' is specified. + ErrorInfo is displayed if 'e' is specified. Source file line + information of failed tests is displayed if 'l' is specified. + } AcceptVerbose verbose + + # Match and skip patterns default to the empty list, except for + # matchFiles, which defaults to all .test files in the + # testsDirectory and matchDirectories, which defaults to all + # directories. + Option -match * { + Run all tests within the specified files that match one of the + list of glob patterns given. + } AcceptList match + + Option -skip {} { + Skip all tests within the specified tests (via -match) and files + that match one of the list of glob patterns given. + } AcceptList skip + + Option -file *.test { + Run tests in all test files that match the glob pattern given. + } AcceptPattern matchFiles + + # By default, skip files that appear to be SCCS lock files. + Option -notfile l.*.test { + Skip all test files that match the glob pattern given. + } AcceptPattern skipFiles + + Option -relateddir * { + Run tests in directories that match the glob pattern given. + } AcceptPattern matchDirectories + + Option -asidefromdir {} { + Skip tests in directories that match the glob pattern given. + } AcceptPattern skipDirectories + + # By default, don't save core files + Option -preservecore 0 { + If 2, save any core files produced during testing in the directory + specified by -tmpdir. If 1, notify the user if core files are + created. + } AcceptInteger preserveCore + + # debug output doesn't get printed by default; debug level 1 spits + # up only the tests that were skipped because they didn't match or + # were specifically skipped. A debug level of 2 would spit up the + # tcltest variables and flags provided; a debug level of 3 causes + # some additional output regarding operations of the test harness. + # The tcltest package currently implements only up to debug level 3. + Option -debug 0 { + Internal debug level + } AcceptInteger debug + + proc SetSelectedConstraints args { + variable Option + foreach c $Option(-constraints) { + testConstraint $c 1 + } + } + Option -constraints {} { + Do not skip the listed constraints listed in -constraints. + } AcceptList + trace variable Option(-constraints) w \ + [namespace code {SetSelectedConstraints ;#}] + + # Don't run only the "-constraint" specified tests by default + proc ClearUnselectedConstraints args { + variable Option + variable testConstraints + if {!$Option(-limitconstraints)} {return} + foreach c [array names testConstraints] { + if {[lsearch -exact $Option(-constraints) $c] == -1} { + testConstraint $c 0 + } + } + } + Option -limitconstraints false { + whether to run only tests with the constraints + } AcceptBoolean limitConstraints + trace variable Option(-limitconstraints) w \ + [namespace code {ClearUnselectedConstraints ;#}] + + # A test application has to know how to load the tested commands + # into the interpreter. + Option -load {} { + Specifies the script to load the tested commands. + } AcceptScript loadScript + + # Default is to run each test file in a separate process + Option -singleproc 0 { + whether to run all tests in one process + } AcceptBoolean singleProcess + + proc AcceptTemporaryDirectory { directory } { + set directory [AcceptAbsolutePath $directory] + if {![file exists $directory]} { + file mkdir $directory + } + set directory [AcceptDirectory $directory] + if {![file writable $directory]} { + if {[string equal [workingDirectory] $directory]} { + # Special exception: accept the default value + # even if the directory is not writable + return $directory + } + return -code error "\"$directory\" is not writeable" + } + return $directory + } + + # Directory where files should be created + Option -tmpdir [workingDirectory] { + Save temporary files in the specified directory. + } AcceptTemporaryDirectory temporaryDirectory + trace variable Option(-tmpdir) w \ + [namespace code {normalizePath Option(-tmpdir) ;#}] + + # Tests should not rely on the current working directory. + # Files that are part of the test suite should be accessed relative + # to [testsDirectory] + Option -testdir [workingDirectory] { + Search tests in the specified directory. + } AcceptDirectory testsDirectory + trace variable Option(-testdir) w \ + [namespace code {normalizePath Option(-testdir) ;#}] + + proc AcceptLoadFile { file } { + if {[string equal "" $file]} {return $file} + set file [file join [temporaryDirectory] $file] + return [AcceptReadable $file] + } + proc ReadLoadScript {args} { + variable Option + if {[string equal "" $Option(-loadfile)]} {return} + set tmp [open $Option(-loadfile) r] + loadScript [read $tmp] + close $tmp + } + Option -loadfile {} { + Read the script to load the tested commands from the specified file. + } AcceptLoadFile loadFile + trace variable Option(-loadfile) w [namespace code ReadLoadScript] + + proc AcceptOutFile { file } { + if {[string equal stderr $file]} {return $file} + if {[string equal stdout $file]} {return $file} + return [file join [temporaryDirectory] $file] + } + + # output goes to stdout by default + Option -outfile stdout { + Send output from test runs to the specified file. + } AcceptOutFile outputFile + trace variable Option(-outfile) w \ + [namespace code {outputChannel $Option(-outfile) ;#}] + + # errors go to stderr by default + Option -errfile stderr { + Send errors from test runs to the specified file. + } AcceptOutFile errorFile + trace variable Option(-errfile) w \ + [namespace code {errorChannel $Option(-errfile) ;#}] + +} + +##################################################################### + +# tcltest::Debug* -- +# +# Internal helper procedures to write out debug information +# dependent on the chosen level. A test shell may overide +# them, f.e. to redirect the output into a different +# channel, or even into a GUI. + +# tcltest::DebugPuts -- +# +# Prints the specified string if the current debug level is +# higher than the provided level argument. +# +# Arguments: +# level The lowest debug level triggering the output +# string The string to print out. +# +# Results: +# Prints the string. Nothing else is allowed. +# +# Side Effects: +# None. +# + +proc tcltest::DebugPuts {level string} { + variable debug + if {$debug >= $level} { + puts $string + } + return +} + +# tcltest::DebugPArray -- +# +# Prints the contents of the specified array if the current +# debug level is higher than the provided level argument +# +# Arguments: +# level The lowest debug level triggering the output +# arrayvar The name of the array to print out. +# +# Results: +# Prints the contents of the array. Nothing else is allowed. +# +# Side Effects: +# None. +# + +proc tcltest::DebugPArray {level arrayvar} { + variable debug + + if {$debug >= $level} { + catch {upvar $arrayvar $arrayvar} + parray $arrayvar + } + return +} + +# Define our own [parray] in ::tcltest that will inherit use of the [puts] +# defined in ::tcltest. NOTE: Ought to construct with [info args] and +# [info default], but can't be bothered now. If [parray] changes, then +# this will need changing too. +auto_load ::parray +proc tcltest::parray {a {pattern *}} [info body ::parray] + +# tcltest::DebugDo -- +# +# Executes the script if the current debug level is greater than +# the provided level argument +# +# Arguments: +# level The lowest debug level triggering the execution. +# script The tcl script executed upon a debug level high enough. +# +# Results: +# Arbitrary side effects, dependent on the executed script. +# +# Side Effects: +# None. +# + +proc tcltest::DebugDo {level script} { + variable debug + + if {$debug >= $level} { + uplevel 1 $script + } + return +} + +##################################################################### + +proc tcltest::Warn {msg} { + puts [outputChannel] "WARNING: $msg" +} + +# tcltest::mainThread +# +# Accessor command for tcltest variable mainThread. +# +proc tcltest::mainThread { {new ""} } { + variable mainThread + if {[llength [info level 0]] == 1} { + return $mainThread + } + set mainThread $new +} + +# tcltest::testConstraint -- +# +# sets a test constraint to a value; to do multiple constraints, +# call this proc multiple times. also returns the value of the +# named constraint if no value was supplied. +# +# Arguments: +# constraint - name of the constraint +# value - new value for constraint (should be boolean) - if not +# supplied, this is a query +# +# Results: +# content of tcltest::testConstraints($constraint) +# +# Side effects: +# none + +proc tcltest::testConstraint {constraint {value ""}} { + variable testConstraints + variable Option + DebugPuts 3 "entering testConstraint $constraint $value" + if {[llength [info level 0]] == 2} { + return $testConstraints($constraint) + } + # Check for boolean values + if {[catch {expr {$value && $value}} msg]} { + return -code error $msg + } + if {[limitConstraints] + && [lsearch -exact $Option(-constraints) $constraint] == -1} { + set value 0 + } + set testConstraints($constraint) $value +} + +# tcltest::interpreter -- +# +# the interpreter name stored in tcltest::tcltest +# +# Arguments: +# executable name +# +# Results: +# content of tcltest::tcltest +# +# Side effects: +# None. + +proc tcltest::interpreter { {interp ""} } { + variable tcltest + if {[llength [info level 0]] == 1} { + return $tcltest + } + if {[string equal {} $interp]} { + set tcltest {} + } else { + set tcltest $interp + } +} + +##################################################################### + +# tcltest::AddToSkippedBecause -- +# +# Increments the variable used to track how many tests were +# skipped because of a particular constraint. +# +# Arguments: +# constraint The name of the constraint to be modified +# +# Results: +# Modifies tcltest::skippedBecause; sets the variable to 1 if +# didn't previously exist - otherwise, it just increments it. +# +# Side effects: +# None. + +proc tcltest::AddToSkippedBecause { constraint {value 1}} { + # add the constraint to the list of constraints that kept tests + # from running + variable skippedBecause + + if {[info exists skippedBecause($constraint)]} { + incr skippedBecause($constraint) $value + } else { + set skippedBecause($constraint) $value + } + return +} + +# tcltest::PrintError -- +# +# Prints errors to tcltest::errorChannel and then flushes that +# channel, making sure that all messages are < 80 characters per +# line. +# +# Arguments: +# errorMsg String containing the error to be printed +# +# Results: +# None. +# +# Side effects: +# None. + +proc tcltest::PrintError {errorMsg} { + set InitialMessage "Error: " + set InitialMsgLen [string length $InitialMessage] + puts -nonewline [errorChannel] $InitialMessage + + # Keep track of where the end of the string is. + set endingIndex [string length $errorMsg] + + if {$endingIndex < (80 - $InitialMsgLen)} { + puts [errorChannel] $errorMsg + } else { + # Print up to 80 characters on the first line, including the + # InitialMessage. + set beginningIndex [string last " " [string range $errorMsg 0 \ + [expr {80 - $InitialMsgLen}]]] + puts [errorChannel] [string range $errorMsg 0 $beginningIndex] + + while {![string equal end $beginningIndex]} { + puts -nonewline [errorChannel] \ + [string repeat " " $InitialMsgLen] + if {($endingIndex - $beginningIndex) + < (80 - $InitialMsgLen)} { + puts [errorChannel] [string trim \ + [string range $errorMsg $beginningIndex end]] + break + } else { + set newEndingIndex [expr {[string last " " \ + [string range $errorMsg $beginningIndex \ + [expr {$beginningIndex + + (80 - $InitialMsgLen)}] + ]] + $beginningIndex}] + if {($newEndingIndex <= 0) + || ($newEndingIndex <= $beginningIndex)} { + set newEndingIndex end + } + puts [errorChannel] [string trim \ + [string range $errorMsg \ + $beginningIndex $newEndingIndex]] + set beginningIndex $newEndingIndex + } + } + } + flush [errorChannel] + return +} + +# tcltest::SafeFetch -- +# +# The following trace procedure makes it so that we can safely +# refer to non-existent members of the testConstraints array +# without causing an error. Instead, reading a non-existent +# member will return 0. This is necessary because tests are +# allowed to use constraint "X" without ensuring that +# testConstraints("X") is defined. +# +# Arguments: +# n1 - name of the array (testConstraints) +# n2 - array key value (constraint name) +# op - operation performed on testConstraints (generally r) +# +# Results: +# none +# +# Side effects: +# sets testConstraints($n2) to 0 if it's referenced but never +# before used + +proc tcltest::SafeFetch {n1 n2 op} { + variable testConstraints + DebugPuts 3 "entering SafeFetch $n1 $n2 $op" + if {[string equal {} $n2]} {return} + if {![info exists testConstraints($n2)]} { + if {[catch {testConstraint $n2 [eval [ConstraintInitializer $n2]]}]} { + testConstraint $n2 0 + } + } +} + +# tcltest::ConstraintInitializer -- +# +# Get or set a script that when evaluated in the tcltest namespace +# will return a boolean value with which to initialize the +# associated constraint. +# +# Arguments: +# constraint - name of the constraint initialized by the script +# script - the initializer script +# +# Results +# boolean value of the constraint - enabled or disabled +# +# Side effects: +# Constraint is initialized for future reference by [test] +proc tcltest::ConstraintInitializer {constraint {script ""}} { + variable ConstraintInitializer + DebugPuts 3 "entering ConstraintInitializer $constraint $script" + if {[llength [info level 0]] == 2} { + return $ConstraintInitializer($constraint) + } + # Check for boolean values + if {![info complete $script]} { + return -code error "ConstraintInitializer must be complete script" + } + set ConstraintInitializer($constraint) $script +} + +# tcltest::InitConstraints -- +# +# Call all registered constraint initializers to force initialization +# of all known constraints. +# See the tcltest man page for the list of built-in constraints defined +# in this procedure. +# +# Arguments: +# none +# +# Results: +# The testConstraints array is reset to have an index for each +# built-in test constraint. +# +# Side Effects: +# None. +# + +proc tcltest::InitConstraints {} { + variable ConstraintInitializer + initConstraintsHook + foreach constraint [array names ConstraintInitializer] { + testConstraint $constraint + } +} + +proc tcltest::DefineConstraintInitializers {} { + ConstraintInitializer singleTestInterp {singleProcess} + + # All the 'pc' constraints are here for backward compatibility and + # are not documented. They have been replaced with equivalent 'win' + # constraints. + + ConstraintInitializer unixOnly \ + {string equal $::tcl_platform(platform) unix} + ConstraintInitializer macOnly \ + {string equal $::tcl_platform(platform) macintosh} + ConstraintInitializer pcOnly \ + {string equal $::tcl_platform(platform) windows} + ConstraintInitializer winOnly \ + {string equal $::tcl_platform(platform) windows} + + ConstraintInitializer unix {testConstraint unixOnly} + ConstraintInitializer mac {testConstraint macOnly} + ConstraintInitializer pc {testConstraint pcOnly} + ConstraintInitializer win {testConstraint winOnly} + + ConstraintInitializer unixOrPc \ + {expr {[testConstraint unix] || [testConstraint pc]}} + ConstraintInitializer macOrPc \ + {expr {[testConstraint mac] || [testConstraint pc]}} + ConstraintInitializer unixOrWin \ + {expr {[testConstraint unix] || [testConstraint win]}} + ConstraintInitializer macOrWin \ + {expr {[testConstraint mac] || [testConstraint win]}} + ConstraintInitializer macOrUnix \ + {expr {[testConstraint mac] || [testConstraint unix]}} + + ConstraintInitializer nt {string equal $::tcl_platform(os) "Windows NT"} + ConstraintInitializer 95 {string equal $::tcl_platform(os) "Windows 95"} + ConstraintInitializer 98 {string equal $::tcl_platform(os) "Windows 98"} + + # The following Constraints switches are used to mark tests that + # should work, but have been temporarily disabled on certain + # platforms because they don't and we haven't gotten around to + # fixing the underlying problem. + + ConstraintInitializer tempNotPc {expr {![testConstraint pc]}} + ConstraintInitializer tempNotWin {expr {![testConstraint win]}} + ConstraintInitializer tempNotMac {expr {![testConstraint mac]}} + ConstraintInitializer tempNotUnix {expr {![testConstraint unix]}} + + # The following Constraints switches are used to mark tests that + # crash on certain platforms, so that they can be reactivated again + # when the underlying problem is fixed. + + ConstraintInitializer pcCrash {expr {![testConstraint pc]}} + ConstraintInitializer winCrash {expr {![testConstraint win]}} + ConstraintInitializer macCrash {expr {![testConstraint mac]}} + ConstraintInitializer unixCrash {expr {![testConstraint unix]}} + + # Skip empty tests + + ConstraintInitializer emptyTest {format 0} + + # By default, tests that expose known bugs are skipped. + + ConstraintInitializer knownBug {format 0} + + # By default, non-portable tests are skipped. + + ConstraintInitializer nonPortable {format 0} + + # Some tests require user interaction. + + ConstraintInitializer userInteraction {format 0} + + # Some tests must be skipped if the interpreter is not in + # interactive mode + + ConstraintInitializer interactive \ + {expr {[info exists ::tcl_interactive] && $::tcl_interactive}} + + # Some tests can only be run if the installation came from a CD + # image instead of a web image. Some tests must be skipped if you + # are running as root on Unix. Other tests can only be run if you + # are running as root on Unix. + + ConstraintInitializer root {expr \ + {[string equal unix $::tcl_platform(platform)] + && ([string equal root $::tcl_platform(user)] + || [string equal "" $::tcl_platform(user)])}} + ConstraintInitializer notRoot {expr {![testConstraint root]}} + + # Set nonBlockFiles constraint: 1 means this platform supports + # setting files into nonblocking mode. + + ConstraintInitializer nonBlockFiles { + set code [expr {[catch {set f [open defs r]}] + || [catch {fconfigure $f -blocking off}]}] + catch {close $f} + set code + } + + # Set asyncPipeClose constraint: 1 means this platform supports + # async flush and async close on a pipe. + # + # Test for SCO Unix - cannot run async flushing tests because a + # potential problem with select is apparently interfering. + # (Mark Diekhans). + + ConstraintInitializer asyncPipeClose {expr { + !([string equal unix $::tcl_platform(platform)] + && ([catch {exec uname -X | fgrep {Release = 3.2v}}] == 0))}} + + # Test to see if we have a broken version of sprintf with respect + # to the "e" format of floating-point numbers. + + ConstraintInitializer eformat {string equal [format %g 5e-5] 5e-05} + + # Test to see if execed commands such as cat, echo, rm and so forth + # are present on this machine. + + ConstraintInitializer unixExecs { + set code 1 + if {[string equal macintosh $::tcl_platform(platform)]} { + set code 0 + } + if {[string equal windows $::tcl_platform(platform)]} { + if {[catch { + set file _tcl_test_remove_me.txt + makeFile {hello} $file + }]} { + set code 0 + } elseif { + [catch {exec cat $file}] || + [catch {exec echo hello}] || + [catch {exec sh -c echo hello}] || + [catch {exec wc $file}] || + [catch {exec sleep 1}] || + [catch {exec echo abc > $file}] || + [catch {exec chmod 644 $file}] || + [catch {exec rm $file}] || + [llength [auto_execok mkdir]] == 0 || + [llength [auto_execok fgrep]] == 0 || + [llength [auto_execok grep]] == 0 || + [llength [auto_execok ps]] == 0 + } { + set code 0 + } + removeFile $file + } + set code + } + + ConstraintInitializer stdio { + set code 0 + if {![catch {set f [open "|[list [interpreter]]" w]}]} { + if {![catch {puts $f exit}]} { + if {![catch {close $f}]} { + set code 1 + } + } + } + set code + } + + # Deliberately call socket with the wrong number of arguments. The + # error message you get will indicate whether sockets are available + # on this system. + + ConstraintInitializer socket { + catch {socket} msg + string compare $msg "sockets are not available on this system" + } + + # Check for internationalization + ConstraintInitializer hasIsoLocale { + if {[llength [info commands testlocale]] == 0} { + set code 0 + } else { + set code [string length [SetIso8859_1_Locale]] + RestoreLocale + } + set code + } + +} +##################################################################### + +# Usage and command line arguments processing. + +# tcltest::PrintUsageInfo +# +# Prints out the usage information for package tcltest. This can +# be customized with the redefinition of [PrintUsageInfoHook]. +# +# Arguments: +# none +# +# Results: +# none +# +# Side Effects: +# none +proc tcltest::PrintUsageInfo {} { + puts [Usage] + PrintUsageInfoHook +} + +proc tcltest::Usage { {option ""} } { + variable Usage + variable Verify + if {[llength [info level 0]] == 1} { + set msg "Usage: [file tail [info nameofexecutable]] script " + append msg "?-help? ?flag value? ... \n" + append msg "Available flags (and valid input values) are:" + + set max 0 + set allOpts [concat -help [Configure]] + foreach opt $allOpts { + set foo [Usage $opt] + foreach [list x type($opt) usage($opt)] $foo break + set line($opt) " $opt $type($opt) " + set length($opt) [string length $line($opt)] + if {$length($opt) > $max} {set max $length($opt)} + } + set rest [expr {72 - $max}] + foreach opt $allOpts { + append msg \n$line($opt) + append msg [string repeat " " [expr {$max - $length($opt)}]] + set u [string trim $usage($opt)] + catch {append u " (default: \[[Configure $opt]])"} + regsub -all {\s*\n\s*} $u " " u + while {[string length $u] > $rest} { + set break [string wordstart $u $rest] + if {$break == 0} { + set break [string wordend $u 0] + } + append msg [string range $u 0 [expr {$break - 1}]] + set u [string trim [string range $u $break end]] + append msg \n[string repeat " " $max] + } + append msg $u + } + return $msg\n + } elseif {[string equal -help $option]} { + return [list -help "" "Display this usage information."] + } else { + set type [lindex [info args $Verify($option)] 0] + return [list $option $type $Usage($option)] + } +} + +# tcltest::ProcessFlags -- +# +# process command line arguments supplied in the flagArray - this +# is called by processCmdLineArgs. Modifies tcltest variables +# according to the content of the flagArray. +# +# Arguments: +# flagArray - array containing name/value pairs of flags +# +# Results: +# sets tcltest variables according to their values as defined by +# flagArray +# +# Side effects: +# None. + +proc tcltest::ProcessFlags {flagArray} { + # Process -help first + if {[lsearch -exact $flagArray {-help}] != -1} { + PrintUsageInfo + exit 1 + } + + if {[llength $flagArray] == 0} { + RemoveAutoConfigureTraces + } else { + set args $flagArray + while {[llength $args]>1 && [catch {eval configure $args} msg]} { + + # Something went wrong parsing $args for tcltest options + # Check whether the problem is "unknown option" + if {[regexp {^unknown option (\S+):} $msg -> option]} { + # Could be this is an option the Hook knows about + set moreOptions [processCmdLineArgsAddFlagsHook] + if {[lsearch -exact $moreOptions $option] == -1} { + # Nope. Report the error, including additional options, + # but keep going + if {[llength $moreOptions]} { + append msg ", " + append msg [join [lrange $moreOptions 0 end-1] ", "] + append msg "or [lindex $moreOptions end]" + } + Warn $msg + } + } else { + # error is something other than "unknown option" + # notify user of the error; and exit + puts [errorChannel] $msg + exit 1 + } + + # To recover, find that unknown option and remove up to it. + # then retry + while {![string equal [lindex $args 0] $option]} { + set args [lrange $args 2 end] + } + set args [lrange $args 2 end] + } + if {[llength $args] == 1} { + puts [errorChannel] \ + "missing value for option [lindex $args 0]" + exit 1 + } + } + + # Call the hook + catch { + array set flag $flagArray + processCmdLineArgsHook [array get flag] + } + return +} + +# tcltest::ProcessCmdLineArgs -- +# +# This procedure must be run after constraint initialization is +# set up (by [DefineConstraintInitializers]) because some constraints +# can be overridden. +# +# Perform configuration according to the command-line options. +# +# Arguments: +# none +# +# Results: +# Sets the above-named variables in the tcltest namespace. +# +# Side Effects: +# None. +# + +proc tcltest::ProcessCmdLineArgs {} { + variable originalEnv + variable testConstraints + + # The "argv" var doesn't exist in some cases, so use {}. + if {![info exists ::argv]} { + ProcessFlags {} + } else { + ProcessFlags $::argv + } + + # Spit out everything you know if we're at a debug level 2 or + # greater + DebugPuts 2 "Flags passed into tcltest:" + if {[info exists ::env(TCLTEST_OPTIONS)]} { + DebugPuts 2 \ + " ::env(TCLTEST_OPTIONS): $::env(TCLTEST_OPTIONS)" + } + if {[info exists ::argv]} { + DebugPuts 2 " argv: $::argv" + } + DebugPuts 2 "tcltest::debug = [debug]" + DebugPuts 2 "tcltest::testsDirectory = [testsDirectory]" + DebugPuts 2 "tcltest::workingDirectory = [workingDirectory]" + DebugPuts 2 "tcltest::temporaryDirectory = [temporaryDirectory]" + DebugPuts 2 "tcltest::outputChannel = [outputChannel]" + DebugPuts 2 "tcltest::errorChannel = [errorChannel]" + DebugPuts 2 "Original environment (tcltest::originalEnv):" + DebugPArray 2 originalEnv + DebugPuts 2 "Constraints:" + DebugPArray 2 testConstraints +} + +##################################################################### + +# Code to run the tests goes here. + +# tcltest::TestPuts -- +# +# Used to redefine puts in test environment. Stores whatever goes +# out on stdout in tcltest::outData and stderr in errData before +# sending it on to the regular puts. +# +# Arguments: +# same as standard puts +# +# Results: +# none +# +# Side effects: +# Intercepts puts; data that would otherwise go to stdout, stderr, +# or file channels specified in outputChannel and errorChannel +# does not get sent to the normal puts function. +namespace eval tcltest::Replace { + namespace export puts +} +proc tcltest::Replace::puts {args} { + variable [namespace parent]::outData + variable [namespace parent]::errData + switch [llength $args] { + 1 { + # Only the string to be printed is specified + append outData [lindex $args 0]\n + return + # return [Puts [lindex $args 0]] + } + 2 { + # Either -nonewline or channelId has been specified + if {[string equal -nonewline [lindex $args 0]]} { + append outData [lindex $args end] + return + # return [Puts -nonewline [lindex $args end]] + } else { + set channel [lindex $args 0] + set newline \n + } + } + 3 { + if {[string equal -nonewline [lindex $args 0]]} { + # Both -nonewline and channelId are specified, unless + # it's an error. -nonewline is supposed to be argv[0]. + set channel [lindex $args 1] + set newline "" + } + } + } + + if {[info exists channel]} { + if {[string equal $channel [[namespace parent]::outputChannel]] + || [string equal $channel stdout]} { + append outData [lindex $args end]$newline + return + } elseif {[string equal $channel [[namespace parent]::errorChannel]] + || [string equal $channel stderr]} { + append errData [lindex $args end]$newline + return + } + } + + # If we haven't returned by now, we don't know how to handle the + # input. Let puts handle it. + return [eval Puts $args] +} + +# tcltest::Eval -- +# +# Evaluate the script in the test environment. If ignoreOutput is +# false, store data sent to stderr and stdout in outData and +# errData. Otherwise, ignore this output altogether. +# +# Arguments: +# script Script to evaluate +# ?ignoreOutput? Indicates whether or not to ignore output +# sent to stdout & stderr +# +# Results: +# result from running the script +# +# Side effects: +# Empties the contents of outData and errData before running a +# test if ignoreOutput is set to 0. + +proc tcltest::Eval {script {ignoreOutput 1}} { + variable outData + variable errData + DebugPuts 3 "[lindex [info level 0] 0] called" + if {!$ignoreOutput} { + set outData {} + set errData {} + rename ::puts [namespace current]::Replace::Puts + namespace eval :: [list namespace import [namespace origin Replace::puts]] + namespace import Replace::puts + } + set result [uplevel 1 $script] + if {!$ignoreOutput} { + namespace forget puts + namespace eval :: namespace forget puts + rename [namespace current]::Replace::Puts ::puts + } + return $result +} + +# tcltest::CompareStrings -- +# +# compares the expected answer to the actual answer, depending on +# the mode provided. Mode determines whether a regexp, exact, +# glob or custom comparison is done. +# +# Arguments: +# actual - string containing the actual result +# expected - pattern to be matched against +# mode - type of comparison to be done +# +# Results: +# result of the match +# +# Side effects: +# None. + +proc tcltest::CompareStrings {actual expected mode} { + variable CustomMatch + if {![info exists CustomMatch($mode)]} { + return -code error "No matching command registered for `-match $mode'" + } + set match [namespace eval :: $CustomMatch($mode) [list $expected $actual]] + if {[catch {expr {$match && $match}} result]} { + return -code error "Invalid result from `-match $mode' command: $result" + } + return $match +} + +# tcltest::customMatch -- +# +# registers a command to be called when a particular type of +# matching is required. +# +# Arguments: +# nickname - Keyword for the type of matching +# cmd - Incomplete command that implements that type of matching +# when completed with expected string and actual string +# and then evaluated. +# +# Results: +# None. +# +# Side effects: +# Sets the variable tcltest::CustomMatch + +proc tcltest::customMatch {mode script} { + variable CustomMatch + if {![info complete $script]} { + return -code error \ + "invalid customMatch script; can't evaluate after completion" + } + set CustomMatch($mode) $script +} + +# tcltest::SubstArguments list +# +# This helper function takes in a list of words, then perform a +# substitution on the list as though each word in the list is a separate +# argument to the Tcl function. For example, if this function is +# invoked as: +# +# SubstArguments {$a {$a}} +# +# Then it is as though the function is invoked as: +# +# SubstArguments $a {$a} +# +# This code is adapted from Paul Duffin's function "SplitIntoWords". +# The original function can be found on: +# +# http://purl.org/thecliff/tcl/wiki/858.html +# +# Results: +# a list containing the result of the substitution +# +# Exceptions: +# An error may occur if the list containing unbalanced quote or +# unknown variable. +# +# Side Effects: +# None. +# + +proc tcltest::SubstArguments {argList} { + + # We need to split the argList up into tokens but cannot use list + # operations as they throw away some significant quoting, and + # [split] ignores braces as it should. Therefore what we do is + # gradually build up a string out of whitespace seperated strings. + # We cannot use [split] to split the argList into whitespace + # separated strings as it throws away the whitespace which maybe + # important so we have to do it all by hand. + + set result {} + set token "" + + while {[string length $argList]} { + # Look for the next word containing a quote: " { } + if {[regexp -indices {[^ \t\n]*[\"\{\}]+[^ \t\n]*} \ + $argList all]} { + # Get the text leading up to this word, but not including + # this word, from the argList. + set text [string range $argList 0 \ + [expr {[lindex $all 0] - 1}]] + # Get the word with the quote + set word [string range $argList \ + [lindex $all 0] [lindex $all 1]] + + # Remove all text up to and including the word from the + # argList. + set argList [string range $argList \ + [expr {[lindex $all 1] + 1}] end] + } else { + # Take everything up to the end of the argList. + set text $argList + set word {} + set argList {} + } + + if {$token != {}} { + # If we saw a word with quote before, then there is a + # multi-word token starting with that word. In this case, + # add the text and the current word to this token. + append token $text $word + } else { + # Add the text to the result. There is no need to parse + # the text because it couldn't be a part of any multi-word + # token. Then start a new multi-word token with the word + # because we need to pass this token to the Tcl parser to + # check for balancing quotes + append result $text + set token $word + } + + if { [catch {llength $token} length] == 0 && $length == 1} { + # The token is a valid list so add it to the result. + # lappend result [string trim $token] + append result \{$token\} + set token {} + } + } + + # If the last token has not been added to the list then there + # is a problem. + if { [string length $token] } { + error "incomplete token \"$token\"" + } + + return $result +} + + +# tcltest::test -- +# +# This procedure runs a test and prints an error message if the test +# fails. If verbose has been set, it also prints a message even if the +# test succeeds. The test will be skipped if it doesn't match the +# match variable, if it matches an element in skip, or if one of the +# elements of "constraints" turns out not to be true. +# +# If testLevel is 1, then this is a top level test, and we record +# pass/fail information; otherwise, this information is not logged and +# is not added to running totals. +# +# Attributes: +# Only description is a required attribute. All others are optional. +# Default values are indicated. +# +# constraints - A list of one or more keywords, each of which +# must be the name of an element in the array +# "testConstraints". If any of these elements is +# zero, the test is skipped. This attribute is +# optional; default is {} +# body - Script to run to carry out the test. It must +# return a result that can be checked for +# correctness. This attribute is optional; +# default is {} +# result - Expected result from script. This attribute is +# optional; default is {}. +# output - Expected output sent to stdout. This attribute +# is optional; default is {}. +# errorOutput - Expected output sent to stderr. This attribute +# is optional; default is {}. +# returnCodes - Expected return codes. This attribute is +# optional; default is {0 2}. +# setup - Code to run before $script (above). This +# attribute is optional; default is {}. +# cleanup - Code to run after $script (above). This +# attribute is optional; default is {}. +# match - specifies type of matching to do on result, +# output, errorOutput; this must be a string +# previously registered by a call to [customMatch]. +# The strings exact, glob, and regexp are pre-registered +# by the tcltest package. Default value is exact. +# +# Arguments: +# name - Name of test, in the form foo-1.2. +# description - Short textual description of the test, to +# help humans understand what it does. +# +# Results: +# None. +# +# Side effects: +# Just about anything is possible depending on the test. +# + +proc tcltest::test {name description args} { + global tcl_platform + variable testLevel + variable coreModTime + DebugPuts 3 "test $name $args" + DebugDo 1 { + variable TestNames + catch { + puts "test name '$name' re-used; prior use in $TestNames($name)" + } + set TestNames($name) [info script] + } + + FillFilesExisted + incr testLevel + + # Pre-define everything to null except output and errorOutput. We + # determine whether or not to trap output based on whether or not + # these variables (output & errorOutput) are defined. + foreach item {constraints setup cleanup body result returnCodes + match} { + set $item {} + } + + # Set the default match mode + set match exact + + # Set the default match values for return codes (0 is the standard + # expected return value if everything went well; 2 represents + # 'return' being used in the test script). + set returnCodes [list 0 2] + + # The old test format can't have a 3rd argument (constraints or + # script) that starts with '-'. + if {[string match -* [lindex $args 0]] + || ([llength $args] <= 1)} { + if {[llength $args] == 1} { + set list [SubstArguments [lindex $args 0]] + foreach {element value} $list { + set testAttributes($element) $value + } + foreach item {constraints match setup body cleanup \ + result returnCodes output errorOutput} { + if {[info exists testAttributes(-$item)]} { + set testAttributes(-$item) [uplevel 1 \ + ::concat $testAttributes(-$item)] + } + } + } else { + array set testAttributes $args + } + + set validFlags {-setup -cleanup -body -result -returnCodes \ + -match -output -errorOutput -constraints} + + foreach flag [array names testAttributes] { + if {[lsearch -exact $validFlags $flag] == -1} { + incr testLevel -1 + set sorted [lsort $validFlags] + set options [join [lrange $sorted 0 end-1] ", "] + append options ", or [lindex $sorted end]" + return -code error "bad option \"$flag\": must be $options" + } + } + + # store whatever the user gave us + foreach item [array names testAttributes] { + set [string trimleft $item "-"] $testAttributes($item) + } + + # Check the values supplied for -match + variable CustomMatch + if {[lsearch [array names CustomMatch] $match] == -1} { + incr testLevel -1 + set sorted [lsort [array names CustomMatch]] + set values [join [lrange $sorted 0 end-1] ", "] + append values ", or [lindex $sorted end]" + return -code error "bad -match value \"$match\":\ + must be $values" + } + + # Replace symbolic valies supplied for -returnCodes + foreach {strcode numcode} {ok 0 normal 0 error 1 return 2 break 3 continue 4} { + set returnCodes [string map -nocase [list $strcode $numcode] $returnCodes] + } + } else { + # This is parsing for the old test command format; it is here + # for backward compatibility. + set result [lindex $args end] + if {[llength $args] == 2} { + set body [lindex $args 0] + } elseif {[llength $args] == 3} { + set constraints [lindex $args 0] + set body [lindex $args 1] + } else { + incr testLevel -1 + return -code error "wrong # args:\ + should be \"test name desc ?options?\"" + } + } + + if {[Skipped $name $constraints]} { + incr testLevel -1 + return + } + + # Save information about the core file. + if {[preserveCore]} { + if {[file exists [file join [workingDirectory] core]]} { + set coreModTime [file mtime [file join [workingDirectory] core]] + } + } + + # First, run the setup script + set code [catch {uplevel 1 $setup} setupMsg] + if {$code == 1} { + set errorInfo(setup) $::errorInfo + set errorCode(setup) $::errorCode + } + set setupFailure [expr {$code != 0}] + + # Only run the test body if the setup was successful + if {!$setupFailure} { + + # Verbose notification of $body start + if {[IsVerbose start]} { + puts [outputChannel] "---- $name start" + flush [outputChannel] + } + + set command [list [namespace origin RunTest] $name $body] + if {[info exists output] || [info exists errorOutput]} { + set testResult [uplevel 1 [list [namespace origin Eval] $command 0]] + } else { + set testResult [uplevel 1 [list [namespace origin Eval] $command 1]] + } + foreach {actualAnswer returnCode} $testResult break + if {$returnCode == 1} { + set errorInfo(body) $::errorInfo + set errorCode(body) $::errorCode + } + } + + # 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 {[string length $msg] > 0} { + append coreMsg "\nError:\ + Problem renaming core file: $msg" + } + } + } + } + + # check if the return code matched the expected return code + set codeFailure 0 + if {!$setupFailure && [lsearch -exact $returnCodes $returnCode] == -1} { + set codeFailure 1 + } + + # If expected output/error strings exist, we have to compare + # them. If the comparison fails, then so did the test. + set outputFailure 0 + variable outData + if {[info exists output] && !$codeFailure} { + if {[set outputCompare [catch { + CompareStrings $outData $output $match + } outputMatch]] == 0} { + set outputFailure [expr {!$outputMatch}] + } else { + set outputFailure 1 + } + } + + set errorFailure 0 + variable errData + if {[info exists errorOutput] && !$codeFailure} { + if {[set errorCompare [catch { + CompareStrings $errData $errorOutput $match + } errorMatch]] == 0} { + set errorFailure [expr {!$errorMatch}] + } else { + set errorFailure 1 + } + } + + # check if the answer matched the expected answer + # Only check if we ran the body of the test (no setup failure) + if {$setupFailure || $codeFailure} { + set scriptFailure 0 + } elseif {[set scriptCompare [catch { + CompareStrings $actualAnswer $result $match + } scriptMatch]] == 0} { + set scriptFailure [expr {!$scriptMatch}] + } else { + set scriptFailure 1 + } + + # if we didn't experience any failures, then we passed + variable numTests + if {!($setupFailure || $cleanupFailure || $coreFailure + || $outputFailure || $errorFailure || $codeFailure + || $scriptFailure)} { + if {$testLevel == 1} { + incr numTests(Passed) + if {[IsVerbose pass]} { + puts [outputChannel] "++++ $name PASSED" + } + } + incr testLevel -1 + return + } + + # We know the test failed, tally it... + if {$testLevel == 1} { + incr numTests(Failed) + } + + # ... then report according to the type of failure + variable currentFailure true + if {![IsVerbose body]} { + set body "" + } + puts [outputChannel] "\n" + if {[IsVerbose line]} { + if {![catch {set testFrame [info frame -1]}] && + [dict get $testFrame type] eq "source"} { + set testFile [dict get $testFrame file] + set testLine [dict get $testFrame line] + } else { + set testFile [file normalize [uplevel 1 {info script}]] + if {[file readable $testFile]} { + set testFd [open $testFile r] + set testLine [expr {[lsearch -regexp \ + [split [read $testFd] "\n"] \ + "^\[ \t\]*test [string map {. \\.} $name] "]+1}] + close $testFd + } + } + if {[info exists testLine]} { + puts [outputChannel] "$testFile:$testLine: test failed:\ + $name [string trim $description]" + } + } + puts [outputChannel] "==== $name\ + [string trim $description] FAILED" + if {[string length $body]} { + puts [outputChannel] "==== Contents of test case:" + puts [outputChannel] $body + } + if {$setupFailure} { + puts [outputChannel] "---- Test setup\ + failed:\n$setupMsg" + if {[info exists errorInfo(setup)]} { + puts [outputChannel] "---- errorInfo(setup): $errorInfo(setup)" + puts [outputChannel] "---- errorCode(setup): $errorCode(setup)" + } + } + if {$scriptFailure} { + if {$scriptCompare} { + puts [outputChannel] "---- Error testing result: $scriptMatch" + } else { + puts [outputChannel] "---- Result was:\n$actualAnswer" + puts [outputChannel] "---- Result should have been\ + ($match matching):\n$result" + } + } + if {$codeFailure} { + switch -- $returnCode { + 0 { set msg "Test completed normally" } + 1 { set msg "Test generated error" } + 2 { set msg "Test generated return exception" } + 3 { set msg "Test generated break exception" } + 4 { set msg "Test generated continue exception" } + default { set msg "Test generated exception" } + } + puts [outputChannel] "---- $msg; Return code was: $returnCode" + puts [outputChannel] "---- Return code should have been\ + one of: $returnCodes" + if {[IsVerbose error]} { + if {[info exists errorInfo(body)] && ([lsearch $returnCodes 1]<0)} { + puts [outputChannel] "---- errorInfo: $errorInfo(body)" + puts [outputChannel] "---- errorCode: $errorCode(body)" + } + } + } + if {$outputFailure} { + if {$outputCompare} { + puts [outputChannel] "---- Error testing output: $outputMatch" + } else { + puts [outputChannel] "---- Output was:\n$outData" + puts [outputChannel] "---- Output should have been\ + ($match matching):\n$output" + } + } + if {$errorFailure} { + if {$errorCompare} { + puts [outputChannel] "---- Error testing errorOutput: $errorMatch" + } else { + puts [outputChannel] "---- Error output was:\n$errData" + puts [outputChannel] "---- Error output should have\ + been ($match matching):\n$errorOutput" + } + } + if {$cleanupFailure} { + puts [outputChannel] "---- Test cleanup failed:\n$cleanupMsg" + if {[info exists errorInfo(cleanup)]} { + puts [outputChannel] "---- errorInfo(cleanup): $errorInfo(cleanup)" + puts [outputChannel] "---- errorCode(cleanup): $errorCode(cleanup)" + } + } + if {$coreFailure} { + puts [outputChannel] "---- Core file produced while running\ + test! $coreMsg" + } + puts [outputChannel] "==== $name FAILED\n" + + incr testLevel -1 + return +} + +# Skipped -- +# +# Given a test name and it constraints, returns a boolean indicating +# whether the current configuration says the test should be skipped. +# +# Side Effects: Maintains tally of total tests seen and tests skipped. +# +proc tcltest::Skipped {name constraints} { + variable testLevel + variable numTests + variable testConstraints + + if {$testLevel == 1} { + incr numTests(Total) + } + # skip the test if it's name matches an element of skip + foreach pattern [skip] { + if {[string match $pattern $name]} { + if {$testLevel == 1} { + incr numTests(Skipped) + DebugDo 1 {AddToSkippedBecause userSpecifiedSkip} + } + return 1 + } + } + # skip the test if it's name doesn't match any element of match + set ok 0 + foreach pattern [match] { + if {[string match $pattern $name]} { + set ok 1 + break + } + } + if {!$ok} { + if {$testLevel == 1} { + incr numTests(Skipped) + DebugDo 1 {AddToSkippedBecause userSpecifiedNonMatch} + } + return 1 + } + if {[string equal {} $constraints]} { + # If we're limited to the listed constraints and there aren't + # any listed, then we shouldn't run the test. + if {[limitConstraints]} { + AddToSkippedBecause userSpecifiedLimitConstraint + if {$testLevel == 1} { + incr numTests(Skipped) + } + return 1 + } + } else { + # "constraints" argument exists; + # make sure that the constraints are satisfied. + + set doTest 0 + if {[string match {*[$\[]*} $constraints] != 0} { + # full expression, e.g. {$foo > [info tclversion]} + catch {set doTest [uplevel #0 expr $constraints]} + } elseif {[regexp {[^.:_a-zA-Z0-9 \n\r\t]+} $constraints] != 0} { + # something like {a || b} should be turned into + # $testConstraints(a) || $testConstraints(b). + regsub -all {[.\w]+} $constraints {$testConstraints(&)} c + catch {set doTest [eval expr $c]} + } elseif {![catch {llength $constraints}]} { + # just simple constraints such as {unixOnly fonts}. + set doTest 1 + foreach constraint $constraints { + if {(![info exists testConstraints($constraint)]) \ + || (!$testConstraints($constraint))} { + set doTest 0 + + # store the constraint that kept the test from + # running + set constraints $constraint + break + } + } + } + + if {!$doTest} { + if {[IsVerbose skip]} { + puts [outputChannel] "++++ $name SKIPPED: $constraints" + } + + if {$testLevel == 1} { + incr numTests(Skipped) + AddToSkippedBecause $constraints + } + return 1 + } + } + return 0 +} + +# RunTest -- +# +# This is where the body of a test is evaluated. The combination of +# [RunTest] and [Eval] allows the output and error output of the test +# body to be captured for comparison against the expected values. + +proc tcltest::RunTest {name script} { + DebugPuts 3 "Running $name {$script}" + + # If there is no "memory" command (because memory debugging isn't + # enabled), then don't attempt to use the command. + + if {[llength [info commands memory]] == 1} { + memory tag $name + } + + set code [catch {uplevel 1 $script} actualAnswer] + + return [list $actualAnswer $code] +} + +##################################################################### + +# tcltest::cleanupTestsHook -- +# +# This hook allows a harness that builds upon tcltest to specify +# additional things that should be done at cleanup. +# + +if {[llength [info commands tcltest::cleanupTestsHook]] == 0} { + proc tcltest::cleanupTestsHook {} {} +} + +# tcltest::cleanupTests -- +# +# Remove files and dirs created using the makeFile and makeDirectory +# commands since the last time this proc was invoked. +# +# Print the names of the files created without the makeFile command +# since the tests were invoked. +# +# Print the number tests (total, passed, failed, and skipped) since the +# tests were invoked. +# +# Restore original environment (as reported by special variable env). +# +# Arguments: +# calledFromAllFile - if 0, behave as if we are running a single +# test file within an entire suite of tests. if we aren't running +# a single test file, then don't report status. check for new +# files created during the test run and report on them. if 1, +# report collated status from all the test file runs. +# +# Results: +# None. +# +# Side Effects: +# None +# + +proc tcltest::cleanupTests {{calledFromAllFile 0}} { + variable filesMade + variable filesExisted + variable createdNewFiles + variable testSingleFile + variable numTests + variable numTestFiles + variable failFiles + variable skippedBecause + variable currentFailure + variable originalEnv + variable originalTclPlatform + variable coreModTime + + FillFilesExisted + set testFileName [file tail [info script]] + + # Call the cleanup hook + cleanupTestsHook + + # Remove files and directories created by the makeFile and + # makeDirectory procedures. Record the names of files in + # workingDirectory that were not pre-existing, and associate them + # with the test file that created them. + + if {!$calledFromAllFile} { + foreach file $filesMade { + if {[file exists $file]} { + DebugDo 1 {Warn "cleanupTests deleting $file..."} + catch {file delete -force $file} + } + } + set currentFiles {} + foreach file [glob -nocomplain \ + -directory [temporaryDirectory] *] { + lappend currentFiles [file tail $file] + } + set newFiles {} + foreach file $currentFiles { + if {[lsearch -exact $filesExisted $file] == -1} { + lappend newFiles $file + } + } + set filesExisted $currentFiles + if {[llength $newFiles] > 0} { + set createdNewFiles($testFileName) $newFiles + } + } + + if {$calledFromAllFile || $testSingleFile} { + + # print stats + + puts -nonewline [outputChannel] "$testFileName:" + foreach index [list "Total" "Passed" "Skipped" "Failed"] { + puts -nonewline [outputChannel] \ + "\t$index\t$numTests($index)" + } + puts [outputChannel] "" + + # print number test files sourced + # print names of files that ran tests which failed + + if {$calledFromAllFile} { + puts [outputChannel] \ + "Sourced $numTestFiles Test Files." + set numTestFiles 0 + if {[llength $failFiles] > 0} { + puts [outputChannel] \ + "Files with failing tests: $failFiles" + set failFiles {} + } + } + + # if any tests were skipped, print the constraints that kept + # them from running. + + set constraintList [array names skippedBecause] + if {[llength $constraintList] > 0} { + puts [outputChannel] \ + "Number of tests skipped for each constraint:" + foreach constraint [lsort $constraintList] { + puts [outputChannel] \ + "\t$skippedBecause($constraint)\t$constraint" + unset skippedBecause($constraint) + } + } + + # report the names of test files in createdNewFiles, and reset + # the array to be empty. + + set testFilesThatTurded [lsort [array names createdNewFiles]] + if {[llength $testFilesThatTurded] > 0} { + puts [outputChannel] "Warning: files left behind:" + foreach testFile $testFilesThatTurded { + puts [outputChannel] \ + "\t$testFile:\t$createdNewFiles($testFile)" + unset createdNewFiles($testFile) + } + } + + # reset filesMade, filesExisted, and numTests + + set filesMade {} + foreach index [list "Total" "Passed" "Skipped" "Failed"] { + set numTests($index) 0 + } + + # exit only if running Tk in non-interactive mode + # This should be changed to determine if an event + # loop is running, which is the real issue. + # Actually, this doesn't belong here at all. A package + # really has no business [exit]-ing an application. + if {![catch {package present Tk}] && ![testConstraint interactive]} { + exit + } + } else { + + # if we're deferring stat-reporting until all files are sourced, + # then add current file to failFile list if any tests in this + # file failed + + if {$currentFailure \ + && ([lsearch -exact $failFiles $testFileName] == -1)} { + lappend failFiles $testFileName + } + set currentFailure false + + # restore the environment to the state it was in before this package + # was loaded + + set newEnv {} + set changedEnv {} + set removedEnv {} + foreach index [array names ::env] { + if {![info exists originalEnv($index)]} { + lappend newEnv $index + unset ::env($index) + } else { + if {$::env($index) != $originalEnv($index)} { + lappend changedEnv $index + set ::env($index) $originalEnv($index) + } + } + } + foreach index [array names originalEnv] { + if {![info exists ::env($index)]} { + lappend removedEnv $index + set ::env($index) $originalEnv($index) + } + } + if {[llength $newEnv] > 0} { + puts [outputChannel] \ + "env array elements created:\t$newEnv" + } + if {[llength $changedEnv] > 0} { + puts [outputChannel] \ + "env array elements changed:\t$changedEnv" + } + if {[llength $removedEnv] > 0} { + puts [outputChannel] \ + "env array elements removed:\t$removedEnv" + } + + set changedTclPlatform {} + foreach index [array names originalTclPlatform] { + if {$::tcl_platform($index) \ + != $originalTclPlatform($index)} { + lappend changedTclPlatform $index + set ::tcl_platform($index) $originalTclPlatform($index) + } + } + if {[llength $changedTclPlatform] > 0} { + puts [outputChannel] "tcl_platform array elements\ + changed:\t$changedTclPlatform" + } + + if {[file exists [file join [workingDirectory] core]]} { + if {[preserveCore] > 1} { + puts "rename core file (> 1)" + puts [outputChannel] "produced core file! \ + Moving file to: \ + [file join [temporaryDirectory] core-$testFileName]" + catch {file rename -force \ + [file join [workingDirectory] core] \ + [file join [temporaryDirectory] core-$testFileName] + } msg + if {[string length $msg] > 0} { + PrintError "Problem renaming file: $msg" + } + } else { + # Print a message 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]]} { + puts [outputChannel] "A core file was created!" + } + } else { + puts [outputChannel] "A core file was created!" + } + } + } + } + flush [outputChannel] + flush [errorChannel] + return +} + +##################################################################### + +# Procs that determine which tests/test files to run + +# tcltest::GetMatchingFiles +# +# Looks at the patterns given to match and skip files and uses +# them to put together a list of the tests that will be run. +# +# Arguments: +# directory to search +# +# Results: +# The constructed list is returned to the user. This will +# primarily be used in 'all.tcl' files. It is used in +# runAllTests. +# +# Side Effects: +# None + +# a lower case version is needed for compatibility with tcltest 1.0 +proc tcltest::getMatchingFiles args {eval GetMatchingFiles $args} + +proc tcltest::GetMatchingFiles { args } { + if {[llength $args]} { + set dirList $args + } else { + # Finding tests only in [testsDirectory] is normal operation. + # This procedure is written to accept multiple directory arguments + # only to satisfy version 1 compatibility. + set dirList [list [testsDirectory]] + } + + set matchingFiles [list] + foreach directory $dirList { + + # List files in $directory that match patterns to run. + set matchFileList [list] + foreach match [matchFiles] { + set matchFileList [concat $matchFileList \ + [glob -directory $directory -types {b c f p s} \ + -nocomplain -- $match]] + } + + # List files in $directory that match patterns to skip. + set skipFileList [list] + foreach skip [skipFiles] { + set skipFileList [concat $skipFileList \ + [glob -directory $directory -types {b c f p s} \ + -nocomplain -- $skip]] + } + + # Add to result list all files in match list and not in skip list + foreach file $matchFileList { + if {[lsearch -exact $skipFileList $file] == -1} { + lappend matchingFiles $file + } + } + } + + if {[llength $matchingFiles] == 0} { + PrintError "No test files remain after applying your match and\ + skip patterns!" + } + return $matchingFiles +} + +# tcltest::GetMatchingDirectories -- +# +# Looks at the patterns given to match and skip directories and +# uses them to put together a list of the test directories that we +# should attempt to run. (Only subdirectories containing an +# "all.tcl" file are put into the list.) +# +# Arguments: +# root directory from which to search +# +# Results: +# The constructed list is returned to the user. This is used in +# the primary all.tcl file. +# +# Side Effects: +# None. + +proc tcltest::GetMatchingDirectories {rootdir} { + + # Determine the skip list first, to avoid [glob]-ing over subdirectories + # we're going to throw away anyway. Be sure we skip the $rootdir if it + # comes up to avoid infinite loops. + set skipDirs [list $rootdir] + foreach pattern [skipDirectories] { + set skipDirs [concat $skipDirs [glob -directory $rootdir -types d \ + -nocomplain -- $pattern]] + } + + # Now step through the matching directories, prune out the skipped ones + # as you go. + set matchDirs [list] + foreach pattern [matchDirectories] { + foreach path [glob -directory $rootdir -types d -nocomplain -- \ + $pattern] { + if {[lsearch -exact $skipDirs $path] == -1} { + set matchDirs [concat $matchDirs [GetMatchingDirectories $path]] + if {[file exists [file join $path all.tcl]]} { + lappend matchDirs $path + } + } + } + } + + if {[llength $matchDirs] == 0} { + DebugPuts 1 "No test directories remain after applying match\ + and skip patterns!" + } + return $matchDirs +} + +# tcltest::runAllTests -- +# +# prints output and sources test files according to the match and +# skip patterns provided. after sourcing test files, it goes on +# to source all.tcl files in matching test subdirectories. +# +# Arguments: +# shell being tested +# +# Results: +# None. +# +# Side effects: +# None. + +proc tcltest::runAllTests { {shell ""} } { + variable testSingleFile + variable numTestFiles + variable numTests + variable failFiles + + FillFilesExisted + if {[llength [info level 0]] == 1} { + set shell [interpreter] + } + + set testSingleFile false + + puts [outputChannel] "Tests running in interp: $shell" + puts [outputChannel] "Tests located in: [testsDirectory]" + puts [outputChannel] "Tests running in: [workingDirectory]" + puts [outputChannel] "Temporary files stored in\ + [temporaryDirectory]" + + # [file system] first available in Tcl 8.4 + if {![catch {file system [testsDirectory]} result] + && ![string equal native [lindex $result 0]]} { + # If we aren't running in the native filesystem, then we must + # run the tests in a single process (via 'source'), because + # trying to run then via a pipe will fail since the files don't + # really exist. + singleProcess 1 + } + + if {[singleProcess]} { + puts [outputChannel] \ + "Test files sourced into current interpreter" + } else { + puts [outputChannel] \ + "Test files run in separate interpreters" + } + if {[llength [skip]] > 0} { + puts [outputChannel] "Skipping tests that match: [skip]" + } + puts [outputChannel] "Running tests that match: [match]" + + if {[llength [skipFiles]] > 0} { + puts [outputChannel] \ + "Skipping test files that match: [skipFiles]" + } + if {[llength [matchFiles]] > 0} { + puts [outputChannel] \ + "Only running test files that match: [matchFiles]" + } + + set timeCmd {clock format [clock seconds]} + puts [outputChannel] "Tests began at [eval $timeCmd]" + + # Run each of the specified tests + foreach file [lsort [GetMatchingFiles]] { + set tail [file tail $file] + puts [outputChannel] $tail + flush [outputChannel] + + if {[singleProcess]} { + incr numTestFiles + uplevel 1 [list ::source $file] + } else { + # Pass along our configuration to the child processes. + # EXCEPT for the -outfile, because the parent process + # needs to read and process output of children. + set childargv [list] + foreach opt [Configure] { + if {[string equal $opt -outfile]} {continue} + lappend childargv $opt [Configure $opt] + } + set cmd [linsert $childargv 0 | $shell $file] + if {[catch { + incr numTestFiles + set pipeFd [open $cmd "r"] + while {[gets $pipeFd line] >= 0} { + if {[regexp [join { + {^([^:]+):\t} + {Total\t([0-9]+)\t} + {Passed\t([0-9]+)\t} + {Skipped\t([0-9]+)\t} + {Failed\t([0-9]+)} + } ""] $line null testFile \ + Total Passed Skipped Failed]} { + foreach index {Total Passed Skipped Failed} { + incr numTests($index) [set $index] + } + if {$Failed > 0} { + lappend failFiles $testFile + } + } elseif {[regexp [join { + {^Number of tests skipped } + {for each constraint:} + {|^\t(\d+)\t(.+)$} + } ""] $line match skipped constraint]} { + if {[string match \t* $match]} { + AddToSkippedBecause $constraint $skipped + } + } else { + puts [outputChannel] $line + } + } + close $pipeFd + } msg]} { + puts [outputChannel] "Test file error: $msg" + # append the name of the test to a list to be reported + # later + lappend testFileFailures $file + } + } + } + + # cleanup + puts [outputChannel] "\nTests ended at [eval $timeCmd]" + cleanupTests 1 + if {[info exists testFileFailures]} { + puts [outputChannel] "\nTest files exiting with errors: \n" + foreach file $testFileFailures { + puts [outputChannel] " [file tail $file]\n" + } + } + + # Checking for subdirectories in which to run tests + foreach directory [GetMatchingDirectories [testsDirectory]] { + set dir [file tail $directory] + puts [outputChannel] [string repeat ~ 44] + puts [outputChannel] "$dir test began at [eval $timeCmd]\n" + + uplevel 1 [list ::source [file join $directory all.tcl]] + + set endTime [eval $timeCmd] + puts [outputChannel] "\n$dir test ended at $endTime" + puts [outputChannel] "" + puts [outputChannel] [string repeat ~ 44] + } + return +} + +##################################################################### + +# Test utility procs - not used in tcltest, but may be useful for +# testing. + +# tcltest::loadTestedCommands -- +# +# Uses the specified script to load the commands to test. Allowed to +# be empty, as the tested commands could have been compiled into the +# interpreter. +# +# Arguments +# none +# +# Results +# none +# +# Side Effects: +# none. + +proc tcltest::loadTestedCommands {} { + variable l + if {[string equal {} [loadScript]]} { + return + } + + return [uplevel 1 [loadScript]] +} + +# tcltest::saveState -- +# +# Save information regarding what procs and variables exist. +# +# Arguments: +# none +# +# Results: +# Modifies the variable saveState +# +# Side effects: +# None. + +proc tcltest::saveState {} { + variable saveState + uplevel 1 [list ::set [namespace which -variable saveState]] \ + {[::list [::info procs] [::info vars]]} + DebugPuts 2 "[lindex [info level 0] 0]: $saveState" + return +} + +# tcltest::restoreState -- +# +# Remove procs and variables that didn't exist before the call to +# [saveState]. +# +# Arguments: +# none +# +# Results: +# Removes procs and variables from your environment if they don't +# exist in the saveState variable. +# +# Side effects: +# None. + +proc tcltest::restoreState {} { + variable saveState + foreach p [uplevel 1 {::info procs}] { + if {([lsearch [lindex $saveState 0] $p] < 0) + && ![string equal [namespace current]::$p \ + [uplevel 1 [list ::namespace origin $p]]]} { + + DebugPuts 2 "[lindex [info level 0] 0]: Removing proc $p" + uplevel 1 [list ::catch [list ::rename $p {}]] + } + } + foreach p [uplevel 1 {::info vars}] { + if {[lsearch [lindex $saveState 1] $p] < 0} { + DebugPuts 2 "[lindex [info level 0] 0]:\ + Removing variable $p" + uplevel 1 [list ::catch [list ::unset $p]] + } + } + return +} + +# tcltest::normalizeMsg -- +# +# Removes "extra" newlines from a string. +# +# Arguments: +# msg String to be modified +# +# Results: +# string with extra newlines removed +# +# Side effects: +# None. + +proc tcltest::normalizeMsg {msg} { + regsub "\n$" [string tolower $msg] "" msg + set msg [string map [list "\n\n" "\n"] $msg] + return [string map [list "\n\}" "\}"] $msg] +} + +# tcltest::makeFile -- +# +# Create a new file with the name , and write to it. +# +# If this file hasn't been created via makeFile since the last time +# cleanupTests was called, add it to the $filesMade list, so it will be +# removed by the next call to cleanupTests. +# +# Arguments: +# contents content of the new file +# name name of the new file +# directory directory name for new file +# +# Results: +# absolute path to the file created +# +# Side effects: +# None. + +proc tcltest::makeFile {contents name {directory ""}} { + variable filesMade + FillFilesExisted + + if {[llength [info level 0]] == 3} { + set directory [temporaryDirectory] + } + + set fullName [file join $directory $name] + + DebugPuts 3 "[lindex [info level 0] 0]:\ + putting ``$contents'' into $fullName" + + set fd [open $fullName w] + fconfigure $fd -translation lf + if {[string equal [string index $contents end] \n]} { + puts -nonewline $fd $contents + } else { + puts $fd $contents + } + close $fd + + if {[lsearch -exact $filesMade $fullName] == -1} { + lappend filesMade $fullName + } + return $fullName +} + +# tcltest::removeFile -- +# +# Removes the named file from the filesystem +# +# Arguments: +# name file to be removed +# directory directory from which to remove file +# +# Results: +# return value from [file delete] +# +# Side effects: +# None. + +proc tcltest::removeFile {name {directory ""}} { + variable filesMade + FillFilesExisted + if {[llength [info level 0]] == 2} { + set directory [temporaryDirectory] + } + set fullName [file join $directory $name] + DebugPuts 3 "[lindex [info level 0] 0]: removing $fullName" + set idx [lsearch -exact $filesMade $fullName] + set filesMade [lreplace $filesMade $idx $idx] + if {$idx == -1} { + DebugDo 1 { + Warn "removeFile removing \"$fullName\":\n not created by makeFile" + } + } + if {![file isfile $fullName]} { + DebugDo 1 { + Warn "removeFile removing \"$fullName\":\n not a file" + } + } + return [file delete $fullName] +} + +# tcltest::makeDirectory -- +# +# Create a new dir with the name . +# +# If this dir hasn't been created via makeDirectory since the last time +# cleanupTests was called, add it to the $directoriesMade list, so it +# will be removed by the next call to cleanupTests. +# +# Arguments: +# name name of the new directory +# directory directory in which to create new dir +# +# Results: +# absolute path to the directory created +# +# Side effects: +# None. + +proc tcltest::makeDirectory {name {directory ""}} { + variable filesMade + FillFilesExisted + if {[llength [info level 0]] == 2} { + set directory [temporaryDirectory] + } + set fullName [file join $directory $name] + DebugPuts 3 "[lindex [info level 0] 0]: creating $fullName" + file mkdir $fullName + if {[lsearch -exact $filesMade $fullName] == -1} { + lappend filesMade $fullName + } + return $fullName +} + +# tcltest::removeDirectory -- +# +# Removes a named directory from the file system. +# +# Arguments: +# name Name of the directory to remove +# directory Directory from which to remove +# +# Results: +# return value from [file delete] +# +# Side effects: +# None + +proc tcltest::removeDirectory {name {directory ""}} { + variable filesMade + FillFilesExisted + if {[llength [info level 0]] == 2} { + set directory [temporaryDirectory] + } + set fullName [file join $directory $name] + DebugPuts 3 "[lindex [info level 0] 0]: deleting $fullName" + set idx [lsearch -exact $filesMade $fullName] + set filesMade [lreplace $filesMade $idx $idx] + if {$idx == -1} { + DebugDo 1 { + Warn "removeDirectory removing \"$fullName\":\n not created\ + by makeDirectory" + } + } + if {![file isdirectory $fullName]} { + DebugDo 1 { + Warn "removeDirectory removing \"$fullName\":\n not a directory" + } + } + return [file delete -force $fullName] +} + +# tcltest::viewFile -- +# +# reads the content of a file and returns it +# +# Arguments: +# name of the file to read +# directory in which file is located +# +# Results: +# content of the named file +# +# Side effects: +# None. + +proc tcltest::viewFile {name {directory ""}} { + FillFilesExisted + if {[llength [info level 0]] == 2} { + set directory [temporaryDirectory] + } + set fullName [file join $directory $name] + set f [open $fullName] + set data [read -nonewline $f] + close $f + return $data +} + +# tcltest::bytestring -- +# +# Construct a string that consists of the requested sequence of bytes, +# as opposed to a string of properly formed UTF-8 characters. +# This allows the tester to +# 1. Create denormalized or improperly formed strings to pass to C +# procedures that are supposed to accept strings with embedded NULL +# bytes. +# 2. Confirm that a string result has a certain pattern of bytes, for +# instance to confirm that "\xe0\0" in a Tcl script is stored +# internally in UTF-8 as the sequence of bytes "\xc3\xa0\xc0\x80". +# +# Generally, it's a bad idea to examine the bytes in a Tcl string or to +# construct improperly formed strings in this manner, because it involves +# exposing that Tcl uses UTF-8 internally. +# +# Arguments: +# string being converted +# +# Results: +# result fom encoding +# +# Side effects: +# None + +proc tcltest::bytestring {string} { + return [encoding convertfrom identity $string] +} + +# tcltest::OpenFiles -- +# +# used in io tests, uses testchannel +# +# Arguments: +# None. +# +# Results: +# ??? +# +# Side effects: +# None. + +proc tcltest::OpenFiles {} { + if {[catch {testchannel open} result]} { + return {} + } + return $result +} + +# tcltest::LeakFiles -- +# +# used in io tests, uses testchannel +# +# Arguments: +# None. +# +# Results: +# ??? +# +# Side effects: +# None. + +proc tcltest::LeakFiles {old} { + if {[catch {testchannel open} new]} { + return {} + } + set leak {} + foreach p $new { + if {[lsearch $old $p] < 0} { + lappend leak $p + } + } + return $leak +} + +# +# Internationalization / ISO support procs -- dl +# + +# tcltest::SetIso8859_1_Locale -- +# +# used in cmdIL.test, uses testlocale +# +# Arguments: +# None. +# +# Results: +# None. +# +# Side effects: +# None. + +proc tcltest::SetIso8859_1_Locale {} { + variable previousLocale + variable isoLocale + if {[info commands testlocale] != ""} { + set previousLocale [testlocale ctype] + testlocale ctype $isoLocale + } + return +} + +# tcltest::RestoreLocale -- +# +# used in cmdIL.test, uses testlocale +# +# Arguments: +# None. +# +# Results: +# None. +# +# Side effects: +# None. + +proc tcltest::RestoreLocale {} { + variable previousLocale + if {[info commands testlocale] != ""} { + testlocale ctype $previousLocale + } + return +} + +# tcltest::threadReap -- +# +# Kill all threads except for the main thread. +# Do nothing if testthread is not defined. +# +# Arguments: +# none. +# +# Results: +# Returns the number of existing threads. +# +# Side Effects: +# none. +# + +proc tcltest::threadReap {} { + if {[info commands testthread] != {}} { + + # testthread built into tcltest + + testthread errorproc ThreadNullError + while {[llength [testthread names]] > 1} { + foreach tid [testthread names] { + if {$tid != [mainThread]} { + catch { + testthread send -async $tid {testthread exit} + } + } + } + ## Enter a bit a sleep to give the threads enough breathing + ## room to kill themselves off, otherwise the end up with a + ## massive queue of repeated events + after 1 + } + testthread errorproc ThreadError + return [llength [testthread names]] + } elseif {[info commands thread::id] != {}} { + + # Thread extension + + thread::errorproc ThreadNullError + while {[llength [thread::names]] > 1} { + foreach tid [thread::names] { + if {$tid != [mainThread]} { + catch {thread::send -async $tid {thread::exit}} + } + } + ## Enter a bit a sleep to give the threads enough breathing + ## room to kill themselves off, otherwise the end up with a + ## massive queue of repeated events + after 1 + } + thread::errorproc ThreadError + return [llength [thread::names]] + } else { + return 1 + } + return 0 +} + +# Initialize the constraints and set up command line arguments +namespace eval tcltest { + # Define initializers for all the built-in contraint definitions + DefineConstraintInitializers + + # Set up the constraints in the testConstraints array to be lazily + # initialized by a registered initializer, or by "false" if no + # initializer is registered. + trace variable testConstraints r [namespace code SafeFetch] + + # Only initialize constraints at package load time if an + # [initConstraintsHook] has been pre-defined. This is only + # for compatibility support. The modern way to add a custom + # test constraint is to just call the [testConstraint] command + # straight away, without all this "hook" nonsense. + if {[string equal [namespace current] \ + [namespace qualifiers [namespace which initConstraintsHook]]]} { + InitConstraints + } else { + proc initConstraintsHook {} {} + } + + # Define the standard match commands + customMatch exact [list string equal] + customMatch glob [list string match] + customMatch regexp [list regexp --] + + # If the TCLTEST_OPTIONS environment variable exists, configure + # tcltest according to the option values it specifies. This has + # the effect of resetting tcltest's default configuration. + proc ConfigureFromEnvironment {} { + upvar #0 env(TCLTEST_OPTIONS) options + if {[catch {llength $options} msg]} { + Warn "invalid TCLTEST_OPTIONS \"$options\":\n invalid\ + Tcl list: $msg" + return + } + if {[llength $::env(TCLTEST_OPTIONS)] % 2} { + Warn "invalid TCLTEST_OPTIONS: \"$options\":\n should be\ + -option value ?-option value ...?" + return + } + if {[catch {eval Configure $::env(TCLTEST_OPTIONS)} msg]} { + Warn "invalid TCLTEST_OPTIONS: \"$options\":\n $msg" + return + } + } + if {[info exists ::env(TCLTEST_OPTIONS)]} { + ConfigureFromEnvironment + } + + proc LoadTimeCmdLineArgParsingRequired {} { + set required false + if {[info exists ::argv] && [lsearch -exact $::argv -help] != -1} { + # The command line asks for -help, so give it (and exit) + # right now. ([configure] does not process -help) + set required true + } + foreach hook { PrintUsageInfoHook processCmdLineArgsHook + processCmdLineArgsAddFlagsHook } { + if {[string equal [namespace current] [namespace qualifiers \ + [namespace which $hook]]]} { + set required true + } else { + proc $hook args {} + } + } + return $required + } + + # Only initialize configurable options from the command line arguments + # at package load time if necessary for backward compatibility. This + # lets the tcltest user call [configure] for themselves if they wish. + # Traces are established for auto-configuration from the command line + # if any configurable options are accessed before the user calls + # [configure]. + if {[LoadTimeCmdLineArgParsingRequired]} { + ProcessCmdLineArgs + } else { + EstablishAutoConfigureTraces + } + + package provide [namespace tail [namespace current]] $Version +} diff --git a/mingw/lib/tclConfig.sh b/mingw/lib/tclConfig.sh index e90a1034..d617fc56 100644 --- a/mingw/lib/tclConfig.sh +++ b/mingw/lib/tclConfig.sh @@ -11,19 +11,19 @@ # # RCS: @(#) $Id: tclConfig.sh.in,v 1.8 2001/11/08 03:07:22 mdejong Exp $ -TCL_DLL_FILE="tcl84.dll" +TCL_DLL_FILE="tcl85.dll" # Tcl's version number. -TCL_VERSION='8.4' +TCL_VERSION='8.5' TCL_MAJOR_VERSION='8' -TCL_MINOR_VERSION='4' -TCL_PATCH_LEVEL='.14' +TCL_MINOR_VERSION='5' +TCL_PATCH_LEVEL='b2' # C compiler to use for compilation. TCL_CC='gcc' # -D flags for use with the C compiler. -TCL_DEFS=' -DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int -DHAVE_WINNT_IGNORE_VOID=1 -DHAVE_ALLOCA_GCC_INLINE=1 -DHAVE_CAST_TO_UNION=1 ' +TCL_DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int -DHAVE_WINNT_IGNORE_VOID=1 -DHAVE_ALLOCA_GCC_INLINE=1 -DHAVE_CAST_TO_UNION=1 -DTCL_CFGVAL_ENCODING=\"cp1252\" -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 ' # If TCL was built with debugging symbols, generated libraries contain # this string at the end of the library name (before the extension). @@ -41,7 +41,7 @@ TCL_LDFLAGS_OPTIMIZE='' TCL_SHARED_BUILD=1 # The name of the Tcl library (may be either a .a file or a shared library): -TCL_LIB_FILE='libtcl84.a' +TCL_LIB_FILE='libtcl85.a' # Flag to indicate whether shared libraries need export files. TCL_NEEDS_EXP_FILE= @@ -67,7 +67,7 @@ TCL_EXEC_PREFIX='/mingw' TCL_SHLIB_CFLAGS='' # Flags to pass to cc to get warning messages -TCL_CFLAGS_WARNING='-Wall -Wconversion' +TCL_CFLAGS_WARNING='-Wall' # Extra flags to pass to cc: TCL_EXTRA_CFLAGS='' @@ -108,15 +108,15 @@ TCL_COMPAT_OBJS='' TCL_RANLIB='ranlib' # -l flag to pass to the linker to pick up the Tcl library -TCL_LIB_FLAG='-ltcl84' +TCL_LIB_FLAG='-ltcl85' # String to pass to linker to pick up the Tcl library from its # build directory. -TCL_BUILD_LIB_SPEC='-L/home/Icke/tcl8.4.14/win -ltcl84' +TCL_BUILD_LIB_SPEC='-L/share/tcltk/tcl8.5b2/win -ltcl85' # String to pass to linker to pick up the Tcl library from its # installed directory. -TCL_LIB_SPEC='-L/mingw/lib -ltcl84' +TCL_LIB_SPEC='-L/mingw/lib -ltcl85' # String to pass to the compiler so that an extension can # find installed Tcl headers. @@ -147,7 +147,7 @@ TCL_UNSHARED_LIB_SUFFIX='${NODOT_VERSION}${DBGX}.a' # different place than the directory containing the source files, this # points to the location of the sources, not the location where Tcl was # compiled. -TCL_SRC_DIR='/home/Icke/tcl8.4.14' +TCL_SRC_DIR='/share/tcltk/tcl8.5b2' # List of standard directories in which to look for packages during # "package require" commands. Contains the "prefix" directory plus also @@ -158,24 +158,24 @@ TCL_PACKAGE_PATH='/mingw/lib' TCL_SUPPORTS_STUBS=1 # The name of the Tcl stub library (.a): -TCL_STUB_LIB_FILE='libtclstub84.a' +TCL_STUB_LIB_FILE='libtclstub85.a' # -l flag to pass to the linker to pick up the Tcl stub library -TCL_STUB_LIB_FLAG='-ltclstub84' +TCL_STUB_LIB_FLAG='-ltclstub85' # String to pass to linker to pick up the Tcl stub library from its # build directory. -TCL_BUILD_STUB_LIB_SPEC='-L/home/Icke/tcl8.4.14/win -ltclstub84' +TCL_BUILD_STUB_LIB_SPEC='-L/share/tcltk/tcl8.5b2/win -ltclstub85' # String to pass to linker to pick up the Tcl stub library from its # installed directory. -TCL_STUB_LIB_SPEC='-L/mingw/lib -ltclstub84' +TCL_STUB_LIB_SPEC='-L/mingw/lib -ltclstub85' # Path to the Tcl stub library in the build directory. -TCL_BUILD_STUB_LIB_PATH='/home/Icke/tcl8.4.14/win/libtclstub84.a' +TCL_BUILD_STUB_LIB_PATH='/share/tcltk/tcl8.5b2/win/libtclstub85.a' # Path to the Tcl stub library in the install directory. -TCL_STUB_LIB_PATH='/mingw/lib/libtclstub84.a' +TCL_STUB_LIB_PATH='/mingw/lib/libtclstub85.a' # Flag, 1: we built Tcl with threads enables, 0 we didn't TCL_THREADS=0 diff --git a/mingw/lib/tifftclConfig.sh b/mingw/lib/tifftclConfig.sh deleted file mode 100644 index 42add3ab..00000000 --- a/mingw/lib/tifftclConfig.sh +++ /dev/null @@ -1,57 +0,0 @@ -# tifftclConfig.sh -- -# -# This shell script (for sh) is generated automatically by tifftcl's -# configure script. It will create shell variables for most of -# the configuration options discovered by the configure script. -# This script is intended to be included by the configure scripts -# for tifftcl extensions so that they don't have to figure this all -# out for themselves. This file does not duplicate information -# already provided by tclConfig.sh, so you may need to use that -# file in addition to this one. -# -# The information in this file is specific to a single platform. - -# tifftcl's version number. -tifftcl_VERSION='3.8.2' -tifftcl_MAJOR_VERSION='' -tifftcl_MINOR_VERSION='' -tifftcl_RELEASE_LEVEL='' - -# The name of the tifftcl library (may be either a .a file or a shared library): -tifftcl_LIB_FILE=tifftcl382.dll - -# String to pass to linker to pick up the tifftcl library from its -# build directory. -tifftcl_BUILD_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/libtiff/tcl -ltifftcl382' - -# String to pass to linker to pick up the tifftcl library from its -# installed directory. -tifftcl_LIB_SPEC='-L/mingw/lib/Img1.3 -ltifftcl382' - -# The name of the tifftcl stub library (a .a file): -tifftcl_STUB_LIB_FILE=libtifftclstub382.a - -# String to pass to linker to pick up the tifftcl stub library from its -# build directory. -tifftcl_BUILD_STUB_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/libtiff/tcl -ltifftclstub382' - -# String to pass to linker to pick up the tifftcl stub library from its -# installed directory. -tifftcl_STUB_LIB_SPEC='-L/mingw/lib/Img1.3 -ltifftclstub382' - -# String to pass to linker to pick up the tifftcl stub library from its -# build directory. -tifftcl_BUILD_STUB_LIB_PATH='/home/Icke/1/tkimg/trunk/libtiff/tcl/libtifftclstub382.a' - -# String to pass to linker to pick up the tifftcl stub library from its -# installed directory. -tifftcl_STUB_LIB_PATH='/mingw/lib/Img1.3/libtifftclstub382.a' - -# Location of the top-level source directories from which tifftcl -# was built. This is the directory that contains generic, unix, etc. -# If tifftcl was compiled in a different place than the directory -# containing the source files, this points to the location of the -# sources, not the location where tifftcl was compiled. This can -# be relative to the build directory. - -tifftcl_SRC_DIR='.' diff --git a/mingw/lib/tk8.4/bgerror.tcl b/mingw/lib/tk8.4/bgerror.tcl deleted file mode 100644 index 619a240b..00000000 --- a/mingw/lib/tk8.4/bgerror.tcl +++ /dev/null @@ -1,276 +0,0 @@ -# bgerror.tcl -- -# -# Implementation of the bgerror procedure. It posts a dialog box with -# the error message and gives the user a chance to see a more detailed -# stack trace, and possible do something more interesting with that -# trace (like save it to a log). This is adapted from work done by -# Donal K. Fellows. -# -# Copyright (c) 1998-2000 by Ajuba Solutions. -# All rights reserved. -# -# RCS: @(#) $Id: bgerror.tcl,v 1.23.2.6 2006/06/22 00:37:01 hobbs Exp $ -# $Id: bgerror.tcl,v 1.23.2.6 2006/06/22 00:37:01 hobbs Exp $ - -namespace eval ::tk::dialog::error { - namespace import -force ::tk::msgcat::* - namespace export bgerror - option add *ErrorDialog.function.text [mc "Save To Log"] \ - widgetDefault - option add *ErrorDialog.function.command [namespace code SaveToLog] -} - -proc ::tk::dialog::error::Return {} { - variable button - - .bgerrorDialog.ok configure -state active -relief sunken - update idletasks - after 100 - set button 0 -} - -proc ::tk::dialog::error::Details {} { - set w .bgerrorDialog - set caption [option get $w.function text {}] - set command [option get $w.function command {}] - if { ($caption eq "") || ($command eq "") } { - grid forget $w.function - } - lappend command [.bgerrorDialog.top.info.text get 1.0 end-1c] - $w.function configure -text $caption -command $command - grid $w.top.info - -sticky nsew -padx 3m -pady 3m -} - -proc ::tk::dialog::error::SaveToLog {text} { - if { $::tcl_platform(platform) eq "windows" } { - set allFiles *.* - } else { - set allFiles * - } - set types [list \ - [list [mc "Log Files"] .log] \ - [list [mc "Text Files"] .txt] \ - [list [mc "All Files"] $allFiles] \ - ] - set filename [tk_getSaveFile -title [mc "Select Log File"] \ - -filetypes $types -defaultextension .log -parent .bgerrorDialog] - if {![string length $filename]} { - return - } - set f [open $filename w] - puts -nonewline $f $text - close $f -} - -proc ::tk::dialog::error::Destroy {w} { - if {$w eq ".bgerrorDialog"} { - variable button - set button -1 - } -} - -# ::tk::dialog::error::bgerror -- -# This is the default version of bgerror. -# It tries to execute tkerror, if that fails it posts a dialog box containing -# the error message and gives the user a chance to ask to see a stack -# trace. -# Arguments: -# err - The error message. - -proc ::tk::dialog::error::bgerror err { - global errorInfo tcl_platform - variable button - - set info $errorInfo - - set ret [catch {::tkerror $err} msg]; - if {$ret != 1} {return -code $ret $msg} - - # Ok the application's tkerror either failed or was not found - # we use the default dialog then : - set windowingsystem [tk windowingsystem] - - if {($tcl_platform(platform) eq "macintosh") - || ($windowingsystem eq "aqua")} { - set ok [mc Ok] - set messageFont system - set textRelief flat - set textHilight 0 - } else { - set ok [mc OK] - set messageFont {Times -18} - set textRelief sunken - set textHilight 1 - } - - - # Truncate the message if it is too wide (longer than 30 characacters) or - # too tall (more than 4 newlines). Truncation occurs at the first point at - # which one of those conditions is met. - set displayedErr "" - set lines 0 - foreach line [split $err \n] { - if { [string length $line] > 30 } { - append displayedErr "[string range $line 0 29]..." - break - } - if { $lines > 4 } { - append displayedErr "..." - break - } else { - append displayedErr "${line}\n" - } - incr lines - } - - set w .bgerrorDialog - set title [mc "Application Error"] - set text [mc {Error: %1$s} $displayedErr] - set buttons [list ok $ok dismiss [mc "Skip Messages"] \ - function [mc "Details >>"]] - - # 1. Create the top-level window and divide it into top - # and bottom parts. - - destroy .bgerrorDialog - toplevel .bgerrorDialog -class ErrorDialog - wm withdraw .bgerrorDialog - wm title .bgerrorDialog $title - wm iconname .bgerrorDialog ErrorDialog - wm protocol .bgerrorDialog WM_DELETE_WINDOW { } - - if {($tcl_platform(platform) eq "macintosh") - || ($windowingsystem eq "aqua")} { - ::tk::unsupported::MacWindowStyle style .bgerrorDialog zoomDocProc - } - - frame .bgerrorDialog.bot - frame .bgerrorDialog.top - if {$windowingsystem eq "x11"} { - .bgerrorDialog.bot configure -relief raised -bd 1 - .bgerrorDialog.top configure -relief raised -bd 1 - } - pack .bgerrorDialog.bot -side bottom -fill both - pack .bgerrorDialog.top -side top -fill both -expand 1 - - set W [frame $w.top.info] - text $W.text \ - -yscrollcommand [list $W.scroll set]\ - -setgrid true \ - -width 40 \ - -height 10 \ - -state normal \ - -relief $textRelief \ - -highlightthickness $textHilight \ - -wrap char - - scrollbar $W.scroll -command [list $W.text yview] - pack $W.scroll -side right -fill y - pack $W.text -side left -expand yes -fill both - $W.text insert 0.0 "$err\n$info" - $W.text mark set insert 0.0 - bind $W.text { focus %W } - $W.text configure -state disabled - - # 2. Fill the top part with bitmap and message - - # Max-width of message is the width of the screen... - set wrapwidth [winfo screenwidth .bgerrorDialog] - # ...minus the width of the icon, padding and a fudge factor for - # the window manager decorations and aesthetics. - set wrapwidth [expr {$wrapwidth-60-[winfo pixels .bgerrorDialog 9m]}] - label .bgerrorDialog.msg -justify left -text $text -font $messageFont \ - -wraplength $wrapwidth - if {($tcl_platform(platform) eq "macintosh") - || ($windowingsystem eq "aqua")} { - # On the Macintosh, use the stop bitmap - label .bgerrorDialog.bitmap -bitmap stop - } else { - # On other platforms, make the error icon - canvas .bgerrorDialog.bitmap -width 32 -height 32 -highlightthickness 0 - .bgerrorDialog.bitmap create oval 0 0 31 31 -fill red -outline black - .bgerrorDialog.bitmap create line 9 9 23 23 -fill white -width 4 - .bgerrorDialog.bitmap create line 9 23 23 9 -fill white -width 4 - } - grid .bgerrorDialog.bitmap .bgerrorDialog.msg \ - -in .bgerrorDialog.top \ - -row 0 \ - -padx 3m \ - -pady 3m - grid configure .bgerrorDialog.msg -sticky nsw -padx {0 3m} - grid rowconfigure .bgerrorDialog.top 1 -weight 1 - grid columnconfigure .bgerrorDialog.top 1 -weight 1 - - # 3. Create a row of buttons at the bottom of the dialog. - - set i 0 - foreach {name caption} $buttons { - button .bgerrorDialog.$name \ - -text $caption \ - -default normal \ - -command [namespace code [list set button $i]] - grid .bgerrorDialog.$name \ - -in .bgerrorDialog.bot \ - -column $i \ - -row 0 \ - -sticky ew \ - -padx 10 - grid columnconfigure .bgerrorDialog.bot $i -weight 1 - # We boost the size of some Mac buttons for l&f - if {($tcl_platform(platform) eq "macintosh") - || ($windowingsystem eq "aqua")} { - if {($name eq "ok") || ($name eq "dismiss")} { - grid columnconfigure .bgerrorDialog.bot $i -minsize 79 - } - } - incr i - } - # The "OK" button is the default for this dialog. - .bgerrorDialog.ok configure -default active - - bind .bgerrorDialog [namespace code Return] - bind .bgerrorDialog [namespace code [list Destroy %W]] - .bgerrorDialog.function configure -command [namespace code Details] - - # 6. Update all the geometry information so we know how big it wants - # to be, then center the window in the display and deiconify it. - - ::tk::PlaceWindow .bgerrorDialog - - # 7. Ensure that we are topmost. - - raise .bgerrorDialog - if {$tcl_platform(platform) eq "windows"} { - # Place it topmost if we aren't at the top of the stacking - # order to ensure that it's seen - if {[lindex [wm stackorder .] end] ne ".bgerrorDialog"} { - wm attributes .bgerrorDialog -topmost 1 - } - } - - # 8. Set a grab and claim the focus too. - - ::tk::SetFocusGrab .bgerrorDialog .bgerrorDialog.ok - - # 9. Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait [namespace which -variable button] - set copy $button; # Save a copy... - - ::tk::RestoreFocusGrab .bgerrorDialog .bgerrorDialog.ok destroy - - if {$copy == 1} { - return -code break - } -} - -namespace eval :: { - # Fool the indexer - proc bgerror err {} - rename bgerror {} - namespace import ::tk::dialog::error::bgerror -} diff --git a/mingw/lib/tk8.4/button.tcl b/mingw/lib/tk8.4/button.tcl deleted file mode 100644 index a4c34471..00000000 --- a/mingw/lib/tk8.4/button.tcl +++ /dev/null @@ -1,637 +0,0 @@ -# button.tcl -- -# -# This file defines the default bindings for Tk label, button, -# checkbutton, and radiobutton widgets and provides procedures -# that help in implementing those bindings. -# -# RCS: @(#) $Id: button.tcl,v 1.17.2.1 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# Copyright (c) 2002 ActiveState Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for buttons. -#------------------------------------------------------------------------- - -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - bind Radiobutton { - tk::ButtonEnter %W - } - bind Radiobutton <1> { - tk::ButtonDown %W - } - bind Radiobutton { - tk::ButtonUp %W - } - bind Checkbutton { - tk::ButtonEnter %W - } - bind Checkbutton <1> { - tk::ButtonDown %W - } - bind Checkbutton { - tk::ButtonUp %W - } -} -if {"windows" eq $tcl_platform(platform)} { - bind Checkbutton { - tk::CheckRadioInvoke %W select - } - bind Checkbutton { - tk::CheckRadioInvoke %W select - } - bind Checkbutton { - tk::CheckRadioInvoke %W deselect - } - bind Checkbutton <1> { - tk::CheckRadioDown %W - } - bind Checkbutton { - tk::ButtonUp %W - } - bind Checkbutton { - tk::CheckRadioEnter %W - } - - bind Radiobutton <1> { - tk::CheckRadioDown %W - } - bind Radiobutton { - tk::ButtonUp %W - } - bind Radiobutton { - tk::CheckRadioEnter %W - } -} -if {"x11" eq [tk windowingsystem]} { - bind Checkbutton { - if {!$tk_strictMotif} { - tk::CheckRadioInvoke %W - } - } - bind Radiobutton { - if {!$tk_strictMotif} { - tk::CheckRadioInvoke %W - } - } - bind Checkbutton <1> { - tk::CheckRadioInvoke %W - } - bind Radiobutton <1> { - tk::CheckRadioInvoke %W - } - bind Checkbutton { - tk::ButtonEnter %W - } - bind Radiobutton { - tk::ButtonEnter %W - } -} - -bind Button { - tk::ButtonInvoke %W -} -bind Checkbutton { - tk::CheckRadioInvoke %W -} -bind Radiobutton { - tk::CheckRadioInvoke %W -} - -bind Button {} -bind Button { - tk::ButtonEnter %W -} -bind Button { - tk::ButtonLeave %W -} -bind Button <1> { - tk::ButtonDown %W -} -bind Button { - tk::ButtonUp %W -} - -bind Checkbutton {} -bind Checkbutton { - tk::ButtonLeave %W -} - -bind Radiobutton {} -bind Radiobutton { - tk::ButtonLeave %W -} - -if {"windows" eq $tcl_platform(platform)} { - -######################### -# Windows implementation -######################### - -# ::tk::ButtonEnter -- -# The procedure below is invoked when the mouse pointer enters a -# button widget. It records the button we're in and changes the -# state of the button to active unless the button is disabled. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonEnter w { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - - # If the mouse button is down, set the relief to sunken on entry. - # Overwise, if there's an -overrelief value, set the relief to that. - - set Priv($w,relief) [$w cget -relief] - if {$Priv(buttonWindow) eq $w} { - $w configure -relief sunken -state active - set Priv($w,prelief) sunken - } elseif {[set over [$w cget -overrelief]] ne ""} { - $w configure -relief $over - set Priv($w,prelief) $over - } - } - set Priv(window) $w -} - -# ::tk::ButtonLeave -- -# The procedure below is invoked when the mouse pointer leaves a -# button widget. It changes the state of the button back to inactive. -# Restore any modified relief too. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonLeave w { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - $w configure -state normal - } - - # Restore the original button relief if it was changed by Tk. - # That is signaled by the existence of Priv($w,prelief). - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - set Priv(window) "" -} - -# ::tk::ButtonDown -- -# The procedure below is invoked when the mouse button is pressed in -# a button widget. It records the fact that the mouse is in the button, -# saves the button's relief so it can be restored later, and changes -# the relief to sunken. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonDown w { - variable ::tk::Priv - - # Only save the button's relief if it does not yet exist. If there - # is an overrelief setting, Priv($w,relief) will already have been set, - # and the current value of the -relief option will be incorrect. - - if {![info exists Priv($w,relief)]} { - set Priv($w,relief) [$w cget -relief] - } - - if {[$w cget -state] ne "disabled"} { - set Priv(buttonWindow) $w - $w configure -relief sunken -state active - set Priv($w,prelief) sunken - - # If this button has a repeatdelay set up, get it going with an after - after cancel $Priv(afterId) - set delay [$w cget -repeatdelay] - set Priv(repeated) 0 - if {$delay > 0} { - set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] - } - } -} - -# ::tk::ButtonUp -- -# The procedure below is invoked when the mouse button is released -# in a button widget. It restores the button's relief and invokes -# the command as long as the mouse hasn't left the button. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonUp w { - variable ::tk::Priv - if {$Priv(buttonWindow) eq $w} { - set Priv(buttonWindow) "" - - # Restore the button's relief if it was cached. - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - # Clean up the after event from the auto-repeater - after cancel $Priv(afterId) - - if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { - $w configure -state normal - - # Only invoke the command if it wasn't already invoked by the - # auto-repeater functionality - if { $Priv(repeated) == 0 } { - uplevel #0 [list $w invoke] - } - } - } -} - -# ::tk::CheckRadioEnter -- -# The procedure below is invoked when the mouse pointer enters a -# checkbutton or radiobutton widget. It records the button we're in -# and changes the state of the button to active unless the button is -# disabled. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::CheckRadioEnter w { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - if {$Priv(buttonWindow) eq $w} { - $w configure -state active - } - if {[set over [$w cget -overrelief]] ne ""} { - set Priv($w,relief) [$w cget -relief] - set Priv($w,prelief) $over - $w configure -relief $over - } - } - set Priv(window) $w -} - -# ::tk::CheckRadioDown -- -# The procedure below is invoked when the mouse button is pressed in -# a button widget. It records the fact that the mouse is in the button, -# saves the button's relief so it can be restored later, and changes -# the relief to sunken. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::CheckRadioDown w { - variable ::tk::Priv - if {![info exists Priv($w,relief)]} { - set Priv($w,relief) [$w cget -relief] - } - if {[$w cget -state] ne "disabled"} { - set Priv(buttonWindow) $w - set Priv(repeated) 0 - $w configure -state active - } -} - -} - -if {"x11" eq [tk windowingsystem]} { - -##################### -# Unix implementation -##################### - -# ::tk::ButtonEnter -- -# The procedure below is invoked when the mouse pointer enters a -# button widget. It records the button we're in and changes the -# state of the button to active unless the button is disabled. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonEnter {w} { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - # On unix the state is active just with mouse-over - $w configure -state active - - # If the mouse button is down, set the relief to sunken on entry. - # Overwise, if there's an -overrelief value, set the relief to that. - - set Priv($w,relief) [$w cget -relief] - if {$Priv(buttonWindow) eq $w} { - $w configure -relief sunken - set Priv($w,prelief) sunken - } elseif {[set over [$w cget -overrelief]] ne ""} { - $w configure -relief $over - set Priv($w,prelief) $over - } - } - set Priv(window) $w -} - -# ::tk::ButtonLeave -- -# The procedure below is invoked when the mouse pointer leaves a -# button widget. It changes the state of the button back to inactive. -# Restore any modified relief too. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonLeave w { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - $w configure -state normal - } - - # Restore the original button relief if it was changed by Tk. - # That is signaled by the existence of Priv($w,prelief). - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - set Priv(window) "" -} - -# ::tk::ButtonDown -- -# The procedure below is invoked when the mouse button is pressed in -# a button widget. It records the fact that the mouse is in the button, -# saves the button's relief so it can be restored later, and changes -# the relief to sunken. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonDown w { - variable ::tk::Priv - - # Only save the button's relief if it does not yet exist. If there - # is an overrelief setting, Priv($w,relief) will already have been set, - # and the current value of the -relief option will be incorrect. - - if {![info exists Priv($w,relief)]} { - set Priv($w,relief) [$w cget -relief] - } - - if {[$w cget -state] ne "disabled"} { - set Priv(buttonWindow) $w - $w configure -relief sunken - set Priv($w,prelief) sunken - - # If this button has a repeatdelay set up, get it going with an after - after cancel $Priv(afterId) - set delay [$w cget -repeatdelay] - set Priv(repeated) 0 - if {$delay > 0} { - set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] - } - } -} - -# ::tk::ButtonUp -- -# The procedure below is invoked when the mouse button is released -# in a button widget. It restores the button's relief and invokes -# the command as long as the mouse hasn't left the button. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonUp w { - variable ::tk::Priv - if {$w eq $Priv(buttonWindow)} { - set Priv(buttonWindow) "" - - # Restore the button's relief if it was cached. - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - # Clean up the after event from the auto-repeater - after cancel $Priv(afterId) - - if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { - # Only invoke the command if it wasn't already invoked by the - # auto-repeater functionality - if { $Priv(repeated) == 0 } { - uplevel #0 [list $w invoke] - } - } - } -} - -} - -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - -#################### -# Mac implementation -#################### - -# ::tk::ButtonEnter -- -# The procedure below is invoked when the mouse pointer enters a -# button widget. It records the button we're in and changes the -# state of the button to active unless the button is disabled. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonEnter {w} { - variable ::tk::Priv - if {[$w cget -state] ne "disabled"} { - - # If there's an -overrelief value, set the relief to that. - - if {$Priv(buttonWindow) eq $w} { - $w configure -state active - } elseif {[set over [$w cget -overrelief]] ne ""} { - set Priv($w,relief) [$w cget -relief] - set Priv($w,prelief) $over - $w configure -relief $over - } - } - set Priv(window) $w -} - -# ::tk::ButtonLeave -- -# The procedure below is invoked when the mouse pointer leaves a -# button widget. It changes the state of the button back to -# inactive. If we're leaving the button window with a mouse button -# pressed (Priv(buttonWindow) == $w), restore the relief of the -# button too. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonLeave w { - variable ::tk::Priv - if {$w eq $Priv(buttonWindow)} { - $w configure -state normal - } - - # Restore the original button relief if it was changed by Tk. - # That is signaled by the existence of Priv($w,prelief). - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - set Priv(window) "" -} - -# ::tk::ButtonDown -- -# The procedure below is invoked when the mouse button is pressed in -# a button widget. It records the fact that the mouse is in the button, -# saves the button's relief so it can be restored later, and changes -# the relief to sunken. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonDown w { - variable ::tk::Priv - - if {[$w cget -state] ne "disabled"} { - set Priv(buttonWindow) $w - $w configure -state active - - # If this button has a repeatdelay set up, get it going with an after - after cancel $Priv(afterId) - set Priv(repeated) 0 - if { ![catch {$w cget -repeatdelay} delay] } { - if {$delay > 0} { - set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] - } - } - } -} - -# ::tk::ButtonUp -- -# The procedure below is invoked when the mouse button is released -# in a button widget. It restores the button's relief and invokes -# the command as long as the mouse hasn't left the button. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonUp w { - variable ::tk::Priv - if {$Priv(buttonWindow) eq $w} { - set Priv(buttonWindow) "" - $w configure -state normal - - # Restore the button's relief if it was cached. - - if {[info exists Priv($w,relief)]} { - if {[info exists Priv($w,prelief)] && \ - $Priv($w,prelief) eq [$w cget -relief]} { - $w configure -relief $Priv($w,relief) - } - unset -nocomplain Priv($w,relief) Priv($w,prelief) - } - - # Clean up the after event from the auto-repeater - after cancel $Priv(afterId) - - if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { - # Only invoke the command if it wasn't already invoked by the - # auto-repeater functionality - if { $Priv(repeated) == 0 } { - uplevel #0 [list $w invoke] - } - } - } -} - -} - -################## -# Shared routines -################## - -# ::tk::ButtonInvoke -- -# The procedure below is called when a button is invoked through -# the keyboard. It simulate a press of the button via the mouse. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::ButtonInvoke w { - if {[$w cget -state] ne "disabled"} { - set oldRelief [$w cget -relief] - set oldState [$w cget -state] - $w configure -state active -relief sunken - update idletasks - after 100 - $w configure -state $oldState -relief $oldRelief - uplevel #0 [list $w invoke] - } -} - -# ::tk::ButtonAutoInvoke -- -# -# Invoke an auto-repeating button, and set it up to continue to repeat. -# -# Arguments: -# w button to invoke. -# -# Results: -# None. -# -# Side effects: -# May create an after event to call ::tk::ButtonAutoInvoke. - -proc ::tk::ButtonAutoInvoke {w} { - variable ::tk::Priv - after cancel $Priv(afterId) - set delay [$w cget -repeatinterval] - if {$Priv(window) eq $w} { - incr Priv(repeated) - uplevel #0 [list $w invoke] - } - if {$delay > 0} { - set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] - } -} - -# ::tk::CheckRadioInvoke -- -# The procedure below is invoked when the mouse button is pressed in -# a checkbutton or radiobutton widget, or when the widget is invoked -# through the keyboard. It invokes the widget if it -# isn't disabled. -# -# Arguments: -# w - The name of the widget. -# cmd - The subcommand to invoke (one of invoke, select, or deselect). - -proc ::tk::CheckRadioInvoke {w {cmd invoke}} { - if {[$w cget -state] ne "disabled"} { - uplevel #0 [list $w $cmd] - } -} diff --git a/mingw/lib/tk8.4/choosedir.tcl b/mingw/lib/tk8.4/choosedir.tcl deleted file mode 100644 index 4a3e6486..00000000 --- a/mingw/lib/tk8.4/choosedir.tcl +++ /dev/null @@ -1,291 +0,0 @@ -# choosedir.tcl -- -# -# Choose directory dialog implementation for Unix/Mac. -# -# Copyright (c) 1998-2000 by Scriptics Corporation. -# All rights reserved. -# -# RCS: @(#) $Id: choosedir.tcl,v 1.15.2.2 2006/01/25 18:21:41 dgp Exp $ - -# Make sure the tk::dialog namespace, in which all dialogs should live, exists -namespace eval ::tk::dialog {} -namespace eval ::tk::dialog::file {} - -# Make the chooseDir namespace inside the dialog namespace -namespace eval ::tk::dialog::file::chooseDir { - namespace import -force ::tk::msgcat::* -} - -# ::tk::dialog::file::chooseDir:: -- -# -# Implements the TK directory selection dialog. -# -# Arguments: -# args Options parsed by the procedure. -# -proc ::tk::dialog::file::chooseDir:: {args} { - variable ::tk::Priv - set dataName __tk_choosedir - upvar ::tk::dialog::file::$dataName data - ::tk::dialog::file::chooseDir::Config $dataName $args - - if {$data(-parent) eq "."} { - set w .$dataName - } else { - set w $data(-parent).$dataName - } - - # (re)create the dialog box if necessary - # - if {![winfo exists $w]} { - ::tk::dialog::file::Create $w TkChooseDir - } elseif {[winfo class $w] ne "TkChooseDir"} { - destroy $w - ::tk::dialog::file::Create $w TkChooseDir - } else { - set data(dirMenuBtn) $w.f1.menu - set data(dirMenu) $w.f1.menu.menu - set data(upBtn) $w.f1.up - set data(icons) $w.icons - set data(ent) $w.f2.ent - set data(okBtn) $w.f2.ok - set data(cancelBtn) $w.f2.cancel - set data(hiddenBtn) $w.f2.hidden - } - if {$::tk::dialog::file::showHiddenBtn} { - $data(hiddenBtn) configure -state normal - grid $data(hiddenBtn) - } else { - $data(hiddenBtn) configure -state disabled - grid remove $data(hiddenBtn) - } - - # Dialog boxes should be transient with respect to their parent, - # so that they will always stay on top of their parent window. However, - # some window managers will create the window as withdrawn if the parent - # window is withdrawn or iconified. Combined with the grab we put on the - # window, this can hang the entire application. Therefore we only make - # the dialog transient if the parent is viewable. - - if {[winfo viewable [winfo toplevel $data(-parent)]] } { - wm transient $w $data(-parent) - } - - trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] - $data(dirMenuBtn) configure \ - -textvariable ::tk::dialog::file::${dataName}(selectPath) - - set data(filter) "*" - set data(previousEntryText) "" - ::tk::dialog::file::UpdateWhenIdle $w - - # Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display and de-iconify it. - - ::tk::PlaceWindow $w widget $data(-parent) - wm title $w $data(-title) - - # Set a grab and claim the focus too. - - ::tk::SetFocusGrab $w $data(ent) - $data(ent) delete 0 end - $data(ent) insert 0 $data(selectPath) - $data(ent) selection range 0 end - $data(ent) icursor end - - # Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(selectFilePath) - - ::tk::RestoreFocusGrab $w $data(ent) withdraw - - # Cleanup traces on selectPath variable - # - - foreach trace [trace info variable data(selectPath)] { - trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] - } - $data(dirMenuBtn) configure -textvariable {} - - # Return value to user - # - - return $Priv(selectFilePath) -} - -# ::tk::dialog::file::chooseDir::Config -- -# -# Configures the Tk choosedir dialog according to the argument list -# -proc ::tk::dialog::file::chooseDir::Config {dataName argList} { - upvar ::tk::dialog::file::$dataName data - - # 0: Delete all variable that were set on data(selectPath) the - # last time the file dialog is used. The traces may cause troubles - # if the dialog is now used with a different -parent option. - # - foreach trace [trace info variable data(selectPath)] { - trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] - } - - # 1: the configuration specs - # - set specs { - {-mustexist "" "" 0} - {-initialdir "" "" ""} - {-parent "" "" "."} - {-title "" "" ""} - } - - # 2: default values depending on the type of the dialog - # - if {![info exists data(selectPath)]} { - # first time the dialog has been popped up - set data(selectPath) [pwd] - } - - # 3: parse the arguments - # - tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList - - if {$data(-title) eq ""} { - set data(-title) "[mc "Choose Directory"]" - } - - # Stub out the -multiple value for the dialog; it doesn't make sense for - # choose directory dialogs, but we have to have something there because we - # share so much code with the file dialogs. - set data(-multiple) 0 - - # 4: set the default directory and selection according to the -initial - # settings - # - if {$data(-initialdir) ne ""} { - # Ensure that initialdir is an absolute path name. - if {[file isdirectory $data(-initialdir)]} { - set old [pwd] - cd $data(-initialdir) - set data(selectPath) [pwd] - cd $old - } else { - set data(selectPath) [pwd] - } - } - - if {![winfo exists $data(-parent)]} { - error "bad window path name \"$data(-parent)\"" - } -} - -# Gets called when user presses Return in the "Selection" entry or presses OK. -# -proc ::tk::dialog::file::chooseDir::OkCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - # This is the brains behind selecting non-existant directories. Here's - # the flowchart: - # 1. If the icon list has a selection, join it with the current dir, - # and return that value. - # 1a. If the icon list does not have a selection ... - # 2. If the entry is empty, do nothing. - # 3. If the entry contains an invalid directory, then... - # 3a. If the value is the same as last time through here, end dialog. - # 3b. If the value is different than last time, save it and return. - # 4. If entry contains a valid directory, then... - # 4a. If the value is the same as the current directory, end dialog. - # 4b. If the value is different from the current directory, change to - # that directory. - - set selection [tk::IconList_Curselection $data(icons)] - if { [llength $selection] != 0 } { - set iconText [tk::IconList_Get $data(icons) [lindex $selection 0]] - set iconText [file join $data(selectPath) $iconText] - ::tk::dialog::file::chooseDir::Done $w $iconText - } else { - set text [$data(ent) get] - if { $text eq "" } { - return - } - set text [eval file join [file split [string trim $text]]] - if { ![file exists $text] || ![file isdirectory $text] } { - # Entry contains an invalid directory. If it's the same as the - # last time they came through here, reset the saved value and end - # the dialog. Otherwise, save the value (so we can do this test - # next time). - if { $text eq $data(previousEntryText) } { - set data(previousEntryText) "" - ::tk::dialog::file::chooseDir::Done $w $text - } else { - set data(previousEntryText) $text - } - } else { - # Entry contains a valid directory. If it is the same as the - # current directory, end the dialog. Otherwise, change to that - # directory. - if { $text eq $data(selectPath) } { - ::tk::dialog::file::chooseDir::Done $w $text - } else { - set data(selectPath) $text - } - } - } - return -} - -proc ::tk::dialog::file::chooseDir::DblClick {w} { - upvar ::tk::dialog::file::[winfo name $w] data - set selection [tk::IconList_Curselection $data(icons)] - if { [llength $selection] != 0 } { - set filenameFragment \ - [tk::IconList_Get $data(icons) [lindex $selection 0]] - set file $data(selectPath) - if {[file isdirectory $file]} { - ::tk::dialog::file::ListInvoke $w [list $filenameFragment] - return - } - } -} - -# Gets called when user browses the IconList widget (dragging mouse, arrow -# keys, etc) -# -proc ::tk::dialog::file::chooseDir::ListBrowse {w text} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {$text eq ""} { - return - } - - set file [::tk::dialog::file::JoinFile $data(selectPath) $text] - $data(ent) delete 0 end - $data(ent) insert 0 $file -} - -# ::tk::dialog::file::chooseDir::Done -- -# -# Gets called when user has input a valid filename. Pops up a -# dialog box to confirm selection when necessary. Sets the -# Priv(selectFilePath) variable, which will break the "vwait" -# loop in tk_chooseDirectory and return the selected filename to the -# script that calls tk_getOpenFile or tk_getSaveFile -# -proc ::tk::dialog::file::chooseDir::Done {w {selectFilePath ""}} { - upvar ::tk::dialog::file::[winfo name $w] data - variable ::tk::Priv - - if {$selectFilePath eq ""} { - set selectFilePath $data(selectPath) - } - if { $data(-mustexist) } { - if { ![file exists $selectFilePath] || \ - ![file isdir $selectFilePath] } { - return - } - } - set Priv(selectFilePath) $selectFilePath -} diff --git a/mingw/lib/tk8.4/clrpick.tcl b/mingw/lib/tk8.4/clrpick.tcl deleted file mode 100644 index ac471502..00000000 --- a/mingw/lib/tk8.4/clrpick.tcl +++ /dev/null @@ -1,696 +0,0 @@ -# clrpick.tcl -- -# -# Color selection dialog for platforms that do not support a -# standard color selection dialog. -# -# RCS: @(#) $Id: clrpick.tcl,v 1.20.2.2 2006/03/17 10:50:11 patthoyts Exp $ -# -# Copyright (c) 1996 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# -# ToDo: -# -# (1): Find out how many free colors are left in the colormap and -# don't allocate too many colors. -# (2): Implement HSV color selection. -# - -# Make sure namespaces exist -namespace eval ::tk {} -namespace eval ::tk::dialog {} -namespace eval ::tk::dialog::color { - namespace import ::tk::msgcat::* -} - -# ::tk::dialog::color:: -- -# -# Create a color dialog and let the user choose a color. This function -# should not be called directly. It is called by the tk_chooseColor -# function when a native color selector widget does not exist -# -proc ::tk::dialog::color:: {args} { - variable ::tk::Priv - set dataName __tk__color - upvar ::tk::dialog::color::$dataName data - set w .$dataName - - # The lines variables track the start and end indices of the line - # elements in the colorbar canvases. - set data(lines,red,start) 0 - set data(lines,red,last) -1 - set data(lines,green,start) 0 - set data(lines,green,last) -1 - set data(lines,blue,start) 0 - set data(lines,blue,last) -1 - - # This is the actual number of lines that are drawn in each color strip. - # Note that the bars may be of any width. - # However, NUM_COLORBARS must be a number that evenly divides 256. - # Such as 256, 128, 64, etc. - set data(NUM_COLORBARS) 16 - - # BARS_WIDTH is the number of pixels wide the color bar portion of the - # canvas is. This number must be a multiple of NUM_COLORBARS - set data(BARS_WIDTH) 160 - - # PLGN_WIDTH is the number of pixels wide of the triangular selection - # polygon. This also results in the definition of the padding on the - # left and right sides which is half of PLGN_WIDTH. Make this number even. - set data(PLGN_HEIGHT) 10 - - # PLGN_HEIGHT is the height of the selection polygon and the height of the - # selection rectangle at the bottom of the color bar. No restrictions. - set data(PLGN_WIDTH) 10 - - Config $dataName $args - InitValues $dataName - - set sc [winfo screen $data(-parent)] - set winExists [winfo exists $w] - if {!$winExists || $sc ne [winfo screen $w]} { - if {$winExists} { - destroy $w - } - toplevel $w -class TkColorDialog -screen $sc - BuildDialog $w - } - - # Dialog boxes should be transient with respect to their parent, - # so that they will always stay on top of their parent window. However, - # some window managers will create the window as withdrawn if the parent - # window is withdrawn or iconified. Combined with the grab we put on the - # window, this can hang the entire application. Therefore we only make - # the dialog transient if the parent is viewable. - - if {[winfo viewable [winfo toplevel $data(-parent)]] } { - wm transient $w $data(-parent) - } - - # 5. Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display and de-iconify it. - - ::tk::PlaceWindow $w widget $data(-parent) - wm title $w $data(-title) - - # 6. Set a grab and claim the focus too. - - ::tk::SetFocusGrab $w $data(okBtn) - - # 7. Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(selectColor) - ::tk::RestoreFocusGrab $w $data(okBtn) - unset data - - return $Priv(selectColor) -} - -# ::tk::dialog::color::InitValues -- -# -# Get called during initialization or when user resets NUM_COLORBARS -# -proc ::tk::dialog::color::InitValues {dataName} { - upvar ::tk::dialog::color::$dataName data - - # IntensityIncr is the difference in color intensity between a colorbar - # and its neighbors. - set data(intensityIncr) [expr {256 / $data(NUM_COLORBARS)}] - - # ColorbarWidth is the width of each colorbar - set data(colorbarWidth) \ - [expr {$data(BARS_WIDTH) / $data(NUM_COLORBARS)}] - - # Indent is the width of the space at the left and right side of the - # colorbar. It is always half the selector polygon width, because the - # polygon extends into the space. - set data(indent) [expr {$data(PLGN_WIDTH) / 2}] - - set data(colorPad) 2 - set data(selPad) [expr {$data(PLGN_WIDTH) / 2}] - - # - # minX is the x coordinate of the first colorbar - # - set data(minX) $data(indent) - - # - # maxX is the x coordinate of the last colorbar - # - set data(maxX) [expr {$data(BARS_WIDTH) + $data(indent)-1}] - - # - # canvasWidth is the width of the entire canvas, including the indents - # - set data(canvasWidth) [expr {$data(BARS_WIDTH) + $data(PLGN_WIDTH)}] - - # Set the initial color, specified by -initialcolor, or the - # color chosen by the user the last time. - set data(selection) $data(-initialcolor) - set data(finalColor) $data(-initialcolor) - set rgb [winfo rgb . $data(selection)] - - set data(red,intensity) [expr {[lindex $rgb 0]/0x100}] - set data(green,intensity) [expr {[lindex $rgb 1]/0x100}] - set data(blue,intensity) [expr {[lindex $rgb 2]/0x100}] -} - -# ::tk::dialog::color::Config -- -# -# Parses the command line arguments to tk_chooseColor -# -proc ::tk::dialog::color::Config {dataName argList} { - variable ::tk::Priv - upvar ::tk::dialog::color::$dataName data - - # 1: the configuration specs - # - if {[info exists Priv(selectColor)] && $Priv(selectColor) ne ""} { - set defaultColor $Priv(selectColor) - } else { - set defaultColor [. cget -background] - } - - set specs [list \ - [list -initialcolor "" "" $defaultColor] \ - [list -parent "" "" "."] \ - [list -title "" "" [mc "Color"]] \ - ] - - # 2: parse the arguments - # - tclParseConfigSpec ::tk::dialog::color::$dataName $specs "" $argList - - if {$data(-title) eq ""} { - set data(-title) " " - } - if {[catch {winfo rgb . $data(-initialcolor)} err]} { - error $err - } - - if {![winfo exists $data(-parent)]} { - error "bad window path name \"$data(-parent)\"" - } -} - -# ::tk::dialog::color::BuildDialog -- -# -# Build the dialog. -# -proc ::tk::dialog::color::BuildDialog {w} { - upvar ::tk::dialog::color::[winfo name $w] data - - # TopFrame contains the color strips and the color selection - # - set topFrame [frame $w.top -relief raised -bd 1] - - # StripsFrame contains the colorstrips and the individual RGB entries - set stripsFrame [frame $topFrame.colorStrip] - - set maxWidth [::tk::mcmaxamp &Red &Green &Blue] - set maxWidth [expr {$maxWidth<6?6:$maxWidth}] - set colorList [list \ - red [mc "&Red"] \ - green [mc "&Green"] \ - blue [mc "&Blue"] \ - ] - foreach {color l} $colorList { - # each f frame contains an [R|G|B] entry and the equiv. color strip. - set f [frame $stripsFrame.$color] - - # The box frame contains the label and entry widget for an [R|G|B] - set box [frame $f.box] - - bind [::tk::AmpWidget label $box.label -text $l: -width $maxWidth \ - -anchor ne] <> [list focus $box.entry] - - entry $box.entry -textvariable \ - ::tk::dialog::color::[winfo name $w]($color,intensity) \ - -width 4 - pack $box.label -side left -fill y -padx 2 -pady 3 - pack $box.entry -side left -anchor n -pady 0 - pack $box -side left -fill both - - set height [expr \ - {[winfo reqheight $box.entry] - \ - 2*([$box.entry cget -highlightthickness] + [$box.entry cget -bd])}] - - canvas $f.color -height $height\ - -width $data(BARS_WIDTH) -relief sunken -bd 2 - canvas $f.sel -height $data(PLGN_HEIGHT) \ - -width $data(canvasWidth) -highlightthickness 0 - pack $f.color -expand yes -fill both - pack $f.sel -expand yes -fill both - - pack $f -side top -fill x -padx 0 -pady 2 - - set data($color,entry) $box.entry - set data($color,col) $f.color - set data($color,sel) $f.sel - - bind $data($color,col) \ - [list tk::dialog::color::DrawColorScale $w $color 1] - bind $data($color,col) \ - [list tk::dialog::color::EnterColorBar $w $color] - bind $data($color,col) \ - [list tk::dialog::color::LeaveColorBar $w $color] - - bind $data($color,sel) \ - [list tk::dialog::color::EnterColorBar $w $color] - bind $data($color,sel) \ - [list tk::dialog::color::LeaveColorBar $w $color] - - bind $box.entry [list tk::dialog::color::HandleRGBEntry $w] - } - - pack $stripsFrame -side left -fill both -padx 4 -pady 10 - - # The selFrame contains a frame that demonstrates the currently - # selected color - # - set selFrame [frame $topFrame.sel] - set lab [::tk::AmpWidget label $selFrame.lab -text [mc "&Selection:"] \ - -anchor sw] - set ent [entry $selFrame.ent \ - -textvariable ::tk::dialog::color::[winfo name $w](selection) \ - -width 16] - set f1 [frame $selFrame.f1 -relief sunken -bd 2] - set data(finalCanvas) [frame $f1.demo -bd 0 -width 100 -height 70] - - pack $lab $ent -side top -fill x -padx 4 -pady 2 - pack $f1 -expand yes -anchor nw -fill both -padx 6 -pady 10 - pack $data(finalCanvas) -expand yes -fill both - - bind $ent [list tk::dialog::color::HandleSelEntry $w] - - pack $selFrame -side left -fill none -anchor nw - pack $topFrame -side top -expand yes -fill both -anchor nw - - # the botFrame frame contains the buttons - # - set botFrame [frame $w.bot -relief raised -bd 1] - - ::tk::AmpWidget button $botFrame.ok -text [mc "&OK"] \ - -command [list tk::dialog::color::OkCmd $w] - ::tk::AmpWidget button $botFrame.cancel -text [mc "&Cancel"] \ - -command [list tk::dialog::color::CancelCmd $w] - - set data(okBtn) $botFrame.ok - set data(cancelBtn) $botFrame.cancel - - grid x $botFrame.ok x $botFrame.cancel x -sticky ew - grid configure $botFrame.ok $botFrame.cancel -padx 10 -pady 10 - grid columnconfigure $botFrame {0 4} -weight 1 -uniform space - grid columnconfigure $botFrame {1 3} -weight 1 -uniform button - grid columnconfigure $botFrame 2 -weight 2 -uniform space - pack $botFrame -side bottom -fill x - - - # Accelerator bindings - bind $lab <> [list focus $ent] - bind $w [list tk::ButtonInvoke $data(cancelBtn)] - bind $w [list tk::AltKeyInDialog $w %A] - - wm protocol $w WM_DELETE_WINDOW [list tk::dialog::color::CancelCmd $w] -} - -# ::tk::dialog::color::SetRGBValue -- -# -# Sets the current selection of the dialog box -# -proc ::tk::dialog::color::SetRGBValue {w color} { - upvar ::tk::dialog::color::[winfo name $w] data - - set data(red,intensity) [lindex $color 0] - set data(green,intensity) [lindex $color 1] - set data(blue,intensity) [lindex $color 2] - - RedrawColorBars $w all - - # Now compute the new x value of each colorbars pointer polygon - foreach color [list red green blue ] { - set x [RgbToX $w $data($color,intensity)] - MoveSelector $w $data($color,sel) $color $x 0 - } -} - -# ::tk::dialog::color::XToRgb -- -# -# Converts a screen coordinate to intensity -# -proc ::tk::dialog::color::XToRgb {w x} { - upvar ::tk::dialog::color::[winfo name $w] data - - set x [expr {($x * $data(intensityIncr))/ $data(colorbarWidth)}] - if {$x > 255} { set x 255 } - return $x -} - -# ::tk::dialog::color::RgbToX -# -# Converts an intensity to screen coordinate. -# -proc ::tk::dialog::color::RgbToX {w color} { - upvar ::tk::dialog::color::[winfo name $w] data - - return [expr {($color * $data(colorbarWidth)/ $data(intensityIncr))}] -} - - -# ::tk::dialog::color::DrawColorScale -- -# -# Draw color scale is called whenever the size of one of the color -# scale canvases is changed. -# -proc ::tk::dialog::color::DrawColorScale {w c {create 0}} { - upvar ::tk::dialog::color::[winfo name $w] data - - # col: color bar canvas - # sel: selector canvas - set col $data($c,col) - set sel $data($c,sel) - - # First handle the case that we are creating everything for the first time. - if {$create} { - # First remove all the lines that already exist. - if { $data(lines,$c,last) > $data(lines,$c,start)} { - for {set i $data(lines,$c,start)} \ - {$i <= $data(lines,$c,last)} { incr i} { - $sel delete $i - } - } - # Delete the selector if it exists - if {[info exists data($c,index)]} { - $sel delete $data($c,index) - } - - # Draw the selection polygons - CreateSelector $w $sel $c - $sel bind $data($c,index) \ - [list tk::dialog::color::StartMove $w $sel $c %x $data(selPad) 1] - $sel bind $data($c,index) \ - [list tk::dialog::color::MoveSelector $w $sel $c %x $data(selPad)] - $sel bind $data($c,index) \ - [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(selPad)] - - set height [winfo height $col] - # Create an invisible region under the colorstrip to catch mouse clicks - # that aren't on the selector. - set data($c,clickRegion) [$sel create rectangle 0 0 \ - $data(canvasWidth) $height -fill {} -outline {}] - - bind $col \ - [list tk::dialog::color::StartMove $w $sel $c %x $data(colorPad)] - bind $col \ - [list tk::dialog::color::MoveSelector $w $sel $c %x $data(colorPad)] - bind $col \ - [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(colorPad)] - - $sel bind $data($c,clickRegion) \ - [list tk::dialog::color::StartMove $w $sel $c %x $data(selPad)] - $sel bind $data($c,clickRegion) \ - [list tk::dialog::color::MoveSelector $w $sel $c %x $data(selPad)] - $sel bind $data($c,clickRegion) \ - [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(selPad)] - } else { - # l is the canvas index of the first colorbar. - set l $data(lines,$c,start) - } - - # Draw the color bars. - set highlightW [expr {[$col cget -highlightthickness] + [$col cget -bd]}] - for {set i 0} { $i < $data(NUM_COLORBARS)} { incr i} { - set intensity [expr {$i * $data(intensityIncr)}] - set startx [expr {$i * $data(colorbarWidth) + $highlightW}] - if {$c eq "red"} { - set color [format "#%02x%02x%02x" \ - $intensity \ - $data(green,intensity) \ - $data(blue,intensity)] - } elseif {$c eq "green"} { - set color [format "#%02x%02x%02x" \ - $data(red,intensity) \ - $intensity \ - $data(blue,intensity)] - } else { - set color [format "#%02x%02x%02x" \ - $data(red,intensity) \ - $data(green,intensity) \ - $intensity] - } - - if {$create} { - set index [$col create rect $startx $highlightW \ - [expr {$startx +$data(colorbarWidth)}] \ - [expr {[winfo height $col] + $highlightW}]\ - -fill $color -outline $color] - } else { - $col itemconfigure $l -fill $color -outline $color - incr l - } - } - $sel raise $data($c,index) - - if {$create} { - set data(lines,$c,last) $index - set data(lines,$c,start) [expr {$index - $data(NUM_COLORBARS) + 1}] - } - - RedrawFinalColor $w -} - -# ::tk::dialog::color::CreateSelector -- -# -# Creates and draws the selector polygon at the position -# $data($c,intensity). -# -proc ::tk::dialog::color::CreateSelector {w sel c } { - upvar ::tk::dialog::color::[winfo name $w] data - set data($c,index) [$sel create polygon \ - 0 $data(PLGN_HEIGHT) \ - $data(PLGN_WIDTH) $data(PLGN_HEIGHT) \ - $data(indent) 0] - set data($c,x) [RgbToX $w $data($c,intensity)] - $sel move $data($c,index) $data($c,x) 0 -} - -# ::tk::dialog::color::RedrawFinalColor -# -# Combines the intensities of the three colors into the final color -# -proc ::tk::dialog::color::RedrawFinalColor {w} { - upvar ::tk::dialog::color::[winfo name $w] data - - set color [format "#%02x%02x%02x" $data(red,intensity) \ - $data(green,intensity) $data(blue,intensity)] - - $data(finalCanvas) configure -bg $color - set data(finalColor) $color - set data(selection) $color - set data(finalRGB) [list \ - $data(red,intensity) \ - $data(green,intensity) \ - $data(blue,intensity)] -} - -# ::tk::dialog::color::RedrawColorBars -- -# -# Only redraws the colors on the color strips that were not manipulated. -# Params: color of colorstrip that changed. If color is not [red|green|blue] -# Then all colorstrips will be updated -# -proc ::tk::dialog::color::RedrawColorBars {w colorChanged} { - upvar ::tk::dialog::color::[winfo name $w] data - - switch $colorChanged { - red { - DrawColorScale $w green - DrawColorScale $w blue - } - green { - DrawColorScale $w red - DrawColorScale $w blue - } - blue { - DrawColorScale $w red - DrawColorScale $w green - } - default { - DrawColorScale $w red - DrawColorScale $w green - DrawColorScale $w blue - } - } - RedrawFinalColor $w -} - -#---------------------------------------------------------------------- -# Event handlers -#---------------------------------------------------------------------- - -# ::tk::dialog::color::StartMove -- -# -# Handles a mousedown button event over the selector polygon. -# Adds the bindings for moving the mouse while the button is -# pressed. Sets the binding for the button-release event. -# -# Params: sel is the selector canvas window, color is the color of the strip. -# -proc ::tk::dialog::color::StartMove {w sel color x delta {dontMove 0}} { - upvar ::tk::dialog::color::[winfo name $w] data - - if {!$dontMove} { - MoveSelector $w $sel $color $x $delta - } -} - -# ::tk::dialog::color::MoveSelector -- -# -# Moves the polygon selector so that its middle point has the same -# x value as the specified x. If x is outside the bounds [0,255], -# the selector is set to the closest endpoint. -# -# Params: sel is the selector canvas, c is [red|green|blue] -# x is a x-coordinate. -# -proc ::tk::dialog::color::MoveSelector {w sel color x delta} { - upvar ::tk::dialog::color::[winfo name $w] data - - incr x -$delta - - if { $x < 0 } { - set x 0 - } elseif { $x > $data(BARS_WIDTH)} { - set x $data(BARS_WIDTH) - } - set diff [expr {$x - $data($color,x)}] - $sel move $data($color,index) $diff 0 - set data($color,x) [expr {$data($color,x) + $diff}] - - # Return the x value that it was actually set at - return $x -} - -# ::tk::dialog::color::ReleaseMouse -# -# Removes mouse tracking bindings, updates the colorbars. -# -# Params: sel is the selector canvas, color is the color of the strip, -# x is the x-coord of the mouse. -# -proc ::tk::dialog::color::ReleaseMouse {w sel color x delta} { - upvar ::tk::dialog::color::[winfo name $w] data - - set x [MoveSelector $w $sel $color $x $delta] - - # Determine exactly what color we are looking at. - set data($color,intensity) [XToRgb $w $x] - - RedrawColorBars $w $color -} - -# ::tk::dialog::color::ResizeColorbars -- -# -# Completely redraws the colorbars, including resizing the -# colorstrips -# -proc ::tk::dialog::color::ResizeColorBars {w} { - upvar ::tk::dialog::color::[winfo name $w] data - - if { ($data(BARS_WIDTH) < $data(NUM_COLORBARS)) || - (($data(BARS_WIDTH) % $data(NUM_COLORBARS)) != 0)} { - set data(BARS_WIDTH) $data(NUM_COLORBARS) - } - InitValues [winfo name $w] - foreach color [list red green blue ] { - $data($color,col) configure -width $data(canvasWidth) - DrawColorScale $w $color 1 - } -} - -# ::tk::dialog::color::HandleSelEntry -- -# -# Handles the return keypress event in the "Selection:" entry -# -proc ::tk::dialog::color::HandleSelEntry {w} { - upvar ::tk::dialog::color::[winfo name $w] data - - set text [string trim $data(selection)] - # Check to make sure that the color is valid - if {[catch {set color [winfo rgb . $text]} ]} { - set data(selection) $data(finalColor) - return - } - - set R [expr {[lindex $color 0]/0x100}] - set G [expr {[lindex $color 1]/0x100}] - set B [expr {[lindex $color 2]/0x100}] - - SetRGBValue $w "$R $G $B" - set data(selection) $text -} - -# ::tk::dialog::color::HandleRGBEntry -- -# -# Handles the return keypress event in the R, G or B entry -# -proc ::tk::dialog::color::HandleRGBEntry {w} { - upvar ::tk::dialog::color::[winfo name $w] data - - foreach c [list red green blue] { - if {[catch { - set data($c,intensity) [expr {int($data($c,intensity))}] - }]} { - set data($c,intensity) 0 - } - - if {$data($c,intensity) < 0} { - set data($c,intensity) 0 - } - if {$data($c,intensity) > 255} { - set data($c,intensity) 255 - } - } - - SetRGBValue $w "$data(red,intensity) \ - $data(green,intensity) $data(blue,intensity)" -} - -# mouse cursor enters a color bar -# -proc ::tk::dialog::color::EnterColorBar {w color} { - upvar ::tk::dialog::color::[winfo name $w] data - - $data($color,sel) itemconfigure $data($color,index) -fill red -} - -# mouse leaves enters a color bar -# -proc ::tk::dialog::color::LeaveColorBar {w color} { - upvar ::tk::dialog::color::[winfo name $w] data - - $data($color,sel) itemconfigure $data($color,index) -fill black -} - -# user hits OK button -# -proc ::tk::dialog::color::OkCmd {w} { - variable ::tk::Priv - upvar ::tk::dialog::color::[winfo name $w] data - - set Priv(selectColor) $data(finalColor) -} - -# user hits Cancel button -# -proc ::tk::dialog::color::CancelCmd {w} { - variable ::tk::Priv - set Priv(selectColor) "" -} - diff --git a/mingw/lib/tk8.4/comdlg.tcl b/mingw/lib/tk8.4/comdlg.tcl deleted file mode 100644 index 51154bbf..00000000 --- a/mingw/lib/tk8.4/comdlg.tcl +++ /dev/null @@ -1,303 +0,0 @@ -# comdlg.tcl -- -# -# Some functions needed for the common dialog boxes. Probably need to go -# in a different file. -# -# RCS: @(#) $Id: comdlg.tcl,v 1.9.2.1 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1996 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# tclParseConfigSpec -- -# -# Parses a list of "-option value" pairs. If all options and -# values are legal, the values are stored in -# $data($option). Otherwise an error message is returned. When -# an error happens, the data() array may have been partially -# modified, but all the modified members of the data(0 array are -# guaranteed to have valid values. This is different than -# Tk_ConfigureWidget() which does not modify the value of a -# widget record if any error occurs. -# -# Arguments: -# -# w = widget record to modify. Must be the pathname of a widget. -# -# specs = { -# {-commandlineswitch resourceName ResourceClass defaultValue verifier} -# {....} -# } -# -# flags = currently unused. -# -# argList = The list of "-option value" pairs. -# -proc tclParseConfigSpec {w specs flags argList} { - upvar #0 $w data - - # 1: Put the specs in associative arrays for faster access - # - foreach spec $specs { - if {[llength $spec] < 4} { - error "\"spec\" should contain 5 or 4 elements" - } - set cmdsw [lindex $spec 0] - set cmd($cmdsw) "" - set rname($cmdsw) [lindex $spec 1] - set rclass($cmdsw) [lindex $spec 2] - set def($cmdsw) [lindex $spec 3] - set verproc($cmdsw) [lindex $spec 4] - } - - if {[llength $argList] & 1} { - set cmdsw [lindex $argList end] - if {![info exists cmd($cmdsw)]} { - error "bad option \"$cmdsw\": must be [tclListValidFlags cmd]" - } - error "value for \"$cmdsw\" missing" - } - - # 2: set the default values - # - foreach cmdsw [array names cmd] { - set data($cmdsw) $def($cmdsw) - } - - # 3: parse the argument list - # - foreach {cmdsw value} $argList { - if {![info exists cmd($cmdsw)]} { - error "bad option \"$cmdsw\": must be [tclListValidFlags cmd]" - } - set data($cmdsw) $value - } - - # Done! -} - -proc tclListValidFlags {v} { - upvar $v cmd - - set len [llength [array names cmd]] - set i 1 - set separator "" - set errormsg "" - foreach cmdsw [lsort [array names cmd]] { - append errormsg "$separator$cmdsw" - incr i - if {$i == $len} { - set separator ", or " - } else { - set separator ", " - } - } - return $errormsg -} - -#---------------------------------------------------------------------- -# -# Focus Group -# -# Focus groups are used to handle the user's focusing actions inside a -# toplevel. -# -# One example of using focus groups is: when the user focuses on an -# entry, the text in the entry is highlighted and the cursor is put to -# the end of the text. When the user changes focus to another widget, -# the text in the previously focused entry is validated. -# -#---------------------------------------------------------------------- - - -# ::tk::FocusGroup_Create -- -# -# Create a focus group. All the widgets in a focus group must be -# within the same focus toplevel. Each toplevel can have only -# one focus group, which is identified by the name of the -# toplevel widget. -# -proc ::tk::FocusGroup_Create {t} { - variable ::tk::Priv - if {[winfo toplevel $t] ne $t} { - error "$t is not a toplevel window" - } - if {![info exists Priv(fg,$t)]} { - set Priv(fg,$t) 1 - set Priv(focus,$t) "" - bind $t [list tk::FocusGroup_In $t %W %d] - bind $t [list tk::FocusGroup_Out $t %W %d] - bind $t [list tk::FocusGroup_Destroy $t %W] - } -} - -# ::tk::FocusGroup_BindIn -- -# -# Add a widget into the "FocusIn" list of the focus group. The $cmd will be -# called when the widget is focused on by the user. -# -proc ::tk::FocusGroup_BindIn {t w cmd} { - variable FocusIn - variable ::tk::Priv - if {![info exists Priv(fg,$t)]} { - error "focus group \"$t\" doesn't exist" - } - set FocusIn($t,$w) $cmd -} - - -# ::tk::FocusGroup_BindOut -- -# -# Add a widget into the "FocusOut" list of the focus group. The -# $cmd will be called when the widget loses the focus (User -# types Tab or click on another widget). -# -proc ::tk::FocusGroup_BindOut {t w cmd} { - variable FocusOut - variable ::tk::Priv - if {![info exists Priv(fg,$t)]} { - error "focus group \"$t\" doesn't exist" - } - set FocusOut($t,$w) $cmd -} - -# ::tk::FocusGroup_Destroy -- -# -# Cleans up when members of the focus group is deleted, or when the -# toplevel itself gets deleted. -# -proc ::tk::FocusGroup_Destroy {t w} { - variable FocusIn - variable FocusOut - variable ::tk::Priv - - if {$t eq $w} { - unset Priv(fg,$t) - unset Priv(focus,$t) - - foreach name [array names FocusIn $t,*] { - unset FocusIn($name) - } - foreach name [array names FocusOut $t,*] { - unset FocusOut($name) - } - } else { - if {[info exists Priv(focus,$t)] && $Priv(focus,$t) eq $w} { - set Priv(focus,$t) "" - } - unset -nocomplain FocusIn($t,$w) FocusOut($t,$w) - } -} - -# ::tk::FocusGroup_In -- -# -# Handles the event. Calls the FocusIn command for the newly -# focused widget in the focus group. -# -proc ::tk::FocusGroup_In {t w detail} { - variable FocusIn - variable ::tk::Priv - - if {$detail ne "NotifyNonlinear" && $detail ne "NotifyNonlinearVirtual"} { - # This is caused by mouse moving out&in of the window *or* - # ordinary keypresses some window managers (ie: CDE [Bug: 2960]). - return - } - if {![info exists FocusIn($t,$w)]} { - set FocusIn($t,$w) "" - return - } - if {![info exists Priv(focus,$t)]} { - return - } - if {$Priv(focus,$t) eq $w} { - # This is already in focus - # - return - } else { - set Priv(focus,$t) $w - eval $FocusIn($t,$w) - } -} - -# ::tk::FocusGroup_Out -- -# -# Handles the event. Checks if this is really a lose -# focus event, not one generated by the mouse moving out of the -# toplevel window. Calls the FocusOut command for the widget -# who loses its focus. -# -proc ::tk::FocusGroup_Out {t w detail} { - variable FocusOut - variable ::tk::Priv - - if {$detail ne "NotifyNonlinear" && $detail ne "NotifyNonlinearVirtual"} { - # This is caused by mouse moving out of the window - return - } - if {![info exists Priv(focus,$t)]} { - return - } - if {![info exists FocusOut($t,$w)]} { - return - } else { - eval $FocusOut($t,$w) - set Priv(focus,$t) "" - } -} - -# ::tk::FDGetFileTypes -- -# -# Process the string given by the -filetypes option of the file -# dialogs. Similar to the C function TkGetFileFilters() on the Mac -# and Windows platform. -# -proc ::tk::FDGetFileTypes {string} { - foreach t $string { - if {[llength $t] < 2 || [llength $t] > 3} { - error "bad file type \"$t\", should be \"typeName {extension ?extensions ...?} ?{macType ?macTypes ...?}?\"" - } - eval lappend [list fileTypes([lindex $t 0])] [lindex $t 1] - } - - set types {} - foreach t $string { - set label [lindex $t 0] - set exts {} - - if {[info exists hasDoneType($label)]} { - continue - } - - set name "$label \(" - set sep "" - set doAppend 1 - foreach ext $fileTypes($label) { - if {$ext eq ""} { - continue - } - regsub {^[.]} $ext "*." ext - if {![info exists hasGotExt($label,$ext)]} { - if {$doAppend} { - if {[string length $sep] && [string length $name]>40} { - set doAppend 0 - append name $sep... - } else { - append name $sep$ext - } - } - lappend exts $ext - set hasGotExt($label,$ext) 1 - } - set sep "," - } - append name "\)" - lappend types [list $name $exts] - - set hasDoneType($label) 1 - } - - return $types -} diff --git a/mingw/lib/tk8.4/console.tcl b/mingw/lib/tk8.4/console.tcl deleted file mode 100644 index 037eb59c..00000000 --- a/mingw/lib/tk8.4/console.tcl +++ /dev/null @@ -1,957 +0,0 @@ -# console.tcl -- -# -# This code constructs the console window for an application. It -# can be used by non-unix systems that do not have built-in support -# for shells. -# -# RCS: @(#) $Id: console.tcl,v 1.22.2.5 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1995-1997 Sun Microsystems, Inc. -# Copyright (c) 1998-2000 Ajuba Solutions. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# TODO: history - remember partially written command - -namespace eval ::tk::console { - variable blinkTime 500 ; # msecs to blink braced range for - variable blinkRange 1 ; # enable blinking of the entire braced range - variable magicKeys 1 ; # enable brace matching and proc/var recognition - variable maxLines 600 ; # maximum # of lines buffered in console - variable showMatches 1 ; # show multiple expand matches - - variable inPlugin [info exists embed_args] - variable defaultPrompt ; # default prompt if tcl_prompt1 isn't used - - - if {$inPlugin} { - set defaultPrompt {subst {[history nextid] % }} - } else { - set defaultPrompt {subst {([file tail [pwd]]) [history nextid] % }} - } -} - -# simple compat function for tkcon code added for this console -interp alias {} EvalAttached {} consoleinterp eval - -# ::tk::ConsoleInit -- -# This procedure constructs and configures the console windows. -# -# Arguments: -# None. - -proc ::tk::ConsoleInit {} { - global tcl_platform - - if {![consoleinterp eval {set tcl_interactive}]} { - wm withdraw . - } - - if {$tcl_platform(platform) eq "macintosh" - || [tk windowingsystem] eq "aqua"} { - set mod "Cmd" - } else { - set mod "Ctrl" - } - - if {[catch {menu .menubar} err]} { bgerror "INIT: $err" } - .menubar add cascade -label File -menu .menubar.file -underline 0 - .menubar add cascade -label Edit -menu .menubar.edit -underline 0 - - menu .menubar.file -tearoff 0 - .menubar.file add command -label [mc "Source..."] \ - -underline 0 -command tk::ConsoleSource - .menubar.file add command -label [mc "Hide Console"] \ - -underline 0 -command {wm withdraw .} - .menubar.file add command -label [mc "Clear Console"] \ - -underline 0 -command {.console delete 1.0 "promptEnd linestart"} - if {$tcl_platform(platform) eq "macintosh" - || [tk windowingsystem] eq "aqua"} { - .menubar.file add command -label [mc "Quit"] \ - -command exit -accel Cmd-Q - } else { - .menubar.file add command -label [mc "Exit"] \ - -underline 1 -command exit - } - - menu .menubar.edit -tearoff 0 - .menubar.edit add command -label [mc "Cut"] -underline 2 \ - -command { event generate .console <> } -accel "$mod+X" - .menubar.edit add command -label [mc "Copy"] -underline 0 \ - -command { event generate .console <> } -accel "$mod+C" - .menubar.edit add command -label [mc "Paste"] -underline 1 \ - -command { event generate .console <> } -accel "$mod+V" - - if {$tcl_platform(platform) ne "windows"} { - .menubar.edit add command -label [mc "Clear"] -underline 2 \ - -command { event generate .console <> } - } else { - .menubar.edit add command -label [mc "Delete"] -underline 0 \ - -command { event generate .console <> } -accel "Del" - - .menubar add cascade -label Help -menu .menubar.help -underline 0 - menu .menubar.help -tearoff 0 - .menubar.help add command -label [mc "About..."] \ - -underline 0 -command tk::ConsoleAbout - } - - . configure -menu .menubar - - set con [text .console -yscrollcommand [list .sb set] -setgrid true] - scrollbar .sb -command [list $con yview] - pack .sb -side right -fill both - pack $con -fill both -expand 1 -side left - switch -exact $tcl_platform(platform) { - "macintosh" { - $con configure -font {Monaco 9 normal} -highlightthickness 0 - } - "windows" { - $con configure -font systemfixed - } - "unix" { - if {[tk windowingsystem] eq "aqua"} { - $con configure -font {Monaco 9 normal} -highlightthickness 0 - } - } - } - - ConsoleBind $con - - $con tag configure stderr -foreground red - $con tag configure stdin -foreground blue - $con tag configure prompt -foreground \#8F4433 - $con tag configure proc -foreground \#008800 - $con tag configure var -background \#FFC0D0 - $con tag raise sel - $con tag configure blink -background \#FFFF00 - $con tag configure find -background \#FFFF00 - - focus $con - - wm protocol . WM_DELETE_WINDOW { wm withdraw . } - wm title . [mc "Console"] - flush stdout - $con mark set output [$con index "end - 1 char"] - tk::TextSetCursor $con end - $con mark set promptEnd insert - $con mark gravity promptEnd left - - # A variant of ConsolePrompt to avoid a 'puts' call - set w $con - set temp [$w index "end - 1 char"] - $w mark set output end - if {![consoleinterp eval "info exists tcl_prompt1"]} { - set string [EvalAttached $::tk::console::defaultPrompt] - $w insert output $string stdout - } - $w mark set output $temp - ::tk::TextSetCursor $w end - $w mark set promptEnd insert - $w mark gravity promptEnd left - - if {$tcl_platform(platform) eq "windows"} { - # Subtle work-around to erase the '% ' that tclMain.c prints out - after idle [subst -nocommand { - if {[$con get 1.0 output] eq "% "} { $con delete 1.0 output } - }] - } -} - -# ::tk::ConsoleSource -- -# -# Prompts the user for a file to source in the main interpreter. -# -# Arguments: -# None. - -proc ::tk::ConsoleSource {} { - set filename [tk_getOpenFile -defaultextension .tcl -parent . \ - -title [mc "Select a file to source"] \ - -filetypes [list \ - [list [mc "Tcl Scripts"] .tcl] \ - [list [mc "All Files"] *]]] - if {$filename ne ""} { - set cmd [list source $filename] - if {[catch {consoleinterp eval $cmd} result]} { - ConsoleOutput stderr "$result\n" - } - } -} - -# ::tk::ConsoleInvoke -- -# Processes the command line input. If the command is complete it -# is evaled in the main interpreter. Otherwise, the continuation -# prompt is added and more input may be added. -# -# Arguments: -# None. - -proc ::tk::ConsoleInvoke {args} { - set ranges [.console tag ranges input] - set cmd "" - if {[llength $ranges]} { - set pos 0 - while {[lindex $ranges $pos] ne ""} { - set start [lindex $ranges $pos] - set end [lindex $ranges [incr pos]] - append cmd [.console get $start $end] - incr pos - } - } - if {$cmd eq ""} { - ConsolePrompt - } elseif {[info complete $cmd]} { - .console mark set output end - .console tag delete input - set result [consoleinterp record $cmd] - if {$result ne ""} { - puts $result - } - ConsoleHistory reset - ConsolePrompt - } else { - ConsolePrompt partial - } - .console yview -pickplace insert -} - -# ::tk::ConsoleHistory -- -# This procedure implements command line history for the -# console. In general is evals the history command in the -# main interpreter to obtain the history. The variable -# ::tk::HistNum is used to store the current location in the history. -# -# Arguments: -# cmd - Which action to take: prev, next, reset. - -set ::tk::HistNum 1 -proc ::tk::ConsoleHistory {cmd} { - variable HistNum - - switch $cmd { - prev { - incr HistNum -1 - if {$HistNum == 0} { - set cmd {history event [expr {[history nextid] -1}]} - } else { - set cmd "history event $HistNum" - } - if {[catch {consoleinterp eval $cmd} cmd]} { - incr HistNum - return - } - .console delete promptEnd end - .console insert promptEnd $cmd {input stdin} - } - next { - incr HistNum - if {$HistNum == 0} { - set cmd {history event [expr {[history nextid] -1}]} - } elseif {$HistNum > 0} { - set cmd "" - set HistNum 1 - } else { - set cmd "history event $HistNum" - } - if {$cmd ne ""} { - catch {consoleinterp eval $cmd} cmd - } - .console delete promptEnd end - .console insert promptEnd $cmd {input stdin} - } - reset { - set HistNum 1 - } - } -} - -# ::tk::ConsolePrompt -- -# This procedure draws the prompt. If tcl_prompt1 or tcl_prompt2 -# exists in the main interpreter it will be called to generate the -# prompt. Otherwise, a hard coded default prompt is printed. -# -# Arguments: -# partial - Flag to specify which prompt to print. - -proc ::tk::ConsolePrompt {{partial normal}} { - set w .console - if {$partial eq "normal"} { - set temp [$w index "end - 1 char"] - $w mark set output end - if {[consoleinterp eval "info exists tcl_prompt1"]} { - consoleinterp eval "eval \[set tcl_prompt1\]" - } else { - puts -nonewline [EvalAttached $::tk::console::defaultPrompt] - } - } else { - set temp [$w index output] - $w mark set output end - if {[consoleinterp eval "info exists tcl_prompt2"]} { - consoleinterp eval "eval \[set tcl_prompt2\]" - } else { - puts -nonewline "> " - } - } - flush stdout - $w mark set output $temp - ::tk::TextSetCursor $w end - $w mark set promptEnd insert - $w mark gravity promptEnd left - ::tk::console::ConstrainBuffer $w $::tk::console::maxLines - $w see end -} - -# ::tk::ConsoleBind -- -# This procedure first ensures that the default bindings for the Text -# class have been defined. Then certain bindings are overridden for -# the class. -# -# Arguments: -# None. - -proc ::tk::ConsoleBind {w} { - bindtags $w [list $w Console PostConsole [winfo toplevel $w] all] - - ## Get all Text bindings into Console - foreach ev [bind Text] { bind Console $ev [bind Text $ev] } - ## We really didn't want the newline insertion... - bind Console {} - ## ...or any Control-v binding (would block <>) - bind Console {} - - # For the moment, transpose isn't enabled until the console - # gets and overhaul of how it handles input -- hobbs - bind Console {} - - # Ignore all Alt, Meta, and Control keypresses unless explicitly bound. - # Otherwise, if a widget binding for one of these is defined, the - - bind Console {# nothing } - bind Console {# nothing} - bind Console {# nothing} - - foreach {ev key} { - <> - <> - <> - <> - <> - <> - - <> - <> - <> - <> - <> - <> - <> - <> - <> - - <> - <> - <> - <> - <> - } { - event add $ev $key - bind Console $key {} - } - - bind Console <> { - if {[%W compare insert > promptEnd]} {::tk::console::Expand %W} - } - bind Console <> { - if {[%W compare insert > promptEnd]} {::tk::console::Expand %W path} - } - bind Console <> { - if {[%W compare insert > promptEnd]} {::tk::console::Expand %W proc} - } - bind Console <> { - if {[%W compare insert > promptEnd]} {::tk::console::Expand %W var} - } - bind Console <> { - %W mark set insert {end - 1c} - tk::ConsoleInsert %W "\n" - tk::ConsoleInvoke - break - } - bind Console { - if {[%W tag nextrange sel 1.0 end] ne "" && [%W compare sel.first >= promptEnd]} { - %W delete sel.first sel.last - } elseif {[%W compare insert >= promptEnd]} { - %W delete insert - %W see insert - } - } - bind Console { - if {[%W tag nextrange sel 1.0 end] ne "" && [%W compare sel.first >= promptEnd]} { - %W delete sel.first sel.last - } elseif {[%W compare insert != 1.0] && \ - [%W compare insert > promptEnd]} { - %W delete insert-1c - %W see insert - } - } - bind Console [bind Console ] - - bind Console { - if {[%W compare insert < promptEnd]} { - tk::TextSetCursor %W {insert linestart} - } else { - tk::TextSetCursor %W promptEnd - } - } - bind Console [bind Console ] - bind Console { - tk::TextSetCursor %W {insert lineend} - } - bind Console [bind Console ] - bind Console { - if {[%W compare insert < promptEnd]} break - %W delete insert - } - bind Console <> { - if {[%W compare insert < promptEnd]} break - if {[%W compare insert == {insert lineend}]} { - %W delete insert - } else { - %W delete insert {insert lineend} - } - } - bind Console <> { - ## Clear console display - %W delete 1.0 "promptEnd linestart" - } - bind Console <> { - ## Clear command line (Unix shell staple) - %W delete promptEnd end - } - bind Console { - if {[%W compare insert >= promptEnd]} { - %W delete insert {insert wordend} - } - } - bind Console { - if {[%W compare {insert -1c wordstart} >= promptEnd]} { - %W delete {insert -1c wordstart} insert - } - } - bind Console { - if {[%W compare insert >= promptEnd]} { - %W delete insert {insert wordend} - } - } - bind Console { - if {[%W compare {insert -1c wordstart} >= promptEnd]} { - %W delete {insert -1c wordstart} insert - } - } - bind Console { - if {[%W compare insert >= promptEnd]} { - %W delete insert {insert wordend} - } - } - bind Console <> { - tk::ConsoleHistory prev - } - bind Console <> { - tk::ConsoleHistory next - } - bind Console { - catch {tk::ConsoleInsert %W [::tk::GetSelection %W PRIMARY]} - } - bind Console { - tk::ConsoleInsert %W %A - } - bind Console { - eval destroy [winfo child .] - if {$tcl_platform(platform) eq "macintosh"} { - if {[catch {source [file join $tk_library console.tcl]}]} {source -rsrc console} - } else { - source [file join $tk_library console.tcl] - } - } - if {$::tcl_platform(platform) eq "macintosh" || [tk windowingsystem] eq "aqua"} { - bind Console { - exit - } - } - bind Console <> { - # Same as the copy event - if {![catch {set data [%W get sel.first sel.last]}]} { - clipboard clear -displayof %W - clipboard append -displayof %W $data - } - } - bind Console <> { - if {![catch {set data [%W get sel.first sel.last]}]} { - clipboard clear -displayof %W - clipboard append -displayof %W $data - } - } - bind Console <> { - catch { - set clip [::tk::GetSelection %W CLIPBOARD] - set list [split $clip \n\r] - tk::ConsoleInsert %W [lindex $list 0] - foreach x [lrange $list 1 end] { - %W mark set insert {end - 1c} - tk::ConsoleInsert %W "\n" - tk::ConsoleInvoke - tk::ConsoleInsert %W $x - } - } - } - - ## - ## Bindings for doing special things based on certain keys - ## - bind PostConsole { - if {"\\" ne [%W get insert-2c]} { - ::tk::console::MatchPair %W \( \) promptEnd - } - } - bind PostConsole { - if {"\\" ne [%W get insert-2c]} { - ::tk::console::MatchPair %W \[ \] promptEnd - } - } - bind PostConsole { - if {"\\" ne [%W get insert-2c]} { - ::tk::console::MatchPair %W \{ \} promptEnd - } - } - bind PostConsole { - if {"\\" ne [%W get insert-2c]} { - ::tk::console::MatchQuote %W promptEnd - } - } - - bind PostConsole { - if {"%A" ne ""} { - ::tk::console::TagProc %W - } - break - } -} - -# ::tk::ConsoleInsert -- -# Insert a string into a text at the point of the insertion cursor. -# If there is a selection in the text, and it covers the point of the -# insertion cursor, then delete the selection before inserting. Insertion -# is restricted to the prompt area. -# -# Arguments: -# w - The text window in which to insert the string -# s - The string to insert (usually just a single character) - -proc ::tk::ConsoleInsert {w s} { - if {$s eq ""} { - return - } - catch { - if {[$w compare sel.first <= insert] - && [$w compare sel.last >= insert]} { - $w tag remove sel sel.first promptEnd - $w delete sel.first sel.last - } - } - if {[$w compare insert < promptEnd]} { - $w mark set insert end - } - $w insert insert $s {input stdin} - $w see insert -} - -# ::tk::ConsoleOutput -- -# -# This routine is called directly by ConsolePutsCmd to cause a string -# to be displayed in the console. -# -# Arguments: -# dest - The output tag to be used: either "stderr" or "stdout". -# string - The string to be displayed. - -proc ::tk::ConsoleOutput {dest string} { - set w .console - $w insert output $string $dest - ::tk::console::ConstrainBuffer $w $::tk::console::maxLines - $w see insert -} - -# ::tk::ConsoleExit -- -# -# This routine is called by ConsoleEventProc when the main window of -# the application is destroyed. Don't call exit - that probably already -# happened. Just delete our window. -# -# Arguments: -# None. - -proc ::tk::ConsoleExit {} { - destroy . -} - -# ::tk::ConsoleAbout -- -# -# This routine displays an About box to show Tcl/Tk version info. -# -# Arguments: -# None. - -proc ::tk::ConsoleAbout {} { - tk_messageBox -type ok -message "[mc {Tcl for Windows}] - -Tcl $::tcl_patchLevel -Tk $::tk_patchLevel" -} - -# ::tk::console::TagProc -- -# -# Tags a procedure in the console if it's recognized -# This procedure is not perfect. However, making it perfect wastes -# too much CPU time... -# -# Arguments: -# w - console text widget - -proc ::tk::console::TagProc w { - if {!$::tk::console::magicKeys} { return } - set exp "\[^\\\\\]\[\[ \t\n\r\;{}\"\$\]" - set i [$w search -backwards -regexp $exp insert-1c promptEnd-1c] - if {$i eq ""} {set i promptEnd} else {append i +2c} - regsub -all "\[\[\\\\\\?\\*\]" [$w get $i "insert-1c wordend"] {\\\0} c - if {[llength [EvalAttached [list info commands $c]]]} { - $w tag add proc $i "insert-1c wordend" - } else { - $w tag remove proc $i "insert-1c wordend" - } - if {[llength [EvalAttached [list info vars $c]]]} { - $w tag add var $i "insert-1c wordend" - } else { - $w tag remove var $i "insert-1c wordend" - } -} - -# ::tk::console::MatchPair -- -# -# Blinks a matching pair of characters -# c2 is assumed to be at the text index 'insert'. -# This proc is really loopy and took me an hour to figure out given -# all possible combinations with escaping except for escaped \'s. -# It doesn't take into account possible commenting... Oh well. If -# anyone has something better, I'd like to see/use it. This is really -# only efficient for small contexts. -# -# Arguments: -# w - console text widget -# c1 - first char of pair -# c2 - second char of pair -# -# Calls: ::tk::console::Blink - -proc ::tk::console::MatchPair {w c1 c2 {lim 1.0}} { - if {!$::tk::console::magicKeys} { return } - if {[set ix [$w search -back $c1 insert $lim]] ne ""} { - while { - [string match {\\} [$w get $ix-1c]] && - [set ix [$w search -back $c1 $ix-1c $lim]] ne "" - } {} - set i1 insert-1c - while {$ix ne ""} { - set i0 $ix - set j 0 - while {[set i0 [$w search $c2 $i0 $i1]] ne ""} { - append i0 +1c - if {[string match {\\} [$w get $i0-2c]]} continue - incr j - } - if {!$j} break - set i1 $ix - while {$j && [set ix [$w search -back $c1 $ix $lim]] ne ""} { - if {[string match {\\} [$w get $ix-1c]]} continue - incr j -1 - } - } - if {[string match {} $ix]} { set ix [$w index $lim] } - } else { set ix [$w index $lim] } - if {$::tk::console::blinkRange} { - Blink $w $ix [$w index insert] - } else { - Blink $w $ix $ix+1c [$w index insert-1c] [$w index insert] - } -} - -# ::tk::console::MatchQuote -- -# -# Blinks between matching quotes. -# Blinks just the quote if it's unmatched, otherwise blinks quoted string -# The quote to match is assumed to be at the text index 'insert'. -# -# Arguments: -# w - console text widget -# -# Calls: ::tk::console::Blink - -proc ::tk::console::MatchQuote {w {lim 1.0}} { - if {!$::tk::console::magicKeys} { return } - set i insert-1c - set j 0 - while {[set i [$w search -back \" $i $lim]] ne ""} { - if {[string match {\\} [$w get $i-1c]]} continue - if {!$j} {set i0 $i} - incr j - } - if {$j&1} { - if {$::tk::console::blinkRange} { - Blink $w $i0 [$w index insert] - } else { - Blink $w $i0 $i0+1c [$w index insert-1c] [$w index insert] - } - } else { - Blink $w [$w index insert-1c] [$w index insert] - } -} - -# ::tk::console::Blink -- -# -# Blinks between n index pairs for a specified duration. -# -# Arguments: -# w - console text widget -# i1 - start index to blink region -# i2 - end index of blink region -# dur - duration in usecs to blink for -# -# Outputs: -# blinks selected characters in $w - -proc ::tk::console::Blink {w args} { - eval [list $w tag add blink] $args - after $::tk::console::blinkTime [list $w] tag remove blink $args -} - -# ::tk::console::ConstrainBuffer -- -# -# This limits the amount of data in the text widget -# Called by Prompt and ConsoleOutput -# -# Arguments: -# w - console text widget -# size - # of lines to constrain to -# -# Outputs: -# may delete data in console widget - -proc ::tk::console::ConstrainBuffer {w size} { - if {[$w index end] > $size} { - $w delete 1.0 [expr {int([$w index end])-$size}].0 - } -} - -# ::tk::console::Expand -- -# -# Arguments: -# ARGS: w - text widget in which to expand str -# type - type of expansion (path / proc / variable) -# -# Calls: ::tk::console::Expand(Pathname|Procname|Variable) -# -# Outputs: The string to match is expanded to the longest possible match. -# If ::tk::console::showMatches is non-zero and the longest match -# equaled the string to expand, then all possible matches are -# output to stdout. Triggers bell if no matches are found. -# -# Returns: number of matches found - -proc ::tk::console::Expand {w {type ""}} { - set exp "\[^\\\\\]\[\[ \t\n\r\\\{\"\\\\\$\]" - set tmp [$w search -backwards -regexp $exp insert-1c promptEnd-1c] - if {$tmp eq ""} {set tmp promptEnd} else {append tmp +2c} - if {[$w compare $tmp >= insert]} { return } - set str [$w get $tmp insert] - switch -glob $type { - path* { set res [ExpandPathname $str] } - proc* { set res [ExpandProcname $str] } - var* { set res [ExpandVariable $str] } - default { - set res {} - foreach t {Pathname Procname Variable} { - if {![catch {Expand$t $str} res] && ($res ne "")} { break } - } - } - } - set len [llength $res] - if {$len} { - set repl [lindex $res 0] - $w delete $tmp insert - $w insert $tmp $repl {input stdin} - if {($len > 1) && $::tk::console::showMatches && $repl eq $str} { - puts stdout [lsort [lreplace $res 0 0]] - } - } else { bell } - return [incr len -1] -} - -# ::tk::console::ExpandPathname -- -# -# Expand a file pathname based on $str -# This is based on UNIX file name conventions -# -# Arguments: -# str - partial file pathname to expand -# -# Calls: ::tk::console::ExpandBestMatch -# -# Returns: list containing longest unique match followed by all the -# possible further matches - -proc ::tk::console::ExpandPathname str { - set pwd [EvalAttached pwd] - if {[catch {EvalAttached [list cd [file dirname $str]]} err]} { - return -code error $err - } - set dir [file tail $str] - ## Check to see if it was known to be a directory and keep the trailing - ## slash if so (file tail cuts it off) - if {[string match */ $str]} { append dir / } - if {[catch {lsort [EvalAttached [list glob $dir*]]} m]} { - set match {} - } else { - if {[llength $m] > 1} { - global tcl_platform - if {[string match windows $tcl_platform(platform)]} { - ## Windows is screwy because it's case insensitive - set tmp [ExpandBestMatch [string tolower $m] \ - [string tolower $dir]] - ## Don't change case if we haven't changed the word - if {[string length $dir]==[string length $tmp]} { - set tmp $dir - } - } else { - set tmp [ExpandBestMatch $m $dir] - } - if {[string match ?*/* $str]} { - set tmp [file dirname $str]/$tmp - } elseif {[string match /* $str]} { - set tmp /$tmp - } - regsub -all { } $tmp {\\ } tmp - set match [linsert $m 0 $tmp] - } else { - ## This may look goofy, but it handles spaces in path names - eval append match $m - if {[file isdir $match]} {append match /} - if {[string match ?*/* $str]} { - set match [file dirname $str]/$match - } elseif {[string match /* $str]} { - set match /$match - } - regsub -all { } $match {\\ } match - ## Why is this one needed and the ones below aren't!! - set match [list $match] - } - } - EvalAttached [list cd $pwd] - return $match -} - -# ::tk::console::ExpandProcname -- -# -# Expand a tcl proc name based on $str -# -# Arguments: -# str - partial proc name to expand -# -# Calls: ::tk::console::ExpandBestMatch -# -# Returns: list containing longest unique match followed by all the -# possible further matches - -proc ::tk::console::ExpandProcname str { - set match [EvalAttached [list info commands $str*]] - if {[llength $match] == 0} { - set ns [EvalAttached \ - "namespace children \[namespace current\] [list $str*]"] - if {[llength $ns]==1} { - set match [EvalAttached [list info commands ${ns}::*]] - } else { - set match $ns - } - } - if {[llength $match] > 1} { - regsub -all { } [ExpandBestMatch $match $str] {\\ } str - set match [linsert $match 0 $str] - } else { - regsub -all { } $match {\\ } match - } - return $match -} - -# ::tk::console::ExpandVariable -- -# -# Expand a tcl variable name based on $str -# -# Arguments: -# str - partial tcl var name to expand -# -# Calls: ::tk::console::ExpandBestMatch -# -# Returns: list containing longest unique match followed by all the -# possible further matches - -proc ::tk::console::ExpandVariable str { - if {[regexp {([^\(]*)\((.*)} $str junk ary str]} { - ## Looks like they're trying to expand an array. - set match [EvalAttached [list array names $ary $str*]] - if {[llength $match] > 1} { - set vars $ary\([ExpandBestMatch $match $str] - foreach var $match {lappend vars $ary\($var\)} - return $vars - } elseif {[llength $match] == 1} { - set match $ary\($match\) - } - ## Space transformation avoided for array names. - } else { - set match [EvalAttached [list info vars $str*]] - if {[llength $match] > 1} { - regsub -all { } [ExpandBestMatch $match $str] {\\ } str - set match [linsert $match 0 $str] - } else { - regsub -all { } $match {\\ } match - } - } - return $match -} - -# ::tk::console::ExpandBestMatch -- -# -# Finds the best unique match in a list of names. -# The extra $e in this argument allows us to limit the innermost loop a little -# further. This improves speed as $l becomes large or $e becomes long. -# -# Arguments: -# l - list to find best unique match in -# e - currently best known unique match -# -# Returns: longest unique match in the list - -proc ::tk::console::ExpandBestMatch {l {e {}}} { - set ec [lindex $l 0] - if {[llength $l]>1} { - set e [string length $e]; incr e -1 - set ei [string length $ec]; incr ei -1 - foreach l $l { - while {$ei>=$e && [string first $ec $l]} { - set ec [string range $ec 0 [incr ei -1]] - } - } - } - return $ec -} - -# now initialize the console -::tk::ConsoleInit diff --git a/mingw/lib/tk8.4/demos/README b/mingw/lib/tk8.4/demos/README deleted file mode 100644 index bb69787c..00000000 --- a/mingw/lib/tk8.4/demos/README +++ /dev/null @@ -1,46 +0,0 @@ -This directory contains a collection of programs to demonstrate -the features of the Tk toolkit. The programs are all scripts for -"wish", a windowing shell. If wish has been installed in /usr/local -then you can invoke any of the programs in this directory just -by typing its file name to your command shell. Otherwise invoke -wish with the file as its first argument, e.g., "wish hello". -The rest of this file contains a brief description of each program. -Files with names ending in ".tcl" are procedure packages used by one -or more of the demo programs; they can't be used as programs by -themselves so they aren't described below. - -hello - Creates a single button; if you click on it, a message - is typed and the application terminates. - -widget - Contains a collection of demonstrations of the widgets - currently available in the Tk library. Most of the .tcl - files are scripts for individual demos available through - the "widget" program. - -ixset - A simple Tk-based wrapper for the "xset" program, which - allows you to interactively query and set various X options - such as mouse acceleration and bell volume. Thanks to - Pierre David for contributing this example. - -rolodex - A mock-up of a simple rolodex application. It has much of - the user interface for such an application but no back-end - database. This program was written in response to Tom - LaStrange's toolkit benchmark challenge. - -tcolor - A color editor. Allows you to edit colors in several - different ways, and will also perform automatic updates - using "send". - -rmt - Allows you to "hook-up" remotely to any Tk application - on the display. Select an application with the menu, - then just type commands: they'll go to that application. - -timer - Displays a seconds timer with start and stop buttons. - Control-c and control-q cause it to exit. - -browse - A simple directory browser. Invoke it with and argument - giving the name of the directory you'd like to browse. - Double-click on files or subdirectories to browse them. - Control-c and control-q cause the program to exit. - -RCS: @(#) $Id: README,v 1.2 1998/09/14 18:23:25 stanton Exp $ diff --git a/mingw/lib/tk8.4/demos/arrow.tcl b/mingw/lib/tk8.4/demos/arrow.tcl deleted file mode 100644 index 5d372338..00000000 --- a/mingw/lib/tk8.4/demos/arrow.tcl +++ /dev/null @@ -1,239 +0,0 @@ -# arrow.tcl -- -# -# This demonstration script creates a canvas widget that displays a -# large line with an arrowhead whose shape can be edited interactively. -# -# RCS: @(#) $Id: arrow.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# arrowSetup -- -# This procedure regenerates all the text and graphics in the canvas -# window. It's called when the canvas is initially created, and also -# whenever any of the parameters of the arrow head are changed -# interactively. -# -# Arguments: -# c - Name of the canvas widget. - -proc arrowSetup c { - upvar #0 demo_arrowInfo v - - # Remember the current box, if there is one. - - set tags [$c gettags current] - if {$tags != ""} { - set cur [lindex $tags [lsearch -glob $tags box?]] - } else { - set cur "" - } - - # Create the arrow and outline. - - $c delete all - eval {$c create line $v(x1) $v(y) $v(x2) $v(y) -arrow last \ - -width [expr {10*$v(width)}] -arrowshape [list \ - [expr {10*$v(a)}] [expr {10*$v(b)}] [expr {10*$v(c)}]]} \ - $v(bigLineStyle) - set xtip [expr {$v(x2)-10*$v(b)}] - set deltaY [expr {10*$v(c)+5*$v(width)}] - $c create line $v(x2) $v(y) $xtip [expr {$v(y)+$deltaY}] \ - [expr {$v(x2)-10*$v(a)}] $v(y) $xtip [expr {$v(y)-$deltaY}] \ - $v(x2) $v(y) -width 2 -capstyle round -joinstyle round - - # Create the boxes for reshaping the line and arrowhead. - - eval {$c create rect [expr {$v(x2)-10*$v(a)-5}] [expr {$v(y)-5}] \ - [expr {$v(x2)-10*$v(a)+5}] [expr {$v(y)+5}] \ - -tags {box1 box}} $v(boxStyle) - eval {$c create rect [expr {$xtip-5}] [expr {$v(y)-$deltaY-5}] \ - [expr {$xtip+5}] [expr {$v(y)-$deltaY+5}] \ - -tags {box2 box}} $v(boxStyle) - eval {$c create rect [expr {$v(x1)-5}] [expr {$v(y)-5*$v(width)-5}] \ - [expr {$v(x1)+5}] [expr {$v(y)-5*$v(width)+5}] \ - -tags {box3 box}} $v(boxStyle) - if {$cur != ""} { - eval $c itemconfigure $cur $v(activeStyle) - } - - # Create three arrows in actual size with the same parameters - - $c create line [expr {$v(x2)+50}] 0 [expr {$v(x2)+50}] 1000 \ - -width 2 - set tmp [expr {$v(x2)+100}] - $c create line $tmp [expr {$v(y)-125}] $tmp [expr {$v(y)-75}] \ - -width $v(width) \ - -arrow both -arrowshape "$v(a) $v(b) $v(c)" - $c create line [expr {$tmp-25}] $v(y) [expr {$tmp+25}] $v(y) \ - -width $v(width) \ - -arrow both -arrowshape "$v(a) $v(b) $v(c)" - $c create line [expr {$tmp-25}] [expr {$v(y)+75}] [expr {$tmp+25}] \ - [expr {$v(y)+125}] -width $v(width) \ - -arrow both -arrowshape "$v(a) $v(b) $v(c)" - - # Create a bunch of other arrows and text items showing the - # current dimensions. - - set tmp [expr {$v(x2)+10}] - $c create line $tmp [expr {$v(y)-5*$v(width)}] \ - $tmp [expr {$v(y)-$deltaY}] \ - -arrow both -arrowshape $v(smallTips) - $c create text [expr {$v(x2)+15}] [expr {$v(y)-$deltaY+5*$v(c)}] \ - -text $v(c) -anchor w - set tmp [expr {$v(x1)-10}] - $c create line $tmp [expr {$v(y)-5*$v(width)}] \ - $tmp [expr {$v(y)+5*$v(width)}] \ - -arrow both -arrowshape $v(smallTips) - $c create text [expr {$v(x1)-15}] $v(y) -text $v(width) -anchor e - set tmp [expr {$v(y)+5*$v(width)+10*$v(c)+10}] - $c create line [expr {$v(x2)-10*$v(a)}] $tmp $v(x2) $tmp \ - -arrow both -arrowshape $v(smallTips) - $c create text [expr {$v(x2)-5*$v(a)}] [expr {$tmp+5}] \ - -text $v(a) -anchor n - set tmp [expr {$tmp+25}] - $c create line [expr {$v(x2)-10*$v(b)}] $tmp $v(x2) $tmp \ - -arrow both -arrowshape $v(smallTips) - $c create text [expr {$v(x2)-5*$v(b)}] [expr {$tmp+5}] \ - -text $v(b) -anchor n - - $c create text $v(x1) 310 -text "-width $v(width)" \ - -anchor w -font {Helvetica 18} - $c create text $v(x1) 330 -text "-arrowshape {$v(a) $v(b) $v(c)}" \ - -anchor w -font {Helvetica 18} - - incr v(count) -} - -set w .arrow -global tk_library -catch {destroy $w} -toplevel $w -wm title $w "Arrowhead Editor Demonstration" -wm iconname $w "arrow" -positionWindow $w -set c $w.c - -label $w.msg -font $font -wraplength 5i -justify left -text "This widget allows you to experiment with different widths and arrowhead shapes for lines in canvases. To change the line width or the shape of the arrowhead, drag any of the three boxes attached to the oversized arrow. The arrows on the right give examples at normal scale. The text at the bottom shows the configuration options as you'd enter them for a canvas line item." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -canvas $c -width 500 -height 350 -relief sunken -borderwidth 2 -pack $c -expand yes -fill both - -set demo_arrowInfo(a) 8 -set demo_arrowInfo(b) 10 -set demo_arrowInfo(c) 3 -set demo_arrowInfo(width) 2 -set demo_arrowInfo(motionProc) arrowMoveNull -set demo_arrowInfo(x1) 40 -set demo_arrowInfo(x2) 350 -set demo_arrowInfo(y) 150 -set demo_arrowInfo(smallTips) {5 5 2} -set demo_arrowInfo(count) 0 -if {[winfo depth $c] > 1} { - set demo_arrowInfo(bigLineStyle) "-fill SkyBlue1" - set demo_arrowInfo(boxStyle) "-fill {} -outline black -width 1" - set demo_arrowInfo(activeStyle) "-fill red -outline black -width 1" -} else { - set demo_arrowInfo(bigLineStyle) "-fill black \ - -stipple @[file join $tk_library demos images grey.25]" - set demo_arrowInfo(boxStyle) "-fill {} -outline black -width 1" - set demo_arrowInfo(activeStyle) "-fill black -outline black -width 1" -} -arrowSetup $c -$c bind box "$c itemconfigure current $demo_arrowInfo(activeStyle)" -$c bind box "$c itemconfigure current $demo_arrowInfo(boxStyle)" -$c bind box " " -$c bind box " " -$c bind box1 <1> {set demo_arrowInfo(motionProc) arrowMove1} -$c bind box2 <1> {set demo_arrowInfo(motionProc) arrowMove2} -$c bind box3 <1> {set demo_arrowInfo(motionProc) arrowMove3} -$c bind box "\$demo_arrowInfo(motionProc) $c %x %y" -bind $c "arrowSetup $c" - -# arrowMove1 -- -# This procedure is called for each mouse motion event on box1 (the -# one at the vertex of the arrow). It updates the controlling parameters -# for the line and arrowhead. -# -# Arguments: -# c - The name of the canvas window. -# x, y - The coordinates of the mouse. - -proc arrowMove1 {c x y} { - upvar #0 demo_arrowInfo v - set newA [expr {($v(x2)+5-round([$c canvasx $x]))/10}] - if {$newA < 0} { - set newA 0 - } - if {$newA > 25} { - set newA 25 - } - if {$newA != $v(a)} { - $c move box1 [expr {10*($v(a)-$newA)}] 0 - set v(a) $newA - } -} - -# arrowMove2 -- -# This procedure is called for each mouse motion event on box2 (the -# one at the trailing tip of the arrowhead). It updates the controlling -# parameters for the line and arrowhead. -# -# Arguments: -# c - The name of the canvas window. -# x, y - The coordinates of the mouse. - -proc arrowMove2 {c x y} { - upvar #0 demo_arrowInfo v - set newB [expr {($v(x2)+5-round([$c canvasx $x]))/10}] - if {$newB < 0} { - set newB 0 - } - if {$newB > 25} { - set newB 25 - } - set newC [expr {($v(y)+5-round([$c canvasy $y])-5*$v(width))/10}] - if {$newC < 0} { - set newC 0 - } - if {$newC > 20} { - set newC 20 - } - if {($newB != $v(b)) || ($newC != $v(c))} { - $c move box2 [expr {10*($v(b)-$newB)}] [expr {10*($v(c)-$newC)}] - set v(b) $newB - set v(c) $newC - } -} - -# arrowMove3 -- -# This procedure is called for each mouse motion event on box3 (the -# one that controls the thickness of the line). It updates the -# controlling parameters for the line and arrowhead. -# -# Arguments: -# c - The name of the canvas window. -# x, y - The coordinates of the mouse. - -proc arrowMove3 {c x y} { - upvar #0 demo_arrowInfo v - set newWidth [expr {($v(y)+2-round([$c canvasy $y]))/5}] - if {$newWidth < 0} { - set newWidth 0 - } - if {$newWidth > 20} { - set newWidth 20 - } - if {$newWidth != $v(width)} { - $c move box3 0 [expr {5*($v(width)-$newWidth)}] - set v(width) $newWidth - } -} diff --git a/mingw/lib/tk8.4/demos/bind.tcl b/mingw/lib/tk8.4/demos/bind.tcl deleted file mode 100644 index 6b296126..00000000 --- a/mingw/lib/tk8.4/demos/bind.tcl +++ /dev/null @@ -1,79 +0,0 @@ -# bind.tcl -- -# -# This demonstration script creates a text widget with bindings set -# up for hypertext-like effects. -# -# RCS: @(#) $Id: bind.tcl,v 1.2 1998/09/14 18:23:26 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .bind -catch {destroy $w} -toplevel $w -wm title $w "Text Demonstration - Tag Bindings" -wm iconname $w "bind" -positionWindow $w - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -text $w.text -yscrollcommand "$w.scroll set" -setgrid true \ - -width 60 -height 24 -font $font -wrap word -scrollbar $w.scroll -command "$w.text yview" -pack $w.scroll -side right -fill y -pack $w.text -expand yes -fill both - -# Set up display styles. - -if {[winfo depth $w] > 1} { - set bold "-background #43ce80 -relief raised -borderwidth 1" - set normal "-background {} -relief flat" -} else { - set bold "-foreground white -background black" - set normal "-foreground {} -background {}" -} - -# Add text to widget. - -$w.text insert 0.0 {\ -The same tag mechanism that controls display styles in text widgets can also be used to associate Tcl commands with regions of text, so that mouse or keyboard actions on the text cause particular Tcl commands to be invoked. For example, in the text below the descriptions of the canvas demonstrations have been tagged. When you move the mouse over a demo description the description lights up, and when you press button 1 over a description then that particular demonstration is invoked. - -} -$w.text insert end \ -{1. Samples of all the different types of items that can be created in canvas widgets.} d1 -$w.text insert end \n\n -$w.text insert end \ -{2. A simple two-dimensional plot that allows you to adjust the positions of the data points.} d2 -$w.text insert end \n\n -$w.text insert end \ -{3. Anchoring and justification modes for text items.} d3 -$w.text insert end \n\n -$w.text insert end \ -{4. An editor for arrow-head shapes for line items.} d4 -$w.text insert end \n\n -$w.text insert end \ -{5. A ruler with facilities for editing tab stops.} d5 -$w.text insert end \n\n -$w.text insert end \ -{6. A grid that demonstrates how canvases can be scrolled.} d6 - -# Create bindings for tags. - -foreach tag {d1 d2 d3 d4 d5 d6} { - $w.text tag bind $tag "$w.text tag configure $tag $bold" - $w.text tag bind $tag "$w.text tag configure $tag $normal" -} -$w.text tag bind d1 <1> {source [file join $tk_library demos items.tcl]} -$w.text tag bind d2 <1> {source [file join $tk_library demos plot.tcl]} -$w.text tag bind d3 <1> {source [file join $tk_library demos ctext.tcl]} -$w.text tag bind d4 <1> {source [file join $tk_library demos arrow.tcl]} -$w.text tag bind d5 <1> {source [file join $tk_library demos ruler.tcl]} -$w.text tag bind d6 <1> {source [file join $tk_library demos cscroll.tcl]} - -$w.text mark set insert 0.0 -$w.text configure -state disabled diff --git a/mingw/lib/tk8.4/demos/bitmap.tcl b/mingw/lib/tk8.4/demos/bitmap.tcl deleted file mode 100644 index cdb6f130..00000000 --- a/mingw/lib/tk8.4/demos/bitmap.tcl +++ /dev/null @@ -1,55 +0,0 @@ -# bitmap.tcl -- -# -# This demonstration script creates a toplevel window that displays -# all of Tk's built-in bitmaps. -# -# RCS: @(#) $Id: bitmap.tcl,v 1.2 1998/09/14 18:23:27 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# bitmapRow -- -# Create a row of bitmap items in a window. -# -# Arguments: -# w - The window that is to contain the row. -# args - The names of one or more bitmaps, which will be displayed -# in a new row across the bottom of w along with their -# names. - -proc bitmapRow {w args} { - frame $w - pack $w -side top -fill both - set i 0 - foreach bitmap $args { - frame $w.$i - pack $w.$i -side left -fill both -pady .25c -padx .25c - label $w.$i.bitmap -bitmap $bitmap - label $w.$i.label -text $bitmap -width 9 - pack $w.$i.label $w.$i.bitmap -side bottom - incr i - } -} - -set w .bitmap -global tk_library -catch {destroy $w} -toplevel $w -wm title $w "Bitmap Demonstration" -wm iconname $w "bitmap" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "This window displays all of Tk's built-in bitmaps, along with the names you can use for them in Tcl scripts." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -bitmapRow $w.frame.0 error gray12 gray25 gray50 gray75 -bitmapRow $w.frame.1 hourglass info question questhead warning -pack $w.frame -side top -expand yes -fill both diff --git a/mingw/lib/tk8.4/demos/browse b/mingw/lib/tk8.4/demos/browse deleted file mode 100644 index b881b4d2..00000000 --- a/mingw/lib/tk8.4/demos/browse +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" ${1+"$@"} - -# browse -- -# This script generates a directory browser, which lists the working -# directory and allows you to open files or subdirectories by -# double-clicking. -# -# RCS: @(#) $Id: browse,v 1.4 2001/11/05 10:13:53 dkf Exp $ - -# Create a scrollbar on the right side of the main window and a listbox -# on the left side. - -scrollbar .scroll -command ".list yview" -pack .scroll -side right -fill y -listbox .list -yscroll ".scroll set" -relief sunken -width 20 -height 20 \ - -setgrid yes -pack .list -side left -fill both -expand yes -wm minsize . 1 1 - -# The procedure below is invoked to open a browser on a given file; if the -# file is a directory then another instance of this program is invoked; if -# the file is a regular file then the Mx editor is invoked to display -# the file. - -set browseScript [file join [pwd] $argv0] -proc browse {dir file} { - global env browseScript - if {[string compare $dir "."] != 0} {set file $dir/$file} - switch [file type $file] { - directory { - exec [info nameofexecutable] $browseScript $file & - } - file { - if {[info exists env(EDITOR)]} { - eval exec $env(EDITOR) $file & - } else { - exec xedit $file & - } - } - default { - puts stdout "\"$file\" isn't a directory or regular file" - } - } -} - -# Fill the listbox with a list of all the files in the directory. - -if {$argc>0} {set dir [lindex $argv 0]} else {set dir "."} -foreach i [lsort [glob * .* *.*]] { - if {[file type $i] eq "directory"} { - # Safe to do since it is still a directory. - append i / - } - .list insert end $i -} - -# Set up bindings for the browser. - -bind all {destroy .} -bind .list {foreach i [selection get] {browse $dir $i}} - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/button.tcl b/mingw/lib/tk8.4/demos/button.tcl deleted file mode 100644 index 896f72c6..00000000 --- a/mingw/lib/tk8.4/demos/button.tcl +++ /dev/null @@ -1,36 +0,0 @@ -# button.tcl -- -# -# This demonstration script creates a toplevel window containing -# several button widgets. -# -# RCS: @(#) $Id: button.tcl,v 1.2 1998/09/14 18:23:27 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .button -catch {destroy $w} -toplevel $w -wm title $w "Button Demonstration" -wm iconname $w "button" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "If you click on any of the four buttons below, the background of the button area will change to the color indicated in the button. You can press Tab to move among the buttons, then press Space to invoke the current button." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -button $w.b1 -text "Peach Puff" -width 10 \ - -command "$w config -bg PeachPuff1; $w.buttons config -bg PeachPuff1" -button $w.b2 -text "Light Blue" -width 10 \ - -command "$w config -bg LightBlue1; $w.buttons config -bg LightBlue1" -button $w.b3 -text "Sea Green" -width 10 \ - -command "$w config -bg SeaGreen2; $w.buttons config -bg SeaGreen2" -button $w.b4 -text "Yellow" -width 10 \ - -command "$w config -bg Yellow1; $w.buttons config -bg Yellow1" -pack $w.b1 $w.b2 $w.b3 $w.b4 -side top -expand yes -pady 2 diff --git a/mingw/lib/tk8.4/demos/check.tcl b/mingw/lib/tk8.4/demos/check.tcl deleted file mode 100644 index 6842d2ef..00000000 --- a/mingw/lib/tk8.4/demos/check.tcl +++ /dev/null @@ -1,33 +0,0 @@ -# check.tcl -- -# -# This demonstration script creates a toplevel window containing -# several checkbuttons. -# -# RCS: @(#) $Id: check.tcl,v 1.2 1998/09/14 18:23:27 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .check -catch {destroy $w} -toplevel $w -wm title $w "Checkbutton Demonstration" -wm iconname $w "check" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "Three checkbuttons are displayed below. If you click on a button, it will toggle the button's selection state and set a Tcl variable to a value indicating the state of the checkbutton. Click the \"See Variables\" button to see the current values of the variables." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -button $w.buttons.vars -text "See Variables" \ - -command "showVars $w.dialog wipers brakes sober" -pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 - -checkbutton $w.b1 -text "Wipers OK" -variable wipers -relief flat -checkbutton $w.b2 -text "Brakes OK" -variable brakes -relief flat -checkbutton $w.b3 -text "Driver Sober" -variable sober -relief flat -pack $w.b1 $w.b2 $w.b3 -side top -pady 2 -anchor w diff --git a/mingw/lib/tk8.4/demos/clrpick.tcl b/mingw/lib/tk8.4/demos/clrpick.tcl deleted file mode 100644 index 5c1f0181..00000000 --- a/mingw/lib/tk8.4/demos/clrpick.tcl +++ /dev/null @@ -1,56 +0,0 @@ -# clrpick.tcl -- -# -# This demonstration script prompts the user to select a color. -# -# RCS: @(#) $Id: clrpick.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .clrpick -catch {destroy $w} -toplevel $w -wm title $w "Color Selection Dialog" -wm iconname $w "colors" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "Press the buttons below to choose the foreground and background colors for the widgets in this window." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -button $w.back -text "Set background color ..." \ - -command \ - "setColor $w $w.back background {-background -highlightbackground}" -button $w.fore -text "Set foreground color ..." \ - -command \ - "setColor $w $w.back foreground -foreground" - -pack $w.back $w.fore -side top -anchor c -pady 2m - -proc setColor {w button name options} { - grab $w - set initialColor [$button cget -$name] - set color [tk_chooseColor -title "Choose a $name color" -parent $w \ - -initialcolor $initialColor] - if {[string compare $color ""]} { - setColor_helper $w $options $color - } - grab release $w -} - -proc setColor_helper {w options color} { - foreach option $options { - catch { - $w config $option $color - } - } - foreach child [winfo children $w] { - setColor_helper $child $options $color - } -} diff --git a/mingw/lib/tk8.4/demos/colors.tcl b/mingw/lib/tk8.4/demos/colors.tcl deleted file mode 100644 index 0a58db9d..00000000 --- a/mingw/lib/tk8.4/demos/colors.tcl +++ /dev/null @@ -1,101 +0,0 @@ -# colors.tcl -- -# -# This demonstration script creates a listbox widget that displays -# many of the colors from the X color database. You can click on -# a color to change the application's palette. -# -# RCS: @(#) $Id: colors.tcl,v 1.2 1998/09/14 18:23:27 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .colors -catch {destroy $w} -toplevel $w -wm title $w "Listbox Demonstration (colors)" -wm iconname $w "Listbox" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing several color names is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by dragging in the listbox window with button 2 pressed. If you double-click button 1 on a color, then the application's color palette will be set to match that color" -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth 10 -pack $w.frame -side top -expand yes -fill y - -scrollbar $w.frame.scroll -command "$w.frame.list yview" -listbox $w.frame.list -yscroll "$w.frame.scroll set" \ - -width 20 -height 16 -setgrid 1 -pack $w.frame.list $w.frame.scroll -side left -fill y -expand 1 - -bind $w.frame.list { - tk_setPalette [selection get] -} -$w.frame.list insert 0 gray60 gray70 gray80 gray85 gray90 gray95 \ - snow1 snow2 snow3 snow4 seashell1 seashell2 \ - seashell3 seashell4 AntiqueWhite1 AntiqueWhite2 AntiqueWhite3 \ - AntiqueWhite4 bisque1 bisque2 bisque3 bisque4 PeachPuff1 \ - PeachPuff2 PeachPuff3 PeachPuff4 NavajoWhite1 NavajoWhite2 \ - NavajoWhite3 NavajoWhite4 LemonChiffon1 LemonChiffon2 \ - LemonChiffon3 LemonChiffon4 cornsilk1 cornsilk2 cornsilk3 \ - cornsilk4 ivory1 ivory2 ivory3 ivory4 honeydew1 honeydew2 \ - honeydew3 honeydew4 LavenderBlush1 LavenderBlush2 \ - LavenderBlush3 LavenderBlush4 MistyRose1 MistyRose2 \ - MistyRose3 MistyRose4 azure1 azure2 azure3 azure4 \ - SlateBlue1 SlateBlue2 SlateBlue3 SlateBlue4 RoyalBlue1 \ - RoyalBlue2 RoyalBlue3 RoyalBlue4 blue1 blue2 blue3 blue4 \ - DodgerBlue1 DodgerBlue2 DodgerBlue3 DodgerBlue4 SteelBlue1 \ - SteelBlue2 SteelBlue3 SteelBlue4 DeepSkyBlue1 DeepSkyBlue2 \ - DeepSkyBlue3 DeepSkyBlue4 SkyBlue1 SkyBlue2 SkyBlue3 \ - SkyBlue4 LightSkyBlue1 LightSkyBlue2 LightSkyBlue3 \ - LightSkyBlue4 SlateGray1 SlateGray2 SlateGray3 SlateGray4 \ - LightSteelBlue1 LightSteelBlue2 LightSteelBlue3 \ - LightSteelBlue4 LightBlue1 LightBlue2 LightBlue3 \ - LightBlue4 LightCyan1 LightCyan2 LightCyan3 LightCyan4 \ - PaleTurquoise1 PaleTurquoise2 PaleTurquoise3 PaleTurquoise4 \ - CadetBlue1 CadetBlue2 CadetBlue3 CadetBlue4 turquoise1 \ - turquoise2 turquoise3 turquoise4 cyan1 cyan2 cyan3 cyan4 \ - DarkSlateGray1 DarkSlateGray2 DarkSlateGray3 \ - DarkSlateGray4 aquamarine1 aquamarine2 aquamarine3 \ - aquamarine4 DarkSeaGreen1 DarkSeaGreen2 DarkSeaGreen3 \ - DarkSeaGreen4 SeaGreen1 SeaGreen2 SeaGreen3 SeaGreen4 \ - PaleGreen1 PaleGreen2 PaleGreen3 PaleGreen4 SpringGreen1 \ - SpringGreen2 SpringGreen3 SpringGreen4 green1 green2 \ - green3 green4 chartreuse1 chartreuse2 chartreuse3 \ - chartreuse4 OliveDrab1 OliveDrab2 OliveDrab3 OliveDrab4 \ - DarkOliveGreen1 DarkOliveGreen2 DarkOliveGreen3 \ - DarkOliveGreen4 khaki1 khaki2 khaki3 khaki4 \ - LightGoldenrod1 LightGoldenrod2 LightGoldenrod3 \ - LightGoldenrod4 LightYellow1 LightYellow2 LightYellow3 \ - LightYellow4 yellow1 yellow2 yellow3 yellow4 gold1 gold2 \ - gold3 gold4 goldenrod1 goldenrod2 goldenrod3 goldenrod4 \ - DarkGoldenrod1 DarkGoldenrod2 DarkGoldenrod3 DarkGoldenrod4 \ - RosyBrown1 RosyBrown2 RosyBrown3 RosyBrown4 IndianRed1 \ - IndianRed2 IndianRed3 IndianRed4 sienna1 sienna2 sienna3 \ - sienna4 burlywood1 burlywood2 burlywood3 burlywood4 wheat1 \ - wheat2 wheat3 wheat4 tan1 tan2 tan3 tan4 chocolate1 \ - chocolate2 chocolate3 chocolate4 firebrick1 firebrick2 \ - firebrick3 firebrick4 brown1 brown2 brown3 brown4 salmon1 \ - salmon2 salmon3 salmon4 LightSalmon1 LightSalmon2 \ - LightSalmon3 LightSalmon4 orange1 orange2 orange3 orange4 \ - DarkOrange1 DarkOrange2 DarkOrange3 DarkOrange4 coral1 \ - coral2 coral3 coral4 tomato1 tomato2 tomato3 tomato4 \ - OrangeRed1 OrangeRed2 OrangeRed3 OrangeRed4 red1 red2 red3 \ - red4 DeepPink1 DeepPink2 DeepPink3 DeepPink4 HotPink1 \ - HotPink2 HotPink3 HotPink4 pink1 pink2 pink3 pink4 \ - LightPink1 LightPink2 LightPink3 LightPink4 PaleVioletRed1 \ - PaleVioletRed2 PaleVioletRed3 PaleVioletRed4 maroon1 \ - maroon2 maroon3 maroon4 VioletRed1 VioletRed2 VioletRed3 \ - VioletRed4 magenta1 magenta2 magenta3 magenta4 orchid1 \ - orchid2 orchid3 orchid4 plum1 plum2 plum3 plum4 \ - MediumOrchid1 MediumOrchid2 MediumOrchid3 MediumOrchid4 \ - DarkOrchid1 DarkOrchid2 DarkOrchid3 DarkOrchid4 purple1 \ - purple2 purple3 purple4 MediumPurple1 MediumPurple2 \ - MediumPurple3 MediumPurple4 thistle1 thistle2 thistle3 \ - thistle4 diff --git a/mingw/lib/tk8.4/demos/cscroll.tcl b/mingw/lib/tk8.4/demos/cscroll.tcl deleted file mode 100644 index 1a014175..00000000 --- a/mingw/lib/tk8.4/demos/cscroll.tcl +++ /dev/null @@ -1,110 +0,0 @@ -# cscroll.tcl -- -# -# This demonstration script creates a simple canvas that can be -# scrolled in two dimensions. -# -# RCS: @(#) $Id: cscroll.tcl,v 1.3.4.1 2005/12/13 03:44:42 das Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .cscroll -catch {destroy $w} -toplevel $w -wm title $w "Scrollable Canvas Demonstration" -wm iconname $w "cscroll" -positionWindow $w -set c $w.c - -label $w.msg -font $font -wraplength 4i -justify left -text "This window displays a canvas widget that can be scrolled either using the scrollbars or by dragging with button 2 in the canvas. If you click button 1 on one of the rectangles, its indices will be printed on stdout." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.grid -scrollbar $w.hscroll -orient horiz -command "$c xview" -scrollbar $w.vscroll -command "$c yview" -canvas $c -relief sunken -borderwidth 2 -scrollregion {-11c -11c 50c 20c} \ - -xscrollcommand "$w.hscroll set" \ - -yscrollcommand "$w.vscroll set" -pack $w.grid -expand yes -fill both -padx 1 -pady 1 -grid rowconfig $w.grid 0 -weight 1 -minsize 0 -grid columnconfig $w.grid 0 -weight 1 -minsize 0 - -grid $c -padx 1 -in $w.grid -pady 1 \ - -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid $w.vscroll -in $w.grid -padx 1 -pady 1 \ - -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news -grid $w.hscroll -in $w.grid -padx 1 -pady 1 \ - -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news - - -set bg [lindex [$c config -bg] 4] -for {set i 0} {$i < 20} {incr i} { - set x [expr {-10 + 3*$i}] - for {set j 0; set y -10} {$j < 10} {incr j; incr y 3} { - $c create rect ${x}c ${y}c [expr {$x+2}]c [expr {$y+2}]c \ - -outline black -fill $bg -tags rect - $c create text [expr {$x+1}]c [expr {$y+1}]c -text "$i,$j" \ - -anchor center -tags text - } -} - -$c bind all "scrollEnter $c" -$c bind all "scrollLeave $c" -$c bind all <1> "scrollButton $c" -bind $c <2> "$c scan mark %x %y" -bind $c "$c scan dragto %x %y" -if {[tk windowingsystem] eq "aqua"} { - bind $c { - %W yview scroll [expr {- (%D)}] units - } - bind $c { - %W yview scroll [expr {-10 * (%D)}] units - } - bind $c { - %W xview scroll [expr {- (%D)}] units - } - bind $c { - %W xview scroll [expr {-10 * (%D)}] units - } -} - -proc scrollEnter canvas { - global oldFill - set id [$canvas find withtag current] - if {[lsearch [$canvas gettags current] text] >= 0} { - set id [expr {$id-1}] - } - set oldFill [lindex [$canvas itemconfig $id -fill] 4] - if {[winfo depth $canvas] > 1} { - $canvas itemconfigure $id -fill SeaGreen1 - } else { - $canvas itemconfigure $id -fill black - $canvas itemconfigure [expr {$id+1}] -fill white - } -} - -proc scrollLeave canvas { - global oldFill - set id [$canvas find withtag current] - if {[lsearch [$canvas gettags current] text] >= 0} { - set id [expr {$id-1}] - } - $canvas itemconfigure $id -fill $oldFill - $canvas itemconfigure [expr {$id+1}] -fill black -} - -proc scrollButton canvas { - global oldFill - set id [$canvas find withtag current] - if {[lsearch [$canvas gettags current] text] < 0} { - set id [expr {$id+1}] - } - puts stdout "You buttoned at [lindex [$canvas itemconf $id -text] 4]" -} diff --git a/mingw/lib/tk8.4/demos/ctext.tcl b/mingw/lib/tk8.4/demos/ctext.tcl deleted file mode 100644 index fb120a89..00000000 --- a/mingw/lib/tk8.4/demos/ctext.tcl +++ /dev/null @@ -1,147 +0,0 @@ -# ctext.tcl -- -# -# This demonstration script creates a canvas widget with a text -# item that can be edited and reconfigured in various ways. -# -# RCS: @(#) $Id: ctext.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .ctext -catch {destroy $w} -toplevel $w -wm title $w "Canvas Text Demonstration" -wm iconname $w "Text" -positionWindow $w -set c $w.c - -label $w.msg -font $font -wraplength 5i -justify left -text "This window displays a string of text to demonstrate the text facilities of canvas widgets. You can click in the boxes to adjust the position of the text relative to its positioning point or change its justification. The text also supports the following simple bindings for editing: - 1. You can point, click, and type. - 2. You can also select with button 1. - 3. You can copy the selection to the mouse position with button 2. - 4. Backspace and Control+h delete the selection if there is one; - otherwise they delete the character just before the insertion cursor. - 5. Delete deletes the selection if there is one; otherwise it deletes - the character just after the insertion cursor." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -canvas $c -relief flat -borderwidth 0 -width 500 -height 350 -pack $w.c -side top -expand yes -fill both - -set textFont {Helvetica 24} - -$c create rectangle 245 195 255 205 -outline black -fill red - -# First, create the text item and give it bindings so it can be edited. - -$c addtag text withtag [$c create text 250 200 -text "This is just a string of text to demonstrate the text facilities of canvas widgets. Bindings have been been defined to support editing (see above)." -width 440 -anchor n -font {Helvetica 24} -justify left] -$c bind text <1> "textB1Press $c %x %y" -$c bind text "textB1Move $c %x %y" -$c bind text "$c select adjust current @%x,%y" -$c bind text "textB1Move $c %x %y" -$c bind text "textInsert $c %A" -$c bind text "textInsert $c \\n" -$c bind text "textBs $c" -$c bind text "textBs $c" -$c bind text "textDel $c" -$c bind text <2> "textPaste $c @%x,%y" - -# Next, create some items that allow the text's anchor position -# to be edited. - -proc mkTextConfig {w x y option value color} { - set item [$w create rect $x $y [expr {$x+30}] [expr {$y+30}] \ - -outline black -fill $color -width 1] - $w bind $item <1> "$w itemconf text $option $value" - $w addtag config withtag $item -} - -set x 50 -set y 50 -set color LightSkyBlue1 -mkTextConfig $c $x $y -anchor se $color -mkTextConfig $c [expr {$x+30}] [expr {$y }] -anchor s $color -mkTextConfig $c [expr {$x+60}] [expr {$y }] -anchor sw $color -mkTextConfig $c [expr {$x }] [expr {$y+30}] -anchor e $color -mkTextConfig $c [expr {$x+30}] [expr {$y+30}] -anchor center $color -mkTextConfig $c [expr {$x+60}] [expr {$y+30}] -anchor w $color -mkTextConfig $c [expr {$x }] [expr {$y+60}] -anchor ne $color -mkTextConfig $c [expr {$x+30}] [expr {$y+60}] -anchor n $color -mkTextConfig $c [expr {$x+60}] [expr {$y+60}] -anchor nw $color -set item [$c create rect \ - [expr {$x+40}] [expr {$y+40}] [expr {$x+50}] [expr {$y+50}] \ - -outline black -fill red] -$c bind $item <1> "$c itemconf text -anchor center" -$c create text [expr {$x+45}] [expr {$y-5}] \ - -text {Text Position} -anchor s -font {Times 24} -fill brown - -# Lastly, create some items that allow the text's justification to be -# changed. - -set x 350 -set y 50 -set color SeaGreen2 -mkTextConfig $c $x $y -justify left $color -mkTextConfig $c [expr {$x+30}] $y -justify center $color -mkTextConfig $c [expr {$x+60}] $y -justify right $color -$c create text [expr {$x+45}] [expr {$y-5}] \ - -text {Justification} -anchor s -font {Times 24} -fill brown - -$c bind config "textEnter $c" -$c bind config "$c itemconf current -fill \$textConfigFill" - -set textConfigFill {} - -proc textEnter {w} { - global textConfigFill - set textConfigFill [lindex [$w itemconfig current -fill] 4] - $w itemconfig current -fill black -} - -proc textInsert {w string} { - if {$string == ""} { - return - } - catch {$w dchars text sel.first sel.last} - $w insert text insert $string -} - -proc textPaste {w pos} { - catch { - $w insert text $pos [selection get] - } -} - -proc textB1Press {w x y} { - $w icursor current @$x,$y - $w focus current - focus $w - $w select from current @$x,$y -} - -proc textB1Move {w x y} { - $w select to current @$x,$y -} - -proc textBs {w} { - if {![catch {$w dchars text sel.first sel.last}]} { - return - } - set char [expr {[$w index text insert] - 1}] - if {$char >= 0} {$w dchar text $char} -} - -proc textDel {w} { - if {![catch {$w dchars text sel.first sel.last}]} { - return - } - $w dchars text insert -} diff --git a/mingw/lib/tk8.4/demos/entry1.tcl b/mingw/lib/tk8.4/demos/entry1.tcl deleted file mode 100644 index 5d00b2c5..00000000 --- a/mingw/lib/tk8.4/demos/entry1.tcl +++ /dev/null @@ -1,36 +0,0 @@ -# entry1.tcl -- -# -# This demonstration script creates several entry widgets without -# scrollbars. -# -# RCS: @(#) $Id: entry1.tcl,v 1.2 1998/09/14 18:23:28 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .entry1 -catch {destroy $w} -toplevel $w -wm title $w "Entry Demonstration (no scrollbars)" -wm iconname $w "entry1" -positionWindow $w - -label $w.msg -font $font -wraplength 5i -justify left -text "Three different entries are displayed below. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries by dragging with mouse button2 pressed." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -entry $w.e1 -entry $w.e2 -entry $w.e3 -pack $w.e1 $w.e2 $w.e3 -side top -pady 5 -padx 10 -fill x - -$w.e1 insert 0 "Initial value" -$w.e2 insert end "This entry contains a long value, much too long " -$w.e2 insert end "to fit in the window at one time, so long in fact " -$w.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.4/demos/entry2.tcl b/mingw/lib/tk8.4/demos/entry2.tcl deleted file mode 100644 index ffd9ae60..00000000 --- a/mingw/lib/tk8.4/demos/entry2.tcl +++ /dev/null @@ -1,48 +0,0 @@ -# entry2.tcl -- -# -# This demonstration script is the same as the entry1.tcl script -# except that it creates scrollbars for the entries. -# -# RCS: @(#) $Id: entry2.tcl,v 1.2 1998/09/14 18:23:28 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .entry2 -catch {destroy $w} -toplevel $w -wm title $w "Entry Demonstration (with scrollbars)" -wm iconname $w "entry2" -positionWindow $w - -label $w.msg -font $font -wraplength 5i -justify left -text "Three different entries are displayed below, with a scrollbar for each entry. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries with the scrollbars, or by dragging with mouse button2 pressed." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth 10 -pack $w.frame -side top -fill x -expand 1 - -entry $w.frame.e1 -xscrollcommand "$w.frame.s1 set" -scrollbar $w.frame.s1 -relief sunken -orient horiz -command \ - "$w.frame.e1 xview" -frame $w.frame.spacer1 -width 20 -height 10 -entry $w.frame.e2 -xscrollcommand "$w.frame.s2 set" -scrollbar $w.frame.s2 -relief sunken -orient horiz -command \ - "$w.frame.e2 xview" -frame $w.frame.spacer2 -width 20 -height 10 -entry $w.frame.e3 -xscrollcommand "$w.frame.s3 set" -scrollbar $w.frame.s3 -relief sunken -orient horiz -command \ - "$w.frame.e3 xview" -pack $w.frame.e1 $w.frame.s1 $w.frame.spacer1 $w.frame.e2 $w.frame.s2 \ - $w.frame.spacer2 $w.frame.e3 $w.frame.s3 -side top -fill x - -$w.frame.e1 insert 0 "Initial value" -$w.frame.e2 insert end "This entry contains a long value, much too long " -$w.frame.e2 insert end "to fit in the window at one time, so long in fact " -$w.frame.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.4/demos/entry3.tcl b/mingw/lib/tk8.4/demos/entry3.tcl deleted file mode 100644 index 3e88a7ab..00000000 --- a/mingw/lib/tk8.4/demos/entry3.tcl +++ /dev/null @@ -1,187 +0,0 @@ -# entry2.tcl -- -# -# This demonstration script creates several entry widgets whose -# permitted input is constrained in some way. It also shows off a -# password entry. -# -# RCS: @(#) $Id: entry3.tcl,v 1.1 2001/11/19 14:02:29 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .entry3 -catch {destroy $w} -toplevel $w -wm title $w "Constrained Entry Demonstration" -wm iconname $w "entry3" -positionWindow $w - - -label $w.msg -font $font -wraplength 5i -justify left -text "Four different\ - entries are displayed below. You can add characters by pointing,\ - clicking and typing, though each is constrained in what it will\ - accept. The first only accepts integers or the empty string\ - (checking when focus leaves it) and will flash to indicate any\ - problem. The second only accepts strings with fewer than ten\ - characters and sounds the bell when an attempt to go over the limit\ - is made. The third accepts US phone numbers, mapping letters to\ - their digit equivalent and sounding the bell on encountering an\ - illegal character or if trying to type over a character that is not\ - a digit. The fourth is a password field that accepts up to eight\ - characters (silently ignoring further ones), and displaying them as\ - asterisk characters." - -frame $w.buttons -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - - -# focusAndFlash -- -# Error handler for entry widgets that forces the focus onto the -# widget and makes the widget flash by exchanging the foreground and -# background colours at intervals of 200ms (i.e. at approximately -# 2.5Hz). -# -# Arguments: -# W - Name of entry widget to flash -# fg - Initial foreground colour -# bg - Initial background colour -# count - Counter to control the number of times flashed - -proc focusAndFlash {W fg bg {count 9}} { - focus -force $W - if {$count<1} { - $W configure -foreground $fg -background $bg - } else { - if {$count%2} { - $W configure -foreground $bg -background $fg - } else { - $W configure -foreground $fg -background $bg - } - after 200 [list focusAndFlash $W $fg $bg [expr {$count-1}]] - } -} - -labelframe $w.l1 -text "Integer Entry" -entry $w.l1.e -validate focus -vcmd {string is integer %P} -$w.l1.e configure -invalidcommand \ - "focusAndFlash %W [$w.l1.e cget -fg] [$w.l1.e cget -bg]" -pack $w.l1.e -fill x -expand 1 -padx 1m -pady 1m - -labelframe $w.l2 -text "Length-Constrained Entry" -entry $w.l2.e -validate key -invcmd bell -vcmd {expr {[string length %P]<10}} -pack $w.l2.e -fill x -expand 1 -padx 1m -pady 1m - -### PHONE NUMBER ENTRY ### -# Note that the source to this is quite a bit longer as the behaviour -# demonstrated is a lot more ambitious than with the others. - -# Initial content for the third entry widget -set entry3content "1-(000)-000-0000" -# Mapping from alphabetic characters to numbers. This is probably -# wrong, but it is the only mapping I have; the UK doesn't really go -# for associating letters with digits for some reason. -set phoneNumberMap {} -foreach {chars digit} {abc 2 def 3 ghi 4 jkl 5 mno 6 pqrs 7 tuv 8 wxyz 9} { - foreach char [split $chars ""] { - lappend phoneNumberMap $char $digit [string toupper $char] $digit - } -} - -# validatePhoneChange -- -# Checks that the replacement (mapped to a digit) of the given -# character in an entry widget at the given position will leave a -# valid phone number in the widget. -# -# W - The entry widget to validate -# vmode - The widget's validation mode -# idx - The index where replacement is to occur -# char - The character (or string, though that will always be -# refused) to be overwritten at that point. - -proc validatePhoneChange {W vmode idx char} { - global phoneNumberMap entry3content - if {$idx == -1} {return 1} - after idle [list $W configure -validate $vmode -invcmd bell] - if { - !($idx<3 || $idx==6 || $idx==7 || $idx==11 || $idx>15) && - [string match {[0-9A-Za-z]} $char] - } then { - $W delete $idx - $W insert $idx [string map $phoneNumberMap $char] - after idle [list phoneSkipRight $W -1] - return 1 - } - return 0 -} - -# phoneSkipLeft -- -# Skip over fixed characters in a phone-number string when moving left. -# -# Arguments: -# W - The entry widget containing the phone-number. - -proc phoneSkipLeft {W} { - set idx [$W index insert] - if {$idx == 8} { - # Skip back two extra characters - $W icursor [incr idx -2] - } elseif {$idx == 7 || $idx == 12} { - # Skip back one extra character - $W icursor [incr idx -1] - } elseif {$idx <= 3} { - # Can't move any further - bell - return -code break - } -} - -# phoneSkipRight -- -# Skip over fixed characters in a phone-number string when moving right. -# -# Arguments: -# W - The entry widget containing the phone-number. -# add - Offset to add to index before calculation (used by validation.) - -proc phoneSkipRight {W {add 0}} { - set idx [$W index insert] - if {$idx+$add == 5} { - # Skip forward two extra characters - $W icursor [incr idx 2] - } elseif {$idx+$add == 6 || $idx+$add == 10} { - # Skip forward one extra character - $W icursor [incr idx] - } elseif {$idx+$add == 15 && !$add} { - # Can't move any further - bell - return -code break - } -} - -labelframe $w.l3 -text "US Phone-Number Entry" -entry $w.l3.e -validate key -invcmd bell -textvariable entry3content \ - -vcmd {validatePhoneChange %W %v %i %S} -# Click to focus goes to the first editable character... -bind $w.l3.e { - if {"%d" ne "NotifyAncestor"} { - %W icursor 3 - after idle {%W selection clear} - } -} -bind $w.l3.e {phoneSkipLeft %W} -bind $w.l3.e {phoneSkipRight %W} -pack $w.l3.e -fill x -expand 1 -padx 1m -pady 1m - -labelframe $w.l4 -text "Password Entry" -entry $w.l4.e -validate key -show "*" -vcmd {expr {[string length %P]<=8}} -pack $w.l4.e -fill x -expand 1 -padx 1m -pady 1m - -lower [frame $w.mid] -grid $w.l1 $w.l2 -in $w.mid -padx 3m -pady 1m -sticky ew -grid $w.l3 $w.l4 -in $w.mid -padx 3m -pady 1m -sticky ew -grid columnconfigure $w.mid {0 1} -uniform 1 -pack $w.msg -side top -pack $w.buttons -side bottom -fill x -pady 2m -pack $w.mid -fill both -expand 1 diff --git a/mingw/lib/tk8.4/demos/filebox.tcl b/mingw/lib/tk8.4/demos/filebox.tcl deleted file mode 100644 index bb6f2513..00000000 --- a/mingw/lib/tk8.4/demos/filebox.tcl +++ /dev/null @@ -1,74 +0,0 @@ -# filebox.tcl -- -# -# This demonstration script prompts the user to select a file. -# -# RCS: @(#) $Id: filebox.tcl,v 1.3.4.1 2004/09/10 20:48:41 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .filebox -catch {destroy $w} -toplevel $w -wm title $w "File Selection Dialogs" -wm iconname $w "filebox" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "Enter a file name in the entry box or click on the \"Browse\" buttons to select a file name using the file selection dialog." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -foreach i {open save} { - set f [frame $w.$i] - label $f.lab -text "Select a file to $i: " -anchor e - entry $f.ent -width 20 - button $f.but -text "Browse ..." -command "fileDialog $w $f.ent $i" - pack $f.lab -side left - pack $f.ent -side left -expand yes -fill x - pack $f.but -side left - pack $f -fill x -padx 1c -pady 3 -} - -if {![string compare $tcl_platform(platform) unix]} { - checkbutton $w.strict -text "Use Motif Style Dialog" \ - -variable tk_strictMotif -onvalue 1 -offvalue 0 - pack $w.strict -anchor c - - # This binding ensures that we don't run the rest of the demos - # with motif style interactions - bind $w.strict {set tk_strictMotif 0} -} - -proc fileDialog {w ent operation} { - # Type names Extension(s) Mac File Type(s) - # - #--------------------------------------------------------- - set types { - {"Text files" {.txt .doc} } - {"Text files" {} TEXT} - {"Tcl Scripts" {.tcl} TEXT} - {"C Source Files" {.c .h} } - {"All Source Files" {.tcl .c .h} } - {"Image Files" {.gif} } - {"Image Files" {.jpeg .jpg} } - {"Image Files" "" {GIFF JPEG}} - {"All files" *} - } - if {$operation == "open"} { - set file [tk_getOpenFile -filetypes $types -parent $w] - } else { - set file [tk_getSaveFile -filetypes $types -parent $w \ - -initialfile Untitled -defaultextension .txt] - } - if {[string compare $file ""]} { - $ent delete 0 end - $ent insert 0 $file - $ent xview end - } -} diff --git a/mingw/lib/tk8.4/demos/floor.tcl b/mingw/lib/tk8.4/demos/floor.tcl deleted file mode 100644 index 24355442..00000000 --- a/mingw/lib/tk8.4/demos/floor.tcl +++ /dev/null @@ -1,1370 +0,0 @@ -# floor.tcl -- -# -# This demonstration script creates a canvas widet that displays the -# floorplan for DEC's Western Research Laboratory. -# -# RCS: @(#) $Id: floor.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# floorDisplay -- -# Recreate the floorplan display in the canvas given by "w". The -# floor given by "active" is displayed on top with its office structure -# visible. -# -# Arguments: -# w - Name of the canvas window. -# active - Number of active floor (1, 2, or 3). - -proc floorDisplay {w active} { - global floorLabels floorItems colors activeFloor - - if {$activeFloor == $active} { - return - } - - $w delete all - set activeFloor $active - - # First go through the three floors, displaying the backgrounds for - # each floor. - - bg1 $w $colors(bg1) $colors(outline1) - bg2 $w $colors(bg2) $colors(outline2) - bg3 $w $colors(bg3) $colors(outline3) - - # Raise the background for the active floor so that it's on top. - - $w raise floor$active - - # Create a dummy item just to mark this point in the display list, - # so we can insert highlights here. - - $w create rect 0 100 1 101 -fill {} -outline {} -tags marker - - # Add the walls and labels for the active floor, along with - # transparent polygons that define the rooms on the floor. - # Make sure that the room polygons are on top. - - catch {unset floorLabels} - catch {unset floorItems} - fg$active $w $colors(offices) - $w raise room - - # Offset the floors diagonally from each other. - - $w move floor1 2c 2c - $w move floor2 1c 1c - - # Create items for the room entry and its label. - - $w create window 600 100 -anchor w -window $w.entry - $w create text 600 100 -anchor e -text "Room: " - $w config -scrollregion [$w bbox all] -} - -# newRoom -- -# This procedure is invoked whenever the mouse enters a room -# in the floorplan. It changes tags so that the current room is -# highlighted. -# -# Arguments: -# w - The name of the canvas window. - -proc newRoom w { - global currentRoom floorLabels - - set id [$w find withtag current] - if {$id != ""} { - set currentRoom $floorLabels($id) - } - update idletasks -} - -# roomChanged -- -# This procedure is invoked whenever the currentRoom variable changes. -# It highlights the current room and unhighlights any previous room. -# -# Arguments: -# w - The canvas window displaying the floorplan. -# args - Not used. - -proc roomChanged {w args} { - global currentRoom floorItems colors - $w delete highlight - if {[catch {set item $floorItems($currentRoom)}]} { - return - } - set new [eval \ - "$w create polygon [$w coords $item] -fill $colors(active) \ - -tags highlight"] - $w raise $new marker -} - -# bg1 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the background information for the first -# floor. -# -# Arguments: -# w - The canvas window. -# fill - Fill color to use for the floor's background. -# outline - Color to use for the floor's outline. - -proc bg1 {w fill outline} { - $w create poly 347 80 349 82 351 84 353 85 363 92 375 99 386 104 \ - 386 129 398 129 398 162 484 162 484 129 559 129 559 133 725 \ - 133 725 129 802 129 802 389 644 389 644 391 559 391 559 327 \ - 508 327 508 311 484 311 484 278 395 278 395 288 400 288 404 \ - 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 \ - 411 330 405 332 397 333 344 333 340 334 336 336 335 338 332 \ - 342 331 347 332 351 334 354 336 357 341 359 340 360 335 363 \ - 331 365 326 366 304 366 304 355 258 355 258 387 60 387 60 391 \ - 0 391 0 337 3 337 3 114 8 114 8 25 30 25 30 5 93 5 98 5 104 7 \ - 110 10 116 16 119 20 122 28 123 32 123 68 220 68 220 34 221 \ - 22 223 17 227 13 231 8 236 4 242 2 246 0 260 0 283 1 300 5 \ - 321 14 335 22 348 25 365 29 363 39 358 48 352 56 337 70 \ - 344 76 347 80 \ - -tags {floor1 bg} -fill $fill - $w create line 386 129 398 129 -fill $outline -tags {floor1 bg} - $w create line 258 355 258 387 -fill $outline -tags {floor1 bg} - $w create line 60 387 60 391 -fill $outline -tags {floor1 bg} - $w create line 0 337 0 391 -fill $outline -tags {floor1 bg} - $w create line 60 391 0 391 -fill $outline -tags {floor1 bg} - $w create line 3 114 3 337 -fill $outline -tags {floor1 bg} - $w create line 258 387 60 387 -fill $outline -tags {floor1 bg} - $w create line 484 162 398 162 -fill $outline -tags {floor1 bg} - $w create line 398 162 398 129 -fill $outline -tags {floor1 bg} - $w create line 484 278 484 311 -fill $outline -tags {floor1 bg} - $w create line 484 311 508 311 -fill $outline -tags {floor1 bg} - $w create line 508 327 508 311 -fill $outline -tags {floor1 bg} - $w create line 559 327 508 327 -fill $outline -tags {floor1 bg} - $w create line 644 391 559 391 -fill $outline -tags {floor1 bg} - $w create line 644 389 644 391 -fill $outline -tags {floor1 bg} - $w create line 559 129 484 129 -fill $outline -tags {floor1 bg} - $w create line 484 162 484 129 -fill $outline -tags {floor1 bg} - $w create line 725 133 559 133 -fill $outline -tags {floor1 bg} - $w create line 559 129 559 133 -fill $outline -tags {floor1 bg} - $w create line 725 129 802 129 -fill $outline -tags {floor1 bg} - $w create line 802 389 802 129 -fill $outline -tags {floor1 bg} - $w create line 3 337 0 337 -fill $outline -tags {floor1 bg} - $w create line 559 391 559 327 -fill $outline -tags {floor1 bg} - $w create line 802 389 644 389 -fill $outline -tags {floor1 bg} - $w create line 725 133 725 129 -fill $outline -tags {floor1 bg} - $w create line 8 25 8 114 -fill $outline -tags {floor1 bg} - $w create line 8 114 3 114 -fill $outline -tags {floor1 bg} - $w create line 30 25 8 25 -fill $outline -tags {floor1 bg} - $w create line 484 278 395 278 -fill $outline -tags {floor1 bg} - $w create line 30 25 30 5 -fill $outline -tags {floor1 bg} - $w create line 93 5 30 5 -fill $outline -tags {floor1 bg} - $w create line 98 5 93 5 -fill $outline -tags {floor1 bg} - $w create line 104 7 98 5 -fill $outline -tags {floor1 bg} - $w create line 110 10 104 7 -fill $outline -tags {floor1 bg} - $w create line 116 16 110 10 -fill $outline -tags {floor1 bg} - $w create line 119 20 116 16 -fill $outline -tags {floor1 bg} - $w create line 122 28 119 20 -fill $outline -tags {floor1 bg} - $w create line 123 32 122 28 -fill $outline -tags {floor1 bg} - $w create line 123 68 123 32 -fill $outline -tags {floor1 bg} - $w create line 220 68 123 68 -fill $outline -tags {floor1 bg} - $w create line 386 129 386 104 -fill $outline -tags {floor1 bg} - $w create line 386 104 375 99 -fill $outline -tags {floor1 bg} - $w create line 375 99 363 92 -fill $outline -tags {floor1 bg} - $w create line 353 85 363 92 -fill $outline -tags {floor1 bg} - $w create line 220 68 220 34 -fill $outline -tags {floor1 bg} - $w create line 337 70 352 56 -fill $outline -tags {floor1 bg} - $w create line 352 56 358 48 -fill $outline -tags {floor1 bg} - $w create line 358 48 363 39 -fill $outline -tags {floor1 bg} - $w create line 363 39 365 29 -fill $outline -tags {floor1 bg} - $w create line 365 29 348 25 -fill $outline -tags {floor1 bg} - $w create line 348 25 335 22 -fill $outline -tags {floor1 bg} - $w create line 335 22 321 14 -fill $outline -tags {floor1 bg} - $w create line 321 14 300 5 -fill $outline -tags {floor1 bg} - $w create line 300 5 283 1 -fill $outline -tags {floor1 bg} - $w create line 283 1 260 0 -fill $outline -tags {floor1 bg} - $w create line 260 0 246 0 -fill $outline -tags {floor1 bg} - $w create line 246 0 242 2 -fill $outline -tags {floor1 bg} - $w create line 242 2 236 4 -fill $outline -tags {floor1 bg} - $w create line 236 4 231 8 -fill $outline -tags {floor1 bg} - $w create line 231 8 227 13 -fill $outline -tags {floor1 bg} - $w create line 223 17 227 13 -fill $outline -tags {floor1 bg} - $w create line 221 22 223 17 -fill $outline -tags {floor1 bg} - $w create line 220 34 221 22 -fill $outline -tags {floor1 bg} - $w create line 340 360 335 363 -fill $outline -tags {floor1 bg} - $w create line 335 363 331 365 -fill $outline -tags {floor1 bg} - $w create line 331 365 326 366 -fill $outline -tags {floor1 bg} - $w create line 326 366 304 366 -fill $outline -tags {floor1 bg} - $w create line 304 355 304 366 -fill $outline -tags {floor1 bg} - $w create line 395 288 400 288 -fill $outline -tags {floor1 bg} - $w create line 404 288 400 288 -fill $outline -tags {floor1 bg} - $w create line 409 290 404 288 -fill $outline -tags {floor1 bg} - $w create line 413 292 409 290 -fill $outline -tags {floor1 bg} - $w create line 418 297 413 292 -fill $outline -tags {floor1 bg} - $w create line 421 302 418 297 -fill $outline -tags {floor1 bg} - $w create line 422 309 421 302 -fill $outline -tags {floor1 bg} - $w create line 421 318 422 309 -fill $outline -tags {floor1 bg} - $w create line 421 318 417 325 -fill $outline -tags {floor1 bg} - $w create line 417 325 411 330 -fill $outline -tags {floor1 bg} - $w create line 411 330 405 332 -fill $outline -tags {floor1 bg} - $w create line 405 332 397 333 -fill $outline -tags {floor1 bg} - $w create line 397 333 344 333 -fill $outline -tags {floor1 bg} - $w create line 344 333 340 334 -fill $outline -tags {floor1 bg} - $w create line 340 334 336 336 -fill $outline -tags {floor1 bg} - $w create line 336 336 335 338 -fill $outline -tags {floor1 bg} - $w create line 335 338 332 342 -fill $outline -tags {floor1 bg} - $w create line 331 347 332 342 -fill $outline -tags {floor1 bg} - $w create line 332 351 331 347 -fill $outline -tags {floor1 bg} - $w create line 334 354 332 351 -fill $outline -tags {floor1 bg} - $w create line 336 357 334 354 -fill $outline -tags {floor1 bg} - $w create line 341 359 336 357 -fill $outline -tags {floor1 bg} - $w create line 341 359 340 360 -fill $outline -tags {floor1 bg} - $w create line 395 288 395 278 -fill $outline -tags {floor1 bg} - $w create line 304 355 258 355 -fill $outline -tags {floor1 bg} - $w create line 347 80 344 76 -fill $outline -tags {floor1 bg} - $w create line 344 76 337 70 -fill $outline -tags {floor1 bg} - $w create line 349 82 347 80 -fill $outline -tags {floor1 bg} - $w create line 351 84 349 82 -fill $outline -tags {floor1 bg} - $w create line 353 85 351 84 -fill $outline -tags {floor1 bg} -} - -# bg2 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the background information for the second -# floor. -# -# Arguments: -# w - The canvas window. -# fill - Fill color to use for the floor's background. -# outline - Color to use for the floor's outline. - -proc bg2 {w fill outline} { - $w create poly 559 129 484 129 484 162 398 162 398 129 315 129 \ - 315 133 176 133 176 129 96 129 96 133 3 133 3 339 0 339 0 391 \ - 60 391 60 387 258 387 258 329 350 329 350 311 395 311 395 280 \ - 484 280 484 311 508 311 508 327 558 327 558 391 644 391 644 \ - 367 802 367 802 129 725 129 725 133 559 133 559 129 \ - -tags {floor2 bg} -fill $fill - $w create line 350 311 350 329 -fill $outline -tags {floor2 bg} - $w create line 398 129 398 162 -fill $outline -tags {floor2 bg} - $w create line 802 367 802 129 -fill $outline -tags {floor2 bg} - $w create line 802 129 725 129 -fill $outline -tags {floor2 bg} - $w create line 725 133 725 129 -fill $outline -tags {floor2 bg} - $w create line 559 129 559 133 -fill $outline -tags {floor2 bg} - $w create line 559 133 725 133 -fill $outline -tags {floor2 bg} - $w create line 484 162 484 129 -fill $outline -tags {floor2 bg} - $w create line 559 129 484 129 -fill $outline -tags {floor2 bg} - $w create line 802 367 644 367 -fill $outline -tags {floor2 bg} - $w create line 644 367 644 391 -fill $outline -tags {floor2 bg} - $w create line 644 391 558 391 -fill $outline -tags {floor2 bg} - $w create line 558 327 558 391 -fill $outline -tags {floor2 bg} - $w create line 558 327 508 327 -fill $outline -tags {floor2 bg} - $w create line 508 327 508 311 -fill $outline -tags {floor2 bg} - $w create line 484 311 508 311 -fill $outline -tags {floor2 bg} - $w create line 484 280 484 311 -fill $outline -tags {floor2 bg} - $w create line 398 162 484 162 -fill $outline -tags {floor2 bg} - $w create line 484 280 395 280 -fill $outline -tags {floor2 bg} - $w create line 395 280 395 311 -fill $outline -tags {floor2 bg} - $w create line 258 387 60 387 -fill $outline -tags {floor2 bg} - $w create line 3 133 3 339 -fill $outline -tags {floor2 bg} - $w create line 3 339 0 339 -fill $outline -tags {floor2 bg} - $w create line 60 391 0 391 -fill $outline -tags {floor2 bg} - $w create line 0 339 0 391 -fill $outline -tags {floor2 bg} - $w create line 60 387 60 391 -fill $outline -tags {floor2 bg} - $w create line 258 329 258 387 -fill $outline -tags {floor2 bg} - $w create line 350 329 258 329 -fill $outline -tags {floor2 bg} - $w create line 395 311 350 311 -fill $outline -tags {floor2 bg} - $w create line 398 129 315 129 -fill $outline -tags {floor2 bg} - $w create line 176 133 315 133 -fill $outline -tags {floor2 bg} - $w create line 176 129 96 129 -fill $outline -tags {floor2 bg} - $w create line 3 133 96 133 -fill $outline -tags {floor2 bg} - $w create line 315 133 315 129 -fill $outline -tags {floor2 bg} - $w create line 176 133 176 129 -fill $outline -tags {floor2 bg} - $w create line 96 133 96 129 -fill $outline -tags {floor2 bg} -} - -# bg3 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the background information for the third -# floor. -# -# Arguments: -# w - The canvas window. -# fill - Fill color to use for the floor's background. -# outline - Color to use for the floor's outline. - -proc bg3 {w fill outline} { - $w create poly 159 300 107 300 107 248 159 248 159 129 96 129 96 \ - 133 21 133 21 331 0 331 0 391 60 391 60 370 159 370 159 300 \ - -tags {floor3 bg} -fill $fill - $w create poly 258 370 258 329 350 329 350 311 399 311 399 129 \ - 315 129 315 133 176 133 176 129 159 129 159 370 258 370 \ - -tags {floor3 bg} -fill $fill - $w create line 96 133 96 129 -fill $outline -tags {floor3 bg} - $w create line 176 129 96 129 -fill $outline -tags {floor3 bg} - $w create line 176 129 176 133 -fill $outline -tags {floor3 bg} - $w create line 315 133 176 133 -fill $outline -tags {floor3 bg} - $w create line 315 133 315 129 -fill $outline -tags {floor3 bg} - $w create line 399 129 315 129 -fill $outline -tags {floor3 bg} - $w create line 399 311 399 129 -fill $outline -tags {floor3 bg} - $w create line 399 311 350 311 -fill $outline -tags {floor3 bg} - $w create line 350 329 350 311 -fill $outline -tags {floor3 bg} - $w create line 350 329 258 329 -fill $outline -tags {floor3 bg} - $w create line 258 370 258 329 -fill $outline -tags {floor3 bg} - $w create line 60 370 258 370 -fill $outline -tags {floor3 bg} - $w create line 60 370 60 391 -fill $outline -tags {floor3 bg} - $w create line 60 391 0 391 -fill $outline -tags {floor3 bg} - $w create line 0 391 0 331 -fill $outline -tags {floor3 bg} - $w create line 21 331 0 331 -fill $outline -tags {floor3 bg} - $w create line 21 331 21 133 -fill $outline -tags {floor3 bg} - $w create line 96 133 21 133 -fill $outline -tags {floor3 bg} - $w create line 107 300 159 300 159 248 107 248 107 300 \ - -fill $outline -tags {floor3 bg} -} - -# fg1 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the foreground information for the first -# floor (office outlines and numbers). -# -# Arguments: -# w - The canvas window. -# color - Color to use for drawing foreground information. - -proc fg1 {w color} { - global floorLabels floorItems - set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor1 room}] - set floorLabels($i) 101 - set {floorItems(101)} $i - $w create text 358 209 -text 101 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor1 room}] - set floorLabels($i) {Pub Lift1} - set {floorItems(Pub Lift1)} $i - $w create text 323 223 -text {Pub Lift1} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor1 room}] - set floorLabels($i) {Priv Lift1} - set {floorItems(Priv Lift1)} $i - $w create text 323 188 -text {Priv Lift1} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 42 389 42 337 1 337 1 389 -fill {} -tags {floor1 room}] - set floorLabels($i) 110 - set {floorItems(110)} $i - $w create text 21.5 363 -text 110 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 59 389 59 385 90 385 90 337 44 337 44 389 -fill {} -tags {floor1 room}] - set floorLabels($i) 109 - set {floorItems(109)} $i - $w create text 67 363 -text 109 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 51 300 51 253 6 253 6 300 -fill {} -tags {floor1 room}] - set floorLabels($i) 111 - set {floorItems(111)} $i - $w create text 28.5 276.5 -text 111 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 98 248 98 309 79 309 79 248 -fill {} -tags {floor1 room}] - set floorLabels($i) 117B - set {floorItems(117B)} $i - $w create text 88.5 278.5 -text 117B -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 51 251 51 204 6 204 6 251 -fill {} -tags {floor1 room}] - set floorLabels($i) 112 - set {floorItems(112)} $i - $w create text 28.5 227.5 -text 112 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 6 156 51 156 51 203 6 203 -fill {} -tags {floor1 room}] - set floorLabels($i) 113 - set {floorItems(113)} $i - $w create text 28.5 179.5 -text 113 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 85 169 79 169 79 192 85 192 -fill {} -tags {floor1 room}] - set floorLabels($i) 117A - set {floorItems(117A)} $i - $w create text 82 180.5 -text 117A -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 77 302 77 168 53 168 53 302 -fill {} -tags {floor1 room}] - set floorLabels($i) 117 - set {floorItems(117)} $i - $w create text 65 235 -text 117 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 51 155 51 115 6 115 6 155 -fill {} -tags {floor1 room}] - set floorLabels($i) 114 - set {floorItems(114)} $i - $w create text 28.5 135 -text 114 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 95 115 53 115 53 168 95 168 -fill {} -tags {floor1 room}] - set floorLabels($i) 115 - set {floorItems(115)} $i - $w create text 74 141.5 -text 115 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 87 113 87 27 10 27 10 113 -fill {} -tags {floor1 room}] - set floorLabels($i) 116 - set {floorItems(116)} $i - $w create text 48.5 70 -text 116 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 89 91 128 91 128 113 89 113 -fill {} -tags {floor1 room}] - set floorLabels($i) 118 - set {floorItems(118)} $i - $w create text 108.5 102 -text 118 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 178 128 178 132 216 132 216 91 163 91 163 112 149 112 149 128 -fill {} -tags {floor1 room}] - set floorLabels($i) 120 - set {floorItems(120)} $i - $w create text 189.5 111.5 -text 120 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 79 193 87 193 87 169 136 169 136 192 156 192 156 169 175 169 175 246 79 246 -fill {} -tags {floor1 room}] - set floorLabels($i) 122 - set {floorItems(122)} $i - $w create text 131 207.5 -text 122 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 138 169 154 169 154 191 138 191 -fill {} -tags {floor1 room}] - set floorLabels($i) 121 - set {floorItems(121)} $i - $w create text 146 180 -text 121 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 99 300 126 300 126 309 99 309 -fill {} -tags {floor1 room}] - set floorLabels($i) 106A - set {floorItems(106A)} $i - $w create text 112.5 304.5 -text 106A -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 128 299 128 309 150 309 150 248 99 248 99 299 -fill {} -tags {floor1 room}] - set floorLabels($i) 105 - set {floorItems(105)} $i - $w create text 124.5 278.5 -text 105 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 174 309 174 300 152 300 152 309 -fill {} -tags {floor1 room}] - set floorLabels($i) 106B - set {floorItems(106B)} $i - $w create text 163 304.5 -text 106B -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 176 299 176 309 216 309 216 248 152 248 152 299 -fill {} -tags {floor1 room}] - set floorLabels($i) 104 - set {floorItems(104)} $i - $w create text 184 278.5 -text 104 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 138 385 138 337 91 337 91 385 -fill {} -tags {floor1 room}] - set floorLabels($i) 108 - set {floorItems(108)} $i - $w create text 114.5 361 -text 108 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 256 337 140 337 140 385 256 385 -fill {} -tags {floor1 room}] - set floorLabels($i) 107 - set {floorItems(107)} $i - $w create text 198 361 -text 107 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 300 353 300 329 260 329 260 353 -fill {} -tags {floor1 room}] - set floorLabels($i) Smoking - set {floorItems(Smoking)} $i - $w create text 280 341 -text Smoking -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 314 135 314 170 306 170 306 246 177 246 177 135 -fill {} -tags {floor1 room}] - set floorLabels($i) 123 - set {floorItems(123)} $i - $w create text 245.5 190.5 -text 123 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 217 248 301 248 301 326 257 326 257 310 217 310 -fill {} -tags {floor1 room}] - set floorLabels($i) 103 - set {floorItems(103)} $i - $w create text 259 287 -text 103 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 396 188 377 188 377 169 316 169 316 131 396 131 -fill {} -tags {floor1 room}] - set floorLabels($i) 124 - set {floorItems(124)} $i - $w create text 356 150 -text 124 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 397 226 407 226 407 189 377 189 377 246 397 246 -fill {} -tags {floor1 room}] - set floorLabels($i) 125 - set {floorItems(125)} $i - $w create text 392 217.5 -text 125 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 399 187 409 187 409 207 474 207 474 164 399 164 -fill {} -tags {floor1 room}] - set floorLabels($i) 126 - set {floorItems(126)} $i - $w create text 436.5 185.5 -text 126 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 409 209 409 229 399 229 399 253 486 253 486 239 474 239 474 209 -fill {} -tags {floor1 room}] - set floorLabels($i) 127 - set {floorItems(127)} $i - $w create text 436.5 231 -text 127 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 501 164 501 174 495 174 495 188 490 188 490 204 476 204 476 164 -fill {} -tags {floor1 room}] - set floorLabels($i) MShower - set {floorItems(MShower)} $i - $w create text 488.5 184 -text MShower -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 497 176 513 176 513 204 492 204 492 190 497 190 -fill {} -tags {floor1 room}] - set floorLabels($i) Closet - set {floorItems(Closet)} $i - $w create text 502.5 190 -text Closet -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 476 237 476 206 513 206 513 254 488 254 488 237 -fill {} -tags {floor1 room}] - set floorLabels($i) WShower - set {floorItems(WShower)} $i - $w create text 494.5 230 -text WShower -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 486 131 558 131 558 135 724 135 724 166 697 166 697 275 553 275 531 254 515 254 515 174 503 174 503 161 486 161 -fill {} -tags {floor1 room}] - set floorLabels($i) 130 - set {floorItems(130)} $i - $w create text 638.5 205 -text 130 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 308 242 339 242 339 248 342 248 342 246 397 246 397 276 393 276 393 309 300 309 300 248 308 248 -fill {} -tags {floor1 room}] - set floorLabels($i) 102 - set {floorItems(102)} $i - $w create text 367.5 278.5 -text 102 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 397 255 486 255 486 276 397 276 -fill {} -tags {floor1 room}] - set floorLabels($i) 128 - set {floorItems(128)} $i - $w create text 441.5 265.5 -text 128 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 510 309 486 309 486 255 530 255 552 277 561 277 561 325 510 325 -fill {} -tags {floor1 room}] - set floorLabels($i) 129 - set {floorItems(129)} $i - $w create text 535.5 293 -text 129 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 696 281 740 281 740 387 642 387 642 389 561 389 561 277 696 277 -fill {} -tags {floor1 room}] - set floorLabels($i) 133 - set {floorItems(133)} $i - $w create text 628.5 335 -text 133 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 742 387 742 281 800 281 800 387 -fill {} -tags {floor1 room}] - set floorLabels($i) 132 - set {floorItems(132)} $i - $w create text 771 334 -text 132 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 800 168 800 280 699 280 699 168 -fill {} -tags {floor1 room}] - set floorLabels($i) 134 - set {floorItems(134)} $i - $w create text 749.5 224 -text 134 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 726 131 726 166 800 166 800 131 -fill {} -tags {floor1 room}] - set floorLabels($i) 135 - set {floorItems(135)} $i - $w create text 763 148.5 -text 135 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 340 360 335 363 331 365 326 366 304 366 304 312 396 312 396 288 400 288 404 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 411 330 405 332 397 333 344 333 340 334 336 336 335 338 332 342 331 347 332 351 334 354 336 357 341 359 -fill {} -tags {floor1 room}] - set floorLabels($i) {Ramona Stair} - set {floorItems(Ramona Stair)} $i - $w create text 368 323 -text {Ramona Stair} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 30 23 30 5 93 5 98 5 104 7 110 10 116 16 119 20 122 28 123 32 123 68 220 68 220 87 90 87 90 23 -fill {} -tags {floor1 room}] - set floorLabels($i) {University Stair} - set {floorItems(University Stair)} $i - $w create text 155 77.5 -text {University Stair} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 282 37 295 40 312 49 323 56 337 70 352 56 358 48 363 39 365 29 348 25 335 22 321 14 300 5 283 1 260 0 246 0 242 2 236 4 231 8 227 13 223 17 221 22 220 34 260 34 -fill {} -tags {floor1 room}] - set floorLabels($i) {Plaza Stair} - set {floorItems(Plaza Stair)} $i - $w create text 317.5 28.5 -text {Plaza Stair} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 220 34 260 34 282 37 295 40 312 49 323 56 337 70 350 83 365 94 377 100 386 104 386 128 220 128 -fill {} -tags {floor1 room}] - set floorLabels($i) {Plaza Deck} - set {floorItems(Plaza Deck)} $i - $w create text 303 81 -text {Plaza Deck} -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 257 336 77 336 6 336 6 301 77 301 77 310 257 310 -fill {} -tags {floor1 room}] - set floorLabels($i) 106 - set {floorItems(106)} $i - $w create text 131.5 318.5 -text 106 -fill $color -anchor c -tags {floor1 label} - set i [$w create polygon 146 110 162 110 162 91 130 91 130 115 95 115 95 128 114 128 114 151 157 151 157 153 112 153 112 130 97 130 97 168 175 168 175 131 146 131 -fill {} -tags {floor1 room}] - set floorLabels($i) 119 - set {floorItems(119)} $i - $w create text 143.5 133 -text 119 -fill $color -anchor c -tags {floor1 label} - $w create line 155 191 155 189 -fill $color -tags {floor1 wall} - $w create line 155 177 155 169 -fill $color -tags {floor1 wall} - $w create line 96 129 96 169 -fill $color -tags {floor1 wall} - $w create line 78 169 176 169 -fill $color -tags {floor1 wall} - $w create line 176 247 176 129 -fill $color -tags {floor1 wall} - $w create line 340 206 307 206 -fill $color -tags {floor1 wall} - $w create line 340 187 340 170 -fill $color -tags {floor1 wall} - $w create line 340 210 340 201 -fill $color -tags {floor1 wall} - $w create line 340 247 340 224 -fill $color -tags {floor1 wall} - $w create line 340 241 307 241 -fill $color -tags {floor1 wall} - $w create line 376 246 376 170 -fill $color -tags {floor1 wall} - $w create line 307 247 307 170 -fill $color -tags {floor1 wall} - $w create line 376 170 307 170 -fill $color -tags {floor1 wall} - $w create line 315 129 315 170 -fill $color -tags {floor1 wall} - $w create line 147 129 176 129 -fill $color -tags {floor1 wall} - $w create line 202 133 176 133 -fill $color -tags {floor1 wall} - $w create line 398 129 315 129 -fill $color -tags {floor1 wall} - $w create line 258 352 258 387 -fill $color -tags {floor1 wall} - $w create line 60 387 60 391 -fill $color -tags {floor1 wall} - $w create line 0 337 0 391 -fill $color -tags {floor1 wall} - $w create line 60 391 0 391 -fill $color -tags {floor1 wall} - $w create line 3 114 3 337 -fill $color -tags {floor1 wall} - $w create line 258 387 60 387 -fill $color -tags {floor1 wall} - $w create line 52 237 52 273 -fill $color -tags {floor1 wall} - $w create line 52 189 52 225 -fill $color -tags {floor1 wall} - $w create line 52 140 52 177 -fill $color -tags {floor1 wall} - $w create line 395 306 395 311 -fill $color -tags {floor1 wall} - $w create line 531 254 398 254 -fill $color -tags {floor1 wall} - $w create line 475 178 475 238 -fill $color -tags {floor1 wall} - $w create line 502 162 398 162 -fill $color -tags {floor1 wall} - $w create line 398 129 398 188 -fill $color -tags {floor1 wall} - $w create line 383 188 376 188 -fill $color -tags {floor1 wall} - $w create line 408 188 408 194 -fill $color -tags {floor1 wall} - $w create line 398 227 398 254 -fill $color -tags {floor1 wall} - $w create line 408 227 398 227 -fill $color -tags {floor1 wall} - $w create line 408 222 408 227 -fill $color -tags {floor1 wall} - $w create line 408 206 408 210 -fill $color -tags {floor1 wall} - $w create line 408 208 475 208 -fill $color -tags {floor1 wall} - $w create line 484 278 484 311 -fill $color -tags {floor1 wall} - $w create line 484 311 508 311 -fill $color -tags {floor1 wall} - $w create line 508 327 508 311 -fill $color -tags {floor1 wall} - $w create line 559 327 508 327 -fill $color -tags {floor1 wall} - $w create line 644 391 559 391 -fill $color -tags {floor1 wall} - $w create line 644 389 644 391 -fill $color -tags {floor1 wall} - $w create line 514 205 475 205 -fill $color -tags {floor1 wall} - $w create line 496 189 496 187 -fill $color -tags {floor1 wall} - $w create line 559 129 484 129 -fill $color -tags {floor1 wall} - $w create line 484 162 484 129 -fill $color -tags {floor1 wall} - $w create line 725 133 559 133 -fill $color -tags {floor1 wall} - $w create line 559 129 559 133 -fill $color -tags {floor1 wall} - $w create line 725 149 725 167 -fill $color -tags {floor1 wall} - $w create line 725 129 802 129 -fill $color -tags {floor1 wall} - $w create line 802 389 802 129 -fill $color -tags {floor1 wall} - $w create line 739 167 802 167 -fill $color -tags {floor1 wall} - $w create line 396 188 408 188 -fill $color -tags {floor1 wall} - $w create line 0 337 9 337 -fill $color -tags {floor1 wall} - $w create line 58 337 21 337 -fill $color -tags {floor1 wall} - $w create line 43 391 43 337 -fill $color -tags {floor1 wall} - $w create line 105 337 75 337 -fill $color -tags {floor1 wall} - $w create line 91 387 91 337 -fill $color -tags {floor1 wall} - $w create line 154 337 117 337 -fill $color -tags {floor1 wall} - $w create line 139 387 139 337 -fill $color -tags {floor1 wall} - $w create line 227 337 166 337 -fill $color -tags {floor1 wall} - $w create line 258 337 251 337 -fill $color -tags {floor1 wall} - $w create line 258 328 302 328 -fill $color -tags {floor1 wall} - $w create line 302 355 302 311 -fill $color -tags {floor1 wall} - $w create line 395 311 302 311 -fill $color -tags {floor1 wall} - $w create line 484 278 395 278 -fill $color -tags {floor1 wall} - $w create line 395 294 395 278 -fill $color -tags {floor1 wall} - $w create line 473 278 473 275 -fill $color -tags {floor1 wall} - $w create line 473 256 473 254 -fill $color -tags {floor1 wall} - $w create line 533 257 531 254 -fill $color -tags {floor1 wall} - $w create line 553 276 551 274 -fill $color -tags {floor1 wall} - $w create line 698 276 553 276 -fill $color -tags {floor1 wall} - $w create line 559 391 559 327 -fill $color -tags {floor1 wall} - $w create line 802 389 644 389 -fill $color -tags {floor1 wall} - $w create line 741 314 741 389 -fill $color -tags {floor1 wall} - $w create line 698 280 698 167 -fill $color -tags {floor1 wall} - $w create line 707 280 698 280 -fill $color -tags {floor1 wall} - $w create line 802 280 731 280 -fill $color -tags {floor1 wall} - $w create line 741 280 741 302 -fill $color -tags {floor1 wall} - $w create line 698 167 727 167 -fill $color -tags {floor1 wall} - $w create line 725 137 725 129 -fill $color -tags {floor1 wall} - $w create line 514 254 514 175 -fill $color -tags {floor1 wall} - $w create line 496 175 514 175 -fill $color -tags {floor1 wall} - $w create line 502 175 502 162 -fill $color -tags {floor1 wall} - $w create line 475 166 475 162 -fill $color -tags {floor1 wall} - $w create line 496 176 496 175 -fill $color -tags {floor1 wall} - $w create line 491 189 496 189 -fill $color -tags {floor1 wall} - $w create line 491 205 491 189 -fill $color -tags {floor1 wall} - $w create line 487 238 475 238 -fill $color -tags {floor1 wall} - $w create line 487 240 487 238 -fill $color -tags {floor1 wall} - $w create line 487 252 487 254 -fill $color -tags {floor1 wall} - $w create line 315 133 304 133 -fill $color -tags {floor1 wall} - $w create line 256 133 280 133 -fill $color -tags {floor1 wall} - $w create line 78 247 270 247 -fill $color -tags {floor1 wall} - $w create line 307 247 294 247 -fill $color -tags {floor1 wall} - $w create line 214 133 232 133 -fill $color -tags {floor1 wall} - $w create line 217 247 217 266 -fill $color -tags {floor1 wall} - $w create line 217 309 217 291 -fill $color -tags {floor1 wall} - $w create line 217 309 172 309 -fill $color -tags {floor1 wall} - $w create line 154 309 148 309 -fill $color -tags {floor1 wall} - $w create line 175 300 175 309 -fill $color -tags {floor1 wall} - $w create line 151 300 175 300 -fill $color -tags {floor1 wall} - $w create line 151 247 151 309 -fill $color -tags {floor1 wall} - $w create line 78 237 78 265 -fill $color -tags {floor1 wall} - $w create line 78 286 78 309 -fill $color -tags {floor1 wall} - $w create line 106 309 78 309 -fill $color -tags {floor1 wall} - $w create line 130 309 125 309 -fill $color -tags {floor1 wall} - $w create line 99 309 99 247 -fill $color -tags {floor1 wall} - $w create line 127 299 99 299 -fill $color -tags {floor1 wall} - $w create line 127 309 127 299 -fill $color -tags {floor1 wall} - $w create line 155 191 137 191 -fill $color -tags {floor1 wall} - $w create line 137 169 137 191 -fill $color -tags {floor1 wall} - $w create line 78 171 78 169 -fill $color -tags {floor1 wall} - $w create line 78 190 78 218 -fill $color -tags {floor1 wall} - $w create line 86 192 86 169 -fill $color -tags {floor1 wall} - $w create line 86 192 78 192 -fill $color -tags {floor1 wall} - $w create line 52 301 3 301 -fill $color -tags {floor1 wall} - $w create line 52 286 52 301 -fill $color -tags {floor1 wall} - $w create line 52 252 3 252 -fill $color -tags {floor1 wall} - $w create line 52 203 3 203 -fill $color -tags {floor1 wall} - $w create line 3 156 52 156 -fill $color -tags {floor1 wall} - $w create line 8 25 8 114 -fill $color -tags {floor1 wall} - $w create line 63 114 3 114 -fill $color -tags {floor1 wall} - $w create line 75 114 97 114 -fill $color -tags {floor1 wall} - $w create line 108 114 129 114 -fill $color -tags {floor1 wall} - $w create line 129 114 129 89 -fill $color -tags {floor1 wall} - $w create line 52 114 52 128 -fill $color -tags {floor1 wall} - $w create line 132 89 88 89 -fill $color -tags {floor1 wall} - $w create line 88 25 88 89 -fill $color -tags {floor1 wall} - $w create line 88 114 88 89 -fill $color -tags {floor1 wall} - $w create line 218 89 144 89 -fill $color -tags {floor1 wall} - $w create line 147 111 147 129 -fill $color -tags {floor1 wall} - $w create line 162 111 147 111 -fill $color -tags {floor1 wall} - $w create line 162 109 162 111 -fill $color -tags {floor1 wall} - $w create line 162 96 162 89 -fill $color -tags {floor1 wall} - $w create line 218 89 218 94 -fill $color -tags {floor1 wall} - $w create line 218 89 218 119 -fill $color -tags {floor1 wall} - $w create line 8 25 88 25 -fill $color -tags {floor1 wall} - $w create line 258 337 258 328 -fill $color -tags {floor1 wall} - $w create line 113 129 96 129 -fill $color -tags {floor1 wall} - $w create line 302 355 258 355 -fill $color -tags {floor1 wall} - $w create line 386 104 386 129 -fill $color -tags {floor1 wall} - $w create line 377 100 386 104 -fill $color -tags {floor1 wall} - $w create line 365 94 377 100 -fill $color -tags {floor1 wall} - $w create line 350 83 365 94 -fill $color -tags {floor1 wall} - $w create line 337 70 350 83 -fill $color -tags {floor1 wall} - $w create line 337 70 323 56 -fill $color -tags {floor1 wall} - $w create line 312 49 323 56 -fill $color -tags {floor1 wall} - $w create line 295 40 312 49 -fill $color -tags {floor1 wall} - $w create line 282 37 295 40 -fill $color -tags {floor1 wall} - $w create line 260 34 282 37 -fill $color -tags {floor1 wall} - $w create line 253 34 260 34 -fill $color -tags {floor1 wall} - $w create line 386 128 386 104 -fill $color -tags {floor1 wall} - $w create line 113 152 156 152 -fill $color -tags {floor1 wall} - $w create line 113 152 156 152 -fill $color -tags {floor1 wall} - $w create line 113 152 113 129 -fill $color -tags {floor1 wall} -} - -# fg2 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the foreground information for the second -# floor (office outlines and numbers). -# -# Arguments: -# w - The canvas window. -# color - Color to use for drawing foreground information. - -proc fg2 {w color} { - global floorLabels floorItems - set i [$w create polygon 748 188 755 188 755 205 758 205 758 222 800 222 800 168 748 168 -fill {} -tags {floor2 room}] - set floorLabels($i) 238 - set {floorItems(238)} $i - $w create text 774 195 -text 238 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 726 188 746 188 746 166 800 166 800 131 726 131 -fill {} -tags {floor2 room}] - set floorLabels($i) 237 - set {floorItems(237)} $i - $w create text 763 148.5 -text 237 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 497 187 497 204 559 204 559 324 641 324 643 324 643 291 641 291 641 205 696 205 696 291 694 291 694 314 715 314 715 291 715 205 755 205 755 190 724 190 724 187 -fill {} -tags {floor2 room}] - set floorLabels($i) 246 - set {floorItems(246)} $i - $w create text 600 264 -text 246 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 694 279 643 279 643 314 694 314 -fill {} -tags {floor2 room}] - set floorLabels($i) 247 - set {floorItems(247)} $i - $w create text 668.5 296.5 -text 247 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 232 250 308 250 308 242 339 242 339 246 397 246 397 255 476 255 476 250 482 250 559 250 559 274 482 274 482 278 396 278 396 274 232 274 -fill {} -tags {floor2 room}] - set floorLabels($i) 202 - set {floorItems(202)} $i - $w create text 285.5 260 -text 202 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 53 228 53 338 176 338 233 338 233 196 306 196 306 180 175 180 175 169 156 169 156 196 176 196 176 228 -fill {} -tags {floor2 room}] - set floorLabels($i) 206 - set {floorItems(206)} $i - $w create text 143 267 -text 206 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 51 277 6 277 6 338 51 338 -fill {} -tags {floor2 room}] - set floorLabels($i) 212 - set {floorItems(212)} $i - $w create text 28.5 307.5 -text 212 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 557 276 486 276 486 309 510 309 510 325 557 325 -fill {} -tags {floor2 room}] - set floorLabels($i) 245 - set {floorItems(245)} $i - $w create text 521.5 300.5 -text 245 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 560 389 599 389 599 326 560 326 -fill {} -tags {floor2 room}] - set floorLabels($i) 244 - set {floorItems(244)} $i - $w create text 579.5 357.5 -text 244 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 601 389 601 326 643 326 643 389 -fill {} -tags {floor2 room}] - set floorLabels($i) 243 - set {floorItems(243)} $i - $w create text 622 357.5 -text 243 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 688 316 645 316 645 365 688 365 -fill {} -tags {floor2 room}] - set floorLabels($i) 242 - set {floorItems(242)} $i - $w create text 666.5 340.5 -text 242 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 802 367 759 367 759 226 802 226 -fill {} -tags {floor2 room}] - set floorLabels($i) {Barbecue Deck} - set {floorItems(Barbecue Deck)} $i - $w create text 780.5 296.5 -text {Barbecue Deck} -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 755 262 755 314 717 314 717 262 -fill {} -tags {floor2 room}] - set floorLabels($i) 240 - set {floorItems(240)} $i - $w create text 736 288 -text 240 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 755 316 689 316 689 365 755 365 -fill {} -tags {floor2 room}] - set floorLabels($i) 241 - set {floorItems(241)} $i - $w create text 722 340.5 -text 241 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 755 206 717 206 717 261 755 261 -fill {} -tags {floor2 room}] - set floorLabels($i) 239 - set {floorItems(239)} $i - $w create text 736 233.5 -text 239 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 695 277 643 277 643 206 695 206 -fill {} -tags {floor2 room}] - set floorLabels($i) 248 - set {floorItems(248)} $i - $w create text 669 241.5 -text 248 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 676 135 676 185 724 185 724 135 -fill {} -tags {floor2 room}] - set floorLabels($i) 236 - set {floorItems(236)} $i - $w create text 700 160 -text 236 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 675 135 635 135 635 145 628 145 628 185 675 185 -fill {} -tags {floor2 room}] - set floorLabels($i) 235 - set {floorItems(235)} $i - $w create text 651.5 160 -text 235 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 626 143 633 143 633 135 572 135 572 143 579 143 579 185 626 185 -fill {} -tags {floor2 room}] - set floorLabels($i) 234 - set {floorItems(234)} $i - $w create text 606 160 -text 234 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 557 135 571 135 571 145 578 145 578 185 527 185 527 131 557 131 -fill {} -tags {floor2 room}] - set floorLabels($i) 233 - set {floorItems(233)} $i - $w create text 552.5 158 -text 233 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 476 249 557 249 557 205 476 205 -fill {} -tags {floor2 room}] - set floorLabels($i) 230 - set {floorItems(230)} $i - $w create text 516.5 227 -text 230 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 476 164 486 164 486 131 525 131 525 185 476 185 -fill {} -tags {floor2 room}] - set floorLabels($i) 232 - set {floorItems(232)} $i - $w create text 500.5 158 -text 232 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 476 186 495 186 495 204 476 204 -fill {} -tags {floor2 room}] - set floorLabels($i) 229 - set {floorItems(229)} $i - $w create text 485.5 195 -text 229 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 474 207 409 207 409 187 399 187 399 164 474 164 -fill {} -tags {floor2 room}] - set floorLabels($i) 227 - set {floorItems(227)} $i - $w create text 436.5 185.5 -text 227 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 399 228 399 253 474 253 474 209 409 209 409 228 -fill {} -tags {floor2 room}] - set floorLabels($i) 228 - set {floorItems(228)} $i - $w create text 436.5 231 -text 228 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 397 246 397 226 407 226 407 189 377 189 377 246 -fill {} -tags {floor2 room}] - set floorLabels($i) 226 - set {floorItems(226)} $i - $w create text 392 217.5 -text 226 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 377 169 316 169 316 131 397 131 397 188 377 188 -fill {} -tags {floor2 room}] - set floorLabels($i) 225 - set {floorItems(225)} $i - $w create text 356.5 150 -text 225 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 234 198 306 198 306 249 234 249 -fill {} -tags {floor2 room}] - set floorLabels($i) 224 - set {floorItems(224)} $i - $w create text 270 223.5 -text 224 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 270 179 306 179 306 170 314 170 314 135 270 135 -fill {} -tags {floor2 room}] - set floorLabels($i) 223 - set {floorItems(223)} $i - $w create text 292 157 -text 223 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 268 179 221 179 221 135 268 135 -fill {} -tags {floor2 room}] - set floorLabels($i) 222 - set {floorItems(222)} $i - $w create text 244.5 157 -text 222 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 177 179 219 179 219 135 177 135 -fill {} -tags {floor2 room}] - set floorLabels($i) 221 - set {floorItems(221)} $i - $w create text 198 157 -text 221 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 299 327 349 327 349 284 341 284 341 276 299 276 -fill {} -tags {floor2 room}] - set floorLabels($i) 204 - set {floorItems(204)} $i - $w create text 324 301.5 -text 204 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 234 276 297 276 297 327 257 327 257 338 234 338 -fill {} -tags {floor2 room}] - set floorLabels($i) 205 - set {floorItems(205)} $i - $w create text 265.5 307 -text 205 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 256 385 256 340 212 340 212 385 -fill {} -tags {floor2 room}] - set floorLabels($i) 207 - set {floorItems(207)} $i - $w create text 234 362.5 -text 207 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 210 340 164 340 164 385 210 385 -fill {} -tags {floor2 room}] - set floorLabels($i) 208 - set {floorItems(208)} $i - $w create text 187 362.5 -text 208 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 115 340 162 340 162 385 115 385 -fill {} -tags {floor2 room}] - set floorLabels($i) 209 - set {floorItems(209)} $i - $w create text 138.5 362.5 -text 209 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 89 228 89 156 53 156 53 228 -fill {} -tags {floor2 room}] - set floorLabels($i) 217 - set {floorItems(217)} $i - $w create text 71 192 -text 217 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 89 169 97 169 97 190 89 190 -fill {} -tags {floor2 room}] - set floorLabels($i) 217A - set {floorItems(217A)} $i - $w create text 93 179.5 -text 217A -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 89 156 89 168 95 168 95 135 53 135 53 156 -fill {} -tags {floor2 room}] - set floorLabels($i) 216 - set {floorItems(216)} $i - $w create text 71 145.5 -text 216 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 51 179 51 135 6 135 6 179 -fill {} -tags {floor2 room}] - set floorLabels($i) 215 - set {floorItems(215)} $i - $w create text 28.5 157 -text 215 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 51 227 6 227 6 180 51 180 -fill {} -tags {floor2 room}] - set floorLabels($i) 214 - set {floorItems(214)} $i - $w create text 28.5 203.5 -text 214 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 51 275 6 275 6 229 51 229 -fill {} -tags {floor2 room}] - set floorLabels($i) 213 - set {floorItems(213)} $i - $w create text 28.5 252 -text 213 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 114 340 67 340 67 385 114 385 -fill {} -tags {floor2 room}] - set floorLabels($i) 210 - set {floorItems(210)} $i - $w create text 90.5 362.5 -text 210 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 59 389 59 385 65 385 65 340 1 340 1 389 -fill {} -tags {floor2 room}] - set floorLabels($i) 211 - set {floorItems(211)} $i - $w create text 33 364.5 -text 211 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 393 309 350 309 350 282 342 282 342 276 393 276 -fill {} -tags {floor2 room}] - set floorLabels($i) 203 - set {floorItems(203)} $i - $w create text 367.5 292.5 -text 203 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 99 191 91 191 91 226 174 226 174 198 154 198 154 192 109 192 109 169 99 169 -fill {} -tags {floor2 room}] - set floorLabels($i) 220 - set {floorItems(220)} $i - $w create text 132.5 208.5 -text 220 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor2 room}] - set floorLabels($i) {Priv Lift2} - set {floorItems(Priv Lift2)} $i - $w create text 323 188 -text {Priv Lift2} -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor2 room}] - set floorLabels($i) {Pub Lift 2} - set {floorItems(Pub Lift 2)} $i - $w create text 323 223 -text {Pub Lift 2} -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -tags {floor2 room}] - set floorLabels($i) 218 - set {floorItems(218)} $i - $w create text 136 149.5 -text 218 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -tags {floor2 room}] - set floorLabels($i) 219 - set {floorItems(219)} $i - $w create text 132.5 180 -text 219 -fill $color -anchor c -tags {floor2 label} - set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor2 room}] - set floorLabels($i) 201 - set {floorItems(201)} $i - $w create text 358 209 -text 201 -fill $color -anchor c -tags {floor2 label} - $w create line 641 186 678 186 -fill $color -tags {floor2 wall} - $w create line 757 350 757 367 -fill $color -tags {floor2 wall} - $w create line 634 133 634 144 -fill $color -tags {floor2 wall} - $w create line 634 144 627 144 -fill $color -tags {floor2 wall} - $w create line 572 133 572 144 -fill $color -tags {floor2 wall} - $w create line 572 144 579 144 -fill $color -tags {floor2 wall} - $w create line 398 129 398 162 -fill $color -tags {floor2 wall} - $w create line 174 197 175 197 -fill $color -tags {floor2 wall} - $w create line 175 197 175 227 -fill $color -tags {floor2 wall} - $w create line 757 206 757 221 -fill $color -tags {floor2 wall} - $w create line 396 188 408 188 -fill $color -tags {floor2 wall} - $w create line 727 189 725 189 -fill $color -tags {floor2 wall} - $w create line 747 167 802 167 -fill $color -tags {floor2 wall} - $w create line 747 167 747 189 -fill $color -tags {floor2 wall} - $w create line 755 189 739 189 -fill $color -tags {floor2 wall} - $w create line 769 224 757 224 -fill $color -tags {floor2 wall} - $w create line 802 224 802 129 -fill $color -tags {floor2 wall} - $w create line 802 129 725 129 -fill $color -tags {floor2 wall} - $w create line 725 189 725 129 -fill $color -tags {floor2 wall} - $w create line 725 186 690 186 -fill $color -tags {floor2 wall} - $w create line 676 133 676 186 -fill $color -tags {floor2 wall} - $w create line 627 144 627 186 -fill $color -tags {floor2 wall} - $w create line 629 186 593 186 -fill $color -tags {floor2 wall} - $w create line 579 144 579 186 -fill $color -tags {floor2 wall} - $w create line 559 129 559 133 -fill $color -tags {floor2 wall} - $w create line 725 133 559 133 -fill $color -tags {floor2 wall} - $w create line 484 162 484 129 -fill $color -tags {floor2 wall} - $w create line 559 129 484 129 -fill $color -tags {floor2 wall} - $w create line 526 129 526 186 -fill $color -tags {floor2 wall} - $w create line 540 186 581 186 -fill $color -tags {floor2 wall} - $w create line 528 186 523 186 -fill $color -tags {floor2 wall} - $w create line 511 186 475 186 -fill $color -tags {floor2 wall} - $w create line 496 190 496 186 -fill $color -tags {floor2 wall} - $w create line 496 205 496 202 -fill $color -tags {floor2 wall} - $w create line 475 205 527 205 -fill $color -tags {floor2 wall} - $w create line 558 205 539 205 -fill $color -tags {floor2 wall} - $w create line 558 205 558 249 -fill $color -tags {floor2 wall} - $w create line 558 249 475 249 -fill $color -tags {floor2 wall} - $w create line 662 206 642 206 -fill $color -tags {floor2 wall} - $w create line 695 206 675 206 -fill $color -tags {floor2 wall} - $w create line 695 278 642 278 -fill $color -tags {floor2 wall} - $w create line 642 291 642 206 -fill $color -tags {floor2 wall} - $w create line 695 291 695 206 -fill $color -tags {floor2 wall} - $w create line 716 208 716 206 -fill $color -tags {floor2 wall} - $w create line 757 206 716 206 -fill $color -tags {floor2 wall} - $w create line 757 221 757 224 -fill $color -tags {floor2 wall} - $w create line 793 224 802 224 -fill $color -tags {floor2 wall} - $w create line 757 262 716 262 -fill $color -tags {floor2 wall} - $w create line 716 220 716 264 -fill $color -tags {floor2 wall} - $w create line 716 315 716 276 -fill $color -tags {floor2 wall} - $w create line 757 315 703 315 -fill $color -tags {floor2 wall} - $w create line 757 325 757 224 -fill $color -tags {floor2 wall} - $w create line 757 367 644 367 -fill $color -tags {floor2 wall} - $w create line 689 367 689 315 -fill $color -tags {floor2 wall} - $w create line 647 315 644 315 -fill $color -tags {floor2 wall} - $w create line 659 315 691 315 -fill $color -tags {floor2 wall} - $w create line 600 325 600 391 -fill $color -tags {floor2 wall} - $w create line 627 325 644 325 -fill $color -tags {floor2 wall} - $w create line 644 391 644 315 -fill $color -tags {floor2 wall} - $w create line 615 325 575 325 -fill $color -tags {floor2 wall} - $w create line 644 391 558 391 -fill $color -tags {floor2 wall} - $w create line 563 325 558 325 -fill $color -tags {floor2 wall} - $w create line 558 391 558 314 -fill $color -tags {floor2 wall} - $w create line 558 327 508 327 -fill $color -tags {floor2 wall} - $w create line 558 275 484 275 -fill $color -tags {floor2 wall} - $w create line 558 302 558 275 -fill $color -tags {floor2 wall} - $w create line 508 327 508 311 -fill $color -tags {floor2 wall} - $w create line 484 311 508 311 -fill $color -tags {floor2 wall} - $w create line 484 275 484 311 -fill $color -tags {floor2 wall} - $w create line 475 208 408 208 -fill $color -tags {floor2 wall} - $w create line 408 206 408 210 -fill $color -tags {floor2 wall} - $w create line 408 222 408 227 -fill $color -tags {floor2 wall} - $w create line 408 227 398 227 -fill $color -tags {floor2 wall} - $w create line 398 227 398 254 -fill $color -tags {floor2 wall} - $w create line 408 188 408 194 -fill $color -tags {floor2 wall} - $w create line 383 188 376 188 -fill $color -tags {floor2 wall} - $w create line 398 188 398 162 -fill $color -tags {floor2 wall} - $w create line 398 162 484 162 -fill $color -tags {floor2 wall} - $w create line 475 162 475 254 -fill $color -tags {floor2 wall} - $w create line 398 254 475 254 -fill $color -tags {floor2 wall} - $w create line 484 280 395 280 -fill $color -tags {floor2 wall} - $w create line 395 311 395 275 -fill $color -tags {floor2 wall} - $w create line 307 197 293 197 -fill $color -tags {floor2 wall} - $w create line 278 197 233 197 -fill $color -tags {floor2 wall} - $w create line 233 197 233 249 -fill $color -tags {floor2 wall} - $w create line 307 179 284 179 -fill $color -tags {floor2 wall} - $w create line 233 249 278 249 -fill $color -tags {floor2 wall} - $w create line 269 179 269 133 -fill $color -tags {floor2 wall} - $w create line 220 179 220 133 -fill $color -tags {floor2 wall} - $w create line 155 191 110 191 -fill $color -tags {floor2 wall} - $w create line 90 190 98 190 -fill $color -tags {floor2 wall} - $w create line 98 169 98 190 -fill $color -tags {floor2 wall} - $w create line 52 133 52 165 -fill $color -tags {floor2 wall} - $w create line 52 214 52 177 -fill $color -tags {floor2 wall} - $w create line 52 226 52 262 -fill $color -tags {floor2 wall} - $w create line 52 274 52 276 -fill $color -tags {floor2 wall} - $w create line 234 275 234 339 -fill $color -tags {floor2 wall} - $w create line 226 339 258 339 -fill $color -tags {floor2 wall} - $w create line 211 387 211 339 -fill $color -tags {floor2 wall} - $w create line 214 339 177 339 -fill $color -tags {floor2 wall} - $w create line 258 387 60 387 -fill $color -tags {floor2 wall} - $w create line 3 133 3 339 -fill $color -tags {floor2 wall} - $w create line 165 339 129 339 -fill $color -tags {floor2 wall} - $w create line 117 339 80 339 -fill $color -tags {floor2 wall} - $w create line 68 339 59 339 -fill $color -tags {floor2 wall} - $w create line 0 339 46 339 -fill $color -tags {floor2 wall} - $w create line 60 391 0 391 -fill $color -tags {floor2 wall} - $w create line 0 339 0 391 -fill $color -tags {floor2 wall} - $w create line 60 387 60 391 -fill $color -tags {floor2 wall} - $w create line 258 329 258 387 -fill $color -tags {floor2 wall} - $w create line 350 329 258 329 -fill $color -tags {floor2 wall} - $w create line 395 311 350 311 -fill $color -tags {floor2 wall} - $w create line 398 129 315 129 -fill $color -tags {floor2 wall} - $w create line 176 133 315 133 -fill $color -tags {floor2 wall} - $w create line 176 129 96 129 -fill $color -tags {floor2 wall} - $w create line 3 133 96 133 -fill $color -tags {floor2 wall} - $w create line 66 387 66 339 -fill $color -tags {floor2 wall} - $w create line 115 387 115 339 -fill $color -tags {floor2 wall} - $w create line 163 387 163 339 -fill $color -tags {floor2 wall} - $w create line 234 275 276 275 -fill $color -tags {floor2 wall} - $w create line 288 275 309 275 -fill $color -tags {floor2 wall} - $w create line 298 275 298 329 -fill $color -tags {floor2 wall} - $w create line 341 283 350 283 -fill $color -tags {floor2 wall} - $w create line 321 275 341 275 -fill $color -tags {floor2 wall} - $w create line 375 275 395 275 -fill $color -tags {floor2 wall} - $w create line 315 129 315 170 -fill $color -tags {floor2 wall} - $w create line 376 170 307 170 -fill $color -tags {floor2 wall} - $w create line 307 250 307 170 -fill $color -tags {floor2 wall} - $w create line 376 245 376 170 -fill $color -tags {floor2 wall} - $w create line 340 241 307 241 -fill $color -tags {floor2 wall} - $w create line 340 245 340 224 -fill $color -tags {floor2 wall} - $w create line 340 210 340 201 -fill $color -tags {floor2 wall} - $w create line 340 187 340 170 -fill $color -tags {floor2 wall} - $w create line 340 206 307 206 -fill $color -tags {floor2 wall} - $w create line 293 250 307 250 -fill $color -tags {floor2 wall} - $w create line 271 179 238 179 -fill $color -tags {floor2 wall} - $w create line 226 179 195 179 -fill $color -tags {floor2 wall} - $w create line 176 129 176 179 -fill $color -tags {floor2 wall} - $w create line 182 179 176 179 -fill $color -tags {floor2 wall} - $w create line 174 169 176 169 -fill $color -tags {floor2 wall} - $w create line 162 169 90 169 -fill $color -tags {floor2 wall} - $w create line 96 169 96 129 -fill $color -tags {floor2 wall} - $w create line 175 227 90 227 -fill $color -tags {floor2 wall} - $w create line 90 190 90 227 -fill $color -tags {floor2 wall} - $w create line 52 179 3 179 -fill $color -tags {floor2 wall} - $w create line 52 228 3 228 -fill $color -tags {floor2 wall} - $w create line 52 276 3 276 -fill $color -tags {floor2 wall} - $w create line 155 177 155 169 -fill $color -tags {floor2 wall} - $w create line 110 191 110 169 -fill $color -tags {floor2 wall} - $w create line 155 189 155 197 -fill $color -tags {floor2 wall} - $w create line 350 283 350 329 -fill $color -tags {floor2 wall} - $w create line 162 197 155 197 -fill $color -tags {floor2 wall} - $w create line 341 275 341 283 -fill $color -tags {floor2 wall} -} - -# fg3 -- -# This procedure represents part of the floorplan database. When -# invoked, it instantiates the foreground information for the third -# floor (office outlines and numbers). -# -# Arguments: -# w - The canvas window. -# color - Color to use for drawing foreground information. - -proc fg3 {w color} { - global floorLabels floorItems - set i [$w create polygon 89 228 89 180 70 180 70 228 -fill {} -tags {floor3 room}] - set floorLabels($i) 316 - set {floorItems(316)} $i - $w create text 79.5 204 -text 316 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 115 368 162 368 162 323 115 323 -fill {} -tags {floor3 room}] - set floorLabels($i) 309 - set {floorItems(309)} $i - $w create text 138.5 345.5 -text 309 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 164 323 164 368 211 368 211 323 -fill {} -tags {floor3 room}] - set floorLabels($i) 308 - set {floorItems(308)} $i - $w create text 187.5 345.5 -text 308 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 256 368 212 368 212 323 256 323 -fill {} -tags {floor3 room}] - set floorLabels($i) 307 - set {floorItems(307)} $i - $w create text 234 345.5 -text 307 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 244 276 297 276 297 327 260 327 260 321 244 321 -fill {} -tags {floor3 room}] - set floorLabels($i) 305 - set {floorItems(305)} $i - $w create text 270.5 301.5 -text 305 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 251 219 251 203 244 203 244 219 -fill {} -tags {floor3 room}] - set floorLabels($i) 324B - set {floorItems(324B)} $i - $w create text 247.5 211 -text 324B -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 251 249 244 249 244 232 251 232 -fill {} -tags {floor3 room}] - set floorLabels($i) 324A - set {floorItems(324A)} $i - $w create text 247.5 240.5 -text 324A -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 223 135 223 179 177 179 177 135 -fill {} -tags {floor3 room}] - set floorLabels($i) 320 - set {floorItems(320)} $i - $w create text 200 157 -text 320 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 114 368 114 323 67 323 67 368 -fill {} -tags {floor3 room}] - set floorLabels($i) 310 - set {floorItems(310)} $i - $w create text 90.5 345.5 -text 310 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 23 277 23 321 68 321 68 277 -fill {} -tags {floor3 room}] - set floorLabels($i) 312 - set {floorItems(312)} $i - $w create text 45.5 299 -text 312 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 23 229 68 229 68 275 23 275 -fill {} -tags {floor3 room}] - set floorLabels($i) 313 - set {floorItems(313)} $i - $w create text 45.5 252 -text 313 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 68 227 23 227 23 180 68 180 -fill {} -tags {floor3 room}] - set floorLabels($i) 314 - set {floorItems(314)} $i - $w create text 45.5 203.5 -text 314 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 95 179 95 135 23 135 23 179 -fill {} -tags {floor3 room}] - set floorLabels($i) 315 - set {floorItems(315)} $i - $w create text 59 157 -text 315 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 99 226 99 204 91 204 91 226 -fill {} -tags {floor3 room}] - set floorLabels($i) 316B - set {floorItems(316B)} $i - $w create text 95 215 -text 316B -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 91 202 99 202 99 180 91 180 -fill {} -tags {floor3 room}] - set floorLabels($i) 316A - set {floorItems(316A)} $i - $w create text 95 191 -text 316A -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 97 169 109 169 109 192 154 192 154 198 174 198 174 226 101 226 101 179 97 179 -fill {} -tags {floor3 room}] - set floorLabels($i) 319 - set {floorItems(319)} $i - $w create text 141.5 209 -text 319 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 65 368 58 368 58 389 1 389 1 333 23 333 23 323 65 323 -fill {} -tags {floor3 room}] - set floorLabels($i) 311 - set {floorItems(311)} $i - $w create text 29.5 361 -text 311 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -tags {floor3 room}] - set floorLabels($i) 318 - set {floorItems(318)} $i - $w create text 132.5 180 -text 318 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -tags {floor3 room}] - set floorLabels($i) 317 - set {floorItems(317)} $i - $w create text 136 149.5 -text 317 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 274 194 274 221 306 221 306 194 -fill {} -tags {floor3 room}] - set floorLabels($i) 323 - set {floorItems(323)} $i - $w create text 290 207.5 -text 323 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 306 222 274 222 274 249 306 249 -fill {} -tags {floor3 room}] - set floorLabels($i) 325 - set {floorItems(325)} $i - $w create text 290 235.5 -text 325 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 263 179 224 179 224 135 263 135 -fill {} -tags {floor3 room}] - set floorLabels($i) 321 - set {floorItems(321)} $i - $w create text 243.5 157 -text 321 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 314 169 306 169 306 192 273 192 264 181 264 135 314 135 -fill {} -tags {floor3 room}] - set floorLabels($i) 322 - set {floorItems(322)} $i - $w create text 293.5 163.5 -text 322 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor3 room}] - set floorLabels($i) {Pub Lift3} - set {floorItems(Pub Lift3)} $i - $w create text 323 223 -text {Pub Lift3} -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor3 room}] - set floorLabels($i) {Priv Lift3} - set {floorItems(Priv Lift3)} $i - $w create text 323 188 -text {Priv Lift3} -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 350 284 376 284 376 276 397 276 397 309 350 309 -fill {} -tags {floor3 room}] - set floorLabels($i) 303 - set {floorItems(303)} $i - $w create text 373.5 292.5 -text 303 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 272 203 272 249 252 249 252 230 244 230 244 221 252 221 252 203 -fill {} -tags {floor3 room}] - set floorLabels($i) 324 - set {floorItems(324)} $i - $w create text 262 226 -text 324 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 299 276 299 327 349 327 349 284 341 284 341 276 -fill {} -tags {floor3 room}] - set floorLabels($i) 304 - set {floorItems(304)} $i - $w create text 324 301.5 -text 304 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor3 room}] - set floorLabels($i) 301 - set {floorItems(301)} $i - $w create text 358 209 -text 301 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 397 246 377 246 377 185 397 185 -fill {} -tags {floor3 room}] - set floorLabels($i) 327 - set {floorItems(327)} $i - $w create text 387 215.5 -text 327 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 316 131 316 169 377 169 377 185 397 185 397 131 -fill {} -tags {floor3 room}] - set floorLabels($i) 326 - set {floorItems(326)} $i - $w create text 356.5 150 -text 326 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 308 251 242 251 242 274 342 274 342 282 375 282 375 274 397 274 397 248 339 248 339 242 308 242 -fill {} -tags {floor3 room}] - set floorLabels($i) 302 - set {floorItems(302)} $i - $w create text 319.5 261 -text 302 -fill $color -anchor c -tags {floor3 label} - set i [$w create polygon 70 321 242 321 242 200 259 200 259 203 272 203 272 193 263 180 242 180 175 180 175 169 156 169 156 196 177 196 177 228 107 228 70 228 70 275 107 275 107 248 160 248 160 301 107 301 107 275 70 275 -fill {} -tags {floor3 room}] - set floorLabels($i) 306 - set {floorItems(306)} $i - $w create text 200.5 284.5 -text 306 -fill $color -anchor c -tags {floor3 label} - $w create line 341 275 341 283 -fill $color -tags {floor3 wall} - $w create line 162 197 155 197 -fill $color -tags {floor3 wall} - $w create line 396 247 399 247 -fill $color -tags {floor3 wall} - $w create line 399 129 399 311 -fill $color -tags {floor3 wall} - $w create line 258 202 243 202 -fill $color -tags {floor3 wall} - $w create line 350 283 350 329 -fill $color -tags {floor3 wall} - $w create line 251 231 243 231 -fill $color -tags {floor3 wall} - $w create line 243 220 251 220 -fill $color -tags {floor3 wall} - $w create line 243 250 243 202 -fill $color -tags {floor3 wall} - $w create line 155 197 155 190 -fill $color -tags {floor3 wall} - $w create line 110 192 110 169 -fill $color -tags {floor3 wall} - $w create line 155 192 110 192 -fill $color -tags {floor3 wall} - $w create line 155 177 155 169 -fill $color -tags {floor3 wall} - $w create line 176 197 176 227 -fill $color -tags {floor3 wall} - $w create line 69 280 69 274 -fill $color -tags {floor3 wall} - $w create line 21 276 69 276 -fill $color -tags {floor3 wall} - $w create line 69 262 69 226 -fill $color -tags {floor3 wall} - $w create line 21 228 69 228 -fill $color -tags {floor3 wall} - $w create line 21 179 75 179 -fill $color -tags {floor3 wall} - $w create line 69 179 69 214 -fill $color -tags {floor3 wall} - $w create line 90 220 90 227 -fill $color -tags {floor3 wall} - $w create line 90 204 90 202 -fill $color -tags {floor3 wall} - $w create line 90 203 100 203 -fill $color -tags {floor3 wall} - $w create line 90 187 90 179 -fill $color -tags {floor3 wall} - $w create line 90 227 176 227 -fill $color -tags {floor3 wall} - $w create line 100 179 100 227 -fill $color -tags {floor3 wall} - $w create line 100 179 87 179 -fill $color -tags {floor3 wall} - $w create line 96 179 96 129 -fill $color -tags {floor3 wall} - $w create line 162 169 96 169 -fill $color -tags {floor3 wall} - $w create line 173 169 176 169 -fill $color -tags {floor3 wall} - $w create line 182 179 176 179 -fill $color -tags {floor3 wall} - $w create line 176 129 176 179 -fill $color -tags {floor3 wall} - $w create line 195 179 226 179 -fill $color -tags {floor3 wall} - $w create line 224 133 224 179 -fill $color -tags {floor3 wall} - $w create line 264 179 264 133 -fill $color -tags {floor3 wall} - $w create line 238 179 264 179 -fill $color -tags {floor3 wall} - $w create line 273 207 273 193 -fill $color -tags {floor3 wall} - $w create line 273 235 273 250 -fill $color -tags {floor3 wall} - $w create line 273 224 273 219 -fill $color -tags {floor3 wall} - $w create line 273 193 307 193 -fill $color -tags {floor3 wall} - $w create line 273 222 307 222 -fill $color -tags {floor3 wall} - $w create line 273 250 307 250 -fill $color -tags {floor3 wall} - $w create line 384 247 376 247 -fill $color -tags {floor3 wall} - $w create line 340 206 307 206 -fill $color -tags {floor3 wall} - $w create line 340 187 340 170 -fill $color -tags {floor3 wall} - $w create line 340 210 340 201 -fill $color -tags {floor3 wall} - $w create line 340 247 340 224 -fill $color -tags {floor3 wall} - $w create line 340 241 307 241 -fill $color -tags {floor3 wall} - $w create line 376 247 376 170 -fill $color -tags {floor3 wall} - $w create line 307 250 307 170 -fill $color -tags {floor3 wall} - $w create line 376 170 307 170 -fill $color -tags {floor3 wall} - $w create line 315 129 315 170 -fill $color -tags {floor3 wall} - $w create line 376 283 366 283 -fill $color -tags {floor3 wall} - $w create line 376 283 376 275 -fill $color -tags {floor3 wall} - $w create line 399 275 376 275 -fill $color -tags {floor3 wall} - $w create line 341 275 320 275 -fill $color -tags {floor3 wall} - $w create line 341 283 350 283 -fill $color -tags {floor3 wall} - $w create line 298 275 298 329 -fill $color -tags {floor3 wall} - $w create line 308 275 298 275 -fill $color -tags {floor3 wall} - $w create line 243 322 243 275 -fill $color -tags {floor3 wall} - $w create line 243 275 284 275 -fill $color -tags {floor3 wall} - $w create line 258 322 226 322 -fill $color -tags {floor3 wall} - $w create line 212 370 212 322 -fill $color -tags {floor3 wall} - $w create line 214 322 177 322 -fill $color -tags {floor3 wall} - $w create line 163 370 163 322 -fill $color -tags {floor3 wall} - $w create line 165 322 129 322 -fill $color -tags {floor3 wall} - $w create line 84 322 117 322 -fill $color -tags {floor3 wall} - $w create line 71 322 64 322 -fill $color -tags {floor3 wall} - $w create line 115 322 115 370 -fill $color -tags {floor3 wall} - $w create line 66 322 66 370 -fill $color -tags {floor3 wall} - $w create line 52 322 21 322 -fill $color -tags {floor3 wall} - $w create line 21 331 0 331 -fill $color -tags {floor3 wall} - $w create line 21 331 21 133 -fill $color -tags {floor3 wall} - $w create line 96 133 21 133 -fill $color -tags {floor3 wall} - $w create line 176 129 96 129 -fill $color -tags {floor3 wall} - $w create line 315 133 176 133 -fill $color -tags {floor3 wall} - $w create line 315 129 399 129 -fill $color -tags {floor3 wall} - $w create line 399 311 350 311 -fill $color -tags {floor3 wall} - $w create line 350 329 258 329 -fill $color -tags {floor3 wall} - $w create line 258 322 258 370 -fill $color -tags {floor3 wall} - $w create line 60 370 258 370 -fill $color -tags {floor3 wall} - $w create line 60 370 60 391 -fill $color -tags {floor3 wall} - $w create line 0 391 0 331 -fill $color -tags {floor3 wall} - $w create line 60 391 0 391 -fill $color -tags {floor3 wall} - $w create line 307 250 307 242 -fill $color -tags {floor3 wall} - $w create line 273 250 307 250 -fill $color -tags {floor3 wall} - $w create line 258 250 243 250 -fill $color -tags {floor3 wall} -} - -# Below is the "main program" that creates the floorplan demonstration. - -set w .floor -global c tk_library currentRoom colors activeFloor -catch {destroy $w} -toplevel $w -wm title $w "Floorplan Canvas Demonstration" -wm iconname $w "Floorplan" -wm geometry $w +20+20 -wm minsize $w 100 100 - -label $w.msg -font $font -wraplength 8i -justify left -text "This window contains a canvas widget showing the floorplan of Digital Equipment Corporation's Western Research Laboratory. It has three levels. At any given time one of the levels is active, meaning that you can see its room structure. To activate a level, click the left mouse button anywhere on it. As the mouse moves over the active level, the room under the mouse lights up and its room number appears in the \"Room:\" entry. You can also type a room number in the entry and the room will light up." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -set f [frame $w.frame] -pack $f -side top -fill both -expand yes -set h [scrollbar $f.hscroll -highlightthickness 0 -orient horizontal] -set v [scrollbar $f.vscroll -highlightthickness 0 -orient vertical] -set f1 [frame $f.f1 -bd 2 -relief sunken] -set c [canvas $f1.c -width 900 -height 500 -borderwidth 0 \ - -highlightthickness 0 -xscrollcommand "$h set" -yscrollcommand "$v set"] -pack $c -expand yes -fill both -grid $f1 -padx 1 -pady 1 \ - -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid $v -padx 1 -pady 1 \ - -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news -grid $h -padx 1 -pady 1 \ - -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid rowconfig $f 0 -weight 1 -minsize 0 -grid columnconfig $f 0 -weight 1 -minsize 0 -pack $f -expand yes -fill both -padx 1 -pady 1 - -$v config -command "$c yview" -$h config -command "$c xview" - -# Create an entry for displaying and typing in current room. - -entry $c.entry -width 10 -relief sunken -bd 2 -textvariable currentRoom - -# Choose colors, then fill in the floorplan. - -if {[winfo depth $c] > 1} { - set colors(bg1) #a9c1da - set colors(outline1) #77889a - set colors(bg2) #9ab0c6 - set colors(outline2) #687786 - set colors(bg3) #8ba0b3 - set colors(outline3) #596673 - set colors(offices) Black - set colors(active) #c4d1df -} else { - set colors(bg1) white - set colors(outline1) black - set colors(bg2) white - set colors(outline2) black - set colors(bg3) white - set colors(outline3) black - set colors(offices) Black - set colors(active) black -} -set activeFloor "" -floorDisplay $c 3 - -# Set up event bindings for canvas: - -$c bind floor1 <1> "floorDisplay $c 1" -$c bind floor2 <1> "floorDisplay $c 2" -$c bind floor3 <1> "floorDisplay $c 3" -$c bind room "newRoom $c" -$c bind room {set currentRoom ""} -bind $c <2> "$c scan mark %x %y" -bind $c "$c scan dragto %x %y" -bind $c "unset currentRoom" -set currentRoom "" -trace variable currentRoom w "roomChanged $c" diff --git a/mingw/lib/tk8.4/demos/form.tcl b/mingw/lib/tk8.4/demos/form.tcl deleted file mode 100644 index a6d5062d..00000000 --- a/mingw/lib/tk8.4/demos/form.tcl +++ /dev/null @@ -1,40 +0,0 @@ -# form.tcl -- -# -# This demonstration script creates a simple form with a bunch -# of entry widgets. -# -# RCS: @(#) $Id: form.tcl,v 1.2 1998/09/14 18:23:28 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .form -catch {destroy $w} -toplevel $w -wm title $w "Form Demonstration" -wm iconname $w "form" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "This window contains a simple form where you can type in the various entries and use tabs to move circularly between the entries." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -foreach i {f1 f2 f3 f4 f5} { - frame $w.$i -bd 2 - entry $w.$i.entry -relief sunken -width 40 - label $w.$i.label - pack $w.$i.entry -side right - pack $w.$i.label -side left -} -$w.f1.label config -text Name: -$w.f2.label config -text Address: -$w.f5.label config -text Phone: -pack $w.msg $w.f1 $w.f2 $w.f3 $w.f4 $w.f5 -side top -fill x -bind $w "destroy $w" -focus $w.f1.entry diff --git a/mingw/lib/tk8.4/demos/hello b/mingw/lib/tk8.4/demos/hello deleted file mode 100644 index ac5cdff6..00000000 --- a/mingw/lib/tk8.4/demos/hello +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# hello -- -# Simple Tk script to create a button that prints "Hello, world". -# Click on the button to terminate the program. -# -# RCS: @(#) $Id: hello,v 1.3 2001/10/29 16:42:20 dkf Exp $ -# -# The first line below creates the button, and the second line -# asks the packer to shrink-wrap the application's main window -# around the button. - -button .hello -text "Hello, world" -command { - puts stdout "Hello, world"; destroy . -} -pack .hello - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/hscale.tcl b/mingw/lib/tk8.4/demos/hscale.tcl deleted file mode 100644 index a9b37610..00000000 --- a/mingw/lib/tk8.4/demos/hscale.tcl +++ /dev/null @@ -1,47 +0,0 @@ -# hscale.tcl -- -# -# This demonstration script shows an example with a horizontal scale. -# -# RCS: @(#) $Id: hscale.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .hscale -catch {destroy $w} -toplevel $w -wm title $w "Horizontal Scale Demonstration" -wm iconname $w "hscale" -positionWindow $w - -label $w.msg -font $font -wraplength 3.5i -justify left -text "An arrow and a horizontal scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the length of the arrow." -pack $w.msg -side top -padx .5c - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth 10 -pack $w.frame -side top -fill x - -canvas $w.frame.canvas -width 50 -height 50 -bd 0 -highlightthickness 0 -$w.frame.canvas create polygon 0 0 1 1 2 2 -fill DeepSkyBlue3 -tags poly -$w.frame.canvas create line 0 0 1 1 2 2 0 0 -fill black -tags line -scale $w.frame.scale -orient horizontal -length 284 -from 0 -to 250 \ - -command "setWidth $w.frame.canvas" -tickinterval 50 -pack $w.frame.canvas -side top -expand yes -anchor s -fill x -padx 15 -pack $w.frame.scale -side bottom -expand yes -anchor n -$w.frame.scale set 75 - -proc setWidth {w width} { - incr width 21 - set x2 [expr {$width - 30}] - if {$x2 < 21} { - set x2 21 - } - $w coords poly 20 15 20 35 $x2 35 $x2 45 $width 25 $x2 5 $x2 15 20 15 - $w coords line 20 15 20 35 $x2 35 $x2 45 $width 25 $x2 5 $x2 15 20 15 -} diff --git a/mingw/lib/tk8.4/demos/icon.tcl b/mingw/lib/tk8.4/demos/icon.tcl deleted file mode 100644 index 6a561c40..00000000 --- a/mingw/lib/tk8.4/demos/icon.tcl +++ /dev/null @@ -1,52 +0,0 @@ -# icon.tcl -- -# -# This demonstration script creates a toplevel window containing -# buttons that display bitmaps instead of text. -# -# RCS: @(#) $Id: icon.tcl,v 1.2 1998/09/14 18:23:28 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .icon -catch {destroy $w} -toplevel $w -wm title $w "Iconic Button Demonstration" -wm iconname $w "icon" -positionWindow $w - -label $w.msg -font $font -wraplength 5i -justify left -text "This window shows three ways of using bitmaps or images in radiobuttons and checkbuttons. On the left are two radiobuttons, each of which displays a bitmap and an indicator. In the middle is a checkbutton that displays a different image depending on whether it is selected or not. On the right is a checkbutton that displays a single bitmap but changes its background color to indicate whether or not it is selected." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -image create bitmap flagup \ - -file [file join $tk_library demos images flagup.bmp] \ - -maskfile [file join $tk_library demos images flagup.bmp] -image create bitmap flagdown \ - -file [file join $tk_library demos images flagdown.bmp] \ - -maskfile [file join $tk_library demos images flagdown.bmp] -frame $w.frame -borderwidth 10 -pack $w.frame -side top - -checkbutton $w.frame.b1 -image flagdown -selectimage flagup \ - -indicatoron 0 -$w.frame.b1 configure -selectcolor [$w.frame.b1 cget -background] -checkbutton $w.frame.b2 \ - -bitmap @[file join $tk_library demos images letters.bmp] \ - -indicatoron 0 -selectcolor SeaGreen1 -frame $w.frame.left -pack $w.frame.left $w.frame.b1 $w.frame.b2 -side left -expand yes -padx 5m - -radiobutton $w.frame.left.b3 \ - -bitmap @[file join $tk_library demos images letters.bmp] \ - -variable letters -value full -radiobutton $w.frame.left.b4 \ - -bitmap @[file join $tk_library demos images noletter.bmp] \ - -variable letters -value empty -pack $w.frame.left.b3 $w.frame.left.b4 -side top -expand yes diff --git a/mingw/lib/tk8.4/demos/image1.tcl b/mingw/lib/tk8.4/demos/image1.tcl deleted file mode 100644 index 06da5a8d..00000000 --- a/mingw/lib/tk8.4/demos/image1.tcl +++ /dev/null @@ -1,36 +0,0 @@ -# image1.tcl -- -# -# This demonstration script displays two image widgets. -# -# RCS: @(#) $Id: image1.tcl,v 1.2 1998/09/14 18:23:28 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .image1 -catch {destroy $w} -toplevel $w -wm title $w "Image Demonstration #1" -wm iconname $w "Image1" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration displays two images, each in a separate label widget." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -catch {image delete image1a} -image create photo image1a -file [file join $tk_library demos images earth.gif] -label $w.l1 -image image1a -bd 1 -relief sunken - -catch {image delete image1b} -image create photo image1b \ - -file [file join $tk_library demos images earthris.gif] -label $w.l2 -image image1b -bd 1 -relief sunken - -pack $w.l1 $w.l2 -side top -padx .5m -pady .5m diff --git a/mingw/lib/tk8.4/demos/image2.tcl b/mingw/lib/tk8.4/demos/image2.tcl deleted file mode 100644 index 9328e8a2..00000000 --- a/mingw/lib/tk8.4/demos/image2.tcl +++ /dev/null @@ -1,104 +0,0 @@ -# image2.tcl -- -# -# This demonstration script creates a simple collection of widgets -# that allow you to select and view images in a Tk label. -# -# RCS: @(#) $Id: image2.tcl,v 1.6 2002/08/12 13:38:48 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# loadDir -- -# This procedure reloads the directory listbox from the directory -# named in the demo's entry. -# -# Arguments: -# w - Name of the toplevel window of the demo. - -proc loadDir w { - global dirName - - $w.f.list delete 0 end - foreach i [lsort [glob -directory $dirName *]] { - $w.f.list insert end [file tail $i] - } -} - -# selectAndLoadDir -- -# This procedure pops up a dialog to ask for a directory to load into -# the listobx and (if the user presses OK) reloads the directory -# listbox from the directory named in the demo's entry. -# -# Arguments: -# w - Name of the toplevel window of the demo. - -proc selectAndLoadDir w { - global dirName - set dir [tk_chooseDirectory -initialdir $dirName -parent $w -mustexist 1] - if {[string length $dir] != 0} { - set dirName $dir - loadDir $w - } -} - -# loadImage -- -# Given the name of the toplevel window of the demo and the mouse -# position, extracts the directory entry under the mouse and loads -# that file into a photo image for display. -# -# Arguments: -# w - Name of the toplevel window of the demo. -# x, y- Mouse position within the listbox. - -proc loadImage {w x y} { - global dirName - - set file [file join $dirName [$w.f.list get @$x,$y]] - image2a configure -file $file -} - -set w .image2 -catch {destroy $w} -toplevel $w -wm title $w "Image Demonstration #2" -wm iconname $w "Image2" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration allows you to view images using a Tk \"photo\" image. First type a directory name in the listbox, then type Return to load the directory into the listbox. Then double-click on a file name in the listbox to see that image." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.mid -pack $w.mid -fill both -expand 1 - -labelframe $w.dir -text "Directory:" -set dirName [file join $tk_library demos images] -entry $w.dir.e -width 30 -textvariable dirName -button $w.dir.b -pady 0 -padx 2m -text "Select Dir." \ - -command "selectAndLoadDir $w" -bind $w.dir.e "loadDir $w" -pack $w.dir.e -side left -fill both -padx 2m -pady 2m -expand true -pack $w.dir.b -side left -fill y -padx {0 2m} -pady 2m -labelframe $w.f -text "File:" -padx 2m -pady 2m - -listbox $w.f.list -width 20 -height 10 -yscrollcommand "$w.f.scroll set" -scrollbar $w.f.scroll -command "$w.f.list yview" -pack $w.f.list $w.f.scroll -side left -fill y -expand 1 -$w.f.list insert 0 earth.gif earthris.gif teapot.ppm -bind $w.f.list "loadImage $w %x %y" - -catch {image delete image2a} -image create photo image2a -labelframe $w.image -text "Image:" -label $w.image.image -image image2a -pack $w.image.image -padx 2m -pady 2m - -grid $w.dir - -sticky ew -padx 1m -pady 1m -in $w.mid -grid $w.f $w.image -sticky nw -padx 1m -pady 1m -in $w.mid -grid columnconfigure $w.mid 1 -weight 1 diff --git a/mingw/lib/tk8.4/demos/items.tcl b/mingw/lib/tk8.4/demos/items.tcl deleted file mode 100644 index 91ea32ac..00000000 --- a/mingw/lib/tk8.4/demos/items.tcl +++ /dev/null @@ -1,285 +0,0 @@ -# items.tcl -- -# -# This demonstration script creates a canvas that displays the -# canvas item types. -# -# RCS: @(#) $Id: items.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .items -catch {destroy $w} -toplevel $w -wm title $w "Canvas Item Demonstration" -wm iconname $w "Items" -positionWindow $w -set c $w.frame.c - -label $w.msg -font $font -wraplength 5i -justify left -text "This window contains a canvas widget with examples of the various kinds of items supported by canvases. The following operations are supported:\n Button-1 drag:\tmoves item under pointer.\n Button-2 drag:\trepositions view.\n Button-3 drag:\tstrokes out area.\n Ctrl+f:\t\tprints items under area." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -pack $w.frame -side top -fill both -expand yes - -canvas $c -scrollregion {0c 0c 30c 24c} -width 15c -height 10c \ - -relief sunken -borderwidth 2 \ - -xscrollcommand "$w.frame.hscroll set" \ - -yscrollcommand "$w.frame.vscroll set" -scrollbar $w.frame.vscroll -command "$c yview" -scrollbar $w.frame.hscroll -orient horiz -command "$c xview" - -grid $c -in $w.frame \ - -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid $w.frame.vscroll \ - -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news -grid $w.frame.hscroll \ - -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid rowconfig $w.frame 0 -weight 1 -minsize 0 -grid columnconfig $w.frame 0 -weight 1 -minsize 0 - -# Display a 3x3 rectangular grid. - -$c create rect 0c 0c 30c 24c -width 2 -$c create line 0c 8c 30c 8c -width 2 -$c create line 0c 16c 30c 16c -width 2 -$c create line 10c 0c 10c 24c -width 2 -$c create line 20c 0c 20c 24c -width 2 - -set font1 {Helvetica 12} -set font2 {Helvetica 24 bold} -if {[winfo depth $c] > 1} { - set blue DeepSkyBlue3 - set red red - set bisque bisque3 - set green SeaGreen3 -} else { - set blue black - set red black - set bisque black - set green black -} - -# Set up demos within each of the areas of the grid. - -$c create text 5c .2c -text Lines -anchor n -$c create line 1c 1c 3c 1c 1c 4c 3c 4c -width 2m -fill $blue \ - -cap butt -join miter -tags item -$c create line 4.67c 1c 4.67c 4c -arrow last -tags item -$c create line 6.33c 1c 6.33c 4c -arrow both -tags item -$c create line 5c 6c 9c 6c 9c 1c 8c 1c 8c 4.8c 8.8c 4.8c 8.8c 1.2c \ - 8.2c 1.2c 8.2c 4.6c 8.6c 4.6c 8.6c 1.4c 8.4c 1.4c 8.4c 4.4c \ - -width 3 -fill $red -tags item -$c create line 1c 5c 7c 5c 7c 7c 9c 7c -width .5c \ - -stipple @[file join $tk_library demos images gray25.bmp] \ - -arrow both -arrowshape {15 15 7} -tags item -$c create line 1c 7c 1.75c 5.8c 2.5c 7c 3.25c 5.8c 4c 7c -width .5c \ - -cap round -join round -tags item - -$c create text 15c .2c -text "Curves (smoothed lines)" -anchor n -$c create line 11c 4c 11.5c 1c 13.5c 1c 14c 4c -smooth on \ - -fill $blue -tags item -$c create line 15.5c 1c 19.5c 1.5c 15.5c 4.5c 19.5c 4c -smooth on \ - -arrow both -width 3 -tags item -$c create line 12c 6c 13.5c 4.5c 16.5c 7.5c 18c 6c \ - 16.5c 4.5c 13.5c 7.5c 12c 6c -smooth on -width 3m -cap round \ - -stipple @[file join $tk_library demos images gray25.bmp] \ - -fill $red -tags item - -$c create text 25c .2c -text Polygons -anchor n -$c create polygon 21c 1.0c 22.5c 1.75c 24c 1.0c 23.25c 2.5c \ - 24c 4.0c 22.5c 3.25c 21c 4.0c 21.75c 2.5c -fill $green \ - -outline black -width 4 -tags item -$c create polygon 25c 4c 25c 4c 25c 1c 26c 1c 27c 4c 28c 1c \ - 29c 1c 29c 4c 29c 4c -fill $red -smooth on -tags item -$c create polygon 22c 4.5c 25c 4.5c 25c 6.75c 28c 6.75c \ - 28c 5.25c 24c 5.25c 24c 6.0c 26c 6c 26c 7.5c 22c 7.5c \ - -stipple @[file join $tk_library demos images gray25.bmp] \ - -outline black -tags item - -$c create text 5c 8.2c -text Rectangles -anchor n -$c create rectangle 1c 9.5c 4c 12.5c -outline $red -width 3m -tags item -$c create rectangle 0.5c 13.5c 4.5c 15.5c -fill $green -tags item -$c create rectangle 6c 10c 9c 15c -outline {} \ - -stipple @[file join $tk_library demos images gray25.bmp] \ - -fill $blue -tags item - -$c create text 15c 8.2c -text Ovals -anchor n -$c create oval 11c 9.5c 14c 12.5c -outline $red -width 3m -tags item -$c create oval 10.5c 13.5c 14.5c 15.5c -fill $green -tags item -$c create oval 16c 10c 19c 15c -outline {} \ - -stipple @[file join $tk_library demos images gray25.bmp] \ - -fill $blue -tags item - -$c create text 25c 8.2c -text Text -anchor n -$c create rectangle 22.4c 8.9c 22.6c 9.1c -$c create text 22.5c 9c -anchor n -font $font1 -width 4c \ - -text "A short string of text, word-wrapped, justified left, and anchored north (at the top). The rectangles show the anchor points for each piece of text." -tags item -$c create rectangle 25.4c 10.9c 25.6c 11.1c -$c create text 25.5c 11c -anchor w -font $font1 -fill $blue \ - -text "Several lines,\n each centered\nindividually,\nand all anchored\nat the left edge." \ - -justify center -tags item -$c create rectangle 24.9c 13.9c 25.1c 14.1c -$c create text 25c 14c -font $font2 -anchor c -fill $red -stipple gray50 \ - -text "Stippled characters" -tags item - -$c create text 5c 16.2c -text Arcs -anchor n -$c create arc 0.5c 17c 7c 20c -fill $green -outline black \ - -start 45 -extent 270 -style pieslice -tags item -$c create arc 6.5c 17c 9.5c 20c -width 4m -style arc \ - -outline $blue -start -135 -extent 270 -tags item \ - -outlinestipple @[file join $tk_library demos images gray25.bmp] -$c create arc 0.5c 20c 9.5c 24c -width 4m -style pieslice \ - -fill {} -outline $red -start 225 -extent -90 -tags item -$c create arc 5.5c 20.5c 9.5c 23.5c -width 4m -style chord \ - -fill $blue -outline {} -start 45 -extent 270 -tags item - -$c create text 15c 16.2c -text Bitmaps -anchor n -$c create bitmap 13c 20c -tags item \ - -bitmap @[file join $tk_library demos images face.bmp] -$c create bitmap 17c 18.5c -tags item \ - -bitmap @[file join $tk_library demos images noletter.bmp] -$c create bitmap 17c 21.5c -tags item \ - -bitmap @[file join $tk_library demos images letters.bmp] - -$c create text 25c 16.2c -text Windows -anchor n -button $c.button -text "Press Me" -command "butPress $c $red" -$c create window 21c 18c -window $c.button -anchor nw -tags item -entry $c.entry -width 20 -relief sunken -$c.entry insert end "Edit this text" -$c create window 21c 21c -window $c.entry -anchor nw -tags item -scale $c.scale -from 0 -to 100 -length 6c -sliderlength .4c \ - -width .5c -tickinterval 0 -$c create window 28.5c 17.5c -window $c.scale -anchor n -tags item -$c create text 21c 17.9c -text Button: -anchor sw -$c create text 21c 20.9c -text Entry: -anchor sw -$c create text 28.5c 17.4c -text Scale: -anchor s - -# Set up event bindings for canvas: - -$c bind item "itemEnter $c" -$c bind item "itemLeave $c" -bind $c <2> "$c scan mark %x %y" -bind $c "$c scan dragto %x %y" -bind $c <3> "itemMark $c %x %y" -bind $c "itemStroke $c %x %y" -bind $c "itemsUnderArea $c" -bind $c <1> "itemStartDrag $c %x %y" -bind $c "itemDrag $c %x %y" - -# Utility procedures for highlighting the item under the pointer: - -proc itemEnter {c} { - global restoreCmd - - if {[winfo depth $c] == 1} { - set restoreCmd {} - return - } - set type [$c type current] - if {$type == "window"} { - set restoreCmd {} - return - } - if {$type == "bitmap"} { - set bg [lindex [$c itemconf current -background] 4] - set restoreCmd [list $c itemconfig current -background $bg] - $c itemconfig current -background SteelBlue2 - return - } - set fill [lindex [$c itemconfig current -fill] 4] - if {(($type == "rectangle") || ($type == "oval") || ($type == "arc")) - && ($fill == "")} { - set outline [lindex [$c itemconfig current -outline] 4] - set restoreCmd "$c itemconfig current -outline $outline" - $c itemconfig current -outline SteelBlue2 - } else { - set restoreCmd "$c itemconfig current -fill $fill" - $c itemconfig current -fill SteelBlue2 - } -} - -proc itemLeave {c} { - global restoreCmd - - eval $restoreCmd -} - -# Utility procedures for stroking out a rectangle and printing what's -# underneath the rectangle's area. - -proc itemMark {c x y} { - global areaX1 areaY1 - set areaX1 [$c canvasx $x] - set areaY1 [$c canvasy $y] - $c delete area -} - -proc itemStroke {c x y} { - global areaX1 areaY1 areaX2 areaY2 - set x [$c canvasx $x] - set y [$c canvasy $y] - if {($areaX1 != $x) && ($areaY1 != $y)} { - $c delete area - $c addtag area withtag [$c create rect $areaX1 $areaY1 $x $y \ - -outline black] - set areaX2 $x - set areaY2 $y - } -} - -proc itemsUnderArea {c} { - global areaX1 areaY1 areaX2 areaY2 - set area [$c find withtag area] - set items "" - foreach i [$c find enclosed $areaX1 $areaY1 $areaX2 $areaY2] { - if {[lsearch [$c gettags $i] item] != -1} { - lappend items $i - } - } - puts stdout "Items enclosed by area: $items" - set items "" - foreach i [$c find overlapping $areaX1 $areaY1 $areaX2 $areaY2] { - if {[lsearch [$c gettags $i] item] != -1} { - lappend items $i - } - } - puts stdout "Items overlapping area: $items" -} - -set areaX1 0 -set areaY1 0 -set areaX2 0 -set areaY2 0 - -# Utility procedures to support dragging of items. - -proc itemStartDrag {c x y} { - global lastX lastY - set lastX [$c canvasx $x] - set lastY [$c canvasy $y] -} - -proc itemDrag {c x y} { - global lastX lastY - set x [$c canvasx $x] - set y [$c canvasy $y] - $c move current [expr {$x-$lastX}] [expr {$y-$lastY}] - set lastX $x - set lastY $y -} - -# Procedure that's invoked when the button embedded in the canvas -# is invoked. - -proc butPress {w color} { - set i [$w create text 25c 18.1c -text "Ouch!!" -fill $color -anchor n] - after 500 "$w delete $i" -} diff --git a/mingw/lib/tk8.4/demos/ixset b/mingw/lib/tk8.4/demos/ixset deleted file mode 100644 index 3ae26891..00000000 --- a/mingw/lib/tk8.4/demos/ixset +++ /dev/null @@ -1,335 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" ${1+"$@"} - -# ixset -- -# A nice interface to "xset" to change X server settings -# -# History : -# 91/11/23 : pda@masi.ibp.fr, jt@ratp.fr : design -# 92/08/01 : pda@masi.ibp.fr : cleaning -# -# RCS: @(#) $Id: ixset,v 1.4 2001/11/05 10:13:53 dkf Exp $ - -# -# Button actions -# - -proc quit {} { - destroy . -} - -proc ok {} { - writesettings - quit -} - -proc cancel {} { - readsettings - dispsettings - .buttons.apply configure -state disabled - .buttons.cancel configure -state disabled -} - -proc apply {} { - writesettings - .buttons.apply configure -state disabled - .buttons.cancel configure -state disabled -} - -# -# Read current settings -# - -proc readsettings {} { - global kbdrep ; set kbdrep "on" - global kbdcli ; set kbdcli 0 - global bellvol ; set bellvol 100 - global bellpit ; set bellpit 440 - global belldur ; set belldur 100 - global mouseacc ; set mouseacc "3/1" - global mousethr ; set mousethr 4 - global screenbla ; set screenbla "blank" - global screentim ; set screentim 600 - global screencyc ; set screencyc 600 - - set xfd [open "|xset q" r] - while {[gets $xfd line] > -1} { - set kw [lindex $line 0] - - case $kw in { - {auto} - { - set rpt [lindex $line 1] - if {[expr "{$rpt} == {repeat:}"]} then { - set kbdrep [lindex $line 2] - set kbdcli [lindex $line 6] - } - } - {bell} - { - set bellvol [lindex $line 2] - set bellpit [lindex $line 5] - set belldur [lindex $line 8] - } - {acceleration:} - { - set mouseacc [lindex $line 1] - set mousethr [lindex $line 3] - } - {prefer} - { - set bla [lindex $line 2] - set screenbla [expr "{$bla} == {yes} ? {blank} : {noblank}"] - } - {timeout:} - { - set screentim [lindex $line 1] - set screencyc [lindex $line 3] - } - } - } - close $xfd - - # puts stdout [format "Key REPEAT = %s\n" $kbdrep] - # puts stdout [format "Key CLICK = %s\n" $kbdcli] - # puts stdout [format "Bell VOLUME = %s\n" $bellvol] - # puts stdout [format "Bell PITCH = %s\n" $bellpit] - # puts stdout [format "Bell DURATION = %s\n" $belldur] - # puts stdout [format "Mouse ACCELERATION = %s\n" $mouseacc] - # puts stdout [format "Mouse THRESHOLD = %s\n" $mousethr] - # puts stdout [format "Screen BLANCK = %s\n" $screenbla] - # puts stdout [format "Screen TIMEOUT = %s\n" $screentim] - # puts stdout [format "Screen CYCLE = %s\n" $screencyc] -} - - -# -# Write settings into the X server -# - -proc writesettings {} { - global kbdrep kbdcli bellvol bellpit belldur - global mouseacc mousethr screenbla screentim screencyc - - set bellvol [.bell.vol get] - set bellpit [.bell.val.pit.entry get] - set belldur [.bell.val.dur.entry get] - - if {[expr "{$kbdrep} == {on}"]} then { - set kbdcli [.kbd.val.cli get] - } else { - set kbdcli "off" - } - - set mouseacc [.mouse.hor.acc.entry get] - set mousethr [.mouse.hor.thr.entry get] - - set screentim [.screen.tim.entry get] - set screencyc [.screen.cyc.entry get] - - exec xset \ - b $bellvol $bellpit $belldur \ - c $kbdcli \ - r $kbdrep \ - m $mouseacc $mousethr \ - s $screentim $screencyc \ - s $screenbla -} - - -# -# Sends all settings to the window -# - -proc dispsettings {} { - global kbdrep kbdcli bellvol bellpit belldur - global mouseacc mousethr screenbla screentim screencyc - - .bell.vol set $bellvol - .bell.val.pit.entry delete 0 end - .bell.val.pit.entry insert 0 $bellpit - .bell.val.dur.entry delete 0 end - .bell.val.dur.entry insert 0 $belldur - - .kbd.val.onoff [expr "{$kbdrep} == {on} ? {select} : {deselect}"] - .kbd.val.cli set $kbdcli - - .mouse.hor.acc.entry delete 0 end - .mouse.hor.acc.entry insert 0 $mouseacc - .mouse.hor.thr.entry delete 0 end - .mouse.hor.thr.entry insert 0 $mousethr - - .screen.blank [expr "{$screenbla}=={blank} ? {select} : {deselect}"] - .screen.pat [expr "{$screenbla}!={blank} ? {select} : {deselect}"] - .screen.tim.entry delete 0 end - .screen.tim.entry insert 0 $screentim - .screen.cyc.entry delete 0 end - .screen.cyc.entry insert 0 $screencyc -} - - -# -# Create all windows, and pack them -# - -proc labelentry {path text length {range {}}} { - frame $path - label $path.label -text $text - if {[llength $range]} { - spinbox $path.entry -width $length -relief sunken \ - -from [lindex $range 0] -to [lindex $range 1] - } else { - entry $path.entry -width $length -relief sunken - } - pack $path.label -side left - pack $path.entry -side right -expand y -fill x -} - -proc createwindows {} { - # - # Buttons - # - - frame .buttons - button .buttons.ok -default active -command ok -text "Ok" - button .buttons.apply -default normal -command apply -text "Apply" \ - -state disabled - button .buttons.cancel -default normal -command cancel -text "Cancel" \ - -state disabled - button .buttons.quit -default normal -command quit -text "Quit" - - pack .buttons.ok .buttons.apply .buttons.cancel .buttons.quit \ - -side left -expand yes -pady 5 - - bind . {.buttons.ok flash; .buttons.ok invoke} - bind . {.buttons.quit flash; .buttons.quit invoke} - bind . <1> { - if {![string match .buttons* %W]} { - .buttons.apply configure -state normal - .buttons.cancel configure -state normal - } - } - bind . { - if {![string match .buttons* %W]} { - switch -glob %K { - Return - Escape - Tab - *Shift* {} - default { - .buttons.apply configure -state normal - .buttons.cancel configure -state normal - } - } - } - } - - # - # Bell settings - # - - labelframe .bell -text "Bell Settings" -padx 1.5m -pady 1.5m - scale .bell.vol \ - -from 0 -to 100 -length 200 -tickinterval 20 \ - -label "Volume (%)" -orient horizontal - - frame .bell.val - labelentry .bell.val.pit "Pitch (Hz)" 6 {25 20000} - labelentry .bell.val.dur "Duration (ms)" 6 {1 10000} - pack .bell.val.pit -side left -padx 5 - pack .bell.val.dur -side right -padx 5 - pack .bell.vol .bell.val -side top -expand yes - - # - # Keyboard settings - # - - labelframe .kbd -text "Keyboard Repeat Settings" -padx 1.5m -pady 1.5m - - frame .kbd.val - checkbutton .kbd.val.onoff \ - -text "On" \ - -onvalue "on" -offvalue "off" -variable kbdrep \ - -relief flat - scale .kbd.val.cli \ - -from 0 -to 100 -length 200 -tickinterval 20 \ - -label "Click Volume (%)" -orient horizontal - pack .kbd.val.onoff -side left -fill x -expand yes -padx {0 1m} - pack .kbd.val.cli -side left -expand yes -fill x -padx {1m 0} - - pack .kbd.val -side top -expand yes -pady 2 -fill x - - # - # Mouse settings - # - - labelframe .mouse -text "Mouse Settings" -padx 1.5m -pady 1.5m - - frame .mouse.hor - labelentry .mouse.hor.acc "Acceleration" 5 - labelentry .mouse.hor.thr "Threshold (pixels)" 3 {1 2000} - - pack .mouse.hor.acc -side left -padx {0 1m} - pack .mouse.hor.thr -side right -padx {1m 0} - - pack .mouse.hor -side top -expand yes - - # - # Screen Saver settings - # - - labelframe .screen -text "Screen-saver Settings" -padx 1.5m -pady 1.5m - - radiobutton .screen.blank \ - -variable screenblank -text "Blank" -relief flat \ - -value "blank" -variable screenbla -anchor w - radiobutton .screen.pat \ - -variable screenblank -text "Pattern" -relief flat \ - -value "noblank" -variable screenbla -anchor w - labelentry .screen.tim "Timeout (s)" 5 {1 100000} - labelentry .screen.cyc "Cycle (s)" 5 {1 100000} - - grid .screen.blank .screen.tim -sticky e - grid .screen.pat .screen.cyc -sticky e - grid configure .screen.blank .screen.pat -sticky ew - - # - # Main window - # - - pack .buttons -side top -fill both - pack .bell .kbd .mouse .screen -side top -fill both -expand yes \ - -padx 1m -pady 1m - - # - # Let the user resize our window - # - wm minsize . 10 10 -} - -############################################################################## -# Main program - -# -# Listen what "xset" tells us... -# - -readsettings - -# -# Create all windows -# - -createwindows - -# -# Write xset parameters -# - -dispsettings - -# -# Now, wait for user actions... -# - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/label.tcl b/mingw/lib/tk8.4/demos/label.tcl deleted file mode 100644 index 47babe6c..00000000 --- a/mingw/lib/tk8.4/demos/label.tcl +++ /dev/null @@ -1,40 +0,0 @@ -# label.tcl -- -# -# This demonstration script creates a toplevel window containing -# several label widgets. -# -# RCS: @(#) $Id: label.tcl,v 1.2 1998/09/14 18:23:29 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .label -catch {destroy $w} -toplevel $w -wm title $w "Label Demonstration" -wm iconname $w "label" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "Five labels are displayed below: three textual ones on the left, and a bitmap label and a text label on the right. Labels are pretty boring because you can't do anything with them." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.left -frame $w.right -pack $w.left $w.right -side left -expand yes -padx 10 -pady 10 -fill both - -label $w.left.l1 -text "First label" -label $w.left.l2 -text "Second label, raised" -relief raised -label $w.left.l3 -text "Third label, sunken" -relief sunken -pack $w.left.l1 $w.left.l2 $w.left.l3 -side top -expand yes -pady 2 -anchor w - -label $w.right.bitmap -borderwidth 2 -relief sunken \ - -bitmap @[file join $tk_library demos images face.bmp] -label $w.right.caption -text "Tcl/Tk Proprietor" -pack $w.right.bitmap $w.right.caption -side top diff --git a/mingw/lib/tk8.4/demos/labelframe.tcl b/mingw/lib/tk8.4/demos/labelframe.tcl deleted file mode 100644 index af8954b6..00000000 --- a/mingw/lib/tk8.4/demos/labelframe.tcl +++ /dev/null @@ -1,80 +0,0 @@ -# labelframe.tcl -- -# -# This demonstration script creates a toplevel window containing -# several labelframe widgets. -# -# RCS: @(#) $Id: labelframe.tcl,v 1.2 2001/10/30 11:21:50 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .labelframe -catch {destroy $w} -toplevel $w -wm title $w "Labelframe Demonstration" -wm iconname $w "labelframe" -positionWindow $w - -# Some information - -label $w.msg -font $font -wraplength 4i -justify left -text "Labelframes are\ - used to group related widgets together. The label may be either \ - plain text or another widget." -pack $w.msg -side top - -# The bottom buttons - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -width 15 -button $w.buttons.code -text "See Code" -command "showCode $w" -width 15 -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -# Demo area - -frame $w.f -pack $w.f -side bottom -fill both -expand 1 -set w $w.f - -# A group of radiobuttons in a labelframe - -labelframe $w.f -text "Value" -padx 2 -pady 2 -grid $w.f -row 0 -column 0 -pady 2m -padx 2m - -foreach value {1 2 3 4} { - radiobutton $w.f.b$value -text "This is value $value" \ - -variable lfdummy -value $value - pack $w.f.b$value -side top -fill x -pady 2 -} - - -# Using a label window to control a group of options. - -proc lfEnableButtons {w} { - foreach child [winfo children $w] { - if {$child == "$w.cb"} continue - if {$::lfdummy2} { - $child configure -state normal - } else { - $child configure -state disabled - } - } -} - -labelframe $w.f2 -pady 2 -padx 2 -checkbutton $w.f2.cb -text "Use this option." -variable lfdummy2 \ - -command "lfEnableButtons $w.f2" -padx 0 -$w.f2 configure -labelwidget $w.f2.cb -grid $w.f2 -row 0 -column 1 -pady 2m -padx 2m - -set t 0 -foreach str {Option1 Option2 Option3} { - checkbutton $w.f2.b$t -text $str - pack $w.f2.b$t -side top -fill x -pady 2 - incr t -} -lfEnableButtons $w.f2 - - -grid columnconfigure $w {0 1} -weight 1 diff --git a/mingw/lib/tk8.4/demos/menu.tcl b/mingw/lib/tk8.4/demos/menu.tcl deleted file mode 100644 index 4464e9ef..00000000 --- a/mingw/lib/tk8.4/demos/menu.tcl +++ /dev/null @@ -1,161 +0,0 @@ -# menu.tcl -- -# -# This demonstration script creates a window with a bunch of menus -# and cascaded menus using menubars. -# -# RCS: @(#) $Id: menu.tcl,v 1.4.2.2 2005/06/25 03:41:39 das Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .menu -catch {destroy $w} -toplevel $w -wm title $w "Menu Demonstration" -wm iconname $w "menu" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -if {[string equal [tk windowingsystem] "classic"] - || [string equal [tk windowingsystem] "aqua"]} { - $w.msg configure -text "This window contains a menubar with cascaded menus. You can invoke entries with an accelerator by typing Command+x, where \"x\" is the character next to the command key symbol. The rightmost menu can be torn off into a palette by dragging outside of its bounds and releasing the mouse." -} else { - $w.msg configure -text "This window contains a menubar with cascaded menus. You can post a menu from the keyboard by typing Alt+x, where \"x\" is the character underlined on the menu. You can then traverse among the menus using the arrow keys. When a menu is posted, you can invoke the current entry by typing space, or you can invoke any entry by typing its underlined character. If a menu entry has an accelerator, you can invoke the entry without posting the menu just by typing the accelerator. The rightmost menu can be torn off into a palette by selecting the first item in the menu." -} -pack $w.msg -side top - -set menustatus " " -frame $w.statusBar -label $w.statusBar.label -textvariable menustatus -relief sunken -bd 1 -font "Helvetica 10" -anchor w -pack $w.statusBar.label -side left -padx 2 -expand yes -fill both -pack $w.statusBar -side bottom -fill x -pady 2 - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -menu $w.menu -tearoff 0 - -set m $w.menu.file -menu $m -tearoff 0 -$w.menu add cascade -label "File" -menu $m -underline 0 -$m add command -label "Open..." -command {error "this is just a demo: no action has been defined for the \"Open...\" entry"} -$m add command -label "New" -command {error "this is just a demo: no action has been defined for the \"New\" entry"} -$m add command -label "Save" -command {error "this is just a demo: no action has been defined for the \"Save\" entry"} -$m add command -label "Save As..." -command {error "this is just a demo: no action has been defined for the \"Save As...\" entry"} -$m add separator -$m add command -label "Print Setup..." -command {error "this is just a demo: no action has been defined for the \"Print Setup...\" entry"} -$m add command -label "Print..." -command {error "this is just a demo: no action has been defined for the \"Print...\" entry"} -$m add separator -$m add command -label "Dismiss Menus Demo" -command "destroy $w" - -set m $w.menu.basic -$w.menu add cascade -label "Basic" -menu $m -underline 0 -menu $m -tearoff 0 -$m add command -label "Long entry that does nothing" -if {[string equal [tk windowingsystem] "classic"] - || [string equal [tk windowingsystem] "aqua"]} { - set modifier Command -} elseif {$tcl_platform(platform) == "windows"} { - set modifier Control -} else { - set modifier Meta -} -foreach i {A B C D E F} { - $m add command -label "Print letter \"$i\"" -underline 14 \ - -accelerator Meta+$i -command "puts $i" -accelerator $modifier+$i - bind $w <$modifier-[string tolower $i]> "puts $i" -} - -set m $w.menu.cascade -$w.menu add cascade -label "Cascades" -menu $m -underline 0 -menu $m -tearoff 0 -$m add command -label "Print hello" \ - -command {puts stdout "Hello"} -accelerator $modifier+H -underline 6 -bind $w <$modifier-h> {puts stdout "Hello"} -$m add command -label "Print goodbye" -command {\ - puts stdout "Goodbye"} -accelerator $modifier+G -underline 6 -bind $w <$modifier-g> {puts stdout "Goodbye"} -$m add cascade -label "Check buttons" \ - -menu $w.menu.cascade.check -underline 0 -$m add cascade -label "Radio buttons" \ - -menu $w.menu.cascade.radio -underline 0 - -set m $w.menu.cascade.check -menu $m -tearoff 0 -$m add check -label "Oil checked" -variable oil -$m add check -label "Transmission checked" -variable trans -$m add check -label "Brakes checked" -variable brakes -$m add check -label "Lights checked" -variable lights -$m add separator -$m add command -label "Show current values" \ - -command "showVars $w.menu.cascade.dialog oil trans brakes lights" -$m invoke 1 -$m invoke 3 - -set m $w.menu.cascade.radio -menu $m -tearoff 0 -$m add radio -label "10 point" -variable pointSize -value 10 -$m add radio -label "14 point" -variable pointSize -value 14 -$m add radio -label "18 point" -variable pointSize -value 18 -$m add radio -label "24 point" -variable pointSize -value 24 -$m add radio -label "32 point" -variable pointSize -value 32 -$m add sep -$m add radio -label "Roman" -variable style -value roman -$m add radio -label "Bold" -variable style -value bold -$m add radio -label "Italic" -variable style -value italic -$m add sep -$m add command -label "Show current values" \ - -command "showVars $w.menu.cascade.dialog pointSize style" -$m invoke 1 -$m invoke 7 - -set m $w.menu.icon -$w.menu add cascade -label "Icons" -menu $m -underline 0 -menu $m -tearoff 0 -$m add command -bitmap @[file join $tk_library demos images pattern.bmp] \ - -hidemargin 1 -command [list \ - tk_dialog $w.pattern {Bitmap Menu Entry} \ - "The menu entry you invoked displays a bitmap rather than\ - a text string. Other than this, it is just like any other\ - menu entry." {} 0 OK ] -foreach i {info questhead error} { - $m add command -bitmap $i -hidemargin 1 -command [list \ - puts "You invoked the $i bitmap" ] -} -$m entryconfigure 2 -columnbreak 1 - -set m $w.menu.more -$w.menu add cascade -label "More" -menu $m -underline 0 -menu $m -tearoff 0 -foreach i {{An entry} {Another entry} {Does nothing} {Does almost nothing} {Make life meaningful}} { - $m add command -label $i -command [list puts "You invoked \"$i\""] -} -$m entryconfigure "Does almost nothing" -bitmap questhead -compound left \ - -command [list \ - tk_dialog $w.compound {Compound Menu Entry} \ - "The menu entry you invoked displays both a bitmap and a\ - text string. Other than this, it is just like any other\ - menu entry." {} 0 OK ] - -set m $w.menu.colors -$w.menu add cascade -label "Colors" -menu $m -underline 1 -menu $m -foreach i {red orange yellow green blue} { - $m add command -label $i -background $i -command [list \ - puts "You invoked \"$i\"" ] -} - -$w configure -menu $w.menu - -bind Menu <> { - global $menustatus - if {[catch {%W entrycget active -label} label]} { - set label " " - } - set menustatus $label - update idletasks -} diff --git a/mingw/lib/tk8.4/demos/menubu.tcl b/mingw/lib/tk8.4/demos/menubu.tcl deleted file mode 100644 index bfe6e5bb..00000000 --- a/mingw/lib/tk8.4/demos/menubu.tcl +++ /dev/null @@ -1,94 +0,0 @@ -# menubutton.tcl -- -# -# This demonstration script creates a window with a bunch of menus -# and cascaded menus using menubuttons. -# -# # RCS: @(#) $Id: menubu.tcl,v 1.3 2002/08/31 06:12:28 das Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .menubutton -catch {destroy $w} -toplevel $w -wm title $w "Menu Button Demonstration" -wm iconname $w "menubutton" -positionWindow $w - - -frame $w.body -pack $w.body -expand 1 -fill both - -menubutton $w.body.below -text "Below" -underline 0 -direction below -menu $w.body.below.m -relief raised -menu $w.body.below.m -tearoff 0 -$w.body.below.m add command -label "Below menu: first item" -command "puts \"You have selected the first item from the Below menu.\"" -$w.body.below.m add command -label "Below menu: second item" -command "puts \"You have selected the second item from the Below menu.\"" -grid $w.body.below -row 0 -column 1 -sticky n -menubutton $w.body.right -text "Right" -underline 0 -direction right -menu $w.body.right.m -relief raised -menu $w.body.right.m -tearoff 0 -$w.body.right.m add command -label "Right menu: first item" -command "puts \"You have selected the first item from the Right menu.\"" -$w.body.right.m add command -label "Right menu: second item" -command "puts \"You have selected the second item from the Right menu.\"" -frame $w.body.center -menubutton $w.body.left -text "Left" -underline 0 -direction left -menu $w.body.left.m -relief raised -menu $w.body.left.m -tearoff 0 -$w.body.left.m add command -label "Left menu: first item" -command "puts \"You have selected the first item from the Left menu.\"" -$w.body.left.m add command -label "Left menu: second item" -command "puts \"You have selected the second item from the Left menu.\"" -grid $w.body.right -row 1 -column 0 -sticky w -grid $w.body.center -row 1 -column 1 -sticky news -grid $w.body.left -row 1 -column 2 -sticky e -menubutton $w.body.above -text "Above" -underline 0 -direction above -menu $w.body.above.m -relief raised -menu $w.body.above.m -tearoff 0 -$w.body.above.m add command -label "Above menu: first item" -command "puts \"You have selected the first item from the Above menu.\"" -$w.body.above.m add command -label "Above menu: second item" -command "puts \"You have selected the second item from the Above menu.\"" -grid $w.body.above -row 2 -column 1 -sticky s - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode .menubu" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -set body $w.body.center -label $body.label -wraplength 300 -font "Helvetica 14" -justify left -text "This is a demonstration of menubuttons. The \"Below\" menubutton pops its menu below the button; the \"Right\" button pops to the right, etc. There are two option menus directly below this text; one is just a standard menu and the other is a 16-color palette." -pack $body.label -side top -padx 25 -pady 25 -frame $body.buttons -pack $body.buttons -padx 25 -pady 25 -tk_optionMenu $body.buttons.options menubuttonoptions one two three -pack $body.buttons.options -side left -padx 25 -pady 25 -set m [tk_optionMenu $body.buttons.colors paletteColor Black red4 DarkGreen NavyBlue gray75 Red Green Blue gray50 Yellow Cyan Magenta White Brown DarkSeaGreen DarkViolet] -if {[string equal [tk windowingsystem] "classic"] - || [string equal [tk windowingsystem] "aqua"]} { - set topBorderColor Black - set bottomBorderColor Black -} else { - set topBorderColor gray50 - set bottomBorderColor gray75 -} -for {set i 0} {$i <= [$m index last]} {incr i} { - set name [$m entrycget $i -label] - image create photo image_$name -height 16 -width 16 - image_$name put $topBorderColor -to 0 0 16 1 - image_$name put $topBorderColor -to 0 1 1 16 - image_$name put $bottomBorderColor -to 0 15 16 16 - image_$name put $bottomBorderColor -to 15 1 16 16 - image_$name put $name -to 1 1 15 15 - - image create photo image_${name}_s -height 16 -width 16 - image_${name}_s put Black -to 0 0 16 2 - image_${name}_s put Black -to 0 2 2 16 - image_${name}_s put Black -to 2 14 16 16 - image_${name}_s put Black -to 14 2 16 14 - image_${name}_s put $name -to 2 2 14 14 - - $m entryconfigure $i -image image_$name -selectimage image_${name}_s -hidemargin 1 -} -$m configure -tearoff 1 -foreach i {Black gray75 gray50 White} { - $m entryconfigure $i -columnbreak 1 -} - -pack $body.buttons.colors -side left -padx 25 -pady 25 - - - diff --git a/mingw/lib/tk8.4/demos/msgbox.tcl b/mingw/lib/tk8.4/demos/msgbox.tcl deleted file mode 100644 index 4af68dc1..00000000 --- a/mingw/lib/tk8.4/demos/msgbox.tcl +++ /dev/null @@ -1,65 +0,0 @@ -# msgbox.tcl -- -# -# This demonstration script creates message boxes of various type -# -# RCS: @(#) $Id: msgbox.tcl,v 1.2 1998/09/14 18:23:29 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .msgbox -catch {destroy $w} -toplevel $w -wm title $w "Message Box Demonstration" -wm iconname $w "messagebox" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "Choose the icon and type option of the message box. Then press the \"Message Box\" button to see the message box." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -button $w.buttons.vars -text "Message Box" \ - -command "showMessageBox $w" -pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 - -frame $w.left -frame $w.right -pack $w.left $w.right -side left -expand yes -fill y -pady .5c -padx .5c - -label $w.left.label -text "Icon" -frame $w.left.sep -relief ridge -bd 1 -height 2 -pack $w.left.label -side top -pack $w.left.sep -side top -fill x -expand no - -set msgboxIcon info -foreach i {error info question warning} { - radiobutton $w.left.b$i -text $i -variable msgboxIcon \ - -relief flat -value $i -width 16 -anchor w - pack $w.left.b$i -side top -pady 2 -anchor w -fill x -} - -label $w.right.label -text "Type" -frame $w.right.sep -relief ridge -bd 1 -height 2 -pack $w.right.label -side top -pack $w.right.sep -side top -fill x -expand no - -set msgboxType ok -foreach t {abortretryignore ok okcancel retrycancel yesno yesnocancel} { - radiobutton $w.right.$t -text $t -variable msgboxType \ - -relief flat -value $t -width 16 -anchor w - pack $w.right.$t -side top -pady 2 -anchor w -fill x -} - -proc showMessageBox {w} { - global msgboxIcon msgboxType - set button [tk_messageBox -icon $msgboxIcon -type $msgboxType \ - -title Message -parent $w\ - -message "This is a \"$msgboxType\" type messagebox with the \"$msgboxIcon\" icon"] - - tk_messageBox -icon info -message "You have selected \"$button\"" -type ok\ - -parent $w -} diff --git a/mingw/lib/tk8.4/demos/paned1.tcl b/mingw/lib/tk8.4/demos/paned1.tcl deleted file mode 100644 index dbdd582e..00000000 --- a/mingw/lib/tk8.4/demos/paned1.tcl +++ /dev/null @@ -1,34 +0,0 @@ -# paned1.tcl -- -# -# This demonstration script creates a toplevel window containing -# a paned window that separates two windows horizontally. -# -# RCS: @(#) $Id: paned1.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .paned1 -catch {destroy $w} -toplevel $w -wm title $w "Horizontal Paned Window Demonstration" -wm iconname $w "paned1" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two coloured windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -panedwindow $w.pane -pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m - -label $w.pane.left -text "This is the\nleft side" -bg yellow -label $w.pane.right -text "This is the\nright side" -bg cyan - -$w.pane add $w.pane.left $w.pane.right diff --git a/mingw/lib/tk8.4/demos/paned2.tcl b/mingw/lib/tk8.4/demos/paned2.tcl deleted file mode 100644 index 95495e6e..00000000 --- a/mingw/lib/tk8.4/demos/paned2.tcl +++ /dev/null @@ -1,76 +0,0 @@ -# paned2.tcl -- -# -# This demonstration script creates a toplevel window containing -# a paned window that separates two windows vertically. -# -# RCS: @(#) $Id: paned2.tcl,v 1.1 2002/02/22 14:07:01 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .paned2 -catch {destroy $w} -toplevel $w -wm title $w "Vertical Paned Window Demonstration" -wm iconname $w "paned2" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two scrolled windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -# Create the pane itself -panedwindow $w.pane -orient vertical -pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m - -# The top window is a listbox with scrollbar -set paneList { - {List of Tk Widgets} - button - canvas - checkbutton - entry - frame - label - labelframe - listbox - menu - menubutton - message - panedwindow - radiobutton - scale - scrollbar - spinbox - text - toplevel -} -set f [frame $w.pane.top] -listbox $f.list -listvariable paneList -yscrollcommand "$f.scr set" -# Invert the first item to highlight it -$f.list itemconfigure 0 \ - -background [$f.list cget -fg] -foreground [$f.list cget -bg] -scrollbar $f.scr -orient vertical -command "$f.list yview" -pack $f.scr -side right -fill y -pack $f.list -fill both -expand 1 - -# The bottom window is a text widget with scrollbar -set f [frame $w.pane.bottom] -text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \ - -width 30 -wrap none -scrollbar $f.xscr -orient horizontal -command "$f.text xview" -scrollbar $f.yscr -orient vertical -command "$f.text yview" -grid $f.text $f.yscr -sticky nsew -grid $f.xscr -sticky nsew -grid columnconfigure $f 0 -weight 1 -grid rowconfigure $f 0 -weight 1 -$f.text insert 1.0 "This is just a normal text widget" - -# Now add our contents to the paned window -$w.pane add $w.pane.top $w.pane.bottom diff --git a/mingw/lib/tk8.4/demos/plot.tcl b/mingw/lib/tk8.4/demos/plot.tcl deleted file mode 100644 index 011f1401..00000000 --- a/mingw/lib/tk8.4/demos/plot.tcl +++ /dev/null @@ -1,99 +0,0 @@ -# plot.tcl -- -# -# This demonstration script creates a canvas widget showing a 2-D -# plot with data points that can be dragged with the mouse. -# -# RCS: @(#) $Id: plot.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .plot -catch {destroy $w} -toplevel $w -wm title $w "Plot Demonstration" -wm iconname $w "Plot" -positionWindow $w -set c $w.c - -label $w.msg -font $font -wraplength 4i -justify left -text "This window displays a canvas widget containing a simple 2-dimensional plot. You can doctor the data by dragging any of the points with mouse button 1." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -canvas $c -relief raised -width 450 -height 300 -pack $w.c -side top -fill x - -set plotFont {Helvetica 18} - -$c create line 100 250 400 250 -width 2 -$c create line 100 250 100 50 -width 2 -$c create text 225 20 -text "A Simple Plot" -font $plotFont -fill brown - -for {set i 0} {$i <= 10} {incr i} { - set x [expr {100 + ($i*30)}] - $c create line $x 250 $x 245 -width 2 - $c create text $x 254 -text [expr {10*$i}] -anchor n -font $plotFont -} -for {set i 0} {$i <= 5} {incr i} { - set y [expr {250 - ($i*40)}] - $c create line 100 $y 105 $y -width 2 - $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $plotFont -} - -foreach point { - {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} -} { - set x [expr {100 + (3*[lindex $point 0])}] - set y [expr {250 - (4*[lindex $point 1])/5}] - set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ - [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ - -fill SkyBlue2] - $c addtag point withtag $item -} - -$c bind point "$c itemconfig current -fill red" -$c bind point "$c itemconfig current -fill SkyBlue2" -$c bind point <1> "plotDown $c %x %y" -$c bind point "$c dtag selected" -bind $c "plotMove $c %x %y" - -set plot(lastX) 0 -set plot(lastY) 0 - -# plotDown -- -# This procedure is invoked when the mouse is pressed over one of the -# data points. It sets up state to allow the point to be dragged. -# -# Arguments: -# w - The canvas window. -# x, y - The coordinates of the mouse press. - -proc plotDown {w x y} { - global plot - $w dtag selected - $w addtag selected withtag current - $w raise current - set plot(lastX) $x - set plot(lastY) $y -} - -# plotMove -- -# This procedure is invoked during mouse motion events. It drags the -# current item. -# -# Arguments: -# w - The canvas window. -# x, y - The coordinates of the mouse. - -proc plotMove {w x y} { - global plot - $w move selected [expr {$x-$plot(lastX)}] [expr {$y-$plot(lastY)}] - set plot(lastX) $x - set plot(lastY) $y -} diff --git a/mingw/lib/tk8.4/demos/puzzle.tcl b/mingw/lib/tk8.4/demos/puzzle.tcl deleted file mode 100644 index fe487331..00000000 --- a/mingw/lib/tk8.4/demos/puzzle.tcl +++ /dev/null @@ -1,84 +0,0 @@ -# puzzle.tcl -- -# -# This demonstration script creates a 15-puzzle game using a collection -# of buttons. -# -# RCS: @(#) $Id: puzzle.tcl,v 1.4 2002/08/31 06:12:28 das Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# puzzleSwitch -- -# This procedure is invoked when the user clicks on a particular button; -# if the button is next to the empty space, it moves the button into th -# empty space. - -proc puzzleSwitch {w num} { - global xpos ypos - if {(($ypos($num) >= ($ypos(space) - .01)) - && ($ypos($num) <= ($ypos(space) + .01)) - && ($xpos($num) >= ($xpos(space) - .26)) - && ($xpos($num) <= ($xpos(space) + .26))) - || (($xpos($num) >= ($xpos(space) - .01)) - && ($xpos($num) <= ($xpos(space) + .01)) - && ($ypos($num) >= ($ypos(space) - .26)) - && ($ypos($num) <= ($ypos(space) + .26)))} { - set tmp $xpos(space) - set xpos(space) $xpos($num) - set xpos($num) $tmp - set tmp $ypos(space) - set ypos(space) $ypos($num) - set ypos($num) $tmp - place $w.frame.$num -relx $xpos($num) -rely $ypos($num) - } -} - -set w .puzzle -catch {destroy $w} -toplevel $w -wm title $w "15-Puzzle Demonstration" -wm iconname $w "15-Puzzle" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "A 15-puzzle appears below as a collection of buttons. Click on any of the pieces next to the space, and that piece will slide over the space. Continue this until the pieces are arranged in numerical order from upper-left to lower-right." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -# Special trick: select a darker color for the space by creating a -# scrollbar widget and using its trough color. - -scrollbar $w.s - -# The button metrics are a bit bigger in Aqua, and since we are -# using place which doesn't autosize, then we need to have a -# slightly larger frame here... - -if {[string equal [tk windowingsystem] aqua]} { - set frameSize 160 -} else { - set frameSize 120 -} - -frame $w.frame -width $frameSize -height $frameSize -borderwidth 2\ - -relief sunken -bg [$w.s cget -troughcolor] -pack $w.frame -side top -pady 1c -padx 1c -destroy $w.s - -set order {3 1 6 2 5 7 15 13 4 11 8 9 14 10 12} -for {set i 0} {$i < 15} {set i [expr {$i+1}]} { - set num [lindex $order $i] - set xpos($num) [expr {($i%4)*.25}] - set ypos($num) [expr {($i/4)*.25}] - button $w.frame.$num -relief raised -text $num -highlightthickness 0 \ - -command "puzzleSwitch $w $num" - place $w.frame.$num -relx $xpos($num) -rely $ypos($num) \ - -relwidth .25 -relheight .25 -} -set xpos(space) .75 -set ypos(space) .75 diff --git a/mingw/lib/tk8.4/demos/radio.tcl b/mingw/lib/tk8.4/demos/radio.tcl deleted file mode 100644 index 172200bd..00000000 --- a/mingw/lib/tk8.4/demos/radio.tcl +++ /dev/null @@ -1,59 +0,0 @@ -# radio.tcl -- -# -# This demonstration script creates a toplevel window containing -# several radiobutton widgets. -# -# RCS: @(#) $Id: radio.tcl,v 1.4 2001/11/12 14:32:50 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .radio -catch {destroy $w} -toplevel $w -wm title $w "Radiobutton Demonstration" -wm iconname $w "radio" -positionWindow $w -label $w.msg -font $font -wraplength 5i -justify left -text "Three groups of radiobuttons are displayed below. If you click on a button then the button will become selected exclusively among all the buttons in its group. A Tcl variable is associated with each group to indicate which of the group's buttons is selected. Click the \"See Variables\" button to see the current values of the variables." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -button $w.buttons.vars -text "See Variables" \ - -command "showVars $w.dialog size color align" -pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 - -labelframe $w.left -pady 2 -text "Point Size" -padx 2 -labelframe $w.mid -pady 2 -text "Color" -padx 2 -labelframe $w.right -pady 2 -text "Alignment" -padx 2 -pack $w.left $w.mid $w.right -side left -expand yes -pady .5c -padx .5c - -foreach i {10 12 14 18 24} { - radiobutton $w.left.b$i -text "Point Size $i" -variable size \ - -relief flat -value $i - pack $w.left.b$i -side top -pady 2 -anchor w -fill x -} - -foreach c {Red Green Blue Yellow Orange Purple} { - set lower [string tolower $c] - radiobutton $w.mid.$lower -text $c -variable color \ - -relief flat -value $lower -anchor w \ - -command "$w.mid configure -fg \$color" - pack $w.mid.$lower -side top -pady 2 -fill x -} - -label $w.right.l -text "Label" -bitmap questhead -compound left -$w.right.l configure -width [winfo reqwidth $w.right.l] -compound top -$w.right.l configure -height [winfo reqheight $w.right.l] -foreach a {Top Left Right Bottom} { - set lower [string tolower $a] - radiobutton $w.right.$lower -text $a -variable align \ - -relief flat -value $lower -indicatoron 0 -width 7 \ - -command "$w.right.l configure -compound \$align" -} -grid x $w.right.top -grid $w.right.left $w.right.l $w.right.right -grid x $w.right.bottom diff --git a/mingw/lib/tk8.4/demos/rmt b/mingw/lib/tk8.4/demos/rmt deleted file mode 100644 index 2dcb47b0..00000000 --- a/mingw/lib/tk8.4/demos/rmt +++ /dev/null @@ -1,210 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# rmt -- -# This script implements a simple remote-control mechanism for -# Tk applications. It allows you to select an application and -# then type commands to that application. -# -# RCS: @(#) $Id: rmt,v 1.3 2001/10/29 16:23:32 dkf Exp $ - -wm title . "Tk Remote Controller" -wm iconname . "Tk Remote" -wm minsize . 1 1 - -# The global variable below keeps track of the remote application -# that we're sending to. If it's an empty string then we execute -# the commands locally. - -set app "local" - -# The global variable below keeps track of whether we're in the -# middle of executing a command entered via the text. - -set executing 0 - -# The global variable below keeps track of the last command executed, -# so it can be re-executed in response to !! commands. - -set lastCommand "" - -# Create menu bar. Arrange to recreate all the information in the -# applications sub-menu whenever it is cascaded to. - -. configure -menu [menu .menu] -menu .menu.file -menu .menu.file.apps -postcommand fillAppsMenu -.menu add cascade -label "File" -underline 0 -menu .menu.file -.menu.file add cascade -label "Select Application" -underline 0 \ - -menu .menu.file.apps -.menu.file add command -label "Quit" -command "destroy ." -underline 0 - -# Create text window and scrollbar. - -text .t -relief sunken -bd 2 -yscrollcommand ".s set" -setgrid true -scrollbar .s -command ".t yview" -grid .t .s -sticky nsew -grid rowconfigure . 0 -weight 1 -grid columnconfigure . 0 -weight 1 - -# Create a binding to forward commands to the target application, -# plus modify many of the built-in bindings so that only information -# in the current command can be deleted (can still set the cursor -# earlier in the text and select and insert; just can't delete). - -bindtags .t {.t Text . all} -bind .t { - .t mark set insert {end - 1c} - .t insert insert \n - invoke - break -} -bind .t { - catch {.t tag remove sel sel.first promptEnd} - if {[.t tag nextrange sel 1.0 end] == ""} { - if [.t compare insert < promptEnd] { - break - } - } -} -bind .t { - catch {.t tag remove sel sel.first promptEnd} - if {[.t tag nextrange sel 1.0 end] == ""} { - if [.t compare insert <= promptEnd] { - break - } - } -} -bind .t { - if [.t compare insert < promptEnd] { - break - } -} -bind .t { - if [.t compare insert < promptEnd] { - .t mark set insert promptEnd - } -} -bind .t { - if [.t compare insert < promptEnd] { - break - } -} -bind .t { - if [.t compare insert < promptEnd] { - break - } -} -bind .t { - if [.t compare insert <= promptEnd] { - break - } -} -bind .t { - if [.t compare insert <= promptEnd] { - break - } -} -auto_load tkTextInsert -proc tkTextInsert {w s} { - if {$s == ""} { - return - } - catch { - if {[$w compare sel.first <= insert] - && [$w compare sel.last >= insert]} { - $w tag remove sel sel.first promptEnd - $w delete sel.first sel.last - } - } - $w insert insert $s - $w see insert -} - -.t configure -font {Courier 12} -.t tag configure bold -font {Courier 12 bold} - -# The procedure below is used to print out a prompt at the -# insertion point (which should be at the beginning of a line -# right now). - -proc prompt {} { - global app - .t insert insert "$app: " - .t mark set promptEnd {insert} - .t mark gravity promptEnd left - .t tag add bold {promptEnd linestart} promptEnd -} - -# The procedure below executes a command (it takes everything on the -# current line after the prompt and either sends it to the remote -# application or executes it locally, depending on "app". - -proc invoke {} { - global app executing lastCommand - set cmd [.t get promptEnd insert] - incr executing 1 - if [info complete $cmd] { - if {$cmd == "!!\n"} { - set cmd $lastCommand - } else { - set lastCommand $cmd - } - if {$app == "local"} { - set result [catch [list uplevel #0 $cmd] msg] - } else { - set result [catch [list send $app $cmd] msg] - } - if {$result != 0} { - .t insert insert "Error: $msg\n" - } else { - if {$msg != ""} { - .t insert insert $msg\n - } - } - prompt - .t mark set promptEnd insert - } - incr executing -1 - .t yview -pickplace insert -} - -# The following procedure is invoked to change the application that -# we're talking to. It also updates the prompt for the current -# command, unless we're in the middle of executing a command from -# the text item (in which case a new prompt is about to be output -# so there's no need to change the old one). - -proc newApp appName { - global app executing - set app $appName - if !$executing { - .t mark gravity promptEnd right - .t delete "promptEnd linestart" promptEnd - .t insert promptEnd "$appName: " - .t tag add bold "promptEnd linestart" promptEnd - .t mark gravity promptEnd left - } - return {} -} - -# The procedure below will fill in the applications sub-menu with a list -# of all the applications that currently exist. - -proc fillAppsMenu {} { - set m .menu.file.apps - catch {$m delete 0 last} - foreach i [lsort [winfo interps]] { - $m add command -label $i -command [list newApp $i] - } - $m add command -label local -command {newApp local} -} - -set app [winfo name .] -prompt -focus .t - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/rolodex b/mingw/lib/tk8.4/demos/rolodex deleted file mode 100644 index e117edf2..00000000 --- a/mingw/lib/tk8.4/demos/rolodex +++ /dev/null @@ -1,196 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" ${1+"$@"} - -# rolodex -- -# This script was written as an entry in Tom LaStrange's rolodex -# benchmark. It creates something that has some of the look and -# feel of a rolodex program, although it's lifeless and doesn't -# actually do the rolodex application. -# -# RCS: @(#) $Id: rolodex,v 1.4 2001/11/05 10:13:53 dkf Exp $ - -foreach i [winfo child .] { - catch {destroy $i} -} - -set version 1.2 - -#------------------------------------------ -# Phase 0: create the front end. -#------------------------------------------ - -frame .frame -relief flat -pack .frame -side top -fill y -anchor center - -set names {{} Name: Address: {} {} {Home Phone:} {Work Phone:} Fax:} -foreach i {1 2 3 4 5 6 7} { - label .frame.label$i -text [lindex $names $i] -anchor e - entry .frame.entry$i -width 35 - grid .frame.label$i .frame.entry$i -sticky ew -pady 2 -padx 1 -} - -frame .buttons -pack .buttons -side bottom -pady 2 -anchor center -button .buttons.clear -text Clear -button .buttons.add -text Add -button .buttons.search -text Search -button .buttons.delete -text "Delete ..." -pack .buttons.clear .buttons.add .buttons.search .buttons.delete \ - -side left -padx 2 - -#------------------------------------------ -# Phase 1: Add menus, dialog boxes -#------------------------------------------ - -frame .menu -relief raised -borderwidth 1 -pack .menu -before .frame -side top -fill x - -menubutton .menu.file -text "File" -menu .menu.file.m -underline 0 -menu .menu.file.m -.menu.file.m add command -label "Load ..." -command fileAction -underline 0 -.menu.file.m add command -label "Exit" -command {destroy .} -underline 0 -pack .menu.file -side left - -menubutton .menu.help -text "Help" -menu .menu.help.m -underline 0 -menu .menu.help.m -pack .menu.help -side right - -proc deleteAction {} { - if {[tk_dialog .delete {Confirm Action} {Are you sure?} {} 0 Cancel] - == 0} { - clearAction - } -} -.buttons.delete config -command deleteAction - -proc fileAction {} { - tk_dialog .fileSelection {File Selection} {This is a dummy file selection dialog box, which is used because there isn't a good file selection dialog built into Tk yet.} {} 0 OK - puts stderr {dummy file name} -} - -#------------------------------------------ -# Phase 3: Print contents of card -#------------------------------------------ - -proc addAction {} { - global names - foreach i {1 2 3 4 5 6 7} { - puts stderr [format "%-12s %s" [lindex $names $i] [.frame.entry$i get]] - } -} -.buttons.add config -command addAction - -#------------------------------------------ -# Phase 4: Miscellaneous other actions -#------------------------------------------ - -proc clearAction {} { - foreach i {1 2 3 4 5 6 7} { - .frame.entry$i delete 0 end - } -} -.buttons.clear config -command clearAction - -proc fillCard {} { - clearAction - .frame.entry1 insert 0 "John Ousterhout" - .frame.entry2 insert 0 "CS Division, Department of EECS" - .frame.entry3 insert 0 "University of California" - .frame.entry4 insert 0 "Berkeley, CA 94720" - .frame.entry5 insert 0 "private" - .frame.entry6 insert 0 "510-642-0865" - .frame.entry7 insert 0 "510-642-5775" -} -.buttons.search config -command "addAction; fillCard" - -#---------------------------------------------------- -# Phase 5: Accelerators, mnemonics, command-line info -#---------------------------------------------------- - -.buttons.clear config -text "Clear Ctrl+C" -bind . clearAction -.buttons.add config -text "Add Ctrl+A" -bind . addAction -.buttons.search config -text "Search Ctrl+S" -bind . "addAction; fillCard" -.buttons.delete config -text "Delete... Ctrl+D" -bind . deleteAction - -.menu.file.m entryconfig 1 -accel Ctrl+F -bind . fileAction -.menu.file.m entryconfig 2 -accel Ctrl+Q -bind . {destroy .} - -focus .frame.entry1 - -#---------------------------------------------------- -# Phase 6: help -#---------------------------------------------------- - -proc Help {topic {x 0} {y 0}} { - global helpTopics helpCmds - if {$topic == ""} return - while {[info exists helpCmds($topic)]} { - set topic [eval $helpCmds($topic)] - } - if [info exists helpTopics($topic)] { - set msg $helpTopics($topic) - } else { - set msg "Sorry, but no help is available for this topic" - } - tk_dialog .help {Rolodex Help} "Information on $topic:\n\n$msg" \ - {} 0 OK -} - -proc getMenuTopic {w x y} { - return $w.[$w index @[expr {$y-[winfo rooty $w]}]] -} - -event add <> -bind . <> {Help [winfo containing %X %Y] %X %Y} -bind Menu <> {Help [winfo containing %X %Y] %X %Y} - -# Help text and commands follow: - -set helpTopics(.menu.file) {This is the "file" menu. It can be used to invoke some overall operations on the rolodex applications, such as loading a file or exiting.} - -set helpCmds(.menu.file.m) {getMenuTopic $topic $x $y} -set helpTopics(.menu.file.m.1) {The "Load" entry in the "File" menu posts a dialog box that you can use to select a rolodex file} -set helpTopics(.menu.file.m.2) {The "Exit" entry in the "File" menu causes the rolodex application to terminate} -set helpCmds(.menu.file.m.none) {set topic ".menu.file"} - -set helpTopics(.frame.entry1) {In this field of the rolodex entry you should type the person's name} -set helpTopics(.frame.entry2) {In this field of the rolodex entry you should type the first line of the person's address} -set helpTopics(.frame.entry3) {In this field of the rolodex entry you should type the second line of the person's address} -set helpTopics(.frame.entry4) {In this field of the rolodex entry you should type the third line of the person's address} -set helpTopics(.frame.entry5) {In this field of the rolodex entry you should type the person's home phone number, or "private" if the person doesn't want his or her number publicized} -set helpTopics(.frame.entry6) {In this field of the rolodex entry you should type the person's work phone number} -set helpTopics(.frame.entry7) {In this field of the rolodex entry you should type the phone number for the person's FAX machine} - -set helpCmds(.frame.label1) {set topic .frame.entry1} -set helpCmds(.frame.label2) {set topic .frame.entry2} -set helpCmds(.frame.label3) {set topic .frame.entry3} -set helpCmds(.frame.label4) {set topic .frame.entry4} -set helpCmds(.frame.label5) {set topic .frame.entry5} -set helpCmds(.frame.label6) {set topic .frame.entry6} -set helpCmds(.frame.label7) {set topic .frame.entry7} - -set helpTopics(context) {Unfortunately, this application doesn't support context-sensitive help in the usual way, because when this demo was written Tk didn't have a grab mechanism and this is needed for context-sensitive help. Instead, you can achieve much the same effect by simply moving the mouse over the window you're curious about and pressing the Help or F1 keys. You can do this anytime.} -set helpTopics(help) {This application provides only very crude help. Besides the entries in this menu, you can get help on individual windows by moving the mouse cursor over the window and pressing the Help or F1 keys.} -set helpTopics(window) {This window is a dummy rolodex application created as part of Tom LaStrange's toolkit benchmark. It doesn't really do anything useful except to demonstrate a few features of the Tk toolkit.} -set helpTopics(keys) "The following accelerator keys are defined for this application (in addition to those already available for the entry windows):\n\nCtrl+A:\t\tAdd\nCtrl+C:\t\tClear\nCtrl+D:\t\tDelete\nCtrl+F:\t\tEnter file name\nCtrl+Q:\t\tExit application (quit)\nCtrl+S:\t\tSearch (dummy operation)" -set helpTopics(version) "This is version $version." - -# Entries in "Help" menu - -.menu.help.m add command -label "On Context..." -command {Help context} \ - -underline 3 -.menu.help.m add command -label "On Help..." -command {Help help} \ - -underline 3 -.menu.help.m add command -label "On Window..." -command {Help window} \ - -underline 3 -.menu.help.m add command -label "On Keys..." -command {Help keys} \ - -underline 3 -.menu.help.m add command -label "On Version..." -command {Help version} \ - -underline 3 diff --git a/mingw/lib/tk8.4/demos/ruler.tcl b/mingw/lib/tk8.4/demos/ruler.tcl deleted file mode 100644 index 86f18dce..00000000 --- a/mingw/lib/tk8.4/demos/ruler.tcl +++ /dev/null @@ -1,173 +0,0 @@ -# ruler.tcl -- -# -# This demonstration script creates a canvas widget that displays a ruler -# with tab stops that can be set, moved, and deleted. -# -# RCS: @(#) $Id: ruler.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# rulerMkTab -- -# This procedure creates a new triangular polygon in a canvas to -# represent a tab stop. -# -# Arguments: -# c - The canvas window. -# x, y - Coordinates at which to create the tab stop. - -proc rulerMkTab {c x y} { - upvar #0 demo_rulerInfo v - $c create polygon $x $y [expr {$x+$v(size)}] [expr {$y+$v(size)}] \ - [expr {$x-$v(size)}] [expr {$y+$v(size)}] -} - -set w .ruler -global tk_library -catch {destroy $w} -toplevel $w -wm title $w "Ruler Demonstration" -wm iconname $w "ruler" -positionWindow $w -set c $w.c - -label $w.msg -font $font -wraplength 5i -justify left -text "This canvas widget shows a mock-up of a ruler. You can create tab stops by dragging them out of the well to the right of the ruler. You can also drag existing tab stops. If you drag a tab stop far enough up or down so that it turns dim, it will be deleted when you release the mouse button." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -canvas $c -width 14.8c -height 2.5c -pack $w.c -side top -fill x - -set demo_rulerInfo(grid) .25c -set demo_rulerInfo(left) [winfo fpixels $c 1c] -set demo_rulerInfo(right) [winfo fpixels $c 13c] -set demo_rulerInfo(top) [winfo fpixels $c 1c] -set demo_rulerInfo(bottom) [winfo fpixels $c 1.5c] -set demo_rulerInfo(size) [winfo fpixels $c .2c] -set demo_rulerInfo(normalStyle) "-fill black" -if {[winfo depth $c] > 1} { - set demo_rulerInfo(activeStyle) "-fill red -stipple {}" - set demo_rulerInfo(deleteStyle) [list -fill red \ - -stipple @[file join $tk_library demos images gray25.bmp]] -} else { - set demo_rulerInfo(activeStyle) "-fill black -stipple {}" - set demo_rulerInfo(deleteStyle) [list -fill black \ - -stipple @[file join $tk_library demos images gray25.bmp]] -} - -$c create line 1c 0.5c 1c 1c 13c 1c 13c 0.5c -width 1 -for {set i 0} {$i < 12} {incr i} { - set x [expr {$i+1}] - $c create line ${x}c 1c ${x}c 0.6c -width 1 - $c create line $x.25c 1c $x.25c 0.8c -width 1 - $c create line $x.5c 1c $x.5c 0.7c -width 1 - $c create line $x.75c 1c $x.75c 0.8c -width 1 - $c create text $x.15c .75c -text $i -anchor sw -} -$c addtag well withtag [$c create rect 13.2c 1c 13.8c 0.5c \ - -outline black -fill [lindex [$c config -bg] 4]] -$c addtag well withtag [rulerMkTab $c [winfo pixels $c 13.5c] \ - [winfo pixels $c .65c]] - -$c bind well <1> "rulerNewTab $c %x %y" -$c bind tab <1> "rulerSelectTab $c %x %y" -bind $c "rulerMoveTab $c %x %y" -bind $c "rulerReleaseTab $c" - -# rulerNewTab -- -# Does all the work of creating a tab stop, including creating the -# triangle object and adding tags to it to give it tab behavior. -# -# Arguments: -# c - The canvas window. -# x, y - The coordinates of the tab stop. - -proc rulerNewTab {c x y} { - upvar #0 demo_rulerInfo v - $c addtag active withtag [rulerMkTab $c $x $y] - $c addtag tab withtag active - set v(x) $x - set v(y) $y - rulerMoveTab $c $x $y -} - -# rulerSelectTab -- -# This procedure is invoked when mouse button 1 is pressed over -# a tab. It remembers information about the tab so that it can -# be dragged interactively. -# -# Arguments: -# c - The canvas widget. -# x, y - The coordinates of the mouse (identifies the point by -# which the tab was picked up for dragging). - -proc rulerSelectTab {c x y} { - upvar #0 demo_rulerInfo v - set v(x) [$c canvasx $x $v(grid)] - set v(y) [expr {$v(top)+2}] - $c addtag active withtag current - eval "$c itemconf active $v(activeStyle)" - $c raise active -} - -# rulerMoveTab -- -# This procedure is invoked during mouse motion events to drag a tab. -# It adjusts the position of the tab, and changes its appearance if -# it is about to be dragged out of the ruler. -# -# Arguments: -# c - The canvas widget. -# x, y - The coordinates of the mouse. - -proc rulerMoveTab {c x y} { - upvar #0 demo_rulerInfo v - if {[$c find withtag active] == ""} { - return - } - set cx [$c canvasx $x $v(grid)] - set cy [$c canvasy $y] - if {$cx < $v(left)} { - set cx $v(left) - } - if {$cx > $v(right)} { - set cx $v(right) - } - if {($cy >= $v(top)) && ($cy <= $v(bottom))} { - set cy [expr {$v(top)+2}] - eval "$c itemconf active $v(activeStyle)" - } else { - set cy [expr {$cy-$v(size)-2}] - eval "$c itemconf active $v(deleteStyle)" - } - $c move active [expr {$cx-$v(x)}] [expr {$cy-$v(y)}] - set v(x) $cx - set v(y) $cy -} - -# rulerReleaseTab -- -# This procedure is invoked during button release events that end -# a tab drag operation. It deselects the tab and deletes the tab if -# it was dragged out of the ruler. -# -# Arguments: -# c - The canvas widget. -# x, y - The coordinates of the mouse. - -proc rulerReleaseTab c { - upvar #0 demo_rulerInfo v - if {[$c find withtag active] == {}} { - return - } - if {$v(y) != $v(top)+2} { - $c delete active - } else { - eval "$c itemconf active $v(normalStyle)" - $c dtag active - } -} diff --git a/mingw/lib/tk8.4/demos/sayings.tcl b/mingw/lib/tk8.4/demos/sayings.tcl deleted file mode 100644 index a31012f2..00000000 --- a/mingw/lib/tk8.4/demos/sayings.tcl +++ /dev/null @@ -1,46 +0,0 @@ -# sayings.tcl -- -# -# This demonstration script creates a listbox that can be scrolled -# both horizontally and vertically. It displays a collection of -# well-known sayings. -# -# RCS: @(#) $Id: sayings.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .sayings -catch {destroy $w} -toplevel $w -wm title $w "Listbox Demonstration (well-known sayings)" -wm iconname $w "sayings" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "The listbox below contains a collection of well-known sayings. You can scan the list using either of the scrollbars or by dragging in the listbox window with button 2 pressed." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth 10 -pack $w.frame -side top -expand yes -fill y - - -scrollbar $w.frame.yscroll -command "$w.frame.list yview" -scrollbar $w.frame.xscroll -orient horizontal \ - -command "$w.frame.list xview" -listbox $w.frame.list -width 20 -height 10 -setgrid 1 \ - -yscroll "$w.frame.yscroll set" -xscroll "$w.frame.xscroll set" - -grid $w.frame.list -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid $w.frame.yscroll -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news -grid $w.frame.xscroll -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news -grid rowconfig $w.frame 0 -weight 1 -minsize 0 -grid columnconfig $w.frame 0 -weight 1 -minsize 0 - - -$w.frame.list insert 0 "Waste not, want not" "Early to bed and early to rise makes a man healthy, wealthy, and wise" "Ask not what your country can do for you, ask what you can do for your country" "I shall return" "NOT" "A picture is worth a thousand words" "User interfaces are hard to build" "Thou shalt not steal" "A penny for your thoughts" "Fool me once, shame on you; fool me twice, shame on me" "Every cloud has a silver lining" "Where there's smoke there's fire" "It takes one to know one" "Curiosity killed the cat" "Take this job and shove it" "Up a creek without a paddle" "I'm mad as hell and I'm not going to take it any more" "An apple a day keeps the doctor away" "Don't look a gift horse in the mouth" diff --git a/mingw/lib/tk8.4/demos/search.tcl b/mingw/lib/tk8.4/demos/search.tcl deleted file mode 100644 index d5740b6f..00000000 --- a/mingw/lib/tk8.4/demos/search.tcl +++ /dev/null @@ -1,141 +0,0 @@ -# search.tcl -- -# -# This demonstration script creates a collection of widgets that -# allow you to load a file into a text widget, then perform searches -# on that file. -# -# RCS: @(#) $Id: search.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -# textLoadFile -- -# This procedure below loads a file into a text widget, discarding -# the previous contents of the widget. Tags for the old widget are -# not affected, however. -# -# Arguments: -# w - The window into which to load the file. Must be a -# text widget. -# file - The name of the file to load. Must be readable. - -proc textLoadFile {w file} { - set f [open $file] - $w delete 1.0 end - while {![eof $f]} { - $w insert end [read $f 10000] - } - close $f -} - -# textSearch -- -# Search for all instances of a given string in a text widget and -# apply a given tag to each instance found. -# -# Arguments: -# w - The window in which to search. Must be a text widget. -# string - The string to search for. The search is done using -# exact matching only; no special characters. -# tag - Tag to apply to each instance of a matching string. - -proc textSearch {w string tag} { - $w tag remove search 0.0 end - if {$string == ""} { - return - } - set cur 1.0 - while 1 { - set cur [$w search -count length $string $cur end] - if {$cur == ""} { - break - } - $w tag add $tag $cur "$cur + $length char" - set cur [$w index "$cur + $length char"] - } -} - -# textToggle -- -# This procedure is invoked repeatedly to invoke two commands at -# periodic intervals. It normally reschedules itself after each -# execution but if an error occurs (e.g. because the window was -# deleted) then it doesn't reschedule itself. -# -# Arguments: -# cmd1 - Command to execute when procedure is called. -# sleep1 - Ms to sleep after executing cmd1 before executing cmd2. -# cmd2 - Command to execute in the *next* invocation of this -# procedure. -# sleep2 - Ms to sleep after executing cmd2 before executing cmd1 again. - -proc textToggle {cmd1 sleep1 cmd2 sleep2} { - catch { - eval $cmd1 - after $sleep1 [list textToggle $cmd2 $sleep2 $cmd1 $sleep1] - } -} - -set w .search -catch {destroy $w} -toplevel $w -wm title $w "Text Demonstration - Search and Highlight" -wm iconname $w "search" -positionWindow $w - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.file -label $w.file.label -text "File name:" -width 13 -anchor w -entry $w.file.entry -width 40 -textvariable fileName -button $w.file.button -text "Load File" \ - -command "textLoadFile $w.text \$fileName" -pack $w.file.label $w.file.entry -side left -pack $w.file.button -side left -pady 5 -padx 10 -bind $w.file.entry " - textLoadFile $w.text \$fileName - focus $w.string.entry -" -focus $w.file.entry - -frame $w.string -label $w.string.label -text "Search string:" -width 13 -anchor w -entry $w.string.entry -width 40 -textvariable searchString -button $w.string.button -text "Highlight" \ - -command "textSearch $w.text \$searchString search" -pack $w.string.label $w.string.entry -side left -pack $w.string.button -side left -pady 5 -padx 10 -bind $w.string.entry "textSearch $w.text \$searchString search" - -text $w.text -yscrollcommand "$w.scroll set" -setgrid true -scrollbar $w.scroll -command "$w.text yview" -pack $w.file $w.string -side top -fill x -pack $w.scroll -side right -fill y -pack $w.text -expand yes -fill both - -# Set up display styles for text highlighting. - -if {[winfo depth $w] > 1} { - textToggle "$w.text tag configure search -background \ - #ce5555 -foreground white" 800 "$w.text tag configure \ - search -background {} -foreground {}" 200 -} else { - textToggle "$w.text tag configure search -background \ - black -foreground white" 800 "$w.text tag configure \ - search -background {} -foreground {}" 200 -} -$w.text insert 1.0 \ -{This window demonstrates how to use the tagging facilities in text -widgets to implement a searching mechanism. First, type a file name -in the top entry, then type or click on "Load File". Then -type a string in the lower entry and type or click on -"Load File". This will cause all of the instances of the string to -be tagged with the tag "search", and it will arrange for the tag's -display attributes to change to make all of the strings blink.} -$w.text mark set insert 0.0 - -set fileName "" -set searchString "" diff --git a/mingw/lib/tk8.4/demos/spin.tcl b/mingw/lib/tk8.4/demos/spin.tcl deleted file mode 100644 index 61b4a38d..00000000 --- a/mingw/lib/tk8.4/demos/spin.tcl +++ /dev/null @@ -1,55 +0,0 @@ -# spin.tcl -- -# -# This demonstration script creates several spinbox widgets. -# -# RCS: @(#) $Id: spin.tcl,v 1.1 2001/10/30 11:21:50 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .spin -catch {destroy $w} -toplevel $w -wm title $w "Spinbox Demonstration" -wm iconname $w "spin" -positionWindow $w - -label $w.msg -font $font -wraplength 5i -justify left -text "Three different\ - spin-boxes are displayed below. You can add characters by pointing,\ - clicking and typing. The normal Motif editing characters are\ - supported, along with many Emacs bindings. For example, Backspace\ - and Control-h delete the character to the left of the insertion\ - cursor and Delete and Control-d delete the chararacter to the right\ - of the insertion cursor. For values that are too large to fit in the\ - window all at once, you can scan through the value by dragging with\ - mouse button2 pressed. Note that the first spin-box will only permit\ - you to type in integers, and the third selects from a list of\ - Australian cities." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -set australianCities { - Canberra Sydney Melbourne Perth Adelaide Brisbane - Hobart Darwin "Alice Springs" -} - -spinbox $w.s1 -from 1 -to 10 -width 10 -validate key \ - -vcmd {string is integer %P} -spinbox $w.s2 -from 0 -to 3 -increment .5 -format %05.2f -width 10 -spinbox $w.s3 -values $australianCities -width 10 - -#entry $w.e1 -#entry $w.e2 -#entry $w.e3 -pack $w.s1 $w.s2 $w.s3 -side top -pady 5 -padx 10 ;#-fill x - -#$w.e1 insert 0 "Initial value" -#$w.e2 insert end "This entry contains a long value, much too long " -#$w.e2 insert end "to fit in the window at one time, so long in fact " -#$w.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.4/demos/square b/mingw/lib/tk8.4/demos/square deleted file mode 100644 index b02e187e..00000000 --- a/mingw/lib/tk8.4/demos/square +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# square -- -# This script generates a demo application containing only a "square" -# widget. It's only usable in the "tktest" application or if Tk has -# been compiled with tkSquare.c. This demo arranges the following -# bindings for the widget: -# -# Button-1 press/drag: moves square to mouse -# "a": toggle size animation on/off -# -# RCS: @(#) $Id: square,v 1.2 1998/09/14 18:23:30 stanton Exp $ - -square .s -pack .s -expand yes -fill both -wm minsize . 1 1 - -bind .s <1> {center %x %y} -bind .s {center %x %y} -bind .s a animate -focus .s - -# The procedure below centers the square on a given position. - -proc center {x y} { - set a [.s size] - .s position [expr $x-($a/2)] [expr $y-($a/2)] -} - -# The procedures below provide a simple form of animation where -# the box changes size in a pulsing pattern: larger, smaller, larger, -# and so on. - -set inc 0 -proc animate {} { - global inc - if {$inc == 0} { - set inc 3 - timer - } else { - set inc 0 - } -} - -proc timer {} { - global inc - set s [.s size] - if {$inc == 0} return - if {$s >= 40} {set inc -3} - if {$s <= 10} {set inc 3} - .s size [expr {$s+$inc}] - after 30 timer -} diff --git a/mingw/lib/tk8.4/demos/states.tcl b/mingw/lib/tk8.4/demos/states.tcl deleted file mode 100644 index 7b7df6d0..00000000 --- a/mingw/lib/tk8.4/demos/states.tcl +++ /dev/null @@ -1,45 +0,0 @@ -# states.tcl -- -# -# This demonstration script creates a listbox widget that displays -# the names of the 50 states in the United States of America. -# -# RCS: @(#) $Id: states.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .states -catch {destroy $w} -toplevel $w -wm title $w "Listbox Demonstration (50 states)" -wm iconname $w "states" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing the 50 states is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by scanning. To scan, press button 2 in the widget and drag up or down." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth .5c -pack $w.frame -side top -expand yes -fill y - -scrollbar $w.frame.scroll -command "$w.frame.list yview" -listbox $w.frame.list -yscroll "$w.frame.scroll set" -setgrid 1 -height 12 -pack $w.frame.scroll -side right -fill y -pack $w.frame.list -side left -expand 1 -fill both - -$w.frame.list insert 0 Alabama Alaska Arizona Arkansas California \ - Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois \ - Indiana Iowa Kansas Kentucky Louisiana Maine Maryland \ - Massachusetts Michigan Minnesota Mississippi Missouri \ - Montana Nebraska Nevada "New Hampshire" "New Jersey" "New Mexico" \ - "New York" "North Carolina" "North Dakota" \ - Ohio Oklahoma Oregon Pennsylvania "Rhode Island" \ - "South Carolina" "South Dakota" \ - Tennessee Texas Utah Vermont Virginia Washington \ - "West Virginia" Wisconsin Wyoming diff --git a/mingw/lib/tk8.4/demos/style.tcl b/mingw/lib/tk8.4/demos/style.tcl deleted file mode 100644 index bc3ce80e..00000000 --- a/mingw/lib/tk8.4/demos/style.tcl +++ /dev/null @@ -1,152 +0,0 @@ -# style.tcl -- -# -# This demonstration script creates a text widget that illustrates the -# various display styles that may be set for tags. -# -# RCS: @(#) $Id: style.tcl,v 1.2 1998/09/14 18:23:30 stanton Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .style -catch {destroy $w} -toplevel $w -wm title $w "Text Demonstration - Display Styles" -wm iconname $w "style" -positionWindow $w - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -text $w.text -yscrollcommand "$w.scroll set" -setgrid true \ - -width 70 -height 32 -wrap word -scrollbar $w.scroll -command "$w.text yview" -pack $w.scroll -side right -fill y -pack $w.text -expand yes -fill both - -# Set up display styles - -$w.text tag configure bold -font {Courier 12 bold italic} -$w.text tag configure big -font {Courier 14 bold} -$w.text tag configure verybig -font {Helvetica 24 bold} -if {[winfo depth $w] > 1} { - $w.text tag configure color1 -background #a0b7ce - $w.text tag configure color2 -foreground red - $w.text tag configure raised -relief raised -borderwidth 1 - $w.text tag configure sunken -relief sunken -borderwidth 1 -} else { - $w.text tag configure color1 -background black -foreground white - $w.text tag configure color2 -background black -foreground white - $w.text tag configure raised -background white -relief raised \ - -borderwidth 1 - $w.text tag configure sunken -background white -relief sunken \ - -borderwidth 1 -} -$w.text tag configure bgstipple -background black -borderwidth 0 \ - -bgstipple gray12 -$w.text tag configure fgstipple -fgstipple gray50 -$w.text tag configure underline -underline on -$w.text tag configure overstrike -overstrike on -$w.text tag configure right -justify right -$w.text tag configure center -justify center -$w.text tag configure super -offset 4p -font {Courier 10} -$w.text tag configure sub -offset -2p -font {Courier 10} -$w.text tag configure margins -lmargin1 12m -lmargin2 6m -rmargin 10m -$w.text tag configure spacing -spacing1 10p -spacing2 2p \ - -lmargin1 12m -lmargin2 6m -rmargin 10m - -$w.text insert end {Text widgets like this one allow you to display information in a -variety of styles. Display styles are controlled using a mechanism -called } -$w.text insert end tags bold -$w.text insert end {. Tags are just textual names that you can apply to one -or more ranges of characters within a text widget. You can configure -tags with various display styles. If you do this, then the tagged -characters will be displayed with the styles you chose. The -available display styles are: -} -$w.text insert end "\n1. Font." big -$w.text insert end " You can choose any X font, " -$w.text insert end large verybig -$w.text insert end " or " -$w.text insert end "small.\n" -$w.text insert end "\n2. Color." big -$w.text insert end " You can change either the " -$w.text insert end background color1 -$w.text insert end " or " -$w.text insert end foreground color2 -$w.text insert end "\ncolor, or " -$w.text insert end both {color1 color2} -$w.text insert end ".\n" -$w.text insert end "\n3. Stippling." big -$w.text insert end " You can cause either the " -$w.text insert end background bgstipple -$w.text insert end " or " -$w.text insert end foreground fgstipple -$w.text insert end { -information to be drawn with a stipple fill instead of a solid fill. -} -$w.text insert end "\n4. Underlining." big -$w.text insert end " You can " -$w.text insert end underline underline -$w.text insert end " ranges of text.\n" -$w.text insert end "\n5. Overstrikes." big -$w.text insert end " You can " -$w.text insert end "draw lines through" overstrike -$w.text insert end " ranges of text.\n" -$w.text insert end "\n6. 3-D effects." big -$w.text insert end { You can arrange for the background to be drawn -with a border that makes characters appear either } -$w.text insert end raised raised -$w.text insert end " or " -$w.text insert end sunken sunken -$w.text insert end ".\n" -$w.text insert end "\n7. Justification." big -$w.text insert end " You can arrange for lines to be displayed\n" -$w.text insert end "left-justified,\n" -$w.text insert end "right-justified, or\n" right -$w.text insert end "centered.\n" center -$w.text insert end "\n8. Superscripts and subscripts." big -$w.text insert end " You can control the vertical\n" -$w.text insert end "position of text to generate superscript effects like 10" -$w.text insert end "n" super -$w.text insert end " or\nsubscript effects like X" -$w.text insert end "i" sub -$w.text insert end ".\n" -$w.text insert end "\n9. Margins." big -$w.text insert end " You can control the amount of extra space left" -$w.text insert end " on\neach side of the text:\n" -$w.text insert end "This paragraph is an example of the use of " margins -$w.text insert end "margins. It consists of a single line of text " margins -$w.text insert end "that wraps around on the screen. There are two " margins -$w.text insert end "separate left margin values, one for the first " margins -$w.text insert end "display line associated with the text line, " margins -$w.text insert end "and one for the subsequent display lines, which " margins -$w.text insert end "occur because of wrapping. There is also a " margins -$w.text insert end "separate specification for the right margin, " margins -$w.text insert end "which is used to choose wrap points for lines.\n" margins -$w.text insert end "\n10. Spacing." big -$w.text insert end " You can control the spacing of lines with three\n" -$w.text insert end "separate parameters. \"Spacing1\" tells how much " -$w.text insert end "extra space to leave\nabove a line, \"spacing3\" " -$w.text insert end "tells how much space to leave below a line,\nand " -$w.text insert end "if a text line wraps, \"spacing2\" tells how much " -$w.text insert end "space to leave\nbetween the display lines that " -$w.text insert end "make up the text line.\n" -$w.text insert end "These indented paragraphs illustrate how spacing " spacing -$w.text insert end "can be used. Each paragraph is actually a " spacing -$w.text insert end "single line in the text widget, which is " spacing -$w.text insert end "word-wrapped by the widget.\n" spacing -$w.text insert end "Spacing1 is set to 10 points for this text, " spacing -$w.text insert end "which results in relatively large gaps between " spacing -$w.text insert end "the paragraphs. Spacing2 is set to 2 points, " spacing -$w.text insert end "which results in just a bit of extra space " spacing -$w.text insert end "within a pararaph. Spacing3 isn't used " spacing -$w.text insert end "in this example.\n" spacing -$w.text insert end "To see where the space is, select ranges of " spacing -$w.text insert end "text within these paragraphs. The selection " spacing -$w.text insert end "highlight will cover the extra space." spacing diff --git a/mingw/lib/tk8.4/demos/tcolor b/mingw/lib/tk8.4/demos/tcolor deleted file mode 100644 index ae3cad0f..00000000 --- a/mingw/lib/tk8.4/demos/tcolor +++ /dev/null @@ -1,366 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# tcolor -- -# This script implements a simple color editor, where you can -# create colors using either the RGB, HSB, or CYM color spaces -# and apply the color to existing applications. -# -# RCS: @(#) $Id: tcolor,v 1.3 2001/10/29 16:23:32 dkf Exp $ - -wm title . "Color Editor" - -# Global variables that control the program: -# -# colorSpace - Color space currently being used for -# editing. Must be "rgb", "cmy", or "hsb". -# label1, label2, label3 - Labels for the scales. -# red, green, blue - Current color intensities in decimal -# on a scale of 0-65535. -# color - A string giving the current color value -# in the proper form for x: -# #RRRRGGGGBBBB -# updating - Non-zero means that we're in the middle of -# updating the scales to load a new color,so -# information shouldn't be propagating back -# from the scales to other elements of the -# program: this would make an infinite loop. -# command - Holds the command that has been typed -# into the "Command" entry. -# autoUpdate - 1 means execute the update command -# automatically whenever the color changes. -# name - Name for new color, typed into entry. - -set colorSpace hsb -set red 65535 -set green 0 -set blue 0 -set color #ffff00000000 -set updating 0 -set autoUpdate 1 -set name "" - -if {$tcl_platform(platform) eq "unix"} { - option add *Entry.background white -} - -# Create the menu bar at the top of the window. - -. configure -menu [menu .menu] -menu .menu.file -.menu add cascade -menu .menu.file -label File -underline 0 -.menu.file add radio -label "RGB color space" -variable colorSpace \ - -value rgb -underline 0 -command {changeColorSpace rgb} -.menu.file add radio -label "CMY color space" -variable colorSpace \ - -value cmy -underline 0 -command {changeColorSpace cmy} -.menu.file add radio -label "HSB color space" -variable colorSpace \ - -value hsb -underline 0 -command {changeColorSpace hsb} -.menu.file add separator -.menu.file add radio -label "Automatic updates" -variable autoUpdate \ - -value 1 -underline 0 -.menu.file add radio -label "Manual updates" -variable autoUpdate \ - -value 0 -underline 0 -.menu.file add separator -.menu.file add command -label "Exit program" -underline 0 -command {exit} - -# Create the command entry window at the bottom of the window, along -# with the update button. - -labelframe .command -text "Command:" -padx {1m 0} -entry .command.e -relief sunken -borderwidth 2 -textvariable command \ - -font {Courier 12} -button .command.update -text Update -command doUpdate -pack .command.update -side right -pady .1c -padx {.25c 0} -pack .command.e -expand yes -fill x -ipadx 0.25c - - -# Create the listbox that holds all of the color names in rgb.txt, -# if an rgb.txt file can be found. - -grid .command -sticky nsew -row 2 -columnspan 3 -padx 1m -pady {0 1m} - -grid columnconfigure . {1 2} -weight 1 -grid rowconfigure . 0 -weight 1 -foreach i { - /usr/local/lib/X11/rgb.txt /usr/lib/X11/rgb.txt - /X11/R5/lib/X11/rgb.txt /X11/R4/lib/rgb/rgb.txt - /usr/openwin/lib/X11/rgb.txt -} { - if {![file readable $i]} { - continue; - } - set f [open $i] - labelframe .names -text "Select:" -padx .1c -pady .1c - grid .names -row 0 -column 0 -sticky nsew -padx .15c -pady .15c -rowspan 2 - grid columnconfigure . 0 -weight 1 - listbox .names.lb -width 20 -height 12 -yscrollcommand ".names.s set" \ - -relief sunken -borderwidth 2 -exportselection false - bind .names.lb { - tc_loadNamedColor [.names.lb get [.names.lb curselection]] - } - scrollbar .names.s -orient vertical -command ".names.lb yview" \ - -relief sunken -borderwidth 2 - pack .names.lb .names.s -side left -fill y -expand 1 - while {[gets $f line] >= 0} { - if {[regexp {^\s*\d+\s+\d+\s+\d+\s+(\S+)$} $line -> col]} { - .names.lb insert end $col - } - } - close $f - break -} - -# Create the three scales for editing the color, and the entry for -# typing in a color value. - -frame .adjust -foreach i {1 2 3} { - label .adjust.l$i -textvariable label$i -pady 0 - labelframe .adjust.$i -labelwidget .adjust.l$i -padx 1m -pady 1m - scale .scale$i -from 0 -to 1000 -length 6c -orient horizontal \ - -command tc_scaleChanged - pack .scale$i -in .adjust.$i - pack .adjust.$i -} -grid .adjust -row 0 -column 1 -sticky nsew -padx .15c -pady .15c - -labelframe .name -text "Name:" -padx 1m -pady 1m -entry .name.e -relief sunken -borderwidth 2 -textvariable name -width 10 \ - -font {Courier 12} -pack .name.e -side right -expand 1 -fill x -bind .name.e {tc_loadNamedColor $name} -grid .name -column 1 -row 1 -sticky nsew -padx .15c -pady .15c - -# Create the color display swatch on the right side of the window. - -labelframe .sample -text "Color:" -padx 1m -pady 1m -frame .sample.swatch -width 2c -height 5c -background $color -label .sample.value -textvariable color -width 13 -font {Courier 12} -pack .sample.swatch -side top -expand yes -fill both -pack .sample.value -side bottom -pady .25c -grid .sample -row 0 -column 2 -sticky nsew -padx .15c -pady .15c -rowspan 2 - - -# The procedure below is invoked when one of the scales is adjusted. -# It propagates color information from the current scale readings -# to everywhere else that it is used. - -proc tc_scaleChanged args { - global red green blue colorSpace color updating autoUpdate - if {$updating} { - return - } - switch $colorSpace { - rgb { - set red [format %.0f [expr {[.scale1 get]*65.535}]] - set green [format %.0f [expr {[.scale2 get]*65.535}]] - set blue [format %.0f [expr {[.scale3 get]*65.535}]] - } - cmy { - set red [format %.0f [expr {65535 - [.scale1 get]*65.535}]] - set green [format %.0f [expr {65535 - [.scale2 get]*65.535}]] - set blue [format %.0f [expr {65535 - [.scale3 get]*65.535}]] - } - hsb { - set list [hsbToRgb [expr {[.scale1 get]/1000.0}] \ - [expr {[.scale2 get]/1000.0}] \ - [expr {[.scale3 get]/1000.0}]] - set red [lindex $list 0] - set green [lindex $list 1] - set blue [lindex $list 2] - } - } - set color [format "#%04x%04x%04x" $red $green $blue] - .sample.swatch config -bg $color - if {$autoUpdate} doUpdate - update idletasks -} - -# The procedure below is invoked to update the scales from the -# current red, green, and blue intensities. It's invoked after -# a change in the color space and after a named color value has -# been loaded. - -proc tc_setScales {} { - global red green blue colorSpace updating - set updating 1 - switch $colorSpace { - rgb { - .scale1 set [format %.0f [expr {$red/65.535}]] - .scale2 set [format %.0f [expr {$green/65.535}]] - .scale3 set [format %.0f [expr {$blue/65.535}]] - } - cmy { - .scale1 set [format %.0f [expr {(65535-$red)/65.535}]] - .scale2 set [format %.0f [expr {(65535-$green)/65.535}]] - .scale3 set [format %.0f [expr {(65535-$blue)/65.535}]] - } - hsb { - set list [rgbToHsv $red $green $blue] - .scale1 set [format %.0f [expr {[lindex $list 0] * 1000.0}]] - .scale2 set [format %.0f [expr {[lindex $list 1] * 1000.0}]] - .scale3 set [format %.0f [expr {[lindex $list 2] * 1000.0}]] - } - } - set updating 0 -} - -# The procedure below is invoked when a named color has been -# selected from the listbox or typed into the entry. It loads -# the color into the editor. - -proc tc_loadNamedColor name { - global red green blue color autoUpdate - - if {[string index $name 0] != "#"} { - set list [winfo rgb .sample.swatch $name] - set red [lindex $list 0] - set green [lindex $list 1] - set blue [lindex $list 2] - } else { - switch [string length $name] { - 4 {set format "#%1x%1x%1x"; set shift 12} - 7 {set format "#%2x%2x%2x"; set shift 8} - 10 {set format "#%3x%3x%3x"; set shift 4} - 13 {set format "#%4x%4x%4x"; set shift 0} - default {error "syntax error in color name \"$name\""} - } - if {[scan $name $format red green blue] != 3} { - error "syntax error in color name \"$name\"" - } - set red [expr {$red<<$shift}] - set green [expr {$green<<$shift}] - set blue [expr {$blue<<$shift}] - } - tc_setScales - set color [format "#%04x%04x%04x" $red $green $blue] - .sample.swatch config -bg $color - if {$autoUpdate} doUpdate -} - -# The procedure below is invoked when a new color space is selected. -# It changes the labels on the scales and re-loads the scales with -# the appropriate values for the current color in the new color space - -proc changeColorSpace space { - global label1 label2 label3 - switch $space { - rgb { - set label1 "Adjust Red:" - set label2 "Adjust Green:" - set label3 "Adjust Blue:" - tc_setScales - return - } - cmy { - set label1 "Adjust Cyan:" - set label2 "Adjust Magenta:" - set label3 "Adjust Yellow:" - tc_setScales - return - } - hsb { - set label1 "Adjust Hue:" - set label2 "Adjust Saturation:" - set label3 "Adjust Brightness:" - tc_setScales - return - } - } -} - -# The procedure below converts an RGB value to HSB. It takes red, green, -# and blue components (0-65535) as arguments, and returns a list containing -# HSB components (floating-point, 0-1) as result. The code here is a copy -# of the code on page 615 of "Fundamentals of Interactive Computer Graphics" -# by Foley and Van Dam. - -proc rgbToHsv {red green blue} { - if {$red > $green} { - set max [expr {double($red)}] - set min [expr {double($green)}] - } else { - set max [expr {double($green)}] - set min [expr {double($red)}] - } - if {$blue > $max} { - set max [expr {double($blue)}] - } elseif {$blue < $min} { - set min [expr {double($blue)}] - } - set range [expr {$max-$min}] - if {$max == 0} { - set sat 0 - } else { - set sat [expr {($max-$min)/$max}] - } - if {$sat == 0} { - set hue 0 - } else { - set rc [expr {($max - $red)/$range}] - set gc [expr {($max - $green)/$range}] - set bc [expr {($max - $blue)/$range}] - if {$red == $max} { - set hue [expr {($bc - $gc)/6.0}] - } elseif {$green == $max} { - set hue [expr {(2 + $rc - $bc)/6.0}] - } else { - set hue [expr {(4 + $gc - $rc)/6.0}] - } - if {$hue < 0.0} { - set hue [expr {$hue + 1.0}] - } - } - return [list $hue $sat [expr {$max/65535}]] -} - -# The procedure below converts an HSB value to RGB. It takes hue, saturation, -# and value components (floating-point, 0-1.0) as arguments, and returns a -# list containing RGB components (integers, 0-65535) as result. The code -# here is a copy of the code on page 616 of "Fundamentals of Interactive -# Computer Graphics" by Foley and Van Dam. - -proc hsbToRgb {hue sat value} { - set v [format %.0f [expr {65535.0*$value}]] - if {$sat == 0} { - return "$v $v $v" - } else { - set hue [expr {$hue*6.0}] - if {$hue >= 6.0} { - set hue 0.0 - } - scan $hue. %d i - set f [expr {$hue-$i}] - set p [format %.0f [expr {65535.0*$value*(1 - $sat)}]] - set q [format %.0f [expr {65535.0*$value*(1 - ($sat*$f))}]] - set t [format %.0f [expr {65535.0*$value*(1 - ($sat*(1 - $f)))}]] - switch $i { - 0 {return "$v $t $p"} - 1 {return "$q $v $p"} - 2 {return "$p $v $t"} - 3 {return "$p $q $v"} - 4 {return "$t $p $v"} - 5 {return "$v $p $q"} - default {error "i value $i is out of range"} - } - } -} - -# The procedure below is invoked when the "Update" button is pressed, -# and whenever the color changes if update mode is enabled. It -# propagates color information as determined by the command in the -# Command entry. - -proc doUpdate {} { - global color command - set newCmd $command - regsub -all %% $command $color newCmd - eval $newCmd -} - -changeColorSpace hsb - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/text.tcl b/mingw/lib/tk8.4/demos/text.tcl deleted file mode 100644 index ca069177..00000000 --- a/mingw/lib/tk8.4/demos/text.tcl +++ /dev/null @@ -1,88 +0,0 @@ -# text.tcl -- -# -# This demonstration script creates a text widget that describes -# the basic editing functions. -# -# RCS: @(#) $Id: text.tcl,v 1.3 2001/11/15 11:55:26 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .text -catch {destroy $w} -toplevel $w -wm title $w "Text Demonstration - Basic Facilities" -wm iconname $w "text" -positionWindow $w - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -text $w.text -relief sunken -bd 2 -yscrollcommand "$w.scroll set" -setgrid 1 \ - -height 30 -undo 1 -autosep 1 -scrollbar $w.scroll -command "$w.text yview" -pack $w.scroll -side right -fill y -pack $w.text -expand yes -fill both -$w.text insert 0.0 \ -{This window is a text widget. It displays one or more lines of text -and allows you to edit the text. Here is a summary of the things you -can do to a text widget: - -1. Scrolling. Use the scrollbar to adjust the view in the text window. - -2. Scanning. Press mouse button 2 in the text window and drag up or down. -This will drag the text at high speed to allow you to scan its contents. - -3. Insert text. Press mouse button 1 to set the insertion cursor, then -type text. What you type will be added to the widget. - -4. Select. Press mouse button 1 and drag to select a range of characters. -Once you've released the button, you can adjust the selection by pressing -button 1 with the shift key down. This will reset the end of the -selection nearest the mouse cursor and you can drag that end of the -selection by dragging the mouse before releasing the mouse button. -You can double-click to select whole words or triple-click to select -whole lines. - -5. Delete and replace. To delete text, select the characters you'd like -to delete and type Backspace or Delete. Alternatively, you can type new -text, in which case it will replace the selected text. - -6. Copy the selection. To copy the selection into this window, select -what you want to copy (either here or in another application), then -click button 2 to copy the selection to the point of the mouse cursor. - -7. Edit. Text widgets support the standard Motif editing characters -plus many Emacs editing characters. Backspace and Control-h erase the -character to the left of the insertion cursor. Delete and Control-d -erase the character to the right of the insertion cursor. Meta-backspace -deletes the word to the left of the insertion cursor, and Meta-d deletes -the word to the right of the insertion cursor. Control-k deletes from -the insertion cursor to the end of the line, or it deletes the newline -character if that is the only thing left on the line. Control-o opens -a new line by inserting a newline character to the right of the insertion -cursor. Control-t transposes the two characters on either side of the -insertion cursor. Control-z undoes the last editing action performed, -and } - -switch $tcl_platform(platform) { - "unix" - "macintosh" { - $w.text insert end "Control-Shift-z" - } - "windows" { - $w.text insert end "Control-y" - } -} - -$w.text insert end { redoes undone edits. - -7. Resize the window. This widget has been configured with the "setGrid" -option on, so that if you resize the window it will always resize to an -even number of characters high and wide. Also, if you make the window -narrow you can see that long lines automatically wrap around onto -additional lines so that all the information is always visible.} -$w.text mark set insert 0.0 diff --git a/mingw/lib/tk8.4/demos/timer b/mingw/lib/tk8.4/demos/timer deleted file mode 100644 index 5255403d..00000000 --- a/mingw/lib/tk8.4/demos/timer +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# timer -- -# This script generates a counter with start and stop buttons. -# -# RCS: @(#) $Id: timer,v 1.3 2001/10/29 16:23:33 dkf Exp $ - -label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m -button .start -text Start -command { - if {$stopped} { - set stopped 0 - set startMoment [clock clicks -milliseconds] - tick - .stop configure -state normal - .start configure -state disabled - } -} -button .stop -text Stop -state disabled -command { - set stopped 1 - .stop configure -state disabled - .start configure -state normal -} -pack .counter -side bottom -fill both -pack .start -side left -fill both -expand yes -pack .stop -side right -fill both -expand yes - -set startMoment {} - -set stopped 1 - -proc tick {} { - global startMoment stopped - if {$stopped} {return} - after 50 tick - set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}] - .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]] -} - -bind . {destroy .} -bind . {destroy .} -focus . - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/demos/twind.tcl b/mingw/lib/tk8.4/demos/twind.tcl deleted file mode 100644 index 8dff2dd1..00000000 --- a/mingw/lib/tk8.4/demos/twind.tcl +++ /dev/null @@ -1,197 +0,0 @@ -# twind.tcl -- -# -# This demonstration script creates a text widget with a bunch of -# embedded windows. -# -# RCS: @(#) $Id: twind.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .twind -catch {destroy $w} -toplevel $w -wm title $w "Text Demonstration - Embedded Windows" -wm iconname $w "Embedded Windows" -positionWindow $w - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.f -highlightthickness 2 -borderwidth 2 -relief sunken -set t $w.f.text -text $t -yscrollcommand "$w.scroll set" -setgrid true -font $font -width 70 \ - -height 35 -wrap word -highlightthickness 0 -borderwidth 0 -pack $t -expand yes -fill both -scrollbar $w.scroll -command "$t yview" -pack $w.scroll -side right -fill y -pack $w.f -expand yes -fill both -$t tag configure center -justify center -spacing1 5m -spacing3 5m -$t tag configure buttons -lmargin1 1c -lmargin2 1c -rmargin 1c \ - -spacing1 3m -spacing2 0 -spacing3 0 - -button $t.on -text "Turn On" -command "textWindOn $w" \ - -cursor top_left_arrow -button $t.off -text "Turn Off" -command "textWindOff $w" \ - -cursor top_left_arrow -button $t.click -text "Click Here" -command "textWindPlot $t" \ - -cursor top_left_arrow -button $t.delete -text "Delete" -command "textWindDel $w" \ - -cursor top_left_arrow - -$t insert end "A text widget can contain other widgets embedded " -$t insert end "it. These are called \"embedded windows\", " -$t insert end "and they can consist of arbitrary widgets. " -$t insert end "For example, here are two embedded button " -$t insert end "widgets. You can click on the first button to " -$t window create end -window $t.on -$t insert end " horizontal scrolling, which also turns off " -$t insert end "word wrapping. Or, you can click on the second " -$t insert end "button to\n" -$t window create end -window $t.off -$t insert end " horizontal scrolling and turn back on word wrapping.\n\n" - -$t insert end "Or, here is another example. If you " -$t window create end -window $t.click -$t insert end " a canvas displaying an x-y plot will appear right here." -$t mark set plot insert -$t mark gravity plot left -$t insert end " You can drag the data points around with the mouse, " -$t insert end "or you can click here to " -$t window create end -window $t.delete -$t insert end " the plot again.\n\n" - -$t insert end "You may also find it useful to put embedded windows in " -$t insert end "a text without any actual text. In this case the " -$t insert end "text widget acts like a geometry manager. For " -$t insert end "example, here is a collection of buttons laid out " -$t insert end "neatly into rows by the text widget. These buttons " -$t insert end "can be used to change the background color of the " -$t insert end "text widget (\"Default\" restores the color to " -$t insert end "its default). If you click on the button labeled " -$t insert end "\"Short\", it changes to a longer string so that " -$t insert end "you can see how the text widget automatically " -$t insert end "changes the layout. Click on the button again " -$t insert end "to restore the short string.\n" - -button $t.default -text Default -command "embDefBg $t" \ - -cursor top_left_arrow -$t window create end -window $t.default -padx 3 -global embToggle -set embToggle Short -checkbutton $t.toggle -textvariable embToggle -indicatoron 0 \ - -variable embToggle -onvalue "A much longer string" \ - -offvalue "Short" -cursor top_left_arrow -pady 5 -padx 2 -$t window create end -window $t.toggle -padx 3 -pady 2 -set i 1 -foreach color {AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4 - SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3 LightBlue1 - DarkSlateGray1 Aquamarine2 DarkSeaGreen2 SeaGreen1 - Yellow1 IndianRed1 IndianRed2 Tan1 Tan4} { - button $t.color$i -text $color -cursor top_left_arrow -command \ - "$t configure -bg $color" - $t window create end -window $t.color$i -padx 3 -pady 2 - incr i -} -$t tag add buttons $t.default end - -proc textWindOn w { - catch {destroy $w.scroll2} - set t $w.f.text - scrollbar $w.scroll2 -orient horizontal -command "$t xview" - pack $w.scroll2 -after $w.buttons -side bottom -fill x - $t configure -xscrollcommand "$w.scroll2 set" -wrap none -} - -proc textWindOff w { - catch {destroy $w.scroll2} - set t $w.f.text - $t configure -xscrollcommand {} -wrap word -} - -proc textWindPlot t { - set c $t.c - if {[winfo exists $c]} { - return - } - canvas $c -relief sunken -width 450 -height 300 -cursor top_left_arrow - - set font {Helvetica 18} - - $c create line 100 250 400 250 -width 2 - $c create line 100 250 100 50 -width 2 - $c create text 225 20 -text "A Simple Plot" -font $font -fill brown - - for {set i 0} {$i <= 10} {incr i} { - set x [expr {100 + ($i*30)}] - $c create line $x 250 $x 245 -width 2 - $c create text $x 254 -text [expr {10*$i}] -anchor n -font $font - } - for {set i 0} {$i <= 5} {incr i} { - set y [expr {250 - ($i*40)}] - $c create line 100 $y 105 $y -width 2 - $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $font - } - - foreach point { - {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} - } { - set x [expr {100 + (3*[lindex $point 0])}] - set y [expr {250 - (4*[lindex $point 1])/5}] - set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ - [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ - -fill SkyBlue2] - $c addtag point withtag $item - } - - $c bind point "$c itemconfig current -fill red" - $c bind point "$c itemconfig current -fill SkyBlue2" - $c bind point <1> "embPlotDown $c %x %y" - $c bind point "$c dtag selected" - bind $c "embPlotMove $c %x %y" - while {[string first [$t get plot] " \t\n"] >= 0} { - $t delete plot - } - $t insert plot "\n" - $t window create plot -window $c - $t tag add center plot - $t insert plot "\n" -} - -set embPlot(lastX) 0 -set embPlot(lastY) 0 - -proc embPlotDown {w x y} { - global embPlot - $w dtag selected - $w addtag selected withtag current - $w raise current - set embPlot(lastX) $x - set embPlot(lastY) $y -} - -proc embPlotMove {w x y} { - global embPlot - $w move selected [expr {$x-$embPlot(lastX)}] [expr {$y-$embPlot(lastY)}] - set embPlot(lastX) $x - set embPlot(lastY) $y -} - -proc textWindDel w { - set t $w.f.text - if {[winfo exists $t.c]} { - $t delete $t.c - while {[string first [$t get plot] " \t\n"] >= 0} { - $t delete plot - } - $t insert plot " " - } -} - -proc embDefBg t { - $t configure -background [lindex [$t configure -background] 3] -} diff --git a/mingw/lib/tk8.4/demos/unicodeout.tcl b/mingw/lib/tk8.4/demos/unicodeout.tcl deleted file mode 100644 index bdf6fe6e..00000000 --- a/mingw/lib/tk8.4/demos/unicodeout.tcl +++ /dev/null @@ -1,78 +0,0 @@ -# unicodeout.tcl -- -# -# This demonstration script shows how you can produce output (in label -# widgets) using many different alphabets. -# -# RCS: @(#) $Id: unicodeout.tcl,v 1.2 2003/02/21 13:05:06 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .unicodeout -catch {destroy $w} -toplevel $w -wm title $w "Unicode Label Demonstration" -wm iconname $w "unicodeout" -positionWindow $w - -label $w.msg -font $font -wraplength 4i -justify left \ - -text "This is a sample of Tk's support for languages that use\ - non-Western character sets. However, what you will actually see\ - below depends largely on what character sets you have installed,\ - and what you see for characters that are not present varies greatly\ - between platforms as well. The strings are written in Tcl using\ - UNICODE characters using the \\uXXXX escape so as to do so in a\ - portable fashion." -pack $w.msg -side top - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -pack [label $w.wait -text "Please wait while loading fonts..." \ - -font {Helvetica 12 italic}] -pack [frame $w.f] -expand 1 -fill both -padx 2m -pady 1m -grid columnconfigure $w.f 1 -weight 1 - -set i 0 -proc addSample {w language args} { - global font i - set sample [join $args ""] - set j [incr i] - label $w.f.l$j -font $font -text "${language}:" -anchor nw -pady 0 - label $w.f.s$j -font $font -text $sample -anchor nw -width 30 -pady 0 - grid $w.f.l$j $w.f.s$j -sticky ew -pady 0 - grid configure $w.f.l$j -padx 1m -} - -# Processing when some characters are missing might take a while, so make -# sure we're displaying something in the meantime... - -set oldCursor [$w cget -cursor] -$w conf -cursor watch -update - -addSample $w Arabic \ - "\uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D\uFE94" \ - "\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D" -addSample $w "Trad. Chinese" "\u4E2D\u570B\u7684\u6F22\u5B57" -addSample $w "Simpl. Chinese" "\u6C49\u8BED" -addSample $w Greek \ - "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE " \ - "\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1" -addSample $w Hebrew \ - "\u05DD\u05D9\u05DC\u05E9\u05D5\u05E8\u05D9 " \ - "\u05DC\u05D9\u05D0\u05E8\u05E9\u05D9" -addSample $w Japanese \ - "\u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A, " \ - "\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA" -addSample $w Korean "\uB300\uD55C\uBBFC\uAD6D\uC758 \uD55C\uAE00" -addSample $w Russian \ - "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A" - -# We're done processing, so change things back to normal running... -destroy $w.wait -$w conf -cursor $oldCursor diff --git a/mingw/lib/tk8.4/demos/vscale.tcl b/mingw/lib/tk8.4/demos/vscale.tcl deleted file mode 100644 index cb89ec34..00000000 --- a/mingw/lib/tk8.4/demos/vscale.tcl +++ /dev/null @@ -1,48 +0,0 @@ -# vscale.tcl -- -# -# This demonstration script shows an example with a vertical scale. -# -# RCS: @(#) $Id: vscale.tcl,v 1.3 2001/06/14 10:56:58 dkf Exp $ - -if {![info exists widgetDemo]} { - error "This script should be run from the \"widget\" demo." -} - -set w .vscale -catch {destroy $w} -toplevel $w -wm title $w "Vertical Scale Demonstration" -wm iconname $w "vscale" -positionWindow $w - -label $w.msg -font $font -wraplength 3.5i -justify left -text "An arrow and a vertical scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the size of the arrow." -pack $w.msg -side top -padx .5c - -frame $w.buttons -pack $w.buttons -side bottom -fill x -pady 2m -button $w.buttons.dismiss -text Dismiss -command "destroy $w" -button $w.buttons.code -text "See Code" -command "showCode $w" -pack $w.buttons.dismiss $w.buttons.code -side left -expand 1 - -frame $w.frame -borderwidth 10 -pack $w.frame - -scale $w.frame.scale -orient vertical -length 284 -from 0 -to 250 \ - -command "setHeight $w.frame.canvas" -tickinterval 50 -canvas $w.frame.canvas -width 50 -height 50 -bd 0 -highlightthickness 0 -$w.frame.canvas create polygon 0 0 1 1 2 2 -fill SeaGreen3 -tags poly -$w.frame.canvas create line 0 0 1 1 2 2 0 0 -fill black -tags line -frame $w.frame.right -borderwidth 15 -pack $w.frame.scale -side left -anchor ne -pack $w.frame.canvas -side left -anchor nw -fill y -$w.frame.scale set 75 - -proc setHeight {w height} { - incr height 21 - set y2 [expr {$height - 30}] - if {$y2 < 21} { - set y2 21 - } - $w coords poly 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 - $w coords line 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 -} diff --git a/mingw/lib/tk8.4/demos/widget b/mingw/lib/tk8.4/demos/widget deleted file mode 100644 index 1e96c59c..00000000 --- a/mingw/lib/tk8.4/demos/widget +++ /dev/null @@ -1,394 +0,0 @@ -#!/bin/sh -# the next line restarts using wish \ -exec wish "$0" "$@" - -# widget -- -# This script demonstrates the various widgets provided by Tk, -# along with many of the features of the Tk toolkit. This file -# only contains code to generate the main window for the -# application, which invokes individual demonstrations. The -# code for the actual demonstrations is contained in separate -# ".tcl" files is this directory, which are sourced by this script -# as needed. -# -# RCS: @(#) $Id: widget,v 1.9.2.2 2006/09/11 14:41:16 das Exp $ - -eval destroy [winfo child .] -wm title . "Widget Demonstration" -if {[tk windowingsystem] eq "x11"} { - # This won't work everywhere, but there's no other way in core Tk - # at the moment to display a coloured icon. - image create photo TclPowered \ - -file [file join $tk_library images logo64.gif] - wm iconwindow . [toplevel ._iconWindow] - pack [label ._iconWindow.i -image TclPowered] - wm iconname . "tkWidgetDemo" -} - -array set widgetFont { - main {Helvetica 12} - bold {Helvetica 12 bold} - title {Helvetica 18 bold} - status {Helvetica 10} - vars {Helvetica 14} -} - -set widgetDemo 1 -set font $widgetFont(main) - -#---------------------------------------------------------------- -# The code below create the main window, consisting of a menu bar -# and a text widget that explains how to use the program, plus lists -# all of the demos as hypertext items. -#---------------------------------------------------------------- - -menu .menuBar -tearoff 0 - -# On the Mac use the special .apple menu for the about item -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - .menuBar add cascade -menu .menuBar.apple - menu .menuBar.apple -tearoff 0 - .menuBar.apple add command -label "About..." -command "aboutBox" -} else { - .menuBar add cascade -menu .menuBar.file -label "File" -underline 0 - menu .menuBar.file -tearoff 0 - .menuBar.file add command -label "About..." -command "aboutBox" \ - -underline 0 -accelerator "" - .menuBar.file add sep - .menuBar.file add command -label "Quit" -command "exit" -underline 0 \ - -accelerator "Meta-Q" - bind . aboutBox -} - -. configure -menu .menuBar - -frame .statusBar -label .statusBar.lab -text " " -relief sunken -bd 1 \ - -font $widgetFont(status) -anchor w -label .statusBar.foo -width 8 -relief sunken -bd 1 \ - -font $widgetFont(status) -anchor w -pack .statusBar.lab -side left -padx 2 -expand yes -fill both -pack .statusBar.foo -side left -padx 2 -pack .statusBar -side bottom -fill x -pady 2 - -frame .textFrame -scrollbar .s -orient vertical -command {.t yview} -highlightthickness 0 \ - -takefocus 1 -pack .s -in .textFrame -side right -fill y -text .t -yscrollcommand {.s set} -wrap word -width 70 -height 30 \ - -font $widgetFont(main) -setgrid 1 -highlightthickness 0 \ - -padx 4 -pady 2 -takefocus 0 -pack .t -in .textFrame -expand y -fill both -padx 1 -pack .textFrame -expand yes -fill both - -# Create a bunch of tags to use in the text widget, such as those for -# section titles and demo descriptions. Also define the bindings for -# tags. - -.t tag configure title -font $widgetFont(title) -.t tag configure bold -font $widgetFont(bold) - -# We put some "space" characters to the left and right of each demo description -# so that the descriptions are highlighted only when the mouse cursor -# is right over them (but not when the cursor is to their left or right) -# -.t tag configure demospace -lmargin1 1c -lmargin2 1c - - -if {[winfo depth .] == 1} { - .t tag configure demo -lmargin1 1c -lmargin2 1c \ - -underline 1 - .t tag configure visited -lmargin1 1c -lmargin2 1c \ - -underline 1 - .t tag configure hot -background black -foreground white -} else { - .t tag configure demo -lmargin1 1c -lmargin2 1c \ - -foreground blue -underline 1 - .t tag configure visited -lmargin1 1c -lmargin2 1c \ - -foreground #303080 -underline 1 - .t tag configure hot -foreground red -underline 1 -} -.t tag bind demo { - invoke [.t index {@%x,%y}] -} -set lastLine "" -.t tag bind demo { - set lastLine [.t index {@%x,%y linestart}] - .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" - .t config -cursor hand2 - showStatus [.t index {@%x,%y}] -} -.t tag bind demo { - .t tag remove hot 1.0 end - .t config -cursor xterm - .statusBar.lab config -text "" -} -.t tag bind demo { - set newLine [.t index {@%x,%y linestart}] - if {[string compare $newLine $lastLine] != 0} { - .t tag remove hot 1.0 end - set lastLine $newLine - - set tags [.t tag names {@%x,%y}] - set i [lsearch -glob $tags demo-*] - if {$i >= 0} { - .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" - } - } - showStatus [.t index {@%x,%y}] -} - -# Create the text for the text widget. - -proc addDemoSection {title demos} { - .t insert end "\n" {} $title title " \n " demospace - set num 0 - foreach {name description} $demos { - .t insert end "[incr num]. $description." [list demo demo-$name] - .t insert end " \n " demospace - } -} - -.t insert end "Tk Widget Demonstrations\n" title -.t insert end "\nThis application provides a front end for several short\ - scripts that demonstrate what you can do with Tk widgets. Each of\ - the numbered lines below describes a demonstration; you can click\ - on it to invoke the demonstration. Once the demonstration window\ - appears, you can click the " {} "See Code" bold " button to see the\ - Tcl/Tk code that created the demonstration. If you wish, you can\ - edit the code and click the " {} "Rerun Demo" bold " button in the\ - code window to reinvoke the demonstration with the modified code.\n" - -addDemoSection "Labels, buttons, checkbuttons, and radiobuttons" { - label "Labels (text and bitmaps)" - unicodeout "Labels and UNICODE text" - button "Buttons" - check "Check-buttons (select any of a group)" - radio "Radio-buttons (select one of a group)" - puzzle "A 15-puzzle game made out of buttons" - icon "Iconic buttons that use bitmaps" - image1 "Two labels displaying images" - image2 "A simple user interface for viewing images" - labelframe "Labelled frames" -} -addDemoSection "Listboxes" { - states "The 50 states" - colors "Colors: change the color scheme for the application" - sayings "A collection of famous and infamous sayings" -} -addDemoSection "Entries and Spin-boxes" { - entry1 "Entries without scrollbars" - entry2 "Entries with scrollbars" - entry3 "Validated entries and password fields" - spin "Spin-boxes" - form "Simple Rolodex-like form" -} -addDemoSection "Text" { - text "Basic editable text" - style "Text display styles" - bind "Hypertext (tag bindings)" - twind "A text widget with embedded windows" - search "A search tool built with a text widget" -} -addDemoSection "Canvases" { - items "The canvas item types" - plot "A simple 2-D plot" - ctext "Text items in canvases" - arrow "An editor for arrowheads on canvas lines" - ruler "A ruler with adjustable tab stops" - floor "A building floor plan" - cscroll "A simple scrollable canvas" -} -addDemoSection "Scales" { - hscale "Horizontal scale" - vscale "Vertical scale" -} -addDemoSection "Paned Windows" { - paned1 "Horizontal paned window" - paned2 "Vertical paned window" -} -addDemoSection "Menus" { - menu "Menus and cascades (sub-menus)" - menubu "Menu-buttons" -} -addDemoSection "Common Dialogs" { - msgbox "Message boxes" - filebox "File selection dialog" - clrpick "Color picker" -} -addDemoSection "Miscellaneous" { - bitmap "The built-in bitmaps" - dialog1 "A dialog box with a local grab" - dialog2 "A dialog box with a global grab" -} - -.t configure -state disabled -focus .s - -# positionWindow -- -# This procedure is invoked by most of the demos to position a -# new demo window. -# -# Arguments: -# w - The name of the window to position. - -proc positionWindow w { - wm geometry $w +300+300 -} - -# showVars -- -# Displays the values of one or more variables in a window, and -# updates the display whenever any of the variables changes. -# -# Arguments: -# w - Name of new window to create for display. -# args - Any number of names of variables. - -proc showVars {w args} { - global widgetFont - catch {destroy $w} - toplevel $w - wm title $w "Variable values" - label $w.title -text "Variable values:" -width 20 -anchor center \ - -font $widgetFont(vars) - pack $w.title -side top -fill x - set len 1 - foreach i $args { - if {[string length $i] > $len} { - set len [string length $i] - } - } - foreach i $args { - frame $w.$i - label $w.$i.name -text "$i: " -width [expr $len + 2] -anchor w - label $w.$i.value -textvar $i -anchor w - pack $w.$i.name -side left - pack $w.$i.value -side left -expand 1 -fill x - pack $w.$i -side top -anchor w -fill x - } - button $w.ok -text OK -command "destroy $w" -default active - bind $w "tkButtonInvoke $w.ok" - pack $w.ok -side bottom -pady 2 -} - -# invoke -- -# This procedure is called when the user clicks on a demo description. -# It is responsible for invoking the demonstration. -# -# Arguments: -# index - The index of the character that the user clicked on. - -proc invoke index { - global tk_library - set tags [.t tag names $index] - set i [lsearch -glob $tags demo-*] - if {$i < 0} { - return - } - set cursor [.t cget -cursor] - .t configure -cursor watch - update - set demo [string range [lindex $tags $i] 5 end] - uplevel [list source [file join $tk_library demos $demo.tcl]] - update - .t configure -cursor $cursor - - .t tag add visited "$index linestart +1 chars" "$index lineend -1 chars" -} - -# showStatus -- -# -# Show the name of the demo program in the status bar. This procedure -# is called when the user moves the cursor over a demo description. -# -proc showStatus index { - global tk_library - set tags [.t tag names $index] - set i [lsearch -glob $tags demo-*] - set cursor [.t cget -cursor] - if {$i < 0} { - .statusBar.lab config -text " " - set newcursor xterm - } else { - set demo [string range [lindex $tags $i] 5 end] - .statusBar.lab config -text "Run the \"$demo\" sample program" - set newcursor hand2 - } - if [string compare $cursor $newcursor] { - .t config -cursor $newcursor - } -} - - -# showCode -- -# This procedure creates a toplevel window that displays the code for -# a demonstration and allows it to be edited and reinvoked. -# -# Arguments: -# w - The name of the demonstration's window, which can be -# used to derive the name of the file containing its code. - -proc showCode w { - global tk_library - set file [string range $w 1 end].tcl - if ![winfo exists .code] { - toplevel .code - frame .code.buttons - pack .code.buttons -side bottom -fill x - button .code.buttons.dismiss -text Dismiss \ - -default active -command "destroy .code" - button .code.buttons.rerun -text "Rerun Demo" -command { - eval [.code.text get 1.0 end] - } - pack .code.buttons.dismiss .code.buttons.rerun -side left \ - -expand 1 -pady 2 - frame .code.frame - pack .code.frame -expand yes -fill both -padx 1 -pady 1 - text .code.text -height 40 -wrap word\ - -xscrollcommand ".code.xscroll set" \ - -yscrollcommand ".code.yscroll set" \ - -setgrid 1 -highlightthickness 0 -pady 2 -padx 3 - scrollbar .code.xscroll -command ".code.text xview" \ - -highlightthickness 0 -orient horizontal - scrollbar .code.yscroll -command ".code.text yview" \ - -highlightthickness 0 -orient vertical - - grid .code.text -in .code.frame -padx 1 -pady 1 \ - -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news - grid .code.yscroll -in .code.frame -padx 1 -pady 1 \ - -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news -# grid .code.xscroll -in .code.frame -padx 1 -pady 1 \ -# -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news - grid rowconfig .code.frame 0 -weight 1 -minsize 0 - grid columnconfig .code.frame 0 -weight 1 -minsize 0 - } else { - wm deiconify .code - raise .code - } - wm title .code "Demo code: [file join $tk_library demos $file]" - wm iconname .code $file - set id [open [file join $tk_library demos $file]] - .code.text delete 1.0 end - .code.text insert 1.0 [read $id] - .code.text mark set insert 1.0 - close $id -} - -# aboutBox -- -# -# Pops up a message box with an "about" message -# -proc aboutBox {} { - tk_messageBox -icon info -type ok -title "About Widget Demo" -message \ -"Tk widget demonstration - -Copyright (c) 1996-1997 Sun Microsystems, Inc. - -Copyright (c) 1997-2000 Ajuba Solutions, Inc. - -Copyright (c) 2001-2002 Donal K. Fellows" -} - -# Local Variables: -# mode: tcl -# End: diff --git a/mingw/lib/tk8.4/dialog.tcl b/mingw/lib/tk8.4/dialog.tcl deleted file mode 100644 index 404593ef..00000000 --- a/mingw/lib/tk8.4/dialog.tcl +++ /dev/null @@ -1,210 +0,0 @@ -# dialog.tcl -- -# -# This file defines the procedure tk_dialog, which creates a dialog -# box containing a bitmap, a message, and one or more buttons. -# -# RCS: @(#) $Id: dialog.tcl,v 1.14.2.3 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1992-1993 The Regents of the University of California. -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# -# ::tk_dialog: -# -# This procedure displays a dialog box, waits for a button in the dialog -# to be invoked, then returns the index of the selected button. If the -# dialog somehow gets destroyed, -1 is returned. -# -# Arguments: -# w - Window to use for dialog top-level. -# title - Title to display in dialog's decorative frame. -# text - Message to display in dialog. -# bitmap - Bitmap to display in dialog (empty string means none). -# default - Index of button that is to display the default ring -# (-1 means none). -# args - One or more strings to display in buttons across the -# bottom of the dialog box. - -proc ::tk_dialog {w title text bitmap default args} { - global tcl_platform - variable ::tk::Priv - - # Check that $default was properly given - if {[string is integer -strict $default]} { - if {$default >= [llength $args]} { - return -code error "default button index greater than number of\ - buttons specified for tk_dialog" - } - # Never call if -strict option is omitted in previous test ! - } elseif {"" eq $default} { - set default -1 - } else { - set default [lsearch -exact $args $default] - } - - # 1. Create the top-level window and divide it into top - # and bottom parts. - - destroy $w - toplevel $w -class Dialog - wm title $w $title - wm iconname $w Dialog - wm protocol $w WM_DELETE_WINDOW { } - - # Dialog boxes should be transient with respect to their parent, - # so that they will always stay on top of their parent window. However, - # some window managers will create the window as withdrawn if the parent - # window is withdrawn or iconified. Combined with the grab we put on the - # window, this can hang the entire application. Therefore we only make - # the dialog transient if the parent is viewable. - # - if {[winfo viewable [winfo toplevel [winfo parent $w]]] } { - wm transient $w [winfo toplevel [winfo parent $w]] - } - - set windowingsystem [tk windowingsystem] - - if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { - ::tk::unsupported::MacWindowStyle style $w dBoxProc - } - - frame $w.bot - frame $w.top - if {$windowingsystem eq "x11"} { - $w.bot configure -relief raised -bd 1 - $w.top configure -relief raised -bd 1 - } - pack $w.bot -side bottom -fill both - pack $w.top -side top -fill both -expand 1 - - # 2. Fill the top part with bitmap and message (use the option - # database for -wraplength and -font so that they can be - # overridden by the caller). - - option add *Dialog.msg.wrapLength 3i widgetDefault - if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { - option add *Dialog.msg.font system widgetDefault - } else { - option add *Dialog.msg.font {Times 12} widgetDefault - } - - label $w.msg -justify left -text $text - pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m - if {$bitmap ne ""} { - if {($tcl_platform(platform) eq "macintosh" - || $windowingsystem eq "aqua") && ($bitmap eq "error")} { - set bitmap "stop" - } - label $w.bitmap -bitmap $bitmap - pack $w.bitmap -in $w.top -side left -padx 3m -pady 3m - } - - # 3. Create a row of buttons at the bottom of the dialog. - - set i 0 - foreach but $args { - button $w.button$i -text $but -command [list set ::tk::Priv(button) $i] - if {$i == $default} { - $w.button$i configure -default active - } else { - $w.button$i configure -default normal - } - grid $w.button$i -in $w.bot -column $i -row 0 -sticky ew \ - -padx 10 -pady 4 - grid columnconfigure $w.bot $i - # We boost the size of some Mac buttons for l&f - if {$tcl_platform(platform) eq "macintosh" || $windowingsystem eq "aqua"} { - set tmp [string tolower $but] - if {$tmp eq "ok" || $tmp eq "cancel"} { - grid columnconfigure $w.bot $i -minsize [expr {59 + 20}] - } - } - incr i - } - - # 4. Create a binding for on the dialog if there is a - # default button. - - if {$default >= 0} { - bind $w " - [list $w.button$default] configure -state active -relief sunken - update idletasks - after 100 - set ::tk::Priv(button) $default - " - } - - # 5. Create a binding for the window that sets the - # button variable to -1; this is needed in case something happens - # that destroys the window, such as its parent window being destroyed. - - bind $w {set ::tk::Priv(button) -1} - - # 6. Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display and de-iconify it. - - wm withdraw $w - update idletasks - set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ - - [winfo vrootx [winfo parent $w]]}] - set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ - - [winfo vrooty [winfo parent $w]]}] - # Make sure that the window is on the screen and set the maximum - # size of the window is the size of the screen. That'll let things - # fail fairly gracefully when very large messages are used. [Bug 827535] - if {$x < 0} { - set x 0 - } - if {$y < 0} { - set y 0 - } - wm maxsize $w [winfo screenwidth $w] [winfo screenheight $w] - wm geometry $w +$x+$y - wm deiconify $w - - tkwait visibility $w - - # 7. Set a grab and claim the focus too. - - set oldFocus [focus] - set oldGrab [grab current $w] - if {$oldGrab ne ""} { - set grabStatus [grab status $oldGrab] - } - grab $w - if {$default >= 0} { - focus $w.button$default - } else { - focus $w - } - - # 8. Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(button) - catch {focus $oldFocus} - catch { - # It's possible that the window has already been destroyed, - # hence this "catch". Delete the Destroy handler so that - # Priv(button) doesn't get reset by it. - - bind $w {} - destroy $w - } - if {$oldGrab ne ""} { - if {$grabStatus ne "global"} { - grab $oldGrab - } else { - grab -global $oldGrab - } - } - return $Priv(button) -} diff --git a/mingw/lib/tk8.4/entry.tcl b/mingw/lib/tk8.4/entry.tcl deleted file mode 100644 index 3fb4e673..00000000 --- a/mingw/lib/tk8.4/entry.tcl +++ /dev/null @@ -1,652 +0,0 @@ -# entry.tcl -- -# -# This file defines the default bindings for Tk entry widgets and provides -# procedures that help in implementing those bindings. -# -# RCS: @(#) $Id: entry.tcl,v 1.21.2.1 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# Elements of tk::Priv that are used in this file: -# -# afterId - If non-null, it means that auto-scanning is underway -# and it gives the "after" id for the next auto-scan -# command to be executed. -# mouseMoved - Non-zero means the mouse has moved a significant -# amount since the button went down (so, for example, -# start dragging out a selection). -# pressX - X-coordinate at which the mouse button was pressed. -# selectMode - The style of selection currently underway: -# char, word, or line. -# x, y - Last known mouse coordinates for scanning -# and auto-scanning. -# data - Used for Cut and Copy -#------------------------------------------------------------------------- - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for entries. -#------------------------------------------------------------------------- -bind Entry <> { - if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { - clipboard clear -displayof %W - clipboard append -displayof %W $tk::Priv(data) - %W delete sel.first sel.last - unset tk::Priv(data) - } -} -bind Entry <> { - if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { - clipboard clear -displayof %W - clipboard append -displayof %W $tk::Priv(data) - unset tk::Priv(data) - } -} -bind Entry <> { - global tcl_platform - catch { - if {[tk windowingsystem] ne "x11"} { - catch { - %W delete sel.first sel.last - } - } - %W insert insert [::tk::GetSelection %W CLIPBOARD] - tk::EntrySeeInsert %W - } -} -bind Entry <> { - %W delete sel.first sel.last -} -bind Entry <> { - if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] - || !$tk::Priv(mouseMoved)} { - tk::EntryPaste %W %x - } -} - -# Standard Motif bindings: - -bind Entry <1> { - tk::EntryButton1 %W %x - %W selection clear -} -bind Entry { - set tk::Priv(x) %x - tk::EntryMouseSelect %W %x -} -bind Entry { - set tk::Priv(selectMode) word - tk::EntryMouseSelect %W %x - catch {%W icursor sel.last} -} -bind Entry { - set tk::Priv(selectMode) line - tk::EntryMouseSelect %W %x - catch {%W icursor sel.last} -} -bind Entry { - set tk::Priv(selectMode) char - %W selection adjust @%x -} -bind Entry { - set tk::Priv(selectMode) word - tk::EntryMouseSelect %W %x -} -bind Entry { - set tk::Priv(selectMode) line - tk::EntryMouseSelect %W %x -} -bind Entry { - set tk::Priv(x) %x - tk::EntryAutoScan %W -} -bind Entry { - tk::CancelRepeat -} -bind Entry { - tk::CancelRepeat -} -bind Entry { - %W icursor @%x -} - -bind Entry { - tk::EntrySetCursor %W [expr {[%W index insert] - 1}] -} -bind Entry { - tk::EntrySetCursor %W [expr {[%W index insert] + 1}] -} -bind Entry { - tk::EntryKeySelect %W [expr {[%W index insert] - 1}] - tk::EntrySeeInsert %W -} -bind Entry { - tk::EntryKeySelect %W [expr {[%W index insert] + 1}] - tk::EntrySeeInsert %W -} -bind Entry { - tk::EntrySetCursor %W [tk::EntryPreviousWord %W insert] -} -bind Entry { - tk::EntrySetCursor %W [tk::EntryNextWord %W insert] -} -bind Entry { - tk::EntryKeySelect %W [tk::EntryPreviousWord %W insert] - tk::EntrySeeInsert %W -} -bind Entry { - tk::EntryKeySelect %W [tk::EntryNextWord %W insert] - tk::EntrySeeInsert %W -} -bind Entry { - tk::EntrySetCursor %W 0 -} -bind Entry { - tk::EntryKeySelect %W 0 - tk::EntrySeeInsert %W -} -bind Entry { - tk::EntrySetCursor %W end -} -bind Entry { - tk::EntryKeySelect %W end - tk::EntrySeeInsert %W -} - -bind Entry { - if {[%W selection present]} { - %W delete sel.first sel.last - } else { - %W delete insert - } -} -bind Entry { - tk::EntryBackspace %W -} - -bind Entry { - %W selection from insert -} -bind Entry { - tk::ListboxBeginSelect %W [%W index active] -} -bind Listbox { - tk::ListboxBeginExtend %W [%W index active] -} -bind Listbox { - tk::ListboxBeginExtend %W [%W index active] -} -bind Listbox { - tk::ListboxCancel %W -} -bind Listbox { - tk::ListboxSelectAll %W -} -bind Listbox { - if {[%W cget -selectmode] ne "browse"} { - %W selection clear 0 end - event generate %W <> - } -} - -# Additional Tk bindings that aren't part of the Motif look and feel: - -bind Listbox <2> { - %W scan mark %x %y -} -bind Listbox { - %W scan dragto %x %y -} - -# The MouseWheel will typically only fire on Windows and Mac OS X. -# However, someone could use the "event generate" command to produce -# one on other platforms. -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - bind Listbox { - %W yview scroll [expr {- (%D)}] units - } - bind Listbox { - %W yview scroll [expr {-10 * (%D)}] units - } - bind Listbox { - %W xview scroll [expr {- (%D)}] units - } - bind Listbox { - %W xview scroll [expr {-10 * (%D)}] units - } -} else { - bind Listbox { - %W yview scroll [expr {- (%D / 120) * 4}] units - } -} - -if {"x11" eq [tk windowingsystem]} { - # Support for mousewheels on Linux/Unix commonly comes through mapping - # the wheel to the extended buttons. If you have a mousewheel, find - # Linux configuration info at: - # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ - bind Listbox <4> { - if {!$tk_strictMotif} { - %W yview scroll -5 units - } - } - bind Listbox <5> { - if {!$tk_strictMotif} { - %W yview scroll 5 units - } - } -} - -# ::tk::ListboxBeginSelect -- -# -# This procedure is typically invoked on button-1 presses. It begins -# the process of making a selection in the listbox. Its exact behavior -# depends on the selection mode currently in effect for the listbox; -# see the Motif documentation for details. -# -# Arguments: -# w - The listbox widget. -# el - The element for the selection operation (typically the -# one under the pointer). Must be in numerical form. - -proc ::tk::ListboxBeginSelect {w el} { - variable ::tk::Priv - if {[$w cget -selectmode] eq "multiple"} { - if {[$w selection includes $el]} { - $w selection clear $el - } else { - $w selection set $el - } - } else { - $w selection clear 0 end - $w selection set $el - $w selection anchor $el - set Priv(listboxSelection) {} - set Priv(listboxPrev) $el - } - event generate $w <> -} - -# ::tk::ListboxMotion -- -# -# This procedure is called to process mouse motion events while -# button 1 is down. It may move or extend the selection, depending -# on the listbox's selection mode. -# -# Arguments: -# w - The listbox widget. -# el - The element under the pointer (must be a number). - -proc ::tk::ListboxMotion {w el} { - variable ::tk::Priv - if {$el == $Priv(listboxPrev)} { - return - } - set anchor [$w index anchor] - switch [$w cget -selectmode] { - browse { - $w selection clear 0 end - $w selection set $el - set Priv(listboxPrev) $el - event generate $w <> - } - extended { - set i $Priv(listboxPrev) - if {$i eq ""} { - set i $el - $w selection set $el - } - if {[$w selection includes anchor]} { - $w selection clear $i $el - $w selection set anchor $el - } else { - $w selection clear $i $el - $w selection clear anchor $el - } - if {![info exists Priv(listboxSelection)]} { - set Priv(listboxSelection) [$w curselection] - } - while {($i < $el) && ($i < $anchor)} { - if {[lsearch $Priv(listboxSelection) $i] >= 0} { - $w selection set $i - } - incr i - } - while {($i > $el) && ($i > $anchor)} { - if {[lsearch $Priv(listboxSelection) $i] >= 0} { - $w selection set $i - } - incr i -1 - } - set Priv(listboxPrev) $el - event generate $w <> - } - } -} - -# ::tk::ListboxBeginExtend -- -# -# This procedure is typically invoked on shift-button-1 presses. It -# begins the process of extending a selection in the listbox. Its -# exact behavior depends on the selection mode currently in effect -# for the listbox; see the Motif documentation for details. -# -# Arguments: -# w - The listbox widget. -# el - The element for the selection operation (typically the -# one under the pointer). Must be in numerical form. - -proc ::tk::ListboxBeginExtend {w el} { - if {[$w cget -selectmode] eq "extended"} { - if {[$w selection includes anchor]} { - ListboxMotion $w $el - } else { - # No selection yet; simulate the begin-select operation. - ListboxBeginSelect $w $el - } - } -} - -# ::tk::ListboxBeginToggle -- -# -# This procedure is typically invoked on control-button-1 presses. It -# begins the process of toggling a selection in the listbox. Its -# exact behavior depends on the selection mode currently in effect -# for the listbox; see the Motif documentation for details. -# -# Arguments: -# w - The listbox widget. -# el - The element for the selection operation (typically the -# one under the pointer). Must be in numerical form. - -proc ::tk::ListboxBeginToggle {w el} { - variable ::tk::Priv - if {[$w cget -selectmode] eq "extended"} { - set Priv(listboxSelection) [$w curselection] - set Priv(listboxPrev) $el - $w selection anchor $el - if {[$w selection includes $el]} { - $w selection clear $el - } else { - $w selection set $el - } - event generate $w <> - } -} - -# ::tk::ListboxAutoScan -- -# This procedure is invoked when the mouse leaves an entry window -# with button 1 down. It scrolls the window up, down, left, or -# right, depending on where the mouse left the window, and reschedules -# itself as an "after" command so that the window continues to scroll until -# the mouse moves back into the window or the mouse button is released. -# -# Arguments: -# w - The entry window. - -proc ::tk::ListboxAutoScan {w} { - variable ::tk::Priv - if {![winfo exists $w]} return - set x $Priv(x) - set y $Priv(y) - if {$y >= [winfo height $w]} { - $w yview scroll 1 units - } elseif {$y < 0} { - $w yview scroll -1 units - } elseif {$x >= [winfo width $w]} { - $w xview scroll 2 units - } elseif {$x < 0} { - $w xview scroll -2 units - } else { - return - } - ListboxMotion $w [$w index @$x,$y] - set Priv(afterId) [after 50 [list tk::ListboxAutoScan $w]] -} - -# ::tk::ListboxUpDown -- -# -# Moves the location cursor (active element) up or down by one element, -# and changes the selection if we're in browse or extended selection -# mode. -# -# Arguments: -# w - The listbox widget. -# amount - +1 to move down one item, -1 to move back one item. - -proc ::tk::ListboxUpDown {w amount} { - variable ::tk::Priv - $w activate [expr {[$w index active] + $amount}] - $w see active - switch [$w cget -selectmode] { - browse { - $w selection clear 0 end - $w selection set active - event generate $w <> - } - extended { - $w selection clear 0 end - $w selection set active - $w selection anchor active - set Priv(listboxPrev) [$w index active] - set Priv(listboxSelection) {} - event generate $w <> - } - } -} - -# ::tk::ListboxExtendUpDown -- -# -# Does nothing unless we're in extended selection mode; in this -# case it moves the location cursor (active element) up or down by -# one element, and extends the selection to that point. -# -# Arguments: -# w - The listbox widget. -# amount - +1 to move down one item, -1 to move back one item. - -proc ::tk::ListboxExtendUpDown {w amount} { - variable ::tk::Priv - if {[$w cget -selectmode] ne "extended"} { - return - } - set active [$w index active] - if {![info exists Priv(listboxSelection)]} { - $w selection set $active - set Priv(listboxSelection) [$w curselection] - } - $w activate [expr {$active + $amount}] - $w see active - ListboxMotion $w [$w index active] -} - -# ::tk::ListboxDataExtend -# -# This procedure is called for key-presses such as Shift-KEndData. -# If the selection mode isn't multiple or extend then it does nothing. -# Otherwise it moves the active element to el and, if we're in -# extended mode, extends the selection to that point. -# -# Arguments: -# w - The listbox widget. -# el - An integer element number. - -proc ::tk::ListboxDataExtend {w el} { - set mode [$w cget -selectmode] - if {$mode eq "extended"} { - $w activate $el - $w see $el - if {[$w selection includes anchor]} { - ListboxMotion $w $el - } - } elseif {$mode eq "multiple"} { - $w activate $el - $w see $el - } -} - -# ::tk::ListboxCancel -# -# This procedure is invoked to cancel an extended selection in -# progress. If there is an extended selection in progress, it -# restores all of the items between the active one and the anchor -# to their previous selection state. -# -# Arguments: -# w - The listbox widget. - -proc ::tk::ListboxCancel w { - variable ::tk::Priv - if {[$w cget -selectmode] ne "extended"} { - return - } - set first [$w index anchor] - set last $Priv(listboxPrev) - if { $last eq "" } { - # Not actually doing any selection right now - return - } - if {$first > $last} { - set tmp $first - set first $last - set last $tmp - } - $w selection clear $first $last - while {$first <= $last} { - if {[lsearch $Priv(listboxSelection) $first] >= 0} { - $w selection set $first - } - incr first - } - event generate $w <> -} - -# ::tk::ListboxSelectAll -# -# This procedure is invoked to handle the "select all" operation. -# For single and browse mode, it just selects the active element. -# Otherwise it selects everything in the widget. -# -# Arguments: -# w - The listbox widget. - -proc ::tk::ListboxSelectAll w { - set mode [$w cget -selectmode] - if {$mode eq "single" || $mode eq "browse"} { - $w selection clear 0 end - $w selection set active - } else { - $w selection set 0 end - } - event generate $w <> -} diff --git a/mingw/lib/tk8.4/menu.tcl b/mingw/lib/tk8.4/menu.tcl deleted file mode 100644 index aedeb950..00000000 --- a/mingw/lib/tk8.4/menu.tcl +++ /dev/null @@ -1,1294 +0,0 @@ -# menu.tcl -- -# -# This file defines the default bindings for Tk menus and menubuttons. -# It also implements keyboard traversal of menus and implements a few -# other utility procedures related to menus. -# -# RCS: @(#) $Id: menu.tcl,v 1.18.2.4 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# Copyright (c) 1998-1999 by Scriptics Corporation. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# Elements of tk::Priv that are used in this file: -# -# cursor - Saves the -cursor option for the posted menubutton. -# focus - Saves the focus during a menu selection operation. -# Focus gets restored here when the menu is unposted. -# grabGlobal - Used in conjunction with tk::Priv(oldGrab): if -# tk::Priv(oldGrab) is non-empty, then tk::Priv(grabGlobal) -# contains either an empty string or "-global" to -# indicate whether the old grab was a local one or -# a global one. -# inMenubutton - The name of the menubutton widget containing -# the mouse, or an empty string if the mouse is -# not over any menubutton. -# menuBar - The name of the menubar that is the root -# of the cascade hierarchy which is currently -# posted. This is null when there is no menu currently -# being pulled down from a menu bar. -# oldGrab - Window that had the grab before a menu was posted. -# Used to restore the grab state after the menu -# is unposted. Empty string means there was no -# grab previously set. -# popup - If a menu has been popped up via tk_popup, this -# gives the name of the menu. Otherwise this -# value is empty. -# postedMb - Name of the menubutton whose menu is currently -# posted, or an empty string if nothing is posted -# A grab is set on this widget. -# relief - Used to save the original relief of the current -# menubutton. -# window - When the mouse is over a menu, this holds the -# name of the menu; it's cleared when the mouse -# leaves the menu. -# tearoff - Whether the last menu posted was a tearoff or not. -# This is true always for unix, for tearoffs for Mac -# and Windows. -# activeMenu - This is the last active menu for use -# with the <> virtual event. -# activeItem - This is the last active menu item for -# use with the <> virtual event. -#------------------------------------------------------------------------- - -#------------------------------------------------------------------------- -# Overall note: -# This file is tricky because there are five different ways that menus -# can be used: -# -# 1. As a pulldown from a menubutton. In this style, the variable -# tk::Priv(postedMb) identifies the posted menubutton. -# 2. As a torn-off menu copied from some other menu. In this style -# tk::Priv(postedMb) is empty, and menu's type is "tearoff". -# 3. As an option menu, triggered from an option menubutton. In this -# style tk::Priv(postedMb) identifies the posted menubutton. -# 4. As a popup menu. In this style tk::Priv(postedMb) is empty and -# the top-level menu's type is "normal". -# 5. As a pulldown from a menubar. The variable tk::Priv(menubar) has -# the owning menubar, and the menu itself is of type "normal". -# -# The various binding procedures use the state described above to -# distinguish the various cases and take different actions in each -# case. -#------------------------------------------------------------------------- - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for menus -# and menubuttons. -#------------------------------------------------------------------------- - -bind Menubutton {} -bind Menubutton { - tk::MbEnter %W -} -bind Menubutton { - tk::MbLeave %W -} -bind Menubutton <1> { - if {$tk::Priv(inMenubutton) ne ""} { - tk::MbPost $tk::Priv(inMenubutton) %X %Y - } -} -bind Menubutton { - tk::MbMotion %W up %X %Y -} -bind Menubutton { - tk::MbMotion %W down %X %Y -} -bind Menubutton { - tk::MbButtonUp %W -} -bind Menubutton { - tk::MbPost %W - tk::MenuFirstEntry [%W cget -menu] -} - -# Must set focus when mouse enters a menu, in order to allow -# mixed-mode processing using both the mouse and the keyboard. -# Don't set the focus if the event comes from a grab release, -# though: such an event can happen after as part of unposting -# a cascaded chain of menus, after the focus has already been -# restored to wherever it was before menu selection started. - -bind Menu {} - -bind Menu { - set tk::Priv(window) %W - if {[%W cget -type] eq "tearoff"} { - if {"%m" ne "NotifyUngrab"} { - if {[tk windowingsystem] eq "x11"} { - tk_menuSetFocus %W - } - } - } - tk::MenuMotion %W %x %y %s -} - -bind Menu { - tk::MenuLeave %W %X %Y %s -} -bind Menu { - tk::MenuMotion %W %x %y %s -} -bind Menu { - tk::MenuButtonDown %W -} -bind Menu { - tk::MenuInvoke %W 1 -} -bind Menu { - tk::MenuInvoke %W 0 -} -bind Menu { - tk::MenuInvoke %W 0 -} -bind Menu { - tk::MenuEscape %W -} -bind Menu { - tk::MenuLeftArrow %W -} -bind Menu { - tk::MenuRightArrow %W -} -bind Menu { - tk::MenuUpArrow %W -} -bind Menu { - tk::MenuDownArrow %W -} -bind Menu { - tk::TraverseWithinMenu %W %A -} - -# The following bindings apply to all windows, and are used to -# implement keyboard menu traversal. - -if {[tk windowingsystem] eq "x11"} { - bind all { - tk::TraverseToMenu %W %A - } - - bind all { - tk::FirstMenu %W - } -} else { - bind Menubutton { - tk::TraverseToMenu %W %A - } - - bind Menubutton { - tk::FirstMenu %W - } -} - -# ::tk::MbEnter -- -# This procedure is invoked when the mouse enters a menubutton -# widget. It activates the widget unless it is disabled. Note: -# this procedure is only invoked when mouse button 1 is *not* down. -# The procedure ::tk::MbB1Enter is invoked if the button is down. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::MbEnter w { - variable ::tk::Priv - - if {$Priv(inMenubutton) ne ""} { - MbLeave $Priv(inMenubutton) - } - set Priv(inMenubutton) $w - if {[$w cget -state] ne "disabled"} { - $w configure -state active - } -} - -# ::tk::MbLeave -- -# This procedure is invoked when the mouse leaves a menubutton widget. -# It de-activates the widget, if the widget still exists. -# -# Arguments: -# w - The name of the widget. - -proc ::tk::MbLeave w { - variable ::tk::Priv - - set Priv(inMenubutton) {} - if {![winfo exists $w]} { - return - } - if {[$w cget -state] eq "active"} { - $w configure -state normal - } -} - -# ::tk::MbPost -- -# Given a menubutton, this procedure does all the work of posting -# its associated menu and unposting any other menu that is currently -# posted. -# -# Arguments: -# w - The name of the menubutton widget whose menu -# is to be posted. -# x, y - Root coordinates of cursor, used for positioning -# option menus. If not specified, then the center -# of the menubutton is used for an option menu. - -proc ::tk::MbPost {w {x {}} {y {}}} { - global errorInfo - variable ::tk::Priv - global tcl_platform - - if {[$w cget -state] eq "disabled" || $w eq $Priv(postedMb)} { - return - } - set menu [$w cget -menu] - if {$menu eq ""} { - return - } - set tearoff [expr {[tk windowingsystem] eq "x11" \ - || [$menu cget -type] eq "tearoff"}] - if {[string first $w $menu] != 0} { - error "can't post $menu: it isn't a descendant of $w (this is a new requirement in Tk versions 3.0 and later)" - } - set cur $Priv(postedMb) - if {$cur ne ""} { - MenuUnpost {} - } - set Priv(cursor) [$w cget -cursor] - set Priv(relief) [$w cget -relief] - $w configure -cursor arrow - $w configure -relief raised - - set Priv(postedMb) $w - set Priv(focus) [focus] - $menu activate none - GenerateMenuSelect $menu - - # If this looks like an option menubutton then post the menu so - # that the current entry is on top of the mouse. Otherwise post - # the menu just below the menubutton, as for a pull-down. - - update idletasks - if {[catch { - switch [$w cget -direction] { - above { - set x [winfo rootx $w] - set y [expr {[winfo rooty $w] - [winfo reqheight $menu]}] - # if we go offscreen to the top, show as 'below' - if {$y < 0} { - set y [expr {[winfo rooty $w] + [winfo height $w]}] - } - PostOverPoint $menu $x $y - } - below { - set x [winfo rootx $w] - set y [expr {[winfo rooty $w] + [winfo height $w]}] - # if we go offscreen to the bottom, show as 'above' - set mh [winfo reqheight $menu] - if {($y + $mh) > [winfo screenheight $w]} { - set y [expr {[winfo rooty $w] - $mh}] - } - PostOverPoint $menu $x $y - } - left { - set x [expr {[winfo rootx $w] - [winfo reqwidth $menu]}] - set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] - set entry [MenuFindName $menu [$w cget -text]] - if {[$w cget -indicatoron]} { - if {$entry == [$menu index last]} { - incr y [expr {-([$menu yposition $entry] \ - + [winfo reqheight $menu])/2}] - } else { - incr y [expr {-([$menu yposition $entry] \ - + [$menu yposition [expr {$entry+1}]])/2}] - } - } - PostOverPoint $menu $x $y - if {$entry ne "" \ - && [$menu entrycget $entry -state] ne "disabled"} { - $menu activate $entry - GenerateMenuSelect $menu - } - } - right { - set x [expr {[winfo rootx $w] + [winfo width $w]}] - set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] - set entry [MenuFindName $menu [$w cget -text]] - if {[$w cget -indicatoron]} { - if {$entry == [$menu index last]} { - incr y [expr {-([$menu yposition $entry] \ - + [winfo reqheight $menu])/2}] - } else { - incr y [expr {-([$menu yposition $entry] \ - + [$menu yposition [expr {$entry+1}]])/2}] - } - } - PostOverPoint $menu $x $y - if {$entry ne "" \ - && [$menu entrycget $entry -state] ne "disabled"} { - $menu activate $entry - GenerateMenuSelect $menu - } - } - default { - if {[$w cget -indicatoron]} { - if {$y eq ""} { - set x [expr {[winfo rootx $w] + [winfo width $w]/2}] - set y [expr {[winfo rooty $w] + [winfo height $w]/2}] - } - PostOverPoint $menu $x $y [MenuFindName $menu [$w cget -text]] - } else { - PostOverPoint $menu [winfo rootx $w] [expr {[winfo rooty $w]+[winfo height $w]}] - } - } - } - } msg]} { - # Error posting menu (e.g. bogus -postcommand). Unpost it and - # reflect the error. - - set savedInfo $errorInfo - MenuUnpost {} - error $msg $savedInfo - - } - - set Priv(tearoff) $tearoff - if {$tearoff != 0} { - focus $menu - if {[winfo viewable $w]} { - SaveGrabInfo $w - grab -global $w - } - } -} - -# ::tk::MenuUnpost -- -# This procedure unposts a given menu, plus all of its ancestors up -# to (and including) a menubutton, if any. It also restores various -# values to what they were before the menu was posted, and releases -# a grab if there's a menubutton involved. Special notes: -# 1. It's important to unpost all menus before releasing the grab, so -# that any Enter-Leave events (e.g. from menu back to main -# application) have mode NotifyGrab. -# 2. Be sure to enclose various groups of commands in "catch" so that -# the procedure will complete even if the menubutton or the menu -# or the grab window has been deleted. -# -# Arguments: -# menu - Name of a menu to unpost. Ignored if there -# is a posted menubutton. - -proc ::tk::MenuUnpost menu { - global tcl_platform - variable ::tk::Priv - set mb $Priv(postedMb) - - # Restore focus right away (otherwise X will take focus away when - # the menu is unmapped and under some window managers (e.g. olvwm) - # we'll lose the focus completely). - - catch {focus $Priv(focus)} - set Priv(focus) "" - - # Unpost menu(s) and restore some stuff that's dependent on - # what was posted. - - catch { - if {$mb ne ""} { - set menu [$mb cget -menu] - $menu unpost - set Priv(postedMb) {} - $mb configure -cursor $Priv(cursor) - $mb configure -relief $Priv(relief) - } elseif {$Priv(popup) ne ""} { - $Priv(popup) unpost - set Priv(popup) {} - } elseif {[$menu cget -type] ne "menubar" && [$menu cget -type] ne "tearoff"} { - # We're in a cascaded sub-menu from a torn-off menu or popup. - # Unpost all the menus up to the toplevel one (but not - # including the top-level torn-off one) and deactivate the - # top-level torn off menu if there is one. - - while {1} { - set parent [winfo parent $menu] - if {[winfo class $parent] ne "Menu" || ![winfo ismapped $parent]} { - break - } - $parent activate none - $parent postcascade none - GenerateMenuSelect $parent - set type [$parent cget -type] - if {$type eq "menubar" || $type eq "tearoff"} { - break - } - set menu $parent - } - if {[$menu cget -type] ne "menubar"} { - $menu unpost - } - } - } - - if {($Priv(tearoff) != 0) || $Priv(menuBar) ne ""} { - # Release grab, if any, and restore the previous grab, if there - # was one. - if {$menu ne ""} { - set grab [grab current $menu] - if {$grab ne ""} { - grab release $grab - } - } - RestoreOldGrab - if {$Priv(menuBar) ne ""} { - $Priv(menuBar) configure -cursor $Priv(cursor) - set Priv(menuBar) {} - } - if {[tk windowingsystem] ne "x11"} { - set Priv(tearoff) 0 - } - } -} - -# ::tk::MbMotion -- -# This procedure handles mouse motion events inside menubuttons, and -# also outside menubuttons when a menubutton has a grab (e.g. when a -# menu selection operation is in progress). -# -# Arguments: -# w - The name of the menubutton widget. -# upDown - "down" means button 1 is pressed, "up" means -# it isn't. -# rootx, rooty - Coordinates of mouse, in (virtual?) root window. - -proc ::tk::MbMotion {w upDown rootx rooty} { - variable ::tk::Priv - - if {$Priv(inMenubutton) eq $w} { - return - } - set new [winfo containing $rootx $rooty] - if {$new ne $Priv(inMenubutton) \ - && ($new eq "" || [winfo toplevel $new] eq [winfo toplevel $w])} { - if {$Priv(inMenubutton) ne ""} { - MbLeave $Priv(inMenubutton) - } - if {$new ne "" \ - && [winfo class $new] eq "Menubutton" \ - && ([$new cget -indicatoron] == 0) \ - && ([$w cget -indicatoron] == 0)} { - if {$upDown eq "down"} { - MbPost $new $rootx $rooty - } else { - MbEnter $new - } - } - } -} - -# ::tk::MbButtonUp -- -# This procedure is invoked to handle button 1 releases for menubuttons. -# If the release happens inside the menubutton then leave its menu -# posted with element 0 activated. Otherwise, unpost the menu. -# -# Arguments: -# w - The name of the menubutton widget. - -proc ::tk::MbButtonUp w { - variable ::tk::Priv - global tcl_platform - - set menu [$w cget -menu] - set tearoff [expr {[tk windowingsystem] eq "x11" || \ - ($menu ne "" && [$menu cget -type] eq "tearoff")}] - if {($tearoff != 0) && $Priv(postedMb) eq $w \ - && $Priv(inMenubutton) eq $w} { - MenuFirstEntry [$Priv(postedMb) cget -menu] - } else { - MenuUnpost {} - } -} - -# ::tk::MenuMotion -- -# This procedure is called to handle mouse motion events for menus. -# It does two things. First, it resets the active element in the -# menu, if the mouse is over the menu. Second, if a mouse button -# is down, it posts and unposts cascade entries to match the mouse -# position. -# -# Arguments: -# menu - The menu window. -# x - The x position of the mouse. -# y - The y position of the mouse. -# state - Modifier state (tells whether buttons are down). - -proc ::tk::MenuMotion {menu x y state} { - variable ::tk::Priv - if {$menu eq $Priv(window)} { - if {[$menu cget -type] eq "menubar"} { - if {[info exists Priv(focus)] && $menu ne $Priv(focus)} { - $menu activate @$x,$y - GenerateMenuSelect $menu - } - } else { - $menu activate @$x,$y - GenerateMenuSelect $menu - } - } - if {($state & 0x1f00) != 0} { - $menu postcascade active - } -} - -# ::tk::MenuButtonDown -- -# Handles button presses in menus. There are a couple of tricky things -# here: -# 1. Change the posted cascade entry (if any) to match the mouse position. -# 2. If there is a posted menubutton, must grab to the menubutton; this -# overrrides the implicit grab on button press, so that the menu -# button can track mouse motions over other menubuttons and change -# the posted menu. -# 3. If there's no posted menubutton (e.g. because we're a torn-off menu -# or one of its descendants) must grab to the top-level menu so that -# we can track mouse motions across the entire menu hierarchy. -# -# Arguments: -# menu - The menu window. - -proc ::tk::MenuButtonDown menu { - variable ::tk::Priv - global tcl_platform - - if {![winfo viewable $menu]} { - return - } - $menu postcascade active - if {$Priv(postedMb) ne "" && [winfo viewable $Priv(postedMb)]} { - grab -global $Priv(postedMb) - } else { - while {[$menu cget -type] eq "normal" \ - && [winfo class [winfo parent $menu]] eq "Menu" \ - && [winfo ismapped [winfo parent $menu]]} { - set menu [winfo parent $menu] - } - - if {$Priv(menuBar) eq ""} { - set Priv(menuBar) $menu - set Priv(cursor) [$menu cget -cursor] - $menu configure -cursor arrow - } - - # Don't update grab information if the grab window isn't changing. - # Otherwise, we'll get an error when we unpost the menus and - # restore the grab, since the old grab window will not be viewable - # anymore. - - if {$menu ne [grab current $menu]} { - SaveGrabInfo $menu - } - - # Must re-grab even if the grab window hasn't changed, in order - # to release the implicit grab from the button press. - - if {[tk windowingsystem] eq "x11"} { - grab -global $menu - } - } -} - -# ::tk::MenuLeave -- -# This procedure is invoked to handle Leave events for a menu. It -# deactivates everything unless the active element is a cascade element -# and the mouse is now over the submenu. -# -# Arguments: -# menu - The menu window. -# rootx, rooty - Root coordinates of mouse. -# state - Modifier state. - -proc ::tk::MenuLeave {menu rootx rooty state} { - variable ::tk::Priv - set Priv(window) {} - if {[$menu index active] eq "none"} { - return - } - if {[$menu type active] eq "cascade" \ - && [winfo containing $rootx $rooty] eq [$menu entrycget active -menu]} { - return - } - $menu activate none - GenerateMenuSelect $menu -} - -# ::tk::MenuInvoke -- -# This procedure is invoked when button 1 is released over a menu. -# It invokes the appropriate menu action and unposts the menu if -# it came from a menubutton. -# -# Arguments: -# w - Name of the menu widget. -# buttonRelease - 1 means this procedure is called because of -# a button release; 0 means because of keystroke. - -proc ::tk::MenuInvoke {w buttonRelease} { - variable ::tk::Priv - - if {$buttonRelease && $Priv(window) eq ""} { - # Mouse was pressed over a menu without a menu button, then - # dragged off the menu (possibly with a cascade posted) and - # released. Unpost everything and quit. - - $w postcascade none - $w activate none - event generate $w <> - MenuUnpost $w - return - } - if {[$w type active] eq "cascade"} { - $w postcascade active - set menu [$w entrycget active -menu] - MenuFirstEntry $menu - } elseif {[$w type active] eq "tearoff"} { - ::tk::TearOffMenu $w - MenuUnpost $w - } elseif {[$w cget -type] eq "menubar"} { - $w postcascade none - set active [$w index active] - set isCascade [string equal [$w type $active] "cascade"] - - # Only de-activate the active item if it's a cascade; this prevents - # the annoying "activation flicker" you otherwise get with - # checkbuttons/commands/etc. on menubars - - if { $isCascade } { - $w activate none - event generate $w <> - } - - MenuUnpost $w - - # If the active item is not a cascade, invoke it. This enables - # the use of checkbuttons/commands/etc. on menubars (which is legal, - # but not recommended) - - if { !$isCascade } { - uplevel #0 [list $w invoke $active] - } - } else { - set active [$w index active] - if {$Priv(popup) eq "" || $active ne "none"} { - MenuUnpost $w - } - uplevel #0 [list $w invoke active] - } -} - -# ::tk::MenuEscape -- -# This procedure is invoked for the Cancel (or Escape) key. It unposts -# the given menu and, if it is the top-level menu for a menu button, -# unposts the menu button as well. -# -# Arguments: -# menu - Name of the menu window. - -proc ::tk::MenuEscape menu { - set parent [winfo parent $menu] - if {[winfo class $parent] ne "Menu"} { - MenuUnpost $menu - } elseif {[$parent cget -type] eq "menubar"} { - MenuUnpost $menu - RestoreOldGrab - } else { - MenuNextMenu $menu left - } -} - -# The following routines handle arrow keys. Arrow keys behave -# differently depending on whether the menu is a menu bar or not. - -proc ::tk::MenuUpArrow {menu} { - if {[$menu cget -type] eq "menubar"} { - MenuNextMenu $menu left - } else { - MenuNextEntry $menu -1 - } -} - -proc ::tk::MenuDownArrow {menu} { - if {[$menu cget -type] eq "menubar"} { - MenuNextMenu $menu right - } else { - MenuNextEntry $menu 1 - } -} - -proc ::tk::MenuLeftArrow {menu} { - if {[$menu cget -type] eq "menubar"} { - MenuNextEntry $menu -1 - } else { - MenuNextMenu $menu left - } -} - -proc ::tk::MenuRightArrow {menu} { - if {[$menu cget -type] eq "menubar"} { - MenuNextEntry $menu 1 - } else { - MenuNextMenu $menu right - } -} - -# ::tk::MenuNextMenu -- -# This procedure is invoked to handle "left" and "right" traversal -# motions in menus. It traverses to the next menu in a menu bar, -# or into or out of a cascaded menu. -# -# Arguments: -# menu - The menu that received the keyboard -# event. -# direction - Direction in which to move: "left" or "right" - -proc ::tk::MenuNextMenu {menu direction} { - variable ::tk::Priv - - # First handle traversals into and out of cascaded menus. - - if {$direction eq "right"} { - set count 1 - set parent [winfo parent $menu] - set class [winfo class $parent] - if {[$menu type active] eq "cascade"} { - $menu postcascade active - set m2 [$menu entrycget active -menu] - if {$m2 ne ""} { - MenuFirstEntry $m2 - } - return - } else { - set parent [winfo parent $menu] - while {$parent ne "."} { - if {[winfo class $parent] eq "Menu" && [$parent cget -type] eq "menubar"} { - tk_menuSetFocus $parent - MenuNextEntry $parent 1 - return - } - set parent [winfo parent $parent] - } - } - } else { - set count -1 - set m2 [winfo parent $menu] - if {[winfo class $m2] eq "Menu"} { - $menu activate none - GenerateMenuSelect $menu - tk_menuSetFocus $m2 - - $m2 postcascade none - - if {[$m2 cget -type] ne "menubar"} { - return - } - } - } - - # Can't traverse into or out of a cascaded menu. Go to the next - # or previous menubutton, if that makes sense. - - set m2 [winfo parent $menu] - if {[winfo class $m2] eq "Menu"} { - if {[$m2 cget -type] eq "menubar"} { - tk_menuSetFocus $m2 - MenuNextEntry $m2 -1 - return - } - } - - set w $Priv(postedMb) - if {$w eq ""} { - return - } - set buttons [winfo children [winfo parent $w]] - set length [llength $buttons] - set i [expr {[lsearch -exact $buttons $w] + $count}] - while {1} { - while {$i < 0} { - incr i $length - } - while {$i >= $length} { - incr i -$length - } - set mb [lindex $buttons $i] - if {[winfo class $mb] eq "Menubutton" \ - && [$mb cget -state] ne "disabled" \ - && [$mb cget -menu] ne "" \ - && [[$mb cget -menu] index last] ne "none"} { - break - } - if {$mb eq $w} { - return - } - incr i $count - } - MbPost $mb - MenuFirstEntry [$mb cget -menu] -} - -# ::tk::MenuNextEntry -- -# Activate the next higher or lower entry in the posted menu, -# wrapping around at the ends. Disabled entries are skipped. -# -# Arguments: -# menu - Menu window that received the keystroke. -# count - 1 means go to the next lower entry, -# -1 means go to the next higher entry. - -proc ::tk::MenuNextEntry {menu count} { - if {[$menu index last] eq "none"} { - return - } - set length [expr {[$menu index last]+1}] - set quitAfter $length - set active [$menu index active] - if {$active eq "none"} { - set i 0 - } else { - set i [expr {$active + $count}] - } - while {1} { - if {$quitAfter <= 0} { - # We've tried every entry in the menu. Either there are - # none, or they're all disabled. Just give up. - - return - } - while {$i < 0} { - incr i $length - } - while {$i >= $length} { - incr i -$length - } - if {[catch {$menu entrycget $i -state} state] == 0} { - if {$state ne "disabled" && \ - ($i!=0 || [$menu cget -type] ne "tearoff" \ - || [$menu type 0] ne "tearoff")} { - break - } - } - if {$i == $active} { - return - } - incr i $count - incr quitAfter -1 - } - $menu activate $i - GenerateMenuSelect $menu - - if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} { - set cascade [$menu entrycget $i -menu] - if {$cascade ne ""} { - # Here we auto-post a cascade. This is necessary when - # we traverse left/right in the menubar, but undesirable when - # we traverse up/down in a menu. - $menu postcascade $i - MenuFirstEntry $cascade - } - } -} - -# ::tk::MenuFind -- -# This procedure searches the entire window hierarchy under w for -# a menubutton that isn't disabled and whose underlined character -# is "char" or an entry in a menubar that isn't disabled and whose -# underlined character is "char". -# It returns the name of that window, if found, or an -# empty string if no matching window was found. If "char" is an -# empty string then the procedure returns the name of the first -# menubutton found that isn't disabled. -# -# Arguments: -# w - Name of window where key was typed. -# char - Underlined character to search for; -# may be either upper or lower case, and -# will match either upper or lower case. - -proc ::tk::MenuFind {w char} { - set char [string tolower $char] - set windowlist [winfo child $w] - - foreach child $windowlist { - # Don't descend into other toplevels. - if {[winfo toplevel $w] ne [winfo toplevel $child]} { - continue - } - if {[winfo class $child] eq "Menu" && [$child cget -type] eq "menubar"} { - if {$char eq ""} { - return $child - } - set last [$child index last] - for {set i [$child cget -tearoff]} {$i <= $last} {incr i} { - if {[$child type $i] eq "separator"} { - continue - } - set char2 [string index [$child entrycget $i -label] \ - [$child entrycget $i -underline]] - if {$char eq [string tolower $char2] || $char eq ""} { - if {[$child entrycget $i -state] ne "disabled"} { - return $child - } - } - } - } - } - - foreach child $windowlist { - # Don't descend into other toplevels. - if {[winfo toplevel $w] ne [winfo toplevel $child]} { - continue - } - switch [winfo class $child] { - Menubutton { - set char2 [string index [$child cget -text] \ - [$child cget -underline]] - if {$char eq [string tolower $char2] || $char eq ""} { - if {[$child cget -state] ne "disabled"} { - return $child - } - } - } - - default { - set match [MenuFind $child $char] - if {$match ne ""} { - return $match - } - } - } - } - return {} -} - -# ::tk::TraverseToMenu -- -# This procedure implements keyboard traversal of menus. Given an -# ASCII character "char", it looks for a menubutton with that character -# underlined. If one is found, it posts the menubutton's menu -# -# Arguments: -# w - Window in which the key was typed (selects -# a toplevel window). -# char - Character that selects a menu. The case -# is ignored. If an empty string, nothing -# happens. - -proc ::tk::TraverseToMenu {w char} { - variable ::tk::Priv - if {$char eq ""} { - return - } - while {[winfo class $w] eq "Menu"} { - if {[$w cget -type] eq "menubar"} { - break - } elseif {$Priv(postedMb) eq ""} { - return - } - set w [winfo parent $w] - } - set w [MenuFind [winfo toplevel $w] $char] - if {$w ne ""} { - if {[winfo class $w] eq "Menu"} { - tk_menuSetFocus $w - set Priv(window) $w - SaveGrabInfo $w - grab -global $w - TraverseWithinMenu $w $char - } else { - MbPost $w - MenuFirstEntry [$w cget -menu] - } - } -} - -# ::tk::FirstMenu -- -# This procedure traverses to the first menubutton in the toplevel -# for a given window, and posts that menubutton's menu. -# -# Arguments: -# w - Name of a window. Selects which toplevel -# to search for menubuttons. - -proc ::tk::FirstMenu w { - variable ::tk::Priv - set w [MenuFind [winfo toplevel $w] ""] - if {$w ne ""} { - if {[winfo class $w] eq "Menu"} { - tk_menuSetFocus $w - set Priv(window) $w - SaveGrabInfo $w - grab -global $w - MenuFirstEntry $w - } else { - MbPost $w - MenuFirstEntry [$w cget -menu] - } - } -} - -# ::tk::TraverseWithinMenu -# This procedure implements keyboard traversal within a menu. It -# searches for an entry in the menu that has "char" underlined. If -# such an entry is found, it is invoked and the menu is unposted. -# -# Arguments: -# w - The name of the menu widget. -# char - The character to look for; case is -# ignored. If the string is empty then -# nothing happens. - -proc ::tk::TraverseWithinMenu {w char} { - if {$char eq ""} { - return - } - set char [string tolower $char] - set last [$w index last] - if {$last eq "none"} { - return - } - for {set i 0} {$i <= $last} {incr i} { - if {[catch {set char2 [string index \ - [$w entrycget $i -label] [$w entrycget $i -underline]]}]} { - continue - } - if {$char eq [string tolower $char2]} { - if {[$w type $i] eq "cascade"} { - $w activate $i - $w postcascade active - event generate $w <> - set m2 [$w entrycget $i -menu] - if {$m2 ne ""} { - MenuFirstEntry $m2 - } - } else { - MenuUnpost $w - uplevel #0 [list $w invoke $i] - } - return - } - } -} - -# ::tk::MenuFirstEntry -- -# Given a menu, this procedure finds the first entry that isn't -# disabled or a tear-off or separator, and activates that entry. -# However, if there is already an active entry in the menu (e.g., -# because of a previous call to tk::PostOverPoint) then the active -# entry isn't changed. This procedure also sets the input focus -# to the menu. -# -# Arguments: -# menu - Name of the menu window (possibly empty). - -proc ::tk::MenuFirstEntry menu { - if {$menu eq ""} { - return - } - tk_menuSetFocus $menu - if {[$menu index active] ne "none"} { - return - } - set last [$menu index last] - if {$last eq "none"} { - return - } - for {set i 0} {$i <= $last} {incr i} { - if {([catch {set state [$menu entrycget $i -state]}] == 0) \ - && $state ne "disabled" \ - && [$menu type $i] ne "tearoff"} { - $menu activate $i - GenerateMenuSelect $menu - # Only post the cascade if the current menu is a menubar; - # otherwise, if the first entry of the cascade is a cascade, - # we can get an annoying cascading effect resulting in a bunch of - # menus getting posted (bug 676) - if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} { - set cascade [$menu entrycget $i -menu] - if {$cascade ne ""} { - $menu postcascade $i - MenuFirstEntry $cascade - } - } - return - } - } -} - -# ::tk::MenuFindName -- -# Given a menu and a text string, return the index of the menu entry -# that displays the string as its label. If there is no such entry, -# return an empty string. This procedure is tricky because some names -# like "active" have a special meaning in menu commands, so we can't -# always use the "index" widget command. -# -# Arguments: -# menu - Name of the menu widget. -# s - String to look for. - -proc ::tk::MenuFindName {menu s} { - set i "" - if {![regexp {^active$|^last$|^none$|^[0-9]|^@} $s]} { - catch {set i [$menu index $s]} - return $i - } - set last [$menu index last] - if {$last eq "none"} { - return - } - for {set i 0} {$i <= $last} {incr i} { - if {![catch {$menu entrycget $i -label} label]} { - if {$label eq $s} { - return $i - } - } - } - return "" -} - -# ::tk::PostOverPoint -- -# This procedure posts a given menu such that a given entry in the -# menu is centered over a given point in the root window. It also -# activates the given entry. -# -# Arguments: -# menu - Menu to post. -# x, y - Root coordinates of point. -# entry - Index of entry within menu to center over (x,y). -# If omitted or specified as {}, then the menu's -# upper-left corner goes at (x,y). - -proc ::tk::PostOverPoint {menu x y {entry {}}} { - global tcl_platform - - if {$entry ne ""} { - if {$entry == [$menu index last]} { - incr y [expr {-([$menu yposition $entry] \ - + [winfo reqheight $menu])/2}] - } else { - incr y [expr {-([$menu yposition $entry] \ - + [$menu yposition [expr {$entry+1}]])/2}] - } - incr x [expr {-[winfo reqwidth $menu]/2}] - } - if {$tcl_platform(platform) eq "windows"} { - # We need to fix some problems with menu posting on Windows, - # where, if the menu would overlap top or bottom of screen, - # Windows puts it in the wrong place for us. We must also - # subtract an extra amount for half the height of the current - # entry. To be safe we subtract an extra 10. - set yoffset [expr {[winfo screenheight $menu] \ - - $y - [winfo reqheight $menu] - 10}] - if {$yoffset < 0} { - # The bottom of the menu is offscreen, so adjust upwards - incr y $yoffset - if {$y < 0} { set y 0 } - } - # If we're off the top of the screen (either because we were - # originally or because we just adjusted too far upwards), - # then make the menu popup on the top edge. - if {$y < 0} { - set y 0 - } - } - $menu post $x $y - if {$entry ne "" && [$menu entrycget $entry -state] ne "disabled"} { - $menu activate $entry - GenerateMenuSelect $menu - } -} - -# ::tk::SaveGrabInfo -- -# Sets the variables tk::Priv(oldGrab) and tk::Priv(grabStatus) to record -# the state of any existing grab on the w's display. -# -# Arguments: -# w - Name of a window; used to select the display -# whose grab information is to be recorded. - -proc tk::SaveGrabInfo w { - variable ::tk::Priv - set Priv(oldGrab) [grab current $w] - if {$Priv(oldGrab) ne ""} { - set Priv(grabStatus) [grab status $Priv(oldGrab)] - } -} - -# ::tk::RestoreOldGrab -- -# Restores the grab to what it was before TkSaveGrabInfo was called. -# - -proc ::tk::RestoreOldGrab {} { - variable ::tk::Priv - - if {$Priv(oldGrab) ne ""} { - # Be careful restoring the old grab, since it's window may not - # be visible anymore. - - catch { - if {$Priv(grabStatus) eq "global"} { - grab set -global $Priv(oldGrab) - } else { - grab set $Priv(oldGrab) - } - } - set Priv(oldGrab) "" - } -} - -proc ::tk_menuSetFocus {menu} { - variable ::tk::Priv - if {![info exists Priv(focus)] || $Priv(focus) eq ""} { - set Priv(focus) [focus] - } - focus $menu -} - -proc ::tk::GenerateMenuSelect {menu} { - variable ::tk::Priv - - if {$Priv(activeMenu) eq $menu && $Priv(activeItem) eq [$menu index active]} { - return - } - - set Priv(activeMenu) $menu - set Priv(activeItem) [$menu index active] - event generate $menu <> -} - -# ::tk_popup -- -# This procedure pops up a menu and sets things up for traversing -# the menu and its submenus. -# -# Arguments: -# menu - Name of the menu to be popped up. -# x, y - Root coordinates at which to pop up the -# menu. -# entry - Index of a menu entry to center over (x,y). -# If omitted or specified as {}, then menu's -# upper-left corner goes at (x,y). - -proc ::tk_popup {menu x y {entry {}}} { - variable ::tk::Priv - global tcl_platform - if {$Priv(popup) ne "" || $Priv(postedMb) ne ""} { - tk::MenuUnpost {} - } - tk::PostOverPoint $menu $x $y $entry - if {[tk windowingsystem] eq "x11" && [winfo viewable $menu]} { - tk::SaveGrabInfo $menu - grab -global $menu - set Priv(popup) $menu - tk_menuSetFocus $menu - } -} diff --git a/mingw/lib/tk8.4/msgbox.tcl b/mingw/lib/tk8.4/msgbox.tcl deleted file mode 100644 index fdf987ac..00000000 --- a/mingw/lib/tk8.4/msgbox.tcl +++ /dev/null @@ -1,413 +0,0 @@ -# msgbox.tcl -- -# -# Implements messageboxes for platforms that do not have native -# messagebox support. -# -# RCS: @(#) $Id: msgbox.tcl,v 1.24.2.3 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# Ensure existence of ::tk::dialog namespace -# -namespace eval ::tk::dialog {} - -image create bitmap ::tk::dialog::b1 -foreground black \ --data "#define b1_width 32\n#define b1_height 32 -static unsigned char q1_bits[] = { - 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x07, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x03, - 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, - 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, - 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, - 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, - 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, - 0x60, 0x00, 0x00, 0x04, 0x80, 0x03, 0x80, 0x03, 0x00, 0x0c, 0x78, 0x00, - 0x00, 0x30, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, - 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::b2 -foreground white \ --data "#define b2_width 32\n#define b2_height 32 -static unsigned char b2_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x00, - 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, - 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, - 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, - 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, - 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, - 0xf8, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0x07, - 0x80, 0xff, 0xff, 0x03, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xf0, 0x07, 0x00, - 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::q -foreground blue \ --data "#define q_width 32\n#define q_height 32 -static unsigned char q_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, - 0x00, 0x10, 0x0f, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x00, 0x38, 0x1e, 0x00, - 0x00, 0x38, 0x1e, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x80, 0x07, 0x00, - 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, - 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::i -foreground blue \ --data "#define i_width 32\n#define i_height 32 -static unsigned char i_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, - 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, - 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, - 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00, - 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::w1 -foreground black \ --data "#define w1_width 32\n#define w1_height 32 -static unsigned char w1_bits[] = { - 0x00, 0x80, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, - 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x20, 0x00, - 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, - 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, - 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, - 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, - 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, - 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, - 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, - 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::w2 -foreground yellow \ --data "#define w2_width 32\n#define w2_height 32 -static unsigned char w2_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, - 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, - 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x1f, 0x00, - 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfe, 0x3f, 0x00, - 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, - 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x01, - 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, - 0xf0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, - 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x3f, - 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" -image create bitmap ::tk::dialog::w3 -foreground black \ --data "#define w3_width 32\n#define w3_height 32 -static unsigned char w3_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, - 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, - 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, - 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, - 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" - -# ::tk::MessageBox -- -# -# Pops up a messagebox with an application-supplied message with -# an icon and a list of buttons. This procedure will be called -# by tk_messageBox if the platform does not have native -# messagebox support, or if the particular type of messagebox is -# not supported natively. -# -# Color icons are used on Unix displays that have a color -# depth of 4 or more and $tk_strictMotif is not on. -# -# This procedure is a private procedure shouldn't be called -# directly. Call tk_messageBox instead. -# -# See the user documentation for details on what tk_messageBox does. -# -proc ::tk::MessageBox {args} { - global tcl_platform tk_strictMotif - variable ::tk::Priv - - set w ::tk::PrivMsgBox - upvar $w data - - # - # The default value of the title is space (" ") not the empty string - # because for some window managers, a - # wm title .foo "" - # causes the window title to be "foo" instead of the empty string. - # - set specs { - {-default "" "" ""} - {-icon "" "" "info"} - {-message "" "" ""} - {-parent "" "" .} - {-title "" "" " "} - {-type "" "" "ok"} - } - - tclParseConfigSpec $w $specs "" $args - - if {[lsearch -exact {info warning error question} $data(-icon)] == -1} { - error "bad -icon value \"$data(-icon)\": must be error, info, question, or warning" - } - - # Store tk windowingsystem to avoid too many calls - set windowingsystem [tk windowingsystem] - if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { - switch -- $data(-icon) { - "error" {set data(-icon) "stop"} - "warning" {set data(-icon) "caution"} - "info" {set data(-icon) "note"} - } - } - - if {![winfo exists $data(-parent)]} { - error "bad window path name \"$data(-parent)\"" - } - - switch -- $data(-type) { - abortretryignore { - set names [list abort retry ignore] - set labels [list &Abort &Retry &Ignore] - } - ok { - set names [list ok] - set labels {&OK} - } - okcancel { - set names [list ok cancel] - set labels [list &OK &Cancel] - } - retrycancel { - set names [list retry cancel] - set labels [list &Retry &Cancel] - } - yesno { - set names [list yes no] - set labels [list &Yes &No] - } - yesnocancel { - set names [list yes no cancel] - set labels [list &Yes &No &Cancel] - } - default { - error "bad -type value \"$data(-type)\": must be\ - abortretryignore, ok, okcancel, retrycancel,\ - yesno, or yesnocancel" - } - } - - set buttons {} - foreach name $names lab $labels { - lappend buttons [list $name -text [mc $lab]] - } - - # If no default button was specified, the default default is the - # first button (Bug: 2218). - - if {$data(-default) eq ""} { - set data(-default) [lindex [lindex $buttons 0] 0] - } - - set valid 0 - foreach btn $buttons { - if {[lindex $btn 0] eq $data(-default)} { - set valid 1 - break - } - } - if {!$valid} { - error "invalid default button \"$data(-default)\"" - } - - # 2. Set the dialog to be a child window of $parent - # - # - if {$data(-parent) ne "."} { - set w $data(-parent).__tk__messagebox - } else { - set w .__tk__messagebox - } - - # 3. Create the top-level window and divide it into top - # and bottom parts. - - destroy $w - toplevel $w -class Dialog - wm title $w $data(-title) - wm iconname $w Dialog - wm protocol $w WM_DELETE_WINDOW { } - # There is only one background colour for the whole dialog - set bg [$w cget -background] - - # Message boxes should be transient with respect to their parent so that - # they always stay on top of the parent window. But some window managers - # will simply create the child window as withdrawn if the parent is not - # viewable (because it is withdrawn or iconified). This is not good for - # "grab"bed windows. So only make the message box transient if the parent - # is viewable. - # - if {[winfo viewable [winfo toplevel $data(-parent)]] } { - wm transient $w $data(-parent) - } - - if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { - unsupported::MacWindowStyle style $w dBoxProc - } - - frame $w.bot -background $bg - pack $w.bot -side bottom -fill both - frame $w.top -background $bg - pack $w.top -side top -fill both -expand 1 - if {$windowingsystem ne "classic" && $windowingsystem ne "aqua"} { - $w.bot configure -relief raised -bd 1 - $w.top configure -relief raised -bd 1 - } - - # 4. Fill the top part with bitmap and message (use the option - # database for -wraplength and -font so that they can be - # overridden by the caller). - - option add *Dialog.msg.wrapLength 3i widgetDefault - if {$windowingsystem eq "classic" || $windowingsystem eq "aqua"} { - option add *Dialog.msg.font system widgetDefault - } else { - option add *Dialog.msg.font {Times 14} widgetDefault - } - - label $w.msg -anchor nw -justify left -text $data(-message) \ - -background $bg - if {$data(-icon) ne ""} { - if {($windowingsystem eq "classic" || $windowingsystem eq "aqua") - || ([winfo depth $w] < 4) || $tk_strictMotif} { - label $w.bitmap -bitmap $data(-icon) -background $bg - } else { - canvas $w.bitmap -width 32 -height 32 -highlightthickness 0 \ - -background $bg - switch $data(-icon) { - error { - $w.bitmap create oval 0 0 31 31 -fill red -outline black - $w.bitmap create line 9 9 23 23 -fill white -width 4 - $w.bitmap create line 9 23 23 9 -fill white -width 4 - } - info { - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::b1 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::b2 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::i - } - question { - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::b1 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::b2 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::q - } - default { - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::w1 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::w2 - $w.bitmap create image 0 0 -anchor nw \ - -image ::tk::dialog::w3 - } - } - } - } - grid $w.bitmap $w.msg -in $w.top -sticky news -padx 2m -pady 2m - grid columnconfigure $w.top 1 -weight 1 - grid rowconfigure $w.top 0 -weight 1 - - # 5. Create a row of buttons at the bottom of the dialog. - - set i 0 - foreach but $buttons { - set name [lindex $but 0] - set opts [lrange $but 1 end] - if {![llength $opts]} { - # Capitalize the first letter of $name - set capName [string toupper $name 0] - set opts [list -text $capName] - } - - eval [list tk::AmpWidget button $w.$name -padx 3m] $opts \ - [list -command [list set tk::Priv(button) $name]] - - if {$name eq $data(-default)} { - $w.$name configure -default active - } else { - $w.$name configure -default normal - } - grid $w.$name -in $w.bot -row 0 -column $i -padx 3m -pady 2m -sticky ew - grid columnconfigure $w.bot $i -uniform buttons - incr i - - # create the binding for the key accelerator, based on the underline - # - # set underIdx [$w.$name cget -under] - # if {$underIdx >= 0} { - # set key [string index [$w.$name cget -text] $underIdx] - # bind $w [list $w.$name invoke] - # bind $w [list $w.$name invoke] - # } - } - bind $w [list ::tk::AltKeyInDialog $w %A] - - if {$data(-default) ne ""} { - bind $w { - if {"Button" eq [winfo class %W]} { - %W configure -default active - } - } - bind $w { - if {"Button" eq [winfo class %W]} { - %W configure -default normal - } - } - } - - # 6. Create a binding for on the dialog - - bind $w { - if {"Button" eq [winfo class %W]} { - tk::ButtonInvoke %W - } - } - - # 7. Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display and de-iconify it. - - ::tk::PlaceWindow $w widget $data(-parent) - - # 8. Set a grab and claim the focus too. - - if {$data(-default) ne ""} { - set focus $w.$data(-default) - } else { - set focus $w - } - ::tk::SetFocusGrab $w $focus - - # 9. Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(button) - - ::tk::RestoreFocusGrab $w $focus - - return $Priv(button) -} diff --git a/mingw/lib/tk8.4/msgs/cs.msg b/mingw/lib/tk8.4/msgs/cs.msg deleted file mode 100644 index e4014a33..00000000 --- a/mingw/lib/tk8.4/msgs/cs.msg +++ /dev/null @@ -1,70 +0,0 @@ -namespace eval ::tk { - ::msgcat::mcset cs "&Abort" "&P\u0159eru\u0161it" - ::msgcat::mcset cs "About..." "O programu..." - ::msgcat::mcset cs "All Files" "V\u0161echny soubory" - ::msgcat::mcset cs "Application Error" "Chyba programu" - ::msgcat::mcset cs "&Blue" "&Modr\341" - ::msgcat::mcset cs "&Cancel" "&Zru\u0161it" - ::msgcat::mcset cs "Cannot change to the directory \"%1\$s\".\nPermission denied." "Nemohu zm\u011bnit atku\341ln\355 adres\341\u0159 na \"%1\$s\".\nP\u0159\355stup odm\355tnut." - ::msgcat::mcset cs "Choose Directory" "V\375b\u011br adres\341\u0159e" - ::msgcat::mcset cs "Clear" "Smazat" - ::msgcat::mcset cs "Color" "Barva" - ::msgcat::mcset cs "Console" "Konzole" - ::msgcat::mcset cs "Copy" "Kop\355rovat" - ::msgcat::mcset cs "Cut" "Vy\u0159\355znout" - ::msgcat::mcset cs "Delete" "Smazat" - ::msgcat::mcset cs "Details >>" "Detaily >>" - ::msgcat::mcset cs "Directory \"%1\$s\" does not exist." "Adres\341\u0159 \"%1\$s\" neexistuje." - ::msgcat::mcset cs "&Directory:" "&Adres\341\u0159:" - ::msgcat::mcset cs "Error: %1\$s" "Chyba: %1\$s" - ::msgcat::mcset cs "Exit" "Konec" - ::msgcat::mcset cs "File \"%1\$s\" already exists.\n\n" "Soubor \"%1\$s\" ji\u017e existuje.\n\n" - ::msgcat::mcset cs "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Soubor \"%1\$s\" ji\u017e existuje.\nChcete jej p\u0159epsat?" - ::msgcat::mcset cs "File \"%1\$s\" does not exist." "Soubor \"%1\$s\" neexistuje." - ::msgcat::mcset cs "File &name:" "&Jm\351no souboru:" - ::msgcat::mcset cs "File &names:" "&Jm\351na soubor\u016f:" - ::msgcat::mcset cs "Files of &type:" "&Typy soubor\u016f:" - ::msgcat::mcset cs "Fi&les:" "Sou&bory:" - ::msgcat::mcset cs "&Filter" "&Filtr" - ::msgcat::mcset cs "Fil&ter:" "Fil&tr:" - ::msgcat::mcset cs "&Green" "Ze&len\341" - ::msgcat::mcset cs "Hi" - ::msgcat::mcset cs "Hide Console" "Skr\375t konsolu" - ::msgcat::mcset cs "&Ignore" "&Ignorovat" - ::msgcat::mcset cs "Invalid file name \"%1\$s\"." "\u0160patn\351 jm\351no souboru \"%1\$s\"." - ::msgcat::mcset cs "Log Files" "Log soubory" - ::msgcat::mcset cs "&No" "&Ne" - ::msgcat::mcset cs "&OK" - ::msgcat::mcset cs "Ok" - ::msgcat::mcset cs "Open" "Otev\u0159\355t" - ::msgcat::mcset cs "&Open" "&Otev\u0159\355t" - ::msgcat::mcset cs "Open Multiple Files" "Otev\u0159\355t v\355ce soubor\u016f" - ::msgcat::mcset cs "Paste" "Vlo\u017eit" - ::msgcat::mcset cs "Quit" "Skon\u010dit" - ::msgcat::mcset cs "&Red" " \u010ce&rven\341" - ::msgcat::mcset cs "Replace existing file?" "Nahradit st\341vaj\355c\355 soubor?" - ::msgcat::mcset cs "&Retry" "Z&novu" - ::msgcat::mcset cs "&Save" "&Ulo\u017eit" - ::msgcat::mcset cs "Save As" "Ulo\u017eit jako" - ::msgcat::mcset cs "Save To Log" "Ulo\u017eit do logu" - ::msgcat::mcset cs "Select Log File" "Vybrat log soubor" - ::msgcat::mcset cs "Select a file to source" "Vybrat soubor k nahr\341n\355" - ::msgcat::mcset cs "&Selection:" "&V\375b\u011br:" - ::msgcat::mcset cs "Skip Messages" "P\u0159esko\u010dit zpr\341vy" - ::msgcat::mcset cs "Source..." "Nahr\341t..." - ::msgcat::mcset cs "Tcl Scripts" "Tcl skripty" - ::msgcat::mcset cs "Tcl for Windows" "Tcl pro Windows" - ::msgcat::mcset cs "Text Files" "Textov\351 soubory" - ::msgcat::mcset cs "&Yes" "&Ano" - ::msgcat::mcset cs "abort" "p\u0159eru\u0161it" - ::msgcat::mcset cs "blue" "modr\341" - ::msgcat::mcset cs "cancel" "zru\u0161it" - ::msgcat::mcset cs "extension" "p\u0159\355pona" - ::msgcat::mcset cs "extensions" "p\u0159\355pony" - ::msgcat::mcset cs "green" "zelen\341" - ::msgcat::mcset cs "ignore" "ignorovat" - ::msgcat::mcset cs "ok" - ::msgcat::mcset cs "red" "\u010derven\341" - ::msgcat::mcset cs "retry" "znovu" - ::msgcat::mcset cs "yes" "ano" -} diff --git a/mingw/lib/tk8.4/msgs/de.msg b/mingw/lib/tk8.4/msgs/de.msg deleted file mode 100644 index c5ae6893..00000000 --- a/mingw/lib/tk8.4/msgs/de.msg +++ /dev/null @@ -1,70 +0,0 @@ -namespace eval ::tk { - ::msgcat::mcset de "&Abort" "&Abbruch" - ::msgcat::mcset de "About..." "\u00dcber..." - ::msgcat::mcset de "All Files" "Alle Dateien" - ::msgcat::mcset de "Application Error" "Applikationsfehler" - ::msgcat::mcset de "&Blue" "&Blau" - ::msgcat::mcset de "&Cancel" "&Abbruch" - ::msgcat::mcset de "Cannot change to the directory \"%1\$s\".\nPermission denied." "Kann nicht in das Verzeichnis \"%1\$s\" wechseln.\nKeine Rechte vorhanden." - ::msgcat::mcset de "Choose Directory" "W\u00e4hle Verzeichnis" - ::msgcat::mcset de "Clear" "R\u00fccksetzen" - ::msgcat::mcset de "Color" "Farbe" - ::msgcat::mcset de "Console" "Konsole" - ::msgcat::mcset de "Copy" "Kopieren" - ::msgcat::mcset de "Cut" "Ausschneiden" - ::msgcat::mcset de "Delete" "L\u00f6schen" - ::msgcat::mcset de "Details >>" - ::msgcat::mcset de "Directory \"%1\$s\" does not exist." "Das Verzeichnis \"%1\$s\" existiert nicht." - ::msgcat::mcset de "&Directory:" "&Verzeichnis:" - ::msgcat::mcset de "Error: %1\$s" "Fehler: %1\$s" - ::msgcat::mcset de "Exit" "Ende" - ::msgcat::mcset de "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Die Datei \"%1\$s\" ist bereits vorhanden.\nWollen sie diese Datei \u00fcberschreiben ?" - ::msgcat::mcset de "File \"%1\$s\" already exists.\n\n" "Die Datei \"%1\$s\" ist bereits vorhanden.\n\n" - ::msgcat::mcset de "File \"%1\$s\" does not exist." "Die Datei \"%1\$s\" existiert nicht." - ::msgcat::mcset de "File &name:" "Datei&name:" - ::msgcat::mcset de "File &names:" "Datei&namen:" - ::msgcat::mcset de "Files of &type:" "Dateien des &Typs:" - ::msgcat::mcset de "Fi&les:" "Dat&eien:" - ::msgcat::mcset de "&Filter" - ::msgcat::mcset de "Fil&ter:" - ::msgcat::mcset de "&Green" "&Gr\u00fcn" - ::msgcat::mcset de "Hi" "Hallo" - ::msgcat::mcset de "Hide Console" "Konsole unsichtbar machen" - ::msgcat::mcset de "&Ignore" "&Ignorieren" - ::msgcat::mcset de "Invalid file name \"%1\$s\"." "Ung\u00fcltiger Dateiname \"%1\$s\"." - ::msgcat::mcset de "Log Files" "Protokolldatei" - ::msgcat::mcset de "&No" "&Nein" - ::msgcat::mcset de "OK" - ::msgcat::mcset de "Ok" - ::msgcat::mcset de "Open" "\u00d6ffnen" - ::msgcat::mcset de "&Open" "\u00d6&ffnen" - ::msgcat::mcset de "Open Multiple Files" - ::msgcat::mcset de "Paste" "Einf\u00fcgen" - ::msgcat::mcset de "Quit" "Beenden" - ::msgcat::mcset de "&Red" "&Rot" - ::msgcat::mcset de "Replace existing file?" "Existierende Datei ersetzen?" - ::msgcat::mcset de "&Retry" "&Wiederholen" - ::msgcat::mcset de "&Save" "&Speichern" - ::msgcat::mcset de "Save As" "Speichern unter" - ::msgcat::mcset de "Save To Log" "In Protokoll speichern" - ::msgcat::mcset de "Select Log File" "Protokolldatei ausw\u00e4hlen" - ::msgcat::mcset de "Select a file to source" "Auszuf\u00fchrende Datei ausw\u00e4hlen" - ::msgcat::mcset de "&Selection:" "Auswah&l:" - ::msgcat::mcset de "Skip Messages" "Weitere Nachrichten \u00fcberspringen" - ::msgcat::mcset de "Source..." "Ausf\u00fchren..." - ::msgcat::mcset de "Tcl Scripts" "Tcl-Skripte" - ::msgcat::mcset de "Tcl for Windows" "Tcl f\u00fcr Windows" - ::msgcat::mcset de "Text Files" "Textdateien" - ::msgcat::mcset de "&Yes" "&Ja" - ::msgcat::mcset de "abort" "abbrechen" - ::msgcat::mcset de "blue" "blau" - ::msgcat::mcset de "cancel" "abbrechen" - ::msgcat::mcset de "extension" "Erweiterung" - ::msgcat::mcset de "extensions" "Erweiterungen" - ::msgcat::mcset de "green" "gr\u00fcn" - ::msgcat::mcset de "ignore" "ignorieren" - ::msgcat::mcset de "ok" - ::msgcat::mcset de "red" "rot" - ::msgcat::mcset de "retry" "wiederholen" - ::msgcat::mcset de "yes" "ja" -} diff --git a/mingw/lib/tk8.4/msgs/el.msg b/mingw/lib/tk8.4/msgs/el.msg deleted file mode 100644 index 2e96cd96..00000000 --- a/mingw/lib/tk8.4/msgs/el.msg +++ /dev/null @@ -1,86 +0,0 @@ -## Messages for the Greek (Hellenic - "el") language. -## Please report any changes/suggestions to: -## petasis@iit.demokritos.gr - -namespace eval ::tk { - ::msgcat::mcset el "&Abort" "\u03a4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" - ::msgcat::mcset el "About..." "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac..." - ::msgcat::mcset el "All Files" "\u038c\u03bb\u03b1 \u03c4\u03b1 \u0391\u03c1\u03c7\u03b5\u03af\u03b1" - ::msgcat::mcset el "Application Error" "\u039b\u03ac\u03b8\u03bf\u03c2 \u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2" - ::msgcat::mcset el "&Blue" "\u039c\u03c0\u03bb\u03b5" - ::msgcat::mcset el "&Cancel" "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" - ::msgcat::mcset el \ -"Cannot change to the directory \"%1\$s\".\nPermission denied." \ -"\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5 \u03c3\u03b5 \"%1\$s\".\n\u0397 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9." - ::msgcat::mcset el "Choose Directory" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u039a\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5" - ::msgcat::mcset el "Clear" "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2" - ::msgcat::mcset el "Color" "\u03a7\u03c1\u03ce\u03bc\u03b1" - ::msgcat::mcset el "Console" "\u039a\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1" - ::msgcat::mcset el "Copy" "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae" - ::msgcat::mcset el "Cut" "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae" - ::msgcat::mcset el "Delete" "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae" - ::msgcat::mcset el "Details >>" "\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 >>" - ::msgcat::mcset el "Directory \"%1\$s\" does not exist." \ - "\u039f \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2 \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." - ::msgcat::mcset el "&Directory:" "&\u039a\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2:" - ::msgcat::mcset el "Error: %1\$s" "\u039b\u03ac\u03b8\u03bf\u03c2: %1\$s" - ::msgcat::mcset el "Exit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" - ::msgcat::mcset el \ - "File \"%1\$s\" already exists.\nDo you want to overwrite it?" \ - "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03ba\u03b1\u03bb\u03c5\u03c6\u03b8\u03b5\u03af;" - ::msgcat::mcset el "File \"%1\$s\" already exists.\n\n" \ - "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\n" - ::msgcat::mcset el "File \"%1\$s\" does not exist." \ - "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." - ::msgcat::mcset el "File &name:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5:" - ::msgcat::mcset el "File &names:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd:" - ::msgcat::mcset el "Files of &type:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5 &\u03c4\u03cd\u03c0\u03bf\u03c5:" - ::msgcat::mcset el "Fi&les:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1:" - ::msgcat::mcset el "&Filter" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf" - ::msgcat::mcset el "Fil&ter:" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf:" - ::msgcat::mcset el "&Green" "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" - ::msgcat::mcset el "Hi" "\u0393\u03b5\u03b9\u03b1" - ::msgcat::mcset el "Hide Console" "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03ba\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1\u03c2" - ::msgcat::mcset el "&Ignore" "\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" - ::msgcat::mcset el "Invalid file name \"%1\$s\"." \ - "\u0386\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \"%1\$s\"." - ::msgcat::mcset el "Log Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" - ::msgcat::mcset el "&No" "\u038c\u03c7\u03b9" - ::msgcat::mcset el "&OK" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" - ::msgcat::mcset el "&Ok" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" - ::msgcat::mcset el "Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" - ::msgcat::mcset el "&Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" - ::msgcat::mcset el "Open Multiple Files" \ - "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ce\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd" - ::msgcat::mcset el "Paste" "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7" - ::msgcat::mcset el "Quit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" - ::msgcat::mcset el "&Red" "\u039a\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" - ::msgcat::mcset el "Replace existing file?" \ - "\u0395\u03c0\u03b9\u03ba\u03ac\u03bb\u03c5\u03c8\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03bd\u03c4\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5;" - ::msgcat::mcset el "&Retry" "\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" - ::msgcat::mcset el "&Save" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" - ::msgcat::mcset el "Save As" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03b1\u03bd" - ::msgcat::mcset el "Save To Log" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" - ::msgcat::mcset el "Select Log File" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" - ::msgcat::mcset el "Select a file to source" \ - "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7" - ::msgcat::mcset el "&Selection:" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae:" - ::msgcat::mcset el "Skip Messages" "\u0391\u03c0\u03bf\u03c6\u03c5\u03b3\u03ae \u03bc\u03c5\u03bd\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd" - ::msgcat::mcset el "Source..." "\u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7..." - ::msgcat::mcset el "Tcl Scripts" "Tcl Scripts" - ::msgcat::mcset el "Tcl for Windows" "Tcl \u03b3\u03b9\u03b1 Windows" - ::msgcat::mcset el "Text Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5" - ::msgcat::mcset el "&Yes" "\u039d\u03b1\u03b9" - ::msgcat::mcset el "abort" "\u03c4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" - ::msgcat::mcset el "blue" "\u03bc\u03c0\u03bb\u03b5" - ::msgcat::mcset el "cancel" "\u03b1\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" - ::msgcat::mcset el "extension" "\u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7" - ::msgcat::mcset el "extensions" "\u03b5\u03c0\u03b5\u03ba\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2" - ::msgcat::mcset el "green" "\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" - ::msgcat::mcset el "ignore" "\u03b1\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" - ::msgcat::mcset el "ok" "\u03b5\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" - ::msgcat::mcset el "red" "\u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" - ::msgcat::mcset el "retry" "\u03c0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" - ::msgcat::mcset el "yes" "\u03bd\u03b1\u03b9" -} - diff --git a/mingw/lib/tk8.4/msgs/en.msg b/mingw/lib/tk8.4/msgs/en.msg deleted file mode 100644 index 7242f913..00000000 --- a/mingw/lib/tk8.4/msgs/en.msg +++ /dev/null @@ -1,70 +0,0 @@ -namespace eval ::tk { - ::msgcat::mcset en "&Abort" - ::msgcat::mcset en "About..." - ::msgcat::mcset en "All Files" - ::msgcat::mcset en "Application Error" - ::msgcat::mcset en "&Blue" - ::msgcat::mcset en "&Cancel" - ::msgcat::mcset en "Cannot change to the directory \"%1\$s\".\nPermission denied." - ::msgcat::mcset en "Choose Directory" - ::msgcat::mcset en "Clear" - ::msgcat::mcset en "Color" - ::msgcat::mcset en "Console" - ::msgcat::mcset en "Copy" - ::msgcat::mcset en "Cut" - ::msgcat::mcset en "Delete" - ::msgcat::mcset en "Details >>" - ::msgcat::mcset en "Directory \"%1\$s\" does not exist." - ::msgcat::mcset en "&Directory:" - ::msgcat::mcset en "Error: %1\$s" - ::msgcat::mcset en "Exit" - ::msgcat::mcset en "File \"%1\$s\" already exists.\nDo you want to overwrite it?" - ::msgcat::mcset en "File \"%1\$s\" already exists.\n\n" - ::msgcat::mcset en "File \"%1\$s\" does not exist." - ::msgcat::mcset en "File &name:" - ::msgcat::mcset en "File &names:" - ::msgcat::mcset en "Files of &type:" - ::msgcat::mcset en "Fi&les:" - ::msgcat::mcset en "&Filter" - ::msgcat::mcset en "Fil&ter:" - ::msgcat::mcset en "&Green" - ::msgcat::mcset en "Hi" - ::msgcat::mcset en "Hide Console" - ::msgcat::mcset en "&Ignore" - ::msgcat::mcset en "Invalid file name \"%1\$s\"." - ::msgcat::mcset en "Log Files" - ::msgcat::mcset en "&No" - ::msgcat::mcset en "&OK" - ::msgcat::mcset en "Ok" - ::msgcat::mcset en "Open" - ::msgcat::mcset en "&Open" - ::msgcat::mcset en "Open Multiple Files" - ::msgcat::mcset en "Paste" - ::msgcat::mcset en "Quit" - ::msgcat::mcset en "&Red" - ::msgcat::mcset en "Replace existing file?" - ::msgcat::mcset en "&Retry" - ::msgcat::mcset en "&Save" - ::msgcat::mcset en "Save As" - ::msgcat::mcset en "Save To Log" - ::msgcat::mcset en "Select Log File" - ::msgcat::mcset en "Select a file to source" - ::msgcat::mcset en "&Selection:" - ::msgcat::mcset en "Skip Messages" - ::msgcat::mcset en "Source..." - ::msgcat::mcset en "Tcl Scripts" - ::msgcat::mcset en "Tcl for Windows" - ::msgcat::mcset en "Text Files" - ::msgcat::mcset en "&Yes" - ::msgcat::mcset en "abort" - ::msgcat::mcset en "blue" - ::msgcat::mcset en "cancel" - ::msgcat::mcset en "extension" - ::msgcat::mcset en "extensions" - ::msgcat::mcset en "green" - ::msgcat::mcset en "ignore" - ::msgcat::mcset en "ok" - ::msgcat::mcset en "red" - ::msgcat::mcset en "retry" - ::msgcat::mcset en "yes" -} diff --git a/mingw/lib/tk8.4/msgs/es.msg b/mingw/lib/tk8.4/msgs/es.msg deleted file mode 100644 index 7de0faef..00000000 --- a/mingw/lib/tk8.4/msgs/es.msg +++ /dev/null @@ -1,70 +0,0 @@ -namespace eval ::tk { - ::msgcat::mcset es "&Abort" "&Abortar" - ::msgcat::mcset es "About..." "Acerca de ..." - ::msgcat::mcset es "All Files" "Todos los archivos" - ::msgcat::mcset es "Application Error" "Error de la aplicaci\u00f3n" - ::msgcat::mcset es "&Blue" "&Azul" - ::msgcat::mcset es "&Cancel" "&Cancelar" - ::msgcat::mcset es "Cannot change to the directory \"%1\$s\".\nPermission denied." "No es posible acceder al directorio \"%1\$s\".\nPermiso denegado." - ::msgcat::mcset es "Choose Directory" "Elegir directorio" - ::msgcat::mcset es "Clear" "Borrar" - ::msgcat::mcset es "Color" "Color" - ::msgcat::mcset es "Console" "Consola" - ::msgcat::mcset es "Copy" "Copiar" - ::msgcat::mcset es "Cut" "Cortar" - ::msgcat::mcset es "Delete" "Borrar" - ::msgcat::mcset es "Details >>" "Detalles >>" - ::msgcat::mcset es "Directory \"%1\$s\" does not exist." "El directorio \"%1\$s\" no existe." - ::msgcat::mcset es "&Directory:" "&Directorio:" - ::msgcat::mcset es "Error: %1\$s" "Error: %1\$s" - ::msgcat::mcset es "Exit" "Salir" - ::msgcat::mcset es "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "El archivo \"%1\$s\" ya existe.\nDesea sobreescribirlo?" - ::msgcat::mcset es "File \"%1\$s\" already exists.\n\n" "El archivo \"%1\$s\" ya existe.\n\n" - ::msgcat::mcset es "File \"%1\$s\" does not exist." "El archivo \"%1\$s\" no existe." - ::msgcat::mcset es "File &name:" "&Nombre de archivo:" - ::msgcat::mcset es "File &names:" "&Nombres de archivo:" - ::msgcat::mcset es "Files of &type:" "Archivos de &tipo:" - ::msgcat::mcset es "Fi&les:" "&Archivos:" - ::msgcat::mcset es "&Filter" "&Filtro" - ::msgcat::mcset es "Fil&ter:" "Fil&tro:" - ::msgcat::mcset es "&Green" "&Verde" - ::msgcat::mcset es "Hi" "Hola" - ::msgcat::mcset es "Hide Console" "Esconder la consola" - ::msgcat::mcset es "&Ignore" "&Ignorar" - ::msgcat::mcset es "Invalid file name \"%1\$s\"." "Nombre de archivo inv\u00e1lido \"%1\$s\"." - ::msgcat::mcset es "Log Files" "Ficheros de traza" - ::msgcat::mcset es "&No" "&No" - ::msgcat::mcset es "&OK" "&OK" - ::msgcat::mcset es "Ok" "Ok" - ::msgcat::mcset es "Open" "Abrir" - ::msgcat::mcset es "&Open" "&Abrir" - ::msgcat::mcset es "Open Multiple Files" "Abrir m\u00faltiples archivos" - ::msgcat::mcset es "Paste" "Pegar" - ::msgcat::mcset es "Quit" "Abandonar" - ::msgcat::mcset es "&Red" "&Rojo" - ::msgcat::mcset es "Replace existing file?" "Reemplazar el archivo existente?" - ::msgcat::mcset es "&Retry" "&Reintentar" - ::msgcat::mcset es "&Save" "&Salvar" - ::msgcat::mcset es "Save As" "Salvar como" - ::msgcat::mcset es "Save To Log" "Salvar al archivo de traza" - ::msgcat::mcset es "Select Log File" "Elegir un archivo de traza" - ::msgcat::mcset es "Select a file to source" "Seleccionar un archivo a evaluar" - ::msgcat::mcset es "&Selection:" "&Selecci\u00f3n:" - ::msgcat::mcset es "Skip Messages" "Omitir los mensajes" - ::msgcat::mcset es "Source..." "Evaluar..." - ::msgcat::mcset es "Tcl Scripts" "Scripts Tcl" - ::msgcat::mcset es "Tcl for Windows" "Tcl para Windows" - ::msgcat::mcset es "Text Files" "Archivos de texto" - ::msgcat::mcset es "&Yes" "&S\u00ed" - ::msgcat::mcset es "abort" "abortar" - ::msgcat::mcset es "blue" "azul" - ::msgcat::mcset es "cancel" "cancelar" - ::msgcat::mcset es "extension" "extensi\u00f3n" - ::msgcat::mcset es "extensions" "extensiones" - ::msgcat::mcset es "green" "verde" - ::msgcat::mcset es "ignore" "ignorar" - ::msgcat::mcset es "ok" "ok" - ::msgcat::mcset es "red" "rojo" - ::msgcat::mcset es "retry" "reintentar" - ::msgcat::mcset es "yes" "s\u00ed" -} diff --git a/mingw/lib/tk8.4/msgs/es_ES.msg b/mingw/lib/tk8.4/msgs/es_ES.msg deleted file mode 100644 index 77e5a925..00000000 --- a/mingw/lib/tk8.4/msgs/es_ES.msg +++ /dev/null @@ -1,5 +0,0 @@ -namespace eval ::tk { - ::msgcat::mcset es_ES "&Save" "&Guardar" - ::msgcat::mcset es_ES "Save As" "Guardar como" - ::msgcat::mcset es_ES "Save To Log" "Guardar al archivo de traza" -} diff --git a/mingw/lib/tk8.4/palette.tcl b/mingw/lib/tk8.4/palette.tcl deleted file mode 100644 index c53fad59..00000000 --- a/mingw/lib/tk8.4/palette.tcl +++ /dev/null @@ -1,246 +0,0 @@ -# palette.tcl -- -# -# This file contains procedures that change the color palette used -# by Tk. -# -# RCS: @(#) $Id: palette.tcl,v 1.8.2.2 2006/03/17 10:50:11 patthoyts Exp $ -# -# Copyright (c) 1995-1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -# ::tk_setPalette -- -# Changes the default color scheme for a Tk application by setting -# default colors in the option database and by modifying all of the -# color options for existing widgets that have the default value. -# -# Arguments: -# The arguments consist of either a single color name, which -# will be used as the new background color (all other colors will -# be computed from this) or an even number of values consisting of -# option names and values. The name for an option is the one used -# for the option database, such as activeForeground, not -activeforeground. - -proc ::tk_setPalette {args} { - if {[winfo depth .] == 1} { - # Just return on monochrome displays, otherwise errors will occur - return - } - - # Create an array that has the complete new palette. If some colors - # aren't specified, compute them from other colors that are specified. - - if {[llength $args] == 1} { - set new(background) [lindex $args 0] - } else { - array set new $args - } - if {![info exists new(background)]} { - error "must specify a background color" - } - set bg [winfo rgb . $new(background)] - if {![info exists new(foreground)]} { - # Note that the range of each value in the triple returned by - # [winfo rgb] is 0-65535, and your eyes are more sensitive to - # green than to red, and more to red than to blue. - foreach {r g b} $bg {break} - if {$r+1.5*$g+0.5*$b > 100000} { - set new(foreground) black - } else { - set new(foreground) white - } - } - - # To avoir too many lindex... - foreach {fg_r fg_g fg_b} [winfo rgb . $new(foreground)] {break} - foreach {bg_r bg_g bg_b} $bg {break} - - set darkerBg [format #%02x%02x%02x [expr {(9*$bg_r)/2560}] \ - [expr {(9*$bg_g)/2560}] [expr {(9*$bg_b)/2560}]] - foreach i {activeForeground insertBackground selectForeground \ - highlightColor} { - if {![info exists new($i)]} { - set new($i) $new(foreground) - } - } - if {![info exists new(disabledForeground)]} { - set new(disabledForeground) [format #%02x%02x%02x \ - [expr {(3*$bg_r + $fg_r)/1024}] \ - [expr {(3*$bg_g + $fg_g)/1024}] \ - [expr {(3*$bg_b + $fg_b)/1024}]] - } - if {![info exists new(highlightBackground)]} { - set new(highlightBackground) $new(background) - } - if {![info exists new(activeBackground)]} { - # Pick a default active background that islighter than the - # normal background. To do this, round each color component - # up by 15% or 1/3 of the way to full white, whichever is - # greater. - - foreach i {0 1 2} color "$bg_r $bg_g $bg_b" { - set light($i) [expr {$color/256}] - set inc1 [expr {($light($i)*15)/100}] - set inc2 [expr {(255-$light($i))/3}] - if {$inc1 > $inc2} { - incr light($i) $inc1 - } else { - incr light($i) $inc2 - } - if {$light($i) > 255} { - set light($i) 255 - } - } - set new(activeBackground) [format #%02x%02x%02x $light(0) \ - $light(1) $light(2)] - } - if {![info exists new(selectBackground)]} { - set new(selectBackground) $darkerBg - } - if {![info exists new(troughColor)]} { - set new(troughColor) $darkerBg - } - if {![info exists new(selectColor)]} { - set new(selectColor) #b03060 - } - - # let's make one of each of the widgets so we know what the - # defaults are currently for this platform. - toplevel .___tk_set_palette - wm withdraw .___tk_set_palette - foreach q { - button canvas checkbutton entry frame label labelframe - listbox menubutton menu message radiobutton scale scrollbar - spinbox text - } { - $q .___tk_set_palette.$q - } - - # Walk the widget hierarchy, recoloring all existing windows. - # The option database must be set according to what we do here, - # but it breaks things if we set things in the database while - # we are changing colors...so, ::tk::RecolorTree now returns the - # option database changes that need to be made, and they - # need to be evalled here to take effect. - # We have to walk the whole widget tree instead of just - # relying on the widgets we've created above to do the work - # because different extensions may provide other kinds - # of widgets that we don't currently know about, so we'll - # walk the whole hierarchy just in case. - - eval [tk::RecolorTree . new] - - destroy .___tk_set_palette - - # Change the option database so that future windows will get the - # same colors. - - foreach option [array names new] { - option add *$option $new($option) widgetDefault - } - - # Save the options in the variable ::tk::Palette, for use the - # next time we change the options. - - array set ::tk::Palette [array get new] -} - -# ::tk::RecolorTree -- -# This procedure changes the colors in a window and all of its -# descendants, according to information provided by the colors -# argument. This looks at the defaults provided by the option -# database, if it exists, and if not, then it looks at the default -# value of the widget itself. -# -# Arguments: -# w - The name of a window. This window and all its -# descendants are recolored. -# colors - The name of an array variable in the caller, -# which contains color information. Each element -# is named after a widget configuration option, and -# each value is the value for that option. - -proc ::tk::RecolorTree {w colors} { - upvar $colors c - set result {} - set prototype .___tk_set_palette.[string tolower [winfo class $w]] - if {![winfo exists $prototype]} { - unset prototype - } - foreach dbOption [array names c] { - set option -[string tolower $dbOption] - set class [string replace $dbOption 0 0 [string toupper \ - [string index $dbOption 0]]] - if {![catch {$w configure $option} value]} { - # if the option database has a preference for this - # dbOption, then use it, otherwise use the defaults - # for the widget. - set defaultcolor [option get $w $dbOption $class] - if {[string match {} $defaultcolor] || \ - ([info exists prototype] && \ - [$prototype cget $option] ne "$defaultcolor")} { - set defaultcolor [winfo rgb . [lindex $value 3]] - } else { - set defaultcolor [winfo rgb . $defaultcolor] - } - set chosencolor [winfo rgb . [lindex $value 4]] - if {[string match $defaultcolor $chosencolor]} { - # Change the option database so that future windows will get - # the same colors. - append result ";\noption add [list \ - *[winfo class $w].$dbOption $c($dbOption) 60]" - $w configure $option $c($dbOption) - } - } - } - foreach child [winfo children $w] { - append result ";\n[::tk::RecolorTree $child c]" - } - return $result -} - -# ::tk::Darken -- -# Given a color name, computes a new color value that darkens (or -# brightens) the given color by a given percent. -# -# Arguments: -# color - Name of starting color. -# perecent - Integer telling how much to brighten or darken as a -# percent: 50 means darken by 50%, 110 means brighten -# by 10%. - -proc ::tk::Darken {color percent} { - foreach {red green blue} [winfo rgb . $color] { - set red [expr {($red/256)*$percent/100}] - set green [expr {($green/256)*$percent/100}] - set blue [expr {($blue/256)*$percent/100}] - break - } - if {$red > 255} { - set red 255 - } - if {$green > 255} { - set green 255 - } - if {$blue > 255} { - set blue 255 - } - return [format "#%02x%02x%02x" $red $green $blue] -} - -# ::tk_bisque -- -# Reset the Tk color palette to the old "bisque" colors. -# -# Arguments: -# None. - -proc ::tk_bisque {} { - tk_setPalette activeBackground #e6ceb1 activeForeground black \ - background #ffe4c4 disabledForeground #b0b0b0 foreground black \ - highlightBackground #ffe4c4 highlightColor black \ - insertBackground black selectColor #b03060 \ - selectBackground #e6ceb1 selectForeground black \ - troughColor #cdb79e -} diff --git a/mingw/lib/tk8.4/panedwindow.tcl b/mingw/lib/tk8.4/panedwindow.tcl deleted file mode 100644 index 68ce7c79..00000000 --- a/mingw/lib/tk8.4/panedwindow.tcl +++ /dev/null @@ -1,188 +0,0 @@ -# panedwindow.tcl -- -# -# This file defines the default bindings for Tk panedwindow widgets and -# provides procedures that help in implementing those bindings. -# -# RCS: @(#) $Id: panedwindow.tcl,v 1.6.2.4 2006/01/25 18:21:41 dgp Exp $ -# - -bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 1 } -bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 0 } - -bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 1 } -bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 0 } - -bind Panedwindow {::tk::panedwindow::ReleaseSash %W 1} -bind Panedwindow {::tk::panedwindow::ReleaseSash %W 0} - -bind Panedwindow { ::tk::panedwindow::Motion %W %x %y } - -bind Panedwindow { ::tk::panedwindow::Leave %W } - -# Initialize namespace -namespace eval ::tk::panedwindow {} - -# ::tk::panedwindow::MarkSash -- -# -# Handle marking the correct sash for possible dragging -# -# Arguments: -# w the widget -# x widget local x coord -# y widget local y coord -# proxy whether this should be a proxy sash -# Results: -# None -# -proc ::tk::panedwindow::MarkSash {w x y proxy} { - if {[$w cget -opaqueresize]} { set proxy 0 } - set what [$w identify $x $y] - if { [llength $what] == 2 } { - foreach {index which} $what break - if { !$::tk_strictMotif || $which eq "handle" } { - if {!$proxy} { $w sash mark $index $x $y } - set ::tk::Priv(sash) $index - foreach {sx sy} [$w sash coord $index] break - set ::tk::Priv(dx) [expr {$sx-$x}] - set ::tk::Priv(dy) [expr {$sy-$y}] - # Do this to init the proxy location - DragSash $w $x $y $proxy - } - } -} - -# ::tk::panedwindow::DragSash -- -# -# Handle dragging of the correct sash -# -# Arguments: -# w the widget -# x widget local x coord -# y widget local y coord -# proxy whether this should be a proxy sash -# Results: -# Moves sash -# -proc ::tk::panedwindow::DragSash {w x y proxy} { - if {[$w cget -opaqueresize]} { set proxy 0 } - if { [info exists ::tk::Priv(sash)] } { - if {$proxy} { - $w proxy place \ - [expr {$x+$::tk::Priv(dx)}] [expr {$y+$::tk::Priv(dy)}] - } else { - $w sash place $::tk::Priv(sash) \ - [expr {$x+$::tk::Priv(dx)}] [expr {$y+$::tk::Priv(dy)}] - } - } -} - -# ::tk::panedwindow::ReleaseSash -- -# -# Handle releasing of the sash -# -# Arguments: -# w the widget -# proxy whether this should be a proxy sash -# Results: -# Returns ... -# -proc ::tk::panedwindow::ReleaseSash {w proxy} { - if {[$w cget -opaqueresize]} { set proxy 0 } - if { [info exists ::tk::Priv(sash)] } { - if {$proxy} { - foreach {x y} [$w proxy coord] break - $w sash place $::tk::Priv(sash) $x $y - $w proxy forget - } - unset ::tk::Priv(sash) ::tk::Priv(dx) ::tk::Priv(dy) - } -} - -# ::tk::panedwindow::Motion -- -# -# Handle motion on the widget. This is used to change the cursor -# when the user moves over the sash area. -# -# Arguments: -# w the widget -# x widget local x coord -# y widget local y coord -# Results: -# May change the cursor. Sets up a timer to verify that we are still -# over the widget. -# -proc ::tk::panedwindow::Motion {w x y} { - variable ::tk::Priv - set id [$w identify $x $y] - if {([llength $id] == 2) && \ - (!$::tk_strictMotif || [lindex $id 1] eq "handle")} { - if { ![info exists Priv($w,panecursor)] } { - set Priv($w,panecursor) [$w cget -cursor] - if { [$w cget -sashcursor] eq "" } { - if { [$w cget -orient] eq "horizontal" } { - $w configure -cursor sb_h_double_arrow - } else { - $w configure -cursor sb_v_double_arrow - } - } else { - $w configure -cursor [$w cget -sashcursor] - } - if {[info exists Priv($w,pwAfterId)]} { - after cancel $Priv($w,pwAfterId) - } - set Priv($w,pwAfterId) [after 150 \ - [list ::tk::panedwindow::Cursor $w]] - } - return - } - if { [info exists Priv($w,panecursor)] } { - $w configure -cursor $Priv($w,panecursor) - unset Priv($w,panecursor) - } -} - -# ::tk::panedwindow::Cursor -- -# -# Handles returning the normal cursor when we are no longer over the -# sash area. This needs to be done this way, because the panedwindow -# won't see Leave events when the mouse moves from the sash to a -# paned child, although the child does receive an Enter event. -# -# Arguments: -# w the widget -# Results: -# May restore the default cursor, or schedule a timer to do it. -# -proc ::tk::panedwindow::Cursor {w} { - variable ::tk::Priv - # Make sure to check window existence in case it is destroyed. - if {[info exists Priv($w,panecursor)] && [winfo exists $w]} { - if {[winfo containing [winfo pointerx $w] [winfo pointery $w]] eq $w} { - set Priv($w,pwAfterId) [after 150 \ - [list ::tk::panedwindow::Cursor $w]] - } else { - $w configure -cursor $Priv($w,panecursor) - unset Priv($w,panecursor) - if {[info exists Priv($w,pwAfterId)]} { - after cancel $Priv($w,pwAfterId) - unset Priv($w,pwAfterId) - } - } - } -} - -# ::tk::panedwindow::Leave -- -# -# Return to default cursor when leaving the pw widget. -# -# Arguments: -# w the widget -# Results: -# Restores the default cursor -# -proc ::tk::panedwindow::Leave {w} { - if {[info exists ::tk::Priv($w,panecursor)]} { - $w configure -cursor $::tk::Priv($w,panecursor) - unset ::tk::Priv($w,panecursor) - } -} diff --git a/mingw/lib/tk8.4/pkgIndex.tcl b/mingw/lib/tk8.4/pkgIndex.tcl deleted file mode 100644 index 9cc9fa2d..00000000 --- a/mingw/lib/tk8.4/pkgIndex.tcl +++ /dev/null @@ -1,2 +0,0 @@ -if {[package vcompare [package provide Tcl] 8.4] != 0} { return } -package ifneeded Tk 8.4 [list load [file join $dir .. .. bin tk84.dll] Tk] diff --git a/mingw/lib/tk8.4/safetk.tcl b/mingw/lib/tk8.4/safetk.tcl deleted file mode 100644 index 33ec8a61..00000000 --- a/mingw/lib/tk8.4/safetk.tcl +++ /dev/null @@ -1,277 +0,0 @@ -# safetk.tcl -- -# -# Support procs to use Tk in safe interpreters. -# -# RCS: @(#) $Id: safetk.tcl,v 1.8.8.1 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1997 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -# see safetk.n for documentation - -# -# -# Note: It is now ok to let untrusted code being executed -# between the creation of the interp and the actual loading -# of Tk in that interp because the C side Tk_Init will -# now look up the master interp and ask its safe::TkInit -# for the actual parameters to use for it's initialization (if allowed), -# not relying on the slave state. -# - -# We use opt (optional arguments parsing) -package require opt 0.4.1; - -namespace eval ::safe { - - # counter for safe toplevels - variable tkSafeId 0; - - # - # tkInterpInit : prepare the slave interpreter for tk loading - # most of the real job is done by loadTk - # returns the slave name (tkInterpInit does) - # - proc ::safe::tkInterpInit {slave argv} { - global env tk_library - - # We have to make sure that the tk_library variable uses a file - # pathname that works better in Tk (of the style returned by - # [file join], ie C:/path/to/tk/lib, not C:\path\to\tk\lib - set tk_library [file join $tk_library] - - # Clear Tk's access for that interp (path). - allowTk $slave $argv - - # there seems to be an obscure case where the tk_library - # variable value is changed to point to a sym link destination - # dir instead of the sym link itself, and thus where the $tk_library - # would then not be anymore one of the auto_path dir, so we use - # the addToAccessPath which adds if it's not already in instead - # of the more conventional findInAccessPath. - # Might be usefull for masters without Tk really loaded too. - ::interp eval $slave [list set tk_library [::safe::interpAddToAccessPath $slave $tk_library]] - return $slave - } - - -# tkInterpLoadTk : -# Do additional configuration as needed (calling tkInterpInit) -# and actually load Tk into the slave. -# -# Either contained in the specified windowId (-use) or -# creating a decorated toplevel for it. - -# empty definition for auto_mkIndex -proc ::safe::loadTk {} {} - -::tcl::OptProc loadTk { - {slave -interp "name of the slave interpreter"} - {-use -windowId {} "window Id to use (new toplevel otherwise)"} - {-display -displayName {} "display name to use (current one otherwise)"} -} { - set displayGiven [::tcl::OptProcArgGiven "-display"] - if {!$displayGiven} { - - # Try to get the current display from "." - # (which might not exist if the master is tk-less) - - if {[catch {set display [winfo screen .]}]} { - if {[info exists ::env(DISPLAY)]} { - set display $::env(DISPLAY) - } else { - Log $slave "no winfo screen . nor env(DISPLAY)" WARNING - set display ":0.0" - } - } - } - if {![::tcl::OptProcArgGiven "-use"]} { - - # create a decorated toplevel - - ::tcl::Lassign [tkTopLevel $slave $display] w use - - # set our delete hook (slave arg is added by interpDelete) - # to clean up both window related code and tkInit(slave) - Set [DeleteHookName $slave] [list tkDelete {} $w] - - } else { - - # set our delete hook (slave arg is added by interpDelete) - # to clean up tkInit(slave) - - Set [DeleteHookName $slave] [list disallowTk] - - # Let's be nice and also accept tk window names instead of ids - - if {[string match ".*" $use]} { - set windowName $use - set use [winfo id $windowName] - set nDisplay [winfo screen $windowName] - } else { - - # Check for a better -display value - # (works only for multi screens on single host, but not - # cross hosts, for that a tk window name would be better - # but embeding is also usefull for non tk names) - - if {![catch {winfo pathname $use} name]} { - set nDisplay [winfo screen $name] - } else { - - # Can't have a better one - - set nDisplay $display - } - } - if {$nDisplay ne $display} { - if {$displayGiven} { - error "conflicting -display $display and -use\ - $use -> $nDisplay" - } else { - set display $nDisplay - } - } - } - - # Prepares the slave for tk with those parameters - - tkInterpInit $slave [list "-use" $use "-display" $display] - - load {} Tk $slave - - return $slave -} - -proc ::safe::TkInit {interpPath} { - variable tkInit - if {[info exists tkInit($interpPath)]} { - set value $tkInit($interpPath) - Log $interpPath "TkInit called, returning \"$value\"" NOTICE - return $value - } else { - Log $interpPath "TkInit called for interp with clearance:\ - preventing Tk init" ERROR - error "not allowed" - } -} - -# safe::allowTk -- -# -# Set tkInit(interpPath) to allow Tk to be initialized in -# safe::TkInit. -# -# Arguments: -# interpPath slave interpreter handle -# argv arguments passed to safe::TkInterpInit -# -# Results: -# none. - -proc ::safe::allowTk {interpPath argv} { - variable tkInit - set tkInit($interpPath) $argv - return -} - - -# safe::disallowTk -- -# -# Unset tkInit(interpPath) to disallow Tk from getting initialized -# in safe::TkInit. -# -# Arguments: -# interpPath slave interpreter handle -# -# Results: -# none. - -proc ::safe::disallowTk {interpPath} { - variable tkInit - # This can already be deleted by the DeleteHook of the interp - if {[info exists tkInit($interpPath)]} { - unset tkInit($interpPath) - } - return -} - - -# safe::tkDelete -- -# -# Clean up the window associated with the interp being deleted. -# -# Arguments: -# interpPath slave interpreter handle -# -# Results: -# none. - -proc ::safe::tkDelete {W window slave} { - - # we are going to be called for each widget... skip untill it's - # top level - - Log $slave "Called tkDelete $W $window" NOTICE - if {[::interp exists $slave]} { - if {[catch {::safe::interpDelete $slave} msg]} { - Log $slave "Deletion error : $msg" - } - } - if {[winfo exists $window]} { - Log $slave "Destroy toplevel $window" NOTICE - destroy $window - } - - # clean up tkInit(slave) - disallowTk $slave - return -} - -proc ::safe::tkTopLevel {slave display} { - variable tkSafeId - incr tkSafeId - set w ".safe$tkSafeId" - if {[catch {toplevel $w -screen $display -class SafeTk} msg]} { - return -code error "Unable to create toplevel for\ - safe slave \"$slave\" ($msg)" - } - Log $slave "New toplevel $w" NOTICE - - set msg "Untrusted Tcl applet ($slave)" - wm title $w $msg - - # Control frame - set wc $w.fc - frame $wc -bg red -borderwidth 3 -relief ridge - - # We will destroy the interp when the window is destroyed - bindtags $wc [concat Safe$wc [bindtags $wc]] - bind Safe$wc [list ::safe::tkDelete %W $w $slave] - - label $wc.l -text $msg -padx 2 -pady 0 -anchor w - - # We want the button to be the last visible item - # (so be packed first) and at the right and not resizing horizontally - - # frame the button so it does not expand horizontally - # but still have the default background instead of red one from the parent - frame $wc.fb -bd 0 - button $wc.fb.b -text "Delete" \ - -bd 1 -padx 2 -pady 0 -highlightthickness 0 \ - -command [list ::safe::tkDelete $w $w $slave] - pack $wc.fb.b -side right -fill both - pack $wc.fb -side right -fill both -expand 1 - pack $wc.l -side left -fill both -expand 1 - pack $wc -side bottom -fill x - - # Container frame - frame $w.c -container 1 - pack $w.c -fill both -expand 1 - - # return both the toplevel window name and the id to use for embedding - list $w [winfo id $w.c] -} - -} diff --git a/mingw/lib/tk8.4/scale.tcl b/mingw/lib/tk8.4/scale.tcl deleted file mode 100644 index 4cb0a3f3..00000000 --- a/mingw/lib/tk8.4/scale.tcl +++ /dev/null @@ -1,285 +0,0 @@ -# scale.tcl -- -# -# This file defines the default bindings for Tk scale widgets and provides -# procedures that help in implementing the bindings. -# -# RCS: @(#) $Id: scale.tcl,v 1.9.2.5 2006/03/17 10:50:11 patthoyts Exp $ -# -# Copyright (c) 1994 The Regents of the University of California. -# Copyright (c) 1994-1995 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for entries. -#------------------------------------------------------------------------- - -# Standard Motif bindings: - -bind Scale { - if {$tk_strictMotif} { - set tk::Priv(activeBg) [%W cget -activebackground] - %W configure -activebackground [%W cget -background] - } - tk::ScaleActivate %W %x %y -} -bind Scale { - tk::ScaleActivate %W %x %y -} -bind Scale { - if {$tk_strictMotif} { - %W configure -activebackground $tk::Priv(activeBg) - } - if {[%W cget -state] eq "active"} { - %W configure -state normal - } -} -bind Scale <1> { - tk::ScaleButtonDown %W %x %y -} -bind Scale { - tk::ScaleDrag %W %x %y -} -bind Scale { } -bind Scale { } -bind Scale { - tk::CancelRepeat - tk::ScaleEndDrag %W - tk::ScaleActivate %W %x %y -} -bind Scale <2> { - tk::ScaleButton2Down %W %x %y -} -bind Scale { - tk::ScaleDrag %W %x %y -} -bind Scale { } -bind Scale { } -bind Scale { - tk::CancelRepeat - tk::ScaleEndDrag %W - tk::ScaleActivate %W %x %y -} -if {$tcl_platform(platform) eq "windows"} { - # On Windows do the same with button 3, as that is the right mouse button - bind Scale <3> [bind Scale <2>] - bind Scale [bind Scale ] - bind Scale [bind Scale ] - bind Scale [bind Scale ] - bind Scale [bind Scale ] -} -bind Scale { - tk::ScaleControlPress %W %x %y -} -bind Scale { - tk::ScaleIncrement %W up little noRepeat -} -bind Scale { - tk::ScaleIncrement %W down little noRepeat -} -bind Scale { - tk::ScaleIncrement %W up little noRepeat -} -bind Scale { - tk::ScaleIncrement %W down little noRepeat -} -bind Scale { - tk::ScaleIncrement %W up big noRepeat -} -bind Scale { - tk::ScaleIncrement %W down big noRepeat -} -bind Scale { - tk::ScaleIncrement %W up big noRepeat -} -bind Scale { - tk::ScaleIncrement %W down big noRepeat -} -bind Scale { - %W set [%W cget -from] -} -bind Scale { - %W set [%W cget -to] -} - -# ::tk::ScaleActivate -- -# This procedure is invoked to check a given x-y position in the -# scale and activate the slider if the x-y position falls within -# the slider. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates. - -proc ::tk::ScaleActivate {w x y} { - if {[$w cget -state] eq "disabled"} { - return - } - if {[$w identify $x $y] eq "slider"} { - set state active - } else { - set state normal - } - if {[$w cget -state] ne $state} { - $w configure -state $state - } -} - -# ::tk::ScaleButtonDown -- -# This procedure is invoked when a button is pressed in a scale. It -# takes different actions depending on where the button was pressed. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates of button press. - -proc ::tk::ScaleButtonDown {w x y} { - variable ::tk::Priv - set Priv(dragging) 0 - set el [$w identify $x $y] - - # save the relief - set Priv($w,relief) [$w cget -sliderrelief] - - if {$el eq "trough1"} { - ScaleIncrement $w up little initial - } elseif {$el eq "trough2"} { - ScaleIncrement $w down little initial - } elseif {$el eq "slider"} { - set Priv(dragging) 1 - set Priv(initValue) [$w get] - set coords [$w coords] - set Priv(deltaX) [expr {$x - [lindex $coords 0]}] - set Priv(deltaY) [expr {$y - [lindex $coords 1]}] - switch -exact -- $Priv($w,relief) { - "raised" { $w configure -sliderrelief sunken } - "ridge" { $w configure -sliderrelief groove } - } - } -} - -# ::tk::ScaleDrag -- -# This procedure is called when the mouse is dragged with -# mouse button 1 down. If the drag started inside the slider -# (i.e. the scale is active) then the scale's value is adjusted -# to reflect the mouse's position. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates. - -proc ::tk::ScaleDrag {w x y} { - variable ::tk::Priv - if {!$Priv(dragging)} { - return - } - $w set [$w get [expr {$x-$Priv(deltaX)}] [expr {$y-$Priv(deltaY)}]] -} - -# ::tk::ScaleEndDrag -- -# This procedure is called to end an interactive drag of the -# slider. It just marks the drag as over. -# -# Arguments: -# w - The scale widget. - -proc ::tk::ScaleEndDrag {w} { - variable ::tk::Priv - set Priv(dragging) 0 - if {[info exists Priv($w,relief)]} { - $w configure -sliderrelief $Priv($w,relief) - unset Priv($w,relief) - } -} - -# ::tk::ScaleIncrement -- -# This procedure is invoked to increment the value of a scale and -# to set up auto-repeating of the action if that is desired. The -# way the value is incremented depends on the "dir" and "big" -# arguments. -# -# Arguments: -# w - The scale widget. -# dir - "up" means move value towards -from, "down" means -# move towards -to. -# big - Size of increments: "big" or "little". -# repeat - Whether and how to auto-repeat the action: "noRepeat" -# means don't auto-repeat, "initial" means this is the -# first action in an auto-repeat sequence, and "again" -# means this is the second repetition or later. - -proc ::tk::ScaleIncrement {w dir big repeat} { - variable ::tk::Priv - if {![winfo exists $w]} return - if {$big eq "big"} { - set inc [$w cget -bigincrement] - if {$inc == 0} { - set inc [expr {abs([$w cget -to] - [$w cget -from])/10.0}] - } - if {$inc < [$w cget -resolution]} { - set inc [$w cget -resolution] - } - } else { - set inc [$w cget -resolution] - } - if {([$w cget -from] > [$w cget -to]) ^ ($dir eq "up")} { - set inc [expr {-$inc}] - } - $w set [expr {[$w get] + $inc}] - - if {$repeat eq "again"} { - set Priv(afterId) [after [$w cget -repeatinterval] \ - [list tk::ScaleIncrement $w $dir $big again]] - } elseif {$repeat eq "initial"} { - set delay [$w cget -repeatdelay] - if {$delay > 0} { - set Priv(afterId) [after $delay \ - [list tk::ScaleIncrement $w $dir $big again]] - } - } -} - -# ::tk::ScaleControlPress -- -# This procedure handles button presses that are made with the Control -# key down. Depending on the mouse position, it adjusts the scale -# value to one end of the range or the other. -# -# Arguments: -# w - The scale widget. -# x, y - Mouse coordinates where the button was pressed. - -proc ::tk::ScaleControlPress {w x y} { - set el [$w identify $x $y] - if {$el eq "trough1"} { - $w set [$w cget -from] - } elseif {$el eq "trough2"} { - $w set [$w cget -to] - } -} - -# ::tk::ScaleButton2Down -# This procedure is invoked when button 2 is pressed over a scale. -# It sets the value to correspond to the mouse position and starts -# a slider drag. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates within the widget. - -proc ::tk::ScaleButton2Down {w x y} { - variable ::tk::Priv - - if {[$w cget -state] eq "disabled"} { - return - } - $w configure -state active - $w set [$w get $x $y] - set Priv(dragging) 1 - set Priv(initValue) [$w get] - set Priv($w,relief) [$w cget -sliderrelief] - set coords "$x $y" - set Priv(deltaX) 0 - set Priv(deltaY) 0 -} diff --git a/mingw/lib/tk8.4/scrlbar.tcl b/mingw/lib/tk8.4/scrlbar.tcl deleted file mode 100644 index bec329dd..00000000 --- a/mingw/lib/tk8.4/scrlbar.tcl +++ /dev/null @@ -1,427 +0,0 @@ -# scrlbar.tcl -- -# -# This file defines the default bindings for Tk scrollbar widgets. -# It also provides procedures that help in implementing the bindings. -# -# RCS: @(#) $Id: scrlbar.tcl,v 1.10.2.3 2006/03/17 10:50:11 patthoyts Exp $ -# -# Copyright (c) 1994 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for scrollbars. -#------------------------------------------------------------------------- - -# Standard Motif bindings: -if {[tk windowingsystem] eq "x11"} { - -bind Scrollbar { - if {$tk_strictMotif} { - set tk::Priv(activeBg) [%W cget -activebackground] - %W configure -activebackground [%W cget -background] - } - %W activate [%W identify %x %y] -} -bind Scrollbar { - %W activate [%W identify %x %y] -} - -# The "info exists" command in the following binding handles the -# situation where a Leave event occurs for a scrollbar without the Enter -# event. This seems to happen on some systems (such as Solaris 2.4) for -# unknown reasons. - -bind Scrollbar { - if {$tk_strictMotif && [info exists tk::Priv(activeBg)]} { - %W configure -activebackground $tk::Priv(activeBg) - } - %W activate {} -} -bind Scrollbar <1> { - tk::ScrollButtonDown %W %x %y -} -bind Scrollbar { - tk::ScrollDrag %W %x %y -} -bind Scrollbar { - tk::ScrollDrag %W %x %y -} -bind Scrollbar { - tk::ScrollButtonUp %W %x %y -} -bind Scrollbar { - # Prevents binding from being invoked. -} -bind Scrollbar { - # Prevents binding from being invoked. -} -bind Scrollbar <2> { - tk::ScrollButton2Down %W %x %y -} -bind Scrollbar { - # Do nothing, since button 1 is already down. -} -bind Scrollbar { - # Do nothing, since button 2 is already down. -} -bind Scrollbar { - tk::ScrollDrag %W %x %y -} -bind Scrollbar { - tk::ScrollButtonUp %W %x %y -} -bind Scrollbar { - # Do nothing: B1 release will handle it. -} -bind Scrollbar { - # Do nothing: B2 release will handle it. -} -bind Scrollbar { - # Prevents binding from being invoked. -} -bind Scrollbar { - # Prevents binding from being invoked. -} -bind Scrollbar { - tk::ScrollTopBottom %W %x %y -} -bind Scrollbar { - tk::ScrollTopBottom %W %x %y -} - -bind Scrollbar { - tk::ScrollByUnits %W v -1 -} -bind Scrollbar { - tk::ScrollByUnits %W v 1 -} -bind Scrollbar { - tk::ScrollByPages %W v -1 -} -bind Scrollbar { - tk::ScrollByPages %W v 1 -} -bind Scrollbar { - tk::ScrollByUnits %W h -1 -} -bind Scrollbar { - tk::ScrollByUnits %W h 1 -} -bind Scrollbar { - tk::ScrollByPages %W h -1 -} -bind Scrollbar { - tk::ScrollByPages %W h 1 -} -bind Scrollbar { - tk::ScrollByPages %W hv -1 -} -bind Scrollbar { - tk::ScrollByPages %W hv 1 -} -bind Scrollbar { - tk::ScrollToPos %W 0 -} -bind Scrollbar { - tk::ScrollToPos %W 1 -} -} -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - bind Scrollbar { - tk::ScrollByUnits %W v [expr {- (%D)}] - } - bind Scrollbar { - tk::ScrollByUnits %W v [expr {-10 * (%D)}] - } - bind Scrollbar { - tk::ScrollByUnits %W h [expr {- (%D)}] - } - bind Scrollbar { - tk::ScrollByUnits %W h [expr {-10 * (%D)}] - } -} -# tk::ScrollButtonDown -- -# This procedure is invoked when a button is pressed in a scrollbar. -# It changes the way the scrollbar is displayed and takes actions -# depending on where the mouse is. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates. - -proc tk::ScrollButtonDown {w x y} { - variable ::tk::Priv - set Priv(relief) [$w cget -activerelief] - $w configure -activerelief sunken - set element [$w identify $x $y] - if {$element eq "slider"} { - ScrollStartDrag $w $x $y - } else { - ScrollSelect $w $element initial - } -} - -# ::tk::ScrollButtonUp -- -# This procedure is invoked when a button is released in a scrollbar. -# It cancels scans and auto-repeats that were in progress, and restores -# the way the active element is displayed. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates. - -proc ::tk::ScrollButtonUp {w x y} { - variable ::tk::Priv - tk::CancelRepeat - if {[info exists Priv(relief)]} { - # Avoid error due to spurious release events - $w configure -activerelief $Priv(relief) - ScrollEndDrag $w $x $y - $w activate [$w identify $x $y] - } -} - -# ::tk::ScrollSelect -- -# This procedure is invoked when a button is pressed over the scrollbar. -# It invokes one of several scrolling actions depending on where in -# the scrollbar the button was pressed. -# -# Arguments: -# w - The scrollbar widget. -# element - The element of the scrollbar that was selected, such -# as "arrow1" or "trough2". Shouldn't be "slider". -# repeat - Whether and how to auto-repeat the action: "noRepeat" -# means don't auto-repeat, "initial" means this is the -# first action in an auto-repeat sequence, and "again" -# means this is the second repetition or later. - -proc ::tk::ScrollSelect {w element repeat} { - variable ::tk::Priv - if {![winfo exists $w]} return - switch -- $element { - "arrow1" {ScrollByUnits $w hv -1} - "trough1" {ScrollByPages $w hv -1} - "trough2" {ScrollByPages $w hv 1} - "arrow2" {ScrollByUnits $w hv 1} - default {return} - } - if {$repeat eq "again"} { - set Priv(afterId) [after [$w cget -repeatinterval] \ - [list tk::ScrollSelect $w $element again]] - } elseif {$repeat eq "initial"} { - set delay [$w cget -repeatdelay] - if {$delay > 0} { - set Priv(afterId) [after $delay \ - [list tk::ScrollSelect $w $element again]] - } - } -} - -# ::tk::ScrollStartDrag -- -# This procedure is called to initiate a drag of the slider. It just -# remembers the starting position of the mouse and slider. -# -# Arguments: -# w - The scrollbar widget. -# x, y - The mouse position at the start of the drag operation. - -proc ::tk::ScrollStartDrag {w x y} { - variable ::tk::Priv - - if {[$w cget -command] eq ""} { - return - } - set Priv(pressX) $x - set Priv(pressY) $y - set Priv(initValues) [$w get] - set iv0 [lindex $Priv(initValues) 0] - if {[llength $Priv(initValues)] == 2} { - set Priv(initPos) $iv0 - } elseif {$iv0 == 0} { - set Priv(initPos) 0.0 - } else { - set Priv(initPos) [expr {(double([lindex $Priv(initValues) 2])) \ - / [lindex $Priv(initValues) 0]}] - } -} - -# ::tk::ScrollDrag -- -# This procedure is called for each mouse motion even when the slider -# is being dragged. It notifies the associated widget if we're not -# jump scrolling, and it just updates the scrollbar if we are jump -# scrolling. -# -# Arguments: -# w - The scrollbar widget. -# x, y - The current mouse position. - -proc ::tk::ScrollDrag {w x y} { - variable ::tk::Priv - - if {$Priv(initPos) eq ""} { - return - } - set delta [$w delta [expr {$x - $Priv(pressX)}] [expr {$y - $Priv(pressY)}]] - if {[$w cget -jump]} { - if {[llength $Priv(initValues)] == 2} { - $w set [expr {[lindex $Priv(initValues) 0] + $delta}] \ - [expr {[lindex $Priv(initValues) 1] + $delta}] - } else { - set delta [expr {round($delta * [lindex $Priv(initValues) 0])}] - eval [list $w] set [lreplace $Priv(initValues) 2 3 \ - [expr {[lindex $Priv(initValues) 2] + $delta}] \ - [expr {[lindex $Priv(initValues) 3] + $delta}]] - } - } else { - ScrollToPos $w [expr {$Priv(initPos) + $delta}] - } -} - -# ::tk::ScrollEndDrag -- -# This procedure is called to end an interactive drag of the slider. -# It scrolls the window if we're in jump mode, otherwise it does nothing. -# -# Arguments: -# w - The scrollbar widget. -# x, y - The mouse position at the end of the drag operation. - -proc ::tk::ScrollEndDrag {w x y} { - variable ::tk::Priv - - if {$Priv(initPos) eq ""} { - return - } - if {[$w cget -jump]} { - set delta [$w delta [expr {$x - $Priv(pressX)}] \ - [expr {$y - $Priv(pressY)}]] - ScrollToPos $w [expr {$Priv(initPos) + $delta}] - } - set Priv(initPos) "" -} - -# ::tk::ScrollByUnits -- -# This procedure tells the scrollbar's associated widget to scroll up -# or down by a given number of units. It notifies the associated widget -# in different ways for old and new command syntaxes. -# -# Arguments: -# w - The scrollbar widget. -# orient - Which kinds of scrollbars this applies to: "h" for -# horizontal, "v" for vertical, "hv" for both. -# amount - How many units to scroll: typically 1 or -1. - -proc ::tk::ScrollByUnits {w orient amount} { - set cmd [$w cget -command] - if {$cmd eq "" || ([string first [string index [$w cget -orient] 0] $orient] < 0)} { - return - } - set info [$w get] - if {[llength $info] == 2} { - uplevel #0 $cmd scroll $amount units - } else { - uplevel #0 $cmd [expr {[lindex $info 2] + $amount}] - } -} - -# ::tk::ScrollByPages -- -# This procedure tells the scrollbar's associated widget to scroll up -# or down by a given number of screenfuls. It notifies the associated -# widget in different ways for old and new command syntaxes. -# -# Arguments: -# w - The scrollbar widget. -# orient - Which kinds of scrollbars this applies to: "h" for -# horizontal, "v" for vertical, "hv" for both. -# amount - How many screens to scroll: typically 1 or -1. - -proc ::tk::ScrollByPages {w orient amount} { - set cmd [$w cget -command] - if {$cmd eq "" || ([string first [string index [$w cget -orient] 0] $orient] < 0)} { - return - } - set info [$w get] - if {[llength $info] == 2} { - uplevel #0 $cmd scroll $amount pages - } else { - uplevel #0 $cmd [expr {[lindex $info 2] + $amount*([lindex $info 1] - 1)}] - } -} - -# ::tk::ScrollToPos -- -# This procedure tells the scrollbar's associated widget to scroll to -# a particular location, given by a fraction between 0 and 1. It notifies -# the associated widget in different ways for old and new command syntaxes. -# -# Arguments: -# w - The scrollbar widget. -# pos - A fraction between 0 and 1 indicating a desired position -# in the document. - -proc ::tk::ScrollToPos {w pos} { - set cmd [$w cget -command] - if {$cmd eq ""} { - return - } - set info [$w get] - if {[llength $info] == 2} { - uplevel #0 $cmd moveto $pos - } else { - uplevel #0 $cmd [expr {round([lindex $info 0]*$pos)}] - } -} - -# ::tk::ScrollTopBottom -# Scroll to the top or bottom of the document, depending on the mouse -# position. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates within the widget. - -proc ::tk::ScrollTopBottom {w x y} { - variable ::tk::Priv - set element [$w identify $x $y] - if {[string match *1 $element]} { - ScrollToPos $w 0 - } elseif {[string match *2 $element]} { - ScrollToPos $w 1 - } - - # Set Priv(relief), since it's needed by tk::ScrollButtonUp. - - set Priv(relief) [$w cget -activerelief] -} - -# ::tk::ScrollButton2Down -# This procedure is invoked when button 2 is pressed over a scrollbar. -# If the button is over the trough or slider, it sets the scrollbar to -# the mouse position and starts a slider drag. Otherwise it just -# behaves the same as button 1. -# -# Arguments: -# w - The scrollbar widget. -# x, y - Mouse coordinates within the widget. - -proc ::tk::ScrollButton2Down {w x y} { - variable ::tk::Priv - set element [$w identify $x $y] - if {[string match {arrow[12]} $element]} { - ScrollButtonDown $w $x $y - return - } - ScrollToPos $w [$w fraction $x $y] - set Priv(relief) [$w cget -activerelief] - - # Need the "update idletasks" below so that the widget calls us - # back to reset the actual scrollbar position before we start the - # slider drag. - - update idletasks - $w configure -activerelief sunken - $w activate slider - ScrollStartDrag $w $x $y -} diff --git a/mingw/lib/tk8.4/spinbox.tcl b/mingw/lib/tk8.4/spinbox.tcl deleted file mode 100644 index 5cce0318..00000000 --- a/mingw/lib/tk8.4/spinbox.tcl +++ /dev/null @@ -1,568 +0,0 @@ -# spinbox.tcl -- -# -# This file defines the default bindings for Tk spinbox widgets and provides -# procedures that help in implementing those bindings. The spinbox builds -# off the entry widget, so it can reuse Entry bindings and procedures. -# -# RCS: @(#) $Id: spinbox.tcl,v 1.6.2.1 2006/01/25 18:21:41 dgp Exp $ -# -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1997 Sun Microsystems, Inc. -# Copyright (c) 1999-2000 Jeffrey Hobbs -# Copyright (c) 2000 Ajuba Solutions -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#------------------------------------------------------------------------- -# Elements of tk::Priv that are used in this file: -# -# afterId - If non-null, it means that auto-scanning is underway -# and it gives the "after" id for the next auto-scan -# command to be executed. -# mouseMoved - Non-zero means the mouse has moved a significant -# amount since the button went down (so, for example, -# start dragging out a selection). -# pressX - X-coordinate at which the mouse button was pressed. -# selectMode - The style of selection currently underway: -# char, word, or line. -# x, y - Last known mouse coordinates for scanning -# and auto-scanning. -# data - Used for Cut and Copy -#------------------------------------------------------------------------- - -# Initialize namespace -namespace eval ::tk::spinbox {} - -#------------------------------------------------------------------------- -# The code below creates the default class bindings for entries. -#------------------------------------------------------------------------- -bind Spinbox <> { - if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { - clipboard clear -displayof %W - clipboard append -displayof %W $tk::Priv(data) - %W delete sel.first sel.last - unset tk::Priv(data) - } -} -bind Spinbox <> { - if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { - clipboard clear -displayof %W - clipboard append -displayof %W $tk::Priv(data) - unset tk::Priv(data) - } -} -bind Spinbox <> { - global tcl_platform - catch { - if {[tk windowingsystem] ne "x11"} { - catch { - %W delete sel.first sel.last - } - } - %W insert insert [::tk::GetSelection %W CLIPBOARD] - ::tk::EntrySeeInsert %W - } -} -bind Spinbox <> { - %W delete sel.first sel.last -} -bind Spinbox <> { - if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] - || !$tk::Priv(mouseMoved)} { - ::tk::spinbox::Paste %W %x - } -} - -# Standard Motif bindings: - -bind Spinbox <1> { - ::tk::spinbox::ButtonDown %W %x %y -} -bind Spinbox { - ::tk::spinbox::Motion %W %x %y -} -bind Spinbox { - set tk::Priv(selectMode) word - ::tk::spinbox::MouseSelect %W %x sel.first -} -bind Spinbox { - set tk::Priv(selectMode) line - ::tk::spinbox::MouseSelect %W %x 0 -} -bind Spinbox { - set tk::Priv(selectMode) char - %W selection adjust @%x -} -bind Spinbox { - set tk::Priv(selectMode) word - ::tk::spinbox::MouseSelect %W %x -} -bind Spinbox { - set tk::Priv(selectMode) line - ::tk::spinbox::MouseSelect %W %x -} -bind Spinbox { - set tk::Priv(x) %x - ::tk::spinbox::AutoScan %W -} -bind Spinbox { - tk::CancelRepeat -} -bind Spinbox { - ::tk::spinbox::ButtonUp %W %x %y -} -bind Spinbox { - %W icursor @%x -} - -bind Spinbox { - %W invoke buttonup -} -bind Spinbox { - %W invoke buttondown -} - -bind Spinbox { - ::tk::EntrySetCursor %W [expr {[%W index insert] - 1}] -} -bind Spinbox { - ::tk::EntrySetCursor %W [expr {[%W index insert] + 1}] -} -bind Spinbox { - ::tk::EntryKeySelect %W [expr {[%W index insert] - 1}] - ::tk::EntrySeeInsert %W -} -bind Spinbox { - ::tk::EntryKeySelect %W [expr {[%W index insert] + 1}] - ::tk::EntrySeeInsert %W -} -bind Spinbox { - ::tk::EntrySetCursor %W [::tk::EntryPreviousWord %W insert] -} -bind Spinbox { - ::tk::EntrySetCursor %W [::tk::EntryNextWord %W insert] -} -bind Spinbox { - ::tk::EntryKeySelect %W [::tk::EntryPreviousWord %W insert] - ::tk::EntrySeeInsert %W -} -bind Spinbox { - ::tk::EntryKeySelect %W [::tk::EntryNextWord %W insert] - ::tk::EntrySeeInsert %W -} -bind Spinbox { - ::tk::EntrySetCursor %W 0 -} -bind Spinbox { - ::tk::EntryKeySelect %W 0 - ::tk::EntrySeeInsert %W -} -bind Spinbox { - ::tk::EntrySetCursor %W end -} -bind Spinbox { - ::tk::EntryKeySelect %W end - ::tk::EntrySeeInsert %W -} - -bind Spinbox { - if {[%W selection present]} { - %W delete sel.first sel.last - } else { - %W delete insert - } -} -bind Spinbox { - ::tk::EntryBackspace %W -} - -bind Spinbox { - %W selection from insert -} -bind Spinbox { - %W mark set anchor insert -} -bind Text { - set tk::Priv(selectMode) char - tk::TextKeyExtend %W insert -} -bind Text { - set tk::Priv(selectMode) char - tk::TextKeyExtend %W insert -} -bind Text { - %W tag add sel 1.0 end -} -bind Text { - %W tag remove sel 1.0 end -} -bind Text <> { - tk_textCut %W -} -bind Text <> { - tk_textCopy %W -} -bind Text <> { - tk_textPaste %W -} -bind Text <> { - catch {%W delete sel.first sel.last} -} -bind Text <> { - if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] - || !$tk::Priv(mouseMoved)} { - tk::TextPasteSelection %W %x %y - } -} -bind Text { - catch {tk::TextInsert %W [::tk::GetSelection %W PRIMARY]} -} -bind Text { - tk::TextInsert %W %A -} - -# Ignore all Alt, Meta, and Control keypresses unless explicitly bound. -# Otherwise, if a widget binding for one of these is defined, the -# class binding will also fire and insert the character, -# which is wrong. Ditto for . - -bind Text {# nothing } -bind Text {# nothing} -bind Text {# nothing} -bind Text {# nothing} -bind Text {# nothing} - -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - bind Text {# nothing} -} - -# Additional emacs-like bindings: - -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W {insert linestart} - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W insert-1c - } -} -bind Text { - if {!$tk_strictMotif} { - %W delete insert - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W {insert lineend} - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W insert+1c - } -} -bind Text { - if {!$tk_strictMotif} { - if {[%W compare insert == {insert lineend}]} { - %W delete insert - } else { - %W delete insert {insert lineend} - } - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W [tk::TextUpDownLine %W 1] - } -} -bind Text { - if {!$tk_strictMotif} { - %W insert insert \n - %W mark set insert insert-1c - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W [tk::TextUpDownLine %W -1] - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextTranspose %W - } -} - -bind Text <> { - catch { %W edit undo } -} - -bind Text <> { - catch { %W edit redo } -} - -if {$tcl_platform(platform) ne "windows"} { -bind Text { - if {!$tk_strictMotif} { - tk::TextScrollPages %W 1 - } -} -} - -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] - } -} -bind Text { - if {!$tk_strictMotif} { - %W delete insert [tk::TextNextWord %W insert] - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W [tk::TextNextWord %W insert] - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W 1.0 - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextSetCursor %W end-1c - } -} -bind Text { - if {!$tk_strictMotif} { - %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert - } -} -bind Text { - if {!$tk_strictMotif} { - %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert - } -} - -# Macintosh only bindings: - -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { -bind Text { - %W configure -selectbackground systemHighlight -selectforeground systemHighlightText -} -bind Text { - %W configure -selectbackground systemHighlightSecondary -selectforeground systemHighlightText -} -bind Text { - tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] -} -bind Text { - tk::TextSetCursor %W [tk::TextNextWord %W insert] -} -bind Text { - tk::TextSetCursor %W [tk::TextPrevPara %W insert] -} -bind Text { - tk::TextSetCursor %W [tk::TextNextPara %W insert] -} -bind Text { - tk::TextKeySelect %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] -} -bind Text { - tk::TextKeySelect %W [tk::TextNextWord %W insert] -} -bind Text { - tk::TextKeySelect %W [tk::TextPrevPara %W insert] -} -bind Text { - tk::TextKeySelect %W [tk::TextNextPara %W insert] -} - -# End of Mac only bindings -} - -# A few additional bindings of my own. - -bind Text { - if {!$tk_strictMotif} { - if {[%W compare insert != 1.0]} { - %W delete insert-1c - %W see insert - } - } -} -bind Text <2> { - if {!$tk_strictMotif} { - tk::TextScanMark %W %x %y - } -} -bind Text { - if {!$tk_strictMotif} { - tk::TextScanDrag %W %x %y - } -} -set ::tk::Priv(prevPos) {} - -# The MouseWheel will typically only fire on Windows and MacOS X. -# However, someone could use the "event generate" command to produce -# one on other platforms. - -if {[tk windowingsystem] eq "classic" || [tk windowingsystem] eq "aqua"} { - bind Text { - %W yview scroll [expr {- (%D)}] units - } - bind Text { - %W yview scroll [expr {-10 * (%D)}] units - } - bind Text { - %W xview scroll [expr {- (%D)}] units - } - bind Text { - %W xview scroll [expr {-10 * (%D)}] units - } -} else { - bind Text { - %W yview scroll [expr {- (%D / 120) * 4}] units - } -} - -if {"x11" eq [tk windowingsystem]} { - # Support for mousewheels on Linux/Unix commonly comes through mapping - # the wheel to the extended buttons. If you have a mousewheel, find - # Linux configuration info at: - # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ - bind Text <4> { - if {!$tk_strictMotif} { - %W yview scroll -5 units - } - } - bind Text <5> { - if {!$tk_strictMotif} { - %W yview scroll 5 units - } - } -} - -# ::tk::TextClosestGap -- -# Given x and y coordinates, this procedure finds the closest boundary -# between characters to the given coordinates and returns the index -# of the character just after the boundary. -# -# Arguments: -# w - The text window. -# x - X-coordinate within the window. -# y - Y-coordinate within the window. - -proc ::tk::TextClosestGap {w x y} { - set pos [$w index @$x,$y] - set bbox [$w bbox $pos] - if {$bbox eq ""} { - return $pos - } - if {($x - [lindex $bbox 0]) < ([lindex $bbox 2]/2)} { - return $pos - } - $w index "$pos + 1 char" -} - -# ::tk::TextButton1 -- -# This procedure is invoked to handle button-1 presses in text -# widgets. It moves the insertion cursor, sets the selection anchor, -# and claims the input focus. -# -# Arguments: -# w - The text window in which the button was pressed. -# x - The x-coordinate of the button press. -# y - The x-coordinate of the button press. - -proc ::tk::TextButton1 {w x y} { - variable ::tk::Priv - - set Priv(selectMode) char - set Priv(mouseMoved) 0 - set Priv(pressX) $x - $w mark set insert [TextClosestGap $w $x $y] - $w mark set anchor insert - # Allow focus in any case on Windows, because that will let the - # selection be displayed even for state disabled text widgets. - if {$::tcl_platform(platform) eq "windows" || [$w cget -state] eq "normal"} {focus $w} - if {[$w cget -autoseparators]} {$w edit separator} -} - -# ::tk::TextSelectTo -- -# This procedure is invoked to extend the selection, typically when -# dragging it with the mouse. Depending on the selection mode (character, -# word, line) it selects in different-sized units. This procedure -# ignores mouse motions initially until the mouse has moved from -# one character to another or until there have been multiple clicks. -# -# Arguments: -# w - The text window in which the button was pressed. -# x - Mouse x position. -# y - Mouse y position. - -proc ::tk::TextSelectTo {w x y {extend 0}} { - global tcl_platform - variable ::tk::Priv - - set cur [TextClosestGap $w $x $y] - if {[catch {$w index anchor}]} { - $w mark set anchor $cur - } - set anchor [$w index anchor] - if {[$w compare $cur != $anchor] || (abs($Priv(pressX) - $x) >= 3)} { - set Priv(mouseMoved) 1 - } - switch $Priv(selectMode) { - char { - if {[$w compare $cur < anchor]} { - set first $cur - set last anchor - } else { - set first anchor - set last $cur - } - } - word { - if {[$w compare $cur < anchor]} { - set first [TextPrevPos $w "$cur + 1c" tcl_wordBreakBefore] - if { !$extend } { - set last [TextNextPos $w "anchor" tcl_wordBreakAfter] - } else { - set last anchor - } - } else { - set last [TextNextPos $w "$cur - 1c" tcl_wordBreakAfter] - if { !$extend } { - set first [TextPrevPos $w anchor tcl_wordBreakBefore] - } else { - set first anchor - } - } - } - line { - if {[$w compare $cur < anchor]} { - set first [$w index "$cur linestart"] - set last [$w index "anchor - 1c lineend + 1c"] - } else { - set first [$w index "anchor linestart"] - set last [$w index "$cur lineend + 1c"] - } - } - } - if {$Priv(mouseMoved) || $Priv(selectMode) ne "char"} { - $w tag remove sel 0.0 end - $w mark set insert $cur - $w tag add sel $first $last - $w tag remove sel $last end - update idletasks - } -} - -# ::tk::TextKeyExtend -- -# This procedure handles extending the selection from the keyboard, -# where the point to extend to is really the boundary between two -# characters rather than a particular character. -# -# Arguments: -# w - The text window. -# index - The point to which the selection is to be extended. - -proc ::tk::TextKeyExtend {w index} { - - set cur [$w index $index] - if {[catch {$w index anchor}]} { - $w mark set anchor $cur - } - set anchor [$w index anchor] - if {[$w compare $cur < anchor]} { - set first $cur - set last anchor - } else { - set first anchor - set last $cur - } - $w tag remove sel 0.0 $first - $w tag add sel $first $last - $w tag remove sel $last end -} - -# ::tk::TextPasteSelection -- -# This procedure sets the insertion cursor to the mouse position, -# inserts the selection, and sets the focus to the window. -# -# Arguments: -# w - The text window. -# x, y - Position of the mouse. - -proc ::tk::TextPasteSelection {w x y} { - $w mark set insert [TextClosestGap $w $x $y] - if {![catch {::tk::GetSelection $w PRIMARY} sel]} { - set oldSeparator [$w cget -autoseparators] - if {$oldSeparator} { - $w configure -autoseparators 0 - $w edit separator - } - $w insert insert $sel - if {$oldSeparator} { - $w edit separator - $w configure -autoseparators 1 - } - } - if {[$w cget -state] eq "normal"} {focus $w} -} - -# ::tk::TextAutoScan -- -# This procedure is invoked when the mouse leaves a text window -# with button 1 down. It scrolls the window up, down, left, or right, -# depending on where the mouse is (this information was saved in -# ::tk::Priv(x) and ::tk::Priv(y)), and reschedules itself as an "after" -# command so that the window continues to scroll until the mouse -# moves back into the window or the mouse button is released. -# -# Arguments: -# w - The text window. - -proc ::tk::TextAutoScan {w} { - variable ::tk::Priv - if {![winfo exists $w]} return - if {$Priv(y) >= [winfo height $w]} { - $w yview scroll 2 units - } elseif {$Priv(y) < 0} { - $w yview scroll -2 units - } elseif {$Priv(x) >= [winfo width $w]} { - $w xview scroll 2 units - } elseif {$Priv(x) < 0} { - $w xview scroll -2 units - } else { - return - } - TextSelectTo $w $Priv(x) $Priv(y) - set Priv(afterId) [after 50 [list tk::TextAutoScan $w]] -} - -# ::tk::TextSetCursor -# Move the insertion cursor to a given position in a text. Also -# clears the selection, if there is one in the text, and makes sure -# that the insertion cursor is visible. Also, don't let the insertion -# cursor appear on the dummy last line of the text. -# -# Arguments: -# w - The text window. -# pos - The desired new position for the cursor in the window. - -proc ::tk::TextSetCursor {w pos} { - - if {[$w compare $pos == end]} { - set pos {end - 1 chars} - } - $w mark set insert $pos - $w tag remove sel 1.0 end - $w see insert - if {[$w cget -autoseparators]} {$w edit separator} -} - -# ::tk::TextKeySelect -# This procedure is invoked when stroking out selections using the -# keyboard. It moves the cursor to a new position, then extends -# the selection to that position. -# -# Arguments: -# w - The text window. -# new - A new position for the insertion cursor (the cursor hasn't -# actually been moved to this position yet). - -proc ::tk::TextKeySelect {w new} { - - if {[$w tag nextrange sel 1.0 end] eq ""} { - if {[$w compare $new < insert]} { - $w tag add sel $new insert - } else { - $w tag add sel insert $new - } - $w mark set anchor insert - } else { - if {[$w compare $new < anchor]} { - set first $new - set last anchor - } else { - set first anchor - set last $new - } - $w tag remove sel 1.0 $first - $w tag add sel $first $last - $w tag remove sel $last end - } - $w mark set insert $new - $w see insert - update idletasks -} - -# ::tk::TextResetAnchor -- -# Set the selection anchor to whichever end is farthest from the -# index argument. One special trick: if the selection has two or -# fewer characters, just leave the anchor where it is. In this -# case it doesn't matter which point gets chosen for the anchor, -# and for the things like Shift-Left and Shift-Right this produces -# better behavior when the cursor moves back and forth across the -# anchor. -# -# Arguments: -# w - The text widget. -# index - Position at which mouse button was pressed, which determines -# which end of selection should be used as anchor point. - -proc ::tk::TextResetAnchor {w index} { - - if {[$w tag ranges sel] eq ""} { - # Don't move the anchor if there is no selection now; this makes - # the widget behave "correctly" when the user clicks once, then - # shift-clicks somewhere -- ie, the area between the two clicks will be - # selected. [Bug: 5929]. - return - } - set a [$w index $index] - set b [$w index sel.first] - set c [$w index sel.last] - if {[$w compare $a < $b]} { - $w mark set anchor sel.last - return - } - if {[$w compare $a > $c]} { - $w mark set anchor sel.first - return - } - scan $a "%d.%d" lineA chA - scan $b "%d.%d" lineB chB - scan $c "%d.%d" lineC chC - if {$lineB < $lineC+2} { - set total [string length [$w get $b $c]] - if {$total <= 2} { - return - } - if {[string length [$w get $b $a]] < ($total/2)} { - $w mark set anchor sel.last - } else { - $w mark set anchor sel.first - } - return - } - if {($lineA-$lineB) < ($lineC-$lineA)} { - $w mark set anchor sel.last - } else { - $w mark set anchor sel.first - } -} - -# ::tk::TextInsert -- -# Insert a string into a text at the point of the insertion cursor. -# If there is a selection in the text, and it covers the point of the -# insertion cursor, then delete the selection before inserting. -# -# Arguments: -# w - The text window in which to insert the string -# s - The string to insert (usually just a single character) - -proc ::tk::TextInsert {w s} { - if {$s eq "" || [$w cget -state] eq "disabled"} { - return - } - set compound 0 - catch { - if {[$w compare sel.first <= insert] \ - && [$w compare sel.last >= insert]} { - set oldSeparator [$w cget -autoseparators] - if { $oldSeparator } { - $w configure -autoseparators 0 - $w edit separator - set compound 1 - } - $w delete sel.first sel.last - } - } - $w insert insert $s - $w see insert - if { $compound && $oldSeparator } { - $w edit separator - $w configure -autoseparators 1 - } -} - -# ::tk::TextUpDownLine -- -# Returns the index of the character one line above or below the -# insertion cursor. There are two tricky things here. First, -# we want to maintain the original column across repeated operations, -# even though some lines that will get passed through don't have -# enough characters to cover the original column. Second, don't -# try to scroll past the beginning or end of the text. -# -# Arguments: -# w - The text window in which the cursor is to move. -# n - The number of lines to move: -1 for up one line, -# +1 for down one line. - -proc ::tk::TextUpDownLine {w n} { - variable ::tk::Priv - - set i [$w index insert] - scan $i "%d.%d" line char - if {$Priv(prevPos) ne $i} { - set Priv(char) $char - } - set new [$w index [expr {$line + $n}].$Priv(char)] - if {[$w compare $new == end] || [$w compare $new == "insert linestart"]} { - set new $i - } - set Priv(prevPos) $new - return $new -} - -# ::tk::TextPrevPara -- -# Returns the index of the beginning of the paragraph just before a given -# position in the text (the beginning of a paragraph is the first non-blank -# character after a blank line). -# -# Arguments: -# w - The text window in which the cursor is to move. -# pos - Position at which to start search. - -proc ::tk::TextPrevPara {w pos} { - set pos [$w index "$pos linestart"] - while {1} { - if {([$w get "$pos - 1 line"] eq "\n" \ - && [$w get $pos] ne "\n") || $pos eq "1.0"} { - if {[regexp -indices {^[ ]+(.)} [$w get $pos "$pos lineend"] \ - dummy index]} { - set pos [$w index "$pos + [lindex $index 0] chars"] - } - if {[$w compare $pos != insert] || [lindex [split $pos .] 0] == 1} { - return $pos - } - } - set pos [$w index "$pos - 1 line"] - } -} - -# ::tk::TextNextPara -- -# Returns the index of the beginning of the paragraph just after a given -# position in the text (the beginning of a paragraph is the first non-blank -# character after a blank line). -# -# Arguments: -# w - The text window in which the cursor is to move. -# start - Position at which to start search. - -proc ::tk::TextNextPara {w start} { - set pos [$w index "$start linestart + 1 line"] - while {[$w get $pos] ne "\n"} { - if {[$w compare $pos == end]} { - return [$w index "end - 1c"] - } - set pos [$w index "$pos + 1 line"] - } - while {[$w get $pos] eq "\n"} { - set pos [$w index "$pos + 1 line"] - if {[$w compare $pos == end]} { - return [$w index "end - 1c"] - } - } - if {[regexp -indices {^[ ]+(.)} [$w get $pos "$pos lineend"] \ - dummy index]} { - return [$w index "$pos + [lindex $index 0] chars"] - } - return $pos -} - -# ::tk::TextScrollPages -- -# This is a utility procedure used in bindings for moving up and down -# pages and possibly extending the selection along the way. It scrolls -# the view in the widget by the number of pages, and it returns the -# index of the character that is at the same position in the new view -# as the insertion cursor used to be in the old view. -# -# Arguments: -# w - The text window in which the cursor is to move. -# count - Number of pages forward to scroll; may be negative -# to scroll backwards. - -proc ::tk::TextScrollPages {w count} { - set bbox [$w bbox insert] - $w yview scroll $count pages - if {$bbox eq ""} { - return [$w index @[expr {[winfo height $w]/2}],0] - } - return [$w index @[lindex $bbox 0],[lindex $bbox 1]] -} - -# ::tk::TextTranspose -- -# This procedure implements the "transpose" function for text widgets. -# It tranposes the characters on either side of the insertion cursor, -# unless the cursor is at the end of the line. In this case it -# transposes the two characters to the left of the cursor. In either -# case, the cursor ends up to the right of the transposed characters. -# -# Arguments: -# w - Text window in which to transpose. - -proc ::tk::TextTranspose w { - set pos insert - if {[$w compare $pos != "$pos lineend"]} { - set pos [$w index "$pos + 1 char"] - } - set new [$w get "$pos - 1 char"][$w get "$pos - 2 char"] - if {[$w compare "$pos - 1 char" == 1.0]} { - return - } - # ensure this is seen as an atomic op to undo - set autosep [$w cget -autoseparators] - if {$autosep} { - $w configure -autoseparators 0 - $w edit separator - } - $w delete "$pos - 2 char" $pos - $w insert insert $new - $w see insert - if {$autosep} { - $w edit separator - $w configure -autoseparators $autosep - } -} - -# ::tk_textCopy -- -# This procedure copies the selection from a text widget into the -# clipboard. -# -# Arguments: -# w - Name of a text widget. - -proc ::tk_textCopy w { - if {![catch {set data [$w get sel.first sel.last]}]} { - clipboard clear -displayof $w - clipboard append -displayof $w $data - } -} - -# ::tk_textCut -- -# This procedure copies the selection from a text widget into the -# clipboard, then deletes the selection (if it exists in the given -# widget). -# -# Arguments: -# w - Name of a text widget. - -proc ::tk_textCut w { - if {![catch {set data [$w get sel.first sel.last]}]} { - clipboard clear -displayof $w - clipboard append -displayof $w $data - $w delete sel.first sel.last - } -} - -# ::tk_textPaste -- -# This procedure pastes the contents of the clipboard to the insertion -# point in a text widget. -# -# Arguments: -# w - Name of a text widget. - -proc ::tk_textPaste w { - global tcl_platform - if {![catch {::tk::GetSelection $w CLIPBOARD} sel]} { - # ensure this is seen as an atomic op to undo - set oldSeparator [$w cget -autoseparators] - if { $oldSeparator } { - $w configure -autoseparators 0 - $w edit separator - } - if {[tk windowingsystem] ne "x11"} { - catch { $w delete sel.first sel.last } - } - $w insert insert $sel - if { $oldSeparator } { - $w edit separator - $w configure -autoseparators 1 - } - } -} - -# ::tk::TextNextWord -- -# Returns the index of the next word position after a given position in the -# text. The next word is platform dependent and may be either the next -# end-of-word position or the next start-of-word position after the next -# end-of-word position. -# -# Arguments: -# w - The text window in which the cursor is to move. -# start - Position at which to start search. - -if {$tcl_platform(platform) eq "windows"} { - proc ::tk::TextNextWord {w start} { - TextNextPos $w [TextNextPos $w $start tcl_endOfWord] \ - tcl_startOfNextWord - } -} else { - proc ::tk::TextNextWord {w start} { - TextNextPos $w $start tcl_endOfWord - } -} - -# ::tk::TextNextPos -- -# Returns the index of the next position after the given starting -# position in the text as computed by a specified function. -# -# Arguments: -# w - The text window in which the cursor is to move. -# start - Position at which to start search. -# op - Function to use to find next position. - -proc ::tk::TextNextPos {w start op} { - set text "" - set cur $start - while {[$w compare $cur < end]} { - set text $text[$w get $cur "$cur lineend + 1c"] - set pos [$op $text 0] - if {$pos >= 0} { - ## Adjust for embedded windows and images - ## dump gives us 3 items per window/image - set dump [$w dump -image -window $start "$start + $pos c"] - if {[llength $dump]} { - set pos [expr {$pos + ([llength $dump]/3)}] - } - return [$w index "$start + $pos c"] - } - set cur [$w index "$cur lineend +1c"] - } - return end -} - -# ::tk::TextPrevPos -- -# Returns the index of the previous position before the given starting -# position in the text as computed by a specified function. -# -# Arguments: -# w - The text window in which the cursor is to move. -# start - Position at which to start search. -# op - Function to use to find next position. - -proc ::tk::TextPrevPos {w start op} { - set text "" - set cur $start - while {[$w compare $cur > 0.0]} { - set text [$w get "$cur linestart - 1c" $cur]$text - set pos [$op $text end] - if {$pos >= 0} { - ## Adjust for embedded windows and images - ## dump gives us 3 items per window/image - set dump [$w dump -image -window "$cur linestart" "$start - 1c"] - if {[llength $dump]} { - ## This is a hokey extra hack for control-arrow movement - ## that should be in a while loop to be correct (hobbs) - if {[$w compare [lindex $dump 2] > \ - "$cur linestart - 1c + $pos c"]} { - incr pos -1 - } - set pos [expr {$pos + ([llength $dump]/3)}] - } - return [$w index "$cur linestart - 1c + $pos c"] - } - set cur [$w index "$cur linestart - 1c"] - } - return 0.0 -} - -# ::tk::TextScanMark -- -# -# Marks the start of a possible scan drag operation -# -# Arguments: -# w - The text window from which the text to get -# x - x location on screen -# y - y location on screen - -proc ::tk::TextScanMark {w x y} { - $w scan mark $x $y - set ::tk::Priv(x) $x - set ::tk::Priv(y) $y - set ::tk::Priv(mouseMoved) 0 -} - -# ::tk::TextScanDrag -- -# -# Marks the start of a possible scan drag operation -# -# Arguments: -# w - The text window from which the text to get -# x - x location on screen -# y - y location on screen - -proc ::tk::TextScanDrag {w x y} { - # Make sure these exist, as some weird situations can trigger the - # motion binding without the initial press. [Bug #220269] - if {![info exists ::tk::Priv(x)]} { set ::tk::Priv(x) $x } - if {![info exists ::tk::Priv(y)]} { set ::tk::Priv(y) $y } - if {($x != $::tk::Priv(x)) || ($y != $::tk::Priv(y))} { - set ::tk::Priv(mouseMoved) 1 - } - if {[info exists ::tk::Priv(mouseMoved)] && $::tk::Priv(mouseMoved)} { - $w scan dragto $x $y - } -} diff --git a/mingw/lib/tk8.4/tk.tcl b/mingw/lib/tk8.4/tk.tcl deleted file mode 100644 index 2abd90fd..00000000 --- a/mingw/lib/tk8.4/tk.tcl +++ /dev/null @@ -1,590 +0,0 @@ -# tk.tcl -- -# -# Initialization script normally executed in the interpreter for each -# Tk-based application. Arranges class bindings for widgets. -# -# RCS: @(#) $Id: tk.tcl,v 1.46.2.6 2006/09/25 17:28:20 andreas_kupries Exp $ -# -# Copyright (c) 1992-1994 The Regents of the University of California. -# Copyright (c) 1994-1996 Sun Microsystems, Inc. -# Copyright (c) 1998-2000 Ajuba Solutions. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -# Insist on running with compatible versions of Tcl and Tk. -package require -exact Tk 8.4 -package require -exact Tcl 8.4 - -# Create a ::tk namespace -namespace eval ::tk { - # Set up the msgcat commands - namespace eval msgcat { - namespace export mc mcmax - if {[interp issafe] || [catch {package require msgcat}]} { - # The msgcat package is not available. Supply our own - # minimal replacement. - proc mc {src args} { - return [eval [list format $src] $args] - } - proc mcmax {args} { - set max 0 - foreach string $args { - set len [string length $string] - if {$len>$max} { - set max $len - } - } - return $max - } - } else { - # Get the commands from the msgcat package that Tk uses. - namespace import ::msgcat::mc - namespace import ::msgcat::mcmax - ::msgcat::mcload [file join $::tk_library msgs] - } - } - namespace import ::tk::msgcat::* -} - -# Add Tk's directory to the end of the auto-load search path, if it -# isn't already on the path: - -if {[info exists ::auto_path] && $::tk_library ne "" && \ - [lsearch -exact $::auto_path $::tk_library] < 0} { - lappend ::auto_path $::tk_library -} - -# Turn off strict Motif look and feel as a default. - -set ::tk_strictMotif 0 - -# Turn on useinputmethods (X Input Methods) by default. -# We catch this because safe interpreters may not allow the call. - -catch {tk useinputmethods 1} - -# ::tk::PlaceWindow -- -# place a toplevel at a particular position -# Arguments: -# toplevel name of toplevel window -# ?placement? pointer ?center? ; places $w centered on the pointer -# widget widgetPath ; centers $w over widget_name -# defaults to placing toplevel in the middle of the screen -# ?anchor? center or widgetPath -# Results: -# Returns nothing -# -proc ::tk::PlaceWindow {w {place ""} {anchor ""}} { - wm withdraw $w - update idletasks - set checkBounds 1 - set place_len [string length $place] - if {$place eq ""} { - set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] - set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] - set checkBounds 0 - } elseif {[string equal -length $place_len $place "pointer"]} { - ## place at POINTER (centered if $anchor == center) - if {[string equal -length [string length $anchor] $anchor "center"]} { - set x [expr {[winfo pointerx $w]-[winfo reqwidth $w]/2}] - set y [expr {[winfo pointery $w]-[winfo reqheight $w]/2}] - } else { - set x [winfo pointerx $w] - set y [winfo pointery $w] - } - } elseif {[string equal -length $place_len $place "widget"] && \ - [winfo exists $anchor] && [winfo ismapped $anchor]} { - ## center about WIDGET $anchor, widget must be mapped - set x [expr {[winfo rootx $anchor] + \ - ([winfo width $anchor]-[winfo reqwidth $w])/2}] - set y [expr {[winfo rooty $anchor] + \ - ([winfo height $anchor]-[winfo reqheight $w])/2}] - } else { - set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] - set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] - set checkBounds 0 - } - - set windowingsystem [tk windowingsystem] - - if {$windowingsystem eq "win32"} { - # Bug 533519: win32 multiple desktops may produce negative geometry. - set checkBounds 0 - } - if {$checkBounds} { - if {$x < 0} { - set x 0 - } elseif {$x > ([winfo screenwidth $w]-[winfo reqwidth $w])} { - set x [expr {[winfo screenwidth $w]-[winfo reqwidth $w]}] - } - if {$y < 0} { - set y 0 - } elseif {$y > ([winfo screenheight $w]-[winfo reqheight $w])} { - set y [expr {[winfo screenheight $w]-[winfo reqheight $w]}] - } - if {$windowingsystem eq "macintosh" || $windowingsystem eq "aqua"} { - # Avoid the native menu bar which sits on top of everything. - if {$y < 20} { set y 20 } - } - } - wm geometry $w +$x+$y - wm deiconify $w -} - -# ::tk::SetFocusGrab -- -# swap out current focus and grab temporarily (for dialogs) -# Arguments: -# grab new window to grab -# focus window to give focus to -# Results: -# Returns nothing -# -proc ::tk::SetFocusGrab {grab {focus {}}} { - set index "$grab,$focus" - upvar ::tk::FocusGrab($index) data - - lappend data [focus] - set oldGrab [grab current $grab] - lappend data $oldGrab - if {[winfo exists $oldGrab]} { - lappend data [grab status $oldGrab] - } - # The "grab" command will fail if another application - # already holds the grab. So catch it. - catch {grab $grab} - if {[winfo exists $focus]} { - focus $focus - } -} - -# ::tk::RestoreFocusGrab -- -# restore old focus and grab (for dialogs) -# Arguments: -# grab window that had taken grab -# focus window that had taken focus -# destroy destroy|withdraw - how to handle the old grabbed window -# Results: -# Returns nothing -# -proc ::tk::RestoreFocusGrab {grab focus {destroy destroy}} { - set index "$grab,$focus" - if {[info exists ::tk::FocusGrab($index)]} { - foreach {oldFocus oldGrab oldStatus} $::tk::FocusGrab($index) { break } - unset ::tk::FocusGrab($index) - } else { - set oldGrab "" - } - - catch {focus $oldFocus} - grab release $grab - if {$destroy eq "withdraw"} { - wm withdraw $grab - } else { - destroy $grab - } - if {[winfo exists $oldGrab] && [winfo ismapped $oldGrab]} { - if {$oldStatus eq "global"} { - grab -global $oldGrab - } else { - grab $oldGrab - } - } -} - -# ::tk::GetSelection -- -# This tries to obtain the default selection. On Unix, we first try -# and get a UTF8_STRING, a type supported by modern Unix apps for -# passing Unicode data safely. We fall back on the default STRING -# type otherwise. On Windows, only the STRING type is necessary. -# Arguments: -# w The widget for which the selection will be retrieved. -# Important for the -displayof property. -# sel The source of the selection (PRIMARY or CLIPBOARD) -# Results: -# Returns the selection, or an error if none could be found -# -if {$tcl_platform(platform) eq "unix"} { - proc ::tk::GetSelection {w {sel PRIMARY}} { - if {[catch {selection get -displayof $w -selection $sel \ - -type UTF8_STRING} txt] \ - && [catch {selection get -displayof $w -selection $sel} txt]} { - return -code error "could not find default selection" - } else { - return $txt - } - } -} else { - proc ::tk::GetSelection {w {sel PRIMARY}} { - if {[catch {selection get -displayof $w -selection $sel} txt]} { - return -code error "could not find default selection" - } else { - return $txt - } - } -} - -# ::tk::ScreenChanged -- -# This procedure is invoked by the binding mechanism whenever the -# "current" screen is changing. The procedure does two things. -# First, it uses "upvar" to make variable "::tk::Priv" point at an -# array variable that holds state for the current display. Second, -# it initializes the array if it didn't already exist. -# -# Arguments: -# screen - The name of the new screen. - -proc ::tk::ScreenChanged screen { - set x [string last . $screen] - if {$x > 0} { - set disp [string range $screen 0 [expr {$x - 1}]] - } else { - set disp $screen - } - - uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv - variable ::tk::Priv - global tcl_platform - - if {[info exists Priv]} { - set Priv(screen) $screen - return - } - array set Priv { - activeMenu {} - activeItem {} - afterId {} - buttons 0 - buttonWindow {} - dragging 0 - focus {} - grab {} - initPos {} - inMenubutton {} - listboxPrev {} - menuBar {} - mouseMoved 0 - oldGrab {} - popup {} - postedMb {} - pressX 0 - pressY 0 - prevPos 0 - selectMode char - } - set Priv(screen) $screen - set Priv(tearoff) [string equal [tk windowingsystem] "x11"] - set Priv(window) {} -} - -# Do initial setup for Priv, so that it is always bound to something -# (otherwise, if someone references it, it may get set to a non-upvar-ed -# value, which will cause trouble later). - -tk::ScreenChanged [winfo screen .] - -# ::tk::EventMotifBindings -- -# This procedure is invoked as a trace whenever ::tk_strictMotif is -# changed. It is used to turn on or turn off the motif virtual -# bindings. -# -# Arguments: -# n1 - the name of the variable being changed ("::tk_strictMotif"). - -proc ::tk::EventMotifBindings {n1 dummy dummy} { - upvar $n1 name - - if {$name} { - set op delete - } else { - set op add - } - - event $op <> - event $op <> - event $op <> - event $op <> -} - -#---------------------------------------------------------------------- -# Define common dialogs on platforms where they are not implemented -# using compiled code. -#---------------------------------------------------------------------- - -if {[info commands tk_chooseColor] eq ""} { - proc ::tk_chooseColor {args} { - return [eval tk::dialog::color:: $args] - } -} -if {[info commands tk_getOpenFile] eq ""} { - proc ::tk_getOpenFile {args} { - if {$::tk_strictMotif} { - return [eval tk::MotifFDialog open $args] - } else { - return [eval ::tk::dialog::file:: open $args] - } - } -} -if {[info commands tk_getSaveFile] eq ""} { - proc ::tk_getSaveFile {args} { - if {$::tk_strictMotif} { - return [eval tk::MotifFDialog save $args] - } else { - return [eval ::tk::dialog::file:: save $args] - } - } -} -if {[info commands tk_messageBox] eq ""} { - proc ::tk_messageBox {args} { - return [eval tk::MessageBox $args] - } -} -if {[info command tk_chooseDirectory] eq ""} { - proc ::tk_chooseDirectory {args} { - return [eval ::tk::dialog::file::chooseDir:: $args] - } -} - -#---------------------------------------------------------------------- -# Define the set of common virtual events. -#---------------------------------------------------------------------- - -switch [tk windowingsystem] { - "x11" { - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - # Some OS's define a goofy (as in, not ) keysym - # that is returned when the user presses . In order for - # tab traversal to work, we have to add these keysyms to the - # PrevWindow event. - # We use catch just in case the keysym isn't recognized. - # This is needed for XFree86 systems - catch { event add <> } - # This seems to be correct on *some* HP systems. - catch { event add <> } - - trace add variable ::tk_strictMotif write ::tk::EventMotifBindings - set ::tk_strictMotif $::tk_strictMotif - # On unix, we want to always display entry/text selection, - # regardless of which window has focus - set ::tk::AlwaysShowSelection 1 - } - "win32" { - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - } - "aqua" { - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - } - "classic" { - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - event add <> - } -} -# ---------------------------------------------------------------------- -# Read in files that define all of the class bindings. -# ---------------------------------------------------------------------- - -if {$::tk_library ne ""} { - if {$tcl_platform(platform) eq "macintosh"} { - proc ::tk::SourceLibFile {file} { - if {[catch { - namespace eval :: \ - [list source [file join $::tk_library $file.tcl]] - }]} { - namespace eval :: [list source -rsrc $file] - } - } - } else { - proc ::tk::SourceLibFile {file} { - namespace eval :: [list source [file join $::tk_library $file.tcl]] - } - } - namespace eval ::tk { - SourceLibFile button - SourceLibFile entry - SourceLibFile listbox - SourceLibFile menu - SourceLibFile panedwindow - SourceLibFile scale - SourceLibFile scrlbar - SourceLibFile spinbox - SourceLibFile text - } -} -# ---------------------------------------------------------------------- -# Default bindings for keyboard traversal. -# ---------------------------------------------------------------------- - -event add <> -bind all {tk::TabToWindow [tk_focusNext %W]} -bind all <> {tk::TabToWindow [tk_focusPrev %W]} - -# ::tk::CancelRepeat -- -# This procedure is invoked to cancel an auto-repeat action described -# by ::tk::Priv(afterId). It's used by several widgets to auto-scroll -# the widget when the mouse is dragged out of the widget with a -# button pressed. -# -# Arguments: -# None. - -proc ::tk::CancelRepeat {} { - variable ::tk::Priv - after cancel $Priv(afterId) - set Priv(afterId) {} -} - -# ::tk::TabToWindow -- -# This procedure moves the focus to the given widget. If the widget -# is an entry or a spinbox, it selects the entire contents of the widget. -# -# Arguments: -# w - Window to which focus should be set. - -proc ::tk::TabToWindow {w} { - set wclass [winfo class $w] - - if {$wclass eq "Entry" || $wclass eq "Spinbox"} { - $w selection range 0 end - $w icursor end - } - focus $w -} - -# ::tk::UnderlineAmpersand -- -# This procedure takes some text with ampersand and returns -# text w/o ampersand and position of the ampersand. -# Double ampersands are converted to single ones. -# Position returned is -1 when there is no ampersand. -# -proc ::tk::UnderlineAmpersand {text} { - set idx [string first "&" $text] - if {$idx >= 0} { - set underline $idx - # ignore "&&" - while {[string match "&" [string index $text [expr {$idx + 1}]]]} { - set base [expr {$idx + 2}] - set idx [string first "&" [string range $text $base end]] - if {$idx < 0} { - break - } else { - set underline [expr {$underline + $idx + 1}] - incr idx $base - } - } - } - if {$idx >= 0} { - regsub -all -- {&([^&])} $text {\1} text - } - return [list $text $idx] -} - -# ::tk::SetAmpText -- -# Given widget path and text with "magic ampersands", -# sets -text and -underline options for the widget -# -proc ::tk::SetAmpText {widget text} { - foreach {newtext under} [::tk::UnderlineAmpersand $text] { - $widget configure -text $newtext -underline $under - } -} - -# ::tk::AmpWidget -- -# Creates new widget, turning -text option into -text and -# -underline options, returned by ::tk::UnderlineAmpersand. -# -proc ::tk::AmpWidget {class path args} { - set wcmd [list $class $path] - foreach {opt val} $args { - if {$opt eq "-text"} { - foreach {newtext under} [::tk::UnderlineAmpersand $val] { - lappend wcmd -text $newtext -underline $under - } - } else { - lappend wcmd $opt $val - } - } - eval $wcmd - if {$class eq "button"} { - bind $path <> [list $path invoke] - } - return $path -} - -# ::tk::FindAltKeyTarget -- -# search recursively through the hierarchy of visible widgets -# to find button or label which has $char as underlined character -# -proc ::tk::FindAltKeyTarget {path char} { - switch [winfo class $path] { - Button - - Label { - if {[string equal -nocase $char \ - [string index [$path cget -text] \ - [$path cget -underline]]]} {return $path} else {return {}} - } - default { - foreach child \ - [concat [grid slaves $path] \ - [pack slaves $path] \ - [place slaves $path] ] { - if {"" ne [set target [::tk::FindAltKeyTarget $child $char]]} { - return $target - } - } - } - } - return {} -} - -# ::tk::AltKeyInDialog -- -# event handler for standard dialogs. Sends <> -# to button or label which has appropriate underlined character -# -proc ::tk::AltKeyInDialog {path key} { - set target [::tk::FindAltKeyTarget $path $key] - if { $target eq ""} return - event generate $target <> -} - -# ::tk::mcmaxamp -- -# Replacement for mcmax, used for texts with "magic ampersand" in it. -# - -proc ::tk::mcmaxamp {args} { - set maxlen 0 - foreach arg $args { - set length [string length [lindex [::tk::UnderlineAmpersand [mc $arg]] 0]] - if {$length>$maxlen} { - set maxlen $length - } - } - return $maxlen -} -# For now, turn off the custom mdef proc for the mac: - -if {[tk windowingsystem] eq "aqua"} { - namespace eval ::tk::mac { - set useCustomMDEF 0 - } -} diff --git a/mingw/lib/tk8.4/tkAppInit.c b/mingw/lib/tk8.4/tkAppInit.c deleted file mode 100644 index 3a215fea..00000000 --- a/mingw/lib/tk8.4/tkAppInit.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * tkAppInit.c -- - * - * Provides a default version of the Tcl_AppInit procedure for - * use in wish and similar Tk-based applications. - * - * Copyright (c) 1993 The Regents of the University of California. - * Copyright (c) 1994-1997 Sun Microsystems, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tkAppInit.c,v 1.7 2002/06/21 20:24:29 dgp Exp $ - */ - -#include "tk.h" -#include "locale.h" - -#ifdef TK_TEST -extern int Tktest_Init _ANSI_ARGS_((Tcl_Interp *interp)); -#endif /* TK_TEST */ - -/* - *---------------------------------------------------------------------- - * - * main -- - * - * This is the main program for the application. - * - * Results: - * None: Tk_Main never returns here, so this procedure never - * returns either. - * - * Side effects: - * Whatever the application does. - * - *---------------------------------------------------------------------- - */ - -int -main(argc, argv) - int argc; /* Number of command-line arguments. */ - char **argv; /* Values of command-line arguments. */ -{ - /* - * The following #if block allows you to change the AppInit - * function by using a #define of TCL_LOCAL_APPINIT instead - * of rewriting this entire file. The #if checks for that - * #define and uses Tcl_AppInit if it doesn't exist. - */ - -#ifndef TK_LOCAL_APPINIT -#define TK_LOCAL_APPINIT Tcl_AppInit -#endif - extern int TK_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp)); - - /* - * The following #if block allows you to change how Tcl finds the startup - * script, prime the library or encoding paths, fiddle with the argv, - * etc., without needing to rewrite Tk_Main() - */ - -#ifdef TK_LOCAL_MAIN_HOOK - extern int TK_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv)); - TK_LOCAL_MAIN_HOOK(&argc, &argv); -#endif - - Tk_Main(argc, argv, TK_LOCAL_APPINIT); - return 0; /* Needed only to prevent compiler warning. */ -} - -/* - *---------------------------------------------------------------------- - * - * Tcl_AppInit -- - * - * This procedure performs application-specific initialization. - * Most applications, especially those that incorporate additional - * packages, will have their own version of this procedure. - * - * Results: - * Returns a standard Tcl completion code, and leaves an error - * message in the interp's result if an error occurs. - * - * Side effects: - * Depends on the startup script. - * - *---------------------------------------------------------------------- - */ - -int -Tcl_AppInit(interp) - Tcl_Interp *interp; /* Interpreter for application. */ -{ - if (Tcl_Init(interp) == TCL_ERROR) { - return TCL_ERROR; - } - if (Tk_Init(interp) == TCL_ERROR) { - return TCL_ERROR; - } - Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit); -#ifdef TK_TEST - if (Tktest_Init(interp) == TCL_ERROR) { - return TCL_ERROR; - } - Tcl_StaticPackage(interp, "Tktest", Tktest_Init, - (Tcl_PackageInitProc *) NULL); -#endif /* TK_TEST */ - - - /* - * Call the init procedures for included packages. Each call should - * look like this: - * - * if (Mod_Init(interp) == TCL_ERROR) { - * return TCL_ERROR; - * } - * - * where "Mod" is the name of the module. - */ - - /* - * Call Tcl_CreateCommand for application-specific commands, if - * they weren't already created by the init procedures called above. - */ - - /* - * Specify a user-specific startup file to invoke if the application - * is run interactively. Typically the startup file is "~/.apprc" - * where "app" is the name of the application. If this line is deleted - * then no user-specific startup file will be run under any conditions. - */ - - Tcl_SetVar(interp, "tcl_rcFileName", "~/.wishrc", TCL_GLOBAL_ONLY); - return TCL_OK; -} diff --git a/mingw/lib/tk8.4/tkfbox.tcl b/mingw/lib/tk8.4/tkfbox.tcl deleted file mode 100644 index ec37d552..00000000 --- a/mingw/lib/tk8.4/tkfbox.tcl +++ /dev/null @@ -1,1815 +0,0 @@ -# tkfbox.tcl -- -# -# Implements the "TK" standard file selection dialog box. This -# dialog box is used on the Unix platforms whenever the tk_strictMotif -# flag is not set. -# -# The "TK" standard file selection dialog box is similar to the -# file selection dialog box on Win95(TM). The user can navigate -# the directories by clicking on the folder icons or by -# selecting the "Directory" option menu. The user can select -# files by clicking on the file icons or by entering a filename -# in the "Filename:" entry. -# -# RCS: @(#) $Id: tkfbox.tcl,v 1.38.2.12 2006/07/07 00:38:47 hobbs Exp $ -# -# Copyright (c) 1994-1998 Sun Microsystems, Inc. -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. -# - -#---------------------------------------------------------------------- -# -# I C O N L I S T -# -# This is a pseudo-widget that implements the icon list inside the -# ::tk::dialog::file:: dialog box. -# -#---------------------------------------------------------------------- - -# ::tk::IconList -- -# -# Creates an IconList widget. -# -proc ::tk::IconList {w args} { - IconList_Config $w $args - IconList_Create $w -} - -proc ::tk::IconList_Index {w i} { - upvar #0 ::tk::$w data - upvar #0 ::tk::$w:itemList itemList - if {![info exists data(list)]} {set data(list) {}} - switch -regexp -- $i { - "^-?[0-9]+$" { - if { $i < 0 } { - set i 0 - } - if { $i >= [llength $data(list)] } { - set i [expr {[llength $data(list)] - 1}] - } - return $i - } - "^active$" { - return $data(index,active) - } - "^anchor$" { - return $data(index,anchor) - } - "^end$" { - return [llength $data(list)] - } - "@-?[0-9]+,-?[0-9]+" { - foreach {x y} [scan $i "@%d,%d"] { - break - } - set item [$data(canvas) find closest $x $y] - return [lindex [$data(canvas) itemcget $item -tags] 1] - } - } -} - -proc ::tk::IconList_Selection {w op args} { - upvar ::tk::$w data - switch -exact -- $op { - "anchor" { - if { [llength $args] == 1 } { - set data(index,anchor) [tk::IconList_Index $w [lindex $args 0]] - } else { - return $data(index,anchor) - } - } - "clear" { - if { [llength $args] == 2 } { - foreach {first last} $args { - break - } - } elseif { [llength $args] == 1 } { - set first [set last [lindex $args 0]] - } else { - error "wrong # args: should be [lindex [info level 0] 0] path\ - clear first ?last?" - } - set first [IconList_Index $w $first] - set last [IconList_Index $w $last] - if { $first > $last } { - set tmp $first - set first $last - set last $tmp - } - set ind 0 - foreach item $data(selection) { - if { $item >= $first } { - set first $ind - break - } - } - set ind [expr {[llength $data(selection)] - 1}] - for {} {$ind >= 0} {incr ind -1} { - set item [lindex $data(selection) $ind] - if { $item <= $last } { - set last $ind - break - } - } - - if { $first > $last } { - return - } - set data(selection) [lreplace $data(selection) $first $last] - event generate $w <> - IconList_DrawSelection $w - } - "includes" { - set index [lsearch -exact $data(selection) [lindex $args 0]] - return [expr {$index != -1}] - } - "set" { - if { [llength $args] == 2 } { - foreach {first last} $args { - break - } - } elseif { [llength $args] == 1 } { - set last [set first [lindex $args 0]] - } else { - error "wrong # args: should be [lindex [info level 0] 0] path\ - set first ?last?" - } - - set first [IconList_Index $w $first] - set last [IconList_Index $w $last] - if { $first > $last } { - set tmp $first - set first $last - set last $tmp - } - for {set i $first} {$i <= $last} {incr i} { - lappend data(selection) $i - } - set data(selection) [lsort -integer -unique $data(selection)] - event generate $w <> - IconList_DrawSelection $w - } - } -} - -proc ::tk::IconList_Curselection {w} { - upvar ::tk::$w data - return $data(selection) -} - -proc ::tk::IconList_DrawSelection {w} { - upvar ::tk::$w data - upvar ::tk::$w:itemList itemList - - $data(canvas) delete selection - foreach item $data(selection) { - set rTag [lindex [lindex $data(list) $item] 2] - foreach {iTag tTag text serial} $itemList($rTag) { - break - } - - set bbox [$data(canvas) bbox $tTag] - $data(canvas) create rect $bbox -fill \#a0a0ff -outline \#a0a0ff \ - -tags selection - } - $data(canvas) lower selection - return -} - -proc ::tk::IconList_Get {w item} { - upvar ::tk::$w data - upvar ::tk::$w:itemList itemList - set rTag [lindex [lindex $data(list) $item] 2] - foreach {iTag tTag text serial} $itemList($rTag) { - break - } - return $text -} - -# ::tk::IconList_Config -- -# -# Configure the widget variables of IconList, according to the command -# line arguments. -# -proc ::tk::IconList_Config {w argList} { - - # 1: the configuration specs - # - set specs { - {-command "" "" ""} - {-multiple "" "" "0"} - } - - # 2: parse the arguments - # - tclParseConfigSpec ::tk::$w $specs "" $argList -} - -# ::tk::IconList_Create -- -# -# Creates an IconList widget by assembling a canvas widget and a -# scrollbar widget. Sets all the bindings necessary for the IconList's -# operations. -# -proc ::tk::IconList_Create {w} { - upvar ::tk::$w data - - frame $w - set data(sbar) [scrollbar $w.sbar -orient horizontal -takefocus 0] - catch {$data(sbar) configure -highlightthickness 0} - set data(canvas) [canvas $w.canvas -bd 2 -relief sunken \ - -width 400 -height 120 -takefocus 1] - pack $data(sbar) -side bottom -fill x -padx 2 - pack $data(canvas) -expand yes -fill both - - $data(sbar) configure -command [list $data(canvas) xview] - $data(canvas) configure -xscrollcommand [list $data(sbar) set] - - # Initializes the max icon/text width and height and other variables - # - set data(maxIW) 1 - set data(maxIH) 1 - set data(maxTW) 1 - set data(maxTH) 1 - set data(numItems) 0 - set data(curItem) {} - set data(noScroll) 1 - set data(selection) {} - set data(index,anchor) "" - set fg [option get $data(canvas) foreground Foreground] - if {$fg eq ""} { - set data(fill) black - } else { - set data(fill) $fg - } - - # Creates the event bindings. - # - bind $data(canvas) [list tk::IconList_Arrange $w] - - bind $data(canvas) <1> [list tk::IconList_Btn1 $w %x %y] - bind $data(canvas) [list tk::IconList_Motion1 $w %x %y] - bind $data(canvas) [list tk::IconList_Leave1 $w %x %y] - bind $data(canvas) [list tk::IconList_CtrlBtn1 $w %x %y] - bind $data(canvas) [list tk::IconList_ShiftBtn1 $w %x %y] - bind $data(canvas) [list tk::CancelRepeat] - bind $data(canvas) [list tk::CancelRepeat] - bind $data(canvas) \ - [list tk::IconList_Double1 $w %x %y] - - bind $data(canvas) [list tk::IconList_UpDown $w -1] - bind $data(canvas) [list tk::IconList_UpDown $w 1] - bind $data(canvas) [list tk::IconList_LeftRight $w -1] - bind $data(canvas) [list tk::IconList_LeftRight $w 1] - bind $data(canvas) [list tk::IconList_ReturnKey $w] - bind $data(canvas) [list tk::IconList_KeyPress $w %A] - bind $data(canvas) ";" - bind $data(canvas) ";" - - bind $data(canvas) [list tk::IconList_FocusIn $w] - bind $data(canvas) [list tk::IconList_FocusOut $w] - - return $w -} - -# ::tk::IconList_AutoScan -- -# -# This procedure is invoked when the mouse leaves an entry window -# with button 1 down. It scrolls the window up, down, left, or -# right, depending on where the mouse left the window, and reschedules -# itself as an "after" command so that the window continues to scroll until -# the mouse moves back into the window or the mouse button is released. -# -# Arguments: -# w - The IconList window. -# -proc ::tk::IconList_AutoScan {w} { - upvar ::tk::$w data - variable ::tk::Priv - - if {![winfo exists $w]} return - set x $Priv(x) - set y $Priv(y) - - if {$data(noScroll)} { - return - } - if {$x >= [winfo width $data(canvas)]} { - $data(canvas) xview scroll 1 units - } elseif {$x < 0} { - $data(canvas) xview scroll -1 units - } elseif {$y >= [winfo height $data(canvas)]} { - # do nothing - } elseif {$y < 0} { - # do nothing - } else { - return - } - - IconList_Motion1 $w $x $y - set Priv(afterId) [after 50 [list tk::IconList_AutoScan $w]] -} - -# Deletes all the items inside the canvas subwidget and reset the IconList's -# state. -# -proc ::tk::IconList_DeleteAll {w} { - upvar ::tk::$w data - upvar ::tk::$w:itemList itemList - - $data(canvas) delete all - unset -nocomplain data(selected) data(rect) data(list) itemList - set data(maxIW) 1 - set data(maxIH) 1 - set data(maxTW) 1 - set data(maxTH) 1 - set data(numItems) 0 - set data(curItem) {} - set data(noScroll) 1 - set data(selection) {} - set data(index,anchor) "" - $data(sbar) set 0.0 1.0 - $data(canvas) xview moveto 0 -} - -# Adds an icon into the IconList with the designated image and text -# -proc ::tk::IconList_Add {w image items} { - upvar ::tk::$w data - upvar ::tk::$w:itemList itemList - upvar ::tk::$w:textList textList - - foreach text $items { - set iTag [$data(canvas) create image 0 0 -image $image -anchor nw \ - -tags [list icon $data(numItems) item$data(numItems)]] - set tTag [$data(canvas) create text 0 0 -text $text -anchor nw \ - -font $data(font) -fill $data(fill) \ - -tags [list text $data(numItems) item$data(numItems)]] - set rTag [$data(canvas) create rect 0 0 0 0 -fill "" -outline "" \ - -tags [list rect $data(numItems) item$data(numItems)]] - - foreach {x1 y1 x2 y2} [$data(canvas) bbox $iTag] { - break - } - set iW [expr {$x2 - $x1}] - set iH [expr {$y2 - $y1}] - if {$data(maxIW) < $iW} { - set data(maxIW) $iW - } - if {$data(maxIH) < $iH} { - set data(maxIH) $iH - } - - foreach {x1 y1 x2 y2} [$data(canvas) bbox $tTag] { - break - } - set tW [expr {$x2 - $x1}] - set tH [expr {$y2 - $y1}] - if {$data(maxTW) < $tW} { - set data(maxTW) $tW - } - if {$data(maxTH) < $tH} { - set data(maxTH) $tH - } - - lappend data(list) [list $iTag $tTag $rTag $iW $iH $tW \ - $tH $data(numItems)] - set itemList($rTag) [list $iTag $tTag $text $data(numItems)] - set textList($data(numItems)) [string tolower $text] - incr data(numItems) - } -} - -# Places the icons in a column-major arrangement. -# -proc ::tk::IconList_Arrange {w} { - upvar ::tk::$w data - - if {![info exists data(list)]} { - if {[info exists data(canvas)] && [winfo exists $data(canvas)]} { - set data(noScroll) 1 - $data(sbar) configure -command "" - } - return - } - - set W [winfo width $data(canvas)] - set H [winfo height $data(canvas)] - set pad [expr {[$data(canvas) cget -highlightthickness] + \ - [$data(canvas) cget -bd]}] - if {$pad < 2} { - set pad 2 - } - - incr W -[expr {$pad*2}] - incr H -[expr {$pad*2}] - - set dx [expr {$data(maxIW) + $data(maxTW) + 8}] - if {$data(maxTH) > $data(maxIH)} { - set dy $data(maxTH) - } else { - set dy $data(maxIH) - } - incr dy 2 - set shift [expr {$data(maxIW) + 4}] - - set x [expr {$pad * 2}] - set y [expr {$pad * 1}] ; # Why * 1 ? - set usedColumn 0 - foreach sublist $data(list) { - set usedColumn 1 - foreach {iTag tTag rTag iW iH tW tH} $sublist { - break - } - - set i_dy [expr {($dy - $iH)/2}] - set t_dy [expr {($dy - $tH)/2}] - - $data(canvas) coords $iTag $x [expr {$y + $i_dy}] - $data(canvas) coords $tTag [expr {$x + $shift}] [expr {$y + $t_dy}] - $data(canvas) coords $rTag $x $y [expr {$x+$dx}] [expr {$y+$dy}] - - incr y $dy - if {($y + $dy) > $H} { - set y [expr {$pad * 1}] ; # *1 ? - incr x $dx - set usedColumn 0 - } - } - - if {$usedColumn} { - set sW [expr {$x + $dx}] - } else { - set sW $x - } - - if {$sW < $W} { - $data(canvas) configure -scrollregion [list $pad $pad $sW $H] - $data(sbar) configure -command "" - $data(canvas) xview moveto 0 - set data(noScroll) 1 - } else { - $data(canvas) configure -scrollregion [list $pad $pad $sW $H] - $data(sbar) configure -command [list $data(canvas) xview] - set data(noScroll) 0 - } - - set data(itemsPerColumn) [expr {($H-$pad)/$dy}] - if {$data(itemsPerColumn) < 1} { - set data(itemsPerColumn) 1 - } - - if {$data(curItem) ne ""} { - IconList_Select $w [lindex [lindex $data(list) $data(curItem)] 2] 0 - } -} - -# Gets called when the user invokes the IconList (usually by double-clicking -# or pressing the Return key). -# -proc ::tk::IconList_Invoke {w} { - upvar ::tk::$w data - - if {$data(-command) ne "" && [llength $data(selection)]} { - uplevel #0 $data(-command) - } -} - -# ::tk::IconList_See -- -# -# If the item is not (completely) visible, scroll the canvas so that -# it becomes visible. -proc ::tk::IconList_See {w rTag} { - upvar ::tk::$w data - upvar ::tk::$w:itemList itemList - - if {$data(noScroll)} { - return - } - set sRegion [$data(canvas) cget -scrollregion] - if {$sRegion eq ""} { - return - } - - if { $rTag < 0 || $rTag >= [llength $data(list)] } { - return - } - - set bbox [$data(canvas) bbox item$rTag] - set pad [expr {[$data(canvas) cget -highlightthickness] + \ - [$data(canvas) cget -bd]}] - - set x1 [lindex $bbox 0] - set x2 [lindex $bbox 2] - incr x1 -[expr {$pad * 2}] - incr x2 -[expr {$pad * 1}] ; # *1 ? - - set cW [expr {[winfo width $data(canvas)] - $pad*2}] - - set scrollW [expr {[lindex $sRegion 2]-[lindex $sRegion 0]+1}] - set dispX [expr {int([lindex [$data(canvas) xview] 0]*$scrollW)}] - set oldDispX $dispX - - # check if out of the right edge - # - if {($x2 - $dispX) >= $cW} { - set dispX [expr {$x2 - $cW}] - } - # check if out of the left edge - # - if {($x1 - $dispX) < 0} { - set dispX $x1 - } - - if {$oldDispX ne $dispX} { - set fraction [expr {double($dispX)/double($scrollW)}] - $data(canvas) xview moveto $fraction - } -} - -proc ::tk::IconList_Btn1 {w x y} { - upvar ::tk::$w data - - focus $data(canvas) - set x [expr {int([$data(canvas) canvasx $x])}] - set y [expr {int([$data(canvas) canvasy $y])}] - set i [IconList_Index $w @${x},${y}] - if {$i eq ""} return - IconList_Selection $w clear 0 end - IconList_Selection $w set $i - IconList_Selection $w anchor $i -} - -proc ::tk::IconList_CtrlBtn1 {w x y} { - upvar ::tk::$w data - - if { $data(-multiple) } { - focus $data(canvas) - set x [expr {int([$data(canvas) canvasx $x])}] - set y [expr {int([$data(canvas) canvasy $y])}] - set i [IconList_Index $w @${x},${y}] - if {$i eq ""} return - if { [IconList_Selection $w includes $i] } { - IconList_Selection $w clear $i - } else { - IconList_Selection $w set $i - IconList_Selection $w anchor $i - } - } -} - -proc ::tk::IconList_ShiftBtn1 {w x y} { - upvar ::tk::$w data - - if { $data(-multiple) } { - focus $data(canvas) - set x [expr {int([$data(canvas) canvasx $x])}] - set y [expr {int([$data(canvas) canvasy $y])}] - set i [IconList_Index $w @${x},${y}] - if {$i eq ""} return - set a [IconList_Index $w anchor] - if { $a eq "" } { - set a $i - } - IconList_Selection $w clear 0 end - IconList_Selection $w set $a $i - } -} - -# Gets called on button-1 motions -# -proc ::tk::IconList_Motion1 {w x y} { - upvar ::tk::$w data - variable ::tk::Priv - set Priv(x) $x - set Priv(y) $y - set x [expr {int([$data(canvas) canvasx $x])}] - set y [expr {int([$data(canvas) canvasy $y])}] - set i [IconList_Index $w @${x},${y}] - if {$i eq ""} return - IconList_Selection $w clear 0 end - IconList_Selection $w set $i -} - -proc ::tk::IconList_Double1 {w x y} { - upvar ::tk::$w data - - if {[llength $data(selection)]} { - IconList_Invoke $w - } -} - -proc ::tk::IconList_ReturnKey {w} { - IconList_Invoke $w -} - -proc ::tk::IconList_Leave1 {w x y} { - variable ::tk::Priv - - set Priv(x) $x - set Priv(y) $y - IconList_AutoScan $w -} - -proc ::tk::IconList_FocusIn {w} { - upvar ::tk::$w data - - if {![info exists data(list)]} { - return - } - - if {[llength $data(selection)]} { - IconList_DrawSelection $w - } -} - -proc ::tk::IconList_FocusOut {w} { - IconList_Selection $w clear 0 end -} - -# ::tk::IconList_UpDown -- -# -# Moves the active element up or down by one element -# -# Arguments: -# w - The IconList widget. -# amount - +1 to move down one item, -1 to move back one item. -# -proc ::tk::IconList_UpDown {w amount} { - upvar ::tk::$w data - - if {![info exists data(list)]} { - return - } - - set curr [tk::IconList_Curselection $w] - if { [llength $curr] == 0 } { - set i 0 - } else { - set i [tk::IconList_Index $w anchor] - if {$i eq ""} return - incr i $amount - } - IconList_Selection $w clear 0 end - IconList_Selection $w set $i - IconList_Selection $w anchor $i - IconList_See $w $i -} - -# ::tk::IconList_LeftRight -- -# -# Moves the active element left or right by one column -# -# Arguments: -# w - The IconList widget. -# amount - +1 to move right one column, -1 to move left one column. -# -proc ::tk::IconList_LeftRight {w amount} { - upvar ::tk::$w data - - if {![info exists data(list)]} { - return - } - - set curr [IconList_Curselection $w] - if { [llength $curr] == 0 } { - set i 0 - } else { - set i [IconList_Index $w anchor] - if {$i eq ""} return - incr i [expr {$amount*$data(itemsPerColumn)}] - } - IconList_Selection $w clear 0 end - IconList_Selection $w set $i - IconList_Selection $w anchor $i - IconList_See $w $i -} - -#---------------------------------------------------------------------- -# Accelerator key bindings -#---------------------------------------------------------------------- - -# ::tk::IconList_KeyPress -- -# -# Gets called when user enters an arbitrary key in the listbox. -# -proc ::tk::IconList_KeyPress {w key} { - variable ::tk::Priv - - append Priv(ILAccel,$w) $key - IconList_Goto $w $Priv(ILAccel,$w) - catch { - after cancel $Priv(ILAccel,$w,afterId) - } - set Priv(ILAccel,$w,afterId) [after 500 [list tk::IconList_Reset $w]] -} - -proc ::tk::IconList_Goto {w text} { - upvar ::tk::$w data - upvar ::tk::$w:textList textList - - if {![info exists data(list)]} { - return - } - - if {$text eq ""} { - return - } - - if {$data(curItem) eq "" || $data(curItem) == 0} { - set start 0 - } else { - set start $data(curItem) - } - - set text [string tolower $text] - set theIndex -1 - set less 0 - set len [string length $text] - set len0 [expr {$len-1}] - set i $start - - # Search forward until we find a filename whose prefix is an exact match - # with $text - while {1} { - set sub [string range $textList($i) 0 $len0] - if {$text eq $sub} { - set theIndex $i - break - } - incr i - if {$i == $data(numItems)} { - set i 0 - } - if {$i == $start} { - break - } - } - - if {$theIndex > -1} { - IconList_Selection $w clear 0 end - IconList_Selection $w set $theIndex - IconList_Selection $w anchor $theIndex - IconList_See $w $theIndex - } -} - -proc ::tk::IconList_Reset {w} { - variable ::tk::Priv - - unset -nocomplain Priv(ILAccel,$w) -} - -#---------------------------------------------------------------------- -# -# F I L E D I A L O G -# -#---------------------------------------------------------------------- - -namespace eval ::tk::dialog {} -namespace eval ::tk::dialog::file { - namespace import -force ::tk::msgcat::* - set ::tk::dialog::file::showHiddenBtn 0 - set ::tk::dialog::file::showHiddenVar 1 -} - -# ::tk::dialog::file:: -- -# -# Implements the TK file selection dialog. This dialog is used when -# the tk_strictMotif flag is set to false. This procedure shouldn't -# be called directly. Call tk_getOpenFile or tk_getSaveFile instead. -# -# Arguments: -# type "open" or "save" -# args Options parsed by the procedure. -# - -proc ::tk::dialog::file:: {type args} { - variable ::tk::Priv - set dataName __tk_filedialog - upvar ::tk::dialog::file::$dataName data - - ::tk::dialog::file::Config $dataName $type $args - - if {$data(-parent) eq "."} { - set w .$dataName - } else { - set w $data(-parent).$dataName - } - - # (re)create the dialog box if necessary - # - if {![winfo exists $w]} { - ::tk::dialog::file::Create $w TkFDialog - } elseif {[winfo class $w] ne "TkFDialog"} { - destroy $w - ::tk::dialog::file::Create $w TkFDialog - } else { - set data(dirMenuBtn) $w.f1.menu - set data(dirMenu) $w.f1.menu.menu - set data(upBtn) $w.f1.up - set data(icons) $w.icons - set data(ent) $w.f2.ent - set data(typeMenuLab) $w.f2.lab2 - set data(typeMenuBtn) $w.f2.menu - set data(typeMenu) $data(typeMenuBtn).m - set data(okBtn) $w.f2.ok - set data(cancelBtn) $w.f2.cancel - set data(hiddenBtn) $w.f2.hidden - ::tk::dialog::file::SetSelectMode $w $data(-multiple) - } - if {$::tk::dialog::file::showHiddenBtn} { - $data(hiddenBtn) configure -state normal - grid $data(hiddenBtn) - } else { - $data(hiddenBtn) configure -state disabled - grid remove $data(hiddenBtn) - } - - # Make sure subseqent uses of this dialog are independent [Bug 845189] - unset -nocomplain data(extUsed) - - # Dialog boxes should be transient with respect to their parent, - # so that they will always stay on top of their parent window. However, - # some window managers will create the window as withdrawn if the parent - # window is withdrawn or iconified. Combined with the grab we put on the - # window, this can hang the entire application. Therefore we only make - # the dialog transient if the parent is viewable. - - if {[winfo viewable [winfo toplevel $data(-parent)]]} { - wm transient $w $data(-parent) - } - - # Add traces on the selectPath variable - # - - trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] - $data(dirMenuBtn) configure \ - -textvariable ::tk::dialog::file::${dataName}(selectPath) - - # Initialize the file types menu - # - if {[llength $data(-filetypes)]} { - $data(typeMenu) delete 0 end - foreach type $data(-filetypes) { - set title [lindex $type 0] - set filter [lindex $type 1] - $data(typeMenu) add command -label $title \ - -command [list ::tk::dialog::file::SetFilter $w $type] - } - ::tk::dialog::file::SetFilter $w [lindex $data(-filetypes) 0] - $data(typeMenuBtn) configure -state normal - $data(typeMenuLab) configure -state normal - } else { - set data(filter) "*" - $data(typeMenuBtn) configure -state disabled -takefocus 0 - $data(typeMenuLab) configure -state disabled - } - ::tk::dialog::file::UpdateWhenIdle $w - - # Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display and de-iconify it. - - ::tk::PlaceWindow $w widget $data(-parent) - wm title $w $data(-title) - - # Set a grab and claim the focus too. - - ::tk::SetFocusGrab $w $data(ent) - $data(ent) delete 0 end - $data(ent) insert 0 $data(selectFile) - $data(ent) selection range 0 end - $data(ent) icursor end - - # Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(selectFilePath) - - ::tk::RestoreFocusGrab $w $data(ent) withdraw - - # Cleanup traces on selectPath variable - # - - foreach trace [trace info variable data(selectPath)] { - trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] - } - $data(dirMenuBtn) configure -textvariable {} - - return $Priv(selectFilePath) -} - -# ::tk::dialog::file::Config -- -# -# Configures the TK filedialog according to the argument list -# -proc ::tk::dialog::file::Config {dataName type argList} { - upvar ::tk::dialog::file::$dataName data - - set data(type) $type - - # 0: Delete all variable that were set on data(selectPath) the - # last time the file dialog is used. The traces may cause troubles - # if the dialog is now used with a different -parent option. - - foreach trace [trace info variable data(selectPath)] { - trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] - } - - # 1: the configuration specs - # - set specs { - {-defaultextension "" "" ""} - {-filetypes "" "" ""} - {-initialdir "" "" ""} - {-initialfile "" "" ""} - {-parent "" "" "."} - {-title "" "" ""} - } - - # The "-multiple" option is only available for the "open" file dialog. - # - if { $type eq "open" } { - lappend specs {-multiple "" "" "0"} - } - - # 2: default values depending on the type of the dialog - # - if {![info exists data(selectPath)]} { - # first time the dialog has been popped up - set data(selectPath) [pwd] - set data(selectFile) "" - } - - # 3: parse the arguments - # - tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList - - if {$data(-title) eq ""} { - if {$type eq "open"} { - set data(-title) "[mc "Open"]" - } else { - set data(-title) "[mc "Save As"]" - } - } - - # 4: set the default directory and selection according to the -initial - # settings - # - if {$data(-initialdir) ne ""} { - # Ensure that initialdir is an absolute path name. - if {[file isdirectory $data(-initialdir)]} { - set old [pwd] - cd $data(-initialdir) - set data(selectPath) [pwd] - cd $old - } else { - set data(selectPath) [pwd] - } - } - set data(selectFile) $data(-initialfile) - - # 5. Parse the -filetypes option - # - set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] - - if {![winfo exists $data(-parent)]} { - error "bad window path name \"$data(-parent)\"" - } - - # Set -multiple to a one or zero value (not other boolean types - # like "yes") so we can use it in tests more easily. - if {$type eq "save"} { - set data(-multiple) 0 - } elseif {$data(-multiple)} { - set data(-multiple) 1 - } else { - set data(-multiple) 0 - } -} - -proc ::tk::dialog::file::Create {w class} { - set dataName [lindex [split $w .] end] - upvar ::tk::dialog::file::$dataName data - variable ::tk::Priv - global tk_library - - toplevel $w -class $class - - # f1: the frame with the directory option menu - # - set f1 [frame $w.f1] - bind [::tk::AmpWidget label $f1.lab -text "[mc "&Directory:"]" ] \ - <> [list focus $f1.menu] - - set data(dirMenuBtn) $f1.menu - set data(dirMenu) [tk_optionMenu $f1.menu [format %s(selectPath) ::tk::dialog::file::$dataName] ""] - set data(upBtn) [button $f1.up] - if {![info exists Priv(updirImage)]} { - set Priv(updirImage) [image create bitmap -data { -#define updir_width 28 -#define updir_height 16 -static char updir_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, - 0x20, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x10, 0x00, 0x00, 0x01, - 0x10, 0x02, 0x00, 0x01, 0x10, 0x07, 0x00, 0x01, 0x90, 0x0f, 0x00, 0x01, - 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, - 0x10, 0xfe, 0x07, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, - 0xf0, 0xff, 0xff, 0x01};}] - } - $data(upBtn) configure -image $Priv(updirImage) - - $f1.menu configure -takefocus 1 -highlightthickness 2 - - pack $data(upBtn) -side right -padx 4 -fill both - pack $f1.lab -side left -padx 4 -fill both - pack $f1.menu -expand yes -fill both -padx 4 - - # data(icons): the IconList that list the files and directories. - # - if { $class eq "TkFDialog" } { - if { $data(-multiple) } { - set fNameCaption [mc "File &names:"] - } else { - set fNameCaption [mc "File &name:"] - } - set fTypeCaption [mc "Files of &type:"] - set iconListCommand [list ::tk::dialog::file::OkCmd $w] - } else { - set fNameCaption [mc "&Selection:"] - set iconListCommand [list ::tk::dialog::file::chooseDir::DblClick $w] - } - set data(icons) [::tk::IconList $w.icons \ - -command $iconListCommand \ - -multiple $data(-multiple)] - bind $data(icons) <> \ - [list ::tk::dialog::file::ListBrowse $w] - - # f2: the frame with the OK button, cancel button, "file name" field - # and file types field. - # - set f2 [frame $w.f2 -bd 0] - bind [::tk::AmpWidget label $f2.lab -text $fNameCaption -anchor e -pady 0]\ - <> [list focus $f2.ent] - set data(ent) [entry $f2.ent] - - # The font to use for the icons. The default Canvas font on Unix - # is just deviant. - set ::tk::$w.icons(font) [$data(ent) cget -font] - - # Make the file types bits only if this is a File Dialog - if { $class eq "TkFDialog" } { - set data(typeMenuLab) [::tk::AmpWidget label $f2.lab2 \ - -text $fTypeCaption -anchor e -pady [$f2.lab cget -pady]] - set data(typeMenuBtn) [menubutton $f2.menu -indicatoron 1 \ - -menu $f2.menu.m] - set data(typeMenu) [menu $data(typeMenuBtn).m -tearoff 0] - $data(typeMenuBtn) configure -takefocus 1 -highlightthickness 2 \ - -relief raised -bd 2 -anchor w - bind $data(typeMenuLab) <> [list \ - focus $data(typeMenuBtn)] - } - - # The hidden button is displayed when ::tk::dialog::file::showHiddenBtn - # is true. Create it disabled so the binding doesn't trigger if it - # isn't shown. - if {$class eq "TkFDialog"} { - set text [mc "Show &Hidden Files and Directories"] - } else { - set text [mc "Show &Hidden Directories"] - } - set data(hiddenBtn) [::tk::AmpWidget checkbutton $f2.hidden \ - -text $text -anchor w -padx 3 -state disabled \ - -variable ::tk::dialog::file::showHiddenVar \ - -command [list ::tk::dialog::file::UpdateWhenIdle $w]] - - # the okBtn is created after the typeMenu so that the keyboard traversal - # is in the right order, and add binding so that we find out when the - # dialog is destroyed by the user (added here instead of to the overall - # window so no confusion about how much gets called; exactly - # once will do). [Bug 987169] - - set data(okBtn) [::tk::AmpWidget button $f2.ok \ - -text [mc "&OK"] -default active -pady 3] - bind $data(okBtn) [list ::tk::dialog::file::Destroyed $w] - set data(cancelBtn) [::tk::AmpWidget button $f2.cancel \ - -text [mc "&Cancel"] -default normal -pady 3] - - # grid the widgets in f2 - # - grid $f2.lab $f2.ent $data(okBtn) -padx 4 -sticky ew - grid configure $f2.ent -padx 2 - if { $class eq "TkFDialog" } { - grid $data(typeMenuLab) $data(typeMenuBtn) $data(cancelBtn) \ - -padx 4 -sticky ew - grid configure $data(typeMenuBtn) -padx 0 - grid $data(hiddenBtn) -columnspan 2 -padx 4 -sticky ew - } else { - grid $data(hiddenBtn) - $data(cancelBtn) -padx 4 -sticky ew - } - grid columnconfigure $f2 1 -weight 1 - - # Pack all the frames together. We are done with widget construction. - # - pack $f1 -side top -fill x -pady 4 - pack $f2 -side bottom -fill x - pack $data(icons) -expand yes -fill both -padx 4 -pady 1 - - # Set up the event handlers that are common to Directory and File Dialogs - # - - wm protocol $w WM_DELETE_WINDOW [list ::tk::dialog::file::CancelCmd $w] - $data(upBtn) configure -command [list ::tk::dialog::file::UpDirCmd $w] - $data(cancelBtn) configure -command [list ::tk::dialog::file::CancelCmd $w] - bind $w [list tk::ButtonInvoke $data(cancelBtn)] - bind $w [list tk::AltKeyInDialog $w %A] - - # Set up event handlers specific to File or Directory Dialogs - # - if { $class eq "TkFDialog" } { - bind $data(ent) [list ::tk::dialog::file::ActivateEnt $w] - $data(okBtn) configure -command [list ::tk::dialog::file::OkCmd $w] - bind $w [format { - if {[%s cget -state] eq "normal"} { - focus %s - } - } $data(typeMenuBtn) $data(typeMenuBtn)] - } else { - set okCmd [list ::tk::dialog::file::chooseDir::OkCmd $w] - bind $data(ent) $okCmd - $data(okBtn) configure -command $okCmd - bind $w [list focus $data(ent)] - bind $w [list tk::ButtonInvoke $data(okBtn)] - } - bind $w [list $data(hiddenBtn) invoke] - - # Build the focus group for all the entries - # - ::tk::FocusGroup_Create $w - ::tk::FocusGroup_BindIn $w $data(ent) [list ::tk::dialog::file::EntFocusIn $w] - ::tk::FocusGroup_BindOut $w $data(ent) [list ::tk::dialog::file::EntFocusOut $w] -} - -# ::tk::dialog::file::SetSelectMode -- -# -# Set the select mode of the dialog to single select or multi-select. -# -# Arguments: -# w The dialog path. -# multi 1 if the dialog is multi-select; 0 otherwise. -# -# Results: -# None. - -proc ::tk::dialog::file::SetSelectMode {w multi} { - set dataName __tk_filedialog - upvar ::tk::dialog::file::$dataName data - if { $multi } { - set fNameCaption "[mc {File &names:}]" - } else { - set fNameCaption "[mc {File &name:}]" - } - set iconListCommand [list ::tk::dialog::file::OkCmd $w] - ::tk::SetAmpText $w.f2.lab $fNameCaption - ::tk::IconList_Config $data(icons) \ - [list -multiple $multi -command $iconListCommand] - return -} - -# ::tk::dialog::file::UpdateWhenIdle -- -# -# Creates an idle event handler which updates the dialog in idle -# time. This is important because loading the directory may take a long -# time and we don't want to load the same directory for multiple times -# due to multiple concurrent events. -# -proc ::tk::dialog::file::UpdateWhenIdle {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[info exists data(updateId)]} { - return - } else { - set data(updateId) [after idle [list ::tk::dialog::file::Update $w]] - } -} - -# ::tk::dialog::file::Update -- -# -# Loads the files and directories into the IconList widget. Also -# sets up the directory option menu for quick access to parent -# directories. -# -proc ::tk::dialog::file::Update {w} { - - # This proc may be called within an idle handler. Make sure that the - # window has not been destroyed before this proc is called - if {![winfo exists $w]} { - return - } - set class [winfo class $w] - if {($class ne "TkFDialog") && ($class ne "TkChooseDir")} { - return - } - - set dataName [winfo name $w] - upvar ::tk::dialog::file::$dataName data - variable ::tk::Priv - global tk_library - unset -nocomplain data(updateId) - - if {![info exists Priv(folderImage)]} { - set Priv(folderImage) [image create photo -data { -R0lGODlhEAAMAKEAAAD//wAAAPD/gAAAACH5BAEAAAAALAAAAAAQAAwAAAIghINhyycvVFsB -QtmS3rjaH1Hg141WaT5ouprt2HHcUgAAOw==}] - set Priv(fileImage) [image create photo -data { -R0lGODlhDAAMAKEAALLA3AAAAP//8wAAACH5BAEAAAAALAAAAAAMAAwAAAIgRI4Ha+IfWHsO -rSASvJTGhnhcV3EJlo3kh53ltF5nAhQAOw==}] - } - set folder $Priv(folderImage) - set file $Priv(fileImage) - - set appPWD [pwd] - if {[catch { - cd $data(selectPath) - }]} { - # We cannot change directory to $data(selectPath). $data(selectPath) - # should have been checked before ::tk::dialog::file::Update is called, so - # we normally won't come to here. Anyways, give an error and abort - # action. - tk_messageBox -type ok -parent $w -icon warning -message \ - [mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $data(selectPath)] - cd $appPWD - return - } - - # Turn on the busy cursor. BUG?? We haven't disabled X events, though, - # so the user may still click and cause havoc ... - # - set entCursor [$data(ent) cget -cursor] - set dlgCursor [$w cget -cursor] - $data(ent) configure -cursor watch - $w configure -cursor watch - update idletasks - - ::tk::IconList_DeleteAll $data(icons) - - set showHidden $::tk::dialog::file::showHiddenVar - - # Make the dir list - # Using -directory [pwd] is better in some VFS cases. - set cmd [list glob -tails -directory [pwd] -type d -nocomplain *] - if {$showHidden} { lappend cmd .* } - set dirs [lsort -dictionary -unique [eval $cmd]] - set dirList {} - foreach d $dirs { - if {$d eq "." || $d eq ".."} { - continue - } - lappend dirList $d - } - ::tk::IconList_Add $data(icons) $folder $dirList - - if {$class eq "TkFDialog"} { - # Make the file list if this is a File Dialog, selecting all - # but 'd'irectory type files. - # - set cmd [list glob -tails -directory [pwd] \ - -type {f b c l p s} -nocomplain] - if {$data(filter) eq "*"} { - lappend cmd * - if {$showHidden} { lappend cmd .* } - } else { - eval [list lappend cmd] $data(filter) - } - set fileList [lsort -dictionary -unique [eval $cmd]] - ::tk::IconList_Add $data(icons) $file $fileList - } - - ::tk::IconList_Arrange $data(icons) - - # Update the Directory: option menu - # - set list "" - set dir "" - foreach subdir [file split $data(selectPath)] { - set dir [file join $dir $subdir] - lappend list $dir - } - - $data(dirMenu) delete 0 end - set var [format %s(selectPath) ::tk::dialog::file::$dataName] - foreach path $list { - $data(dirMenu) add command -label $path -command [list set $var $path] - } - - # Restore the PWD to the application's PWD - # - cd $appPWD - - if { $class eq "TkFDialog" } { - # Restore the Open/Save Button if this is a File Dialog - # - if {$data(type) eq "open"} { - ::tk::SetAmpText $data(okBtn) [mc "&Open"] - } else { - ::tk::SetAmpText $data(okBtn) [mc "&Save"] - } - } - - # turn off the busy cursor. - # - $data(ent) configure -cursor $entCursor - $w configure -cursor $dlgCursor -} - -# ::tk::dialog::file::SetPathSilently -- -# -# Sets data(selectPath) without invoking the trace procedure -# -proc ::tk::dialog::file::SetPathSilently {w path} { - upvar ::tk::dialog::file::[winfo name $w] data - - trace remove variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] - set data(selectPath) $path - trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] -} - - -# This proc gets called whenever data(selectPath) is set -# -proc ::tk::dialog::file::SetPath {w name1 name2 op} { - if {[winfo exists $w]} { - upvar ::tk::dialog::file::[winfo name $w] data - ::tk::dialog::file::UpdateWhenIdle $w - # On directory dialogs, we keep the entry in sync with the currentdir. - if { [winfo class $w] eq "TkChooseDir" } { - $data(ent) delete 0 end - $data(ent) insert end $data(selectPath) - } - } -} - -# This proc gets called whenever data(filter) is set -# -proc ::tk::dialog::file::SetFilter {w type} { - upvar ::tk::dialog::file::[winfo name $w] data - upvar ::tk::$data(icons) icons - - set data(filter) [lindex $type 1] - $data(typeMenuBtn) configure -text [lindex $type 0] -indicatoron 1 - - # If we aren't using a default extension, use the one suppled - # by the filter. - if {![info exists data(extUsed)]} { - if {[string length $data(-defaultextension)]} { - set data(extUsed) 1 - } else { - set data(extUsed) 0 - } - } - - if {!$data(extUsed)} { - # Get the first extension in the list that matches {^\*\.\w+$} - # and remove all * from the filter. - set index [lsearch -regexp $data(filter) {^\*\.\w+$}] - if {$index >= 0} { - set data(-defaultextension) \ - [string trimleft [lindex $data(filter) $index] "*"] - } else { - # Couldn't find anything! Reset to a safe default... - set data(-defaultextension) "" - } - } - - $icons(sbar) set 0.0 0.0 - - ::tk::dialog::file::UpdateWhenIdle $w -} - -# tk::dialog::file::ResolveFile -- -# -# Interpret the user's text input in a file selection dialog. -# Performs: -# -# (1) ~ substitution -# (2) resolve all instances of . and .. -# (3) check for non-existent files/directories -# (4) check for chdir permissions -# -# Arguments: -# context: the current directory you are in -# text: the text entered by the user -# defaultext: the default extension to add to files with no extension -# -# Return vaue: -# [list $flag $directory $file] -# -# flag = OK : valid input -# = PATTERN : valid directory/pattern -# = PATH : the directory does not exist -# = FILE : the directory exists by the file doesn't -# exist -# = CHDIR : Cannot change to the directory -# = ERROR : Invalid entry -# -# directory : valid only if flag = OK or PATTERN or FILE -# file : valid only if flag = OK or PATTERN -# -# directory may not be the same as context, because text may contain -# a subdirectory name -# -proc ::tk::dialog::file::ResolveFile {context text defaultext} { - - set appPWD [pwd] - - set path [::tk::dialog::file::JoinFile $context $text] - - # If the file has no extension, append the default. Be careful not - # to do this for directories, otherwise typing a dirname in the box - # will give back "dirname.extension" instead of trying to change dir. - if {![file isdirectory $path] && [file ext $path] eq ""} { - set path "$path$defaultext" - } - - - if {[catch {file exists $path}]} { - # This "if" block can be safely removed if the following code - # stop generating errors. - # - # file exists ~nonsuchuser - # - return [list ERROR $path ""] - } - - if {[file exists $path]} { - if {[file isdirectory $path]} { - if {[catch {cd $path}]} { - return [list CHDIR $path ""] - } - set directory [pwd] - set file "" - set flag OK - cd $appPWD - } else { - if {[catch {cd [file dirname $path]}]} { - return [list CHDIR [file dirname $path] ""] - } - set directory [pwd] - set file [file tail $path] - set flag OK - cd $appPWD - } - } else { - set dirname [file dirname $path] - if {[file exists $dirname]} { - if {[catch {cd $dirname}]} { - return [list CHDIR $dirname ""] - } - set directory [pwd] - set file [file tail $path] - if {[regexp {[*]|[?]} $file]} { - set flag PATTERN - } else { - set flag FILE - } - cd $appPWD - } else { - set directory $dirname - set file [file tail $path] - set flag PATH - } - } - - return [list $flag $directory $file] -} - - -# Gets called when the entry box gets keyboard focus. We clear the selection -# from the icon list . This way the user can be certain that the input in the -# entry box is the selection. -# -proc ::tk::dialog::file::EntFocusIn {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[$data(ent) get] ne ""} { - $data(ent) selection range 0 end - $data(ent) icursor end - } else { - $data(ent) selection clear - } - - if { [winfo class $w] eq "TkFDialog" } { - # If this is a File Dialog, make sure the buttons are labeled right. - if {$data(type) eq "open"} { - ::tk::SetAmpText $data(okBtn) [mc "&Open"] - } else { - ::tk::SetAmpText $data(okBtn) [mc "&Save"] - } - } -} - -proc ::tk::dialog::file::EntFocusOut {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - $data(ent) selection clear -} - - -# Gets called when user presses Return in the "File name" entry. -# -proc ::tk::dialog::file::ActivateEnt {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set text [$data(ent) get] - if {$data(-multiple)} { - # For the multiple case we have to be careful to get the file - # names as a true list, watching out for a single file with a - # space in the name. Thus we query the IconList directly. - - set selIcos [::tk::IconList_Curselection $data(icons)] - set data(selectFile) "" - if {[llength $selIcos] == 0 && $text ne ""} { - # This assumes the user typed something in without selecting - # files - so assume they only type in a single filename. - ::tk::dialog::file::VerifyFileName $w $text - } else { - foreach item $selIcos { - ::tk::dialog::file::VerifyFileName $w \ - [::tk::IconList_Get $data(icons) $item] - } - } - } else { - ::tk::dialog::file::VerifyFileName $w $text - } -} - -# Verification procedure -# -proc ::tk::dialog::file::VerifyFileName {w filename} { - upvar ::tk::dialog::file::[winfo name $w] data - - set list [::tk::dialog::file::ResolveFile $data(selectPath) $filename \ - $data(-defaultextension)] - foreach {flag path file} $list { - break - } - - switch -- $flag { - OK { - if {$file eq ""} { - # user has entered an existing (sub)directory - set data(selectPath) $path - $data(ent) delete 0 end - } else { - ::tk::dialog::file::SetPathSilently $w $path - if {$data(-multiple)} { - lappend data(selectFile) $file - } else { - set data(selectFile) $file - } - ::tk::dialog::file::Done $w - } - } - PATTERN { - set data(selectPath) $path - set data(filter) $file - } - FILE { - if {$data(type) eq "open"} { - tk_messageBox -icon warning -type ok -parent $w \ - -message "[mc "File \"%1\$s\" does not exist." [file join $path $file]]" - $data(ent) selection range 0 end - $data(ent) icursor end - } else { - ::tk::dialog::file::SetPathSilently $w $path - if {$data(-multiple)} { - lappend data(selectFile) $file - } else { - set data(selectFile) $file - } - ::tk::dialog::file::Done $w - } - } - PATH { - tk_messageBox -icon warning -type ok -parent $w \ - -message "[mc "Directory \"%1\$s\" does not exist." $path]" - $data(ent) selection range 0 end - $data(ent) icursor end - } - CHDIR { - tk_messageBox -type ok -parent $w -message \ - "[mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $path]"\ - -icon warning - $data(ent) selection range 0 end - $data(ent) icursor end - } - ERROR { - tk_messageBox -type ok -parent $w -message \ - "[mc "Invalid file name \"%1\$s\"." $path]"\ - -icon warning - $data(ent) selection range 0 end - $data(ent) icursor end - } - } -} - -# Gets called when user presses the Alt-s or Alt-o keys. -# -proc ::tk::dialog::file::InvokeBtn {w key} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[$data(okBtn) cget -text] eq $key} { - ::tk::ButtonInvoke $data(okBtn) - } -} - -# Gets called when user presses the "parent directory" button -# -proc ::tk::dialog::file::UpDirCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {$data(selectPath) ne "/"} { - set data(selectPath) [file dirname $data(selectPath)] - } -} - -# Join a file name to a path name. The "file join" command will break -# if the filename begins with ~ -# -proc ::tk::dialog::file::JoinFile {path file} { - if {[string match {~*} $file] && [file exists $path/$file]} { - return [file join $path ./$file] - } else { - return [file join $path $file] - } -} - -# Gets called when user presses the "OK" button -# -proc ::tk::dialog::file::OkCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set filenames {} - foreach item [::tk::IconList_Curselection $data(icons)] { - lappend filenames [::tk::IconList_Get $data(icons) $item] - } - - if {([llength $filenames] && !$data(-multiple)) || \ - ($data(-multiple) && ([llength $filenames] == 1))} { - set filename [lindex $filenames 0] - set file [::tk::dialog::file::JoinFile $data(selectPath) $filename] - if {[file isdirectory $file]} { - ::tk::dialog::file::ListInvoke $w [list $filename] - return - } - } - - ::tk::dialog::file::ActivateEnt $w -} - -# Gets called when user presses the "Cancel" button -# -proc ::tk::dialog::file::CancelCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - variable ::tk::Priv - - bind $data(okBtn) {} - set Priv(selectFilePath) "" -} - -# Gets called when user destroys the dialog directly [Bug 987169] -# -proc ::tk::dialog::file::Destroyed {w} { - upvar ::tk::dialog::file::[winfo name $w] data - variable ::tk::Priv - - set Priv(selectFilePath) "" -} - -# Gets called when user browses the IconList widget (dragging mouse, arrow -# keys, etc) -# -proc ::tk::dialog::file::ListBrowse {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set text {} - foreach item [::tk::IconList_Curselection $data(icons)] { - lappend text [::tk::IconList_Get $data(icons) $item] - } - if {[llength $text] == 0} { - return - } - if { [llength $text] > 1 } { - set newtext {} - foreach file $text { - set fullfile [::tk::dialog::file::JoinFile $data(selectPath) $file] - if { ![file isdirectory $fullfile] } { - lappend newtext $file - } - } - set text $newtext - set isDir 0 - } else { - set text [lindex $text 0] - set file [::tk::dialog::file::JoinFile $data(selectPath) $text] - set isDir [file isdirectory $file] - } - if {!$isDir} { - $data(ent) delete 0 end - $data(ent) insert 0 $text - - if { [winfo class $w] eq "TkFDialog" } { - if {$data(type) eq "open"} { - ::tk::SetAmpText $data(okBtn) [mc "&Open"] - } else { - ::tk::SetAmpText $data(okBtn) [mc "&Save"] - } - } - } else { - if { [winfo class $w] eq "TkFDialog" } { - ::tk::SetAmpText $data(okBtn) [mc "&Open"] - } - } -} - -# Gets called when user invokes the IconList widget (double-click, -# Return key, etc) -# -proc ::tk::dialog::file::ListInvoke {w filenames} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[llength $filenames] == 0} { - return - } - - set file [::tk::dialog::file::JoinFile $data(selectPath) \ - [lindex $filenames 0]] - - set class [winfo class $w] - if {$class eq "TkChooseDir" || [file isdirectory $file]} { - set appPWD [pwd] - if {[catch {cd $file}]} { - tk_messageBox -type ok -parent $w -message \ - "[mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $file]"\ - -icon warning - } else { - cd $appPWD - set data(selectPath) $file - } - } else { - if {$data(-multiple)} { - set data(selectFile) $filenames - } else { - set data(selectFile) $file - } - ::tk::dialog::file::Done $w - } -} - -# ::tk::dialog::file::Done -- -# -# Gets called when user has input a valid filename. Pops up a -# dialog box to confirm selection when necessary. Sets the -# tk::Priv(selectFilePath) variable, which will break the "vwait" -# loop in ::tk::dialog::file:: and return the selected filename to the -# script that calls tk_getOpenFile or tk_getSaveFile -# -proc ::tk::dialog::file::Done {w {selectFilePath ""}} { - upvar ::tk::dialog::file::[winfo name $w] data - variable ::tk::Priv - - if {$selectFilePath eq ""} { - if {$data(-multiple)} { - set selectFilePath {} - foreach f $data(selectFile) { - lappend selectFilePath [::tk::dialog::file::JoinFile \ - $data(selectPath) $f] - } - } else { - set selectFilePath [::tk::dialog::file::JoinFile \ - $data(selectPath) $data(selectFile)] - } - - set Priv(selectFile) $data(selectFile) - set Priv(selectPath) $data(selectPath) - - if {$data(type) eq "save"} { - if {[file exists $selectFilePath]} { - set reply [tk_messageBox -icon warning -type yesno\ - -parent $w -message \ - "[mc "File \"%1\$s\" already exists.\nDo you want to overwrite it?" $selectFilePath]"] - if {$reply eq "no"} { - return - } - } - } - } - bind $data(okBtn) {} - set Priv(selectFilePath) $selectFilePath -} diff --git a/mingw/lib/tk8.4/unsupported.tcl b/mingw/lib/tk8.4/unsupported.tcl deleted file mode 100644 index 72171c34..00000000 --- a/mingw/lib/tk8.4/unsupported.tcl +++ /dev/null @@ -1,297 +0,0 @@ -# unsupported.tcl -- -# -# Commands provided by Tk without official support. Use them at your -# own risk. They may change or go away without notice. -# -# RCS: @(#) $Id: unsupported.tcl,v 1.4 2002/07/17 16:51:53 rmax Exp $ -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -# ---------------------------------------------------------------------- -# Unsupported compatibility interface for folks accessing Tk's private -# commands and variable against recommended usage. -# ---------------------------------------------------------------------- - -namespace eval ::tk::unsupported { - - # Map from the old global names of Tk private commands to their - # new namespace-encapsulated names. - - variable PrivateCommands - array set PrivateCommands { - tkButtonAutoInvoke ::tk::ButtonAutoInvoke - tkButtonDown ::tk::ButtonDown - tkButtonEnter ::tk::ButtonEnter - tkButtonInvoke ::tk::ButtonInvoke - tkButtonLeave ::tk::ButtonLeave - tkButtonUp ::tk::ButtonUp - tkCancelRepeat ::tk::CancelRepeat - tkCheckRadioDown ::tk::CheckRadioDown - tkCheckRadioEnter ::tk::CheckRadioEnter - tkCheckRadioInvoke ::tk::CheckRadioInvoke - tkColorDialog ::tk::dialog::color:: - tkColorDialog_BuildDialog ::tk::dialog::color::BuildDialog - tkColorDialog_CancelCmd ::tk::dialog::color::CancelCmd - tkColorDialog_Config ::tk::dialog::color::Config - tkColorDialog_CreateSelector ::tk::dialog::color::CreateSelector - tkColorDialog_DrawColorScale ::tk::dialog::color::DrawColorScale - tkColorDialog_EnterColorBar ::tk::dialog::color::EnterColorBar - tkColorDialog_InitValues ::tk::dialog::color::InitValues - tkColorDialog_HandleRGBEntry ::tk::dialog::color::HandleRGBEntry - tkColorDialog_HandleSelEntry ::tk::dialog::color::HandleSelEntry - tkColorDialog_LeaveColorBar ::tk::dialog::color::LeaveColorBar - tkColorDialog_MoveSelector ::tk::dialog::color::MoveSelector - tkColorDialog_OkCmd ::tk::dialog::color::OkCmd - tkColorDialog_RedrawColorBars ::tk::dialog::color::RedrawColorBars - tkColorDialog_RedrawFinalColor ::tk::dialog::color::RedrawFinalColor - tkColorDialog_ReleaseMouse ::tk::dialog::color::ReleaseMouse - tkColorDialog_ResizeColorBars ::tk::dialog::color::ResizeColorBars - tkColorDialog_RgbToX ::tk::dialog::color::RgbToX - tkColorDialog_SetRGBValue ::tk::dialog::color::SetRGBValue - tkColorDialog_StartMove ::tk::dialog::color::StartMove - tkColorDialog_XToRgb ::tk::dialog::color::XToRGB - tkConsoleAbout ::tk::ConsoleAbout - tkConsoleBind ::tk::ConsoleBind - tkConsoleExit ::tk::ConsoleExit - tkConsoleHistory ::tk::ConsoleHistory - tkConsoleInit ::tk::ConsoleInit - tkConsoleInsert ::tk::ConsoleInsert - tkConsoleInvoke ::tk::ConsoleInvoke - tkConsoleOutput ::tk::ConsoleOutput - tkConsolePrompt ::tk::ConsolePrompt - tkConsoleSource ::tk::ConsoleSource - tkDarken ::tk::Darken - tkEntryAutoScan ::tk::EntryAutoScan - tkEntryBackspace ::tk::EntryBackspace - tkEntryButton1 ::tk::EntryButton1 - tkEntryClosestGap ::tk::EntryClosestGap - tkEntryGetSelection ::tk::EntryGetSelection - tkEntryInsert ::tk::EntryInsert - tkEntryKeySelect ::tk::EntryKeySelect - tkEntryMouseSelect ::tk::EntryMouseSelect - tkEntryNextWord ::tk::EntryNextWord - tkEntryPaste ::tk::EntryPaste - tkEntryPreviousWord ::tk::EntryPreviousWord - tkEntrySeeInsert ::tk::EntrySeeInsert - tkEntrySetCursor ::tk::EntrySetCursor - tkEntryTranspose ::tk::EntryTranspose - tkEventMotifBindings ::tk::EventMotifBindings - tkFDGetFileTypes ::tk::FDGetFileTypes - tkFirstMenu ::tk::FirstMenu - tkFocusGroup_BindIn ::tk::FocusGroup_BindIn - tkFocusGroup_BindOut ::tk::FocusGroup_BindOut - tkFocusGroup_Create ::tk::FocusGroup_Create - tkFocusGroup_Destroy ::tk::FocusGroup_Destroy - tkFocusGroup_In ::tk::FocusGroup_In - tkFocusGroup_Out ::tk::FocusGroup_Out - tkFocusOK ::tk::FocusOK - tkGenerateMenuSelect ::tk::GenerateMenuSelect - tkIconList ::tk::IconList - tkIconList_Add ::tk::IconList_Add - tkIconList_Arrange ::tk::IconList_Arrange - tkIconList_AutoScan ::tk::IconList_AutoScan - tkIconList_Btn1 ::tk::IconList_Btn1 - tkIconList_Config ::tk::IconList_Config - tkIconList_Create ::tk::IconList_Create - tkIconList_CtrlBtn1 ::tk::IconList_CtrlBtn1 - tkIconList_Curselection ::tk::IconList_Curselection - tkIconList_DeleteAll ::tk::IconList_DeleteAll - tkIconList_Double1 ::tk::IconList_Double1 - tkIconList_DrawSelection ::tk::IconList_DrawSelection - tkIconList_FocusIn ::tk::IconList_FocusIn - tkIconList_FocusOut ::tk::IconList_FocusOut - tkIconList_Get ::tk::IconList_Get - tkIconList_Goto ::tk::IconList_Goto - tkIconList_Index ::tk::IconList_Index - tkIconList_Invoke ::tk::IconList_Invoke - tkIconList_KeyPress ::tk::IconList_KeyPress - tkIconList_Leave1 ::tk::IconList_Leave1 - tkIconList_LeftRight ::tk::IconList_LeftRight - tkIconList_Motion1 ::tk::IconList_Motion1 - tkIconList_Reset ::tk::IconList_Reset - tkIconList_ReturnKey ::tk::IconList_ReturnKey - tkIconList_See ::tk::IconList_See - tkIconList_Select ::tk::IconList_Select - tkIconList_Selection ::tk::IconList_Selection - tkIconList_ShiftBtn1 ::tk::IconList_ShiftBtn1 - tkIconList_UpDown ::tk::IconList_UpDown - tkListbox ::tk::Listbox - tkListboxAutoScan ::tk::ListboxAutoScan - tkListboxBeginExtend ::tk::ListboxBeginExtend - tkListboxBeginSelect ::tk::ListboxBeginSelect - tkListboxBeginToggle ::tk::ListboxBeginToggle - tkListboxCancel ::tk::ListboxCancel - tkListboxDataExtend ::tk::ListboxDataExtend - tkListboxExtendUpDown ::tk::ListboxExtendUpDown - tkListboxKeyAccel_Goto ::tk::ListboxKeyAccel_Goto - tkListboxKeyAccel_Key ::tk::ListboxKeyAccel_Key - tkListboxKeyAccel_Reset ::tk::ListboxKeyAccel_Reset - tkListboxKeyAccel_Set ::tk::ListboxKeyAccel_Set - tkListboxKeyAccel_Unset ::tk::ListboxKeyAccel_Unxet - tkListboxMotion ::tk::ListboxMotion - tkListboxSelectAll ::tk::ListboxSelectAll - tkListboxUpDown ::tk::ListboxUpDown - tkListboxBeginToggle ::tk::ListboxBeginToggle - tkMbButtonUp ::tk::MbButtonUp - tkMbEnter ::tk::MbEnter - tkMbLeave ::tk::MbLeave - tkMbMotion ::tk::MbMotion - tkMbPost ::tk::MbPost - tkMenuButtonDown ::tk::MenuButtonDown - tkMenuDownArrow ::tk::MenuDownArrow - tkMenuDup ::tk::MenuDup - tkMenuEscape ::tk::MenuEscape - tkMenuFind ::tk::MenuFind - tkMenuFindName ::tk::MenuFindName - tkMenuFirstEntry ::tk::MenuFirstEntry - tkMenuInvoke ::tk::MenuInvoke - tkMenuLeave ::tk::MenuLeave - tkMenuLeftArrow ::tk::MenuLeftArrow - tkMenuMotion ::tk::MenuMotion - tkMenuNextEntry ::tk::MenuNextEntry - tkMenuNextMenu ::tk::MenuNextMenu - tkMenuRightArrow ::tk::MenuRightArrow - tkMenuUnpost ::tk::MenuUnpost - tkMenuUpArrow ::tk::MenuUpArrow - tkMessageBox ::tk::MessageBox - tkMotifFDialog ::tk::MotifFDialog - tkMotifFDialog_ActivateDList ::tk::MotifFDialog_ActivateDList - tkMotifFDialog_ActivateFList ::tk::MotifFDialog_ActivateFList - tkMotifFDialog_ActivateFEnt ::tk::MotifFDialog_ActivateFEnt - tkMotifFDialog_ActivateSEnt ::tk::MotifFDialog_ActivateSEnt - tkMotifFDialog ::tk::MotifFDialog - tkMotifFDialog_BrowseDList ::tk::MotifFDialog_BrowseDList - tkMotifFDialog_BrowseFList ::tk::MotifFDialog_BrowseFList - tkMotifFDialog_BuildUI ::tk::MotifFDialog_BuildUI - tkMotifFDialog_CancelCmd ::tk::MotifFDialog_CancelCmd - tkMotifFDialog_Config ::tk::MotifFDialog_Config - tkMotifFDialog_Create ::tk::MotifFDialog_Create - tkMotifFDialog_FileTypes ::tk::MotifFDialog_FileTypes - tkMotifFDialog_FilterCmd ::tk::MotifFDialog_FilterCmd - tkMotifFDialog_InterpFilter ::tk::MotifFDialog_InterpFilter - tkMotifFDialog_LoadFiles ::tk::MotifFDialog_LoadFiles - tkMotifFDialog_MakeSList ::tk::MotifFDialog_MakeSList - tkMotifFDialog_OkCmd ::tk::MotifFDialog_OkCmd - tkMotifFDialog_SetFilter ::tk::MotifFDialog_SetFilter - tkMotifFDialog_SetListMode ::tk::MotifFDialog_SetListMode - tkMotifFDialog_Update ::tk::MotifFDialog_Update - tkPostOverPoint ::tk::PostOverPoint - tkRecolorTree ::tk::RecolorTree - tkRestoreOldGrab ::tk::RestoreOldGrab - tkSaveGrabInfo ::tk::SaveGrabInfo - tkScaleActivate ::tk::ScaleActivate - tkScaleButtonDown ::tk::ScaleButtonDown - tkScaleButton2Down ::tk::ScaleButton2Down - tkScaleControlPress ::tk::ScaleControlPress - tkScaleDrag ::tk::ScaleDrag - tkScaleEndDrag ::tk::ScaleEndDrag - tkScaleIncrement ::tk::ScaleIncrement - tkScreenChanged ::tk::ScreenChanged - tkScrollButtonDown ::tk::ScrollButtonDown - tkScrollButton2Down ::tk::ScrollButton2Down - tkScrollButtonDrag ::tk::ScrollButtonDrag - tkScrollButtonUp ::tk::ScrollButtonUp - tkScrollByPages ::tk::ScrollByPages - tkScrollByUnits ::tk::ScrollByUnits - tkScrollEndDrag ::tk::ScrollEndDrag - tkScrollSelect ::tk::ScrollSelect - tkScrollStartDrag ::tk::ScrollStartDrag - tkScrollTopBottom ::tk::ScrollTopBottom - tkScrollToPos ::tk::ScrollToPos - tkTabToWindow ::tk::TabToWindow - tkTearOffMenu ::tk::TearOffMenu - tkTextAutoScan ::tk::TextAutoScan - tkTextButton1 ::tk::TextButton1 - tkTextClosestGap ::tk::TextClosestGap - tkTextInsert ::tk::TextInsert - tkTextKeyExtend ::tk::TextKeyExtend - tkTextKeySelect ::tk::TextKeySelect - tkTextNextPara ::tk::TextNextPara - tkTextNextPos ::tk::TextNextPos - tkTextNextWord ::tk::TextNextWord - tkTextPaste ::tk::TextPaste - tkTextPrevPara ::tk::TextPrevPara - tkTextPrevPos ::tk::TextPrevPos - tkTextPrevWord ::tk::TextPrevWord - tkTextResetAnchor ::tk::TextResetAnchor - tkTextScrollPages ::tk::TextScrollPages - tkTextSelectTo ::tk::TextSelectTo - tkTextSetCursor ::tk::TextSetCursor - tkTextTranspose ::tk::TextTranspose - tkTextUpDownLine ::tk::TextUpDownLine - tkTraverseToMenu ::tk::TraverseToMenu - tkTraverseWithinMenu ::tk::TraverseWithinMenu - unsupported1 ::tk::unsupported::MacWindowStyle - } - - # Map from the old global names of Tk private variable to their - # new namespace-encapsulated names. - - variable PrivateVariables - array set PrivateVariables { - droped_to_start ::tk::mac::Droped_to_start - histNum ::tk::HistNum - stub_location ::tk::mac::Stub_location - tkFocusIn ::tk::FocusIn - tkFocusOut ::tk::FocusOut - tkPalette ::tk::Palette - tkPriv ::tk::Priv - tkPrivMsgBox ::tk::PrivMsgBox - } -} - -# ::tk::unsupported::ExposePrivateCommand -- -# -# Expose one of Tk's private commands to be visible under its -# old global name -# -# Arguments: -# cmd Global name by which the command was once known, -# or a glob-style pattern. -# -# Results: -# None. -# -# Side effects: -# The old command name in the global namespace is aliased to the -# new private name. - -proc ::tk::unsupported::ExposePrivateCommand {cmd} { - variable PrivateCommands - set cmds [array get PrivateCommands $cmd] - if {[llength $cmds] == 0} { - return -code error "No compatibility support for \[$cmd]" - } - foreach {old new} $cmds { - namespace eval :: [list interp alias {} $old {}] $new - } -} - -# ::tk::unsupported::ExposePrivateVariable -- -# -# Expose one of Tk's private variables to be visible under its -# old global name -# -# Arguments: -# var Global name by which the variable was once known, -# or a glob-style pattern. -# -# Results: -# None. -# -# Side effects: -# The old variable name in the global namespace is aliased to the -# new private name. - -proc ::tk::unsupported::ExposePrivateVariable {var} { - variable PrivateVariables - set vars [array get PrivateVariables $var] - if {[llength $vars] == 0} { - return -code error "No compatibility support for \$$var" - } - namespace eval ::tk::mac {} - foreach {old new} $vars { - namespace eval :: [list upvar "#0" $new $old] - } -} diff --git a/mingw/lib/tk8.4/xmfbox.tcl b/mingw/lib/tk8.4/xmfbox.tcl deleted file mode 100644 index 953b6e29..00000000 --- a/mingw/lib/tk8.4/xmfbox.tcl +++ /dev/null @@ -1,963 +0,0 @@ -# xmfbox.tcl -- -# -# Implements the "Motif" style file selection dialog for the -# Unix platform. This implementation is used only if the -# "::tk_strictMotif" flag is set. -# -# RCS: @(#) $Id: xmfbox.tcl,v 1.25.2.3 2006/03/17 10:50:11 patthoyts Exp $ -# -# Copyright (c) 1996 Sun Microsystems, Inc. -# Copyright (c) 1998-2000 Scriptics Corporation -# -# See the file "license.terms" for information on usage and redistribution -# of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -namespace eval ::tk::dialog {} -namespace eval ::tk::dialog::file {} - - -# ::tk::MotifFDialog -- -# -# Implements a file dialog similar to the standard Motif file -# selection box. -# -# Arguments: -# type "open" or "save" -# args Options parsed by the procedure. -# -# Results: -# When -multiple is set to 0, this returns the absolute pathname -# of the selected file. (NOTE: This is not the same as a single -# element list.) -# -# When -multiple is set to > 0, this returns a Tcl list of absolute -# pathnames. The argument for -multiple is ignored, but for consistency -# with Windows it defines the maximum amount of memory to allocate for -# the returned filenames. - -proc ::tk::MotifFDialog {type args} { - variable ::tk::Priv - set dataName __tk_filedialog - upvar ::tk::dialog::file::$dataName data - - set w [MotifFDialog_Create $dataName $type $args] - - # Set a grab and claim the focus too. - - ::tk::SetFocusGrab $w $data(sEnt) - $data(sEnt) selection range 0 end - - # Wait for the user to respond, then restore the focus and - # return the index of the selected button. Restore the focus - # before deleting the window, since otherwise the window manager - # may take the focus away so we can't redirect it. Finally, - # restore any grab that was in effect. - - vwait ::tk::Priv(selectFilePath) - set result $Priv(selectFilePath) - ::tk::RestoreFocusGrab $w $data(sEnt) withdraw - - return $result -} - -# ::tk::MotifFDialog_Create -- -# -# Creates the Motif file dialog (if it doesn't exist yet) and -# initialize the internal data structure associated with the -# dialog. -# -# This procedure is used by ::tk::MotifFDialog to create the -# dialog. It's also used by the test suite to test the Motif -# file dialog implementation. User code shouldn't call this -# procedure directly. -# -# Arguments: -# dataName Name of the global "data" array for the file dialog. -# type "Save" or "Open" -# argList Options parsed by the procedure. -# -# Results: -# Pathname of the file dialog. - -proc ::tk::MotifFDialog_Create {dataName type argList} { - upvar ::tk::dialog::file::$dataName data - - MotifFDialog_Config $dataName $type $argList - - if {$data(-parent) eq "."} { - set w .$dataName - } else { - set w $data(-parent).$dataName - } - - # (re)create the dialog box if necessary - # - if {![winfo exists $w]} { - MotifFDialog_BuildUI $w - } elseif {[winfo class $w] ne "TkMotifFDialog"} { - destroy $w - MotifFDialog_BuildUI $w - } else { - set data(fEnt) $w.top.f1.ent - set data(dList) $w.top.f2.a.l - set data(fList) $w.top.f2.b.l - set data(sEnt) $w.top.f3.ent - set data(okBtn) $w.bot.ok - set data(filterBtn) $w.bot.filter - set data(cancelBtn) $w.bot.cancel - } - MotifFDialog_SetListMode $w - - # Dialog boxes should be transient with respect to their parent, - # so that they will always stay on top of their parent window. However, - # some window managers will create the window as withdrawn if the parent - # window is withdrawn or iconified. Combined with the grab we put on the - # window, this can hang the entire application. Therefore we only make - # the dialog transient if the parent is viewable. - - if {[winfo viewable [winfo toplevel $data(-parent)]] } { - wm transient $w $data(-parent) - } - - MotifFDialog_FileTypes $w - MotifFDialog_Update $w - - # Withdraw the window, then update all the geometry information - # so we know how big it wants to be, then center the window in the - # display (Motif style) and de-iconify it. - - ::tk::PlaceWindow $w - wm title $w $data(-title) - - return $w -} - -# ::tk::MotifFDialog_FileTypes -- -# -# Checks the -filetypes option. If present this adds a list of radio- -# buttons to pick the file types from. -# -# Arguments: -# w Pathname of the tk_get*File dialogue. -# -# Results: -# none - -proc ::tk::MotifFDialog_FileTypes {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set f $w.top.f3.types - destroy $f - - # No file types: use "*" as the filter and display no radio-buttons - if {$data(-filetypes) eq ""} { - set data(filter) * - return - } - - # The filetypes radiobuttons - # set data(fileType) $data(-defaulttype) - set data(fileType) 0 - - MotifFDialog_SetFilter $w [lindex $data(-filetypes) $data(fileType)] - - #don't produce radiobuttons for only one filetype - if {[llength $data(-filetypes)] == 1} { - return - } - - frame $f - set cnt 0 - if {$data(-filetypes) ne ""} { - foreach type $data(-filetypes) { - set title [lindex [lindex $type 0] 0] - set filter [lindex $type 1] - radiobutton $f.b$cnt \ - -text $title \ - -variable ::tk::dialog::file::[winfo name $w](fileType) \ - -value $cnt \ - -command "[list tk::MotifFDialog_SetFilter $w $type]" - pack $f.b$cnt -side left - incr cnt - } - } - $f.b$data(fileType) invoke - - pack $f -side bottom -fill both - - return -} - -# This proc gets called whenever data(filter) is set -# -proc ::tk::MotifFDialog_SetFilter {w type} { - upvar ::tk::dialog::file::[winfo name $w] data - variable ::tk::Priv - - set data(filter) [lindex $type 1] - set Priv(selectFileType) [lindex [lindex $type 0] 0] - - MotifFDialog_Update $w -} - -# ::tk::MotifFDialog_Config -- -# -# Iterates over the optional arguments to determine the option -# values for the Motif file dialog; gives default values to -# unspecified options. -# -# Arguments: -# dataName The name of the global variable in which -# data for the file dialog is stored. -# type "Save" or "Open" -# argList Options parsed by the procedure. - -proc ::tk::MotifFDialog_Config {dataName type argList} { - upvar ::tk::dialog::file::$dataName data - - set data(type) $type - - # 1: the configuration specs - # - set specs { - {-defaultextension "" "" ""} - {-filetypes "" "" ""} - {-initialdir "" "" ""} - {-initialfile "" "" ""} - {-parent "" "" "."} - {-title "" "" ""} - } - if { $type eq "open" } { - lappend specs {-multiple "" "" "0"} - } - - set data(-multiple) 0 - # 2: default values depending on the type of the dialog - # - if {![info exists data(selectPath)]} { - # first time the dialog has been popped up - set data(selectPath) [pwd] - set data(selectFile) "" - } - - # 3: parse the arguments - # - tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList - - if {$data(-title) eq ""} { - if {$type eq "open"} { - if {$data(-multiple) != 0} { - set data(-title) "[mc {Open Multiple Files}]" - } else { - set data(-title) [mc "Open"] - } - } else { - set data(-title) [mc "Save As"] - } - } - - # 4: set the default directory and selection according to the -initial - # settings - # - if {$data(-initialdir) ne ""} { - if {[file isdirectory $data(-initialdir)]} { - set data(selectPath) [lindex [glob $data(-initialdir)] 0] - } else { - set data(selectPath) [pwd] - } - - # Convert the initialdir to an absolute path name. - - set old [pwd] - cd $data(selectPath) - set data(selectPath) [pwd] - cd $old - } - set data(selectFile) $data(-initialfile) - - # 5. Parse the -filetypes option. It is not used by the motif - # file dialog, but we check for validity of the value to make sure - # the application code also runs fine with the TK file dialog. - # - set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] - - if {![info exists data(filter)]} { - set data(filter) * - } - if {![winfo exists $data(-parent)]} { - error "bad window path name \"$data(-parent)\"" - } -} - -# ::tk::MotifFDialog_BuildUI -- -# -# Builds the UI components of the Motif file dialog. -# -# Arguments: -# w Pathname of the dialog to build. -# -# Results: -# None. - -proc ::tk::MotifFDialog_BuildUI {w} { - set dataName [lindex [split $w .] end] - upvar ::tk::dialog::file::$dataName data - - # Create the dialog toplevel and internal frames. - # - toplevel $w -class TkMotifFDialog - set top [frame $w.top -relief raised -bd 1] - set bot [frame $w.bot -relief raised -bd 1] - - pack $w.bot -side bottom -fill x - pack $w.top -side top -expand yes -fill both - - set f1 [frame $top.f1] - set f2 [frame $top.f2] - set f3 [frame $top.f3] - - pack $f1 -side top -fill x - pack $f3 -side bottom -fill x - pack $f2 -expand yes -fill both - - set f2a [frame $f2.a] - set f2b [frame $f2.b] - - grid $f2a -row 0 -column 0 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ - -sticky news - grid $f2b -row 0 -column 1 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ - -sticky news - grid rowconfigure $f2 0 -minsize 0 -weight 1 - grid columnconfigure $f2 0 -minsize 0 -weight 1 - grid columnconfigure $f2 1 -minsize 150 -weight 2 - - # The Filter box - # - bind [::tk::AmpWidget label $f1.lab -text [mc "Fil&ter:"] -anchor w] \ - <> [list focus $f1.ent] - entry $f1.ent - pack $f1.lab -side top -fill x -padx 6 -pady 4 - pack $f1.ent -side top -fill x -padx 4 -pady 0 - set data(fEnt) $f1.ent - - # The file and directory lists - # - set data(dList) [MotifFDialog_MakeSList $w $f2a \ - [mc "&Directory:"] DList] - set data(fList) [MotifFDialog_MakeSList $w $f2b \ - [mc "Fi&les:"] FList] - - # The Selection box - # - bind [::tk::AmpWidget label $f3.lab -text [mc "&Selection:"] -anchor w] \ - <> [list focus $f3.ent] - entry $f3.ent - pack $f3.lab -side top -fill x -padx 6 -pady 0 - pack $f3.ent -side top -fill x -padx 4 -pady 4 - set data(sEnt) $f3.ent - - # The buttons - # - set maxWidth [::tk::mcmaxamp &OK &Filter &Cancel] - set maxWidth [expr {$maxWidth<6?6:$maxWidth}] - set data(okBtn) [::tk::AmpWidget button $bot.ok -text [mc "&OK"] \ - -width $maxWidth \ - -command [list tk::MotifFDialog_OkCmd $w]] - set data(filterBtn) [::tk::AmpWidget button $bot.filter -text [mc "&Filter"] \ - -width $maxWidth \ - -command [list tk::MotifFDialog_FilterCmd $w]] - set data(cancelBtn) [::tk::AmpWidget button $bot.cancel -text [mc "&Cancel"] \ - -width $maxWidth \ - -command [list tk::MotifFDialog_CancelCmd $w]] - - pack $bot.ok $bot.filter $bot.cancel -padx 10 -pady 10 -expand yes \ - -side left - - # Create the bindings: - # - bind $w [list ::tk::AltKeyInDialog $w %A] - - bind $data(fEnt) [list tk::MotifFDialog_ActivateFEnt $w] - bind $data(sEnt) [list tk::MotifFDialog_ActivateSEnt $w] - bind $w [list tk::MotifFDialog_CancelCmd $w] - bind $w.bot {set ::tk::Priv(selectFilePath) {}} - - wm protocol $w WM_DELETE_WINDOW [list tk::MotifFDialog_CancelCmd $w] -} - -proc ::tk::MotifFDialog_SetListMode {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {$data(-multiple) != 0} { - set selectmode extended - } else { - set selectmode browse - } - set f $w.top.f2.b - $f.l configure -selectmode $selectmode -} - -# ::tk::MotifFDialog_MakeSList -- -# -# Create a scrolled-listbox and set the keyboard accelerator -# bindings so that the list selection follows what the user -# types. -# -# Arguments: -# w Pathname of the dialog box. -# f Frame widget inside which to create the scrolled -# listbox. This frame widget already exists. -# label The string to display on top of the listbox. -# under Sets the -under option of the label. -# cmdPrefix Specifies procedures to call when the listbox is -# browsed or activated. - -proc ::tk::MotifFDialog_MakeSList {w f label cmdPrefix} { - bind [::tk::AmpWidget label $f.lab -text $label -anchor w] \ - <> [list focus $f.l] - listbox $f.l -width 12 -height 5 -exportselection 0\ - -xscrollcommand [list $f.h set] -yscrollcommand [list $f.v set] - scrollbar $f.v -orient vertical -takefocus 0 -command [list $f.l yview] - scrollbar $f.h -orient horizontal -takefocus 0 -command [list $f.l xview] - grid $f.lab -row 0 -column 0 -sticky news -rowspan 1 -columnspan 2 \ - -padx 2 -pady 2 - grid $f.l -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news - grid $f.v -row 1 -column 1 -rowspan 1 -columnspan 1 -sticky news - grid $f.h -row 2 -column 0 -rowspan 1 -columnspan 1 -sticky news - - grid rowconfigure $f 0 -weight 0 -minsize 0 - grid rowconfigure $f 1 -weight 1 -minsize 0 - grid columnconfigure $f 0 -weight 1 -minsize 0 - - # bindings for the listboxes - # - set list $f.l - bind $list <> [list tk::MotifFDialog_Browse$cmdPrefix $w] - bind $list \ - [list tk::MotifFDialog_Activate$cmdPrefix $w] - bind $list "tk::MotifFDialog_Browse$cmdPrefix [list $w]; \ - tk::MotifFDialog_Activate$cmdPrefix [list $w]" - - bindtags $list [list Listbox $list [winfo toplevel $list] all] - ListBoxKeyAccel_Set $list - - return $f.l -} - -# ::tk::MotifFDialog_InterpFilter -- -# -# Interpret the string in the filter entry into two components: -# the directory and the pattern. If the string is a relative -# pathname, give a warning to the user and restore the pattern -# to original. -# -# Arguments: -# w pathname of the dialog box. -# -# Results: -# A list of two elements. The first element is the directory -# specified # by the filter. The second element is the filter -# pattern itself. - -proc ::tk::MotifFDialog_InterpFilter {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set text [string trim [$data(fEnt) get]] - - # Perform tilde substitution - # - set badTilde 0 - if {[string index $text 0] eq "~"} { - set list [file split $text] - set tilde [lindex $list 0] - if {[catch {set tilde [glob $tilde]}]} { - set badTilde 1 - } else { - set text [eval file join [concat $tilde [lrange $list 1 end]]] - } - } - - # If the string is a relative pathname, combine it - # with the current selectPath. - - set relative 0 - if {[file pathtype $text] eq "relative"} { - set relative 1 - } elseif {$badTilde} { - set relative 1 - } - - if {$relative} { - tk_messageBox -icon warning -type ok \ - -message "\"$text\" must be an absolute pathname" - - $data(fEnt) delete 0 end - $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ - $data(filter)] - - return [list $data(selectPath) $data(filter)] - } - - set resolved [::tk::dialog::file::JoinFile [file dirname $text] [file tail $text]] - - if {[file isdirectory $resolved]} { - set dir $resolved - set fil $data(filter) - } else { - set dir [file dirname $resolved] - set fil [file tail $resolved] - } - - return [list $dir $fil] -} - -# ::tk::MotifFDialog_Update -# -# Load the files and synchronize the "filter" and "selection" fields -# boxes. -# -# Arguments: -# w pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_Update {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - $data(fEnt) delete 0 end - $data(fEnt) insert 0 \ - [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] - $data(sEnt) delete 0 end - $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ - $data(selectFile)] - - MotifFDialog_LoadFiles $w -} - -# ::tk::MotifFDialog_LoadFiles -- -# -# Loads the files and directories into the two listboxes according -# to the filter setting. -# -# Arguments: -# w pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_LoadFiles {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - $data(dList) delete 0 end - $data(fList) delete 0 end - - set appPWD [pwd] - if {[catch {cd $data(selectPath)}]} { - cd $appPWD - - $data(dList) insert end ".." - return - } - - # Make the dir and file lists - # - # For speed we only have one glob, which reduces the file system - # calls (good for slow NFS networks). - # - # We also do two smaller sorts (files + dirs) instead of one large sort, - # which gives a small speed increase. - # - set top 0 - set dlist "" - set flist "" - foreach f [glob -nocomplain .* *] { - if {[file isdir ./$f]} { - lappend dlist $f - } else { - foreach pat $data(filter) { - if {[string match $pat $f]} { - if {[string match .* $f]} { - incr top - } - lappend flist $f - break - } - } - } - } - eval [list $data(dList) insert end] [lsort -dictionary $dlist] - eval [list $data(fList) insert end] [lsort -dictionary $flist] - - # The user probably doesn't want to see the . files. We adjust the view - # so that the listbox displays all the non-dot files - $data(fList) yview $top - - cd $appPWD -} - -# ::tk::MotifFDialog_BrowseDList -- -# -# This procedure is called when the directory list is browsed -# (clicked-over) by the user. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_BrowseDList {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - focus $data(dList) - if {[$data(dList) curselection] eq ""} { - return - } - set subdir [$data(dList) get [$data(dList) curselection]] - if {$subdir eq ""} { - return - } - - $data(fList) selection clear 0 end - - set list [MotifFDialog_InterpFilter $w] - set data(filter) [lindex $list 1] - - switch -- $subdir { - . { - set newSpec [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] - } - .. { - set newSpec [::tk::dialog::file::JoinFile [file dirname $data(selectPath)] \ - $data(filter)] - } - default { - set newSpec [::tk::dialog::file::JoinFile [::tk::dialog::file::JoinFile \ - $data(selectPath) $subdir] $data(filter)] - } - } - - $data(fEnt) delete 0 end - $data(fEnt) insert 0 $newSpec -} - -# ::tk::MotifFDialog_ActivateDList -- -# -# This procedure is called when the directory list is activated -# (double-clicked) by the user. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_ActivateDList {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[$data(dList) curselection] eq ""} { - return - } - set subdir [$data(dList) get [$data(dList) curselection]] - if {$subdir eq ""} { - return - } - - $data(fList) selection clear 0 end - - switch -- $subdir { - . { - set newDir $data(selectPath) - } - .. { - set newDir [file dirname $data(selectPath)] - } - default { - set newDir [::tk::dialog::file::JoinFile $data(selectPath) $subdir] - } - } - - set data(selectPath) $newDir - MotifFDialog_Update $w - - if {$subdir ne ".."} { - $data(dList) selection set 0 - $data(dList) activate 0 - } else { - $data(dList) selection set 1 - $data(dList) activate 1 - } -} - -# ::tk::MotifFDialog_BrowseFList -- -# -# This procedure is called when the file list is browsed -# (clicked-over) by the user. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_BrowseFList {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - focus $data(fList) - set data(selectFile) "" - foreach item [$data(fList) curselection] { - lappend data(selectFile) [$data(fList) get $item] - } - if {[llength $data(selectFile)] == 0} { - return - } - - $data(dList) selection clear 0 end - - $data(fEnt) delete 0 end - $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ - $data(filter)] - $data(fEnt) xview end - - # if it's a multiple selection box, just put in the filenames - # otherwise put in the full path as usual - $data(sEnt) delete 0 end - if {$data(-multiple) != 0} { - $data(sEnt) insert 0 $data(selectFile) - } else { - $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ - [lindex $data(selectFile) 0]] - } - $data(sEnt) xview end -} - -# ::tk::MotifFDialog_ActivateFList -- -# -# This procedure is called when the file list is activated -# (double-clicked) by the user. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_ActivateFList {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - if {[$data(fList) curselection] eq ""} { - return - } - set data(selectFile) [$data(fList) get [$data(fList) curselection]] - if {$data(selectFile) eq ""} { - return - } else { - MotifFDialog_ActivateSEnt $w - } -} - -# ::tk::MotifFDialog_ActivateFEnt -- -# -# This procedure is called when the user presses Return inside -# the "filter" entry. It updates the dialog according to the -# text inside the filter entry. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_ActivateFEnt {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - set list [MotifFDialog_InterpFilter $w] - set data(selectPath) [lindex $list 0] - set data(filter) [lindex $list 1] - - MotifFDialog_Update $w -} - -# ::tk::MotifFDialog_ActivateSEnt -- -# -# This procedure is called when the user presses Return inside -# the "selection" entry. It sets the ::tk::Priv(selectFilePath) -# variable so that the vwait loop in tk::MotifFDialog will be -# terminated. -# -# Arguments: -# w The pathname of the dialog box. -# -# Results: -# None. - -proc ::tk::MotifFDialog_ActivateSEnt {w} { - variable ::tk::Priv - upvar ::tk::dialog::file::[winfo name $w] data - - set selectFilePath [string trim [$data(sEnt) get]] - - if {$selectFilePath eq ""} { - MotifFDialog_FilterCmd $w - return - } - - if {$data(-multiple) == 0} { - set selectFilePath [list $selectFilePath] - } - - if {[file isdirectory [lindex $selectFilePath 0]]} { - set data(selectPath) [lindex [glob $selectFilePath] 0] - set data(selectFile) "" - MotifFDialog_Update $w - return - } - - set newFileList "" - foreach item $selectFilePath { - if {[file pathtype $item] ne "absolute"} { - set item [file join $data(selectPath) $item] - } elseif {![file exists [file dirname $item]]} { - tk_messageBox -icon warning -type ok \ - -message [mc {Directory "%1$s" does not exist.} \ - [file dirname $item]] - return - } - - if {![file exists $item]} { - if {$data(type) eq "open"} { - tk_messageBox -icon warning -type ok \ - -message [mc {File "%1$s" does not exist.} $item] - return - } - } else { - if {$data(type) eq "save"} { - set message [format %s%s \ - [mc "File \"%1\$s\" already exists.\n\n" \ - $selectFilePath] \ - [mc {Replace existing file?}]] - set answer [tk_messageBox -icon warning -type yesno \ - -message $message] - if {$answer eq "no"} { - return - } - } - } - - lappend newFileList $item - } - - if {$data(-multiple) != 0} { - set Priv(selectFilePath) $newFileList - } else { - set Priv(selectFilePath) [lindex $newFileList 0] - } - - # Set selectFile and selectPath to first item in list - set Priv(selectFile) [file tail [lindex $newFileList 0]] - set Priv(selectPath) [file dirname [lindex $newFileList 0]] -} - - -proc ::tk::MotifFDialog_OkCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - MotifFDialog_ActivateSEnt $w -} - -proc ::tk::MotifFDialog_FilterCmd {w} { - upvar ::tk::dialog::file::[winfo name $w] data - - MotifFDialog_ActivateFEnt $w -} - -proc ::tk::MotifFDialog_CancelCmd {w} { - variable ::tk::Priv - - set Priv(selectFilePath) "" - set Priv(selectFile) "" - set Priv(selectPath) "" -} - -proc ::tk::ListBoxKeyAccel_Set {w} { - bind Listbox "" - bind $w [list tk::ListBoxKeyAccel_Unset $w] - bind $w [list tk::ListBoxKeyAccel_Key $w %A] -} - -proc ::tk::ListBoxKeyAccel_Unset {w} { - variable ::tk::Priv - - catch {after cancel $Priv(lbAccel,$w,afterId)} - unset -nocomplain Priv(lbAccel,$w) Priv(lbAccel,$w,afterId) -} - -# ::tk::ListBoxKeyAccel_Key-- -# -# This procedure maintains a list of recently entered keystrokes -# over a listbox widget. It arranges an idle event to move the -# selection of the listbox to the entry that begins with the -# keystrokes. -# -# Arguments: -# w The pathname of the listbox. -# key The key which the user just pressed. -# -# Results: -# None. - -proc ::tk::ListBoxKeyAccel_Key {w key} { - variable ::tk::Priv - - if { $key eq "" } { - return - } - append Priv(lbAccel,$w) $key - ListBoxKeyAccel_Goto $w $Priv(lbAccel,$w) - catch { - after cancel $Priv(lbAccel,$w,afterId) - } - set Priv(lbAccel,$w,afterId) [after 500 \ - [list tk::ListBoxKeyAccel_Reset $w]] -} - -proc ::tk::ListBoxKeyAccel_Goto {w string} { - variable ::tk::Priv - - set string [string tolower $string] - set end [$w index end] - set theIndex -1 - - for {set i 0} {$i < $end} {incr i} { - set item [string tolower [$w get $i]] - if {[string compare $string $item] >= 0} { - set theIndex $i - } - if {[string compare $string $item] <= 0} { - set theIndex $i - break - } - } - - if {$theIndex >= 0} { - $w selection clear 0 end - $w selection set $theIndex $theIndex - $w activate $theIndex - $w see $theIndex - event generate $w <> - } -} - -proc ::tk::ListBoxKeyAccel_Reset {w} { - variable ::tk::Priv - - unset -nocomplain Priv(lbAccel,$w) -} - -proc ::tk_getFileType {} { - variable ::tk::Priv - - return $Priv(selectFileType) -} - diff --git a/mingw/lib/tk8.5/bgerror.tcl b/mingw/lib/tk8.5/bgerror.tcl new file mode 100644 index 00000000..0879a715 --- /dev/null +++ b/mingw/lib/tk8.5/bgerror.tcl @@ -0,0 +1,281 @@ +# bgerror.tcl -- +# +# Implementation of the bgerror procedure. It posts a dialog box with +# the error message and gives the user a chance to see a more detailed +# stack trace, and possible do something more interesting with that +# trace (like save it to a log). This is adapted from work done by +# Donal K. Fellows. +# +# Copyright (c) 1998-2000 by Ajuba Solutions. +# All rights reserved. +# +# RCS: @(#) $Id: bgerror.tcl,v 1.34 2007/05/30 06:34:18 das Exp $ +# $Id: bgerror.tcl,v 1.34 2007/05/30 06:34:18 das Exp $ + +namespace eval ::tk::dialog::error { + namespace import -force ::tk::msgcat::* + namespace export bgerror + option add *ErrorDialog.function.text [mc "Save To Log"] \ + widgetDefault + option add *ErrorDialog.function.command [namespace code SaveToLog] + if {[tk windowingsystem] eq "aqua"} { + option add *ErrorDialog*background systemAlertBackgroundActive \ + widgetDefault + option add *ErrorDialog*Button.highlightBackground \ + systemAlertBackgroundActive widgetDefault + } +} + +proc ::tk::dialog::error::Return {} { + variable button + + .bgerrorDialog.ok configure -state active -relief sunken + update idletasks + after 100 + set button 0 +} + +proc ::tk::dialog::error::Details {} { + set w .bgerrorDialog + set caption [option get $w.function text {}] + set command [option get $w.function command {}] + if { ($caption eq "") || ($command eq "") } { + grid forget $w.function + } + lappend command [.bgerrorDialog.top.info.text get 1.0 end-1c] + $w.function configure -text $caption -command $command + grid $w.top.info - -sticky nsew -padx 3m -pady 3m +} + +proc ::tk::dialog::error::SaveToLog {text} { + if { $::tcl_platform(platform) eq "windows" } { + set allFiles *.* + } else { + set allFiles * + } + set types [list \ + [list [mc "Log Files"] .log] \ + [list [mc "Text Files"] .txt] \ + [list [mc "All Files"] $allFiles] \ + ] + set filename [tk_getSaveFile -title [mc "Select Log File"] \ + -filetypes $types -defaultextension .log -parent .bgerrorDialog] + if {![string length $filename]} { + return + } + set f [open $filename w] + puts -nonewline $f $text + close $f +} + +proc ::tk::dialog::error::Destroy {w} { + if {$w eq ".bgerrorDialog"} { + variable button + set button -1 + } +} + +# ::tk::dialog::error::bgerror -- +# This is the default version of bgerror. +# It tries to execute tkerror, if that fails it posts a dialog box containing +# the error message and gives the user a chance to ask to see a stack +# trace. +# Arguments: +# err - The error message. + +proc ::tk::dialog::error::bgerror err { + global errorInfo tcl_platform + variable button + + set info $errorInfo + + set ret [catch {::tkerror $err} msg]; + if {$ret != 1} {return -code $ret $msg} + + # Ok the application's tkerror either failed or was not found + # we use the default dialog then : + set windowingsystem [tk windowingsystem] + if {$windowingsystem eq "aqua"} { + set ok [mc Ok] + set messageFont system + set textRelief flat + set textHilight 0 + } else { + set ok [mc OK] + set messageFont {Times -18} + set textRelief sunken + set textHilight 1 + } + + + # Truncate the message if it is too wide (>maxLine characters) or + # too tall (>4 lines). Truncation occurs at the first point at + # which one of those conditions is met. + set displayedErr "" + set lines 0 + set maxLine 45 + foreach line [split $err \n] { + if { [string length $line] > $maxLine } { + append displayedErr "[string range $line 0 [expr {$maxLine-3}]]..." + break + } + if { $lines > 4 } { + append displayedErr "..." + break + } else { + append displayedErr "${line}\n" + } + incr lines + } + + set w .bgerrorDialog + set title [mc "Application Error"] + set text [mc "Error: %1\$s" $displayedErr] + set buttons [list ok $ok dismiss [mc "Skip Messages"] \ + function [mc "Details >>"]] + + # 1. Create the top-level window and divide it into top + # and bottom parts. + + destroy .bgerrorDialog + toplevel .bgerrorDialog -class ErrorDialog + wm withdraw .bgerrorDialog + wm title .bgerrorDialog $title + wm iconname .bgerrorDialog ErrorDialog + wm protocol .bgerrorDialog WM_DELETE_WINDOW { } + + if {$windowingsystem eq "aqua"} { + ::tk::unsupported::MacWindowStyle style .bgerrorDialog moveableAlert {} + } + + frame .bgerrorDialog.bot + frame .bgerrorDialog.top + if {$windowingsystem eq "x11"} { + .bgerrorDialog.bot configure -relief raised -bd 1 + .bgerrorDialog.top configure -relief raised -bd 1 + } + pack .bgerrorDialog.bot -side bottom -fill both + pack .bgerrorDialog.top -side top -fill both -expand 1 + + set W [frame $w.top.info] + text $W.text \ + -yscrollcommand [list $W.scroll set]\ + -setgrid true \ + -width 40 \ + -height 10 \ + -state normal \ + -relief $textRelief \ + -highlightthickness $textHilight \ + -wrap char + if {$windowingsystem eq "aqua"} { + $W.text configure -width 80 -background white + } + + scrollbar $W.scroll -command [list $W.text yview] + pack $W.scroll -side right -fill y + pack $W.text -side left -expand yes -fill both + $W.text insert 0.0 "$err\n$info" + $W.text mark set insert 0.0 + bind $W.text { focus %W } + $W.text configure -state disabled + + # 2. Fill the top part with bitmap and message + + # Max-width of message is the width of the screen... + set wrapwidth [winfo screenwidth .bgerrorDialog] + # ...minus the width of the icon, padding and a fudge factor for + # the window manager decorations and aesthetics. + set wrapwidth [expr {$wrapwidth-60-[winfo pixels .bgerrorDialog 9m]}] + label .bgerrorDialog.msg -justify left -text $text -font $messageFont \ + -wraplength $wrapwidth + if {$windowingsystem eq "aqua"} { + # On the Macintosh, use the stop bitmap + label .bgerrorDialog.bitmap -bitmap stop + } else { + # On other platforms, make the error icon + canvas .bgerrorDialog.bitmap -width 32 -height 32 -highlightthickness 0 + .bgerrorDialog.bitmap create oval 0 0 31 31 -fill red -outline black + .bgerrorDialog.bitmap create line 9 9 23 23 -fill white -width 4 + .bgerrorDialog.bitmap create line 9 23 23 9 -fill white -width 4 + } + grid .bgerrorDialog.bitmap .bgerrorDialog.msg \ + -in .bgerrorDialog.top \ + -row 0 \ + -padx 3m \ + -pady 3m + grid configure .bgerrorDialog.msg -sticky nsw -padx {0 3m} + grid rowconfigure .bgerrorDialog.top 1 -weight 1 + grid columnconfigure .bgerrorDialog.top 1 -weight 1 + + # 3. Create a row of buttons at the bottom of the dialog. + + set i 0 + foreach {name caption} $buttons { + button .bgerrorDialog.$name \ + -text $caption \ + -default normal \ + -command [namespace code [list set button $i]] + grid .bgerrorDialog.$name \ + -in .bgerrorDialog.bot \ + -column $i \ + -row 0 \ + -sticky ew \ + -padx 10 + grid columnconfigure .bgerrorDialog.bot $i -weight 1 + # We boost the size of some Mac buttons for l&f + if {$windowingsystem eq "aqua"} { + if {($name eq "ok") || ($name eq "dismiss")} { + grid columnconfigure .bgerrorDialog.bot $i -minsize 90 + } + grid configure .bgerrorDialog.$name -pady 7 + } + incr i + } + # The "OK" button is the default for this dialog. + .bgerrorDialog.ok configure -default active + + bind .bgerrorDialog [namespace code Return] + bind .bgerrorDialog [namespace code [list Destroy %W]] + .bgerrorDialog.function configure -command [namespace code Details] + + # 6. Place the window (centered in the display) and deiconify it. + + ::tk::PlaceWindow .bgerrorDialog + + # 7. Ensure that we are topmost. + + raise .bgerrorDialog + if {$tcl_platform(platform) eq "windows"} { + # Place it topmost if we aren't at the top of the stacking + # order to ensure that it's seen + if {[lindex [wm stackorder .] end] ne ".bgerrorDialog"} { + wm attributes .bgerrorDialog -topmost 1 + } + } + + # 8. Set a grab and claim the focus too. + + ::tk::SetFocusGrab .bgerrorDialog .bgerrorDialog.ok + + # 9. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait [namespace which -variable button] + set copy $button; # Save a copy... + + ::tk::RestoreFocusGrab .bgerrorDialog .bgerrorDialog.ok destroy + + if {$copy == 1} { + return -code break + } +} + +namespace eval :: { + # Fool the indexer + proc bgerror err {} + rename bgerror {} + namespace import ::tk::dialog::error::bgerror +} diff --git a/mingw/lib/tk8.5/button.tcl b/mingw/lib/tk8.5/button.tcl new file mode 100644 index 00000000..28c233b5 --- /dev/null +++ b/mingw/lib/tk8.5/button.tcl @@ -0,0 +1,637 @@ +# button.tcl -- +# +# This file defines the default bindings for Tk label, button, +# checkbutton, and radiobutton widgets and provides procedures +# that help in implementing those bindings. +# +# RCS: @(#) $Id: button.tcl,v 1.19 2005/07/25 09:06:01 dkf Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# Copyright (c) 2002 ActiveState Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for buttons. +#------------------------------------------------------------------------- + +if {[tk windowingsystem] eq "aqua"} { + bind Radiobutton { + tk::ButtonEnter %W + } + bind Radiobutton <1> { + tk::ButtonDown %W + } + bind Radiobutton { + tk::ButtonUp %W + } + bind Checkbutton { + tk::ButtonEnter %W + } + bind Checkbutton <1> { + tk::ButtonDown %W + } + bind Checkbutton { + tk::ButtonUp %W + } +} +if {"windows" eq $tcl_platform(platform)} { + bind Checkbutton { + tk::CheckRadioInvoke %W select + } + bind Checkbutton { + tk::CheckRadioInvoke %W select + } + bind Checkbutton { + tk::CheckRadioInvoke %W deselect + } + bind Checkbutton <1> { + tk::CheckRadioDown %W + } + bind Checkbutton { + tk::ButtonUp %W + } + bind Checkbutton { + tk::CheckRadioEnter %W + } + + bind Radiobutton <1> { + tk::CheckRadioDown %W + } + bind Radiobutton { + tk::ButtonUp %W + } + bind Radiobutton { + tk::CheckRadioEnter %W + } +} +if {"x11" eq [tk windowingsystem]} { + bind Checkbutton { + if {!$tk_strictMotif} { + tk::CheckRadioInvoke %W + } + } + bind Radiobutton { + if {!$tk_strictMotif} { + tk::CheckRadioInvoke %W + } + } + bind Checkbutton <1> { + tk::CheckRadioInvoke %W + } + bind Radiobutton <1> { + tk::CheckRadioInvoke %W + } + bind Checkbutton { + tk::ButtonEnter %W + } + bind Radiobutton { + tk::ButtonEnter %W + } +} + +bind Button { + tk::ButtonInvoke %W +} +bind Checkbutton { + tk::CheckRadioInvoke %W +} +bind Radiobutton { + tk::CheckRadioInvoke %W +} + +bind Button {} +bind Button { + tk::ButtonEnter %W +} +bind Button { + tk::ButtonLeave %W +} +bind Button <1> { + tk::ButtonDown %W +} +bind Button { + tk::ButtonUp %W +} + +bind Checkbutton {} +bind Checkbutton { + tk::ButtonLeave %W +} + +bind Radiobutton {} +bind Radiobutton { + tk::ButtonLeave %W +} + +if {"windows" eq $tcl_platform(platform)} { + +######################### +# Windows implementation +######################### + +# ::tk::ButtonEnter -- +# The procedure below is invoked when the mouse pointer enters a +# button widget. It records the button we're in and changes the +# state of the button to active unless the button is disabled. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonEnter w { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + + # If the mouse button is down, set the relief to sunken on entry. + # Overwise, if there's an -overrelief value, set the relief to that. + + set Priv($w,relief) [$w cget -relief] + if {$Priv(buttonWindow) eq $w} { + $w configure -relief sunken -state active + set Priv($w,prelief) sunken + } elseif {[set over [$w cget -overrelief]] ne ""} { + $w configure -relief $over + set Priv($w,prelief) $over + } + } + set Priv(window) $w +} + +# ::tk::ButtonLeave -- +# The procedure below is invoked when the mouse pointer leaves a +# button widget. It changes the state of the button back to inactive. +# Restore any modified relief too. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonLeave w { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + $w configure -state normal + } + + # Restore the original button relief if it was changed by Tk. + # That is signaled by the existence of Priv($w,prelief). + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + set Priv(window) "" +} + +# ::tk::ButtonDown -- +# The procedure below is invoked when the mouse button is pressed in +# a button widget. It records the fact that the mouse is in the button, +# saves the button's relief so it can be restored later, and changes +# the relief to sunken. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonDown w { + variable ::tk::Priv + + # Only save the button's relief if it does not yet exist. If there + # is an overrelief setting, Priv($w,relief) will already have been set, + # and the current value of the -relief option will be incorrect. + + if {![info exists Priv($w,relief)]} { + set Priv($w,relief) [$w cget -relief] + } + + if {[$w cget -state] ne "disabled"} { + set Priv(buttonWindow) $w + $w configure -relief sunken -state active + set Priv($w,prelief) sunken + + # If this button has a repeatdelay set up, get it going with an after + after cancel $Priv(afterId) + set delay [$w cget -repeatdelay] + set Priv(repeated) 0 + if {$delay > 0} { + set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] + } + } +} + +# ::tk::ButtonUp -- +# The procedure below is invoked when the mouse button is released +# in a button widget. It restores the button's relief and invokes +# the command as long as the mouse hasn't left the button. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonUp w { + variable ::tk::Priv + if {$Priv(buttonWindow) eq $w} { + set Priv(buttonWindow) "" + + # Restore the button's relief if it was cached. + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + # Clean up the after event from the auto-repeater + after cancel $Priv(afterId) + + if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { + $w configure -state normal + + # Only invoke the command if it wasn't already invoked by the + # auto-repeater functionality + if { $Priv(repeated) == 0 } { + uplevel #0 [list $w invoke] + } + } + } +} + +# ::tk::CheckRadioEnter -- +# The procedure below is invoked when the mouse pointer enters a +# checkbutton or radiobutton widget. It records the button we're in +# and changes the state of the button to active unless the button is +# disabled. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::CheckRadioEnter w { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + if {$Priv(buttonWindow) eq $w} { + $w configure -state active + } + if {[set over [$w cget -overrelief]] ne ""} { + set Priv($w,relief) [$w cget -relief] + set Priv($w,prelief) $over + $w configure -relief $over + } + } + set Priv(window) $w +} + +# ::tk::CheckRadioDown -- +# The procedure below is invoked when the mouse button is pressed in +# a button widget. It records the fact that the mouse is in the button, +# saves the button's relief so it can be restored later, and changes +# the relief to sunken. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::CheckRadioDown w { + variable ::tk::Priv + if {![info exists Priv($w,relief)]} { + set Priv($w,relief) [$w cget -relief] + } + if {[$w cget -state] ne "disabled"} { + set Priv(buttonWindow) $w + set Priv(repeated) 0 + $w configure -state active + } +} + +} + +if {"x11" eq [tk windowingsystem]} { + +##################### +# Unix implementation +##################### + +# ::tk::ButtonEnter -- +# The procedure below is invoked when the mouse pointer enters a +# button widget. It records the button we're in and changes the +# state of the button to active unless the button is disabled. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonEnter {w} { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + # On unix the state is active just with mouse-over + $w configure -state active + + # If the mouse button is down, set the relief to sunken on entry. + # Overwise, if there's an -overrelief value, set the relief to that. + + set Priv($w,relief) [$w cget -relief] + if {$Priv(buttonWindow) eq $w} { + $w configure -relief sunken + set Priv($w,prelief) sunken + } elseif {[set over [$w cget -overrelief]] ne ""} { + $w configure -relief $over + set Priv($w,prelief) $over + } + } + set Priv(window) $w +} + +# ::tk::ButtonLeave -- +# The procedure below is invoked when the mouse pointer leaves a +# button widget. It changes the state of the button back to inactive. +# Restore any modified relief too. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonLeave w { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + $w configure -state normal + } + + # Restore the original button relief if it was changed by Tk. + # That is signaled by the existence of Priv($w,prelief). + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + set Priv(window) "" +} + +# ::tk::ButtonDown -- +# The procedure below is invoked when the mouse button is pressed in +# a button widget. It records the fact that the mouse is in the button, +# saves the button's relief so it can be restored later, and changes +# the relief to sunken. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonDown w { + variable ::tk::Priv + + # Only save the button's relief if it does not yet exist. If there + # is an overrelief setting, Priv($w,relief) will already have been set, + # and the current value of the -relief option will be incorrect. + + if {![info exists Priv($w,relief)]} { + set Priv($w,relief) [$w cget -relief] + } + + if {[$w cget -state] ne "disabled"} { + set Priv(buttonWindow) $w + $w configure -relief sunken + set Priv($w,prelief) sunken + + # If this button has a repeatdelay set up, get it going with an after + after cancel $Priv(afterId) + set delay [$w cget -repeatdelay] + set Priv(repeated) 0 + if {$delay > 0} { + set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] + } + } +} + +# ::tk::ButtonUp -- +# The procedure below is invoked when the mouse button is released +# in a button widget. It restores the button's relief and invokes +# the command as long as the mouse hasn't left the button. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonUp w { + variable ::tk::Priv + if {$w eq $Priv(buttonWindow)} { + set Priv(buttonWindow) "" + + # Restore the button's relief if it was cached. + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + # Clean up the after event from the auto-repeater + after cancel $Priv(afterId) + + if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { + # Only invoke the command if it wasn't already invoked by the + # auto-repeater functionality + if { $Priv(repeated) == 0 } { + uplevel #0 [list $w invoke] + } + } + } +} + +} + +if {[tk windowingsystem] eq "aqua"} { + +#################### +# Mac implementation +#################### + +# ::tk::ButtonEnter -- +# The procedure below is invoked when the mouse pointer enters a +# button widget. It records the button we're in and changes the +# state of the button to active unless the button is disabled. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonEnter {w} { + variable ::tk::Priv + if {[$w cget -state] ne "disabled"} { + + # If there's an -overrelief value, set the relief to that. + + if {$Priv(buttonWindow) eq $w} { + $w configure -state active + } elseif {[set over [$w cget -overrelief]] ne ""} { + set Priv($w,relief) [$w cget -relief] + set Priv($w,prelief) $over + $w configure -relief $over + } + } + set Priv(window) $w +} + +# ::tk::ButtonLeave -- +# The procedure below is invoked when the mouse pointer leaves a +# button widget. It changes the state of the button back to +# inactive. If we're leaving the button window with a mouse button +# pressed (Priv(buttonWindow) == $w), restore the relief of the +# button too. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonLeave w { + variable ::tk::Priv + if {$w eq $Priv(buttonWindow)} { + $w configure -state normal + } + + # Restore the original button relief if it was changed by Tk. + # That is signaled by the existence of Priv($w,prelief). + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + set Priv(window) "" +} + +# ::tk::ButtonDown -- +# The procedure below is invoked when the mouse button is pressed in +# a button widget. It records the fact that the mouse is in the button, +# saves the button's relief so it can be restored later, and changes +# the relief to sunken. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonDown w { + variable ::tk::Priv + + if {[$w cget -state] ne "disabled"} { + set Priv(buttonWindow) $w + $w configure -state active + + # If this button has a repeatdelay set up, get it going with an after + after cancel $Priv(afterId) + set Priv(repeated) 0 + if { ![catch {$w cget -repeatdelay} delay] } { + if {$delay > 0} { + set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] + } + } + } +} + +# ::tk::ButtonUp -- +# The procedure below is invoked when the mouse button is released +# in a button widget. It restores the button's relief and invokes +# the command as long as the mouse hasn't left the button. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonUp w { + variable ::tk::Priv + if {$Priv(buttonWindow) eq $w} { + set Priv(buttonWindow) "" + $w configure -state normal + + # Restore the button's relief if it was cached. + + if {[info exists Priv($w,relief)]} { + if {[info exists Priv($w,prelief)] && \ + $Priv($w,prelief) eq [$w cget -relief]} { + $w configure -relief $Priv($w,relief) + } + unset -nocomplain Priv($w,relief) Priv($w,prelief) + } + + # Clean up the after event from the auto-repeater + after cancel $Priv(afterId) + + if {$Priv(window) eq $w && [$w cget -state] ne "disabled"} { + # Only invoke the command if it wasn't already invoked by the + # auto-repeater functionality + if { $Priv(repeated) == 0 } { + uplevel #0 [list $w invoke] + } + } + } +} + +} + +################## +# Shared routines +################## + +# ::tk::ButtonInvoke -- +# The procedure below is called when a button is invoked through +# the keyboard. It simulate a press of the button via the mouse. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::ButtonInvoke w { + if {[$w cget -state] ne "disabled"} { + set oldRelief [$w cget -relief] + set oldState [$w cget -state] + $w configure -state active -relief sunken + update idletasks + after 100 + $w configure -state $oldState -relief $oldRelief + uplevel #0 [list $w invoke] + } +} + +# ::tk::ButtonAutoInvoke -- +# +# Invoke an auto-repeating button, and set it up to continue to repeat. +# +# Arguments: +# w button to invoke. +# +# Results: +# None. +# +# Side effects: +# May create an after event to call ::tk::ButtonAutoInvoke. + +proc ::tk::ButtonAutoInvoke {w} { + variable ::tk::Priv + after cancel $Priv(afterId) + set delay [$w cget -repeatinterval] + if {$Priv(window) eq $w} { + incr Priv(repeated) + uplevel #0 [list $w invoke] + } + if {$delay > 0} { + set Priv(afterId) [after $delay [list tk::ButtonAutoInvoke $w]] + } +} + +# ::tk::CheckRadioInvoke -- +# The procedure below is invoked when the mouse button is pressed in +# a checkbutton or radiobutton widget, or when the widget is invoked +# through the keyboard. It invokes the widget if it +# isn't disabled. +# +# Arguments: +# w - The name of the widget. +# cmd - The subcommand to invoke (one of invoke, select, or deselect). + +proc ::tk::CheckRadioInvoke {w {cmd invoke}} { + if {[$w cget -state] ne "disabled"} { + uplevel #0 [list $w $cmd] + } +} diff --git a/mingw/lib/tk8.5/choosedir.tcl b/mingw/lib/tk8.5/choosedir.tcl new file mode 100644 index 00000000..35cb4e8e --- /dev/null +++ b/mingw/lib/tk8.5/choosedir.tcl @@ -0,0 +1,291 @@ +# choosedir.tcl -- +# +# Choose directory dialog implementation for Unix/Mac. +# +# Copyright (c) 1998-2000 by Scriptics Corporation. +# All rights reserved. +# +# RCS: @(#) $Id: choosedir.tcl,v 1.20 2007/05/16 18:10:35 dgp Exp $ + +# Make sure the tk::dialog namespace, in which all dialogs should live, exists +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::file {} + +# Make the chooseDir namespace inside the dialog namespace +namespace eval ::tk::dialog::file::chooseDir { + namespace import -force ::tk::msgcat::* +} + +# ::tk::dialog::file::chooseDir:: -- +# +# Implements the TK directory selection dialog. +# +# Arguments: +# args Options parsed by the procedure. +# +proc ::tk::dialog::file::chooseDir:: {args} { + variable ::tk::Priv + set dataName __tk_choosedir + upvar ::tk::dialog::file::$dataName data + Config $dataName $args + + if {$data(-parent) eq "."} { + set w .$dataName + } else { + set w $data(-parent).$dataName + } + + # (re)create the dialog box if necessary + # + if {![winfo exists $w]} { + ::tk::dialog::file::Create $w TkChooseDir + } elseif {[winfo class $w] ne "TkChooseDir"} { + destroy $w + ::tk::dialog::file::Create $w TkChooseDir + } else { + set data(dirMenuBtn) $w.f1.menu + set data(dirMenu) $w.f1.menu.menu + set data(upBtn) $w.f1.up + set data(icons) $w.icons + set data(ent) $w.f2.ent + set data(okBtn) $w.f2.ok + set data(cancelBtn) $w.f2.cancel + set data(hiddenBtn) $w.f2.hidden + } + if {$::tk::dialog::file::showHiddenBtn} { + $data(hiddenBtn) configure -state normal + grid $data(hiddenBtn) + } else { + $data(hiddenBtn) configure -state disabled + grid remove $data(hiddenBtn) + } + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + trace add variable data(selectPath) write \ + [list ::tk::dialog::file::SetPath $w] + $data(dirMenuBtn) configure \ + -textvariable ::tk::dialog::file::${dataName}(selectPath) + + set data(filter) "*" + set data(previousEntryText) "" + ::tk::dialog::file::UpdateWhenIdle $w + + # Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + wm title $w $data(-title) + + # Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(ent) + $data(ent) delete 0 end + $data(ent) insert 0 $data(selectPath) + $data(ent) selection range 0 end + $data(ent) icursor end + + # Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectFilePath) + + ::tk::RestoreFocusGrab $w $data(ent) withdraw + + # Cleanup traces on selectPath variable + # + + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + $data(dirMenuBtn) configure -textvariable {} + + # Return value to user + # + + return $Priv(selectFilePath) +} + +# ::tk::dialog::file::chooseDir::Config -- +# +# Configures the Tk choosedir dialog according to the argument list +# +proc ::tk::dialog::file::chooseDir::Config {dataName argList} { + upvar ::tk::dialog::file::$dataName data + + # 0: Delete all variable that were set on data(selectPath) the + # last time the file dialog is used. The traces may cause troubles + # if the dialog is now used with a different -parent option. + # + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + + # 1: the configuration specs + # + set specs { + {-mustexist "" "" 0} + {-initialdir "" "" ""} + {-parent "" "" "."} + {-title "" "" ""} + } + + # 2: default values depending on the type of the dialog + # + if {![info exists data(selectPath)]} { + # first time the dialog has been popped up + set data(selectPath) [pwd] + } + + # 3: parse the arguments + # + tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + set data(-title) "[mc "Choose Directory"]" + } + + # Stub out the -multiple value for the dialog; it doesn't make sense for + # choose directory dialogs, but we have to have something there because we + # share so much code with the file dialogs. + set data(-multiple) 0 + + # 4: set the default directory and selection according to the -initial + # settings + # + if {$data(-initialdir) ne ""} { + # Ensure that initialdir is an absolute path name. + if {[file isdirectory $data(-initialdir)]} { + set old [pwd] + cd $data(-initialdir) + set data(selectPath) [pwd] + cd $old + } else { + set data(selectPath) [pwd] + } + } + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } +} + +# Gets called when user presses Return in the "Selection" entry or presses OK. +# +proc ::tk::dialog::file::chooseDir::OkCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + # This is the brains behind selecting non-existant directories. Here's + # the flowchart: + # 1. If the icon list has a selection, join it with the current dir, + # and return that value. + # 1a. If the icon list does not have a selection ... + # 2. If the entry is empty, do nothing. + # 3. If the entry contains an invalid directory, then... + # 3a. If the value is the same as last time through here, end dialog. + # 3b. If the value is different than last time, save it and return. + # 4. If entry contains a valid directory, then... + # 4a. If the value is the same as the current directory, end dialog. + # 4b. If the value is different from the current directory, change to + # that directory. + + set selection [tk::IconList_CurSelection $data(icons)] + if {[llength $selection] != 0} { + set iconText [tk::IconList_Get $data(icons) [lindex $selection 0]] + set iconText [file join $data(selectPath) $iconText] + Done $w $iconText + } else { + set text [$data(ent) get] + if {$text eq ""} { + return + } + set text [file join {*}[file split [string trim $text]]] + if {![file exists $text] || ![file isdirectory $text]} { + # Entry contains an invalid directory. If it's the same as the + # last time they came through here, reset the saved value and end + # the dialog. Otherwise, save the value (so we can do this test + # next time). + if {$text eq $data(previousEntryText)} { + set data(previousEntryText) "" + Done $w $text + } else { + set data(previousEntryText) $text + } + } else { + # Entry contains a valid directory. If it is the same as the + # current directory, end the dialog. Otherwise, change to that + # directory. + if {$text eq $data(selectPath)} { + Done $w $text + } else { + set data(selectPath) $text + } + } + } + return +} + +proc ::tk::dialog::file::chooseDir::DblClick {w} { + upvar ::tk::dialog::file::[winfo name $w] data + set selection [tk::IconList_CurSelection $data(icons)] + if {[llength $selection] != 0} { + set filenameFragment \ + [tk::IconList_Get $data(icons) [lindex $selection 0]] + set file $data(selectPath) + if {[file isdirectory $file]} { + ::tk::dialog::file::ListInvoke $w [list $filenameFragment] + return + } + } +} + +# Gets called when user browses the IconList widget (dragging mouse, arrow +# keys, etc) +# +proc ::tk::dialog::file::chooseDir::ListBrowse {w text} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {$text eq ""} { + return + } + + set file [::tk::dialog::file::JoinFile $data(selectPath) $text] + $data(ent) delete 0 end + $data(ent) insert 0 $file +} + +# ::tk::dialog::file::chooseDir::Done -- +# +# Gets called when user has input a valid filename. Pops up a +# dialog box to confirm selection when necessary. Sets the +# Priv(selectFilePath) variable, which will break the "vwait" +# loop in tk_chooseDirectory and return the selected filename to the +# script that calls tk_getOpenFile or tk_getSaveFile +# +proc ::tk::dialog::file::chooseDir::Done {w {selectFilePath ""}} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + if {$selectFilePath eq ""} { + set selectFilePath $data(selectPath) + } + if {$data(-mustexist)} { + if {![file exists $selectFilePath] || ![file isdir $selectFilePath]} { + return + } + } + set Priv(selectFilePath) $selectFilePath +} diff --git a/mingw/lib/tk8.5/clrpick.tcl b/mingw/lib/tk8.5/clrpick.tcl new file mode 100644 index 00000000..216cdb8f --- /dev/null +++ b/mingw/lib/tk8.5/clrpick.tcl @@ -0,0 +1,694 @@ +# clrpick.tcl -- +# +# Color selection dialog for platforms that do not support a +# standard color selection dialog. +# +# RCS: @(#) $Id: clrpick.tcl,v 1.22 2006/03/17 11:13:15 patthoyts Exp $ +# +# Copyright (c) 1996 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# ToDo: +# +# (1): Find out how many free colors are left in the colormap and +# don't allocate too many colors. +# (2): Implement HSV color selection. +# + +# Make sure namespaces exist +namespace eval ::tk {} +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::color { + namespace import ::tk::msgcat::* +} + +# ::tk::dialog::color:: -- +# +# Create a color dialog and let the user choose a color. This function +# should not be called directly. It is called by the tk_chooseColor +# function when a native color selector widget does not exist +# +proc ::tk::dialog::color:: {args} { + variable ::tk::Priv + set dataName __tk__color + upvar ::tk::dialog::color::$dataName data + set w .$dataName + + # The lines variables track the start and end indices of the line + # elements in the colorbar canvases. + set data(lines,red,start) 0 + set data(lines,red,last) -1 + set data(lines,green,start) 0 + set data(lines,green,last) -1 + set data(lines,blue,start) 0 + set data(lines,blue,last) -1 + + # This is the actual number of lines that are drawn in each color strip. + # Note that the bars may be of any width. + # However, NUM_COLORBARS must be a number that evenly divides 256. + # Such as 256, 128, 64, etc. + set data(NUM_COLORBARS) 16 + + # BARS_WIDTH is the number of pixels wide the color bar portion of the + # canvas is. This number must be a multiple of NUM_COLORBARS + set data(BARS_WIDTH) 160 + + # PLGN_WIDTH is the number of pixels wide of the triangular selection + # polygon. This also results in the definition of the padding on the + # left and right sides which is half of PLGN_WIDTH. Make this number even. + set data(PLGN_HEIGHT) 10 + + # PLGN_HEIGHT is the height of the selection polygon and the height of the + # selection rectangle at the bottom of the color bar. No restrictions. + set data(PLGN_WIDTH) 10 + + Config $dataName $args + InitValues $dataName + + set sc [winfo screen $data(-parent)] + set winExists [winfo exists $w] + if {!$winExists || $sc ne [winfo screen $w]} { + if {$winExists} { + destroy $w + } + toplevel $w -class TkColorDialog -screen $sc + BuildDialog $w + } + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + # 5. Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + wm title $w $data(-title) + + # 6. Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(okBtn) + + # 7. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectColor) + set result $Priv(selectColor) + ::tk::RestoreFocusGrab $w $data(okBtn) + unset data + + return $result +} + +# ::tk::dialog::color::InitValues -- +# +# Get called during initialization or when user resets NUM_COLORBARS +# +proc ::tk::dialog::color::InitValues {dataName} { + upvar ::tk::dialog::color::$dataName data + + # IntensityIncr is the difference in color intensity between a colorbar + # and its neighbors. + set data(intensityIncr) [expr {256 / $data(NUM_COLORBARS)}] + + # ColorbarWidth is the width of each colorbar + set data(colorbarWidth) [expr {$data(BARS_WIDTH) / $data(NUM_COLORBARS)}] + + # Indent is the width of the space at the left and right side of the + # colorbar. It is always half the selector polygon width, because the + # polygon extends into the space. + set data(indent) [expr {$data(PLGN_WIDTH) / 2}] + + set data(colorPad) 2 + set data(selPad) [expr {$data(PLGN_WIDTH) / 2}] + + # + # minX is the x coordinate of the first colorbar + # + set data(minX) $data(indent) + + # + # maxX is the x coordinate of the last colorbar + # + set data(maxX) [expr {$data(BARS_WIDTH) + $data(indent)-1}] + + # + # canvasWidth is the width of the entire canvas, including the indents + # + set data(canvasWidth) [expr {$data(BARS_WIDTH) + $data(PLGN_WIDTH)}] + + # Set the initial color, specified by -initialcolor, or the + # color chosen by the user the last time. + set data(selection) $data(-initialcolor) + set data(finalColor) $data(-initialcolor) + set rgb [winfo rgb . $data(selection)] + + set data(red,intensity) [expr {[lindex $rgb 0]/0x100}] + set data(green,intensity) [expr {[lindex $rgb 1]/0x100}] + set data(blue,intensity) [expr {[lindex $rgb 2]/0x100}] +} + +# ::tk::dialog::color::Config -- +# +# Parses the command line arguments to tk_chooseColor +# +proc ::tk::dialog::color::Config {dataName argList} { + variable ::tk::Priv + upvar ::tk::dialog::color::$dataName data + + # 1: the configuration specs + # + if {[info exists Priv(selectColor)] && $Priv(selectColor) ne ""} { + set defaultColor $Priv(selectColor) + } else { + set defaultColor [. cget -background] + } + + set specs [list \ + [list -initialcolor "" "" $defaultColor] \ + [list -parent "" "" "."] \ + [list -title "" "" [mc "Color"]] \ + ] + + # 2: parse the arguments + # + tclParseConfigSpec ::tk::dialog::color::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + set data(-title) " " + } + if {[catch {winfo rgb . $data(-initialcolor)} err]} { + error $err + } + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } +} + +# ::tk::dialog::color::BuildDialog -- +# +# Build the dialog. +# +proc ::tk::dialog::color::BuildDialog {w} { + upvar ::tk::dialog::color::[winfo name $w] data + + # TopFrame contains the color strips and the color selection + # + set topFrame [frame $w.top -relief raised -bd 1] + + # StripsFrame contains the colorstrips and the individual RGB entries + set stripsFrame [frame $topFrame.colorStrip] + + set maxWidth [::tk::mcmaxamp &Red &Green &Blue] + set maxWidth [expr {$maxWidth<6 ? 6 : $maxWidth}] + set colorList { + red "&Red" + green "&Green" + blue "&Blue" + } + foreach {color l} $colorList { + # each f frame contains an [R|G|B] entry and the equiv. color strip. + set f [frame $stripsFrame.$color] + + # The box frame contains the label and entry widget for an [R|G|B] + set box [frame $f.box] + + ::tk::AmpWidget label $box.label -text "[mc $l]:" \ + -width $maxWidth -anchor ne + bind $box.label <> [list focus $box.entry] + + entry $box.entry -textvariable \ + ::tk::dialog::color::[winfo name $w]($color,intensity) \ + -width 4 + pack $box.label -side left -fill y -padx 2 -pady 3 + pack $box.entry -side left -anchor n -pady 0 + pack $box -side left -fill both + + set height [expr { + [winfo reqheight $box.entry] - + 2*([$box.entry cget -highlightthickness] + [$box.entry cget -bd]) + }] + + canvas $f.color -height $height \ + -width $data(BARS_WIDTH) -relief sunken -bd 2 + canvas $f.sel -height $data(PLGN_HEIGHT) \ + -width $data(canvasWidth) -highlightthickness 0 + pack $f.color -expand yes -fill both + pack $f.sel -expand yes -fill both + + pack $f -side top -fill x -padx 0 -pady 2 + + set data($color,entry) $box.entry + set data($color,col) $f.color + set data($color,sel) $f.sel + + bind $data($color,col) \ + [list tk::dialog::color::DrawColorScale $w $color 1] + bind $data($color,col) \ + [list tk::dialog::color::EnterColorBar $w $color] + bind $data($color,col) \ + [list tk::dialog::color::LeaveColorBar $w $color] + + bind $data($color,sel) \ + [list tk::dialog::color::EnterColorBar $w $color] + bind $data($color,sel) \ + [list tk::dialog::color::LeaveColorBar $w $color] + + bind $box.entry [list tk::dialog::color::HandleRGBEntry $w] + } + + pack $stripsFrame -side left -fill both -padx 4 -pady 10 + + # The selFrame contains a frame that demonstrates the currently + # selected color + # + set selFrame [frame $topFrame.sel] + set lab [::tk::AmpWidget label $selFrame.lab \ + -text [mc "&Selection:"] -anchor sw] + set ent [entry $selFrame.ent \ + -textvariable ::tk::dialog::color::[winfo name $w](selection) \ + -width 16] + set f1 [frame $selFrame.f1 -relief sunken -bd 2] + set data(finalCanvas) [frame $f1.demo -bd 0 -width 100 -height 70] + + pack $lab $ent -side top -fill x -padx 4 -pady 2 + pack $f1 -expand yes -anchor nw -fill both -padx 6 -pady 10 + pack $data(finalCanvas) -expand yes -fill both + + bind $ent [list tk::dialog::color::HandleSelEntry $w] + + pack $selFrame -side left -fill none -anchor nw + pack $topFrame -side top -expand yes -fill both -anchor nw + + # the botFrame frame contains the buttons + # + set botFrame [frame $w.bot -relief raised -bd 1] + + ::tk::AmpWidget button $botFrame.ok -text [mc "&OK"] \ + -command [list tk::dialog::color::OkCmd $w] + ::tk::AmpWidget button $botFrame.cancel -text [mc "&Cancel"] \ + -command [list tk::dialog::color::CancelCmd $w] + + set data(okBtn) $botFrame.ok + set data(cancelBtn) $botFrame.cancel + + grid x $botFrame.ok x $botFrame.cancel x -sticky ew + grid configure $botFrame.ok $botFrame.cancel -padx 10 -pady 10 + grid columnconfigure $botFrame {0 4} -weight 1 -uniform space + grid columnconfigure $botFrame {1 3} -weight 1 -uniform button + grid columnconfigure $botFrame 2 -weight 2 -uniform space + pack $botFrame -side bottom -fill x + + # Accelerator bindings + bind $lab <> [list focus $ent] + bind $w [list tk::ButtonInvoke $data(cancelBtn)] + bind $w [list tk::AltKeyInDialog $w %A] + + wm protocol $w WM_DELETE_WINDOW [list tk::dialog::color::CancelCmd $w] + bind $lab [list tk::dialog::color::CancelCmd $w] +} + +# ::tk::dialog::color::SetRGBValue -- +# +# Sets the current selection of the dialog box +# +proc ::tk::dialog::color::SetRGBValue {w color} { + upvar ::tk::dialog::color::[winfo name $w] data + + set data(red,intensity) [lindex $color 0] + set data(green,intensity) [lindex $color 1] + set data(blue,intensity) [lindex $color 2] + + RedrawColorBars $w all + + # Now compute the new x value of each colorbars pointer polygon + foreach color {red green blue} { + set x [RgbToX $w $data($color,intensity)] + MoveSelector $w $data($color,sel) $color $x 0 + } +} + +# ::tk::dialog::color::XToRgb -- +# +# Converts a screen coordinate to intensity +# +proc ::tk::dialog::color::XToRgb {w x} { + upvar ::tk::dialog::color::[winfo name $w] data + + set x [expr {($x * $data(intensityIncr))/ $data(colorbarWidth)}] + if {$x > 255} { + set x 255 + } + return $x +} + +# ::tk::dialog::color::RgbToX +# +# Converts an intensity to screen coordinate. +# +proc ::tk::dialog::color::RgbToX {w color} { + upvar ::tk::dialog::color::[winfo name $w] data + + return [expr {($color * $data(colorbarWidth)/ $data(intensityIncr))}] +} + +# ::tk::dialog::color::DrawColorScale -- +# +# Draw color scale is called whenever the size of one of the color +# scale canvases is changed. +# +proc ::tk::dialog::color::DrawColorScale {w c {create 0}} { + upvar ::tk::dialog::color::[winfo name $w] data + + # col: color bar canvas + # sel: selector canvas + set col $data($c,col) + set sel $data($c,sel) + + # First handle the case that we are creating everything for the first time. + if {$create} { + # First remove all the lines that already exist. + if { $data(lines,$c,last) > $data(lines,$c,start)} { + for {set i $data(lines,$c,start)} \ + {$i <= $data(lines,$c,last)} {incr i} { + $sel delete $i + } + } + # Delete the selector if it exists + if {[info exists data($c,index)]} { + $sel delete $data($c,index) + } + + # Draw the selection polygons + CreateSelector $w $sel $c + $sel bind $data($c,index) \ + [list tk::dialog::color::StartMove $w $sel $c %x $data(selPad) 1] + $sel bind $data($c,index) \ + [list tk::dialog::color::MoveSelector $w $sel $c %x $data(selPad)] + $sel bind $data($c,index) \ + [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(selPad)] + + set height [winfo height $col] + # Create an invisible region under the colorstrip to catch mouse clicks + # that aren't on the selector. + set data($c,clickRegion) [$sel create rectangle 0 0 \ + $data(canvasWidth) $height -fill {} -outline {}] + + bind $col \ + [list tk::dialog::color::StartMove $w $sel $c %x $data(colorPad)] + bind $col \ + [list tk::dialog::color::MoveSelector $w $sel $c %x $data(colorPad)] + bind $col \ + [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(colorPad)] + + $sel bind $data($c,clickRegion) \ + [list tk::dialog::color::StartMove $w $sel $c %x $data(selPad)] + $sel bind $data($c,clickRegion) \ + [list tk::dialog::color::MoveSelector $w $sel $c %x $data(selPad)] + $sel bind $data($c,clickRegion) \ + [list tk::dialog::color::ReleaseMouse $w $sel $c %x $data(selPad)] + } else { + # l is the canvas index of the first colorbar. + set l $data(lines,$c,start) + } + + # Draw the color bars. + set highlightW [expr {[$col cget -highlightthickness] + [$col cget -bd]}] + for {set i 0} { $i < $data(NUM_COLORBARS)} { incr i} { + set intensity [expr {$i * $data(intensityIncr)}] + set startx [expr {$i * $data(colorbarWidth) + $highlightW}] + if {$c eq "red"} { + set color [format "#%02x%02x%02x" \ + $intensity $data(green,intensity) $data(blue,intensity)] + } elseif {$c eq "green"} { + set color [format "#%02x%02x%02x" \ + $data(red,intensity) $intensity $data(blue,intensity)] + } else { + set color [format "#%02x%02x%02x" \ + $data(red,intensity) $data(green,intensity) $intensity] + } + + if {$create} { + set index [$col create rect $startx $highlightW \ + [expr {$startx +$data(colorbarWidth)}] \ + [expr {[winfo height $col] + $highlightW}] \ + -fill $color -outline $color] + } else { + $col itemconfigure $l -fill $color -outline $color + incr l + } + } + $sel raise $data($c,index) + + if {$create} { + set data(lines,$c,last) $index + set data(lines,$c,start) [expr {$index - $data(NUM_COLORBARS) + 1}] + } + + RedrawFinalColor $w +} + +# ::tk::dialog::color::CreateSelector -- +# +# Creates and draws the selector polygon at the position +# $data($c,intensity). +# +proc ::tk::dialog::color::CreateSelector {w sel c } { + upvar ::tk::dialog::color::[winfo name $w] data + set data($c,index) [$sel create polygon \ + 0 $data(PLGN_HEIGHT) \ + $data(PLGN_WIDTH) $data(PLGN_HEIGHT) \ + $data(indent) 0] + set data($c,x) [RgbToX $w $data($c,intensity)] + $sel move $data($c,index) $data($c,x) 0 +} + +# ::tk::dialog::color::RedrawFinalColor +# +# Combines the intensities of the three colors into the final color +# +proc ::tk::dialog::color::RedrawFinalColor {w} { + upvar ::tk::dialog::color::[winfo name $w] data + + set color [format "#%02x%02x%02x" $data(red,intensity) \ + $data(green,intensity) $data(blue,intensity)] + + $data(finalCanvas) configure -bg $color + set data(finalColor) $color + set data(selection) $color + set data(finalRGB) [list \ + $data(red,intensity) \ + $data(green,intensity) \ + $data(blue,intensity)] +} + +# ::tk::dialog::color::RedrawColorBars -- +# +# Only redraws the colors on the color strips that were not manipulated. +# Params: color of colorstrip that changed. If color is not [red|green|blue] +# Then all colorstrips will be updated +# +proc ::tk::dialog::color::RedrawColorBars {w colorChanged} { + upvar ::tk::dialog::color::[winfo name $w] data + + switch $colorChanged { + red { + DrawColorScale $w green + DrawColorScale $w blue + } + green { + DrawColorScale $w red + DrawColorScale $w blue + } + blue { + DrawColorScale $w red + DrawColorScale $w green + } + default { + DrawColorScale $w red + DrawColorScale $w green + DrawColorScale $w blue + } + } + RedrawFinalColor $w +} + +#---------------------------------------------------------------------- +# Event handlers +#---------------------------------------------------------------------- + +# ::tk::dialog::color::StartMove -- +# +# Handles a mousedown button event over the selector polygon. +# Adds the bindings for moving the mouse while the button is +# pressed. Sets the binding for the button-release event. +# +# Params: sel is the selector canvas window, color is the color of the strip. +# +proc ::tk::dialog::color::StartMove {w sel color x delta {dontMove 0}} { + upvar ::tk::dialog::color::[winfo name $w] data + + if {!$dontMove} { + MoveSelector $w $sel $color $x $delta + } +} + +# ::tk::dialog::color::MoveSelector -- +# +# Moves the polygon selector so that its middle point has the same +# x value as the specified x. If x is outside the bounds [0,255], +# the selector is set to the closest endpoint. +# +# Params: sel is the selector canvas, c is [red|green|blue] +# x is a x-coordinate. +# +proc ::tk::dialog::color::MoveSelector {w sel color x delta} { + upvar ::tk::dialog::color::[winfo name $w] data + + incr x -$delta + + if { $x < 0 } { + set x 0 + } elseif { $x > $data(BARS_WIDTH)} { + set x $data(BARS_WIDTH) + } + set diff [expr {$x - $data($color,x)}] + $sel move $data($color,index) $diff 0 + set data($color,x) [expr {$data($color,x) + $diff}] + + # Return the x value that it was actually set at + return $x +} + +# ::tk::dialog::color::ReleaseMouse +# +# Removes mouse tracking bindings, updates the colorbars. +# +# Params: sel is the selector canvas, color is the color of the strip, +# x is the x-coord of the mouse. +# +proc ::tk::dialog::color::ReleaseMouse {w sel color x delta} { + upvar ::tk::dialog::color::[winfo name $w] data + + set x [MoveSelector $w $sel $color $x $delta] + + # Determine exactly what color we are looking at. + set data($color,intensity) [XToRgb $w $x] + + RedrawColorBars $w $color +} + +# ::tk::dialog::color::ResizeColorbars -- +# +# Completely redraws the colorbars, including resizing the +# colorstrips +# +proc ::tk::dialog::color::ResizeColorBars {w} { + upvar ::tk::dialog::color::[winfo name $w] data + + if { + ($data(BARS_WIDTH) < $data(NUM_COLORBARS)) || + (($data(BARS_WIDTH) % $data(NUM_COLORBARS)) != 0) + } then { + set data(BARS_WIDTH) $data(NUM_COLORBARS) + } + InitValues [winfo name $w] + foreach color {red green blue} { + $data($color,col) configure -width $data(canvasWidth) + DrawColorScale $w $color 1 + } +} + +# ::tk::dialog::color::HandleSelEntry -- +# +# Handles the return keypress event in the "Selection:" entry +# +proc ::tk::dialog::color::HandleSelEntry {w} { + upvar ::tk::dialog::color::[winfo name $w] data + + set text [string trim $data(selection)] + # Check to make sure that the color is valid + if {[catch {set color [winfo rgb . $text]} ]} { + set data(selection) $data(finalColor) + return + } + + set R [expr {[lindex $color 0]/0x100}] + set G [expr {[lindex $color 1]/0x100}] + set B [expr {[lindex $color 2]/0x100}] + + SetRGBValue $w "$R $G $B" + set data(selection) $text +} + +# ::tk::dialog::color::HandleRGBEntry -- +# +# Handles the return keypress event in the R, G or B entry +# +proc ::tk::dialog::color::HandleRGBEntry {w} { + upvar ::tk::dialog::color::[winfo name $w] data + + foreach c {red green blue} { + if {[catch { + set data($c,intensity) [expr {int($data($c,intensity))}] + }]} { + set data($c,intensity) 0 + } + + if {$data($c,intensity) < 0} { + set data($c,intensity) 0 + } + if {$data($c,intensity) > 255} { + set data($c,intensity) 255 + } + } + + SetRGBValue $w "$data(red,intensity) \ + $data(green,intensity) $data(blue,intensity)" +} + +# mouse cursor enters a color bar +# +proc ::tk::dialog::color::EnterColorBar {w color} { + upvar ::tk::dialog::color::[winfo name $w] data + + $data($color,sel) itemconfigure $data($color,index) -fill red +} + +# mouse leaves enters a color bar +# +proc ::tk::dialog::color::LeaveColorBar {w color} { + upvar ::tk::dialog::color::[winfo name $w] data + + $data($color,sel) itemconfigure $data($color,index) -fill black +} + +# user hits OK button +# +proc ::tk::dialog::color::OkCmd {w} { + variable ::tk::Priv + upvar ::tk::dialog::color::[winfo name $w] data + + set Priv(selectColor) $data(finalColor) +} + +# user hits Cancel button or destroys window +# +proc ::tk::dialog::color::CancelCmd {w} { + variable ::tk::Priv + set Priv(selectColor) "" +} diff --git a/mingw/lib/tk8.5/comdlg.tcl b/mingw/lib/tk8.5/comdlg.tcl new file mode 100644 index 00000000..6190fa3b --- /dev/null +++ b/mingw/lib/tk8.5/comdlg.tcl @@ -0,0 +1,312 @@ +# comdlg.tcl -- +# +# Some functions needed for the common dialog boxes. Probably need to go +# in a different file. +# +# RCS: @(#) $Id: comdlg.tcl,v 1.14 2007/05/16 18:10:35 dgp Exp $ +# +# Copyright (c) 1996 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# tclParseConfigSpec -- +# +# Parses a list of "-option value" pairs. If all options and +# values are legal, the values are stored in +# $data($option). Otherwise an error message is returned. When +# an error happens, the data() array may have been partially +# modified, but all the modified members of the data(0 array are +# guaranteed to have valid values. This is different than +# Tk_ConfigureWidget() which does not modify the value of a +# widget record if any error occurs. +# +# Arguments: +# +# w = widget record to modify. Must be the pathname of a widget. +# +# specs = { +# {-commandlineswitch resourceName ResourceClass defaultValue verifier} +# {....} +# } +# +# flags = currently unused. +# +# argList = The list of "-option value" pairs. +# +proc tclParseConfigSpec {w specs flags argList} { + upvar #0 $w data + + # 1: Put the specs in associative arrays for faster access + # + foreach spec $specs { + if {[llength $spec] < 4} { + error "\"spec\" should contain 5 or 4 elements" + } + set cmdsw [lindex $spec 0] + set cmd($cmdsw) "" + set rname($cmdsw) [lindex $spec 1] + set rclass($cmdsw) [lindex $spec 2] + set def($cmdsw) [lindex $spec 3] + set verproc($cmdsw) [lindex $spec 4] + } + + if {[llength $argList] & 1} { + set cmdsw [lindex $argList end] + if {![info exists cmd($cmdsw)]} { + error "bad option \"$cmdsw\": must be [tclListValidFlags cmd]" + } + error "value for \"$cmdsw\" missing" + } + + # 2: set the default values + # + foreach cmdsw [array names cmd] { + set data($cmdsw) $def($cmdsw) + } + + # 3: parse the argument list + # + foreach {cmdsw value} $argList { + if {![info exists cmd($cmdsw)]} { + error "bad option \"$cmdsw\": must be [tclListValidFlags cmd]" + } + set data($cmdsw) $value + } + + # Done! +} + +proc tclListValidFlags {v} { + upvar $v cmd + + set len [llength [array names cmd]] + set i 1 + set separator "" + set errormsg "" + foreach cmdsw [lsort [array names cmd]] { + append errormsg "$separator$cmdsw" + incr i + if {$i == $len} { + set separator ", or " + } else { + set separator ", " + } + } + return $errormsg +} + +#---------------------------------------------------------------------- +# +# Focus Group +# +# Focus groups are used to handle the user's focusing actions inside a +# toplevel. +# +# One example of using focus groups is: when the user focuses on an +# entry, the text in the entry is highlighted and the cursor is put to +# the end of the text. When the user changes focus to another widget, +# the text in the previously focused entry is validated. +# +#---------------------------------------------------------------------- + + +# ::tk::FocusGroup_Create -- +# +# Create a focus group. All the widgets in a focus group must be +# within the same focus toplevel. Each toplevel can have only +# one focus group, which is identified by the name of the +# toplevel widget. +# +proc ::tk::FocusGroup_Create {t} { + variable ::tk::Priv + if {[winfo toplevel $t] ne $t} { + error "$t is not a toplevel window" + } + if {![info exists Priv(fg,$t)]} { + set Priv(fg,$t) 1 + set Priv(focus,$t) "" + bind $t [list tk::FocusGroup_In $t %W %d] + bind $t [list tk::FocusGroup_Out $t %W %d] + bind $t [list tk::FocusGroup_Destroy $t %W] + } +} + +# ::tk::FocusGroup_BindIn -- +# +# Add a widget into the "FocusIn" list of the focus group. The $cmd will be +# called when the widget is focused on by the user. +# +proc ::tk::FocusGroup_BindIn {t w cmd} { + variable FocusIn + variable ::tk::Priv + if {![info exists Priv(fg,$t)]} { + error "focus group \"$t\" doesn't exist" + } + set FocusIn($t,$w) $cmd +} + + +# ::tk::FocusGroup_BindOut -- +# +# Add a widget into the "FocusOut" list of the focus group. The +# $cmd will be called when the widget loses the focus (User +# types Tab or click on another widget). +# +proc ::tk::FocusGroup_BindOut {t w cmd} { + variable FocusOut + variable ::tk::Priv + if {![info exists Priv(fg,$t)]} { + error "focus group \"$t\" doesn't exist" + } + set FocusOut($t,$w) $cmd +} + +# ::tk::FocusGroup_Destroy -- +# +# Cleans up when members of the focus group is deleted, or when the +# toplevel itself gets deleted. +# +proc ::tk::FocusGroup_Destroy {t w} { + variable FocusIn + variable FocusOut + variable ::tk::Priv + + if {$t eq $w} { + unset Priv(fg,$t) + unset Priv(focus,$t) + + foreach name [array names FocusIn $t,*] { + unset FocusIn($name) + } + foreach name [array names FocusOut $t,*] { + unset FocusOut($name) + } + } else { + if {[info exists Priv(focus,$t)] && ($Priv(focus,$t) eq $w)} { + set Priv(focus,$t) "" + } + unset -nocomplain FocusIn($t,$w) FocusOut($t,$w) + } +} + +# ::tk::FocusGroup_In -- +# +# Handles the event. Calls the FocusIn command for the newly +# focused widget in the focus group. +# +proc ::tk::FocusGroup_In {t w detail} { + variable FocusIn + variable ::tk::Priv + + if {$detail ne "NotifyNonlinear" && $detail ne "NotifyNonlinearVirtual"} { + # This is caused by mouse moving out&in of the window *or* + # ordinary keypresses some window managers (ie: CDE [Bug: 2960]). + return + } + if {![info exists FocusIn($t,$w)]} { + set FocusIn($t,$w) "" + return + } + if {![info exists Priv(focus,$t)]} { + return + } + if {$Priv(focus,$t) eq $w} { + # This is already in focus + # + return + } else { + set Priv(focus,$t) $w + eval $FocusIn($t,$w) + } +} + +# ::tk::FocusGroup_Out -- +# +# Handles the event. Checks if this is really a lose +# focus event, not one generated by the mouse moving out of the +# toplevel window. Calls the FocusOut command for the widget +# who loses its focus. +# +proc ::tk::FocusGroup_Out {t w detail} { + variable FocusOut + variable ::tk::Priv + + if {$detail ne "NotifyNonlinear" && $detail ne "NotifyNonlinearVirtual"} { + # This is caused by mouse moving out of the window + return + } + if {![info exists Priv(focus,$t)]} { + return + } + if {![info exists FocusOut($t,$w)]} { + return + } else { + eval $FocusOut($t,$w) + set Priv(focus,$t) "" + } +} + +# ::tk::FDGetFileTypes -- +# +# Process the string given by the -filetypes option of the file +# dialogs. Similar to the C function TkGetFileFilters() on the Mac +# and Windows platform. +# +proc ::tk::FDGetFileTypes {string} { + foreach t $string { + if {[llength $t] < 2 || [llength $t] > 3} { + error "bad file type \"$t\", should be \"typeName {extension ?extensions ...?} ?{macType ?macTypes ...?}?\"" + } + lappend fileTypes([lindex $t 0]) {*}[lindex $t 1] + } + + set types {} + foreach t $string { + set label [lindex $t 0] + set exts {} + + if {[info exists hasDoneType($label)]} { + continue + } + + # Validate each macType. This is to agree with the + # behaviour of TkGetFileFilters(). This list may be + # empty. + foreach macType [lindex $t 2] { + if {[string length $macType] != 4} { + error "bad Macintosh file type \"$macType\"" + } + } + + set name "$label \(" + set sep "" + set doAppend 1 + foreach ext $fileTypes($label) { + if {$ext eq ""} { + continue + } + regsub {^[.]} $ext "*." ext + if {![info exists hasGotExt($label,$ext)]} { + if {$doAppend} { + if {[string length $sep] && [string length $name]>40} { + set doAppend 0 + append name $sep... + } else { + append name $sep$ext + } + } + lappend exts $ext + set hasGotExt($label,$ext) 1 + } + set sep "," + } + append name "\)" + lappend types [list $name $exts] + + set hasDoneType($label) 1 + } + + return $types +} diff --git a/mingw/lib/tk8.5/console.tcl b/mingw/lib/tk8.5/console.tcl new file mode 100644 index 00000000..3951c5a4 --- /dev/null +++ b/mingw/lib/tk8.5/console.tcl @@ -0,0 +1,1033 @@ +# console.tcl -- +# +# This code constructs the console window for an application. It +# can be used by non-unix systems that do not have built-in support +# for shells. +# +# RCS: @(#) $Id: console.tcl,v 1.33 2007/10/20 09:02:40 patthoyts Exp $ +# +# Copyright (c) 1995-1997 Sun Microsystems, Inc. +# Copyright (c) 1998-2000 Ajuba Solutions. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# TODO: history - remember partially written command + +namespace eval ::tk::console { + variable blinkTime 500 ; # msecs to blink braced range for + variable blinkRange 1 ; # enable blinking of the entire braced range + variable magicKeys 1 ; # enable brace matching and proc/var recognition + variable maxLines 600 ; # maximum # of lines buffered in console + variable showMatches 1 ; # show multiple expand matches + + variable inPlugin [info exists embed_args] + variable defaultPrompt ; # default prompt if tcl_prompt1 isn't used + + + if {$inPlugin} { + set defaultPrompt {subst {[history nextid] % }} + } else { + set defaultPrompt {subst {([file tail [pwd]]) [history nextid] % }} + } +} + +# simple compat function for tkcon code added for this console +interp alias {} EvalAttached {} consoleinterp eval + +# ::tk::ConsoleInit -- +# This procedure constructs and configures the console windows. +# +# Arguments: +# None. + +proc ::tk::ConsoleInit {} { + global tcl_platform + + if {![consoleinterp eval {set tcl_interactive}]} { + wm withdraw . + } + + if {[tk windowingsystem] eq "aqua"} { + set mod "Cmd" + } else { + set mod "Ctrl" + } + + if {[catch {menu .menubar} err]} { + bgerror "INIT: $err" + } + AmpMenuArgs .menubar add cascade -label [mc &File] -menu .menubar.file + AmpMenuArgs .menubar add cascade -label [mc &Edit] -menu .menubar.edit + + menu .menubar.file -tearoff 0 + AmpMenuArgs .menubar.file add command -label [mc "&Source..."] \ + -command {tk::ConsoleSource} + AmpMenuArgs .menubar.file add command -label [mc "&Hide Console"] \ + -command {wm withdraw .} + AmpMenuArgs .menubar.file add command -label [mc "&Clear Console"] \ + -command {.console delete 1.0 "promptEnd linestart"} + if {[tk windowingsystem] eq "aqua"} { + AmpMenuArgs .menubar.file add command \ + -label [mc &Quit] -command {exit} -accel "Cmd-Q" + } else { + AmpMenuArgs .menubar.file add command -label [mc E&xit] -command {exit} + } + + menu .menubar.edit -tearoff 0 + AmpMenuArgs .menubar.edit add command -label [mc Cu&t] -accel "$mod+X"\ + -command {event generate .console <>} + AmpMenuArgs .menubar.edit add command -label [mc &Copy] -accel "$mod+C"\ + -command {event generate .console <>} + AmpMenuArgs .menubar.edit add command -label [mc P&aste] -accel "$mod+V"\ + -command {event generate .console <>} + + if {$tcl_platform(platform) ne "windows"} { + AmpMenuArgs .menubar.edit add command -label [mc Cl&ear] \ + -command {event generate .console <>} + } else { + AmpMenuArgs .menubar.edit add command -label [mc &Delete] \ + -command {event generate .console <>} -accel "Del" + + AmpMenuArgs .menubar add cascade -label [mc &Help] -menu .menubar.help + menu .menubar.help -tearoff 0 + AmpMenuArgs .menubar.help add command -label [mc &About...] \ + -command tk::ConsoleAbout + } + + . configure -menu .menubar + + # See if we can find a better font than the TkFixedFont + font create TkConsoleFont {*}[font configure TkFixedFont] + set families [font families] + switch -exact -- [tk windowingsystem] { + aqua { set preferred {Monaco 9} } + win32 { set preferred {ProFontWindows 8 Consolas 8} } + default { set preferred {} } + } + foreach {family size} $preferred { + if {[lsearch -exact $families $family] != -1} { + font configure TkConsoleFont -family $family -size $size + break + } + } + + # Provide the right border for the text widget (platform dependent). + ::ttk::style layout ConsoleFrame { + Entry.field -sticky news -border 1 -children { + ConsoleFrame.padding -sticky news + } + } + ::ttk::frame .consoleframe -style ConsoleFrame + + set con [text .console -yscrollcommand [list .sb set] -setgrid true \ + -borderwidth 0 -highlightthickness 0 -font TkConsoleFont] + if {[tk windowingsystem] eq "aqua"} { + scrollbar .sb -command [list $con yview] + } else { + ::ttk::scrollbar .sb -command [list $con yview] + } + pack .sb -in .consoleframe -fill both -side right -padx 1 -pady 1 + pack $con -in .consoleframe -fill both -expand 1 -side left -padx 1 -pady 1 + pack .consoleframe -fill both -expand 1 -side left + + ConsoleBind $con + + $con tag configure stderr -foreground red + $con tag configure stdin -foreground blue + $con tag configure prompt -foreground \#8F4433 + $con tag configure proc -foreground \#008800 + $con tag configure var -background \#FFC0D0 + $con tag raise sel + $con tag configure blink -background \#FFFF00 + $con tag configure find -background \#FFFF00 + + focus $con + + # Avoid listing this console in [winfo interps] + if {[info command ::send] eq "::send"} {rename ::send {}} + + wm protocol . WM_DELETE_WINDOW { wm withdraw . } + wm title . [mc "Console"] + flush stdout + $con mark set output [$con index "end - 1 char"] + tk::TextSetCursor $con end + $con mark set promptEnd insert + $con mark gravity promptEnd left + + # A variant of ConsolePrompt to avoid a 'puts' call + set w $con + set temp [$w index "end - 1 char"] + $w mark set output end + if {![consoleinterp eval "info exists tcl_prompt1"]} { + set string [EvalAttached $::tk::console::defaultPrompt] + $w insert output $string stdout + } + $w mark set output $temp + ::tk::TextSetCursor $w end + $w mark set promptEnd insert + $w mark gravity promptEnd left + + if {$tcl_platform(platform) eq "windows"} { + # Subtle work-around to erase the '% ' that tclMain.c prints out + after idle [subst -nocommand { + if {[$con get 1.0 output] eq "% "} { $con delete 1.0 output } + }] + } +} + +# ::tk::ConsoleSource -- +# +# Prompts the user for a file to source in the main interpreter. +# +# Arguments: +# None. + +proc ::tk::ConsoleSource {} { + set filename [tk_getOpenFile -defaultextension .tcl -parent . \ + -title [mc "Select a file to source"] \ + -filetypes [list \ + [list [mc "Tcl Scripts"] .tcl] \ + [list [mc "All Files"] *]]] + if {$filename ne ""} { + set cmd [list source $filename] + if {[catch {consoleinterp eval $cmd} result]} { + ConsoleOutput stderr "$result\n" + } + } +} + +# ::tk::ConsoleInvoke -- +# Processes the command line input. If the command is complete it +# is evaled in the main interpreter. Otherwise, the continuation +# prompt is added and more input may be added. +# +# Arguments: +# None. + +proc ::tk::ConsoleInvoke {args} { + set ranges [.console tag ranges input] + set cmd "" + if {[llength $ranges]} { + set pos 0 + while {[lindex $ranges $pos] ne ""} { + set start [lindex $ranges $pos] + set end [lindex $ranges [incr pos]] + append cmd [.console get $start $end] + incr pos + } + } + if {$cmd eq ""} { + ConsolePrompt + } elseif {[info complete $cmd]} { + .console mark set output end + .console tag delete input + set result [consoleinterp record $cmd] + if {$result ne ""} { + puts $result + } + ConsoleHistory reset + ConsolePrompt + } else { + ConsolePrompt partial + } + .console yview -pickplace insert +} + +# ::tk::ConsoleHistory -- +# This procedure implements command line history for the +# console. In general is evals the history command in the +# main interpreter to obtain the history. The variable +# ::tk::HistNum is used to store the current location in the history. +# +# Arguments: +# cmd - Which action to take: prev, next, reset. + +set ::tk::HistNum 1 +proc ::tk::ConsoleHistory {cmd} { + variable HistNum + + switch $cmd { + prev { + incr HistNum -1 + if {$HistNum == 0} { + set cmd {history event [expr {[history nextid] -1}]} + } else { + set cmd "history event $HistNum" + } + if {[catch {consoleinterp eval $cmd} cmd]} { + incr HistNum + return + } + .console delete promptEnd end + .console insert promptEnd $cmd {input stdin} + } + next { + incr HistNum + if {$HistNum == 0} { + set cmd {history event [expr {[history nextid] -1}]} + } elseif {$HistNum > 0} { + set cmd "" + set HistNum 1 + } else { + set cmd "history event $HistNum" + } + if {$cmd ne ""} { + catch {consoleinterp eval $cmd} cmd + } + .console delete promptEnd end + .console insert promptEnd $cmd {input stdin} + } + reset { + set HistNum 1 + } + } +} + +# ::tk::ConsolePrompt -- +# This procedure draws the prompt. If tcl_prompt1 or tcl_prompt2 +# exists in the main interpreter it will be called to generate the +# prompt. Otherwise, a hard coded default prompt is printed. +# +# Arguments: +# partial - Flag to specify which prompt to print. + +proc ::tk::ConsolePrompt {{partial normal}} { + set w .console + if {$partial eq "normal"} { + set temp [$w index "end - 1 char"] + $w mark set output end + if {[consoleinterp eval "info exists tcl_prompt1"]} { + consoleinterp eval "eval \[set tcl_prompt1\]" + } else { + puts -nonewline [EvalAttached $::tk::console::defaultPrompt] + } + } else { + set temp [$w index output] + $w mark set output end + if {[consoleinterp eval "info exists tcl_prompt2"]} { + consoleinterp eval "eval \[set tcl_prompt2\]" + } else { + puts -nonewline "> " + } + } + flush stdout + $w mark set output $temp + ::tk::TextSetCursor $w end + $w mark set promptEnd insert + $w mark gravity promptEnd left + ::tk::console::ConstrainBuffer $w $::tk::console::maxLines + $w see end +} + +# ::tk::ConsoleBind -- +# This procedure first ensures that the default bindings for the Text +# class have been defined. Then certain bindings are overridden for +# the class. +# +# Arguments: +# None. + +proc ::tk::ConsoleBind {w} { + bindtags $w [list $w Console PostConsole [winfo toplevel $w] all] + + ## Get all Text bindings into Console + foreach ev [bind Text] { + bind Console $ev [bind Text $ev] + } + ## We really didn't want the newline insertion... + bind Console {} + ## ...or any Control-v binding (would block <>) + bind Console {} + + # For the moment, transpose isn't enabled until the console + # gets and overhaul of how it handles input -- hobbs + bind Console {} + + # Ignore all Alt, Meta, and Control keypresses unless explicitly bound. + # Otherwise, if a widget binding for one of these is defined, the + + bind Console {# nothing } + bind Console {# nothing} + bind Console {# nothing} + + foreach {ev key} { + <> + <> + <> + <> + <> + <> + + <> + <> + <> + <> + <> + <> + <> + <> + <> + + <> + <> + <> + <> + <> + } { + event add $ev $key + bind Console $key {} + } + + bind Console <> { + if {[%W compare insert > promptEnd]} { + ::tk::console::Expand %W + } + } + bind Console <> { + if {[%W compare insert > promptEnd]} { + ::tk::console::Expand %W path + } + } + bind Console <> { + if {[%W compare insert > promptEnd]} { + ::tk::console::Expand %W proc + } + } + bind Console <> { + if {[%W compare insert > promptEnd]} { + ::tk::console::Expand %W var + } + } + bind Console <> { + %W mark set insert {end - 1c} + tk::ConsoleInsert %W "\n" + tk::ConsoleInvoke + break + } + bind Console { + if {{} ne [%W tag nextrange sel 1.0 end] \ + && [%W compare sel.first >= promptEnd]} { + %W delete sel.first sel.last + } elseif {[%W compare insert >= promptEnd]} { + %W delete insert + %W see insert + } + } + bind Console { + if {{} ne [%W tag nextrange sel 1.0 end] \ + && [%W compare sel.first >= promptEnd]} { + %W delete sel.first sel.last + } elseif {[%W compare insert != 1.0] && \ + [%W compare insert > promptEnd]} { + %W delete insert-1c + %W see insert + } + } + bind Console [bind Console ] + + bind Console { + if {[%W compare insert < promptEnd]} { + tk::TextSetCursor %W {insert linestart} + } else { + tk::TextSetCursor %W promptEnd + } + } + bind Console [bind Console ] + bind Console { + tk::TextSetCursor %W {insert lineend} + } + bind Console [bind Console ] + bind Console { + if {[%W compare insert < promptEnd]} { + break + } + %W delete insert + } + bind Console <> { + if {[%W compare insert < promptEnd]} { + break + } + if {[%W compare insert == {insert lineend}]} { + %W delete insert + } else { + %W delete insert {insert lineend} + } + } + bind Console <> { + ## Clear console display + %W delete 1.0 "promptEnd linestart" + } + bind Console <> { + ## Clear command line (Unix shell staple) + %W delete promptEnd end + } + bind Console { + if {[%W compare insert >= promptEnd]} { + %W delete insert {insert wordend} + } + } + bind Console { + if {[%W compare {insert -1c wordstart} >= promptEnd]} { + %W delete {insert -1c wordstart} insert + } + } + bind Console { + if {[%W compare insert >= promptEnd]} { + %W delete insert {insert wordend} + } + } + bind Console { + if {[%W compare {insert -1c wordstart} >= promptEnd]} { + %W delete {insert -1c wordstart} insert + } + } + bind Console { + if {[%W compare insert >= promptEnd]} { + %W delete insert {insert wordend} + } + } + bind Console <> { + tk::ConsoleHistory prev + } + bind Console <> { + tk::ConsoleHistory next + } + bind Console { + catch {tk::ConsoleInsert %W [::tk::GetSelection %W PRIMARY]} + } + bind Console { + tk::ConsoleInsert %W %A + } + bind Console { + eval destroy [winfo child .] + source [file join $tk_library console.tcl] + } + if {[tk windowingsystem] eq "aqua"} { + bind Console { + exit + } + } + bind Console <> { + # Same as the copy event + if {![catch {set data [%W get sel.first sel.last]}]} { + clipboard clear -displayof %W + clipboard append -displayof %W $data + } + } + bind Console <> { + if {![catch {set data [%W get sel.first sel.last]}]} { + clipboard clear -displayof %W + clipboard append -displayof %W $data + } + } + bind Console <> { + catch { + set clip [::tk::GetSelection %W CLIPBOARD] + set list [split $clip \n\r] + tk::ConsoleInsert %W [lindex $list 0] + foreach x [lrange $list 1 end] { + %W mark set insert {end - 1c} + tk::ConsoleInsert %W "\n" + tk::ConsoleInvoke + tk::ConsoleInsert %W $x + } + } + } + + ## + ## Bindings for doing special things based on certain keys + ## + bind PostConsole { + if {"\\" ne [%W get insert-2c]} { + ::tk::console::MatchPair %W \( \) promptEnd + } + } + bind PostConsole { + if {"\\" ne [%W get insert-2c]} { + ::tk::console::MatchPair %W \[ \] promptEnd + } + } + bind PostConsole { + if {"\\" ne [%W get insert-2c]} { + ::tk::console::MatchPair %W \{ \} promptEnd + } + } + bind PostConsole { + if {"\\" ne [%W get insert-2c]} { + ::tk::console::MatchQuote %W promptEnd + } + } + + bind PostConsole { + if {"%A" ne ""} { + ::tk::console::TagProc %W + } + break + } +} + +# ::tk::ConsoleInsert -- +# Insert a string into a text at the point of the insertion cursor. +# If there is a selection in the text, and it covers the point of the +# insertion cursor, then delete the selection before inserting. Insertion +# is restricted to the prompt area. +# +# Arguments: +# w - The text window in which to insert the string +# s - The string to insert (usually just a single character) + +proc ::tk::ConsoleInsert {w s} { + if {$s eq ""} { + return + } + catch { + if {[$w compare sel.first <= insert] \ + && [$w compare sel.last >= insert]} { + $w tag remove sel sel.first promptEnd + $w delete sel.first sel.last + } + } + if {[$w compare insert < promptEnd]} { + $w mark set insert end + } + $w insert insert $s {input stdin} + $w see insert +} + +# ::tk::ConsoleOutput -- +# +# This routine is called directly by ConsolePutsCmd to cause a string +# to be displayed in the console. +# +# Arguments: +# dest - The output tag to be used: either "stderr" or "stdout". +# string - The string to be displayed. + +proc ::tk::ConsoleOutput {dest string} { + set w .console + $w insert output $string $dest + ::tk::console::ConstrainBuffer $w $::tk::console::maxLines + $w see insert +} + +# ::tk::ConsoleExit -- +# +# This routine is called by ConsoleEventProc when the main window of +# the application is destroyed. Don't call exit - that probably already +# happened. Just delete our window. +# +# Arguments: +# None. + +proc ::tk::ConsoleExit {} { + destroy . +} + +# ::tk::ConsoleAbout -- +# +# This routine displays an About box to show Tcl/Tk version info. +# +# Arguments: +# None. + +proc ::tk::ConsoleAbout {} { + tk_messageBox -type ok -message "[mc {Tcl for Windows}] + +Tcl $::tcl_patchLevel +Tk $::tk_patchLevel" +} + +# ::tk::console::TagProc -- +# +# Tags a procedure in the console if it's recognized +# This procedure is not perfect. However, making it perfect wastes +# too much CPU time... +# +# Arguments: +# w - console text widget + +proc ::tk::console::TagProc w { + if {!$::tk::console::magicKeys} { + return + } + set exp "\[^\\\\\]\[\[ \t\n\r\;{}\"\$\]" + set i [$w search -backwards -regexp $exp insert-1c promptEnd-1c] + if {$i eq ""} { + set i promptEnd + } else { + append i +2c + } + regsub -all "\[\[\\\\\\?\\*\]" [$w get $i "insert-1c wordend"] {\\\0} c + if {[llength [EvalAttached [list info commands $c]]]} { + $w tag add proc $i "insert-1c wordend" + } else { + $w tag remove proc $i "insert-1c wordend" + } + if {[llength [EvalAttached [list info vars $c]]]} { + $w tag add var $i "insert-1c wordend" + } else { + $w tag remove var $i "insert-1c wordend" + } +} + +# ::tk::console::MatchPair -- +# +# Blinks a matching pair of characters +# c2 is assumed to be at the text index 'insert'. +# This proc is really loopy and took me an hour to figure out given +# all possible combinations with escaping except for escaped \'s. +# It doesn't take into account possible commenting... Oh well. If +# anyone has something better, I'd like to see/use it. This is really +# only efficient for small contexts. +# +# Arguments: +# w - console text widget +# c1 - first char of pair +# c2 - second char of pair +# +# Calls: ::tk::console::Blink + +proc ::tk::console::MatchPair {w c1 c2 {lim 1.0}} { + if {!$::tk::console::magicKeys} { + return + } + if {{} ne [set ix [$w search -back $c1 insert $lim]]} { + while { + [string match {\\} [$w get $ix-1c]] && + [set ix [$w search -back $c1 $ix-1c $lim]] ne {} + } {} + set i1 insert-1c + while {$ix ne {}} { + set i0 $ix + set j 0 + while {[set i0 [$w search $c2 $i0 $i1]] ne {}} { + append i0 +1c + if {[string match {\\} [$w get $i0-2c]]} { + continue + } + incr j + } + if {!$j} { + break + } + set i1 $ix + while {$j && [set ix [$w search -back $c1 $ix $lim]] ne {}} { + if {[string match {\\} [$w get $ix-1c]]} { + continue + } + incr j -1 + } + } + if {[string match {} $ix]} { + set ix [$w index $lim] + } + } else { + set ix [$w index $lim] + } + if {$::tk::console::blinkRange} { + Blink $w $ix [$w index insert] + } else { + Blink $w $ix $ix+1c [$w index insert-1c] [$w index insert] + } +} + +# ::tk::console::MatchQuote -- +# +# Blinks between matching quotes. +# Blinks just the quote if it's unmatched, otherwise blinks quoted string +# The quote to match is assumed to be at the text index 'insert'. +# +# Arguments: +# w - console text widget +# +# Calls: ::tk::console::Blink + +proc ::tk::console::MatchQuote {w {lim 1.0}} { + if {!$::tk::console::magicKeys} { + return + } + set i insert-1c + set j 0 + while {[set i [$w search -back \" $i $lim]] ne {}} { + if {[string match {\\} [$w get $i-1c]]} { + continue + } + if {!$j} { + set i0 $i + } + incr j + } + if {$j&1} { + if {$::tk::console::blinkRange} { + Blink $w $i0 [$w index insert] + } else { + Blink $w $i0 $i0+1c [$w index insert-1c] [$w index insert] + } + } else { + Blink $w [$w index insert-1c] [$w index insert] + } +} + +# ::tk::console::Blink -- +# +# Blinks between n index pairs for a specified duration. +# +# Arguments: +# w - console text widget +# i1 - start index to blink region +# i2 - end index of blink region +# dur - duration in usecs to blink for +# +# Outputs: +# blinks selected characters in $w + +proc ::tk::console::Blink {w args} { + eval [list $w tag add blink] $args + after $::tk::console::blinkTime [list $w] tag remove blink $args +} + +# ::tk::console::ConstrainBuffer -- +# +# This limits the amount of data in the text widget +# Called by Prompt and ConsoleOutput +# +# Arguments: +# w - console text widget +# size - # of lines to constrain to +# +# Outputs: +# may delete data in console widget + +proc ::tk::console::ConstrainBuffer {w size} { + if {[$w index end] > $size} { + $w delete 1.0 [expr {int([$w index end])-$size}].0 + } +} + +# ::tk::console::Expand -- +# +# Arguments: +# ARGS: w - text widget in which to expand str +# type - type of expansion (path / proc / variable) +# +# Calls: ::tk::console::Expand(Pathname|Procname|Variable) +# +# Outputs: The string to match is expanded to the longest possible match. +# If ::tk::console::showMatches is non-zero and the longest match +# equaled the string to expand, then all possible matches are +# output to stdout. Triggers bell if no matches are found. +# +# Returns: number of matches found + +proc ::tk::console::Expand {w {type ""}} { + set exp "\[^\\\\\]\[\[ \t\n\r\\\{\"\\\\\$\]" + set tmp [$w search -backwards -regexp $exp insert-1c promptEnd-1c] + if {$tmp eq ""} { + set tmp promptEnd + } else { + append tmp +2c + } + if {[$w compare $tmp >= insert]} { + return + } + set str [$w get $tmp insert] + switch -glob $type { + path* { + set res [ExpandPathname $str] + } + proc* { + set res [ExpandProcname $str] + } + var* { + set res [ExpandVariable $str] + } + default { + set res {} + foreach t {Pathname Procname Variable} { + if {![catch {Expand$t $str} res] && ($res ne "")} { + break + } + } + } + } + set len [llength $res] + if {$len} { + set repl [lindex $res 0] + $w delete $tmp insert + $w insert $tmp $repl {input stdin} + if {($len > 1) && ($::tk::console::showMatches) && ($repl eq $str)} { + puts stdout [lsort [lreplace $res 0 0]] + } + } else { + bell + } + return [incr len -1] +} + +# ::tk::console::ExpandPathname -- +# +# Expand a file pathname based on $str +# This is based on UNIX file name conventions +# +# Arguments: +# str - partial file pathname to expand +# +# Calls: ::tk::console::ExpandBestMatch +# +# Returns: list containing longest unique match followed by all the +# possible further matches + +proc ::tk::console::ExpandPathname str { + set pwd [EvalAttached pwd] + if {[catch {EvalAttached [list cd [file dirname $str]]} err]} { + return -code error $err + } + set dir [file tail $str] + ## Check to see if it was known to be a directory and keep the trailing + ## slash if so (file tail cuts it off) + if {[string match */ $str]} { + append dir / + } + if {[catch {lsort [EvalAttached [list glob $dir*]]} m]} { + set match {} + } else { + if {[llength $m] > 1} { + global tcl_platform + if {[string match windows $tcl_platform(platform)]} { + ## Windows is screwy because it's case insensitive + set tmp [ExpandBestMatch [string tolower $m] \ + [string tolower $dir]] + ## Don't change case if we haven't changed the word + if {[string length $dir]==[string length $tmp]} { + set tmp $dir + } + } else { + set tmp [ExpandBestMatch $m $dir] + } + if {[string match ?*/* $str]} { + set tmp [file dirname $str]/$tmp + } elseif {[string match /* $str]} { + set tmp /$tmp + } + regsub -all { } $tmp {\\ } tmp + set match [linsert $m 0 $tmp] + } else { + ## This may look goofy, but it handles spaces in path names + eval append match $m + if {[file isdir $match]} { + append match / + } + if {[string match ?*/* $str]} { + set match [file dirname $str]/$match + } elseif {[string match /* $str]} { + set match /$match + } + regsub -all { } $match {\\ } match + ## Why is this one needed and the ones below aren't!! + set match [list $match] + } + } + EvalAttached [list cd $pwd] + return $match +} + +# ::tk::console::ExpandProcname -- +# +# Expand a tcl proc name based on $str +# +# Arguments: +# str - partial proc name to expand +# +# Calls: ::tk::console::ExpandBestMatch +# +# Returns: list containing longest unique match followed by all the +# possible further matches + +proc ::tk::console::ExpandProcname str { + set match [EvalAttached [list info commands $str*]] + if {[llength $match] == 0} { + set ns [EvalAttached \ + "namespace children \[namespace current\] [list $str*]"] + if {[llength $ns]==1} { + set match [EvalAttached [list info commands ${ns}::*]] + } else { + set match $ns + } + } + if {[llength $match] > 1} { + regsub -all { } [ExpandBestMatch $match $str] {\\ } str + set match [linsert $match 0 $str] + } else { + regsub -all { } $match {\\ } match + } + return $match +} + +# ::tk::console::ExpandVariable -- +# +# Expand a tcl variable name based on $str +# +# Arguments: +# str - partial tcl var name to expand +# +# Calls: ::tk::console::ExpandBestMatch +# +# Returns: list containing longest unique match followed by all the +# possible further matches + +proc ::tk::console::ExpandVariable str { + if {[regexp {([^\(]*)\((.*)} $str -> ary str]} { + ## Looks like they're trying to expand an array. + set match [EvalAttached [list array names $ary $str*]] + if {[llength $match] > 1} { + set vars $ary\([ExpandBestMatch $match $str] + foreach var $match { + lappend vars $ary\($var\) + } + return $vars + } elseif {[llength $match] == 1} { + set match $ary\($match\) + } + ## Space transformation avoided for array names. + } else { + set match [EvalAttached [list info vars $str*]] + if {[llength $match] > 1} { + regsub -all { } [ExpandBestMatch $match $str] {\\ } str + set match [linsert $match 0 $str] + } else { + regsub -all { } $match {\\ } match + } + } + return $match +} + +# ::tk::console::ExpandBestMatch -- +# +# Finds the best unique match in a list of names. +# The extra $e in this argument allows us to limit the innermost loop a little +# further. This improves speed as $l becomes large or $e becomes long. +# +# Arguments: +# l - list to find best unique match in +# e - currently best known unique match +# +# Returns: longest unique match in the list + +proc ::tk::console::ExpandBestMatch {l {e {}}} { + set ec [lindex $l 0] + if {[llength $l]>1} { + set e [expr {[string length $e] - 1}] + set ei [expr {[string length $ec] - 1}] + foreach l $l { + while {$ei>=$e && [string first $ec $l]} { + set ec [string range $ec 0 [incr ei -1]] + } + } + } + return $ec +} + +# now initialize the console +::tk::ConsoleInit diff --git a/mingw/lib/tk8.5/demos/README b/mingw/lib/tk8.5/demos/README new file mode 100644 index 00000000..2996cdd2 --- /dev/null +++ b/mingw/lib/tk8.5/demos/README @@ -0,0 +1,46 @@ +This directory contains a collection of programs to demonstrate +the features of the Tk toolkit. The programs are all scripts for +"wish", a windowing shell. If wish has been installed on your path +then you can invoke any of the programs in this directory just +by typing its file name to your command shell under Unix. Otherwise +invoke wish with the file as its first argument, e.g., "wish hello". +The rest of this file contains a brief description of each program. +Files with names ending in ".tcl" are procedure packages used by one +or more of the demo programs; they can't be used as programs by +themselves so they aren't described below. + +hello - Creates a single button; if you click on it, a message + is typed and the application terminates. + +widget - Contains a collection of demonstrations of the widgets + currently available in the Tk library. Most of the .tcl + files are scripts for individual demos available through + the "widget" program. + +ixset - A simple Tk-based wrapper for the "xset" program, which + allows you to interactively query and set various X options + such as mouse acceleration and bell volume. Thanks to + Pierre David for contributing this example. + +rolodex - A mock-up of a simple rolodex application. It has much of + the user interface for such an application but no back-end + database. This program was written in response to Tom + LaStrange's toolkit benchmark challenge. + +tcolor - A color editor. Allows you to edit colors in several + different ways, and will also perform automatic updates + using "send". + +rmt - Allows you to "hook-up" remotely to any Tk application + on the display. Select an application with the menu, + then just type commands: they'll go to that application. + +timer - Displays a seconds timer with start and stop buttons. + Control-c and control-q cause it to exit. + +browse - A simple directory browser. Invoke it with and argument + giving the name of the directory you'd like to browse. + Double-click on files or subdirectories to browse them. + Control-c and control-q cause the program to exit. + +RCS: @(#) $Id: README,v 1.3 2003/11/05 13:20:21 dkf Exp $ diff --git a/mingw/lib/tk8.5/demos/anilabel.tcl b/mingw/lib/tk8.5/demos/anilabel.tcl new file mode 100644 index 00000000..dadf52e8 --- /dev/null +++ b/mingw/lib/tk8.5/demos/anilabel.tcl @@ -0,0 +1,162 @@ +# anilabel.tcl -- +# +# This demonstration script creates a toplevel window containing +# several animated label widgets. +# +# RCS: @(#) $Id: anilabel.tcl,v 1.2 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .anilabel +catch {destroy $w} +toplevel $w +wm title $w "Animated Label Demonstration" +wm iconname $w "anilabel" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Four animated labels are displayed below; each of the labels on the left is animated by making the text message inside it appear to scroll, and the label on the right is animated by animating the image that it displays." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Ensure that this this is an array +array set animationCallbacks {} + +## This callback is the core of how to do animation in Tcl/Tk; all +## animations work in basically the same way, with a procedure that +## uses the [after] command to reschedule itself at some point in the +## future. Of course, the details of how to update the state will vary +## according to what is being animated. +proc RotateLabelText {w interval} { + global animationCallbacks + + # Schedule the calling of this procedure again in the future + set animationCallbacks($w) [after $interval RotateLabelText $w $interval] + + # We do marquee-like scrolling text by chopping characters off the + # front of the text and sticking them on the end. + set text [$w cget -text] + set newText [string range $text 1 end][string index $text 0] + $w configure -text $newText +} + +## A helper procedure to start the animation happening. +proc animateLabelText {w text interval} { + global animationCallbacks + + # Install the text into the widget + $w configure -text $text + + # Schedule the start of the animation loop + set animationCallbacks($w) [after $interval RotateLabelText $w $interval] + + # Make sure that the animation stops and is cleaned up after itself + # when the animated label is destroyed. Note that at this point we + # cannot manipulate the widget itself, as that has already died. + bind $w { + after cancel $animationCallbacks(%W) + unset animationCallbacks(%W) + } +} + +## Next, a similar pair of procedures to animate a GIF loaded into a +## photo image. +proc SelectNextImageFrame {w interval} { + global animationCallbacks + set animationCallbacks($w) \ + [after $interval SelectNextImageFrame $w $interval] + set image [$w cget -image] + + # The easy way to animate a GIF! + set idx -1 + scan [$image cget -format] "GIF -index %d" idx + if {[catch { + # Note that we get an error if the index is out of range + $image configure -format "GIF -index [incr idx]" + }]} then { + $image configure -format "GIF -index 0" + } +} +proc animateLabelImage {w imageData interval} { + global animationCallbacks + + # Create a multi-frame GIF from base-64-encoded data + set image [image create photo -format GIF -data $imageData] + + # Install the image into the widget + $w configure -image $image + + # Schedule the start of the animation loop + set animationCallbacks($w) \ + [after $interval SelectNextImageFrame $w $interval] + + # Make sure that the animation stops and is cleaned up after itself + # when the animated label is destroyed. Note that at this point we + # cannot manipulate the widget itself, as that has already died. + # Also note that this script is in double-quotes; this is always OK + # because image names are chosen automatically to be simple words. + bind $w " + after cancel \$animationCallbacks(%W) + unset animationCallbacks(%W) + rename $image {} + " +} + +# Make some widgets to contain the animations +labelframe $w.left -text "Scrolling Texts" +labelframe $w.right -text "GIF Image" +pack $w.left $w.right -side left -padx 10 -pady 10 -expand yes + +# This method of scrolling text looks far better with a fixed-width font +label $w.left.l1 -bd 4 -relief ridge -font fixedFont +label $w.left.l2 -bd 4 -relief groove -font fixedFont +label $w.left.l3 -bd 4 -relief flat -font fixedFont -width 18 +pack $w.left.l1 $w.left.l2 $w.left.l3 -side top -expand yes -padx 10 -pady 10 -anchor w +# Don't need to do very much with this label except turn off the border +label $w.right.l -bd 0 +pack $w.right.l -side top -expand yes -padx 10 -pady 10 + +# This is a base-64-encoded animated GIF file. +set tclPoweredData { + R0lGODlhKgBAAPQAAP//////zP//AP/MzP/Mmf/MAP+Zmf+ZZv+ZAMz//8zM + zMyZmcyZZsxmZsxmAMwzAJnMzJmZzJmZmZlmmZlmZplmM5kzM2aZzGZmzGZm + mWZmZmYzZmYzMzNmzDMzZgAzmSH+IE1hZGUgd2l0aCBHSU1QIGJ5IExARGVt + YWlsbHkuY29tACH5BAVkAAEALAAAAAAqAEAAAAX+YCCOZEkyTKM2jOm66yPP + dF03bx7YcuHIDkGBR7SZeIyhTID4FZ+4Es8nQyCe2EeUNJ0peY2s9mi7PhAM + ngEAMGRbUpvzSxskLh1J+Hkg134OdDIDEB+GHxtYMEQMTjMGEYeGFoomezaC + DZGSHFmLXTQKkh8eNQVpZ2afmDQGHaOYSoEyhhcklzVmMpuHnaZmDqiGJbg0 + qFqvh6UNAwB7VA+OwydEjgujkgrPNhbTI8dFvNgEYcHcHx0lB1kX2IYeA2G6 + NN0YfkXJ2BsAMuAzHB9cZMk3qoEbRzUACsRCUBK5JxsC3iMiKd8GN088SIyT + 0RAFSROyeEg38caDiB/+JEgqxsODrZJ1BkT0oHKSmI0ceQxo94HDpg0qsuDk + UmRAMgu8OgwQ+uIJgUMVeGXA+IQkzEeHGvD8cIGlDXsLiRjQ+EHroQhea7xY + 8IQBSgYYDi1IS+OFBCgaDMGVS3fGi5BPJpBaENdQ0EomKGD56IHwO39EXiSC + Ysgxor5+Xfgq0qByYUpiXmwuoredB2aYH4gWWda0B7SeNENpEJHC1ghi+pS4 + AJpIAwWvKPBi+8YEht5EriEqpFfMlhEdkBNpx0HUhwypx5T4IB1MBg/Ws2sn + wV3MSQOkzI8fUd48Aw3dOZto71x85hHtHijYv18Gf/3GqCdDCXHNoICBobSo + IqBqJLyCoH8JPrLgdh88CKCFD0CGmAiGYPgffwceZh6FC2ohIIklnkhehTNY + 4CIHHGzgwYw01ujBBhvAqKOLLq5AAk9kuSPkkKO40NB+h1gnypJIIvkBf09a + N5QIRz5p5ZJXJpmlIVhOGQA2TmIJZZhKKmmll2BqyWSXWUrZpQtpatlmk1c2 + KaWRHeTZEJF8SqLDn/hhsOeQgBbqAh6DGqronxeARUIIACH5BAUeAAAALAUA + LgAFAAUAAAUM4CeKz/OV5YmqaRkCACH5BAUeAAEALAUALgAKAAUAAAUUICCK + z/OdJVCaa7p+7aOWcDvTZwgAIfkEBR4AAQAsCwAuAAkABQAABRPgA4zP95zA + eZqoWqqpyqLkZ38hACH5BAUKAAEALAcALgANAA4AAAU7ICA+jwiUJEqeKau+ + r+vGaTmac63v/GP9HM7GQyx+jsgkkoRUHJ3Qx0cK/VQVTKtWwbVKn9suNunc + WkMAIfkEBQoAAAAsBwA3AAcABQAABRGgIHzk842j+Yjlt5KuO8JmCAAh+QQF + CgAAACwLADcABwAFAAAFEeAnfN9TjqP5oOWziq05lmUIACH5BAUKAAAALA8A + NwAHAAUAAAUPoPCJTymS3yiQj4qOcPmEACH5BAUKAAAALBMANwAHAAUAAAUR + oCB+z/MJX2o+I2miKimiawgAIfkEBQoAAAAsFwA3AAcABQAABRGgIHzfY47j + Q4qk+aHl+pZmCAAh+QQFCgAAACwbADcABwAFAAAFEaAgfs/zCV9qPiNJouo7 + ll8IACH5BAUKAAAALB8ANwADAAUAAAUIoCB8o0iWZggAOw== +} + +# Finally, set up the text scrolling animation +animateLabelText $w.left.l1 "* Slow Animation *" 300 +animateLabelText $w.left.l2 "* Fast Animation *" 80 +animateLabelText $w.left.l3 "This is a longer scrolling text in a widget that will not show the whole message at once. " 150 +animateLabelImage $w.right.l $tclPoweredData 100 diff --git a/mingw/lib/tk8.5/demos/aniwave.tcl b/mingw/lib/tk8.5/demos/aniwave.tcl new file mode 100644 index 00000000..fd2b1ec5 --- /dev/null +++ b/mingw/lib/tk8.5/demos/aniwave.tcl @@ -0,0 +1,106 @@ +# aniwave.tcl -- +# +# This demonstration script illustrates how to adjust canvas item +# coordinates in a way that does something fairly similar to waveform +# display. +# +# RCS: @(#) $Id: aniwave.tcl,v 1.2 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .aniwave +catch {destroy $w} +toplevel $w +wm title $w "Animated Wave Demonstration" +wm iconname $w "aniwave" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration contains a canvas widget with a line item inside it. The animation routines work by adjusting the coordinates list of the line; a trace on a variable is used so updates to the variable result in a change of position of the line." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Create a canvas large enough to hold the wave. In fact, the wave +# sticks off both sides of the canvas to prevent visual glitches. +pack [canvas $w.c -width 300 -height 200 -background black] -padx 10 -pady 10 -expand yes + +# Ensure that this this is an array +array set animationCallbacks {} + +# Creates a coordinates list of a wave. This code does a very sketchy +# job and relies on Tk's line smoothing to make things look better. +set waveCoords {} +for {set x -10} {$x<=300} {incr x 5} { + lappend waveCoords $x 100 +} +lappend waveCoords $x 0 [incr x 5] 200 + +# Create a smoothed line and arrange for its coordinates to be the +# contents of the variable waveCoords. +$w.c create line $waveCoords -tags wave -width 1 -fill green -smooth 1 +proc waveCoordsTracer {w args} { + global waveCoords + # Actual visual update will wait until we have finished + # processing; Tk does that for us automatically. + $w.c coords wave $waveCoords +} +trace add variable waveCoords write [list waveCoordsTracer $w] + +# Basic motion handler. Given what direction the wave is travelling +# in, it advances the y coordinates in the coordinate-list one step in +# that direction. +proc basicMotion {} { + global waveCoords direction + set oc $waveCoords + for {set i 1} {$i<[llength $oc]} {incr i 2} { + if {$direction eq "left"} { + lset waveCoords $i [lindex $oc \ + [expr {$i+2>[llength $oc] ? 1 : $i+2}]] + } else { + lset waveCoords $i \ + [lindex $oc [expr {$i-2<0 ? "end" : $i-2}]] + } + } +} + +# Oscillation handler. This detects whether to reverse the direction +# of the wave by checking to see if the peak of the wave has moved off +# the screen (whose size we know already.) +proc reverser {} { + global waveCoords direction + if {[lindex $waveCoords 1] < 10} { + set direction "right" + } elseif {[lindex $waveCoords end] < 10} { + set direction "left" + } +} + +# Main animation "loop". This calls the two procedures that handle the +# movement repeatedly by scheduling asynchronous calls back to itself +# using the [after] command. This procedure is the fundamental basis +# for all animated effect handling in Tk. +proc move {} { + basicMotion + reverser + + # Theoretically 100 frames-per-second (==10ms between frames) + global animationCallbacks + set animationCallbacks(simpleWave) [after 10 move] +} + +# Initialise our remaining animation variables +set direction "left" +set animateAfterCallback {} +# Arrange for the animation loop to stop when the canvas is deleted +bind $w.c { + after cancel $animationCallbacks(simpleWave) + unset animationCallbacks(simpleWave) +} +# Start the animation processing +move diff --git a/mingw/lib/tk8.5/demos/arrow.tcl b/mingw/lib/tk8.5/demos/arrow.tcl new file mode 100644 index 00000000..81374738 --- /dev/null +++ b/mingw/lib/tk8.5/demos/arrow.tcl @@ -0,0 +1,239 @@ +# arrow.tcl -- +# +# This demonstration script creates a canvas widget that displays a +# large line with an arrowhead whose shape can be edited interactively. +# +# RCS: @(#) $Id: arrow.tcl,v 1.6 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# arrowSetup -- +# This procedure regenerates all the text and graphics in the canvas +# window. It's called when the canvas is initially created, and also +# whenever any of the parameters of the arrow head are changed +# interactively. +# +# Arguments: +# c - Name of the canvas widget. + +proc arrowSetup c { + upvar #0 demo_arrowInfo v + + # Remember the current box, if there is one. + + set tags [$c gettags current] + if {$tags != ""} { + set cur [lindex $tags [lsearch -glob $tags box?]] + } else { + set cur "" + } + + # Create the arrow and outline. + + $c delete all + eval {$c create line $v(x1) $v(y) $v(x2) $v(y) -arrow last \ + -width [expr {10*$v(width)}] -arrowshape [list \ + [expr {10*$v(a)}] [expr {10*$v(b)}] [expr {10*$v(c)}]]} \ + $v(bigLineStyle) + set xtip [expr {$v(x2)-10*$v(b)}] + set deltaY [expr {10*$v(c)+5*$v(width)}] + $c create line $v(x2) $v(y) $xtip [expr {$v(y)+$deltaY}] \ + [expr {$v(x2)-10*$v(a)}] $v(y) $xtip [expr {$v(y)-$deltaY}] \ + $v(x2) $v(y) -width 2 -capstyle round -joinstyle round + + # Create the boxes for reshaping the line and arrowhead. + + eval {$c create rect [expr {$v(x2)-10*$v(a)-5}] [expr {$v(y)-5}] \ + [expr {$v(x2)-10*$v(a)+5}] [expr {$v(y)+5}] \ + -tags {box1 box}} $v(boxStyle) + eval {$c create rect [expr {$xtip-5}] [expr {$v(y)-$deltaY-5}] \ + [expr {$xtip+5}] [expr {$v(y)-$deltaY+5}] \ + -tags {box2 box}} $v(boxStyle) + eval {$c create rect [expr {$v(x1)-5}] [expr {$v(y)-5*$v(width)-5}] \ + [expr {$v(x1)+5}] [expr {$v(y)-5*$v(width)+5}] \ + -tags {box3 box}} $v(boxStyle) + if {$cur != ""} { + eval $c itemconfigure $cur $v(activeStyle) + } + + # Create three arrows in actual size with the same parameters + + $c create line [expr {$v(x2)+50}] 0 [expr {$v(x2)+50}] 1000 \ + -width 2 + set tmp [expr {$v(x2)+100}] + $c create line $tmp [expr {$v(y)-125}] $tmp [expr {$v(y)-75}] \ + -width $v(width) \ + -arrow both -arrowshape "$v(a) $v(b) $v(c)" + $c create line [expr {$tmp-25}] $v(y) [expr {$tmp+25}] $v(y) \ + -width $v(width) \ + -arrow both -arrowshape "$v(a) $v(b) $v(c)" + $c create line [expr {$tmp-25}] [expr {$v(y)+75}] [expr {$tmp+25}] \ + [expr {$v(y)+125}] -width $v(width) \ + -arrow both -arrowshape "$v(a) $v(b) $v(c)" + + # Create a bunch of other arrows and text items showing the + # current dimensions. + + set tmp [expr {$v(x2)+10}] + $c create line $tmp [expr {$v(y)-5*$v(width)}] \ + $tmp [expr {$v(y)-$deltaY}] \ + -arrow both -arrowshape $v(smallTips) + $c create text [expr {$v(x2)+15}] [expr {$v(y)-$deltaY+5*$v(c)}] \ + -text $v(c) -anchor w + set tmp [expr {$v(x1)-10}] + $c create line $tmp [expr {$v(y)-5*$v(width)}] \ + $tmp [expr {$v(y)+5*$v(width)}] \ + -arrow both -arrowshape $v(smallTips) + $c create text [expr {$v(x1)-15}] $v(y) -text $v(width) -anchor e + set tmp [expr {$v(y)+5*$v(width)+10*$v(c)+10}] + $c create line [expr {$v(x2)-10*$v(a)}] $tmp $v(x2) $tmp \ + -arrow both -arrowshape $v(smallTips) + $c create text [expr {$v(x2)-5*$v(a)}] [expr {$tmp+5}] \ + -text $v(a) -anchor n + set tmp [expr {$tmp+25}] + $c create line [expr {$v(x2)-10*$v(b)}] $tmp $v(x2) $tmp \ + -arrow both -arrowshape $v(smallTips) + $c create text [expr {$v(x2)-5*$v(b)}] [expr {$tmp+5}] \ + -text $v(b) -anchor n + + $c create text $v(x1) 310 -text "-width $v(width)" \ + -anchor w -font {Helvetica 18} + $c create text $v(x1) 330 -text "-arrowshape {$v(a) $v(b) $v(c)}" \ + -anchor w -font {Helvetica 18} + + incr v(count) +} + +set w .arrow +catch {destroy $w} +toplevel $w +wm title $w "Arrowhead Editor Demonstration" +wm iconname $w "arrow" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 5i -justify left -text "This widget allows you to experiment with different widths and arrowhead shapes for lines in canvases. To change the line width or the shape of the arrowhead, drag any of the three boxes attached to the oversized arrow. The arrows on the right give examples at normal scale. The text at the bottom shows the configuration options as you'd enter them for a canvas line item." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +canvas $c -width 500 -height 350 -relief sunken -borderwidth 2 +pack $c -expand yes -fill both + +set demo_arrowInfo(a) 8 +set demo_arrowInfo(b) 10 +set demo_arrowInfo(c) 3 +set demo_arrowInfo(width) 2 +set demo_arrowInfo(motionProc) arrowMoveNull +set demo_arrowInfo(x1) 40 +set demo_arrowInfo(x2) 350 +set demo_arrowInfo(y) 150 +set demo_arrowInfo(smallTips) {5 5 2} +set demo_arrowInfo(count) 0 +if {[winfo depth $c] > 1} { + set demo_arrowInfo(bigLineStyle) "-fill SkyBlue1" + set demo_arrowInfo(boxStyle) "-fill {} -outline black -width 1" + set demo_arrowInfo(activeStyle) "-fill red -outline black -width 1" +} else { + # Main widget program sets variable tk_demoDirectory + set demo_arrowInfo(bigLineStyle) "-fill black \ + -stipple @[file join $tk_demoDirectory images grey.25]" + set demo_arrowInfo(boxStyle) "-fill {} -outline black -width 1" + set demo_arrowInfo(activeStyle) "-fill black -outline black -width 1" +} +arrowSetup $c +$c bind box "$c itemconfigure current $demo_arrowInfo(activeStyle)" +$c bind box "$c itemconfigure current $demo_arrowInfo(boxStyle)" +$c bind box " " +$c bind box " " +$c bind box1 <1> {set demo_arrowInfo(motionProc) arrowMove1} +$c bind box2 <1> {set demo_arrowInfo(motionProc) arrowMove2} +$c bind box3 <1> {set demo_arrowInfo(motionProc) arrowMove3} +$c bind box "\$demo_arrowInfo(motionProc) $c %x %y" +bind $c "arrowSetup $c" + +# arrowMove1 -- +# This procedure is called for each mouse motion event on box1 (the +# one at the vertex of the arrow). It updates the controlling parameters +# for the line and arrowhead. +# +# Arguments: +# c - The name of the canvas window. +# x, y - The coordinates of the mouse. + +proc arrowMove1 {c x y} { + upvar #0 demo_arrowInfo v + set newA [expr {($v(x2)+5-round([$c canvasx $x]))/10}] + if {$newA < 0} { + set newA 0 + } + if {$newA > 25} { + set newA 25 + } + if {$newA != $v(a)} { + $c move box1 [expr {10*($v(a)-$newA)}] 0 + set v(a) $newA + } +} + +# arrowMove2 -- +# This procedure is called for each mouse motion event on box2 (the +# one at the trailing tip of the arrowhead). It updates the controlling +# parameters for the line and arrowhead. +# +# Arguments: +# c - The name of the canvas window. +# x, y - The coordinates of the mouse. + +proc arrowMove2 {c x y} { + upvar #0 demo_arrowInfo v + set newB [expr {($v(x2)+5-round([$c canvasx $x]))/10}] + if {$newB < 0} { + set newB 0 + } + if {$newB > 25} { + set newB 25 + } + set newC [expr {($v(y)+5-round([$c canvasy $y])-5*$v(width))/10}] + if {$newC < 0} { + set newC 0 + } + if {$newC > 20} { + set newC 20 + } + if {($newB != $v(b)) || ($newC != $v(c))} { + $c move box2 [expr {10*($v(b)-$newB)}] [expr {10*($v(c)-$newC)}] + set v(b) $newB + set v(c) $newC + } +} + +# arrowMove3 -- +# This procedure is called for each mouse motion event on box3 (the +# one that controls the thickness of the line). It updates the +# controlling parameters for the line and arrowhead. +# +# Arguments: +# c - The name of the canvas window. +# x, y - The coordinates of the mouse. + +proc arrowMove3 {c x y} { + upvar #0 demo_arrowInfo v + set newWidth [expr {($v(y)+2-round([$c canvasy $y]))/5}] + if {$newWidth < 0} { + set newWidth 0 + } + if {$newWidth > 20} { + set newWidth 20 + } + if {$newWidth != $v(width)} { + $c move box3 0 [expr {5*($v(width)-$newWidth)}] + set v(width) $newWidth + } +} diff --git a/mingw/lib/tk8.5/demos/bind.tcl b/mingw/lib/tk8.5/demos/bind.tcl new file mode 100644 index 00000000..5e67834f --- /dev/null +++ b/mingw/lib/tk8.5/demos/bind.tcl @@ -0,0 +1,80 @@ +# bind.tcl -- +# +# This demonstration script creates a text widget with bindings set +# up for hypertext-like effects. +# +# RCS: @(#) $Id: bind.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .bind +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Tag Bindings" +wm iconname $w "bind" +positionWindow $w + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +text $w.text -yscrollcommand "$w.scroll set" -setgrid true \ + -width 60 -height 24 -font $font -wrap word +scrollbar $w.scroll -command "$w.text yview" +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both + +# Set up display styles. + +if {[winfo depth $w] > 1} { + set bold "-background #43ce80 -relief raised -borderwidth 1" + set normal "-background {} -relief flat" +} else { + set bold "-foreground white -background black" + set normal "-foreground {} -background {}" +} + +# Add text to widget. + +$w.text insert 0.0 {\ +The same tag mechanism that controls display styles in text widgets can also be used to associate Tcl commands with regions of text, so that mouse or keyboard actions on the text cause particular Tcl commands to be invoked. For example, in the text below the descriptions of the canvas demonstrations have been tagged. When you move the mouse over a demo description the description lights up, and when you press button 1 over a description then that particular demonstration is invoked. + +} +$w.text insert end \ +{1. Samples of all the different types of items that can be created in canvas widgets.} d1 +$w.text insert end \n\n +$w.text insert end \ +{2. A simple two-dimensional plot that allows you to adjust the positions of the data points.} d2 +$w.text insert end \n\n +$w.text insert end \ +{3. Anchoring and justification modes for text items.} d3 +$w.text insert end \n\n +$w.text insert end \ +{4. An editor for arrow-head shapes for line items.} d4 +$w.text insert end \n\n +$w.text insert end \ +{5. A ruler with facilities for editing tab stops.} d5 +$w.text insert end \n\n +$w.text insert end \ +{6. A grid that demonstrates how canvases can be scrolled.} d6 + +# Create bindings for tags. + +foreach tag {d1 d2 d3 d4 d5 d6} { + $w.text tag bind $tag "$w.text tag configure $tag $bold" + $w.text tag bind $tag "$w.text tag configure $tag $normal" +} +# Main widget program sets variable tk_demoDirectory +$w.text tag bind d1 <1> {source [file join $tk_demoDirectory items.tcl]} +$w.text tag bind d2 <1> {source [file join $tk_demoDirectory plot.tcl]} +$w.text tag bind d3 <1> {source [file join $tk_demoDirectory ctext.tcl]} +$w.text tag bind d4 <1> {source [file join $tk_demoDirectory arrow.tcl]} +$w.text tag bind d5 <1> {source [file join $tk_demoDirectory ruler.tcl]} +$w.text tag bind d6 <1> {source [file join $tk_demoDirectory cscroll.tcl]} + +$w.text mark set insert 0.0 +$w.text configure -state disabled diff --git a/mingw/lib/tk8.5/demos/bitmap.tcl b/mingw/lib/tk8.5/demos/bitmap.tcl new file mode 100644 index 00000000..e439d092 --- /dev/null +++ b/mingw/lib/tk8.5/demos/bitmap.tcl @@ -0,0 +1,54 @@ +# bitmap.tcl -- +# +# This demonstration script creates a toplevel window that displays +# all of Tk's built-in bitmaps. +# +# RCS: @(#) $Id: bitmap.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# bitmapRow -- +# Create a row of bitmap items in a window. +# +# Arguments: +# w - The window that is to contain the row. +# args - The names of one or more bitmaps, which will be displayed +# in a new row across the bottom of w along with their +# names. + +proc bitmapRow {w args} { + frame $w + pack $w -side top -fill both + set i 0 + foreach bitmap $args { + frame $w.$i + pack $w.$i -side left -fill both -pady .25c -padx .25c + label $w.$i.bitmap -bitmap $bitmap + label $w.$i.label -text $bitmap -width 9 + pack $w.$i.label $w.$i.bitmap -side bottom + incr i + } +} + +set w .bitmap +catch {destroy $w} +toplevel $w +wm title $w "Bitmap Demonstration" +wm iconname $w "bitmap" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This window displays all of Tk's built-in bitmaps, along with the names you can use for them in Tcl scripts." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame +bitmapRow $w.frame.0 error gray12 gray25 gray50 gray75 +bitmapRow $w.frame.1 hourglass info question questhead warning +pack $w.frame -side top -expand yes -fill both diff --git a/mingw/lib/tk8.5/demos/browse b/mingw/lib/tk8.5/demos/browse new file mode 100644 index 00000000..ced8385d --- /dev/null +++ b/mingw/lib/tk8.5/demos/browse @@ -0,0 +1,68 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" ${1+"$@"} + +# browse -- +# This script generates a directory browser, which lists the working +# directory and allows you to open files or subdirectories by +# double-clicking. +# +# RCS: @(#) $Id: browse,v 1.5 2003/09/30 14:54:29 dkf Exp $ + +package require Tk + +# Create a scrollbar on the right side of the main window and a listbox +# on the left side. + +scrollbar .scroll -command ".list yview" +pack .scroll -side right -fill y +listbox .list -yscroll ".scroll set" -relief sunken -width 20 -height 20 \ + -setgrid yes +pack .list -side left -fill both -expand yes +wm minsize . 1 1 + +# The procedure below is invoked to open a browser on a given file; if the +# file is a directory then another instance of this program is invoked; if +# the file is a regular file then the Mx editor is invoked to display +# the file. + +set browseScript [file join [pwd] $argv0] +proc browse {dir file} { + global env browseScript + if {[string compare $dir "."] != 0} {set file $dir/$file} + switch [file type $file] { + directory { + exec [info nameofexecutable] $browseScript $file & + } + file { + if {[info exists env(EDITOR)]} { + eval exec $env(EDITOR) $file & + } else { + exec xedit $file & + } + } + default { + puts stdout "\"$file\" isn't a directory or regular file" + } + } +} + +# Fill the listbox with a list of all the files in the directory. + +if {$argc>0} {set dir [lindex $argv 0]} else {set dir "."} +foreach i [lsort [glob * .* *.*]] { + if {[file type $i] eq "directory"} { + # Safe to do since it is still a directory. + append i / + } + .list insert end $i +} + +# Set up bindings for the browser. + +bind all {destroy .} +bind .list {foreach i [selection get] {browse $dir $i}} + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/button.tcl b/mingw/lib/tk8.5/demos/button.tcl new file mode 100644 index 00000000..6bde4baa --- /dev/null +++ b/mingw/lib/tk8.5/demos/button.tcl @@ -0,0 +1,49 @@ +# button.tcl -- +# +# This demonstration script creates a toplevel window containing +# several button widgets. +# +# RCS: @(#) $Id: button.tcl,v 1.8 2007/10/17 18:21:49 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .button +catch {destroy $w} +toplevel $w +wm title $w "Button Demonstration" +wm iconname $w "button" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "If you click on any of the four buttons below, the background of the button area will change to the color indicated in the button. You can press Tab to move among the buttons, then press Space to invoke the current button." +pack $w.msg -side top + +## See Code / Dismiss buttons +pack [addSeeDismiss $w.buttons $w] -side bottom -fill x + +proc colorrefresh {w col} { + $w configure -bg $col + if {[tk windowingsystem] eq "aqua"} { + # set highlightbackground of all buttons in $w + set l [list $w] + while {[llength $l]} { + set l [concat [lassign $l b] [winfo children $b]] + if {[winfo class $b] eq "Button"} { + $b configure -highlightbackground $col + } + } + } +} + +button $w.b1 -text "Peach Puff" -width 10 \ + -command [list colorrefresh $w PeachPuff1] +button $w.b2 -text "Light Blue" -width 10 \ + -command [list colorrefresh $w LightBlue1] +button $w.b3 -text "Sea Green" -width 10 \ + -command [list colorrefresh $w SeaGreen2] +button $w.b4 -text "Yellow" -width 10 \ + -command [list colorrefresh $w Yellow1] +pack $w.b1 $w.b2 $w.b3 $w.b4 -side top -expand yes -pady 2 diff --git a/mingw/lib/tk8.5/demos/check.tcl b/mingw/lib/tk8.5/demos/check.tcl new file mode 100644 index 00000000..9c391539 --- /dev/null +++ b/mingw/lib/tk8.5/demos/check.tcl @@ -0,0 +1,73 @@ +# check.tcl -- +# +# This demonstration script creates a toplevel window containing +# several checkbuttons. +# +# RCS: @(#) $Id: check.tcl,v 1.6 2007/10/15 21:06:17 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .check +catch {destroy $w} +toplevel $w +wm title $w "Checkbutton Demonstration" +wm iconname $w "check" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Four checkbuttons are displayed below. If you click on a button, it will toggle the button's selection state and set a Tcl variable to a value indicating the state of the checkbutton. The first button also follows the state of the other three. If only some of the three are checked, the first button will display the tri-state mode. Click the \"See Variables\" button to see the current values of the variables." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w [list safety wipers brakes sober]] +pack $btns -side bottom -fill x + +checkbutton $w.b0 -text "Safety Check" -variable safety -relief flat \ + -onvalue "all" \ + -offvalue "none" \ + -tristatevalue "partial" +checkbutton $w.b1 -text "Wipers OK" -variable wipers -relief flat +checkbutton $w.b2 -text "Brakes OK" -variable brakes -relief flat +checkbutton $w.b3 -text "Driver Sober" -variable sober -relief flat +pack $w.b0 -side top -pady 2 -anchor w +pack $w.b1 $w.b2 $w.b3 -side top -pady 2 -anchor w -padx 15 + +## This code makes $w.b0 function as a tri-state button; it's not +## needed at all for just straight yes/no buttons. + +set in_check 0 +proc tristate_check {n1 n2 op} { + global safety wipers brakes sober in_check + if {$in_check} { + return + } + set in_check 1 + if {$n1 eq "safety"} { + if {$safety eq "none"} { + set wipers 0 + set brakes 0 + set sober 0 + } elseif {$safety eq "all"} { + set wipers 1 + set brakes 1 + set sober 1 + } + } else { + if {$wipers == 1 && $brakes == 1 && $sober == 1} { + set safety all + } elseif {$wipers == 1 || $brakes == 1 || $sober == 1} { + set safety partial + } else { + set safety none + } + } + set in_check 0 +} + +trace variable wipers w tristate_check +trace variable brakes w tristate_check +trace variable sober w tristate_check +trace variable safety w tristate_check diff --git a/mingw/lib/tk8.5/demos/clrpick.tcl b/mingw/lib/tk8.5/demos/clrpick.tcl new file mode 100644 index 00000000..c20b98f5 --- /dev/null +++ b/mingw/lib/tk8.5/demos/clrpick.tcl @@ -0,0 +1,56 @@ +# clrpick.tcl -- +# +# This demonstration script prompts the user to select a color. +# +# RCS: @(#) $Id: clrpick.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .clrpick +catch {destroy $w} +toplevel $w +wm title $w "Color Selection Dialog" +wm iconname $w "colors" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Press the buttons below to choose the foreground and background colors for the widgets in this window." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +button $w.back -text "Set background color ..." \ + -command \ + "setColor $w $w.back background {-background -highlightbackground}" +button $w.fore -text "Set foreground color ..." \ + -command \ + "setColor $w $w.back foreground -foreground" + +pack $w.back $w.fore -side top -anchor c -pady 2m + +proc setColor {w button name options} { + grab $w + set initialColor [$button cget -$name] + set color [tk_chooseColor -title "Choose a $name color" -parent $w \ + -initialcolor $initialColor] + if {[string compare $color ""]} { + setColor_helper $w $options $color + } + grab release $w +} + +proc setColor_helper {w options color} { + foreach option $options { + catch { + $w config $option $color + } + } + foreach child [winfo children $w] { + setColor_helper $child $options $color + } +} diff --git a/mingw/lib/tk8.5/demos/colors.tcl b/mingw/lib/tk8.5/demos/colors.tcl new file mode 100644 index 00000000..abd9fb0e --- /dev/null +++ b/mingw/lib/tk8.5/demos/colors.tcl @@ -0,0 +1,101 @@ +# colors.tcl -- +# +# This demonstration script creates a listbox widget that displays +# many of the colors from the X color database. You can click on +# a color to change the application's palette. +# +# RCS: @(#) $Id: colors.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .colors +catch {destroy $w} +toplevel $w +wm title $w "Listbox Demonstration (colors)" +wm iconname $w "Listbox" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing several color names is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by dragging in the listbox window with button 2 pressed. If you double-click button 1 on a color, then the application's color palette will be set to match that color" +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth 10 +pack $w.frame -side top -expand yes -fill y + +scrollbar $w.frame.scroll -command "$w.frame.list yview" +listbox $w.frame.list -yscroll "$w.frame.scroll set" \ + -width 20 -height 16 -setgrid 1 +pack $w.frame.list $w.frame.scroll -side left -fill y -expand 1 + +bind $w.frame.list { + tk_setPalette [selection get] +} +$w.frame.list insert 0 gray60 gray70 gray80 gray85 gray90 gray95 \ + snow1 snow2 snow3 snow4 seashell1 seashell2 \ + seashell3 seashell4 AntiqueWhite1 AntiqueWhite2 AntiqueWhite3 \ + AntiqueWhite4 bisque1 bisque2 bisque3 bisque4 PeachPuff1 \ + PeachPuff2 PeachPuff3 PeachPuff4 NavajoWhite1 NavajoWhite2 \ + NavajoWhite3 NavajoWhite4 LemonChiffon1 LemonChiffon2 \ + LemonChiffon3 LemonChiffon4 cornsilk1 cornsilk2 cornsilk3 \ + cornsilk4 ivory1 ivory2 ivory3 ivory4 honeydew1 honeydew2 \ + honeydew3 honeydew4 LavenderBlush1 LavenderBlush2 \ + LavenderBlush3 LavenderBlush4 MistyRose1 MistyRose2 \ + MistyRose3 MistyRose4 azure1 azure2 azure3 azure4 \ + SlateBlue1 SlateBlue2 SlateBlue3 SlateBlue4 RoyalBlue1 \ + RoyalBlue2 RoyalBlue3 RoyalBlue4 blue1 blue2 blue3 blue4 \ + DodgerBlue1 DodgerBlue2 DodgerBlue3 DodgerBlue4 SteelBlue1 \ + SteelBlue2 SteelBlue3 SteelBlue4 DeepSkyBlue1 DeepSkyBlue2 \ + DeepSkyBlue3 DeepSkyBlue4 SkyBlue1 SkyBlue2 SkyBlue3 \ + SkyBlue4 LightSkyBlue1 LightSkyBlue2 LightSkyBlue3 \ + LightSkyBlue4 SlateGray1 SlateGray2 SlateGray3 SlateGray4 \ + LightSteelBlue1 LightSteelBlue2 LightSteelBlue3 \ + LightSteelBlue4 LightBlue1 LightBlue2 LightBlue3 \ + LightBlue4 LightCyan1 LightCyan2 LightCyan3 LightCyan4 \ + PaleTurquoise1 PaleTurquoise2 PaleTurquoise3 PaleTurquoise4 \ + CadetBlue1 CadetBlue2 CadetBlue3 CadetBlue4 turquoise1 \ + turquoise2 turquoise3 turquoise4 cyan1 cyan2 cyan3 cyan4 \ + DarkSlateGray1 DarkSlateGray2 DarkSlateGray3 \ + DarkSlateGray4 aquamarine1 aquamarine2 aquamarine3 \ + aquamarine4 DarkSeaGreen1 DarkSeaGreen2 DarkSeaGreen3 \ + DarkSeaGreen4 SeaGreen1 SeaGreen2 SeaGreen3 SeaGreen4 \ + PaleGreen1 PaleGreen2 PaleGreen3 PaleGreen4 SpringGreen1 \ + SpringGreen2 SpringGreen3 SpringGreen4 green1 green2 \ + green3 green4 chartreuse1 chartreuse2 chartreuse3 \ + chartreuse4 OliveDrab1 OliveDrab2 OliveDrab3 OliveDrab4 \ + DarkOliveGreen1 DarkOliveGreen2 DarkOliveGreen3 \ + DarkOliveGreen4 khaki1 khaki2 khaki3 khaki4 \ + LightGoldenrod1 LightGoldenrod2 LightGoldenrod3 \ + LightGoldenrod4 LightYellow1 LightYellow2 LightYellow3 \ + LightYellow4 yellow1 yellow2 yellow3 yellow4 gold1 gold2 \ + gold3 gold4 goldenrod1 goldenrod2 goldenrod3 goldenrod4 \ + DarkGoldenrod1 DarkGoldenrod2 DarkGoldenrod3 DarkGoldenrod4 \ + RosyBrown1 RosyBrown2 RosyBrown3 RosyBrown4 IndianRed1 \ + IndianRed2 IndianRed3 IndianRed4 sienna1 sienna2 sienna3 \ + sienna4 burlywood1 burlywood2 burlywood3 burlywood4 wheat1 \ + wheat2 wheat3 wheat4 tan1 tan2 tan3 tan4 chocolate1 \ + chocolate2 chocolate3 chocolate4 firebrick1 firebrick2 \ + firebrick3 firebrick4 brown1 brown2 brown3 brown4 salmon1 \ + salmon2 salmon3 salmon4 LightSalmon1 LightSalmon2 \ + LightSalmon3 LightSalmon4 orange1 orange2 orange3 orange4 \ + DarkOrange1 DarkOrange2 DarkOrange3 DarkOrange4 coral1 \ + coral2 coral3 coral4 tomato1 tomato2 tomato3 tomato4 \ + OrangeRed1 OrangeRed2 OrangeRed3 OrangeRed4 red1 red2 red3 \ + red4 DeepPink1 DeepPink2 DeepPink3 DeepPink4 HotPink1 \ + HotPink2 HotPink3 HotPink4 pink1 pink2 pink3 pink4 \ + LightPink1 LightPink2 LightPink3 LightPink4 PaleVioletRed1 \ + PaleVioletRed2 PaleVioletRed3 PaleVioletRed4 maroon1 \ + maroon2 maroon3 maroon4 VioletRed1 VioletRed2 VioletRed3 \ + VioletRed4 magenta1 magenta2 magenta3 magenta4 orchid1 \ + orchid2 orchid3 orchid4 plum1 plum2 plum3 plum4 \ + MediumOrchid1 MediumOrchid2 MediumOrchid3 MediumOrchid4 \ + DarkOrchid1 DarkOrchid2 DarkOrchid3 DarkOrchid4 purple1 \ + purple2 purple3 purple4 MediumPurple1 MediumPurple2 \ + MediumPurple3 MediumPurple4 thistle1 thistle2 thistle3 \ + thistle4 diff --git a/mingw/lib/tk8.5/demos/combo.tcl b/mingw/lib/tk8.5/demos/combo.tcl new file mode 100644 index 00000000..2ebce5bd --- /dev/null +++ b/mingw/lib/tk8.5/demos/combo.tcl @@ -0,0 +1,64 @@ +# combo.tcl -- +# +# This demonstration script creates several combobox widgets. +# +# RCS: @(#) $Id: combo.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .combo +catch {destroy $w} +toplevel $w +wm title $w "Combobox Demonstration" +wm iconname $w "combo" +positionWindow $w + +ttk::label $w.msg -font $font -wraplength 5i -justify left -text "Three different\ + combo-boxes are displayed below. You can add characters to the first\ + one by pointing, clicking and typing, just as with an entry; pressing\ + Return will cause the current value to be added to the list that is\ + selectable from the drop-down list, and you can choose other values\ + by pressing the Down key, using the arrow keys to pick another one,\ + and pressing Return again. The second combo-box is fixed to a\ + particular value, and cannot be modified at all. The third one only\ + allows you to select values from its drop-down list of Australian\ + cities." +pack $w.msg -side top -fill x + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w {firstValue secondValue ozCity}] +pack $btns -side bottom -fill x + +ttk::frame $w.f +pack $w.f -fill both -expand 1 +set w $w.f + +set australianCities { + Canberra Sydney Melbourne Perth Adelaide Brisbane + Hobart Darwin "Alice Springs" +} +set secondValue unchangable +set ozCity Sydney + +ttk::labelframe $w.c1 -text "Fully Editable" +ttk::combobox $w.c1.c -textvariable firstValue +ttk::labelframe $w.c2 -text Disabled +ttk::combobox $w.c2.c -textvariable secondValue -state disabled +ttk::labelframe $w.c3 -text "Defined List Only" +ttk::combobox $w.c3.c -textvariable ozCity -state readonly \ + -values $australianCities +bind $w.c1.c { + if {[%W get] ni [%W cget -values]} { + %W configure -values [concat [%W cget -values] [list [%W get]]] + } +} + +pack $w.c1 $w.c2 $w.c3 -side top -pady 5 -padx 10 +pack $w.c1.c -pady 5 -padx 10 +pack $w.c2.c -pady 5 -padx 10 +pack $w.c3.c -pady 5 -padx 10 diff --git a/mingw/lib/tk8.5/demos/cscroll.tcl b/mingw/lib/tk8.5/demos/cscroll.tcl new file mode 100644 index 00000000..7ad390a2 --- /dev/null +++ b/mingw/lib/tk8.5/demos/cscroll.tcl @@ -0,0 +1,110 @@ +# cscroll.tcl -- +# +# This demonstration script creates a simple canvas that can be +# scrolled in two dimensions. +# +# RCS: @(#) $Id: cscroll.tcl,v 1.6 2005/12/13 03:44:34 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .cscroll +catch {destroy $w} +toplevel $w +wm title $w "Scrollable Canvas Demonstration" +wm iconname $w "cscroll" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 4i -justify left -text "This window displays a canvas widget that can be scrolled either using the scrollbars or by dragging with button 2 in the canvas. If you click button 1 on one of the rectangles, its indices will be printed on stdout." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.grid +scrollbar $w.hscroll -orient horiz -command "$c xview" +scrollbar $w.vscroll -command "$c yview" +canvas $c -relief sunken -borderwidth 2 -scrollregion {-11c -11c 50c 20c} \ + -xscrollcommand "$w.hscroll set" \ + -yscrollcommand "$w.vscroll set" +pack $w.grid -expand yes -fill both -padx 1 -pady 1 +grid rowconfig $w.grid 0 -weight 1 -minsize 0 +grid columnconfig $w.grid 0 -weight 1 -minsize 0 + +grid $c -padx 1 -in $w.grid -pady 1 \ + -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid $w.vscroll -in $w.grid -padx 1 -pady 1 \ + -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +grid $w.hscroll -in $w.grid -padx 1 -pady 1 \ + -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news + + +set bg [lindex [$c config -bg] 4] +for {set i 0} {$i < 20} {incr i} { + set x [expr {-10 + 3*$i}] + for {set j 0; set y -10} {$j < 10} {incr j; incr y 3} { + $c create rect ${x}c ${y}c [expr {$x+2}]c [expr {$y+2}]c \ + -outline black -fill $bg -tags rect + $c create text [expr {$x+1}]c [expr {$y+1}]c -text "$i,$j" \ + -anchor center -tags text + } +} + +$c bind all "scrollEnter $c" +$c bind all "scrollLeave $c" +$c bind all <1> "scrollButton $c" +bind $c <2> "$c scan mark %x %y" +bind $c "$c scan dragto %x %y" +if {[tk windowingsystem] eq "aqua"} { + bind $c { + %W yview scroll [expr {- (%D)}] units + } + bind $c { + %W yview scroll [expr {-10 * (%D)}] units + } + bind $c { + %W xview scroll [expr {- (%D)}] units + } + bind $c { + %W xview scroll [expr {-10 * (%D)}] units + } +} + +proc scrollEnter canvas { + global oldFill + set id [$canvas find withtag current] + if {[lsearch [$canvas gettags current] text] >= 0} { + set id [expr {$id-1}] + } + set oldFill [lindex [$canvas itemconfig $id -fill] 4] + if {[winfo depth $canvas] > 1} { + $canvas itemconfigure $id -fill SeaGreen1 + } else { + $canvas itemconfigure $id -fill black + $canvas itemconfigure [expr {$id+1}] -fill white + } +} + +proc scrollLeave canvas { + global oldFill + set id [$canvas find withtag current] + if {[lsearch [$canvas gettags current] text] >= 0} { + set id [expr {$id-1}] + } + $canvas itemconfigure $id -fill $oldFill + $canvas itemconfigure [expr {$id+1}] -fill black +} + +proc scrollButton canvas { + global oldFill + set id [$canvas find withtag current] + if {[lsearch [$canvas gettags current] text] < 0} { + set id [expr {$id+1}] + } + puts stdout "You buttoned at [lindex [$canvas itemconf $id -text] 4]" +} diff --git a/mingw/lib/tk8.5/demos/ctext.tcl b/mingw/lib/tk8.5/demos/ctext.tcl new file mode 100644 index 00000000..b65635b7 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ctext.tcl @@ -0,0 +1,147 @@ +# ctext.tcl -- +# +# This demonstration script creates a canvas widget with a text +# item that can be edited and reconfigured in various ways. +# +# RCS: @(#) $Id: ctext.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .ctext +catch {destroy $w} +toplevel $w +wm title $w "Canvas Text Demonstration" +wm iconname $w "Text" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 5i -justify left -text "This window displays a string of text to demonstrate the text facilities of canvas widgets. You can click in the boxes to adjust the position of the text relative to its positioning point or change its justification. The text also supports the following simple bindings for editing: + 1. You can point, click, and type. + 2. You can also select with button 1. + 3. You can copy the selection to the mouse position with button 2. + 4. Backspace and Control+h delete the selection if there is one; + otherwise they delete the character just before the insertion cursor. + 5. Delete deletes the selection if there is one; otherwise it deletes + the character just after the insertion cursor." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +canvas $c -relief flat -borderwidth 0 -width 500 -height 350 +pack $w.c -side top -expand yes -fill both + +set textFont {Helvetica 24} + +$c create rectangle 245 195 255 205 -outline black -fill red + +# First, create the text item and give it bindings so it can be edited. + +$c addtag text withtag [$c create text 250 200 -text "This is just a string of text to demonstrate the text facilities of canvas widgets. Bindings have been been defined to support editing (see above)." -width 440 -anchor n -font {Helvetica 24} -justify left] +$c bind text <1> "textB1Press $c %x %y" +$c bind text "textB1Move $c %x %y" +$c bind text "$c select adjust current @%x,%y" +$c bind text "textB1Move $c %x %y" +$c bind text "textInsert $c %A" +$c bind text "textInsert $c \\n" +$c bind text "textBs $c" +$c bind text "textBs $c" +$c bind text "textDel $c" +$c bind text <2> "textPaste $c @%x,%y" + +# Next, create some items that allow the text's anchor position +# to be edited. + +proc mkTextConfig {w x y option value color} { + set item [$w create rect $x $y [expr {$x+30}] [expr {$y+30}] \ + -outline black -fill $color -width 1] + $w bind $item <1> "$w itemconf text $option $value" + $w addtag config withtag $item +} + +set x 50 +set y 50 +set color LightSkyBlue1 +mkTextConfig $c $x $y -anchor se $color +mkTextConfig $c [expr {$x+30}] [expr {$y }] -anchor s $color +mkTextConfig $c [expr {$x+60}] [expr {$y }] -anchor sw $color +mkTextConfig $c [expr {$x }] [expr {$y+30}] -anchor e $color +mkTextConfig $c [expr {$x+30}] [expr {$y+30}] -anchor center $color +mkTextConfig $c [expr {$x+60}] [expr {$y+30}] -anchor w $color +mkTextConfig $c [expr {$x }] [expr {$y+60}] -anchor ne $color +mkTextConfig $c [expr {$x+30}] [expr {$y+60}] -anchor n $color +mkTextConfig $c [expr {$x+60}] [expr {$y+60}] -anchor nw $color +set item [$c create rect \ + [expr {$x+40}] [expr {$y+40}] [expr {$x+50}] [expr {$y+50}] \ + -outline black -fill red] +$c bind $item <1> "$c itemconf text -anchor center" +$c create text [expr {$x+45}] [expr {$y-5}] \ + -text {Text Position} -anchor s -font {Times 24} -fill brown + +# Lastly, create some items that allow the text's justification to be +# changed. + +set x 350 +set y 50 +set color SeaGreen2 +mkTextConfig $c $x $y -justify left $color +mkTextConfig $c [expr {$x+30}] $y -justify center $color +mkTextConfig $c [expr {$x+60}] $y -justify right $color +$c create text [expr {$x+45}] [expr {$y-5}] \ + -text {Justification} -anchor s -font {Times 24} -fill brown + +$c bind config "textEnter $c" +$c bind config "$c itemconf current -fill \$textConfigFill" + +set textConfigFill {} + +proc textEnter {w} { + global textConfigFill + set textConfigFill [lindex [$w itemconfig current -fill] 4] + $w itemconfig current -fill black +} + +proc textInsert {w string} { + if {$string == ""} { + return + } + catch {$w dchars text sel.first sel.last} + $w insert text insert $string +} + +proc textPaste {w pos} { + catch { + $w insert text $pos [selection get] + } +} + +proc textB1Press {w x y} { + $w icursor current @$x,$y + $w focus current + focus $w + $w select from current @$x,$y +} + +proc textB1Move {w x y} { + $w select to current @$x,$y +} + +proc textBs {w} { + if {![catch {$w dchars text sel.first sel.last}]} { + return + } + set char [expr {[$w index text insert] - 1}] + if {$char >= 0} {$w dchar text $char} +} + +proc textDel {w} { + if {![catch {$w dchars text sel.first sel.last}]} { + return + } + $w dchars text insert +} diff --git a/mingw/lib/tk8.4/demos/dialog1.tcl b/mingw/lib/tk8.5/demos/dialog1.tcl similarity index 100% rename from mingw/lib/tk8.4/demos/dialog1.tcl rename to mingw/lib/tk8.5/demos/dialog1.tcl diff --git a/mingw/lib/tk8.4/demos/dialog2.tcl b/mingw/lib/tk8.5/demos/dialog2.tcl similarity index 100% rename from mingw/lib/tk8.4/demos/dialog2.tcl rename to mingw/lib/tk8.5/demos/dialog2.tcl diff --git a/mingw/lib/tk8.5/demos/en.msg b/mingw/lib/tk8.5/demos/en.msg new file mode 100644 index 00000000..d4783fe7 --- /dev/null +++ b/mingw/lib/tk8.5/demos/en.msg @@ -0,0 +1,97 @@ +::msgcat::mcset en "Widget Demonstration" +::msgcat::mcset en "tkWidgetDemo" +::msgcat::mcset en "&File" +::msgcat::mcset en "About..." +::msgcat::mcset en "&About..." +::msgcat::mcset en "" +::msgcat::mcset en "&Quit" +::msgcat::mcset en "Meta+Q" ;# Displayed hotkey +::msgcat::mcset en "Meta-q" ;# Actual binding sequence +::msgcat::mcset en "Ctrl+Q" ;# Displayed hotkey +::msgcat::mcset en "Control-q" ;# Actual binding sequence +::msgcat::mcset en "Variable values" +::msgcat::mcset en "Variable values:" +::msgcat::mcset en "OK" +::msgcat::mcset en "Run the \"%s\" sample program" +::msgcat::mcset en "Dismiss" +::msgcat::mcset en "Rerun Demo" +::msgcat::mcset en "Demo code: %s" +::msgcat::mcset en "About Widget Demo" +::msgcat::mcset en "Tk widget demonstration application" +::msgcat::mcset en "Copyright (c) %s" "Copyright \u00a9 %s" +::msgcat::mcset en " + @@title + Tk Widget Demonstrations + @@newline + @@normal + @@newline + + This application provides a front end for several short scripts + that demonstrate what you can do with Tk widgets. Each of the + numbered lines below describes a demonstration; you can click on + it to invoke the demonstration. Once the demonstration window + appears, you can click the + @@bold + See Code + @@normal + button to see the Tcl/Tk code that created the demonstration. If + you wish, you can edit the code and click the + @@bold + Rerun Demo + @@normal + button in the code window to reinvoke the demonstration with the + modified code. + @@newline +" +::msgcat::mcset en "Labels, buttons, checkbuttons, and radiobuttons" +::msgcat::mcset en "Labels (text and bitmaps)" +::msgcat::mcset en "Labels and UNICODE text" +::msgcat::mcset en "Buttons" +::msgcat::mcset en "Check-buttons (select any of a group)" +::msgcat::mcset en "Radio-buttons (select one of a group)" +::msgcat::mcset en "A 15-puzzle game made out of buttons" +::msgcat::mcset en "Iconic buttons that use bitmaps" +::msgcat::mcset en "Two labels displaying images" +::msgcat::mcset en "A simple user interface for viewing images" +::msgcat::mcset en "Labelled frames" +::msgcat::mcset en "Listboxes" +::msgcat::mcset en "The 50 states" +::msgcat::mcset en "Colors: change the color scheme for the application" +::msgcat::mcset en "A collection of famous and infamous sayings" +::msgcat::mcset en "Entries and Spin-boxes" +::msgcat::mcset en "Entries without scrollbars" +::msgcat::mcset en "Entries with scrollbars" +::msgcat::mcset en "Validated entries and password fields" +::msgcat::mcset en "Spin-boxes" +::msgcat::mcset en "Simple Rolodex-like form" +::msgcat::mcset en "Text" +::msgcat::mcset en "Basic editable text" +::msgcat::mcset en "Text display styles" +::msgcat::mcset en "Hypertext (tag bindings)" +::msgcat::mcset en "A text widget with embedded windows" +::msgcat::mcset en "A search tool built with a text widget" +::msgcat::mcset en "Canvases" +::msgcat::mcset en "The canvas item types" +::msgcat::mcset en "A simple 2-D plot" +::msgcat::mcset en "Text items in canvases" +::msgcat::mcset en "An editor for arrowheads on canvas lines" +::msgcat::mcset en "A ruler with adjustable tab stops" +::msgcat::mcset en "A building floor plan" +::msgcat::mcset en "A simple scrollable canvas" +::msgcat::mcset en "Scales" +::msgcat::mcset en "Horizontal scale" +::msgcat::mcset en "Vertical scale" +::msgcat::mcset en "Paned Windows" +::msgcat::mcset en "Horizontal paned window" +::msgcat::mcset en "Vertical paned window" +::msgcat::mcset en "Menus" +::msgcat::mcset en "Menus and cascades (sub-menus)" +::msgcat::mcset en "Menu-buttons" +::msgcat::mcset en "Common Dialogs" +::msgcat::mcset en "Message boxes" +::msgcat::mcset en "File selection dialog" +::msgcat::mcset en "Color picker" +::msgcat::mcset en "Miscellaneous" +::msgcat::mcset en "The built-in bitmaps" +::msgcat::mcset en "A dialog box with a local grab" +::msgcat::mcset en "A dialog box with a global grab" diff --git a/mingw/lib/tk8.5/demos/entry1.tcl b/mingw/lib/tk8.5/demos/entry1.tcl new file mode 100644 index 00000000..f7faf699 --- /dev/null +++ b/mingw/lib/tk8.5/demos/entry1.tcl @@ -0,0 +1,36 @@ +# entry1.tcl -- +# +# This demonstration script creates several entry widgets without +# scrollbars. +# +# RCS: @(#) $Id: entry1.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .entry1 +catch {destroy $w} +toplevel $w +wm title $w "Entry Demonstration (no scrollbars)" +wm iconname $w "entry1" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "Three different entries are displayed below. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries by dragging with mouse button2 pressed." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +entry $w.e1 +entry $w.e2 +entry $w.e3 +pack $w.e1 $w.e2 $w.e3 -side top -pady 5 -padx 10 -fill x + +$w.e1 insert 0 "Initial value" +$w.e2 insert end "This entry contains a long value, much too long " +$w.e2 insert end "to fit in the window at one time, so long in fact " +$w.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.5/demos/entry2.tcl b/mingw/lib/tk8.5/demos/entry2.tcl new file mode 100644 index 00000000..34595911 --- /dev/null +++ b/mingw/lib/tk8.5/demos/entry2.tcl @@ -0,0 +1,48 @@ +# entry2.tcl -- +# +# This demonstration script is the same as the entry1.tcl script +# except that it creates scrollbars for the entries. +# +# RCS: @(#) $Id: entry2.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .entry2 +catch {destroy $w} +toplevel $w +wm title $w "Entry Demonstration (with scrollbars)" +wm iconname $w "entry2" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "Three different entries are displayed below, with a scrollbar for each entry. You can add characters by pointing, clicking and typing. The normal Motif editing characters are supported, along with many Emacs bindings. For example, Backspace and Control-h delete the character to the left of the insertion cursor and Delete and Control-d delete the chararacter to the right of the insertion cursor. For entries that are too large to fit in the window all at once, you can scan through the entries with the scrollbars, or by dragging with mouse button2 pressed." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth 10 +pack $w.frame -side top -fill x -expand 1 + +entry $w.frame.e1 -xscrollcommand "$w.frame.s1 set" +scrollbar $w.frame.s1 -relief sunken -orient horiz -command \ + "$w.frame.e1 xview" +frame $w.frame.spacer1 -width 20 -height 10 +entry $w.frame.e2 -xscrollcommand "$w.frame.s2 set" +scrollbar $w.frame.s2 -relief sunken -orient horiz -command \ + "$w.frame.e2 xview" +frame $w.frame.spacer2 -width 20 -height 10 +entry $w.frame.e3 -xscrollcommand "$w.frame.s3 set" +scrollbar $w.frame.s3 -relief sunken -orient horiz -command \ + "$w.frame.e3 xview" +pack $w.frame.e1 $w.frame.s1 $w.frame.spacer1 $w.frame.e2 $w.frame.s2 \ + $w.frame.spacer2 $w.frame.e3 $w.frame.s3 -side top -fill x + +$w.frame.e1 insert 0 "Initial value" +$w.frame.e2 insert end "This entry contains a long value, much too long " +$w.frame.e2 insert end "to fit in the window at one time, so long in fact " +$w.frame.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.5/demos/entry3.tcl b/mingw/lib/tk8.5/demos/entry3.tcl new file mode 100644 index 00000000..c8dd1ab1 --- /dev/null +++ b/mingw/lib/tk8.5/demos/entry3.tcl @@ -0,0 +1,185 @@ +# entry3.tcl -- +# +# This demonstration script creates several entry widgets whose +# permitted input is constrained in some way. It also shows off a +# password entry. +# +# RCS: @(#) $Id: entry3.tcl,v 1.5 2007/10/17 18:55:05 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .entry3 +catch {destroy $w} +toplevel $w +wm title $w "Constrained Entry Demonstration" +wm iconname $w "entry3" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "Four different\ + entries are displayed below. You can add characters by pointing,\ + clicking and typing, though each is constrained in what it will\ + accept. The first only accepts integers or the empty string\ + (checking when focus leaves it) and will flash to indicate any\ + problem. The second only accepts strings with fewer than ten\ + characters and sounds the bell when an attempt to go over the limit\ + is made. The third accepts US phone numbers, mapping letters to\ + their digit equivalent and sounding the bell on encountering an\ + illegal character or if trying to type over a character that is not\ + a digit. The fourth is a password field that accepts up to eight\ + characters (silently ignoring further ones), and displaying them as\ + asterisk characters." + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# focusAndFlash -- +# Error handler for entry widgets that forces the focus onto the +# widget and makes the widget flash by exchanging the foreground and +# background colours at intervals of 200ms (i.e. at approximately +# 2.5Hz). +# +# Arguments: +# W - Name of entry widget to flash +# fg - Initial foreground colour +# bg - Initial background colour +# count - Counter to control the number of times flashed + +proc focusAndFlash {W fg bg {count 9}} { + focus -force $W + if {$count<1} { + $W configure -foreground $fg -background $bg + } else { + if {$count%2} { + $W configure -foreground $bg -background $fg + } else { + $W configure -foreground $fg -background $bg + } + after 200 [list focusAndFlash $W $fg $bg [expr {$count-1}]] + } +} + +labelframe $w.l1 -text "Integer Entry" +entry $w.l1.e -validate focus -vcmd {string is integer %P} +$w.l1.e configure -invalidcommand \ + "focusAndFlash %W [$w.l1.e cget -fg] [$w.l1.e cget -bg]" +pack $w.l1.e -fill x -expand 1 -padx 1m -pady 1m + +labelframe $w.l2 -text "Length-Constrained Entry" +entry $w.l2.e -validate key -invcmd bell -vcmd {expr {[string length %P]<10}} +pack $w.l2.e -fill x -expand 1 -padx 1m -pady 1m + +### PHONE NUMBER ENTRY ### +# Note that the source to this is quite a bit longer as the behaviour +# demonstrated is a lot more ambitious than with the others. + +# Initial content for the third entry widget +set entry3content "1-(000)-000-0000" +# Mapping from alphabetic characters to numbers. This is probably +# wrong, but it is the only mapping I have; the UK doesn't really go +# for associating letters with digits for some reason. +set phoneNumberMap {} +foreach {chars digit} {abc 2 def 3 ghi 4 jkl 5 mno 6 pqrs 7 tuv 8 wxyz 9} { + foreach char [split $chars ""] { + lappend phoneNumberMap $char $digit [string toupper $char] $digit + } +} + +# validatePhoneChange -- +# Checks that the replacement (mapped to a digit) of the given +# character in an entry widget at the given position will leave a +# valid phone number in the widget. +# +# W - The entry widget to validate +# vmode - The widget's validation mode +# idx - The index where replacement is to occur +# char - The character (or string, though that will always be +# refused) to be overwritten at that point. + +proc validatePhoneChange {W vmode idx char} { + global phoneNumberMap entry3content + if {$idx == -1} {return 1} + after idle [list $W configure -validate $vmode -invcmd bell] + if { + !($idx<3 || $idx==6 || $idx==7 || $idx==11 || $idx>15) && + [string match {[0-9A-Za-z]} $char] + } then { + $W delete $idx + $W insert $idx [string map $phoneNumberMap $char] + after idle [list phoneSkipRight $W -1] + return 1 + } + return 0 +} + +# phoneSkipLeft -- +# Skip over fixed characters in a phone-number string when moving left. +# +# Arguments: +# W - The entry widget containing the phone-number. + +proc phoneSkipLeft {W} { + set idx [$W index insert] + if {$idx == 8} { + # Skip back two extra characters + $W icursor [incr idx -2] + } elseif {$idx == 7 || $idx == 12} { + # Skip back one extra character + $W icursor [incr idx -1] + } elseif {$idx <= 3} { + # Can't move any further + bell + return -code break + } +} + +# phoneSkipRight -- +# Skip over fixed characters in a phone-number string when moving right. +# +# Arguments: +# W - The entry widget containing the phone-number. +# add - Offset to add to index before calculation (used by validation.) + +proc phoneSkipRight {W {add 0}} { + set idx [$W index insert] + if {$idx+$add == 5} { + # Skip forward two extra characters + $W icursor [incr idx 2] + } elseif {$idx+$add == 6 || $idx+$add == 10} { + # Skip forward one extra character + $W icursor [incr idx] + } elseif {$idx+$add == 15 && !$add} { + # Can't move any further + bell + return -code break + } +} + +labelframe $w.l3 -text "US Phone-Number Entry" +entry $w.l3.e -validate key -invcmd bell -textvariable entry3content \ + -vcmd {validatePhoneChange %W %v %i %S} +# Click to focus goes to the first editable character... +bind $w.l3.e { + if {"%d" ne "NotifyAncestor"} { + %W icursor 3 + after idle {%W selection clear} + } +} +bind $w.l3.e {phoneSkipLeft %W} +bind $w.l3.e {phoneSkipRight %W} +pack $w.l3.e -fill x -expand 1 -padx 1m -pady 1m + +labelframe $w.l4 -text "Password Entry" +entry $w.l4.e -validate key -show "*" -vcmd {expr {[string length %P]<=8}} +pack $w.l4.e -fill x -expand 1 -padx 1m -pady 1m + +lower [frame $w.mid] +grid $w.l1 $w.l2 -in $w.mid -padx 3m -pady 1m -sticky ew +grid $w.l3 $w.l4 -in $w.mid -padx 3m -pady 1m -sticky ew +grid columnconfigure $w.mid {0 1} -uniform 1 +pack $w.msg -side top +pack $w.mid -fill both -expand 1 diff --git a/mingw/lib/tk8.5/demos/filebox.tcl b/mingw/lib/tk8.5/demos/filebox.tcl new file mode 100644 index 00000000..209eb666 --- /dev/null +++ b/mingw/lib/tk8.5/demos/filebox.tcl @@ -0,0 +1,80 @@ +# filebox.tcl -- +# +# This demonstration script prompts the user to select a file. +# +# RCS: @(#) $Id: filebox.tcl,v 1.8 2007/10/26 08:04:15 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .filebox +catch {destroy $w} +toplevel $w +wm title $w "File Selection Dialogs" +wm iconname $w "filebox" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Enter a file name in the entry box or click on the \"Browse\" buttons to select a file name using the file selection dialog." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +foreach i {open save} { + set f [frame $w.$i] + label $f.lab -text "Select a file to $i: " -anchor e + entry $f.ent -width 20 + button $f.but -text "Browse ..." -command "fileDialog $w $f.ent $i" + pack $f.lab -side left + pack $f.ent -side left -expand yes -fill x + pack $f.but -side left + pack $f -fill x -padx 1c -pady 3 +} + +if {$tcl_platform(platform) eq "unix"} { + checkbutton $w.strict -text "Use Motif Style Dialog" \ + -variable tk_strictMotif -onvalue 1 -offvalue 0 + pack $w.strict -anchor c + + # This binding ensures that we don't run the rest of the demos + # with motif style interactions + bind $w.strict {set tk_strictMotif 0} +} + +proc fileDialog {w ent operation} { + # Type names Extension(s) Mac File Type(s) + # + #--------------------------------------------------------- + set types { + {"Text files" {.txt .doc} } + {"Text files" {} TEXT} + {"Tcl Scripts" {.tcl} TEXT} + {"C Source Files" {.c .h} } + {"All Source Files" {.tcl .c .h} } + {"Image Files" {.gif} } + {"Image Files" {.jpeg .jpg} } + {"Image Files" "" {GIFF JPEG}} + {"All files" *} + } + if {$operation == "open"} { + global selected_type + if {![info exists selected_type]} { + set selected_type "Tcl Scripts" + } + set file [tk_getOpenFile -filetypes $types -parent $w \ + -typevariable selected_type] + puts "You selected filetype \"$selected_type\"" + } else { + set file [tk_getSaveFile -filetypes $types -parent $w \ + -initialfile Untitled -defaultextension .txt] + } + if {[string compare $file ""]} { + $ent delete 0 end + $ent insert 0 $file + $ent xview end + } +} diff --git a/mingw/lib/tk8.5/demos/floor.tcl b/mingw/lib/tk8.5/demos/floor.tcl new file mode 100644 index 00000000..5784db3a --- /dev/null +++ b/mingw/lib/tk8.5/demos/floor.tcl @@ -0,0 +1,1370 @@ +# floor.tcl -- +# +# This demonstration script creates a canvas widet that displays the +# floorplan for DEC's Western Research Laboratory. +# +# RCS: @(#) $Id: floor.tcl,v 1.6 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# floorDisplay -- +# Recreate the floorplan display in the canvas given by "w". The +# floor given by "active" is displayed on top with its office structure +# visible. +# +# Arguments: +# w - Name of the canvas window. +# active - Number of active floor (1, 2, or 3). + +proc floorDisplay {w active} { + global floorLabels floorItems colors activeFloor + + if {$activeFloor == $active} { + return + } + + $w delete all + set activeFloor $active + + # First go through the three floors, displaying the backgrounds for + # each floor. + + bg1 $w $colors(bg1) $colors(outline1) + bg2 $w $colors(bg2) $colors(outline2) + bg3 $w $colors(bg3) $colors(outline3) + + # Raise the background for the active floor so that it's on top. + + $w raise floor$active + + # Create a dummy item just to mark this point in the display list, + # so we can insert highlights here. + + $w create rect 0 100 1 101 -fill {} -outline {} -tags marker + + # Add the walls and labels for the active floor, along with + # transparent polygons that define the rooms on the floor. + # Make sure that the room polygons are on top. + + catch {unset floorLabels} + catch {unset floorItems} + fg$active $w $colors(offices) + $w raise room + + # Offset the floors diagonally from each other. + + $w move floor1 2c 2c + $w move floor2 1c 1c + + # Create items for the room entry and its label. + + $w create window 600 100 -anchor w -window $w.entry + $w create text 600 100 -anchor e -text "Room: " + $w config -scrollregion [$w bbox all] +} + +# newRoom -- +# This procedure is invoked whenever the mouse enters a room +# in the floorplan. It changes tags so that the current room is +# highlighted. +# +# Arguments: +# w - The name of the canvas window. + +proc newRoom w { + global currentRoom floorLabels + + set id [$w find withtag current] + if {$id != ""} { + set currentRoom $floorLabels($id) + } + update idletasks +} + +# roomChanged -- +# This procedure is invoked whenever the currentRoom variable changes. +# It highlights the current room and unhighlights any previous room. +# +# Arguments: +# w - The canvas window displaying the floorplan. +# args - Not used. + +proc roomChanged {w args} { + global currentRoom floorItems colors + $w delete highlight + if {[catch {set item $floorItems($currentRoom)}]} { + return + } + set new [eval \ + "$w create polygon [$w coords $item] -fill $colors(active) \ + -tags highlight"] + $w raise $new marker +} + +# bg1 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the background information for the first +# floor. +# +# Arguments: +# w - The canvas window. +# fill - Fill color to use for the floor's background. +# outline - Color to use for the floor's outline. + +proc bg1 {w fill outline} { + $w create poly 347 80 349 82 351 84 353 85 363 92 375 99 386 104 \ + 386 129 398 129 398 162 484 162 484 129 559 129 559 133 725 \ + 133 725 129 802 129 802 389 644 389 644 391 559 391 559 327 \ + 508 327 508 311 484 311 484 278 395 278 395 288 400 288 404 \ + 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 \ + 411 330 405 332 397 333 344 333 340 334 336 336 335 338 332 \ + 342 331 347 332 351 334 354 336 357 341 359 340 360 335 363 \ + 331 365 326 366 304 366 304 355 258 355 258 387 60 387 60 391 \ + 0 391 0 337 3 337 3 114 8 114 8 25 30 25 30 5 93 5 98 5 104 7 \ + 110 10 116 16 119 20 122 28 123 32 123 68 220 68 220 34 221 \ + 22 223 17 227 13 231 8 236 4 242 2 246 0 260 0 283 1 300 5 \ + 321 14 335 22 348 25 365 29 363 39 358 48 352 56 337 70 \ + 344 76 347 80 \ + -tags {floor1 bg} -fill $fill + $w create line 386 129 398 129 -fill $outline -tags {floor1 bg} + $w create line 258 355 258 387 -fill $outline -tags {floor1 bg} + $w create line 60 387 60 391 -fill $outline -tags {floor1 bg} + $w create line 0 337 0 391 -fill $outline -tags {floor1 bg} + $w create line 60 391 0 391 -fill $outline -tags {floor1 bg} + $w create line 3 114 3 337 -fill $outline -tags {floor1 bg} + $w create line 258 387 60 387 -fill $outline -tags {floor1 bg} + $w create line 484 162 398 162 -fill $outline -tags {floor1 bg} + $w create line 398 162 398 129 -fill $outline -tags {floor1 bg} + $w create line 484 278 484 311 -fill $outline -tags {floor1 bg} + $w create line 484 311 508 311 -fill $outline -tags {floor1 bg} + $w create line 508 327 508 311 -fill $outline -tags {floor1 bg} + $w create line 559 327 508 327 -fill $outline -tags {floor1 bg} + $w create line 644 391 559 391 -fill $outline -tags {floor1 bg} + $w create line 644 389 644 391 -fill $outline -tags {floor1 bg} + $w create line 559 129 484 129 -fill $outline -tags {floor1 bg} + $w create line 484 162 484 129 -fill $outline -tags {floor1 bg} + $w create line 725 133 559 133 -fill $outline -tags {floor1 bg} + $w create line 559 129 559 133 -fill $outline -tags {floor1 bg} + $w create line 725 129 802 129 -fill $outline -tags {floor1 bg} + $w create line 802 389 802 129 -fill $outline -tags {floor1 bg} + $w create line 3 337 0 337 -fill $outline -tags {floor1 bg} + $w create line 559 391 559 327 -fill $outline -tags {floor1 bg} + $w create line 802 389 644 389 -fill $outline -tags {floor1 bg} + $w create line 725 133 725 129 -fill $outline -tags {floor1 bg} + $w create line 8 25 8 114 -fill $outline -tags {floor1 bg} + $w create line 8 114 3 114 -fill $outline -tags {floor1 bg} + $w create line 30 25 8 25 -fill $outline -tags {floor1 bg} + $w create line 484 278 395 278 -fill $outline -tags {floor1 bg} + $w create line 30 25 30 5 -fill $outline -tags {floor1 bg} + $w create line 93 5 30 5 -fill $outline -tags {floor1 bg} + $w create line 98 5 93 5 -fill $outline -tags {floor1 bg} + $w create line 104 7 98 5 -fill $outline -tags {floor1 bg} + $w create line 110 10 104 7 -fill $outline -tags {floor1 bg} + $w create line 116 16 110 10 -fill $outline -tags {floor1 bg} + $w create line 119 20 116 16 -fill $outline -tags {floor1 bg} + $w create line 122 28 119 20 -fill $outline -tags {floor1 bg} + $w create line 123 32 122 28 -fill $outline -tags {floor1 bg} + $w create line 123 68 123 32 -fill $outline -tags {floor1 bg} + $w create line 220 68 123 68 -fill $outline -tags {floor1 bg} + $w create line 386 129 386 104 -fill $outline -tags {floor1 bg} + $w create line 386 104 375 99 -fill $outline -tags {floor1 bg} + $w create line 375 99 363 92 -fill $outline -tags {floor1 bg} + $w create line 353 85 363 92 -fill $outline -tags {floor1 bg} + $w create line 220 68 220 34 -fill $outline -tags {floor1 bg} + $w create line 337 70 352 56 -fill $outline -tags {floor1 bg} + $w create line 352 56 358 48 -fill $outline -tags {floor1 bg} + $w create line 358 48 363 39 -fill $outline -tags {floor1 bg} + $w create line 363 39 365 29 -fill $outline -tags {floor1 bg} + $w create line 365 29 348 25 -fill $outline -tags {floor1 bg} + $w create line 348 25 335 22 -fill $outline -tags {floor1 bg} + $w create line 335 22 321 14 -fill $outline -tags {floor1 bg} + $w create line 321 14 300 5 -fill $outline -tags {floor1 bg} + $w create line 300 5 283 1 -fill $outline -tags {floor1 bg} + $w create line 283 1 260 0 -fill $outline -tags {floor1 bg} + $w create line 260 0 246 0 -fill $outline -tags {floor1 bg} + $w create line 246 0 242 2 -fill $outline -tags {floor1 bg} + $w create line 242 2 236 4 -fill $outline -tags {floor1 bg} + $w create line 236 4 231 8 -fill $outline -tags {floor1 bg} + $w create line 231 8 227 13 -fill $outline -tags {floor1 bg} + $w create line 223 17 227 13 -fill $outline -tags {floor1 bg} + $w create line 221 22 223 17 -fill $outline -tags {floor1 bg} + $w create line 220 34 221 22 -fill $outline -tags {floor1 bg} + $w create line 340 360 335 363 -fill $outline -tags {floor1 bg} + $w create line 335 363 331 365 -fill $outline -tags {floor1 bg} + $w create line 331 365 326 366 -fill $outline -tags {floor1 bg} + $w create line 326 366 304 366 -fill $outline -tags {floor1 bg} + $w create line 304 355 304 366 -fill $outline -tags {floor1 bg} + $w create line 395 288 400 288 -fill $outline -tags {floor1 bg} + $w create line 404 288 400 288 -fill $outline -tags {floor1 bg} + $w create line 409 290 404 288 -fill $outline -tags {floor1 bg} + $w create line 413 292 409 290 -fill $outline -tags {floor1 bg} + $w create line 418 297 413 292 -fill $outline -tags {floor1 bg} + $w create line 421 302 418 297 -fill $outline -tags {floor1 bg} + $w create line 422 309 421 302 -fill $outline -tags {floor1 bg} + $w create line 421 318 422 309 -fill $outline -tags {floor1 bg} + $w create line 421 318 417 325 -fill $outline -tags {floor1 bg} + $w create line 417 325 411 330 -fill $outline -tags {floor1 bg} + $w create line 411 330 405 332 -fill $outline -tags {floor1 bg} + $w create line 405 332 397 333 -fill $outline -tags {floor1 bg} + $w create line 397 333 344 333 -fill $outline -tags {floor1 bg} + $w create line 344 333 340 334 -fill $outline -tags {floor1 bg} + $w create line 340 334 336 336 -fill $outline -tags {floor1 bg} + $w create line 336 336 335 338 -fill $outline -tags {floor1 bg} + $w create line 335 338 332 342 -fill $outline -tags {floor1 bg} + $w create line 331 347 332 342 -fill $outline -tags {floor1 bg} + $w create line 332 351 331 347 -fill $outline -tags {floor1 bg} + $w create line 334 354 332 351 -fill $outline -tags {floor1 bg} + $w create line 336 357 334 354 -fill $outline -tags {floor1 bg} + $w create line 341 359 336 357 -fill $outline -tags {floor1 bg} + $w create line 341 359 340 360 -fill $outline -tags {floor1 bg} + $w create line 395 288 395 278 -fill $outline -tags {floor1 bg} + $w create line 304 355 258 355 -fill $outline -tags {floor1 bg} + $w create line 347 80 344 76 -fill $outline -tags {floor1 bg} + $w create line 344 76 337 70 -fill $outline -tags {floor1 bg} + $w create line 349 82 347 80 -fill $outline -tags {floor1 bg} + $w create line 351 84 349 82 -fill $outline -tags {floor1 bg} + $w create line 353 85 351 84 -fill $outline -tags {floor1 bg} +} + +# bg2 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the background information for the second +# floor. +# +# Arguments: +# w - The canvas window. +# fill - Fill color to use for the floor's background. +# outline - Color to use for the floor's outline. + +proc bg2 {w fill outline} { + $w create poly 559 129 484 129 484 162 398 162 398 129 315 129 \ + 315 133 176 133 176 129 96 129 96 133 3 133 3 339 0 339 0 391 \ + 60 391 60 387 258 387 258 329 350 329 350 311 395 311 395 280 \ + 484 280 484 311 508 311 508 327 558 327 558 391 644 391 644 \ + 367 802 367 802 129 725 129 725 133 559 133 559 129 \ + -tags {floor2 bg} -fill $fill + $w create line 350 311 350 329 -fill $outline -tags {floor2 bg} + $w create line 398 129 398 162 -fill $outline -tags {floor2 bg} + $w create line 802 367 802 129 -fill $outline -tags {floor2 bg} + $w create line 802 129 725 129 -fill $outline -tags {floor2 bg} + $w create line 725 133 725 129 -fill $outline -tags {floor2 bg} + $w create line 559 129 559 133 -fill $outline -tags {floor2 bg} + $w create line 559 133 725 133 -fill $outline -tags {floor2 bg} + $w create line 484 162 484 129 -fill $outline -tags {floor2 bg} + $w create line 559 129 484 129 -fill $outline -tags {floor2 bg} + $w create line 802 367 644 367 -fill $outline -tags {floor2 bg} + $w create line 644 367 644 391 -fill $outline -tags {floor2 bg} + $w create line 644 391 558 391 -fill $outline -tags {floor2 bg} + $w create line 558 327 558 391 -fill $outline -tags {floor2 bg} + $w create line 558 327 508 327 -fill $outline -tags {floor2 bg} + $w create line 508 327 508 311 -fill $outline -tags {floor2 bg} + $w create line 484 311 508 311 -fill $outline -tags {floor2 bg} + $w create line 484 280 484 311 -fill $outline -tags {floor2 bg} + $w create line 398 162 484 162 -fill $outline -tags {floor2 bg} + $w create line 484 280 395 280 -fill $outline -tags {floor2 bg} + $w create line 395 280 395 311 -fill $outline -tags {floor2 bg} + $w create line 258 387 60 387 -fill $outline -tags {floor2 bg} + $w create line 3 133 3 339 -fill $outline -tags {floor2 bg} + $w create line 3 339 0 339 -fill $outline -tags {floor2 bg} + $w create line 60 391 0 391 -fill $outline -tags {floor2 bg} + $w create line 0 339 0 391 -fill $outline -tags {floor2 bg} + $w create line 60 387 60 391 -fill $outline -tags {floor2 bg} + $w create line 258 329 258 387 -fill $outline -tags {floor2 bg} + $w create line 350 329 258 329 -fill $outline -tags {floor2 bg} + $w create line 395 311 350 311 -fill $outline -tags {floor2 bg} + $w create line 398 129 315 129 -fill $outline -tags {floor2 bg} + $w create line 176 133 315 133 -fill $outline -tags {floor2 bg} + $w create line 176 129 96 129 -fill $outline -tags {floor2 bg} + $w create line 3 133 96 133 -fill $outline -tags {floor2 bg} + $w create line 315 133 315 129 -fill $outline -tags {floor2 bg} + $w create line 176 133 176 129 -fill $outline -tags {floor2 bg} + $w create line 96 133 96 129 -fill $outline -tags {floor2 bg} +} + +# bg3 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the background information for the third +# floor. +# +# Arguments: +# w - The canvas window. +# fill - Fill color to use for the floor's background. +# outline - Color to use for the floor's outline. + +proc bg3 {w fill outline} { + $w create poly 159 300 107 300 107 248 159 248 159 129 96 129 96 \ + 133 21 133 21 331 0 331 0 391 60 391 60 370 159 370 159 300 \ + -tags {floor3 bg} -fill $fill + $w create poly 258 370 258 329 350 329 350 311 399 311 399 129 \ + 315 129 315 133 176 133 176 129 159 129 159 370 258 370 \ + -tags {floor3 bg} -fill $fill + $w create line 96 133 96 129 -fill $outline -tags {floor3 bg} + $w create line 176 129 96 129 -fill $outline -tags {floor3 bg} + $w create line 176 129 176 133 -fill $outline -tags {floor3 bg} + $w create line 315 133 176 133 -fill $outline -tags {floor3 bg} + $w create line 315 133 315 129 -fill $outline -tags {floor3 bg} + $w create line 399 129 315 129 -fill $outline -tags {floor3 bg} + $w create line 399 311 399 129 -fill $outline -tags {floor3 bg} + $w create line 399 311 350 311 -fill $outline -tags {floor3 bg} + $w create line 350 329 350 311 -fill $outline -tags {floor3 bg} + $w create line 350 329 258 329 -fill $outline -tags {floor3 bg} + $w create line 258 370 258 329 -fill $outline -tags {floor3 bg} + $w create line 60 370 258 370 -fill $outline -tags {floor3 bg} + $w create line 60 370 60 391 -fill $outline -tags {floor3 bg} + $w create line 60 391 0 391 -fill $outline -tags {floor3 bg} + $w create line 0 391 0 331 -fill $outline -tags {floor3 bg} + $w create line 21 331 0 331 -fill $outline -tags {floor3 bg} + $w create line 21 331 21 133 -fill $outline -tags {floor3 bg} + $w create line 96 133 21 133 -fill $outline -tags {floor3 bg} + $w create line 107 300 159 300 159 248 107 248 107 300 \ + -fill $outline -tags {floor3 bg} +} + +# fg1 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the foreground information for the first +# floor (office outlines and numbers). +# +# Arguments: +# w - The canvas window. +# color - Color to use for drawing foreground information. + +proc fg1 {w color} { + global floorLabels floorItems + set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor1 room}] + set floorLabels($i) 101 + set {floorItems(101)} $i + $w create text 358 209 -text 101 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor1 room}] + set floorLabels($i) {Pub Lift1} + set {floorItems(Pub Lift1)} $i + $w create text 323 223 -text {Pub Lift1} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor1 room}] + set floorLabels($i) {Priv Lift1} + set {floorItems(Priv Lift1)} $i + $w create text 323 188 -text {Priv Lift1} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 42 389 42 337 1 337 1 389 -fill {} -tags {floor1 room}] + set floorLabels($i) 110 + set {floorItems(110)} $i + $w create text 21.5 363 -text 110 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 59 389 59 385 90 385 90 337 44 337 44 389 -fill {} -tags {floor1 room}] + set floorLabels($i) 109 + set {floorItems(109)} $i + $w create text 67 363 -text 109 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 51 300 51 253 6 253 6 300 -fill {} -tags {floor1 room}] + set floorLabels($i) 111 + set {floorItems(111)} $i + $w create text 28.5 276.5 -text 111 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 98 248 98 309 79 309 79 248 -fill {} -tags {floor1 room}] + set floorLabels($i) 117B + set {floorItems(117B)} $i + $w create text 88.5 278.5 -text 117B -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 51 251 51 204 6 204 6 251 -fill {} -tags {floor1 room}] + set floorLabels($i) 112 + set {floorItems(112)} $i + $w create text 28.5 227.5 -text 112 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 6 156 51 156 51 203 6 203 -fill {} -tags {floor1 room}] + set floorLabels($i) 113 + set {floorItems(113)} $i + $w create text 28.5 179.5 -text 113 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 85 169 79 169 79 192 85 192 -fill {} -tags {floor1 room}] + set floorLabels($i) 117A + set {floorItems(117A)} $i + $w create text 82 180.5 -text 117A -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 77 302 77 168 53 168 53 302 -fill {} -tags {floor1 room}] + set floorLabels($i) 117 + set {floorItems(117)} $i + $w create text 65 235 -text 117 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 51 155 51 115 6 115 6 155 -fill {} -tags {floor1 room}] + set floorLabels($i) 114 + set {floorItems(114)} $i + $w create text 28.5 135 -text 114 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 95 115 53 115 53 168 95 168 -fill {} -tags {floor1 room}] + set floorLabels($i) 115 + set {floorItems(115)} $i + $w create text 74 141.5 -text 115 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 87 113 87 27 10 27 10 113 -fill {} -tags {floor1 room}] + set floorLabels($i) 116 + set {floorItems(116)} $i + $w create text 48.5 70 -text 116 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 89 91 128 91 128 113 89 113 -fill {} -tags {floor1 room}] + set floorLabels($i) 118 + set {floorItems(118)} $i + $w create text 108.5 102 -text 118 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 178 128 178 132 216 132 216 91 163 91 163 112 149 112 149 128 -fill {} -tags {floor1 room}] + set floorLabels($i) 120 + set {floorItems(120)} $i + $w create text 189.5 111.5 -text 120 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 79 193 87 193 87 169 136 169 136 192 156 192 156 169 175 169 175 246 79 246 -fill {} -tags {floor1 room}] + set floorLabels($i) 122 + set {floorItems(122)} $i + $w create text 131 207.5 -text 122 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 138 169 154 169 154 191 138 191 -fill {} -tags {floor1 room}] + set floorLabels($i) 121 + set {floorItems(121)} $i + $w create text 146 180 -text 121 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 99 300 126 300 126 309 99 309 -fill {} -tags {floor1 room}] + set floorLabels($i) 106A + set {floorItems(106A)} $i + $w create text 112.5 304.5 -text 106A -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 128 299 128 309 150 309 150 248 99 248 99 299 -fill {} -tags {floor1 room}] + set floorLabels($i) 105 + set {floorItems(105)} $i + $w create text 124.5 278.5 -text 105 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 174 309 174 300 152 300 152 309 -fill {} -tags {floor1 room}] + set floorLabels($i) 106B + set {floorItems(106B)} $i + $w create text 163 304.5 -text 106B -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 176 299 176 309 216 309 216 248 152 248 152 299 -fill {} -tags {floor1 room}] + set floorLabels($i) 104 + set {floorItems(104)} $i + $w create text 184 278.5 -text 104 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 138 385 138 337 91 337 91 385 -fill {} -tags {floor1 room}] + set floorLabels($i) 108 + set {floorItems(108)} $i + $w create text 114.5 361 -text 108 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 256 337 140 337 140 385 256 385 -fill {} -tags {floor1 room}] + set floorLabels($i) 107 + set {floorItems(107)} $i + $w create text 198 361 -text 107 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 300 353 300 329 260 329 260 353 -fill {} -tags {floor1 room}] + set floorLabels($i) Smoking + set {floorItems(Smoking)} $i + $w create text 280 341 -text Smoking -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 314 135 314 170 306 170 306 246 177 246 177 135 -fill {} -tags {floor1 room}] + set floorLabels($i) 123 + set {floorItems(123)} $i + $w create text 245.5 190.5 -text 123 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 217 248 301 248 301 326 257 326 257 310 217 310 -fill {} -tags {floor1 room}] + set floorLabels($i) 103 + set {floorItems(103)} $i + $w create text 259 287 -text 103 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 396 188 377 188 377 169 316 169 316 131 396 131 -fill {} -tags {floor1 room}] + set floorLabels($i) 124 + set {floorItems(124)} $i + $w create text 356 150 -text 124 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 397 226 407 226 407 189 377 189 377 246 397 246 -fill {} -tags {floor1 room}] + set floorLabels($i) 125 + set {floorItems(125)} $i + $w create text 392 217.5 -text 125 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 399 187 409 187 409 207 474 207 474 164 399 164 -fill {} -tags {floor1 room}] + set floorLabels($i) 126 + set {floorItems(126)} $i + $w create text 436.5 185.5 -text 126 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 409 209 409 229 399 229 399 253 486 253 486 239 474 239 474 209 -fill {} -tags {floor1 room}] + set floorLabels($i) 127 + set {floorItems(127)} $i + $w create text 436.5 231 -text 127 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 501 164 501 174 495 174 495 188 490 188 490 204 476 204 476 164 -fill {} -tags {floor1 room}] + set floorLabels($i) MShower + set {floorItems(MShower)} $i + $w create text 488.5 184 -text MShower -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 497 176 513 176 513 204 492 204 492 190 497 190 -fill {} -tags {floor1 room}] + set floorLabels($i) Closet + set {floorItems(Closet)} $i + $w create text 502.5 190 -text Closet -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 476 237 476 206 513 206 513 254 488 254 488 237 -fill {} -tags {floor1 room}] + set floorLabels($i) WShower + set {floorItems(WShower)} $i + $w create text 494.5 230 -text WShower -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 486 131 558 131 558 135 724 135 724 166 697 166 697 275 553 275 531 254 515 254 515 174 503 174 503 161 486 161 -fill {} -tags {floor1 room}] + set floorLabels($i) 130 + set {floorItems(130)} $i + $w create text 638.5 205 -text 130 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 308 242 339 242 339 248 342 248 342 246 397 246 397 276 393 276 393 309 300 309 300 248 308 248 -fill {} -tags {floor1 room}] + set floorLabels($i) 102 + set {floorItems(102)} $i + $w create text 367.5 278.5 -text 102 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 397 255 486 255 486 276 397 276 -fill {} -tags {floor1 room}] + set floorLabels($i) 128 + set {floorItems(128)} $i + $w create text 441.5 265.5 -text 128 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 510 309 486 309 486 255 530 255 552 277 561 277 561 325 510 325 -fill {} -tags {floor1 room}] + set floorLabels($i) 129 + set {floorItems(129)} $i + $w create text 535.5 293 -text 129 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 696 281 740 281 740 387 642 387 642 389 561 389 561 277 696 277 -fill {} -tags {floor1 room}] + set floorLabels($i) 133 + set {floorItems(133)} $i + $w create text 628.5 335 -text 133 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 742 387 742 281 800 281 800 387 -fill {} -tags {floor1 room}] + set floorLabels($i) 132 + set {floorItems(132)} $i + $w create text 771 334 -text 132 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 800 168 800 280 699 280 699 168 -fill {} -tags {floor1 room}] + set floorLabels($i) 134 + set {floorItems(134)} $i + $w create text 749.5 224 -text 134 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 726 131 726 166 800 166 800 131 -fill {} -tags {floor1 room}] + set floorLabels($i) 135 + set {floorItems(135)} $i + $w create text 763 148.5 -text 135 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 340 360 335 363 331 365 326 366 304 366 304 312 396 312 396 288 400 288 404 288 409 290 413 292 418 297 421 302 422 309 421 318 417 325 411 330 405 332 397 333 344 333 340 334 336 336 335 338 332 342 331 347 332 351 334 354 336 357 341 359 -fill {} -tags {floor1 room}] + set floorLabels($i) {Ramona Stair} + set {floorItems(Ramona Stair)} $i + $w create text 368 323 -text {Ramona Stair} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 30 23 30 5 93 5 98 5 104 7 110 10 116 16 119 20 122 28 123 32 123 68 220 68 220 87 90 87 90 23 -fill {} -tags {floor1 room}] + set floorLabels($i) {University Stair} + set {floorItems(University Stair)} $i + $w create text 155 77.5 -text {University Stair} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 282 37 295 40 312 49 323 56 337 70 352 56 358 48 363 39 365 29 348 25 335 22 321 14 300 5 283 1 260 0 246 0 242 2 236 4 231 8 227 13 223 17 221 22 220 34 260 34 -fill {} -tags {floor1 room}] + set floorLabels($i) {Plaza Stair} + set {floorItems(Plaza Stair)} $i + $w create text 317.5 28.5 -text {Plaza Stair} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 220 34 260 34 282 37 295 40 312 49 323 56 337 70 350 83 365 94 377 100 386 104 386 128 220 128 -fill {} -tags {floor1 room}] + set floorLabels($i) {Plaza Deck} + set {floorItems(Plaza Deck)} $i + $w create text 303 81 -text {Plaza Deck} -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 257 336 77 336 6 336 6 301 77 301 77 310 257 310 -fill {} -tags {floor1 room}] + set floorLabels($i) 106 + set {floorItems(106)} $i + $w create text 131.5 318.5 -text 106 -fill $color -anchor c -tags {floor1 label} + set i [$w create polygon 146 110 162 110 162 91 130 91 130 115 95 115 95 128 114 128 114 151 157 151 157 153 112 153 112 130 97 130 97 168 175 168 175 131 146 131 -fill {} -tags {floor1 room}] + set floorLabels($i) 119 + set {floorItems(119)} $i + $w create text 143.5 133 -text 119 -fill $color -anchor c -tags {floor1 label} + $w create line 155 191 155 189 -fill $color -tags {floor1 wall} + $w create line 155 177 155 169 -fill $color -tags {floor1 wall} + $w create line 96 129 96 169 -fill $color -tags {floor1 wall} + $w create line 78 169 176 169 -fill $color -tags {floor1 wall} + $w create line 176 247 176 129 -fill $color -tags {floor1 wall} + $w create line 340 206 307 206 -fill $color -tags {floor1 wall} + $w create line 340 187 340 170 -fill $color -tags {floor1 wall} + $w create line 340 210 340 201 -fill $color -tags {floor1 wall} + $w create line 340 247 340 224 -fill $color -tags {floor1 wall} + $w create line 340 241 307 241 -fill $color -tags {floor1 wall} + $w create line 376 246 376 170 -fill $color -tags {floor1 wall} + $w create line 307 247 307 170 -fill $color -tags {floor1 wall} + $w create line 376 170 307 170 -fill $color -tags {floor1 wall} + $w create line 315 129 315 170 -fill $color -tags {floor1 wall} + $w create line 147 129 176 129 -fill $color -tags {floor1 wall} + $w create line 202 133 176 133 -fill $color -tags {floor1 wall} + $w create line 398 129 315 129 -fill $color -tags {floor1 wall} + $w create line 258 352 258 387 -fill $color -tags {floor1 wall} + $w create line 60 387 60 391 -fill $color -tags {floor1 wall} + $w create line 0 337 0 391 -fill $color -tags {floor1 wall} + $w create line 60 391 0 391 -fill $color -tags {floor1 wall} + $w create line 3 114 3 337 -fill $color -tags {floor1 wall} + $w create line 258 387 60 387 -fill $color -tags {floor1 wall} + $w create line 52 237 52 273 -fill $color -tags {floor1 wall} + $w create line 52 189 52 225 -fill $color -tags {floor1 wall} + $w create line 52 140 52 177 -fill $color -tags {floor1 wall} + $w create line 395 306 395 311 -fill $color -tags {floor1 wall} + $w create line 531 254 398 254 -fill $color -tags {floor1 wall} + $w create line 475 178 475 238 -fill $color -tags {floor1 wall} + $w create line 502 162 398 162 -fill $color -tags {floor1 wall} + $w create line 398 129 398 188 -fill $color -tags {floor1 wall} + $w create line 383 188 376 188 -fill $color -tags {floor1 wall} + $w create line 408 188 408 194 -fill $color -tags {floor1 wall} + $w create line 398 227 398 254 -fill $color -tags {floor1 wall} + $w create line 408 227 398 227 -fill $color -tags {floor1 wall} + $w create line 408 222 408 227 -fill $color -tags {floor1 wall} + $w create line 408 206 408 210 -fill $color -tags {floor1 wall} + $w create line 408 208 475 208 -fill $color -tags {floor1 wall} + $w create line 484 278 484 311 -fill $color -tags {floor1 wall} + $w create line 484 311 508 311 -fill $color -tags {floor1 wall} + $w create line 508 327 508 311 -fill $color -tags {floor1 wall} + $w create line 559 327 508 327 -fill $color -tags {floor1 wall} + $w create line 644 391 559 391 -fill $color -tags {floor1 wall} + $w create line 644 389 644 391 -fill $color -tags {floor1 wall} + $w create line 514 205 475 205 -fill $color -tags {floor1 wall} + $w create line 496 189 496 187 -fill $color -tags {floor1 wall} + $w create line 559 129 484 129 -fill $color -tags {floor1 wall} + $w create line 484 162 484 129 -fill $color -tags {floor1 wall} + $w create line 725 133 559 133 -fill $color -tags {floor1 wall} + $w create line 559 129 559 133 -fill $color -tags {floor1 wall} + $w create line 725 149 725 167 -fill $color -tags {floor1 wall} + $w create line 725 129 802 129 -fill $color -tags {floor1 wall} + $w create line 802 389 802 129 -fill $color -tags {floor1 wall} + $w create line 739 167 802 167 -fill $color -tags {floor1 wall} + $w create line 396 188 408 188 -fill $color -tags {floor1 wall} + $w create line 0 337 9 337 -fill $color -tags {floor1 wall} + $w create line 58 337 21 337 -fill $color -tags {floor1 wall} + $w create line 43 391 43 337 -fill $color -tags {floor1 wall} + $w create line 105 337 75 337 -fill $color -tags {floor1 wall} + $w create line 91 387 91 337 -fill $color -tags {floor1 wall} + $w create line 154 337 117 337 -fill $color -tags {floor1 wall} + $w create line 139 387 139 337 -fill $color -tags {floor1 wall} + $w create line 227 337 166 337 -fill $color -tags {floor1 wall} + $w create line 258 337 251 337 -fill $color -tags {floor1 wall} + $w create line 258 328 302 328 -fill $color -tags {floor1 wall} + $w create line 302 355 302 311 -fill $color -tags {floor1 wall} + $w create line 395 311 302 311 -fill $color -tags {floor1 wall} + $w create line 484 278 395 278 -fill $color -tags {floor1 wall} + $w create line 395 294 395 278 -fill $color -tags {floor1 wall} + $w create line 473 278 473 275 -fill $color -tags {floor1 wall} + $w create line 473 256 473 254 -fill $color -tags {floor1 wall} + $w create line 533 257 531 254 -fill $color -tags {floor1 wall} + $w create line 553 276 551 274 -fill $color -tags {floor1 wall} + $w create line 698 276 553 276 -fill $color -tags {floor1 wall} + $w create line 559 391 559 327 -fill $color -tags {floor1 wall} + $w create line 802 389 644 389 -fill $color -tags {floor1 wall} + $w create line 741 314 741 389 -fill $color -tags {floor1 wall} + $w create line 698 280 698 167 -fill $color -tags {floor1 wall} + $w create line 707 280 698 280 -fill $color -tags {floor1 wall} + $w create line 802 280 731 280 -fill $color -tags {floor1 wall} + $w create line 741 280 741 302 -fill $color -tags {floor1 wall} + $w create line 698 167 727 167 -fill $color -tags {floor1 wall} + $w create line 725 137 725 129 -fill $color -tags {floor1 wall} + $w create line 514 254 514 175 -fill $color -tags {floor1 wall} + $w create line 496 175 514 175 -fill $color -tags {floor1 wall} + $w create line 502 175 502 162 -fill $color -tags {floor1 wall} + $w create line 475 166 475 162 -fill $color -tags {floor1 wall} + $w create line 496 176 496 175 -fill $color -tags {floor1 wall} + $w create line 491 189 496 189 -fill $color -tags {floor1 wall} + $w create line 491 205 491 189 -fill $color -tags {floor1 wall} + $w create line 487 238 475 238 -fill $color -tags {floor1 wall} + $w create line 487 240 487 238 -fill $color -tags {floor1 wall} + $w create line 487 252 487 254 -fill $color -tags {floor1 wall} + $w create line 315 133 304 133 -fill $color -tags {floor1 wall} + $w create line 256 133 280 133 -fill $color -tags {floor1 wall} + $w create line 78 247 270 247 -fill $color -tags {floor1 wall} + $w create line 307 247 294 247 -fill $color -tags {floor1 wall} + $w create line 214 133 232 133 -fill $color -tags {floor1 wall} + $w create line 217 247 217 266 -fill $color -tags {floor1 wall} + $w create line 217 309 217 291 -fill $color -tags {floor1 wall} + $w create line 217 309 172 309 -fill $color -tags {floor1 wall} + $w create line 154 309 148 309 -fill $color -tags {floor1 wall} + $w create line 175 300 175 309 -fill $color -tags {floor1 wall} + $w create line 151 300 175 300 -fill $color -tags {floor1 wall} + $w create line 151 247 151 309 -fill $color -tags {floor1 wall} + $w create line 78 237 78 265 -fill $color -tags {floor1 wall} + $w create line 78 286 78 309 -fill $color -tags {floor1 wall} + $w create line 106 309 78 309 -fill $color -tags {floor1 wall} + $w create line 130 309 125 309 -fill $color -tags {floor1 wall} + $w create line 99 309 99 247 -fill $color -tags {floor1 wall} + $w create line 127 299 99 299 -fill $color -tags {floor1 wall} + $w create line 127 309 127 299 -fill $color -tags {floor1 wall} + $w create line 155 191 137 191 -fill $color -tags {floor1 wall} + $w create line 137 169 137 191 -fill $color -tags {floor1 wall} + $w create line 78 171 78 169 -fill $color -tags {floor1 wall} + $w create line 78 190 78 218 -fill $color -tags {floor1 wall} + $w create line 86 192 86 169 -fill $color -tags {floor1 wall} + $w create line 86 192 78 192 -fill $color -tags {floor1 wall} + $w create line 52 301 3 301 -fill $color -tags {floor1 wall} + $w create line 52 286 52 301 -fill $color -tags {floor1 wall} + $w create line 52 252 3 252 -fill $color -tags {floor1 wall} + $w create line 52 203 3 203 -fill $color -tags {floor1 wall} + $w create line 3 156 52 156 -fill $color -tags {floor1 wall} + $w create line 8 25 8 114 -fill $color -tags {floor1 wall} + $w create line 63 114 3 114 -fill $color -tags {floor1 wall} + $w create line 75 114 97 114 -fill $color -tags {floor1 wall} + $w create line 108 114 129 114 -fill $color -tags {floor1 wall} + $w create line 129 114 129 89 -fill $color -tags {floor1 wall} + $w create line 52 114 52 128 -fill $color -tags {floor1 wall} + $w create line 132 89 88 89 -fill $color -tags {floor1 wall} + $w create line 88 25 88 89 -fill $color -tags {floor1 wall} + $w create line 88 114 88 89 -fill $color -tags {floor1 wall} + $w create line 218 89 144 89 -fill $color -tags {floor1 wall} + $w create line 147 111 147 129 -fill $color -tags {floor1 wall} + $w create line 162 111 147 111 -fill $color -tags {floor1 wall} + $w create line 162 109 162 111 -fill $color -tags {floor1 wall} + $w create line 162 96 162 89 -fill $color -tags {floor1 wall} + $w create line 218 89 218 94 -fill $color -tags {floor1 wall} + $w create line 218 89 218 119 -fill $color -tags {floor1 wall} + $w create line 8 25 88 25 -fill $color -tags {floor1 wall} + $w create line 258 337 258 328 -fill $color -tags {floor1 wall} + $w create line 113 129 96 129 -fill $color -tags {floor1 wall} + $w create line 302 355 258 355 -fill $color -tags {floor1 wall} + $w create line 386 104 386 129 -fill $color -tags {floor1 wall} + $w create line 377 100 386 104 -fill $color -tags {floor1 wall} + $w create line 365 94 377 100 -fill $color -tags {floor1 wall} + $w create line 350 83 365 94 -fill $color -tags {floor1 wall} + $w create line 337 70 350 83 -fill $color -tags {floor1 wall} + $w create line 337 70 323 56 -fill $color -tags {floor1 wall} + $w create line 312 49 323 56 -fill $color -tags {floor1 wall} + $w create line 295 40 312 49 -fill $color -tags {floor1 wall} + $w create line 282 37 295 40 -fill $color -tags {floor1 wall} + $w create line 260 34 282 37 -fill $color -tags {floor1 wall} + $w create line 253 34 260 34 -fill $color -tags {floor1 wall} + $w create line 386 128 386 104 -fill $color -tags {floor1 wall} + $w create line 113 152 156 152 -fill $color -tags {floor1 wall} + $w create line 113 152 156 152 -fill $color -tags {floor1 wall} + $w create line 113 152 113 129 -fill $color -tags {floor1 wall} +} + +# fg2 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the foreground information for the second +# floor (office outlines and numbers). +# +# Arguments: +# w - The canvas window. +# color - Color to use for drawing foreground information. + +proc fg2 {w color} { + global floorLabels floorItems + set i [$w create polygon 748 188 755 188 755 205 758 205 758 222 800 222 800 168 748 168 -fill {} -tags {floor2 room}] + set floorLabels($i) 238 + set {floorItems(238)} $i + $w create text 774 195 -text 238 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 726 188 746 188 746 166 800 166 800 131 726 131 -fill {} -tags {floor2 room}] + set floorLabels($i) 237 + set {floorItems(237)} $i + $w create text 763 148.5 -text 237 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 497 187 497 204 559 204 559 324 641 324 643 324 643 291 641 291 641 205 696 205 696 291 694 291 694 314 715 314 715 291 715 205 755 205 755 190 724 190 724 187 -fill {} -tags {floor2 room}] + set floorLabels($i) 246 + set {floorItems(246)} $i + $w create text 600 264 -text 246 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 694 279 643 279 643 314 694 314 -fill {} -tags {floor2 room}] + set floorLabels($i) 247 + set {floorItems(247)} $i + $w create text 668.5 296.5 -text 247 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 232 250 308 250 308 242 339 242 339 246 397 246 397 255 476 255 476 250 482 250 559 250 559 274 482 274 482 278 396 278 396 274 232 274 -fill {} -tags {floor2 room}] + set floorLabels($i) 202 + set {floorItems(202)} $i + $w create text 285.5 260 -text 202 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 53 228 53 338 176 338 233 338 233 196 306 196 306 180 175 180 175 169 156 169 156 196 176 196 176 228 -fill {} -tags {floor2 room}] + set floorLabels($i) 206 + set {floorItems(206)} $i + $w create text 143 267 -text 206 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 51 277 6 277 6 338 51 338 -fill {} -tags {floor2 room}] + set floorLabels($i) 212 + set {floorItems(212)} $i + $w create text 28.5 307.5 -text 212 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 557 276 486 276 486 309 510 309 510 325 557 325 -fill {} -tags {floor2 room}] + set floorLabels($i) 245 + set {floorItems(245)} $i + $w create text 521.5 300.5 -text 245 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 560 389 599 389 599 326 560 326 -fill {} -tags {floor2 room}] + set floorLabels($i) 244 + set {floorItems(244)} $i + $w create text 579.5 357.5 -text 244 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 601 389 601 326 643 326 643 389 -fill {} -tags {floor2 room}] + set floorLabels($i) 243 + set {floorItems(243)} $i + $w create text 622 357.5 -text 243 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 688 316 645 316 645 365 688 365 -fill {} -tags {floor2 room}] + set floorLabels($i) 242 + set {floorItems(242)} $i + $w create text 666.5 340.5 -text 242 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 802 367 759 367 759 226 802 226 -fill {} -tags {floor2 room}] + set floorLabels($i) {Barbecue Deck} + set {floorItems(Barbecue Deck)} $i + $w create text 780.5 296.5 -text {Barbecue Deck} -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 755 262 755 314 717 314 717 262 -fill {} -tags {floor2 room}] + set floorLabels($i) 240 + set {floorItems(240)} $i + $w create text 736 288 -text 240 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 755 316 689 316 689 365 755 365 -fill {} -tags {floor2 room}] + set floorLabels($i) 241 + set {floorItems(241)} $i + $w create text 722 340.5 -text 241 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 755 206 717 206 717 261 755 261 -fill {} -tags {floor2 room}] + set floorLabels($i) 239 + set {floorItems(239)} $i + $w create text 736 233.5 -text 239 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 695 277 643 277 643 206 695 206 -fill {} -tags {floor2 room}] + set floorLabels($i) 248 + set {floorItems(248)} $i + $w create text 669 241.5 -text 248 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 676 135 676 185 724 185 724 135 -fill {} -tags {floor2 room}] + set floorLabels($i) 236 + set {floorItems(236)} $i + $w create text 700 160 -text 236 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 675 135 635 135 635 145 628 145 628 185 675 185 -fill {} -tags {floor2 room}] + set floorLabels($i) 235 + set {floorItems(235)} $i + $w create text 651.5 160 -text 235 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 626 143 633 143 633 135 572 135 572 143 579 143 579 185 626 185 -fill {} -tags {floor2 room}] + set floorLabels($i) 234 + set {floorItems(234)} $i + $w create text 606 160 -text 234 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 557 135 571 135 571 145 578 145 578 185 527 185 527 131 557 131 -fill {} -tags {floor2 room}] + set floorLabels($i) 233 + set {floorItems(233)} $i + $w create text 552.5 158 -text 233 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 476 249 557 249 557 205 476 205 -fill {} -tags {floor2 room}] + set floorLabels($i) 230 + set {floorItems(230)} $i + $w create text 516.5 227 -text 230 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 476 164 486 164 486 131 525 131 525 185 476 185 -fill {} -tags {floor2 room}] + set floorLabels($i) 232 + set {floorItems(232)} $i + $w create text 500.5 158 -text 232 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 476 186 495 186 495 204 476 204 -fill {} -tags {floor2 room}] + set floorLabels($i) 229 + set {floorItems(229)} $i + $w create text 485.5 195 -text 229 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 474 207 409 207 409 187 399 187 399 164 474 164 -fill {} -tags {floor2 room}] + set floorLabels($i) 227 + set {floorItems(227)} $i + $w create text 436.5 185.5 -text 227 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 399 228 399 253 474 253 474 209 409 209 409 228 -fill {} -tags {floor2 room}] + set floorLabels($i) 228 + set {floorItems(228)} $i + $w create text 436.5 231 -text 228 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 397 246 397 226 407 226 407 189 377 189 377 246 -fill {} -tags {floor2 room}] + set floorLabels($i) 226 + set {floorItems(226)} $i + $w create text 392 217.5 -text 226 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 377 169 316 169 316 131 397 131 397 188 377 188 -fill {} -tags {floor2 room}] + set floorLabels($i) 225 + set {floorItems(225)} $i + $w create text 356.5 150 -text 225 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 234 198 306 198 306 249 234 249 -fill {} -tags {floor2 room}] + set floorLabels($i) 224 + set {floorItems(224)} $i + $w create text 270 223.5 -text 224 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 270 179 306 179 306 170 314 170 314 135 270 135 -fill {} -tags {floor2 room}] + set floorLabels($i) 223 + set {floorItems(223)} $i + $w create text 292 157 -text 223 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 268 179 221 179 221 135 268 135 -fill {} -tags {floor2 room}] + set floorLabels($i) 222 + set {floorItems(222)} $i + $w create text 244.5 157 -text 222 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 177 179 219 179 219 135 177 135 -fill {} -tags {floor2 room}] + set floorLabels($i) 221 + set {floorItems(221)} $i + $w create text 198 157 -text 221 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 299 327 349 327 349 284 341 284 341 276 299 276 -fill {} -tags {floor2 room}] + set floorLabels($i) 204 + set {floorItems(204)} $i + $w create text 324 301.5 -text 204 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 234 276 297 276 297 327 257 327 257 338 234 338 -fill {} -tags {floor2 room}] + set floorLabels($i) 205 + set {floorItems(205)} $i + $w create text 265.5 307 -text 205 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 256 385 256 340 212 340 212 385 -fill {} -tags {floor2 room}] + set floorLabels($i) 207 + set {floorItems(207)} $i + $w create text 234 362.5 -text 207 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 210 340 164 340 164 385 210 385 -fill {} -tags {floor2 room}] + set floorLabels($i) 208 + set {floorItems(208)} $i + $w create text 187 362.5 -text 208 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 115 340 162 340 162 385 115 385 -fill {} -tags {floor2 room}] + set floorLabels($i) 209 + set {floorItems(209)} $i + $w create text 138.5 362.5 -text 209 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 89 228 89 156 53 156 53 228 -fill {} -tags {floor2 room}] + set floorLabels($i) 217 + set {floorItems(217)} $i + $w create text 71 192 -text 217 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 89 169 97 169 97 190 89 190 -fill {} -tags {floor2 room}] + set floorLabels($i) 217A + set {floorItems(217A)} $i + $w create text 93 179.5 -text 217A -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 89 156 89 168 95 168 95 135 53 135 53 156 -fill {} -tags {floor2 room}] + set floorLabels($i) 216 + set {floorItems(216)} $i + $w create text 71 145.5 -text 216 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 51 179 51 135 6 135 6 179 -fill {} -tags {floor2 room}] + set floorLabels($i) 215 + set {floorItems(215)} $i + $w create text 28.5 157 -text 215 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 51 227 6 227 6 180 51 180 -fill {} -tags {floor2 room}] + set floorLabels($i) 214 + set {floorItems(214)} $i + $w create text 28.5 203.5 -text 214 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 51 275 6 275 6 229 51 229 -fill {} -tags {floor2 room}] + set floorLabels($i) 213 + set {floorItems(213)} $i + $w create text 28.5 252 -text 213 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 114 340 67 340 67 385 114 385 -fill {} -tags {floor2 room}] + set floorLabels($i) 210 + set {floorItems(210)} $i + $w create text 90.5 362.5 -text 210 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 59 389 59 385 65 385 65 340 1 340 1 389 -fill {} -tags {floor2 room}] + set floorLabels($i) 211 + set {floorItems(211)} $i + $w create text 33 364.5 -text 211 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 393 309 350 309 350 282 342 282 342 276 393 276 -fill {} -tags {floor2 room}] + set floorLabels($i) 203 + set {floorItems(203)} $i + $w create text 367.5 292.5 -text 203 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 99 191 91 191 91 226 174 226 174 198 154 198 154 192 109 192 109 169 99 169 -fill {} -tags {floor2 room}] + set floorLabels($i) 220 + set {floorItems(220)} $i + $w create text 132.5 208.5 -text 220 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor2 room}] + set floorLabels($i) {Priv Lift2} + set {floorItems(Priv Lift2)} $i + $w create text 323 188 -text {Priv Lift2} -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor2 room}] + set floorLabels($i) {Pub Lift 2} + set {floorItems(Pub Lift 2)} $i + $w create text 323 223 -text {Pub Lift 2} -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -tags {floor2 room}] + set floorLabels($i) 218 + set {floorItems(218)} $i + $w create text 136 149.5 -text 218 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -tags {floor2 room}] + set floorLabels($i) 219 + set {floorItems(219)} $i + $w create text 132.5 180 -text 219 -fill $color -anchor c -tags {floor2 label} + set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor2 room}] + set floorLabels($i) 201 + set {floorItems(201)} $i + $w create text 358 209 -text 201 -fill $color -anchor c -tags {floor2 label} + $w create line 641 186 678 186 -fill $color -tags {floor2 wall} + $w create line 757 350 757 367 -fill $color -tags {floor2 wall} + $w create line 634 133 634 144 -fill $color -tags {floor2 wall} + $w create line 634 144 627 144 -fill $color -tags {floor2 wall} + $w create line 572 133 572 144 -fill $color -tags {floor2 wall} + $w create line 572 144 579 144 -fill $color -tags {floor2 wall} + $w create line 398 129 398 162 -fill $color -tags {floor2 wall} + $w create line 174 197 175 197 -fill $color -tags {floor2 wall} + $w create line 175 197 175 227 -fill $color -tags {floor2 wall} + $w create line 757 206 757 221 -fill $color -tags {floor2 wall} + $w create line 396 188 408 188 -fill $color -tags {floor2 wall} + $w create line 727 189 725 189 -fill $color -tags {floor2 wall} + $w create line 747 167 802 167 -fill $color -tags {floor2 wall} + $w create line 747 167 747 189 -fill $color -tags {floor2 wall} + $w create line 755 189 739 189 -fill $color -tags {floor2 wall} + $w create line 769 224 757 224 -fill $color -tags {floor2 wall} + $w create line 802 224 802 129 -fill $color -tags {floor2 wall} + $w create line 802 129 725 129 -fill $color -tags {floor2 wall} + $w create line 725 189 725 129 -fill $color -tags {floor2 wall} + $w create line 725 186 690 186 -fill $color -tags {floor2 wall} + $w create line 676 133 676 186 -fill $color -tags {floor2 wall} + $w create line 627 144 627 186 -fill $color -tags {floor2 wall} + $w create line 629 186 593 186 -fill $color -tags {floor2 wall} + $w create line 579 144 579 186 -fill $color -tags {floor2 wall} + $w create line 559 129 559 133 -fill $color -tags {floor2 wall} + $w create line 725 133 559 133 -fill $color -tags {floor2 wall} + $w create line 484 162 484 129 -fill $color -tags {floor2 wall} + $w create line 559 129 484 129 -fill $color -tags {floor2 wall} + $w create line 526 129 526 186 -fill $color -tags {floor2 wall} + $w create line 540 186 581 186 -fill $color -tags {floor2 wall} + $w create line 528 186 523 186 -fill $color -tags {floor2 wall} + $w create line 511 186 475 186 -fill $color -tags {floor2 wall} + $w create line 496 190 496 186 -fill $color -tags {floor2 wall} + $w create line 496 205 496 202 -fill $color -tags {floor2 wall} + $w create line 475 205 527 205 -fill $color -tags {floor2 wall} + $w create line 558 205 539 205 -fill $color -tags {floor2 wall} + $w create line 558 205 558 249 -fill $color -tags {floor2 wall} + $w create line 558 249 475 249 -fill $color -tags {floor2 wall} + $w create line 662 206 642 206 -fill $color -tags {floor2 wall} + $w create line 695 206 675 206 -fill $color -tags {floor2 wall} + $w create line 695 278 642 278 -fill $color -tags {floor2 wall} + $w create line 642 291 642 206 -fill $color -tags {floor2 wall} + $w create line 695 291 695 206 -fill $color -tags {floor2 wall} + $w create line 716 208 716 206 -fill $color -tags {floor2 wall} + $w create line 757 206 716 206 -fill $color -tags {floor2 wall} + $w create line 757 221 757 224 -fill $color -tags {floor2 wall} + $w create line 793 224 802 224 -fill $color -tags {floor2 wall} + $w create line 757 262 716 262 -fill $color -tags {floor2 wall} + $w create line 716 220 716 264 -fill $color -tags {floor2 wall} + $w create line 716 315 716 276 -fill $color -tags {floor2 wall} + $w create line 757 315 703 315 -fill $color -tags {floor2 wall} + $w create line 757 325 757 224 -fill $color -tags {floor2 wall} + $w create line 757 367 644 367 -fill $color -tags {floor2 wall} + $w create line 689 367 689 315 -fill $color -tags {floor2 wall} + $w create line 647 315 644 315 -fill $color -tags {floor2 wall} + $w create line 659 315 691 315 -fill $color -tags {floor2 wall} + $w create line 600 325 600 391 -fill $color -tags {floor2 wall} + $w create line 627 325 644 325 -fill $color -tags {floor2 wall} + $w create line 644 391 644 315 -fill $color -tags {floor2 wall} + $w create line 615 325 575 325 -fill $color -tags {floor2 wall} + $w create line 644 391 558 391 -fill $color -tags {floor2 wall} + $w create line 563 325 558 325 -fill $color -tags {floor2 wall} + $w create line 558 391 558 314 -fill $color -tags {floor2 wall} + $w create line 558 327 508 327 -fill $color -tags {floor2 wall} + $w create line 558 275 484 275 -fill $color -tags {floor2 wall} + $w create line 558 302 558 275 -fill $color -tags {floor2 wall} + $w create line 508 327 508 311 -fill $color -tags {floor2 wall} + $w create line 484 311 508 311 -fill $color -tags {floor2 wall} + $w create line 484 275 484 311 -fill $color -tags {floor2 wall} + $w create line 475 208 408 208 -fill $color -tags {floor2 wall} + $w create line 408 206 408 210 -fill $color -tags {floor2 wall} + $w create line 408 222 408 227 -fill $color -tags {floor2 wall} + $w create line 408 227 398 227 -fill $color -tags {floor2 wall} + $w create line 398 227 398 254 -fill $color -tags {floor2 wall} + $w create line 408 188 408 194 -fill $color -tags {floor2 wall} + $w create line 383 188 376 188 -fill $color -tags {floor2 wall} + $w create line 398 188 398 162 -fill $color -tags {floor2 wall} + $w create line 398 162 484 162 -fill $color -tags {floor2 wall} + $w create line 475 162 475 254 -fill $color -tags {floor2 wall} + $w create line 398 254 475 254 -fill $color -tags {floor2 wall} + $w create line 484 280 395 280 -fill $color -tags {floor2 wall} + $w create line 395 311 395 275 -fill $color -tags {floor2 wall} + $w create line 307 197 293 197 -fill $color -tags {floor2 wall} + $w create line 278 197 233 197 -fill $color -tags {floor2 wall} + $w create line 233 197 233 249 -fill $color -tags {floor2 wall} + $w create line 307 179 284 179 -fill $color -tags {floor2 wall} + $w create line 233 249 278 249 -fill $color -tags {floor2 wall} + $w create line 269 179 269 133 -fill $color -tags {floor2 wall} + $w create line 220 179 220 133 -fill $color -tags {floor2 wall} + $w create line 155 191 110 191 -fill $color -tags {floor2 wall} + $w create line 90 190 98 190 -fill $color -tags {floor2 wall} + $w create line 98 169 98 190 -fill $color -tags {floor2 wall} + $w create line 52 133 52 165 -fill $color -tags {floor2 wall} + $w create line 52 214 52 177 -fill $color -tags {floor2 wall} + $w create line 52 226 52 262 -fill $color -tags {floor2 wall} + $w create line 52 274 52 276 -fill $color -tags {floor2 wall} + $w create line 234 275 234 339 -fill $color -tags {floor2 wall} + $w create line 226 339 258 339 -fill $color -tags {floor2 wall} + $w create line 211 387 211 339 -fill $color -tags {floor2 wall} + $w create line 214 339 177 339 -fill $color -tags {floor2 wall} + $w create line 258 387 60 387 -fill $color -tags {floor2 wall} + $w create line 3 133 3 339 -fill $color -tags {floor2 wall} + $w create line 165 339 129 339 -fill $color -tags {floor2 wall} + $w create line 117 339 80 339 -fill $color -tags {floor2 wall} + $w create line 68 339 59 339 -fill $color -tags {floor2 wall} + $w create line 0 339 46 339 -fill $color -tags {floor2 wall} + $w create line 60 391 0 391 -fill $color -tags {floor2 wall} + $w create line 0 339 0 391 -fill $color -tags {floor2 wall} + $w create line 60 387 60 391 -fill $color -tags {floor2 wall} + $w create line 258 329 258 387 -fill $color -tags {floor2 wall} + $w create line 350 329 258 329 -fill $color -tags {floor2 wall} + $w create line 395 311 350 311 -fill $color -tags {floor2 wall} + $w create line 398 129 315 129 -fill $color -tags {floor2 wall} + $w create line 176 133 315 133 -fill $color -tags {floor2 wall} + $w create line 176 129 96 129 -fill $color -tags {floor2 wall} + $w create line 3 133 96 133 -fill $color -tags {floor2 wall} + $w create line 66 387 66 339 -fill $color -tags {floor2 wall} + $w create line 115 387 115 339 -fill $color -tags {floor2 wall} + $w create line 163 387 163 339 -fill $color -tags {floor2 wall} + $w create line 234 275 276 275 -fill $color -tags {floor2 wall} + $w create line 288 275 309 275 -fill $color -tags {floor2 wall} + $w create line 298 275 298 329 -fill $color -tags {floor2 wall} + $w create line 341 283 350 283 -fill $color -tags {floor2 wall} + $w create line 321 275 341 275 -fill $color -tags {floor2 wall} + $w create line 375 275 395 275 -fill $color -tags {floor2 wall} + $w create line 315 129 315 170 -fill $color -tags {floor2 wall} + $w create line 376 170 307 170 -fill $color -tags {floor2 wall} + $w create line 307 250 307 170 -fill $color -tags {floor2 wall} + $w create line 376 245 376 170 -fill $color -tags {floor2 wall} + $w create line 340 241 307 241 -fill $color -tags {floor2 wall} + $w create line 340 245 340 224 -fill $color -tags {floor2 wall} + $w create line 340 210 340 201 -fill $color -tags {floor2 wall} + $w create line 340 187 340 170 -fill $color -tags {floor2 wall} + $w create line 340 206 307 206 -fill $color -tags {floor2 wall} + $w create line 293 250 307 250 -fill $color -tags {floor2 wall} + $w create line 271 179 238 179 -fill $color -tags {floor2 wall} + $w create line 226 179 195 179 -fill $color -tags {floor2 wall} + $w create line 176 129 176 179 -fill $color -tags {floor2 wall} + $w create line 182 179 176 179 -fill $color -tags {floor2 wall} + $w create line 174 169 176 169 -fill $color -tags {floor2 wall} + $w create line 162 169 90 169 -fill $color -tags {floor2 wall} + $w create line 96 169 96 129 -fill $color -tags {floor2 wall} + $w create line 175 227 90 227 -fill $color -tags {floor2 wall} + $w create line 90 190 90 227 -fill $color -tags {floor2 wall} + $w create line 52 179 3 179 -fill $color -tags {floor2 wall} + $w create line 52 228 3 228 -fill $color -tags {floor2 wall} + $w create line 52 276 3 276 -fill $color -tags {floor2 wall} + $w create line 155 177 155 169 -fill $color -tags {floor2 wall} + $w create line 110 191 110 169 -fill $color -tags {floor2 wall} + $w create line 155 189 155 197 -fill $color -tags {floor2 wall} + $w create line 350 283 350 329 -fill $color -tags {floor2 wall} + $w create line 162 197 155 197 -fill $color -tags {floor2 wall} + $w create line 341 275 341 283 -fill $color -tags {floor2 wall} +} + +# fg3 -- +# This procedure represents part of the floorplan database. When +# invoked, it instantiates the foreground information for the third +# floor (office outlines and numbers). +# +# Arguments: +# w - The canvas window. +# color - Color to use for drawing foreground information. + +proc fg3 {w color} { + global floorLabels floorItems + set i [$w create polygon 89 228 89 180 70 180 70 228 -fill {} -tags {floor3 room}] + set floorLabels($i) 316 + set {floorItems(316)} $i + $w create text 79.5 204 -text 316 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 115 368 162 368 162 323 115 323 -fill {} -tags {floor3 room}] + set floorLabels($i) 309 + set {floorItems(309)} $i + $w create text 138.5 345.5 -text 309 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 164 323 164 368 211 368 211 323 -fill {} -tags {floor3 room}] + set floorLabels($i) 308 + set {floorItems(308)} $i + $w create text 187.5 345.5 -text 308 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 256 368 212 368 212 323 256 323 -fill {} -tags {floor3 room}] + set floorLabels($i) 307 + set {floorItems(307)} $i + $w create text 234 345.5 -text 307 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 244 276 297 276 297 327 260 327 260 321 244 321 -fill {} -tags {floor3 room}] + set floorLabels($i) 305 + set {floorItems(305)} $i + $w create text 270.5 301.5 -text 305 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 251 219 251 203 244 203 244 219 -fill {} -tags {floor3 room}] + set floorLabels($i) 324B + set {floorItems(324B)} $i + $w create text 247.5 211 -text 324B -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 251 249 244 249 244 232 251 232 -fill {} -tags {floor3 room}] + set floorLabels($i) 324A + set {floorItems(324A)} $i + $w create text 247.5 240.5 -text 324A -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 223 135 223 179 177 179 177 135 -fill {} -tags {floor3 room}] + set floorLabels($i) 320 + set {floorItems(320)} $i + $w create text 200 157 -text 320 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 114 368 114 323 67 323 67 368 -fill {} -tags {floor3 room}] + set floorLabels($i) 310 + set {floorItems(310)} $i + $w create text 90.5 345.5 -text 310 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 23 277 23 321 68 321 68 277 -fill {} -tags {floor3 room}] + set floorLabels($i) 312 + set {floorItems(312)} $i + $w create text 45.5 299 -text 312 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 23 229 68 229 68 275 23 275 -fill {} -tags {floor3 room}] + set floorLabels($i) 313 + set {floorItems(313)} $i + $w create text 45.5 252 -text 313 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 68 227 23 227 23 180 68 180 -fill {} -tags {floor3 room}] + set floorLabels($i) 314 + set {floorItems(314)} $i + $w create text 45.5 203.5 -text 314 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 95 179 95 135 23 135 23 179 -fill {} -tags {floor3 room}] + set floorLabels($i) 315 + set {floorItems(315)} $i + $w create text 59 157 -text 315 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 99 226 99 204 91 204 91 226 -fill {} -tags {floor3 room}] + set floorLabels($i) 316B + set {floorItems(316B)} $i + $w create text 95 215 -text 316B -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 91 202 99 202 99 180 91 180 -fill {} -tags {floor3 room}] + set floorLabels($i) 316A + set {floorItems(316A)} $i + $w create text 95 191 -text 316A -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 97 169 109 169 109 192 154 192 154 198 174 198 174 226 101 226 101 179 97 179 -fill {} -tags {floor3 room}] + set floorLabels($i) 319 + set {floorItems(319)} $i + $w create text 141.5 209 -text 319 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 65 368 58 368 58 389 1 389 1 333 23 333 23 323 65 323 -fill {} -tags {floor3 room}] + set floorLabels($i) 311 + set {floorItems(311)} $i + $w create text 29.5 361 -text 311 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 154 191 111 191 111 169 154 169 -fill {} -tags {floor3 room}] + set floorLabels($i) 318 + set {floorItems(318)} $i + $w create text 132.5 180 -text 318 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 175 168 97 168 97 131 175 131 -fill {} -tags {floor3 room}] + set floorLabels($i) 317 + set {floorItems(317)} $i + $w create text 136 149.5 -text 317 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 274 194 274 221 306 221 306 194 -fill {} -tags {floor3 room}] + set floorLabels($i) 323 + set {floorItems(323)} $i + $w create text 290 207.5 -text 323 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 306 222 274 222 274 249 306 249 -fill {} -tags {floor3 room}] + set floorLabels($i) 325 + set {floorItems(325)} $i + $w create text 290 235.5 -text 325 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 263 179 224 179 224 135 263 135 -fill {} -tags {floor3 room}] + set floorLabels($i) 321 + set {floorItems(321)} $i + $w create text 243.5 157 -text 321 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 314 169 306 169 306 192 273 192 264 181 264 135 314 135 -fill {} -tags {floor3 room}] + set floorLabels($i) 322 + set {floorItems(322)} $i + $w create text 293.5 163.5 -text 322 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 307 240 339 240 339 206 307 206 -fill {} -tags {floor3 room}] + set floorLabels($i) {Pub Lift3} + set {floorItems(Pub Lift3)} $i + $w create text 323 223 -text {Pub Lift3} -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 339 205 307 205 307 171 339 171 -fill {} -tags {floor3 room}] + set floorLabels($i) {Priv Lift3} + set {floorItems(Priv Lift3)} $i + $w create text 323 188 -text {Priv Lift3} -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 350 284 376 284 376 276 397 276 397 309 350 309 -fill {} -tags {floor3 room}] + set floorLabels($i) 303 + set {floorItems(303)} $i + $w create text 373.5 292.5 -text 303 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 272 203 272 249 252 249 252 230 244 230 244 221 252 221 252 203 -fill {} -tags {floor3 room}] + set floorLabels($i) 324 + set {floorItems(324)} $i + $w create text 262 226 -text 324 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 299 276 299 327 349 327 349 284 341 284 341 276 -fill {} -tags {floor3 room}] + set floorLabels($i) 304 + set {floorItems(304)} $i + $w create text 324 301.5 -text 304 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 375 246 375 172 341 172 341 246 -fill {} -tags {floor3 room}] + set floorLabels($i) 301 + set {floorItems(301)} $i + $w create text 358 209 -text 301 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 397 246 377 246 377 185 397 185 -fill {} -tags {floor3 room}] + set floorLabels($i) 327 + set {floorItems(327)} $i + $w create text 387 215.5 -text 327 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 316 131 316 169 377 169 377 185 397 185 397 131 -fill {} -tags {floor3 room}] + set floorLabels($i) 326 + set {floorItems(326)} $i + $w create text 356.5 150 -text 326 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 308 251 242 251 242 274 342 274 342 282 375 282 375 274 397 274 397 248 339 248 339 242 308 242 -fill {} -tags {floor3 room}] + set floorLabels($i) 302 + set {floorItems(302)} $i + $w create text 319.5 261 -text 302 -fill $color -anchor c -tags {floor3 label} + set i [$w create polygon 70 321 242 321 242 200 259 200 259 203 272 203 272 193 263 180 242 180 175 180 175 169 156 169 156 196 177 196 177 228 107 228 70 228 70 275 107 275 107 248 160 248 160 301 107 301 107 275 70 275 -fill {} -tags {floor3 room}] + set floorLabels($i) 306 + set {floorItems(306)} $i + $w create text 200.5 284.5 -text 306 -fill $color -anchor c -tags {floor3 label} + $w create line 341 275 341 283 -fill $color -tags {floor3 wall} + $w create line 162 197 155 197 -fill $color -tags {floor3 wall} + $w create line 396 247 399 247 -fill $color -tags {floor3 wall} + $w create line 399 129 399 311 -fill $color -tags {floor3 wall} + $w create line 258 202 243 202 -fill $color -tags {floor3 wall} + $w create line 350 283 350 329 -fill $color -tags {floor3 wall} + $w create line 251 231 243 231 -fill $color -tags {floor3 wall} + $w create line 243 220 251 220 -fill $color -tags {floor3 wall} + $w create line 243 250 243 202 -fill $color -tags {floor3 wall} + $w create line 155 197 155 190 -fill $color -tags {floor3 wall} + $w create line 110 192 110 169 -fill $color -tags {floor3 wall} + $w create line 155 192 110 192 -fill $color -tags {floor3 wall} + $w create line 155 177 155 169 -fill $color -tags {floor3 wall} + $w create line 176 197 176 227 -fill $color -tags {floor3 wall} + $w create line 69 280 69 274 -fill $color -tags {floor3 wall} + $w create line 21 276 69 276 -fill $color -tags {floor3 wall} + $w create line 69 262 69 226 -fill $color -tags {floor3 wall} + $w create line 21 228 69 228 -fill $color -tags {floor3 wall} + $w create line 21 179 75 179 -fill $color -tags {floor3 wall} + $w create line 69 179 69 214 -fill $color -tags {floor3 wall} + $w create line 90 220 90 227 -fill $color -tags {floor3 wall} + $w create line 90 204 90 202 -fill $color -tags {floor3 wall} + $w create line 90 203 100 203 -fill $color -tags {floor3 wall} + $w create line 90 187 90 179 -fill $color -tags {floor3 wall} + $w create line 90 227 176 227 -fill $color -tags {floor3 wall} + $w create line 100 179 100 227 -fill $color -tags {floor3 wall} + $w create line 100 179 87 179 -fill $color -tags {floor3 wall} + $w create line 96 179 96 129 -fill $color -tags {floor3 wall} + $w create line 162 169 96 169 -fill $color -tags {floor3 wall} + $w create line 173 169 176 169 -fill $color -tags {floor3 wall} + $w create line 182 179 176 179 -fill $color -tags {floor3 wall} + $w create line 176 129 176 179 -fill $color -tags {floor3 wall} + $w create line 195 179 226 179 -fill $color -tags {floor3 wall} + $w create line 224 133 224 179 -fill $color -tags {floor3 wall} + $w create line 264 179 264 133 -fill $color -tags {floor3 wall} + $w create line 238 179 264 179 -fill $color -tags {floor3 wall} + $w create line 273 207 273 193 -fill $color -tags {floor3 wall} + $w create line 273 235 273 250 -fill $color -tags {floor3 wall} + $w create line 273 224 273 219 -fill $color -tags {floor3 wall} + $w create line 273 193 307 193 -fill $color -tags {floor3 wall} + $w create line 273 222 307 222 -fill $color -tags {floor3 wall} + $w create line 273 250 307 250 -fill $color -tags {floor3 wall} + $w create line 384 247 376 247 -fill $color -tags {floor3 wall} + $w create line 340 206 307 206 -fill $color -tags {floor3 wall} + $w create line 340 187 340 170 -fill $color -tags {floor3 wall} + $w create line 340 210 340 201 -fill $color -tags {floor3 wall} + $w create line 340 247 340 224 -fill $color -tags {floor3 wall} + $w create line 340 241 307 241 -fill $color -tags {floor3 wall} + $w create line 376 247 376 170 -fill $color -tags {floor3 wall} + $w create line 307 250 307 170 -fill $color -tags {floor3 wall} + $w create line 376 170 307 170 -fill $color -tags {floor3 wall} + $w create line 315 129 315 170 -fill $color -tags {floor3 wall} + $w create line 376 283 366 283 -fill $color -tags {floor3 wall} + $w create line 376 283 376 275 -fill $color -tags {floor3 wall} + $w create line 399 275 376 275 -fill $color -tags {floor3 wall} + $w create line 341 275 320 275 -fill $color -tags {floor3 wall} + $w create line 341 283 350 283 -fill $color -tags {floor3 wall} + $w create line 298 275 298 329 -fill $color -tags {floor3 wall} + $w create line 308 275 298 275 -fill $color -tags {floor3 wall} + $w create line 243 322 243 275 -fill $color -tags {floor3 wall} + $w create line 243 275 284 275 -fill $color -tags {floor3 wall} + $w create line 258 322 226 322 -fill $color -tags {floor3 wall} + $w create line 212 370 212 322 -fill $color -tags {floor3 wall} + $w create line 214 322 177 322 -fill $color -tags {floor3 wall} + $w create line 163 370 163 322 -fill $color -tags {floor3 wall} + $w create line 165 322 129 322 -fill $color -tags {floor3 wall} + $w create line 84 322 117 322 -fill $color -tags {floor3 wall} + $w create line 71 322 64 322 -fill $color -tags {floor3 wall} + $w create line 115 322 115 370 -fill $color -tags {floor3 wall} + $w create line 66 322 66 370 -fill $color -tags {floor3 wall} + $w create line 52 322 21 322 -fill $color -tags {floor3 wall} + $w create line 21 331 0 331 -fill $color -tags {floor3 wall} + $w create line 21 331 21 133 -fill $color -tags {floor3 wall} + $w create line 96 133 21 133 -fill $color -tags {floor3 wall} + $w create line 176 129 96 129 -fill $color -tags {floor3 wall} + $w create line 315 133 176 133 -fill $color -tags {floor3 wall} + $w create line 315 129 399 129 -fill $color -tags {floor3 wall} + $w create line 399 311 350 311 -fill $color -tags {floor3 wall} + $w create line 350 329 258 329 -fill $color -tags {floor3 wall} + $w create line 258 322 258 370 -fill $color -tags {floor3 wall} + $w create line 60 370 258 370 -fill $color -tags {floor3 wall} + $w create line 60 370 60 391 -fill $color -tags {floor3 wall} + $w create line 0 391 0 331 -fill $color -tags {floor3 wall} + $w create line 60 391 0 391 -fill $color -tags {floor3 wall} + $w create line 307 250 307 242 -fill $color -tags {floor3 wall} + $w create line 273 250 307 250 -fill $color -tags {floor3 wall} + $w create line 258 250 243 250 -fill $color -tags {floor3 wall} +} + +# Below is the "main program" that creates the floorplan demonstration. + +set w .floor +global c currentRoom colors activeFloor +catch {destroy $w} +toplevel $w +wm title $w "Floorplan Canvas Demonstration" +wm iconname $w "Floorplan" +wm geometry $w +20+20 +wm minsize $w 100 100 + +label $w.msg -font $font -wraplength 8i -justify left -text "This window contains a canvas widget showing the floorplan of Digital Equipment Corporation's Western Research Laboratory. It has three levels. At any given time one of the levels is active, meaning that you can see its room structure. To activate a level, click the left mouse button anywhere on it. As the mouse moves over the active level, the room under the mouse lights up and its room number appears in the \"Room:\" entry. You can also type a room number in the entry and the room will light up." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +set f [frame $w.frame] +pack $f -side top -fill both -expand yes +set h [scrollbar $f.hscroll -highlightthickness 0 -orient horizontal] +set v [scrollbar $f.vscroll -highlightthickness 0 -orient vertical] +set f1 [frame $f.f1 -bd 2 -relief sunken] +set c [canvas $f1.c -width 900 -height 500 -borderwidth 0 \ + -highlightthickness 0 -xscrollcommand "$h set" -yscrollcommand "$v set"] +pack $c -expand yes -fill both +grid $f1 -padx 1 -pady 1 \ + -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid $v -padx 1 -pady 1 \ + -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +grid $h -padx 1 -pady 1 \ + -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid rowconfig $f 0 -weight 1 -minsize 0 +grid columnconfig $f 0 -weight 1 -minsize 0 +pack $f -expand yes -fill both -padx 1 -pady 1 + +$v config -command "$c yview" +$h config -command "$c xview" + +# Create an entry for displaying and typing in current room. + +entry $c.entry -width 10 -relief sunken -bd 2 -textvariable currentRoom + +# Choose colors, then fill in the floorplan. + +if {[winfo depth $c] > 1} { + set colors(bg1) #a9c1da + set colors(outline1) #77889a + set colors(bg2) #9ab0c6 + set colors(outline2) #687786 + set colors(bg3) #8ba0b3 + set colors(outline3) #596673 + set colors(offices) Black + set colors(active) #c4d1df +} else { + set colors(bg1) white + set colors(outline1) black + set colors(bg2) white + set colors(outline2) black + set colors(bg3) white + set colors(outline3) black + set colors(offices) Black + set colors(active) black +} +set activeFloor "" +floorDisplay $c 3 + +# Set up event bindings for canvas: + +$c bind floor1 <1> "floorDisplay $c 1" +$c bind floor2 <1> "floorDisplay $c 2" +$c bind floor3 <1> "floorDisplay $c 3" +$c bind room "newRoom $c" +$c bind room {set currentRoom ""} +bind $c <2> "$c scan mark %x %y" +bind $c "$c scan dragto %x %y" +bind $c "unset currentRoom" +set currentRoom "" +trace variable currentRoom w "roomChanged $c" diff --git a/mingw/lib/tk8.5/demos/form.tcl b/mingw/lib/tk8.5/demos/form.tcl new file mode 100644 index 00000000..999c7cf6 --- /dev/null +++ b/mingw/lib/tk8.5/demos/form.tcl @@ -0,0 +1,40 @@ +# form.tcl -- +# +# This demonstration script creates a simple form with a bunch +# of entry widgets. +# +# RCS: @(#) $Id: form.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .form +catch {destroy $w} +toplevel $w +wm title $w "Form Demonstration" +wm iconname $w "form" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This window contains a simple form where you can type in the various entries and use tabs to move circularly between the entries." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +foreach i {f1 f2 f3 f4 f5} { + frame $w.$i -bd 2 + entry $w.$i.entry -relief sunken -width 40 + label $w.$i.label + pack $w.$i.entry -side right + pack $w.$i.label -side left +} +$w.f1.label config -text Name: +$w.f2.label config -text Address: +$w.f5.label config -text Phone: +pack $w.msg $w.f1 $w.f2 $w.f3 $w.f4 $w.f5 -side top -fill x +bind $w "destroy $w" +focus $w.f1.entry diff --git a/mingw/lib/tk8.5/demos/goldberg.tcl b/mingw/lib/tk8.5/demos/goldberg.tcl new file mode 100644 index 00000000..8daa73e0 --- /dev/null +++ b/mingw/lib/tk8.5/demos/goldberg.tcl @@ -0,0 +1,1733 @@ +##+################################################################# +# +# TkGoldberg.tcl +# by Keith Vetter, March 13, 2003 +# +# "Man will always find a difficult means to perform a simple task" +# Rube Goldberg +# +# Reproduced here with permission. +# +##+################################################################# +# +# Keith Vetter 2003-03-21: this started out as a simple little program +# but was so much fun that it grew and grew. So I apologize about the +# size but I just couldn't resist sharing it. +# +# This is a whizzlet that does a Rube Goldberg type animation, the +# design of which comes from an New Years e-card from IncrediMail. +# That version had nice sound effects which I eschewed. On the other +# hand, that version was in black and white (actually dark blue and +# light blue) and this one is fully colorized. +# +# One thing I learned from this project is that drawing filled complex +# objects on a canvas is really hard. More often than not I had to +# draw each item twice--once with the desired fill color but no +# outline, and once with no fill but with the outline. Another trick +# is erasing by drawing with the background color. Having a flood fill +# command would have been extremely helpful. +# +# Two wiki pages were extremely helpful: Drawing rounded rectangles +# which I generalized into Drawing rounded polygons, and regular +# polygons which allowed me to convert ovals and arcs into polygons +# which could then be rotated (see Canvas Rotation). I also wrote +# Named Colors to aid in the color selection. +# +# I could comment on the code, but it's just 26 state machines with +# lots of canvas create and move calls. + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .goldberg +catch {destroy $w} +toplevel $w +wm title $w "Tk Goldberg (demonstration)" +wm iconname $w "goldberg" +wm resizable $w 0 0 +#positionWindow $w + +label $w.msg -font {Arial 10} -wraplength 4i -justify left -text "This is a demonstration of just how complex you can make your animations become. Click the ball to start things moving!\n\n\"Man will always find a difficult means to perform a simple task\"\n - Rube Goldberg" +pack $w.msg -side top + +if 0 { +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x +} + + +# Ensure that this this is an array +array set animationCallbacks {} + +###--- End of Boilerplate ---### + +set S(title) "Tk Goldberg" +set S(speed) 5 +set S(cnt) 0 +set S(message) "\\nWelcome\\nto\\nTcl/Tk" +array set speed {1 10 2 20 3 50 4 80 5 100 6 150 7 200 8 300 9 400 10 500} + +set MSTART 0; set MGO 1; set MPAUSE 2; set MSSTEP 3; set MBSTEP 4; set MDONE 5 +set S(mode) $::MSTART + +# Colors for everything +set C(fg) black +set C(bg) gray75 +set C(bg) cornflowerblue + +set C(0) white; set C(1a) darkgreen; set C(1b) yellow +set C(2) red; set C(3a) green; set C(3b) darkblue +set C(4) $C(fg); set C(5a) brown; set C(5b) white +set C(6) magenta; set C(7) green; set C(8) $C(fg) +set C(9) blue4; set C(10a) white; set C(10b) cyan +set C(11a) yellow; set C(11b) mediumblue; set C(12) tan2 +set C(13a) yellow; set C(13b) red; set C(14) white +set C(15a) green; set C(15b) yellow; set C(16) gray65 +set C(17) \#A65353; set C(18) $C(fg); set C(19) gray50 +set C(20) cyan; set C(21) gray65; set C(22) $C(20) +set C(23a) blue; set C(23b) red; set C(23c) yellow +set C(24a) red; set C(24b) white; + +proc DoDisplay {} { + global S C w + + frame $w.ctrl -relief ridge -bd 2 -padx 5 -pady 5 + pack [frame $w.screen -bd 2 -relief raised] -side left -fill both -expand 1 + + canvas $w.c -width 860 -height 730 -bg $C(bg) -highlightthickness 0 + $w.c config -scrollregion {0 0 1000 1000} ;# Kludge to move everything up + $w.c yview moveto .05 + pack $w.c -in $w.screen -side top -fill both -expand 1 + + bind $w.c <3> [list $w.pause invoke] + bind $w.c { + after cancel $animationCallbacks(goldberg) + unset animationCallbacks(goldberg) + } + DoCtrlFrame + DoDetailFrame + button $w.show -text ">>" -command ShowCtrl -bg $C(bg) -activebackground $C(bg) + place $w.show -in $w.c -relx 1 -rely 0 -anchor ne + update +} +proc DoCtrlFrame {} { + global w + button $w.start -text "Start" -bd 6 -command {DoButton 0} + $w.start configure -font "[font actual [$w.start cget -font]] -weight bold" + set font [$w.start cget -font] + checkbutton $w.pause -text "Pause" -font $font \ + -command {DoButton 1} -variable S(pause) -relief raised + button $w.step -text "Single Step" -font $font -command {DoButton 2} + button $w.bstep -text "Big Step" -font $font -command {DoButton 4} + button $w.reset -text "Reset" -font $font -command {DoButton 3} + frame $w.details -bd 2 -relief ridge + checkbutton $w.detail -text "Details" -font $font -variable S(details) + + entry $w.message -textvariable S(message) -justify center + scale $w.speed -orient h -from 1 -to 10 -font $font \ + -variable S(speed) -bd 2 -relief ridge -showvalue 0 + button $w.about -text About -command About -font $font + + grid $w.start -in $w.ctrl -row 0 -sticky ew + grid rowconfigure $w.ctrl 1 -minsize 10 + grid $w.pause -in $w.ctrl -row 2 -sticky ew + grid $w.step -in $w.ctrl -sticky ew + grid $w.bstep -in $w.ctrl -sticky ew + grid $w.reset -in $w.ctrl -sticky ew + grid rowconfigure $w.ctrl 10 -minsize 20 + grid $w.details -in $w.ctrl -row 11 -sticky ew + grid $w.detail -in $w.details -row 0 -sticky ew + grid rowconfigure $w.ctrl 50 -weight 1 + trace variable ::S(mode) w ActiveGUI + trace variable ::S(details) w ActiveGUI + trace variable ::S(speed) w ActiveGUI + + grid $w.message -in $w.ctrl -row 98 -sticky ew -pady 5 + grid $w.speed -in $w.ctrl -row 99 -sticky ew + grid $w.about -in $w.ctrl -row 100 -sticky ew + bind $w.reset <3> {set S(mode) -1} ;# Debugging +} +proc DoDetailFrame {} { + global w + set w2 $w.details.f + frame $w2 + + set bd 2 + set rel solid + label $w2.l -textvariable S(cnt) -bd 1 -relief $rel -bg white + grid $w2.l - - - -sticky ew -row 0 + for {set i 1} {1} {incr i} { + if {[info procs "Move$i"] == {}} break + label $w2.l$i -text $i -anchor e -width 2 -bd 1 -relief $rel -bg white + label $w2.ll$i -textvariable STEP($i) -width 5 -bd 1 -relief $rel -bg white + set row [expr {($i + 1) / 2}] + set col [expr {(($i + 1) & 1) * 2}] + grid $w2.l$i -sticky ew -row $row -column $col + grid $w2.ll$i -sticky ew -row $row -column [incr col] + } + grid columnconfigure $w2 1 -weight 1 +} +# Map or unmap the ctrl window +proc ShowCtrl {} { + global w + if {[winfo ismapped $w.ctrl]} { + pack forget $w.ctrl + $w.show config -text ">>" + } else { + pack $w.ctrl -side right -fill both -ipady 5 + $w.show config -text "<<" + } +} +proc DrawAll {} { + global w + ResetStep + $w.c delete all + for {set i 0} {1} {incr i} { + set p "Draw$i" + if {[info procs $p] == {}} break + $p + } +} +proc ActiveGUI {var1 var2 op} { + global S w + array set z {0 disabled 1 normal} + + set m $S(mode) + set S(pause) [expr {$m == 2}] + $w.start config -state $z([expr {$m != $::MGO}]) + $w.pause config -state $z([expr {$m != $::MSTART && $m != $::MDONE}]) + $w.step config -state $z([expr {$m != $::MGO && $m != $::MDONE}]) + $w.bstep config -state $z([expr {$m != $::MGO && $m != $::MDONE}]) + $w.reset config -state $z([expr {$m != $::MSTART}]) + + if {$S(details)} { + grid $w.details.f -in $w.details -row 2 -sticky ew + } else { + grid forget $w.details.f + } + $w.speed config -label "Speed: $S(speed)" +} +proc Start {} { + global S + set S(mode) $::MGO +} +proc DoButton {what} { + global S + + if {$what == 0} { ;# Start + if {$S(mode) == $::MDONE} Reset + set S(mode) $::MGO + } elseif {$what == 1} { ;# Pause + set S(mode) [expr {$S(pause) ? $::MPAUSE : $::MGO}] + } elseif {$what == 2} { ;# Step + set S(mode) $::MSSTEP + } elseif {$what == 3} { ;# Reset + Reset + } elseif {$what == 4} { ;# Big step + set S(mode) $::MBSTEP + } +} +proc Go {{who {}}} { + global S speed animationCallbacks + + set now [clock clicks -milliseconds] + catch {after cancel $animationCallbacks(goldberg)} + if {$who != {}} { ;# Start here for debugging + set S(active) $who; + set S(mode) $::MGO + } + if {$S(mode) == -1} return ;# Debugging + set n 0 + if {$S(mode) != $::MPAUSE} { ;# Not paused + set n [NextStep] ;# Do the next move + } + if {$S(mode) == $::MSSTEP} {set S(mode) $::MPAUSE} ;# Single step + if {$S(mode) == $::MBSTEP && $n} {set S(mode) $::MSSTEP} ;# Big step + + set elapsed [expr {[clock click -milliseconds] - $now}] + set delay [expr {$speed($S(speed)) - $elapsed}] + if {$delay <= 0} { set delay 1} + set animationCallbacks(goldberg) [after $delay Go] +} +# NextStep: drives the next step of the animation +proc NextStep {} { + global S + set rval 0 ;# Return value + + if {$S(mode) != $::MSTART && $S(mode) != $::MDONE} { incr S(cnt) } + set alive {} + foreach {who} $S(active) { + set n ["Move$who"] + if {$n & 1} { ;# This guy still alive + lappend alive $who + } + if {$n & 2} { ;# Next guy is active + lappend alive [expr {$who + 1}] + set rval 1 + } + if {$n & 4} { ;# End of puzzle flag + set S(mode) $::MDONE ;# Done mode + set S(active) {} ;# No more animation + return 1 + } + } + set S(active) $alive + return $rval +} +proc About {} { + set msg "$::S(title)\nby Keith Vetter, March 2003\n(Reproduced by kind permission of the author)\n\n" + append msg "Man will always find a difficult means to perform a simple task" + append msg "\nRube Goldberg" + tk_messageBox -message $msg -title About +} +################################################################ +# +# All the drawing and moving routines +# + +# START HERE! banner +proc Draw0 {} { + global w + set color $::C(0) + set xy {579 119} + $w.c create text $xy -text "START HERE!" -fill $color -anchor w \ + -tag I0 -font {{Times Roman} 12 italic bold} + set xy {719 119 763 119} + $w.c create line $xy -tag I0 -fill $color -width 5 -arrow last \ + -arrowshape {18 18 5} + $w.c bind I0 <1> Start +} +proc Move0 {{step {}}} { + set step [GetStep 0 $step] + + if {$::S(mode) > $::MSTART} { ;# Start the ball rolling + MoveAbs I0 {-100 -100} ;# Hide the banner + return 2 + } + + set pos { + {673 119} {678 119} {683 119} {688 119} + {693 119} {688 119} {683 119} {678 119} + } + set step [expr {$step % [llength $pos]}] + MoveAbs I0 [lindex $pos $step] + return 1 +} +# Dropping ball +proc Draw1 {} { + global w + set color $::C(1a) + set color2 $::C(1b) + set xy {844 133 800 133 800 346 820 346 820 168 844 168 844 133} + $w.c create poly $xy -width 3 -fill $color -outline {} + set xy {771 133 685 133 685 168 751 168 751 346 771 346 771 133} + $w.c create poly $xy -width 3 -fill $color -outline {} + + set xy [box 812 122 9] + $w.c create oval $xy -tag I1 -fill $color2 -outline {} + $w.c bind I1 <1> Start +} +proc Move1 {{step {}}} { + set step [GetStep 1 $step] + set pos { + {807 122} {802 122} {797 123} {793 124} {789 129} {785 153} + {785 203} {785 278 x} {785 367} {810 392} {816 438} {821 503} + {824 585 y} {838 587} {848 593} {857 601} {-100 -100} + } + if {$step >= [llength $pos]} { + return 0 + } + set where [lindex $pos $step] + MoveAbs I1 $where + + if {[lindex $where 2] == "y"} { + Move15a + } + if {[lindex $where 2] == "x"} { + return 3 + } + return 1 +} +# Lighting the match +proc Draw2 {} { + global w + set color red + set color $::C(2) + set xy {750 369 740 392 760 392} ;# Fulcrum + $w.c create poly $xy -fill $::C(fg) -outline $::C(fg) + set xy {628 335 660 383} ;# Strike box + $w.c create rect $xy -fill {} -outline $::C(fg) + for {set y 0} {$y < 3} {incr y} { + set yy [expr {335+$y*16}] + $w.c create bitmap 628 $yy -bitmap gray25 -anchor nw -foreground $::C(fg) + $w.c create bitmap 644 $yy -bitmap gray25 -anchor nw -foreground $::C(fg) + } + + set xy {702 366 798 366} ;# Lever + $w.c create line $xy -fill $::C(fg) -width 6 -tag I2_0 + set xy {712 363 712 355} ;# R strap + $w.c create line $xy -fill $::C(fg) -width 3 -tag I2_1 + set xy {705 363 705 355} ;# L strap + $w.c create line $xy -fill $::C(fg) -width 3 -tag I2_2 + set xy {679 356 679 360 717 360 717 356 679 356} ;# Match stick + $w.c create line $xy -fill $::C(fg) -tag I2_3 + + #set xy {662 352 680 365} ;# Match head + set xy { + 671 352 677.4 353.9 680 358.5 677.4 363.1 671 365 664.6 363.1 + 662 358.5 664.6 353.9 + } + $w.c create poly $xy -fill $color -outline $color -tag I2_4 +} +proc Move2 {{step {}}} { + global w + set step [GetStep 2 $step] + + set stages {0 0 1 2 0 2 1 0 1 2 0 2 1} + set xy(0) { + 686 333 692 323 682 316 674 309 671 295 668 307 662 318 662 328 + 671 336 + } + set xy(1) {687 331 698 322 703 295 680 320 668 297 663 311 661 327 671 335} + set xy(2) { + 686 331 704 322 688 300 678 283 678 283 674 298 666 309 660 324 + 672 336 + } + + if {$step >= [llength $stages]} { + $w.c delete I2 + return 0 + } + + if {$step == 0} { ;# Rotate the match + set beta 20 + foreach {Ox Oy} [Anchor I2_0 s] break ;# Where to pivot + for {set i 0} {[$w.c find withtag I2_$i] != {}} {incr i} { + RotateItem I2_$i $Ox $Oy $beta + } + $w.c create poly -tag I2 -smooth 1 -fill $::C(2) ;# For the flame + return 1 + } + $w.c coords I2 $xy([lindex $stages $step]) + return [expr {$step == 7 ? 3 : 1}] +} +# Weight and pulleys +proc Draw3 {} { + global w + set color $::C(3a) + set color2 $::C(3b) + + set xy {602 296 577 174 518 174} + foreach {x y} $xy { ;# 3 Pulleys + $w.c create oval [box $x $y 13] -fill $color -outline $::C(fg) -width 3 + $w.c create oval [box $x $y 2] -fill $::C(fg) -outline $::C(fg) + } + + set xy {750 309 670 309} ;# Wall to flame + $w.c create line $xy -tag I3_s -width 3 -fill $::C(fg) -smooth 1 + set xy {670 309 650 309} ;# Flame to pulley 1 + $w.c create line $xy -tag I3_0 -width 3 -fill $::C(fg) + set xy {650 309 600 309} ;# Flame to pulley 1 + $w.c create line $xy -tag I3_1 -width 3 -fill $::C(fg) + set xy {589 296 589 235} ;# Pulley 1 half way to 2 + $w.c create line $xy -tag I3_2 -width 3 -fill $::C(fg) + set xy {589 235 589 174} ;# Pulley 1 other half to 2 + $w.c create line $xy -width 3 -fill $::C(fg) + set xy {577 161 518 161} ;# Across the top + $w.c create line $xy -width 3 -fill $::C(fg) + set xy {505 174 505 205} ;# Down to weight + $w.c create line $xy -tag I3_w -width 3 -fill $::C(fg) + + # Draw the weight as 2 circles, two rectangles and 1 rounded rectangle + set xy {515 207 495 207} + foreach {x1 y1 x2 y2} $xy { + $w.c create oval [box $x1 $y1 6] -tag I3_ -fill $color2 -outline $color2 + $w.c create oval [box $x2 $y2 6] -tag I3_ -fill $color2 -outline $color2 + incr y1 -6; incr y2 6 + $w.c create rect $x1 $y1 $x2 $y2 -tag I3_ -fill $color2 -outline $color2 + } + set xy {492 220 518 263} + set xy [RoundRect $xy 15] + $w.c create poly $xy -smooth 1 -tag I3_ -fill $color2 -outline $color2 + set xy {500 217 511 217} + $w.c create line $xy -tag I3_ -fill $color2 -width 10 + + set xy {502 393 522 393 522 465} ;# Bottom weight target + $w.c create line $xy -tag I3__ -fill $::C(fg) -join miter -width 10 +} +proc Move3 {{step {}}} { + global w + set step [GetStep 3 $step] + + set pos {{505 247} {505 297} {505 386.5} {505 386.5}} + set rope(0) {750 309 729 301 711 324 690 300} + set rope(1) {750 309 737 292 736 335 717 315 712 320} + set rope(2) {750 309 737 309 740 343 736 351 725 340} + set rope(3) {750 309 738 321 746 345 742 356} + + if {$step >= [llength $pos]} {return 0} + + $w.c delete "I3_$step" ;# Delete part of the rope + MoveAbs I3_ [lindex $pos $step] ;# Move weight down + $w.c coords I3_s $rope($step) ;# Flapping rope end + $w.c coords I3_w [concat 505 174 [lindex $pos $step]] + if {$step == 2} { + $w.c move I3__ 0 30 + return 2 + } + return 1 +} +# Cage and door +proc Draw4 {} { + global w + set color $::C(4) + set xy {527 356 611 464} + foreach {x0 y0 x1 y1} $xy break + + for {set y $y0} {$y <= $y1} {incr y 12} { ;# Horizontal bars + $w.c create line $x0 $y $x1 $y -fill $color -width 1 + } + for {set x $x0} {$x <= $x1} {incr x 12} { ;# Vertical bars + $w.c create line $x $y0 $x $y1 -fill $color -width 1 + } + + set xy {518 464 518 428} ;# Swing gate + $w.c create line $xy -tag I4 -fill $color -width 3 +} +proc Move4 {{step {}}} { + global w + set step [GetStep 4 $step] + + set angles {-10 -20 -30 -30} + if {$step >= [llength $angles]} {return 0} + RotateItem I4 518 464 [lindex $angles $step] + $w.c raise I4 + return [expr {$step == 3 ? 3 : 1}] +} +# Mouse +proc Draw5 {} { + global w + set color $::C(5a) + set color2 $::C(5b) + set xy {377 248 410 248 410 465 518 465} ;# Mouse course + lappend xy 518 428 451 428 451 212 377 212 + $w.c create poly $xy -fill $color2 -outline $::C(fg) -width 3 + + set xy { + 534.5 445.5 541 440 552 436 560 436 569 440 574 446 575 452 574 454 + 566 456 554 456 545 456 537 454 530 452 + } + $w.c create poly $xy -tag {I5 I5_0} -fill $color + set xy {573 452 592 458 601 460 613 456} ;# Tail + $w.c create line $xy -tag {I5 I5_1} -fill $color -smooth 1 -width 3 + set xy [box 540 446 2] ;# Eye + set xy {540 444 541 445 541 447 540 448 538 447 538 445} + #.c create oval $xy -tag {I5 I5_2} -fill $::C(bg) -outline {} + $w.c create poly $xy -tag {I5 I5_2} -fill $::C(bg) -outline {} -smooth 1 + set xy {538 454 535 461} ;# Front leg + $w.c create line $xy -tag {I5 I5_3} -fill $color -width 2 + set xy {566 455 569 462} ;# Back leg + $w.c create line $xy -tag {I5 I5_4} -fill $color -width 2 + set xy {544 455 545 460} ;# 2nd front leg + $w.c create line $xy -tag {I5 I5_5} -fill $color -width 2 + set xy {560 455 558 460} ;# 2nd back leg + $w.c create line $xy -tag {I5 I5_6} -fill $color -width 2 +} +proc Move5 {{step {}}} { + set step [GetStep 5 $step] + + set pos { + {553 452} {533 452} {513 452} {493 452} {473 452} + {463 442 30} {445.5 441.5 30} {425.5 434.5 30} {422 414} {422 394} + {422 374} {422 354} {422 334} {422 314} {422 294} + {422 274 -30} {422 260.5 -30 x} {422.5 248.5 -28} {425 237} + } + if {$step >= [llength $pos]} { + return 0 + } + + foreach {x y beta next} [lindex $pos $step] break + MoveAbs I5 [list $x $y] + if {$beta != {}} { + foreach {Ox Oy} [Centroid I5_0] break + foreach id {0 1 2 3 4 5 6} { + RotateItem I5_$id $Ox $Oy $beta + } + } + if {$next == "x"} {return 3} + return 1 +} +# Dropping gumballs +array set XY6 { + -1 {366 207} -2 {349 204} -3 {359 193} -4 {375 192} -5 {340 190} + -6 {349 177} -7 {366 177} -8 {380 176} -9 {332 172} -10 {342 161} + -11 {357 164} -12 {372 163} -13 {381 149} -14 {364 151} -15 {349 146} + -16 {333 148} 0 {357 219} + 1 {359 261} 2 {359 291} 3 {359 318} 4 {361 324} 5 {365 329} 6 {367 334} + 7 {367 340} 8 {366 346} 9 {364 350} 10 {361 355} 11 {359 370} 12 {359 391} + 13,0 {360 456} 13,1 {376 456} 13,2 {346 456} 13,3 {330 456} + 13,4 {353 444} 13,5 {368 443} 13,6 {339 442} 13,7 {359 431} + 13,8 {380 437} 13,9 {345 428} 13,10 {328 434} 13,11 {373 424} + 13,12 {331 420} 13,13 {360 417} 13,14 {345 412} 13,15 {376 410} + 13,16 {360 403} +} + +proc Draw6 {} { + global w + set color $::C(6) + set xy {324 130 391 204} ;# Ball holder + set xy [RoundRect $xy 10] + $w.c create poly $xy -smooth 1 -outline $::C(fg) -width 3 -fill $color + set xy {339 204 376 253} ;# Below the ball holder + $w.c create rect $xy -fill {} -outline $::C(fg) -width 3 -fill $color -tag I6c + set xy [box 346 339 28] + $w.c create oval $xy -fill $color -outline {} ;# Rotor + $w.c create arc $xy -outline $::C(fg) -width 2 -style arc \ + -start 80 -extent 205 + $w.c create arc $xy -outline $::C(fg) -width 2 -style arc \ + -start -41 -extent 85 + + set xy [box 346 339 15] ;# Center of rotor + $w.c create oval $xy -outline $::C(fg) -fill $::C(fg) -tag I6m + set xy {352 312 352 254 368 254 368 322} ;# Top drop to rotor + $w.c create poly $xy -fill $color -outline {} + $w.c create line $xy -fill $::C(fg) -width 2 + + set xy {353 240 367 300} ;# Poke bottom hole + $w.c create rect $xy -fill $color -outline {} + set xy {341 190 375 210} ;# Poke another hole + $w.c create rect $xy -fill $color -outline {} + + set xy {368 356 368 403 389 403 389 464 320 464 320 403 352 403 352 366} + $w.c create poly $xy -fill $color -outline {} -width 2 ;# Below rotor + $w.c create line $xy -fill $::C(fg) -width 2 + set xy [box 275 342 7] ;# On/off rotor + $w.c create oval $xy -outline $::C(fg) -fill $::C(fg) + set xy {276 334 342 325} ;# Fan belt top + $w.c create line $xy -fill $::C(fg) -width 3 + set xy {276 349 342 353} ;# Fan belt bottom + $w.c create line $xy -fill $::C(fg) -width 3 + + set xy {337 212 337 247} ;# What the mouse pushes + $w.c create line $xy -fill $::C(fg) -width 3 -tag I6_ + set xy {392 212 392 247} + $w.c create line $xy -fill $::C(fg) -width 3 -tag I6_ + set xy {337 230 392 230} + $w.c create line $xy -fill $::C(fg) -width 7 -tag I6_ + + set who -1 ;# All the balls + set colors {red cyan orange green blue darkblue} + eval lappend colors $colors $colors + + for {set i 0} {$i < 17} {incr i} { + set loc [expr {-1 * $i}] + set color [lindex $colors $i] + $w.c create oval [eval box $::XY6($loc) 5] -fill $color \ + -outline $color -tag I6_b$i + } + Draw6a 12 ;# The wheel +} +proc Draw6a {beta} { + global w + $w.c delete I6_0 + foreach {Ox Oy} {346 339} break + for {set i 0} {$i < 4} {incr i} { + set b [expr {$beta + $i * 45}] + foreach {x y} [RotateC 28 0 0 0 $b] break + set xy [list [expr {$Ox+$x}] [expr {$Oy+$y}] \ + [expr {$Ox-$x}] [expr {$Oy-$y}]] + $w.c create line $xy -tag I6_0 -fill $::C(fg) -width 2 + } +} +proc Move6 {{step {}}} { + global w + set step [GetStep 6 $step] + if {$step > 62} {return 0} + + if {$step < 2} { ;# Open gate for balls to drop + $w.c move I6_ -7 0 + if {$step == 1} { ;# Poke a hole + set xy {348 226 365 240} + $w.c create rect $xy -fill [$w.c itemcget I6c -fill] -outline {} + } + return 1 + } + + set s [expr {$step - 1}] ;# Do the gumball drop dance + for {set i 0} {$i <= int(($s-1) / 3)} {incr i} { + set tag "I6_b$i" + if {[$w.c find withtag $tag] == {}} break + set loc [expr {$s - 3 * $i}] + + if {[info exists ::XY6($loc,$i)]} { + MoveAbs $tag $::XY6($loc,$i) + } elseif {[info exists ::XY6($loc)]} { + MoveAbs $tag $::XY6($loc) + } + } + if {($s % 3) == 1} { + set first [expr {($s + 2) / 3}] + for {set i $first} {1} {incr i} { + set tag "I6_b$i" + if {[$w.c find withtag $tag] == {}} break + set loc [expr {$first - $i}] + MoveAbs $tag $::XY6($loc) + } + } + if {$s >= 3} { ;# Rotate the motor + set idx [expr {$s % 3}] + #Draw6a [lindex {12 35 64} $idx] + Draw6a [expr {12 + $s * 15}] + } + return [expr {$s == 3 ? 3 : 1}] +} +# On/off switch +proc Draw7 {} { + global w + set color $::C(7) + set xy {198 306 277 374} ;# Box + $w.c create rect $xy -outline $::C(fg) -width 2 -fill $color -tag I7z + $w.c lower I7z + set xy {275 343 230 349} + $w.c create line $xy -tag I7 -fill $::C(fg) -arrow last \ + -arrowshape {23 23 8} -width 6 + set xy {225 324} ;# On button + $w.c create oval [eval box $xy 3] -fill $::C(fg) -outline $::C(fg) + set xy {218 323} ;# On text + set font {{Times Roman} 8} + $w.c create text $xy -text "on" -anchor e -fill $::C(fg) -font $font + set xy {225 350} ;# Off button + $w.c create oval [eval box $xy 3] -fill $::C(fg) -outline $::C(fg) + set xy {218 349} ;# Off button + $w.c create text $xy -text "off" -anchor e -fill $::C(fg) -font $font +} +proc Move7 {{step {}}} { + set step [GetStep 7 $step] + set numsteps 30 + if {$step > $numsteps} {return 0} + set beta [expr {30.0 / $numsteps}] + RotateItem I7 275 343 $beta + + return [expr {$step == $numsteps ? 3 : 1}] +} +# Electricity to the fan +proc Draw8 {} { + Sine 271 248 271 306 5 8 -tag I8_s -fill $::C(8) -width 3 +} +proc Move8 {{step {}}} { + global w + set step [GetStep 8 $step] + + if {$step > 3} {return 0} + if {$step == 0} { + Sparkle [Anchor I8_s s] I8 + return 1 + + } elseif {$step == 1} { + MoveAbs I8 [Anchor I8_s c] + } elseif {$step == 2} { + MoveAbs I8 [Anchor I8_s n] + } else { + $w.c delete I8 + } + return [expr {$step == 2 ? 3 : 1}] +} +# Fan +proc Draw9 {} { + global w + set color $::C(9) + set xy {266 194 310 220} + $w.c create oval $xy -outline $color -fill $color + set xy {280 209 296 248} + $w.c create oval $xy -outline $color -fill $color + set xy {288 249 252 249 260 240 280 234 296 234 316 240 324 249 288 249} + $w.c create poly $xy -fill $color -smooth 1 + + set xy {248 205 265 214 264 205 265 196} ;# Spinner + $w.c create poly $xy -fill $color + + set xy {255 206 265 234} ;# Fan blades + $w.c create oval $xy -fill {} -outline $::C(fg) -width 3 -tag I9_0 + set xy {255 176 265 204} + $w.c create oval $xy -fill {} -outline $::C(fg) -width 3 -tag I9_0 + set xy {255 206 265 220} + $w.c create oval $xy -fill {} -outline $::C(fg) -width 1 -tag I9_1 + set xy {255 190 265 204} + $w.c create oval $xy -fill {} -outline $::C(fg) -width 1 -tag I9_1 +} +proc Move9 {{step {}}} { + global w + set step [GetStep 9 $step] + + if {$step & 1} { + $w.c itemconfig I9_0 -width 4 + $w.c itemconfig I9_1 -width 1 + $w.c lower I9_1 I9_0 + } else { + $w.c itemconfig I9_0 -width 1 + $w.c itemconfig I9_1 -width 4 + $w.c lower I9_0 I9_1 + } + if {$step == 0} {return 3} + return 1 +} +# Boat +proc Draw10 {} { + global w + set color $::C(10a) + set color2 $::C(10b) + set xy {191 230 233 230 233 178 191 178} ;# Sail + $w.c create poly $xy -fill $color -width 3 -outline $::C(fg) -tag I10 + set xy [box 209 204 31] ;# Front + $w.c create arc $xy -outline {} -fill $color -style pie \ + -start 120 -extent 120 -tag I10 + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc \ + -start 120 -extent 120 -tag I10 + set xy [box 249 204 31] ;# Back + $w.c create arc $xy -outline {} -fill $::C(bg) -width 3 -style pie \ + -start 120 -extent 120 -tag I10 + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc \ + -start 120 -extent 120 -tag I10 + + set xy {200 171 200 249} ;# Mast + $w.c create line $xy -fill $::C(fg) -width 3 -tag I10 + set xy {159 234 182 234} ;# Bow sprit + $w.c create line $xy -fill $::C(fg) -width 3 -tag I10 + set xy {180 234 180 251 220 251} ;# Hull + $w.c create line $xy -fill $::C(fg) -width 6 -tag I10 + + set xy {92 255 221 255} ;# Waves + eval Sine $xy 2 25 -fill $color2 -width 1 -tag I10w + + set xy [lrange [$w.c coords I10w] 4 end-4] ;# Water + set xy [concat $xy 222 266 222 277 99 277] + $w.c create poly $xy -fill $color2 -outline $color2 + set xy {222 266 222 277 97 277 97 266} ;# Water bottom + $w.c create line $xy -fill $::C(fg) -width 3 + + set xy [box 239 262 17] + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc \ + -start 95 -extent 103 + set xy [box 76 266 21] + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc -extent 190 +} +proc Move10 {{step {}}} { + set step [GetStep 10 $step] + set pos { + {195 212} {193 212} {190 212} {186 212} {181 212} {176 212} + {171 212} {166 212} {161 212} {156 212} {151 212} {147 212} {142 212} + {137 212} {132 212 x} {127 212} {121 212} {116 212} {111 212} + } + + if {$step >= [llength $pos]} {return 0} + set where [lindex $pos $step] + MoveAbs I10 $where + + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# 2nd ball drop +proc Draw11 {} { + global w + set color $::C(11a) + set color2 $::C(11b) + set xy {23 264 55 591} ;# Color the down tube + $w.c create rect $xy -fill $color -outline {} + set xy [box 71 460 48] ;# Color the outer loop + $w.c create oval $xy -fill $color -outline {} + + set xy {55 264 55 458} ;# Top right side + $w.c create line $xy -fill $::C(fg) -width 3 + set xy {55 504 55 591} ;# Bottom right side + $w.c create line $xy -fill $::C(fg) -width 3 + set xy [box 71 460 48] ;# Outer loop + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc \ + -start 110 -extent -290 -tag I11i + set xy [box 71 460 16] ;# Inner loop + $w.c create oval $xy -outline $::C(fg) -fill {} -width 3 -tag I11i + $w.c create oval $xy -outline $::C(fg) -fill $::C(bg) -width 3 + + set xy {23 264 23 591} ;# Left side + $w.c create line $xy -fill $::C(fg) -width 3 + set xy [box 1 266 23] ;# Top left curve + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc -extent 90 + + set xy [box 75 235 9] ;# The ball + $w.c create oval $xy -fill $color2 -outline {} -width 3 -tag I11 +} +proc Move11 {{step {}}} { + set step [GetStep 11 $step] + set pos { + {75 235} {70 235} {65 237} {56 240} {46 247} {38 266} {38 296} + {38 333} {38 399} {38 475} {74 496} {105 472} {100 437} {65 423} + {-100 -100} {38 505} {38 527 x} {38 591} + } + + if {$step >= [llength $pos]} {return 0} + set where [lindex $pos $step] + MoveAbs I11 $where + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# Hand +proc Draw12 {} { + global w + set xy {20 637 20 617 20 610 20 590 40 590 40 590 60 590 60 610 60 610} + lappend xy 60 610 65 620 60 631 ;# Thumb + lappend xy 60 631 60 637 60 662 60 669 52 669 56 669 50 669 50 662 50 637 + + set y0 637 ;# Bumps for fingers + set y1 645 + for {set x 50} {$x > 20} {incr x -10} { + set x1 [expr {$x - 5}] + set x2 [expr {$x - 10}] + lappend xy $x $y0 $x1 $y1 $x2 $y0 + } + $w.c create poly $xy -fill $::C(12) -outline $::C(fg) -smooth 1 -tag I12 \ + -width 3 +} +proc Move12 {{step {}}} { + set step [GetStep 12 $step] + set pos {{42.5 641 x}} + if {$step >= [llength $pos]} {return 0} + + set where [lindex $pos $step] + MoveAbs I12 $where + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# Fax +proc Draw13 {} { + global w + set color $::C(13a) + set xy {86 663 149 663 149 704 50 704 50 681 64 681 86 671} + set xy2 {784 663 721 663 721 704 820 704 820 681 806 681 784 671} + set radii {2 9 9 8 5 5 2} + + RoundPoly $w.c $xy $radii -width 3 -outline $::C(fg) -fill $color + RoundPoly $w.c $xy2 $radii -width 3 -outline $::C(fg) -fill $color + + set xy {56 677} + $w.c create rect [eval box $xy 4] -fill {} -outline $::C(fg) -width 3 -tag I13 + set xy {809 677} + $w.c create rect [eval box $xy 4] -fill {} -outline $::C(fg) -width 3 -tag I13R + + set xy {112 687} ;# Label + $w.c create text $xy -text "FAX" -fill $::C(fg) -font {{Times Roman} 12 bold} + set xy {762 687} + $w.c create text $xy -text "FAX" -fill $::C(fg) -font {{Times Roman} 12 bold} + + set xy {138 663 148 636 178 636} ;# Paper guide + $w.c create line $xy -smooth 1 -fill $::C(fg) -width 3 + set xy {732 663 722 636 692 636} + $w.c create line $xy -smooth 1 -fill $::C(fg) -width 3 + + Sine 149 688 720 688 5 15 -tag I13_s -fill $::C(fg) -width 3 +} +proc Move13 {{step {}}} { + global w + set step [GetStep 13 $step] + set numsteps 7 + + if {$step == $numsteps+2} { + MoveAbs I13_star {-100 -100} + $w.c itemconfig I13R -fill $::C(13b) -width 2 + return 2 + } + if {$step == 0} { ;# Button down + $w.c delete I13 + Sparkle {-100 -100} I13_star ;# Create off screen + return 1 + } + foreach {x0 y0} [Anchor I13_s w] {x1 y1} [Anchor I13_s e] break + set x [expr {$x0 + ($x1-$x0) * ($step - 1) / double($numsteps)}] + MoveAbs I13_star [list $x $y0] + return 1 +} +# Paper in fax +proc Draw14 {} { + global w + set color $::C(14) + set xy {102 661 113 632 130 618} ;# Left paper edge + $w.c create line $xy -smooth 1 -fill $color -width 3 -tag I14L_0 + set xy {148 629 125 640 124 662} ;# Right paper edge + $w.c create line $xy -smooth 1 -fill $color -width 3 -tag I14L_1 + Draw14a L + + set xy { + 768.0 662.5 767.991316225 662.433786215 767.926187912 662.396880171 + } + $w.c create line $xy -smooth 1 -fill $color -width 3 -tag I14R_0 + $w.c lower I14R_0 + # NB. these numbers are VERY sensitive, you must start with final size + # and shrink down to get the values + set xy { + 745.947897349 662.428358855 745.997829056 662.452239237 746.0 662.5 + } + $w.c create line $xy -smooth 1 -fill $color -width 3 -tag I14R_1 + $w.c lower I14R_1 +} +proc Draw14a {side} { + global w + set color $::C(14) + set xy [$w.c coords I14${side}_0] + set xy2 [$w.c coords I14${side}_1] + foreach {x0 y0 x1 y1 x2 y2} $xy break + foreach {x3 y3 x4 y4 x5 y5} $xy2 break + set zz [concat \ + $x0 $y0 $x0 $y0 $xy $x2 $y2 $x2 $y2 \ + $x3 $y3 $x3 $y3 $xy2 $x5 $y5 $x5 $y5] + $w.c delete I14$side + $w.c create poly $zz -tag I14$side -smooth 1 -fill $color -outline $color \ + -width 3 + $w.c lower I14$side +} +proc Move14 {{step {}}} { + global w + set step [GetStep 14 $step] + + # Paper going down + set sc [expr {.9 - .05*$step}] + if {$sc < .3} { + $w.c delete I14L + return 0 + } + + foreach {Ox Oy} [$w.c coords I14L_0] break + $w.c scale I14L_0 $Ox $Oy $sc $sc + foreach {Ox Oy} [lrange [$w.c coords I14L_1] end-1 end] break + $w.c scale I14L_1 $Ox $Oy $sc $sc + Draw14a L + + # Paper going up + set sc [expr {.35 + .05*$step}] + set sc [expr {1 / $sc}] + + foreach {Ox Oy} [$w.c coords I14R_0] break + $w.c scale I14R_0 $Ox $Oy $sc $sc + foreach {Ox Oy} [lrange [$w.c coords I14R_1] end-1 end] break + $w.c scale I14R_1 $Ox $Oy $sc $sc + Draw14a R + + return [expr {$step == 10 ? 3 : 1}] +} +# Light beam +proc Draw15 {} { + global w + set color $::C(15a) + set xy {824 599 824 585 820 585 829 585} + $w.c create line $xy -fill $::C(fg) -width 3 -tag I15a + set xy {789 599 836 643} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 3 + set xy {778 610 788 632} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 3 + set xy {766 617 776 625} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 3 + + set xy {633 600 681 640} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 3 + set xy {635 567 657 599} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 2 + set xy {765 557 784 583} + $w.c create rect $xy -fill $color -outline $::C(fg) -width 2 + + Sine 658 580 765 580 3 15 -tag I15_s -fill $::C(fg) -width 3 +} +proc Move15a {} { + global w + set color $::C(15b) + $w.c scale I15a 824 599 1 .3 ;# Button down + set xy {765 621 681 621} + $w.c create line $xy -dash "-" -width 3 -fill $color -tag I15 +} +proc Move15 {{step {}}} { + global w + set step [GetStep 15 $step] + set numsteps 6 + + if {$step == $numsteps+2} { + MoveAbs I15_star {-100 -100} + return 2 + } + if {$step == 0} { ;# Break the light beam + Sparkle {-100 -100} I15_star + set xy {765 621 745 621} + $w.c coords I15 $xy + return 1 + } + foreach {x0 y0} [Anchor I15_s w] {x1 y1} [Anchor I15_s e] break + set x [expr {$x0 + ($x1-$x0) * ($step - 1) / double($numsteps)}] + MoveAbs I15_star [list $x $y0] + return 1 +} +# Bell +proc Draw16 {} { + global w + set color $::C(16) + set xy {722 485 791 556} + $w.c create rect $xy -fill {} -outline $::C(fg) -width 3 + set xy [box 752 515 25] ;# Bell + $w.c create oval $xy -fill $color -outline black -tag I16b -width 2 + set xy [box 752 515 5] ;# Bell button + $w.c create oval $xy -fill black -outline black -tag I16b + + set xy {784 523 764 549} ;# Clapper + $w.c create line $xy -width 3 -tag I16c -fill $::C(fg) + set xy [box 784 523 4] + $w.c create oval $xy -fill $::C(fg) -outline $::C(fg) -tag I16d +} +proc Move16 {{step {}}} { + global w + set step [GetStep 16 $step] + + # Note: we never stop + foreach {Ox Oy} {760 553} break + if {$step & 1} { + set beta 12 + $w.c move I16b 3 0 + } else { + set beta -12 + $w.c move I16b -3 0 + } + RotateItem I16c $Ox $Oy $beta + RotateItem I16d $Ox $Oy $beta + + return [expr {$step == 1 ? 3 : 1}] +} +# Cat +proc Draw17 {} { + global w + set color $::C(17) + + set xy {584 556 722 556} + $w.c create line $xy -fill $::C(fg) -width 3 + set xy {584 485 722 485} + $w.c create line $xy -fill $::C(fg) -width 3 + + set xy {664 523 717 549} ;# Body + $w.c create arc $xy -outline $::C(fg) -fill $color -width 3 \ + -style chord -start 128 -extent -260 -tag I17 + + set xy {709 554 690 543} ;# Paw + $w.c create oval $xy -outline $::C(fg) -fill $color -width 3 -tag I17 + set xy {657 544 676 555} + $w.c create oval $xy -outline $::C(fg) -fill $color -width 3 -tag I17 + + set xy [box 660 535 15] ;# Lower face + $w.c create arc $xy -outline $::C(fg) -width 3 -style arc \ + -start 150 -extent 240 -tag I17_ + $w.c create arc $xy -outline {} -fill $color -width 1 -style chord \ + -start 150 -extent 240 -tag I17_ + set xy {674 529 670 513 662 521 658 521 650 513 647 529} ;# Ears + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + $w.c create poly $xy -fill $color -outline {} -width 1 -tag {I17_ I17_c} + set xy {652 542 628 539} ;# Whiskers + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + set xy {652 543 632 545} + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + set xy {652 546 632 552} + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + + set xy {668 543 687 538} + $w.c create line $xy -fill $::C(fg) -width 3 -tag {I17_ I17w} + set xy {668 544 688 546} + $w.c create line $xy -fill $::C(fg) -width 3 -tag {I17_ I17w} + set xy {668 547 688 553} + $w.c create line $xy -fill $::C(fg) -width 3 -tag {I17_ I17w} + + set xy {649 530 654 538 659 530} ;# Left eye + $w.c create line $xy -fill $::C(fg) -width 2 -smooth 1 -tag I17 + set xy {671 530 666 538 661 530} ;# Right eye + $w.c create line $xy -fill $::C(fg) -width 2 -smooth 1 -tag I17 + set xy {655 543 660 551 665 543} ;# Mouth + $w.c create line $xy -fill $::C(fg) -width 2 -smooth 1 -tag I17 +} +proc Move17 {{step {}}} { + global w + set step [GetStep 17 $step] + + if {$step == 0} { + $w.c delete I17 ;# Delete most of the cat + set xy {655 543 660 535 665 543} ;# Mouth + $w.c create line $xy -fill $::C(fg) -width 3 -smooth 1 -tag I17_ + set xy [box 654 530 4] ;# Left eye + $w.c create oval $xy -outline $::C(fg) -width 3 -fill {} -tag I17_ + set xy [box 666 530 4] ;# Right eye + $w.c create oval $xy -outline $::C(fg) -width 3 -fill {} -tag I17_ + + $w.c move I17_ 0 -20 ;# Move face up + set xy {652 528 652 554} ;# Front leg + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + set xy {670 528 670 554} ;# 2nd front leg + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + + set xy { + 675 506 694 489 715 513 715 513 715 513 716 525 716 525 716 525 + 706 530 695 530 679 535 668 527 668 527 668 527 675 522 676 517 + 677 512 + } ;# Body + $w.c create poly $xy -fill [$w.c itemcget I17_c -fill] \ + -outline $::C(fg) -width 3 -smooth 1 -tag I17_ + set xy {716 514 716 554} ;# Back leg + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + set xy {694 532 694 554} ;# 2nd back leg + $w.c create line $xy -fill $::C(fg) -width 3 -tag I17_ + set xy {715 514 718 506 719 495 716 488};# Tail + $w.c create line $xy -fill $::C(fg) -width 3 -smooth 1 -tag I17_ + + $w.c raise I17w ;# Make whiskers visible + $w.c move I17_ -5 0 ;# Move away from the wall a bit + return 2 + } + return 0 +} +# Sling shot +proc Draw18 {} { + global w + set color $::C(18) + set xy {721 506 627 506} ;# Sling hold + $w.c create line $xy -width 4 -fill $::C(fg) -tag I18 + + set xy {607 500 628 513} ;# Sling rock + $w.c create oval $xy -fill $color -outline {} -tag I18a + + set xy {526 513 606 507 494 502} ;# Sling band + $w.c create line $xy -fill $::C(fg) -width 4 -tag I18b + set xy { 485 490 510 540 510 575 510 540 535 491 } ;# Sling + $w.c create line $xy -fill $::C(fg) -width 6 +} +proc Move18 {{step {}}} { + global w + set step [GetStep 18 $step] + + set pos { + {587 506} {537 506} {466 506} {376 506} {266 506 x} {136 506} + {16 506} {-100 -100} + } + + set b(0) {490 502 719 507 524 512} ;# Band collapsing + set b(1) { + 491 503 524 557 563 505 559 496 546 506 551 525 553 536 538 534 + 532 519 529 499 + } + set b(2) {491 503 508 563 542 533 551 526 561 539 549 550 530 500} + set b(3) {491 503 508 563 530 554 541 562 525 568 519 544 530 501} + + if {$step >= [llength $pos]} { return 0} + + if {$step == 0} { + $w.c delete I18 + $w.c itemconfig I18b -smooth 1 + } + if {[info exists b($step)]} { + $w.c coords I18b $b($step) + } + + set where [lindex $pos $step] + MoveAbs I18a $where + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# Water pipe +proc Draw19 {} { + global w + set color $::C(19) + set xx {249 181 155 118 86 55 22 0} + foreach {x1 x2} $xx { + $w.c create rect $x1 453 $x2 467 -fill $color -outline {} -tag I19 + $w.c create line $x1 453 $x2 453 -fill $::C(fg) -width 1 ;# Pipe top + $w.c create line $x1 467 $x2 467 -fill $::C(fg) -width 1 ;# Pipe bottom + } + $w.c raise I11i + + set xy [box 168 460 16] ;# Bulge by the joint + $w.c create oval $xy -fill $color -outline {} + $w.c create arc $xy -outline $::C(fg) -width 1 -style arc \ + -start 21 -extent 136 + $w.c create arc $xy -outline $::C(fg) -width 1 -style arc \ + -start -21 -extent -130 + + set xy {249 447 255 473} ;# First joint 26x6 + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + + set xy [box 257 433 34] ;# Bend up + $w.c create arc $xy -outline {} -fill $color -width 1 \ + -style pie -start 0 -extent -91 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 0 -extent -90 + set xy [box 257 433 20] + $w.c create arc $xy -outline {} -fill $::C(bg) -width 1 \ + -style pie -start 0 -extent -92 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 0 -extent -90 + set xy [box 257 421 34] ;# Bend left + $w.c create arc $xy -outline {} -fill $color -width 1 \ + -style pie -start 1 -extent 91 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 0 -extent 90 + set xy [box 257 421 20] + $w.c create arc $xy -outline {} -fill $::C(bg) -width 1 \ + -style pie -start 0 -extent 90 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 0 -extent 90 + set xy [box 243 421 34] ;# Bend down + $w.c create arc $xy -outline {} -fill $color -width 1 \ + -style pie -start 90 -extent 90 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 90 -extent 90 + set xy [box 243 421 20] + $w.c create arc $xy -outline {} -fill $::C(bg) -width 1 \ + -style pie -start 90 -extent 90 + $w.c create arc $xy -outline $::C(fg) -width 1 \ + -style arc -start 90 -extent 90 + + set xy {270 427 296 433} ;# 2nd joint bottom + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + set xy {270 421 296 427} ;# 2nd joint top + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + set xy {249 382 255 408} ;# Third joint right + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + set xy {243 382 249 408} ;# Third joint left + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + set xy {203 420 229 426} ;# Last joint + $w.c create rect $xy -fill $color -outline $::C(fg) -width 1 + + set xy [box 168 460 6] ;# Handle joint + $w.c create oval $xy -fill $::C(fg) -outline {} -tag I19a + set xy {168 460 168 512} ;# Handle bar + $w.c create line $xy -fill $::C(fg) -width 5 -tag I19b +} +proc Move19 {{step {}}} { + set step [GetStep 19 $step] + + set angles {30 30 30} + if {$step == [llength $angles]} {return 2} + + foreach {Ox Oy} [Centroid I19a] break + RotateItem I19b $Ox $Oy [lindex $angles $step] + + return 1 +} +# Water pouring +proc Draw20 {} { +} +proc Move20 {{step {}}} { + global w + set step [GetStep 20 $step] + + set pos {451 462 473 484 496 504 513 523 532} + set freq {20 40 40 40 40 40 40 40 40} + set pos { + {451 20} {462 40} {473 40} {484 40} {496 40} {504 40} {513 40} + {523 40} {532 40 x} + } + if {$step >= [llength $pos]} {return 0} + + $w.c delete I20 + set where [lindex $pos $step] + foreach {y f} $where break + H2O $y $f + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +proc H2O {y f} { + global w + set color $::C(20) + $w.c delete I20 + + Sine 208 428 208 $y 4 $f -tag {I20 I20s} -width 3 -fill $color -smooth 1 + $w.c create line [$w.c coords I20s] -width 3 -fill $color -smooth 1 -tag {I20 I20a} + $w.c create line [$w.c coords I20s] -width 3 -fill $color -smooth 1 -tag {I20 I20b} + $w.c move I20a 8 0 + $w.c move I20b 16 0 +} +# Bucket +proc Draw21 {} { + global w + set color $::C(21) + set xy {217 451 244 490} ;# Right handle + $w.c create line $xy -fill $::C(fg) -width 2 -tag I21_a + set xy {201 467 182 490} ;# Left handle + $w.c create line $xy -fill $::C(fg) -width 2 -tag I21_a + + set xy {245 490 237 535} ;# Right side + set xy2 {189 535 181 490} ;# Left side + $w.c create poly [concat $xy $xy2] -fill $color -outline {} -tag {I21 I21f} + $w.c create line $xy -fill $::C(fg) -width 2 -tag I21 + $w.c create line $xy2 -fill $::C(fg) -width 2 -tag I21 + + set xy {182 486 244 498} ;# Top + $w.c create oval $xy -fill $color -outline {} -width 2 -tag {I21 I21f} + $w.c create oval $xy -fill {} -outline $::C(fg) -width 2 -tag {I21 I21t} + set xy {189 532 237 540} ;# Bottom + $w.c create oval $xy -fill $color -outline $::C(fg) -width 2 -tag {I21 I21b} +} +proc Move21 {{step {}}} { + global w + set step [GetStep 21 $step] + + set numsteps 30 + if {$step >= $numsteps} {return 0} + + foreach {x1 y1 x2 y2} [$w.c coords I21b] break + #foreach {X1 Y1 X2 Y2} [$w.c coords I21t] break + foreach {X1 Y1 X2 Y2} {183 492 243 504} break + + set f [expr {$step / double($numsteps)}] + set y2 [expr {$y2 - 3}] + set xx1 [expr {$x1 + ($X1 - $x1) * $f}] + set yy1 [expr {$y1 + ($Y1 - $y1) * $f}] + set xx2 [expr {$x2 + ($X2 - $x2) * $f}] + set yy2 [expr {$y2 + ($Y2 - $y2) * $f}] + #H2O $yy1 40 + + $w.c itemconfig I21b -fill $::C(20) + $w.c delete I21w + $w.c create poly $x2 $y2 $x1 $y1 $xx1 $yy1 $xx2 $yy1 -tag {I21 I21w} \ + -outline {} -fill $::C(20) + $w.c lower I21w I21 + $w.c raise I21b + $w.c lower I21f + + return [expr {$step == $numsteps-1 ? 3 : 1}] +} +# Bucket drop +proc Draw22 {} { +} +proc Move22 {{step {}}} { + global w + set step [GetStep 22 $step] + set pos {{213 513} {213 523} {213 543 x} {213 583} {213 593}} + + if {$step == 0} {$w.c itemconfig I21f -fill $::C(22)} + if {$step >= [llength $pos]} {return 0} + set where [lindex $pos $step] + MoveAbs I21 $where + H2O [lindex $where 1] 40 + $w.c delete I21_a ;# Delete handles + + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# Blow dart +proc Draw23 {} { + global w + set color $::C(23a) + set color2 $::C(23b) + set color3 $::C(23c) + + set xy {185 623 253 650} ;# Block + $w.c create rect $xy -fill black -outline $::C(fg) -width 2 -tag I23a + set xy {187 592 241 623} ;# Balloon + $w.c create oval $xy -outline {} -fill $color -tag I23b + $w.c create arc $xy -outline $::C(fg) -width 3 -tag I23b \ + -style arc -start 12 -extent 336 + set xy {239 604 258 589 258 625 239 610} ;# Balloon nozzle + $w.c create poly $xy -outline {} -fill $color -tag I23b + $w.c create line $xy -fill $::C(fg) -width 3 -tag I23b + + set xy {285 611 250 603} ;# Dart body + $w.c create oval $xy -fill $color2 -outline $::C(fg) -width 3 -tag I23d + set xy {249 596 249 618 264 607 249 596} ;# Dart tail + $w.c create poly $xy -fill $color3 -outline $::C(fg) -width 3 -tag I23d + set xy {249 607 268 607} ;# Dart detail + $w.c create line $xy -fill $::C(fg) -width 3 -tag I23d + set xy {285 607 305 607} ;# Dart needle + $w.c create line $xy -fill $::C(fg) -width 3 -tag I23d +} +proc Move23 {{step {}}} { + global w + set step [GetStep 23 $step] + + set pos { + {277 607} {287 607} {307 607 x} {347 607} {407 607} {487 607} + {587 607} {687 607} {787 607} {-100 -100} + } + + if {$step >= [llength $pos]} {return 0} + if {$step <= 1} { + eval $w.c scale I23b [Anchor I23a n] .9 .5 + } + set where [lindex $pos $step] + MoveAbs I23d $where + + if {[lindex $where 2] == "x"} {return 3} + return 1 +} +# Balloon +proc Draw24 {} { + global w + set color $::C(24a) + set xy {366 518 462 665} ;# Balloon + $w.c create oval $xy -fill $color -outline $::C(fg) -width 3 -tag I24 + set xy {414 666 414 729} ;# String + $w.c create line $xy -fill $::C(fg) -width 3 -tag I24 + set xy {410 666 404 673 422 673 418 666} ;# Nozzle + $w.c create poly $xy -fill $color -outline $::C(fg) -width 3 -tag I24 + + set xy {387 567 390 549 404 542} ;# Reflections + $w.c create line $xy -fill $::C(fg) -smooth 1 -width 2 -tag I24 + set xy {395 568 399 554 413 547} + $w.c create line $xy -fill $::C(fg) -smooth 1 -width 2 -tag I24 + set xy {403 570 396 555 381 553} + $w.c create line $xy -fill $::C(fg) -smooth 1 -width 2 -tag I24 + set xy {408 564 402 547 386 545} + $w.c create line $xy -fill $::C(fg) -smooth 1 -width 2 -tag I24 +} +proc Move24 {{step {}}} { + global S w + set step [GetStep 24 $step] + + if {$step > 4} {return 0} + if {$step == 4} {return 2} + + if {$step == 0} { + $w.c delete I24 ;# Exploding balloon + set xy { + 347 465 361 557 271 503 272 503 342 574 259 594 259 593 362 626 + 320 737 320 740 398 691 436 738 436 739 476 679 528 701 527 702 + 494 627 548 613 548 613 480 574 577 473 577 473 474 538 445 508 + 431 441 431 440 400 502 347 465 347 465 + } + $w.c create poly $xy -tag I24 -fill $::C(24b) -outline $::C(24a) \ + -width 10 -smooth 1 + set msg [subst $S(message)] + $w.c create text [Centroid I24] -text $msg -tag {I24 I24t} \ + -justify center -font {{Times Roman} 18 bold} + return 1 + } + + $w.c itemconfig I24t -font [list {Times Roman} [expr {18 + 6*$step}] bold] + $w.c move I24 0 -60 + eval $w.c scale I24 [Centroid I24] 1.25 1.25 + return 1 +} +# Displaying the message +proc Move25 {{step {}}} { + global S + set step [GetStep 25 $step] + if {$step == 0} { + set ::XY(25) [clock clicks -milliseconds] + return 1 + } + set elapsed [expr {[clock clicks -milliseconds] - $::XY(25)}] + if {$elapsed < 5000} {return 1} + return 2 +} +# Collapsing balloon +proc Move26 {{step {}}} { + global S w + set step [GetStep 26 $step] + + if {$step >= 3} { + $w.c delete I24 I26 + $w.c create text 430 755 -anchor s -tag I26 \ + -text "click to continue" -font {{Times Roman} 24 bold} + bind $w.c <1> Reset + return 4 + } + + eval $w.c scale I24 [Centroid I24] .8 .8 + $w.c move I24 0 60 + $w.c itemconfig I24t -font [list {Times Roman} [expr {30 - 6*$step}] bold] + return 1 +} + +################################################################ +# +# Helper functions +# +proc box {x y r} { + return [list [expr {$x-$r}] [expr {$y-$r}] [expr {$x+$r}] [expr {$y+$r}]] +} +proc MoveAbs {item xy} { + global w + foreach {x y} $xy break + foreach {Ox Oy} [Centroid $item] break + set dx [expr {$x - $Ox}] + set dy [expr {$y - $Oy}] + $w.c move $item $dx $dy +} +proc RotateItem {item Ox Oy beta} { + global w + set xy [$w.c coords $item] + set xy2 {} + foreach {x y} $xy { + eval lappend xy2 [RotateC $x $y $Ox $Oy $beta] + } + $w.c coords $item $xy2 +} +proc RotateC {x y Ox Oy beta} { + # rotates vector (Ox,Oy)->(x,y) by beta degrees clockwise + + set x [expr {$x - $Ox}] ;# Shift to origin + set y [expr {$y - $Oy}] + + set beta [expr {$beta * atan(1) * 4 / 180.0}] ;# Radians + set xx [expr {$x * cos($beta) - $y * sin($beta)}] ;# Rotate + set yy [expr {$x * sin($beta) + $y * cos($beta)}] + + set xx [expr {$xx + $Ox}] ;# Shift back + set yy [expr {$yy + $Oy}] + + return [list $xx $yy] +} + +proc Reset {} { + global S w + DrawAll + bind $w.c <1> {} + set S(mode) $::MSTART + set S(active) 0 +} +# Each Move## keeps its state info in STEP, this retrieves and increments it +proc GetStep {who step} { + global STEP + if {$step != {}} { + set STEP($who) $step + } else { + if {! [info exists STEP($who)] || $STEP($who) == ""} { + set STEP($who) 0 + } else { + incr STEP($who) + } + } + return $STEP($who) +} +proc ResetStep {} { + global STEP + set ::S(cnt) 0 + foreach a [array names STEP] { set STEP($a) ""} +} +proc Sine {x0 y0 x1 y1 amp freq args} { + global w + set PI [expr {4 * atan(1)}] + set step 2 + set xy {} + if {$y0 == $y1} { ;# Horizontal + for {set x $x0} {$x <= $x1} {incr x $step} { + set beta [expr {($x - $x0) * 2 * $PI / $freq}] + set y [expr {$y0 + $amp * sin($beta)}] + lappend xy $x $y + } + } else { + for {set y $y0} {$y <= $y1} {incr y $step} { + set beta [expr {($y - $y0) * 2 * $PI / $freq}] + set x [expr {$x0 + $amp * sin($beta)}] + lappend xy $x $y + } + } + return [eval $w.c create line $xy $args] +} +proc RoundRect {xy radius args} { + global w + foreach {x0 y0 x3 y3} $xy break + set r [winfo pixels $w.c $radius] + set d [expr {2 * $r}] + + # Make sure that the radius of the curve is less than 3/8 size of the box! + set maxr 0.75 + if {$d > $maxr * ($x3 - $x0) } { + set d [expr { $maxr * ($x3 - $x0)}] + } + if {$d > $maxr * ($y3 - $y0) } { + set d [expr { $maxr * ($y3 - $y0) }] + } + + set x1 [expr { $x0 + $d }] + set x2 [expr { $x3 - $d }] + set y1 [expr { $y0 + $d }] + set y2 [expr { $y3 - $d }] + + set xy [list $x0 $y0 $x1 $y0 $x2 $y0 $x3 $y0 $x3 $y1 $x3 $y2] + lappend xy $x3 $y3 $x2 $y3 $x1 $y3 $x0 $y3 $x0 $y2 $x0 $y1 + return $xy +} +proc RoundPoly {canv xy radii args} { + set lenXY [llength $xy] + set lenR [llength $radii] + if {$lenXY != 2*$lenR} { + error "wrong number of vertices and radii" + } + + set knots {} + foreach {x0 y0} [lrange $xy end-1 end] break + foreach {x1 y1} $xy break + eval lappend xy [lrange $xy 0 1] + + for {set i 0} {$i < $lenXY} {incr i 2} { + set radius [lindex $radii [expr {$i/2}]] + set r [winfo pixels $canv $radius] + + foreach {x2 y2} [lrange $xy [expr {$i + 2}] [expr {$i + 3}]] break + set z [_RoundPoly2 $x0 $y0 $x1 $y1 $x2 $y2 $r] + eval lappend knots $z + + foreach {x0 y0} [list $x1 $y1] break + foreach {x1 y1} [list $x2 $y2] break + } + set n [eval $canv create polygon $knots -smooth 1 $args] + return $n +} +proc _RoundPoly2 {x0 y0 x1 y1 x2 y2 radius} { + set d [expr { 2 * $radius }] + set maxr 0.75 + + set v1x [expr {$x0 - $x1}] + set v1y [expr {$y0 - $y1}] + set v2x [expr {$x2 - $x1}] + set v2y [expr {$y2 - $y1}] + + set vlen1 [expr {sqrt($v1x*$v1x + $v1y*$v1y)}] + set vlen2 [expr {sqrt($v2x*$v2x + $v2y*$v2y)}] + if {$d > $maxr * $vlen1} { + set d [expr {$maxr * $vlen1}] + } + if {$d > $maxr * $vlen2} { + set d [expr {$maxr * $vlen2}] + } + + lappend xy [expr {$x1 + $d * $v1x/$vlen1}] [expr {$y1 + $d * $v1y/$vlen1}] + lappend xy $x1 $y1 + lappend xy [expr {$x1 + $d * $v2x/$vlen2}] [expr {$y1 + $d * $v2y/$vlen2}] + + return $xy +} +proc Sparkle {Oxy tag} { + global w + set xy {299 283 298 302 295 314 271 331 239 310 242 292 256 274 281 273} + foreach {x y} $xy { + $w.c create line 271 304 $x $y -fill white -width 3 -tag $tag + } + MoveAbs $tag $Oxy +} +proc Centroid {item} { + return [Anchor $item c] +} +proc Anchor {item where} { + global w + foreach {x1 y1 x2 y2} [$w.c bbox $item] break + if {[string first "n" $where] > -1} { + set y $y1 + } elseif {[string first "s" $where] > -1} { + set y $y2 + } else { + set y [expr {($y1 + $y2) / 2.0}] + } + if {[string first "w" $where] > -1} { + set x $x1 + } elseif {[string first "e" $where] > -1} { + set x $x2 + } else { + set x [expr {($x1 + $x2) / 2.0}] + } + return [list $x $y] +} + +DoDisplay +Reset +Go ;# Start everything going diff --git a/mingw/lib/tk8.5/demos/hello b/mingw/lib/tk8.5/demos/hello new file mode 100644 index 00000000..6461f468 --- /dev/null +++ b/mingw/lib/tk8.5/demos/hello @@ -0,0 +1,24 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# hello -- +# Simple Tk script to create a button that prints "Hello, world". +# Click on the button to terminate the program. +# +# RCS: @(#) $Id: hello,v 1.4 2003/09/30 14:54:30 dkf Exp $ + +package require Tk + +# The first line below creates the button, and the second line +# asks the packer to shrink-wrap the application's main window +# around the button. + +button .hello -text "Hello, world" -command { + puts stdout "Hello, world"; destroy . +} +pack .hello + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/hscale.tcl b/mingw/lib/tk8.5/demos/hscale.tcl new file mode 100644 index 00000000..14989022 --- /dev/null +++ b/mingw/lib/tk8.5/demos/hscale.tcl @@ -0,0 +1,47 @@ +# hscale.tcl -- +# +# This demonstration script shows an example with a horizontal scale. +# +# RCS: @(#) $Id: hscale.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .hscale +catch {destroy $w} +toplevel $w +wm title $w "Horizontal Scale Demonstration" +wm iconname $w "hscale" +positionWindow $w + +label $w.msg -font $font -wraplength 3.5i -justify left -text "An arrow and a horizontal scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the length of the arrow." +pack $w.msg -side top -padx .5c + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth 10 +pack $w.frame -side top -fill x + +canvas $w.frame.canvas -width 50 -height 50 -bd 0 -highlightthickness 0 +$w.frame.canvas create polygon 0 0 1 1 2 2 -fill DeepSkyBlue3 -tags poly +$w.frame.canvas create line 0 0 1 1 2 2 0 0 -fill black -tags line +scale $w.frame.scale -orient horizontal -length 284 -from 0 -to 250 \ + -command "setWidth $w.frame.canvas" -tickinterval 50 +pack $w.frame.canvas -side top -expand yes -anchor s -fill x -padx 15 +pack $w.frame.scale -side bottom -expand yes -anchor n +$w.frame.scale set 75 + +proc setWidth {w width} { + incr width 21 + set x2 [expr {$width - 30}] + if {$x2 < 21} { + set x2 21 + } + $w coords poly 20 15 20 35 $x2 35 $x2 45 $width 25 $x2 5 $x2 15 20 15 + $w coords line 20 15 20 35 $x2 35 $x2 45 $width 25 $x2 5 $x2 15 20 15 +} diff --git a/mingw/lib/tk8.5/demos/icon.tcl b/mingw/lib/tk8.5/demos/icon.tcl new file mode 100644 index 00000000..e8a7ab2a --- /dev/null +++ b/mingw/lib/tk8.5/demos/icon.tcl @@ -0,0 +1,53 @@ +# icon.tcl -- +# +# This demonstration script creates a toplevel window containing +# buttons that display bitmaps instead of text. +# +# RCS: @(#) $Id: icon.tcl,v 1.6 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .icon +catch {destroy $w} +toplevel $w +wm title $w "Iconic Button Demonstration" +wm iconname $w "icon" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "This window shows three ways of using bitmaps or images in radiobuttons and checkbuttons. On the left are two radiobuttons, each of which displays a bitmap and an indicator. In the middle is a checkbutton that displays a different image depending on whether it is selected or not. On the right is a checkbutton that displays a single bitmap but changes its background color to indicate whether or not it is selected." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Main widget program sets variable tk_demoDirectory +image create bitmap flagup \ + -file [file join $tk_demoDirectory images flagup.xbm] \ + -maskfile [file join $tk_demoDirectory images flagup.xbm] +image create bitmap flagdown \ + -file [file join $tk_demoDirectory images flagdown.xbm] \ + -maskfile [file join $tk_demoDirectory images flagdown.xbm] +frame $w.frame -borderwidth 10 +pack $w.frame -side top + +checkbutton $w.frame.b1 -image flagdown -selectimage flagup \ + -indicatoron 0 +$w.frame.b1 configure -selectcolor [$w.frame.b1 cget -background] +checkbutton $w.frame.b2 \ + -bitmap @[file join $tk_demoDirectory images letters.xbm] \ + -indicatoron 0 -selectcolor SeaGreen1 +frame $w.frame.left +pack $w.frame.left $w.frame.b1 $w.frame.b2 -side left -expand yes -padx 5m + +radiobutton $w.frame.left.b3 \ + -bitmap @[file join $tk_demoDirectory images letters.xbm] \ + -variable letters -value full +radiobutton $w.frame.left.b4 \ + -bitmap @[file join $tk_demoDirectory images noletter.xbm] \ + -variable letters -value empty +pack $w.frame.left.b3 $w.frame.left.b4 -side top -expand yes diff --git a/mingw/lib/tk8.5/demos/image1.tcl b/mingw/lib/tk8.5/demos/image1.tcl new file mode 100644 index 00000000..95a2c713 --- /dev/null +++ b/mingw/lib/tk8.5/demos/image1.tcl @@ -0,0 +1,37 @@ +# image1.tcl -- +# +# This demonstration script displays two image widgets. +# +# RCS: @(#) $Id: image1.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .image1 +catch {destroy $w} +toplevel $w +wm title $w "Image Demonstration #1" +wm iconname $w "Image1" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration displays two images, each in a separate label widget." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Main widget program sets variable tk_demoDirectory +catch {image delete image1a} +image create photo image1a -file [file join $tk_demoDirectory images earth.gif] +label $w.l1 -image image1a -bd 1 -relief sunken + +catch {image delete image1b} +image create photo image1b \ + -file [file join $tk_demoDirectory images earthris.gif] +label $w.l2 -image image1b -bd 1 -relief sunken + +pack $w.l1 $w.l2 -side top -padx .5m -pady .5m diff --git a/mingw/lib/tk8.5/demos/image2.tcl b/mingw/lib/tk8.5/demos/image2.tcl new file mode 100644 index 00000000..916551e0 --- /dev/null +++ b/mingw/lib/tk8.5/demos/image2.tcl @@ -0,0 +1,105 @@ +# image2.tcl -- +# +# This demonstration script creates a simple collection of widgets +# that allow you to select and view images in a Tk label. +# +# RCS: @(#) $Id: image2.tcl,v 1.9 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# loadDir -- +# This procedure reloads the directory listbox from the directory +# named in the demo's entry. +# +# Arguments: +# w - Name of the toplevel window of the demo. + +proc loadDir w { + global dirName + + $w.f.list delete 0 end + foreach i [lsort [glob -directory $dirName *]] { + $w.f.list insert end [file tail $i] + } +} + +# selectAndLoadDir -- +# This procedure pops up a dialog to ask for a directory to load into +# the listobx and (if the user presses OK) reloads the directory +# listbox from the directory named in the demo's entry. +# +# Arguments: +# w - Name of the toplevel window of the demo. + +proc selectAndLoadDir w { + global dirName + set dir [tk_chooseDirectory -initialdir $dirName -parent $w -mustexist 1] + if {[string length $dir] != 0} { + set dirName $dir + loadDir $w + } +} + +# loadImage -- +# Given the name of the toplevel window of the demo and the mouse +# position, extracts the directory entry under the mouse and loads +# that file into a photo image for display. +# +# Arguments: +# w - Name of the toplevel window of the demo. +# x, y- Mouse position within the listbox. + +proc loadImage {w x y} { + global dirName + + set file [file join $dirName [$w.f.list get @$x,$y]] + image2a configure -file $file +} + +set w .image2 +catch {destroy $w} +toplevel $w +wm title $w "Image Demonstration #2" +wm iconname $w "Image2" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration allows you to view images using a Tk \"photo\" image. First type a directory name in the listbox, then type Return to load the directory into the listbox. Then double-click on a file name in the listbox to see that image." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.mid +pack $w.mid -fill both -expand 1 + +labelframe $w.dir -text "Directory:" +# Main widget program sets variable tk_demoDirectory +set dirName [file join $tk_demoDirectory images] +entry $w.dir.e -width 30 -textvariable dirName +button $w.dir.b -pady 0 -padx 2m -text "Select Dir." \ + -command "selectAndLoadDir $w" +bind $w.dir.e "loadDir $w" +pack $w.dir.e -side left -fill both -padx 2m -pady 2m -expand true +pack $w.dir.b -side left -fill y -padx {0 2m} -pady 2m +labelframe $w.f -text "File:" -padx 2m -pady 2m + +listbox $w.f.list -width 20 -height 10 -yscrollcommand "$w.f.scroll set" +scrollbar $w.f.scroll -command "$w.f.list yview" +pack $w.f.list $w.f.scroll -side left -fill y -expand 1 +$w.f.list insert 0 earth.gif earthris.gif teapot.ppm +bind $w.f.list "loadImage $w %x %y" + +catch {image delete image2a} +image create photo image2a +labelframe $w.image -text "Image:" +label $w.image.image -image image2a +pack $w.image.image -padx 2m -pady 2m + +grid $w.dir - -sticky ew -padx 1m -pady 1m -in $w.mid +grid $w.f $w.image -sticky nw -padx 1m -pady 1m -in $w.mid +grid columnconfigure $w.mid 1 -weight 1 diff --git a/mingw/lib/tk8.4/demos/images/earth.gif b/mingw/lib/tk8.5/demos/images/earth.gif similarity index 100% rename from mingw/lib/tk8.4/demos/images/earth.gif rename to mingw/lib/tk8.5/demos/images/earth.gif diff --git a/mingw/lib/tk8.4/demos/images/earthris.gif b/mingw/lib/tk8.5/demos/images/earthris.gif similarity index 100% rename from mingw/lib/tk8.4/demos/images/earthris.gif rename to mingw/lib/tk8.5/demos/images/earthris.gif diff --git a/mingw/lib/tk8.4/demos/images/face.bmp b/mingw/lib/tk8.5/demos/images/face.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/face.bmp rename to mingw/lib/tk8.5/demos/images/face.xbm diff --git a/mingw/lib/tk8.4/demos/images/flagdown.bmp b/mingw/lib/tk8.5/demos/images/flagdown.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/flagdown.bmp rename to mingw/lib/tk8.5/demos/images/flagdown.xbm diff --git a/mingw/lib/tk8.4/demos/images/flagup.bmp b/mingw/lib/tk8.5/demos/images/flagup.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/flagup.bmp rename to mingw/lib/tk8.5/demos/images/flagup.xbm diff --git a/mingw/lib/tk8.4/demos/images/gray25.bmp b/mingw/lib/tk8.5/demos/images/gray25.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/gray25.bmp rename to mingw/lib/tk8.5/demos/images/gray25.xbm diff --git a/mingw/lib/tk8.4/demos/images/letters.bmp b/mingw/lib/tk8.5/demos/images/letters.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/letters.bmp rename to mingw/lib/tk8.5/demos/images/letters.xbm diff --git a/mingw/lib/tk8.4/demos/images/noletter.bmp b/mingw/lib/tk8.5/demos/images/noletter.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/noletter.bmp rename to mingw/lib/tk8.5/demos/images/noletter.xbm diff --git a/mingw/lib/tk8.4/demos/images/pattern.bmp b/mingw/lib/tk8.5/demos/images/pattern.xbm similarity index 100% rename from mingw/lib/tk8.4/demos/images/pattern.bmp rename to mingw/lib/tk8.5/demos/images/pattern.xbm diff --git a/mingw/lib/tk8.4/demos/images/tcllogo.gif b/mingw/lib/tk8.5/demos/images/tcllogo.gif similarity index 100% rename from mingw/lib/tk8.4/demos/images/tcllogo.gif rename to mingw/lib/tk8.5/demos/images/tcllogo.gif diff --git a/mingw/lib/tk8.4/demos/images/teapot.ppm b/mingw/lib/tk8.5/demos/images/teapot.ppm similarity index 100% rename from mingw/lib/tk8.4/demos/images/teapot.ppm rename to mingw/lib/tk8.5/demos/images/teapot.ppm diff --git a/mingw/lib/tk8.5/demos/items.tcl b/mingw/lib/tk8.5/demos/items.tcl new file mode 100644 index 00000000..11aa32ff --- /dev/null +++ b/mingw/lib/tk8.5/demos/items.tcl @@ -0,0 +1,286 @@ +# items.tcl -- +# +# This demonstration script creates a canvas that displays the +# canvas item types. +# +# RCS: @(#) $Id: items.tcl,v 1.7 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .items +catch {destroy $w} +toplevel $w +wm title $w "Canvas Item Demonstration" +wm iconname $w "Items" +positionWindow $w +set c $w.frame.c + +label $w.msg -font $font -wraplength 5i -justify left -text "This window contains a canvas widget with examples of the various kinds of items supported by canvases. The following operations are supported:\n Button-1 drag:\tmoves item under pointer.\n Button-2 drag:\trepositions view.\n Button-3 drag:\tstrokes out area.\n Ctrl+f:\t\tprints items under area." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame +pack $w.frame -side top -fill both -expand yes + +canvas $c -scrollregion {0c 0c 30c 24c} -width 15c -height 10c \ + -relief sunken -borderwidth 2 \ + -xscrollcommand "$w.frame.hscroll set" \ + -yscrollcommand "$w.frame.vscroll set" +scrollbar $w.frame.vscroll -command "$c yview" +scrollbar $w.frame.hscroll -orient horiz -command "$c xview" + +grid $c -in $w.frame \ + -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.vscroll \ + -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.hscroll \ + -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid rowconfig $w.frame 0 -weight 1 -minsize 0 +grid columnconfig $w.frame 0 -weight 1 -minsize 0 + +# Display a 3x3 rectangular grid. + +$c create rect 0c 0c 30c 24c -width 2 +$c create line 0c 8c 30c 8c -width 2 +$c create line 0c 16c 30c 16c -width 2 +$c create line 10c 0c 10c 24c -width 2 +$c create line 20c 0c 20c 24c -width 2 + +set font1 {Helvetica 12} +set font2 {Helvetica 24 bold} +if {[winfo depth $c] > 1} { + set blue DeepSkyBlue3 + set red red + set bisque bisque3 + set green SeaGreen3 +} else { + set blue black + set red black + set bisque black + set green black +} + +# Set up demos within each of the areas of the grid. + +$c create text 5c .2c -text Lines -anchor n +$c create line 1c 1c 3c 1c 1c 4c 3c 4c -width 2m -fill $blue \ + -cap butt -join miter -tags item +$c create line 4.67c 1c 4.67c 4c -arrow last -tags item +$c create line 6.33c 1c 6.33c 4c -arrow both -tags item +$c create line 5c 6c 9c 6c 9c 1c 8c 1c 8c 4.8c 8.8c 4.8c 8.8c 1.2c \ + 8.2c 1.2c 8.2c 4.6c 8.6c 4.6c 8.6c 1.4c 8.4c 1.4c 8.4c 4.4c \ + -width 3 -fill $red -tags item +# Main widget program sets variable tk_demoDirectory +$c create line 1c 5c 7c 5c 7c 7c 9c 7c -width .5c \ + -stipple @[file join $tk_demoDirectory images gray25.xbm] \ + -arrow both -arrowshape {15 15 7} -tags item +$c create line 1c 7c 1.75c 5.8c 2.5c 7c 3.25c 5.8c 4c 7c -width .5c \ + -cap round -join round -tags item + +$c create text 15c .2c -text "Curves (smoothed lines)" -anchor n +$c create line 11c 4c 11.5c 1c 13.5c 1c 14c 4c -smooth on \ + -fill $blue -tags item +$c create line 15.5c 1c 19.5c 1.5c 15.5c 4.5c 19.5c 4c -smooth on \ + -arrow both -width 3 -tags item +$c create line 12c 6c 13.5c 4.5c 16.5c 7.5c 18c 6c \ + 16.5c 4.5c 13.5c 7.5c 12c 6c -smooth on -width 3m -cap round \ + -stipple @[file join $tk_demoDirectory images gray25.xbm] \ + -fill $red -tags item + +$c create text 25c .2c -text Polygons -anchor n +$c create polygon 21c 1.0c 22.5c 1.75c 24c 1.0c 23.25c 2.5c \ + 24c 4.0c 22.5c 3.25c 21c 4.0c 21.75c 2.5c -fill $green \ + -outline black -width 4 -tags item +$c create polygon 25c 4c 25c 4c 25c 1c 26c 1c 27c 4c 28c 1c \ + 29c 1c 29c 4c 29c 4c -fill $red -smooth on -tags item +$c create polygon 22c 4.5c 25c 4.5c 25c 6.75c 28c 6.75c \ + 28c 5.25c 24c 5.25c 24c 6.0c 26c 6c 26c 7.5c 22c 7.5c \ + -stipple @[file join $tk_demoDirectory images gray25.xbm] \ + -outline black -tags item + +$c create text 5c 8.2c -text Rectangles -anchor n +$c create rectangle 1c 9.5c 4c 12.5c -outline $red -width 3m -tags item +$c create rectangle 0.5c 13.5c 4.5c 15.5c -fill $green -tags item +$c create rectangle 6c 10c 9c 15c -outline {} \ + -stipple @[file join $tk_demoDirectory images gray25.xbm] \ + -fill $blue -tags item + +$c create text 15c 8.2c -text Ovals -anchor n +$c create oval 11c 9.5c 14c 12.5c -outline $red -width 3m -tags item +$c create oval 10.5c 13.5c 14.5c 15.5c -fill $green -tags item +$c create oval 16c 10c 19c 15c -outline {} \ + -stipple @[file join $tk_demoDirectory images gray25.xbm] \ + -fill $blue -tags item + +$c create text 25c 8.2c -text Text -anchor n +$c create rectangle 22.4c 8.9c 22.6c 9.1c +$c create text 22.5c 9c -anchor n -font $font1 -width 4c \ + -text "A short string of text, word-wrapped, justified left, and anchored north (at the top). The rectangles show the anchor points for each piece of text." -tags item +$c create rectangle 25.4c 10.9c 25.6c 11.1c +$c create text 25.5c 11c -anchor w -font $font1 -fill $blue \ + -text "Several lines,\n each centered\nindividually,\nand all anchored\nat the left edge." \ + -justify center -tags item +$c create rectangle 24.9c 13.9c 25.1c 14.1c +$c create text 25c 14c -font $font2 -anchor c -fill $red -stipple gray50 \ + -text "Stippled characters" -tags item + +$c create text 5c 16.2c -text Arcs -anchor n +$c create arc 0.5c 17c 7c 20c -fill $green -outline black \ + -start 45 -extent 270 -style pieslice -tags item +$c create arc 6.5c 17c 9.5c 20c -width 4m -style arc \ + -outline $blue -start -135 -extent 270 -tags item \ + -outlinestipple @[file join $tk_demoDirectory images gray25.xbm] +$c create arc 0.5c 20c 9.5c 24c -width 4m -style pieslice \ + -fill {} -outline $red -start 225 -extent -90 -tags item +$c create arc 5.5c 20.5c 9.5c 23.5c -width 4m -style chord \ + -fill $blue -outline {} -start 45 -extent 270 -tags item + +$c create text 15c 16.2c -text Bitmaps -anchor n +$c create bitmap 13c 20c -tags item \ + -bitmap @[file join $tk_demoDirectory images face.xbm] +$c create bitmap 17c 18.5c -tags item \ + -bitmap @[file join $tk_demoDirectory images noletter.xbm] +$c create bitmap 17c 21.5c -tags item \ + -bitmap @[file join $tk_demoDirectory images letters.xbm] + +$c create text 25c 16.2c -text Windows -anchor n +button $c.button -text "Press Me" -command "butPress $c $red" +$c create window 21c 18c -window $c.button -anchor nw -tags item +entry $c.entry -width 20 -relief sunken +$c.entry insert end "Edit this text" +$c create window 21c 21c -window $c.entry -anchor nw -tags item +scale $c.scale -from 0 -to 100 -length 6c -sliderlength .4c \ + -width .5c -tickinterval 0 +$c create window 28.5c 17.5c -window $c.scale -anchor n -tags item +$c create text 21c 17.9c -text Button: -anchor sw +$c create text 21c 20.9c -text Entry: -anchor sw +$c create text 28.5c 17.4c -text Scale: -anchor s + +# Set up event bindings for canvas: + +$c bind item "itemEnter $c" +$c bind item "itemLeave $c" +bind $c <2> "$c scan mark %x %y" +bind $c "$c scan dragto %x %y" +bind $c <3> "itemMark $c %x %y" +bind $c "itemStroke $c %x %y" +bind $c "itemsUnderArea $c" +bind $c <1> "itemStartDrag $c %x %y" +bind $c "itemDrag $c %x %y" + +# Utility procedures for highlighting the item under the pointer: + +proc itemEnter {c} { + global restoreCmd + + if {[winfo depth $c] == 1} { + set restoreCmd {} + return + } + set type [$c type current] + if {$type == "window"} { + set restoreCmd {} + return + } + if {$type == "bitmap"} { + set bg [lindex [$c itemconf current -background] 4] + set restoreCmd [list $c itemconfig current -background $bg] + $c itemconfig current -background SteelBlue2 + return + } + set fill [lindex [$c itemconfig current -fill] 4] + if {(($type == "rectangle") || ($type == "oval") || ($type == "arc")) + && ($fill == "")} { + set outline [lindex [$c itemconfig current -outline] 4] + set restoreCmd "$c itemconfig current -outline $outline" + $c itemconfig current -outline SteelBlue2 + } else { + set restoreCmd "$c itemconfig current -fill $fill" + $c itemconfig current -fill SteelBlue2 + } +} + +proc itemLeave {c} { + global restoreCmd + + eval $restoreCmd +} + +# Utility procedures for stroking out a rectangle and printing what's +# underneath the rectangle's area. + +proc itemMark {c x y} { + global areaX1 areaY1 + set areaX1 [$c canvasx $x] + set areaY1 [$c canvasy $y] + $c delete area +} + +proc itemStroke {c x y} { + global areaX1 areaY1 areaX2 areaY2 + set x [$c canvasx $x] + set y [$c canvasy $y] + if {($areaX1 != $x) && ($areaY1 != $y)} { + $c delete area + $c addtag area withtag [$c create rect $areaX1 $areaY1 $x $y \ + -outline black] + set areaX2 $x + set areaY2 $y + } +} + +proc itemsUnderArea {c} { + global areaX1 areaY1 areaX2 areaY2 + set area [$c find withtag area] + set items "" + foreach i [$c find enclosed $areaX1 $areaY1 $areaX2 $areaY2] { + if {[lsearch [$c gettags $i] item] != -1} { + lappend items $i + } + } + puts stdout "Items enclosed by area: $items" + set items "" + foreach i [$c find overlapping $areaX1 $areaY1 $areaX2 $areaY2] { + if {[lsearch [$c gettags $i] item] != -1} { + lappend items $i + } + } + puts stdout "Items overlapping area: $items" +} + +set areaX1 0 +set areaY1 0 +set areaX2 0 +set areaY2 0 + +# Utility procedures to support dragging of items. + +proc itemStartDrag {c x y} { + global lastX lastY + set lastX [$c canvasx $x] + set lastY [$c canvasy $y] +} + +proc itemDrag {c x y} { + global lastX lastY + set x [$c canvasx $x] + set y [$c canvasy $y] + $c move current [expr {$x-$lastX}] [expr {$y-$lastY}] + set lastX $x + set lastY $y +} + +# Procedure that's invoked when the button embedded in the canvas +# is invoked. + +proc butPress {w color} { + set i [$w create text 25c 18.1c -text "Ouch!!" -fill $color -anchor n] + after 500 "$w delete $i" +} diff --git a/mingw/lib/tk8.5/demos/ixset b/mingw/lib/tk8.5/demos/ixset new file mode 100644 index 00000000..21a099f5 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ixset @@ -0,0 +1,331 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" ${1+"$@"} + +# ixset -- +# A nice interface to "xset" to change X server settings +# +# History : +# 91/11/23 : pda@masi.ibp.fr, jt@ratp.fr : design +# 92/08/01 : pda@masi.ibp.fr : cleaning +# +# RCS: @(#) $Id: ixset,v 1.5 2003/09/30 14:54:30 dkf Exp $ + +package require Tcl 8.4 +package require Tk + +# +# Button actions +# + +proc quit {} { + destroy . +} + +proc ok {} { + writesettings + quit +} + +proc cancel {} { + readsettings + dispsettings + .buttons.apply configure -state disabled + .buttons.cancel configure -state disabled +} + +proc apply {} { + writesettings + .buttons.apply configure -state disabled + .buttons.cancel configure -state disabled +} + +# +# Read current settings +# + +proc readsettings {} { + global kbdrep ; set kbdrep "on" + global kbdcli ; set kbdcli 0 + global bellvol ; set bellvol 100 + global bellpit ; set bellpit 440 + global belldur ; set belldur 100 + global mouseacc ; set mouseacc "3/1" + global mousethr ; set mousethr 4 + global screenbla ; set screenbla "blank" + global screentim ; set screentim 600 + global screencyc ; set screencyc 600 + + set xfd [open "|xset q" r] + while {[gets $xfd line] > -1} { + switch -- [lindex $line 0] { + auto { + set rpt [lindex $line 1] + if {$rpt eq "repeat:"} { + set kbdrep [lindex $line 2] + set kbdcli [lindex $line 6] + } + } + bell { + set bellvol [lindex $line 2] + set bellpit [lindex $line 5] + set belldur [lindex $line 8] + } + acceleration: { + set mouseacc [lindex $line 1] + set mousethr [lindex $line 3] + } + prefer { + set bla [lindex $line 2] + set screenbla [expr {$bla eq "yes" ? "blank" : "noblank"}] + } + timeout: { + set screentim [lindex $line 1] + set screencyc [lindex $line 3] + } + } + } + close $xfd + + # puts stdout [format "Key REPEAT = %s\n" $kbdrep] + # puts stdout [format "Key CLICK = %s\n" $kbdcli] + # puts stdout [format "Bell VOLUME = %s\n" $bellvol] + # puts stdout [format "Bell PITCH = %s\n" $bellpit] + # puts stdout [format "Bell DURATION = %s\n" $belldur] + # puts stdout [format "Mouse ACCELERATION = %s\n" $mouseacc] + # puts stdout [format "Mouse THRESHOLD = %s\n" $mousethr] + # puts stdout [format "Screen BLANCK = %s\n" $screenbla] + # puts stdout [format "Screen TIMEOUT = %s\n" $screentim] + # puts stdout [format "Screen CYCLE = %s\n" $screencyc] +} + + +# +# Write settings into the X server +# + +proc writesettings {} { + global kbdrep kbdcli bellvol bellpit belldur + global mouseacc mousethr screenbla screentim screencyc + + set bellvol [.bell.vol get] + set bellpit [.bell.val.pit.entry get] + set belldur [.bell.val.dur.entry get] + + if {$kbdrep eq "on"} { + set kbdcli [.kbd.val.cli get] + } else { + set kbdcli "off" + } + + set mouseacc [.mouse.hor.acc.entry get] + set mousethr [.mouse.hor.thr.entry get] + + set screentim [.screen.tim.entry get] + set screencyc [.screen.cyc.entry get] + + exec xset \ + b $bellvol $bellpit $belldur \ + c $kbdcli \ + r $kbdrep \ + m $mouseacc $mousethr \ + s $screentim $screencyc \ + s $screenbla +} + + +# +# Sends all settings to the window +# + +proc dispsettings {} { + global kbdrep kbdcli bellvol bellpit belldur + global mouseacc mousethr screenbla screentim screencyc + + .bell.vol set $bellvol + .bell.val.pit.entry delete 0 end + .bell.val.pit.entry insert 0 $bellpit + .bell.val.dur.entry delete 0 end + .bell.val.dur.entry insert 0 $belldur + + .kbd.val.onoff [expr {$kbdrep eq "on" ? "select" : "deselect"}] + .kbd.val.cli set $kbdcli + + .mouse.hor.acc.entry delete 0 end + .mouse.hor.acc.entry insert 0 $mouseacc + .mouse.hor.thr.entry delete 0 end + .mouse.hor.thr.entry insert 0 $mousethr + + .screen.blank [expr {$screenbla eq "blank" ? "select" : "deselect"}] + .screen.pat [expr {$screenbla ne "blank" ? "select" : "deselect"}] + .screen.tim.entry delete 0 end + .screen.tim.entry insert 0 $screentim + .screen.cyc.entry delete 0 end + .screen.cyc.entry insert 0 $screencyc +} + + +# +# Create all windows, and pack them +# + +proc labelentry {path text length {range {}}} { + frame $path + label $path.label -text $text + if {[llength $range]} { + spinbox $path.entry -width $length -relief sunken \ + -from [lindex $range 0] -to [lindex $range 1] + } else { + entry $path.entry -width $length -relief sunken + } + pack $path.label -side left + pack $path.entry -side right -expand y -fill x +} + +proc createwindows {} { + # + # Buttons + # + + frame .buttons + button .buttons.ok -default active -command ok -text "Ok" + button .buttons.apply -default normal -command apply -text "Apply" \ + -state disabled + button .buttons.cancel -default normal -command cancel -text "Cancel" \ + -state disabled + button .buttons.quit -default normal -command quit -text "Quit" + + pack .buttons.ok .buttons.apply .buttons.cancel .buttons.quit \ + -side left -expand yes -pady 5 + + bind . {.buttons.ok flash; .buttons.ok invoke} + bind . {.buttons.quit flash; .buttons.quit invoke} + bind . <1> { + if {![string match .buttons* %W]} { + .buttons.apply configure -state normal + .buttons.cancel configure -state normal + } + } + bind . { + if {![string match .buttons* %W]} { + switch -glob %K { + Return - Escape - Tab - *Shift* {} + default { + .buttons.apply configure -state normal + .buttons.cancel configure -state normal + } + } + } + } + + # + # Bell settings + # + + labelframe .bell -text "Bell Settings" -padx 1.5m -pady 1.5m + scale .bell.vol \ + -from 0 -to 100 -length 200 -tickinterval 20 \ + -label "Volume (%)" -orient horizontal + + frame .bell.val + labelentry .bell.val.pit "Pitch (Hz)" 6 {25 20000} + labelentry .bell.val.dur "Duration (ms)" 6 {1 10000} + pack .bell.val.pit -side left -padx 5 + pack .bell.val.dur -side right -padx 5 + pack .bell.vol .bell.val -side top -expand yes + + # + # Keyboard settings + # + + labelframe .kbd -text "Keyboard Repeat Settings" -padx 1.5m -pady 1.5m + + frame .kbd.val + checkbutton .kbd.val.onoff \ + -text "On" \ + -onvalue "on" -offvalue "off" -variable kbdrep \ + -relief flat + scale .kbd.val.cli \ + -from 0 -to 100 -length 200 -tickinterval 20 \ + -label "Click Volume (%)" -orient horizontal + pack .kbd.val.onoff -side left -fill x -expand yes -padx {0 1m} + pack .kbd.val.cli -side left -expand yes -fill x -padx {1m 0} + + pack .kbd.val -side top -expand yes -pady 2 -fill x + + # + # Mouse settings + # + + labelframe .mouse -text "Mouse Settings" -padx 1.5m -pady 1.5m + + frame .mouse.hor + labelentry .mouse.hor.acc "Acceleration" 5 + labelentry .mouse.hor.thr "Threshold (pixels)" 3 {1 2000} + + pack .mouse.hor.acc -side left -padx {0 1m} + pack .mouse.hor.thr -side right -padx {1m 0} + + pack .mouse.hor -side top -expand yes + + # + # Screen Saver settings + # + + labelframe .screen -text "Screen-saver Settings" -padx 1.5m -pady 1.5m + + radiobutton .screen.blank \ + -variable screenblank -text "Blank" -relief flat \ + -value "blank" -variable screenbla -anchor w + radiobutton .screen.pat \ + -variable screenblank -text "Pattern" -relief flat \ + -value "noblank" -variable screenbla -anchor w + labelentry .screen.tim "Timeout (s)" 5 {1 100000} + labelentry .screen.cyc "Cycle (s)" 5 {1 100000} + + grid .screen.blank .screen.tim -sticky e + grid .screen.pat .screen.cyc -sticky e + grid configure .screen.blank .screen.pat -sticky ew + + # + # Main window + # + + pack .buttons -side top -fill both + pack .bell .kbd .mouse .screen -side top -fill both -expand yes \ + -padx 1m -pady 1m + + # + # Let the user resize our window + # + wm minsize . 10 10 +} + +############################################################################## +# Main program + +# +# Listen what "xset" tells us... +# + +readsettings + +# +# Create all windows +# + +createwindows + +# +# Write xset parameters +# + +dispsettings + +# +# Now, wait for user actions... +# + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/label.tcl b/mingw/lib/tk8.5/demos/label.tcl new file mode 100644 index 00000000..cb26e6dc --- /dev/null +++ b/mingw/lib/tk8.5/demos/label.tcl @@ -0,0 +1,41 @@ +# label.tcl -- +# +# This demonstration script creates a toplevel window containing +# several label widgets. +# +# RCS: @(#) $Id: label.tcl,v 1.6 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .label +catch {destroy $w} +toplevel $w +wm title $w "Label Demonstration" +wm iconname $w "label" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Five labels are displayed below: three textual ones on the left, and a bitmap label and a text label on the right. Labels are pretty boring because you can't do anything with them." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.left +frame $w.right +pack $w.left $w.right -side left -expand yes -padx 10 -pady 10 -fill both + +label $w.left.l1 -text "First label" +label $w.left.l2 -text "Second label, raised" -relief raised +label $w.left.l3 -text "Third label, sunken" -relief sunken +pack $w.left.l1 $w.left.l2 $w.left.l3 -side top -expand yes -pady 2 -anchor w + +# Main widget program sets variable tk_demoDirectory +label $w.right.bitmap -borderwidth 2 -relief sunken \ + -bitmap @[file join $tk_demoDirectory images face.xbm] +label $w.right.caption -text "Tcl/Tk Proprietor" +pack $w.right.bitmap $w.right.caption -side top diff --git a/mingw/lib/tk8.5/demos/labelframe.tcl b/mingw/lib/tk8.5/demos/labelframe.tcl new file mode 100644 index 00000000..65411b1a --- /dev/null +++ b/mingw/lib/tk8.5/demos/labelframe.tcl @@ -0,0 +1,78 @@ +# labelframe.tcl -- +# +# This demonstration script creates a toplevel window containing +# several labelframe widgets. +# +# RCS: @(#) $Id: labelframe.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .labelframe +catch {destroy $w} +toplevel $w +wm title $w "Labelframe Demonstration" +wm iconname $w "labelframe" +positionWindow $w + +# Some information + +label $w.msg -font $font -wraplength 4i -justify left -text "Labelframes are\ + used to group related widgets together. The label may be either \ + plain text or another widget." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Demo area + +frame $w.f +pack $w.f -side bottom -fill both -expand 1 +set w $w.f + +# A group of radiobuttons in a labelframe + +labelframe $w.f -text "Value" -padx 2 -pady 2 +grid $w.f -row 0 -column 0 -pady 2m -padx 2m + +foreach value {1 2 3 4} { + radiobutton $w.f.b$value -text "This is value $value" \ + -variable lfdummy -value $value + pack $w.f.b$value -side top -fill x -pady 2 +} + + +# Using a label window to control a group of options. + +proc lfEnableButtons {w} { + foreach child [winfo children $w] { + if {$child == "$w.cb"} continue + if {$::lfdummy2} { + $child configure -state normal + } else { + $child configure -state disabled + } + } +} + +labelframe $w.f2 -pady 2 -padx 2 +checkbutton $w.f2.cb -text "Use this option." -variable lfdummy2 \ + -command "lfEnableButtons $w.f2" -padx 0 +$w.f2 configure -labelwidget $w.f2.cb +grid $w.f2 -row 0 -column 1 -pady 2m -padx 2m + +set t 0 +foreach str {Option1 Option2 Option3} { + checkbutton $w.f2.b$t -text $str + pack $w.f2.b$t -side top -fill x -pady 2 + incr t +} +lfEnableButtons $w.f2 + + +grid columnconfigure $w {0 1} -weight 1 diff --git a/mingw/lib/tk8.4/demos/license.terms b/mingw/lib/tk8.5/demos/license.terms similarity index 100% rename from mingw/lib/tk8.4/demos/license.terms rename to mingw/lib/tk8.5/demos/license.terms diff --git a/mingw/lib/tk8.5/demos/menu.tcl b/mingw/lib/tk8.5/demos/menu.tcl new file mode 100644 index 00000000..d1b7c1cb --- /dev/null +++ b/mingw/lib/tk8.5/demos/menu.tcl @@ -0,0 +1,163 @@ +# menu.tcl -- +# +# This demonstration script creates a window with a bunch of menus +# and cascaded menus using menubars. +# +# RCS: @(#) $Id: menu.tcl,v 1.11 2007/04/23 21:16:00 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .menu +catch {destroy $w} +toplevel $w +wm title $w "Menu Demonstration" +wm iconname $w "menu" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left +if {[tk windowingsystem] eq "aqua"} { + catch {set origUseCustomMDEF $::tk::mac::useCustomMDEF; set ::tk::mac::useCustomMDEF 1} + $w.msg configure -text "This window has a menubar with cascaded menus. You can invoke entries with an accelerator by typing Command+x, where \"x\" is the character next to the command key symbol. The rightmost menu can be torn off into a palette by selecting the first item in the menu." +} else { + $w.msg configure -text "This window contains a menubar with cascaded menus. You can post a menu from the keyboard by typing Alt+x, where \"x\" is the character underlined on the menu. You can then traverse among the menus using the arrow keys. When a menu is posted, you can invoke the current entry by typing space, or you can invoke any entry by typing its underlined character. If a menu entry has an accelerator, you can invoke the entry without posting the menu just by typing the accelerator. The rightmost menu can be torn off into a palette by selecting the first item in the menu." +} +pack $w.msg -side top + +set menustatus " " +frame $w.statusBar +label $w.statusBar.label -textvariable menustatus -relief sunken -bd 1 -font "Helvetica 10" -anchor w +pack $w.statusBar.label -side left -padx 2 -expand yes -fill both +pack $w.statusBar -side bottom -fill x -pady 2 + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +menu $w.menu -tearoff 0 + +set m $w.menu.file +menu $m -tearoff 0 +$w.menu add cascade -label "File" -menu $m -underline 0 +$m add command -label "Open..." -command {error "this is just a demo: no action has been defined for the \"Open...\" entry"} +$m add command -label "New" -command {error "this is just a demo: no action has been defined for the \"New\" entry"} +$m add command -label "Save" -command {error "this is just a demo: no action has been defined for the \"Save\" entry"} +$m add command -label "Save As..." -command {error "this is just a demo: no action has been defined for the \"Save As...\" entry"} +$m add separator +$m add command -label "Print Setup..." -command {error "this is just a demo: no action has been defined for the \"Print Setup...\" entry"} +$m add command -label "Print..." -command {error "this is just a demo: no action has been defined for the \"Print...\" entry"} +$m add separator +$m add command -label "Dismiss Menus Demo" -command "destroy $w" + +set m $w.menu.basic +$w.menu add cascade -label "Basic" -menu $m -underline 0 +menu $m -tearoff 0 +$m add command -label "Long entry that does nothing" +if {[tk windowingsystem] eq "aqua"} { + set modifier Command +} elseif {$tcl_platform(platform) == "windows"} { + set modifier Control +} else { + set modifier Meta +} +foreach i {A B C D E F} { + $m add command -label "Print letter \"$i\"" -underline 14 \ + -accelerator Meta+$i -command "puts $i" -accelerator $modifier+$i + bind $w <$modifier-[string tolower $i]> "puts $i" +} + +set m $w.menu.cascade +$w.menu add cascade -label "Cascades" -menu $m -underline 0 +menu $m -tearoff 0 +$m add command -label "Print hello" \ + -command {puts stdout "Hello"} -accelerator $modifier+H -underline 6 +bind $w <$modifier-h> {puts stdout "Hello"} +$m add command -label "Print goodbye" -command {\ + puts stdout "Goodbye"} -accelerator $modifier+G -underline 6 +bind $w <$modifier-g> {puts stdout "Goodbye"} +$m add cascade -label "Check buttons" \ + -menu $w.menu.cascade.check -underline 0 +$m add cascade -label "Radio buttons" \ + -menu $w.menu.cascade.radio -underline 0 + +set m $w.menu.cascade.check +menu $m -tearoff 0 +$m add check -label "Oil checked" -variable oil +$m add check -label "Transmission checked" -variable trans +$m add check -label "Brakes checked" -variable brakes +$m add check -label "Lights checked" -variable lights +$m add separator +$m add command -label "Show current values" \ + -command "showVars $w.menu.cascade.dialog oil trans brakes lights" +$m invoke 1 +$m invoke 3 + +set m $w.menu.cascade.radio +menu $m -tearoff 0 +$m add radio -label "10 point" -variable pointSize -value 10 +$m add radio -label "14 point" -variable pointSize -value 14 +$m add radio -label "18 point" -variable pointSize -value 18 +$m add radio -label "24 point" -variable pointSize -value 24 +$m add radio -label "32 point" -variable pointSize -value 32 +$m add sep +$m add radio -label "Roman" -variable style -value roman +$m add radio -label "Bold" -variable style -value bold +$m add radio -label "Italic" -variable style -value italic +$m add sep +$m add command -label "Show current values" \ + -command "showVars $w.menu.cascade.dialog pointSize style" +$m invoke 1 +$m invoke 7 + +set m $w.menu.icon +$w.menu add cascade -label "Icons" -menu $m -underline 0 +menu $m -tearoff 0 +# Main widget program sets variable tk_demoDirectory +$m add command -bitmap @[file join $tk_demoDirectory images pattern.xbm] \ + -hidemargin 1 -command [list \ + tk_dialog $w.pattern {Bitmap Menu Entry} \ + "The menu entry you invoked displays a bitmap rather than\ + a text string. Other than this, it is just like any other\ + menu entry." {} 0 OK ] +foreach i {info questhead error} { + $m add command -bitmap $i -hidemargin 1 -command [list \ + puts "You invoked the $i bitmap" ] +} +$m entryconfigure 2 -columnbreak 1 + +set m $w.menu.more +$w.menu add cascade -label "More" -menu $m -underline 0 +menu $m -tearoff 0 +foreach i {{An entry} {Another entry} {Does nothing} {Does almost nothing} {Make life meaningful}} { + $m add command -label $i -command [list puts "You invoked \"$i\""] +} +$m entryconfigure "Does almost nothing" -bitmap questhead -compound left \ + -command [list \ + tk_dialog $w.compound {Compound Menu Entry} \ + "The menu entry you invoked displays both a bitmap and a\ + text string. Other than this, it is just like any other\ + menu entry." {} 0 OK ] + +set m $w.menu.colors +$w.menu add cascade -label "Colors" -menu $m -underline 1 +menu $m -tearoff 1 +foreach i {red orange yellow green blue} { + $m add command -label $i -background $i -command [list \ + puts "You invoked \"$i\"" ] +} + +$w configure -menu $w.menu + +bind Menu <> { + global $menustatus + if {[catch {%W entrycget active -label} label]} { + set label " " + } + set menustatus $label + update idletasks +} + +if {[tk windowingsystem] eq "aqua"} {catch {set ::tk::mac::useCustomMDEF $origUseCustomMDEF}} diff --git a/mingw/lib/tk8.5/demos/menubu.tcl b/mingw/lib/tk8.5/demos/menubu.tcl new file mode 100644 index 00000000..cec32845 --- /dev/null +++ b/mingw/lib/tk8.5/demos/menubu.tcl @@ -0,0 +1,92 @@ +# menubu.tcl -- +# +# This demonstration script creates a window with a bunch of menus +# and cascaded menus using menubuttons. +# +# # RCS: @(#) $Id: menubu.tcl,v 1.6 2007/04/23 21:16:01 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .menubu +catch {destroy $w} +toplevel $w +wm title $w "Menu Button Demonstration" +wm iconname $w "menubutton" +positionWindow $w + +frame $w.body +pack $w.body -expand 1 -fill both +if {[tk windowingsystem] eq "aqua"} {catch {set origUseCustomMDEF $::tk::mac::useCustomMDEF; set ::tk::mac::useCustomMDEF 1}} + +menubutton $w.body.below -text "Below" -underline 0 -direction below -menu $w.body.below.m -relief raised +menu $w.body.below.m -tearoff 0 +$w.body.below.m add command -label "Below menu: first item" -command "puts \"You have selected the first item from the Below menu.\"" +$w.body.below.m add command -label "Below menu: second item" -command "puts \"You have selected the second item from the Below menu.\"" +grid $w.body.below -row 0 -column 1 -sticky n +menubutton $w.body.right -text "Right" -underline 0 -direction right -menu $w.body.right.m -relief raised +menu $w.body.right.m -tearoff 0 +$w.body.right.m add command -label "Right menu: first item" -command "puts \"You have selected the first item from the Right menu.\"" +$w.body.right.m add command -label "Right menu: second item" -command "puts \"You have selected the second item from the Right menu.\"" +frame $w.body.center +menubutton $w.body.left -text "Left" -underline 0 -direction left -menu $w.body.left.m -relief raised +menu $w.body.left.m -tearoff 0 +$w.body.left.m add command -label "Left menu: first item" -command "puts \"You have selected the first item from the Left menu.\"" +$w.body.left.m add command -label "Left menu: second item" -command "puts \"You have selected the second item from the Left menu.\"" +grid $w.body.right -row 1 -column 0 -sticky w +grid $w.body.center -row 1 -column 1 -sticky news +grid $w.body.left -row 1 -column 2 -sticky e +menubutton $w.body.above -text "Above" -underline 0 -direction above -menu $w.body.above.m -relief raised +menu $w.body.above.m -tearoff 0 +$w.body.above.m add command -label "Above menu: first item" -command "puts \"You have selected the first item from the Above menu.\"" +$w.body.above.m add command -label "Above menu: second item" -command "puts \"You have selected the second item from the Above menu.\"" +grid $w.body.above -row 2 -column 1 -sticky s + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +set body $w.body.center +label $body.label -wraplength 300 -font "Helvetica 14" -justify left -text "This is a demonstration of menubuttons. The \"Below\" menubutton pops its menu below the button; the \"Right\" button pops to the right, etc. There are two option menus directly below this text; one is just a standard menu and the other is a 16-color palette." +pack $body.label -side top -padx 25 -pady 25 +frame $body.buttons +pack $body.buttons -padx 25 -pady 25 +tk_optionMenu $body.buttons.options menubuttonoptions one two three +pack $body.buttons.options -side left -padx 25 -pady 25 +set m [tk_optionMenu $body.buttons.colors paletteColor Black red4 DarkGreen NavyBlue gray75 Red Green Blue gray50 Yellow Cyan Magenta White Brown DarkSeaGreen DarkViolet] +if {[tk windowingsystem] eq "aqua"} { + set topBorderColor Black + set bottomBorderColor Black +} else { + set topBorderColor gray50 + set bottomBorderColor gray75 +} +for {set i 0} {$i <= [$m index last]} {incr i} { + set name [$m entrycget $i -label] + image create photo image_$name -height 16 -width 16 + image_$name put $topBorderColor -to 0 0 16 1 + image_$name put $topBorderColor -to 0 1 1 16 + image_$name put $bottomBorderColor -to 0 15 16 16 + image_$name put $bottomBorderColor -to 15 1 16 16 + image_$name put $name -to 1 1 15 15 + + image create photo image_${name}_s -height 16 -width 16 + image_${name}_s put Black -to 0 0 16 2 + image_${name}_s put Black -to 0 2 2 16 + image_${name}_s put Black -to 2 14 16 16 + image_${name}_s put Black -to 14 2 16 14 + image_${name}_s put $name -to 2 2 14 14 + + $m entryconfigure $i -image image_$name -selectimage image_${name}_s -hidemargin 1 +} +$m configure -tearoff 1 +foreach i {Black gray75 gray50 White} { + $m entryconfigure $i -columnbreak 1 +} + +pack $body.buttons.colors -side left -padx 25 -pady 25 + +if {[tk windowingsystem] eq "aqua"} {catch {set ::tk::mac::useCustomMDEF $origUseCustomMDEF}} diff --git a/mingw/lib/tk8.5/demos/msgbox.tcl b/mingw/lib/tk8.5/demos/msgbox.tcl new file mode 100644 index 00000000..52e6e30f --- /dev/null +++ b/mingw/lib/tk8.5/demos/msgbox.tcl @@ -0,0 +1,65 @@ +# msgbox.tcl -- +# +# This demonstration script creates message boxes of various type +# +# RCS: @(#) $Id: msgbox.tcl,v 1.5 2007/10/17 18:55:05 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .msgbox +catch {destroy $w} +toplevel $w +wm title $w "Message Box Demonstration" +wm iconname $w "messagebox" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "Choose the icon and type option of the message box. Then press the \"Message Box\" button to see the message box." +pack $w.msg -side top + +pack [addSeeDismiss $w.buttons $w {} { + ttk::button $w.buttons.vars -text "Message Box" -command "showMessageBox $w" +}] -side bottom -fill x +#pack $w.buttons.dismiss $w.buttons.code $w.buttons.vars -side left -expand 1 + +frame $w.left +frame $w.right +pack $w.left $w.right -side left -expand yes -fill y -pady .5c -padx .5c + +label $w.left.label -text "Icon" +frame $w.left.sep -relief ridge -bd 1 -height 2 +pack $w.left.label -side top +pack $w.left.sep -side top -fill x -expand no + +set msgboxIcon info +foreach i {error info question warning} { + radiobutton $w.left.b$i -text $i -variable msgboxIcon \ + -relief flat -value $i -width 16 -anchor w + pack $w.left.b$i -side top -pady 2 -anchor w -fill x +} + +label $w.right.label -text "Type" +frame $w.right.sep -relief ridge -bd 1 -height 2 +pack $w.right.label -side top +pack $w.right.sep -side top -fill x -expand no + +set msgboxType ok +foreach t {abortretryignore ok okcancel retrycancel yesno yesnocancel} { + radiobutton $w.right.$t -text $t -variable msgboxType \ + -relief flat -value $t -width 16 -anchor w + pack $w.right.$t -side top -pady 2 -anchor w -fill x +} + +proc showMessageBox {w} { + global msgboxIcon msgboxType + set button [tk_messageBox -icon $msgboxIcon -type $msgboxType \ + -title Message -parent $w\ + -message "This is a \"$msgboxType\" type messagebox with the \"$msgboxIcon\" icon"] + + tk_messageBox -icon info -message "You have selected \"$button\"" -type ok\ + -parent $w +} diff --git a/mingw/lib/tk8.5/demos/nl.msg b/mingw/lib/tk8.5/demos/nl.msg new file mode 100644 index 00000000..1c3a8c39 --- /dev/null +++ b/mingw/lib/tk8.5/demos/nl.msg @@ -0,0 +1,118 @@ +mcset nl "Widget Demonstration" "Demonstratie van widgets" +mcset nl "tkWidgetDemo" "tkWidgetDemo" +mcset nl "&File" "&Bestand" +mcset nl "About..." "Info..." +mcset nl "&About..." "&Info..." +mcset nl "" "" +mcset nl "&Quit" "&Einde" +mcset nl "Meta+Q" "Meta+E" ;# Displayed hotkey +mcset nl "Meta-q" "Meta-e" ;# Actual binding sequence +mcset nl "Ctrl+Q" "Ctrl+E" ;# Displayed hotkey +mcset nl "Control-q" "Control-e" ;# Actual binding sequence +mcset nl "Dismiss" "Sluiten" +mcset nl "See Variables" "Bekijk Variabelen" +mcset nl "Variable Values" "Waarden Variabelen" +mcset nl "OK" "OK" +mcset nl "Run the \"%s\" sample program" "Start voorbeeld \"%s\"" +mcset nl "Print Code" "Code Afdrukken" +mcset nl "Demo code: %s" "Code van Demo %s" +mcset nl "About Widget Demo" "Over deze demonstratie" +mcset nl "Tk widget demonstration" "Demonstratie van Tk widgets" +mcset nl "Copyright (c) %s" "Copyright (c) %s" + +mcset nl "Tk Widget Demonstrations" "Demostratie van Tk widgets" +mcset nl "This application provides a front end for several short scripts" \ + "Dit programma is een schil rond enkele korte scripts waarmee" +mcset nl "that demonstrate what you can do with Tk widgets. Each of the" \ + "gedemonstreerd wordt wat je kunt doen met Tk widgets. Elk van de" +mcset nl "numbered lines below describes a demonstration; you can click on" \ + "genummerde regels hieronder omschrijft een demonstratie; je kunt de" +mcset nl "it to invoke the demonstration. Once the demonstration window" \ + "demonstratie starten door op de regel te klikken." +mcset nl "appears, you can click the" \ + "Zodra het nieuwe venster verschijnt, kun je op de knop" +mcset nl "See Code" "Bekijk Code" ;# This is also button text! +mcset nl "button to see the Tcl/Tk code that created the demonstration. If" \ + "drukken om de achterliggende Tcl/Tk code te zien. Als je dat wilt," +mcset nl "you wish, you can edit the code and click the" \ + "kun je de code wijzigen en op de knop" +mcset nl "Rerun Demo" "Herstart Demo" ;# This is also button text! +mcset nl "button in the code window to reinvoke the demonstration with the" \ + "drukken in het codevenster om de demonstratie uit te voeren met de" +mcset nl "modified code." \ + "nieuwe code." + +mcset nl "Labels, buttons, checkbuttons, and radiobuttons" \ + "Labels, knoppen, vinkjes/aankruishokjes en radioknoppen" + +mcset nl "Labels (text and bitmaps)" "Labels (tekst en plaatjes)" +mcset nl "Labels and UNICODE text" "Labels en tekst in UNICODE" +mcset nl "Buttons" "Buttons (drukknoppen)" +mcset nl "Check-buttons (select any of a group)" "Check-buttons (een of meer uit een groep)" +mcset nl "Radio-buttons (select one of a group)" "Radio-buttons (een van een groep)" +mcset nl "A 15-puzzle game made out of buttons" "Een schuifpuzzel van buttons" +mcset nl "Iconic buttons that use bitmaps" "Buttons met pictogrammen" +mcset nl "Two labels displaying images" "Twee labels met plaatjes in plaats van tekst" +mcset nl "A simple user interface for viewing images" \ + "Een eenvoudige user-interface voor het bekijken van plaatjes" +mcset nl "Labelled frames" "Kaders met bijschrift" + +mcset nl "Listboxes" "Keuzelijsten" +mcset nl "The 50 states" "De 50 staten van de VS" +mcset nl "Colors: change the color scheme for the application" \ + "Kleuren: verander het kleurenschema voor het programma" +mcset nl "A collection of famous and infamous sayings" \ + "Beroemde en beruchte citaten en gezegden" + +mcset nl "Entries and Spin-boxes" "Invulvelden en Spinboxen" +mcset nl "Entries without scrollbars" "Invulvelden zonder schuifbalk" +mcset nl "Entries with scrollbars" "Invulvelden met schuifbalk" +mcset nl "Validated entries and password fields" \ + "Invulvelden met controle of wachtwoorden" +mcset nl "Spin-boxes" "Spinboxen" +mcset nl "Simple Rolodex-like form" "Simpel kaartsysteem" + +mcset nl "Text" "Tekst" +mcset nl "Basic editable text" "Voorbeeld met te wijzigen tekst" +mcset nl "Text display styles" "Tekst met verschillende stijlen" +mcset nl "Hypertext (tag bindings)" "Hypertext (verwijzingen via \"tags\")" +mcset nl "A text widget with embedded windows" \ + "Tekstwidget met windows erin" +mcset nl "A search tool built with a text widget" \ + "Zoeken in tekst met behulp van een tekstwidget" + +mcset nl "Canvases" "Canvaswidgets" +mcset nl "The canvas item types" "Objecten in een canvas" +mcset nl "A simple 2-D plot" "Eenvoudige 2D-grafiek" +mcset nl "Text items in canvases" "Tekstobjecten in een canvas" +mcset nl "An editor for arrowheads on canvas lines" \ + "Editor voor de vorm van de pijl (begin/eind van een lijn)" +mcset nl "A ruler with adjustable tab stops" \ + "Een meetlat met aanpasbare ruiters" +mcset nl "A building floor plan" "Plattegrond van een gebouw" +mcset nl "A simple scrollable canvas" "Een schuifbaar canvas" + +mcset nl "Scales" "Schaalverdelingen" +mcset nl "Horizontal scale" "Horizontale schaal" +mcset nl "Vertical scale" "Verticale schaal" + +mcset nl "Paned Windows" "Vensters opgedeeld in stukken" +mcset nl "Horizontal paned window" "Horizontaal gedeeld venster" +mcset nl "Vertical paned window" "Verticaal gedeeld venster" + +mcset nl "Menus" "Menu's" +mcset nl "Menus and cascades (sub-menus)" \ + "Menu's en cascades (submenu's)" +mcset nl "Menu-buttons" "Menu-buttons" + +mcset nl "Common Dialogs" "Veel voorkomende dialoogvensters" +mcset nl "Message boxes" "Mededeling (message box)" +mcset nl "File selection dialog" "Selectie van bestanden" +mcset nl "Color picker" "Kleurenpalet" + +mcset nl "Miscellaneous" "Diversen" +mcset nl "The built-in bitmaps" "Ingebouwde plaatjes" +mcset nl "A dialog box with a local grab" \ + "Een dialoogvenster met een locale \"grab\"" +mcset nl "A dialog box with a global grab" \ + "Een dialoogvenster met een globale \"grab\"" diff --git a/mingw/lib/tk8.5/demos/paned1.tcl b/mingw/lib/tk8.5/demos/paned1.tcl new file mode 100644 index 00000000..1c9e3e62 --- /dev/null +++ b/mingw/lib/tk8.5/demos/paned1.tcl @@ -0,0 +1,34 @@ +# paned1.tcl -- +# +# This demonstration script creates a toplevel window containing +# a paned window that separates two windows horizontally. +# +# RCS: @(#) $Id: paned1.tcl,v 1.3 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .paned1 +catch {destroy $w} +toplevel $w +wm title $w "Horizontal Paned Window Demonstration" +wm iconname $w "paned1" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two coloured windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +panedwindow $w.pane +pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m + +label $w.pane.left -text "This is the\nleft side" -bg yellow +label $w.pane.right -text "This is the\nright side" -bg cyan + +$w.pane add $w.pane.left $w.pane.right diff --git a/mingw/lib/tk8.5/demos/paned2.tcl b/mingw/lib/tk8.5/demos/paned2.tcl new file mode 100644 index 00000000..9e721397 --- /dev/null +++ b/mingw/lib/tk8.5/demos/paned2.tcl @@ -0,0 +1,76 @@ +# paned2.tcl -- +# +# This demonstration script creates a toplevel window containing +# a paned window that separates two windows vertically. +# +# RCS: @(#) $Id: paned2.tcl,v 1.3 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .paned2 +catch {destroy $w} +toplevel $w +wm title $w "Vertical Paned Window Demonstration" +wm iconname $w "paned2" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The sash between the two scrolled windows below can be used to divide the area between them. Use the left mouse button to resize without redrawing by just moving the sash, and use the middle mouse button to resize opaquely (always redrawing the windows in each position.)" +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Create the pane itself +panedwindow $w.pane -orient vertical +pack $w.pane -side top -expand yes -fill both -pady 2 -padx 2m + +# The top window is a listbox with scrollbar +set paneList { + {List of Tk Widgets} + button + canvas + checkbutton + entry + frame + label + labelframe + listbox + menu + menubutton + message + panedwindow + radiobutton + scale + scrollbar + spinbox + text + toplevel +} +set f [frame $w.pane.top] +listbox $f.list -listvariable paneList -yscrollcommand "$f.scr set" +# Invert the first item to highlight it +$f.list itemconfigure 0 \ + -background [$f.list cget -fg] -foreground [$f.list cget -bg] +scrollbar $f.scr -orient vertical -command "$f.list yview" +pack $f.scr -side right -fill y +pack $f.list -fill both -expand 1 + +# The bottom window is a text widget with scrollbar +set f [frame $w.pane.bottom] +text $f.text -xscrollcommand "$f.xscr set" -yscrollcommand "$f.yscr set" \ + -width 30 -height 8 -wrap none +scrollbar $f.xscr -orient horizontal -command "$f.text xview" +scrollbar $f.yscr -orient vertical -command "$f.text yview" +grid $f.text $f.yscr -sticky nsew +grid $f.xscr -sticky nsew +grid columnconfigure $f 0 -weight 1 +grid rowconfigure $f 0 -weight 1 +$f.text insert 1.0 "This is just a normal text widget" + +# Now add our contents to the paned window +$w.pane add $w.pane.top $w.pane.bottom diff --git a/mingw/lib/tk8.5/demos/pendulum.tcl b/mingw/lib/tk8.5/demos/pendulum.tcl new file mode 100644 index 00000000..b70cbf12 --- /dev/null +++ b/mingw/lib/tk8.5/demos/pendulum.tcl @@ -0,0 +1,196 @@ +# pendulum.tcl -- +# +# This demonstration illustrates how Tcl/Tk can be used to construct +# simulations of physical systems. +# +# RCS: @(#) $Id: pendulum.tcl,v 1.3 2006/10/17 05:52:40 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .pendulum +catch {destroy $w} +toplevel $w +wm title $w "Pendulum Animation Demonstration" +wm iconname $w "pendulum" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration shows how Tcl/Tk can be used to carry out animations that are linked to simulations of physical systems. In the left canvas is a graphical representation of the physical system itself, a simple pendulum, and in the right canvas is a graph of the phase space of the system, which is a plot of the angle (relative to the vertical) against the angular velocity. The pendulum bob may be repositioned by clicking and dragging anywhere on the left canvas." +pack $w.msg + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Create some structural widgets +pack [panedwindow $w.p] -fill both -expand 1 +$w.p add [labelframe $w.p.l1 -text "Pendulum Simulation"] +$w.p add [labelframe $w.p.l2 -text "Phase Space"] + +# Create the canvas containing the graphical representation of the +# simulated system. +canvas $w.c -width 320 -height 200 -background white -bd 2 -relief sunken +$w.c create text 5 5 -anchor nw -text "Click to Adjust Bob Start Position" +# Coordinates of these items don't matter; they will be set properly below +$w.c create line 0 25 320 25 -width 2 -fill grey50 -tags plate +$w.c create line 1 1 1 1 -tags pendulumRod -width 3 -fill black +$w.c create oval 1 1 2 2 -tags pendulumBob -fill yellow -outline black +$w.c create oval 155 20 165 30 -fill grey50 -outline {} +pack $w.c -in $w.p.l1 -fill both -expand true + +# Create the canvas containing the phase space graph; this consists of +# a line that gets gradually paler as it ages, which is an extremely +# effective visual trick. +canvas $w.k -width 320 -height 200 -background white -bd 2 -relief sunken +$w.k create line 160 200 160 0 -fill grey75 -arrow last -tags y_axis +$w.k create line 0 100 320 100 -fill grey75 -arrow last -tags x_axis +for {set i 90} {$i>=0} {incr i -10} { + # Coordinates of these items don't matter; they will be set properly below + $w.k create line 0 0 1 1 -smooth true -tags graph$i -fill grey$i +} +# FIXME: UNICODE labels +$w.k create text 0 0 -anchor ne -text "q" -font {Symbol 8} -tags label_theta +$w.k create text 0 0 -anchor ne -text "dq" -font {Symbol 8} -tags label_dtheta +pack $w.k -in $w.p.l2 -fill both -expand true + +# Initialize some variables +set points {} +set Theta 45.0 +set dTheta 0.0 +set pi 3.1415926535897933 +set length 150 + +# This procedure makes the pendulum appear at the correct place on the +# canvas. If the additional arguments "at $x $y" are passed (the 'at' +# is really just syntactic sugar) instead of computing the position of +# the pendulum from the length of the pendulum rod and its angle, the +# length and angle are computed in reverse from the given location +# (which is taken to be the centre of the pendulum bob.) +proc showPendulum {canvas {at {}} {x {}} {y {}}} { + global Theta dTheta pi length + if {$at eq "at" && ($x!=160 || $y!=25)} { + set dTheta 0.0 + set x2 [expr {$x-160}] + set y2 [expr {$y-25}] + set length [expr {hypot($x2,$y2)}] + set Theta [expr {atan2($x2,$y2)*180/$pi}] + } else { + set angle [expr {$Theta * $pi/180}] + set x [expr {160+$length*sin($angle)}] + set y [expr {25+$length*cos($angle)}] + } + $canvas coords pendulumRod 160 25 $x $y + $canvas coords pendulumBob \ + [expr {$x-15}] [expr {$y-15}] [expr {$x+15}] [expr {$y+15}] +} +showPendulum $w.c + +# Update the phase-space graph according to the current angle and the +# rate at which the angle is changing (the first derivative with +# respect to time.) +proc showPhase {canvas} { + global Theta dTheta points psw psh + lappend points [expr {$Theta+$psw}] [expr {-20*$dTheta+$psh}] + if {[llength $points] > 100} { + set points [lrange $points end-99 end] + } + for {set i 0} {$i<100} {incr i 10} { + set list [lrange $points end-[expr {$i-1}] end-[expr {$i-12}]] + if {[llength $list] >= 4} { + $canvas coords graph$i $list + } + } +} + +# Set up some bindings on the canvases. Note that when the user +# clicks we stop the animation until they release the mouse +# button. Also note that both canvases are sensitive to +# events, which allows them to find out when they have been resized by +# the user. +bind $w.c { + after cancel $animationCallbacks(pendulum) + unset animationCallbacks(pendulum) +} +bind $w.c <1> { + after cancel $animationCallbacks(pendulum) + showPendulum %W at %x %y +} +bind $w.c { + showPendulum %W at %x %y +} +bind $w.c { + showPendulum %W at %x %y + set animationCallbacks(pendulum) [after 15 repeat [winfo toplevel %W]] +} +bind $w.c { + %W coords plate 0 25 %w 25 +} +bind $w.k { + set psh [expr %h/2] + set psw [expr %w/2] + %W coords x_axis 2 $psh [expr %w-2] $psh + %W coords y_axis $psw [expr %h-2] $psw 2 + %W coords label_dtheta [expr $psw-4] 6 + %W coords label_theta [expr %w-6] [expr $psh+4] +} + +# This procedure is the "business" part of the simulation that does +# simple numerical integration of the formula for a simple rotational +# pendulum. +proc recomputeAngle {} { + global Theta dTheta pi length + set scaling [expr {3000.0/$length/$length}] + + # To estimate the integration accurately, we really need to + # compute the end-point of our time-step. But to do *that*, we + # need to estimate the integration accurately! So we try this + # technique, which is inaccurate, but better than doing it in a + # single step. What we really want is bound up in the + # differential equation: + # .. - sin theta + # theta + theta = ----------- + # length + # But my math skills are not good enough to solve this! + + # first estimate + set firstDDTheta [expr {-sin($Theta * $pi/180)*$scaling}] + set midDTheta [expr {$dTheta + $firstDDTheta}] + set midTheta [expr {$Theta + ($dTheta + $midDTheta)/2}] + # second estimate + set midDDTheta [expr {-sin($midTheta * $pi/180)*$scaling}] + set midDTheta [expr {$dTheta + ($firstDDTheta + $midDDTheta)/2}] + set midTheta [expr {$Theta + ($dTheta + $midDTheta)/2}] + # Now we do a double-estimate approach for getting the final value + # first estimate + set midDDTheta [expr {-sin($midTheta * $pi/180)*$scaling}] + set lastDTheta [expr {$midDTheta + $midDDTheta}] + set lastTheta [expr {$midTheta + ($midDTheta + $lastDTheta)/2}] + # second estimate + set lastDDTheta [expr {-sin($lastTheta * $pi/180)*$scaling}] + set lastDTheta [expr {$midDTheta + ($midDDTheta + $lastDDTheta)/2}] + set lastTheta [expr {$midTheta + ($midDTheta + $lastDTheta)/2}] + # Now put the values back in our globals + set dTheta $lastDTheta + set Theta $lastTheta +} + +# This method ties together the simulation engine and the graphical +# display code that visualizes it. +proc repeat w { + global animationCallbacks + + # Simulate + recomputeAngle + + # Update the display + showPendulum $w.c + showPhase $w.k + + # Reschedule ourselves + set animationCallbacks(pendulum) [after 15 [list repeat $w]] +} +# Start the simulation after a short pause +set animationCallbacks(pendulum) [after 500 [list repeat $w]] diff --git a/mingw/lib/tk8.5/demos/plot.tcl b/mingw/lib/tk8.5/demos/plot.tcl new file mode 100644 index 00000000..82a2c609 --- /dev/null +++ b/mingw/lib/tk8.5/demos/plot.tcl @@ -0,0 +1,99 @@ +# plot.tcl -- +# +# This demonstration script creates a canvas widget showing a 2-D +# plot with data points that can be dragged with the mouse. +# +# RCS: @(#) $Id: plot.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .plot +catch {destroy $w} +toplevel $w +wm title $w "Plot Demonstration" +wm iconname $w "Plot" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 4i -justify left -text "This window displays a canvas widget containing a simple 2-dimensional plot. You can doctor the data by dragging any of the points with mouse button 1." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +canvas $c -relief raised -width 450 -height 300 +pack $w.c -side top -fill x + +set plotFont {Helvetica 18} + +$c create line 100 250 400 250 -width 2 +$c create line 100 250 100 50 -width 2 +$c create text 225 20 -text "A Simple Plot" -font $plotFont -fill brown + +for {set i 0} {$i <= 10} {incr i} { + set x [expr {100 + ($i*30)}] + $c create line $x 250 $x 245 -width 2 + $c create text $x 254 -text [expr {10*$i}] -anchor n -font $plotFont +} +for {set i 0} {$i <= 5} {incr i} { + set y [expr {250 - ($i*40)}] + $c create line 100 $y 105 $y -width 2 + $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $plotFont +} + +foreach point { + {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} +} { + set x [expr {100 + (3*[lindex $point 0])}] + set y [expr {250 - (4*[lindex $point 1])/5}] + set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ + [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ + -fill SkyBlue2] + $c addtag point withtag $item +} + +$c bind point "$c itemconfig current -fill red" +$c bind point "$c itemconfig current -fill SkyBlue2" +$c bind point <1> "plotDown $c %x %y" +$c bind point "$c dtag selected" +bind $c "plotMove $c %x %y" + +set plot(lastX) 0 +set plot(lastY) 0 + +# plotDown -- +# This procedure is invoked when the mouse is pressed over one of the +# data points. It sets up state to allow the point to be dragged. +# +# Arguments: +# w - The canvas window. +# x, y - The coordinates of the mouse press. + +proc plotDown {w x y} { + global plot + $w dtag selected + $w addtag selected withtag current + $w raise current + set plot(lastX) $x + set plot(lastY) $y +} + +# plotMove -- +# This procedure is invoked during mouse motion events. It drags the +# current item. +# +# Arguments: +# w - The canvas window. +# x, y - The coordinates of the mouse. + +proc plotMove {w x y} { + global plot + $w move selected [expr {$x-$plot(lastX)}] [expr {$y-$plot(lastY)}] + set plot(lastX) $x + set plot(lastY) $y +} diff --git a/mingw/lib/tk8.5/demos/puzzle.tcl b/mingw/lib/tk8.5/demos/puzzle.tcl new file mode 100644 index 00000000..485f69c7 --- /dev/null +++ b/mingw/lib/tk8.5/demos/puzzle.tcl @@ -0,0 +1,84 @@ +# puzzle.tcl -- +# +# This demonstration script creates a 15-puzzle game using a collection +# of buttons. +# +# RCS: @(#) $Id: puzzle.tcl,v 1.7 2007/04/23 21:16:01 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# puzzleSwitch -- +# This procedure is invoked when the user clicks on a particular button; +# if the button is next to the empty space, it moves the button into th +# empty space. + +proc puzzleSwitch {w num} { + global xpos ypos + if {(($ypos($num) >= ($ypos(space) - .01)) + && ($ypos($num) <= ($ypos(space) + .01)) + && ($xpos($num) >= ($xpos(space) - .26)) + && ($xpos($num) <= ($xpos(space) + .26))) + || (($xpos($num) >= ($xpos(space) - .01)) + && ($xpos($num) <= ($xpos(space) + .01)) + && ($ypos($num) >= ($ypos(space) - .26)) + && ($ypos($num) <= ($ypos(space) + .26)))} { + set tmp $xpos(space) + set xpos(space) $xpos($num) + set xpos($num) $tmp + set tmp $ypos(space) + set ypos(space) $ypos($num) + set ypos($num) $tmp + place $w.frame.$num -relx $xpos($num) -rely $ypos($num) + } +} + +set w .puzzle +catch {destroy $w} +toplevel $w +wm title $w "15-Puzzle Demonstration" +wm iconname $w "15-Puzzle" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "A 15-puzzle appears below as a collection of buttons. Click on any of the pieces next to the space, and that piece will slide over the space. Continue this until the pieces are arranged in numerical order from upper-left to lower-right." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Special trick: select a darker color for the space by creating a +# scrollbar widget and using its trough color. + +scrollbar $w.s + +# The button metrics are a bit bigger in Aqua, and since we are +# using place which doesn't autosize, then we need to have a +# slightly larger frame here... + +if {[tk windowingsystem] eq "aqua"} { + set frameSize 168 +} else { + set frameSize 120 +} + +frame $w.frame -width $frameSize -height $frameSize -borderwidth 2\ + -relief sunken -bg [$w.s cget -troughcolor] +pack $w.frame -side top -pady 1c -padx 1c +destroy $w.s + +set order {3 1 6 2 5 7 15 13 4 11 8 9 14 10 12} +for {set i 0} {$i < 15} {set i [expr {$i+1}]} { + set num [lindex $order $i] + set xpos($num) [expr {($i%4)*.25}] + set ypos($num) [expr {($i/4)*.25}] + button $w.frame.$num -relief raised -text $num -highlightthickness 0 \ + -command "puzzleSwitch $w $num" + place $w.frame.$num -relx $xpos($num) -rely $ypos($num) \ + -relwidth .25 -relheight .25 +} +set xpos(space) .75 +set ypos(space) .75 diff --git a/mingw/lib/tk8.5/demos/radio.tcl b/mingw/lib/tk8.5/demos/radio.tcl new file mode 100644 index 00000000..28ea2360 --- /dev/null +++ b/mingw/lib/tk8.5/demos/radio.tcl @@ -0,0 +1,68 @@ +# radio.tcl -- +# +# This demonstration script creates a toplevel window containing +# several radiobutton widgets. +# +# RCS: @(#) $Id: radio.tcl,v 1.8 2007/04/23 21:16:01 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .radio +catch {destroy $w} +toplevel $w +wm title $w "Radiobutton Demonstration" +wm iconname $w "radio" +positionWindow $w +label $w.msg -font $font -wraplength 5i -justify left -text "Three groups of radiobuttons are displayed below. If you click on a button then the button will become selected exclusively among all the buttons in its group. A Tcl variable is associated with each group to indicate which of the group's buttons is selected. When the 'Tristate' button is pressed, the radio buttons will display the tri-state mode. Selecting any radio button will return the buttons to their respective on/off state. Click the \"See Variables\" button to see the current values of the variables." +grid $w.msg -row 0 -column 0 -columnspan 3 -sticky nsew + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w [list size color align]] +grid $btns -row 3 -column 0 -columnspan 3 -sticky ew + +labelframe $w.left -pady 2 -text "Point Size" -padx 2 +labelframe $w.mid -pady 2 -text "Color" -padx 2 +labelframe $w.right -pady 2 -text "Alignment" -padx 2 +button $w.tristate -text Tristate -command "set size multi; set color multi" \ + -pady 2 -padx 2 +if {[tk windowingsystem] eq "aqua"} { + $w.tristate configure -padx 10 +} +grid $w.left -column 0 -row 1 -pady .5c -padx .5c -rowspan 2 +grid $w.mid -column 1 -row 1 -pady .5c -padx .5c -rowspan 2 +grid $w.right -column 2 -row 1 -pady .5c -padx .5c +grid $w.tristate -column 2 -row 2 -pady .5c -padx .5c + +foreach i {10 12 14 18 24} { + radiobutton $w.left.b$i -text "Point Size $i" -variable size \ + -relief flat -value $i -tristatevalue "multi" + pack $w.left.b$i -side top -pady 2 -anchor w -fill x +} + +foreach c {Red Green Blue Yellow Orange Purple} { + set lower [string tolower $c] + radiobutton $w.mid.$lower -text $c -variable color \ + -relief flat -value $lower -anchor w \ + -command "$w.mid configure -fg \$color" \ + -tristatevalue "multi" + pack $w.mid.$lower -side top -pady 2 -fill x +} + + +label $w.right.l -text "Label" -bitmap questhead -compound left +$w.right.l configure -width [winfo reqwidth $w.right.l] -compound top +$w.right.l configure -height [winfo reqheight $w.right.l] +foreach a {Top Left Right Bottom} { + set lower [string tolower $a] + radiobutton $w.right.$lower -text $a -variable align \ + -relief flat -value $lower -indicatoron 0 -width 7 \ + -command "$w.right.l configure -compound \$align" +} + +grid x $w.right.top +grid $w.right.left $w.right.l $w.right.right +grid x $w.right.bottom diff --git a/mingw/lib/tk8.5/demos/rmt b/mingw/lib/tk8.5/demos/rmt new file mode 100644 index 00000000..0e14cdb5 --- /dev/null +++ b/mingw/lib/tk8.5/demos/rmt @@ -0,0 +1,213 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# rmt -- +# This script implements a simple remote-control mechanism for +# Tk applications. It allows you to select an application and +# then type commands to that application. +# +# RCS: @(#) $Id: rmt,v 1.4 2003/09/30 14:54:30 dkf Exp $ + +package require Tcl 8.4 +package require Tk + +wm title . "Tk Remote Controller" +wm iconname . "Tk Remote" +wm minsize . 1 1 + +# The global variable below keeps track of the remote application +# that we're sending to. If it's an empty string then we execute +# the commands locally. + +set app "local" + +# The global variable below keeps track of whether we're in the +# middle of executing a command entered via the text. + +set executing 0 + +# The global variable below keeps track of the last command executed, +# so it can be re-executed in response to !! commands. + +set lastCommand "" + +# Create menu bar. Arrange to recreate all the information in the +# applications sub-menu whenever it is cascaded to. + +. configure -menu [menu .menu] +menu .menu.file +menu .menu.file.apps -postcommand fillAppsMenu +.menu add cascade -label "File" -underline 0 -menu .menu.file +.menu.file add cascade -label "Select Application" -underline 0 \ + -menu .menu.file.apps +.menu.file add command -label "Quit" -command "destroy ." -underline 0 + +# Create text window and scrollbar. + +text .t -relief sunken -bd 2 -yscrollcommand ".s set" -setgrid true +scrollbar .s -command ".t yview" +grid .t .s -sticky nsew +grid rowconfigure . 0 -weight 1 +grid columnconfigure . 0 -weight 1 + +# Create a binding to forward commands to the target application, +# plus modify many of the built-in bindings so that only information +# in the current command can be deleted (can still set the cursor +# earlier in the text and select and insert; just can't delete). + +bindtags .t {.t Text . all} +bind .t { + .t mark set insert {end - 1c} + .t insert insert \n + invoke + break +} +bind .t { + catch {.t tag remove sel sel.first promptEnd} + if {[.t tag nextrange sel 1.0 end] eq ""} { + if {[.t compare insert < promptEnd]} { + break + } + } +} +bind .t { + catch {.t tag remove sel sel.first promptEnd} + if {[.t tag nextrange sel 1.0 end] eq ""} { + if {[.t compare insert <= promptEnd]} { + break + } + } +} +bind .t { + if {[.t compare insert < promptEnd]} { + break + } +} +bind .t { + if {[.t compare insert < promptEnd]} { + .t mark set insert promptEnd + } +} +bind .t { + if {[.t compare insert < promptEnd]} { + break + } +} +bind .t { + if {[.t compare insert < promptEnd]} { + break + } +} +bind .t { + if {[.t compare insert <= promptEnd]} { + break + } +} +bind .t { + if {[.t compare insert <= promptEnd]} { + break + } +} +### This next bit *isn't* nice - DKF ### +auto_load tk::TextInsert +proc tk::TextInsert {w s} { + if {$s eq ""} { + return + } + catch { + if { + [$w compare sel.first <= insert] && [$w compare sel.last >= insert] + } then { + $w tag remove sel sel.first promptEnd + $w delete sel.first sel.last + } + } + $w insert insert $s + $w see insert +} + +.t configure -font {Courier 12} +.t tag configure bold -font {Courier 12 bold} + +# The procedure below is used to print out a prompt at the +# insertion point (which should be at the beginning of a line +# right now). + +proc prompt {} { + global app + .t insert insert "$app: " + .t mark set promptEnd {insert} + .t mark gravity promptEnd left + .t tag add bold {promptEnd linestart} promptEnd +} + +# The procedure below executes a command (it takes everything on the +# current line after the prompt and either sends it to the remote +# application or executes it locally, depending on "app". + +proc invoke {} { + global app executing lastCommand + set cmd [.t get promptEnd insert] + incr executing 1 + if {[info complete $cmd]} { + if {$cmd eq "!!\n"} { + set cmd $lastCommand + } else { + set lastCommand $cmd + } + if {$app eq "local"} { + set result [catch [list uplevel #0 $cmd] msg] + } else { + set result [catch [list send $app $cmd] msg] + } + if {$result != 0} { + .t insert insert "Error: $msg\n" + } elseif {$msg ne ""} { + .t insert insert $msg\n + } + prompt + .t mark set promptEnd insert + } + incr executing -1 + .t yview -pickplace insert +} + +# The following procedure is invoked to change the application that +# we're talking to. It also updates the prompt for the current +# command, unless we're in the middle of executing a command from +# the text item (in which case a new prompt is about to be output +# so there's no need to change the old one). + +proc newApp appName { + global app executing + set app $appName + if {!$executing} { + .t mark gravity promptEnd right + .t delete "promptEnd linestart" promptEnd + .t insert promptEnd "$appName: " + .t tag add bold "promptEnd linestart" promptEnd + .t mark gravity promptEnd left + } + return +} + +# The procedure below will fill in the applications sub-menu with a list +# of all the applications that currently exist. + +proc fillAppsMenu {} { + set m .menu.file.apps + catch {$m delete 0 last} + foreach i [lsort [winfo interps]] { + $m add command -label $i -command [list newApp $i] + } + $m add command -label local -command {newApp local} +} + +set app [winfo name .] +prompt +focus .t + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/rolodex b/mingw/lib/tk8.5/demos/rolodex new file mode 100644 index 00000000..30946aaa --- /dev/null +++ b/mingw/lib/tk8.5/demos/rolodex @@ -0,0 +1,206 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" ${1+"$@"} + +# rolodex -- +# This script was written as an entry in Tom LaStrange's rolodex +# benchmark. It creates something that has some of the look and +# feel of a rolodex program, although it's lifeless and doesn't +# actually do the rolodex application. +# +# RCS: @(#) $Id: rolodex,v 1.5 2003/09/30 14:54:30 dkf Exp $ + +package require Tk + +foreach i [winfo child .] { + catch {destroy $i} +} + +set version 1.2 + +#------------------------------------------ +# Phase 0: create the front end. +#------------------------------------------ + +frame .frame -relief flat +pack .frame -side top -fill y -anchor center + +set names {{} Name: Address: {} {} {Home Phone:} {Work Phone:} Fax:} +foreach i {1 2 3 4 5 6 7} { + label .frame.label$i -text [lindex $names $i] -anchor e + entry .frame.entry$i -width 35 + grid .frame.label$i .frame.entry$i -sticky ew -pady 2 -padx 1 +} + +frame .buttons +pack .buttons -side bottom -pady 2 -anchor center +button .buttons.clear -text Clear +button .buttons.add -text Add +button .buttons.search -text Search +button .buttons.delete -text "Delete ..." +pack .buttons.clear .buttons.add .buttons.search .buttons.delete \ + -side left -padx 2 + +#------------------------------------------ +# Phase 1: Add menus, dialog boxes +#------------------------------------------ + +# DKF - note that this is an old-style menu bar; I just have not yet +# got around to converting the context help code to work with the new +# menu system and its <> virtual event. + +frame .menu -relief raised -borderwidth 1 +pack .menu -before .frame -side top -fill x + +menubutton .menu.file -text "File" -menu .menu.file.m -underline 0 +menu .menu.file.m +.menu.file.m add command -label "Load ..." -command fileAction -underline 0 +.menu.file.m add command -label "Exit" -command {destroy .} -underline 0 +pack .menu.file -side left + +menubutton .menu.help -text "Help" -menu .menu.help.m -underline 0 +menu .menu.help.m +pack .menu.help -side right + +proc deleteAction {} { + if {[tk_dialog .delete {Confirm Action} {Are you sure?} {} 0 Cancel] + == 0} { + clearAction + } +} +.buttons.delete config -command deleteAction + +proc fileAction {} { + tk_dialog .fileSelection {File Selection} {This is a dummy file selection dialog box, which is used because there isn't a good file selection dialog built into Tk yet.} {} 0 OK + puts stderr {dummy file name} +} + +#------------------------------------------ +# Phase 3: Print contents of card +#------------------------------------------ + +proc addAction {} { + global names + foreach i {1 2 3 4 5 6 7} { + puts stderr [format "%-12s %s" [lindex $names $i] [.frame.entry$i get]] + } +} +.buttons.add config -command addAction + +#------------------------------------------ +# Phase 4: Miscellaneous other actions +#------------------------------------------ + +proc clearAction {} { + foreach i {1 2 3 4 5 6 7} { + .frame.entry$i delete 0 end + } +} +.buttons.clear config -command clearAction + +proc fillCard {} { + clearAction + .frame.entry1 insert 0 "John Ousterhout" + .frame.entry2 insert 0 "CS Division, Department of EECS" + .frame.entry3 insert 0 "University of California" + .frame.entry4 insert 0 "Berkeley, CA 94720" + .frame.entry5 insert 0 "private" + .frame.entry6 insert 0 "510-642-0865" + .frame.entry7 insert 0 "510-642-5775" +} +.buttons.search config -command "addAction; fillCard" + +#---------------------------------------------------- +# Phase 5: Accelerators, mnemonics, command-line info +#---------------------------------------------------- + +.buttons.clear config -text "Clear Ctrl+C" +bind . clearAction +.buttons.add config -text "Add Ctrl+A" +bind . addAction +.buttons.search config -text "Search Ctrl+S" +bind . "addAction; fillCard" +.buttons.delete config -text "Delete... Ctrl+D" +bind . deleteAction + +.menu.file.m entryconfig 1 -accel Ctrl+F +bind . fileAction +.menu.file.m entryconfig 2 -accel Ctrl+Q +bind . {destroy .} + +focus .frame.entry1 + +#---------------------------------------------------- +# Phase 6: help +#---------------------------------------------------- + +proc Help {topic {x 0} {y 0}} { + global helpTopics helpCmds + if {$topic == ""} return + while {[info exists helpCmds($topic)]} { + set topic [eval $helpCmds($topic)] + } + if [info exists helpTopics($topic)] { + set msg $helpTopics($topic) + } else { + set msg "Sorry, but no help is available for this topic" + } + tk_dialog .help {Rolodex Help} "Information on $topic:\n\n$msg" \ + {} 0 OK +} + +proc getMenuTopic {w x y} { + return $w.[$w index @[expr {$y-[winfo rooty $w]}]] +} + +event add <> +bind . <> {Help [winfo containing %X %Y] %X %Y} +bind Menu <> {Help [winfo containing %X %Y] %X %Y} + +# Help text and commands follow: + +set helpTopics(.menu.file) {This is the "file" menu. It can be used to invoke some overall operations on the rolodex applications, such as loading a file or exiting.} + +set helpCmds(.menu.file.m) {getMenuTopic $topic $x $y} +set helpTopics(.menu.file.m.1) {The "Load" entry in the "File" menu posts a dialog box that you can use to select a rolodex file} +set helpTopics(.menu.file.m.2) {The "Exit" entry in the "File" menu causes the rolodex application to terminate} +set helpCmds(.menu.file.m.none) {set topic ".menu.file"} + +set helpTopics(.frame.entry1) {In this field of the rolodex entry you should type the person's name} +set helpTopics(.frame.entry2) {In this field of the rolodex entry you should type the first line of the person's address} +set helpTopics(.frame.entry3) {In this field of the rolodex entry you should type the second line of the person's address} +set helpTopics(.frame.entry4) {In this field of the rolodex entry you should type the third line of the person's address} +set helpTopics(.frame.entry5) {In this field of the rolodex entry you should type the person's home phone number, or "private" if the person doesn't want his or her number publicized} +set helpTopics(.frame.entry6) {In this field of the rolodex entry you should type the person's work phone number} +set helpTopics(.frame.entry7) {In this field of the rolodex entry you should type the phone number for the person's FAX machine} + +set helpCmds(.frame.label1) {set topic .frame.entry1} +set helpCmds(.frame.label2) {set topic .frame.entry2} +set helpCmds(.frame.label3) {set topic .frame.entry3} +set helpCmds(.frame.label4) {set topic .frame.entry4} +set helpCmds(.frame.label5) {set topic .frame.entry5} +set helpCmds(.frame.label6) {set topic .frame.entry6} +set helpCmds(.frame.label7) {set topic .frame.entry7} + +set helpTopics(context) {Unfortunately, this application doesn't support context-sensitive help in the usual way, because when this demo was written Tk didn't have a grab mechanism and this is needed for context-sensitive help. Instead, you can achieve much the same effect by simply moving the mouse over the window you're curious about and pressing the Help or F1 keys. You can do this anytime.} +set helpTopics(help) {This application provides only very crude help. Besides the entries in this menu, you can get help on individual windows by moving the mouse cursor over the window and pressing the Help or F1 keys.} +set helpTopics(window) {This window is a dummy rolodex application created as part of Tom LaStrange's toolkit benchmark. It doesn't really do anything useful except to demonstrate a few features of the Tk toolkit.} +set helpTopics(keys) "The following accelerator keys are defined for this application (in addition to those already available for the entry windows):\n\nCtrl+A:\t\tAdd\nCtrl+C:\t\tClear\nCtrl+D:\t\tDelete\nCtrl+F:\t\tEnter file name\nCtrl+Q:\t\tExit application (quit)\nCtrl+S:\t\tSearch (dummy operation)" +set helpTopics(version) "This is version $version." + +# Entries in "Help" menu + +.menu.help.m add command -label "On Context..." -command {Help context} \ + -underline 3 +.menu.help.m add command -label "On Help..." -command {Help help} \ + -underline 3 +.menu.help.m add command -label "On Window..." -command {Help window} \ + -underline 3 +.menu.help.m add command -label "On Keys..." -command {Help keys} \ + -underline 3 +.menu.help.m add command -label "On Version..." -command {Help version} \ + -underline 3 + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/ruler.tcl b/mingw/lib/tk8.5/demos/ruler.tcl new file mode 100644 index 00000000..45881cd7 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ruler.tcl @@ -0,0 +1,173 @@ +# ruler.tcl -- +# +# This demonstration script creates a canvas widget that displays a ruler +# with tab stops that can be set, moved, and deleted. +# +# RCS: @(#) $Id: ruler.tcl,v 1.7 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# rulerMkTab -- +# This procedure creates a new triangular polygon in a canvas to +# represent a tab stop. +# +# Arguments: +# c - The canvas window. +# x, y - Coordinates at which to create the tab stop. + +proc rulerMkTab {c x y} { + upvar #0 demo_rulerInfo v + $c create polygon $x $y [expr {$x+$v(size)}] [expr {$y+$v(size)}] \ + [expr {$x-$v(size)}] [expr {$y+$v(size)}] +} + +set w .ruler +catch {destroy $w} +toplevel $w +wm title $w "Ruler Demonstration" +wm iconname $w "ruler" +positionWindow $w +set c $w.c + +label $w.msg -font $font -wraplength 5i -justify left -text "This canvas widget shows a mock-up of a ruler. You can create tab stops by dragging them out of the well to the right of the ruler. You can also drag existing tab stops. If you drag a tab stop far enough up or down so that it turns dim, it will be deleted when you release the mouse button." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +canvas $c -width 14.8c -height 2.5c +pack $w.c -side top -fill x + +set demo_rulerInfo(grid) .25c +set demo_rulerInfo(left) [winfo fpixels $c 1c] +set demo_rulerInfo(right) [winfo fpixels $c 13c] +set demo_rulerInfo(top) [winfo fpixels $c 1c] +set demo_rulerInfo(bottom) [winfo fpixels $c 1.5c] +set demo_rulerInfo(size) [winfo fpixels $c .2c] +set demo_rulerInfo(normalStyle) "-fill black" +# Main widget program sets variable tk_demoDirectory +if {[winfo depth $c] > 1} { + set demo_rulerInfo(activeStyle) "-fill red -stipple {}" + set demo_rulerInfo(deleteStyle) [list -fill red \ + -stipple @[file join $tk_demoDirectory images gray25.xbm]] +} else { + set demo_rulerInfo(activeStyle) "-fill black -stipple {}" + set demo_rulerInfo(deleteStyle) [list -fill black \ + -stipple @[file join $tk_demoDirectory images gray25.xbm]] +} + +$c create line 1c 0.5c 1c 1c 13c 1c 13c 0.5c -width 1 +for {set i 0} {$i < 12} {incr i} { + set x [expr {$i+1}] + $c create line ${x}c 1c ${x}c 0.6c -width 1 + $c create line $x.25c 1c $x.25c 0.8c -width 1 + $c create line $x.5c 1c $x.5c 0.7c -width 1 + $c create line $x.75c 1c $x.75c 0.8c -width 1 + $c create text $x.15c .75c -text $i -anchor sw +} +$c addtag well withtag [$c create rect 13.2c 1c 13.8c 0.5c \ + -outline black -fill [lindex [$c config -bg] 4]] +$c addtag well withtag [rulerMkTab $c [winfo pixels $c 13.5c] \ + [winfo pixels $c .65c]] + +$c bind well <1> "rulerNewTab $c %x %y" +$c bind tab <1> "rulerSelectTab $c %x %y" +bind $c "rulerMoveTab $c %x %y" +bind $c "rulerReleaseTab $c" + +# rulerNewTab -- +# Does all the work of creating a tab stop, including creating the +# triangle object and adding tags to it to give it tab behavior. +# +# Arguments: +# c - The canvas window. +# x, y - The coordinates of the tab stop. + +proc rulerNewTab {c x y} { + upvar #0 demo_rulerInfo v + $c addtag active withtag [rulerMkTab $c $x $y] + $c addtag tab withtag active + set v(x) $x + set v(y) $y + rulerMoveTab $c $x $y +} + +# rulerSelectTab -- +# This procedure is invoked when mouse button 1 is pressed over +# a tab. It remembers information about the tab so that it can +# be dragged interactively. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse (identifies the point by +# which the tab was picked up for dragging). + +proc rulerSelectTab {c x y} { + upvar #0 demo_rulerInfo v + set v(x) [$c canvasx $x $v(grid)] + set v(y) [expr {$v(top)+2}] + $c addtag active withtag current + eval "$c itemconf active $v(activeStyle)" + $c raise active +} + +# rulerMoveTab -- +# This procedure is invoked during mouse motion events to drag a tab. +# It adjusts the position of the tab, and changes its appearance if +# it is about to be dragged out of the ruler. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse. + +proc rulerMoveTab {c x y} { + upvar #0 demo_rulerInfo v + if {[$c find withtag active] == ""} { + return + } + set cx [$c canvasx $x $v(grid)] + set cy [$c canvasy $y] + if {$cx < $v(left)} { + set cx $v(left) + } + if {$cx > $v(right)} { + set cx $v(right) + } + if {($cy >= $v(top)) && ($cy <= $v(bottom))} { + set cy [expr {$v(top)+2}] + eval "$c itemconf active $v(activeStyle)" + } else { + set cy [expr {$cy-$v(size)-2}] + eval "$c itemconf active $v(deleteStyle)" + } + $c move active [expr {$cx-$v(x)}] [expr {$cy-$v(y)}] + set v(x) $cx + set v(y) $cy +} + +# rulerReleaseTab -- +# This procedure is invoked during button release events that end +# a tab drag operation. It deselects the tab and deletes the tab if +# it was dragged out of the ruler. +# +# Arguments: +# c - The canvas widget. +# x, y - The coordinates of the mouse. + +proc rulerReleaseTab c { + upvar #0 demo_rulerInfo v + if {[$c find withtag active] == {}} { + return + } + if {$v(y) != $v(top)+2} { + $c delete active + } else { + eval "$c itemconf active $v(normalStyle)" + $c dtag active + } +} diff --git a/mingw/lib/tk8.5/demos/sayings.tcl b/mingw/lib/tk8.5/demos/sayings.tcl new file mode 100644 index 00000000..c6066ce2 --- /dev/null +++ b/mingw/lib/tk8.5/demos/sayings.tcl @@ -0,0 +1,46 @@ +# sayings.tcl -- +# +# This demonstration script creates a listbox that can be scrolled +# both horizontally and vertically. It displays a collection of +# well-known sayings. +# +# RCS: @(#) $Id: sayings.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .sayings +catch {destroy $w} +toplevel $w +wm title $w "Listbox Demonstration (well-known sayings)" +wm iconname $w "sayings" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "The listbox below contains a collection of well-known sayings. You can scan the list using either of the scrollbars or by dragging in the listbox window with button 2 pressed." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth 10 +pack $w.frame -side top -expand yes -fill y + + +scrollbar $w.frame.yscroll -command "$w.frame.list yview" +scrollbar $w.frame.xscroll -orient horizontal \ + -command "$w.frame.list xview" +listbox $w.frame.list -width 20 -height 10 -setgrid 1 \ + -yscroll "$w.frame.yscroll set" -xscroll "$w.frame.xscroll set" + +grid $w.frame.list -row 0 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.yscroll -row 0 -column 1 -rowspan 1 -columnspan 1 -sticky news +grid $w.frame.xscroll -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news +grid rowconfig $w.frame 0 -weight 1 -minsize 0 +grid columnconfig $w.frame 0 -weight 1 -minsize 0 + + +$w.frame.list insert 0 "Waste not, want not" "Early to bed and early to rise makes a man healthy, wealthy, and wise" "Ask not what your country can do for you, ask what you can do for your country" "I shall return" "NOT" "A picture is worth a thousand words" "User interfaces are hard to build" "Thou shalt not steal" "A penny for your thoughts" "Fool me once, shame on you; fool me twice, shame on me" "Every cloud has a silver lining" "Where there's smoke there's fire" "It takes one to know one" "Curiosity killed the cat" "Take this job and shove it" "Up a creek without a paddle" "I'm mad as hell and I'm not going to take it any more" "An apple a day keeps the doctor away" "Don't look a gift horse in the mouth" diff --git a/mingw/lib/tk8.5/demos/search.tcl b/mingw/lib/tk8.5/demos/search.tcl new file mode 100644 index 00000000..3a792c48 --- /dev/null +++ b/mingw/lib/tk8.5/demos/search.tcl @@ -0,0 +1,141 @@ +# search.tcl -- +# +# This demonstration script creates a collection of widgets that +# allow you to load a file into a text widget, then perform searches +# on that file. +# +# RCS: @(#) $Id: search.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +# textLoadFile -- +# This procedure below loads a file into a text widget, discarding +# the previous contents of the widget. Tags for the old widget are +# not affected, however. +# +# Arguments: +# w - The window into which to load the file. Must be a +# text widget. +# file - The name of the file to load. Must be readable. + +proc textLoadFile {w file} { + set f [open $file] + $w delete 1.0 end + while {![eof $f]} { + $w insert end [read $f 10000] + } + close $f +} + +# textSearch -- +# Search for all instances of a given string in a text widget and +# apply a given tag to each instance found. +# +# Arguments: +# w - The window in which to search. Must be a text widget. +# string - The string to search for. The search is done using +# exact matching only; no special characters. +# tag - Tag to apply to each instance of a matching string. + +proc textSearch {w string tag} { + $w tag remove search 0.0 end + if {$string == ""} { + return + } + set cur 1.0 + while 1 { + set cur [$w search -count length $string $cur end] + if {$cur == ""} { + break + } + $w tag add $tag $cur "$cur + $length char" + set cur [$w index "$cur + $length char"] + } +} + +# textToggle -- +# This procedure is invoked repeatedly to invoke two commands at +# periodic intervals. It normally reschedules itself after each +# execution but if an error occurs (e.g. because the window was +# deleted) then it doesn't reschedule itself. +# +# Arguments: +# cmd1 - Command to execute when procedure is called. +# sleep1 - Ms to sleep after executing cmd1 before executing cmd2. +# cmd2 - Command to execute in the *next* invocation of this +# procedure. +# sleep2 - Ms to sleep after executing cmd2 before executing cmd1 again. + +proc textToggle {cmd1 sleep1 cmd2 sleep2} { + catch { + eval $cmd1 + after $sleep1 [list textToggle $cmd2 $sleep2 $cmd1 $sleep1] + } +} + +set w .search +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Search and Highlight" +wm iconname $w "search" +positionWindow $w + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.file +label $w.file.label -text "File name:" -width 13 -anchor w +entry $w.file.entry -width 40 -textvariable fileName +button $w.file.button -text "Load File" \ + -command "textLoadFile $w.text \$fileName" +pack $w.file.label $w.file.entry -side left +pack $w.file.button -side left -pady 5 -padx 10 +bind $w.file.entry " + textLoadFile $w.text \$fileName + focus $w.string.entry +" +focus $w.file.entry + +frame $w.string +label $w.string.label -text "Search string:" -width 13 -anchor w +entry $w.string.entry -width 40 -textvariable searchString +button $w.string.button -text "Highlight" \ + -command "textSearch $w.text \$searchString search" +pack $w.string.label $w.string.entry -side left +pack $w.string.button -side left -pady 5 -padx 10 +bind $w.string.entry "textSearch $w.text \$searchString search" + +text $w.text -yscrollcommand "$w.scroll set" -setgrid true +scrollbar $w.scroll -command "$w.text yview" +pack $w.file $w.string -side top -fill x +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both + +# Set up display styles for text highlighting. + +if {[winfo depth $w] > 1} { + textToggle "$w.text tag configure search -background \ + #ce5555 -foreground white" 800 "$w.text tag configure \ + search -background {} -foreground {}" 200 +} else { + textToggle "$w.text tag configure search -background \ + black -foreground white" 800 "$w.text tag configure \ + search -background {} -foreground {}" 200 +} +$w.text insert 1.0 \ +{This window demonstrates how to use the tagging facilities in text +widgets to implement a searching mechanism. First, type a file name +in the top entry, then type or click on "Load File". Then +type a string in the lower entry and type or click on +"Load File". This will cause all of the instances of the string to +be tagged with the tag "search", and it will arrange for the tag's +display attributes to change to make all of the strings blink.} +$w.text mark set insert 0.0 + +set fileName "" +set searchString "" diff --git a/mingw/lib/tk8.5/demos/spin.tcl b/mingw/lib/tk8.5/demos/spin.tcl new file mode 100644 index 00000000..512515d5 --- /dev/null +++ b/mingw/lib/tk8.5/demos/spin.tcl @@ -0,0 +1,55 @@ +# spin.tcl -- +# +# This demonstration script creates several spinbox widgets. +# +# RCS: @(#) $Id: spin.tcl,v 1.3 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .spin +catch {destroy $w} +toplevel $w +wm title $w "Spinbox Demonstration" +wm iconname $w "spin" +positionWindow $w + +label $w.msg -font $font -wraplength 5i -justify left -text "Three different\ + spin-boxes are displayed below. You can add characters by pointing,\ + clicking and typing. The normal Motif editing characters are\ + supported, along with many Emacs bindings. For example, Backspace\ + and Control-h delete the character to the left of the insertion\ + cursor and Delete and Control-d delete the chararacter to the right\ + of the insertion cursor. For values that are too large to fit in the\ + window all at once, you can scan through the value by dragging with\ + mouse button2 pressed. Note that the first spin-box will only permit\ + you to type in integers, and the third selects from a list of\ + Australian cities." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +set australianCities { + Canberra Sydney Melbourne Perth Adelaide Brisbane + Hobart Darwin "Alice Springs" +} + +spinbox $w.s1 -from 1 -to 10 -width 10 -validate key \ + -vcmd {string is integer %P} +spinbox $w.s2 -from 0 -to 3 -increment .5 -format %05.2f -width 10 +spinbox $w.s3 -values $australianCities -width 10 + +#entry $w.e1 +#entry $w.e2 +#entry $w.e3 +pack $w.s1 $w.s2 $w.s3 -side top -pady 5 -padx 10 ;#-fill x + +#$w.e1 insert 0 "Initial value" +#$w.e2 insert end "This entry contains a long value, much too long " +#$w.e2 insert end "to fit in the window at one time, so long in fact " +#$w.e2 insert end "that you'll have to scan or scroll to see the end." diff --git a/mingw/lib/tk8.5/demos/square b/mingw/lib/tk8.5/demos/square new file mode 100644 index 00000000..743148de --- /dev/null +++ b/mingw/lib/tk8.5/demos/square @@ -0,0 +1,62 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# square -- +# This script generates a demo application containing only a "square" +# widget. It's only usable in the "tktest" application or if Tk has +# been compiled with tkSquare.c. This demo arranges the following +# bindings for the widget: +# +# Button-1 press/drag: moves square to mouse +# "a": toggle size animation on/off +# +# RCS: @(#) $Id: square,v 1.3 2003/09/30 14:54:30 dkf Exp $ + +package require Tk ;# We use Tk generally, and... +package require Tktest ;# ... we use the square widget too. + +square .s +pack .s -expand yes -fill both +wm minsize . 1 1 + +bind .s <1> {center %x %y} +bind .s {center %x %y} +bind .s a animate +focus .s + +# The procedure below centers the square on a given position. + +proc center {x y} { + set a [.s size] + .s position [expr $x-($a/2)] [expr $y-($a/2)] +} + +# The procedures below provide a simple form of animation where +# the box changes size in a pulsing pattern: larger, smaller, larger, +# and so on. + +set inc 0 +proc animate {} { + global inc + if {$inc == 0} { + set inc 3 + timer + } else { + set inc 0 + } +} + +proc timer {} { + global inc + set s [.s size] + if {$inc == 0} return + if {$s >= 40} {set inc -3} + if {$s <= 10} {set inc 3} + .s size [expr {$s+$inc}] + after 30 timer +} + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/states.tcl b/mingw/lib/tk8.5/demos/states.tcl new file mode 100644 index 00000000..443fea51 --- /dev/null +++ b/mingw/lib/tk8.5/demos/states.tcl @@ -0,0 +1,45 @@ +# states.tcl -- +# +# This demonstration script creates a listbox widget that displays +# the names of the 50 states in the United States of America. +# +# RCS: @(#) $Id: states.tcl,v 1.4 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .states +catch {destroy $w} +toplevel $w +wm title $w "Listbox Demonstration (50 states)" +wm iconname $w "states" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing the 50 states is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by scanning. To scan, press button 2 in the widget and drag up or down." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth .5c +pack $w.frame -side top -expand yes -fill y + +scrollbar $w.frame.scroll -command "$w.frame.list yview" +listbox $w.frame.list -yscroll "$w.frame.scroll set" -setgrid 1 -height 12 +pack $w.frame.scroll -side right -fill y +pack $w.frame.list -side left -expand 1 -fill both + +$w.frame.list insert 0 Alabama Alaska Arizona Arkansas California \ + Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois \ + Indiana Iowa Kansas Kentucky Louisiana Maine Maryland \ + Massachusetts Michigan Minnesota Mississippi Missouri \ + Montana Nebraska Nevada "New Hampshire" "New Jersey" "New Mexico" \ + "New York" "North Carolina" "North Dakota" \ + Ohio Oklahoma Oregon Pennsylvania "Rhode Island" \ + "South Carolina" "South Dakota" \ + Tennessee Texas Utah Vermont Virginia Washington \ + "West Virginia" Wisconsin Wyoming diff --git a/mingw/lib/tk8.5/demos/style.tcl b/mingw/lib/tk8.5/demos/style.tcl new file mode 100644 index 00000000..41c58d71 --- /dev/null +++ b/mingw/lib/tk8.5/demos/style.tcl @@ -0,0 +1,157 @@ +# style.tcl -- +# +# This demonstration script creates a text widget that illustrates the +# various display styles that may be set for tags. +# +# RCS: @(#) $Id: style.tcl,v 1.5 2007/10/15 21:06:17 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .style +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Display Styles" +wm iconname $w "style" +positionWindow $w + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +# Only set the font family in one place for simplicity and consistency + +set family Courier + +text $w.text -yscrollcommand "$w.scroll set" -setgrid true \ + -width 70 -height 32 -wrap word -font "$family 12" +scrollbar $w.scroll -command "$w.text yview" +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both + +# Set up display styles + +$w.text tag configure bold -font "$family 12 bold italic" +$w.text tag configure big -font "$family 14 bold" +$w.text tag configure verybig -font "Helvetica 24 bold" +$w.text tag configure tiny -font "Times 8 bold" +if {[winfo depth $w] > 1} { + $w.text tag configure color1 -background #a0b7ce + $w.text tag configure color2 -foreground red + $w.text tag configure raised -relief raised -borderwidth 1 + $w.text tag configure sunken -relief sunken -borderwidth 1 +} else { + $w.text tag configure color1 -background black -foreground white + $w.text tag configure color2 -background black -foreground white + $w.text tag configure raised -background white -relief raised \ + -borderwidth 1 + $w.text tag configure sunken -background white -relief sunken \ + -borderwidth 1 +} +$w.text tag configure bgstipple -background black -borderwidth 0 \ + -bgstipple gray12 +$w.text tag configure fgstipple -fgstipple gray50 +$w.text tag configure underline -underline on +$w.text tag configure overstrike -overstrike on +$w.text tag configure right -justify right +$w.text tag configure center -justify center +$w.text tag configure super -offset 4p -font "$family 10" +$w.text tag configure sub -offset -2p -font "$family 10" +$w.text tag configure margins -lmargin1 12m -lmargin2 6m -rmargin 10m +$w.text tag configure spacing -spacing1 10p -spacing2 2p \ + -lmargin1 12m -lmargin2 6m -rmargin 10m + +$w.text insert end {Text widgets like this one allow you to display information in a +variety of styles. Display styles are controlled using a mechanism +called } +$w.text insert end tags bold +$w.text insert end {. Tags are just textual names that you can apply to one +or more ranges of characters within a text widget. You can configure +tags with various display styles. If you do this, then the tagged +characters will be displayed with the styles you chose. The +available display styles are: +} +$w.text insert end "\n1. Font." big +$w.text insert end " You can choose any system font, " +$w.text insert end large verybig +$w.text insert end " or " +$w.text insert end "small" tiny ".\n" +$w.text insert end "\n2. Color." big +$w.text insert end " You can change either the " +$w.text insert end background color1 +$w.text insert end " or " +$w.text insert end foreground color2 +$w.text insert end "\ncolor, or " +$w.text insert end both {color1 color2} +$w.text insert end ".\n" +$w.text insert end "\n3. Stippling." big +$w.text insert end " You can cause either the " +$w.text insert end background bgstipple +$w.text insert end " or " +$w.text insert end foreground fgstipple +$w.text insert end { +information to be drawn with a stipple fill instead of a solid fill. +} +$w.text insert end "\n4. Underlining." big +$w.text insert end " You can " +$w.text insert end underline underline +$w.text insert end " ranges of text.\n" +$w.text insert end "\n5. Overstrikes." big +$w.text insert end " You can " +$w.text insert end "draw lines through" overstrike +$w.text insert end " ranges of text.\n" +$w.text insert end "\n6. 3-D effects." big +$w.text insert end { You can arrange for the background to be drawn +with a border that makes characters appear either } +$w.text insert end raised raised +$w.text insert end " or " +$w.text insert end sunken sunken +$w.text insert end ".\n" +$w.text insert end "\n7. Justification." big +$w.text insert end " You can arrange for lines to be displayed\n" +$w.text insert end "left-justified,\n" +$w.text insert end "right-justified, or\n" right +$w.text insert end "centered.\n" center +$w.text insert end "\n8. Superscripts and subscripts." big +$w.text insert end " You can control the vertical\n" +$w.text insert end "position of text to generate superscript effects like 10" +$w.text insert end "n" super +$w.text insert end " or\nsubscript effects like X" +$w.text insert end "i" sub +$w.text insert end ".\n" +$w.text insert end "\n9. Margins." big +$w.text insert end " You can control the amount of extra space left" +$w.text insert end " on\neach side of the text:\n" +$w.text insert end "This paragraph is an example of the use of " margins +$w.text insert end "margins. It consists of a single line of text " margins +$w.text insert end "that wraps around on the screen. There are two " margins +$w.text insert end "separate left margin values, one for the first " margins +$w.text insert end "display line associated with the text line, " margins +$w.text insert end "and one for the subsequent display lines, which " margins +$w.text insert end "occur because of wrapping. There is also a " margins +$w.text insert end "separate specification for the right margin, " margins +$w.text insert end "which is used to choose wrap points for lines.\n" margins +$w.text insert end "\n10. Spacing." big +$w.text insert end " You can control the spacing of lines with three\n" +$w.text insert end "separate parameters. \"Spacing1\" tells how much " +$w.text insert end "extra space to leave\nabove a line, \"spacing3\" " +$w.text insert end "tells how much space to leave below a line,\nand " +$w.text insert end "if a text line wraps, \"spacing2\" tells how much " +$w.text insert end "space to leave\nbetween the display lines that " +$w.text insert end "make up the text line.\n" +$w.text insert end "These indented paragraphs illustrate how spacing " spacing +$w.text insert end "can be used. Each paragraph is actually a " spacing +$w.text insert end "single line in the text widget, which is " spacing +$w.text insert end "word-wrapped by the widget.\n" spacing +$w.text insert end "Spacing1 is set to 10 points for this text, " spacing +$w.text insert end "which results in relatively large gaps between " spacing +$w.text insert end "the paragraphs. Spacing2 is set to 2 points, " spacing +$w.text insert end "which results in just a bit of extra space " spacing +$w.text insert end "within a pararaph. Spacing3 isn't used " spacing +$w.text insert end "in this example.\n" spacing +$w.text insert end "To see where the space is, select ranges of " spacing +$w.text insert end "text within these paragraphs. The selection " spacing +$w.text insert end "highlight will cover the extra space." spacing diff --git a/mingw/lib/tk8.4/demos/tclIndex b/mingw/lib/tk8.5/demos/tclIndex similarity index 100% rename from mingw/lib/tk8.4/demos/tclIndex rename to mingw/lib/tk8.5/demos/tclIndex diff --git a/mingw/lib/tk8.5/demos/tcolor b/mingw/lib/tk8.5/demos/tcolor new file mode 100644 index 00000000..c94d459c --- /dev/null +++ b/mingw/lib/tk8.5/demos/tcolor @@ -0,0 +1,367 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# tcolor -- +# This script implements a simple color editor, where you can +# create colors using either the RGB, HSB, or CYM color spaces +# and apply the color to existing applications. +# +# RCS: @(#) $Id: tcolor,v 1.4 2003/09/30 14:54:30 dkf Exp $ + +package require Tk 8.4 +wm title . "Color Editor" + +# Global variables that control the program: +# +# colorSpace - Color space currently being used for +# editing. Must be "rgb", "cmy", or "hsb". +# label1, label2, label3 - Labels for the scales. +# red, green, blue - Current color intensities in decimal +# on a scale of 0-65535. +# color - A string giving the current color value +# in the proper form for x: +# #RRRRGGGGBBBB +# updating - Non-zero means that we're in the middle of +# updating the scales to load a new color,so +# information shouldn't be propagating back +# from the scales to other elements of the +# program: this would make an infinite loop. +# command - Holds the command that has been typed +# into the "Command" entry. +# autoUpdate - 1 means execute the update command +# automatically whenever the color changes. +# name - Name for new color, typed into entry. + +set colorSpace hsb +set red 65535 +set green 0 +set blue 0 +set color #ffff00000000 +set updating 0 +set autoUpdate 1 +set name "" + +if {$tcl_platform(platform) eq "unix"} { + option add *Entry.background white +} + +# Create the menu bar at the top of the window. + +. configure -menu [menu .menu] +menu .menu.file +.menu add cascade -menu .menu.file -label File -underline 0 +.menu.file add radio -label "RGB color space" -variable colorSpace \ + -value rgb -underline 0 -command {changeColorSpace rgb} +.menu.file add radio -label "CMY color space" -variable colorSpace \ + -value cmy -underline 0 -command {changeColorSpace cmy} +.menu.file add radio -label "HSB color space" -variable colorSpace \ + -value hsb -underline 0 -command {changeColorSpace hsb} +.menu.file add separator +.menu.file add radio -label "Automatic updates" -variable autoUpdate \ + -value 1 -underline 0 +.menu.file add radio -label "Manual updates" -variable autoUpdate \ + -value 0 -underline 0 +.menu.file add separator +.menu.file add command -label "Exit program" -underline 0 -command {exit} + +# Create the command entry window at the bottom of the window, along +# with the update button. + +labelframe .command -text "Command:" -padx {1m 0} +entry .command.e -relief sunken -borderwidth 2 -textvariable command \ + -font {Courier 12} +button .command.update -text Update -command doUpdate +pack .command.update -side right -pady .1c -padx {.25c 0} +pack .command.e -expand yes -fill x -ipadx 0.25c + + +# Create the listbox that holds all of the color names in rgb.txt, +# if an rgb.txt file can be found. + +grid .command -sticky nsew -row 2 -columnspan 3 -padx 1m -pady {0 1m} + +grid columnconfigure . {1 2} -weight 1 +grid rowconfigure . 0 -weight 1 +foreach i { + /usr/local/lib/X11/rgb.txt /usr/lib/X11/rgb.txt + /X11/R5/lib/X11/rgb.txt /X11/R4/lib/rgb/rgb.txt + /usr/openwin/lib/X11/rgb.txt +} { + if {![file readable $i]} { + continue; + } + set f [open $i] + labelframe .names -text "Select:" -padx .1c -pady .1c + grid .names -row 0 -column 0 -sticky nsew -padx .15c -pady .15c -rowspan 2 + grid columnconfigure . 0 -weight 1 + listbox .names.lb -width 20 -height 12 -yscrollcommand ".names.s set" \ + -relief sunken -borderwidth 2 -exportselection false + bind .names.lb { + tc_loadNamedColor [.names.lb get [.names.lb curselection]] + } + scrollbar .names.s -orient vertical -command ".names.lb yview" \ + -relief sunken -borderwidth 2 + pack .names.lb .names.s -side left -fill y -expand 1 + while {[gets $f line] >= 0} { + if {[regexp {^\s*\d+\s+\d+\s+\d+\s+(\S+)$} $line -> col]} { + .names.lb insert end $col + } + } + close $f + break +} + +# Create the three scales for editing the color, and the entry for +# typing in a color value. + +frame .adjust +foreach i {1 2 3} { + label .adjust.l$i -textvariable label$i -pady 0 + labelframe .adjust.$i -labelwidget .adjust.l$i -padx 1m -pady 1m + scale .scale$i -from 0 -to 1000 -length 6c -orient horizontal \ + -command tc_scaleChanged + pack .scale$i -in .adjust.$i + pack .adjust.$i +} +grid .adjust -row 0 -column 1 -sticky nsew -padx .15c -pady .15c + +labelframe .name -text "Name:" -padx 1m -pady 1m +entry .name.e -relief sunken -borderwidth 2 -textvariable name -width 10 \ + -font {Courier 12} +pack .name.e -side right -expand 1 -fill x +bind .name.e {tc_loadNamedColor $name} +grid .name -column 1 -row 1 -sticky nsew -padx .15c -pady .15c + +# Create the color display swatch on the right side of the window. + +labelframe .sample -text "Color:" -padx 1m -pady 1m +frame .sample.swatch -width 2c -height 5c -background $color +label .sample.value -textvariable color -width 13 -font {Courier 12} +pack .sample.swatch -side top -expand yes -fill both +pack .sample.value -side bottom -pady .25c +grid .sample -row 0 -column 2 -sticky nsew -padx .15c -pady .15c -rowspan 2 + + +# The procedure below is invoked when one of the scales is adjusted. +# It propagates color information from the current scale readings +# to everywhere else that it is used. + +proc tc_scaleChanged args { + global red green blue colorSpace color updating autoUpdate + if {$updating} { + return + } + switch $colorSpace { + rgb { + set red [format %.0f [expr {[.scale1 get]*65.535}]] + set green [format %.0f [expr {[.scale2 get]*65.535}]] + set blue [format %.0f [expr {[.scale3 get]*65.535}]] + } + cmy { + set red [format %.0f [expr {65535 - [.scale1 get]*65.535}]] + set green [format %.0f [expr {65535 - [.scale2 get]*65.535}]] + set blue [format %.0f [expr {65535 - [.scale3 get]*65.535}]] + } + hsb { + set list [hsbToRgb [expr {[.scale1 get]/1000.0}] \ + [expr {[.scale2 get]/1000.0}] \ + [expr {[.scale3 get]/1000.0}]] + set red [lindex $list 0] + set green [lindex $list 1] + set blue [lindex $list 2] + } + } + set color [format "#%04x%04x%04x" $red $green $blue] + .sample.swatch config -bg $color + if {$autoUpdate} doUpdate + update idletasks +} + +# The procedure below is invoked to update the scales from the +# current red, green, and blue intensities. It's invoked after +# a change in the color space and after a named color value has +# been loaded. + +proc tc_setScales {} { + global red green blue colorSpace updating + set updating 1 + switch $colorSpace { + rgb { + .scale1 set [format %.0f [expr {$red/65.535}]] + .scale2 set [format %.0f [expr {$green/65.535}]] + .scale3 set [format %.0f [expr {$blue/65.535}]] + } + cmy { + .scale1 set [format %.0f [expr {(65535-$red)/65.535}]] + .scale2 set [format %.0f [expr {(65535-$green)/65.535}]] + .scale3 set [format %.0f [expr {(65535-$blue)/65.535}]] + } + hsb { + set list [rgbToHsv $red $green $blue] + .scale1 set [format %.0f [expr {[lindex $list 0] * 1000.0}]] + .scale2 set [format %.0f [expr {[lindex $list 1] * 1000.0}]] + .scale3 set [format %.0f [expr {[lindex $list 2] * 1000.0}]] + } + } + set updating 0 +} + +# The procedure below is invoked when a named color has been +# selected from the listbox or typed into the entry. It loads +# the color into the editor. + +proc tc_loadNamedColor name { + global red green blue color autoUpdate + + if {[string index $name 0] != "#"} { + set list [winfo rgb .sample.swatch $name] + set red [lindex $list 0] + set green [lindex $list 1] + set blue [lindex $list 2] + } else { + switch [string length $name] { + 4 {set format "#%1x%1x%1x"; set shift 12} + 7 {set format "#%2x%2x%2x"; set shift 8} + 10 {set format "#%3x%3x%3x"; set shift 4} + 13 {set format "#%4x%4x%4x"; set shift 0} + default {error "syntax error in color name \"$name\""} + } + if {[scan $name $format red green blue] != 3} { + error "syntax error in color name \"$name\"" + } + set red [expr {$red<<$shift}] + set green [expr {$green<<$shift}] + set blue [expr {$blue<<$shift}] + } + tc_setScales + set color [format "#%04x%04x%04x" $red $green $blue] + .sample.swatch config -bg $color + if {$autoUpdate} doUpdate +} + +# The procedure below is invoked when a new color space is selected. +# It changes the labels on the scales and re-loads the scales with +# the appropriate values for the current color in the new color space + +proc changeColorSpace space { + global label1 label2 label3 + switch $space { + rgb { + set label1 "Adjust Red:" + set label2 "Adjust Green:" + set label3 "Adjust Blue:" + tc_setScales + return + } + cmy { + set label1 "Adjust Cyan:" + set label2 "Adjust Magenta:" + set label3 "Adjust Yellow:" + tc_setScales + return + } + hsb { + set label1 "Adjust Hue:" + set label2 "Adjust Saturation:" + set label3 "Adjust Brightness:" + tc_setScales + return + } + } +} + +# The procedure below converts an RGB value to HSB. It takes red, green, +# and blue components (0-65535) as arguments, and returns a list containing +# HSB components (floating-point, 0-1) as result. The code here is a copy +# of the code on page 615 of "Fundamentals of Interactive Computer Graphics" +# by Foley and Van Dam. + +proc rgbToHsv {red green blue} { + if {$red > $green} { + set max [expr {double($red)}] + set min [expr {double($green)}] + } else { + set max [expr {double($green)}] + set min [expr {double($red)}] + } + if {$blue > $max} { + set max [expr {double($blue)}] + } elseif {$blue < $min} { + set min [expr {double($blue)}] + } + set range [expr {$max-$min}] + if {$max == 0} { + set sat 0 + } else { + set sat [expr {($max-$min)/$max}] + } + if {$sat == 0} { + set hue 0 + } else { + set rc [expr {($max - $red)/$range}] + set gc [expr {($max - $green)/$range}] + set bc [expr {($max - $blue)/$range}] + if {$red == $max} { + set hue [expr {($bc - $gc)/6.0}] + } elseif {$green == $max} { + set hue [expr {(2 + $rc - $bc)/6.0}] + } else { + set hue [expr {(4 + $gc - $rc)/6.0}] + } + if {$hue < 0.0} { + set hue [expr {$hue + 1.0}] + } + } + return [list $hue $sat [expr {$max/65535}]] +} + +# The procedure below converts an HSB value to RGB. It takes hue, saturation, +# and value components (floating-point, 0-1.0) as arguments, and returns a +# list containing RGB components (integers, 0-65535) as result. The code +# here is a copy of the code on page 616 of "Fundamentals of Interactive +# Computer Graphics" by Foley and Van Dam. + +proc hsbToRgb {hue sat value} { + set v [format %.0f [expr {65535.0*$value}]] + if {$sat == 0} { + return "$v $v $v" + } else { + set hue [expr {$hue*6.0}] + if {$hue >= 6.0} { + set hue 0.0 + } + scan $hue. %d i + set f [expr {$hue-$i}] + set p [format %.0f [expr {65535.0*$value*(1 - $sat)}]] + set q [format %.0f [expr {65535.0*$value*(1 - ($sat*$f))}]] + set t [format %.0f [expr {65535.0*$value*(1 - ($sat*(1 - $f)))}]] + switch $i { + 0 {return "$v $t $p"} + 1 {return "$q $v $p"} + 2 {return "$p $v $t"} + 3 {return "$p $q $v"} + 4 {return "$t $p $v"} + 5 {return "$v $p $q"} + default {error "i value $i is out of range"} + } + } +} + +# The procedure below is invoked when the "Update" button is pressed, +# and whenever the color changes if update mode is enabled. It +# propagates color information as determined by the command in the +# Command entry. + +proc doUpdate {} { + global color command + set newCmd $command + regsub -all %% $command $color newCmd + eval $newCmd +} + +changeColorSpace hsb + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/text.tcl b/mingw/lib/tk8.5/demos/text.tcl new file mode 100644 index 00000000..4bb11557 --- /dev/null +++ b/mingw/lib/tk8.5/demos/text.tcl @@ -0,0 +1,88 @@ +# text.tcl -- +# +# This demonstration script creates a text widget that describes +# the basic editing functions. +# +# RCS: @(#) $Id: text.tcl,v 1.6 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .text +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Basic Facilities" +wm iconname $w "text" +positionWindow $w + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +text $w.text -relief sunken -bd 2 -yscrollcommand "$w.scroll set" -setgrid 1 \ + -height 30 -undo 1 -autosep 1 +scrollbar $w.scroll -command "$w.text yview" +pack $w.scroll -side right -fill y +pack $w.text -expand yes -fill both +$w.text insert 0.0 \ +{This window is a text widget. It displays one or more lines of text +and allows you to edit the text. Here is a summary of the things you +can do to a text widget: + +1. Scrolling. Use the scrollbar to adjust the view in the text window. + +2. Scanning. Press mouse button 2 in the text window and drag up or down. +This will drag the text at high speed to allow you to scan its contents. + +3. Insert text. Press mouse button 1 to set the insertion cursor, then +type text. What you type will be added to the widget. + +4. Select. Press mouse button 1 and drag to select a range of characters. +Once you've released the button, you can adjust the selection by pressing +button 1 with the shift key down. This will reset the end of the +selection nearest the mouse cursor and you can drag that end of the +selection by dragging the mouse before releasing the mouse button. +You can double-click to select whole words or triple-click to select +whole lines. + +5. Delete and replace. To delete text, select the characters you'd like +to delete and type Backspace or Delete. Alternatively, you can type new +text, in which case it will replace the selected text. + +6. Copy the selection. To copy the selection into this window, select +what you want to copy (either here or in another application), then +click button 2 to copy the selection to the point of the mouse cursor. + +7. Edit. Text widgets support the standard Motif editing characters +plus many Emacs editing characters. Backspace and Control-h erase the +character to the left of the insertion cursor. Delete and Control-d +erase the character to the right of the insertion cursor. Meta-backspace +deletes the word to the left of the insertion cursor, and Meta-d deletes +the word to the right of the insertion cursor. Control-k deletes from +the insertion cursor to the end of the line, or it deletes the newline +character if that is the only thing left on the line. Control-o opens +a new line by inserting a newline character to the right of the insertion +cursor. Control-t transposes the two characters on either side of the +insertion cursor. Control-z undoes the last editing action performed, +and } + +switch $tcl_platform(platform) { + "unix" { + $w.text insert end "Control-Shift-z" + } + "windows" { + $w.text insert end "Control-y" + } +} + +$w.text insert end { redoes undone edits. + +7. Resize the window. This widget has been configured with the "setGrid" +option on, so that if you resize the window it will always resize to an +even number of characters high and wide. Also, if you make the window +narrow you can see that long lines automatically wrap around onto +additional lines so that all the information is always visible.} +$w.text mark set insert 0.0 diff --git a/mingw/lib/tk8.5/demos/textpeer.tcl b/mingw/lib/tk8.5/demos/textpeer.tcl new file mode 100644 index 00000000..0dd23f3c --- /dev/null +++ b/mingw/lib/tk8.5/demos/textpeer.tcl @@ -0,0 +1,60 @@ +# textpeer.tcl -- +# +# This demonstration script creates a pair of text widgets that can edit a +# single logical buffer. This is particularly useful when editing related text +# in two (or more) parts of the same file. +# +# RCS: @(#) $Id: textpeer.tcl,v 1.1 2007/10/15 21:06:17 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .textpeer +catch {destroy $w} +toplevel $w +wm title $w "Text Widget Peering Demonstration" +wm iconname $w "textpeer" +positionWindow $w + +set count 0 + +set first [text $w.text[incr count]] +$first insert end "This is a coupled pair of text widgets; they are peers to " +$first insert end "each other. They have the same underlying data model, but " +$first insert end "can show different locations, have different current edit " +$first insert end "locations, and have different selections. You can also " +$first insert end "create additional peers of any of these text widgets using " +$first insert end "the Make Peer button beside the text widget to clone, and " +$first insert end "delete a particular peer widget using the Delete Peer " +$first insert end "button." +grid $first + +proc makeClone {w parent} { + global count + set t [$parent peer create $w.text[incr count] -yscroll "$w.sb$count set"\ + -height 10 -wrap word] + set sb [scrollbar $w.sb$count -command "$t yview" -orient vertical] + set b1 [button $w.clone$count -command "makeClone $w $t" \ + -text "Make Peer"] + set b2 [button $w.kill$count -command "killClone $w $count" \ + -text "Delete Peer"] + set row [expr {$count * 2}] + grid $t $sb $b1 -sticky nsew -row $row + grid ^ ^ $b2 -row [incr row] + grid configure $b1 $b2 -sticky new + grid rowconfigure $w $b2 -weight 1 +} +proc killClone {w count} { + destroy $w.text$count $w.sb$count + destroy $w.clone$count $w.kill$count +} + +makeClone $w $first +makeClone $w $first +destroy $first + +## See Code / Dismiss buttons +grid [addSeeDismiss $w.buttons $w] - - -sticky ew -row 5000 diff --git a/mingw/lib/tk8.5/demos/timer b/mingw/lib/tk8.5/demos/timer new file mode 100644 index 00000000..99e6f4c7 --- /dev/null +++ b/mingw/lib/tk8.5/demos/timer @@ -0,0 +1,50 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# timer -- +# This script generates a counter with start and stop buttons. +# +# RCS: @(#) $Id: timer,v 1.4 2003/09/30 14:54:30 dkf Exp $ + +package require Tcl 8.4 +package require Tk + +label .counter -text 0.00 -relief raised -width 10 -padx 2m -pady 1m +button .start -text Start -command { + if {$stopped} { + set stopped 0 + set startMoment [clock clicks -milliseconds] + tick + .stop configure -state normal + .start configure -state disabled + } +} +button .stop -text Stop -state disabled -command { + set stopped 1 + .stop configure -state disabled + .start configure -state normal +} +pack .counter -side bottom -fill both +pack .start -side left -fill both -expand yes +pack .stop -side right -fill both -expand yes + +set startMoment {} + +set stopped 1 + +proc tick {} { + global startMoment stopped + if {$stopped} {return} + after 50 tick + set elapsedMS [expr {[clock clicks -milliseconds] - $startMoment}] + .counter config -text [format "%.2f" [expr {double($elapsedMS)/1000}]] +} + +bind . {destroy .} +bind . {destroy .} +focus . + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/demos/toolbar.tcl b/mingw/lib/tk8.5/demos/toolbar.tcl new file mode 100644 index 00000000..073d5382 --- /dev/null +++ b/mingw/lib/tk8.5/demos/toolbar.tcl @@ -0,0 +1,106 @@ +# toolbar.tcl -- +# +# This demonstration script creates a toolbar that can be torn off. +# +# RCS: @(#) $Id: toolbar.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .toolbar +destroy $w +toplevel $w +wm title $w "Toolbar Demonstration" +wm iconname $w "toolbar" +positionWindow $w + +if {[tk windowingsystem] ne "aqua"} { + ttk::label $w.msg -wraplength 4i -text "This is a demonstration of how to do\ + a toolbar that is styled correctly and which can be torn off. The\ + buttons are configured to be \u201Ctoolbar style\u201D buttons by\ + telling them that they are to use the Toolbutton style. At the left\ + end of the toolbar is a simple marker that the cursor changes to a\ + movement icon over; drag that away from the toolbar to tear off the\ + whole toolbar into a separate toplevel widget. When the dragged-off\ + toolbar is no longer needed, just close it like any normal toplevel\ + and it will reattach to the window it was torn off from." +} else { +ttk::label $w.msg -wraplength 4i -text "This is a demonstration of how to do\ + a toolbar that is styled correctly. The buttons are configured to\ + be \u201Ctoolbar style\u201D buttons by telling them that they are\ + to use the Toolbutton style." +} + +## Set up the toolbar hull +set t [frame $w.toolbar] ;# Must be a frame! +ttk::separator $w.sep +ttk::frame $t.tearoff -cursor fleur +if {[tk windowingsystem] ne "aqua"} { + ttk::separator $t.tearoff.to -orient vertical + ttk::separator $t.tearoff.to2 -orient vertical + pack $t.tearoff.to -fill y -expand 1 -padx 2 -side left + pack $t.tearoff.to2 -fill y -expand 1 -side left +} +ttk::frame $t.contents +grid $t.tearoff $t.contents -sticky nsew +grid columnconfigure $t $t.contents -weight 1 +grid columnconfigure $t.contents 1000 -weight 1 + +if {[tk windowingsystem] ne "aqua"} { + ## Bindings so that the toolbar can be torn off and reattached + bind $t.tearoff [list tearoff $t %X %Y] + bind $t.tearoff.to [list tearoff $t %X %Y] + bind $t.tearoff.to2 [list tearoff $t %X %Y] + proc tearoff {w x y} { + if {[string match $w* [winfo containing $x $y]]} { + return + } + grid remove $w + grid remove $w.tearoff + wm manage $w + wm protocol $w WM_DELETE_WINDOW [list untearoff $w] + } + proc untearoff {w} { + wm forget $w + grid $w.tearoff + grid $w + } +} + +## Toolbar contents +ttk::button $t.button -text "Button" -style Toolbutton -command [list \ + $w.txt insert end "Button Pressed\n"] +ttk::checkbutton $t.check -text "Check" -variable check -style Toolbutton \ + -command [concat [list $w.txt insert end] {"check is $check\n"}] +ttk::menubutton $t.menu -text "Menu" -menu $t.menu.m +ttk::combobox $t.combo -value [lsort [font families]] -state readonly +menu $t.menu.m +$t.menu.m add command -label "Just" -command [list $w.txt insert end Just\n] +$t.menu.m add command -label "An" -command [list $w.txt insert end An\n] +$t.menu.m add command -label "Example" \ + -command [list $w.txt insert end Example\n] +bind $t.combo <> [list changeFont $w.txt $t.combo] +proc changeFont {txt combo} { + $txt configure -font [list [$combo get] 10] +} + +## Some content for the rest of the toplevel +text $w.txt -width 40 -height 10 +interp alias {} doInsert {} $w.txt insert end ;# Make bindings easy to write + +## Arrange contents +grid $t.button $t.check $t.menu $t.combo -in $t.contents -padx 2 -sticky ns +grid $t -sticky ew +grid $w.sep -sticky ew +grid $w.msg -sticky ew +grid $w.txt -sticky nsew +grid rowconfigure $w $w.txt -weight 1 +grid columnconfigure $w $w.txt -weight 1 + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +grid $btns -sticky ew diff --git a/mingw/lib/tk8.5/demos/tree.tcl b/mingw/lib/tk8.5/demos/tree.tcl new file mode 100644 index 00000000..80f9612b --- /dev/null +++ b/mingw/lib/tk8.5/demos/tree.tcl @@ -0,0 +1,96 @@ +# tree.tcl -- +# +# This demonstration script creates a toplevel window containing a Ttk +# tree widget. +# +# RCS: @(#) $Id: tree.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .tree +catch {destroy $w} +toplevel $w +wm title $w "Directory Browser" +wm iconname $w "tree" +positionWindow $w + +## Explanatory text +ttk::label $w.msg -font $font -wraplength 4i -justify left -anchor n -text "Ttk is the new Tk themed widget set. One of the widgets it includes is a tree widget, which allows the user to browse a hierarchical data-set such as a filesystem. The tree widget not only allows for the tree part itself, but it also supports an arbitrary number of additional columns which can show additional data (in this case, the size of the files found in your filesystem). You can also change the width of the columns by dragging the boundary between them." +pack $w.msg -fill x + +## See Code / Dismiss +pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x + +## Code to populate the roots of the tree (can be more than one on Windows) +proc populateRoots {tree} { + foreach dir [lsort -dictionary [file volumes]] { + populateTree $tree [$tree insert {} end -text $dir \ + -values [list $dir directory]] + } +} + +## Code to populate a node of the tree +proc populateTree {tree node} { + if {[$tree set $node type] ne "directory"} { + return + } + set path [$tree set $node fullpath] + $tree delete [$tree children $node] + foreach f [lsort -dictionary [glob -nocomplain -dir $path *]] { + set type [file type $f] + set id [$tree insert $node end -text [file tail $f] \ + -values [list $f $type]] + + if {$type eq "directory"} { + ## Make it so that this node is openable + $tree insert $id 0 -text dummy ;# a dummy + $tree item $id -text [file tail $f]/ + + } elseif {$type eq "file"} { + set size [file size $f] + ## Format the file size nicely + if {$size >= 1024*1024*1024} { + set size [format %.1f\ GB [expr {$size/1024/1024/1024.}]] + } elseif {$size >= 1024*1024} { + set size [format %.1f\ MB [expr {$size/1024/1024.}]] + } elseif {$size >= 1024} { + set size [format %.1f\ kB [expr {$size/1024.}]] + } else { + append size " bytes" + } + $tree set $id size $size + } + } + + # Stop this code from rerunning on the current node + $tree set $node type processedDirectory +} + +## Create the tree and set it up +ttk::treeview $w.tree -columns {fullpath type size} -displaycolumns {size} \ + -yscroll "$w.vsb set" -xscroll "$w.hsb set" +if {[tk windowingsystem] ne "aqua"} { + ttk::scrollbar $w.vsb -orient vertical -command "$w.tree yview" + ttk::scrollbar $w.hsb -orient horizontal -command "$w.tree xview" +} else { + scrollbar $w.vsb -orient vertical -command "$w.tree yview" + scrollbar $w.hsb -orient horizontal -command "$w.tree xview" +} +$w.tree heading \#0 -text "Directory Structure" +$w.tree heading size -text "File Size" +$w.tree column size -stretch 0 -width 70 +populateRoots $w.tree +bind $w.tree <> {populateTree %W [%W focus]} + +## Arrange the tree and its scrollbars in the toplevel +lower [ttk::frame $w.dummy] +pack $w.dummy -fill both -expand 1 +grid $w.tree $w.vsb -sticky nsew -in $w.dummy +grid $w.hsb -sticky nsew -in $w.dummy +grid columnconfigure $w.dummy 0 -weight 1 +grid rowconfigure $w.dummy 0 -weight 1 diff --git a/mingw/lib/tk8.5/demos/ttkbut.tcl b/mingw/lib/tk8.5/demos/ttkbut.tcl new file mode 100644 index 00000000..1d058eb9 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ttkbut.tcl @@ -0,0 +1,87 @@ +# ttkbut.tcl -- +# +# This demonstration script creates a toplevel window containing several +# simple Ttk widgets, such as labels, labelframes, buttons, checkbuttons and +# radiobuttons. +# +# RCS: @(#) $Id: ttkbut.tcl,v 1.3 2007/10/22 14:21:10 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .ttkbut +catch {destroy $w} +toplevel $w +wm title $w "Simple Ttk Widgets" +wm iconname $w "ttkbut" +positionWindow $w + +ttk::label $w.msg -font $font -wraplength 4i -justify left -text "Ttk is the new Tk themed widget set. This is a Ttk themed label, and below are three groups of Ttk widgets in Ttk labelframes. The first group are all buttons that set the current application theme when pressed. The second group contains three sets of checkbuttons, with a separator widget between the sets. Note that the \u201cEnabled\u201d button controls whether all the other themed widgets in this toplevel are in the disabled state. The third group has a collection of linked radiobuttons." +pack $w.msg -side top -fill x + +## See Code / Dismiss +pack [addSeeDismiss $w.seeDismiss $w {enabled cheese tomato basil oregano happyness}]\ + -side bottom -fill x + +## Add buttons for setting the theme +ttk::labelframe $w.buttons -text "Buttons" +foreach theme [ttk::themes] { + ttk::button $w.buttons.$theme -text $theme \ + -command [list ttk::setTheme $theme] + pack $w.buttons.$theme -pady 2 +} + +## Helper procedure for the top checkbutton +proc setState {rootWidget exceptThese value} { + if {$rootWidget in $exceptThese} { + return + } + ## Non-Ttk widgets (e.g. the toplevel) will fail, so make it silent + catch { + $rootWidget state $value + } + ## Recursively invoke on all children of this root that are in the same + ## toplevel widget + foreach w [winfo children $rootWidget] { + if {[winfo toplevel $w] eq [winfo toplevel $rootWidget]} { + setState $w $exceptThese $value + } + } +} + +## Set up the checkbutton group +ttk::labelframe $w.checks -text "Checkbuttons" +ttk::checkbutton $w.checks.e -text Enabled -variable enabled -command { + setState .ttkbut .ttkbut.checks.e \ + [expr {$enabled ? "!disabled" : "disabled"}] +} +set enabled 1 +## See ttk_widget(n) for other possible state flags +ttk::separator $w.checks.sep1 +ttk::checkbutton $w.checks.c1 -text Cheese -variable cheese +ttk::checkbutton $w.checks.c2 -text Tomato -variable tomato +ttk::separator $w.checks.sep2 +ttk::checkbutton $w.checks.c3 -text Basil -variable basil +ttk::checkbutton $w.checks.c4 -text Oregano -variable oregano +pack $w.checks.e $w.checks.sep1 $w.checks.c1 $w.checks.c2 $w.checks.sep2 \ + $w.checks.c3 $w.checks.c4 -fill x -pady 2 + +## Set up the radiobutton group +ttk::labelframe $w.radios -text "Radiobuttons" +ttk::radiobutton $w.radios.r1 -text "Great" -variable happyness -value great +ttk::radiobutton $w.radios.r2 -text "Good" -variable happyness -value good +ttk::radiobutton $w.radios.r3 -text "OK" -variable happyness -value ok +ttk::radiobutton $w.radios.r4 -text "Poor" -variable happyness -value poor +ttk::radiobutton $w.radios.r5 -text "Awful" -variable happyness -value awful +pack $w.radios.r1 $w.radios.r2 $w.radios.r3 $w.radios.r4 $w.radios.r5 \ + -fill x -padx 3 -pady 2 + +## Arrange things neatly +pack [ttk::frame $w.f] -fill both -expand 1 +lower $w.f +grid $w.buttons $w.checks $w.radios -in $w.f -sticky nwe -pady 2 -padx 3 +grid columnconfigure $w.f {0 1 2} -weight 1 -uniform yes diff --git a/mingw/lib/tk8.5/demos/ttkmenu.tcl b/mingw/lib/tk8.5/demos/ttkmenu.tcl new file mode 100644 index 00000000..b0a42ee6 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ttkmenu.tcl @@ -0,0 +1,56 @@ +# ttkmenu.tcl -- +# +# This demonstration script creates a toplevel window containing several Ttk +# menubutton widgets. +# +# RCS: @(#) $Id: ttkmenu.tcl,v 1.2 2007/10/21 14:51:47 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .ttkmenu +catch {destroy $w} +toplevel $w +wm title $w "Ttk Menu Buttons" +wm iconname $w "ttkmenu" +positionWindow $w + +ttk::label $w.msg -font $font -wraplength 4i -justify left -text "Ttk is the new Tk themed widget set, and one widget that is available in themed form is the menubutton. Below are some themed menu buttons that allow you to pick the current theme in use. Notice how picking a theme changes the way that the menu buttons themselves look, and that the central menu button is styled differently (in a way that is normally suitable for toolbars). However, there are no themed menus; the standard Tk menus were judged to have a sufficiently good look-and-feel on all platforms, especially as they are implemented as native controls in many places." +pack $w.msg [ttk::separator $w.msgSep] -side top -fill x + +## See Code / Dismiss +pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x + +ttk::menubutton $w.m1 -menu $w.m1.menu -text "Select a theme" -direction above +ttk::menubutton $w.m2 -menu $w.m1.menu -text "Select a theme" -direction left +ttk::menubutton $w.m3 -menu $w.m1.menu -text "Select a theme" -direction right +ttk::menubutton $w.m4 -menu $w.m1.menu -text "Select a theme" \ + -direction flush -style TMenubutton.Toolbutton +ttk::menubutton $w.m5 -menu $w.m1.menu -text "Select a theme" -direction below + +menu $w.m1.menu -tearoff 0 +menu $w.m2.menu -tearoff 0 +menu $w.m3.menu -tearoff 0 +menu $w.m4.menu -tearoff 0 +menu $w.m5.menu -tearoff 0 + +foreach theme [ttk::themes] { + $w.m1.menu add command -label $theme -command [list ttk::setTheme $theme] + $w.m2.menu add command -label $theme -command [list ttk::setTheme $theme] + $w.m3.menu add command -label $theme -command [list ttk::setTheme $theme] + $w.m4.menu add command -label $theme -command [list ttk::setTheme $theme] + $w.m5.menu add command -label $theme -command [list ttk::setTheme $theme] +} + +pack [ttk::frame $w.f] -fill x +pack [ttk::frame $w.f1] -fill both -expand yes +lower $w.f + +grid anchor $w.f center +grid x $w.m1 x -in $w.f -padx 3 -pady 2 +grid $w.m2 $w.m4 $w.m3 -in $w.f -padx 3 -pady 2 +grid x $w.m5 x -in $w.f -padx 3 -pady 2 diff --git a/mingw/lib/tk8.5/demos/ttknote.tcl b/mingw/lib/tk8.5/demos/ttknote.tcl new file mode 100644 index 00000000..6630efb9 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ttknote.tcl @@ -0,0 +1,60 @@ +# ttknote.tcl -- +# +# This demonstration script creates a toplevel window containing a Ttk +# notebook widget. +# +# RCS: @(#) $Id: ttknote.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .ttknote +catch {destroy $w} +toplevel $w +wm title $w "Ttk Notebook Widget" +wm iconname $w "ttknote" +positionWindow $w + +## See Code / Dismiss +pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x + +ttk::frame $w.f +pack $w.f -fill both -expand 1 +set w $w.f + +## Make the notebook and set up Ctrl+Tab traversal +ttk::notebook $w.note +pack $w.note -fill both -expand 1 -padx 2 -pady 3 +ttk::notebook::enableTraversal $w.note + +## Popuplate the first pane +ttk::frame $w.note.msg +ttk::label $w.note.msg.m -font $font -wraplength 4i -justify left -anchor n -text "Ttk is the new Tk themed widget set. One of the widgets it includes is the notebook widget, which provides a set of tabs that allow the selection of a group of panels, each with distinct content. They are a feature of many modern user interfaces. Not only can the tabs be selected with the mouse, but they can also be switched between using Ctrl+Tab when the notebook page heading itself is selected. Note that the second tab is disabled, and cannot be selected." +ttk::button $w.note.msg.b -text "Neat!" -underline 0 -command { + set neat "Yeah, I know..." + after 500 {set neat {}} +} +bind $w "focus $w.note.msg.b; $w.note.msg.b invoke" +ttk::label $w.note.msg.l -textvariable neat +$w.note add $w.note.msg -text "Description" -underline 0 -padding 2 +grid $w.note.msg.m - -sticky new -pady 2 +grid $w.note.msg.b $w.note.msg.l -pady {2 4} +grid rowconfigure $w.note.msg 1 -weight 1 +grid columnconfigure $w.note.msg {0 1} -weight 1 -uniform 1 + +## Populate the second pane. Note that the content doesn't really matter +ttk::frame $w.note.disabled +$w.note add $w.note.disabled -text "Disabled" -state disabled + +## Popuplate the third pane +ttk::frame $w.note.editor +$w.note add $w.note.editor -text "Text Editor" -underline 0 +text $w.note.editor.t -width 40 -height 10 -wrap char \ + -yscroll "$w.note.editor.s set" +scrollbar $w.note.editor.s -orient vertical -command "$w.note.editor.t yview" +pack $w.note.editor.s -side right -fill y -padx {0 2} -pady 2 +pack $w.note.editor.t -fill both -expand 1 -pady 2 -padx {2 0} diff --git a/mingw/lib/tk8.5/demos/ttkpane.tcl b/mingw/lib/tk8.5/demos/ttkpane.tcl new file mode 100644 index 00000000..ad30a426 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ttkpane.tcl @@ -0,0 +1,109 @@ +# ttkpane.tcl -- +# +# This demonstration script creates a Ttk pane with some content. +# +# RCS: @(#) $Id: ttkpane.tcl,v 1.2 2007/10/21 14:51:47 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .ttkpane +catch {destroy $w} +toplevel $w +wm title $w "Themed Nested Panes" +wm iconname $w "ttkpane" +positionWindow $w + +ttk::label $w.msg -font $font -wraplength 4i -justify left -text "This demonstration shows off a nested set of themed paned windows. Their sizes can be changed by grabbing the area between each contained pane and dragging the divider." +pack $w.msg [ttk::separator $w.msgSep] -side top -fill x + +## See Code / Dismiss +pack [addSeeDismiss $w.seeDismiss $w] -side bottom -fill x + +ttk::frame $w.f +pack $w.f -fill both -expand 1 +set w $w.f +ttk::panedwindow $w.outer -orient horizontal +$w.outer add [ttk::panedwindow $w.outer.inLeft -orient vertical] +$w.outer add [ttk::panedwindow $w.outer.inRight -orient vertical] +$w.outer.inLeft add [ttk::labelframe $w.outer.inLeft.top -text Button] +$w.outer.inLeft add [ttk::labelframe $w.outer.inLeft.bot -text Clocks] +$w.outer.inRight add [ttk::labelframe $w.outer.inRight.top -text Progress] +$w.outer.inRight add [ttk::labelframe $w.outer.inRight.bot -text Text] +if {[tk windowingsystem] eq "aqua"} { + foreach i [list inLeft.top inLeft.bot inRight.top inRight.bot] { + $w.outer.$i configure -padding 3 + } +} + +# Fill the button pane +ttk::button $w.outer.inLeft.top.b -text "Press Me" -command { + tk_messageBox -type ok -icon info -message "Ouch!" -detail "That hurt..." \ + -parent .ttkpane -title "Button Pressed" +} +pack $w.outer.inLeft.top.b -padx 2 -pady 5 + +# Fill the clocks pane +set i 0 +proc every {delay script} { + uplevel #0 $script + after $delay [list every $delay $script] +} +set zones { + :Europe/Berlin + :America/Argentina/Buenos_Aires + :Africa/Johannesburg + :Europe/London + :America/Los_Angeles + :Europe/Moscow + :America/New_York + :Asia/Singapore + :Australia/Sydney + :Asia/Tokyo +} +# Force a pre-load of all the timezones needed; otherwise can end up +# poor-looking synch problems! +foreach zone $zones {clock format 0 -timezone $zone} +foreach zone $zones { + set city [string map {_ " "} [regexp -inline {[^/]+$} $zone]] + if {$i} { + pack [ttk::separator $w.outer.inLeft.bot.s$i] -fill x + } + ttk::label $w.outer.inLeft.bot.l$i -text $city -anchor w + ttk::label $w.outer.inLeft.bot.t$i -textvariable time($zone) -anchor w + pack $w.outer.inLeft.bot.l$i $w.outer.inLeft.bot.t$i -fill x + every 1000 "set time($zone) \[clock format \[clock seconds\] -timezone $zone -format %T\]" + incr i +} + +# Fill the progress pane +ttk::progressbar $w.outer.inRight.top.progress -mode indeterminate +pack $w.outer.inRight.top.progress -fill both -expand 1 +$w.outer.inRight.top.progress start + +# Fill the text pane +if {[tk windowingsystem] ne "aqua"} { + # The trick with the ttk::frame makes the text widget look like it fits with + # the current Ttk theme despite not being a themed widget itself. It is done + # by styling the frame like an entry, turning off the border in the text + # widget, and putting the text widget in the frame with enough space to allow + # the surrounding border to show through (2 pixels seems to be enough). + ttk::frame $w.outer.inRight.bot.f -style TEntry + text $w.txt -wrap word -yscroll "$w.sb set" -width 30 -borderwidth 0 + pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot.f -pady 2 -padx 2 + ttk::scrollbar $w.sb -orient vertical -command "$w.txt yview" + pack $w.sb -side right -fill y -in $w.outer.inRight.bot + pack $w.outer.inRight.bot.f -fill both -expand 1 + pack $w.outer -fill both -expand 1 +} else { + text $w.txt -wrap word -yscroll "$w.sb set" -width 30 -borderwidth 0 + scrollbar $w.sb -orient vertical -command "$w.txt yview" + pack $w.sb -side right -fill y -in $w.outer.inRight.bot + pack $w.txt -fill both -expand 1 -in $w.outer.inRight.bot + pack $w.outer -fill both -expand 1 -padx 10 -pady {6 10} +} + diff --git a/mingw/lib/tk8.5/demos/ttkprogress.tcl b/mingw/lib/tk8.5/demos/ttkprogress.tcl new file mode 100644 index 00000000..e209ab32 --- /dev/null +++ b/mingw/lib/tk8.5/demos/ttkprogress.tcl @@ -0,0 +1,49 @@ +# ttkprogress.tcl -- +# +# This demonstration script creates several progress bar widgets. +# +# RCS: @(#) $Id: ttkprogress.tcl,v 1.2 2007/10/23 06:31:16 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk +package require Ttk + +set w .ttkprogress +catch {destroy $w} +toplevel $w +wm title $w "Progress Bar Demonstration" +wm iconname $w "ttkprogress" +positionWindow $w + +ttk::label $w.msg -font $font -wraplength 4i -justify left -text "Below are two progress bars. The top one is a \u201Cdeterminate\u201D progress bar, which is used for showing how far through a defined task the program has got. The bottom one is an \u201Cindeterminate\u201D progress bar, which is used to show that the program is busy but does not know how long for. Both are run here in self-animated mode, which can be turned on and off using the buttons underneath." +pack $w.msg -side top -fill x + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +ttk::frame $w.f +pack $w.f -fill both -expand 1 +set w $w.f + +proc doBars {op args} { + foreach w $args { + $w $op + } +} +ttk::progressbar $w.p1 -mode determinate +ttk::progressbar $w.p2 -mode indeterminate +ttk::button $w.start -text "Start Progress" -command [list \ + doBars start $w.p1 $w.p2] +ttk::button $w.stop -text "Stop Progress" -command [list \ + doBars stop $w.p1 $w.p2] + +grid $w.p1 - -pady 5 -padx 10 +grid $w.p2 - -pady 5 -padx 10 +grid $w.start $w.stop -padx 10 -pady 5 +grid configure $w.start -sticky e +grid configure $w.stop -sticky w +grid columnconfigure $w all -weight 1 diff --git a/mingw/lib/tk8.5/demos/twind.tcl b/mingw/lib/tk8.5/demos/twind.tcl new file mode 100644 index 00000000..b2d35dde --- /dev/null +++ b/mingw/lib/tk8.5/demos/twind.tcl @@ -0,0 +1,326 @@ +# twind.tcl -- +# +# This demonstration script creates a text widget with a bunch of +# embedded windows. +# +# RCS: @(#) $Id: twind.tcl,v 1.9 2007/10/15 21:06:17 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .twind +catch {destroy $w} +toplevel $w +wm title $w "Text Demonstration - Embedded Windows and Other Features" +wm iconname $w "Embedded Windows" +positionWindow $w + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.f -highlightthickness 2 -borderwidth 2 -relief sunken +set t $w.f.text +text $t -yscrollcommand "$w.scroll set" -setgrid true -font $font -width 70 \ + -height 35 -wrap word -highlightthickness 0 -borderwidth 0 +pack $t -expand yes -fill both +scrollbar $w.scroll -command "$t yview" +pack $w.scroll -side right -fill y +panedwindow $w.pane +pack $w.pane -expand yes -fill both +$w.pane add $w.f +# Import to raise given creation order above +raise $w.f + +$t tag configure center -justify center -spacing1 5m -spacing3 5m +$t tag configure buttons -lmargin1 1c -lmargin2 1c -rmargin 1c \ + -spacing1 3m -spacing2 0 -spacing3 0 + +button $t.on -text "Turn On" -command "textWindOn $w" \ + -cursor top_left_arrow +button $t.off -text "Turn Off" -command "textWindOff $w" \ + -cursor top_left_arrow + +$t insert end "A text widget can contain many different kinds of items, " +$t insert end "both active and passive. It can lay these out in various " +$t insert end "ways, with wrapping, tabs, centering, etc. In addition, " +$t insert end "when the contents are too big for the window, smooth " +$t insert end "scrolling in all directions is provided.\n\n" + +$t insert end "A text widget can contain other widgets embedded " +$t insert end "it. These are called \"embedded windows\", " +$t insert end "and they can consist of arbitrary widgets. " +$t insert end "For example, here are two embedded button " +$t insert end "widgets. You can click on the first button to " +$t window create end -window $t.on +$t insert end " horizontal scrolling, which also turns off " +$t insert end "word wrapping. Or, you can click on the second " +$t insert end "button to\n" +$t window create end -window $t.off +$t insert end " horizontal scrolling and turn back on word wrapping.\n\n" + +$t insert end "Or, here is another example. If you " +$t window create end -create { + button %W.click -text "Click Here" -command "textWindPlot %W" \ + -cursor top_left_arrow} + +$t insert end " a canvas displaying an x-y plot will appear right here." +$t mark set plot insert +$t mark gravity plot left +$t insert end " You can drag the data points around with the mouse, " +$t insert end "or you can click here to " +$t window create end -create { + button %W.delete -text "Delete" -command "textWindDel %W" \ + -cursor top_left_arrow +} +$t insert end " the plot again.\n\n" + +$t insert end "You can also create multiple text widgets each of which " +$t insert end "display the same underlying text. Click this button to " +$t window create end \ + -create {button %W.peer -text "Make A Peer" -command "textMakePeer %W" \ + -cursor top_left_arrow} -padx 3 +$t insert end " widget. Notice how peer widgets can have different " +$t insert end "font settings, and by default contain all the images " +$t insert end "of the 'parent', but many of the embedded windows, " +$t insert end "such as buttons will not be there. The easiest way " +$t insert end "to ensure they are in all peers is to use '-create' " +$t insert end "embedded window creation scripts " +$t insert end "(the plot above and the 'Make A Peer' button are " +$t insert end "designed to show up in all peers). A good use of " +$t insert end "peers is for " +$t window create end \ + -create {button %W.split -text "Split Windows" -command "textSplitWindow %W" \ + -cursor top_left_arrow} -padx 3 +$t insert end " \n\n" + +$t insert end "Users of previous versions of Tk will also be interested " +$t insert end "to note that now cursor movement is now by visual line by " +$t insert end "default, and that all scrolling of this widget is by pixel.\n\n" + +$t insert end "You may also find it useful to put embedded windows in " +$t insert end "a text without any actual text. In this case the " +$t insert end "text widget acts like a geometry manager. For " +$t insert end "example, here is a collection of buttons laid out " +$t insert end "neatly into rows by the text widget. These buttons " +$t insert end "can be used to change the background color of the " +$t insert end "text widget (\"Default\" restores the color to " +$t insert end "its default). If you click on the button labeled " +$t insert end "\"Short\", it changes to a longer string so that " +$t insert end "you can see how the text widget automatically " +$t insert end "changes the layout. Click on the button again " +$t insert end "to restore the short string.\n" + +button $t.default -text Default -command "embDefBg $t" \ + -cursor top_left_arrow +$t window create end -window $t.default -padx 3 +global embToggle +set embToggle Short +checkbutton $t.toggle -textvariable embToggle -indicatoron 0 \ + -variable embToggle -onvalue "A much longer string" \ + -offvalue "Short" -cursor top_left_arrow -pady 5 -padx 2 +$t window create end -window $t.toggle -padx 3 -pady 2 +set i 1 +foreach color {AntiqueWhite3 Bisque1 Bisque2 Bisque3 Bisque4 + SlateBlue3 RoyalBlue1 SteelBlue2 DeepSkyBlue3 LightBlue1 + DarkSlateGray1 Aquamarine2 DarkSeaGreen2 SeaGreen1 + Yellow1 IndianRed1 IndianRed2 Tan1 Tan4} { + button $t.color$i -text $color -cursor top_left_arrow -command \ + "$t configure -bg $color" + $t window create end -window $t.color$i -padx 3 -pady 2 + incr i +} +$t tag add buttons $t.default end + +button $t.bigB -text "Big borders" -command "textWindBigB $t" \ + -cursor top_left_arrow +button $t.smallB -text "Small borders" -command "textWindSmallB $t" \ + -cursor top_left_arrow +button $t.bigH -text "Big highlight" -command "textWindBigH $t" \ + -cursor top_left_arrow +button $t.smallH -text "Small highlight" -command "textWindSmallH $t" \ + -cursor top_left_arrow +button $t.bigP -text "Big pad" -command "textWindBigP $t" \ + -cursor top_left_arrow +button $t.smallP -text "Small pad" -command "textWindSmallP $t" \ + -cursor top_left_arrow + +set text_normal(border) [$t cget -borderwidth] +set text_normal(highlight) [$t cget -highlightthickness] +set text_normal(pad) [$t cget -padx] + +$t insert end "\nYou can also change the usual border width and " +$t insert end "highlightthickness and padding.\n" +$t window create end -window $t.bigB +$t window create end -window $t.smallB +$t window create end -window $t.bigH +$t window create end -window $t.smallH +$t window create end -window $t.bigP +$t window create end -window $t.smallP + +$t insert end "\n\nFinally, images fit comfortably in text widgets too:" + +$t image create end -image \ + [image create bitmap -file [file join $tk_demoDirectory images face.xbm]] + + +proc textWindBigB w { + $w configure -borderwidth 15 +} + +proc textWindBigH w { + $w configure -highlightthickness 15 +} + +proc textWindBigP w { + $w configure -padx 15 -pady 15 +} + +proc textWindSmallB w { + $w configure -borderwidth $::text_normal(border) +} + +proc textWindSmallH w { + $w configure -highlightthickness $::text_normal(highlight) +} + +proc textWindSmallP w { + $w configure -padx $::text_normal(pad) -pady $::text_normal(pad) +} + + +proc textWindOn w { + catch {destroy $w.scroll2} + set t $w.f.text + scrollbar $w.scroll2 -orient horizontal -command "$t xview" + pack $w.scroll2 -after $w.buttons -side bottom -fill x + $t configure -xscrollcommand "$w.scroll2 set" -wrap none +} + +proc textWindOff w { + catch {destroy $w.scroll2} + set t $w.f.text + $t configure -xscrollcommand {} -wrap word +} + +proc textWindPlot t { + set c $t.c + if {[winfo exists $c]} { + return + } + + while {[string first [$t get plot] " \t\n"] >= 0} { + $t delete plot + } + $t insert plot "\n" + + $t window create plot -create {createPlot %W} + $t tag add center plot + $t insert plot "\n" +} + +proc createPlot {t} { + set c $t.c + + canvas $c -relief sunken -width 450 -height 300 -cursor top_left_arrow + + set font {Helvetica 18} + + $c create line 100 250 400 250 -width 2 + $c create line 100 250 100 50 -width 2 + $c create text 225 20 -text "A Simple Plot" -font $font -fill brown + + for {set i 0} {$i <= 10} {incr i} { + set x [expr {100 + ($i*30)}] + $c create line $x 250 $x 245 -width 2 + $c create text $x 254 -text [expr {10*$i}] -anchor n -font $font + } + for {set i 0} {$i <= 5} {incr i} { + set y [expr {250 - ($i*40)}] + $c create line 100 $y 105 $y -width 2 + $c create text 96 $y -text [expr {$i*50}].0 -anchor e -font $font + } + + foreach point { + {12 56} {20 94} {33 98} {32 120} {61 180} {75 160} {98 223} + } { + set x [expr {100 + (3*[lindex $point 0])}] + set y [expr {250 - (4*[lindex $point 1])/5}] + set item [$c create oval [expr {$x-6}] [expr {$y-6}] \ + [expr {$x+6}] [expr {$y+6}] -width 1 -outline black \ + -fill SkyBlue2] + $c addtag point withtag $item + } + + $c bind point "$c itemconfig current -fill red" + $c bind point "$c itemconfig current -fill SkyBlue2" + $c bind point <1> "embPlotDown $c %x %y" + $c bind point "$c dtag selected" + bind $c "embPlotMove $c %x %y" + return $c +} + +set embPlot(lastX) 0 +set embPlot(lastY) 0 + +proc embPlotDown {w x y} { + global embPlot + $w dtag selected + $w addtag selected withtag current + $w raise current + set embPlot(lastX) $x + set embPlot(lastY) $y +} + +proc embPlotMove {w x y} { + global embPlot + $w move selected [expr {$x-$embPlot(lastX)}] [expr {$y-$embPlot(lastY)}] + set embPlot(lastX) $x + set embPlot(lastY) $y +} + +proc textWindDel t { + if {[winfo exists $t.c]} { + $t delete $t.c + while {[string first [$t get plot] " \t\n"] >= 0} { + $t delete plot + } + $t insert plot " " + } +} + +proc embDefBg t { + $t configure -background [lindex [$t configure -background] 3] +} + +proc textMakePeer {parent} { + set n 1 + while {[winfo exists .peer$n]} { incr n } + set w [toplevel .peer$n] + wm title $w "Text Peer #$n" + frame $w.f -highlightthickness 2 -borderwidth 2 -relief sunken + set t [$parent peer create $w.f.text -yscrollcommand "$w.scroll set"] + pack $t -expand yes -fill both + scrollbar $w.scroll -command "$t yview" + pack $w.scroll -side right -fill y + pack $w.f -expand yes -fill both +} + +proc textSplitWindow {textW} { + if {$textW eq ".twind.f.text"} { + if {[winfo exists .twind.peer]} { + destroy .twind.peer + } else { + set parent [winfo parent $textW] + set w [winfo parent $parent] + set t [$textW peer create $w.peer \ + -yscrollcommand "$w.scroll set"] + $w.pane add $t + } + } else { + return + } +} diff --git a/mingw/lib/tk8.5/demos/unicodeout.tcl b/mingw/lib/tk8.5/demos/unicodeout.tcl new file mode 100644 index 00000000..bd9738cc --- /dev/null +++ b/mingw/lib/tk8.5/demos/unicodeout.tcl @@ -0,0 +1,94 @@ +# unicodeout.tcl -- +# +# This demonstration script shows how you can produce output (in label +# widgets) using many different alphabets. +# +# RCS: @(#) $Id: unicodeout.tcl,v 1.5 2006/03/22 00:21:17 das Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .unicodeout +catch {destroy $w} +toplevel $w +wm title $w "Unicode Label Demonstration" +wm iconname $w "unicodeout" +positionWindow $w + +label $w.msg -font $font -wraplength 4i -anchor w -justify left \ + -text "This is a sample of Tk's support for languages that use\ + non-Western character sets. However, what you will actually see\ + below depends largely on what character sets you have installed,\ + and what you see for characters that are not present varies greatly\ + between platforms as well. The strings are written in Tcl using\ + UNICODE characters using the \\uXXXX escape so as to do so in a\ + portable fashion." +pack $w.msg -side top + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +pack [label $w.wait -text "Please wait while loading fonts..." \ + -font {Helvetica 12 italic}] +pack [frame $w.f] -expand 1 -fill both -padx 2m -pady 1m +grid columnconfigure $w.f 1 -weight 1 + +set i 0 +proc addSample {w language args} { + global font i + set sample [join $args ""] + set j [incr i] + label $w.f.l$j -font $font -text "${language}:" -anchor nw -pady 0 + label $w.f.s$j -font $font -text $sample -anchor nw -width 30 -pady 0 + grid $w.f.l$j $w.f.s$j -sticky ew -pady 0 + grid configure $w.f.l$j -padx 1m +} + +# Processing when some characters are missing might take a while, so make +# sure we're displaying something in the meantime... + +set oldCursor [$w cget -cursor] +$w conf -cursor watch +update + +if {[tk windowingsystem] eq "x11"} { + # Using presentation forms (pre-layouted) + addSample $w Arabic \ + "\uFE94\uFEF4\uFE91\uFEAE\uFECC\uFEDF\uFE8D " \ + "\uFE94\uFEE4\uFEE0\uFEDC\uFEDF\uFE8D" +} else { + # Using standard text characters + addSample $w Arabic \ + "\u0627\u0644\u0643\u0644\u0645\u0629 " \ + "\u0627\u0644\u0639\u0631\u0628\u064A\u0629" +} +addSample $w "Trad. Chinese" "\u4E2D\u570B\u7684\u6F22\u5B57" +addSample $w "Simpl. Chinese" "\u6C49\u8BED" +addSample $w Greek \ + "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AE " \ + "\u03B3\u03BB\u03CE\u03C3\u03C3\u03B1" +if {[tk windowingsystem] eq "x11"} { + # Visual order (pre-layouted) + addSample $w Hebrew \ + "\u05DD\u05D9\u05DC\u05E9\u05D5\u05E8\u05D9 " \ + "\u05DC\u05D9\u05D0\u05E8\u05E9\u05D9" +} else { + # Standard logical order + addSample $w Hebrew \ + "\u05D9\u05E9\u05E8\u05D0\u05D9\u05DC " \ + "\u05D9\u05E8\u05D5\u05E9\u05DC\u05D9\u05DD" +} +addSample $w Japanese \ + "\u65E5\u672C\u8A9E\u306E\u3072\u3089\u304C\u306A, " \ + "\u6F22\u5B57\u3068\u30AB\u30BF\u30AB\u30CA" +addSample $w Korean "\uB300\uD55C\uBBFC\uAD6D\uC758 \uD55C\uAE00" +addSample $w Russian \ + "\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u044F\u0437\u044B\u043A" + +# We're done processing, so change things back to normal running... +destroy $w.wait +$w conf -cursor $oldCursor diff --git a/mingw/lib/tk8.5/demos/vscale.tcl b/mingw/lib/tk8.5/demos/vscale.tcl new file mode 100644 index 00000000..599329c0 --- /dev/null +++ b/mingw/lib/tk8.5/demos/vscale.tcl @@ -0,0 +1,48 @@ +# vscale.tcl -- +# +# This demonstration script shows an example with a vertical scale. +# +# RCS: @(#) $Id: vscale.tcl,v 1.5 2004/12/21 11:56:35 dkf Exp $ + +if {![info exists widgetDemo]} { + error "This script should be run from the \"widget\" demo." +} + +package require Tk + +set w .vscale +catch {destroy $w} +toplevel $w +wm title $w "Vertical Scale Demonstration" +wm iconname $w "vscale" +positionWindow $w + +label $w.msg -font $font -wraplength 3.5i -justify left -text "An arrow and a vertical scale are displayed below. If you click or drag mouse button 1 in the scale, you can change the size of the arrow." +pack $w.msg -side top -padx .5c + +## See Code / Dismiss buttons +set btns [addSeeDismiss $w.buttons $w] +pack $btns -side bottom -fill x + +frame $w.frame -borderwidth 10 +pack $w.frame + +scale $w.frame.scale -orient vertical -length 284 -from 0 -to 250 \ + -command "setHeight $w.frame.canvas" -tickinterval 50 +canvas $w.frame.canvas -width 50 -height 50 -bd 0 -highlightthickness 0 +$w.frame.canvas create polygon 0 0 1 1 2 2 -fill SeaGreen3 -tags poly +$w.frame.canvas create line 0 0 1 1 2 2 0 0 -fill black -tags line +frame $w.frame.right -borderwidth 15 +pack $w.frame.scale -side left -anchor ne +pack $w.frame.canvas -side left -anchor nw -fill y +$w.frame.scale set 75 + +proc setHeight {w height} { + incr height 21 + set y2 [expr {$height - 30}] + if {$y2 < 21} { + set y2 21 + } + $w coords poly 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 + $w coords line 15 20 35 20 35 $y2 45 $y2 25 $height 5 $y2 15 $y2 15 20 +} diff --git a/mingw/lib/tk8.5/demos/widget b/mingw/lib/tk8.5/demos/widget new file mode 100644 index 00000000..b6b633b1 --- /dev/null +++ b/mingw/lib/tk8.5/demos/widget @@ -0,0 +1,734 @@ +#!/bin/sh +# the next line restarts using wish \ +exec wish "$0" "$@" + +# widget -- +# This script demonstrates the various widgets provided by Tk, along with many +# of the features of the Tk toolkit. This file only contains code to generate +# the main window for the application, which invokes individual +# demonstrations. The code for the actual demonstrations is contained in +# separate ".tcl" files is this directory, which are sourced by this script as +# needed. +# +# RCS: @(#) $Id: widget,v 1.40 2007/10/23 06:31:16 das Exp $ + +package require Tcl 8.5 +package require Tk 8.5 +package require msgcat +package require Ttk + +eval destroy [winfo child .] +set tk_demoDirectory [file join [pwd] [file dirname [info script]]] +::msgcat::mcload $tk_demoDirectory +namespace import ::msgcat::mc +wm title . [mc "Widget Demonstration"] +if {[tk windowingsystem] eq "x11"} { + # This won't work everywhere, but there's no other way in core Tk at the + # moment to display a coloured icon. + image create photo TclPowered \ + -file [file join $tk_library images logo64.gif] + wm iconwindow . [toplevel ._iconWindow] + pack [label ._iconWindow.i -image TclPowered] + wm iconname . [mc "tkWidgetDemo"] +} + +if {"defaultFont" ni [font names]} { + # TIP #145 defines some standard named fonts + if {"TkDefaultFont" in [font names] && "TkFixedFont" in [font names]} { + # FIX ME: the following tecnique of cloning the font to copy it works + # fine but means that if the system font is changed by Tk + # cannot update the copied font. font alias might be useful + # here -- or fix the app to use TkDefaultFont etc. + font create mainFont {*}[font configure TkDefaultFont] + font create fixedFont {*}[font configure TkFixedFont] + font create boldFont {*}[font configure TkDefaultFont] -weight bold + font create titleFont {*}[font configure TkDefaultFont] -weight bold + font create statusFont {*}[font configure TkDefaultFont] + font create varsFont {*}[font configure TkDefaultFont] + if {[tk windowingsystem] eq "aqua"} { + font configure titleFont -size 17 + } + } else { + font create mainFont -family Helvetica -size 12 + font create fixedFont -family Courier -size 10 + font create boldFont -family Helvetica -size 12 -weight bold + font create titleFont -family Helvetica -size 18 -weight bold + font create statusFont -family Helvetica -size 10 + font create varsFont -family Helvetica -size 14 + } +} + +set widgetDemo 1 +set font mainFont + +image create photo ::img::refresh -format GIF -data { + R0lGODlhEAAQAJEDAP///wAAACpnKv///yH5BAEAAAMALAAAAAAQABAAAAI63IKp + xgcPH2ouwgBCw1HIxHCQ4F3hSJKmwZXqWrmWxj7lKJ2dndcon9EBUq+gz3brVXAR + 2tICU0gXBQA7 +} + +image create photo ::img::view -format GIF -data { + R0lGODlhEAAQAKIHAP///wwMDAAAAMDAwNnZ2SYmJmZmZv///yH5BAEAAAcALAAA + AAAQABAAAANMKLos90+ASamDRxJCgw9YVnlDOXiQBgRDBRgHKE6sW8QR3doPKK27 + yg33q/GIOhdg6OsEJzeZykiBSUcs06e56Xx6np8ScIkFGuhQAgA7 +} + +image create photo ::img::delete -format GIF -data { + R0lGODlhEAAQAIABAIQAAP///yH5BAEAAAEALAAAAAAQABAAAAIjjI+pmwAc3HGy + PUSvqYpuvWQg40FfSVacBa5nN6JYDI3mzRQAOw== +} + +image create photo ::img::print -format GIF -data { + R0lGODlhEAAQALMKAAAAAP///52VunNkl8C82Yl+qldBgq+pyrOzs1fYAP///wAA + AAAAAAAAAAAAAAAAACH5BAEAAAoALAAAAAAQABAAAARGUMlJKwU4AztB+ODGeUiJ + fGLlgeEYmGWQXmx7aXgmAUTv/74N4EAsGhOJg1DAbDqbwoJ0Sp0KB9isNis0eL/g + ryhH5pgnEQA7 +} + +# Note that this is run through the message catalog! This is because this is +# actually an image of a word. +image create photo ::img::new -format GIF -data [mc { + R0lGODlhHgAOALMPALMAANyIiOu7u8dEROaqqvru7sxVVeGZmbgREfXd3b0iItZ3 + d8IzM9FmZvDMzP///yH5BAEAAA8ALAAAAAAeAA4AAASa8MlJq7046827WVOCHEkw + nANhUgJlEBIABJIwL3K+4IcUALCHjfbItYZDSgJgkBiYPmBMAUAkkLPKs/BAyLgM + wAQwOAAY2ByCaw4QAFQSoDEePJ6DmU1xInYZTw5nOEFFdgVUelkVDTIMd3AKFGQ1 + MgI2AwEmQW8APZ0gdRONAks5nhIFVVxdAAkUAS2pAVwFl7ITB4UqHb0XEQA7 +}] + +#---------------------------------------------------------------- +# The code below create the main window, consisting of a menu bar and a text +# widget that explains how to use the program, plus lists all of the demos as +# hypertext items. +#---------------------------------------------------------------- + +menu .menuBar -tearoff 0 + +# On the Mac use the special .apple menu for the about item +if {[tk windowingsystem] eq "aqua"} { + .menuBar add cascade -menu .menuBar.apple + menu .menuBar.apple -tearoff 0 + .menuBar.apple add command -label [mc "About..."] -command {aboutBox} +} else { + # This is a tk-internal procedure to make i18n easier + ::tk::AmpMenuArgs .menuBar add cascade -label [mc "&File"] \ + -menu .menuBar.file + menu .menuBar.file -tearoff 0 + ::tk::AmpMenuArgs .menuBar.file add command -label [mc "&About..."] \ + -command {aboutBox} -accelerator [mc ""] + bind . {aboutBox} + .menuBar.file add sep + if {[string match win* [tk windowingsystem]]} { + # Windows doesn't usually have a Meta key + ::tk::AmpMenuArgs .menuBar.file add command -label [mc "&Quit"] \ + -command {exit} -accelerator [mc "Ctrl+Q"] + bind . <[mc "Control-q"]> {exit} + } else { + ::tk::AmpMenuArgs .menuBar.file add command -label [mc "&Quit"] \ + -command {exit} -accelerator [mc "Meta-Q"] + bind . <[mc "Meta-q"]> {exit} + } +} + +. configure -menu .menuBar + +ttk::frame .statusBar +ttk::label .statusBar.lab -text " " -anchor w +if {[tk windowingsystem] eq "aqua"} { + ttk::separator .statusBar.sep + pack .statusBar.sep -side top -expand yes -fill x -pady 0 +} +pack .statusBar.lab -side left -padx 2 -expand yes -fill both +if {[tk windowingsystem] ne "aqua"} { + ttk::sizegrip .statusBar.foo + pack .statusBar.foo -side left -padx 2 +} +pack .statusBar -side bottom -fill x -pady 2 + +ttk::frame .textFrame +scrollbar .s -orient vertical -command {.t yview} -highlightthickness 0 \ + -takefocus 1 -bd 1 +pack .s -in .textFrame -side right -fill y +text .t -yscrollcommand {.s set} -wrap word -width 70 -height 30 \ + -font mainFont -setgrid 1 -highlightthickness 0 \ + -padx 4 -pady 2 -takefocus 0 -bd 1 +pack .t -in .textFrame -expand y -fill both -padx 1 +pack .textFrame -expand yes -fill both +if {[tk windowingsystem] eq "aqua"} { + pack configure .statusBar.lab -padx {10 18} -pady {4 6} + pack configure .statusBar -pady 0 + .s configure -bd 0 + .t configure -padx 10 -pady 0 -bd 0 +} + +# Create a bunch of tags to use in the text widget, such as those for section +# titles and demo descriptions. Also define the bindings for tags. + +.t tag configure title -font titleFont +.t tag configure subtitle -font titleFont +.t tag configure bold -font boldFont +if {[tk windowingsystem] eq "aqua"} { + .t tag configure title -spacing1 8 + .t tag configure subtitle -spacing3 3 +} + +# We put some "space" characters to the left and right of each demo +# description so that the descriptions are highlighted only when the mouse +# cursor is right over them (but not when the cursor is to their left or +# right). +# +.t tag configure demospace -lmargin1 1c -lmargin2 1c + +if {[winfo depth .] == 1} { + .t tag configure demo -lmargin1 1c -lmargin2 1c \ + -underline 1 + .t tag configure visited -lmargin1 1c -lmargin2 1c \ + -underline 1 + .t tag configure hot -background black -foreground white +} else { + .t tag configure demo -lmargin1 1c -lmargin2 1c \ + -foreground blue -underline 1 + .t tag configure visited -lmargin1 1c -lmargin2 1c \ + -foreground #303080 -underline 1 + .t tag configure hot -foreground red -underline 1 +} +.t tag bind demo { + invoke [.t index {@%x,%y}] +} +set lastLine "" +.t tag bind demo { + set lastLine [.t index {@%x,%y linestart}] + .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" + .t config -cursor hand2 + showStatus [.t index {@%x,%y}] +} +.t tag bind demo { + .t tag remove hot 1.0 end + .t config -cursor xterm + .statusBar.lab config -text "" +} +.t tag bind demo { + set newLine [.t index {@%x,%y linestart}] + if {$newLine ne $lastLine} { + .t tag remove hot 1.0 end + set lastLine $newLine + + set tags [.t tag names {@%x,%y}] + set i [lsearch -glob $tags demo-*] + if {$i >= 0} { + .t tag add hot "$lastLine +1 chars" "$lastLine lineend -1 chars" + } + } + showStatus [.t index {@%x,%y}] +} + +############################################################################## +# Create the text for the text widget. + +# addFormattedText -- +# +# Add formatted text (but not hypertext) to the text widget after first +# passing it through the message catalog to allow for localization. +# Lines starting with @@ are formatting directives (insert title, insert +# demo hyperlink, begin newline, or change style) and all other lines +# are literal strings to be inserted. Substitutions are performed, +# allowing processing pieces through the message catalog. Blank lines +# are ignored. +# +proc addFormattedText {formattedText} { + set style normal + set isNL 1 + set demoCount 0 + set new 0 + foreach line [split $formattedText \n] { + set line [string trim $line] + if {$line eq ""} { + continue + } + if {[string match @@* $line]} { + set data [string range $line 2 end] + set key [lindex $data 0] + set values [lrange $data 1 end] + switch -exact -- $key { + title { + .t insert end [mc $values]\n title \n normal + } + newline { + .t insert end \n $style + set isNL 1 + } + subtitle { + .t insert end "\n" {} [mc $values] subtitle \ + " \n " demospace + set demoCount 0 + } + demo { + set description [lassign $values name] + .t insert end "[incr demoCount]. [mc $description]." \ + [list demo demo-$name] + if {$new} { + .t image create end -image ::img::new -padx 5 + set new 0 + } + .t insert end " \n " demospace + } + new { + set new 1 + } + default { + set style $key + } + } + continue + } + if {!$isNL} { + .t insert end " " $style + } + set isNL 0 + .t insert end [mc $line] $style + } +} + +addFormattedText { + @@title Tk Widget Demonstrations + + This application provides a front end for several short scripts + that demonstrate what you can do with Tk widgets. Each of the + numbered lines below describes a demonstration; you can click on + it to invoke the demonstration. Once the demonstration window + appears, you can click the + @@bold + See Code + @@normal + button to see the Tcl/Tk code that created the demonstration. If + you wish, you can edit the code and click the + @@bold + Rerun Demo + @@normal + button in the code window to reinvoke the demonstration with the + modified code. + @@newline + + @@subtitle Labels, buttons, checkbuttons, and radiobuttons + @@demo label Labels (text and bitmaps) + @@demo unicodeout Labels and UNICODE text + @@demo button Buttons + @@demo check Check-buttons (select any of a group) + @@demo radio Radio-buttons (select one of a group) + @@demo puzzle A 15-puzzle game made out of buttons + @@demo icon Iconic buttons that use bitmaps + @@demo image1 Two labels displaying images + @@demo image2 A simple user interface for viewing images + @@demo labelframe Labelled frames + @@new + @@demo ttkbut The simple Themed Tk widgets + + @@subtitle Listboxes and Trees + @@demo states The 50 states + @@demo colors Colors: change the color scheme for the application + @@demo sayings A collection of famous and infamous sayings + @@new + @@demo tree A directory browser tree + + @@subtitle Entries, Spin-boxes and Combo-boxes + @@demo entry1 Entries without scrollbars + @@demo entry2 Entries with scrollbars + @@demo entry3 Validated entries and password fields + @@demo spin Spin-boxes + @@new + @@demo combo Combo-boxes + @@demo form Simple Rolodex-like form + + @@subtitle Text + @@demo text Basic editable text + @@demo style Text display styles + @@demo bind Hypertext (tag bindings) + @@demo twind A text widget with embedded windows and other features + @@demo search A search tool built with a text widget + @@new + @@demo textpeer Peering text widgets + + @@subtitle Canvases + @@demo items The canvas item types + @@demo plot A simple 2-D plot + @@demo ctext Text items in canvases + @@demo arrow An editor for arrowheads on canvas lines + @@demo ruler A ruler with adjustable tab stops + @@demo floor A building floor plan + @@demo cscroll A simple scrollable canvas + + @@subtitle Scales and Progress Bars + @@demo hscale Horizontal scale + @@demo vscale Vertical scale + @@new + @@demo ttkprogress Progress bar + + @@subtitle Paned Windows and Notebooks + @@demo paned1 Horizontal paned window + @@demo paned2 Vertical paned window + @@new + @@demo ttkpane Themed nested panes + @@new + @@demo ttknote Notebook widget + + @@subtitle Menus and Toolbars + @@demo menu Menus and cascades (sub-menus) + @@demo menubu Menu-buttons + @@new + @@demo ttkmenu Themed menu buttons + @@new + @@demo toolbar Themed toolbar + + @@subtitle Common Dialogs + @@demo msgbox Message boxes + @@demo filebox File selection dialog + @@demo clrpick Color picker + + @@subtitle Animation + @@new + @@demo anilabel Animated labels + @@new + @@demo aniwave Animated wave + @@new + @@demo pendulum Pendulum simulation + @@new + @@demo goldberg A celebration of Rube Goldberg + + @@subtitle Miscellaneous + @@demo bitmap The built-in bitmaps + @@demo dialog1 A dialog box with a local grab + @@demo dialog2 A dialog box with a global grab +} + +############################################################################## + +.t configure -state disabled +focus .s + +# addSeeDismiss -- +# Add "See Code" and "Dismiss" button frame, with optional "See Vars" +# +# Arguments: +# w - The name of the frame to use. + +proc addSeeDismiss {w show {vars {}} {extra {}}} { + ## See Code / Dismiss buttons + ttk::frame $w + ttk::separator $w.sep + #ttk::frame $w.sep -height 2 -relief sunken + grid $w.sep -columnspan 4 -row 0 -sticky ew -pady 2 + ttk::button $w.dismiss -text [mc "Dismiss"] \ + -image ::img::delete -compound left \ + -command [list destroy [winfo toplevel $w]] + ttk::button $w.code -text [mc "See Code"] \ + -image ::img::view -compound left \ + -command [list showCode $show] + set buttons [list x $w.code $w.dismiss] + if {[llength $vars]} { + ttk::button $w.vars -text [mc "See Variables"] \ + -image ::img::view -compound left \ + -command [concat [list showVars $w.dialog] $vars] + set buttons [linsert $buttons 1 $w.vars] + } + if {$extra ne ""} { + set buttons [linsert $buttons 1 [uplevel 1 $extra]] + } + grid {*}$buttons -padx 4 -pady 4 + grid columnconfigure $w 0 -weight 1 + if {[tk windowingsystem] eq "aqua"} { + foreach b [lrange $buttons 1 end] {$b configure -takefocus 0} + grid configure $w.sep -pady 0 + grid configure {*}$buttons -pady {10 12} + grid configure [lindex $buttons 1] -padx {16 4} + grid configure [lindex $buttons end] -padx {4 18} + } + return $w +} + +# positionWindow -- +# This procedure is invoked by most of the demos to position a new demo +# window. +# +# Arguments: +# w - The name of the window to position. + +proc positionWindow w { + wm geometry $w +300+300 +} + +# showVars -- +# Displays the values of one or more variables in a window, and updates the +# display whenever any of the variables changes. +# +# Arguments: +# w - Name of new window to create for display. +# args - Any number of names of variables. + +proc showVars {w args} { + catch {destroy $w} + toplevel $w + wm title $w [mc "Variable values"] + + set b [ttk::frame $w.frame] + grid $b -sticky news + set f [ttk::labelframe $b.title -text [mc "Variable values:"]] + foreach var $args { + ttk::label $f.n$var -text "$var:" -anchor w + ttk::label $f.v$var -textvariable $var -anchor w + grid $f.n$var $f.v$var -padx 2 -pady 2 -sticky w + } + ttk::button $b.ok -width 8 -text [mc "OK"] \ + -command [list destroy $w] -default active + bind $w [list $b.ok invoke] + bind $w [list $b.ok invoke] + + grid $f -sticky news -padx 4 + grid $b.ok -sticky e -padx 4 -pady {6 4} + if {[tk windowingsystem] eq "aqua"} { + $b.ok configure -takefocus 0 + grid configure $b.ok -pady {10 12} -padx {16 18} + grid configure $f -padx 10 -pady {10 0} + } + grid columnconfig $f 1 -weight 1 + grid rowconfigure $f 100 -weight 1 + grid columnconfig $b 0 -weight 1 + grid rowconfigure $b 0 -weight 1 + grid columnconfig $w 0 -weight 1 + grid rowconfigure $w 0 -weight 1 +} + +# invoke -- +# This procedure is called when the user clicks on a demo description. It is +# responsible for invoking the demonstration. +# +# Arguments: +# index - The index of the character that the user clicked on. + +proc invoke index { + global tk_demoDirectory + set tags [.t tag names $index] + set i [lsearch -glob $tags demo-*] + if {$i < 0} { + return + } + set cursor [.t cget -cursor] + .t configure -cursor watch + update + set demo [string range [lindex $tags $i] 5 end] + uplevel [list source [file join $tk_demoDirectory $demo.tcl]] + update + .t configure -cursor $cursor + + .t tag add visited "$index linestart +1 chars" "$index lineend -1 chars" +} + +# showStatus -- +# +# Show the name of the demo program in the status bar. This procedure is +# called when the user moves the cursor over a demo description. +# +proc showStatus index { + set tags [.t tag names $index] + set i [lsearch -glob $tags demo-*] + set cursor [.t cget -cursor] + if {$i < 0} { + .statusBar.lab config -text " " + set newcursor xterm + } else { + set demo [string range [lindex $tags $i] 5 end] + .statusBar.lab config -text [mc "Run the \"%s\" sample program" $demo] + set newcursor hand2 + } + if {$cursor ne $newcursor} { + .t config -cursor $newcursor + } +} + +# evalShowCode -- +# +# Arguments: +# w - Name of text widget containing code to eval + +proc evalShowCode {w} { + set code [$w get 1.0 end-1c] + uplevel #0 $code +} + +# showCode -- +# This procedure creates a toplevel window that displays the code for a +# demonstration and allows it to be edited and reinvoked. +# +# Arguments: +# w - The name of the demonstration's window, which can be used to +# derive the name of the file containing its code. + +proc showCode w { + global tk_demoDirectory + set file [string range $w 1 end].tcl + set top .code + if {![winfo exists $top]} { + toplevel $top + + set t [frame $top.f] + set text [text $t.text -font fixedFont -height 30 -wrap word -bd 1 \ + -xscrollcommand [list $t.xscroll set] \ + -yscrollcommand [list $t.yscroll set] \ + -setgrid 1 -highlightthickness 0 -pady 2 -padx 3] + scrollbar $t.xscroll -command [list $t.text xview] \ + -highlightthickness 0 -orient horizontal -bd 1 + scrollbar $t.yscroll -command [list $t.text yview] \ + -highlightthickness 0 -orient vertical -bd 1 + if {[tk windowingsystem] eq "aqua"} { + foreach i [list $t.text $t.xscroll $t.yscroll] {$i configure -bd 0} + } + + grid $t.text $t.yscroll -sticky news + #grid $t.xscroll + grid rowconfigure $t 0 -weight 1 + grid columnconfig $t 0 -weight 1 + + set btns [ttk::frame $top.btns] + ttk::separator $btns.sep + grid $btns.sep -columnspan 4 -row 0 -sticky ew -pady 2 + ttk::button $btns.dismiss -text [mc "Dismiss"] \ + -default active -command [list destroy $top] \ + -image ::img::delete -compound left + ttk::button $btns.print -text [mc "Print Code"] \ + -command [list printCode $text $file] \ + -image ::img::print -compound left + ttk::button $btns.rerun -text [mc "Rerun Demo"] \ + -command [list evalShowCode $text] \ + -image ::img::refresh -compound left + set buttons [list x $btns.rerun $btns.print $btns.dismiss] + grid {*}$buttons -padx 4 -pady 4 + grid columnconfigure $btns 0 -weight 1 + if {[tk windowingsystem] eq "aqua"} { + foreach b [lrange $buttons 1 end] {$b configure -takefocus 0} + grid configure $btns.sep -pady 0 + grid configure {*}$buttons -pady {10 12} + grid configure [lindex $buttons 1] -padx {16 4} + grid configure [lindex $buttons end] -padx {4 18} + } + grid $t -sticky news + grid $btns -sticky ew + grid rowconfigure $top 0 -weight 1 + grid columnconfig $top 0 -weight 1 + + bind $top { + if {[winfo class %W] ne "Text"} { .code.btns.dismiss invoke } + } + bind $top [bind $top ] + } else { + wm deiconify $top + raise $top + } + wm title $top [mc "Demo code: %s" [file join $tk_demoDirectory $file]] + wm iconname $top $file + set id [open [file join $tk_demoDirectory $file]] + $top.f.text delete 1.0 end + $top.f.text insert 1.0 [read $id] + $top.f.text mark set insert 1.0 + close $id +} + +# printCode -- +# Prints the source code currently displayed in the See Code dialog. Much +# thanks to Arjen Markus for this. +# +# Arguments: +# w - Name of text widget containing code to print +# file - Name of the original file (implicitly for title) + +proc printCode {w file} { + set code [$w get 1.0 end-1c] + + set dir "." + if {[info exists ::env(HOME)]} { + set dir "$::env(HOME)" + } + if {[info exists ::env(TMP)]} { + set dir $::env(TMP) + } + if {[info exists ::env(TEMP)]} { + set dir $::env(TEMP) + } + + set filename [file join $dir "tkdemo-$file"] + set outfile [open $filename "w"] + puts $outfile $code + close $outfile + + switch -- $::tcl_platform(platform) { + unix { + if {[catch {exec lp -c $filename} msg]} { + tk_messageBox -title "Print spooling failure" \ + -message "Print spooling probably failed: $msg" + } + } + windows { + if {[catch {PrintTextWin32 $filename} msg]} { + tk_messageBox -title "Print spooling failure" \ + -message "Print spooling probably failed: $msg" + } + } + default { + tk_messageBox -title "Operation not Implemented" \ + -message "Wow! Unknown platform: $::tcl_platform(platform)" + } + } + + # + # Be careful to throw away the temporary file in a gentle manner ... + # + if {[file exists $filename]} { + catch {file delete $filename} + } +} + +# PrintTextWin32 -- +# Print a file under Windows using all the "intelligence" necessary +# +# Arguments: +# filename - Name of the file +# +# Note: +# Taken from the Wiki page by Keith Vetter, "Printing text files under +# Windows". +# Note: +# Do not execute the command in the background: that way we can dispose of the +# file smoothly. +# +proc PrintTextWin32 {filename} { + package require registry + set app [auto_execok notepad.exe] + set pcmd "$app /p %1" + catch { + set app [registry get {HKEY_CLASSES_ROOT\.txt} {}] + set pcmd [registry get \ + {HKEY_CLASSES_ROOT\\$app\\shell\\print\\command} {}] + } + + regsub -all {%1} $pcmd $filename pcmd + puts $pcmd + + regsub -all {\\} $pcmd {\\\\} pcmd + set command "[auto_execok start] /min $pcmd" + eval exec $command +} + +# aboutBox -- +# +# Pops up a message box with an "about" message +# +proc aboutBox {} { + tk_messageBox -icon info -type ok -title [mc "About Widget Demo"] \ + -message "[mc {Tk widget demonstration application}] + +[mc {Copyright (c) %s} {1996-1997 Sun Microsystems, Inc.}] +[mc {Copyright (c) %s} {1997-2000 Ajuba Solutions, Inc.}] +[mc {Copyright (c) %s} {2001-2007 Donal K. Fellows}] +[mc {Copyright (c) %s} {2002-2007 Daniel A. Steffen}]" +} + +# Local Variables: +# mode: tcl +# End: diff --git a/mingw/lib/tk8.5/dialog.tcl b/mingw/lib/tk8.5/dialog.tcl new file mode 100644 index 00000000..0623b899 --- /dev/null +++ b/mingw/lib/tk8.5/dialog.tcl @@ -0,0 +1,215 @@ +# dialog.tcl -- +# +# This file defines the procedure tk_dialog, which creates a dialog +# box containing a bitmap, a message, and one or more buttons. +# +# RCS: @(#) $Id: dialog.tcl,v 1.22 2007/05/30 06:34:18 das Exp $ +# +# Copyright (c) 1992-1993 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# +# ::tk_dialog: +# +# This procedure displays a dialog box, waits for a button in the dialog +# to be invoked, then returns the index of the selected button. If the +# dialog somehow gets destroyed, -1 is returned. +# +# Arguments: +# w - Window to use for dialog top-level. +# title - Title to display in dialog's decorative frame. +# text - Message to display in dialog. +# bitmap - Bitmap to display in dialog (empty string means none). +# default - Index of button that is to display the default ring +# (-1 means none). +# args - One or more strings to display in buttons across the +# bottom of the dialog box. + +proc ::tk_dialog {w title text bitmap default args} { + global tcl_platform + variable ::tk::Priv + + # Check that $default was properly given + if {[string is integer -strict $default]} { + if {$default >= [llength $args]} { + return -code error "default button index greater than number of\ + buttons specified for tk_dialog" + } + } elseif {"" eq $default} { + set default -1 + } else { + set default [lsearch -exact $args $default] + } + + set windowingsystem [tk windowingsystem] + if {$windowingsystem eq "aqua"} { + option add *Dialog*background systemDialogBackgroundActive widgetDefault + option add *Dialog*Button.highlightBackground \ + systemDialogBackgroundActive widgetDefault + } + + # 1. Create the top-level window and divide it into top + # and bottom parts. + + destroy $w + toplevel $w -class Dialog + wm title $w $title + wm iconname $w Dialog + wm protocol $w WM_DELETE_WINDOW { } + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + # + if {[winfo viewable [winfo toplevel [winfo parent $w]]] } { + wm transient $w [winfo toplevel [winfo parent $w]] + } + + if {$windowingsystem eq "aqua"} { + ::tk::unsupported::MacWindowStyle style $w moveableModal {} + } + + frame $w.bot + frame $w.top + if {$windowingsystem eq "x11"} { + $w.bot configure -relief raised -bd 1 + $w.top configure -relief raised -bd 1 + } + pack $w.bot -side bottom -fill both + pack $w.top -side top -fill both -expand 1 + grid anchor $w.bot center + + # 2. Fill the top part with bitmap and message (use the option + # database for -wraplength and -font so that they can be + # overridden by the caller). + + option add *Dialog.msg.wrapLength 3i widgetDefault + if {$windowingsystem eq "aqua"} { + option add *Dialog.msg.font system widgetDefault + } else { + option add *Dialog.msg.font {Times 12} widgetDefault + } + + label $w.msg -justify left -text $text + pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m + if {$bitmap ne ""} { + if {$windowingsystem eq "aqua" && $bitmap eq "error"} { + set bitmap "stop" + } + label $w.bitmap -bitmap $bitmap + pack $w.bitmap -in $w.top -side left -padx 3m -pady 3m + } + + # 3. Create a row of buttons at the bottom of the dialog. + + set i 0 + foreach but $args { + button $w.button$i -text $but -command [list set ::tk::Priv(button) $i] + if {$i == $default} { + $w.button$i configure -default active + } else { + $w.button$i configure -default normal + } + grid $w.button$i -in $w.bot -column $i -row 0 -sticky ew \ + -padx 10 -pady 4 + grid columnconfigure $w.bot $i + # We boost the size of some Mac buttons for l&f + if {$windowingsystem eq "aqua"} { + set tmp [string tolower $but] + if {$tmp eq "ok" || $tmp eq "cancel"} { + grid columnconfigure $w.bot $i -minsize 90 + } + grid configure $w.button$i -pady 7 + } + incr i + } + + # 4. Create a binding for on the dialog if there is a + # default button. + + if {$default >= 0} { + bind $w " + [list $w.button$default] configure -state active -relief sunken + update idletasks + after 100 + set ::tk::Priv(button) $default + " + } + + # 5. Create a binding for the window that sets the + # button variable to -1; this is needed in case something happens + # that destroys the window, such as its parent window being destroyed. + + bind $w {set ::tk::Priv(button) -1} + + # 6. Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + wm withdraw $w + update idletasks + set x [expr {[winfo screenwidth $w]/2 - [winfo reqwidth $w]/2 \ + - [winfo vrootx [winfo parent $w]]}] + set y [expr {[winfo screenheight $w]/2 - [winfo reqheight $w]/2 \ + - [winfo vrooty [winfo parent $w]]}] + # Make sure that the window is on the screen and set the maximum + # size of the window is the size of the screen. That'll let things + # fail fairly gracefully when very large messages are used. [Bug 827535] + if {$x < 0} { + set x 0 + } + if {$y < 0} { + set y 0 + } + wm maxsize $w [winfo screenwidth $w] [winfo screenheight $w] + wm geometry $w +$x+$y + wm deiconify $w + + tkwait visibility $w + + # 7. Set a grab and claim the focus too. + + set oldFocus [focus] + set oldGrab [grab current $w] + if {$oldGrab ne ""} { + set grabStatus [grab status $oldGrab] + } + grab $w + if {$default >= 0} { + focus $w.button$default + } else { + focus $w + } + + # 8. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(button) + catch {focus $oldFocus} + catch { + # It's possible that the window has already been destroyed, + # hence this "catch". Delete the Destroy handler so that + # Priv(button) doesn't get reset by it. + + bind $w {} + destroy $w + } + if {$oldGrab ne ""} { + if {$grabStatus ne "global"} { + grab $oldGrab + } else { + grab -global $oldGrab + } + } + return $Priv(button) +} diff --git a/mingw/lib/tk8.5/entry.tcl b/mingw/lib/tk8.5/entry.tcl new file mode 100644 index 00000000..32b19738 --- /dev/null +++ b/mingw/lib/tk8.5/entry.tcl @@ -0,0 +1,665 @@ +# entry.tcl -- +# +# This file defines the default bindings for Tk entry widgets and provides +# procedures that help in implementing those bindings. +# +# RCS: @(#) $Id: entry.tcl,v 1.24 2005/07/25 09:06:00 dkf Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# afterId - If non-null, it means that auto-scanning is underway +# and it gives the "after" id for the next auto-scan +# command to be executed. +# mouseMoved - Non-zero means the mouse has moved a significant +# amount since the button went down (so, for example, +# start dragging out a selection). +# pressX - X-coordinate at which the mouse button was pressed. +# selectMode - The style of selection currently underway: +# char, word, or line. +# x, y - Last known mouse coordinates for scanning +# and auto-scanning. +# data - Used for Cut and Copy +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- +bind Entry <> { + if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + %W delete sel.first sel.last + unset tk::Priv(data) + } +} +bind Entry <> { + if {![catch {tk::EntryGetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + unset tk::Priv(data) + } +} +bind Entry <> { + global tcl_platform + catch { + if {[tk windowingsystem] ne "x11"} { + catch { + %W delete sel.first sel.last + } + } + %W insert insert [::tk::GetSelection %W CLIPBOARD] + tk::EntrySeeInsert %W + } +} +bind Entry <> { + %W delete sel.first sel.last +} +bind Entry <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + tk::EntryPaste %W %x + } +} + +bind Entry <> { + %W selection range 0 end + %W icursor end +} + +# Standard Motif bindings: + +bind Entry <1> { + tk::EntryButton1 %W %x + %W selection clear +} +bind Entry { + set tk::Priv(x) %x + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(selectMode) word + tk::EntryMouseSelect %W %x + catch {%W icursor sel.last} +} +bind Entry { + set tk::Priv(selectMode) line + tk::EntryMouseSelect %W %x + catch {%W icursor sel.last} +} +bind Entry { + set tk::Priv(selectMode) char + %W selection adjust @%x +} +bind Entry { + set tk::Priv(selectMode) word + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(selectMode) line + tk::EntryMouseSelect %W %x +} +bind Entry { + set tk::Priv(x) %x + tk::EntryAutoScan %W +} +bind Entry { + tk::CancelRepeat +} +bind Entry { + tk::CancelRepeat +} +bind Entry { + %W icursor @%x +} + +bind Entry { + tk::EntrySetCursor %W [expr {[%W index insert] - 1}] +} +bind Entry { + tk::EntrySetCursor %W [expr {[%W index insert] + 1}] +} +bind Entry { + tk::EntryKeySelect %W [expr {[%W index insert] - 1}] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntryKeySelect %W [expr {[%W index insert] + 1}] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W [tk::EntryPreviousWord %W insert] +} +bind Entry { + tk::EntrySetCursor %W [tk::EntryNextWord %W insert] +} +bind Entry { + tk::EntryKeySelect %W [tk::EntryPreviousWord %W insert] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntryKeySelect %W [tk::EntryNextWord %W insert] + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W 0 +} +bind Entry { + tk::EntryKeySelect %W 0 + tk::EntrySeeInsert %W +} +bind Entry { + tk::EntrySetCursor %W end +} +bind Entry { + tk::EntryKeySelect %W end + tk::EntrySeeInsert %W +} + +bind Entry { + if {[%W selection present]} { + %W delete sel.first sel.last + } else { + %W delete insert + } +} +bind Entry { + tk::EntryBackspace %W +} + +bind Entry { + %W selection from insert +} +bind Entry { + tk::ListboxBeginSelect %W [%W index active] +} +bind Listbox { + tk::ListboxBeginExtend %W [%W index active] +} +bind Listbox { + tk::ListboxBeginExtend %W [%W index active] +} +bind Listbox { + tk::ListboxCancel %W +} +bind Listbox { + tk::ListboxSelectAll %W +} +bind Listbox { + if {[%W cget -selectmode] ne "browse"} { + %W selection clear 0 end + event generate %W <> + } +} + +# Additional Tk bindings that aren't part of the Motif look and feel: + +bind Listbox <2> { + %W scan mark %x %y +} +bind Listbox { + %W scan dragto %x %y +} + +# The MouseWheel will typically only fire on Windows and Mac OS X. +# However, someone could use the "event generate" command to produce +# one on other platforms. + +if {[tk windowingsystem] eq "aqua"} { + bind Listbox { + %W yview scroll [expr {- (%D)}] units + } + bind Listbox { + %W yview scroll [expr {-10 * (%D)}] units + } + bind Listbox { + %W xview scroll [expr {- (%D)}] units + } + bind Listbox { + %W xview scroll [expr {-10 * (%D)}] units + } +} else { + bind Listbox { + %W yview scroll [expr {- (%D / 120) * 4}] units + } +} + +if {"x11" eq [tk windowingsystem]} { + # Support for mousewheels on Linux/Unix commonly comes through mapping + # the wheel to the extended buttons. If you have a mousewheel, find + # Linux configuration info at: + # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ + bind Listbox <4> { + if {!$tk_strictMotif} { + %W yview scroll -5 units + } + } + bind Listbox <5> { + if {!$tk_strictMotif} { + %W yview scroll 5 units + } + } +} + +# ::tk::ListboxBeginSelect -- +# +# This procedure is typically invoked on button-1 presses. It begins +# the process of making a selection in the listbox. Its exact behavior +# depends on the selection mode currently in effect for the listbox; +# see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginSelect {w el} { + variable ::tk::Priv + if {[$w cget -selectmode] eq "multiple"} { + if {[$w selection includes $el]} { + $w selection clear $el + } else { + $w selection set $el + } + } else { + $w selection clear 0 end + $w selection set $el + $w selection anchor $el + set Priv(listboxSelection) {} + set Priv(listboxPrev) $el + } + event generate $w <> +} + +# ::tk::ListboxMotion -- +# +# This procedure is called to process mouse motion events while +# button 1 is down. It may move or extend the selection, depending +# on the listbox's selection mode. +# +# Arguments: +# w - The listbox widget. +# el - The element under the pointer (must be a number). + +proc ::tk::ListboxMotion {w el} { + variable ::tk::Priv + if {$el == $Priv(listboxPrev)} { + return + } + set anchor [$w index anchor] + switch [$w cget -selectmode] { + browse { + $w selection clear 0 end + $w selection set $el + set Priv(listboxPrev) $el + event generate $w <> + } + extended { + set i $Priv(listboxPrev) + if {$i eq ""} { + set i $el + $w selection set $el + } + if {[$w selection includes anchor]} { + $w selection clear $i $el + $w selection set anchor $el + } else { + $w selection clear $i $el + $w selection clear anchor $el + } + if {![info exists Priv(listboxSelection)]} { + set Priv(listboxSelection) [$w curselection] + } + while {($i < $el) && ($i < $anchor)} { + if {[lsearch $Priv(listboxSelection) $i] >= 0} { + $w selection set $i + } + incr i + } + while {($i > $el) && ($i > $anchor)} { + if {[lsearch $Priv(listboxSelection) $i] >= 0} { + $w selection set $i + } + incr i -1 + } + set Priv(listboxPrev) $el + event generate $w <> + } + } +} + +# ::tk::ListboxBeginExtend -- +# +# This procedure is typically invoked on shift-button-1 presses. It +# begins the process of extending a selection in the listbox. Its +# exact behavior depends on the selection mode currently in effect +# for the listbox; see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginExtend {w el} { + if {[$w cget -selectmode] eq "extended"} { + if {[$w selection includes anchor]} { + ListboxMotion $w $el + } else { + # No selection yet; simulate the begin-select operation. + ListboxBeginSelect $w $el + } + } +} + +# ::tk::ListboxBeginToggle -- +# +# This procedure is typically invoked on control-button-1 presses. It +# begins the process of toggling a selection in the listbox. Its +# exact behavior depends on the selection mode currently in effect +# for the listbox; see the Motif documentation for details. +# +# Arguments: +# w - The listbox widget. +# el - The element for the selection operation (typically the +# one under the pointer). Must be in numerical form. + +proc ::tk::ListboxBeginToggle {w el} { + variable ::tk::Priv + if {[$w cget -selectmode] eq "extended"} { + set Priv(listboxSelection) [$w curselection] + set Priv(listboxPrev) $el + $w selection anchor $el + if {[$w selection includes $el]} { + $w selection clear $el + } else { + $w selection set $el + } + event generate $w <> + } +} + +# ::tk::ListboxAutoScan -- +# This procedure is invoked when the mouse leaves an entry window +# with button 1 down. It scrolls the window up, down, left, or +# right, depending on where the mouse left the window, and reschedules +# itself as an "after" command so that the window continues to scroll until +# the mouse moves back into the window or the mouse button is released. +# +# Arguments: +# w - The entry window. + +proc ::tk::ListboxAutoScan {w} { + variable ::tk::Priv + if {![winfo exists $w]} return + set x $Priv(x) + set y $Priv(y) + if {$y >= [winfo height $w]} { + $w yview scroll 1 units + } elseif {$y < 0} { + $w yview scroll -1 units + } elseif {$x >= [winfo width $w]} { + $w xview scroll 2 units + } elseif {$x < 0} { + $w xview scroll -2 units + } else { + return + } + ListboxMotion $w [$w index @$x,$y] + set Priv(afterId) [after 50 [list tk::ListboxAutoScan $w]] +} + +# ::tk::ListboxUpDown -- +# +# Moves the location cursor (active element) up or down by one element, +# and changes the selection if we're in browse or extended selection +# mode. +# +# Arguments: +# w - The listbox widget. +# amount - +1 to move down one item, -1 to move back one item. + +proc ::tk::ListboxUpDown {w amount} { + variable ::tk::Priv + $w activate [expr {[$w index active] + $amount}] + $w see active + switch [$w cget -selectmode] { + browse { + $w selection clear 0 end + $w selection set active + event generate $w <> + } + extended { + $w selection clear 0 end + $w selection set active + $w selection anchor active + set Priv(listboxPrev) [$w index active] + set Priv(listboxSelection) {} + event generate $w <> + } + } +} + +# ::tk::ListboxExtendUpDown -- +# +# Does nothing unless we're in extended selection mode; in this +# case it moves the location cursor (active element) up or down by +# one element, and extends the selection to that point. +# +# Arguments: +# w - The listbox widget. +# amount - +1 to move down one item, -1 to move back one item. + +proc ::tk::ListboxExtendUpDown {w amount} { + variable ::tk::Priv + if {[$w cget -selectmode] ne "extended"} { + return + } + set active [$w index active] + if {![info exists Priv(listboxSelection)]} { + $w selection set $active + set Priv(listboxSelection) [$w curselection] + } + $w activate [expr {$active + $amount}] + $w see active + ListboxMotion $w [$w index active] +} + +# ::tk::ListboxDataExtend +# +# This procedure is called for key-presses such as Shift-KEndData. +# If the selection mode isn't multiple or extend then it does nothing. +# Otherwise it moves the active element to el and, if we're in +# extended mode, extends the selection to that point. +# +# Arguments: +# w - The listbox widget. +# el - An integer element number. + +proc ::tk::ListboxDataExtend {w el} { + set mode [$w cget -selectmode] + if {$mode eq "extended"} { + $w activate $el + $w see $el + if {[$w selection includes anchor]} { + ListboxMotion $w $el + } + } elseif {$mode eq "multiple"} { + $w activate $el + $w see $el + } +} + +# ::tk::ListboxCancel +# +# This procedure is invoked to cancel an extended selection in +# progress. If there is an extended selection in progress, it +# restores all of the items between the active one and the anchor +# to their previous selection state. +# +# Arguments: +# w - The listbox widget. + +proc ::tk::ListboxCancel w { + variable ::tk::Priv + if {[$w cget -selectmode] ne "extended"} { + return + } + set first [$w index anchor] + set last $Priv(listboxPrev) + if {$last eq ""} { + # Not actually doing any selection right now + return + } + if {$first > $last} { + set tmp $first + set first $last + set last $tmp + } + $w selection clear $first $last + while {$first <= $last} { + if {[lsearch $Priv(listboxSelection) $first] >= 0} { + $w selection set $first + } + incr first + } + event generate $w <> +} + +# ::tk::ListboxSelectAll +# +# This procedure is invoked to handle the "select all" operation. +# For single and browse mode, it just selects the active element. +# Otherwise it selects everything in the widget. +# +# Arguments: +# w - The listbox widget. + +proc ::tk::ListboxSelectAll w { + set mode [$w cget -selectmode] + if {$mode eq "single" || $mode eq "browse"} { + $w selection clear 0 end + $w selection set active + } else { + $w selection set 0 end + } + event generate $w <> +} diff --git a/mingw/lib/tk8.5/menu.tcl b/mingw/lib/tk8.5/menu.tcl new file mode 100644 index 00000000..311f14d2 --- /dev/null +++ b/mingw/lib/tk8.5/menu.tcl @@ -0,0 +1,1299 @@ +# menu.tcl -- +# +# This file defines the default bindings for Tk menus and menubuttons. +# It also implements keyboard traversal of menus and implements a few +# other utility procedures related to menus. +# +# RCS: @(#) $Id: menu.tcl,v 1.23 2005/10/16 02:36:45 hobbs Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1998-1999 by Scriptics Corporation. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# cursor - Saves the -cursor option for the posted menubutton. +# focus - Saves the focus during a menu selection operation. +# Focus gets restored here when the menu is unposted. +# grabGlobal - Used in conjunction with tk::Priv(oldGrab): if +# tk::Priv(oldGrab) is non-empty, then tk::Priv(grabGlobal) +# contains either an empty string or "-global" to +# indicate whether the old grab was a local one or +# a global one. +# inMenubutton - The name of the menubutton widget containing +# the mouse, or an empty string if the mouse is +# not over any menubutton. +# menuBar - The name of the menubar that is the root +# of the cascade hierarchy which is currently +# posted. This is null when there is no menu currently +# being pulled down from a menu bar. +# oldGrab - Window that had the grab before a menu was posted. +# Used to restore the grab state after the menu +# is unposted. Empty string means there was no +# grab previously set. +# popup - If a menu has been popped up via tk_popup, this +# gives the name of the menu. Otherwise this +# value is empty. +# postedMb - Name of the menubutton whose menu is currently +# posted, or an empty string if nothing is posted +# A grab is set on this widget. +# relief - Used to save the original relief of the current +# menubutton. +# window - When the mouse is over a menu, this holds the +# name of the menu; it's cleared when the mouse +# leaves the menu. +# tearoff - Whether the last menu posted was a tearoff or not. +# This is true always for unix, for tearoffs for Mac +# and Windows. +# activeMenu - This is the last active menu for use +# with the <> virtual event. +# activeItem - This is the last active menu item for +# use with the <> virtual event. +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# Overall note: +# This file is tricky because there are five different ways that menus +# can be used: +# +# 1. As a pulldown from a menubutton. In this style, the variable +# tk::Priv(postedMb) identifies the posted menubutton. +# 2. As a torn-off menu copied from some other menu. In this style +# tk::Priv(postedMb) is empty, and menu's type is "tearoff". +# 3. As an option menu, triggered from an option menubutton. In this +# style tk::Priv(postedMb) identifies the posted menubutton. +# 4. As a popup menu. In this style tk::Priv(postedMb) is empty and +# the top-level menu's type is "normal". +# 5. As a pulldown from a menubar. The variable tk::Priv(menubar) has +# the owning menubar, and the menu itself is of type "normal". +# +# The various binding procedures use the state described above to +# distinguish the various cases and take different actions in each +# case. +#------------------------------------------------------------------------- + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for menus +# and menubuttons. +#------------------------------------------------------------------------- + +bind Menubutton {} +bind Menubutton { + tk::MbEnter %W +} +bind Menubutton { + tk::MbLeave %W +} +bind Menubutton <1> { + if {$tk::Priv(inMenubutton) ne ""} { + tk::MbPost $tk::Priv(inMenubutton) %X %Y + } +} +bind Menubutton { + tk::MbMotion %W up %X %Y +} +bind Menubutton { + tk::MbMotion %W down %X %Y +} +bind Menubutton { + tk::MbButtonUp %W +} +bind Menubutton { + tk::MbPost %W + tk::MenuFirstEntry [%W cget -menu] +} + +# Must set focus when mouse enters a menu, in order to allow +# mixed-mode processing using both the mouse and the keyboard. +# Don't set the focus if the event comes from a grab release, +# though: such an event can happen after as part of unposting +# a cascaded chain of menus, after the focus has already been +# restored to wherever it was before menu selection started. + +bind Menu {} + +bind Menu { + set tk::Priv(window) %W + if {[%W cget -type] eq "tearoff"} { + if {"%m" ne "NotifyUngrab"} { + if {[tk windowingsystem] eq "x11"} { + tk_menuSetFocus %W + } + } + } + tk::MenuMotion %W %x %y %s +} + +bind Menu { + tk::MenuLeave %W %X %Y %s +} +bind Menu { + tk::MenuMotion %W %x %y %s +} +bind Menu { + tk::MenuButtonDown %W +} +bind Menu { + tk::MenuInvoke %W 1 +} +bind Menu { + tk::MenuInvoke %W 0 +} +bind Menu { + tk::MenuInvoke %W 0 +} +bind Menu { + tk::MenuEscape %W +} +bind Menu { + tk::MenuLeftArrow %W +} +bind Menu { + tk::MenuRightArrow %W +} +bind Menu { + tk::MenuUpArrow %W +} +bind Menu { + tk::MenuDownArrow %W +} +bind Menu { + tk::TraverseWithinMenu %W %A +} + +# The following bindings apply to all windows, and are used to +# implement keyboard menu traversal. + +if {[tk windowingsystem] eq "x11"} { + bind all { + tk::TraverseToMenu %W %A + } + + bind all { + tk::FirstMenu %W + } +} else { + bind Menubutton { + tk::TraverseToMenu %W %A + } + + bind Menubutton { + tk::FirstMenu %W + } +} + +# ::tk::MbEnter -- +# This procedure is invoked when the mouse enters a menubutton +# widget. It activates the widget unless it is disabled. Note: +# this procedure is only invoked when mouse button 1 is *not* down. +# The procedure ::tk::MbB1Enter is invoked if the button is down. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::MbEnter w { + variable ::tk::Priv + + if {$Priv(inMenubutton) ne ""} { + MbLeave $Priv(inMenubutton) + } + set Priv(inMenubutton) $w + if {[$w cget -state] ne "disabled"} { + $w configure -state active + } +} + +# ::tk::MbLeave -- +# This procedure is invoked when the mouse leaves a menubutton widget. +# It de-activates the widget, if the widget still exists. +# +# Arguments: +# w - The name of the widget. + +proc ::tk::MbLeave w { + variable ::tk::Priv + + set Priv(inMenubutton) {} + if {![winfo exists $w]} { + return + } + if {[$w cget -state] eq "active"} { + $w configure -state normal + } +} + +# ::tk::MbPost -- +# Given a menubutton, this procedure does all the work of posting +# its associated menu and unposting any other menu that is currently +# posted. +# +# Arguments: +# w - The name of the menubutton widget whose menu +# is to be posted. +# x, y - Root coordinates of cursor, used for positioning +# option menus. If not specified, then the center +# of the menubutton is used for an option menu. + +proc ::tk::MbPost {w {x {}} {y {}}} { + global errorInfo + variable ::tk::Priv + global tcl_platform + + if {[$w cget -state] eq "disabled" || $w eq $Priv(postedMb)} { + return + } + set menu [$w cget -menu] + if {$menu eq ""} { + return + } + set tearoff [expr {[tk windowingsystem] eq "x11" \ + || [$menu cget -type] eq "tearoff"}] + if {[string first $w $menu] != 0} { + error "can't post $menu: it isn't a descendant of $w (this is a new requirement in Tk versions 3.0 and later)" + } + set cur $Priv(postedMb) + if {$cur ne ""} { + MenuUnpost {} + } + set Priv(cursor) [$w cget -cursor] + set Priv(relief) [$w cget -relief] + $w configure -cursor arrow + $w configure -relief raised + + set Priv(postedMb) $w + set Priv(focus) [focus] + $menu activate none + GenerateMenuSelect $menu + + # If this looks like an option menubutton then post the menu so + # that the current entry is on top of the mouse. Otherwise post + # the menu just below the menubutton, as for a pull-down. + + update idletasks + if {[catch { + switch [$w cget -direction] { + above { + set x [winfo rootx $w] + set y [expr {[winfo rooty $w] - [winfo reqheight $menu]}] + # if we go offscreen to the top, show as 'below' + if {$y < 0} { + set y [expr {[winfo rooty $w] + [winfo height $w]}] + } + PostOverPoint $menu $x $y + } + below { + set x [winfo rootx $w] + set y [expr {[winfo rooty $w] + [winfo height $w]}] + # if we go offscreen to the bottom, show as 'above' + set mh [winfo reqheight $menu] + if {($y + $mh) > [winfo screenheight $w]} { + set y [expr {[winfo rooty $w] - $mh}] + } + PostOverPoint $menu $x $y + } + left { + set x [expr {[winfo rootx $w] - [winfo reqwidth $menu]}] + set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] + set entry [MenuFindName $menu [$w cget -text]] + if {[$w cget -indicatoron]} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + } + PostOverPoint $menu $x $y + if {$entry ne "" \ + && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } + } + right { + set x [expr {[winfo rootx $w] + [winfo width $w]}] + set y [expr {(2 * [winfo rooty $w] + [winfo height $w]) / 2}] + set entry [MenuFindName $menu [$w cget -text]] + if {[$w cget -indicatoron]} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + } + PostOverPoint $menu $x $y + if {$entry ne "" \ + && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } + } + default { + if {[$w cget -indicatoron]} { + if {$y eq ""} { + set x [expr {[winfo rootx $w] + [winfo width $w]/2}] + set y [expr {[winfo rooty $w] + [winfo height $w]/2}] + } + PostOverPoint $menu $x $y [MenuFindName $menu [$w cget -text]] + } else { + PostOverPoint $menu [winfo rootx $w] [expr {[winfo rooty $w]+[winfo height $w]}] + } + } + } + } msg]} { + # Error posting menu (e.g. bogus -postcommand). Unpost it and + # reflect the error. + + set savedInfo $errorInfo + MenuUnpost {} + error $msg $savedInfo + + } + + set Priv(tearoff) $tearoff + if {$tearoff != 0} { + focus $menu + if {[winfo viewable $w]} { + SaveGrabInfo $w + grab -global $w + } + } +} + +# ::tk::MenuUnpost -- +# This procedure unposts a given menu, plus all of its ancestors up +# to (and including) a menubutton, if any. It also restores various +# values to what they were before the menu was posted, and releases +# a grab if there's a menubutton involved. Special notes: +# 1. It's important to unpost all menus before releasing the grab, so +# that any Enter-Leave events (e.g. from menu back to main +# application) have mode NotifyGrab. +# 2. Be sure to enclose various groups of commands in "catch" so that +# the procedure will complete even if the menubutton or the menu +# or the grab window has been deleted. +# +# Arguments: +# menu - Name of a menu to unpost. Ignored if there +# is a posted menubutton. + +proc ::tk::MenuUnpost menu { + global tcl_platform + variable ::tk::Priv + set mb $Priv(postedMb) + + # Restore focus right away (otherwise X will take focus away when + # the menu is unmapped and under some window managers (e.g. olvwm) + # we'll lose the focus completely). + + catch {focus $Priv(focus)} + set Priv(focus) "" + + # Unpost menu(s) and restore some stuff that's dependent on + # what was posted. + + catch { + if {$mb ne ""} { + set menu [$mb cget -menu] + $menu unpost + set Priv(postedMb) {} + $mb configure -cursor $Priv(cursor) + $mb configure -relief $Priv(relief) + } elseif {$Priv(popup) ne ""} { + $Priv(popup) unpost + set Priv(popup) {} + } elseif {[$menu cget -type] ne "menubar" \ + && [$menu cget -type] ne "tearoff"} { + # We're in a cascaded sub-menu from a torn-off menu or popup. + # Unpost all the menus up to the toplevel one (but not + # including the top-level torn-off one) and deactivate the + # top-level torn off menu if there is one. + + while {1} { + set parent [winfo parent $menu] + if {[winfo class $parent] ne "Menu" \ + || ![winfo ismapped $parent]} { + break + } + $parent activate none + $parent postcascade none + GenerateMenuSelect $parent + set type [$parent cget -type] + if {$type eq "menubar" || $type eq "tearoff"} { + break + } + set menu $parent + } + if {[$menu cget -type] ne "menubar"} { + $menu unpost + } + } + } + + if {($Priv(tearoff) != 0) || $Priv(menuBar) ne ""} { + # Release grab, if any, and restore the previous grab, if there + # was one. + if {$menu ne ""} { + set grab [grab current $menu] + if {$grab ne ""} { + grab release $grab + } + } + RestoreOldGrab + if {$Priv(menuBar) ne ""} { + $Priv(menuBar) configure -cursor $Priv(cursor) + set Priv(menuBar) {} + } + if {[tk windowingsystem] ne "x11"} { + set Priv(tearoff) 0 + } + } +} + +# ::tk::MbMotion -- +# This procedure handles mouse motion events inside menubuttons, and +# also outside menubuttons when a menubutton has a grab (e.g. when a +# menu selection operation is in progress). +# +# Arguments: +# w - The name of the menubutton widget. +# upDown - "down" means button 1 is pressed, "up" means +# it isn't. +# rootx, rooty - Coordinates of mouse, in (virtual?) root window. + +proc ::tk::MbMotion {w upDown rootx rooty} { + variable ::tk::Priv + + if {$Priv(inMenubutton) eq $w} { + return + } + set new [winfo containing $rootx $rooty] + if {$new ne $Priv(inMenubutton) \ + && ($new eq "" || [winfo toplevel $new] eq [winfo toplevel $w])} { + if {$Priv(inMenubutton) ne ""} { + MbLeave $Priv(inMenubutton) + } + if {$new ne "" \ + && [winfo class $new] eq "Menubutton" \ + && ([$new cget -indicatoron] == 0) \ + && ([$w cget -indicatoron] == 0)} { + if {$upDown eq "down"} { + MbPost $new $rootx $rooty + } else { + MbEnter $new + } + } + } +} + +# ::tk::MbButtonUp -- +# This procedure is invoked to handle button 1 releases for menubuttons. +# If the release happens inside the menubutton then leave its menu +# posted with element 0 activated. Otherwise, unpost the menu. +# +# Arguments: +# w - The name of the menubutton widget. + +proc ::tk::MbButtonUp w { + variable ::tk::Priv + global tcl_platform + + set menu [$w cget -menu] + set tearoff [expr {[tk windowingsystem] eq "x11" || \ + ($menu ne "" && [$menu cget -type] eq "tearoff")}] + if {($tearoff != 0) && $Priv(postedMb) eq $w \ + && $Priv(inMenubutton) eq $w} { + MenuFirstEntry [$Priv(postedMb) cget -menu] + } else { + MenuUnpost {} + } +} + +# ::tk::MenuMotion -- +# This procedure is called to handle mouse motion events for menus. +# It does two things. First, it resets the active element in the +# menu, if the mouse is over the menu. Second, if a mouse button +# is down, it posts and unposts cascade entries to match the mouse +# position. +# +# Arguments: +# menu - The menu window. +# x - The x position of the mouse. +# y - The y position of the mouse. +# state - Modifier state (tells whether buttons are down). + +proc ::tk::MenuMotion {menu x y state} { + variable ::tk::Priv + if {$menu eq $Priv(window)} { + if {[$menu cget -type] eq "menubar"} { + if {[info exists Priv(focus)] && $menu ne $Priv(focus)} { + $menu activate @$x,$y + GenerateMenuSelect $menu + } + } else { + $menu activate @$x,$y + GenerateMenuSelect $menu + } + } + if {($state & 0x1f00) != 0} { + $menu postcascade active + } +} + +# ::tk::MenuButtonDown -- +# Handles button presses in menus. There are a couple of tricky things +# here: +# 1. Change the posted cascade entry (if any) to match the mouse position. +# 2. If there is a posted menubutton, must grab to the menubutton; this +# overrrides the implicit grab on button press, so that the menu +# button can track mouse motions over other menubuttons and change +# the posted menu. +# 3. If there's no posted menubutton (e.g. because we're a torn-off menu +# or one of its descendants) must grab to the top-level menu so that +# we can track mouse motions across the entire menu hierarchy. +# +# Arguments: +# menu - The menu window. + +proc ::tk::MenuButtonDown menu { + variable ::tk::Priv + global tcl_platform + + if {![winfo viewable $menu]} { + return + } + $menu postcascade active + if {$Priv(postedMb) ne "" && [winfo viewable $Priv(postedMb)]} { + grab -global $Priv(postedMb) + } else { + while {[$menu cget -type] eq "normal" \ + && [winfo class [winfo parent $menu]] eq "Menu" \ + && [winfo ismapped [winfo parent $menu]]} { + set menu [winfo parent $menu] + } + + if {$Priv(menuBar) eq {}} { + set Priv(menuBar) $menu + set Priv(cursor) [$menu cget -cursor] + $menu configure -cursor arrow + } + + # Don't update grab information if the grab window isn't changing. + # Otherwise, we'll get an error when we unpost the menus and + # restore the grab, since the old grab window will not be viewable + # anymore. + + if {$menu ne [grab current $menu]} { + SaveGrabInfo $menu + } + + # Must re-grab even if the grab window hasn't changed, in order + # to release the implicit grab from the button press. + + if {[tk windowingsystem] eq "x11"} { + grab -global $menu + } + } +} + +# ::tk::MenuLeave -- +# This procedure is invoked to handle Leave events for a menu. It +# deactivates everything unless the active element is a cascade element +# and the mouse is now over the submenu. +# +# Arguments: +# menu - The menu window. +# rootx, rooty - Root coordinates of mouse. +# state - Modifier state. + +proc ::tk::MenuLeave {menu rootx rooty state} { + variable ::tk::Priv + set Priv(window) {} + if {[$menu index active] eq "none"} { + return + } + if {[$menu type active] eq "cascade" \ + && [winfo containing $rootx $rooty] eq \ + [$menu entrycget active -menu]} { + return + } + $menu activate none + GenerateMenuSelect $menu +} + +# ::tk::MenuInvoke -- +# This procedure is invoked when button 1 is released over a menu. +# It invokes the appropriate menu action and unposts the menu if +# it came from a menubutton. +# +# Arguments: +# w - Name of the menu widget. +# buttonRelease - 1 means this procedure is called because of +# a button release; 0 means because of keystroke. + +proc ::tk::MenuInvoke {w buttonRelease} { + variable ::tk::Priv + + if {$buttonRelease && $Priv(window) eq ""} { + # Mouse was pressed over a menu without a menu button, then + # dragged off the menu (possibly with a cascade posted) and + # released. Unpost everything and quit. + + $w postcascade none + $w activate none + event generate $w <> + MenuUnpost $w + return + } + if {[$w type active] eq "cascade"} { + $w postcascade active + set menu [$w entrycget active -menu] + MenuFirstEntry $menu + } elseif {[$w type active] eq "tearoff"} { + ::tk::TearOffMenu $w + MenuUnpost $w + } elseif {[$w cget -type] eq "menubar"} { + $w postcascade none + set active [$w index active] + set isCascade [string equal [$w type $active] "cascade"] + + # Only de-activate the active item if it's a cascade; this prevents + # the annoying "activation flicker" you otherwise get with + # checkbuttons/commands/etc. on menubars + + if { $isCascade } { + $w activate none + event generate $w <> + } + + MenuUnpost $w + + # If the active item is not a cascade, invoke it. This enables + # the use of checkbuttons/commands/etc. on menubars (which is legal, + # but not recommended) + + if { !$isCascade } { + uplevel #0 [list $w invoke $active] + } + } else { + set active [$w index active] + if {$Priv(popup) eq "" || $active ne "none"} { + MenuUnpost $w + } + uplevel #0 [list $w invoke active] + } +} + +# ::tk::MenuEscape -- +# This procedure is invoked for the Cancel (or Escape) key. It unposts +# the given menu and, if it is the top-level menu for a menu button, +# unposts the menu button as well. +# +# Arguments: +# menu - Name of the menu window. + +proc ::tk::MenuEscape menu { + set parent [winfo parent $menu] + if {[winfo class $parent] ne "Menu"} { + MenuUnpost $menu + } elseif {[$parent cget -type] eq "menubar"} { + MenuUnpost $menu + RestoreOldGrab + } else { + MenuNextMenu $menu left + } +} + +# The following routines handle arrow keys. Arrow keys behave +# differently depending on whether the menu is a menu bar or not. + +proc ::tk::MenuUpArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextMenu $menu left + } else { + MenuNextEntry $menu -1 + } +} + +proc ::tk::MenuDownArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextMenu $menu right + } else { + MenuNextEntry $menu 1 + } +} + +proc ::tk::MenuLeftArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextEntry $menu -1 + } else { + MenuNextMenu $menu left + } +} + +proc ::tk::MenuRightArrow {menu} { + if {[$menu cget -type] eq "menubar"} { + MenuNextEntry $menu 1 + } else { + MenuNextMenu $menu right + } +} + +# ::tk::MenuNextMenu -- +# This procedure is invoked to handle "left" and "right" traversal +# motions in menus. It traverses to the next menu in a menu bar, +# or into or out of a cascaded menu. +# +# Arguments: +# menu - The menu that received the keyboard +# event. +# direction - Direction in which to move: "left" or "right" + +proc ::tk::MenuNextMenu {menu direction} { + variable ::tk::Priv + + # First handle traversals into and out of cascaded menus. + + if {$direction eq "right"} { + set count 1 + set parent [winfo parent $menu] + set class [winfo class $parent] + if {[$menu type active] eq "cascade"} { + $menu postcascade active + set m2 [$menu entrycget active -menu] + if {$m2 ne ""} { + MenuFirstEntry $m2 + } + return + } else { + set parent [winfo parent $menu] + while {$parent ne "."} { + if {[winfo class $parent] eq "Menu" \ + && [$parent cget -type] eq "menubar"} { + tk_menuSetFocus $parent + MenuNextEntry $parent 1 + return + } + set parent [winfo parent $parent] + } + } + } else { + set count -1 + set m2 [winfo parent $menu] + if {[winfo class $m2] eq "Menu"} { + $menu activate none + GenerateMenuSelect $menu + tk_menuSetFocus $m2 + + $m2 postcascade none + + if {[$m2 cget -type] ne "menubar"} { + return + } + } + } + + # Can't traverse into or out of a cascaded menu. Go to the next + # or previous menubutton, if that makes sense. + + set m2 [winfo parent $menu] + if {[winfo class $m2] eq "Menu" && [$m2 cget -type] eq "menubar"} { + tk_menuSetFocus $m2 + MenuNextEntry $m2 -1 + return + } + + set w $Priv(postedMb) + if {$w eq ""} { + return + } + set buttons [winfo children [winfo parent $w]] + set length [llength $buttons] + set i [expr {[lsearch -exact $buttons $w] + $count}] + while {1} { + while {$i < 0} { + incr i $length + } + while {$i >= $length} { + incr i -$length + } + set mb [lindex $buttons $i] + if {[winfo class $mb] eq "Menubutton" \ + && [$mb cget -state] ne "disabled" \ + && [$mb cget -menu] ne "" \ + && [[$mb cget -menu] index last] ne "none"} { + break + } + if {$mb eq $w} { + return + } + incr i $count + } + MbPost $mb + MenuFirstEntry [$mb cget -menu] +} + +# ::tk::MenuNextEntry -- +# Activate the next higher or lower entry in the posted menu, +# wrapping around at the ends. Disabled entries are skipped. +# +# Arguments: +# menu - Menu window that received the keystroke. +# count - 1 means go to the next lower entry, +# -1 means go to the next higher entry. + +proc ::tk::MenuNextEntry {menu count} { + if {[$menu index last] eq "none"} { + return + } + set length [expr {[$menu index last]+1}] + set quitAfter $length + set active [$menu index active] + if {$active eq "none"} { + set i 0 + } else { + set i [expr {$active + $count}] + } + while {1} { + if {$quitAfter <= 0} { + # We've tried every entry in the menu. Either there are + # none, or they're all disabled. Just give up. + + return + } + while {$i < 0} { + incr i $length + } + while {$i >= $length} { + incr i -$length + } + if {[catch {$menu entrycget $i -state} state] == 0} { + if {$state ne "disabled" && \ + ($i!=0 || [$menu cget -type] ne "tearoff" \ + || [$menu type 0] ne "tearoff")} { + break + } + } + if {$i == $active} { + return + } + incr i $count + incr quitAfter -1 + } + $menu activate $i + GenerateMenuSelect $menu + + if {[$menu type $i] eq "cascade" && [$menu cget -type] eq "menubar"} { + set cascade [$menu entrycget $i -menu] + if {$cascade ne ""} { + # Here we auto-post a cascade. This is necessary when + # we traverse left/right in the menubar, but undesirable when + # we traverse up/down in a menu. + $menu postcascade $i + MenuFirstEntry $cascade + } + } +} + +# ::tk::MenuFind -- +# This procedure searches the entire window hierarchy under w for +# a menubutton that isn't disabled and whose underlined character +# is "char" or an entry in a menubar that isn't disabled and whose +# underlined character is "char". +# It returns the name of that window, if found, or an +# empty string if no matching window was found. If "char" is an +# empty string then the procedure returns the name of the first +# menubutton found that isn't disabled. +# +# Arguments: +# w - Name of window where key was typed. +# char - Underlined character to search for; +# may be either upper or lower case, and +# will match either upper or lower case. + +proc ::tk::MenuFind {w char} { + set char [string tolower $char] + set windowlist [winfo child $w] + + foreach child $windowlist { + # Don't descend into other toplevels. + if {[winfo toplevel $w] ne [winfo toplevel $child]} { + continue + } + if {[winfo class $child] eq "Menu" && \ + [$child cget -type] eq "menubar"} { + if {$char eq ""} { + return $child + } + set last [$child index last] + for {set i [$child cget -tearoff]} {$i <= $last} {incr i} { + if {[$child type $i] eq "separator"} { + continue + } + set char2 [string index [$child entrycget $i -label] \ + [$child entrycget $i -underline]] + if {$char eq [string tolower $char2] || $char eq ""} { + if {[$child entrycget $i -state] ne "disabled"} { + return $child + } + } + } + } + } + + foreach child $windowlist { + # Don't descend into other toplevels. + if {[winfo toplevel $w] ne [winfo toplevel $child]} { + continue + } + switch -- [winfo class $child] { + Menubutton { + set char2 [string index [$child cget -text] \ + [$child cget -underline]] + if {$char eq [string tolower $char2] || $char eq ""} { + if {[$child cget -state] ne "disabled"} { + return $child + } + } + } + + default { + set match [MenuFind $child $char] + if {$match ne ""} { + return $match + } + } + } + } + return {} +} + +# ::tk::TraverseToMenu -- +# This procedure implements keyboard traversal of menus. Given an +# ASCII character "char", it looks for a menubutton with that character +# underlined. If one is found, it posts the menubutton's menu +# +# Arguments: +# w - Window in which the key was typed (selects +# a toplevel window). +# char - Character that selects a menu. The case +# is ignored. If an empty string, nothing +# happens. + +proc ::tk::TraverseToMenu {w char} { + variable ::tk::Priv + if {$char eq ""} { + return + } + while {[winfo class $w] eq "Menu"} { + if {[$w cget -type] ne "menubar" && $Priv(postedMb) eq ""} { + return + } + if {[$w cget -type] eq "menubar"} { + break + } + set w [winfo parent $w] + } + set w [MenuFind [winfo toplevel $w] $char] + if {$w ne ""} { + if {[winfo class $w] eq "Menu"} { + tk_menuSetFocus $w + set Priv(window) $w + SaveGrabInfo $w + grab -global $w + TraverseWithinMenu $w $char + } else { + MbPost $w + MenuFirstEntry [$w cget -menu] + } + } +} + +# ::tk::FirstMenu -- +# This procedure traverses to the first menubutton in the toplevel +# for a given window, and posts that menubutton's menu. +# +# Arguments: +# w - Name of a window. Selects which toplevel +# to search for menubuttons. + +proc ::tk::FirstMenu w { + variable ::tk::Priv + set w [MenuFind [winfo toplevel $w] ""] + if {$w ne ""} { + if {[winfo class $w] eq "Menu"} { + tk_menuSetFocus $w + set Priv(window) $w + SaveGrabInfo $w + grab -global $w + MenuFirstEntry $w + } else { + MbPost $w + MenuFirstEntry [$w cget -menu] + } + } +} + +# ::tk::TraverseWithinMenu +# This procedure implements keyboard traversal within a menu. It +# searches for an entry in the menu that has "char" underlined. If +# such an entry is found, it is invoked and the menu is unposted. +# +# Arguments: +# w - The name of the menu widget. +# char - The character to look for; case is +# ignored. If the string is empty then +# nothing happens. + +proc ::tk::TraverseWithinMenu {w char} { + if {$char eq ""} { + return + } + set char [string tolower $char] + set last [$w index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {[catch {set char2 [string index \ + [$w entrycget $i -label] [$w entrycget $i -underline]]}]} { + continue + } + if {$char eq [string tolower $char2]} { + if {[$w type $i] eq "cascade"} { + $w activate $i + $w postcascade active + event generate $w <> + set m2 [$w entrycget $i -menu] + if {$m2 ne ""} { + MenuFirstEntry $m2 + } + } else { + MenuUnpost $w + uplevel #0 [list $w invoke $i] + } + return + } + } +} + +# ::tk::MenuFirstEntry -- +# Given a menu, this procedure finds the first entry that isn't +# disabled or a tear-off or separator, and activates that entry. +# However, if there is already an active entry in the menu (e.g., +# because of a previous call to tk::PostOverPoint) then the active +# entry isn't changed. This procedure also sets the input focus +# to the menu. +# +# Arguments: +# menu - Name of the menu window (possibly empty). + +proc ::tk::MenuFirstEntry menu { + if {$menu eq ""} { + return + } + tk_menuSetFocus $menu + if {[$menu index active] ne "none"} { + return + } + set last [$menu index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {([catch {set state [$menu entrycget $i -state]}] == 0) \ + && $state ne "disabled" && [$menu type $i] ne "tearoff"} { + $menu activate $i + GenerateMenuSelect $menu + # Only post the cascade if the current menu is a menubar; + # otherwise, if the first entry of the cascade is a cascade, + # we can get an annoying cascading effect resulting in a bunch of + # menus getting posted (bug 676) + if {[$menu type $i] eq "cascade" \ + && [$menu cget -type] eq "menubar"} { + set cascade [$menu entrycget $i -menu] + if {$cascade ne ""} { + $menu postcascade $i + MenuFirstEntry $cascade + } + } + return + } + } +} + +# ::tk::MenuFindName -- +# Given a menu and a text string, return the index of the menu entry +# that displays the string as its label. If there is no such entry, +# return an empty string. This procedure is tricky because some names +# like "active" have a special meaning in menu commands, so we can't +# always use the "index" widget command. +# +# Arguments: +# menu - Name of the menu widget. +# s - String to look for. + +proc ::tk::MenuFindName {menu s} { + set i "" + if {![regexp {^active$|^last$|^none$|^[0-9]|^@} $s]} { + catch {set i [$menu index $s]} + return $i + } + set last [$menu index last] + if {$last eq "none"} { + return + } + for {set i 0} {$i <= $last} {incr i} { + if {![catch {$menu entrycget $i -label} label]} { + if {$label eq $s} { + return $i + } + } + } + return "" +} + +# ::tk::PostOverPoint -- +# This procedure posts a given menu such that a given entry in the +# menu is centered over a given point in the root window. It also +# activates the given entry. +# +# Arguments: +# menu - Menu to post. +# x, y - Root coordinates of point. +# entry - Index of entry within menu to center over (x,y). +# If omitted or specified as {}, then the menu's +# upper-left corner goes at (x,y). + +proc ::tk::PostOverPoint {menu x y {entry {}}} { + global tcl_platform + + if {$entry ne ""} { + if {$entry == [$menu index last]} { + incr y [expr {-([$menu yposition $entry] \ + + [winfo reqheight $menu])/2}] + } else { + incr y [expr {-([$menu yposition $entry] \ + + [$menu yposition [expr {$entry+1}]])/2}] + } + incr x [expr {-[winfo reqwidth $menu]/2}] + } + if {$tcl_platform(platform) == "windows"} { + # We need to fix some problems with menu posting on Windows, + # where, if the menu would overlap top or bottom of screen, + # Windows puts it in the wrong place for us. We must also + # subtract an extra amount for half the height of the current + # entry. To be safe we subtract an extra 10. + set yoffset [expr {[winfo screenheight $menu] \ + - $y - [winfo reqheight $menu] - 10}] + if {$yoffset < 0} { + # The bottom of the menu is offscreen, so adjust upwards + incr y $yoffset + if {$y < 0} { set y 0 } + } + # If we're off the top of the screen (either because we were + # originally or because we just adjusted too far upwards), + # then make the menu popup on the top edge. + if {$y < 0} { + set y 0 + } + } + $menu post $x $y + if {$entry ne "" && [$menu entrycget $entry -state] ne "disabled"} { + $menu activate $entry + GenerateMenuSelect $menu + } +} + +# ::tk::SaveGrabInfo -- +# Sets the variables tk::Priv(oldGrab) and tk::Priv(grabStatus) to record +# the state of any existing grab on the w's display. +# +# Arguments: +# w - Name of a window; used to select the display +# whose grab information is to be recorded. + +proc tk::SaveGrabInfo w { + variable ::tk::Priv + set Priv(oldGrab) [grab current $w] + if {$Priv(oldGrab) ne ""} { + set Priv(grabStatus) [grab status $Priv(oldGrab)] + } +} + +# ::tk::RestoreOldGrab -- +# Restores the grab to what it was before TkSaveGrabInfo was called. +# + +proc ::tk::RestoreOldGrab {} { + variable ::tk::Priv + + if {$Priv(oldGrab) ne ""} { + # Be careful restoring the old grab, since it's window may not + # be visible anymore. + + catch { + if {$Priv(grabStatus) eq "global"} { + grab set -global $Priv(oldGrab) + } else { + grab set $Priv(oldGrab) + } + } + set Priv(oldGrab) "" + } +} + +proc ::tk_menuSetFocus {menu} { + variable ::tk::Priv + if {![info exists Priv(focus)] || $Priv(focus) eq ""} { + set Priv(focus) [focus] + } + focus $menu +} + +proc ::tk::GenerateMenuSelect {menu} { + variable ::tk::Priv + + if {$Priv(activeMenu) eq $menu \ + && $Priv(activeItem) eq [$menu index active]} { + return + } + + set Priv(activeMenu) $menu + set Priv(activeItem) [$menu index active] + event generate $menu <> +} + +# ::tk_popup -- +# This procedure pops up a menu and sets things up for traversing +# the menu and its submenus. +# +# Arguments: +# menu - Name of the menu to be popped up. +# x, y - Root coordinates at which to pop up the +# menu. +# entry - Index of a menu entry to center over (x,y). +# If omitted or specified as {}, then menu's +# upper-left corner goes at (x,y). + +proc ::tk_popup {menu x y {entry {}}} { + variable ::tk::Priv + global tcl_platform + if {$Priv(popup) ne "" || $Priv(postedMb) ne ""} { + tk::MenuUnpost {} + } + tk::PostOverPoint $menu $x $y $entry + if {[tk windowingsystem] eq "x11" && [winfo viewable $menu]} { + tk::SaveGrabInfo $menu + grab -global $menu + set Priv(popup) $menu + tk_menuSetFocus $menu + } +} diff --git a/mingw/lib/tk8.4/mkpsenc.tcl b/mingw/lib/tk8.5/mkpsenc.tcl similarity index 100% rename from mingw/lib/tk8.4/mkpsenc.tcl rename to mingw/lib/tk8.5/mkpsenc.tcl diff --git a/mingw/lib/tk8.5/msgbox.tcl b/mingw/lib/tk8.5/msgbox.tcl new file mode 100644 index 00000000..d2980d7f --- /dev/null +++ b/mingw/lib/tk8.5/msgbox.tcl @@ -0,0 +1,453 @@ +# msgbox.tcl -- +# +# Implements messageboxes for platforms that do not have native +# messagebox support. +# +# RCS: @(#) $Id: msgbox.tcl,v 1.31 2007/05/30 06:34:18 das Exp $ +# +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# Ensure existence of ::tk::dialog namespace +# +namespace eval ::tk::dialog {} + +image create bitmap ::tk::dialog::b1 -foreground black \ +-data "#define b1_width 32\n#define b1_height 32 +static unsigned char q1_bits[] = { + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x07, 0xe0, 0x00, 0xc0, 0x00, 0x00, 0x03, + 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, + 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, + 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, + 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, + 0x60, 0x00, 0x00, 0x04, 0x80, 0x03, 0x80, 0x03, 0x00, 0x0c, 0x78, 0x00, + 0x00, 0x30, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00, + 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::b2 -foreground white \ +-data "#define b2_width 32\n#define b2_height 32 +static unsigned char b2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x00, + 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, + 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, + 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, + 0xf8, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0x07, + 0x80, 0xff, 0xff, 0x03, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::q -foreground blue \ +-data "#define q_width 32\n#define q_height 32 +static unsigned char q_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0x10, 0x0f, 0x00, 0x00, 0x18, 0x1e, 0x00, 0x00, 0x38, 0x1e, 0x00, + 0x00, 0x38, 0x1e, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::i -foreground blue \ +-data "#define i_width 32\n#define i_height 32 +static unsigned char i_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w1 -foreground black \ +-data "#define w1_width 32\n#define w1_height 32 +static unsigned char w1_bits[] = { + 0x00, 0x80, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, + 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, + 0x00, 0x08, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x20, 0x00, + 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, + 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, + 0x40, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x02, + 0x20, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x04, 0x10, 0x00, 0x00, 0x08, + 0x08, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, + 0x04, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, + 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, + 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w2 -foreground yellow \ +-data "#define w2_width 32\n#define w2_height 32 +static unsigned char w2_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x1f, 0x00, + 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfe, 0x3f, 0x00, + 0x00, 0xfe, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, 0x00, + 0x80, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0x01, + 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07, + 0xf0, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, + 0xf8, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x3f, + 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" +image create bitmap ::tk::dialog::w3 -foreground black \ +-data "#define w3_width 32\n#define w3_height 32 +static unsigned char w3_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};" + +# ::tk::MessageBox -- +# +# Pops up a messagebox with an application-supplied message with +# an icon and a list of buttons. This procedure will be called +# by tk_messageBox if the platform does not have native +# messagebox support, or if the particular type of messagebox is +# not supported natively. +# +# Color icons are used on Unix displays that have a color +# depth of 4 or more and $tk_strictMotif is not on. +# +# This procedure is a private procedure shouldn't be called +# directly. Call tk_messageBox instead. +# +# See the user documentation for details on what tk_messageBox does. +# +proc ::tk::MessageBox {args} { + global tcl_platform tk_strictMotif + variable ::tk::Priv + + set w ::tk::PrivMsgBox + upvar $w data + + # + # The default value of the title is space (" ") not the empty string + # because for some window managers, a + # wm title .foo "" + # causes the window title to be "foo" instead of the empty string. + # + set specs { + {-default "" "" ""} + {-detail "" "" ""} + {-icon "" "" "info"} + {-message "" "" ""} + {-parent "" "" .} + {-title "" "" " "} + {-type "" "" "ok"} + } + + tclParseConfigSpec $w $specs "" $args + + if {[lsearch -exact {info warning error question} $data(-icon)] == -1} { + error "bad -icon value \"$data(-icon)\": must be error, info, question, or warning" + } + set windowingsystem [tk windowingsystem] + if {$windowingsystem eq "aqua"} { + switch -- $data(-icon) { + "error" {set data(-icon) "stop"} + "warning" {set data(-icon) "caution"} + "info" {set data(-icon) "note"} + } + option add *Dialog*background systemDialogBackgroundActive widgetDefault + option add *Dialog*Button.highlightBackground \ + systemDialogBackgroundActive widgetDefault + } + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } + + switch -- $data(-type) { + abortretryignore { + set names [list abort retry ignore] + set labels [list &Abort &Retry &Ignore] + set cancel abort + } + ok { + set names [list ok] + set labels {&OK} + set cancel ok + } + okcancel { + set names [list ok cancel] + set labels [list &OK &Cancel] + set cancel cancel + } + retrycancel { + set names [list retry cancel] + set labels [list &Retry &Cancel] + set cancel cancel + } + yesno { + set names [list yes no] + set labels [list &Yes &No] + set cancel no + } + yesnocancel { + set names [list yes no cancel] + set labels [list &Yes &No &Cancel] + set cancel cancel + } + default { + error "bad -type value \"$data(-type)\": must be\ + abortretryignore, ok, okcancel, retrycancel,\ + yesno, or yesnocancel" + } + } + + set buttons {} + foreach name $names lab $labels { + lappend buttons [list $name -text [mc $lab]] + } + + # If no default button was specified, the default default is the + # first button (Bug: 2218). + + if {$data(-default) eq ""} { + set data(-default) [lindex [lindex $buttons 0] 0] + } + + set valid 0 + foreach btn $buttons { + if {[lindex $btn 0] eq $data(-default)} { + set valid 1 + break + } + } + if {!$valid} { + error "invalid default button \"$data(-default)\"" + } + + # 2. Set the dialog to be a child window of $parent + # + # + if {$data(-parent) ne "."} { + set w $data(-parent).__tk__messagebox + } else { + set w .__tk__messagebox + } + + # 3. Create the top-level window and divide it into top + # and bottom parts. + + catch {destroy $w} + toplevel $w -class Dialog + wm title $w $data(-title) + wm iconname $w Dialog + wm protocol $w WM_DELETE_WINDOW { } + # There is only one background colour for the whole dialog + set bg [$w cget -background] + + # Message boxes should be transient with respect to their parent so that + # they always stay on top of the parent window. But some window managers + # will simply create the child window as withdrawn if the parent is not + # viewable (because it is withdrawn or iconified). This is not good for + # "grab"bed windows. So only make the message box transient if the parent + # is viewable. + # + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + if {$windowingsystem eq "aqua"} { + ::tk::unsupported::MacWindowStyle style $w moveableModal {} + } + + frame $w.bot -background $bg + grid anchor $w.bot center + pack $w.bot -side bottom -fill both + frame $w.top -background $bg + pack $w.top -side top -fill both -expand 1 + if {$windowingsystem ne "aqua"} { + $w.bot configure -relief raised -bd 1 + $w.top configure -relief raised -bd 1 + } + + # 4. Fill the top part with bitmap, message and detail (use the + # option database for -wraplength and -font so that they can be + # overridden by the caller). + + option add *Dialog.msg.wrapLength 3i widgetDefault + option add *Dialog.dtl.wrapLength 3i widgetDefault + if {$windowingsystem eq "aqua"} { + option add *Dialog.msg.font system widgetDefault + option add *Dialog.dtl.font system widgetDefault + } else { + option add *Dialog.msg.font {Times 14} widgetDefault + option add *Dialog.dtl.font {Times 10} widgetDefault + } + + label $w.msg -anchor nw -justify left -text $data(-message) \ + -background $bg + if {$data(-detail) ne ""} { + label $w.dtl -anchor nw -justify left -text $data(-detail) \ + -background $bg + } + if {$data(-icon) ne ""} { + if {$windowingsystem eq "aqua" + || ([winfo depth $w] < 4) || $tk_strictMotif} { + label $w.bitmap -bitmap $data(-icon) -background $bg + } else { + canvas $w.bitmap -width 32 -height 32 -highlightthickness 0 \ + -background $bg + switch $data(-icon) { + error { + $w.bitmap create oval 0 0 31 31 -fill red -outline black + $w.bitmap create line 9 9 23 23 -fill white -width 4 + $w.bitmap create line 9 23 23 9 -fill white -width 4 + } + info { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::i + } + question { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::b2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::q + } + default { + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w1 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w2 + $w.bitmap create image 0 0 -anchor nw \ + -image ::tk::dialog::w3 + } + } + } + } + grid $w.bitmap $w.msg -in $w.top -sticky news -padx 2m -pady 2m + grid columnconfigure $w.top 1 -weight 1 + if {$data(-detail) ne ""} { + grid ^ $w.dtl -in $w.top -sticky news -padx 2m -pady {0 2m} + grid rowconfigure $w.top 1 -weight 1 + } else { + grid rowconfigure $w.top 0 -weight 1 + } + + # 5. Create a row of buttons at the bottom of the dialog. + + set i 0 + foreach but $buttons { + set name [lindex $but 0] + set opts [lrange $but 1 end] + if {![llength $opts]} { + # Capitalize the first letter of $name + set capName [string toupper $name 0] + set opts [list -text $capName] + } + + eval [list tk::AmpWidget button $w.$name -padx 3m] $opts \ + [list -command [list set tk::Priv(button) $name]] + + if {$name eq $data(-default)} { + $w.$name configure -default active + } else { + $w.$name configure -default normal + } + grid $w.$name -in $w.bot -row 0 -column $i -padx 3m -pady 2m -sticky ew + grid columnconfigure $w.bot $i -uniform buttons + # We boost the size of some Mac buttons for l&f + if {$windowingsystem eq "aqua"} { + set tmp [string tolower $name] + if {$tmp eq "ok" || $tmp eq "cancel" || $tmp eq "yes" || + $tmp eq "no" || $tmp eq "abort" || $tmp eq "retry" || + $tmp eq "ignore"} { + grid columnconfigure $w.bot $i -minsize 90 + } + grid configure $w.$name -pady 7 + } + incr i + + # create the binding for the key accelerator, based on the underline + # + # set underIdx [$w.$name cget -under] + # if {$underIdx >= 0} { + # set key [string index [$w.$name cget -text] $underIdx] + # bind $w [list $w.$name invoke] + # bind $w [list $w.$name invoke] + # } + } + bind $w [list ::tk::AltKeyInDialog $w %A] + + if {$data(-default) ne ""} { + bind $w { + if {[winfo class %W] eq "Button"} { + %W configure -default active + } + } + bind $w { + if {[winfo class %W] eq "Button"} { + %W configure -default normal + } + } + } + + # 6. Create bindings for , and on the dialog + + bind $w { + if {[winfo class %W] eq "Button"} { + tk::ButtonInvoke %W + } + } + + # Invoke the designated cancelling operation + bind $w [list tk::ButtonInvoke $w.$cancel] + + # At the buttons have vanished, so must do this directly. + bind $w.msg [list set tk::Priv(button) $cancel] + + # 7. Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + + # 8. Set a grab and claim the focus too. + + if {$data(-default) ne ""} { + set focus $w.$data(-default) + } else { + set focus $w + } + ::tk::SetFocusGrab $w $focus + + # 9. Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(button) + # Copy the result now so any that happens won't cause + # trouble + set result $Priv(button) + + ::tk::RestoreFocusGrab $w $focus + + return $result +} diff --git a/mingw/lib/tk8.5/msgs/cs.msg b/mingw/lib/tk8.5/msgs/cs.msg new file mode 100644 index 00000000..cd86ca95 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/cs.msg @@ -0,0 +1,84 @@ +namespace eval ::tk { + ::msgcat::mcset cs "&Abort" "&P\u0159eru\u0161it" + ::msgcat::mcset cs "&About..." "&O programu..." + ::msgcat::mcset cs "&Blue" "&Modr\341" + ::msgcat::mcset cs "&Cancel" "&Zru\u0161it" + ::msgcat::mcset cs "&Clear Console" "&Smazat konzolu" + ::msgcat::mcset cs "&Copy" "&Kop\355rovat" + ::msgcat::mcset cs "&Delete" "&Smazat" + ::msgcat::mcset cs "&Directory:" "&Adres\341\u0159:" + ::msgcat::mcset cs "&Edit" "&\332pravy" + ::msgcat::mcset cs "&File" "&Soubor" + ::msgcat::mcset cs "&Filter" "&Filtr" + ::msgcat::mcset cs "&Green" "Ze&len\341" + ::msgcat::mcset cs "&Help" "&N\341pov\u011bda" + ::msgcat::mcset cs "&Hide Console" "&Schovat Konzolu" + ::msgcat::mcset cs "&Ignore" "&Ignorovat" + ::msgcat::mcset cs "&No" "&Ne" + ::msgcat::mcset cs "&OK" + ::msgcat::mcset cs "&Open" "&Otev\u0159\355t" + ::msgcat::mcset cs "&Quit" "&Ukon\u010dit" + ::msgcat::mcset cs "&Red" "\u010ce&rven\341" + ::msgcat::mcset cs "&Retry" "Z&novu" + ::msgcat::mcset cs "&Save" "&Ulo\u017eit" + ::msgcat::mcset cs "&Selection:" "&V\375b\u011br:" + ::msgcat::mcset cs "&Source..." "&Zdroj..." + ::msgcat::mcset cs "&Yes" "&Ano" + ::msgcat::mcset cs "About..." "O programu..." + ::msgcat::mcset cs "All Files" "V\u0161echny soubory" + ::msgcat::mcset cs "Application Error" "Chyba programu" + ::msgcat::mcset cs "Cannot change to the directory \"%1\$s\".\nPermission denied." "Nemohu zm\u011bnit atku\341ln\355 adres\341\u0159 na \"%1\$s\".\nP\u0159\355stup odm\355tnut." + ::msgcat::mcset cs "Choose Directory" "V\375b\u011br adres\341\u0159e" + ::msgcat::mcset cs "Cl&ear" "Sma&zat" + ::msgcat::mcset cs "Clear" "Smazat" + ::msgcat::mcset cs "Color" "Barva" + ::msgcat::mcset cs "Console" "Konzole" + ::msgcat::mcset cs "Copy" "Kop\355rovat" + ::msgcat::mcset cs "Cu&t" "V&y\u0159\355znout" + ::msgcat::mcset cs "Cut" "Vy\u0159\355znout" + ::msgcat::mcset cs "Delete" "Smazat" + ::msgcat::mcset cs "Details >>" "Detaily >>" + ::msgcat::mcset cs "Directory \"%1\$s\" does not exist." "Adres\341\u0159 \"%1\$s\" neexistuje." + ::msgcat::mcset cs "E&xit" "&Konec" + ::msgcat::mcset cs "Error: %1\$s" "Chyba: %1\$s" + ::msgcat::mcset cs "Exit" "Konec" + ::msgcat::mcset cs "Fi&les:" "Sou&bory:" + ::msgcat::mcset cs "Fil&ter:" "Fil&tr:" + ::msgcat::mcset cs "File \"%1\$s\" already exists.\n\n" "Soubor \"%1\$s\" ji\u017e existuje.\n\n" + ::msgcat::mcset cs "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Soubor \"%1\$s\" ji\u017e existuje.\nChcete jej p\u0159epsat?" + ::msgcat::mcset cs "File \"%1\$s\" does not exist." "Soubor \"%1\$s\" neexistuje." + ::msgcat::mcset cs "File &name:" "&Jm\351no souboru:" + ::msgcat::mcset cs "File &names:" "&Jm\351na soubor\u016f:" + ::msgcat::mcset cs "Files of &type:" "&Typy soubor\u016f:" + ::msgcat::mcset cs "Hi" "Ahoj" + ::msgcat::mcset cs "Hide Console" "Skr\375t konsolu" + ::msgcat::mcset cs "Invalid file name \"%1\$s\"." "\u0160patn\351 jm\351no souboru \"%1\$s\"." + ::msgcat::mcset cs "Log Files" "Log soubory" + ::msgcat::mcset cs "Ok" + ::msgcat::mcset cs "Open" "Otev\u0159\355t" + ::msgcat::mcset cs "Open Multiple Files" "Otev\u0159\355t v\355ce soubor\u016f" + ::msgcat::mcset cs "P&aste" "&Vlo\u017eit" + ::msgcat::mcset cs "Paste" "Vlo\u017eit" + ::msgcat::mcset cs "Quit" "Skon\u010dit" + ::msgcat::mcset cs "Replace existing file?" "Nahradit st\341vaj\355c\355 soubor?" + ::msgcat::mcset cs "Save As" "Ulo\u017eit jako" + ::msgcat::mcset cs "Save To Log" "Ulo\u017eit do logu" + ::msgcat::mcset cs "Select Log File" "Vybrat log soubor" + ::msgcat::mcset cs "Select a file to source" "Vybrat soubor k nahr\341n\355" + ::msgcat::mcset cs "Skip Messages" "P\u0159esko\u010dit zpr\341vy" + ::msgcat::mcset cs "Source..." "Nahr\341t..." + ::msgcat::mcset cs "Tcl Scripts" "Tcl skripty" + ::msgcat::mcset cs "Tcl for Windows" "Tcl pro Windows" + ::msgcat::mcset cs "Text Files" "Textov\351 soubory" + ::msgcat::mcset cs "abort" "p\u0159eru\u0161it" + ::msgcat::mcset cs "blue" "modr\341" + ::msgcat::mcset cs "cancel" "zru\u0161it" + ::msgcat::mcset cs "extension" "p\u0159\355pona" + ::msgcat::mcset cs "extensions" "p\u0159\355pony" + ::msgcat::mcset cs "green" "zelen\341" + ::msgcat::mcset cs "ignore" "ignorovat" + ::msgcat::mcset cs "ok" + ::msgcat::mcset cs "red" "\u010derven\341" + ::msgcat::mcset cs "retry" "znovu" + ::msgcat::mcset cs "yes" "ano" +} diff --git a/mingw/lib/tk8.5/msgs/de.msg b/mingw/lib/tk8.5/msgs/de.msg new file mode 100644 index 00000000..cfcf1cd4 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/de.msg @@ -0,0 +1,74 @@ +namespace eval ::tk { + ::msgcat::mcset de "&Abort" "&Abbruch" + ::msgcat::mcset de "&About..." "&\u00dcber..." + ::msgcat::mcset de "All Files" "Alle Dateien" + ::msgcat::mcset de "Application Error" "Applikationsfehler" + ::msgcat::mcset de "&Blue" "&Blau" + ::msgcat::mcset de "&Cancel" "&Abbruch" + ::msgcat::mcset de "Cannot change to the directory \"%1\$s\".\nPermission denied." "Kann nicht in das Verzeichnis \"%1\$s\" wechseln.\nKeine Rechte vorhanden." + ::msgcat::mcset de "Choose Directory" "W\u00e4hle Verzeichnis" + ::msgcat::mcset de "&Clear" "&R\u00fccksetzen" + ::msgcat::mcset de "&Clear Console" "&Konsole l\u00f6schen" + ::msgcat::mcset de "Color" "Farbe" + ::msgcat::mcset de "Console" "Konsole" + ::msgcat::mcset de "&Copy" "&Kopieren" + ::msgcat::mcset de "Cu&t" "Aus&schneiden" + ::msgcat::mcset de "&Delete" "&L\u00f6schen" + ::msgcat::mcset de "Details >>" + ::msgcat::mcset de "Directory \"%1\$s\" does not exist." "Das Verzeichnis \"%1\$s\" existiert nicht." + ::msgcat::mcset de "&Directory:" "&Verzeichnis:" + ::msgcat::mcset de "&Edit" "&Bearbieten" + ::msgcat::mcset de "Error: %1\$s" "Fehler: %1\$s" + ::msgcat::mcset de "E&xit" "&Ende" + ::msgcat::mcset de "&File" "&Datei" + ::msgcat::mcset de "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Die Datei \"%1\$s\" ist bereits vorhanden.\nWollen sie diese Datei \u00fcberschreiben ?" + ::msgcat::mcset de "File \"%1\$s\" already exists.\n\n" "Die Datei \"%1\$s\" ist bereits vorhanden.\n\n" + ::msgcat::mcset de "File \"%1\$s\" does not exist." "Die Datei \"%1\$s\" existiert nicht." + ::msgcat::mcset de "File &name:" "Datei&name:" + ::msgcat::mcset de "File &names:" "Datei&namen:" + ::msgcat::mcset de "Files of &type:" "Dateien des &Typs:" + ::msgcat::mcset de "Fi&les:" "Dat&eien:" + ::msgcat::mcset de "&Filter" + ::msgcat::mcset de "Fil&ter:" + ::msgcat::mcset de "&Green" "&Gr\u00fcn" + ::msgcat::mcset de "&Help" "&Hilfe" + ::msgcat::mcset de "Hi" "Hallo" + ::msgcat::mcset de "&Hide Console" "&Konsole unsichtbar machen" + ::msgcat::mcset de "&Ignore" "&Ignorieren" + ::msgcat::mcset de "Invalid file name \"%1\$s\"." "Ung\u00fcltiger Dateiname \"%1\$s\"." + ::msgcat::mcset de "Log Files" "Protokolldatei" + ::msgcat::mcset de "&No" "&Nein" + ::msgcat::mcset de "OK" + ::msgcat::mcset de "Ok" + ::msgcat::mcset de "Open" "\u00d6ffnen" + ::msgcat::mcset de "&Open" "\u00d6&ffnen" + ::msgcat::mcset de "Open Multiple Files" + ::msgcat::mcset de "P&aste" "E&inf\u00fcgen" + ::msgcat::mcset de "&Quit" "&Beenden" + ::msgcat::mcset de "&Red" "&Rot" + ::msgcat::mcset de "Replace existing file?" "Existierende Datei ersetzen?" + ::msgcat::mcset de "&Retry" "&Wiederholen" + ::msgcat::mcset de "&Save" "&Speichern" + ::msgcat::mcset de "Save As" "Speichern unter" + ::msgcat::mcset de "Save To Log" "In Protokoll speichern" + ::msgcat::mcset de "Select Log File" "Protokolldatei ausw\u00e4hlen" + ::msgcat::mcset de "Select a file to source" "Auszuf\u00fchrende Datei ausw\u00e4hlen" + ::msgcat::mcset de "&Selection:" "Auswah&l:" + ::msgcat::mcset de "Skip Messages" "Weitere Nachrichten \u00fcberspringen" + ::msgcat::mcset de "&Source..." "&Ausf\u00fchren..." + ::msgcat::mcset de "Tcl Scripts" "Tcl-Skripte" + ::msgcat::mcset de "Tcl for Windows" "Tcl f\u00fcr Windows" + ::msgcat::mcset de "Text Files" "Textdateien" + ::msgcat::mcset de "&Yes" "&Ja" + ::msgcat::mcset de "abort" "abbrechen" + ::msgcat::mcset de "blue" "blau" + ::msgcat::mcset de "cancel" "abbrechen" + ::msgcat::mcset de "extension" "Erweiterung" + ::msgcat::mcset de "extensions" "Erweiterungen" + ::msgcat::mcset de "green" "gr\u00fcn" + ::msgcat::mcset de "ignore" "ignorieren" + ::msgcat::mcset de "ok" + ::msgcat::mcset de "red" "rot" + ::msgcat::mcset de "retry" "wiederholen" + ::msgcat::mcset de "yes" "ja" +} diff --git a/mingw/lib/tk8.5/msgs/el.msg b/mingw/lib/tk8.5/msgs/el.msg new file mode 100644 index 00000000..1dcc4513 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/el.msg @@ -0,0 +1,86 @@ +## Messages for the Greek (Hellenic - "el") language. +## Please report any changes/suggestions to: +## petasis@iit.demokritos.gr + +namespace eval ::tk { + ::msgcat::mcset el "&Abort" "\u03a4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "About..." "\u03a3\u03c7\u03b5\u03c4\u03b9\u03ba\u03ac..." + ::msgcat::mcset el "All Files" "\u038c\u03bb\u03b1 \u03c4\u03b1 \u0391\u03c1\u03c7\u03b5\u03af\u03b1" + ::msgcat::mcset el "Application Error" "\u039b\u03ac\u03b8\u03bf\u03c2 \u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae\u03c2" + ::msgcat::mcset el "&Blue" "\u039c\u03c0\u03bb\u03b5" + ::msgcat::mcset el "&Cancel" "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" + ::msgcat::mcset el \ +"Cannot change to the directory \"%1\$s\".\nPermission denied." \ +"\u0394\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03ba\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5 \u03c3\u03b5 \"%1\$s\".\n\u0397 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03b4\u03b5\u03bd \u03b5\u03c0\u03b9\u03c4\u03c1\u03ad\u03c0\u03b5\u03c4\u03b1\u03b9." + ::msgcat::mcset el "Choose Directory" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u039a\u03b1\u03c4\u03b1\u03bb\u03cc\u03b3\u03bf\u03c5" + ::msgcat::mcset el "Clear" "\u039a\u03b1\u03b8\u03b1\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "Color" "\u03a7\u03c1\u03ce\u03bc\u03b1" + ::msgcat::mcset el "Console" "\u039a\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1" + ::msgcat::mcset el "Copy" "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae" + ::msgcat::mcset el "Cut" "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae" + ::msgcat::mcset el "Delete" "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae" + ::msgcat::mcset el "Details >>" "\u039b\u03b5\u03c0\u03c4\u03bf\u03bc\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 >>" + ::msgcat::mcset el "Directory \"%1\$s\" does not exist." \ + "\u039f \u03ba\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2 \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." + ::msgcat::mcset el "&Directory:" "&\u039a\u03b1\u03c4\u03ac\u03bb\u03bf\u03b3\u03bf\u03c2:" + ::msgcat::mcset el "Error: %1\$s" "\u039b\u03ac\u03b8\u03bf\u03c2: %1\$s" + ::msgcat::mcset el "Exit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" + ::msgcat::mcset el \ + "File \"%1\$s\" already exists.\nDo you want to overwrite it?" \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b5\u03c0\u03b9\u03ba\u03b1\u03bb\u03c5\u03c6\u03b8\u03b5\u03af;" + ::msgcat::mcset el "File \"%1\$s\" already exists.\n\n" \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03ae\u03b4\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9.\n\n" + ::msgcat::mcset el "File \"%1\$s\" does not exist." \ + "\u03a4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \"%1\$s\" \u03b4\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03b5\u03b9." + ::msgcat::mcset el "File &name:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5:" + ::msgcat::mcset el "File &names:" "\u038c&\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd:" + ::msgcat::mcset el "Files of &type:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03c4\u03bf\u03c5 &\u03c4\u03cd\u03c0\u03bf\u03c5:" + ::msgcat::mcset el "Fi&les:" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1:" + ::msgcat::mcset el "&Filter" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf" + ::msgcat::mcset el "Fil&ter:" "\u03a6\u03af\u03bb\u03c4\u03c1\u03bf:" + ::msgcat::mcset el "&Green" "\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + ::msgcat::mcset el "Hi" "\u0393\u03b5\u03b9\u03b1" + ::msgcat::mcset el "Hide Console" "\u0391\u03c0\u03cc\u03ba\u03c1\u03c5\u03c8\u03b7 \u03ba\u03bf\u03bd\u03c3\u03cc\u03bb\u03b1\u03c2" + ::msgcat::mcset el "&Ignore" "\u0391\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" + ::msgcat::mcset el "Invalid file name \"%1\$s\"." \ + "\u0386\u03ba\u03c5\u03c1\u03bf \u03cc\u03bd\u03bf\u03bc\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \"%1\$s\"." + ::msgcat::mcset el "Log Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "&No" "\u038c\u03c7\u03b9" + ::msgcat::mcset el "&OK" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "&Ok" "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" + ::msgcat::mcset el "&Open" "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1" + ::msgcat::mcset el "Open Multiple Files" \ + "\u0386\u03bd\u03bf\u03b9\u03b3\u03bc\u03b1 \u03c0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ce\u03bd \u03b1\u03c1\u03c7\u03b5\u03af\u03c9\u03bd" + ::msgcat::mcset el "Paste" "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7" + ::msgcat::mcset el "Quit" "\u0388\u03be\u03bf\u03b4\u03bf\u03c2" + ::msgcat::mcset el "&Red" "\u039a\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + ::msgcat::mcset el "Replace existing file?" \ + "\u0395\u03c0\u03b9\u03ba\u03ac\u03bb\u03c5\u03c8\u03b7 \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03bd\u03c4\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5;" + ::msgcat::mcset el "&Retry" "\u03a0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" + ::msgcat::mcset el "&Save" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7" + ::msgcat::mcset el "Save As" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03b1\u03bd" + ::msgcat::mcset el "Save To Log" "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c3\u03c4\u03bf \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "Select Log File" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae\u03c2" + ::msgcat::mcset el "Select a file to source" \ + "\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf \u03b3\u03b9\u03b1 \u03b5\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7" + ::msgcat::mcset el "&Selection:" "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae:" + ::msgcat::mcset el "Skip Messages" "\u0391\u03c0\u03bf\u03c6\u03c5\u03b3\u03ae\u03bc\u03b7\u03bd\u03c5\u03bc\u03ac\u03c4\u03c9\u03bd" + ::msgcat::mcset el "Source..." "\u0395\u03ba\u03c4\u03ad\u03bb\u03b5\u03c3\u03b7..." + ::msgcat::mcset el "Tcl Scripts" "Tcl Scripts" + ::msgcat::mcset el "Tcl for Windows" "Tcl \u03b3\u03b9\u03b1 Windows" + ::msgcat::mcset el "Text Files" "\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u039a\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5" + ::msgcat::mcset el "&Yes" "\u039d\u03b1\u03b9" + ::msgcat::mcset el "abort" "\u03c4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2" + ::msgcat::mcset el "blue" "\u03bc\u03c0\u03bb\u03b5" + ::msgcat::mcset el "cancel" "\u03b1\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7" + ::msgcat::mcset el "extension" "\u03b5\u03c0\u03ad\u03ba\u03c4\u03b1\u03c3\u03b7" + ::msgcat::mcset el "extensions" "\u03b5\u03c0\u03b5\u03ba\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2" + ::msgcat::mcset el "green" "\u03c0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf" + ::msgcat::mcset el "ignore" "\u03b1\u03b3\u03bd\u03cc\u03b7\u03c3\u03b7" + ::msgcat::mcset el "ok" "\u03b5\u03bd\u03c4\u03ac\u03be\u03b5\u03b9" + ::msgcat::mcset el "red" "\u03ba\u03cc\u03ba\u03ba\u03b9\u03bd\u03bf" + ::msgcat::mcset el "retry" "\u03c0\u03c1\u03bf\u03c3\u03c0\u03ac\u03b8\u03b7\u03c3\u03b5 \u03be\u03b1\u03bd\u03ac" + ::msgcat::mcset el "yes" "\u03bd\u03b1\u03b9" +} + diff --git a/mingw/lib/tk8.5/msgs/en.msg b/mingw/lib/tk8.5/msgs/en.msg new file mode 100644 index 00000000..7434d718 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/en.msg @@ -0,0 +1,74 @@ +namespace eval ::tk { + ::msgcat::mcset en "&Abort" + ::msgcat::mcset en "&About..." + ::msgcat::mcset en "All Files" + ::msgcat::mcset en "Application Error" + ::msgcat::mcset en "&Blue" + ::msgcat::mcset en "&Cancel" + ::msgcat::mcset en "Cannot change to the directory \"%1\$s\".\nPermission denied." + ::msgcat::mcset en "Choose Directory" + ::msgcat::mcset en "Cl&ear" + ::msgcat::mcset en "&Clear Console" + ::msgcat::mcset en "Color" + ::msgcat::mcset en "Console" + ::msgcat::mcset en "&Copy" + ::msgcat::mcset en "Cu&t" + ::msgcat::mcset en "&Delete" + ::msgcat::mcset en "Details >>" + ::msgcat::mcset en "Directory \"%1\$s\" does not exist." + ::msgcat::mcset en "&Directory:" + ::msgcat::mcset en "&Edit" + ::msgcat::mcset en "Error: %1\$s" + ::msgcat::mcset en "E&xit" + ::msgcat::mcset en "&File" + ::msgcat::mcset en "File \"%1\$s\" already exists.\nDo you want to overwrite it?" + ::msgcat::mcset en "File \"%1\$s\" already exists.\n\n" + ::msgcat::mcset en "File \"%1\$s\" does not exist." + ::msgcat::mcset en "File &name:" + ::msgcat::mcset en "File &names:" + ::msgcat::mcset en "Files of &type:" + ::msgcat::mcset en "Fi&les:" + ::msgcat::mcset en "&Filter" + ::msgcat::mcset en "Fil&ter:" + ::msgcat::mcset en "&Green" + ::msgcat::mcset en "&Help" + ::msgcat::mcset en "Hi" + ::msgcat::mcset en "&Hide Console" + ::msgcat::mcset en "&Ignore" + ::msgcat::mcset en "Invalid file name \"%1\$s\"." + ::msgcat::mcset en "Log Files" + ::msgcat::mcset en "&No" + ::msgcat::mcset en "&OK" + ::msgcat::mcset en "Ok" + ::msgcat::mcset en "Open" + ::msgcat::mcset en "&Open" + ::msgcat::mcset en "Open Multiple Files" + ::msgcat::mcset en "P&aste" + ::msgcat::mcset en "&Quit" + ::msgcat::mcset en "&Red" + ::msgcat::mcset en "Replace existing file?" + ::msgcat::mcset en "&Retry" + ::msgcat::mcset en "&Save" + ::msgcat::mcset en "Save As" + ::msgcat::mcset en "Save To Log" + ::msgcat::mcset en "Select Log File" + ::msgcat::mcset en "Select a file to source" + ::msgcat::mcset en "&Selection:" + ::msgcat::mcset en "Skip Messages" + ::msgcat::mcset en "&Source..." + ::msgcat::mcset en "Tcl Scripts" + ::msgcat::mcset en "Tcl for Windows" + ::msgcat::mcset en "Text Files" + ::msgcat::mcset en "&Yes" + ::msgcat::mcset en "abort" + ::msgcat::mcset en "blue" + ::msgcat::mcset en "cancel" + ::msgcat::mcset en "extension" + ::msgcat::mcset en "extensions" + ::msgcat::mcset en "green" + ::msgcat::mcset en "ignore" + ::msgcat::mcset en "ok" + ::msgcat::mcset en "red" + ::msgcat::mcset en "retry" + ::msgcat::mcset en "yes" +} diff --git a/mingw/lib/tk8.4/msgs/en_gb.msg b/mingw/lib/tk8.5/msgs/en_gb.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/en_gb.msg rename to mingw/lib/tk8.5/msgs/en_gb.msg diff --git a/mingw/lib/tk8.4/msgs/eo.msg b/mingw/lib/tk8.5/msgs/eo.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/eo.msg rename to mingw/lib/tk8.5/msgs/eo.msg diff --git a/mingw/lib/tk8.5/msgs/es.msg b/mingw/lib/tk8.5/msgs/es.msg new file mode 100644 index 00000000..ceb12d6c --- /dev/null +++ b/mingw/lib/tk8.5/msgs/es.msg @@ -0,0 +1,74 @@ +namespace eval ::tk { + ::msgcat::mcset es "&Abort" "&Abortar" + ::msgcat::mcset es "&About..." "&Acerca de ..." + ::msgcat::mcset es "All Files" "Todos los archivos" + ::msgcat::mcset es "Application Error" "Error de la aplicaci\u00f3n" + ::msgcat::mcset es "&Blue" "&Azul" + ::msgcat::mcset es "&Cancel" "&Cancelar" + ::msgcat::mcset es "Cannot change to the directory \"%1\$s\".\nPermission denied." "No es posible acceder al directorio \"%1\$s\".\nPermiso denegado." + ::msgcat::mcset es "Choose Directory" "Elegir directorio" + ::msgcat::mcset es "Cl&ear" "&Borrar" + ::msgcat::mcset es "&Clear Console" "&Borrar consola" + ::msgcat::mcset es "Color" "Color" + ::msgcat::mcset es "Console" "Consola" + ::msgcat::mcset es "&Copy" "&Copiar" + ::msgcat::mcset es "Cu&t" "Cor&tar" + ::msgcat::mcset es "&Delete" "&Borrar" + ::msgcat::mcset es "Details >>" "Detalles >>" + ::msgcat::mcset es "Directory \"%1\$s\" does not exist." "El directorio \"%1\$s\" no existe." + ::msgcat::mcset es "&Directory:" "&Directorio:" + ::msgcat::mcset es "&Edit" "&Editar" + ::msgcat::mcset es "Error: %1\$s" "Error: %1\$s" + ::msgcat::mcset es "E&xit" "Salir" + ::msgcat::mcset es "&File" "&Archivo" + ::msgcat::mcset es "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "El archivo \"%1\$s\" ya existe.\n\u00bfDesea sobreescribirlo?" + ::msgcat::mcset es "File \"%1\$s\" already exists.\n\n" "El archivo \"%1\$s\" ya existe.\n\n" + ::msgcat::mcset es "File \"%1\$s\" does not exist." "El archivo \"%1\$s\" no existe." + ::msgcat::mcset es "File &name:" "&Nombre de archivo:" + ::msgcat::mcset es "File &names:" "&Nombres de archivo:" + ::msgcat::mcset es "Files of &type:" "Archivos de &tipo:" + ::msgcat::mcset es "Fi&les:" "&Archivos:" + ::msgcat::mcset es "&Filter" "&Filtro" + ::msgcat::mcset es "Fil&ter:" "Fil&tro:" + ::msgcat::mcset es "&Green" "&Verde" + ::msgcat::mcset es "&Help" "&Ayuda" + ::msgcat::mcset es "Hi" "Hola" + ::msgcat::mcset es "&Hide Console" "&Esconder la consola" + ::msgcat::mcset es "&Ignore" "&Ignorar" + ::msgcat::mcset es "Invalid file name \"%1\$s\"." "Nombre de archivo inv\u00e1lido \"%1\$s\"." + ::msgcat::mcset es "Log Files" "Ficheros de traza" + ::msgcat::mcset es "&No" "&No" + ::msgcat::mcset es "&OK" "&OK" + ::msgcat::mcset es "Ok" "Ok" + ::msgcat::mcset es "Open" "Abrir" + ::msgcat::mcset es "&Open" "&Abrir" + ::msgcat::mcset es "Open Multiple Files" "Abrir m\u00faltiples archivos" + ::msgcat::mcset es "P&aste" "Peg&ar" + ::msgcat::mcset es "&Quit" "&Abandonar" + ::msgcat::mcset es "&Red" "&Rojo" + ::msgcat::mcset es "Replace existing file?" "\u00bfReemplazar el archivo existente?" + ::msgcat::mcset es "&Retry" "&Reintentar" + ::msgcat::mcset es "&Save" "&Guardar" + ::msgcat::mcset es "Save As" "Guardar como" + ::msgcat::mcset es "Save To Log" "Guardar al archivo de traza" + ::msgcat::mcset es "Select Log File" "Elegir un archivo de traza" + ::msgcat::mcset es "Select a file to source" "Seleccionar un archivo a evaluar" + ::msgcat::mcset es "&Selection:" "&Selecci\u00f3n:" + ::msgcat::mcset es "Skip Messages" "Omitir los mensajes" + ::msgcat::mcset es "&Source..." "E&valuar..." + ::msgcat::mcset es "Tcl Scripts" "Scripts Tcl" + ::msgcat::mcset es "Tcl for Windows" "Tcl para Windows" + ::msgcat::mcset es "Text Files" "Archivos de texto" + ::msgcat::mcset es "&Yes" "&S\u00ed" + ::msgcat::mcset es "abort" "abortar" + ::msgcat::mcset es "blue" "azul" + ::msgcat::mcset es "cancel" "cancelar" + ::msgcat::mcset es "extension" "extensi\u00f3n" + ::msgcat::mcset es "extensions" "extensiones" + ::msgcat::mcset es "green" "verde" + ::msgcat::mcset es "ignore" "ignorar" + ::msgcat::mcset es "ok" "ok" + ::msgcat::mcset es "red" "rojo" + ::msgcat::mcset es "retry" "reintentar" + ::msgcat::mcset es "yes" "s\u00ed" +} diff --git a/mingw/lib/tk8.4/msgs/fr.msg b/mingw/lib/tk8.5/msgs/fr.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/fr.msg rename to mingw/lib/tk8.5/msgs/fr.msg diff --git a/mingw/lib/tk8.5/msgs/hu.msg b/mingw/lib/tk8.5/msgs/hu.msg new file mode 100644 index 00000000..fc4700f9 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/hu.msg @@ -0,0 +1,77 @@ +namespace eval ::tk { + ::msgcat::mcset hu "&Abort" "&Megszak\u00edt\u00e1s" + ::msgcat::mcset hu "About..." "N\u00e9vjegy..." + ::msgcat::mcset hu "All Files" "Minden f\u00e1jl" + ::msgcat::mcset hu "All Files (*) " "Minden f\u00e1jl (*) " + ::msgcat::mcset hu "Application Error" "Alkalmaz\u00e1s hiba" + ::msgcat::mcset hu "&Blue" "&K\u00e9k" + ::msgcat::mcset hu "&Cancel" "M\u00e9g&sem" + ::msgcat::mcset hu "Cannot change to the directory \"%1\$s\".\nPermission denied." "A k\u00f6nyvt\u00e1rv\u00e1lt\u00e1s nem siker\u00fclt: \"%1\$s\".\nHozz\u00e1f\u00e9r\u00e9s megtagadva." + ::msgcat::mcset hu "Choose Directory" "K\u00f6nyvt\u00e1r kiv\u00e1laszt\u00e1sa" + ::msgcat::mcset hu "Clear" "T\u00f6rl\u00e9s" + ::msgcat::mcset hu "&Clear Console" "&T\u00f6rl\u00e9s Konzol" + ::msgcat::mcset hu "Color" "Sz\u00edn" + ::msgcat::mcset hu "Console" "Konzol" + ::msgcat::mcset hu "&Copy" "&M\u00e1sol\u00e1s" + ::msgcat::mcset hu "Cu&t" "&Kiv\u00e1g\u00e1s" + ::msgcat::mcset hu "&Delete" "&T\u00f6rl\u00e9s" + ::msgcat::mcset hu "Details >>" "R\u00e9szletek >>" + ::msgcat::mcset hu "Directory \"%1\$s\" does not exist." "\"%1\$s\" k\u00f6nyvt\u00e1r nem l\u00e9tezik." + ::msgcat::mcset hu "&Directory:" "&K\u00f6nyvt\u00e1r:" + #::msgcat::mcset hu "&Edit" + ::msgcat::mcset hu "Error: %1\$s" "Hiba: %1\$s" + ::msgcat::mcset hu "E&xit" "Kil\u00e9p\u00e9s" + ::msgcat::mcset hu "&File" "&F\u00e1jl" + ::msgcat::mcset hu "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "\"%1\$s\" f\u00e1jl m\u00e1r l\u00e9tezik.\nFel\u00fcl\u00edrjam?" + ::msgcat::mcset hu "File \"%1\$s\" already exists.\n\n" "\"%1\$s\" f\u00e1jl m\u00e1r l\u00e9tezik.\n\n" + ::msgcat::mcset hu "File \"%1\$s\" does not exist." "\"%1\$s\" f\u00e1jl nem l\u00e9tezik." + ::msgcat::mcset hu "File &name:" "F\u00e1jl &neve:" + ::msgcat::mcset hu "File &names:" "F\u00e1jlok &nevei:" + ::msgcat::mcset hu "Files of &type:" "F\u00e1jlok &t\u00edpusa:" + ::msgcat::mcset hu "Fi&les:" "F\u00e1j&lok:" + ::msgcat::mcset hu "&Filter" "&Sz\u0171r\u0151" + ::msgcat::mcset hu "Fil&ter:" "S&z\u0171r\u0151:" + ::msgcat::mcset hu "&Green" "&Z\u00f6ld" + #::msgcat::mcset hu "&Help" + ::msgcat::mcset hu "Hi" "\u00dcdv" + ::msgcat::mcset hu "&Hide Console" "Konzol &elrejt\u00e9se" + ::msgcat::mcset hu "&Ignore" "K&ihagy\u00e1s" + ::msgcat::mcset hu "Invalid file name \"%1\$s\"." "\u00c9rv\u00e9nytelen f\u00e1jln\u00e9v: \"%1\$s\"." + ::msgcat::mcset hu "Log Files" "Log f\u00e1jlok" + ::msgcat::mcset hu "&No" "&Nem" + ::msgcat::mcset hu "&OK" + ::msgcat::mcset hu "OK" + ::msgcat::mcset hu "Open" "Megnyit\u00e1s" + ::msgcat::mcset hu "&Open" "&Megnyit\u00e1s" + ::msgcat::mcset hu "Open Multiple Files" "T\u00f6bb f\u00e1jl megnyit\u00e1sa" + ::msgcat::mcset hu "P&aste" "&Beilleszt\u00e9s" + ::msgcat::mcset hu "&Quit" "&Kil\u00e9p\u00e9s" + ::msgcat::mcset hu "&Red" "&V\u00f6r\u00f6s" + ::msgcat::mcset hu "Replace existing file?" "Megl\u00e9v\u0151 f\u00e1jl cser\u00e9je?" + ::msgcat::mcset hu "&Retry" "\u00daj&ra" + ::msgcat::mcset hu "&Save" "&Ment\u00e9s" + ::msgcat::mcset hu "Save As" "Ment\u00e9s m\u00e1sk\u00e9nt" + ::msgcat::mcset hu "Save To Log" "Ment\u00e9s log f\u00e1jlba" + ::msgcat::mcset hu "Select Log File" "Log f\u00e1jl kiv\u00e1laszt\u00e1sa" + ::msgcat::mcset hu "Select a file to source" "Forr\u00e1sf\u00e1jl kiv\u00e1laszt\u00e1sa" + ::msgcat::mcset hu "&Selection:" "&Kijel\u00f6l\u00e9s:" + ::msgcat::mcset hu "Show &Hidden Directories" "&Rejtett k\u00f6nyvt\u00e1rak megjelen\u00edt\u00e9se" + ::msgcat::mcset hu "Show &Hidden Files and Directories" "&Rejtett f\u00e1jlok \u00e9s k\u00f6nyvt\u00e1rak megjelen\u00edt\u00e9se" + ::msgcat::mcset hu "Skip Messages" "\u00dczenetek kihagy\u00e1sa" + ::msgcat::mcset hu "&Source..." "&Forr\u00e1s..." + ::msgcat::mcset hu "Tcl Scripts" "Tcl scriptek" + ::msgcat::mcset hu "Tcl for Windows" "Tcl Windows-hoz" + ::msgcat::mcset hu "Text Files" "Sz\u00f6vegf\u00e1jlok" + ::msgcat::mcset hu "&Yes" "&Igen" + ::msgcat::mcset hu "abort" "megszak\u00edt\u00e1s" + ::msgcat::mcset hu "blue" "k\u00e9k" + ::msgcat::mcset hu "cancel" "m\u00e9gsem" + ::msgcat::mcset hu "extension" "kiterjeszt\u00e9s" + ::msgcat::mcset hu "extensions" "kiterjeszt\u00e9sek" + ::msgcat::mcset hu "green" "z\u00f6ld" + ::msgcat::mcset hu "ignore" "ignorer" + ::msgcat::mcset hu "ok" + ::msgcat::mcset hu "red" "v\u00f6r\u00f6s" + ::msgcat::mcset hu "retry" "\u00fajra" + ::msgcat::mcset hu "yes" "igen" +} diff --git a/mingw/lib/tk8.4/msgs/it.msg b/mingw/lib/tk8.5/msgs/it.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/it.msg rename to mingw/lib/tk8.5/msgs/it.msg diff --git a/mingw/lib/tk8.4/msgs/nl.msg b/mingw/lib/tk8.5/msgs/nl.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/nl.msg rename to mingw/lib/tk8.5/msgs/nl.msg diff --git a/mingw/lib/tk8.4/msgs/pl.msg b/mingw/lib/tk8.5/msgs/pl.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/pl.msg rename to mingw/lib/tk8.5/msgs/pl.msg diff --git a/mingw/lib/tk8.4/msgs/pt.msg b/mingw/lib/tk8.5/msgs/pt.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/pt.msg rename to mingw/lib/tk8.5/msgs/pt.msg diff --git a/mingw/lib/tk8.4/msgs/ru.msg b/mingw/lib/tk8.5/msgs/ru.msg similarity index 100% rename from mingw/lib/tk8.4/msgs/ru.msg rename to mingw/lib/tk8.5/msgs/ru.msg diff --git a/mingw/lib/tk8.5/msgs/sv.msg b/mingw/lib/tk8.5/msgs/sv.msg new file mode 100644 index 00000000..505de880 --- /dev/null +++ b/mingw/lib/tk8.5/msgs/sv.msg @@ -0,0 +1,74 @@ +namespace eval ::tk { + ::msgcat::mcset de "&Abort" "&Avsluta" + ::msgcat::mcset de "&About..." "&Om..." + ::msgcat::mcset de "All Files" "Samtliga filer" + ::msgcat::mcset de "Application Error" "Programfel" + ::msgcat::mcset de "&Blue" "&Bl\u00e5" + ::msgcat::mcset de "&Cancel" "&Avbryt" + ::msgcat::mcset de "Cannot change to the directory \"%1\$s\".\nPermission denied." "Kan ej n\u00e5 mappen \"%1\$s\".\nSaknar r\u00e4ttigheter." + ::msgcat::mcset de "Choose Directory" "V\u00e4lj mapp" + ::msgcat::mcset de "&Clear" "&Radera" + ::msgcat::mcset de "&Clear Console" "&Radera konsollen" + ::msgcat::mcset de "Color" "F\u00e4rg" + ::msgcat::mcset de "Console" "Konsoll" + ::msgcat::mcset de "&Copy" "&Kopiera" + ::msgcat::mcset de "Cu&t" "Klipp u&t" + ::msgcat::mcset de "&Delete" "&Radera" + ::msgcat::mcset de "Details >>" "Detaljer >>" + ::msgcat::mcset de "Directory \"%1\$s\" does not exist." "Mappen \"%1\$s\" finns ej." + ::msgcat::mcset de "&Directory:" "&Mapp:" + ::msgcat::mcset de "&Edit" "R&edigera" + ::msgcat::mcset de "Error: %1\$s" "Fel: %1\$s" + ::msgcat::mcset de "E&xit" "&Avsluta" + ::msgcat::mcset de "&File" "&Fil" + ::msgcat::mcset de "File \"%1\$s\" already exists.\nDo you want to overwrite it?" "Filen \"%1\$s\" finns redan.\nVill du skriva \u00f6ver den?" + ::msgcat::mcset de "File \"%1\$s\" already exists.\n\n" "Filen \"%1\$s\" finns redan.\n\n" + ::msgcat::mcset de "File \"%1\$s\" does not exist." "Filen \"%1\$s\" finns ej." + ::msgcat::mcset de "File &name:" "Fil&namn:" + ::msgcat::mcset de "File &names:" "Fil&namn:" + ::msgcat::mcset de "Files of &type:" "Filer av &typ:" + ::msgcat::mcset de "Fi&les:" "Fi&ler:" + ::msgcat::mcset de "&Filter" + ::msgcat::mcset de "Fil&ter:" + ::msgcat::mcset de "&Green" "&Gr\u00f6n" + ::msgcat::mcset de "&Help" "&Hj\u00e4lp" + ::msgcat::mcset de "Hi" "Hej" + ::msgcat::mcset de "&Hide Console" "&G\u00f6m konsollen" + ::msgcat::mcset de "&Ignore" "&Ignorera" + ::msgcat::mcset de "Invalid file name \"%1\$s\"." "Ogiltigt filnamn \"%1\$s\"." + ::msgcat::mcset de "Log Files" "Loggfiler" + ::msgcat::mcset de "&No" "&Nej" + ::msgcat::mcset de "OK" + ::msgcat::mcset de "Ok" + ::msgcat::mcset de "Open" "\u00d6ppna" + ::msgcat::mcset de "&Open" "&\u00d6ppna" + ::msgcat::mcset de "Open Multiple Files" "\u00d6ppna flera filer" + ::msgcat::mcset de "P&aste" "&Klistra in" + ::msgcat::mcset de "&Quit" "&Avsluta" + ::msgcat::mcset de "&Red" "&R\u00f6d" + ::msgcat::mcset de "Replace existing file?" "Ers\u00e4tt existerande fil?" + ::msgcat::mcset de "&Retry" "&F\u00f6rs\u00f6k igen" + ::msgcat::mcset de "&Save" "&Spara" + ::msgcat::mcset de "Save As" "Spara som" + ::msgcat::mcset de "Save To Log" "Spara till logg" + ::msgcat::mcset de "Select Log File" "V\u00e4lj loggfil" + ::msgcat::mcset de "Select a file to source" "V\u00e4lj k\u00e4llfil" + ::msgcat::mcset de "&Selection:" "&Val:" + ::msgcat::mcset de "Skip Messages" "Hoppa \u00f6ver meddelanden" + ::msgcat::mcset de "&Source..." "&K\u00e4lla..." + ::msgcat::mcset de "Tcl Scripts" "Tcl skript" + ::msgcat::mcset de "Tcl for Windows" "Tcl f\u00f6r Windows" + ::msgcat::mcset de "Text Files" "Textfiler" + ::msgcat::mcset de "&Yes" "&Ja" + ::msgcat::mcset de "abort" "avbryt" + ::msgcat::mcset de "blue" "bl\u00e5" + ::msgcat::mcset de "cancel" "avbryt" + ::msgcat::mcset de "extension" "utvidgning" + ::msgcat::mcset de "extensions" "utvidgningar" + ::msgcat::mcset de "green" "gr\u00f6n" + ::msgcat::mcset de "ignore" "ignorera" + ::msgcat::mcset de "ok" + ::msgcat::mcset de "red" "r\u00f6d" + ::msgcat::mcset de "retry" "f\u00f6rs\u00f6k igen" + ::msgcat::mcset de "yes" "ja" +} diff --git a/mingw/lib/tk8.4/obsolete.tcl b/mingw/lib/tk8.5/obsolete.tcl similarity index 100% rename from mingw/lib/tk8.4/obsolete.tcl rename to mingw/lib/tk8.5/obsolete.tcl diff --git a/mingw/lib/tk8.4/optMenu.tcl b/mingw/lib/tk8.5/optMenu.tcl similarity index 100% rename from mingw/lib/tk8.4/optMenu.tcl rename to mingw/lib/tk8.5/optMenu.tcl diff --git a/mingw/lib/tk8.5/palette.tcl b/mingw/lib/tk8.5/palette.tcl new file mode 100644 index 00000000..eae93d9f --- /dev/null +++ b/mingw/lib/tk8.5/palette.tcl @@ -0,0 +1,248 @@ +# palette.tcl -- +# +# This file contains procedures that change the color palette used +# by Tk. +# +# RCS: @(#) $Id: palette.tcl,v 1.12 2007/05/09 12:51:55 das Exp $ +# +# Copyright (c) 1995-1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +# ::tk_setPalette -- +# Changes the default color scheme for a Tk application by setting +# default colors in the option database and by modifying all of the +# color options for existing widgets that have the default value. +# +# Arguments: +# The arguments consist of either a single color name, which +# will be used as the new background color (all other colors will +# be computed from this) or an even number of values consisting of +# option names and values. The name for an option is the one used +# for the option database, such as activeForeground, not -activeforeground. + +proc ::tk_setPalette {args} { + if {[winfo depth .] == 1} { + # Just return on monochrome displays, otherwise errors will occur + return + } + + # Create an array that has the complete new palette. If some colors + # aren't specified, compute them from other colors that are specified. + + if {[llength $args] == 1} { + set new(background) [lindex $args 0] + } else { + array set new $args + } + if {![info exists new(background)]} { + error "must specify a background color" + } + set bg [winfo rgb . $new(background)] + if {![info exists new(foreground)]} { + # Note that the range of each value in the triple returned by + # [winfo rgb] is 0-65535, and your eyes are more sensitive to + # green than to red, and more to red than to blue. + foreach {r g b} $bg {break} + if {$r+1.5*$g+0.5*$b > 100000} { + set new(foreground) black + } else { + set new(foreground) white + } + } + lassign [winfo rgb . $new(foreground)] fg_r fg_g fg_b + lassign $bg bg_r bg_g bg_b + set darkerBg [format #%02x%02x%02x [expr {(9*$bg_r)/2560}] \ + [expr {(9*$bg_g)/2560}] [expr {(9*$bg_b)/2560}]] + + foreach i {activeForeground insertBackground selectForeground \ + highlightColor} { + if {![info exists new($i)]} { + set new($i) $new(foreground) + } + } + if {![info exists new(disabledForeground)]} { + set new(disabledForeground) [format #%02x%02x%02x \ + [expr {(3*$bg_r + $fg_r)/1024}] \ + [expr {(3*$bg_g + $fg_g)/1024}] \ + [expr {(3*$bg_b + $fg_b)/1024}]] + } + if {![info exists new(highlightBackground)]} { + set new(highlightBackground) $new(background) + } + if {![info exists new(activeBackground)]} { + # Pick a default active background that islighter than the + # normal background. To do this, round each color component + # up by 15% or 1/3 of the way to full white, whichever is + # greater. + + foreach i {0 1 2} color $bg { + set light($i) [expr {$color/256}] + set inc1 [expr {($light($i)*15)/100}] + set inc2 [expr {(255-$light($i))/3}] + if {$inc1 > $inc2} { + incr light($i) $inc1 + } else { + incr light($i) $inc2 + } + if {$light($i) > 255} { + set light($i) 255 + } + } + set new(activeBackground) [format #%02x%02x%02x $light(0) \ + $light(1) $light(2)] + } + if {![info exists new(selectBackground)]} { + set new(selectBackground) $darkerBg + } + if {![info exists new(troughColor)]} { + set new(troughColor) $darkerBg + } + if {![info exists new(selectColor)]} { + set new(selectColor) #b03060 + } + + # let's make one of each of the widgets so we know what the + # defaults are currently for this platform. + toplevel .___tk_set_palette + wm withdraw .___tk_set_palette + foreach q { + button canvas checkbutton entry frame label labelframe + listbox menubutton menu message radiobutton scale scrollbar + spinbox text + } { + $q .___tk_set_palette.$q + } + + # Walk the widget hierarchy, recoloring all existing windows. + # The option database must be set according to what we do here, + # but it breaks things if we set things in the database while + # we are changing colors...so, ::tk::RecolorTree now returns the + # option database changes that need to be made, and they + # need to be evalled here to take effect. + # We have to walk the whole widget tree instead of just + # relying on the widgets we've created above to do the work + # because different extensions may provide other kinds + # of widgets that we don't currently know about, so we'll + # walk the whole hierarchy just in case. + + eval [tk::RecolorTree . new] + + destroy .___tk_set_palette + + # Change the option database so that future windows will get the + # same colors. + + foreach option [array names new] { + option add *$option $new($option) widgetDefault + } + + # Save the options in the variable ::tk::Palette, for use the + # next time we change the options. + + array set ::tk::Palette [array get new] +} + +# ::tk::RecolorTree -- +# This procedure changes the colors in a window and all of its +# descendants, according to information provided by the colors +# argument. This looks at the defaults provided by the option +# database, if it exists, and if not, then it looks at the default +# value of the widget itself. +# +# Arguments: +# w - The name of a window. This window and all its +# descendants are recolored. +# colors - The name of an array variable in the caller, +# which contains color information. Each element +# is named after a widget configuration option, and +# each value is the value for that option. + +proc ::tk::RecolorTree {w colors} { + upvar $colors c + set result {} + set prototype .___tk_set_palette.[string tolower [winfo class $w]] + if {![winfo exists $prototype]} { + unset prototype + } + foreach dbOption [array names c] { + set option -[string tolower $dbOption] + set class [string replace $dbOption 0 0 [string toupper \ + [string index $dbOption 0]]] + if {![catch {$w configure $option} value]} { + # if the option database has a preference for this + # dbOption, then use it, otherwise use the defaults + # for the widget. + set defaultcolor [option get $w $dbOption $class] + if {$defaultcolor eq "" || \ + ([info exists prototype] && \ + [$prototype cget $option] ne "$defaultcolor")} { + set defaultcolor [lindex $value 3] + } + if {$defaultcolor ne ""} { + set defaultcolor [winfo rgb . $defaultcolor] + } + set chosencolor [lindex $value 4] + if {$chosencolor ne ""} { + set chosencolor [winfo rgb . $chosencolor] + } + if {[string match $defaultcolor $chosencolor]} { + # Change the option database so that future windows will get + # the same colors. + append result ";\noption add [list \ + *[winfo class $w].$dbOption $c($dbOption) 60]" + $w configure $option $c($dbOption) + } + } + } + foreach child [winfo children $w] { + append result ";\n[::tk::RecolorTree $child c]" + } + return $result +} + +# ::tk::Darken -- +# Given a color name, computes a new color value that darkens (or +# brightens) the given color by a given percent. +# +# Arguments: +# color - Name of starting color. +# perecent - Integer telling how much to brighten or darken as a +# percent: 50 means darken by 50%, 110 means brighten +# by 10%. + +proc ::tk::Darken {color percent} { + foreach {red green blue} [winfo rgb . $color] { + set red [expr {($red/256)*$percent/100}] + set green [expr {($green/256)*$percent/100}] + set blue [expr {($blue/256)*$percent/100}] + break + } + if {$red > 255} { + set red 255 + } + if {$green > 255} { + set green 255 + } + if {$blue > 255} { + set blue 255 + } + return [format "#%02x%02x%02x" $red $green $blue] +} + +# ::tk_bisque -- +# Reset the Tk color palette to the old "bisque" colors. +# +# Arguments: +# None. + +proc ::tk_bisque {} { + tk_setPalette activeBackground #e6ceb1 activeForeground black \ + background #ffe4c4 disabledForeground #b0b0b0 foreground black \ + highlightBackground #ffe4c4 highlightColor black \ + insertBackground black selectColor #b03060 \ + selectBackground #e6ceb1 selectForeground black \ + troughColor #cdb79e +} diff --git a/mingw/lib/tk8.5/panedwindow.tcl b/mingw/lib/tk8.5/panedwindow.tcl new file mode 100644 index 00000000..f1f9f9af --- /dev/null +++ b/mingw/lib/tk8.5/panedwindow.tcl @@ -0,0 +1,197 @@ +# panedwindow.tcl -- +# +# This file defines the default bindings for Tk panedwindow widgets and +# provides procedures that help in implementing those bindings. +# +# RCS: @(#) $Id: panedwindow.tcl,v 1.11 2005/07/25 09:06:00 dkf Exp $ +# + +bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 1 } +bind Panedwindow { ::tk::panedwindow::MarkSash %W %x %y 0 } + +bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 1 } +bind Panedwindow { ::tk::panedwindow::DragSash %W %x %y 0 } + +bind Panedwindow {::tk::panedwindow::ReleaseSash %W 1} +bind Panedwindow {::tk::panedwindow::ReleaseSash %W 0} + +bind Panedwindow { ::tk::panedwindow::Motion %W %x %y } + +bind Panedwindow { ::tk::panedwindow::Leave %W } + +# Initialize namespace +namespace eval ::tk::panedwindow {} + +# ::tk::panedwindow::MarkSash -- +# +# Handle marking the correct sash for possible dragging +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# proxy whether this should be a proxy sash +# Results: +# None +# +proc ::tk::panedwindow::MarkSash {w x y proxy} { + variable ::tk::Priv + if {[$w cget -opaqueresize]} { + set proxy 0 + } + set what [$w identify $x $y] + if { [llength $what] == 2 } { + lassign $what index which + if {!$::tk_strictMotif || $which eq "handle"} { + if {!$proxy} { + $w sash mark $index $x $y + } + set Priv(sash) $index + lassign [$w sash coord $index] sx sy + set Priv(dx) [expr {$sx-$x}] + set Priv(dy) [expr {$sy-$y}] + # Do this to init the proxy location + DragSash $w $x $y $proxy + } + } +} + +# ::tk::panedwindow::DragSash -- +# +# Handle dragging of the correct sash +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# proxy whether this should be a proxy sash +# Results: +# Moves sash +# +proc ::tk::panedwindow::DragSash {w x y proxy} { + variable ::tk::Priv + if {[$w cget -opaqueresize]} { + set proxy 0 + } + if {[info exists Priv(sash)]} { + if {$proxy} { + $w proxy place [expr {$x+$Priv(dx)}] [expr {$y+$Priv(dy)}] + } else { + $w sash place $Priv(sash) \ + [expr {$x+$Priv(dx)}] [expr {$y+$Priv(dy)}] + } + } +} + +# ::tk::panedwindow::ReleaseSash -- +# +# Handle releasing of the sash +# +# Arguments: +# w the widget +# proxy whether this should be a proxy sash +# Results: +# Returns ... +# +proc ::tk::panedwindow::ReleaseSash {w proxy} { + variable ::tk::Priv + if {[$w cget -opaqueresize]} { + set proxy 0 + } + if {[info exists Priv(sash)]} { + if {$proxy} { + lassign [$w proxy coord] x y + $w sash place $Priv(sash) $x $y + $w proxy forget + } + unset Priv(sash) Priv(dx) Priv(dy) + } +} + +# ::tk::panedwindow::Motion -- +# +# Handle motion on the widget. This is used to change the cursor +# when the user moves over the sash area. +# +# Arguments: +# w the widget +# x widget local x coord +# y widget local y coord +# Results: +# May change the cursor. Sets up a timer to verify that we are still +# over the widget. +# +proc ::tk::panedwindow::Motion {w x y} { + variable ::tk::Priv + set id [$w identify $x $y] + if {([llength $id] == 2) && \ + (!$::tk_strictMotif || [lindex $id 1] eq "handle")} { + if {![info exists Priv($w,panecursor)]} { + set Priv($w,panecursor) [$w cget -cursor] + if {[$w cget -sashcursor] ne ""} { + $w configure -cursor [$w cget -sashcursor] + } elseif {[$w cget -orient] eq "horizontal"} { + $w configure -cursor sb_h_double_arrow + } else { + $w configure -cursor sb_v_double_arrow + } + if {[info exists Priv($w,pwAfterId)]} { + after cancel $Priv($w,pwAfterId) + } + set Priv($w,pwAfterId) [after 150 \ + [list ::tk::panedwindow::Cursor $w]] + } + return + } + if {[info exists Priv($w,panecursor)]} { + $w configure -cursor $Priv($w,panecursor) + unset Priv($w,panecursor) + } +} + +# ::tk::panedwindow::Cursor -- +# +# Handles returning the normal cursor when we are no longer over the +# sash area. This needs to be done this way, because the panedwindow +# won't see Leave events when the mouse moves from the sash to a +# paned child, although the child does receive an Enter event. +# +# Arguments: +# w the widget +# Results: +# May restore the default cursor, or schedule a timer to do it. +# +proc ::tk::panedwindow::Cursor {w} { + variable ::tk::Priv + # Make sure to check window existence in case it is destroyed. + if {[info exists Priv($w,panecursor)] && [winfo exists $w]} { + if {[winfo containing [winfo pointerx $w] [winfo pointery $w]] eq $w} { + set Priv($w,pwAfterId) [after 150 \ + [list ::tk::panedwindow::Cursor $w]] + } else { + $w configure -cursor $Priv($w,panecursor) + unset Priv($w,panecursor) + if {[info exists Priv($w,pwAfterId)]} { + after cancel $Priv($w,pwAfterId) + unset Priv($w,pwAfterId) + } + } + } +} + +# ::tk::panedwindow::Leave -- +# +# Return to default cursor when leaving the pw widget. +# +# Arguments: +# w the widget +# Results: +# Restores the default cursor +# +proc ::tk::panedwindow::Leave {w} { + variable ::tk::Priv + if {[info exists Priv($w,panecursor)]} { + $w configure -cursor $Priv($w,panecursor) + unset Priv($w,panecursor) + } +} diff --git a/mingw/lib/tk8.5/pkgIndex.tcl b/mingw/lib/tk8.5/pkgIndex.tcl new file mode 100644 index 00000000..1925bfda --- /dev/null +++ b/mingw/lib/tk8.5/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {[catch {package present Tcl 8.5b2}]} { return } +package ifneeded Tk 8.5b2 [list load [file join $dir .. .. bin tk85.dll] Tk] diff --git a/mingw/lib/tk8.4/prolog.ps b/mingw/lib/tk8.5/prolog.ps similarity index 100% rename from mingw/lib/tk8.4/prolog.ps rename to mingw/lib/tk8.5/prolog.ps diff --git a/mingw/lib/tk8.5/safetk.tcl b/mingw/lib/tk8.5/safetk.tcl new file mode 100644 index 00000000..4ad1418d --- /dev/null +++ b/mingw/lib/tk8.5/safetk.tcl @@ -0,0 +1,279 @@ +# safetk.tcl -- +# +# Support procs to use Tk in safe interpreters. +# +# RCS: @(#) $Id: safetk.tcl,v 1.10 2006/11/03 15:58:51 patthoyts Exp $ +# +# Copyright (c) 1997 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +# see safetk.n for documentation + +# +# +# Note: It is now ok to let untrusted code being executed +# between the creation of the interp and the actual loading +# of Tk in that interp because the C side Tk_Init will +# now look up the master interp and ask its safe::TkInit +# for the actual parameters to use for it's initialization (if allowed), +# not relying on the slave state. +# + +# We use opt (optional arguments parsing) +package require opt 0.4.1; + +namespace eval ::safe { + + # counter for safe toplevels + variable tkSafeId 0; + + # + # tkInterpInit : prepare the slave interpreter for tk loading + # most of the real job is done by loadTk + # returns the slave name (tkInterpInit does) + # + proc ::safe::tkInterpInit {slave argv} { + global env tk_library + + # We have to make sure that the tk_library variable uses a file + # pathname that works better in Tk (of the style returned by + # [file join], ie C:/path/to/tk/lib, not C:\path\to\tk\lib + set tk_library [file join $tk_library] + + # Clear Tk's access for that interp (path). + allowTk $slave $argv + + # there seems to be an obscure case where the tk_library + # variable value is changed to point to a sym link destination + # dir instead of the sym link itself, and thus where the $tk_library + # would then not be anymore one of the auto_path dir, so we use + # the addToAccessPath which adds if it's not already in instead + # of the more conventional findInAccessPath. + # Might be usefull for masters without Tk really loaded too. + ::interp eval $slave [list set tk_library [::safe::interpAddToAccessPath $slave $tk_library]] + return $slave + } + + +# tkInterpLoadTk : +# Do additional configuration as needed (calling tkInterpInit) +# and actually load Tk into the slave. +# +# Either contained in the specified windowId (-use) or +# creating a decorated toplevel for it. + +# empty definition for auto_mkIndex +proc ::safe::loadTk {} {} + +::tcl::OptProc loadTk { + {slave -interp "name of the slave interpreter"} + {-use -windowId {} "window Id to use (new toplevel otherwise)"} + {-display -displayName {} "display name to use (current one otherwise)"} +} { + set displayGiven [::tcl::OptProcArgGiven "-display"] + if {!$displayGiven} { + + # Try to get the current display from "." + # (which might not exist if the master is tk-less) + + if {[catch {set display [winfo screen .]}]} { + if {[info exists ::env(DISPLAY)]} { + set display $::env(DISPLAY) + } else { + Log $slave "no winfo screen . nor env(DISPLAY)" WARNING + set display ":0.0" + } + } + } + if {![::tcl::OptProcArgGiven "-use"]} { + + # create a decorated toplevel + + ::tcl::Lassign [tkTopLevel $slave $display] w use + + # set our delete hook (slave arg is added by interpDelete) + # to clean up both window related code and tkInit(slave) + Set [DeleteHookName $slave] [list tkDelete {} $w] + + } else { + + # set our delete hook (slave arg is added by interpDelete) + # to clean up tkInit(slave) + + Set [DeleteHookName $slave] [list disallowTk] + + # Let's be nice and also accept tk window names instead of ids + + if {[string match ".*" $use]} { + set windowName $use + set use [winfo id $windowName] + set nDisplay [winfo screen $windowName] + } else { + + # Check for a better -display value + # (works only for multi screens on single host, but not + # cross hosts, for that a tk window name would be better + # but embeding is also usefull for non tk names) + + if {![catch {winfo pathname $use} name]} { + set nDisplay [winfo screen $name] + } else { + + # Can't have a better one + + set nDisplay $display + } + } + if {$nDisplay ne $display} { + if {$displayGiven} { + error "conflicting -display $display and -use\ + $use -> $nDisplay" + } else { + set display $nDisplay + } + } + } + + # Prepares the slave for tk with those parameters + + tkInterpInit $slave [list "-use" $use "-display" $display] + + load {} Tk $slave + + return $slave +} + +proc ::safe::TkInit {interpPath} { + variable tkInit + if {[info exists tkInit($interpPath)]} { + set value $tkInit($interpPath) + Log $interpPath "TkInit called, returning \"$value\"" NOTICE + return $value + } else { + Log $interpPath "TkInit called for interp with clearance:\ + preventing Tk init" ERROR + error "not allowed" + } +} + +# safe::allowTk -- +# +# Set tkInit(interpPath) to allow Tk to be initialized in +# safe::TkInit. +# +# Arguments: +# interpPath slave interpreter handle +# argv arguments passed to safe::TkInterpInit +# +# Results: +# none. + +proc ::safe::allowTk {interpPath argv} { + variable tkInit + set tkInit($interpPath) $argv + return +} + + +# safe::disallowTk -- +# +# Unset tkInit(interpPath) to disallow Tk from getting initialized +# in safe::TkInit. +# +# Arguments: +# interpPath slave interpreter handle +# +# Results: +# none. + +proc ::safe::disallowTk {interpPath} { + variable tkInit + # This can already be deleted by the DeleteHook of the interp + if {[info exists tkInit($interpPath)]} { + unset tkInit($interpPath) + } + return +} + + +# safe::tkDelete -- +# +# Clean up the window associated with the interp being deleted. +# +# Arguments: +# interpPath slave interpreter handle +# +# Results: +# none. + +proc ::safe::tkDelete {W window slave} { + + # we are going to be called for each widget... skip untill it's + # top level + + Log $slave "Called tkDelete $W $window" NOTICE + if {[::interp exists $slave]} { + if {[catch {::safe::interpDelete $slave} msg]} { + Log $slave "Deletion error : $msg" + } + } + if {[winfo exists $window]} { + Log $slave "Destroy toplevel $window" NOTICE + destroy $window + } + + # clean up tkInit(slave) + disallowTk $slave + return +} + +proc ::safe::tkTopLevel {slave display} { + variable tkSafeId + incr tkSafeId + set w ".safe$tkSafeId" + if {[catch {toplevel $w -screen $display -class SafeTk} msg]} { + return -code error "Unable to create toplevel for\ + safe slave \"$slave\" ($msg)" + } + Log $slave "New toplevel $w" NOTICE + + set msg "Untrusted Tcl applet ($slave)" + wm title $w $msg + + # Control frame (we must create a style for it) + ttk::style layout TWarningFrame {WarningFrame.border -sticky nswe} + ttk::style configure TWarningFrame -background red + + set wc $w.fc + ttk::frame $wc -relief ridge -borderwidth 4 -style TWarningFrame + + # We will destroy the interp when the window is destroyed + bindtags $wc [concat Safe$wc [bindtags $wc]] + bind Safe$wc [list ::safe::tkDelete %W $w $slave] + + ttk::label $wc.l -text $msg -anchor w + + # We want the button to be the last visible item + # (so be packed first) and at the right and not resizing horizontally + + # frame the button so it does not expand horizontally + # but still have the default background instead of red one from the parent + ttk::frame $wc.fb -borderwidth 0 + ttk::button $wc.fb.b -text "Delete" \ + -command [list ::safe::tkDelete $w $w $slave] + pack $wc.fb.b -side right -fill both + pack $wc.fb -side right -fill both -expand 1 + pack $wc.l -side left -fill both -expand 1 -ipady 2 + pack $wc -side bottom -fill x + + # Container frame + frame $w.c -container 1 + pack $w.c -fill both -expand 1 + + # return both the toplevel window name and the id to use for embedding + list $w [winfo id $w.c] +} + +} \ No newline at end of file diff --git a/mingw/lib/tk8.5/scale.tcl b/mingw/lib/tk8.5/scale.tcl new file mode 100644 index 00000000..9f8f110f --- /dev/null +++ b/mingw/lib/tk8.5/scale.tcl @@ -0,0 +1,286 @@ +# scale.tcl -- +# +# This file defines the default bindings for Tk scale widgets and provides +# procedures that help in implementing the bindings. +# +# RCS: @(#) $Id: scale.tcl,v 1.14 2006/03/17 11:13:15 patthoyts Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994-1995 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- + +# Standard Motif bindings: + +bind Scale { + if {$tk_strictMotif} { + set tk::Priv(activeBg) [%W cget -activebackground] + %W configure -activebackground [%W cget -background] + } + tk::ScaleActivate %W %x %y +} +bind Scale { + tk::ScaleActivate %W %x %y +} +bind Scale { + if {$tk_strictMotif} { + %W configure -activebackground $tk::Priv(activeBg) + } + if {[%W cget -state] eq "active"} { + %W configure -state normal + } +} +bind Scale <1> { + tk::ScaleButtonDown %W %x %y +} +bind Scale { + tk::ScaleDrag %W %x %y +} +bind Scale { } +bind Scale { } +bind Scale { + tk::CancelRepeat + tk::ScaleEndDrag %W + tk::ScaleActivate %W %x %y +} +bind Scale <2> { + tk::ScaleButton2Down %W %x %y +} +bind Scale { + tk::ScaleDrag %W %x %y +} +bind Scale { } +bind Scale { } +bind Scale { + tk::CancelRepeat + tk::ScaleEndDrag %W + tk::ScaleActivate %W %x %y +} +if {$tcl_platform(platform) eq "windows"} { + # On Windows do the same with button 3, as that is the right mouse button + bind Scale <3> [bind Scale <2>] + bind Scale [bind Scale ] + bind Scale [bind Scale ] + bind Scale [bind Scale ] + bind Scale [bind Scale ] +} +bind Scale { + tk::ScaleControlPress %W %x %y +} +bind Scale { + tk::ScaleIncrement %W up little noRepeat +} +bind Scale { + tk::ScaleIncrement %W down little noRepeat +} +bind Scale { + tk::ScaleIncrement %W up little noRepeat +} +bind Scale { + tk::ScaleIncrement %W down little noRepeat +} +bind Scale { + tk::ScaleIncrement %W up big noRepeat +} +bind Scale { + tk::ScaleIncrement %W down big noRepeat +} +bind Scale { + tk::ScaleIncrement %W up big noRepeat +} +bind Scale { + tk::ScaleIncrement %W down big noRepeat +} +bind Scale { + %W set [%W cget -from] +} +bind Scale { + %W set [%W cget -to] +} + +# ::tk::ScaleActivate -- +# This procedure is invoked to check a given x-y position in the +# scale and activate the slider if the x-y position falls within +# the slider. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates. + +proc ::tk::ScaleActivate {w x y} { + if {[$w cget -state] eq "disabled"} { + return + } + if {[$w identify $x $y] eq "slider"} { + set state active + } else { + set state normal + } + if {[$w cget -state] ne $state} { + $w configure -state $state + } +} + +# ::tk::ScaleButtonDown -- +# This procedure is invoked when a button is pressed in a scale. It +# takes different actions depending on where the button was pressed. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates of button press. + +proc ::tk::ScaleButtonDown {w x y} { + variable ::tk::Priv + set Priv(dragging) 0 + set el [$w identify $x $y] + + # save the relief + set Priv($w,relief) [$w cget -sliderrelief] + + if {$el eq "trough1"} { + ScaleIncrement $w up little initial + } elseif {$el eq "trough2"} { + ScaleIncrement $w down little initial + } elseif {$el eq "slider"} { + set Priv(dragging) 1 + set Priv(initValue) [$w get] + set coords [$w coords] + set Priv(deltaX) [expr {$x - [lindex $coords 0]}] + set Priv(deltaY) [expr {$y - [lindex $coords 1]}] + switch -exact -- $Priv($w,relief) { + "raised" { $w configure -sliderrelief sunken } + "ridge" { $w configure -sliderrelief groove } + } + } +} + +# ::tk::ScaleDrag -- +# This procedure is called when the mouse is dragged with +# mouse button 1 down. If the drag started inside the slider +# (i.e. the scale is active) then the scale's value is adjusted +# to reflect the mouse's position. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates. + +proc ::tk::ScaleDrag {w x y} { + variable ::tk::Priv + if {!$Priv(dragging)} { + return + } + $w set [$w get [expr {$x-$Priv(deltaX)}] [expr {$y-$Priv(deltaY)}]] +} + +# ::tk::ScaleEndDrag -- +# This procedure is called to end an interactive drag of the +# slider. It just marks the drag as over. +# +# Arguments: +# w - The scale widget. + +proc ::tk::ScaleEndDrag {w} { + variable ::tk::Priv + set Priv(dragging) 0 + if {[info exists Priv($w,relief)]} { + $w configure -sliderrelief $Priv($w,relief) + unset Priv($w,relief) + } +} + +# ::tk::ScaleIncrement -- +# This procedure is invoked to increment the value of a scale and +# to set up auto-repeating of the action if that is desired. The +# way the value is incremented depends on the "dir" and "big" +# arguments. +# +# Arguments: +# w - The scale widget. +# dir - "up" means move value towards -from, "down" means +# move towards -to. +# big - Size of increments: "big" or "little". +# repeat - Whether and how to auto-repeat the action: "noRepeat" +# means don't auto-repeat, "initial" means this is the +# first action in an auto-repeat sequence, and "again" +# means this is the second repetition or later. + +proc ::tk::ScaleIncrement {w dir big repeat} { + variable ::tk::Priv + if {![winfo exists $w]} return + if {$big eq "big"} { + set inc [$w cget -bigincrement] + if {$inc == 0} { + set inc [expr {abs([$w cget -to] - [$w cget -from])/10.0}] + } + if {$inc < [$w cget -resolution]} { + set inc [$w cget -resolution] + } + } else { + set inc [$w cget -resolution] + } + if {([$w cget -from] > [$w cget -to]) ^ ($dir eq "up")} { + set inc [expr {-$inc}] + } + $w set [expr {[$w get] + $inc}] + + if {$repeat eq "again"} { + set Priv(afterId) [after [$w cget -repeatinterval] \ + [list tk::ScaleIncrement $w $dir $big again]] + } elseif {$repeat eq "initial"} { + set delay [$w cget -repeatdelay] + if {$delay > 0} { + set Priv(afterId) [after $delay \ + [list tk::ScaleIncrement $w $dir $big again]] + } + } +} + +# ::tk::ScaleControlPress -- +# This procedure handles button presses that are made with the Control +# key down. Depending on the mouse position, it adjusts the scale +# value to one end of the range or the other. +# +# Arguments: +# w - The scale widget. +# x, y - Mouse coordinates where the button was pressed. + +proc ::tk::ScaleControlPress {w x y} { + set el [$w identify $x $y] + if {$el eq "trough1"} { + $w set [$w cget -from] + } elseif {$el eq "trough2"} { + $w set [$w cget -to] + } +} + +# ::tk::ScaleButton2Down +# This procedure is invoked when button 2 is pressed over a scale. +# It sets the value to correspond to the mouse position and starts +# a slider drag. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScaleButton2Down {w x y} { + variable ::tk::Priv + + if {[$w cget -state] eq "disabled"} { + return + } + + $w configure -state active + $w set [$w get $x $y] + set Priv(dragging) 1 + set Priv(initValue) [$w get] + set Priv($w,relief) [$w cget -sliderrelief] + set coords "$x $y" + set Priv(deltaX) 0 + set Priv(deltaY) 0 +} diff --git a/mingw/lib/tk8.5/scrlbar.tcl b/mingw/lib/tk8.5/scrlbar.tcl new file mode 100644 index 00000000..ec144736 --- /dev/null +++ b/mingw/lib/tk8.5/scrlbar.tcl @@ -0,0 +1,429 @@ +# scrlbar.tcl -- +# +# This file defines the default bindings for Tk scrollbar widgets. +# It also provides procedures that help in implementing the bindings. +# +# RCS: @(#) $Id: scrlbar.tcl,v 1.13 2006/03/17 11:13:15 patthoyts Exp $ +# +# Copyright (c) 1994 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for scrollbars. +#------------------------------------------------------------------------- + +# Standard Motif bindings: +if {[tk windowingsystem] eq "x11"} { + +bind Scrollbar { + if {$tk_strictMotif} { + set tk::Priv(activeBg) [%W cget -activebackground] + %W configure -activebackground [%W cget -background] + } + %W activate [%W identify %x %y] +} +bind Scrollbar { + %W activate [%W identify %x %y] +} + +# The "info exists" command in the following binding handles the +# situation where a Leave event occurs for a scrollbar without the Enter +# event. This seems to happen on some systems (such as Solaris 2.4) for +# unknown reasons. + +bind Scrollbar { + if {$tk_strictMotif && [info exists tk::Priv(activeBg)]} { + %W configure -activebackground $tk::Priv(activeBg) + } + %W activate {} +} +bind Scrollbar <1> { + tk::ScrollButtonDown %W %x %y +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollButtonUp %W %x %y +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar <2> { + tk::ScrollButton2Down %W %x %y +} +bind Scrollbar { + # Do nothing, since button 1 is already down. +} +bind Scrollbar { + # Do nothing, since button 2 is already down. +} +bind Scrollbar { + tk::ScrollDrag %W %x %y +} +bind Scrollbar { + tk::ScrollButtonUp %W %x %y +} +bind Scrollbar { + # Do nothing: B1 release will handle it. +} +bind Scrollbar { + # Do nothing: B2 release will handle it. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + # Prevents binding from being invoked. +} +bind Scrollbar { + tk::ScrollTopBottom %W %x %y +} +bind Scrollbar { + tk::ScrollTopBottom %W %x %y +} + +bind Scrollbar { + tk::ScrollByUnits %W v -1 +} +bind Scrollbar { + tk::ScrollByUnits %W v 1 +} +bind Scrollbar { + tk::ScrollByPages %W v -1 +} +bind Scrollbar { + tk::ScrollByPages %W v 1 +} +bind Scrollbar { + tk::ScrollByUnits %W h -1 +} +bind Scrollbar { + tk::ScrollByUnits %W h 1 +} +bind Scrollbar { + tk::ScrollByPages %W h -1 +} +bind Scrollbar { + tk::ScrollByPages %W h 1 +} +bind Scrollbar { + tk::ScrollByPages %W hv -1 +} +bind Scrollbar { + tk::ScrollByPages %W hv 1 +} +bind Scrollbar { + tk::ScrollToPos %W 0 +} +bind Scrollbar { + tk::ScrollToPos %W 1 +} +} +if {[tk windowingsystem] eq "aqua"} { + bind Scrollbar { + tk::ScrollByUnits %W v [expr {- (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W v [expr {-10 * (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W h [expr {- (%D)}] + } + bind Scrollbar { + tk::ScrollByUnits %W h [expr {-10 * (%D)}] + } +} +# tk::ScrollButtonDown -- +# This procedure is invoked when a button is pressed in a scrollbar. +# It changes the way the scrollbar is displayed and takes actions +# depending on where the mouse is. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates. + +proc tk::ScrollButtonDown {w x y} { + variable ::tk::Priv + set Priv(relief) [$w cget -activerelief] + $w configure -activerelief sunken + set element [$w identify $x $y] + if {$element eq "slider"} { + ScrollStartDrag $w $x $y + } else { + ScrollSelect $w $element initial + } +} + +# ::tk::ScrollButtonUp -- +# This procedure is invoked when a button is released in a scrollbar. +# It cancels scans and auto-repeats that were in progress, and restores +# the way the active element is displayed. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates. + +proc ::tk::ScrollButtonUp {w x y} { + variable ::tk::Priv + tk::CancelRepeat + if {[info exists Priv(relief)]} { + # Avoid error due to spurious release events + $w configure -activerelief $Priv(relief) + ScrollEndDrag $w $x $y + $w activate [$w identify $x $y] + } +} + +# ::tk::ScrollSelect -- +# This procedure is invoked when a button is pressed over the scrollbar. +# It invokes one of several scrolling actions depending on where in +# the scrollbar the button was pressed. +# +# Arguments: +# w - The scrollbar widget. +# element - The element of the scrollbar that was selected, such +# as "arrow1" or "trough2". Shouldn't be "slider". +# repeat - Whether and how to auto-repeat the action: "noRepeat" +# means don't auto-repeat, "initial" means this is the +# first action in an auto-repeat sequence, and "again" +# means this is the second repetition or later. + +proc ::tk::ScrollSelect {w element repeat} { + variable ::tk::Priv + if {![winfo exists $w]} return + switch -- $element { + "arrow1" {ScrollByUnits $w hv -1} + "trough1" {ScrollByPages $w hv -1} + "trough2" {ScrollByPages $w hv 1} + "arrow2" {ScrollByUnits $w hv 1} + default {return} + } + if {$repeat eq "again"} { + set Priv(afterId) [after [$w cget -repeatinterval] \ + [list tk::ScrollSelect $w $element again]] + } elseif {$repeat eq "initial"} { + set delay [$w cget -repeatdelay] + if {$delay > 0} { + set Priv(afterId) [after $delay \ + [list tk::ScrollSelect $w $element again]] + } + } +} + +# ::tk::ScrollStartDrag -- +# This procedure is called to initiate a drag of the slider. It just +# remembers the starting position of the mouse and slider. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The mouse position at the start of the drag operation. + +proc ::tk::ScrollStartDrag {w x y} { + variable ::tk::Priv + + if {[$w cget -command] eq ""} { + return + } + set Priv(pressX) $x + set Priv(pressY) $y + set Priv(initValues) [$w get] + set iv0 [lindex $Priv(initValues) 0] + if {[llength $Priv(initValues)] == 2} { + set Priv(initPos) $iv0 + } elseif {$iv0 == 0} { + set Priv(initPos) 0.0 + } else { + set Priv(initPos) [expr {(double([lindex $Priv(initValues) 2])) \ + / [lindex $Priv(initValues) 0]}] + } +} + +# ::tk::ScrollDrag -- +# This procedure is called for each mouse motion even when the slider +# is being dragged. It notifies the associated widget if we're not +# jump scrolling, and it just updates the scrollbar if we are jump +# scrolling. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The current mouse position. + +proc ::tk::ScrollDrag {w x y} { + variable ::tk::Priv + + if {$Priv(initPos) eq ""} { + return + } + set delta [$w delta [expr {$x - $Priv(pressX)}] [expr {$y - $Priv(pressY)}]] + if {[$w cget -jump]} { + if {[llength $Priv(initValues)] == 2} { + $w set [expr {[lindex $Priv(initValues) 0] + $delta}] \ + [expr {[lindex $Priv(initValues) 1] + $delta}] + } else { + set delta [expr {round($delta * [lindex $Priv(initValues) 0])}] + eval [list $w] set [lreplace $Priv(initValues) 2 3 \ + [expr {[lindex $Priv(initValues) 2] + $delta}] \ + [expr {[lindex $Priv(initValues) 3] + $delta}]] + } + } else { + ScrollToPos $w [expr {$Priv(initPos) + $delta}] + } +} + +# ::tk::ScrollEndDrag -- +# This procedure is called to end an interactive drag of the slider. +# It scrolls the window if we're in jump mode, otherwise it does nothing. +# +# Arguments: +# w - The scrollbar widget. +# x, y - The mouse position at the end of the drag operation. + +proc ::tk::ScrollEndDrag {w x y} { + variable ::tk::Priv + + if {$Priv(initPos) eq ""} { + return + } + if {[$w cget -jump]} { + set delta [$w delta [expr {$x - $Priv(pressX)}] \ + [expr {$y - $Priv(pressY)}]] + ScrollToPos $w [expr {$Priv(initPos) + $delta}] + } + set Priv(initPos) "" +} + +# ::tk::ScrollByUnits -- +# This procedure tells the scrollbar's associated widget to scroll up +# or down by a given number of units. It notifies the associated widget +# in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# orient - Which kinds of scrollbars this applies to: "h" for +# horizontal, "v" for vertical, "hv" for both. +# amount - How many units to scroll: typically 1 or -1. + +proc ::tk::ScrollByUnits {w orient amount} { + set cmd [$w cget -command] + if {$cmd eq "" || ([string first \ + [string index [$w cget -orient] 0] $orient] < 0)} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd scroll $amount units + } else { + uplevel #0 $cmd [expr {[lindex $info 2] + $amount}] + } +} + +# ::tk::ScrollByPages -- +# This procedure tells the scrollbar's associated widget to scroll up +# or down by a given number of screenfuls. It notifies the associated +# widget in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# orient - Which kinds of scrollbars this applies to: "h" for +# horizontal, "v" for vertical, "hv" for both. +# amount - How many screens to scroll: typically 1 or -1. + +proc ::tk::ScrollByPages {w orient amount} { + set cmd [$w cget -command] + if {$cmd eq "" || ([string first \ + [string index [$w cget -orient] 0] $orient] < 0)} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd scroll $amount pages + } else { + uplevel #0 $cmd [expr {[lindex $info 2] + $amount*([lindex $info 1] - 1)}] + } +} + +# ::tk::ScrollToPos -- +# This procedure tells the scrollbar's associated widget to scroll to +# a particular location, given by a fraction between 0 and 1. It notifies +# the associated widget in different ways for old and new command syntaxes. +# +# Arguments: +# w - The scrollbar widget. +# pos - A fraction between 0 and 1 indicating a desired position +# in the document. + +proc ::tk::ScrollToPos {w pos} { + set cmd [$w cget -command] + if {$cmd eq ""} { + return + } + set info [$w get] + if {[llength $info] == 2} { + uplevel #0 $cmd moveto $pos + } else { + uplevel #0 $cmd [expr {round([lindex $info 0]*$pos)}] + } +} + +# ::tk::ScrollTopBottom +# Scroll to the top or bottom of the document, depending on the mouse +# position. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScrollTopBottom {w x y} { + variable ::tk::Priv + set element [$w identify $x $y] + if {[string match *1 $element]} { + ScrollToPos $w 0 + } elseif {[string match *2 $element]} { + ScrollToPos $w 1 + } + + # Set Priv(relief), since it's needed by tk::ScrollButtonUp. + + set Priv(relief) [$w cget -activerelief] +} + +# ::tk::ScrollButton2Down +# This procedure is invoked when button 2 is pressed over a scrollbar. +# If the button is over the trough or slider, it sets the scrollbar to +# the mouse position and starts a slider drag. Otherwise it just +# behaves the same as button 1. +# +# Arguments: +# w - The scrollbar widget. +# x, y - Mouse coordinates within the widget. + +proc ::tk::ScrollButton2Down {w x y} { + variable ::tk::Priv + set element [$w identify $x $y] + if {[string match {arrow[12]} $element]} { + ScrollButtonDown $w $x $y + return + } + ScrollToPos $w [$w fraction $x $y] + set Priv(relief) [$w cget -activerelief] + + # Need the "update idletasks" below so that the widget calls us + # back to reset the actual scrollbar position before we start the + # slider drag. + + update idletasks + $w configure -activerelief sunken + $w activate slider + ScrollStartDrag $w $x $y +} diff --git a/mingw/lib/tk8.5/spinbox.tcl b/mingw/lib/tk8.5/spinbox.tcl new file mode 100644 index 00000000..f4708882 --- /dev/null +++ b/mingw/lib/tk8.5/spinbox.tcl @@ -0,0 +1,574 @@ +# spinbox.tcl -- +# +# This file defines the default bindings for Tk spinbox widgets and provides +# procedures that help in implementing those bindings. The spinbox builds +# off the entry widget, so it can reuse Entry bindings and procedures. +# +# RCS: @(#) $Id: spinbox.tcl,v 1.9 2005/07/25 09:06:00 dkf Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 1999-2000 Jeffrey Hobbs +# Copyright (c) 2000 Ajuba Solutions +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#------------------------------------------------------------------------- +# Elements of tk::Priv that are used in this file: +# +# afterId - If non-null, it means that auto-scanning is underway +# and it gives the "after" id for the next auto-scan +# command to be executed. +# mouseMoved - Non-zero means the mouse has moved a significant +# amount since the button went down (so, for example, +# start dragging out a selection). +# pressX - X-coordinate at which the mouse button was pressed. +# selectMode - The style of selection currently underway: +# char, word, or line. +# x, y - Last known mouse coordinates for scanning +# and auto-scanning. +# data - Used for Cut and Copy +#------------------------------------------------------------------------- + +# Initialize namespace +namespace eval ::tk::spinbox {} + +#------------------------------------------------------------------------- +# The code below creates the default class bindings for entries. +#------------------------------------------------------------------------- +bind Spinbox <> { + if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + %W delete sel.first sel.last + unset tk::Priv(data) + } +} +bind Spinbox <> { + if {![catch {::tk::spinbox::GetSelection %W} tk::Priv(data)]} { + clipboard clear -displayof %W + clipboard append -displayof %W $tk::Priv(data) + unset tk::Priv(data) + } +} +bind Spinbox <> { + global tcl_platform + catch { + if {[tk windowingsystem] ne "x11"} { + catch { + %W delete sel.first sel.last + } + } + %W insert insert [::tk::GetSelection %W CLIPBOARD] + ::tk::EntrySeeInsert %W + } +} +bind Spinbox <> { + %W delete sel.first sel.last +} +bind Spinbox <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + ::tk::spinbox::Paste %W %x + } +} + +bind Spinbox <> { + %W selection range 0 end + %W icursor end +} + +# Standard Motif bindings: + +bind Spinbox <1> { + ::tk::spinbox::ButtonDown %W %x %y +} +bind Spinbox { + ::tk::spinbox::Motion %W %x %y +} +bind Spinbox { + set tk::Priv(selectMode) word + ::tk::spinbox::MouseSelect %W %x sel.first +} +bind Spinbox { + set tk::Priv(selectMode) line + ::tk::spinbox::MouseSelect %W %x 0 +} +bind Spinbox { + set tk::Priv(selectMode) char + %W selection adjust @%x +} +bind Spinbox { + set tk::Priv(selectMode) word + ::tk::spinbox::MouseSelect %W %x +} +bind Spinbox { + set tk::Priv(selectMode) line + ::tk::spinbox::MouseSelect %W %x +} +bind Spinbox { + set tk::Priv(x) %x + ::tk::spinbox::AutoScan %W +} +bind Spinbox { + tk::CancelRepeat +} +bind Spinbox { + ::tk::spinbox::ButtonUp %W %x %y +} +bind Spinbox { + %W icursor @%x +} + +bind Spinbox { + %W invoke buttonup +} +bind Spinbox { + %W invoke buttondown +} + +bind Spinbox { + ::tk::EntrySetCursor %W [expr {[%W index insert] - 1}] +} +bind Spinbox { + ::tk::EntrySetCursor %W [expr {[%W index insert] + 1}] +} +bind Spinbox { + ::tk::EntryKeySelect %W [expr {[%W index insert] - 1}] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntryKeySelect %W [expr {[%W index insert] + 1}] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W [::tk::EntryPreviousWord %W insert] +} +bind Spinbox { + ::tk::EntrySetCursor %W [::tk::EntryNextWord %W insert] +} +bind Spinbox { + ::tk::EntryKeySelect %W [::tk::EntryPreviousWord %W insert] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntryKeySelect %W [::tk::EntryNextWord %W insert] + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W 0 +} +bind Spinbox { + ::tk::EntryKeySelect %W 0 + ::tk::EntrySeeInsert %W +} +bind Spinbox { + ::tk::EntrySetCursor %W end +} +bind Spinbox { + ::tk::EntryKeySelect %W end + ::tk::EntrySeeInsert %W +} + +bind Spinbox { + if {[%W selection present]} { + %W delete sel.first sel.last + } else { + %W delete insert + } +} +bind Spinbox { + ::tk::EntryBackspace %W +} + +bind Spinbox { + %W selection from insert +} +bind Spinbox { + %W mark set tk::anchor%W insert +} +bind Text { + set tk::Priv(selectMode) char + tk::TextKeyExtend %W insert +} +bind Text { + set tk::Priv(selectMode) char + tk::TextKeyExtend %W insert +} +bind Text { + %W tag add sel 1.0 end +} +bind Text { + %W tag remove sel 1.0 end +} +bind Text <> { + tk_textCut %W +} +bind Text <> { + tk_textCopy %W +} +bind Text <> { + tk_textPaste %W +} +bind Text <> { + catch {%W delete sel.first sel.last} +} +bind Text <> { + if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] + || !$tk::Priv(mouseMoved)} { + tk::TextPasteSelection %W %x %y + } +} +bind Text { + catch {tk::TextInsert %W [::tk::GetSelection %W PRIMARY]} +} +bind Text { + tk::TextInsert %W %A +} + +# Ignore all Alt, Meta, and Control keypresses unless explicitly bound. +# Otherwise, if a widget binding for one of these is defined, the +# class binding will also fire and insert the character, +# which is wrong. Ditto for . + +bind Text {# nothing } +bind Text {# nothing} +bind Text {# nothing} +bind Text {# nothing} +bind Text {# nothing} +if {[tk windowingsystem] eq "aqua"} { + bind Text {# nothing} +} + +# Additional emacs-like bindings: + +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W {insert display linestart} + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W insert-1displayindices + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete insert + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W {insert display lineend} + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W insert+1displayindices + } +} +bind Text { + if {!$tk_strictMotif} { + if {[%W compare insert == {insert lineend}]} { + %W delete insert + } else { + %W delete insert {insert lineend} + } + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextUpDownLine %W 1] + } +} +bind Text { + if {!$tk_strictMotif} { + %W insert insert \n + %W mark set insert insert-1c + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextUpDownLine %W -1] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextTranspose %W + } +} + +bind Text <> { + catch { %W edit undo } +} + +bind Text <> { + catch { %W edit redo } +} + +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete insert [tk::TextNextWord %W insert] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W [tk::TextNextWord %W insert] + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W 1.0 + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextSetCursor %W end-1c + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert + } +} +bind Text { + if {!$tk_strictMotif} { + %W delete [tk::TextPrevPos %W insert tcl_startOfPreviousWord] insert + } +} + +# Macintosh only bindings: + +if {[tk windowingsystem] eq "aqua"} { +bind Text { + tk::TextSetCursor %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextSetCursor %W [tk::TextNextPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPos %W insert tcl_startOfPreviousWord] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextWord %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextPrevPara %W insert] +} +bind Text { + tk::TextKeySelect %W [tk::TextNextPara %W insert] +} +bind Text { + tk::TextScrollPages %W 1 +} + +# End of Mac only bindings +} + +# A few additional bindings of my own. + +bind Text { + if {!$tk_strictMotif && [%W compare insert != 1.0]} { + %W delete insert-1c + %W see insert + } +} +bind Text <2> { + if {!$tk_strictMotif} { + tk::TextScanMark %W %x %y + } +} +bind Text { + if {!$tk_strictMotif} { + tk::TextScanDrag %W %x %y + } +} +set ::tk::Priv(prevPos) {} + +# The MouseWheel will typically only fire on Windows and MacOS X. +# However, someone could use the "event generate" command to produce one +# on other platforms. We must be careful not to round -ve values of %D +# down to zero. + +if {[tk windowingsystem] eq "aqua"} { + bind Text { + %W yview scroll [expr {-15 * (%D)}] pixels + } + bind Text { + %W yview scroll [expr {-150 * (%D)}] pixels + } + bind Text { + %W xview scroll [expr {-15 * (%D)}] pixels + } + bind Text { + %W xview scroll [expr {-150 * (%D)}] pixels + } +} else { + # We must make sure that positive and negative movements are rounded + # equally to integers, avoiding the problem that + # (int)1/3 = 0, + # but + # (int)-1/3 = -1 + # The following code ensure equal +/- behaviour. + bind Text { + if {%D >= 0} { + %W yview scroll [expr {-%D/3}] pixels + } else { + %W yview scroll [expr {(2-%D)/3}] pixels + } + } +} + +if {"x11" eq [tk windowingsystem]} { + # Support for mousewheels on Linux/Unix commonly comes through mapping + # the wheel to the extended buttons. If you have a mousewheel, find + # Linux configuration info at: + # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ + bind Text <4> { + if {!$tk_strictMotif} { + %W yview scroll -50 pixels + } + } + bind Text <5> { + if {!$tk_strictMotif} { + %W yview scroll 50 pixels + } + } +} + +# ::tk::TextClosestGap -- +# Given x and y coordinates, this procedure finds the closest boundary +# between characters to the given coordinates and returns the index +# of the character just after the boundary. +# +# Arguments: +# w - The text window. +# x - X-coordinate within the window. +# y - Y-coordinate within the window. + +proc ::tk::TextClosestGap {w x y} { + set pos [$w index @$x,$y] + set bbox [$w bbox $pos] + if {$bbox eq ""} { + return $pos + } + if {($x - [lindex $bbox 0]) < ([lindex $bbox 2]/2)} { + return $pos + } + $w index "$pos + 1 char" +} + +# ::tk::TextButton1 -- +# This procedure is invoked to handle button-1 presses in text +# widgets. It moves the insertion cursor, sets the selection anchor, +# and claims the input focus. +# +# Arguments: +# w - The text window in which the button was pressed. +# x - The x-coordinate of the button press. +# y - The x-coordinate of the button press. + +proc ::tk::TextButton1 {w x y} { + variable ::tk::Priv + + set Priv(selectMode) char + set Priv(mouseMoved) 0 + set Priv(pressX) $x + $w mark set insert [TextClosestGap $w $x $y] + $w mark set tk::anchor$w insert + # Set the anchor mark's gravity depending on the click position + # relative to the gap + set bbox [$w bbox [$w index tk::anchor$w]] + if {$x > [lindex $bbox 0]} { + $w mark gravity tk::anchor$w right + } else { + $w mark gravity tk::anchor$w left + } + # Allow focus in any case on Windows, because that will let the + # selection be displayed even for state disabled text widgets. + if {$::tcl_platform(platform) eq "windows" \ + || [$w cget -state] eq "normal"} { + focus $w + } + if {[$w cget -autoseparators]} { + $w edit separator + } +} + +# ::tk::TextSelectTo -- +# This procedure is invoked to extend the selection, typically when +# dragging it with the mouse. Depending on the selection mode (character, +# word, line) it selects in different-sized units. This procedure +# ignores mouse motions initially until the mouse has moved from +# one character to another or until there have been multiple clicks. +# +# Note that the 'anchor' is implemented programmatically using +# a text widget mark, and uses a name that will be unique for each +# text widget (even when there are multiple peers). Currently the +# anchor is considered private to Tk, hence the name 'tk::anchor$w'. +# +# Arguments: +# w - The text window in which the button was pressed. +# x - Mouse x position. +# y - Mouse y position. + +proc ::tk::TextSelectTo {w x y {extend 0}} { + global tcl_platform + variable ::tk::Priv + + set cur [TextClosestGap $w $x $y] + if {[catch {$w index tk::anchor$w}]} { + $w mark set tk::anchor$w $cur + } + set anchor [$w index tk::anchor$w] + if {[$w compare $cur != $anchor] || (abs($Priv(pressX) - $x) >= 3)} { + set Priv(mouseMoved) 1 + } + switch -- $Priv(selectMode) { + char { + if {[$w compare $cur < tk::anchor$w]} { + set first $cur + set last tk::anchor$w + } else { + set first tk::anchor$w + set last $cur + } + } + word { + # Set initial range based only on the anchor (1 char min width) + if {[$w mark gravity tk::anchor$w] eq "right"} { + set first "tk::anchor$w" + set last "tk::anchor$w + 1c" + } else { + set first "tk::anchor$w - 1c" + set last "tk::anchor$w" + } + # Extend range (if necessary) based on the current point + if {[$w compare $cur < $first]} { + set first $cur + } elseif {[$w compare $cur > $last]} { + set last $cur + } + + # Now find word boundaries + set first [TextPrevPos $w "$first + 1c" tcl_wordBreakBefore] + set last [TextNextPos $w "$last - 1c" tcl_wordBreakAfter] + } + line { + # Set initial range based only on the anchor + set first "tk::anchor$w linestart" + set last "tk::anchor$w lineend" + + # Extend range (if necessary) based on the current point + if {[$w compare $cur < $first]} { + set first "$cur linestart" + } elseif {[$w compare $cur > $last]} { + set last "$cur lineend" + } + set first [$w index $first] + set last [$w index "$last + 1c"] + } + } + if {$Priv(mouseMoved) || ($Priv(selectMode) ne "char")} { + $w tag remove sel 0.0 end + $w mark set insert $cur + $w tag add sel $first $last + $w tag remove sel $last end + update idletasks + } +} + +# ::tk::TextKeyExtend -- +# This procedure handles extending the selection from the keyboard, +# where the point to extend to is really the boundary between two +# characters rather than a particular character. +# +# Arguments: +# w - The text window. +# index - The point to which the selection is to be extended. + +proc ::tk::TextKeyExtend {w index} { + + set cur [$w index $index] + if {[catch {$w index tk::anchor$w}]} { + $w mark set tk::anchor$w $cur + } + set anchor [$w index tk::anchor$w] + if {[$w compare $cur < tk::anchor$w]} { + set first $cur + set last tk::anchor$w + } else { + set first tk::anchor$w + set last $cur + } + $w tag remove sel 0.0 $first + $w tag add sel $first $last + $w tag remove sel $last end +} + +# ::tk::TextPasteSelection -- +# This procedure sets the insertion cursor to the mouse position, +# inserts the selection, and sets the focus to the window. +# +# Arguments: +# w - The text window. +# x, y - Position of the mouse. + +proc ::tk::TextPasteSelection {w x y} { + $w mark set insert [TextClosestGap $w $x $y] + if {![catch {::tk::GetSelection $w PRIMARY} sel]} { + set oldSeparator [$w cget -autoseparators] + if {$oldSeparator} { + $w configure -autoseparators 0 + $w edit separator + } + $w insert insert $sel + if {$oldSeparator} { + $w edit separator + $w configure -autoseparators 1 + } + } + if {[$w cget -state] eq "normal"} { + focus $w + } +} + +# ::tk::TextAutoScan -- +# This procedure is invoked when the mouse leaves a text window +# with button 1 down. It scrolls the window up, down, left, or right, +# depending on where the mouse is (this information was saved in +# ::tk::Priv(x) and ::tk::Priv(y)), and reschedules itself as an "after" +# command so that the window continues to scroll until the mouse +# moves back into the window or the mouse button is released. +# +# Arguments: +# w - The text window. + +proc ::tk::TextAutoScan {w} { + variable ::tk::Priv + if {![winfo exists $w]} { + return + } + if {$Priv(y) >= [winfo height $w]} { + $w yview scroll [expr {1 + $Priv(y) - [winfo height $w]}] pixels + } elseif {$Priv(y) < 0} { + $w yview scroll [expr {-1 + $Priv(y)}] pixels + } elseif {$Priv(x) >= [winfo width $w]} { + $w xview scroll 2 units + } elseif {$Priv(x) < 0} { + $w xview scroll -2 units + } else { + return + } + TextSelectTo $w $Priv(x) $Priv(y) + set Priv(afterId) [after 50 [list tk::TextAutoScan $w]] +} + +# ::tk::TextSetCursor +# Move the insertion cursor to a given position in a text. Also +# clears the selection, if there is one in the text, and makes sure +# that the insertion cursor is visible. Also, don't let the insertion +# cursor appear on the dummy last line of the text. +# +# Arguments: +# w - The text window. +# pos - The desired new position for the cursor in the window. + +proc ::tk::TextSetCursor {w pos} { + + if {[$w compare $pos == end]} { + set pos {end - 1 chars} + } + $w mark set insert $pos + $w tag remove sel 1.0 end + $w see insert + if {[$w cget -autoseparators]} { + $w edit separator + } +} + +# ::tk::TextKeySelect +# This procedure is invoked when stroking out selections using the +# keyboard. It moves the cursor to a new position, then extends +# the selection to that position. +# +# Arguments: +# w - The text window. +# new - A new position for the insertion cursor (the cursor hasn't +# actually been moved to this position yet). + +proc ::tk::TextKeySelect {w new} { + + if {[$w tag nextrange sel 1.0 end] eq ""} { + if {[$w compare $new < insert]} { + $w tag add sel $new insert + } else { + $w tag add sel insert $new + } + $w mark set tk::anchor$w insert + } else { + if {[$w compare $new < tk::anchor$w]} { + set first $new + set last tk::anchor$w + } else { + set first tk::anchor$w + set last $new + } + $w tag remove sel 1.0 $first + $w tag add sel $first $last + $w tag remove sel $last end + } + $w mark set insert $new + $w see insert + update idletasks +} + +# ::tk::TextResetAnchor -- +# Set the selection anchor to whichever end is farthest from the +# index argument. One special trick: if the selection has two or +# fewer characters, just leave the anchor where it is. In this +# case it doesn't matter which point gets chosen for the anchor, +# and for the things like Shift-Left and Shift-Right this produces +# better behavior when the cursor moves back and forth across the +# anchor. +# +# Arguments: +# w - The text widget. +# index - Position at which mouse button was pressed, which determines +# which end of selection should be used as anchor point. + +proc ::tk::TextResetAnchor {w index} { + if {[$w tag ranges sel] eq ""} { + # Don't move the anchor if there is no selection now; this + # makes the widget behave "correctly" when the user clicks + # once, then shift-clicks somewhere -- ie, the area between + # the two clicks will be selected. [Bug: 5929]. + return + } + set a [$w index $index] + set b [$w index sel.first] + set c [$w index sel.last] + if {[$w compare $a < $b]} { + $w mark set tk::anchor$w sel.last + return + } + if {[$w compare $a > $c]} { + $w mark set tk::anchor$w sel.first + return + } + scan $a "%d.%d" lineA chA + scan $b "%d.%d" lineB chB + scan $c "%d.%d" lineC chC + if {$lineB < $lineC+2} { + set total [string length [$w get $b $c]] + if {$total <= 2} { + return + } + if {[string length [$w get $b $a]] < ($total/2)} { + $w mark set tk::anchor$w sel.last + } else { + $w mark set tk::anchor$w sel.first + } + return + } + if {($lineA-$lineB) < ($lineC-$lineA)} { + $w mark set tk::anchor$w sel.last + } else { + $w mark set tk::anchor$w sel.first + } +} + +# ::tk::TextInsert -- +# Insert a string into a text at the point of the insertion cursor. +# If there is a selection in the text, and it covers the point of the +# insertion cursor, then delete the selection before inserting. +# +# Arguments: +# w - The text window in which to insert the string +# s - The string to insert (usually just a single character) + +proc ::tk::TextInsert {w s} { + if {$s eq "" || [$w cget -state] eq "disabled"} { + return + } + set compound 0 + if {[llength [set range [$w tag ranges sel]]]} { + if {[$w compare [lindex $range 0] <= insert] \ + && [$w compare [lindex $range end] >= insert]} { + set oldSeparator [$w cget -autoseparators] + if {$oldSeparator} { + $w configure -autoseparators 0 + $w edit separator + set compound 1 + } + $w delete [lindex $range 0] [lindex $range end] + } + } + $w insert insert $s + $w see insert + if {$compound && $oldSeparator} { + $w edit separator + $w configure -autoseparators 1 + } +} + +# ::tk::TextUpDownLine -- +# Returns the index of the character one display line above or below the +# insertion cursor. There are two tricky things here. First, we want to +# maintain the original x position across repeated operations, even though +# some lines that will get passed through don't have enough characters to +# cover the original column. Second, don't try to scroll past the +# beginning or end of the text. +# +# Arguments: +# w - The text window in which the cursor is to move. +# n - The number of display lines to move: -1 for up one line, +# +1 for down one line. + +proc ::tk::TextUpDownLine {w n} { + variable ::tk::Priv + + set i [$w index insert] + if {$Priv(prevPos) ne $i} { + set Priv(textPosOrig) $i + } + set lines [$w count -displaylines $Priv(textPosOrig) $i] + set new [$w index \ + "$Priv(textPosOrig) + [expr {$lines + $n}] displaylines"] + if {[$w compare $new == end] \ + || [$w compare $new == "insert display linestart"]} { + set new $i + } + set Priv(prevPos) $new + return $new +} + +# ::tk::TextPrevPara -- +# Returns the index of the beginning of the paragraph just before a given +# position in the text (the beginning of a paragraph is the first non-blank +# character after a blank line). +# +# Arguments: +# w - The text window in which the cursor is to move. +# pos - Position at which to start search. + +proc ::tk::TextPrevPara {w pos} { + set pos [$w index "$pos linestart"] + while {1} { + if {([$w get "$pos - 1 line"] eq "\n" && ([$w get $pos] ne "\n")) \ + || $pos eq "1.0"} { + if {[regexp -indices -- {^[ \t]+(.)} \ + [$w get $pos "$pos lineend"] -> index]} { + set pos [$w index "$pos + [lindex $index 0] chars"] + } + if {[$w compare $pos != insert] || [lindex [split $pos .] 0]==1} { + return $pos + } + } + set pos [$w index "$pos - 1 line"] + } +} + +# ::tk::TextNextPara -- +# Returns the index of the beginning of the paragraph just after a given +# position in the text (the beginning of a paragraph is the first non-blank +# character after a blank line). +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. + +proc ::tk::TextNextPara {w start} { + set pos [$w index "$start linestart + 1 line"] + while {[$w get $pos] ne "\n"} { + if {[$w compare $pos == end]} { + return [$w index "end - 1c"] + } + set pos [$w index "$pos + 1 line"] + } + while {[$w get $pos] eq "\n"} { + set pos [$w index "$pos + 1 line"] + if {[$w compare $pos == end]} { + return [$w index "end - 1c"] + } + } + if {[regexp -indices -- {^[ \t]+(.)} \ + [$w get $pos "$pos lineend"] -> index]} { + return [$w index "$pos + [lindex $index 0] chars"] + } + return $pos +} + +# ::tk::TextScrollPages -- +# This is a utility procedure used in bindings for moving up and down +# pages and possibly extending the selection along the way. It scrolls +# the view in the widget by the number of pages, and it returns the +# index of the character that is at the same position in the new view +# as the insertion cursor used to be in the old view. +# +# Arguments: +# w - The text window in which the cursor is to move. +# count - Number of pages forward to scroll; may be negative +# to scroll backwards. + +proc ::tk::TextScrollPages {w count} { + set bbox [$w bbox insert] + $w yview scroll $count pages + if {$bbox eq ""} { + return [$w index @[expr {[winfo height $w]/2}],0] + } + return [$w index @[lindex $bbox 0],[lindex $bbox 1]] +} + +# ::tk::TextTranspose -- +# This procedure implements the "transpose" function for text widgets. +# It tranposes the characters on either side of the insertion cursor, +# unless the cursor is at the end of the line. In this case it +# transposes the two characters to the left of the cursor. In either +# case, the cursor ends up to the right of the transposed characters. +# +# Arguments: +# w - Text window in which to transpose. + +proc ::tk::TextTranspose w { + set pos insert + if {[$w compare $pos != "$pos lineend"]} { + set pos [$w index "$pos + 1 char"] + } + set new [$w get "$pos - 1 char"][$w get "$pos - 2 char"] + if {[$w compare "$pos - 1 char" == 1.0]} { + return + } + # ensure this is seen as an atomic op to undo + set autosep [$w cget -autoseparators] + if {$autosep} { + $w configure -autoseparators 0 + $w edit separator + } + $w delete "$pos - 2 char" $pos + $w insert insert $new + $w see insert + if {$autosep} { + $w edit separator + $w configure -autoseparators $autosep + } +} + +# ::tk_textCopy -- +# This procedure copies the selection from a text widget into the +# clipboard. +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textCopy w { + if {![catch {set data [$w get sel.first sel.last]}]} { + clipboard clear -displayof $w + clipboard append -displayof $w $data + } +} + +# ::tk_textCut -- +# This procedure copies the selection from a text widget into the +# clipboard, then deletes the selection (if it exists in the given +# widget). +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textCut w { + if {![catch {set data [$w get sel.first sel.last]}]} { + clipboard clear -displayof $w + clipboard append -displayof $w $data + $w delete sel.first sel.last + } +} + +# ::tk_textPaste -- +# This procedure pastes the contents of the clipboard to the insertion +# point in a text widget. +# +# Arguments: +# w - Name of a text widget. + +proc ::tk_textPaste w { + global tcl_platform + if {![catch {::tk::GetSelection $w CLIPBOARD} sel]} { + set oldSeparator [$w cget -autoseparators] + if {$oldSeparator} { + $w configure -autoseparators 0 + $w edit separator + } + if {[tk windowingsystem] ne "x11"} { + catch { $w delete sel.first sel.last } + } + $w insert insert $sel + if {$oldSeparator} { + $w edit separator + $w configure -autoseparators 1 + } + } +} + +# ::tk::TextNextWord -- +# Returns the index of the next word position after a given position in the +# text. The next word is platform dependent and may be either the next +# end-of-word position or the next start-of-word position after the next +# end-of-word position. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. + +if {$tcl_platform(platform) eq "windows"} { + proc ::tk::TextNextWord {w start} { + TextNextPos $w [TextNextPos $w $start tcl_endOfWord] \ + tcl_startOfNextWord + } +} else { + proc ::tk::TextNextWord {w start} { + TextNextPos $w $start tcl_endOfWord + } +} + +# ::tk::TextNextPos -- +# Returns the index of the next position after the given starting +# position in the text as computed by a specified function. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. +# op - Function to use to find next position. + +proc ::tk::TextNextPos {w start op} { + set text "" + set cur $start + while {[$w compare $cur < end]} { + set text $text[$w get -displaychars $cur "$cur lineend + 1c"] + set pos [$op $text 0] + if {$pos >= 0} { + return [$w index "$start + $pos display chars"] + } + set cur [$w index "$cur lineend +1c"] + } + return end +} + +# ::tk::TextPrevPos -- +# Returns the index of the previous position before the given starting +# position in the text as computed by a specified function. +# +# Arguments: +# w - The text window in which the cursor is to move. +# start - Position at which to start search. +# op - Function to use to find next position. + +proc ::tk::TextPrevPos {w start op} { + set text "" + set cur $start + while {[$w compare $cur > 0.0]} { + set text [$w get -displaychars "$cur linestart - 1c" $cur]$text + set pos [$op $text end] + if {$pos >= 0} { + return [$w index "$cur linestart - 1c + $pos display chars"] + } + set cur [$w index "$cur linestart - 1c"] + } + return 0.0 +} + +# ::tk::TextScanMark -- +# +# Marks the start of a possible scan drag operation +# +# Arguments: +# w - The text window from which the text to get +# x - x location on screen +# y - y location on screen + +proc ::tk::TextScanMark {w x y} { + variable ::tk::Priv + $w scan mark $x $y + set Priv(x) $x + set Priv(y) $y + set Priv(mouseMoved) 0 +} + +# ::tk::TextScanDrag -- +# +# Marks the start of a possible scan drag operation +# +# Arguments: +# w - The text window from which the text to get +# x - x location on screen +# y - y location on screen + +proc ::tk::TextScanDrag {w x y} { + variable ::tk::Priv + # Make sure these exist, as some weird situations can trigger the + # motion binding without the initial press. [Bug #220269] + if {![info exists Priv(x)]} { + set Priv(x) $x + } + if {![info exists Priv(y)]} { + set Priv(y) $y + } + if {($x != $Priv(x)) || ($y != $Priv(y))} { + set Priv(mouseMoved) 1 + } + if {[info exists Priv(mouseMoved)] && $Priv(mouseMoved)} { + $w scan dragto $x $y + } +} diff --git a/mingw/lib/tk8.5/tk.tcl b/mingw/lib/tk8.5/tk.tcl new file mode 100644 index 00000000..4efa18ad --- /dev/null +++ b/mingw/lib/tk8.5/tk.tcl @@ -0,0 +1,601 @@ +# tk.tcl -- +# +# Initialization script normally executed in the interpreter for each +# Tk-based application. Arranges class bindings for widgets. +# +# RCS: @(#) $Id: tk.tcl,v 1.67 2007/10/26 15:23:05 dgp Exp $ +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1996 Sun Microsystems, Inc. +# Copyright (c) 1998-2000 Ajuba Solutions. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +package require Tcl 8.5 ;# Guard against [source] in an 8.4- interp + ;# before using 8.5 [package] features. +# Insist on running with compatible version of Tcl +package require Tcl 8.5b1-8.6 +# Verify that we have Tk binary and script components from the same release +package require -exact Tk 8.5b2 + +# Create a ::tk namespace +namespace eval ::tk { + # Set up the msgcat commands + namespace eval msgcat { + namespace export mc mcmax + if {[interp issafe] || [catch {package require msgcat}]} { + # The msgcat package is not available. Supply our own + # minimal replacement. + proc mc {src args} { + return [format $src {*}$args] + } + proc mcmax {args} { + set max 0 + foreach string $args { + set len [string length $string] + if {$len>$max} { + set max $len + } + } + return $max + } + } else { + # Get the commands from the msgcat package that Tk uses. + namespace import ::msgcat::mc + namespace import ::msgcat::mcmax + ::msgcat::mcload [file join $::tk_library msgs] + } + } + namespace import ::tk::msgcat::* +} +# and a ::ttk namespace +namespace eval ::ttk { + if {$::tk_library ne ""} { + # avoid file join to work in safe interps, but this is also x-plat ok + variable library $::tk_library/ttk + } +} + +# Add Ttk & Tk's directory to the end of the auto-load search path, if it +# isn't already on the path: + +if {[info exists ::auto_path] && ($::tk_library ne "") + && ($::tk_library ni $::auto_path)} { + lappend ::auto_path $::tk_library $::ttk::library +} + +# Turn off strict Motif look and feel as a default. + +set ::tk_strictMotif 0 + +# Turn on useinputmethods (X Input Methods) by default. +# We catch this because safe interpreters may not allow the call. + +catch {tk useinputmethods 1} + +# ::tk::PlaceWindow -- +# place a toplevel at a particular position +# Arguments: +# toplevel name of toplevel window +# ?placement? pointer ?center? ; places $w centered on the pointer +# widget widgetPath ; centers $w over widget_name +# defaults to placing toplevel in the middle of the screen +# ?anchor? center or widgetPath +# Results: +# Returns nothing +# +proc ::tk::PlaceWindow {w {place ""} {anchor ""}} { + wm withdraw $w + update idletasks + set checkBounds 1 + if {$place eq ""} { + set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] + set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] + set checkBounds 0 + } elseif {[string equal -length [string length $place] $place "pointer"]} { + ## place at POINTER (centered if $anchor == center) + if {[string equal -length [string length $anchor] $anchor "center"]} { + set x [expr {[winfo pointerx $w]-[winfo reqwidth $w]/2}] + set y [expr {[winfo pointery $w]-[winfo reqheight $w]/2}] + } else { + set x [winfo pointerx $w] + set y [winfo pointery $w] + } + } elseif {[string equal -length [string length $place] $place "widget"] && \ + [winfo exists $anchor] && [winfo ismapped $anchor]} { + ## center about WIDGET $anchor, widget must be mapped + set x [expr {[winfo rootx $anchor] + \ + ([winfo width $anchor]-[winfo reqwidth $w])/2}] + set y [expr {[winfo rooty $anchor] + \ + ([winfo height $anchor]-[winfo reqheight $w])/2}] + } else { + set x [expr {([winfo screenwidth $w]-[winfo reqwidth $w])/2}] + set y [expr {([winfo screenheight $w]-[winfo reqheight $w])/2}] + set checkBounds 0 + } + if {[tk windowingsystem] eq "win32"} { + # Bug 533519: win32 multiple desktops may produce negative geometry. + set checkBounds 0 + } + if {$checkBounds} { + if {$x < 0} { + set x 0 + } elseif {$x > ([winfo screenwidth $w]-[winfo reqwidth $w])} { + set x [expr {[winfo screenwidth $w]-[winfo reqwidth $w]}] + } + if {$y < 0} { + set y 0 + } elseif {$y > ([winfo screenheight $w]-[winfo reqheight $w])} { + set y [expr {[winfo screenheight $w]-[winfo reqheight $w]}] + } + if {[tk windowingsystem] eq "aqua"} { + # Avoid the native menu bar which sits on top of everything. + if {$y < 22} { set y 22 } + } + } + wm geometry $w +$x+$y + wm deiconify $w +} + +# ::tk::SetFocusGrab -- +# swap out current focus and grab temporarily (for dialogs) +# Arguments: +# grab new window to grab +# focus window to give focus to +# Results: +# Returns nothing +# +proc ::tk::SetFocusGrab {grab {focus {}}} { + set index "$grab,$focus" + upvar ::tk::FocusGrab($index) data + + lappend data [focus] + set oldGrab [grab current $grab] + lappend data $oldGrab + if {[winfo exists $oldGrab]} { + lappend data [grab status $oldGrab] + } + # The "grab" command will fail if another application + # already holds the grab. So catch it. + catch {grab $grab} + if {[winfo exists $focus]} { + focus $focus + } +} + +# ::tk::RestoreFocusGrab -- +# restore old focus and grab (for dialogs) +# Arguments: +# grab window that had taken grab +# focus window that had taken focus +# destroy destroy|withdraw - how to handle the old grabbed window +# Results: +# Returns nothing +# +proc ::tk::RestoreFocusGrab {grab focus {destroy destroy}} { + set index "$grab,$focus" + if {[info exists ::tk::FocusGrab($index)]} { + foreach {oldFocus oldGrab oldStatus} $::tk::FocusGrab($index) { break } + unset ::tk::FocusGrab($index) + } else { + set oldGrab "" + } + + catch {focus $oldFocus} + grab release $grab + if {$destroy eq "withdraw"} { + wm withdraw $grab + } else { + destroy $grab + } + if {[winfo exists $oldGrab] && [winfo ismapped $oldGrab]} { + if {$oldStatus eq "global"} { + grab -global $oldGrab + } else { + grab $oldGrab + } + } +} + +# ::tk::GetSelection -- +# This tries to obtain the default selection. On Unix, we first try +# and get a UTF8_STRING, a type supported by modern Unix apps for +# passing Unicode data safely. We fall back on the default STRING +# type otherwise. On Windows, only the STRING type is necessary. +# Arguments: +# w The widget for which the selection will be retrieved. +# Important for the -displayof property. +# sel The source of the selection (PRIMARY or CLIPBOARD) +# Results: +# Returns the selection, or an error if none could be found +# +if {$tcl_platform(platform) eq "unix"} { + proc ::tk::GetSelection {w {sel PRIMARY}} { + if {[catch {selection get -displayof $w -selection $sel \ + -type UTF8_STRING} txt] \ + && [catch {selection get -displayof $w -selection $sel} txt]} { + return -code error "could not find default selection" + } else { + return $txt + } + } +} else { + proc ::tk::GetSelection {w {sel PRIMARY}} { + if {[catch {selection get -displayof $w -selection $sel} txt]} { + return -code error "could not find default selection" + } else { + return $txt + } + } +} + +# ::tk::ScreenChanged -- +# This procedure is invoked by the binding mechanism whenever the +# "current" screen is changing. The procedure does two things. +# First, it uses "upvar" to make variable "::tk::Priv" point at an +# array variable that holds state for the current display. Second, +# it initializes the array if it didn't already exist. +# +# Arguments: +# screen - The name of the new screen. + +proc ::tk::ScreenChanged screen { + set x [string last . $screen] + if {$x > 0} { + set disp [string range $screen 0 [expr {$x - 1}]] + } else { + set disp $screen + } + + uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv + variable ::tk::Priv + global tcl_platform + + if {[info exists Priv]} { + set Priv(screen) $screen + return + } + array set Priv { + activeMenu {} + activeItem {} + afterId {} + buttons 0 + buttonWindow {} + dragging 0 + focus {} + grab {} + initPos {} + inMenubutton {} + listboxPrev {} + menuBar {} + mouseMoved 0 + oldGrab {} + popup {} + postedMb {} + pressX 0 + pressY 0 + prevPos 0 + selectMode char + } + set Priv(screen) $screen + set Priv(tearoff) [string equal [tk windowingsystem] "x11"] + set Priv(window) {} +} + +# Do initial setup for Priv, so that it is always bound to something +# (otherwise, if someone references it, it may get set to a non-upvar-ed +# value, which will cause trouble later). + +tk::ScreenChanged [winfo screen .] + +# ::tk::EventMotifBindings -- +# This procedure is invoked as a trace whenever ::tk_strictMotif is +# changed. It is used to turn on or turn off the motif virtual +# bindings. +# +# Arguments: +# n1 - the name of the variable being changed ("::tk_strictMotif"). + +proc ::tk::EventMotifBindings {n1 dummy dummy} { + upvar $n1 name + + if {$name} { + set op delete + } else { + set op add + } + + event $op <> + event $op <> + event $op <> + event $op <> +} + +#---------------------------------------------------------------------- +# Define common dialogs on platforms where they are not implemented +# using compiled code. +#---------------------------------------------------------------------- + +if {![llength [info commands tk_chooseColor]]} { + proc ::tk_chooseColor {args} { + return [tk::dialog::color:: {*}$args] + } +} +if {![llength [info commands tk_getOpenFile]]} { + proc ::tk_getOpenFile {args} { + if {$::tk_strictMotif} { + return [tk::MotifFDialog open {*}$args] + } else { + return [::tk::dialog::file:: open {*}$args] + } + } +} +if {![llength [info commands tk_getSaveFile]]} { + proc ::tk_getSaveFile {args} { + if {$::tk_strictMotif} { + return [tk::MotifFDialog save {*}$args] + } else { + return [::tk::dialog::file:: save {*}$args] + } + } +} +if {![llength [info commands tk_messageBox]]} { + proc ::tk_messageBox {args} { + return [tk::MessageBox {*}$args] + } +} +if {![llength [info command tk_chooseDirectory]]} { + proc ::tk_chooseDirectory {args} { + return [::tk::dialog::file::chooseDir:: {*}$args] + } +} + +#---------------------------------------------------------------------- +# Define the set of common virtual events. +#---------------------------------------------------------------------- + +switch -- [tk windowingsystem] { + "x11" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + # Some OS's define a goofy (as in, not ) keysym + # that is returned when the user presses . In order for + # tab traversal to work, we have to add these keysyms to the + # PrevWindow event. + # We use catch just in case the keysym isn't recognized. + # This is needed for XFree86 systems + catch { event add <> } + # This seems to be correct on *some* HP systems. + catch { event add <> } + + trace add variable ::tk_strictMotif write ::tk::EventMotifBindings + set ::tk_strictMotif $::tk_strictMotif + # On unix, we want to always display entry/text selection, + # regardless of which window has focus + set ::tk::AlwaysShowSelection 1 + } + "win32" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + } + "aqua" { + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + event add <> + } +} +# ---------------------------------------------------------------------- +# Read in files that define all of the class bindings. +# ---------------------------------------------------------------------- + +if {$::tk_library ne ""} { + proc ::tk::SourceLibFile {file} { + namespace eval :: [list source [file join $::tk_library $file.tcl]] + } + namespace eval ::tk { + SourceLibFile button + SourceLibFile entry + SourceLibFile listbox + SourceLibFile menu + SourceLibFile panedwindow + SourceLibFile scale + SourceLibFile scrlbar + SourceLibFile spinbox + SourceLibFile text + } +} +# ---------------------------------------------------------------------- +# Default bindings for keyboard traversal. +# ---------------------------------------------------------------------- + +event add <> +bind all {tk::TabToWindow [tk_focusNext %W]} +bind all <> {tk::TabToWindow [tk_focusPrev %W]} + +# ::tk::CancelRepeat -- +# This procedure is invoked to cancel an auto-repeat action described +# by ::tk::Priv(afterId). It's used by several widgets to auto-scroll +# the widget when the mouse is dragged out of the widget with a +# button pressed. +# +# Arguments: +# None. + +proc ::tk::CancelRepeat {} { + variable ::tk::Priv + after cancel $Priv(afterId) + set Priv(afterId) {} +} + +# ::tk::TabToWindow -- +# This procedure moves the focus to the given widget. +# It sends a <> virtual event to the previous focus window, +# if any, before changing the focus, and a <> event +# to the new focus window afterwards. +# +# Arguments: +# w - Window to which focus should be set. + +proc ::tk::TabToWindow {w} { + set focus [focus] + if {$focus ne ""} { + event generate $focus <> + } + focus $w + event generate $w <> +} + +# ::tk::UnderlineAmpersand -- +# This procedure takes some text with ampersand and returns +# text w/o ampersand and position of the ampersand. +# Double ampersands are converted to single ones. +# Position returned is -1 when there is no ampersand. +# +proc ::tk::UnderlineAmpersand {text} { + set idx [string first "&" $text] + if {$idx >= 0} { + set underline $idx + # ignore "&&" + while {[string match "&" [string index $text [expr {$idx + 1}]]]} { + set base [expr {$idx + 2}] + set idx [string first "&" [string range $text $base end]] + if {$idx < 0} { + break + } else { + set underline [expr {$underline + $idx + 1}] + incr idx $base + } + } + } + if {$idx >= 0} { + regsub -all -- {&([^&])} $text {\1} text + } + return [list $text $idx] +} + +# ::tk::SetAmpText -- +# Given widget path and text with "magic ampersands", +# sets -text and -underline options for the widget +# +proc ::tk::SetAmpText {widget text} { + lassign [UnderlineAmpersand $text] newtext under + $widget configure -text $newtext -underline $under +} + +# ::tk::AmpWidget -- +# Creates new widget, turning -text option into -text and +# -underline options, returned by ::tk::UnderlineAmpersand. +# +proc ::tk::AmpWidget {class path args} { + set options {} + foreach {opt val} $args { + if {$opt eq "-text"} { + lassign [UnderlineAmpersand $val] newtext under + lappend options -text $newtext -underline $under + } else { + lappend options $opt $val + } + } + set result [$class $path {*}$options] + if {$class eq "button"} { + bind $path <> [list $path invoke] + } + return $result +} + +# ::tk::AmpMenuArgs -- +# Processes arguments for a menu entry, turning -label option into +# -label and -underline options, returned by ::tk::UnderlineAmpersand. +# +proc ::tk::AmpMenuArgs {widget add type args} { + set options {} + foreach {opt val} $args { + if {$opt eq "-label"} { + lassign [UnderlineAmpersand $val] newlabel under + lappend options -label $newlabel -underline $under + } else { + lappend options $opt $val + } + } + $widget add $type {*}$options +} + +# ::tk::FindAltKeyTarget -- +# search recursively through the hierarchy of visible widgets +# to find button or label which has $char as underlined character +# +proc ::tk::FindAltKeyTarget {path char} { + switch -- [winfo class $path] { + Button - + Label { + if {[string equal -nocase $char \ + [string index [$path cget -text] [$path cget -underline]]]} { + return $path + } else { + return {} + } + } + default { + foreach child [concat [grid slaves $path] \ + [pack slaves $path] [place slaves $path]] { + set target [FindAltKeyTarget $child $char] + if {$target ne ""} { + return $target + } + } + } + } + return {} +} + +# ::tk::AltKeyInDialog -- +# event handler for standard dialogs. Sends <> +# to button or label which has appropriate underlined character +# +proc ::tk::AltKeyInDialog {path key} { + set target [FindAltKeyTarget $path $key] + if { $target eq ""} return + event generate $target <> +} + +# ::tk::mcmaxamp -- +# Replacement for mcmax, used for texts with "magic ampersand" in it. +# + +proc ::tk::mcmaxamp {args} { + set maxlen 0 + foreach arg $args { + # Should we run [mc] in caller's namespace? + lassign [UnderlineAmpersand [mc $arg]] msg + set length [string length $msg] + if {$length > $maxlen} { + set maxlen $length + } + } + return $maxlen +} +# For now, turn off the custom mdef proc for the mac: + +if {[tk windowingsystem] eq "aqua"} { + namespace eval ::tk::mac { + set useCustomMDEF 0 + } +} + +# Run the Ttk themed widget set initialization +if {$::ttk::library ne ""} { + uplevel \#0 [list source $::ttk::library/ttk.tcl] +} diff --git a/mingw/lib/tk8.5/tkAppInit.c b/mingw/lib/tk8.5/tkAppInit.c new file mode 100644 index 00000000..526a3e83 --- /dev/null +++ b/mingw/lib/tk8.5/tkAppInit.c @@ -0,0 +1,143 @@ +/* + * tkAppInit.c -- + * + * Provides a default version of the Tcl_AppInit procedure for use in + * wish and similar Tk-based applications. + * + * Copyright (c) 1993 The Regents of the University of California. + * Copyright (c) 1994-1997 Sun Microsystems, Inc. + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * RCS: @(#) $Id: tkAppInit.c,v 1.8 2007/02/22 13:56:33 dkf Exp $ + */ + +#include "tk.h" +#include "locale.h" + +#ifdef TK_TEST +extern int Tktest_Init _ANSI_ARGS_((Tcl_Interp *interp)); +#endif /* TK_TEST */ + +/* + *---------------------------------------------------------------------- + * + * main -- + * + * This is the main program for the application. + * + * Results: + * None: Tk_Main never returns here, so this procedure never returns + * either. + * + * Side effects: + * Whatever the application does. + * + *---------------------------------------------------------------------- + */ + +int +main( + int argc, /* Number of command-line arguments. */ + char **argv) /* Values of command-line arguments. */ +{ + /* + * The following #if block allows you to change the AppInit function by + * using a #define of TCL_LOCAL_APPINIT instead of rewriting this entire + * file. The #if checks for that #define and uses Tcl_AppInit if it + * doesn't exist. + */ + +#ifndef TK_LOCAL_APPINIT +#define TK_LOCAL_APPINIT Tcl_AppInit +#endif + extern int TK_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp)); + + /* + * The following #if block allows you to change how Tcl finds the startup + * script, prime the library or encoding paths, fiddle with the argv, + * etc., without needing to rewrite Tk_Main() + */ + +#ifdef TK_LOCAL_MAIN_HOOK + extern int TK_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv)); + TK_LOCAL_MAIN_HOOK(&argc, &argv); +#endif + + Tk_Main(argc, argv, TK_LOCAL_APPINIT); + return 0; /* Needed only to prevent compiler warning. */ +} + +/* + *---------------------------------------------------------------------- + * + * Tcl_AppInit -- + * + * This procedure performs application-specific initialization. Most + * applications, especially those that incorporate additional packages, + * will have their own version of this procedure. + * + * Results: + * Returns a standard Tcl completion code, and leaves an error message in + * the interp's result if an error occurs. + * + * Side effects: + * Depends on the startup script. + * + *---------------------------------------------------------------------- + */ + +int +Tcl_AppInit( + Tcl_Interp *interp) /* Interpreter for application. */ +{ + if (Tcl_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + if (Tk_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit); +#ifdef TK_TEST + if (Tktest_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } + Tcl_StaticPackage(interp, "Tktest", Tktest_Init, + (Tcl_PackageInitProc *) NULL); +#endif /* TK_TEST */ + + /* + * Call the init procedures for included packages. Each call should look + * like this: + * + * if (Mod_Init(interp) == TCL_ERROR) { + * return TCL_ERROR; + * } + * + * where "Mod" is the name of the module. + */ + + /* + * Call Tcl_CreateCommand for application-specific commands, if they + * weren't already created by the init procedures called above. + */ + + /* + * Specify a user-specific startup file to invoke if the application is + * run interactively. Typically the startup file is "~/.apprc" where "app" + * is the name of the application. If this line is deleted then no user- + * -specific startup file will be run under any conditions. + */ + + Tcl_SetVar(interp, "tcl_rcFileName", "~/.wishrc", TCL_GLOBAL_ONLY); + return TCL_OK; +} + +/* + * Local Variables: + * mode: c + * c-basic-offset: 4 + * fill-column: 78 + * End: + */ diff --git a/mingw/lib/tk8.5/tkfbox.tcl b/mingw/lib/tk8.5/tkfbox.tcl new file mode 100644 index 00000000..fe6eccd9 --- /dev/null +++ b/mingw/lib/tk8.5/tkfbox.tcl @@ -0,0 +1,1867 @@ +# tkfbox.tcl -- +# +# Implements the "TK" standard file selection dialog box. This +# dialog box is used on the Unix platforms whenever the tk_strictMotif +# flag is not set. +# +# The "TK" standard file selection dialog box is similar to the +# file selection dialog box on Win95(TM). The user can navigate +# the directories by clicking on the folder icons or by +# selecting the "Directory" option menu. The user can select +# files by clicking on the file icons or by entering a filename +# in the "Filename:" entry. +# +# RCS: @(#) $Id: tkfbox.tcl,v 1.60 2007/10/25 21:44:22 hobbs Exp $ +# +# Copyright (c) 1994-1998 Sun Microsystems, Inc. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +#---------------------------------------------------------------------- +# +# I C O N L I S T +# +# This is a pseudo-widget that implements the icon list inside the +# ::tk::dialog::file:: dialog box. +# +#---------------------------------------------------------------------- + +# ::tk::IconList -- +# +# Creates an IconList widget. +# +proc ::tk::IconList {w args} { + IconList_Config $w $args + IconList_Create $w +} + +proc ::tk::IconList_Index {w i} { + upvar #0 ::tk::$w data ::tk::$w:itemList itemList + if {![info exists data(list)]} { + set data(list) {} + } + switch -regexp -- $i { + "^-?[0-9]+$" { + if {$i < 0} { + set i 0 + } + if {$i >= [llength $data(list)]} { + set i [expr {[llength $data(list)] - 1}] + } + return $i + } + "^active$" { + return $data(index,active) + } + "^anchor$" { + return $data(index,anchor) + } + "^end$" { + return [llength $data(list)] + } + "@-?[0-9]+,-?[0-9]+" { + foreach {x y} [scan $i "@%d,%d"] { + break + } + set item [$data(canvas) find closest \ + [$data(canvas) canvasx $x] [$data(canvas) canvasy $y]] + return [lindex [$data(canvas) itemcget $item -tags] 1] + } + } +} + +proc ::tk::IconList_Selection {w op args} { + upvar ::tk::$w data + switch -exact -- $op { + "anchor" { + if {[llength $args] == 1} { + set data(index,anchor) [tk::IconList_Index $w [lindex $args 0]] + } else { + return $data(index,anchor) + } + } + "clear" { + if {[llength $args] == 2} { + foreach {first last} $args { + break + } + } elseif {[llength $args] == 1} { + set first [set last [lindex $args 0]] + } else { + error "wrong # args: should be [lindex [info level 0] 0] path\ + clear first ?last?" + } + set first [IconList_Index $w $first] + set last [IconList_Index $w $last] + if {$first > $last} { + set tmp $first + set first $last + set last $tmp + } + set ind 0 + foreach item $data(selection) { + if { $item >= $first } { + set first $ind + break + } + incr ind + } + set ind [expr {[llength $data(selection)] - 1}] + for {} {$ind >= 0} {incr ind -1} { + set item [lindex $data(selection) $ind] + if { $item <= $last } { + set last $ind + break + } + } + + if { $first > $last } { + return + } + set data(selection) [lreplace $data(selection) $first $last] + event generate $w <> + IconList_DrawSelection $w + } + "includes" { + set index [lsearch -exact $data(selection) [lindex $args 0]] + return [expr {$index != -1}] + } + "set" { + if { [llength $args] == 2 } { + foreach {first last} $args { + break + } + } elseif { [llength $args] == 1 } { + set last [set first [lindex $args 0]] + } else { + error "wrong # args: should be [lindex [info level 0] 0] path\ + set first ?last?" + } + + set first [IconList_Index $w $first] + set last [IconList_Index $w $last] + if { $first > $last } { + set tmp $first + set first $last + set last $tmp + } + for {set i $first} {$i <= $last} {incr i} { + lappend data(selection) $i + } + set data(selection) [lsort -integer -unique $data(selection)] + event generate $w <> + IconList_DrawSelection $w + } + } +} + +proc ::tk::IconList_CurSelection {w} { + upvar ::tk::$w data + return $data(selection) +} + +proc ::tk::IconList_DrawSelection {w} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + $data(canvas) delete selection + foreach item $data(selection) { + set rTag [lindex [lindex $data(list) $item] 2] + foreach {iTag tTag text serial} $itemList($rTag) { + break + } + + set bbox [$data(canvas) bbox $tTag] + $data(canvas) create rect $bbox -fill \#a0a0ff -outline \#a0a0ff \ + -tags selection + } + $data(canvas) lower selection + return +} + +proc ::tk::IconList_Get {w item} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + set rTag [lindex [lindex $data(list) $item] 2] + foreach {iTag tTag text serial} $itemList($rTag) { + break + } + return $text +} + +# ::tk::IconList_Config -- +# +# Configure the widget variables of IconList, according to the command +# line arguments. +# +proc ::tk::IconList_Config {w argList} { + + # 1: the configuration specs + # + set specs { + {-command "" "" ""} + {-multiple "" "" "0"} + } + + # 2: parse the arguments + # + tclParseConfigSpec ::tk::$w $specs "" $argList +} + +# ::tk::IconList_Create -- +# +# Creates an IconList widget by assembling a canvas widget and a +# scrollbar widget. Sets all the bindings necessary for the IconList's +# operations. +# +proc ::tk::IconList_Create {w} { + upvar ::tk::$w data + + frame $w + set data(sbar) [scrollbar $w.sbar -orient horizontal -takefocus 0] + catch {$data(sbar) configure -highlightthickness 0} + set data(canvas) [canvas $w.canvas -bd 2 -relief sunken \ + -width 400 -height 120 -takefocus 1] + pack $data(sbar) -side bottom -fill x -padx 2 + pack $data(canvas) -expand yes -fill both + + $data(sbar) configure -command [list $data(canvas) xview] + $data(canvas) configure -xscrollcommand [list $data(sbar) set] + + # Initializes the max icon/text width and height and other variables + # + set data(maxIW) 1 + set data(maxIH) 1 + set data(maxTW) 1 + set data(maxTH) 1 + set data(numItems) 0 + set data(noScroll) 1 + set data(selection) {} + set data(index,anchor) "" + set fg [option get $data(canvas) foreground Foreground] + if {$fg eq ""} { + set data(fill) black + } else { + set data(fill) $fg + } + + # Creates the event bindings. + # + bind $data(canvas) [list tk::IconList_Arrange $w] + + bind $data(canvas) <1> [list tk::IconList_Btn1 $w %x %y] + bind $data(canvas) [list tk::IconList_Motion1 $w %x %y] + bind $data(canvas) [list tk::IconList_Leave1 $w %x %y] + bind $data(canvas) [list tk::IconList_CtrlBtn1 $w %x %y] + bind $data(canvas) [list tk::IconList_ShiftBtn1 $w %x %y] + bind $data(canvas) [list tk::CancelRepeat] + bind $data(canvas) [list tk::CancelRepeat] + bind $data(canvas) \ + [list tk::IconList_Double1 $w %x %y] + + bind $data(canvas) {;} + bind $data(canvas) \ + [list tk::IconList_ShiftMotion1 $w %x %y] + + bind $data(canvas) [list tk::IconList_UpDown $w -1] + bind $data(canvas) [list tk::IconList_UpDown $w 1] + bind $data(canvas) [list tk::IconList_LeftRight $w -1] + bind $data(canvas) [list tk::IconList_LeftRight $w 1] + bind $data(canvas) [list tk::IconList_ReturnKey $w] + bind $data(canvas) [list tk::IconList_KeyPress $w %A] + bind $data(canvas) ";" + bind $data(canvas) ";" + + bind $data(canvas) [list tk::IconList_FocusIn $w] + bind $data(canvas) [list tk::IconList_FocusOut $w] + + return $w +} + +# ::tk::IconList_AutoScan -- +# +# This procedure is invoked when the mouse leaves an entry window +# with button 1 down. It scrolls the window up, down, left, or +# right, depending on where the mouse left the window, and reschedules +# itself as an "after" command so that the window continues to scroll until +# the mouse moves back into the window or the mouse button is released. +# +# Arguments: +# w - The IconList window. +# +proc ::tk::IconList_AutoScan {w} { + upvar ::tk::$w data + variable ::tk::Priv + + if {![winfo exists $w]} return + set x $Priv(x) + set y $Priv(y) + + if {$data(noScroll)} { + return + } + if {$x >= [winfo width $data(canvas)]} { + $data(canvas) xview scroll 1 units + } elseif {$x < 0} { + $data(canvas) xview scroll -1 units + } elseif {$y >= [winfo height $data(canvas)]} { + # do nothing + } elseif {$y < 0} { + # do nothing + } else { + return + } + + IconList_Motion1 $w $x $y + set Priv(afterId) [after 50 [list tk::IconList_AutoScan $w]] +} + +# Deletes all the items inside the canvas subwidget and reset the IconList's +# state. +# +proc ::tk::IconList_DeleteAll {w} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + $data(canvas) delete all + unset -nocomplain data(selected) data(rect) data(list) itemList + set data(maxIW) 1 + set data(maxIH) 1 + set data(maxTW) 1 + set data(maxTH) 1 + set data(numItems) 0 + set data(noScroll) 1 + set data(selection) {} + set data(index,anchor) "" + $data(sbar) set 0.0 1.0 + $data(canvas) xview moveto 0 +} + +# Adds an icon into the IconList with the designated image and text +# +proc ::tk::IconList_Add {w image items} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + upvar ::tk::$w:textList textList + + foreach text $items { + set iTag [$data(canvas) create image 0 0 -image $image -anchor nw \ + -tags [list icon $data(numItems) item$data(numItems)]] + set tTag [$data(canvas) create text 0 0 -text $text -anchor nw \ + -font $data(font) -fill $data(fill) \ + -tags [list text $data(numItems) item$data(numItems)]] + set rTag [$data(canvas) create rect 0 0 0 0 -fill "" -outline "" \ + -tags [list rect $data(numItems) item$data(numItems)]] + + foreach {x1 y1 x2 y2} [$data(canvas) bbox $iTag] { + break + } + set iW [expr {$x2 - $x1}] + set iH [expr {$y2 - $y1}] + if {$data(maxIW) < $iW} { + set data(maxIW) $iW + } + if {$data(maxIH) < $iH} { + set data(maxIH) $iH + } + + foreach {x1 y1 x2 y2} [$data(canvas) bbox $tTag] { + break + } + set tW [expr {$x2 - $x1}] + set tH [expr {$y2 - $y1}] + if {$data(maxTW) < $tW} { + set data(maxTW) $tW + } + if {$data(maxTH) < $tH} { + set data(maxTH) $tH + } + + lappend data(list) [list $iTag $tTag $rTag $iW $iH $tW \ + $tH $data(numItems)] + set itemList($rTag) [list $iTag $tTag $text $data(numItems)] + set textList($data(numItems)) [string tolower $text] + incr data(numItems) + } +} + +# Places the icons in a column-major arrangement. +# +proc ::tk::IconList_Arrange {w} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + if {[info exists data(canvas)] && [winfo exists $data(canvas)]} { + set data(noScroll) 1 + $data(sbar) configure -command "" + } + return + } + + set W [winfo width $data(canvas)] + set H [winfo height $data(canvas)] + set pad [expr {[$data(canvas) cget -highlightthickness] + \ + [$data(canvas) cget -bd]}] + if {$pad < 2} { + set pad 2 + } + + incr W -[expr {$pad*2}] + incr H -[expr {$pad*2}] + + set dx [expr {$data(maxIW) + $data(maxTW) + 8}] + if {$data(maxTH) > $data(maxIH)} { + set dy $data(maxTH) + } else { + set dy $data(maxIH) + } + incr dy 2 + set shift [expr {$data(maxIW) + 4}] + + set x [expr {$pad * 2}] + set y [expr {$pad * 1}] ; # Why * 1 ? + set usedColumn 0 + foreach sublist $data(list) { + set usedColumn 1 + foreach {iTag tTag rTag iW iH tW tH} $sublist { + break + } + + set i_dy [expr {($dy - $iH)/2}] + set t_dy [expr {($dy - $tH)/2}] + + $data(canvas) coords $iTag $x [expr {$y + $i_dy}] + $data(canvas) coords $tTag [expr {$x + $shift}] [expr {$y + $t_dy}] + $data(canvas) coords $rTag $x $y [expr {$x+$dx}] [expr {$y+$dy}] + + incr y $dy + if {($y + $dy) > $H} { + set y [expr {$pad * 1}] ; # *1 ? + incr x $dx + set usedColumn 0 + } + } + + if {$usedColumn} { + set sW [expr {$x + $dx}] + } else { + set sW $x + } + + if {$sW < $W} { + $data(canvas) configure -scrollregion [list $pad $pad $sW $H] + $data(sbar) configure -command "" + $data(canvas) xview moveto 0 + set data(noScroll) 1 + } else { + $data(canvas) configure -scrollregion [list $pad $pad $sW $H] + $data(sbar) configure -command [list $data(canvas) xview] + set data(noScroll) 0 + } + + set data(itemsPerColumn) [expr {($H-$pad)/$dy}] + if {$data(itemsPerColumn) < 1} { + set data(itemsPerColumn) 1 + } + + IconList_DrawSelection $w +} + +# Gets called when the user invokes the IconList (usually by double-clicking +# or pressing the Return key). +# +proc ::tk::IconList_Invoke {w} { + upvar ::tk::$w data + + if {$data(-command) ne "" && [llength $data(selection)]} { + uplevel #0 $data(-command) + } +} + +# ::tk::IconList_See -- +# +# If the item is not (completely) visible, scroll the canvas so that +# it becomes visible. +proc ::tk::IconList_See {w rTag} { + upvar ::tk::$w data + upvar ::tk::$w:itemList itemList + + if {$data(noScroll)} { + return + } + set sRegion [$data(canvas) cget -scrollregion] + if {$sRegion eq ""} { + return + } + + if { $rTag < 0 || $rTag >= [llength $data(list)] } { + return + } + + set bbox [$data(canvas) bbox item$rTag] + set pad [expr {[$data(canvas) cget -highlightthickness] + \ + [$data(canvas) cget -bd]}] + + set x1 [lindex $bbox 0] + set x2 [lindex $bbox 2] + incr x1 -[expr {$pad * 2}] + incr x2 -[expr {$pad * 1}] ; # *1 ? + + set cW [expr {[winfo width $data(canvas)] - $pad*2}] + + set scrollW [expr {[lindex $sRegion 2]-[lindex $sRegion 0]+1}] + set dispX [expr {int([lindex [$data(canvas) xview] 0]*$scrollW)}] + set oldDispX $dispX + + # check if out of the right edge + # + if {($x2 - $dispX) >= $cW} { + set dispX [expr {$x2 - $cW}] + } + # check if out of the left edge + # + if {($x1 - $dispX) < 0} { + set dispX $x1 + } + + if {$oldDispX ne $dispX} { + set fraction [expr {double($dispX)/double($scrollW)}] + $data(canvas) xview moveto $fraction + } +} + +proc ::tk::IconList_Btn1 {w x y} { + upvar ::tk::$w data + + focus $data(canvas) + set i [IconList_Index $w @$x,$y] + if {$i eq ""} { + return + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i +} + +proc ::tk::IconList_CtrlBtn1 {w x y} { + upvar ::tk::$w data + + if { $data(-multiple) } { + focus $data(canvas) + set i [IconList_Index $w @$x,$y] + if {$i eq ""} { + return + } + if { [IconList_Selection $w includes $i] } { + IconList_Selection $w clear $i + } else { + IconList_Selection $w set $i + IconList_Selection $w anchor $i + } + } +} + +proc ::tk::IconList_ShiftBtn1 {w x y} { + upvar ::tk::$w data + + if { $data(-multiple) } { + focus $data(canvas) + set i [IconList_Index $w @$x,$y] + if {$i eq ""} { + return + } + set a [IconList_Index $w anchor] + if {$a eq ""} { + set a $i + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $a $i + } +} + +# Gets called on button-1 motions +# +proc ::tk::IconList_Motion1 {w x y} { + variable ::tk::Priv + set Priv(x) $x + set Priv(y) $y + set i [IconList_Index $w @$x,$y] + if {$i eq ""} { + return + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i +} + +proc ::tk::IconList_ShiftMotion1 {w x y} { + upvar ::tk::$w data + variable ::tk::Priv + set Priv(x) $x + set Priv(y) $y + set i [IconList_Index $w @$x,$y] + if {$i eq ""} { + return + } + IconList_Selection $w clear 0 end + IconList_Selection $w set anchor $i +} + +proc ::tk::IconList_Double1 {w x y} { + upvar ::tk::$w data + + if {[llength $data(selection)]} { + IconList_Invoke $w + } +} + +proc ::tk::IconList_ReturnKey {w} { + IconList_Invoke $w +} + +proc ::tk::IconList_Leave1 {w x y} { + variable ::tk::Priv + + set Priv(x) $x + set Priv(y) $y + IconList_AutoScan $w +} + +proc ::tk::IconList_FocusIn {w} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + if {[llength $data(selection)]} { + IconList_DrawSelection $w + } +} + +proc ::tk::IconList_FocusOut {w} { + IconList_Selection $w clear 0 end +} + +# ::tk::IconList_UpDown -- +# +# Moves the active element up or down by one element +# +# Arguments: +# w - The IconList widget. +# amount - +1 to move down one item, -1 to move back one item. +# +proc ::tk::IconList_UpDown {w amount} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + set curr [tk::IconList_CurSelection $w] + if { [llength $curr] == 0 } { + set i 0 + } else { + set i [tk::IconList_Index $w anchor] + if {$i eq ""} { + return + } + incr i $amount + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i + IconList_See $w $i +} + +# ::tk::IconList_LeftRight -- +# +# Moves the active element left or right by one column +# +# Arguments: +# w - The IconList widget. +# amount - +1 to move right one column, -1 to move left one column. +# +proc ::tk::IconList_LeftRight {w amount} { + upvar ::tk::$w data + + if {![info exists data(list)]} { + return + } + + set curr [IconList_CurSelection $w] + if { [llength $curr] == 0 } { + set i 0 + } else { + set i [IconList_Index $w anchor] + if {$i eq ""} { + return + } + incr i [expr {$amount*$data(itemsPerColumn)}] + } + IconList_Selection $w clear 0 end + IconList_Selection $w set $i + IconList_Selection $w anchor $i + IconList_See $w $i +} + +#---------------------------------------------------------------------- +# Accelerator key bindings +#---------------------------------------------------------------------- + +# ::tk::IconList_KeyPress -- +# +# Gets called when user enters an arbitrary key in the listbox. +# +proc ::tk::IconList_KeyPress {w key} { + variable ::tk::Priv + + append Priv(ILAccel,$w) $key + IconList_Goto $w $Priv(ILAccel,$w) + catch { + after cancel $Priv(ILAccel,$w,afterId) + } + set Priv(ILAccel,$w,afterId) [after 500 [list tk::IconList_Reset $w]] +} + +proc ::tk::IconList_Goto {w text} { + upvar ::tk::$w data + upvar ::tk::$w:textList textList + + if {![info exists data(list)]} { + return + } + + if {$text eq "" || $data(numItems) == 0} { + return + } + + if {[llength [IconList_CurSelection $w]]} { + set start [IconList_Index $w anchor] + } else { + set start 0 + } + + set theIndex -1 + set less 0 + set len [string length $text] + set len0 [expr {$len-1}] + set i $start + + # Search forward until we find a filename whose prefix is a + # case-insensitive match with $text + while {1} { + if {[string equal -nocase -length $len0 $textList($i) $text]} { + set theIndex $i + break + } + incr i + if {$i == $data(numItems)} { + set i 0 + } + if {$i == $start} { + break + } + } + + if {$theIndex > -1} { + IconList_Selection $w clear 0 end + IconList_Selection $w set $theIndex + IconList_Selection $w anchor $theIndex + IconList_See $w $theIndex + } +} + +proc ::tk::IconList_Reset {w} { + variable ::tk::Priv + + unset -nocomplain Priv(ILAccel,$w) +} + +#---------------------------------------------------------------------- +# +# F I L E D I A L O G +# +#---------------------------------------------------------------------- + +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::file { + namespace import -force ::tk::msgcat::* + set ::tk::dialog::file::showHiddenBtn 0 + set ::tk::dialog::file::showHiddenVar 1 +} + +# ::tk::dialog::file:: -- +# +# Implements the TK file selection dialog. This dialog is used when +# the tk_strictMotif flag is set to false. This procedure shouldn't +# be called directly. Call tk_getOpenFile or tk_getSaveFile instead. +# +# Arguments: +# type "open" or "save" +# args Options parsed by the procedure. +# + +proc ::tk::dialog::file:: {type args} { + variable ::tk::Priv + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + + Config $dataName $type $args + + if {$data(-parent) eq "."} { + set w .$dataName + } else { + set w $data(-parent).$dataName + } + + # (re)create the dialog box if necessary + # + if {![winfo exists $w]} { + Create $w TkFDialog + } elseif {[winfo class $w] ne "TkFDialog"} { + destroy $w + Create $w TkFDialog + } else { + set data(dirMenuBtn) $w.f1.menu + set data(dirMenu) $w.f1.menu.menu + set data(upBtn) $w.f1.up + set data(icons) $w.icons + set data(ent) $w.f2.ent + set data(typeMenuLab) $w.f2.lab2 + set data(typeMenuBtn) $w.f2.menu + set data(typeMenu) $data(typeMenuBtn).m + set data(okBtn) $w.f2.ok + set data(cancelBtn) $w.f2.cancel + set data(hiddenBtn) $w.f2.hidden + SetSelectMode $w $data(-multiple) + } + if {$::tk::dialog::file::showHiddenBtn} { + $data(hiddenBtn) configure -state normal + grid $data(hiddenBtn) + } else { + $data(hiddenBtn) configure -state disabled + grid remove $data(hiddenBtn) + } + + # Make sure subseqent uses of this dialog are independent [Bug 845189] + unset -nocomplain data(extUsed) + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]]} { + wm transient $w $data(-parent) + } + + # Add traces on the selectPath variable + # + + trace add variable data(selectPath) write \ + [list ::tk::dialog::file::SetPath $w] + $data(dirMenuBtn) configure \ + -textvariable ::tk::dialog::file::${dataName}(selectPath) + + # Cleanup previous menu + # + $data(typeMenu) delete 0 end + $data(typeMenuBtn) configure -state normal -text "" + + # Initialize the file types menu + # + if {[llength $data(-filetypes)]} { + # Default type and name to first entry + set initialtype [lindex $data(-filetypes) 0] + set initialTypeName [lindex $initialtype 0] + if {($data(-typevariable) ne "") + && [uplevel 2 [list info exists $data(-typevariable)]]} { + set initialTypeName [uplevel 2 [list set $data(-typevariable)]] + } + foreach type $data(-filetypes) { + set title [lindex $type 0] + set filter [lindex $type 1] + $data(typeMenu) add command -label $title \ + -command [list ::tk::dialog::file::SetFilter $w $type] + # string first avoids glob-pattern char issues + if {[string first ${initialTypeName} $title] == 0} { + set initialtype $type + } + } + SetFilter $w $initialtype + $data(typeMenuBtn) configure -state normal + $data(typeMenuLab) configure -state normal + } else { + set data(filter) "*" + $data(typeMenuBtn) configure -state disabled -takefocus 0 + $data(typeMenuLab) configure -state disabled + } + UpdateWhenIdle $w + + # Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display and de-iconify it. + + ::tk::PlaceWindow $w widget $data(-parent) + wm title $w $data(-title) + + # Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(ent) + $data(ent) delete 0 end + $data(ent) insert 0 $data(selectFile) + $data(ent) selection range 0 end + $data(ent) icursor end + + # Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectFilePath) + + ::tk::RestoreFocusGrab $w $data(ent) withdraw + + # Cleanup traces on selectPath variable + # + + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + $data(dirMenuBtn) configure -textvariable {} + + return $Priv(selectFilePath) +} + +# ::tk::dialog::file::Config -- +# +# Configures the TK filedialog according to the argument list +# +proc ::tk::dialog::file::Config {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + set data(type) $type + + # 0: Delete all variable that were set on data(selectPath) the + # last time the file dialog is used. The traces may cause troubles + # if the dialog is now used with a different -parent option. + + foreach trace [trace info variable data(selectPath)] { + trace remove variable data(selectPath) [lindex $trace 0] [lindex $trace 1] + } + + # 1: the configuration specs + # + set specs { + {-defaultextension "" "" ""} + {-filetypes "" "" ""} + {-initialdir "" "" ""} + {-initialfile "" "" ""} + {-parent "" "" "."} + {-title "" "" ""} + {-typevariable "" "" ""} + } + + # The "-multiple" option is only available for the "open" file dialog. + # + if {$type eq "open"} { + lappend specs {-multiple "" "" "0"} + } + + # 2: default values depending on the type of the dialog + # + if {![info exists data(selectPath)]} { + # first time the dialog has been popped up + set data(selectPath) [pwd] + set data(selectFile) "" + } + + # 3: parse the arguments + # + tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + if {$type eq "open"} { + set data(-title) [mc "Open"] + } else { + set data(-title) [mc "Save As"] + } + } + + # 4: set the default directory and selection according to the -initial + # settings + # + if {$data(-initialdir) ne ""} { + # Ensure that initialdir is an absolute path name. + if {[file isdirectory $data(-initialdir)]} { + set old [pwd] + cd $data(-initialdir) + set data(selectPath) [pwd] + cd $old + } else { + set data(selectPath) [pwd] + } + } + set data(selectFile) $data(-initialfile) + + # 5. Parse the -filetypes option + # + set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] + + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } + + # Set -multiple to a one or zero value (not other boolean types + # like "yes") so we can use it in tests more easily. + if {$type eq "save"} { + set data(-multiple) 0 + } elseif {$data(-multiple)} { + set data(-multiple) 1 + } else { + set data(-multiple) 0 + } +} + +proc ::tk::dialog::file::Create {w class} { + set dataName [lindex [split $w .] end] + upvar ::tk::dialog::file::$dataName data + variable ::tk::Priv + global tk_library + + toplevel $w -class $class + + # f1: the frame with the directory option menu + # + set f1 [frame $w.f1] + bind [::tk::AmpWidget label $f1.lab -text [mc "&Directory:"]] \ + <> [list focus $f1.menu] + + set data(dirMenuBtn) $f1.menu + set data(dirMenu) [tk_optionMenu $f1.menu \ + [format %s(selectPath) ::tk::dialog::file::$dataName] ""] + set data(upBtn) [button $f1.up] + if {![info exists Priv(updirImage)]} { + set Priv(updirImage) [image create bitmap -data { +#define updir_width 28 +#define updir_height 16 +static char updir_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, + 0x20, 0x40, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x10, 0x00, 0x00, 0x01, + 0x10, 0x02, 0x00, 0x01, 0x10, 0x07, 0x00, 0x01, 0x90, 0x0f, 0x00, 0x01, + 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, 0x10, 0x02, 0x00, 0x01, + 0x10, 0xfe, 0x07, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, + 0xf0, 0xff, 0xff, 0x01};}] + } + $data(upBtn) configure -image $Priv(updirImage) + + $f1.menu configure -takefocus 1 -highlightthickness 2 + + pack $data(upBtn) -side right -padx 4 -fill both + pack $f1.lab -side left -padx 4 -fill both + pack $f1.menu -expand yes -fill both -padx 4 + + # data(icons): the IconList that list the files and directories. + # + if {$class eq "TkFDialog"} { + if { $data(-multiple) } { + set fNameCaption [mc "File &names:"] + } else { + set fNameCaption [mc "File &name:"] + } + set fTypeCaption [mc "Files of &type:"] + set iconListCommand [list ::tk::dialog::file::OkCmd $w] + } else { + set fNameCaption [mc "&Selection:"] + set iconListCommand [list ::tk::dialog::file::chooseDir::DblClick $w] + } + set data(icons) [::tk::IconList $w.icons \ + -command $iconListCommand -multiple $data(-multiple)] + bind $data(icons) <> \ + [list ::tk::dialog::file::ListBrowse $w] + + # f2: the frame with the OK button, cancel button, "file name" field + # and file types field. + # + set f2 [frame $w.f2 -bd 0] + bind [::tk::AmpWidget label $f2.lab -text $fNameCaption -anchor e -pady 0]\ + <> [list focus $f2.ent] + set data(ent) [entry $f2.ent] + + # The font to use for the icons. The default Canvas font on Unix + # is just deviant. + set ::tk::$w.icons(font) [$data(ent) cget -font] + + # Make the file types bits only if this is a File Dialog + if {$class eq "TkFDialog"} { + set data(typeMenuLab) [::tk::AmpWidget label $f2.lab2 \ + -text $fTypeCaption -anchor e -pady [$f2.lab cget -pady]] + set data(typeMenuBtn) [menubutton $f2.menu -indicatoron 1 \ + -menu $f2.menu.m] + set data(typeMenu) [menu $data(typeMenuBtn).m -tearoff 0] + $data(typeMenuBtn) configure -takefocus 1 -highlightthickness 2 \ + -relief raised -bd 2 -anchor w + bind $data(typeMenuLab) <> [list \ + focus $data(typeMenuBtn)] + } + + # The hidden button is displayed when ::tk::dialog::file::showHiddenBtn + # is true. Create it disabled so the binding doesn't trigger if it + # isn't shown. + if {$class eq "TkFDialog"} { + set text [mc "Show &Hidden Files and Directories"] + } else { + set text [mc "Show &Hidden Directories"] + } + set data(hiddenBtn) [::tk::AmpWidget checkbutton $f2.hidden \ + -text $text -anchor w -padx 3 -state disabled \ + -variable ::tk::dialog::file::showHiddenVar \ + -command [list ::tk::dialog::file::UpdateWhenIdle $w]] + + # the okBtn is created after the typeMenu so that the keyboard traversal + # is in the right order, and add binding so that we find out when the + # dialog is destroyed by the user (added here instead of to the overall + # window so no confusion about how much gets called; exactly + # once will do). [Bug 987169] + + set data(okBtn) [::tk::AmpWidget button $f2.ok \ + -text [mc "&OK"] -default active -pady 3] + bind $data(okBtn) [list ::tk::dialog::file::Destroyed $w] + set data(cancelBtn) [::tk::AmpWidget button $f2.cancel \ + -text [mc "&Cancel"] -default normal -pady 3] + + # grid the widgets in f2 + # + grid $f2.lab $f2.ent $data(okBtn) -padx 4 -sticky ew + grid configure $f2.ent -padx 2 + if {$class eq "TkFDialog"} { + grid $data(typeMenuLab) $data(typeMenuBtn) $data(cancelBtn) \ + -padx 4 -sticky ew + grid configure $data(typeMenuBtn) -padx 0 + grid $data(hiddenBtn) -columnspan 2 -padx 4 -sticky ew + } else { + grid $data(hiddenBtn) - $data(cancelBtn) -padx 4 -sticky ew + } + grid columnconfigure $f2 1 -weight 1 + + # Pack all the frames together. We are done with widget construction. + # + pack $f1 -side top -fill x -pady 4 + pack $f2 -side bottom -fill x + pack $data(icons) -expand yes -fill both -padx 4 -pady 1 + + # Set up the event handlers that are common to Directory and File Dialogs + # + + wm protocol $w WM_DELETE_WINDOW [list ::tk::dialog::file::CancelCmd $w] + $data(upBtn) configure -command [list ::tk::dialog::file::UpDirCmd $w] + $data(cancelBtn) configure -command [list ::tk::dialog::file::CancelCmd $w] + bind $w [list tk::ButtonInvoke $data(cancelBtn)] + bind $w [list tk::AltKeyInDialog $w %A] + + # Set up event handlers specific to File or Directory Dialogs + # + if {$class eq "TkFDialog"} { + bind $data(ent) [list ::tk::dialog::file::ActivateEnt $w] + $data(okBtn) configure -command [list ::tk::dialog::file::OkCmd $w] + bind $w [format { + if {[%s cget -state] eq "normal"} { + focus %s + } + } $data(typeMenuBtn) $data(typeMenuBtn)] + } else { + set okCmd [list ::tk::dialog::file::chooseDir::OkCmd $w] + bind $data(ent) $okCmd + $data(okBtn) configure -command $okCmd + bind $w [list focus $data(ent)] + bind $w [list tk::ButtonInvoke $data(okBtn)] + } + bind $w [list $data(hiddenBtn) invoke] + + # Build the focus group for all the entries + # + ::tk::FocusGroup_Create $w + ::tk::FocusGroup_BindIn $w $data(ent) [list \ + ::tk::dialog::file::EntFocusIn $w] + ::tk::FocusGroup_BindOut $w $data(ent) [list \ + ::tk::dialog::file::EntFocusOut $w] +} + +# ::tk::dialog::file::SetSelectMode -- +# +# Set the select mode of the dialog to single select or multi-select. +# +# Arguments: +# w The dialog path. +# multi 1 if the dialog is multi-select; 0 otherwise. +# +# Results: +# None. + +proc ::tk::dialog::file::SetSelectMode {w multi} { + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + if { $multi } { + set fNameCaption [mc "File &names:"] + } else { + set fNameCaption [mc "File &name:"] + } + set iconListCommand [list ::tk::dialog::file::OkCmd $w] + ::tk::SetAmpText $w.f2.lab $fNameCaption + ::tk::IconList_Config $data(icons) \ + [list -multiple $multi -command $iconListCommand] + return +} + +# ::tk::dialog::file::UpdateWhenIdle -- +# +# Creates an idle event handler which updates the dialog in idle +# time. This is important because loading the directory may take a long +# time and we don't want to load the same directory for multiple times +# due to multiple concurrent events. +# +proc ::tk::dialog::file::UpdateWhenIdle {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[info exists data(updateId)]} { + return + } else { + set data(updateId) [after idle [list ::tk::dialog::file::Update $w]] + } +} + +# ::tk::dialog::file::Update -- +# +# Loads the files and directories into the IconList widget. Also +# sets up the directory option menu for quick access to parent +# directories. +# +proc ::tk::dialog::file::Update {w} { + + # This proc may be called within an idle handler. Make sure that the + # window has not been destroyed before this proc is called + if {![winfo exists $w]} { + return + } + set class [winfo class $w] + if {($class ne "TkFDialog") && ($class ne "TkChooseDir")} { + return + } + + set dataName [winfo name $w] + upvar ::tk::dialog::file::$dataName data + variable ::tk::Priv + global tk_library + unset -nocomplain data(updateId) + + if {![info exists Priv(folderImage)]} { + set Priv(folderImage) [image create photo -data { +R0lGODlhEAAMAKEAAAD//wAAAPD/gAAAACH5BAEAAAAALAAAAAAQAAwAAAIghINhyycvVFsB +QtmS3rjaH1Hg141WaT5ouprt2HHcUgAAOw==}] + set Priv(fileImage) [image create photo -data { +R0lGODlhDAAMAKEAALLA3AAAAP//8wAAACH5BAEAAAAALAAAAAAMAAwAAAIgRI4Ha+IfWHsO +rSASvJTGhnhcV3EJlo3kh53ltF5nAhQAOw==}] + } + set folder $Priv(folderImage) + set file $Priv(fileImage) + + set appPWD [pwd] + if {[catch { + cd $data(selectPath) + }]} { + # We cannot change directory to $data(selectPath). $data(selectPath) + # should have been checked before ::tk::dialog::file::Update is called, so + # we normally won't come to here. Anyways, give an error and abort + # action. + tk_messageBox -type ok -parent $w -icon warning -message \ + [mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $data(selectPath)] + cd $appPWD + return + } + + # Turn on the busy cursor. BUG?? We haven't disabled X events, though, + # so the user may still click and cause havoc ... + # + set entCursor [$data(ent) cget -cursor] + set dlgCursor [$w cget -cursor] + $data(ent) configure -cursor watch + $w configure -cursor watch + update idletasks + + ::tk::IconList_DeleteAll $data(icons) + + set showHidden $::tk::dialog::file::showHiddenVar + + # Make the dir list + # Using -directory [pwd] is better in some VFS cases. + set cmd [list glob -tails -directory [pwd] -type d -nocomplain *] + if {$showHidden} { lappend cmd .* } + set dirs [lsort -dictionary -unique [eval $cmd]] + set dirList {} + foreach d $dirs { + if {$d eq "." || $d eq ".."} { + continue + } + lappend dirList $d + } + ::tk::IconList_Add $data(icons) $folder $dirList + + if {$class eq "TkFDialog"} { + # Make the file list if this is a File Dialog, selecting all + # but 'd'irectory type files. + # + set cmd [list glob -tails -directory [pwd] \ + -type {f b c l p s} -nocomplain] + if {$data(filter) eq "*"} { + lappend cmd * + if {$showHidden} { + lappend cmd .* + } + } else { + eval [list lappend cmd] $data(filter) + } + set fileList [lsort -dictionary -unique [eval $cmd]] + ::tk::IconList_Add $data(icons) $file $fileList + } + + ::tk::IconList_Arrange $data(icons) + + # Update the Directory: option menu + # + set list "" + set dir "" + foreach subdir [file split $data(selectPath)] { + set dir [file join $dir $subdir] + lappend list $dir + } + + $data(dirMenu) delete 0 end + set var [format %s(selectPath) ::tk::dialog::file::$dataName] + foreach path $list { + $data(dirMenu) add command -label $path -command [list set $var $path] + } + + # Restore the PWD to the application's PWD + # + cd $appPWD + + if {$class eq "TkFDialog"} { + # Restore the Open/Save Button if this is a File Dialog + # + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } + + # turn off the busy cursor. + # + $data(ent) configure -cursor $entCursor + $w configure -cursor $dlgCursor +} + +# ::tk::dialog::file::SetPathSilently -- +# +# Sets data(selectPath) without invoking the trace procedure +# +proc ::tk::dialog::file::SetPathSilently {w path} { + upvar ::tk::dialog::file::[winfo name $w] data + + trace remove variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] + set data(selectPath) $path + trace add variable data(selectPath) write [list ::tk::dialog::file::SetPath $w] +} + + +# This proc gets called whenever data(selectPath) is set +# +proc ::tk::dialog::file::SetPath {w name1 name2 op} { + if {[winfo exists $w]} { + upvar ::tk::dialog::file::[winfo name $w] data + UpdateWhenIdle $w + # On directory dialogs, we keep the entry in sync with the currentdir. + if {[winfo class $w] eq "TkChooseDir"} { + $data(ent) delete 0 end + $data(ent) insert end $data(selectPath) + } + } +} + +# This proc gets called whenever data(filter) is set +# +proc ::tk::dialog::file::SetFilter {w type} { + upvar ::tk::dialog::file::[winfo name $w] data + upvar ::tk::$data(icons) icons + + set data(filterType) $type + set data(filter) [lindex $type 1] + $data(typeMenuBtn) configure -text [lindex $type 0] -indicatoron 1 + + # If we aren't using a default extension, use the one suppled + # by the filter. + if {![info exists data(extUsed)]} { + if {[string length $data(-defaultextension)]} { + set data(extUsed) 1 + } else { + set data(extUsed) 0 + } + } + + if {!$data(extUsed)} { + # Get the first extension in the list that matches {^\*\.\w+$} + # and remove all * from the filter. + set index [lsearch -regexp $data(filter) {^\*\.\w+$}] + if {$index >= 0} { + set data(-defaultextension) \ + [string trimleft [lindex $data(filter) $index] "*"] + } else { + # Couldn't find anything! Reset to a safe default... + set data(-defaultextension) "" + } + } + + $icons(sbar) set 0.0 0.0 + + UpdateWhenIdle $w +} + +# tk::dialog::file::ResolveFile -- +# +# Interpret the user's text input in a file selection dialog. +# Performs: +# +# (1) ~ substitution +# (2) resolve all instances of . and .. +# (3) check for non-existent files/directories +# (4) check for chdir permissions +# (5) conversion of environment variable references to their +# contents (once only) +# +# Arguments: +# context: the current directory you are in +# text: the text entered by the user +# defaultext: the default extension to add to files with no extension +# expandEnv: whether to expand environment variables (yes by default) +# +# Return vaue: +# [list $flag $directory $file] +# +# flag = OK : valid input +# = PATTERN : valid directory/pattern +# = PATH : the directory does not exist +# = FILE : the directory exists by the file doesn't +# exist +# = CHDIR : Cannot change to the directory +# = ERROR : Invalid entry +# +# directory : valid only if flag = OK or PATTERN or FILE +# file : valid only if flag = OK or PATTERN +# +# directory may not be the same as context, because text may contain +# a subdirectory name +# +proc ::tk::dialog::file::ResolveFile {context text defaultext {expandEnv 1}} { + set appPWD [pwd] + + set path [JoinFile $context $text] + + # If the file has no extension, append the default. Be careful not + # to do this for directories, otherwise typing a dirname in the box + # will give back "dirname.extension" instead of trying to change dir. + if { + ![file isdirectory $path] && ([file ext $path] eq "") && + ![string match {$*} [file tail $path]] + } then { + set path "$path$defaultext" + } + + if {[catch {file exists $path}]} { + # This "if" block can be safely removed if the following code + # stop generating errors. + # + # file exists ~nonsuchuser + # + return [list ERROR $path ""] + } + + if {[file exists $path]} { + if {[file isdirectory $path]} { + if {[catch {cd $path}]} { + return [list CHDIR $path ""] + } + set directory [pwd] + set file "" + set flag OK + cd $appPWD + } else { + if {[catch {cd [file dirname $path]}]} { + return [list CHDIR [file dirname $path] ""] + } + set directory [pwd] + set file [file tail $path] + set flag OK + cd $appPWD + } + } else { + set dirname [file dirname $path] + if {[file exists $dirname]} { + if {[catch {cd $dirname}]} { + return [list CHDIR $dirname ""] + } + set directory [pwd] + cd $appPWD + set file [file tail $path] + # It's nothing else, so check to see if it is an env-reference + if {$expandEnv && [string match {$*} $file]} { + set var [string range $file 1 end] + if {[info exist ::env($var)]} { + return [ResolveFile $context $::env($var) $defaultext 0] + } + } + if {[regexp {[*?]} $file]} { + set flag PATTERN + } else { + set flag FILE + } + } else { + set directory $dirname + set file [file tail $path] + set flag PATH + # It's nothing else, so check to see if it is an env-reference + if {$expandEnv && [string match {$*} $file]} { + set var [string range $file 1 end] + if {[info exist ::env($var)]} { + return [ResolveFile $context $::env($var) $defaultext 0] + } + } + } + } + + return [list $flag $directory $file] +} + + +# Gets called when the entry box gets keyboard focus. We clear the selection +# from the icon list . This way the user can be certain that the input in the +# entry box is the selection. +# +proc ::tk::dialog::file::EntFocusIn {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(ent) get] ne ""} { + $data(ent) selection range 0 end + $data(ent) icursor end + } else { + $data(ent) selection clear + } + + if {[winfo class $w] eq "TkFDialog"} { + # If this is a File Dialog, make sure the buttons are labeled right. + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } +} + +proc ::tk::dialog::file::EntFocusOut {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(ent) selection clear +} + + +# Gets called when user presses Return in the "File name" entry. +# +proc ::tk::dialog::file::ActivateEnt {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text [$data(ent) get] + if {$data(-multiple)} { + # For the multiple case we have to be careful to get the file + # names as a true list, watching out for a single file with a + # space in the name. Thus we query the IconList directly. + + set selIcos [::tk::IconList_CurSelection $data(icons)] + set data(selectFile) "" + if {[llength $selIcos] == 0 && $text ne ""} { + # This assumes the user typed something in without selecting + # files - so assume they only type in a single filename. + VerifyFileName $w $text + } else { + foreach item $selIcos { + VerifyFileName $w [::tk::IconList_Get $data(icons) $item] + } + } + } else { + VerifyFileName $w $text + } +} + +# Verification procedure +# +proc ::tk::dialog::file::VerifyFileName {w filename} { + upvar ::tk::dialog::file::[winfo name $w] data + + set list [ResolveFile $data(selectPath) $filename $data(-defaultextension)] + foreach {flag path file} $list { + break + } + + switch -- $flag { + OK { + if {$file eq ""} { + # user has entered an existing (sub)directory + set data(selectPath) $path + $data(ent) delete 0 end + } else { + SetPathSilently $w $path + if {$data(-multiple)} { + lappend data(selectFile) $file + } else { + set data(selectFile) $file + } + Done $w + } + } + PATTERN { + set data(selectPath) $path + set data(filter) $file + } + FILE { + if {$data(type) eq "open"} { + tk_messageBox -icon warning -type ok -parent $w \ + -message [mc "File \"%1\$s\" does not exist." \ + [file join $path $file]] + $data(ent) selection range 0 end + $data(ent) icursor end + } else { + SetPathSilently $w $path + if {$data(-multiple)} { + lappend data(selectFile) $file + } else { + set data(selectFile) $file + } + Done $w + } + } + PATH { + tk_messageBox -icon warning -type ok -parent $w \ + -message [mc "Directory \"%1\$s\" does not exist." $path] + $data(ent) selection range 0 end + $data(ent) icursor end + } + CHDIR { + tk_messageBox -type ok -parent $w -message -icon warning \ + [mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $path] + $data(ent) selection range 0 end + $data(ent) icursor end + } + ERROR { + tk_messageBox -type ok -parent $w -message -icon warning \ + [mc "Invalid file name \"%1\$s\"." $path] + $data(ent) selection range 0 end + $data(ent) icursor end + } + } +} + +# Gets called when user presses the Alt-s or Alt-o keys. +# +proc ::tk::dialog::file::InvokeBtn {w key} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(okBtn) cget -text] eq $key} { + ::tk::ButtonInvoke $data(okBtn) + } +} + +# Gets called when user presses the "parent directory" button +# +proc ::tk::dialog::file::UpDirCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {$data(selectPath) ne "/"} { + set data(selectPath) [file dirname $data(selectPath)] + } +} + +# Join a file name to a path name. The "file join" command will break +# if the filename begins with ~ +# +proc ::tk::dialog::file::JoinFile {path file} { + if {[string match {~*} $file] && [file exists $path/$file]} { + return [file join $path ./$file] + } else { + return [file join $path $file] + } +} + +# Gets called when user presses the "OK" button +# +proc ::tk::dialog::file::OkCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set filenames {} + foreach item [::tk::IconList_CurSelection $data(icons)] { + lappend filenames [::tk::IconList_Get $data(icons) $item] + } + + if {([llength $filenames] && !$data(-multiple)) || \ + ($data(-multiple) && ([llength $filenames] == 1))} { + set filename [lindex $filenames 0] + set file [JoinFile $data(selectPath) $filename] + if {[file isdirectory $file]} { + ListInvoke $w [list $filename] + return + } + } + + ActivateEnt $w +} + +# Gets called when user presses the "Cancel" button +# +proc ::tk::dialog::file::CancelCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + bind $data(okBtn) {} + set Priv(selectFilePath) "" +} + +# Gets called when user destroys the dialog directly [Bug 987169] +# +proc ::tk::dialog::file::Destroyed {w} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + set Priv(selectFilePath) "" +} + +# Gets called when user browses the IconList widget (dragging mouse, arrow +# keys, etc) +# +proc ::tk::dialog::file::ListBrowse {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text {} + foreach item [::tk::IconList_CurSelection $data(icons)] { + lappend text [::tk::IconList_Get $data(icons) $item] + } + if {[llength $text] == 0} { + return + } + if { [llength $text] > 1 } { + set newtext {} + foreach file $text { + set fullfile [JoinFile $data(selectPath) $file] + if { ![file isdirectory $fullfile] } { + lappend newtext $file + } + } + set text $newtext + set isDir 0 + } else { + set text [lindex $text 0] + set file [JoinFile $data(selectPath) $text] + set isDir [file isdirectory $file] + } + if {!$isDir} { + $data(ent) delete 0 end + $data(ent) insert 0 $text + + if {[winfo class $w] eq "TkFDialog"} { + if {$data(type) eq "open"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } else { + ::tk::SetAmpText $data(okBtn) [mc "&Save"] + } + } + } elseif {[winfo class $w] eq "TkFDialog"} { + ::tk::SetAmpText $data(okBtn) [mc "&Open"] + } +} + +# Gets called when user invokes the IconList widget (double-click, +# Return key, etc) +# +proc ::tk::dialog::file::ListInvoke {w filenames} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[llength $filenames] == 0} { + return + } + + set file [JoinFile $data(selectPath) [lindex $filenames 0]] + + set class [winfo class $w] + if {$class eq "TkChooseDir" || [file isdirectory $file]} { + set appPWD [pwd] + if {[catch {cd $file}]} { + tk_messageBox -type ok -parent $w -message -icon warning \ + [mc "Cannot change to the directory \"%1\$s\".\nPermission denied." $file] + } else { + cd $appPWD + set data(selectPath) $file + } + } else { + if {$data(-multiple)} { + set data(selectFile) $filenames + } else { + set data(selectFile) $file + } + Done $w + } +} + +# ::tk::dialog::file::Done -- +# +# Gets called when user has input a valid filename. Pops up a +# dialog box to confirm selection when necessary. Sets the +# tk::Priv(selectFilePath) variable, which will break the "vwait" +# loop in ::tk::dialog::file:: and return the selected filename to the +# script that calls tk_getOpenFile or tk_getSaveFile +# +proc ::tk::dialog::file::Done {w {selectFilePath ""}} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + if {$selectFilePath eq ""} { + if {$data(-multiple)} { + set selectFilePath {} + foreach f $data(selectFile) { + lappend selectFilePath [JoinFile $data(selectPath) $f] + } + } else { + set selectFilePath [JoinFile $data(selectPath) $data(selectFile)] + } + + set Priv(selectFile) $data(selectFile) + set Priv(selectPath) $data(selectPath) + + if {($data(type) eq "save") && [file exists $selectFilePath]} { + set reply [tk_messageBox -icon warning -type yesno -parent $w \ + -message [mc "File \"%1\$s\" already exists.\nDo you want\ + to overwrite it?" $selectFilePath]] + if {$reply eq "no"} { + return + } + } + if {[info exists data(-typevariable)] && $data(-typevariable) ne "" + && [info exists data(-filetypes)] && [llength $data(-filetypes)] + && [info exists data(filterType)] && $data(filterType) ne ""} { + upvar 4 $data(-typevariable) initialTypeName + set initialTypeName [lindex $data(filterType) 0] + } + } + bind $data(okBtn) {} + set Priv(selectFilePath) $selectFilePath +} diff --git a/mingw/lib/tk8.5/ttk/altTheme.tcl b/mingw/lib/tk8.5/ttk/altTheme.tcl new file mode 100644 index 00000000..62a0607f --- /dev/null +++ b/mingw/lib/tk8.5/ttk/altTheme.tcl @@ -0,0 +1,101 @@ +# +# $Id: altTheme.tcl,v 1.3 2006/12/18 19:33:14 jenglish Exp $ +# +# Ttk widget set: Alternate theme +# + +namespace eval ttk::theme::alt { + + variable colors + array set colors { + -frame "#d9d9d9" + -window "#ffffff" + -darker "#c3c3c3" + -activebg "#ececec" + -disabledfg "#a3a3a3" + -selectbg "#4a6984" + -selectfg "#ffffff" + } + + namespace import -force ::ttk::style + style theme settings alt { + + style configure "." \ + -background $colors(-frame) \ + -foreground black \ + -troughcolor $colors(-darker) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -font TkDefaultFont \ + ; + + style map "." -background \ + [list disabled $colors(-frame) active $colors(-activebg)] ; + style map "." -foreground [list disabled $colors(-disabledfg)] ; + style map "." -embossed [list disabled 1] ; + + style configure TButton \ + -width -11 -padding "1 1" -relief raised -shiftrelief 1 \ + -highlightthickness 1 -highlightcolor $colors(-frame) + + style map TButton -relief { + {pressed !disabled} sunken + {active !disabled} raised + } -highlightcolor {alternate black} + + style configure TCheckbutton -indicatorcolor "#ffffff" -padding 2 + style configure TRadiobutton -indicatorcolor "#ffffff" -padding 2 + style map TCheckbutton -indicatorcolor \ + [list disabled $colors(-frame) pressed $colors(-frame)] + style map TRadiobutton -indicatorcolor \ + [list disabled $colors(-frame) pressed $colors(-frame)] + + style configure TMenubutton \ + -width -11 -padding "3 3" -relief raised -anchor w + + style configure TEntry -padding 1 + style map TEntry -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + style configure TCombobox -padding 1 + style map TCombobox -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + + style configure Toolbutton -relief flat -padding 2 + style map Toolbutton -relief \ + {disabled flat selected sunken pressed sunken active raised} + style map Toolbutton -background \ + [list pressed $colors(-darker) active $colors(-activebg)] + + style configure TScrollbar -relief raised + + style configure TLabelframe -relief groove -borderwidth 2 + + style configure TNotebook -tabmargins {2 2 1 0} + style configure TNotebook.Tab \ + -padding {4 2} -background $colors(-darker) + style map TNotebook.Tab \ + -background [list selected $colors(-frame)] \ + -expand [list selected {2 2 1 0}] \ + ; + + # Treeview: + style configure Heading -font TkHeadingFont -relief raised + style configure Row -background $colors(-window) + style configure Cell -background $colors(-window) + style map Row \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + style map Cell \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + style map Item \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + + style configure TScale \ + -groovewidth 4 -troughrelief sunken \ + -sliderwidth raised -borderwidth 2 + style configure TProgressbar \ + -background $colors(-selectbg) -borderwidth 0 + } +} diff --git a/mingw/lib/tk8.5/ttk/aquaTheme.tcl b/mingw/lib/tk8.5/ttk/aquaTheme.tcl new file mode 100644 index 00000000..834136da --- /dev/null +++ b/mingw/lib/tk8.5/ttk/aquaTheme.tcl @@ -0,0 +1,75 @@ +# +# $Id: aquaTheme.tcl,v 1.5 2007/10/22 03:35:13 jenglish Exp $ +# +# Aqua theme (OSX native look and feel) +# + +namespace eval ttk::theme::aqua { + ttk::style theme settings aqua { + + ttk::style configure . \ + -font System \ + -background White \ + -foreground Black \ + -selectbackground SystemHighlight \ + -selectforeground SystemHighlightText \ + -selectborderwidth 0 \ + -insertwidth 1 \ + ; + ttk::style map . \ + -foreground [list disabled "#a3a3a3" background "#a3a3a3"] \ + -selectbackground [list background "#c3c3c3" !focus "#c3c3c3"] \ + -selectforeground [list background "#a3a3a3" !focus "#000000"] \ + ; + + # Workaround for #1100117: + # Actually, on Aqua we probably shouldn't stipple images in + # disabled buttons even if it did work... + # + ttk::style configure . -stipple {} + + ttk::style configure TButton -padding {0 2} -width -6 + ttk::style configure TMenubutton -anchor w + ttk::style configure Toolbutton -padding 4 + # See Apple HIG figs 14-63, 14-65 + ttk::style configure TNotebook -tabposition n -padding {20 12} + ttk::style configure TNotebook.Tab -padding {10 2 10 2} + + + # Adjust combobox post position to ensure the box is + # directly under 'entry square' + # + ttk::style configure TCombobox -postoffset {3 -2 -6 0} + + # Treeview: + ttk::style configure Treeview -rowheight 18 + ttk::style configure Heading -font TkHeadingFont + ttk::style map Row -background [list \ + {selected background} "#c3c3c3" selected SystemHighlight] ; + ttk::style map Cell -foreground [list \ + {selected background} "#000000" selected SystemHighlightText] ; + ttk::style map Item -foreground [list \ + {selected background} "#000000" selected SystemHighlightText] ; + + # Enable animation for ttk::progressbar widget: + ttk::style configure TProgressbar -period 100 -maxphase 255 + + # Modify the the default Labelframe layout to use generic text element + # instead of Labelframe.text; the latter erases the window background + # (@@@ this still isn't right... want to fill with background pattern) + + ttk::style layout TLabelframe { + Labelframe.border + text + } + # + # For Aqua, labelframe labels should appear outside the border, + # with a 14 pixel inset and 4 pixels spacing between border and label + # (ref: Apple Human Interface Guidelines / Controls / Grouping Controls) + # + ttk::style configure TLabelframe \ + -labeloutside true -labelmargins {14 0 14 4} + + # TODO: panedwindow sashes should be 9 pixels (HIG:Controls:Split Views) + } +} diff --git a/mingw/lib/tk8.5/ttk/button.tcl b/mingw/lib/tk8.5/ttk/button.tcl new file mode 100644 index 00000000..494a674f --- /dev/null +++ b/mingw/lib/tk8.5/ttk/button.tcl @@ -0,0 +1,85 @@ +# +# $Id: button.tcl,v 1.2 2006/11/27 06:53:55 jenglish Exp $ +# +# Bindings for Buttons, Checkbuttons, and Radiobuttons. +# +# Notes: , only control the "pressed" +# state; widgets remain "active" if the pointer is dragged out. +# This doesn't seem to be conventional, but it's a nice way +# to provide extra feedback while the grab is active. +# (If the button is released off the widget, the grab deactivates and +# we get a event then, which turns off the "active" state) +# +# Normally, and events are +# delivered to the widget which received the initial +# event. However, Tk [grab]s (#1223103) and menu interactions +# (#1222605) can interfere with this. To guard against spurious +# events, the binding only sets +# the pressed state if the button is currently active. +# + +namespace eval ttk::button {} + +bind TButton { %W instate !disabled {%W state active} } +bind TButton { %W state !active } +bind TButton { ttk::button::activate %W } +bind TButton <> { ttk::button::activate %W } + +bind TButton \ + { %W instate !disabled { ttk::clickToFocus %W; %W state pressed } } +bind TButton \ + { %W instate {pressed !disabled} { %W state !pressed; %W invoke } } +bind TButton \ + { %W state !pressed } +bind TButton \ + { %W instate {active !disabled} { %W state pressed } } + +# Checkbuttons and Radiobuttons have the same bindings as Buttons: +# +ttk::copyBindings TButton TCheckbutton +ttk::copyBindings TButton TRadiobutton + +# ...plus a few more: + +bind TRadiobutton { ttk::button::RadioTraverse %W -1 } +bind TRadiobutton { ttk::button::RadioTraverse %W +1 } + +# bind TCheckbutton { %W select } +# bind TCheckbutton { %W deselect } + +# activate -- +# Simulate a button press: temporarily set the state to 'pressed', +# then invoke the button. +# +proc ttk::button::activate {w} { + $w instate disabled { return } + set oldState [$w state pressed] + update idletasks; after 100 + $w state $oldState + $w invoke +} + +# RadioTraverse -- up/down keyboard traversal for radiobutton groups. +# Set focus to previous/next radiobutton in a group. +# A radiobutton group consists of all the radiobuttons with +# the same parent and -variable; this is a pretty good heuristic +# that works most of the time. +# +proc ttk::button::RadioTraverse {w dir} { + set group [list] + foreach sibling [winfo children [winfo parent $w]] { + if { [winfo class $sibling] eq "TRadiobutton" + && [$sibling cget -variable] eq [$w cget -variable] + && ![$sibling instate disabled] + } { + lappend group $sibling + } + } + + if {![llength $group]} { # Shouldn't happen, but can. + return + } + + set pos [expr {([lsearch -exact $group $w] + $dir) % [llength $group]}] + tk::TabToWindow [lindex $group $pos] +} diff --git a/mingw/lib/tk8.5/ttk/clamTheme.tcl b/mingw/lib/tk8.5/ttk/clamTheme.tcl new file mode 100644 index 00000000..930ec972 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/clamTheme.tcl @@ -0,0 +1,137 @@ +# +# $Id: clamTheme.tcl,v 1.4 2006/12/18 19:33:14 jenglish Exp $ +# +# "Clam" theme. +# +# Inspired by the XFCE family of Gnome themes. +# + +namespace eval ttk::theme::clam { + variable colors + array set colors { + -disabledfg "#999999" + -frame "#dcdad5" + -window "#ffffff" + -dark "#cfcdc8" + -darker "#bab5ab" + -darkest "#9e9a91" + -lighter "#eeebe7" + -lightest "#ffffff" + -selectbg "#4a6984" + -selectfg "#ffffff" + } + + ttk::style theme settings clam { + + ttk::style configure "." \ + -background $colors(-frame) \ + -foreground black \ + -bordercolor $colors(-darkest) \ + -darkcolor $colors(-dark) \ + -lightcolor $colors(-lighter) \ + -troughcolor $colors(-darker) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -selectborderwidth 0 \ + -font TkDefaultFont \ + ; + + ttk::style map "." \ + -background [list disabled $colors(-frame) \ + active $colors(-lighter)] \ + -foreground [list disabled $colors(-disabledfg)] \ + -selectbackground [list !focus $colors(-darkest)] \ + -selectforeground [list !focus white] \ + ; + # -selectbackground [list !focus "#847d73"] + + ttk::style configure TButton -width -11 -padding 5 -relief raised + ttk::style map TButton \ + -background [list \ + disabled $colors(-frame) \ + pressed $colors(-darker) \ + active $colors(-lighter)] \ + -lightcolor [list pressed $colors(-darker)] \ + -darkcolor [list pressed $colors(-darker)] \ + -bordercolor [list alternate "#000000"] \ + ; + + ttk::style configure Toolbutton -padding 2 -relief flat + ttk::style map Toolbutton \ + -relief [list \ + disabled flat \ + selected sunken \ + pressed sunken \ + active raised] \ + -background [list \ + disabled $colors(-frame) \ + pressed $colors(-darker) \ + active $colors(-lighter)] \ + -lightcolor [list pressed $colors(-darker)] \ + -darkcolor [list pressed $colors(-darker)] \ + ; + + ttk::style configure TCheckbutton \ + -indicatorbackground "#ffffff" \ + -indicatormargin {1 1 4 1} \ + -padding 2 ; + ttk::style configure TRadiobutton \ + -indicatorbackground "#ffffff" \ + -indicatormargin {1 1 4 1} \ + -padding 2 ; + ttk::style map TCheckbutton -indicatorbackground \ + [list disabled $colors(-frame) pressed $colors(-frame)] + ttk::style map TRadiobutton -indicatorbackground \ + [list disabled $colors(-frame) pressed $colors(-frame)] + + ttk::style configure TMenubutton \ + -width -11 -padding 5 -relief raised -anchor w + + ttk::style configure TEntry -padding 1 -insertwidth 1 + ttk::style map TEntry \ + -background [list readonly $colors(-frame)] \ + -bordercolor [list focus $colors(-selectbg)] \ + -lightcolor [list focus "#6f9dc6"] \ + -darkcolor [list focus "#6f9dc6"] \ + ; + + ttk::style configure TCombobox -padding 1 -insertwidth 1 + ttk::style map TCombobox \ + -background [list active $colors(-lighter) \ + pressed $colors(-lighter)] \ + -fieldbackground [list {readonly focus} $colors(-selectbg) \ + readonly $colors(-frame)] \ + -foreground [list {readonly focus} $colors(-selectfg)] \ + ; + + ttk::style configure TNotebook.Tab -padding {6 2 6 2} + ttk::style map TNotebook.Tab \ + -padding [list selected {6 4 6 2}] \ + -background [list selected $colors(-frame) {} $colors(-darker)] \ + -lightcolor [list selected $colors(-lighter) {} $colors(-dark)] \ + ; + + # Treeview: + ttk::style configure Heading \ + -font TkHeadingFont -relief raised -padding {3} + ttk::style configure Row -background $colors(-window) + ttk::style configure Cell -background $colors(-window) + ttk::style map Row \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + ttk::style map Cell \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + ttk::style map Item \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + + ttk::style configure TLabelframe \ + -labeloutside true -labelmargins {0 0 0 4} \ + -borderwidth 2 -relief raised + + ttk::style configure TProgressbar -background $colors(-frame) + + ttk::style configure Sash -sashthickness 6 -gripcount 10 + } +} diff --git a/mingw/lib/tk8.5/ttk/classicTheme.tcl b/mingw/lib/tk8.5/ttk/classicTheme.tcl new file mode 100644 index 00000000..2061b4e0 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/classicTheme.tcl @@ -0,0 +1,108 @@ +# +# $Id: classicTheme.tcl,v 1.3 2006/12/18 19:33:14 jenglish Exp $ +# +# "classic" Tk theme. +# +# Implements Tk's traditional Motif-like look and feel. +# + +namespace eval ttk::theme::classic { + + variable colors; array set colors { + -frame "#d9d9d9" + -window "#ffffff" + -activebg "#ececec" + -troughbg "#c3c3c3" + -selectbg "#c3c3c3" + -selectfg "#000000" + -disabledfg "#a3a3a3" + -indicator "#b03060" + } + + namespace import -force ::ttk::style + style theme settings classic { + style configure "." \ + -font TkDefaultFont \ + -background $colors(-frame) \ + -foreground black \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -troughcolor $colors(-troughbg) \ + -indicatorcolor $colors(-frame) \ + -highlightcolor $colors(-frame) \ + -highlightthickness 1 \ + -selectborderwidth 1 \ + -insertwidth 2 \ + ; + + # To match pre-Xft X11 appearance, use: + # ttk::style configure . -font {Helvetica 12 bold} + + style map "." -background \ + [list disabled $colors(-frame) active $colors(-activebg)] + style map "." -foreground \ + [list disabled $colors(-disabledfg)] + + style map "." -highlightcolor [list focus black] + + style configure TButton -padding "3m 1m" -relief raised -shiftrelief 1 + style map TButton -relief [list {!disabled pressed} sunken] + + style configure TCheckbutton -indicatorrelief raised + style map TCheckbutton \ + -indicatorcolor [list \ + pressed $colors(-frame) selected $colors(-indicator)] \ + -indicatorrelief {selected sunken pressed sunken} \ + ; + + style configure TRadiobutton -indicatorrelief raised + style map TRadiobutton \ + -indicatorcolor [list \ + pressed $colors(-frame) selected $colors(-indicator)] \ + -indicatorrelief {selected sunken pressed sunken} \ + ; + + style configure TMenubutton -relief raised -padding "3m 1m" + + style configure TEntry -relief sunken -padding 1 -font TkTextFont + style map TEntry -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + style configure TCombobox -padding 1 + style map TCombobox -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + + style configure TLabelframe -borderwidth 2 -relief groove + + style configure TScrollbar -relief raised + style map TScrollbar -relief {{pressed !disabled} sunken} + + style configure TScale -sliderrelief raised + style map TScale -sliderrelief {{pressed !disabled} sunken} + + style configure TProgressbar -background SteelBlue + style configure TNotebook.Tab \ + -padding {3m 1m} \ + -background $colors(-troughbg) + style map TNotebook.Tab -background [list selected $colors(-frame)] + + # Treeview: + ttk::style configure Heading -font TkHeadingFont -relief raised + ttk::style configure Row -background $colors(-window) + ttk::style configure Cell -background $colors(-window) + ttk::style map Row \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + ttk::style map Cell \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + + # + # Toolbar buttons: + # + style configure Toolbutton -padding 2 -relief flat -shiftrelief 2 + style map Toolbutton -relief \ + {disabled flat selected sunken pressed sunken active raised} + style map Toolbutton -background \ + [list pressed $colors(-troughbg) active $colors(-activebg)] + } +} diff --git a/mingw/lib/tk8.5/ttk/combobox.tcl b/mingw/lib/tk8.5/ttk/combobox.tcl new file mode 100644 index 00000000..df76c04c --- /dev/null +++ b/mingw/lib/tk8.5/ttk/combobox.tcl @@ -0,0 +1,429 @@ +# +# $Id: combobox.tcl,v 1.7 2007/10/23 23:24:09 hobbs Exp $ +# +# Combobox bindings. +# +# Each combobox $cb has a child $cb.popdown, which contains +# a listbox $cb.popdown.l and a scrollbar. The listbox -listvariable +# is set to a namespace variable, which is used to synchronize the +# combobox values with the listbox values. +# + +namespace eval ttk::combobox { + variable Values ;# Values($cb) is -listvariable of listbox widget + variable State + set State(entryPress) 0 +} + +### Combobox bindings. +# +# Duplicate the Entry bindings, override if needed: +# + +ttk::copyBindings TEntry TCombobox + +bind TCombobox { ttk::combobox::Post %W } +bind TCombobox { ttk::combobox::Unpost %W } + +bind TCombobox { ttk::combobox::Press "" %W %x %y } +bind TCombobox { ttk::combobox::Press "s" %W %x %y } +bind TCombobox { ttk::combobox::Press "2" %W %x %y } +bind TCombobox { ttk::combobox::Press "3" %W %x %y } +bind TCombobox { ttk::combobox::Drag %W %x } + +bind TCombobox { ttk::combobox::Scroll %W [expr {%D/-120}] } +if {[tk windowingsystem] eq "x11"} { + bind TCombobox { ttk::combobox::Scroll %W -1 } + bind TCombobox { ttk::combobox::Scroll %W 1 } +} + +bind TCombobox <> { ttk::combobox::TraverseIn %W } + +### Combobox listbox bindings. +# +bind ComboboxListbox { focus %W ; continue } +bind ComboboxListbox { ttk::combobox::LBSelected %W } +bind ComboboxListbox { ttk::combobox::LBSelected %W } +bind ComboboxListbox { ttk::combobox::LBCancel %W } +bind ComboboxListbox { ttk::combobox::LBTab %W next } +bind ComboboxListbox <> { ttk::combobox::LBTab %W prev } +bind ComboboxListbox { ttk::combobox::LBCleanup %W } +bind ComboboxListbox { ttk::combobox::LBHover %W %x %y } + +switch -- [tk windowingsystem] { + win32 { + # Dismiss listbox when user switches to a different application. + # NB: *only* do this on Windows (see #1814778) + bind ComboboxListbox { ttk::combobox::LBCancel %W } + } +} + +### Combobox popdown window bindings. +# +bind ComboboxPopdown { ttk::combobox::MapPopdown %W } +bind ComboboxPopdown { ttk::combobox::UnmapPopdown %W } +bind ComboboxPopdown \ + { ttk::combobox::Unpost [winfo parent %W] } + +### Option database settings. +# + +option add *TCombobox*Listbox.font TkTextFont +option add *TCombobox*Listbox.relief flat +option add *TCombobox*Listbox.highlightThickness 0 + +## Platform-specific settings. +# +switch -- [tk windowingsystem] { + x11 { + option add *TCombobox*Listbox.background white + } + aqua { + option add *TCombobox*Listbox.borderWidth 0 + } +} + +### Binding procedures. +# + +## Press $mode $x $y -- ButtonPress binding for comboboxes. +# Either post/unpost the listbox, or perform Entry widget binding, +# depending on widget state and location of button press. +# +proc ttk::combobox::Press {mode w x y} { + variable State + set State(entryPress) [expr { + [$w instate {!readonly !disabled}] + && [string match *textarea [$w identify $x $y]] + }] + + focus $w + if {$State(entryPress)} { + switch -- $mode { + s { ttk::entry::Shift-Press $w $x ; # Shift } + 2 { ttk::entry::Select $w $x word ; # Double click} + 3 { ttk::entry::Select $w $x line ; # Triple click } + "" - + default { ttk::entry::Press $w $x } + } + } else { + Post $w + } +} + +## Drag -- B1-Motion binding for comboboxes. +# If the initial ButtonPress event was handled by Entry binding, +# perform Entry widget drag binding; otherwise nothing. +# +proc ttk::combobox::Drag {w x} { + variable State + if {$State(entryPress)} { + ttk::entry::Drag $w $x + } +} + +## TraverseIn -- receive focus due to keyboard navigation +# For editable comboboxes, set the selection and insert cursor. +# +proc ttk::combobox::TraverseIn {w} { + $w instate {!readonly !disabled} { + $w selection range 0 end + $w icursor end + } +} + +## SelectEntry $cb $index -- +# Set the combobox selection in response to a user action. +# +proc ttk::combobox::SelectEntry {cb index} { + $cb current $index + $cb selection range 0 end + $cb icursor end + event generate $cb <> +} + +## Scroll -- Mousewheel binding +# +proc ttk::combobox::Scroll {cb dir} { + $cb instate disabled { return } + set max [llength [$cb cget -values]] + set current [$cb current] + incr current $dir + if {$max != 0 && $current == $current % $max} { + SelectEntry $cb $current + } +} + +## LBSelected $lb -- Activation binding for listbox +# Set the combobox value to the currently-selected listbox value +# and unpost the listbox. +# +proc ttk::combobox::LBSelected {lb} { + set cb [LBMaster $lb] + LBSelect $lb + Unpost $cb + focus $cb +} + +## LBCancel -- +# Unpost the listbox. +# +proc ttk::combobox::LBCancel {lb} { + Unpost [LBMaster $lb] +} + +## LBTab -- Tab key binding for combobox listbox. +# Set the selection, and navigate to next/prev widget. +# +proc ttk::combobox::LBTab {lb dir} { + set cb [LBMaster $lb] + switch -- $dir { + next { set newFocus [tk_focusNext $cb] } + prev { set newFocus [tk_focusPrev $cb] } + } + + if {$newFocus ne ""} { + LBSelect $lb + Unpost $cb + # The [grab release] call in [Unpost] queues events that later + # re-set the focus. [update] to make sure these get processed first: + update + ttk::traverseTo $newFocus + } +} + +## LBHover -- binding for combobox listbox. +# Follow selection on mouseover. +# +proc ttk::combobox::LBHover {w x y} { + $w selection clear 0 end + $w activate @$x,$y + $w selection set @$x,$y +} + +## MapPopdown -- binding for ComboboxPopdown +# +proc ttk::combobox::MapPopdown {w} { + [winfo parent $w] state pressed + ttk::globalGrab $w +} + +## UnmapPopdown -- binding for ComboboxPopdown +# +proc ttk::combobox::UnmapPopdown {w} { + [winfo parent $w] state !pressed + ttk::releaseGrab $w +} + +### +# + +namespace eval ::ttk::combobox { + # @@@ Until we have a proper native scrollbar on Aqua, use + # @@@ the regular Tk one. Use ttk::scrollbar on other platforms. + variable scrollbar ttk::scrollbar + if {[tk windowingsystem] eq "aqua"} { + set scrollbar ::scrollbar + } +} + +## PopdownWindow -- +# Returns the popdown widget associated with a combobox, +# creating it if necessary. +# +proc ttk::combobox::PopdownWindow {cb} { + variable scrollbar + + set popdown $cb.popdown + if {![winfo exists $popdown]} { + PopdownToplevel $popdown + + $scrollbar $popdown.sb \ + -orient vertical -command [list $popdown.l yview] + listbox $popdown.l \ + -listvariable ttk::combobox::Values($cb) \ + -yscrollcommand [list $popdown.sb set] \ + -exportselection false \ + -selectmode browse \ + -activestyle none \ + ; + + bindtags $popdown.l \ + [list $popdown.l ComboboxListbox Listbox $popdown all] + + grid $popdown.l $popdown.sb -sticky news + grid columnconfigure $popdown 0 -weight 1 + grid rowconfigure $popdown 0 -weight 1 + } + # to handle reparented frame/toplevel, recalculate transient each time + switch -- [tk windowingsystem] { + x11 { + wm transient $popdown [winfo toplevel [winfo parent $popdown]] + } + win32 { + wm transient $popdown [winfo toplevel [winfo parent $popdown]] + } + } + return $popdown +} + +## PopdownToplevel -- Create toplevel window for the combobox popdown +# +# NOTES: +# On Windows: setting [wm transient] prevents the parent +# toplevel from becoming inactive when the popdown is posted +# (Tk 8.4.8+) +# +# On X11: WM_TRANSIENT_FOR on override-redirect windows +# may be used by compositing managers and by EWMH-aware +# window managers (even though the older ICCCM spec says +# it's meaningless). +# +# On OSX: for MacWindowStyle "help", "noActivates" prevents +# the parent toplevel from deactivating when the popdown +# is posted, and is necessary for the popdown to receive +# mouse events. "hideOnSuspend" makes the popdown disappear +# (resp. reappear) when the parent toplevel is deactivated. +# +proc ttk::combobox::PopdownToplevel {w} { + if {![winfo exists $w]} { + toplevel $w -class ComboboxPopdown + } + wm withdraw $w + switch -- [tk windowingsystem] { + default - + x11 { + $w configure -relief solid -borderwidth 1 + wm overrideredirect $w true + } + win32 { + $w configure -relief solid -borderwidth 1 + wm overrideredirect $w true + } + aqua { + $w configure -relief solid -borderwidth 0 + tk::unsupported::MacWindowStyle style $w \ + help {noActivates hideOnSuspend} + } + } + return $w +} + +## ConfigureListbox -- +# Set listbox values, selection, height, and scrollbar visibility +# from current combobox values. +# +proc ttk::combobox::ConfigureListbox {cb} { + variable Values + + set popdown [PopdownWindow $cb] + set values [$cb cget -values] + set current [$cb current] + if {$current < 0} { + set current 0 ;# no current entry, highlight first one + } + set Values($cb) $values + $popdown.l selection clear 0 end + $popdown.l selection set $current + $popdown.l activate $current + $popdown.l see $current + set height [llength $values] + if {$height > [$cb cget -height]} { + set height [$cb cget -height] + grid $popdown.sb + } else { + grid remove $popdown.sb + } + $popdown.l configure -height $height +} + +## PlacePopdown -- +# Set popdown window geometry. +# +# @@@TODO: factor with menubutton::PostPosition +# +proc ttk::combobox::PlacePopdown {cb popdown} { + set x [winfo rootx $cb] + set y [winfo rooty $cb] + set w [winfo width $cb] + set h [winfo height $cb] + set postoffset [ttk::style lookup TCombobox -postoffset {} {0 0 0 0}] + foreach var {x y w h} delta $postoffset { + incr $var $delta + } + + set H [winfo reqheight $popdown] + if {$y + $h + $H > [winfo screenheight $popdown]} { + set Y [expr {$y - $H}] + } else { + set Y [expr {$y + $h}] + } + wm geometry $popdown ${w}x${H}+${x}+${Y} +} + +## Post $cb -- +# Pop down the associated listbox. +# +proc ttk::combobox::Post {cb} { + # Don't do anything if disabled: + # + $cb instate disabled { return } + + # ASSERT: ![$cb instate pressed] + + # Run -postcommand callback: + # + uplevel #0 [$cb cget -postcommand] + + set popdown [PopdownWindow $cb] + ConfigureListbox $cb + update idletasks + PlacePopdown $cb $popdown + + # Post the listbox: + # + wm deiconify $popdown + raise $popdown + focus $popdown.l +} + +## Unpost $cb -- +# Unpost the listbox. +# +proc ttk::combobox::Unpost {cb} { + wm withdraw $cb.popdown + grab release $cb.popdown ;# in case of stuck or unexpected grab [#1239190] +} + +## LBMaster $lb -- +# Return the combobox main widget that owns the listbox. +# +proc ttk::combobox::LBMaster {lb} { + winfo parent [winfo parent $lb] +} + +## LBSelect $lb -- +# Transfer listbox selection to combobox value. +# +proc ttk::combobox::LBSelect {lb} { + set cb [LBMaster $lb] + set selection [$lb curselection] + if {[llength $selection] == 1} { + SelectEntry $cb [lindex $selection 0] + } +} + +## LBCleanup $lb -- +# binding for combobox listboxes. +# Cleans up by unsetting the linked textvariable. +# +# Note: we can't just use { unset [%W cget -listvariable] } +# because the widget command is already gone when this binding fires). +# [winfo parent] still works, fortunately. +# +proc ttk::combobox::LBCleanup {lb} { + variable Values + unset Values([LBMaster $lb]) +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/cursors.tcl b/mingw/lib/tk8.5/ttk/cursors.tcl new file mode 100644 index 00000000..a151194c --- /dev/null +++ b/mingw/lib/tk8.5/ttk/cursors.tcl @@ -0,0 +1,35 @@ +# +# $Id: cursors.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ +# +# Ttk package: Symbolic cursor names. +# +# @@@ TODO: Figure out appropriate platform-specific cursors +# for the various functions. +# + +namespace eval ttk { + + variable Cursors + + switch -glob $::tcl_platform(platform) { + "windows" { + array set Cursors { + hresize sb_h_double_arrow + vresize sb_v_double_arrow + seresize size_nw_se + } + } + + "unix" - + * { + array set Cursors { + hresize sb_h_double_arrow + vresize sb_v_double_arrow + seresize bottom_right_corner + } + } + + } +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/defaults.tcl b/mingw/lib/tk8.5/ttk/defaults.tcl new file mode 100644 index 00000000..d076d8e9 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/defaults.tcl @@ -0,0 +1,117 @@ +# +# $Id: defaults.tcl,v 1.4 2006/12/18 19:33:14 jenglish Exp $ +# +# Settings for default theme. +# + +namespace eval ttk::theme::default { + variable colors + array set colors { + -frame "#d9d9d9" + -window "#ffffff" + -activebg "#ececec" + -selectbg "#4a6984" + -selectfg "#ffffff" + -darker "#c3c3c3" + -disabledfg "#a3a3a3" + -indicator "#4a6984" + } + + ttk::style theme settings default { + + ttk::style configure "." \ + -borderwidth 1 \ + -background $colors(-frame) \ + -foreground black \ + -troughcolor $colors(-darker) \ + -font TkDefaultFont \ + -selectborderwidth 1 \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertwidth 1 \ + -indicatordiameter 10 \ + ; + + ttk::style map "." -background \ + [list disabled $colors(-frame) active $colors(-activebg)] + ttk::style map "." -foreground \ + [list disabled $colors(-disabledfg)] + + ttk::style configure TButton \ + -padding "3 3" -width -9 -relief raised -shiftrelief 1 + ttk::style map TButton -relief [list {!disabled pressed} sunken] + + ttk::style configure TCheckbutton \ + -indicatorcolor "#ffffff" -indicatorrelief sunken -padding 1 + ttk::style map TCheckbutton -indicatorcolor \ + [list pressed $colors(-activebg) selected $colors(-indicator)] + + ttk::style configure TRadiobutton \ + -indicatorcolor "#ffffff" -indicatorrelief sunken -padding 1 + ttk::style map TRadiobutton -indicatorcolor \ + [list pressed $colors(-activebg) selected $colors(-indicator)] + + ttk::style configure TMenubutton \ + -relief raised -padding "10 3" -anchor w + + ttk::style configure TEntry \ + -relief sunken -fieldbackground white -padding 1 + ttk::style map TEntry -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + + ttk::style configure TCombobox -arrowsize 12 -padding 1 + ttk::style map TCombobox -fieldbackground \ + [list readonly $colors(-frame) disabled $colors(-frame)] + + ttk::style configure TLabelframe \ + -relief groove -borderwidth 2 + + ttk::style configure TScrollbar \ + -width 12 -arrowsize 12 + ttk::style map TScrollbar \ + -arrowcolor [list disabled $colors(-disabledfg)] + + ttk::style configure TScale \ + -sliderrelief raised + ttk::style configure TProgressbar \ + -background $colors(-selectbg) + + ttk::style configure TNotebook.Tab \ + -padding {4 2} -background $colors(-darker) + ttk::style map TNotebook.Tab \ + -background [list selected $colors(-frame)] + + # Treeview. + # + ttk::style configure Heading -font TkHeadingFont -relief raised + ttk::style configure Row -background $colors(-window) + ttk::style configure Cell -background $colors(-window) + ttk::style map Row \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + ttk::style map Cell \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + ttk::style map Item \ + -background [list selected $colors(-selectbg)] \ + -foreground [list selected $colors(-selectfg)] ; + + # + # Toolbar buttons: + # + ttk::style layout Toolbutton { + Toolbutton.border -children { + Toolbutton.padding -children { + Toolbutton.label + } + } + } + + ttk::style configure Toolbutton \ + -padding 2 -relief flat + ttk::style map Toolbutton -relief \ + [list disabled flat selected sunken pressed sunken active raised] + ttk::style map Toolbutton -background \ + [list pressed $colors(-darker) active $colors(-activebg)] + } +} diff --git a/mingw/lib/tk8.5/ttk/entry.tcl b/mingw/lib/tk8.5/ttk/entry.tcl new file mode 100644 index 00000000..cd1ba5e6 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/entry.tcl @@ -0,0 +1,580 @@ +# +# $Id: entry.tcl,v 1.3 2007/09/30 16:54:38 jenglish Exp $ +# +# DERIVED FROM: tk/library/entry.tcl r1.22 +# +# Copyright (c) 1992-1994 The Regents of the University of California. +# Copyright (c) 1994-1997 Sun Microsystems, Inc. +# Copyright (c) 2004, Joe English +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# + +namespace eval ttk { + namespace eval entry { + variable State + + set State(x) 0 + set State(selectMode) char + set State(anchor) 0 + set State(scanX) 0 + set State(scanIndex) 0 + set State(scanMoved) 0 + + # Button-2 scan speed is (scanNum/scanDen) characters + # per pixel of mouse movement. + # The standard Tk entry widget uses the equivalent of + # scanNum = 10, scanDen = average character width. + # I don't know why that was chosen. + # + set State(scanNum) 1 + set State(scanDen) 1 + set State(deadband) 3 ;# #pixels for mouse-moved deadband. + } +} + +### Bindings. +# +# Removed the following standard Tk bindings: +# +# , , +# , : +# Ttk entry widget doesn't use selection anchor. +# : +# Inserts PRIMARY selection (on non-Windows platforms). +# This is inconsistent with typical platform bindings. +# , : +# These don't do the right thing to start with. +# , , , +# , : +# Judgment call. If happens to be assigned to the Alt key, +# these could conflict with application accelerators. +# (Plus, who has a Meta key these days?) +# : +# Another judgment call. If anyone misses this, let me know +# and I'll put it back. +# + +## Clipboard events: +# +bind TEntry <> { ttk::entry::Cut %W } +bind TEntry <> { ttk::entry::Copy %W } +bind TEntry <> { ttk::entry::Paste %W } +bind TEntry <> { ttk::entry::Clear %W } + +## Button1 bindings: +# Used for selection and navigation. +# +bind TEntry { ttk::entry::Press %W %x } +bind TEntry { ttk::entry::Shift-Press %W %x } +bind TEntry { ttk::entry::Select %W %x word } +bind TEntry { ttk::entry::Select %W %x line } +bind TEntry { ttk::entry::Drag %W %x } + +bind TEntry { ttk::Repeatedly ttk::entry::AutoScroll %W } +bind TEntry { ttk::CancelRepeat } +bind TEntry { ttk::CancelRepeat } + +bind TEntry { + %W instate {!readonly !disabled} { %W icursor @%x ; focus %W } +} + +## Button2 bindings: +# Used for scanning and primary transfer. +# Note: ButtonRelease-2 is mapped to <> in tk.tcl. +# +bind TEntry { ttk::entry::ScanMark %W %x } +bind TEntry { ttk::entry::ScanDrag %W %x } +bind TEntry { ttk::entry::ScanRelease %W %x } +bind TEntry <> { ttk::entry::ScanRelease %W %x } + +## Keyboard navigation bindings: +# +bind TEntry { ttk::entry::Move %W prevchar } +bind TEntry { ttk::entry::Move %W nextchar } +bind TEntry { ttk::entry::Move %W prevword } +bind TEntry { ttk::entry::Move %W nextword } +bind TEntry { ttk::entry::Move %W home } +bind TEntry { ttk::entry::Move %W end } + +bind TEntry { ttk::entry::Extend %W prevchar } +bind TEntry { ttk::entry::Extend %W nextchar } +bind TEntry { ttk::entry::Extend %W prevword } +bind TEntry { ttk::entry::Extend %W nextword } +bind TEntry { ttk::entry::Extend %W home } +bind TEntry { ttk::entry::Extend %W end } + +bind TEntry { %W selection range 0 end } +bind TEntry { %W selection clear } + +bind TEntry <> { %W selection range 0 end; %W icursor end } + +## Edit bindings: +# +bind TEntry { ttk::entry::Insert %W %A } +bind TEntry { ttk::entry::Delete %W } +bind TEntry { ttk::entry::Backspace %W } + +# Ignore all Alt, Meta, and Control keypresses unless explicitly bound. +# Otherwise, the class binding will fire and insert the character. +# Ditto for Escape, Return, and Tab. +# +bind TEntry {# nothing} +bind TEntry {# nothing} +bind TEntry {# nothing} +bind TEntry {# nothing} +bind TEntry {# nothing} +bind TEntry {# nothing} +bind TEntry {# nothing} + +# Argh. Apparently on Windows, the NumLock modifier is interpreted +# as a Command modifier. +if {[tk windowingsystem] eq "aqua"} { + bind TEntry {# nothing} +} + +## Additional emacs-like bindings: +# +bind TEntry { ttk::entry::Move %W home } +bind TEntry { ttk::entry::Move %W prevchar } +bind TEntry { ttk::entry::Delete %W } +bind TEntry { ttk::entry::Move %W end } +bind TEntry { ttk::entry::Move %W nextchar } +bind TEntry { ttk::entry::Backspace %W } +bind TEntry { %W delete insert end } + +### Clipboard procedures. +# + +## EntrySelection -- Return the selected text of the entry. +# Raises an error if there is no selection. +# +proc ttk::entry::EntrySelection {w} { + set entryString [string range [$w get] [$w index sel.first] \ + [expr {[$w index sel.last] - 1}]] + if {[$w cget -show] ne ""} { + return [string repeat [string index [$w cget -show] 0] \ + [string length $entryString]] + } + return $entryString +} + +## Paste -- Insert clipboard contents at current insert point. +# +proc ttk::entry::Paste {w} { + catch { + set clipboard [::tk::GetSelection $w CLIPBOARD] + PendingDelete $w + $w insert insert $clipboard + See $w insert + } +} + +## Copy -- Copy selection to clipboard. +# +proc ttk::entry::Copy {w} { + if {![catch {EntrySelection $w} selection]} { + clipboard clear -displayof $w + clipboard append -displayof $w $selection + } +} + +## Clear -- Delete the selection. +# +proc ttk::entry::Clear {w} { + catch { $w delete sel.first sel.last } +} + +## Cut -- Copy selection to clipboard then delete it. +# +proc ttk::entry::Cut {w} { + Copy $w; Clear $w +} + +### Navigation procedures. +# + +## ClosestGap -- Find closest boundary between characters. +# Returns the index of the character just after the boundary. +# +proc ttk::entry::ClosestGap {w x} { + set pos [$w index @$x] + set bbox [$w bbox $pos] + if {$x - [lindex $bbox 0] > [lindex $bbox 2]/2} { + incr pos + } + return $pos +} + +## See $index -- Make sure that the character at $index is visible. +# +proc ttk::entry::See {w {index insert}} { + update idletasks ;# ensure scroll data up-to-date + set c [$w index $index] + # @@@ OR: check [$w index left] / [$w index right] + if {$c < [$w index @0] || $c >= [$w index @[winfo width $w]]} { + $w xview $c + } +} + +## NextWord -- Find the next word position. +# Note: The "next word position" follows platform conventions: +# either the next end-of-word position, or the start-of-word +# position following the next end-of-word position. +# +set ::ttk::entry::State(startNext) \ + [string equal $tcl_platform(platform) "windows"] + +proc ttk::entry::NextWord {w start} { + variable State + set pos [tcl_endOfWord [$w get] [$w index $start]] + if {$pos >= 0 && $State(startNext)} { + set pos [tcl_startOfNextWord [$w get] $pos] + } + if {$pos < 0} { + return end + } + return $pos +} + +## PrevWord -- Find the previous word position. +# +proc ttk::entry::PrevWord {w start} { + set pos [tcl_startOfPreviousWord [$w get] [$w index $start]] + if {$pos < 0} { + return 0 + } + return $pos +} + +## RelIndex -- Compute character/word/line-relative index. +# +proc ttk::entry::RelIndex {w where {index insert}} { + switch -- $where { + prevchar { expr {[$w index $index] - 1} } + nextchar { expr {[$w index $index] + 1} } + prevword { PrevWord $w $index } + nextword { NextWord $w $index } + home { return 0 } + end { $w index end } + default { error "Bad relative index $index" } + } +} + +## Move -- Move insert cursor to relative location. +# Also clears the selection, if any, and makes sure +# that the insert cursor is visible. +# +proc ttk::entry::Move {w where} { + $w icursor [RelIndex $w $where] + $w selection clear + See $w insert +} + +### Selection procedures. +# + +## ExtendTo -- Extend the selection to the specified index. +# +# The other end of the selection (the anchor) is determined as follows: +# +# (1) if there is no selection, the anchor is the insert cursor; +# (2) if the index is outside the selection, grow the selection; +# (3) if the insert cursor is at one end of the selection, anchor the other end +# (4) otherwise anchor the start of the selection +# +# The insert cursor is placed at the new end of the selection. +# +# Returns: selection anchor. +# +proc ttk::entry::ExtendTo {w index} { + set index [$w index $index] + set insert [$w index insert] + + # Figure out selection anchor: + if {![$w selection present]} { + set anchor $insert + } else { + set selfirst [$w index sel.first] + set sellast [$w index sel.last] + + if { ($index < $selfirst) + || ($insert == $selfirst && $index <= $sellast) + } { + set anchor $sellast + } else { + set anchor $selfirst + } + } + + # Extend selection: + if {$anchor < $index} { + $w selection range $anchor $index + } else { + $w selection range $index $anchor + } + + $w icursor $index + return $anchor +} + +## Extend -- Extend the selection to a relative position, show insert cursor +# +proc ttk::entry::Extend {w where} { + ExtendTo $w [RelIndex $w $where] + See $w +} + +### Button 1 binding procedures. +# +# Double-clicking followed by a drag enters "word-select" mode. +# Triple-clicking enters "line-select" mode. +# + +## Press -- ButtonPress-1 binding. +# Set the insertion cursor, claim the input focus, set up for +# future drag operations. +# +proc ttk::entry::Press {w x} { + variable State + + $w icursor [ClosestGap $w $x] + $w selection clear + $w instate !disabled { focus $w } + + # Set up for future drag, double-click, or triple-click. + set State(x) $x + set State(selectMode) char + set State(anchor) [$w index insert] +} + +## Shift-Press -- Shift-ButtonPress-1 binding. +# Extends the selection, sets anchor for future drag operations. +# +proc ttk::entry::Shift-Press {w x} { + variable State + + focus $w + set anchor [ExtendTo $w @$x] + + set State(x) $x + set State(selectMode) char + set State(anchor) $anchor +} + +## Select $w $x $mode -- Binding for double- and triple- clicks. +# Selects a word or line (according to mode), +# and sets the selection mode for subsequent drag operations. +# +proc ttk::entry::Select {w x mode} { + variable State + set cur [ClosestGap $w $x] + + switch -- $mode { + word { WordSelect $w $cur $cur } + line { LineSelect $w $cur $cur } + char { # no-op } + } + + set State(anchor) $cur + set State(selectMode) $mode +} + +## Drag -- Button1 motion binding. +# +proc ttk::entry::Drag {w x} { + variable State + set State(x) $x + DragTo $w $x +} + +## DragTo $w $x -- Extend selection to $x based on current selection mode. +# +proc ttk::entry::DragTo {w x} { + variable State + + set cur [ClosestGap $w $x] + switch $State(selectMode) { + char { CharSelect $w $State(anchor) $cur } + word { WordSelect $w $State(anchor) $cur } + line { LineSelect $w $State(anchor) $cur } + } +} + +## AutoScroll +# Called repeatedly when the mouse is outside an entry window +# with Button 1 down. Scroll the window left or right, +# depending on where the mouse is, and extend the selection +# according to the current selection mode. +# +# TODO: AutoScroll should repeat faster (50ms) than normal autorepeat. +# TODO: Need a way for Repeat scripts to cancel themselves. +# +proc ttk::entry::AutoScroll {w} { + variable State + if {![winfo exists $w]} return + set x $State(x) + if {$x > [winfo width $w]} { + $w xview scroll 2 units + DragTo $w $x + } elseif {$x < 0} { + $w xview scroll -2 units + DragTo $w $x + } +} + +## CharSelect -- select characters between index $from and $to +# +proc ttk::entry::CharSelect {w from to} { + if {$to <= $from} { + $w selection range $to $from + } else { + $w selection range $from $to + } + $w icursor $to +} + +## WordSelect -- Select whole words between index $from and $to +# +proc ttk::entry::WordSelect {w from to} { + if {$to < $from} { + set first [WordBack [$w get] $to] + set last [WordForward [$w get] $from] + $w icursor $first + } else { + set first [WordBack [$w get] $from] + set last [WordForward [$w get] $to] + $w icursor $last + } + $w selection range $first $last +} + +## WordBack, WordForward -- helper routines for WordSelect. +# +proc ttk::entry::WordBack {text index} { + if {[set pos [tcl_wordBreakBefore $text $index]] < 0} { return 0 } + return $pos +} +proc ttk::entry::WordForward {text index} { + if {[set pos [tcl_wordBreakAfter $text $index]] < 0} { return end } + return $pos +} + +## LineSelect -- Select the entire line. +# +proc ttk::entry::LineSelect {w _ _} { + variable State + $w selection range 0 end + $w icursor end +} + +### Button 2 binding procedures. +# + +## ScanMark -- ButtonPress-2 binding. +# Marks the start of a scan or primary transfer operation. +# +proc ttk::entry::ScanMark {w x} { + variable State + set State(scanX) $x + set State(scanIndex) [$w index @0] + set State(scanMoved) 0 +} + +## ScanDrag -- Button2 motion binding. +# +proc ttk::entry::ScanDrag {w x} { + variable State + + set dx [expr {$State(scanX) - $x}] + if {abs($dx) > $State(deadband)} { + set State(scanMoved) 1 + } + set left [expr {$State(scanIndex) + ($dx*$State(scanNum))/$State(scanDen)}] + $w xview $left + + if {$left != [set newLeft [$w index @0]]} { + # We've scanned past one end of the entry; + # reset the mark so that the text will start dragging again + # as soon as the mouse reverses direction. + # + set State(scanX) $x + set State(scanIndex) $newLeft + } +} + +## ScanRelease -- Button2 release binding. +# Do a primary transfer if the mouse has not moved since the button press. +# +proc ttk::entry::ScanRelease {w x} { + variable State + if {!$State(scanMoved)} { + $w instate {!disabled !readonly} { + $w icursor [ClosestGap $w $x] + catch {$w insert insert [::tk::GetSelection $w PRIMARY]} + } + } +} + +### Insertion and deletion procedures. +# + +## PendingDelete -- Delete selection prior to insert. +# If the entry currently has a selection, delete it and +# set the insert position to where the selection was. +# Returns: 1 if pending delete occurred, 0 if nothing was selected. +# +proc ttk::entry::PendingDelete {w} { + if {[$w selection present]} { + $w icursor sel.first + $w delete sel.first sel.last + return 1 + } + return 0 +} + +## Insert -- Insert text into the entry widget. +# If a selection is present, the new text replaces it. +# Otherwise, the new text is inserted at the insert cursor. +# +proc ttk::entry::Insert {w s} { + if {$s eq ""} { return } + PendingDelete $w + $w insert insert $s + See $w insert +} + +## Backspace -- Backspace over the character just before the insert cursor. +# If there is a selection, delete that instead. +# If the new insert position is offscreen to the left, +# scroll to place the cursor at about the middle of the window. +# +proc ttk::entry::Backspace {w} { + if {[PendingDelete $w]} { + See $w + return + } + set x [expr {[$w index insert] - 1}] + if {$x < 0} { return } + + $w delete $x + + if {[$w index @0] >= [$w index insert]} { + set range [$w xview] + set left [lindex $range 0] + set right [lindex $range 1] + $w xview moveto [expr {$left - ($right - $left)/2.0}] + } +} + +## Delete -- Delete the character after the insert cursor. +# If there is a selection, delete that instead. +# +proc ttk::entry::Delete {w} { + if {![PendingDelete $w]} { + $w delete insert + } +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/fonts.tcl b/mingw/lib/tk8.5/ttk/fonts.tcl new file mode 100644 index 00000000..a1c92679 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/fonts.tcl @@ -0,0 +1,159 @@ +# +# $Id: fonts.tcl,v 1.7 2007/10/21 14:51:27 das Exp $ +# +# Font specifications. +# +# This file, [source]d at initialization time, sets up the following +# symbolic fonts based on the current platform: +# +# TkDefaultFont -- default for GUI items not otherwise specified +# TkTextFont -- font for user text (entry, listbox, others) +# TkFixedFont -- standard fixed width font +# TkHeadingFont -- headings (column headings, etc) +# TkCaptionFont -- dialog captions (primary text in alert dialogs, etc.) +# TkTooltipFont -- font to use for tooltip windows +# TkIconFont -- font to use for icon captions +# TkMenuFont -- used to use for menu items +# +# In Tk 8.5, some of these fonts may be provided by the TIP#145 implementation +# (On Windows and Mac OS X as of Oct 2007). +# +# +++ Platform notes: +# +# Windows: +# The default system font changed from "MS Sans Serif" to "Tahoma" +# in Windows XP/Windows 2000. +# +# MS documentation says to use "Tahoma 8" in Windows 2000/XP, +# although many MS programs still use "MS Sans Serif 8" +# +# Should use SystemParametersInfo() instead. +# +# Mac OSX / Aqua: +# Quoth the Apple HIG: +# The _system font_ (Lucida Grande Regular 13 pt) is used for text +# in menus, dialogs, and full-size controls. +# [...] Use the _view font_ (Lucida Grande Regular 12pt) as the default +# font of text in lists and tables. +# [...] Use the _emphasized system font_ (Lucida Grande Bold 13 pt) +# sparingly. It is used for the message text in alerts. +# [...] The _small system font_ (Lucida Grande Regular 11 pt) [...] +# is also the default font for column headings in lists, for help tags, +# and for small controls. +# +# Note that the font for column headings (TkHeadingFont) is +# _smaller_ than the default font. +# +# There does not appear to be any recommendations for fixed-width fonts. +# +# X11: +# Need a way to tell if Xft is enabled or not. +# For now, assume patch #971980 applied. +# +# "Classic" look used Helvetica bold for everything except +# for entry widgets, which use Helvetica medium. +# Most other toolkits use medium weight for all UI elements, +# which is what we do now. +# +# Font size specified in pixels on X11, not points. +# This is Theoretically Wrong, but in practice works better; using +# points leads to huge inconsistencies across different servers. +# + +namespace eval ttk { + +set tip145 [catch {font create TkDefaultFont}] +catch {font create TkTextFont} +catch {font create TkHeadingFont} +catch {font create TkCaptionFont} +catch {font create TkTooltipFont} +catch {font create TkFixedFont} +catch {font create TkIconFont} +catch {font create TkMenuFont} +catch {font create TkSmallCaptionFont} + +if {!$tip145} { +variable F ;# miscellaneous platform-specific font parameters +switch -- [tk windowingsystem] { + win32 { + # In safe interps there is no osVersion element. + if {[info exists tcl_platform(osVersion)]} { + if {$tcl_platform(osVersion) >= 5.0} { + set F(family) "Tahoma" + } else { + set F(family) "MS Sans Serif" + } + } else { + if {[lsearch -exact [font families] Tahoma] != -1} { + set F(family) "Tahoma" + } else { + set F(family) "MS Sans Serif" + } + } + set F(size) 8 + + font configure TkDefaultFont -family $F(family) -size $F(size) + font configure TkTextFont -family $F(family) -size $F(size) + font configure TkHeadingFont -family $F(family) -size $F(size) + font configure TkCaptionFont -family $F(family) -size $F(size) \ + -weight bold + font configure TkTooltipFont -family $F(family) -size $F(size) + font configure TkFixedFont -family Courier -size 10 + font configure TkIconFont -family $F(family) -size $F(size) + font configure TkMenuFont -family $F(family) -size $F(size) + font configure TkSmallCaptionFont -family $F(family) -size $F(size) + } + aqua { + set F(family) "Lucida Grande" + set F(fixed) "Monaco" + set F(menusize) 14 + set F(size) 13 + set F(viewsize) 12 + set F(smallsize) 11 + set F(labelsize) 10 + set F(fixedsize) 9 + + font configure TkDefaultFont -family $F(family) -size $F(size) + font configure TkTextFont -family $F(family) -size $F(size) + font configure TkHeadingFont -family $F(family) -size $F(smallsize) + font configure TkCaptionFont -family $F(family) -size $F(size) \ + -weight bold + font configure TkTooltipFont -family $F(family) -size $F(smallsize) + font configure TkFixedFont -family $F(fixed) -size $F(fixedsize) + font configure TkIconFont -family $F(family) -size $F(size) + font configure TkMenuFont -family $F(family) -size $F(menusize) + font configure TkSmallCaptionFont -family $F(family) -size $F(labelsize) + } + default - + x11 { + if {![catch {tk::pkgconfig get fontsystem} F(fs)] && $F(fs) eq "xft"} { + set F(family) "sans-serif" + set F(fixed) "monospace" + } else { + set F(family) "Helvetica" + set F(fixed) "courier" + } + set F(size) -12 + set F(ttsize) -10 + set F(capsize) -14 + set F(fixedsize) -10 + + font configure TkDefaultFont -family $F(family) -size $F(size) + font configure TkTextFont -family $F(family) -size $F(size) + font configure TkHeadingFont -family $F(family) -size $F(size) \ + -weight bold + font configure TkCaptionFont -family $F(family) -size $F(capsize) \ + -weight bold + font configure TkTooltipFont -family $F(family) -size $F(ttsize) + font configure TkFixedFont -family $F(fixed) -size $F(fixedsize) + font configure TkIconFont -family $F(family) -size $F(size) + font configure TkMenuFont -family $F(family) -size $F(size) + font configure TkSmallCaptionFont -family $F(family) -size $F(ttsize) + } +} +unset -nocomplain F +} + +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/menubutton.tcl b/mingw/lib/tk8.5/ttk/menubutton.tcl new file mode 100644 index 00000000..fec276e5 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/menubutton.tcl @@ -0,0 +1,171 @@ +# +# $Id: menubutton.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ +# +# Bindings for Menubuttons. +# +# Menubuttons have three interaction modes: +# +# Pulldown: Press menubutton, drag over menu, release to activate menu entry +# Popdown: Click menubutton to post menu +# Keyboard: or accelerator key to post menu +# +# (In addition, when menu system is active, "dropdown" -- menu posts +# on mouse-over. Ttk menubuttons don't implement this). +# +# For keyboard and popdown mode, we hand off to tk_popup and let +# the built-in Tk bindings handle the rest of the interaction. +# +# ON X11: +# +# Standard Tk menubuttons use a global grab on the menubutton. +# This won't work for Ttk menubuttons in pulldown mode, +# since we need to process the final event, +# and this might be delivered to the menu. So instead we +# rely on the passive grab that occurs on events, +# and transition to popdown mode when the mouse is released +# or dragged outside the menubutton. +# +# ON WINDOWS: +# +# I'm not sure what the hell is going on here. [$menu post] apparently +# sets up some kind of internal grab for native menus. +# On this platform, just use [tk_popup] for all menu actions. +# +# ON MACOS: +# +# Same probably applies here. +# + +namespace eval ttk { + namespace eval menubutton { + variable State + array set State { + pulldown 0 + oldcursor {} + } + } +} + +bind TMenubutton { %W instate !disabled {%W state active } } +bind TMenubutton { %W state !active } +bind TMenubutton { ttk::menubutton::Popdown %W } +bind TMenubutton <> { ttk::menubutton::Popdown %W } + +if {[tk windowingsystem] eq "x11"} { + bind TMenubutton { ttk::menubutton::Pulldown %W } + bind TMenubutton { ttk::menubutton::TransferGrab %W } + bind TMenubutton { ttk::menubutton::TransferGrab %W } +} else { + bind TMenubutton \ + { %W state pressed ; ttk::menubutton::Popdown %W } + bind TMenubutton \ + { %W state !pressed } +} + +# PostPosition -- +# Returns the x and y coordinates where the menu +# should be posted, based on the menubutton and menu size +# and -direction option. +# +# TODO: adjust menu width to be at least as wide as the button +# for -direction above, below. +# +proc ttk::menubutton::PostPosition {mb menu} { + set x [winfo rootx $mb] + set y [winfo rooty $mb] + set dir [$mb cget -direction] + + set bw [winfo width $mb] + set bh [winfo height $mb] + set mw [winfo reqwidth $menu] + set mh [winfo reqheight $menu] + set sw [expr {[winfo screenwidth $menu] - $bw - $mw}] + set sh [expr {[winfo screenheight $menu] - $bh - $mh}] + + switch -- $dir { + above { if {$y >= $mh} { incr y -$mh } { incr y $bh } } + below { if {$y <= $sh} { incr y $bh } { incr y -$mh } } + left { if {$x >= $mw} { incr x -$mw } { incr x $bw } } + right { if {$x <= $sw} { incr x $bw } { incr x -$mw } } + flush { + # post menu atop menubutton. + # If there's a menu entry whose label matches the + # menubutton -text, assume this is an optionmenu + # and place that entry over the menubutton. + set index [FindMenuEntry $menu [$mb cget -text]] + if {$index ne ""} { + incr y -[$menu yposition $index] + } + } + } + + return [list $x $y] +} + +# Popdown -- +# Post the menu and set a grab on the menu. +# +proc ttk::menubutton::Popdown {mb} { + if {[$mb instate disabled] || [set menu [$mb cget -menu]] eq ""} { + return + } + foreach {x y} [PostPosition $mb $menu] { break } + tk_popup $menu $x $y +} + +# Pulldown (X11 only) -- +# Called when Button1 is pressed on a menubutton. +# Posts the menu; a subsequent ButtonRelease +# or Leave event will set a grab on the menu. +# +proc ttk::menubutton::Pulldown {mb} { + variable State + if {[$mb instate disabled] || [set menu [$mb cget -menu]] eq ""} { + return + } + foreach {x y} [PostPosition $mb $menu] { break } + set State(pulldown) 1 + set State(oldcursor) [$mb cget -cursor] + + $mb state pressed + $mb configure -cursor [$menu cget -cursor] + $menu post $x $y + tk_menuSetFocus $menu +} + +# TransferGrab (X11 only) -- +# Switch from pulldown mode (menubutton has an implicit grab) +# to popdown mode (menu has an explicit grab). +# +proc ttk::menubutton::TransferGrab {mb} { + variable State + if {$State(pulldown)} { + $mb configure -cursor $State(oldcursor) + $mb state {!pressed !active} + set State(pulldown) 0 + + set menu [$mb cget -menu] + tk_popup $menu [winfo rootx $menu] [winfo rooty $menu] + } +} + +# FindMenuEntry -- +# Hack to support tk_optionMenus. +# Returns the index of the menu entry with a matching -label, +# -1 if not found. +# +proc ttk::menubutton::FindMenuEntry {menu s} { + set last [$menu index last] + if {$last eq "none"} { + return "" + } + for {set i 0} {$i <= $last} {incr i} { + if {![catch {$menu entrycget $i -label} label] + && ($label eq $s)} { + return $i + } + } + return "" +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/notebook.tcl b/mingw/lib/tk8.5/ttk/notebook.tcl new file mode 100644 index 00000000..4fe58ccd --- /dev/null +++ b/mingw/lib/tk8.5/ttk/notebook.tcl @@ -0,0 +1,192 @@ +# +# $Id: notebook.tcl,v 1.4 2007/02/24 09:15:07 das Exp $ +# +# Bindings for TNotebook widget +# + +namespace eval ttk::notebook { + variable TLNotebooks ;# See enableTraversal +} + +bind TNotebook { ttk::notebook::Press %W %x %y } +bind TNotebook { ttk::notebook::CycleTab %W 1; break } +bind TNotebook { ttk::notebook::CycleTab %W -1; break } +bind TNotebook { ttk::notebook::CycleTab %W 1; break } +bind TNotebook { ttk::notebook::CycleTab %W -1; break } +catch { +bind TNotebook { ttk::notebook::CycleTab %W -1; break } +} +bind TNotebook { ttk::notebook::Cleanup %W } + +# ActivateTab $nb $tab -- +# Select the specified tab and set focus. +# +# If $tab was already the current tab, set the focus to the +# notebook widget. Otherwise, set the focus to the first +# traversable widget in the pane. The behavior is that the +# notebook takes focus when the user selects the same tab +# a second time. This mirrors Windows tab behavior. +# +proc ttk::notebook::ActivateTab {w tab} { + if {[$w index $tab] eq [$w index current]} { + focus $w + } else { + $w select $tab + update ;# needed so focus logic sees correct mapped/unmapped states + if {[set f [ttk::focusFirst [$w select]]] ne ""} { + tk::TabToWindow $f + } + } +} + +# Press $nb $x $y -- +# ButtonPress-1 binding for notebook widgets. +# Activate the tab under the mouse cursor, if any. +# +proc ttk::notebook::Press {w x y} { + set index [$w index @$x,$y] + if {$index ne ""} { + ActivateTab $w $index + } +} + +# CycleTab -- +# Select the next/previous tab in the list. +# +proc ttk::notebook::CycleTab {w dir} { + if {[$w index end] != 0} { + set current [$w index current] + set select [expr {($current + $dir) % [$w index end]}] + while {[$w tab $select -state] != "normal" && ($select != $current)} { + set select [expr {($select + $dir) % [$w index end]}] + } + if {$select != $current} { + ActivateTab $w $select + } + } +} + +# MnemonicTab $nb $key -- +# Scan all tabs in the specified notebook for one with the +# specified mnemonic. If found, returns path name of tab; +# otherwise returns "" +# +proc ttk::notebook::MnemonicTab {nb key} { + set key [string toupper $key] + foreach tab [$nb tabs] { + set label [$nb tab $tab -text] + set underline [$nb tab $tab -underline] + set mnemonic [string toupper [string index $label $underline]] + if {$mnemonic ne "" && $mnemonic eq $key} { + return $tab + } + } + return "" +} + +# +++ Toplevel keyboard traversal. +# + +# enableTraversal -- +# Enable keyboard traversal for a notebook widget +# by adding bindings to the containing toplevel window. +# +# TLNotebooks($top) keeps track of the list of all traversal-enabled +# notebooks contained in the toplevel +# +proc ttk::notebook::enableTraversal {nb} { + variable TLNotebooks + + set top [winfo toplevel $nb] + + if {![info exists TLNotebooks($top)]} { + # Augment $top bindings: + # + bind $top {+ttk::notebook::TLCycleTab %W 1} + bind $top {+ttk::notebook::TLCycleTab %W -1} + catch { + bind $top {+ttk::notebook::TLCycleTab %W -1} + } + if {[tk windowingsystem] eq "aqua"} { + bind $top \ + +[list ttk::notebook::MnemonicActivation $top %K] + } else { + bind $top \ + +[list ttk::notebook::MnemonicActivation $top %K] + } + bind $top {+ttk::notebook::TLCleanup %W} + } + + lappend TLNotebooks($top) $nb +} + +# TLCleanup -- binding for traversal-enabled toplevels +# +proc ttk::notebook::TLCleanup {w} { + variable TLNotebooks + if {$w eq [winfo toplevel $w]} { + unset -nocomplain -please TLNotebooks($w) + } +} + +# Cleanup -- binding for notebooks +# +proc ttk::notebook::Cleanup {nb} { + variable TLNotebooks + set top [winfo toplevel $nb] + if {[info exists TLNotebooks($top)]} { + set index [lsearch -exact $TLNotebooks($top) $nb] + set TLNotebooks($top) [lreplace $TLNotebooks($top) $index $index] + } +} + +# EnclosingNotebook $w -- +# Return the nearest traversal-enabled notebook widget +# that contains $w. +# +# BUGS: this only works properly for tabs that are direct children +# of the notebook widget. This routine should follow the +# geometry manager hierarchy, not window ancestry, but that +# information is not available in Tk. +# +proc ttk::notebook::EnclosingNotebook {w} { + variable TLNotebooks + + set top [winfo toplevel $w] + if {![info exists TLNotebooks($top)]} { return } + + while {$w ne $top && $w ne ""} { + if {[lsearch -exact $TLNotebooks($top) $w] >= 0} { + return $w + } + set w [winfo parent $w] + } + return "" +} + +# TLCycleTab -- +# toplevel binding procedure for Control-Tab / Shift-Control-Tab +# Select the next/previous tab in the nearest ancestor notebook. +# +proc ttk::notebook::TLCycleTab {w dir} { + set nb [EnclosingNotebook $w] + if {$nb ne ""} { + CycleTab $nb $dir + return -code break + } +} + +# MnemonicActivation $nb $key -- +# Alt-KeyPress binding procedure for mnemonic activation. +# Scan all notebooks in specified toplevel for a tab with the +# the specified mnemonic. If found, activate it and return TCL_BREAK. +# +proc ttk::notebook::MnemonicActivation {top key} { + variable TLNotebooks + foreach nb $TLNotebooks($top) { + if {[set tab [MnemonicTab $nb $key]] ne ""} { + ActivateTab $nb [$nb index $tab] + return -code break + } + } +} diff --git a/mingw/lib/tk8.5/ttk/panedwindow.tcl b/mingw/lib/tk8.5/ttk/panedwindow.tcl new file mode 100644 index 00000000..9cb046d3 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/panedwindow.tcl @@ -0,0 +1,87 @@ +# +# $Id: panedwindow.tcl,v 1.4 2007/06/09 21:45:45 jenglish Exp $ +# +# Bindings for ttk::panedwindow widget. +# + +namespace eval ttk::panedwindow { + variable State + array set State { + pressed 0 + pressX - + pressY - + sash - + sashPos - + } +} + +## Bindings: +# +bind TPanedwindow { ttk::panedwindow::Press %W %x %y } +bind TPanedwindow { ttk::panedwindow::Drag %W %x %y } +bind TPanedwindow { ttk::panedwindow::Release %W %x %y } + +bind TPanedwindow { ttk::panedwindow::SetCursor %W %x %y } +bind TPanedwindow { ttk::panedwindow::SetCursor %W %x %y } +bind TPanedwindow { ttk::panedwindow::ResetCursor %W } +# See <> +bind TPanedwindow <> { ttk::panedwindow::ResetCursor %W } + + +## Sash movement: +# +proc ttk::panedwindow::Press {w x y} { + variable State + + set sash [$w identify $x $y] + if {$sash eq ""} { + set State(pressed) 0 + return + } + set State(pressed) 1 + set State(pressX) $x + set State(pressY) $y + set State(sash) $sash + set State(sashPos) [$w sashpos $sash] +} + +proc ttk::panedwindow::Drag {w x y} { + variable State + if {!$State(pressed)} { return } + switch -- [$w cget -orient] { + horizontal { set delta [expr {$x - $State(pressX)}] } + vertical { set delta [expr {$y - $State(pressY)}] } + } + $w sashpos $State(sash) [expr {$State(sashPos) + $delta}] +} + +proc ttk::panedwindow::Release {w x y} { + variable State + set State(pressed) 0 + SetCursor $w $x $y +} + +## Cursor management: +# +proc ttk::panedwindow::ResetCursor {w} { + variable State + if {!$State(pressed)} { + $w configure -cursor {} + } +} + +proc ttk::panedwindow::SetCursor {w x y} { + variable ::ttk::Cursors + + if {![llength [$w identify $x $y]]} { + ResetCursor $w + } else { + # Assume we're over a sash. + switch -- [$w cget -orient] { + horizontal { $w configure -cursor $Cursors(hresize) } + vertical { $w configure -cursor $Cursors(vresize) } + } + } +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/progress.tcl b/mingw/lib/tk8.5/ttk/progress.tcl new file mode 100644 index 00000000..f457bbee --- /dev/null +++ b/mingw/lib/tk8.5/ttk/progress.tcl @@ -0,0 +1,51 @@ +# +# $Id: progress.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ +# +# Ttk widget set: progress bar utilities. +# + +namespace eval ttk::progressbar { + variable Timers ;# Map: widget name -> after ID +} + +# Autoincrement -- +# Periodic callback procedure for autoincrement mode +# +proc ttk::progressbar::Autoincrement {pb steptime stepsize} { + variable Timers + + if {![winfo exists $pb]} { + # widget has been destroyed -- cancel timer + unset -nocomplain Timers($pb) + return + } + + $pb step $stepsize + + set Timers($pb) [after $steptime \ + [list ttk::progressbar::Autoincrement $pb $steptime $stepsize] ] +} + +# ttk::progressbar::start -- +# Start autoincrement mode. Invoked by [$pb start] widget code. +# +proc ttk::progressbar::start {pb {steptime 50} {stepsize 1}} { + variable Timers + if {![info exists Timers($pb)]} { + Autoincrement $pb $steptime $stepsize + } +} + +# ttk::progressbar::stop -- +# Cancel autoincrement mode. Invoked by [$pb stop] widget code. +# +proc ttk::progressbar::stop {pb} { + variable Timers + if {[info exists Timers($pb)]} { + after cancel $Timers($pb) + unset Timers($pb) + } + $pb configure -value 0 +} + + diff --git a/mingw/lib/tk8.5/ttk/scale.tcl b/mingw/lib/tk8.5/ttk/scale.tcl new file mode 100644 index 00000000..2a5cf2e3 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/scale.tcl @@ -0,0 +1,54 @@ +# scale.tcl - Copyright (C) 2004 Pat Thoyts +# +# Bindings for the TScale widget +# +# $Id: scale.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ + +namespace eval ttk::scale { + variable State + array set State { + dragging 0 + } +} + +bind TScale { ttk::scale::Press %W %x %y } +bind TScale { ttk::scale::Drag %W %x %y } +bind TScale { ttk::scale::Release %W %x %y } + +proc ttk::scale::Press {w x y} { + variable State + set State(dragging) 0 + + switch -glob -- [$w identify $x $y] { + *track - + *trough { + if {[$w get $x $y] <= [$w get]} { + ttk::Repeatedly Increment $w -1 + } else { + ttk::Repeatedly Increment $w 1 + } + } + *slider { + set State(dragging) 1 + set State(initial) [$w get] + } + } +} + +proc ttk::scale::Drag {w x y} { + variable State + if {$State(dragging)} { + $w set [$w get $x $y] + } +} + +proc ttk::scale::Release {w x y} { + variable State + set State(dragging) 0 + ttk::CancelRepeat +} + +proc ttk::scale::Increment {w delta} { + if {![winfo exists $w]} return + $w set [expr {[$w get] + $delta}] +} diff --git a/mingw/lib/tk8.5/ttk/scrollbar.tcl b/mingw/lib/tk8.5/ttk/scrollbar.tcl new file mode 100644 index 00000000..6b37b24e --- /dev/null +++ b/mingw/lib/tk8.5/ttk/scrollbar.tcl @@ -0,0 +1,107 @@ +# +# $Id: scrollbar.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ +# +# Bindings for TScrollbar widget +# + +namespace eval ttk::scrollbar { + variable State + # State(xPress) -- + # State(yPress) -- initial position of mouse at start of drag. + # State(first) -- value of -first at start of drag. +} + +bind TScrollbar { ttk::scrollbar::Press %W %x %y } +bind TScrollbar { ttk::scrollbar::Drag %W %x %y } +bind TScrollbar { ttk::scrollbar::Release %W %x %y } + +bind TScrollbar { ttk::scrollbar::Jump %W %x %y } +bind TScrollbar { ttk::scrollbar::Drag %W %x %y } +bind TScrollbar { ttk::scrollbar::Release %W %x %y } + +proc ttk::scrollbar::Scroll {w n units} { + set cmd [$w cget -command] + if {$cmd ne ""} { + uplevel #0 $cmd scroll $n $units + } +} + +proc ttk::scrollbar::Moveto {w fraction} { + set cmd [$w cget -command] + if {$cmd ne ""} { + uplevel #0 $cmd moveto $fraction + } +} + +proc ttk::scrollbar::Press {w x y} { + variable State + + set State(xPress) $x + set State(yPress) $y + + switch -glob -- [$w identify $x $y] { + *uparrow - + *leftarrow { + ttk::Repeatedly Scroll $w -1 units + } + *downarrow - + *rightarrow { + ttk::Repeatedly Scroll $w 1 units + } + *thumb { + set State(first) [lindex [$w get] 0] + } + *trough { + set f [$w fraction $x $y] + if {$f < [lindex [$w get] 0]} { + # Clicked in upper/left trough + ttk::Repeatedly Scroll $w -1 pages + } elseif {$f > [lindex [$w get] 1]} { + # Clicked in lower/right trough + ttk::Repeatedly Scroll $w 1 pages + } else { + # Clicked on thumb (???) + set State(first) [lindex [$w get] 0] + } + } + } +} + +proc ttk::scrollbar::Drag {w x y} { + variable State + if {![info exists State(first)]} { + # Initial buttonpress was not on the thumb, + # or something screwy has happened. In either case, ignore: + return; + } + set xDelta [expr {$x - $State(xPress)}] + set yDelta [expr {$y - $State(yPress)}] + Moveto $w [expr {$State(first) + [$w delta $xDelta $yDelta]}] +} + +proc ttk::scrollbar::Release {w x y} { + variable State + unset -nocomplain State(xPress) State(yPress) State(first) + ttk::CancelRepeat +} + +# scrollbar::Jump -- ButtonPress-2 binding for scrollbars. +# Behaves exactly like scrollbar::Press, except that +# clicking in the trough jumps to the the selected position. +# +proc ttk::scrollbar::Jump {w x y} { + variable State + + switch -glob -- [$w identify $x $y] { + *thumb - + *trough { + set State(first) [$w fraction $x $y] + Moveto $w $State(first) + set State(xPress) $x + set State(yPress) $y + } + default { + Press $w $x $y + } + } +} diff --git a/mingw/lib/tk8.5/ttk/sizegrip.tcl b/mingw/lib/tk8.5/ttk/sizegrip.tcl new file mode 100644 index 00000000..f1b87b18 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/sizegrip.tcl @@ -0,0 +1,77 @@ +# +# $Id: sizegrip.tcl,v 1.1 2006/10/31 01:42:27 hobbs Exp $ +# +# Ttk widget set -- sizegrip widget bindings. +# +# Dragging a sizegrip widget resizes the containing toplevel. +# +# NOTE: the sizegrip widget must be in the lower right hand corner. +# + +option add *TSizegrip.cursor $::ttk::Cursors(seresize) + +namespace eval ttk::sizegrip { + variable State + array set State { + pressed 0 + pressX 0 + pressY 0 + width 0 + height 0 + widthInc 1 + heightInc 1 + toplevel {} + } +} + +bind TSizegrip { ttk::sizegrip::Press %W %X %Y } +bind TSizegrip { ttk::sizegrip::Drag %W %X %Y } +bind TSizegrip { ttk::sizegrip::Release %W %X %Y } + +proc ttk::sizegrip::Press {W X Y} { + variable State + + set top [winfo toplevel $W] + + # Sanity-checks: + # If a negative X or Y position was specified for [wm geometry], + # just bail out -- there's no way to handle this cleanly. + # + if {[scan [wm geometry $top] "%dx%d+%d+%d" width height _x _y] != 4} { + return; + } + + # Account for gridded geometry: + # + set grid [wm grid $top] + if {[llength $grid]} { + set State(widthInc) [lindex $grid 2] + set State(heightInc) [lindex $grid 3] + } else { + set State(widthInc) [set State(heightInc) 1] + } + + set State(toplevel) $top + set State(pressX) $X + set State(pressY) $Y + set State(width) $width + set State(height) $height + set State(pressed) 1 +} + +proc ttk::sizegrip::Drag {W X Y} { + variable State + if {!$State(pressed)} { return } + set w [expr {$State(width) + ($X - $State(pressX))/$State(widthInc)}] + set h [expr {$State(height) + ($Y - $State(pressY))/$State(heightInc)}] + if {$w <= 0} { set w 1 } + if {$h <= 0} { set h 1 } + wm geometry $State(toplevel) ${w}x${h} +} + +proc ttk::sizegrip::Release {W X Y} { + variable State + set State(pressed) 0 +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/treeview.tcl b/mingw/lib/tk8.5/ttk/treeview.tcl new file mode 100644 index 00000000..3ccb7468 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/treeview.tcl @@ -0,0 +1,382 @@ +# $Id: treeview.tcl,v 1.2 2006/12/18 19:33:14 jenglish Exp $ +# +# ttk::treeview widget bindings and utilities. +# + +namespace eval ttk::treeview { + variable State + + # Enter/Leave/Motion + # + set State(activeWidget) {} + set State(activeHeading) {} + + # Press/drag/release: + # + set State(pressMode) none + set State(pressX) 0 + + # For pressMode == "resize" + set State(resizeColumn) #0 + + # For pressmode == "heading" + set State(heading) {} + + # Provide [lassign] if not already present + # (@@@ TODO: check if this is still needed after horrible-identify purge) + # + if {![llength [info commands lassign]]} { + proc lassign {vals args} { + uplevel 1 [list foreach $args $vals break] + } + } +} + +### Widget bindings. +# + +bind Treeview { ttk::treeview::Motion %W %x %y } +bind Treeview { #nothing } +bind Treeview { ttk::treeview::ActivateHeading {} {}} +bind Treeview { ttk::treeview::Press %W %x %y } +bind Treeview { ttk::treeview::DoubleClick %W %x %y } +bind Treeview { ttk::treeview::Release %W %x %y } +bind Treeview { ttk::treeview::Drag %W %x %y } +bind Treeview { ttk::treeview::Keynav %W up } +bind Treeview { ttk::treeview::Keynav %W down } +bind Treeview { ttk::treeview::Keynav %W right } +bind Treeview { ttk::treeview::Keynav %W left } +bind Treeview { %W yview scroll -1 pages } +bind Treeview { %W yview scroll 1 pages } +bind Treeview { ttk::treeview::ToggleFocus %W } +bind Treeview { ttk::treeview::ToggleFocus %W } + +bind Treeview \ + { ttk::treeview::Select %W %x %y extend } +bind Treeview \ + { ttk::treeview::Select %W %x %y toggle } + +# Standard mousewheel bindings: +# +bind Treeview { %W yview scroll [expr {- (%D / 120) * 4}] units } +if {[string equal "x11" [tk windowingsystem]]} { + bind Treeview { %W yview scroll -5 units } + bind Treeview { %W yview scroll 5 units } +} + +### Binding procedures. +# + +## Keynav -- Keyboard navigation +# +# @@@ TODO: verify/rewrite up and down code. +# +proc ttk::treeview::Keynav {w dir} { + set focus [$w focus] + if {$focus eq ""} { return } + + switch -- $dir { + up { + if {[set up [$w prev $focus]] eq ""} { + set focus [$w parent $focus] + } else { + while {[$w item $up -open] && [llength [$w children $up]]} { + set up [lindex [$w children $up] end] + } + set focus $up + } + } + down { + if {[$w item $focus -open] && [llength [$w children $focus]]} { + set focus [lindex [$w children $focus] 0] + } else { + set up $focus + while {$up ne "" && [set down [$w next $up]] eq ""} { + set up [$w parent $up] + } + set focus $down + } + } + left { + if {[$w item $focus -open] && [llength [$w children $focus]]} { + CloseItem $w $focus + } else { + set focus [$w parent $focus] + } + } + right { + OpenItem $w $focus + } + } + + if {$focus != {}} { + SelectOp $w $focus choose + } +} + +## Motion -- pointer motion binding. +# Sets cursor, active element ... +# +proc ttk::treeview::Motion {w x y} { + variable ::ttk::Cursors + variable State + + set cursor {} + set activeHeading {} + + lassign [$w identify $x $y] what where detail + switch -- $what { + separator { set cursor $Cursors(hresize) } + heading { set activeHeading $where } + } + + if {[$w cget -cursor] ne $cursor} { + $w configure -cursor $cursor + } + ActivateHeading $w $activeHeading +} + +## ActivateHeading -- track active heading element +# +proc ttk::treeview::ActivateHeading {w heading} { + variable State + + if {$w != $State(activeWidget) || $heading != $State(activeHeading)} { + if {$State(activeHeading) != {}} { + $State(activeWidget) heading $State(activeHeading) state !active + } + if {$heading != {}} { + $w heading $heading state active + } + set State(activeHeading) $heading + set State(activeWidget) $w + } +} + +## Select $w $x $y $selectop +# Binding procedure for selection operations. +# See "Selection modes", below. +# +proc ttk::treeview::Select {w x y op} { + if {[set item [$w identify row $x $y]] ne "" } { + SelectOp $w $item $op + } +} + +## DoubleClick -- Double-ButtonPress-1 binding. +# +proc ttk::treeview::DoubleClick {w x y} { + if {[set row [$w identify row $x $y]] ne ""} { + Toggle $w $row + } else { + Press $w $x $y ;# perform single-click action + } +} + +## Press -- ButtonPress binding. +# +proc ttk::treeview::Press {w x y} { + lassign [$w identify $x $y] what where detail + focus $w ;# or: ClickToFocus? + + switch -- $what { + nothing { } + heading { heading.press $w $where } + separator { resize.press $w $x $where } + cell - + row - + item { SelectOp $w $where choose } + } + if {$what eq "item" && [string match *indicator $detail]} { + Toggle $w $where + } +} + +## Drag -- B1-Motion binding +# +proc ttk::treeview::Drag {w x y} { + variable State + switch $State(pressMode) { + resize { resize.drag $w $x } + heading { heading.drag $w $x $y } + } +} + +proc ttk::treeview::Release {w x y} { + variable State + switch $State(pressMode) { + resize { resize.release $w $x } + heading { heading.release $w } + } + set State(pressMode) none + Motion $w $x $y +} + +### Interactive column resizing. +# +proc ttk::treeview::resize.press {w x column} { + variable State + set State(pressMode) "resize" + set State(resizeColumn) $column +} + +proc ttk::treeview::resize.drag {w x} { + variable State + $w drag $State(resizeColumn) $x +} + +proc ttk::treeview::resize.release {w x} { + # no-op +} + +### Heading activation. +# + +proc ttk::treeview::heading.press {w column} { + variable State + set State(pressMode) "heading" + set State(heading) $column + $w heading $column state pressed +} + +proc ttk::treeview::heading.drag {w x y} { + variable State + lassign [$w identify $x $y] what where detail + if {$what eq "heading" && $where eq $State(heading)} { + $w heading $State(heading) state pressed + } else { + $w heading $State(heading) state !pressed + } +} + +proc ttk::treeview::heading.release {w} { + variable State + if {[lsearch -exact [$w heading $State(heading) state] pressed] >= 0} { + after idle [$w heading $State(heading) -command] + } + $w heading $State(heading) state !pressed +} + +### Selection modes. +# + +## SelectOp $w $item [ choose | extend | toggle ] -- +# Dispatch to appropriate selection operation +# depending on current value of -selectmode. +# +proc ttk::treeview::SelectOp {w item op} { + select.$op.[$w cget -selectmode] $w $item +} + +## -selectmode none: +# +proc ttk::treeview::select.choose.none {w item} { $w focus $item } +proc ttk::treeview::select.toggle.none {w item} { $w focus $item } +proc ttk::treeview::select.extend.none {w item} { $w focus $item } + +## -selectmode browse: +# +proc ttk::treeview::select.choose.browse {w item} { BrowseTo $w $item } +proc ttk::treeview::select.toggle.browse {w item} { BrowseTo $w $item } +proc ttk::treeview::select.extend.browse {w item} { BrowseTo $w $item } + +## -selectmode multiple: +# +proc ttk::treeview::select.choose.extended {w item} { + BrowseTo $w $item +} +proc ttk::treeview::select.toggle.extended {w item} { + $w selection toggle $item +} +proc ttk::treeview::select.extend.extended {w item} { + if {[set anchor [$w focus]] ne ""} { + $w selection set [between $w $anchor $item] + } else { + BrowseTo $item + } +} + +### Tree structure utilities. +# + +## between $tv $item1 $item2 -- +# Returns a list of all items between $item1 and $item2, +# in preorder traversal order. $item1 and $item2 may be +# in either order. +# +# NOTES: +# This routine is O(N) in the size of the tree. +# There's probably a way to do this that's O(N) in the number +# of items returned, but I'm not clever enough to figure it out. +# +proc ttk::treeview::between {tv item1 item2} { + variable between [list] + variable selectingBetween 0 + ScanBetween $tv $item1 $item2 {} + return $between +} + +## ScanBetween -- +# Recursive worker routine for ttk::treeview::between +# +proc ttk::treeview::ScanBetween {tv item1 item2 item} { + variable between + variable selectingBetween + + if {$item eq $item1 || $item eq $item2} { + lappend between $item + set selectingBetween [expr {!$selectingBetween}] + } elseif {$selectingBetween} { + lappend between $item + } + foreach child [$tv children $item] { + ScanBetween $tv $item1 $item2 $child + } +} + +### User interaction utilities. +# + +## OpenItem, CloseItem -- Set the open state of an item, generate event +# + +proc ttk::treeview::OpenItem {w item} { + $w focus $item + event generate $w <> + $w item $item -open true +} + +proc ttk::treeview::CloseItem {w item} { + $w item $item -open false + $w focus $item + event generate $w <> +} + +## Toggle -- toggle opened/closed state of item +# +proc ttk::treeview::Toggle {w item} { + if {[$w item $item -open]} { + CloseItem $w $item + } else { + OpenItem $w $item + } +} + +## ToggleFocus -- toggle opened/closed state of focus item +# +proc ttk::treeview::ToggleFocus {w} { + set item [$w focus] + if {$item ne ""} { + Toggle $w $item + } +} + +## BrowseTo -- navigate to specified item; set focus and selection +# +proc ttk::treeview::BrowseTo {w item} { + $w see $item + $w focus $item + $w selection set [list $item] +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/ttk.tcl b/mingw/lib/tk8.5/ttk/ttk.tcl new file mode 100644 index 00000000..fd8d8cd0 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/ttk.tcl @@ -0,0 +1,172 @@ +# +# $Id: ttk.tcl,v 1.7 2007/06/21 00:29:16 hobbs Exp $ +# +# Ttk widget set initialization script. +# + +### Source library scripts. +# + +namespace eval ::ttk { + variable library + if {![info exists library]} { + set library [file dirname [info script]] + } +} + +source [file join $::ttk::library fonts.tcl] +source [file join $::ttk::library cursors.tcl] +source [file join $::ttk::library utils.tcl] + +## ttk::deprecated $old $new -- +# Define $old command as a deprecated alias for $new command +# $old and $new must be fully namespace-qualified. +# +proc ttk::deprecated {old new} { + interp alias {} $old {} ttk::do'deprecate $old $new +} +## do'deprecate -- +# Implementation procedure for deprecated commands -- +# issue a warning (once), then re-alias old to new. +# +proc ttk::do'deprecate {old new args} { + deprecated'warning $old $new + interp alias {} $old {} $new + uplevel 1 [linsert $args 0 $new] +} + +## deprecated'warning -- +# Gripe about use of deprecated commands. +# +proc ttk::deprecated'warning {old new} { + puts stderr "$old deprecated -- use $new instead" +} + +### Backward-compatibility. +# + +package ifneeded tile 0.8.0 { package require Tk ; package provide tile 0.8.0 } + +# ttk::panedwindow used to be named ttk::paned. Keep the alias for now. +# +::ttk::deprecated ::ttk::paned ::ttk::panedwindow + +### ::ttk::ThemeChanged -- +# Called from [::ttk::style theme use]. +# Sends a <> virtual event to all widgets. +# +proc ::ttk::ThemeChanged {} { + set Q . + while {[llength $Q]} { + set QN [list] + foreach w $Q { + event generate $w <> + foreach child [winfo children $w] { + lappend QN $child + } + } + set Q $QN + } +} + +### Public API. +# + +proc ::ttk::themes {{ptn *}} { + set themes [list] + + foreach pkg [lsearch -inline -all -glob [package names] ttk::theme::$ptn] { + lappend themes [namespace tail $pkg] + } + + return $themes +} + +## ttk::setTheme $theme -- +# Set the current theme to $theme, loading it if necessary. +# +proc ::ttk::setTheme {theme} { + variable currentTheme ;# @@@ Temp -- [::ttk::style theme use] doesn't work + if {$theme ni [::ttk::style theme names]} { + package require ttk::theme::$theme + } + ::ttk::style theme use $theme + set currentTheme $theme +} + +### Load widget bindings. +# +source [file join $::ttk::library button.tcl] +source [file join $::ttk::library menubutton.tcl] +source [file join $::ttk::library scrollbar.tcl] +source [file join $::ttk::library scale.tcl] +source [file join $::ttk::library progress.tcl] +source [file join $::ttk::library notebook.tcl] +source [file join $::ttk::library panedwindow.tcl] +source [file join $::ttk::library entry.tcl] +source [file join $::ttk::library combobox.tcl] ;# dependency: entry.tcl +source [file join $::ttk::library treeview.tcl] +source [file join $::ttk::library sizegrip.tcl] + +## Label and Labelframe bindings: +# (not enough to justify their own file...) +# +bind TLabelframe <> { tk::TabToWindow [tk_focusNext %W] } +bind TLabel <> { tk::TabToWindow [tk_focusNext %W] } + +### Load settings for built-in themes: +# +proc ttk::LoadThemes {} { + variable library + + # "default" always present: + uplevel #0 [list source [file join $library defaults.tcl]] + + set builtinThemes [style theme names] + foreach {theme script} { + classic classicTheme.tcl + alt altTheme.tcl + clam clamTheme.tcl + winnative winTheme.tcl + xpnative xpTheme.tcl + aqua aquaTheme.tcl + } { + if {[lsearch -exact $builtinThemes $theme] >= 0} { + uplevel #0 [list source [file join $library $script]] + } + } +} + +ttk::LoadThemes; rename ::ttk::LoadThemes {} + +### Select platform-specific default theme: +# +# Notes: +# + On OSX, aqua theme is the default +# + On Windows, xpnative takes precedence over winnative if available. +# + On X11, users can use the X resource database to +# specify a preferred theme (*TkTheme: themeName); +# otherwise "default" is used. +# + +proc ttk::DefaultTheme {} { + set preferred [list aqua xpnative winnative] + + set userTheme [option get . tkTheme TkTheme] + if {$userTheme != {} && ![catch { + uplevel #0 [list package require ttk::theme::$userTheme] + }]} { + return $userTheme + } + + foreach theme $preferred { + if {[package provide ttk::theme::$theme] != ""} { + return $theme + } + } + return "default" +} + +ttk::setTheme [ttk::DefaultTheme] ; rename ttk::DefaultTheme {} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/utils.tcl b/mingw/lib/tk8.5/ttk/utils.tcl new file mode 100644 index 00000000..1f21f261 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/utils.tcl @@ -0,0 +1,254 @@ +# +# $Id: utils.tcl,v 1.4 2007/10/22 03:35:14 jenglish Exp $ +# +# Utilities for widget implementations. +# + +### Focus management. +# + +## ttk::takefocus -- +# This is the default value of the "-takefocus" option +# for widgets that participate in keyboard navigation. +# +# See also: tk::FocusOK +# +proc ttk::takefocus {w} { + expr {[$w instate !disabled] && [winfo viewable $w]} +} + +## ttk::traverseTo $w -- +# Set the keyboard focus to the specified window. +# +proc ttk::traverseTo {w} { + set focus [focus] + if {$focus ne ""} { + event generate $focus <> + } + focus $w + event generate $w <> +} + +## ttk::clickToFocus $w -- +# Utility routine, used in bindings -- +# Assign keyboard focus to the specified widget if -takefocus is enabled. +# +proc ttk::clickToFocus {w} { + if {[ttk::takesFocus $w]} { focus $w } +} + +## ttk::takesFocus w -- +# Test if the widget can take keyboard focus: +# +# + widget is viewable, AND: +# - if -takefocus is missing or empty, return 0, OR +# - if -takefocus is 0 or 1, return that value, OR +# - append the widget name to -takefocus and evaluate it +# as a script. +# +# See also: tk::FocusOK +# +# Note: This routine doesn't implement the same fallback heuristics +# as tk::FocusOK. +# +proc ttk::takesFocus {w} { + + if {![winfo viewable $w]} { return 0 } + + if {![catch {$w cget -takefocus} takefocus]} { + switch -- $takefocus { + 0 - + 1 { return $takefocus } + "" { return 0 } + default { + set value [uplevel #0 $takefocus [list $w]] + return [expr {$value eq 1}] + } + } + } + + return 0 +} + +## ttk::focusFirst $w -- +# Return the first descendant of $w, in preorder traversal order, +# that can take keyboard focus, "" if none do. +# +# See also: tk_focusNext +# + +proc ttk::focusFirst {w} { + if {[ttk::takesFocus $w]} { + return $w + } + foreach child [winfo children $w] { + if {[set c [ttk::focusFirst $child]] ne ""} { + return $c + } + } + return "" +} + +### Grabs. +# +# Rules: +# Each call to [grabWindow $w] or [globalGrab $w] must be +# matched with a call to [releaseGrab $w] in LIFO order. +# +# Do not call [grabWindow $w] for a window that currently +# appears on the grab stack. +# +# See #1239190 and #1411983 for more discussion. +# +namespace eval ttk { + variable Grab ;# map: window name -> grab token + + # grab token details: + # Two-element list containing: + # 1) a script to evaluate to restore the previous grab (if any); + # 2) a script to evaluate to restore the focus (if any) +} + +## SaveGrab -- +# Record current grab and focus windows. +# +proc ttk::SaveGrab {w} { + variable Grab + + if {[info exists Grab($w)]} { + # $w is already on the grab stack. + # This should not happen, but bail out in case it does anyway: + # + return + } + + set restoreGrab [set restoreFocus ""] + + set grabbed [grab current $w] + if {[winfo exists $grabbed]} { + switch [grab status $grabbed] { + global { set restoreGrab [list grab -global $grabbed] } + local { set restoreGrab [list grab $grabbed] } + none { ;# grab window is really in a different interp } + } + } + + set focus [focus] + if {$focus ne ""} { + set restoreFocus [list focus -force $focus] + } + + set Grab($w) [list $restoreGrab $restoreFocus] +} + +## RestoreGrab -- +# Restore previous grab and focus windows. +# If called more than once without an intervening [SaveGrab $w], +# does nothing. +# +proc ttk::RestoreGrab {w} { + variable Grab + + if {![info exists Grab($w)]} { # Ignore + return; + } + + # The previous grab/focus window may have been destroyed, + # unmapped, or some other abnormal condition; ignore any errors. + # + foreach script $Grab($w) { + catch $script + } + + unset Grab($w) +} + +## ttk::grabWindow $w -- +# Records the current focus and grab windows, sets an application-modal +# grab on window $w. +# +proc ttk::grabWindow {w} { + SaveGrab $w + grab $w +} + +## ttk::globalGrab $w -- +# Same as grabWindow, but sets a global grab on $w. +# +proc ttk::globalGrab {w} { + SaveGrab $w + grab -global $w +} + +## ttk::releaseGrab -- +# Release the grab previously set by [ttk::grabWindow] +# or [ttk::globalGrab]. +# +proc ttk::releaseGrab {w} { + grab release $w + RestoreGrab $w +} + +### Auto-repeat. +# +# NOTE: repeating widgets do not have -repeatdelay +# or -repeatinterval resources as in standard Tk; +# instead a single set of settings is applied application-wide. +# (TODO: make this user-configurable) +# +# (@@@ Windows seems to use something like 500/50 milliseconds +# @@@ for -repeatdelay/-repeatinterval) +# + +namespace eval ttk { + variable Repeat + array set Repeat { + delay 300 + interval 100 + timer {} + script {} + } +} + +## ttk::Repeatedly -- +# Begin auto-repeat. +# +proc ttk::Repeatedly {args} { + variable Repeat + after cancel $Repeat(timer) + set script [uplevel 1 [list namespace code $args]] + set Repeat(script) $script + uplevel #0 $script + set Repeat(timer) [after $Repeat(delay) ttk::Repeat] +} + +## Repeat -- +# Continue auto-repeat +# +proc ttk::Repeat {} { + variable Repeat + uplevel #0 $Repeat(script) + set Repeat(timer) [after $Repeat(interval) ttk::Repeat] +} + +## ttk::CancelRepeat -- +# Halt auto-repeat. +# +proc ttk::CancelRepeat {} { + variable Repeat + after cancel $Repeat(timer) +} + +### Miscellaneous. +# + +## ttk::copyBindings $from $to -- +# Utility routine; copies bindings from one bindtag onto another. +# +proc ttk::copyBindings {from to} { + foreach event [bind $from] { + bind $to $event [bind $from $event] + } +} + +#*EOF* diff --git a/mingw/lib/tk8.5/ttk/winTheme.tcl b/mingw/lib/tk8.5/ttk/winTheme.tcl new file mode 100644 index 00000000..bd9696b0 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/winTheme.tcl @@ -0,0 +1,76 @@ +# +# $Id: winTheme.tcl,v 1.4 2007/10/16 21:00:15 jenglish Exp $ +# +# Settings for 'winnative' theme. +# + +namespace eval ttk::theme::winnative { + ttk::style theme settings winnative { + + ttk::style configure "." \ + -background SystemButtonFace \ + -foreground SystemWindowText \ + -selectforeground SystemHighlightText \ + -selectbackground SystemHighlight \ + -troughcolor SystemScrollbar \ + -font TkDefaultFont \ + ; + + ttk::style map "." -foreground [list disabled SystemGrayText] ; + ttk::style map "." -embossed [list disabled 1] ; + + ttk::style configure TButton -width -11 -relief raised -shiftrelief 1 + ttk::style configure TCheckbutton -padding "2 4" + ttk::style configure TRadiobutton -padding "2 4" + ttk::style configure TMenubutton \ + -padding "8 4" -arrowsize 3 -relief raised -anchor w + + ttk::style map TButton -relief {{!disabled pressed} sunken} + + ttk::style configure TEntry \ + -padding 2 -selectborderwidth 0 -insertwidth 1 + ttk::style map TEntry \ + -fieldbackground \ + [list readonly SystemButtonFace disabled SystemButtonFace] \ + -selectbackground [list !focus SystemWindow] \ + -selectforeground [list !focus SystemWindowText] \ + ; + + ttk::style configure TCombobox -padding 2 + ttk::style map TCombobox \ + -selectbackground [list !focus SystemWindow] \ + -selectforeground [list !focus SystemWindowText] \ + -foreground [list {readonly focus} SystemHighlightText] \ + -focusfill [list {readonly focus} SystemHighlight] \ + ; + + ttk::style configure TLabelframe -borderwidth 2 -relief groove + + ttk::style configure Toolbutton -relief flat -padding {8 4} + ttk::style map Toolbutton -relief \ + {disabled flat selected sunken pressed sunken active raised} + + ttk::style configure TScale -groovewidth 4 + + ttk::style configure TNotebook -tabmargins {2 2 2 0} + ttk::style configure TNotebook.Tab -padding {3 1} -borderwidth 1 + ttk::style map TNotebook.Tab -expand [list selected {2 2 2 0}] + + # Treeview: + ttk::style configure Heading -font TkHeadingFont -relief raised + ttk::style configure Row -background SystemWindow + ttk::style configure Cell -background SystemWindow + ttk::style map Row \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + ttk::style map Cell \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + ttk::style map Item \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + + ttk::style configure TProgressbar \ + -background SystemHighlight -borderwidth 0 ; + } +} diff --git a/mingw/lib/tk8.5/ttk/xpTheme.tcl b/mingw/lib/tk8.5/ttk/xpTheme.tcl new file mode 100644 index 00000000..44a50876 --- /dev/null +++ b/mingw/lib/tk8.5/ttk/xpTheme.tcl @@ -0,0 +1,64 @@ +# +# $Id: xpTheme.tcl,v 1.4 2007/10/16 21:00:15 jenglish Exp $ +# +# Settings for 'xpnative' theme +# + +namespace eval ttk::theme::xpnative { + + ttk::style theme settings xpnative { + + ttk::style configure . \ + -background SystemButtonFace \ + -foreground SystemWindowText \ + -selectforeground SystemHighlightText \ + -selectbackground SystemHighlight \ + -font TkDefaultFont \ + ; + + ttk::style map "." \ + -foreground [list disabled SystemGrayText] \ + ; + + ttk::style configure TButton -padding {1 1} -width -11 + ttk::style configure TRadiobutton -padding 2 + ttk::style configure TCheckbutton -padding 2 + ttk::style configure TMenubutton -padding {8 4} -anchor w + + ttk::style configure TNotebook -tabmargins {2 2 2 0} + ttk::style map TNotebook.Tab \ + -expand [list selected {2 2 2 2}] + + # Treeview: + ttk::style configure Heading -font TkHeadingFont + ttk::style configure Row -background SystemWindow + ttk::style configure Cell -background SystemWindow + ttk::style map Row \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + ttk::style map Cell \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + ttk::style map Item \ + -background [list selected SystemHighlight] \ + -foreground [list selected SystemHighlightText] ; + + ttk::style configure TLabelframe -foreground "#0046d5" + + # OR: -padding {3 3 3 6}, which some apps seem to use. + ttk::style configure TEntry -padding {2 2 2 4} + ttk::style map TEntry \ + -selectbackground [list !focus SystemWindow] \ + -selectforeground [list !focus SystemWindowText] \ + ; + ttk::style configure TCombobox -padding 2 + ttk::style map TCombobox \ + -selectbackground [list !focus SystemWindow] \ + -selectforeground [list !focus SystemWindowText] \ + -foreground [list {readonly focus} SystemHighlightText] \ + -focusfill [list {readonly focus} SystemHighlight] \ + ; + + ttk::style configure Toolbutton -padding {4 4} + } +} diff --git a/mingw/lib/tk8.5/unsupported.tcl b/mingw/lib/tk8.5/unsupported.tcl new file mode 100644 index 00000000..32e0a9ef --- /dev/null +++ b/mingw/lib/tk8.5/unsupported.tcl @@ -0,0 +1,297 @@ +# unsupported.tcl -- +# +# Commands provided by Tk without official support. Use them at your +# own risk. They may change or go away without notice. +# +# RCS: @(#) $Id: unsupported.tcl,v 1.5 2005/11/25 15:58:15 dkf Exp $ +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +# ---------------------------------------------------------------------- +# Unsupported compatibility interface for folks accessing Tk's private +# commands and variable against recommended usage. +# ---------------------------------------------------------------------- + +namespace eval ::tk::unsupported { + + # Map from the old global names of Tk private commands to their + # new namespace-encapsulated names. + + variable PrivateCommands + array set PrivateCommands { + tkButtonAutoInvoke ::tk::ButtonAutoInvoke + tkButtonDown ::tk::ButtonDown + tkButtonEnter ::tk::ButtonEnter + tkButtonInvoke ::tk::ButtonInvoke + tkButtonLeave ::tk::ButtonLeave + tkButtonUp ::tk::ButtonUp + tkCancelRepeat ::tk::CancelRepeat + tkCheckRadioDown ::tk::CheckRadioDown + tkCheckRadioEnter ::tk::CheckRadioEnter + tkCheckRadioInvoke ::tk::CheckRadioInvoke + tkColorDialog ::tk::dialog::color:: + tkColorDialog_BuildDialog ::tk::dialog::color::BuildDialog + tkColorDialog_CancelCmd ::tk::dialog::color::CancelCmd + tkColorDialog_Config ::tk::dialog::color::Config + tkColorDialog_CreateSelector ::tk::dialog::color::CreateSelector + tkColorDialog_DrawColorScale ::tk::dialog::color::DrawColorScale + tkColorDialog_EnterColorBar ::tk::dialog::color::EnterColorBar + tkColorDialog_InitValues ::tk::dialog::color::InitValues + tkColorDialog_HandleRGBEntry ::tk::dialog::color::HandleRGBEntry + tkColorDialog_HandleSelEntry ::tk::dialog::color::HandleSelEntry + tkColorDialog_LeaveColorBar ::tk::dialog::color::LeaveColorBar + tkColorDialog_MoveSelector ::tk::dialog::color::MoveSelector + tkColorDialog_OkCmd ::tk::dialog::color::OkCmd + tkColorDialog_RedrawColorBars ::tk::dialog::color::RedrawColorBars + tkColorDialog_RedrawFinalColor ::tk::dialog::color::RedrawFinalColor + tkColorDialog_ReleaseMouse ::tk::dialog::color::ReleaseMouse + tkColorDialog_ResizeColorBars ::tk::dialog::color::ResizeColorBars + tkColorDialog_RgbToX ::tk::dialog::color::RgbToX + tkColorDialog_SetRGBValue ::tk::dialog::color::SetRGBValue + tkColorDialog_StartMove ::tk::dialog::color::StartMove + tkColorDialog_XToRgb ::tk::dialog::color::XToRGB + tkConsoleAbout ::tk::ConsoleAbout + tkConsoleBind ::tk::ConsoleBind + tkConsoleExit ::tk::ConsoleExit + tkConsoleHistory ::tk::ConsoleHistory + tkConsoleInit ::tk::ConsoleInit + tkConsoleInsert ::tk::ConsoleInsert + tkConsoleInvoke ::tk::ConsoleInvoke + tkConsoleOutput ::tk::ConsoleOutput + tkConsolePrompt ::tk::ConsolePrompt + tkConsoleSource ::tk::ConsoleSource + tkDarken ::tk::Darken + tkEntryAutoScan ::tk::EntryAutoScan + tkEntryBackspace ::tk::EntryBackspace + tkEntryButton1 ::tk::EntryButton1 + tkEntryClosestGap ::tk::EntryClosestGap + tkEntryGetSelection ::tk::EntryGetSelection + tkEntryInsert ::tk::EntryInsert + tkEntryKeySelect ::tk::EntryKeySelect + tkEntryMouseSelect ::tk::EntryMouseSelect + tkEntryNextWord ::tk::EntryNextWord + tkEntryPaste ::tk::EntryPaste + tkEntryPreviousWord ::tk::EntryPreviousWord + tkEntrySeeInsert ::tk::EntrySeeInsert + tkEntrySetCursor ::tk::EntrySetCursor + tkEntryTranspose ::tk::EntryTranspose + tkEventMotifBindings ::tk::EventMotifBindings + tkFDGetFileTypes ::tk::FDGetFileTypes + tkFirstMenu ::tk::FirstMenu + tkFocusGroup_BindIn ::tk::FocusGroup_BindIn + tkFocusGroup_BindOut ::tk::FocusGroup_BindOut + tkFocusGroup_Create ::tk::FocusGroup_Create + tkFocusGroup_Destroy ::tk::FocusGroup_Destroy + tkFocusGroup_In ::tk::FocusGroup_In + tkFocusGroup_Out ::tk::FocusGroup_Out + tkFocusOK ::tk::FocusOK + tkGenerateMenuSelect ::tk::GenerateMenuSelect + tkIconList ::tk::IconList + tkIconList_Add ::tk::IconList_Add + tkIconList_Arrange ::tk::IconList_Arrange + tkIconList_AutoScan ::tk::IconList_AutoScan + tkIconList_Btn1 ::tk::IconList_Btn1 + tkIconList_Config ::tk::IconList_Config + tkIconList_Create ::tk::IconList_Create + tkIconList_CtrlBtn1 ::tk::IconList_CtrlBtn1 + tkIconList_Curselection ::tk::IconList_CurSelection + tkIconList_DeleteAll ::tk::IconList_DeleteAll + tkIconList_Double1 ::tk::IconList_Double1 + tkIconList_DrawSelection ::tk::IconList_DrawSelection + tkIconList_FocusIn ::tk::IconList_FocusIn + tkIconList_FocusOut ::tk::IconList_FocusOut + tkIconList_Get ::tk::IconList_Get + tkIconList_Goto ::tk::IconList_Goto + tkIconList_Index ::tk::IconList_Index + tkIconList_Invoke ::tk::IconList_Invoke + tkIconList_KeyPress ::tk::IconList_KeyPress + tkIconList_Leave1 ::tk::IconList_Leave1 + tkIconList_LeftRight ::tk::IconList_LeftRight + tkIconList_Motion1 ::tk::IconList_Motion1 + tkIconList_Reset ::tk::IconList_Reset + tkIconList_ReturnKey ::tk::IconList_ReturnKey + tkIconList_See ::tk::IconList_See + tkIconList_Select ::tk::IconList_Select + tkIconList_Selection ::tk::IconList_Selection + tkIconList_ShiftBtn1 ::tk::IconList_ShiftBtn1 + tkIconList_UpDown ::tk::IconList_UpDown + tkListbox ::tk::Listbox + tkListboxAutoScan ::tk::ListboxAutoScan + tkListboxBeginExtend ::tk::ListboxBeginExtend + tkListboxBeginSelect ::tk::ListboxBeginSelect + tkListboxBeginToggle ::tk::ListboxBeginToggle + tkListboxCancel ::tk::ListboxCancel + tkListboxDataExtend ::tk::ListboxDataExtend + tkListboxExtendUpDown ::tk::ListboxExtendUpDown + tkListboxKeyAccel_Goto ::tk::ListboxKeyAccel_Goto + tkListboxKeyAccel_Key ::tk::ListboxKeyAccel_Key + tkListboxKeyAccel_Reset ::tk::ListboxKeyAccel_Reset + tkListboxKeyAccel_Set ::tk::ListboxKeyAccel_Set + tkListboxKeyAccel_Unset ::tk::ListboxKeyAccel_Unxet + tkListboxMotion ::tk::ListboxMotion + tkListboxSelectAll ::tk::ListboxSelectAll + tkListboxUpDown ::tk::ListboxUpDown + tkListboxBeginToggle ::tk::ListboxBeginToggle + tkMbButtonUp ::tk::MbButtonUp + tkMbEnter ::tk::MbEnter + tkMbLeave ::tk::MbLeave + tkMbMotion ::tk::MbMotion + tkMbPost ::tk::MbPost + tkMenuButtonDown ::tk::MenuButtonDown + tkMenuDownArrow ::tk::MenuDownArrow + tkMenuDup ::tk::MenuDup + tkMenuEscape ::tk::MenuEscape + tkMenuFind ::tk::MenuFind + tkMenuFindName ::tk::MenuFindName + tkMenuFirstEntry ::tk::MenuFirstEntry + tkMenuInvoke ::tk::MenuInvoke + tkMenuLeave ::tk::MenuLeave + tkMenuLeftArrow ::tk::MenuLeftArrow + tkMenuMotion ::tk::MenuMotion + tkMenuNextEntry ::tk::MenuNextEntry + tkMenuNextMenu ::tk::MenuNextMenu + tkMenuRightArrow ::tk::MenuRightArrow + tkMenuUnpost ::tk::MenuUnpost + tkMenuUpArrow ::tk::MenuUpArrow + tkMessageBox ::tk::MessageBox + tkMotifFDialog ::tk::MotifFDialog + tkMotifFDialog_ActivateDList ::tk::MotifFDialog_ActivateDList + tkMotifFDialog_ActivateFList ::tk::MotifFDialog_ActivateFList + tkMotifFDialog_ActivateFEnt ::tk::MotifFDialog_ActivateFEnt + tkMotifFDialog_ActivateSEnt ::tk::MotifFDialog_ActivateSEnt + tkMotifFDialog ::tk::MotifFDialog + tkMotifFDialog_BrowseDList ::tk::MotifFDialog_BrowseDList + tkMotifFDialog_BrowseFList ::tk::MotifFDialog_BrowseFList + tkMotifFDialog_BuildUI ::tk::MotifFDialog_BuildUI + tkMotifFDialog_CancelCmd ::tk::MotifFDialog_CancelCmd + tkMotifFDialog_Config ::tk::MotifFDialog_Config + tkMotifFDialog_Create ::tk::MotifFDialog_Create + tkMotifFDialog_FileTypes ::tk::MotifFDialog_FileTypes + tkMotifFDialog_FilterCmd ::tk::MotifFDialog_FilterCmd + tkMotifFDialog_InterpFilter ::tk::MotifFDialog_InterpFilter + tkMotifFDialog_LoadFiles ::tk::MotifFDialog_LoadFiles + tkMotifFDialog_MakeSList ::tk::MotifFDialog_MakeSList + tkMotifFDialog_OkCmd ::tk::MotifFDialog_OkCmd + tkMotifFDialog_SetFilter ::tk::MotifFDialog_SetFilter + tkMotifFDialog_SetListMode ::tk::MotifFDialog_SetListMode + tkMotifFDialog_Update ::tk::MotifFDialog_Update + tkPostOverPoint ::tk::PostOverPoint + tkRecolorTree ::tk::RecolorTree + tkRestoreOldGrab ::tk::RestoreOldGrab + tkSaveGrabInfo ::tk::SaveGrabInfo + tkScaleActivate ::tk::ScaleActivate + tkScaleButtonDown ::tk::ScaleButtonDown + tkScaleButton2Down ::tk::ScaleButton2Down + tkScaleControlPress ::tk::ScaleControlPress + tkScaleDrag ::tk::ScaleDrag + tkScaleEndDrag ::tk::ScaleEndDrag + tkScaleIncrement ::tk::ScaleIncrement + tkScreenChanged ::tk::ScreenChanged + tkScrollButtonDown ::tk::ScrollButtonDown + tkScrollButton2Down ::tk::ScrollButton2Down + tkScrollButtonDrag ::tk::ScrollButtonDrag + tkScrollButtonUp ::tk::ScrollButtonUp + tkScrollByPages ::tk::ScrollByPages + tkScrollByUnits ::tk::ScrollByUnits + tkScrollEndDrag ::tk::ScrollEndDrag + tkScrollSelect ::tk::ScrollSelect + tkScrollStartDrag ::tk::ScrollStartDrag + tkScrollTopBottom ::tk::ScrollTopBottom + tkScrollToPos ::tk::ScrollToPos + tkTabToWindow ::tk::TabToWindow + tkTearOffMenu ::tk::TearOffMenu + tkTextAutoScan ::tk::TextAutoScan + tkTextButton1 ::tk::TextButton1 + tkTextClosestGap ::tk::TextClosestGap + tkTextInsert ::tk::TextInsert + tkTextKeyExtend ::tk::TextKeyExtend + tkTextKeySelect ::tk::TextKeySelect + tkTextNextPara ::tk::TextNextPara + tkTextNextPos ::tk::TextNextPos + tkTextNextWord ::tk::TextNextWord + tkTextPaste ::tk::TextPaste + tkTextPrevPara ::tk::TextPrevPara + tkTextPrevPos ::tk::TextPrevPos + tkTextPrevWord ::tk::TextPrevWord + tkTextResetAnchor ::tk::TextResetAnchor + tkTextScrollPages ::tk::TextScrollPages + tkTextSelectTo ::tk::TextSelectTo + tkTextSetCursor ::tk::TextSetCursor + tkTextTranspose ::tk::TextTranspose + tkTextUpDownLine ::tk::TextUpDownLine + tkTraverseToMenu ::tk::TraverseToMenu + tkTraverseWithinMenu ::tk::TraverseWithinMenu + unsupported1 ::tk::unsupported::MacWindowStyle + } + + # Map from the old global names of Tk private variable to their + # new namespace-encapsulated names. + + variable PrivateVariables + array set PrivateVariables { + droped_to_start ::tk::mac::Droped_to_start + histNum ::tk::HistNum + stub_location ::tk::mac::Stub_location + tkFocusIn ::tk::FocusIn + tkFocusOut ::tk::FocusOut + tkPalette ::tk::Palette + tkPriv ::tk::Priv + tkPrivMsgBox ::tk::PrivMsgBox + } +} + +# ::tk::unsupported::ExposePrivateCommand -- +# +# Expose one of Tk's private commands to be visible under its +# old global name +# +# Arguments: +# cmd Global name by which the command was once known, +# or a glob-style pattern. +# +# Results: +# None. +# +# Side effects: +# The old command name in the global namespace is aliased to the +# new private name. + +proc ::tk::unsupported::ExposePrivateCommand {cmd} { + variable PrivateCommands + set cmds [array get PrivateCommands $cmd] + if {[llength $cmds] == 0} { + return -code error "No compatibility support for \[$cmd]" + } + foreach {old new} $cmds { + namespace eval :: [list interp alias {} $old {}] $new + } +} + +# ::tk::unsupported::ExposePrivateVariable -- +# +# Expose one of Tk's private variables to be visible under its +# old global name +# +# Arguments: +# var Global name by which the variable was once known, +# or a glob-style pattern. +# +# Results: +# None. +# +# Side effects: +# The old variable name in the global namespace is aliased to the +# new private name. + +proc ::tk::unsupported::ExposePrivateVariable {var} { + variable PrivateVariables + set vars [array get PrivateVariables $var] + if {[llength $vars] == 0} { + return -code error "No compatibility support for \$$var" + } + namespace eval ::tk::mac {} + foreach {old new} $vars { + namespace eval :: [list upvar "#0" $new $old] + } +} diff --git a/mingw/lib/tk8.5/xmfbox.tcl b/mingw/lib/tk8.5/xmfbox.tcl new file mode 100644 index 00000000..5036cd31 --- /dev/null +++ b/mingw/lib/tk8.5/xmfbox.tcl @@ -0,0 +1,983 @@ +# xmfbox.tcl -- +# +# Implements the "Motif" style file selection dialog for the +# Unix platform. This implementation is used only if the +# "::tk_strictMotif" flag is set. +# +# RCS: @(#) $Id: xmfbox.tcl,v 1.30 2007/10/25 21:44:22 hobbs Exp $ +# +# Copyright (c) 1996 Sun Microsystems, Inc. +# Copyright (c) 1998-2000 Scriptics Corporation +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. + +namespace eval ::tk::dialog {} +namespace eval ::tk::dialog::file {} + + +# ::tk::MotifFDialog -- +# +# Implements a file dialog similar to the standard Motif file +# selection box. +# +# Arguments: +# type "open" or "save" +# args Options parsed by the procedure. +# +# Results: +# When -multiple is set to 0, this returns the absolute pathname +# of the selected file. (NOTE: This is not the same as a single +# element list.) +# +# When -multiple is set to > 0, this returns a Tcl list of absolute +# pathnames. The argument for -multiple is ignored, but for consistency +# with Windows it defines the maximum amount of memory to allocate for +# the returned filenames. + +proc ::tk::MotifFDialog {type args} { + variable ::tk::Priv + set dataName __tk_filedialog + upvar ::tk::dialog::file::$dataName data + + set w [MotifFDialog_Create $dataName $type $args] + + # Set a grab and claim the focus too. + + ::tk::SetFocusGrab $w $data(sEnt) + $data(sEnt) selection range 0 end + + # Wait for the user to respond, then restore the focus and + # return the index of the selected button. Restore the focus + # before deleting the window, since otherwise the window manager + # may take the focus away so we can't redirect it. Finally, + # restore any grab that was in effect. + + vwait ::tk::Priv(selectFilePath) + set result $Priv(selectFilePath) + ::tk::RestoreFocusGrab $w $data(sEnt) withdraw + + return $result +} + +# ::tk::MotifFDialog_Create -- +# +# Creates the Motif file dialog (if it doesn't exist yet) and +# initialize the internal data structure associated with the +# dialog. +# +# This procedure is used by ::tk::MotifFDialog to create the +# dialog. It's also used by the test suite to test the Motif +# file dialog implementation. User code shouldn't call this +# procedure directly. +# +# Arguments: +# dataName Name of the global "data" array for the file dialog. +# type "Save" or "Open" +# argList Options parsed by the procedure. +# +# Results: +# Pathname of the file dialog. + +proc ::tk::MotifFDialog_Create {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + MotifFDialog_Config $dataName $type $argList + + if {$data(-parent) eq "."} { + set w .$dataName + } else { + set w $data(-parent).$dataName + } + + # (re)create the dialog box if necessary + # + if {![winfo exists $w]} { + MotifFDialog_BuildUI $w + } elseif {[winfo class $w] ne "TkMotifFDialog"} { + destroy $w + MotifFDialog_BuildUI $w + } else { + set data(fEnt) $w.top.f1.ent + set data(dList) $w.top.f2.a.l + set data(fList) $w.top.f2.b.l + set data(sEnt) $w.top.f3.ent + set data(okBtn) $w.bot.ok + set data(filterBtn) $w.bot.filter + set data(cancelBtn) $w.bot.cancel + } + MotifFDialog_SetListMode $w + + # Dialog boxes should be transient with respect to their parent, + # so that they will always stay on top of their parent window. However, + # some window managers will create the window as withdrawn if the parent + # window is withdrawn or iconified. Combined with the grab we put on the + # window, this can hang the entire application. Therefore we only make + # the dialog transient if the parent is viewable. + + if {[winfo viewable [winfo toplevel $data(-parent)]] } { + wm transient $w $data(-parent) + } + + MotifFDialog_FileTypes $w + MotifFDialog_Update $w + + # Withdraw the window, then update all the geometry information + # so we know how big it wants to be, then center the window in the + # display (Motif style) and de-iconify it. + + ::tk::PlaceWindow $w + wm title $w $data(-title) + + return $w +} + +# ::tk::MotifFDialog_FileTypes -- +# +# Checks the -filetypes option. If present this adds a list of radio- +# buttons to pick the file types from. +# +# Arguments: +# w Pathname of the tk_get*File dialogue. +# +# Results: +# none + +proc ::tk::MotifFDialog_FileTypes {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set f $w.top.f3.types + destroy $f + + # No file types: use "*" as the filter and display no radio-buttons + if {$data(-filetypes) eq ""} { + set data(filter) * + return + } + + # The filetypes radiobuttons + # set data(fileType) $data(-defaulttype) + # Default type to first entry + set initialTypeName [lindex $data(-filetypes) 0 0] + if {($data(-typevariable) ne "") + && [uplevel 4 [list info exists $data(-typevariable)]]} { + set initialTypeName [uplevel 4 [list set $data(-typevariable)]] + } + set ix 0 + set data(fileType) 0 + foreach fltr $data(-filetypes) { + set fname [lindex $fltr 0] + if {[string first $initialTypeName $fname] == 0} { + set data(fileType) $ix + break + } + incr ix + } + + MotifFDialog_SetFilter $w [lindex $data(-filetypes) $data(fileType)] + + #don't produce radiobuttons for only one filetype + if {[llength $data(-filetypes)] == 1} { + return + } + + frame $f + set cnt 0 + if {$data(-filetypes) ne {}} { + foreach type $data(-filetypes) { + set title [lindex [lindex $type 0] 0] + set filter [lindex $type 1] + radiobutton $f.b$cnt \ + -text $title \ + -variable ::tk::dialog::file::[winfo name $w](fileType) \ + -value $cnt \ + -command [list tk::MotifFDialog_SetFilter $w $type] + pack $f.b$cnt -side left + incr cnt + } + } + $f.b$data(fileType) invoke + + pack $f -side bottom -fill both + + return +} + +# This proc gets called whenever data(filter) is set +# +proc ::tk::MotifFDialog_SetFilter {w type} { + upvar ::tk::dialog::file::[winfo name $w] data + variable ::tk::Priv + + set data(filter) [lindex $type 1] + set Priv(selectFileType) [lindex [lindex $type 0] 0] + + MotifFDialog_Update $w +} + +# ::tk::MotifFDialog_Config -- +# +# Iterates over the optional arguments to determine the option +# values for the Motif file dialog; gives default values to +# unspecified options. +# +# Arguments: +# dataName The name of the global variable in which +# data for the file dialog is stored. +# type "Save" or "Open" +# argList Options parsed by the procedure. + +proc ::tk::MotifFDialog_Config {dataName type argList} { + upvar ::tk::dialog::file::$dataName data + + set data(type) $type + + # 1: the configuration specs + # + set specs { + {-defaultextension "" "" ""} + {-filetypes "" "" ""} + {-initialdir "" "" ""} + {-initialfile "" "" ""} + {-parent "" "" "."} + {-title "" "" ""} + {-typevariable "" "" ""} + } + if {$type eq "open"} { + lappend specs {-multiple "" "" "0"} + } + + set data(-multiple) 0 + # 2: default values depending on the type of the dialog + # + if {![info exists data(selectPath)]} { + # first time the dialog has been popped up + set data(selectPath) [pwd] + set data(selectFile) "" + } + + # 3: parse the arguments + # + tclParseConfigSpec ::tk::dialog::file::$dataName $specs "" $argList + + if {$data(-title) eq ""} { + if {$type eq "open"} { + if {$data(-multiple) != 0} { + set data(-title) "[mc {Open Multiple Files}]" + } else { + set data(-title) [mc "Open"] + } + } else { + set data(-title) [mc "Save As"] + } + } + + # 4: set the default directory and selection according to the -initial + # settings + # + if {$data(-initialdir) ne ""} { + if {[file isdirectory $data(-initialdir)]} { + set data(selectPath) [lindex [glob $data(-initialdir)] 0] + } else { + set data(selectPath) [pwd] + } + + # Convert the initialdir to an absolute path name. + + set old [pwd] + cd $data(selectPath) + set data(selectPath) [pwd] + cd $old + } + set data(selectFile) $data(-initialfile) + + # 5. Parse the -filetypes option. It is not used by the motif + # file dialog, but we check for validity of the value to make sure + # the application code also runs fine with the TK file dialog. + # + set data(-filetypes) [::tk::FDGetFileTypes $data(-filetypes)] + + if {![info exists data(filter)]} { + set data(filter) * + } + if {![winfo exists $data(-parent)]} { + error "bad window path name \"$data(-parent)\"" + } +} + +# ::tk::MotifFDialog_BuildUI -- +# +# Builds the UI components of the Motif file dialog. +# +# Arguments: +# w Pathname of the dialog to build. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BuildUI {w} { + set dataName [lindex [split $w .] end] + upvar ::tk::dialog::file::$dataName data + + # Create the dialog toplevel and internal frames. + # + toplevel $w -class TkMotifFDialog + set top [frame $w.top -relief raised -bd 1] + set bot [frame $w.bot -relief raised -bd 1] + + pack $w.bot -side bottom -fill x + pack $w.top -side top -expand yes -fill both + + set f1 [frame $top.f1] + set f2 [frame $top.f2] + set f3 [frame $top.f3] + + pack $f1 -side top -fill x + pack $f3 -side bottom -fill x + pack $f2 -expand yes -fill both + + set f2a [frame $f2.a] + set f2b [frame $f2.b] + + grid $f2a -row 0 -column 0 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ + -sticky news + grid $f2b -row 0 -column 1 -rowspan 1 -columnspan 1 -padx 4 -pady 4 \ + -sticky news + grid rowconfigure $f2 0 -minsize 0 -weight 1 + grid columnconfigure $f2 0 -minsize 0 -weight 1 + grid columnconfigure $f2 1 -minsize 150 -weight 2 + + # The Filter box + # + bind [::tk::AmpWidget label $f1.lab -text [mc "Fil&ter:"] -anchor w] \ + <> [list focus $f1.ent] + entry $f1.ent + pack $f1.lab -side top -fill x -padx 6 -pady 4 + pack $f1.ent -side top -fill x -padx 4 -pady 0 + set data(fEnt) $f1.ent + + # The file and directory lists + # + set data(dList) [MotifFDialog_MakeSList $w $f2a \ + [mc "&Directory:"] DList] + set data(fList) [MotifFDialog_MakeSList $w $f2b \ + [mc "Fi&les:"] FList] + + # The Selection box + # + bind [::tk::AmpWidget label $f3.lab -text [mc "&Selection:"] -anchor w] \ + <> [list focus $f3.ent] + entry $f3.ent + pack $f3.lab -side top -fill x -padx 6 -pady 0 + pack $f3.ent -side top -fill x -padx 4 -pady 4 + set data(sEnt) $f3.ent + + # The buttons + # + set maxWidth [::tk::mcmaxamp &OK &Filter &Cancel] + set maxWidth [expr {$maxWidth<6?6:$maxWidth}] + set data(okBtn) [::tk::AmpWidget button $bot.ok -text [mc "&OK"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_OkCmd $w]] + set data(filterBtn) [::tk::AmpWidget button $bot.filter -text [mc "&Filter"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_FilterCmd $w]] + set data(cancelBtn) [::tk::AmpWidget button $bot.cancel -text [mc "&Cancel"] \ + -width $maxWidth \ + -command [list tk::MotifFDialog_CancelCmd $w]] + + pack $bot.ok $bot.filter $bot.cancel -padx 10 -pady 10 -expand yes \ + -side left + + # Create the bindings: + # + bind $w [list ::tk::AltKeyInDialog $w %A] + + bind $data(fEnt) [list tk::MotifFDialog_ActivateFEnt $w] + bind $data(sEnt) [list tk::MotifFDialog_ActivateSEnt $w] + bind $w [list tk::MotifFDialog_CancelCmd $w] + bind $w.bot {set ::tk::Priv(selectFilePath) {}} + + wm protocol $w WM_DELETE_WINDOW [list tk::MotifFDialog_CancelCmd $w] +} + +proc ::tk::MotifFDialog_SetListMode {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {$data(-multiple) != 0} { + set selectmode extended + } else { + set selectmode browse + } + set f $w.top.f2.b + $f.l configure -selectmode $selectmode +} + +# ::tk::MotifFDialog_MakeSList -- +# +# Create a scrolled-listbox and set the keyboard accelerator +# bindings so that the list selection follows what the user +# types. +# +# Arguments: +# w Pathname of the dialog box. +# f Frame widget inside which to create the scrolled +# listbox. This frame widget already exists. +# label The string to display on top of the listbox. +# under Sets the -under option of the label. +# cmdPrefix Specifies procedures to call when the listbox is +# browsed or activated. + +proc ::tk::MotifFDialog_MakeSList {w f label cmdPrefix} { + bind [::tk::AmpWidget label $f.lab -text $label -anchor w] \ + <> [list focus $f.l] + listbox $f.l -width 12 -height 5 -exportselection 0\ + -xscrollcommand [list $f.h set] -yscrollcommand [list $f.v set] + scrollbar $f.v -orient vertical -takefocus 0 -command [list $f.l yview] + scrollbar $f.h -orient horizontal -takefocus 0 -command [list $f.l xview] + grid $f.lab -row 0 -column 0 -sticky news -rowspan 1 -columnspan 2 \ + -padx 2 -pady 2 + grid $f.l -row 1 -column 0 -rowspan 1 -columnspan 1 -sticky news + grid $f.v -row 1 -column 1 -rowspan 1 -columnspan 1 -sticky news + grid $f.h -row 2 -column 0 -rowspan 1 -columnspan 1 -sticky news + + grid rowconfigure $f 0 -weight 0 -minsize 0 + grid rowconfigure $f 1 -weight 1 -minsize 0 + grid columnconfigure $f 0 -weight 1 -minsize 0 + + # bindings for the listboxes + # + set list $f.l + bind $list <> [list tk::MotifFDialog_Browse$cmdPrefix $w] + bind $list \ + [list tk::MotifFDialog_Activate$cmdPrefix $w] + bind $list "tk::MotifFDialog_Browse$cmdPrefix [list $w]; \ + tk::MotifFDialog_Activate$cmdPrefix [list $w]" + + bindtags $list [list Listbox $list [winfo toplevel $list] all] + ListBoxKeyAccel_Set $list + + return $f.l +} + +# ::tk::MotifFDialog_InterpFilter -- +# +# Interpret the string in the filter entry into two components: +# the directory and the pattern. If the string is a relative +# pathname, give a warning to the user and restore the pattern +# to original. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# A list of two elements. The first element is the directory +# specified # by the filter. The second element is the filter +# pattern itself. + +proc ::tk::MotifFDialog_InterpFilter {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set text [string trim [$data(fEnt) get]] + + # Perform tilde substitution + # + set badTilde 0 + if {[string index $text 0] eq "~"} { + set list [file split $text] + set tilde [lindex $list 0] + if {[catch {set tilde [glob $tilde]}]} { + set badTilde 1 + } else { + set text [eval file join [concat $tilde [lrange $list 1 end]]] + } + } + + # If the string is a relative pathname, combine it + # with the current selectPath. + + set relative 0 + if {[file pathtype $text] eq "relative"} { + set relative 1 + } elseif {$badTilde} { + set relative 1 + } + + if {$relative} { + tk_messageBox -icon warning -type ok \ + -message "\"$text\" must be an absolute pathname" + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(filter)] + + return [list $data(selectPath) $data(filter)] + } + + set resolved [::tk::dialog::file::JoinFile [file dirname $text] [file tail $text]] + + if {[file isdirectory $resolved]} { + set dir $resolved + set fil $data(filter) + } else { + set dir [file dirname $resolved] + set fil [file tail $resolved] + } + + return [list $dir $fil] +} + +# ::tk::MotifFDialog_Update +# +# Load the files and synchronize the "filter" and "selection" fields +# boxes. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_Update {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 \ + [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] + $data(sEnt) delete 0 end + $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(selectFile)] + + MotifFDialog_LoadFiles $w +} + +# ::tk::MotifFDialog_LoadFiles -- +# +# Loads the files and directories into the two listboxes according +# to the filter setting. +# +# Arguments: +# w pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_LoadFiles {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + $data(dList) delete 0 end + $data(fList) delete 0 end + + set appPWD [pwd] + if {[catch {cd $data(selectPath)}]} { + cd $appPWD + + $data(dList) insert end ".." + return + } + + # Make the dir and file lists + # + # For speed we only have one glob, which reduces the file system + # calls (good for slow NFS networks). + # + # We also do two smaller sorts (files + dirs) instead of one large sort, + # which gives a small speed increase. + # + set top 0 + set dlist "" + set flist "" + foreach f [glob -nocomplain .* *] { + if {[file isdir ./$f]} { + lappend dlist $f + } else { + foreach pat $data(filter) { + if {[string match $pat $f]} { + if {[string match .* $f]} { + incr top + } + lappend flist $f + break + } + } + } + } + eval [list $data(dList) insert end] [lsort -dictionary $dlist] + eval [list $data(fList) insert end] [lsort -dictionary $flist] + + # The user probably doesn't want to see the . files. We adjust the view + # so that the listbox displays all the non-dot files + $data(fList) yview $top + + cd $appPWD +} + +# ::tk::MotifFDialog_BrowseDList -- +# +# This procedure is called when the directory list is browsed +# (clicked-over) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BrowseDList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + focus $data(dList) + if {[$data(dList) curselection] eq ""} { + return + } + set subdir [$data(dList) get [$data(dList) curselection]] + if {$subdir eq ""} { + return + } + + $data(fList) selection clear 0 end + + set list [MotifFDialog_InterpFilter $w] + set data(filter) [lindex $list 1] + + switch -- $subdir { + . { + set newSpec [::tk::dialog::file::JoinFile $data(selectPath) $data(filter)] + } + .. { + set newSpec [::tk::dialog::file::JoinFile [file dirname $data(selectPath)] \ + $data(filter)] + } + default { + set newSpec [::tk::dialog::file::JoinFile [::tk::dialog::file::JoinFile \ + $data(selectPath) $subdir] $data(filter)] + } + } + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 $newSpec +} + +# ::tk::MotifFDialog_ActivateDList -- +# +# This procedure is called when the directory list is activated +# (double-clicked) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateDList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(dList) curselection] eq ""} { + return + } + set subdir [$data(dList) get [$data(dList) curselection]] + if {$subdir eq ""} { + return + } + + $data(fList) selection clear 0 end + + switch -- $subdir { + . { + set newDir $data(selectPath) + } + .. { + set newDir [file dirname $data(selectPath)] + } + default { + set newDir [::tk::dialog::file::JoinFile $data(selectPath) $subdir] + } + } + + set data(selectPath) $newDir + MotifFDialog_Update $w + + if {$subdir ne ".."} { + $data(dList) selection set 0 + $data(dList) activate 0 + } else { + $data(dList) selection set 1 + $data(dList) activate 1 + } +} + +# ::tk::MotifFDialog_BrowseFList -- +# +# This procedure is called when the file list is browsed +# (clicked-over) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_BrowseFList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + focus $data(fList) + set data(selectFile) "" + foreach item [$data(fList) curselection] { + lappend data(selectFile) [$data(fList) get $item] + } + if {[llength $data(selectFile)] == 0} { + return + } + + $data(dList) selection clear 0 end + + $data(fEnt) delete 0 end + $data(fEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + $data(filter)] + $data(fEnt) xview end + + # if it's a multiple selection box, just put in the filenames + # otherwise put in the full path as usual + $data(sEnt) delete 0 end + if {$data(-multiple) != 0} { + $data(sEnt) insert 0 $data(selectFile) + } else { + $data(sEnt) insert 0 [::tk::dialog::file::JoinFile $data(selectPath) \ + [lindex $data(selectFile) 0]] + } + $data(sEnt) xview end +} + +# ::tk::MotifFDialog_ActivateFList -- +# +# This procedure is called when the file list is activated +# (double-clicked) by the user. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateFList {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + if {[$data(fList) curselection] eq ""} { + return + } + set data(selectFile) [$data(fList) get [$data(fList) curselection]] + if {$data(selectFile) eq ""} { + return + } else { + MotifFDialog_ActivateSEnt $w + } +} + +# ::tk::MotifFDialog_ActivateFEnt -- +# +# This procedure is called when the user presses Return inside +# the "filter" entry. It updates the dialog according to the +# text inside the filter entry. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateFEnt {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + set list [MotifFDialog_InterpFilter $w] + set data(selectPath) [lindex $list 0] + set data(filter) [lindex $list 1] + + MotifFDialog_Update $w +} + +# ::tk::MotifFDialog_ActivateSEnt -- +# +# This procedure is called when the user presses Return inside +# the "selection" entry. It sets the ::tk::Priv(selectFilePath) +# variable so that the vwait loop in tk::MotifFDialog will be +# terminated. +# +# Arguments: +# w The pathname of the dialog box. +# +# Results: +# None. + +proc ::tk::MotifFDialog_ActivateSEnt {w} { + variable ::tk::Priv + upvar ::tk::dialog::file::[winfo name $w] data + + set selectFilePath [string trim [$data(sEnt) get]] + + if {$selectFilePath eq ""} { + MotifFDialog_FilterCmd $w + return + } + + if {$data(-multiple) == 0} { + set selectFilePath [list $selectFilePath] + } + + if {[file isdirectory [lindex $selectFilePath 0]]} { + set data(selectPath) [lindex [glob $selectFilePath] 0] + set data(selectFile) "" + MotifFDialog_Update $w + return + } + + set newFileList "" + foreach item $selectFilePath { + if {[file pathtype $item] ne "absolute"} { + set item [file join $data(selectPath) $item] + } elseif {![file exists [file dirname $item]]} { + tk_messageBox -icon warning -type ok \ + -message [mc {Directory "%1$s" does not exist.} \ + [file dirname $item]] + return + } + + if {![file exists $item]} { + if {$data(type) eq "open"} { + tk_messageBox -icon warning -type ok \ + -message [mc {File "%1$s" does not exist.} $item] + return + } + } elseif {$data(type) eq "save"} { + set message [format %s%s \ + [mc "File \"%1\$s\" already exists.\n\n" $selectFilePath] \ + [mc {Replace existing file?}]] + set answer [tk_messageBox -icon warning -type yesno \ + -message $message] + if {$answer eq "no"} { + return + } + } + + lappend newFileList $item + } + + # Return selected filter + if {[info exists data(-typevariable)] && $data(-typevariable) ne "" + && [info exists data(-filetypes)] && $data(-filetypes) ne ""} { + upvar 2 $data(-typevariable) initialTypeName + set initialTypeName [lindex $data(-filetypes) $data(fileType) 0] + } + + if {$data(-multiple) != 0} { + set Priv(selectFilePath) $newFileList + } else { + set Priv(selectFilePath) [lindex $newFileList 0] + } + + # Set selectFile and selectPath to first item in list + set Priv(selectFile) [file tail [lindex $newFileList 0]] + set Priv(selectPath) [file dirname [lindex $newFileList 0]] +} + + +proc ::tk::MotifFDialog_OkCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + MotifFDialog_ActivateSEnt $w +} + +proc ::tk::MotifFDialog_FilterCmd {w} { + upvar ::tk::dialog::file::[winfo name $w] data + + MotifFDialog_ActivateFEnt $w +} + +proc ::tk::MotifFDialog_CancelCmd {w} { + variable ::tk::Priv + + set Priv(selectFilePath) "" + set Priv(selectFile) "" + set Priv(selectPath) "" +} + +proc ::tk::ListBoxKeyAccel_Set {w} { + bind Listbox "" + bind $w [list tk::ListBoxKeyAccel_Unset $w] + bind $w [list tk::ListBoxKeyAccel_Key $w %A] +} + +proc ::tk::ListBoxKeyAccel_Unset {w} { + variable ::tk::Priv + + catch {after cancel $Priv(lbAccel,$w,afterId)} + unset -nocomplain Priv(lbAccel,$w) Priv(lbAccel,$w,afterId) +} + +# ::tk::ListBoxKeyAccel_Key-- +# +# This procedure maintains a list of recently entered keystrokes +# over a listbox widget. It arranges an idle event to move the +# selection of the listbox to the entry that begins with the +# keystrokes. +# +# Arguments: +# w The pathname of the listbox. +# key The key which the user just pressed. +# +# Results: +# None. + +proc ::tk::ListBoxKeyAccel_Key {w key} { + variable ::tk::Priv + + if { $key eq "" } { + return + } + append Priv(lbAccel,$w) $key + ListBoxKeyAccel_Goto $w $Priv(lbAccel,$w) + catch { + after cancel $Priv(lbAccel,$w,afterId) + } + set Priv(lbAccel,$w,afterId) [after 500 \ + [list tk::ListBoxKeyAccel_Reset $w]] +} + +proc ::tk::ListBoxKeyAccel_Goto {w string} { + variable ::tk::Priv + + set string [string tolower $string] + set end [$w index end] + set theIndex -1 + + for {set i 0} {$i < $end} {incr i} { + set item [string tolower [$w get $i]] + if {[string compare $string $item] >= 0} { + set theIndex $i + } + if {[string compare $string $item] <= 0} { + set theIndex $i + break + } + } + + if {$theIndex >= 0} { + $w selection clear 0 end + $w selection set $theIndex $theIndex + $w activate $theIndex + $w see $theIndex + event generate $w <> + } +} + +proc ::tk::ListBoxKeyAccel_Reset {w} { + variable ::tk::Priv + + unset -nocomplain Priv(lbAccel,$w) +} + +proc ::tk_getFileType {} { + variable ::tk::Priv + + return $Priv(selectFileType) +} + diff --git a/mingw/lib/tkConfig.sh b/mingw/lib/tkConfig.sh index 84a4f452..93265a2d 100644 --- a/mingw/lib/tkConfig.sh +++ b/mingw/lib/tkConfig.sh @@ -11,16 +11,18 @@ # # The information in this file is specific to a single platform. # -# RCS: @(#) $Id: tkConfig.sh.in,v 1.2 2001/10/15 21:19:16 hobbs Exp $ +# RCS: @(#) $Id: tkConfig.sh.in,v 1.3 2003/03/19 03:21:22 mdejong Exp $ + +TK_DLL_FILE="tk85.dll" # Tk's version number. -TK_VERSION='8.4' +TK_VERSION='8.5' TK_MAJOR_VERSION='8' -TK_MINOR_VERSION='4' -TK_PATCH_LEVEL='.14' +TK_MINOR_VERSION='5' +TK_PATCH_LEVEL='b2' # -D flags for use with the C compiler. -TK_DEFS=' ' +TK_DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UXTHEME_H=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 ' # Flag, 1: we built a shared lib, 0 we didn't TK_SHARED_BUILD=1 @@ -29,10 +31,10 @@ TK_SHARED_BUILD=1 TK_DBGX= # The name of the Tk library (may be either a .a file or a shared library): -TK_LIB_FILE='libtk84.a' +TK_LIB_FILE='libtk85.a' # Additional libraries to use when linking Tk. -TK_LIBS=' -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32' +TK_LIBS=' -lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -lole32 -loleaut32 -luuid' # Top-level directory in which Tcl's platform-independent files are # installed. @@ -43,15 +45,15 @@ TK_PREFIX='/mingw' TK_EXEC_PREFIX='/mingw' # -l flag to pass to the linker to pick up the Tcl library -TK_LIB_FLAG='-ltk84' +TK_LIB_FLAG='-ltk85' # String to pass to linker to pick up the Tk library from its # build directory. -TK_BUILD_LIB_SPEC='-L/home/Icke/tk8.4.14/win -ltk84' +TK_BUILD_LIB_SPEC='-L/share/tcltk/tk8.5b2/win -ltk85' # String to pass to linker to pick up the Tk library from its # installed directory. -TK_LIB_SPEC='-L/mingw/lib -ltk84' +TK_LIB_SPEC='-L/mingw/lib -ltk85' # Location of the top-level source directory from which Tk was built. # This is the directory that contains a README file as well as @@ -59,7 +61,7 @@ TK_LIB_SPEC='-L/mingw/lib -ltk84' # different place than the directory containing the source files, this # points to the location of the sources, not the location where Tk was # compiled. -TK_SRC_DIR='/home/Icke/tk8.4.14' +TK_SRC_DIR='/share/tcltk/tk8.5b2' # Needed if you want to make a 'fat' shared library library # containing tk objects or link a different wish. @@ -67,21 +69,21 @@ TK_CC_SEARCH_FLAGS='' TK_LD_SEARCH_FLAGS='' # The name of the Tk stub library (.a): -TK_STUB_LIB_FILE='libtkstub84.a' +TK_STUB_LIB_FILE='libtkstub85.a' # -l flag to pass to the linker to pick up the Tk stub library -TK_STUB_LIB_FLAG='-ltkstub84' +TK_STUB_LIB_FLAG='-ltkstub85' # String to pass to linker to pick up the Tk stub library from its # build directory. -TK_BUILD_STUB_LIB_SPEC='-L/home/Icke/tk8.4.14/win -ltkstub84' +TK_BUILD_STUB_LIB_SPEC='-L/share/tcltk/tk8.5b2/win -ltkstub85' # String to pass to linker to pick up the Tk stub library from its # installed directory. -TK_STUB_LIB_SPEC='-L/mingw/lib -ltkstub84' +TK_STUB_LIB_SPEC='-L/mingw/lib -ltkstub85' # Path to the Tk stub library in the build directory. -TK_BUILD_STUB_LIB_PATH='/home/Icke/tk8.4.14/win/libtkstub84.a' +TK_BUILD_STUB_LIB_PATH='/share/tcltk/tk8.5b2/win/libtkstub85.a' # Path to the Tk stub library in the install directory. -TK_STUB_LIB_PATH='/mingw/lib/libtkstub84.a' +TK_STUB_LIB_PATH='/mingw/lib/libtkstub85.a' diff --git a/mingw/lib/tkimgConfig.sh b/mingw/lib/tkimgConfig.sh deleted file mode 100644 index 406ff6f4..00000000 --- a/mingw/lib/tkimgConfig.sh +++ /dev/null @@ -1,57 +0,0 @@ -# tkimgConfig.sh -- -# -# This shell script (for sh) is generated automatically by tkimg's -# configure script. It will create shell variables for most of -# the configuration options discovered by the configure script. -# This script is intended to be included by the configure scripts -# for tkimg extensions so that they don't have to figure this all -# out for themselves. This file does not duplicate information -# already provided by tclConfig.sh, so you may need to use that -# file in addition to this one. -# -# The information in this file is specific to a single platform. - -# tkimg's version number. -tkimg_VERSION='1.3' -tkimg_MAJOR_VERSION='' -tkimg_MINOR_VERSION='' -tkimg_RELEASE_LEVEL='' - -# The name of the tkimg library (may be either a .a file or a shared library): -tkimg_LIB_FILE=tkimg13.dll - -# String to pass to linker to pick up the tkimg library from its -# build directory. -tkimg_BUILD_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/base -ltkimg13' - -# String to pass to linker to pick up the tkimg library from its -# installed directory. -tkimg_LIB_SPEC='-L/mingw/lib/Img1.3 -ltkimg13' - -# The name of the tkimg stub library (a .a file): -tkimg_STUB_LIB_FILE=libtkimgstub13.a - -# String to pass to linker to pick up the tkimg stub library from its -# build directory. -tkimg_BUILD_STUB_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/base -ltkimgstub13' - -# String to pass to linker to pick up the tkimg stub library from its -# installed directory. -tkimg_STUB_LIB_SPEC='-L/mingw/lib/Img1.3 -ltkimgstub13' - -# String to pass to linker to pick up the tkimg stub library from its -# build directory. -tkimg_BUILD_STUB_LIB_PATH='/home/Icke/1/tkimg/trunk/base/libtkimgstub13.a' - -# String to pass to linker to pick up the tkimg stub library from its -# installed directory. -tkimg_STUB_LIB_PATH='/mingw/lib/Img1.3/libtkimgstub13.a' - -# Location of the top-level source directories from which tkimg -# was built. This is the directory that contains generic, unix, etc. -# If tkimg was compiled in a different place than the directory -# containing the source files, this points to the location of the -# sources, not the location where tkimg was compiled. This can -# be relative to the build directory. - -tkimg_SRC_DIR='.' diff --git a/mingw/lib/zlibtclConfig.sh b/mingw/lib/zlibtclConfig.sh deleted file mode 100644 index 07262788..00000000 --- a/mingw/lib/zlibtclConfig.sh +++ /dev/null @@ -1,57 +0,0 @@ -# zlibtclConfig.sh -- -# -# This shell script (for sh) is generated automatically by zlibtcl's -# configure script. It will create shell variables for most of -# the configuration options discovered by the configure script. -# This script is intended to be included by the configure scripts -# for zlibtcl extensions so that they don't have to figure this all -# out for themselves. This file does not duplicate information -# already provided by tclConfig.sh, so you may need to use that -# file in addition to this one. -# -# The information in this file is specific to a single platform. - -# zlibtcl's version number. -zlibtcl_VERSION='1.2.3' -zlibtcl_MAJOR_VERSION='' -zlibtcl_MINOR_VERSION='' -zlibtcl_RELEASE_LEVEL='' - -# The name of the zlibtcl library (may be either a .a file or a shared library): -zlibtcl_LIB_FILE=zlibtcl123.dll - -# String to pass to linker to pick up the zlibtcl library from its -# build directory. -zlibtcl_BUILD_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/libz/tcl -lzlibtcl123' - -# String to pass to linker to pick up the zlibtcl library from its -# installed directory. -zlibtcl_LIB_SPEC='-L/mingw/lib/Img1.3 -lzlibtcl123' - -# The name of the zlibtcl stub library (a .a file): -zlibtcl_STUB_LIB_FILE=libzlibtclstub123.a - -# String to pass to linker to pick up the zlibtcl stub library from its -# build directory. -zlibtcl_BUILD_STUB_LIB_SPEC='-L/home/Icke/1/tkimg/trunk/libz/tcl -lzlibtclstub123' - -# String to pass to linker to pick up the zlibtcl stub library from its -# installed directory. -zlibtcl_STUB_LIB_SPEC='-L/mingw/lib/Img1.3 -lzlibtclstub123' - -# String to pass to linker to pick up the zlibtcl stub library from its -# build directory. -zlibtcl_BUILD_STUB_LIB_PATH='/home/Icke/1/tkimg/trunk/libz/tcl/libzlibtclstub123.a' - -# String to pass to linker to pick up the zlibtcl stub library from its -# installed directory. -zlibtcl_STUB_LIB_PATH='/mingw/lib/Img1.3/libzlibtclstub123.a' - -# Location of the top-level source directories from which zlibtcl -# was built. This is the directory that contains generic, unix, etc. -# If zlibtcl was compiled in a different place than the directory -# containing the source files, this points to the location of the -# sources, not the location where zlibtcl was compiled. This can -# be relative to the build directory. - -zlibtcl_SRC_DIR='.' diff --git a/share/tcltk/fileList.txt b/share/tcltk/fileList.txt dissimilarity index 99% index 139e3315..6510fc8c 100644 --- a/share/tcltk/fileList.txt +++ b/share/tcltk/fileList.txt @@ -1,287 +1,978 @@ -mingw/bin/tcl84.dll -mingw/bin/tcldde12.dll -mingw/bin/tclpip84.dll -mingw/bin/tclreg11.dll -mingw/bin/tclsh -mingw/bin/tclsh84.exe -mingw/bin/tk84.dll -mingw/bin/wish.exe -mingw/bin/wish84.exe -mingw/doc/tcltk/PORTNOTES -mingw/doc/tcltk/license.terms -mingw/include/tcl.h -mingw/include/tclDecls.h -mingw/include/tclPlatDecls.h -mingw/include/tk.h -mingw/include/tkDecls.h -mingw/include/tkIntXlibDecls.h -mingw/include/tkPlatDecls.h -mingw/lib/Img1.3/jpegtcl10.dll -mingw/lib/Img1.3/libjpegtclstub10.a -mingw/lib/Img1.3/libpngtclstub1212.a -mingw/lib/Img1.3/libtifftclstub382.a -mingw/lib/Img1.3/libtkimgstub13.a -mingw/lib/Img1.3/libzlibtclstub123.a -mingw/lib/Img1.3/pkgIndex.tcl -mingw/lib/Img1.3/pngtcl1212.dll -mingw/lib/Img1.3/tifftcl382.dll -mingw/lib/Img1.3/tkimg13.dll -mingw/lib/Img1.3/tkimgbmp13.dll -mingw/lib/Img1.3/tkimggif13.dll -mingw/lib/Img1.3/tkimgico13.dll -mingw/lib/Img1.3/tkimgjpeg13.dll -mingw/lib/Img1.3/tkimgpcx13.dll -mingw/lib/Img1.3/tkimgpixmap13.dll -mingw/lib/Img1.3/tkimgpng13.dll -mingw/lib/Img1.3/tkimgppm13.dll -mingw/lib/Img1.3/tkimgps13.dll -mingw/lib/Img1.3/tkimgsgi13.dll -mingw/lib/Img1.3/tkimgsun13.dll -mingw/lib/Img1.3/tkimgtga13.dll -mingw/lib/Img1.3/tkimgtiff13.dll -mingw/lib/Img1.3/tkimgwindow13.dll -mingw/lib/Img1.3/tkimgxbm13.dll -mingw/lib/Img1.3/tkimgxpm13.dll -mingw/lib/Img1.3/zlibtcl123.dll -mingw/lib/dde1.2/pkgIndex.tcl -mingw/lib/dde1.2/tcldde12.dll -mingw/lib/jpegtclConfig.sh -mingw/lib/libtcl84.a -mingw/lib/libtcldde12.a -mingw/lib/libtclreg11.a -mingw/lib/libtclstub84.a -mingw/lib/libtk84.a -mingw/lib/libtkstub84.a -mingw/lib/pngtclConfig.sh -mingw/lib/reg1.1/pkgIndex.tcl -mingw/lib/reg1.1/tclreg11.dll -mingw/lib/tcl8.4/auto.tcl -mingw/lib/tcl8.4/encoding/ascii.enc -mingw/lib/tcl8.4/encoding/big5.enc -mingw/lib/tcl8.4/encoding/cp1250.enc -mingw/lib/tcl8.4/encoding/cp1251.enc -mingw/lib/tcl8.4/encoding/cp1252.enc -mingw/lib/tcl8.4/encoding/cp1253.enc -mingw/lib/tcl8.4/encoding/cp1254.enc -mingw/lib/tcl8.4/encoding/cp1255.enc -mingw/lib/tcl8.4/encoding/cp1256.enc -mingw/lib/tcl8.4/encoding/cp1257.enc -mingw/lib/tcl8.4/encoding/cp1258.enc -mingw/lib/tcl8.4/encoding/cp437.enc -mingw/lib/tcl8.4/encoding/cp737.enc -mingw/lib/tcl8.4/encoding/cp775.enc -mingw/lib/tcl8.4/encoding/cp850.enc -mingw/lib/tcl8.4/encoding/cp852.enc -mingw/lib/tcl8.4/encoding/cp855.enc -mingw/lib/tcl8.4/encoding/cp857.enc -mingw/lib/tcl8.4/encoding/cp860.enc -mingw/lib/tcl8.4/encoding/cp861.enc -mingw/lib/tcl8.4/encoding/cp862.enc -mingw/lib/tcl8.4/encoding/cp863.enc -mingw/lib/tcl8.4/encoding/cp864.enc -mingw/lib/tcl8.4/encoding/cp865.enc -mingw/lib/tcl8.4/encoding/cp866.enc -mingw/lib/tcl8.4/encoding/cp869.enc -mingw/lib/tcl8.4/encoding/cp874.enc -mingw/lib/tcl8.4/encoding/cp932.enc -mingw/lib/tcl8.4/encoding/cp936.enc -mingw/lib/tcl8.4/encoding/cp949.enc -mingw/lib/tcl8.4/encoding/cp950.enc -mingw/lib/tcl8.4/encoding/dingbats.enc -mingw/lib/tcl8.4/encoding/ebcdic.enc -mingw/lib/tcl8.4/encoding/euc-cn.enc -mingw/lib/tcl8.4/encoding/euc-jp.enc -mingw/lib/tcl8.4/encoding/euc-kr.enc -mingw/lib/tcl8.4/encoding/gb12345.enc -mingw/lib/tcl8.4/encoding/gb1988.enc -mingw/lib/tcl8.4/encoding/gb2312-raw.enc -mingw/lib/tcl8.4/encoding/gb2312.enc -mingw/lib/tcl8.4/encoding/iso2022-jp.enc -mingw/lib/tcl8.4/encoding/iso2022-kr.enc -mingw/lib/tcl8.4/encoding/iso2022.enc -mingw/lib/tcl8.4/encoding/iso8859-1.enc -mingw/lib/tcl8.4/encoding/iso8859-10.enc -mingw/lib/tcl8.4/encoding/iso8859-13.enc -mingw/lib/tcl8.4/encoding/iso8859-14.enc -mingw/lib/tcl8.4/encoding/iso8859-15.enc -mingw/lib/tcl8.4/encoding/iso8859-16.enc -mingw/lib/tcl8.4/encoding/iso8859-2.enc -mingw/lib/tcl8.4/encoding/iso8859-3.enc -mingw/lib/tcl8.4/encoding/iso8859-4.enc -mingw/lib/tcl8.4/encoding/iso8859-5.enc -mingw/lib/tcl8.4/encoding/iso8859-6.enc -mingw/lib/tcl8.4/encoding/iso8859-7.enc -mingw/lib/tcl8.4/encoding/iso8859-8.enc -mingw/lib/tcl8.4/encoding/iso8859-9.enc -mingw/lib/tcl8.4/encoding/jis0201.enc -mingw/lib/tcl8.4/encoding/jis0208.enc -mingw/lib/tcl8.4/encoding/jis0212.enc -mingw/lib/tcl8.4/encoding/koi8-r.enc -mingw/lib/tcl8.4/encoding/koi8-u.enc -mingw/lib/tcl8.4/encoding/ksc5601.enc -mingw/lib/tcl8.4/encoding/macCentEuro.enc -mingw/lib/tcl8.4/encoding/macCroatian.enc -mingw/lib/tcl8.4/encoding/macCyrillic.enc -mingw/lib/tcl8.4/encoding/macDingbats.enc -mingw/lib/tcl8.4/encoding/macGreek.enc -mingw/lib/tcl8.4/encoding/macIceland.enc -mingw/lib/tcl8.4/encoding/macJapan.enc -mingw/lib/tcl8.4/encoding/macRoman.enc -mingw/lib/tcl8.4/encoding/macRomania.enc -mingw/lib/tcl8.4/encoding/macThai.enc -mingw/lib/tcl8.4/encoding/macTurkish.enc -mingw/lib/tcl8.4/encoding/macUkraine.enc -mingw/lib/tcl8.4/encoding/shiftjis.enc -mingw/lib/tcl8.4/encoding/symbol.enc -mingw/lib/tcl8.4/encoding/tis-620.enc -mingw/lib/tcl8.4/history.tcl -mingw/lib/tcl8.4/http1.0/http.tcl -mingw/lib/tcl8.4/http1.0/pkgIndex.tcl -mingw/lib/tcl8.4/http2.4/http.tcl -mingw/lib/tcl8.4/http2.4/pkgIndex.tcl -mingw/lib/tcl8.4/http2.5/http.tcl -mingw/lib/tcl8.4/http2.5/pkgIndex.tcl -mingw/lib/tcl8.4/init.tcl -mingw/lib/tcl8.4/ldAout.tcl -mingw/lib/tcl8.4/msgcat1.3/msgcat.tcl -mingw/lib/tcl8.4/msgcat1.3/pkgIndex.tcl -mingw/lib/tcl8.4/opt0.4/optparse.tcl -mingw/lib/tcl8.4/opt0.4/pkgIndex.tcl -mingw/lib/tcl8.4/package.tcl -mingw/lib/tcl8.4/parray.tcl -mingw/lib/tcl8.4/reg1.1/pkgIndex.tcl -mingw/lib/tcl8.4/reg1.1/registry.tap -mingw/lib/tcl8.4/reg1.1/tclreg11.dll -mingw/lib/tcl8.4/safe.tcl -mingw/lib/tcl8.4/tclIndex -mingw/lib/tcl8.4/tcltest2.2/pkgIndex.tcl -mingw/lib/tcl8.4/tcltest2.2/tcltest.tcl -mingw/lib/tcl8.4/word.tcl -mingw/lib/tclConfig.sh -mingw/lib/tifftclConfig.sh -mingw/lib/tk8.4/bgerror.tcl -mingw/lib/tk8.4/button.tcl -mingw/lib/tk8.4/choosedir.tcl -mingw/lib/tk8.4/clrpick.tcl -mingw/lib/tk8.4/comdlg.tcl -mingw/lib/tk8.4/console.tcl -mingw/lib/tk8.4/demos/README -mingw/lib/tk8.4/demos/arrow.tcl -mingw/lib/tk8.4/demos/bind.tcl -mingw/lib/tk8.4/demos/bitmap.tcl -mingw/lib/tk8.4/demos/browse -mingw/lib/tk8.4/demos/button.tcl -mingw/lib/tk8.4/demos/check.tcl -mingw/lib/tk8.4/demos/clrpick.tcl -mingw/lib/tk8.4/demos/colors.tcl -mingw/lib/tk8.4/demos/cscroll.tcl -mingw/lib/tk8.4/demos/ctext.tcl -mingw/lib/tk8.4/demos/dialog1.tcl -mingw/lib/tk8.4/demos/dialog2.tcl -mingw/lib/tk8.4/demos/entry1.tcl -mingw/lib/tk8.4/demos/entry2.tcl -mingw/lib/tk8.4/demos/entry3.tcl -mingw/lib/tk8.4/demos/filebox.tcl -mingw/lib/tk8.4/demos/floor.tcl -mingw/lib/tk8.4/demos/form.tcl -mingw/lib/tk8.4/demos/hello -mingw/lib/tk8.4/demos/hscale.tcl -mingw/lib/tk8.4/demos/icon.tcl -mingw/lib/tk8.4/demos/image1.tcl -mingw/lib/tk8.4/demos/image2.tcl -mingw/lib/tk8.4/demos/images/earth.gif -mingw/lib/tk8.4/demos/images/earthris.gif -mingw/lib/tk8.4/demos/images/face.bmp -mingw/lib/tk8.4/demos/images/flagdown.bmp -mingw/lib/tk8.4/demos/images/flagup.bmp -mingw/lib/tk8.4/demos/images/gray25.bmp -mingw/lib/tk8.4/demos/images/letters.bmp -mingw/lib/tk8.4/demos/images/noletter.bmp -mingw/lib/tk8.4/demos/images/pattern.bmp -mingw/lib/tk8.4/demos/images/tcllogo.gif -mingw/lib/tk8.4/demos/images/teapot.ppm -mingw/lib/tk8.4/demos/items.tcl -mingw/lib/tk8.4/demos/ixset -mingw/lib/tk8.4/demos/label.tcl -mingw/lib/tk8.4/demos/labelframe.tcl -mingw/lib/tk8.4/demos/license.terms -mingw/lib/tk8.4/demos/menu.tcl -mingw/lib/tk8.4/demos/menubu.tcl -mingw/lib/tk8.4/demos/msgbox.tcl -mingw/lib/tk8.4/demos/paned1.tcl -mingw/lib/tk8.4/demos/paned2.tcl -mingw/lib/tk8.4/demos/plot.tcl -mingw/lib/tk8.4/demos/puzzle.tcl -mingw/lib/tk8.4/demos/radio.tcl -mingw/lib/tk8.4/demos/rmt -mingw/lib/tk8.4/demos/rolodex -mingw/lib/tk8.4/demos/ruler.tcl -mingw/lib/tk8.4/demos/sayings.tcl -mingw/lib/tk8.4/demos/search.tcl -mingw/lib/tk8.4/demos/spin.tcl -mingw/lib/tk8.4/demos/square -mingw/lib/tk8.4/demos/states.tcl -mingw/lib/tk8.4/demos/style.tcl -mingw/lib/tk8.4/demos/tclIndex -mingw/lib/tk8.4/demos/tcolor -mingw/lib/tk8.4/demos/text.tcl -mingw/lib/tk8.4/demos/timer -mingw/lib/tk8.4/demos/twind.tcl -mingw/lib/tk8.4/demos/unicodeout.tcl -mingw/lib/tk8.4/demos/vscale.tcl -mingw/lib/tk8.4/demos/widget -mingw/lib/tk8.4/dialog.tcl -mingw/lib/tk8.4/entry.tcl -mingw/lib/tk8.4/focus.tcl -mingw/lib/tk8.4/images/README -mingw/lib/tk8.4/images/logo.eps -mingw/lib/tk8.4/images/logo100.gif -mingw/lib/tk8.4/images/logo64.gif -mingw/lib/tk8.4/images/logoLarge.gif -mingw/lib/tk8.4/images/logoMed.gif -mingw/lib/tk8.4/images/pwrdLogo.eps -mingw/lib/tk8.4/images/pwrdLogo100.gif -mingw/lib/tk8.4/images/pwrdLogo150.gif -mingw/lib/tk8.4/images/pwrdLogo175.gif -mingw/lib/tk8.4/images/pwrdLogo200.gif -mingw/lib/tk8.4/images/pwrdLogo75.gif -mingw/lib/tk8.4/images/tai-ku.gif -mingw/lib/tk8.4/listbox.tcl -mingw/lib/tk8.4/menu.tcl -mingw/lib/tk8.4/mkpsenc.tcl -mingw/lib/tk8.4/msgbox.tcl -mingw/lib/tk8.4/msgs/cs.msg -mingw/lib/tk8.4/msgs/de.msg -mingw/lib/tk8.4/msgs/el.msg -mingw/lib/tk8.4/msgs/en.msg -mingw/lib/tk8.4/msgs/en_gb.msg -mingw/lib/tk8.4/msgs/eo.msg -mingw/lib/tk8.4/msgs/es.msg -mingw/lib/tk8.4/msgs/es_ES.msg -mingw/lib/tk8.4/msgs/fr.msg -mingw/lib/tk8.4/msgs/it.msg -mingw/lib/tk8.4/msgs/nl.msg -mingw/lib/tk8.4/msgs/pl.msg -mingw/lib/tk8.4/msgs/pt.msg -mingw/lib/tk8.4/msgs/ru.msg -mingw/lib/tk8.4/obsolete.tcl -mingw/lib/tk8.4/optMenu.tcl -mingw/lib/tk8.4/palette.tcl -mingw/lib/tk8.4/panedwindow.tcl -mingw/lib/tk8.4/pkgIndex.tcl -mingw/lib/tk8.4/prolog.ps -mingw/lib/tk8.4/safetk.tcl -mingw/lib/tk8.4/scale.tcl -mingw/lib/tk8.4/scrlbar.tcl -mingw/lib/tk8.4/spinbox.tcl -mingw/lib/tk8.4/tclIndex -mingw/lib/tk8.4/tearoff.tcl -mingw/lib/tk8.4/text.tcl -mingw/lib/tk8.4/tk.tcl -mingw/lib/tk8.4/tkAppInit.c -mingw/lib/tk8.4/tkfbox.tcl -mingw/lib/tk8.4/unsupported.tcl -mingw/lib/tk8.4/xmfbox.tcl -mingw/lib/tkConfig.sh -mingw/lib/tkimgConfig.sh -mingw/lib/zlibtclConfig.sh +/mingw/bin/tcl85.dll +/mingw/bin/tclpip85.dll +/mingw/bin/tclsh85.exe +/mingw/bin/tk85.dll +/mingw/bin/wish85.exe +/mingw/include/X11/X.h +/mingw/include/X11/Xlib.h +/mingw/include/X11/Xutil.h +/mingw/include/X11/keysym.h +/mingw/include/tcl.h +/mingw/include/tclDecls.h +/mingw/include/tclPlatDecls.h +/mingw/include/tclTomMath.h +/mingw/include/tclTomMathDecls.h +/mingw/include/tk.h +/mingw/include/tkDecls.h +/mingw/include/tkIntXlibDecls.h +/mingw/include/tkPlatDecls.h +/mingw/include/tommath_class.h +/mingw/include/tommath_superclass.h +/mingw/lib/dde1.3/pkgIndex.tcl +/mingw/lib/dde1.3/tcldde13.dll +/mingw/lib/libtcl85.a +/mingw/lib/libtclstub85.a +/mingw/lib/libtk85.a +/mingw/lib/libtkstub85.a +/mingw/lib/reg1.2/pkgIndex.tcl +/mingw/lib/reg1.2/tclreg12.dll +/mingw/lib/tcl8.5/auto.tcl +/mingw/lib/tcl8.5/clock.tcl +/mingw/lib/tcl8.5/encoding/ascii.enc +/mingw/lib/tcl8.5/encoding/big5.enc +/mingw/lib/tcl8.5/encoding/cp1250.enc +/mingw/lib/tcl8.5/encoding/cp1251.enc +/mingw/lib/tcl8.5/encoding/cp1252.enc +/mingw/lib/tcl8.5/encoding/cp1253.enc +/mingw/lib/tcl8.5/encoding/cp1254.enc +/mingw/lib/tcl8.5/encoding/cp1255.enc +/mingw/lib/tcl8.5/encoding/cp1256.enc +/mingw/lib/tcl8.5/encoding/cp1257.enc +/mingw/lib/tcl8.5/encoding/cp1258.enc +/mingw/lib/tcl8.5/encoding/cp437.enc +/mingw/lib/tcl8.5/encoding/cp737.enc +/mingw/lib/tcl8.5/encoding/cp775.enc +/mingw/lib/tcl8.5/encoding/cp850.enc +/mingw/lib/tcl8.5/encoding/cp852.enc +/mingw/lib/tcl8.5/encoding/cp855.enc +/mingw/lib/tcl8.5/encoding/cp857.enc +/mingw/lib/tcl8.5/encoding/cp860.enc +/mingw/lib/tcl8.5/encoding/cp861.enc +/mingw/lib/tcl8.5/encoding/cp862.enc +/mingw/lib/tcl8.5/encoding/cp863.enc +/mingw/lib/tcl8.5/encoding/cp864.enc +/mingw/lib/tcl8.5/encoding/cp865.enc +/mingw/lib/tcl8.5/encoding/cp866.enc +/mingw/lib/tcl8.5/encoding/cp869.enc +/mingw/lib/tcl8.5/encoding/cp874.enc +/mingw/lib/tcl8.5/encoding/cp932.enc +/mingw/lib/tcl8.5/encoding/cp936.enc +/mingw/lib/tcl8.5/encoding/cp949.enc +/mingw/lib/tcl8.5/encoding/cp950.enc +/mingw/lib/tcl8.5/encoding/dingbats.enc +/mingw/lib/tcl8.5/encoding/ebcdic.enc +/mingw/lib/tcl8.5/encoding/euc-cn.enc +/mingw/lib/tcl8.5/encoding/euc-jp.enc +/mingw/lib/tcl8.5/encoding/euc-kr.enc +/mingw/lib/tcl8.5/encoding/gb12345.enc +/mingw/lib/tcl8.5/encoding/gb1988.enc +/mingw/lib/tcl8.5/encoding/gb2312-raw.enc +/mingw/lib/tcl8.5/encoding/gb2312.enc +/mingw/lib/tcl8.5/encoding/iso2022-jp.enc +/mingw/lib/tcl8.5/encoding/iso2022-kr.enc +/mingw/lib/tcl8.5/encoding/iso2022.enc +/mingw/lib/tcl8.5/encoding/iso8859-1.enc +/mingw/lib/tcl8.5/encoding/iso8859-10.enc +/mingw/lib/tcl8.5/encoding/iso8859-13.enc +/mingw/lib/tcl8.5/encoding/iso8859-14.enc +/mingw/lib/tcl8.5/encoding/iso8859-15.enc +/mingw/lib/tcl8.5/encoding/iso8859-16.enc +/mingw/lib/tcl8.5/encoding/iso8859-2.enc +/mingw/lib/tcl8.5/encoding/iso8859-3.enc +/mingw/lib/tcl8.5/encoding/iso8859-4.enc +/mingw/lib/tcl8.5/encoding/iso8859-5.enc +/mingw/lib/tcl8.5/encoding/iso8859-6.enc +/mingw/lib/tcl8.5/encoding/iso8859-7.enc +/mingw/lib/tcl8.5/encoding/iso8859-8.enc +/mingw/lib/tcl8.5/encoding/iso8859-9.enc +/mingw/lib/tcl8.5/encoding/jis0201.enc +/mingw/lib/tcl8.5/encoding/jis0208.enc +/mingw/lib/tcl8.5/encoding/jis0212.enc +/mingw/lib/tcl8.5/encoding/koi8-r.enc +/mingw/lib/tcl8.5/encoding/koi8-u.enc +/mingw/lib/tcl8.5/encoding/ksc5601.enc +/mingw/lib/tcl8.5/encoding/macCentEuro.enc +/mingw/lib/tcl8.5/encoding/macCroatian.enc +/mingw/lib/tcl8.5/encoding/macCyrillic.enc +/mingw/lib/tcl8.5/encoding/macDingbats.enc +/mingw/lib/tcl8.5/encoding/macGreek.enc +/mingw/lib/tcl8.5/encoding/macIceland.enc +/mingw/lib/tcl8.5/encoding/macJapan.enc +/mingw/lib/tcl8.5/encoding/macRoman.enc +/mingw/lib/tcl8.5/encoding/macRomania.enc +/mingw/lib/tcl8.5/encoding/macThai.enc +/mingw/lib/tcl8.5/encoding/macTurkish.enc +/mingw/lib/tcl8.5/encoding/macUkraine.enc +/mingw/lib/tcl8.5/encoding/shiftjis.enc +/mingw/lib/tcl8.5/encoding/symbol.enc +/mingw/lib/tcl8.5/encoding/tis-620.enc +/mingw/lib/tcl8.5/history.tcl +/mingw/lib/tcl8.5/http1.0/http.tcl +/mingw/lib/tcl8.5/http1.0/pkgIndex.tcl +/mingw/lib/tcl8.5/init.tcl +/mingw/lib/tcl8.5/msgs/af.msg +/mingw/lib/tcl8.5/msgs/af_za.msg +/mingw/lib/tcl8.5/msgs/ar.msg +/mingw/lib/tcl8.5/msgs/ar_in.msg +/mingw/lib/tcl8.5/msgs/ar_jo.msg +/mingw/lib/tcl8.5/msgs/ar_lb.msg +/mingw/lib/tcl8.5/msgs/ar_sy.msg +/mingw/lib/tcl8.5/msgs/be.msg +/mingw/lib/tcl8.5/msgs/bg.msg +/mingw/lib/tcl8.5/msgs/bn.msg +/mingw/lib/tcl8.5/msgs/bn_in.msg +/mingw/lib/tcl8.5/msgs/ca.msg +/mingw/lib/tcl8.5/msgs/cs.msg +/mingw/lib/tcl8.5/msgs/da.msg +/mingw/lib/tcl8.5/msgs/de.msg +/mingw/lib/tcl8.5/msgs/de_at.msg +/mingw/lib/tcl8.5/msgs/de_be.msg +/mingw/lib/tcl8.5/msgs/el.msg +/mingw/lib/tcl8.5/msgs/en_au.msg +/mingw/lib/tcl8.5/msgs/en_be.msg +/mingw/lib/tcl8.5/msgs/en_bw.msg +/mingw/lib/tcl8.5/msgs/en_ca.msg +/mingw/lib/tcl8.5/msgs/en_gb.msg +/mingw/lib/tcl8.5/msgs/en_hk.msg +/mingw/lib/tcl8.5/msgs/en_ie.msg +/mingw/lib/tcl8.5/msgs/en_in.msg +/mingw/lib/tcl8.5/msgs/en_nz.msg +/mingw/lib/tcl8.5/msgs/en_ph.msg +/mingw/lib/tcl8.5/msgs/en_sg.msg +/mingw/lib/tcl8.5/msgs/en_za.msg +/mingw/lib/tcl8.5/msgs/en_zw.msg +/mingw/lib/tcl8.5/msgs/eo.msg +/mingw/lib/tcl8.5/msgs/es.msg +/mingw/lib/tcl8.5/msgs/es_ar.msg +/mingw/lib/tcl8.5/msgs/es_bo.msg +/mingw/lib/tcl8.5/msgs/es_cl.msg +/mingw/lib/tcl8.5/msgs/es_co.msg +/mingw/lib/tcl8.5/msgs/es_cr.msg +/mingw/lib/tcl8.5/msgs/es_do.msg +/mingw/lib/tcl8.5/msgs/es_ec.msg +/mingw/lib/tcl8.5/msgs/es_gt.msg +/mingw/lib/tcl8.5/msgs/es_hn.msg +/mingw/lib/tcl8.5/msgs/es_mx.msg +/mingw/lib/tcl8.5/msgs/es_ni.msg +/mingw/lib/tcl8.5/msgs/es_pa.msg +/mingw/lib/tcl8.5/msgs/es_pe.msg +/mingw/lib/tcl8.5/msgs/es_pr.msg +/mingw/lib/tcl8.5/msgs/es_py.msg +/mingw/lib/tcl8.5/msgs/es_sv.msg +/mingw/lib/tcl8.5/msgs/es_uy.msg +/mingw/lib/tcl8.5/msgs/es_ve.msg +/mingw/lib/tcl8.5/msgs/et.msg +/mingw/lib/tcl8.5/msgs/eu.msg +/mingw/lib/tcl8.5/msgs/eu_es.msg +/mingw/lib/tcl8.5/msgs/fa.msg +/mingw/lib/tcl8.5/msgs/fa_in.msg +/mingw/lib/tcl8.5/msgs/fa_ir.msg +/mingw/lib/tcl8.5/msgs/fi.msg +/mingw/lib/tcl8.5/msgs/fo.msg +/mingw/lib/tcl8.5/msgs/fo_fo.msg +/mingw/lib/tcl8.5/msgs/fr.msg +/mingw/lib/tcl8.5/msgs/fr_be.msg +/mingw/lib/tcl8.5/msgs/fr_ca.msg +/mingw/lib/tcl8.5/msgs/fr_ch.msg +/mingw/lib/tcl8.5/msgs/ga.msg +/mingw/lib/tcl8.5/msgs/ga_ie.msg +/mingw/lib/tcl8.5/msgs/gl.msg +/mingw/lib/tcl8.5/msgs/gl_es.msg +/mingw/lib/tcl8.5/msgs/gv.msg +/mingw/lib/tcl8.5/msgs/gv_gb.msg +/mingw/lib/tcl8.5/msgs/he.msg +/mingw/lib/tcl8.5/msgs/hi.msg +/mingw/lib/tcl8.5/msgs/hi_in.msg +/mingw/lib/tcl8.5/msgs/hr.msg +/mingw/lib/tcl8.5/msgs/hu.msg +/mingw/lib/tcl8.5/msgs/id.msg +/mingw/lib/tcl8.5/msgs/id_id.msg +/mingw/lib/tcl8.5/msgs/is.msg +/mingw/lib/tcl8.5/msgs/it.msg +/mingw/lib/tcl8.5/msgs/it_ch.msg +/mingw/lib/tcl8.5/msgs/ja.msg +/mingw/lib/tcl8.5/msgs/kl.msg +/mingw/lib/tcl8.5/msgs/kl_gl.msg +/mingw/lib/tcl8.5/msgs/ko.msg +/mingw/lib/tcl8.5/msgs/ko_kr.msg +/mingw/lib/tcl8.5/msgs/kok.msg +/mingw/lib/tcl8.5/msgs/kok_in.msg +/mingw/lib/tcl8.5/msgs/kw.msg +/mingw/lib/tcl8.5/msgs/kw_gb.msg +/mingw/lib/tcl8.5/msgs/lt.msg +/mingw/lib/tcl8.5/msgs/lv.msg +/mingw/lib/tcl8.5/msgs/mk.msg +/mingw/lib/tcl8.5/msgs/mr.msg +/mingw/lib/tcl8.5/msgs/mr_in.msg +/mingw/lib/tcl8.5/msgs/ms.msg +/mingw/lib/tcl8.5/msgs/ms_my.msg +/mingw/lib/tcl8.5/msgs/mt.msg +/mingw/lib/tcl8.5/msgs/nb.msg +/mingw/lib/tcl8.5/msgs/nl.msg +/mingw/lib/tcl8.5/msgs/nl_be.msg +/mingw/lib/tcl8.5/msgs/nn.msg +/mingw/lib/tcl8.5/msgs/pl.msg +/mingw/lib/tcl8.5/msgs/pt.msg +/mingw/lib/tcl8.5/msgs/pt_br.msg +/mingw/lib/tcl8.5/msgs/ro.msg +/mingw/lib/tcl8.5/msgs/ru.msg +/mingw/lib/tcl8.5/msgs/ru_ua.msg +/mingw/lib/tcl8.5/msgs/sh.msg +/mingw/lib/tcl8.5/msgs/sk.msg +/mingw/lib/tcl8.5/msgs/sl.msg +/mingw/lib/tcl8.5/msgs/sq.msg +/mingw/lib/tcl8.5/msgs/sr.msg +/mingw/lib/tcl8.5/msgs/sv.msg +/mingw/lib/tcl8.5/msgs/sw.msg +/mingw/lib/tcl8.5/msgs/ta.msg +/mingw/lib/tcl8.5/msgs/ta_in.msg +/mingw/lib/tcl8.5/msgs/te.msg +/mingw/lib/tcl8.5/msgs/te_in.msg +/mingw/lib/tcl8.5/msgs/th.msg +/mingw/lib/tcl8.5/msgs/tr.msg +/mingw/lib/tcl8.5/msgs/uk.msg +/mingw/lib/tcl8.5/msgs/vi.msg +/mingw/lib/tcl8.5/msgs/zh.msg +/mingw/lib/tcl8.5/msgs/zh_cn.msg +/mingw/lib/tcl8.5/msgs/zh_hk.msg +/mingw/lib/tcl8.5/msgs/zh_sg.msg +/mingw/lib/tcl8.5/msgs/zh_tw.msg +/mingw/lib/tcl8.5/opt0.4/optparse.tcl +/mingw/lib/tcl8.5/opt0.4/pkgIndex.tcl +/mingw/lib/tcl8.5/package.tcl +/mingw/lib/tcl8.5/parray.tcl +/mingw/lib/tcl8.5/safe.tcl +/mingw/lib/tcl8.5/tclIndex +/mingw/lib/tcl8.5/tm.tcl +/mingw/lib/tcl8.5/tzdata/Africa/Abidjan +/mingw/lib/tcl8.5/tzdata/Africa/Accra +/mingw/lib/tcl8.5/tzdata/Africa/Addis_Ababa +/mingw/lib/tcl8.5/tzdata/Africa/Algiers +/mingw/lib/tcl8.5/tzdata/Africa/Asmara +/mingw/lib/tcl8.5/tzdata/Africa/Asmera +/mingw/lib/tcl8.5/tzdata/Africa/Bamako +/mingw/lib/tcl8.5/tzdata/Africa/Bangui +/mingw/lib/tcl8.5/tzdata/Africa/Banjul +/mingw/lib/tcl8.5/tzdata/Africa/Bissau +/mingw/lib/tcl8.5/tzdata/Africa/Blantyre +/mingw/lib/tcl8.5/tzdata/Africa/Brazzaville +/mingw/lib/tcl8.5/tzdata/Africa/Bujumbura +/mingw/lib/tcl8.5/tzdata/Africa/Cairo +/mingw/lib/tcl8.5/tzdata/Africa/Casablanca +/mingw/lib/tcl8.5/tzdata/Africa/Ceuta +/mingw/lib/tcl8.5/tzdata/Africa/Conakry +/mingw/lib/tcl8.5/tzdata/Africa/Dakar +/mingw/lib/tcl8.5/tzdata/Africa/Dar_es_Salaam +/mingw/lib/tcl8.5/tzdata/Africa/Djibouti +/mingw/lib/tcl8.5/tzdata/Africa/Douala +/mingw/lib/tcl8.5/tzdata/Africa/El_Aaiun +/mingw/lib/tcl8.5/tzdata/Africa/Freetown +/mingw/lib/tcl8.5/tzdata/Africa/Gaborone +/mingw/lib/tcl8.5/tzdata/Africa/Harare +/mingw/lib/tcl8.5/tzdata/Africa/Johannesburg +/mingw/lib/tcl8.5/tzdata/Africa/Kampala +/mingw/lib/tcl8.5/tzdata/Africa/Khartoum +/mingw/lib/tcl8.5/tzdata/Africa/Kigali +/mingw/lib/tcl8.5/tzdata/Africa/Kinshasa +/mingw/lib/tcl8.5/tzdata/Africa/Lagos +/mingw/lib/tcl8.5/tzdata/Africa/Libreville +/mingw/lib/tcl8.5/tzdata/Africa/Lome +/mingw/lib/tcl8.5/tzdata/Africa/Luanda +/mingw/lib/tcl8.5/tzdata/Africa/Lubumbashi +/mingw/lib/tcl8.5/tzdata/Africa/Lusaka +/mingw/lib/tcl8.5/tzdata/Africa/Malabo +/mingw/lib/tcl8.5/tzdata/Africa/Maputo +/mingw/lib/tcl8.5/tzdata/Africa/Maseru +/mingw/lib/tcl8.5/tzdata/Africa/Mbabane +/mingw/lib/tcl8.5/tzdata/Africa/Mogadishu +/mingw/lib/tcl8.5/tzdata/Africa/Monrovia +/mingw/lib/tcl8.5/tzdata/Africa/Nairobi +/mingw/lib/tcl8.5/tzdata/Africa/Ndjamena +/mingw/lib/tcl8.5/tzdata/Africa/Niamey +/mingw/lib/tcl8.5/tzdata/Africa/Nouakchott +/mingw/lib/tcl8.5/tzdata/Africa/Ouagadougou +/mingw/lib/tcl8.5/tzdata/Africa/Porto-Novo +/mingw/lib/tcl8.5/tzdata/Africa/Sao_Tome +/mingw/lib/tcl8.5/tzdata/Africa/Timbuktu +/mingw/lib/tcl8.5/tzdata/Africa/Tripoli +/mingw/lib/tcl8.5/tzdata/Africa/Tunis +/mingw/lib/tcl8.5/tzdata/Africa/Windhoek +/mingw/lib/tcl8.5/tzdata/America/Adak +/mingw/lib/tcl8.5/tzdata/America/Anchorage +/mingw/lib/tcl8.5/tzdata/America/Anguilla +/mingw/lib/tcl8.5/tzdata/America/Antigua +/mingw/lib/tcl8.5/tzdata/America/Araguaina +/mingw/lib/tcl8.5/tzdata/America/Argentina/Buenos_Aires +/mingw/lib/tcl8.5/tzdata/America/Argentina/Catamarca +/mingw/lib/tcl8.5/tzdata/America/Argentina/ComodRivadavia +/mingw/lib/tcl8.5/tzdata/America/Argentina/Cordoba +/mingw/lib/tcl8.5/tzdata/America/Argentina/Jujuy +/mingw/lib/tcl8.5/tzdata/America/Argentina/La_Rioja +/mingw/lib/tcl8.5/tzdata/America/Argentina/Mendoza +/mingw/lib/tcl8.5/tzdata/America/Argentina/Rio_Gallegos +/mingw/lib/tcl8.5/tzdata/America/Argentina/San_Juan +/mingw/lib/tcl8.5/tzdata/America/Argentina/Tucuman +/mingw/lib/tcl8.5/tzdata/America/Argentina/Ushuaia +/mingw/lib/tcl8.5/tzdata/America/Aruba +/mingw/lib/tcl8.5/tzdata/America/Asuncion +/mingw/lib/tcl8.5/tzdata/America/Atikokan +/mingw/lib/tcl8.5/tzdata/America/Atka +/mingw/lib/tcl8.5/tzdata/America/Bahia +/mingw/lib/tcl8.5/tzdata/America/Barbados +/mingw/lib/tcl8.5/tzdata/America/Belem +/mingw/lib/tcl8.5/tzdata/America/Belize +/mingw/lib/tcl8.5/tzdata/America/Blanc-Sablon +/mingw/lib/tcl8.5/tzdata/America/Boa_Vista +/mingw/lib/tcl8.5/tzdata/America/Bogota +/mingw/lib/tcl8.5/tzdata/America/Boise +/mingw/lib/tcl8.5/tzdata/America/Buenos_Aires +/mingw/lib/tcl8.5/tzdata/America/Cambridge_Bay +/mingw/lib/tcl8.5/tzdata/America/Campo_Grande +/mingw/lib/tcl8.5/tzdata/America/Cancun +/mingw/lib/tcl8.5/tzdata/America/Caracas +/mingw/lib/tcl8.5/tzdata/America/Catamarca +/mingw/lib/tcl8.5/tzdata/America/Cayenne +/mingw/lib/tcl8.5/tzdata/America/Cayman +/mingw/lib/tcl8.5/tzdata/America/Chicago +/mingw/lib/tcl8.5/tzdata/America/Chihuahua +/mingw/lib/tcl8.5/tzdata/America/Coral_Harbour +/mingw/lib/tcl8.5/tzdata/America/Cordoba +/mingw/lib/tcl8.5/tzdata/America/Costa_Rica +/mingw/lib/tcl8.5/tzdata/America/Cuiaba +/mingw/lib/tcl8.5/tzdata/America/Curacao +/mingw/lib/tcl8.5/tzdata/America/Danmarkshavn +/mingw/lib/tcl8.5/tzdata/America/Dawson +/mingw/lib/tcl8.5/tzdata/America/Dawson_Creek +/mingw/lib/tcl8.5/tzdata/America/Denver +/mingw/lib/tcl8.5/tzdata/America/Detroit +/mingw/lib/tcl8.5/tzdata/America/Dominica +/mingw/lib/tcl8.5/tzdata/America/Edmonton +/mingw/lib/tcl8.5/tzdata/America/Eirunepe +/mingw/lib/tcl8.5/tzdata/America/El_Salvador +/mingw/lib/tcl8.5/tzdata/America/Ensenada +/mingw/lib/tcl8.5/tzdata/America/Fort_Wayne +/mingw/lib/tcl8.5/tzdata/America/Fortaleza +/mingw/lib/tcl8.5/tzdata/America/Glace_Bay +/mingw/lib/tcl8.5/tzdata/America/Godthab +/mingw/lib/tcl8.5/tzdata/America/Goose_Bay +/mingw/lib/tcl8.5/tzdata/America/Grand_Turk +/mingw/lib/tcl8.5/tzdata/America/Grenada +/mingw/lib/tcl8.5/tzdata/America/Guadeloupe +/mingw/lib/tcl8.5/tzdata/America/Guatemala +/mingw/lib/tcl8.5/tzdata/America/Guayaquil +/mingw/lib/tcl8.5/tzdata/America/Guyana +/mingw/lib/tcl8.5/tzdata/America/Halifax +/mingw/lib/tcl8.5/tzdata/America/Havana +/mingw/lib/tcl8.5/tzdata/America/Hermosillo +/mingw/lib/tcl8.5/tzdata/America/Indiana/Indianapolis +/mingw/lib/tcl8.5/tzdata/America/Indiana/Knox +/mingw/lib/tcl8.5/tzdata/America/Indiana/Marengo +/mingw/lib/tcl8.5/tzdata/America/Indiana/Petersburg +/mingw/lib/tcl8.5/tzdata/America/Indiana/Tell_City +/mingw/lib/tcl8.5/tzdata/America/Indiana/Vevay +/mingw/lib/tcl8.5/tzdata/America/Indiana/Vincennes +/mingw/lib/tcl8.5/tzdata/America/Indiana/Winamac +/mingw/lib/tcl8.5/tzdata/America/Indianapolis +/mingw/lib/tcl8.5/tzdata/America/Inuvik +/mingw/lib/tcl8.5/tzdata/America/Iqaluit +/mingw/lib/tcl8.5/tzdata/America/Jamaica +/mingw/lib/tcl8.5/tzdata/America/Jujuy +/mingw/lib/tcl8.5/tzdata/America/Juneau +/mingw/lib/tcl8.5/tzdata/America/Kentucky/Louisville +/mingw/lib/tcl8.5/tzdata/America/Kentucky/Monticello +/mingw/lib/tcl8.5/tzdata/America/Knox_IN +/mingw/lib/tcl8.5/tzdata/America/La_Paz +/mingw/lib/tcl8.5/tzdata/America/Lima +/mingw/lib/tcl8.5/tzdata/America/Los_Angeles +/mingw/lib/tcl8.5/tzdata/America/Louisville +/mingw/lib/tcl8.5/tzdata/America/Maceio +/mingw/lib/tcl8.5/tzdata/America/Managua +/mingw/lib/tcl8.5/tzdata/America/Manaus +/mingw/lib/tcl8.5/tzdata/America/Martinique +/mingw/lib/tcl8.5/tzdata/America/Mazatlan +/mingw/lib/tcl8.5/tzdata/America/Mendoza +/mingw/lib/tcl8.5/tzdata/America/Menominee +/mingw/lib/tcl8.5/tzdata/America/Merida +/mingw/lib/tcl8.5/tzdata/America/Mexico_City +/mingw/lib/tcl8.5/tzdata/America/Miquelon +/mingw/lib/tcl8.5/tzdata/America/Moncton +/mingw/lib/tcl8.5/tzdata/America/Monterrey +/mingw/lib/tcl8.5/tzdata/America/Montevideo +/mingw/lib/tcl8.5/tzdata/America/Montreal +/mingw/lib/tcl8.5/tzdata/America/Montserrat +/mingw/lib/tcl8.5/tzdata/America/Nassau +/mingw/lib/tcl8.5/tzdata/America/New_York +/mingw/lib/tcl8.5/tzdata/America/Nipigon +/mingw/lib/tcl8.5/tzdata/America/Nome +/mingw/lib/tcl8.5/tzdata/America/Noronha +/mingw/lib/tcl8.5/tzdata/America/North_Dakota/Center +/mingw/lib/tcl8.5/tzdata/America/North_Dakota/New_Salem +/mingw/lib/tcl8.5/tzdata/America/Panama +/mingw/lib/tcl8.5/tzdata/America/Pangnirtung +/mingw/lib/tcl8.5/tzdata/America/Paramaribo +/mingw/lib/tcl8.5/tzdata/America/Phoenix +/mingw/lib/tcl8.5/tzdata/America/Port-au-Prince +/mingw/lib/tcl8.5/tzdata/America/Port_of_Spain +/mingw/lib/tcl8.5/tzdata/America/Porto_Acre +/mingw/lib/tcl8.5/tzdata/America/Porto_Velho +/mingw/lib/tcl8.5/tzdata/America/Puerto_Rico +/mingw/lib/tcl8.5/tzdata/America/Rainy_River +/mingw/lib/tcl8.5/tzdata/America/Rankin_Inlet +/mingw/lib/tcl8.5/tzdata/America/Recife +/mingw/lib/tcl8.5/tzdata/America/Regina +/mingw/lib/tcl8.5/tzdata/America/Resolute +/mingw/lib/tcl8.5/tzdata/America/Rio_Branco +/mingw/lib/tcl8.5/tzdata/America/Rosario +/mingw/lib/tcl8.5/tzdata/America/Santiago +/mingw/lib/tcl8.5/tzdata/America/Santo_Domingo +/mingw/lib/tcl8.5/tzdata/America/Sao_Paulo +/mingw/lib/tcl8.5/tzdata/America/Scoresbysund +/mingw/lib/tcl8.5/tzdata/America/Shiprock +/mingw/lib/tcl8.5/tzdata/America/St_Johns +/mingw/lib/tcl8.5/tzdata/America/St_Kitts +/mingw/lib/tcl8.5/tzdata/America/St_Lucia +/mingw/lib/tcl8.5/tzdata/America/St_Thomas +/mingw/lib/tcl8.5/tzdata/America/St_Vincent +/mingw/lib/tcl8.5/tzdata/America/Swift_Current +/mingw/lib/tcl8.5/tzdata/America/Tegucigalpa +/mingw/lib/tcl8.5/tzdata/America/Thule +/mingw/lib/tcl8.5/tzdata/America/Thunder_Bay +/mingw/lib/tcl8.5/tzdata/America/Tijuana +/mingw/lib/tcl8.5/tzdata/America/Toronto +/mingw/lib/tcl8.5/tzdata/America/Tortola +/mingw/lib/tcl8.5/tzdata/America/Vancouver +/mingw/lib/tcl8.5/tzdata/America/Virgin +/mingw/lib/tcl8.5/tzdata/America/Whitehorse +/mingw/lib/tcl8.5/tzdata/America/Winnipeg +/mingw/lib/tcl8.5/tzdata/America/Yakutat +/mingw/lib/tcl8.5/tzdata/America/Yellowknife +/mingw/lib/tcl8.5/tzdata/Antarctica/Casey +/mingw/lib/tcl8.5/tzdata/Antarctica/Davis +/mingw/lib/tcl8.5/tzdata/Antarctica/DumontDUrville +/mingw/lib/tcl8.5/tzdata/Antarctica/Mawson +/mingw/lib/tcl8.5/tzdata/Antarctica/McMurdo +/mingw/lib/tcl8.5/tzdata/Antarctica/Palmer +/mingw/lib/tcl8.5/tzdata/Antarctica/Rothera +/mingw/lib/tcl8.5/tzdata/Antarctica/South_Pole +/mingw/lib/tcl8.5/tzdata/Antarctica/Syowa +/mingw/lib/tcl8.5/tzdata/Antarctica/Vostok +/mingw/lib/tcl8.5/tzdata/Arctic/Longyearbyen +/mingw/lib/tcl8.5/tzdata/Asia/Aden +/mingw/lib/tcl8.5/tzdata/Asia/Almaty +/mingw/lib/tcl8.5/tzdata/Asia/Amman +/mingw/lib/tcl8.5/tzdata/Asia/Anadyr +/mingw/lib/tcl8.5/tzdata/Asia/Aqtau +/mingw/lib/tcl8.5/tzdata/Asia/Aqtobe +/mingw/lib/tcl8.5/tzdata/Asia/Ashgabat +/mingw/lib/tcl8.5/tzdata/Asia/Ashkhabad +/mingw/lib/tcl8.5/tzdata/Asia/Baghdad +/mingw/lib/tcl8.5/tzdata/Asia/Bahrain +/mingw/lib/tcl8.5/tzdata/Asia/Baku +/mingw/lib/tcl8.5/tzdata/Asia/Bangkok +/mingw/lib/tcl8.5/tzdata/Asia/Beirut +/mingw/lib/tcl8.5/tzdata/Asia/Bishkek +/mingw/lib/tcl8.5/tzdata/Asia/Brunei +/mingw/lib/tcl8.5/tzdata/Asia/Calcutta +/mingw/lib/tcl8.5/tzdata/Asia/Choibalsan +/mingw/lib/tcl8.5/tzdata/Asia/Chongqing +/mingw/lib/tcl8.5/tzdata/Asia/Chungking +/mingw/lib/tcl8.5/tzdata/Asia/Colombo +/mingw/lib/tcl8.5/tzdata/Asia/Dacca +/mingw/lib/tcl8.5/tzdata/Asia/Damascus +/mingw/lib/tcl8.5/tzdata/Asia/Dhaka +/mingw/lib/tcl8.5/tzdata/Asia/Dili +/mingw/lib/tcl8.5/tzdata/Asia/Dubai +/mingw/lib/tcl8.5/tzdata/Asia/Dushanbe +/mingw/lib/tcl8.5/tzdata/Asia/Gaza +/mingw/lib/tcl8.5/tzdata/Asia/Harbin +/mingw/lib/tcl8.5/tzdata/Asia/Hong_Kong +/mingw/lib/tcl8.5/tzdata/Asia/Hovd +/mingw/lib/tcl8.5/tzdata/Asia/Irkutsk +/mingw/lib/tcl8.5/tzdata/Asia/Istanbul +/mingw/lib/tcl8.5/tzdata/Asia/Jakarta +/mingw/lib/tcl8.5/tzdata/Asia/Jayapura +/mingw/lib/tcl8.5/tzdata/Asia/Jerusalem +/mingw/lib/tcl8.5/tzdata/Asia/Kabul +/mingw/lib/tcl8.5/tzdata/Asia/Kamchatka +/mingw/lib/tcl8.5/tzdata/Asia/Karachi +/mingw/lib/tcl8.5/tzdata/Asia/Kashgar +/mingw/lib/tcl8.5/tzdata/Asia/Katmandu +/mingw/lib/tcl8.5/tzdata/Asia/Krasnoyarsk +/mingw/lib/tcl8.5/tzdata/Asia/Kuala_Lumpur +/mingw/lib/tcl8.5/tzdata/Asia/Kuching +/mingw/lib/tcl8.5/tzdata/Asia/Kuwait +/mingw/lib/tcl8.5/tzdata/Asia/Macao +/mingw/lib/tcl8.5/tzdata/Asia/Macau +/mingw/lib/tcl8.5/tzdata/Asia/Magadan +/mingw/lib/tcl8.5/tzdata/Asia/Makassar +/mingw/lib/tcl8.5/tzdata/Asia/Manila +/mingw/lib/tcl8.5/tzdata/Asia/Muscat +/mingw/lib/tcl8.5/tzdata/Asia/Nicosia +/mingw/lib/tcl8.5/tzdata/Asia/Novosibirsk +/mingw/lib/tcl8.5/tzdata/Asia/Omsk +/mingw/lib/tcl8.5/tzdata/Asia/Oral +/mingw/lib/tcl8.5/tzdata/Asia/Phnom_Penh +/mingw/lib/tcl8.5/tzdata/Asia/Pontianak +/mingw/lib/tcl8.5/tzdata/Asia/Pyongyang +/mingw/lib/tcl8.5/tzdata/Asia/Qatar +/mingw/lib/tcl8.5/tzdata/Asia/Qyzylorda +/mingw/lib/tcl8.5/tzdata/Asia/Rangoon +/mingw/lib/tcl8.5/tzdata/Asia/Riyadh +/mingw/lib/tcl8.5/tzdata/Asia/Saigon +/mingw/lib/tcl8.5/tzdata/Asia/Sakhalin +/mingw/lib/tcl8.5/tzdata/Asia/Samarkand +/mingw/lib/tcl8.5/tzdata/Asia/Seoul +/mingw/lib/tcl8.5/tzdata/Asia/Shanghai +/mingw/lib/tcl8.5/tzdata/Asia/Singapore +/mingw/lib/tcl8.5/tzdata/Asia/Taipei +/mingw/lib/tcl8.5/tzdata/Asia/Tashkent +/mingw/lib/tcl8.5/tzdata/Asia/Tbilisi +/mingw/lib/tcl8.5/tzdata/Asia/Tehran +/mingw/lib/tcl8.5/tzdata/Asia/Tel_Aviv +/mingw/lib/tcl8.5/tzdata/Asia/Thimbu +/mingw/lib/tcl8.5/tzdata/Asia/Thimphu +/mingw/lib/tcl8.5/tzdata/Asia/Tokyo +/mingw/lib/tcl8.5/tzdata/Asia/Ujung_Pandang +/mingw/lib/tcl8.5/tzdata/Asia/Ulaanbaatar +/mingw/lib/tcl8.5/tzdata/Asia/Ulan_Bator +/mingw/lib/tcl8.5/tzdata/Asia/Urumqi +/mingw/lib/tcl8.5/tzdata/Asia/Vientiane +/mingw/lib/tcl8.5/tzdata/Asia/Vladivostok +/mingw/lib/tcl8.5/tzdata/Asia/Yakutsk +/mingw/lib/tcl8.5/tzdata/Asia/Yekaterinburg +/mingw/lib/tcl8.5/tzdata/Asia/Yerevan +/mingw/lib/tcl8.5/tzdata/Atlantic/Azores +/mingw/lib/tcl8.5/tzdata/Atlantic/Bermuda +/mingw/lib/tcl8.5/tzdata/Atlantic/Canary +/mingw/lib/tcl8.5/tzdata/Atlantic/Cape_Verde +/mingw/lib/tcl8.5/tzdata/Atlantic/Faeroe +/mingw/lib/tcl8.5/tzdata/Atlantic/Faroe +/mingw/lib/tcl8.5/tzdata/Atlantic/Jan_Mayen +/mingw/lib/tcl8.5/tzdata/Atlantic/Madeira +/mingw/lib/tcl8.5/tzdata/Atlantic/Reykjavik +/mingw/lib/tcl8.5/tzdata/Atlantic/South_Georgia +/mingw/lib/tcl8.5/tzdata/Atlantic/St_Helena +/mingw/lib/tcl8.5/tzdata/Atlantic/Stanley +/mingw/lib/tcl8.5/tzdata/Australia/ACT +/mingw/lib/tcl8.5/tzdata/Australia/Adelaide +/mingw/lib/tcl8.5/tzdata/Australia/Brisbane +/mingw/lib/tcl8.5/tzdata/Australia/Broken_Hill +/mingw/lib/tcl8.5/tzdata/Australia/Canberra +/mingw/lib/tcl8.5/tzdata/Australia/Currie +/mingw/lib/tcl8.5/tzdata/Australia/Darwin +/mingw/lib/tcl8.5/tzdata/Australia/Eucla +/mingw/lib/tcl8.5/tzdata/Australia/Hobart +/mingw/lib/tcl8.5/tzdata/Australia/LHI +/mingw/lib/tcl8.5/tzdata/Australia/Lindeman +/mingw/lib/tcl8.5/tzdata/Australia/Lord_Howe +/mingw/lib/tcl8.5/tzdata/Australia/Melbourne +/mingw/lib/tcl8.5/tzdata/Australia/NSW +/mingw/lib/tcl8.5/tzdata/Australia/North +/mingw/lib/tcl8.5/tzdata/Australia/Perth +/mingw/lib/tcl8.5/tzdata/Australia/Queensland +/mingw/lib/tcl8.5/tzdata/Australia/South +/mingw/lib/tcl8.5/tzdata/Australia/Sydney +/mingw/lib/tcl8.5/tzdata/Australia/Tasmania +/mingw/lib/tcl8.5/tzdata/Australia/Victoria +/mingw/lib/tcl8.5/tzdata/Australia/West +/mingw/lib/tcl8.5/tzdata/Australia/Yancowinna +/mingw/lib/tcl8.5/tzdata/Brazil/Acre +/mingw/lib/tcl8.5/tzdata/Brazil/DeNoronha +/mingw/lib/tcl8.5/tzdata/Brazil/East +/mingw/lib/tcl8.5/tzdata/Brazil/West +/mingw/lib/tcl8.5/tzdata/CET +/mingw/lib/tcl8.5/tzdata/CST6CDT +/mingw/lib/tcl8.5/tzdata/Canada/Atlantic +/mingw/lib/tcl8.5/tzdata/Canada/Central +/mingw/lib/tcl8.5/tzdata/Canada/East-Saskatchewan +/mingw/lib/tcl8.5/tzdata/Canada/Eastern +/mingw/lib/tcl8.5/tzdata/Canada/Mountain +/mingw/lib/tcl8.5/tzdata/Canada/Newfoundland +/mingw/lib/tcl8.5/tzdata/Canada/Pacific +/mingw/lib/tcl8.5/tzdata/Canada/Saskatchewan +/mingw/lib/tcl8.5/tzdata/Canada/Yukon +/mingw/lib/tcl8.5/tzdata/Chile/Continental +/mingw/lib/tcl8.5/tzdata/Chile/EasterIsland +/mingw/lib/tcl8.5/tzdata/Cuba +/mingw/lib/tcl8.5/tzdata/EET +/mingw/lib/tcl8.5/tzdata/EST +/mingw/lib/tcl8.5/tzdata/EST5EDT +/mingw/lib/tcl8.5/tzdata/Egypt +/mingw/lib/tcl8.5/tzdata/Eire +/mingw/lib/tcl8.5/tzdata/Etc/GMT +/mingw/lib/tcl8.5/tzdata/Etc/GMT+0 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+1 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+10 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+11 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+12 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+2 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+3 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+4 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+5 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+6 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+7 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+8 +/mingw/lib/tcl8.5/tzdata/Etc/GMT+9 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-0 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-1 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-10 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-11 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-12 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-13 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-14 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-2 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-3 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-4 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-5 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-6 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-7 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-8 +/mingw/lib/tcl8.5/tzdata/Etc/GMT-9 +/mingw/lib/tcl8.5/tzdata/Etc/GMT0 +/mingw/lib/tcl8.5/tzdata/Etc/Greenwich +/mingw/lib/tcl8.5/tzdata/Etc/UCT +/mingw/lib/tcl8.5/tzdata/Etc/UTC +/mingw/lib/tcl8.5/tzdata/Etc/Universal +/mingw/lib/tcl8.5/tzdata/Etc/Zulu +/mingw/lib/tcl8.5/tzdata/Europe/Amsterdam +/mingw/lib/tcl8.5/tzdata/Europe/Andorra +/mingw/lib/tcl8.5/tzdata/Europe/Athens +/mingw/lib/tcl8.5/tzdata/Europe/Belfast +/mingw/lib/tcl8.5/tzdata/Europe/Belgrade +/mingw/lib/tcl8.5/tzdata/Europe/Berlin +/mingw/lib/tcl8.5/tzdata/Europe/Bratislava +/mingw/lib/tcl8.5/tzdata/Europe/Brussels +/mingw/lib/tcl8.5/tzdata/Europe/Bucharest +/mingw/lib/tcl8.5/tzdata/Europe/Budapest +/mingw/lib/tcl8.5/tzdata/Europe/Chisinau +/mingw/lib/tcl8.5/tzdata/Europe/Copenhagen +/mingw/lib/tcl8.5/tzdata/Europe/Dublin +/mingw/lib/tcl8.5/tzdata/Europe/Gibraltar +/mingw/lib/tcl8.5/tzdata/Europe/Guernsey +/mingw/lib/tcl8.5/tzdata/Europe/Helsinki +/mingw/lib/tcl8.5/tzdata/Europe/Isle_of_Man +/mingw/lib/tcl8.5/tzdata/Europe/Istanbul +/mingw/lib/tcl8.5/tzdata/Europe/Jersey +/mingw/lib/tcl8.5/tzdata/Europe/Kaliningrad +/mingw/lib/tcl8.5/tzdata/Europe/Kiev +/mingw/lib/tcl8.5/tzdata/Europe/Lisbon +/mingw/lib/tcl8.5/tzdata/Europe/Ljubljana +/mingw/lib/tcl8.5/tzdata/Europe/London +/mingw/lib/tcl8.5/tzdata/Europe/Luxembourg +/mingw/lib/tcl8.5/tzdata/Europe/Madrid +/mingw/lib/tcl8.5/tzdata/Europe/Malta +/mingw/lib/tcl8.5/tzdata/Europe/Mariehamn +/mingw/lib/tcl8.5/tzdata/Europe/Minsk +/mingw/lib/tcl8.5/tzdata/Europe/Monaco +/mingw/lib/tcl8.5/tzdata/Europe/Moscow +/mingw/lib/tcl8.5/tzdata/Europe/Nicosia +/mingw/lib/tcl8.5/tzdata/Europe/Oslo +/mingw/lib/tcl8.5/tzdata/Europe/Paris +/mingw/lib/tcl8.5/tzdata/Europe/Podgorica +/mingw/lib/tcl8.5/tzdata/Europe/Prague +/mingw/lib/tcl8.5/tzdata/Europe/Riga +/mingw/lib/tcl8.5/tzdata/Europe/Rome +/mingw/lib/tcl8.5/tzdata/Europe/Samara +/mingw/lib/tcl8.5/tzdata/Europe/San_Marino +/mingw/lib/tcl8.5/tzdata/Europe/Sarajevo +/mingw/lib/tcl8.5/tzdata/Europe/Simferopol +/mingw/lib/tcl8.5/tzdata/Europe/Skopje +/mingw/lib/tcl8.5/tzdata/Europe/Sofia +/mingw/lib/tcl8.5/tzdata/Europe/Stockholm +/mingw/lib/tcl8.5/tzdata/Europe/Tallinn +/mingw/lib/tcl8.5/tzdata/Europe/Tirane +/mingw/lib/tcl8.5/tzdata/Europe/Tiraspol +/mingw/lib/tcl8.5/tzdata/Europe/Uzhgorod +/mingw/lib/tcl8.5/tzdata/Europe/Vaduz +/mingw/lib/tcl8.5/tzdata/Europe/Vatican +/mingw/lib/tcl8.5/tzdata/Europe/Vienna +/mingw/lib/tcl8.5/tzdata/Europe/Vilnius +/mingw/lib/tcl8.5/tzdata/Europe/Volgograd +/mingw/lib/tcl8.5/tzdata/Europe/Warsaw +/mingw/lib/tcl8.5/tzdata/Europe/Zagreb +/mingw/lib/tcl8.5/tzdata/Europe/Zaporozhye +/mingw/lib/tcl8.5/tzdata/Europe/Zurich +/mingw/lib/tcl8.5/tzdata/GB +/mingw/lib/tcl8.5/tzdata/GB-Eire +/mingw/lib/tcl8.5/tzdata/GMT +/mingw/lib/tcl8.5/tzdata/GMT+0 +/mingw/lib/tcl8.5/tzdata/GMT-0 +/mingw/lib/tcl8.5/tzdata/GMT0 +/mingw/lib/tcl8.5/tzdata/Greenwich +/mingw/lib/tcl8.5/tzdata/HST +/mingw/lib/tcl8.5/tzdata/Hongkong +/mingw/lib/tcl8.5/tzdata/Iceland +/mingw/lib/tcl8.5/tzdata/Indian/Antananarivo +/mingw/lib/tcl8.5/tzdata/Indian/Chagos +/mingw/lib/tcl8.5/tzdata/Indian/Christmas +/mingw/lib/tcl8.5/tzdata/Indian/Cocos +/mingw/lib/tcl8.5/tzdata/Indian/Comoro +/mingw/lib/tcl8.5/tzdata/Indian/Kerguelen +/mingw/lib/tcl8.5/tzdata/Indian/Mahe +/mingw/lib/tcl8.5/tzdata/Indian/Maldives +/mingw/lib/tcl8.5/tzdata/Indian/Mauritius +/mingw/lib/tcl8.5/tzdata/Indian/Mayotte +/mingw/lib/tcl8.5/tzdata/Indian/Reunion +/mingw/lib/tcl8.5/tzdata/Iran +/mingw/lib/tcl8.5/tzdata/Israel +/mingw/lib/tcl8.5/tzdata/Jamaica +/mingw/lib/tcl8.5/tzdata/Japan +/mingw/lib/tcl8.5/tzdata/Kwajalein +/mingw/lib/tcl8.5/tzdata/Libya +/mingw/lib/tcl8.5/tzdata/MET +/mingw/lib/tcl8.5/tzdata/MST +/mingw/lib/tcl8.5/tzdata/MST7MDT +/mingw/lib/tcl8.5/tzdata/Mexico/BajaNorte +/mingw/lib/tcl8.5/tzdata/Mexico/BajaSur +/mingw/lib/tcl8.5/tzdata/Mexico/General +/mingw/lib/tcl8.5/tzdata/NZ +/mingw/lib/tcl8.5/tzdata/NZ-CHAT +/mingw/lib/tcl8.5/tzdata/Navajo +/mingw/lib/tcl8.5/tzdata/PRC +/mingw/lib/tcl8.5/tzdata/PST8PDT +/mingw/lib/tcl8.5/tzdata/Pacific/Apia +/mingw/lib/tcl8.5/tzdata/Pacific/Auckland +/mingw/lib/tcl8.5/tzdata/Pacific/Chatham +/mingw/lib/tcl8.5/tzdata/Pacific/Easter +/mingw/lib/tcl8.5/tzdata/Pacific/Efate +/mingw/lib/tcl8.5/tzdata/Pacific/Enderbury +/mingw/lib/tcl8.5/tzdata/Pacific/Fakaofo +/mingw/lib/tcl8.5/tzdata/Pacific/Fiji +/mingw/lib/tcl8.5/tzdata/Pacific/Funafuti +/mingw/lib/tcl8.5/tzdata/Pacific/Galapagos +/mingw/lib/tcl8.5/tzdata/Pacific/Gambier +/mingw/lib/tcl8.5/tzdata/Pacific/Guadalcanal +/mingw/lib/tcl8.5/tzdata/Pacific/Guam +/mingw/lib/tcl8.5/tzdata/Pacific/Honolulu +/mingw/lib/tcl8.5/tzdata/Pacific/Johnston +/mingw/lib/tcl8.5/tzdata/Pacific/Kiritimati +/mingw/lib/tcl8.5/tzdata/Pacific/Kosrae +/mingw/lib/tcl8.5/tzdata/Pacific/Kwajalein +/mingw/lib/tcl8.5/tzdata/Pacific/Majuro +/mingw/lib/tcl8.5/tzdata/Pacific/Marquesas +/mingw/lib/tcl8.5/tzdata/Pacific/Midway +/mingw/lib/tcl8.5/tzdata/Pacific/Nauru +/mingw/lib/tcl8.5/tzdata/Pacific/Niue +/mingw/lib/tcl8.5/tzdata/Pacific/Norfolk +/mingw/lib/tcl8.5/tzdata/Pacific/Noumea +/mingw/lib/tcl8.5/tzdata/Pacific/Pago_Pago +/mingw/lib/tcl8.5/tzdata/Pacific/Palau +/mingw/lib/tcl8.5/tzdata/Pacific/Pitcairn +/mingw/lib/tcl8.5/tzdata/Pacific/Ponape +/mingw/lib/tcl8.5/tzdata/Pacific/Port_Moresby +/mingw/lib/tcl8.5/tzdata/Pacific/Rarotonga +/mingw/lib/tcl8.5/tzdata/Pacific/Saipan +/mingw/lib/tcl8.5/tzdata/Pacific/Samoa +/mingw/lib/tcl8.5/tzdata/Pacific/Tahiti +/mingw/lib/tcl8.5/tzdata/Pacific/Tarawa +/mingw/lib/tcl8.5/tzdata/Pacific/Tongatapu +/mingw/lib/tcl8.5/tzdata/Pacific/Truk +/mingw/lib/tcl8.5/tzdata/Pacific/Wake +/mingw/lib/tcl8.5/tzdata/Pacific/Wallis +/mingw/lib/tcl8.5/tzdata/Pacific/Yap +/mingw/lib/tcl8.5/tzdata/Poland +/mingw/lib/tcl8.5/tzdata/Portugal +/mingw/lib/tcl8.5/tzdata/ROC +/mingw/lib/tcl8.5/tzdata/ROK +/mingw/lib/tcl8.5/tzdata/Singapore +/mingw/lib/tcl8.5/tzdata/SystemV/AST4 +/mingw/lib/tcl8.5/tzdata/SystemV/AST4ADT +/mingw/lib/tcl8.5/tzdata/SystemV/CST6 +/mingw/lib/tcl8.5/tzdata/SystemV/CST6CDT +/mingw/lib/tcl8.5/tzdata/SystemV/EST5 +/mingw/lib/tcl8.5/tzdata/SystemV/EST5EDT +/mingw/lib/tcl8.5/tzdata/SystemV/HST10 +/mingw/lib/tcl8.5/tzdata/SystemV/MST7 +/mingw/lib/tcl8.5/tzdata/SystemV/MST7MDT +/mingw/lib/tcl8.5/tzdata/SystemV/PST8 +/mingw/lib/tcl8.5/tzdata/SystemV/PST8PDT +/mingw/lib/tcl8.5/tzdata/SystemV/YST9 +/mingw/lib/tcl8.5/tzdata/SystemV/YST9YDT +/mingw/lib/tcl8.5/tzdata/Turkey +/mingw/lib/tcl8.5/tzdata/UCT +/mingw/lib/tcl8.5/tzdata/US/Alaska +/mingw/lib/tcl8.5/tzdata/US/Aleutian +/mingw/lib/tcl8.5/tzdata/US/Arizona +/mingw/lib/tcl8.5/tzdata/US/Central +/mingw/lib/tcl8.5/tzdata/US/East-Indiana +/mingw/lib/tcl8.5/tzdata/US/Eastern +/mingw/lib/tcl8.5/tzdata/US/Hawaii +/mingw/lib/tcl8.5/tzdata/US/Indiana-Starke +/mingw/lib/tcl8.5/tzdata/US/Michigan +/mingw/lib/tcl8.5/tzdata/US/Mountain +/mingw/lib/tcl8.5/tzdata/US/Pacific +/mingw/lib/tcl8.5/tzdata/US/Pacific-New +/mingw/lib/tcl8.5/tzdata/US/Samoa +/mingw/lib/tcl8.5/tzdata/UTC +/mingw/lib/tcl8.5/tzdata/Universal +/mingw/lib/tcl8.5/tzdata/W-SU +/mingw/lib/tcl8.5/tzdata/WET +/mingw/lib/tcl8.5/tzdata/Zulu +/mingw/lib/tcl8.5/word.tcl +/mingw/lib/tcl8/8.4/http-2.5.3.tm +/mingw/lib/tcl8/8.4/platform-1.0.3.tm +/mingw/lib/tcl8/8.4/platform/shell-1.1.3.tm +/mingw/lib/tcl8/8.5/msgcat-1.4.2.tm +/mingw/lib/tcl8/8.5/tcltest-2.3b1.tm +/mingw/lib/tk8.5/bgerror.tcl +/mingw/lib/tk8.5/button.tcl +/mingw/lib/tk8.5/choosedir.tcl +/mingw/lib/tk8.5/clrpick.tcl +/mingw/lib/tk8.5/comdlg.tcl +/mingw/lib/tk8.5/console.tcl +/mingw/lib/tk8.5/demos/README +/mingw/lib/tk8.5/demos/anilabel.tcl +/mingw/lib/tk8.5/demos/aniwave.tcl +/mingw/lib/tk8.5/demos/arrow.tcl +/mingw/lib/tk8.5/demos/bind.tcl +/mingw/lib/tk8.5/demos/bitmap.tcl +/mingw/lib/tk8.5/demos/browse +/mingw/lib/tk8.5/demos/button.tcl +/mingw/lib/tk8.5/demos/check.tcl +/mingw/lib/tk8.5/demos/clrpick.tcl +/mingw/lib/tk8.5/demos/colors.tcl +/mingw/lib/tk8.5/demos/combo.tcl +/mingw/lib/tk8.5/demos/cscroll.tcl +/mingw/lib/tk8.5/demos/ctext.tcl +/mingw/lib/tk8.5/demos/dialog1.tcl +/mingw/lib/tk8.5/demos/dialog2.tcl +/mingw/lib/tk8.5/demos/en.msg +/mingw/lib/tk8.5/demos/entry1.tcl +/mingw/lib/tk8.5/demos/entry2.tcl +/mingw/lib/tk8.5/demos/entry3.tcl +/mingw/lib/tk8.5/demos/filebox.tcl +/mingw/lib/tk8.5/demos/floor.tcl +/mingw/lib/tk8.5/demos/form.tcl +/mingw/lib/tk8.5/demos/goldberg.tcl +/mingw/lib/tk8.5/demos/hello +/mingw/lib/tk8.5/demos/hscale.tcl +/mingw/lib/tk8.5/demos/icon.tcl +/mingw/lib/tk8.5/demos/image1.tcl +/mingw/lib/tk8.5/demos/image2.tcl +/mingw/lib/tk8.5/demos/images/earth.gif +/mingw/lib/tk8.5/demos/images/earthris.gif +/mingw/lib/tk8.5/demos/images/face.xbm +/mingw/lib/tk8.5/demos/images/flagdown.xbm +/mingw/lib/tk8.5/demos/images/flagup.xbm +/mingw/lib/tk8.5/demos/images/gray25.xbm +/mingw/lib/tk8.5/demos/images/letters.xbm +/mingw/lib/tk8.5/demos/images/noletter.xbm +/mingw/lib/tk8.5/demos/images/pattern.xbm +/mingw/lib/tk8.5/demos/images/tcllogo.gif +/mingw/lib/tk8.5/demos/images/teapot.ppm +/mingw/lib/tk8.5/demos/items.tcl +/mingw/lib/tk8.5/demos/ixset +/mingw/lib/tk8.5/demos/label.tcl +/mingw/lib/tk8.5/demos/labelframe.tcl +/mingw/lib/tk8.5/demos/license.terms +/mingw/lib/tk8.5/demos/menu.tcl +/mingw/lib/tk8.5/demos/menubu.tcl +/mingw/lib/tk8.5/demos/msgbox.tcl +/mingw/lib/tk8.5/demos/nl.msg +/mingw/lib/tk8.5/demos/paned1.tcl +/mingw/lib/tk8.5/demos/paned2.tcl +/mingw/lib/tk8.5/demos/pendulum.tcl +/mingw/lib/tk8.5/demos/plot.tcl +/mingw/lib/tk8.5/demos/puzzle.tcl +/mingw/lib/tk8.5/demos/radio.tcl +/mingw/lib/tk8.5/demos/rmt +/mingw/lib/tk8.5/demos/rolodex +/mingw/lib/tk8.5/demos/ruler.tcl +/mingw/lib/tk8.5/demos/sayings.tcl +/mingw/lib/tk8.5/demos/search.tcl +/mingw/lib/tk8.5/demos/spin.tcl +/mingw/lib/tk8.5/demos/square +/mingw/lib/tk8.5/demos/states.tcl +/mingw/lib/tk8.5/demos/style.tcl +/mingw/lib/tk8.5/demos/tclIndex +/mingw/lib/tk8.5/demos/tcolor +/mingw/lib/tk8.5/demos/text.tcl +/mingw/lib/tk8.5/demos/textpeer.tcl +/mingw/lib/tk8.5/demos/timer +/mingw/lib/tk8.5/demos/toolbar.tcl +/mingw/lib/tk8.5/demos/tree.tcl +/mingw/lib/tk8.5/demos/ttkbut.tcl +/mingw/lib/tk8.5/demos/ttkmenu.tcl +/mingw/lib/tk8.5/demos/ttknote.tcl +/mingw/lib/tk8.5/demos/ttkpane.tcl +/mingw/lib/tk8.5/demos/ttkprogress.tcl +/mingw/lib/tk8.5/demos/twind.tcl +/mingw/lib/tk8.5/demos/unicodeout.tcl +/mingw/lib/tk8.5/demos/vscale.tcl +/mingw/lib/tk8.5/demos/widget +/mingw/lib/tk8.5/dialog.tcl +/mingw/lib/tk8.5/entry.tcl +/mingw/lib/tk8.5/focus.tcl +/mingw/lib/tk8.5/images/README +/mingw/lib/tk8.5/images/logo.eps +/mingw/lib/tk8.5/images/logo100.gif +/mingw/lib/tk8.5/images/logo64.gif +/mingw/lib/tk8.5/images/logoLarge.gif +/mingw/lib/tk8.5/images/logoMed.gif +/mingw/lib/tk8.5/images/pwrdLogo.eps +/mingw/lib/tk8.5/images/pwrdLogo100.gif +/mingw/lib/tk8.5/images/pwrdLogo150.gif +/mingw/lib/tk8.5/images/pwrdLogo175.gif +/mingw/lib/tk8.5/images/pwrdLogo200.gif +/mingw/lib/tk8.5/images/pwrdLogo75.gif +/mingw/lib/tk8.5/images/tai-ku.gif +/mingw/lib/tk8.5/listbox.tcl +/mingw/lib/tk8.5/menu.tcl +/mingw/lib/tk8.5/mkpsenc.tcl +/mingw/lib/tk8.5/msgbox.tcl +/mingw/lib/tk8.5/msgs/cs.msg +/mingw/lib/tk8.5/msgs/de.msg +/mingw/lib/tk8.5/msgs/el.msg +/mingw/lib/tk8.5/msgs/en.msg +/mingw/lib/tk8.5/msgs/en_gb.msg +/mingw/lib/tk8.5/msgs/eo.msg +/mingw/lib/tk8.5/msgs/es.msg +/mingw/lib/tk8.5/msgs/fr.msg +/mingw/lib/tk8.5/msgs/hu.msg +/mingw/lib/tk8.5/msgs/it.msg +/mingw/lib/tk8.5/msgs/nl.msg +/mingw/lib/tk8.5/msgs/pl.msg +/mingw/lib/tk8.5/msgs/pt.msg +/mingw/lib/tk8.5/msgs/ru.msg +/mingw/lib/tk8.5/msgs/sv.msg +/mingw/lib/tk8.5/obsolete.tcl +/mingw/lib/tk8.5/optMenu.tcl +/mingw/lib/tk8.5/palette.tcl +/mingw/lib/tk8.5/panedwindow.tcl +/mingw/lib/tk8.5/pkgIndex.tcl +/mingw/lib/tk8.5/prolog.ps +/mingw/lib/tk8.5/safetk.tcl +/mingw/lib/tk8.5/scale.tcl +/mingw/lib/tk8.5/scrlbar.tcl +/mingw/lib/tk8.5/spinbox.tcl +/mingw/lib/tk8.5/tclIndex +/mingw/lib/tk8.5/tearoff.tcl +/mingw/lib/tk8.5/text.tcl +/mingw/lib/tk8.5/tk.tcl +/mingw/lib/tk8.5/tkAppInit.c +/mingw/lib/tk8.5/tkfbox.tcl +/mingw/lib/tk8.5/ttk/altTheme.tcl +/mingw/lib/tk8.5/ttk/aquaTheme.tcl +/mingw/lib/tk8.5/ttk/button.tcl +/mingw/lib/tk8.5/ttk/clamTheme.tcl +/mingw/lib/tk8.5/ttk/classicTheme.tcl +/mingw/lib/tk8.5/ttk/combobox.tcl +/mingw/lib/tk8.5/ttk/cursors.tcl +/mingw/lib/tk8.5/ttk/defaults.tcl +/mingw/lib/tk8.5/ttk/entry.tcl +/mingw/lib/tk8.5/ttk/fonts.tcl +/mingw/lib/tk8.5/ttk/menubutton.tcl +/mingw/lib/tk8.5/ttk/notebook.tcl +/mingw/lib/tk8.5/ttk/panedwindow.tcl +/mingw/lib/tk8.5/ttk/progress.tcl +/mingw/lib/tk8.5/ttk/scale.tcl +/mingw/lib/tk8.5/ttk/scrollbar.tcl +/mingw/lib/tk8.5/ttk/sizegrip.tcl +/mingw/lib/tk8.5/ttk/treeview.tcl +/mingw/lib/tk8.5/ttk/ttk.tcl +/mingw/lib/tk8.5/ttk/utils.tcl +/mingw/lib/tk8.5/ttk/winTheme.tcl +/mingw/lib/tk8.5/ttk/xpTheme.tcl +/mingw/lib/tk8.5/unsupported.tcl +/mingw/lib/tk8.5/xmfbox.tcl +/mingw/lib/tkConfig.sh -- 2.11.4.GIT

LYt{OPb+a35CmuU->L*T3(FFIrHxKZKK39@ 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ξ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%0AiCw;m4NiF& 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%0AHv_vX3T&-B~tVs%; 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¬sV!x=^ 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 literal 0 HcwPel00001 diff --git a/mingw/bin/tcldde12.dll b/mingw/bin/tcldde12.dll deleted file mode 100644 index 428e84a98ef88326c5c181e608a76c88163eb68b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 15360 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 diff --git a/mingw/bin/tclpip84.dll b/mingw/bin/tclpip84.dll deleted file mode 100644 index 72c29a924ba0f31405bb7849d454afa71d611f90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 22349 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 z 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 diff --git a/mingw/bin/tclsh b/mingw/bin/tclsh index e609bb24..80e19281 100644 --- a/mingw/bin/tclsh +++ b/mingw/bin/tclsh @@ -1,2 +1,2 @@ #!/bin/sh -exec tclsh84 "$@" +exec tclsh85 "$@" diff --git a/mingw/bin/tclsh84.exe b/mingw/bin/tclsh84.exe deleted file mode 100644 index c11c9f5da2273484f438a84fd7c488272701ff8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 26316 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 literal 0 HcwPel00001 diff --git a/mingw/bin/tk84.dll b/mingw/bin/tk84.dll deleted file mode 100644 index 10e0feec002242241c59ace45c46595c095f5468..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1109028 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