# PaCkAgE DaTaStReAm SMLItk 1 6126 # end of header 070701000067e1000081a400000064000000640000000133766dce000000bf000000200000001b00000000000000000000000f00000009SMLItk/pkginfoPKG=SMLItk NAME=tk ARCH=Solaris 2.5 VERSION=4.2p2 CATEGORY=application VENDOR=Sun Microsystems Laboratories, Inc. EMAIL=news:comp.lang.tcl PSTAMP=D.J. Gregor BASEDIR=/opt/SMLItk CLASSES=none 070701000067e0000081a400000064000000640000000133766dcf00005d01000000200000001b00000000000000000000000e00000009SMLItk/pkgmap: 1 6126 1 d none bin 0755 root root 1 f none bin/wish4.2 0755 root root 6016 16726 863399172 1 d none include 0755 root root 1 f none include/tk.h 0644 root root 55679 6545 863399175 1 d none lib 0755 root root 1 f none lib/libtk4.2.so 0555 root root 729428 46968 863399171 1 d none lib/tk4.2 0755 root root 1 f none lib/tk4.2/bgerror.tcl 0644 root root 2460 6782 863399176 1 f none lib/tk4.2/button.tcl 0644 root root 4547 48931 863399177 1 f none lib/tk4.2/clrpick.tcl 0644 root root 19765 35118 863399179 1 f none lib/tk4.2/comdlg.tcl 0644 root root 7490 22870 863399180 1 f none lib/tk4.2/console.tcl 0644 root root 10215 49757 863399181 1 d none lib/tk4.2/demos 0755 root root 1 f none lib/tk4.2/demos/README 0644 root root 2123 57424 863399210 1 f none lib/tk4.2/demos/arrow.tcl 0644 root root 7959 48722 863399211 1 f none lib/tk4.2/demos/bind.tcl 0644 root root 2964 63788 863399211 1 f none lib/tk4.2/demos/bitmap.tcl 0644 root root 1491 60808 863399212 1 f none lib/tk4.2/demos/browse 0755 root root 1597 2492 863399212 1 f none lib/tk4.2/demos/button.tcl 0644 root root 1362 49848 863399213 1 f none lib/tk4.2/demos/check.tcl 0644 root root 1247 43291 863399213 1 f none lib/tk4.2/demos/clrpick.tcl 0644 root root 1506 62839 863399214 1 f none lib/tk4.2/demos/colors.tcl 0644 root root 5071 44318 863399214 1 f none lib/tk4.2/demos/cscroll.tcl 0644 root root 3058 58781 863399215 1 f none lib/tk4.2/demos/ctext.tcl 0644 root root 4997 28056 863399215 1 f none lib/tk4.2/demos/dialog1.tcl 0644 root root 709 60981 863399215 1 f none lib/tk4.2/demos/dialog2.tcl 0644 root root 661 55978 863399216 1 f none lib/tk4.2/demos/entry1.tcl 0644 root root 1506 762 863399216 1 f none lib/tk4.2/demos/entry2.tcl 0644 root root 2232 63967 863399217 1 f none lib/tk4.2/demos/filebox.tcl 0644 root root 2011 31215 863399218 1 f none lib/tk4.2/demos/floor.tcl 0644 root root 79239 683 863399219 1 f none lib/tk4.2/demos/form.tcl 0644 root root 1120 28473 863399219 1 f none lib/tk4.2/demos/hello 0755 root root 493 40830 863399220 1 f none lib/tk4.2/demos/hscale.tcl 0644 root root 1571 63046 863399221 1 f none lib/tk4.2/demos/icon.tcl 0644 root root 2084 54241 863399221 1 f none lib/tk4.2/demos/image1.tcl 0644 root root 1026 22628 863399222 1 f none lib/tk4.2/demos/image2.tcl 0644 root root 2503 17195 863399222 1 d none lib/tk4.2/demos/images 0755 root root 1 f none lib/tk4.2/demos/images/earth.gif 0644 root root 51712 45825 863399235 1 f none lib/tk4.2/demos/images/earthris.gif 0644 root root 6343 14546 863399237 1 f none lib/tk4.2/demos/images/face.bmp 0644 root root 12720 3276 863399238 1 f none lib/tk4.2/demos/images/flagdown.bmp 0644 root root 1886 45912 863399239 1 f none lib/tk4.2/demos/images/flagup.bmp 0644 root root 1880 48731 863399240 1 f none lib/tk4.2/demos/images/gray25.bmp 0644 root root 275 17845 863399241 1 f none lib/tk4.2/demos/images/letters.bmp 0644 root root 1883 45587 863399243 1 f none lib/tk4.2/demos/images/noletter.bmp 0644 root root 1889 49923 863399244 1 f none lib/tk4.2/demos/images/pattern.bmp 0644 root root 272 18096 863399245 1 f none lib/tk4.2/demos/images/tcllogo.gif 0644 root root 2341 13514 863399246 1 f none lib/tk4.2/demos/images/teapot.ppm 0644 root root 196623 33672 863399248 1 f none lib/tk4.2/demos/items.tcl 0644 root root 9810 6196 863399223 1 f none lib/tk4.2/demos/ixset 0755 root root 7511 9407 863399223 1 f none lib/tk4.2/demos/label.tcl 0644 root root 1340 50321 863399224 1 f none lib/tk4.2/demos/license.terms 0644 root root 2209 55092 863399224 1 f none lib/tk4.2/demos/menu.tcl 0644 root root 5142 48859 863399225 1 f none lib/tk4.2/demos/msgbox.tcl 0644 root root 2053 45256 863399225 1 f none lib/tk4.2/demos/plot.tcl 0644 root root 2844 33807 863399226 1 f none lib/tk4.2/demos/puzzle.tcl 0644 root root 2400 63704 863399226 1 f none lib/tk4.2/demos/radio.tcl 0644 root root 1578 5273 863399227 1 f none lib/tk4.2/demos/rmt 0755 root root 5292 51620 863399227 1 f none lib/tk4.2/demos/rolodex 0755 root root 8133 27624 863399227 1 f none lib/tk4.2/demos/ruler.tcl 0644 root root 5238 39458 863399228 1 f none lib/tk4.2/demos/sayings.tcl 0644 root root 2275 1737 863399228 1 f none lib/tk4.2/demos/search.tcl 0644 root root 4474 53654 863399229 1 f none lib/tk4.2/demos/square 0755 root root 1217 32477 863399229 1 f none lib/tk4.2/demos/states.tcl 0644 root root 1743 19838 863399230 1 f none lib/tk4.2/demos/style.tcl 0644 root root 6994 23884 863399230 1 f none lib/tk4.2/demos/tclIndex 0644 root root 4354 10748 863399231 1 f none lib/tk4.2/demos/tcolor 0755 root root 11421 11677 863399231 1 f none lib/tk4.2/demos/text.tcl 0644 root root 3238 28448 863399231 1 f none lib/tk4.2/demos/timer 0755 root root 909 9865 863399232 1 f none lib/tk4.2/demos/twind.tcl 0644 root root 6650 30250 863399232 1 f none lib/tk4.2/demos/vscale.tcl 0644 root root 1551 61240 863399233 1 f none lib/tk4.2/demos/widget 0755 root root 13379 12266 863399233 1 f none lib/tk4.2/dialog.tcl 0644 root root 4934 9870 863399182 1 f none lib/tk4.2/entry.tcl 0644 root root 13676 17562 863399183 1 f none lib/tk4.2/focus.tcl 0644 root root 4878 5758 863399185 1 f none lib/tk4.2/folder.gif 0644 root root 79 6333 863399202 1 f none lib/tk4.2/listbox.tcl 0644 root root 11585 38751 863399187 1 f none lib/tk4.2/menu.tcl 0644 root root 25604 1821 863399188 1 f none lib/tk4.2/msgbox.tcl 0644 root root 6667 6077 863399189 1 f none lib/tk4.2/obsolete.tcl 0644 root root 781 1781 863399190 1 f none lib/tk4.2/optMenu.tcl 0644 root root 1641 8049 863399191 1 f none lib/tk4.2/palette.tcl 0644 root root 6402 4023 863399193 1 f none lib/tk4.2/prolog.ps 0644 root root 9546 26973 863399207 1 f none lib/tk4.2/scale.tcl 0644 root root 6772 27672 863399194 1 f none lib/tk4.2/scrlbar.tcl 0644 root root 11192 7686 863399195 1 f none lib/tk4.2/tclIndex 0644 root root 16266 18944 863399206 1 f none lib/tk4.2/tearoff.tcl 0644 root root 3697 39921 863399196 1 f none lib/tk4.2/text.tcl 0644 root root 22623 26909 863399197 1 f none lib/tk4.2/textfile.gif 0644 root root 79 5957 863399203 1 f none lib/tk4.2/tk.tcl 0644 root root 4637 46620 863399199 1 f none lib/tk4.2/tkAppInit.c 0644 root root 3226 50297 863399208 1 f none lib/tk4.2/tkfbox.tcl 0644 root root 34206 44333 863399200 1 f none lib/tk4.2/updir.xbm 0644 root root 479 29945 863399205 1 f none lib/tk4.2/xmfbox.tcl 0644 root root 15957 38612 863399201 1 f none lib/tkConfig.sh 0644 root root 1788 19860 863399173 1 d none man 0755 root root 1 d none man/man1 0755 root root 1 f none man/man1/wish.1 0444 root root 12041 38789 863399250 1 d none man/man3 0755 root root 1 f none man/man3/3DBorder.3 0444 root root 16828 15243 863399251 1 f none man/man3/BindTable.3 0444 root root 11399 55820 863399252 1 f none man/man3/CanvPsY.3 0444 root root 9487 11871 863399252 1 f none man/man3/CanvTkwin.3 0444 root root 11244 39289 863399253 1 f none man/man3/CanvTxtInfo.3 0444 root root 9013 35125 863399253 1 f none man/man3/Clipboard.3 0444 root root 7755 49495 863399254 1 f none man/man3/ClrSelect.3 0444 root root 5959 15325 863399254 1 f none man/man3/ConfigWidg.3 0444 root root 33258 55982 863399255 1 f none man/man3/ConfigWind.3 0444 root root 10958 15258 863399256 1 f none man/man3/CoordToWin.3 0444 root root 6439 59592 863399256 1 f none man/man3/CrtErrHdlr.3 0444 root root 10999 19057 863399257 1 f none man/man3/CrtGenHdlr.3 0444 root root 8083 13432 863399257 1 f none man/man3/CrtImgType.3 0444 root root 13364 33070 863399258 1 f none man/man3/CrtItemType.3 0444 root root 28633 40498 863399258 1 f none man/man3/CrtPhImgFmt.3 0444 root root 14776 28777 863399258 1 f none man/man3/CrtSelHdlr.3 0444 root root 9956 52908 863399259 1 f none man/man3/CrtWindow.3 0444 root root 10851 2498 863399259 1 f none man/man3/DeleteImg.3 0444 root root 5616 48848 863399260 1 f none man/man3/DrawFocHlt.3 0444 root root 5870 7597 863399260 1 f none man/man3/EventHndlr.3 0444 root root 7754 48019 863399261 1 f none man/man3/FindPhoto.3 0444 root root 12550 22325 863399261 1 f none man/man3/FreeXId.3 0444 root root 6636 11644 863399261 1 f none man/man3/GeomReq.3 0444 root root 7519 29113 863399262 1 f none man/man3/GetAnchor.3 0444 root root 6976 37678 863399262 1 f none man/man3/GetBitmap.3 0444 root root 12140 45159 863399263 1 f none man/man3/GetCapStyl.3 0444 root root 6745 19705 863399263 1 f none man/man3/GetClrmap.3 0444 root root 7473 23320 863399264 1 f none man/man3/GetColor.3 0444 root root 10583 38518 863399264 1 f none man/man3/GetCursor.3 0444 root root 13007 1465 863399264 1 f none man/man3/GetFontStr.3 0444 root root 7733 45485 863399265 1 f none man/man3/GetGC.3 0444 root root 7540 26233 863399265 1 f none man/man3/GetImage.3 0444 root root 9761 28113 863399266 1 f none man/man3/GetJoinStl.3 0444 root root 6759 21960 863399266 1 f none man/man3/GetJustify.3 0444 root root 7032 46205 863399267 1 f none man/man3/GetOption.3 0444 root root 6162 33217 863399267 1 f none man/man3/GetPixels.3 0444 root root 7183 61903 863399268 1 f none man/man3/GetPixmap.3 0444 root root 6453 59892 863399268 1 f none man/man3/GetRelief.3 0444 root root 6638 5659 863399268 1 f none man/man3/GetRootCrd.3 0444 root root 6109 30364 863399269 1 f none man/man3/GetScroll.3 0444 root root 7039 46912 863399269 1 f none man/man3/GetSelect.3 0444 root root 7811 53299 863399270 1 f none man/man3/GetUid.3 0444 root root 6381 51546 863399270 1 f none man/man3/GetVRoot.3 0444 root root 6554 4199 863399271 1 f none man/man3/GetVisual.3 0444 root root 8281 29435 863399271 1 f none man/man3/HandleEvent.3 0444 root root 6372 53186 863399271 1 f none man/man3/IdToWindow.3 0444 root root 5602 48477 863399272 1 f none man/man3/ImgChanged.3 0444 root root 7174 58397 863399272 1 f none man/man3/InternAtom.3 0444 root root 6678 15192 863399273 1 f none man/man3/MainLoop.3 0444 root root 5698 57804 863399273 1 f none man/man3/MainWin.3 0444 root root 5712 58703 863399274 1 f none man/man3/MaintGeom.3 0444 root root 8793 14562 863399274 1 f none man/man3/ManageGeom.3 0444 root root 8185 24800 863399274 1 f none man/man3/MapWindow.3 0444 root root 6385 54175 863399275 1 f none man/man3/MoveToplev.3 0444 root root 6907 38169 863399275 1 f none man/man3/Name.3 0444 root root 7918 61007 863399276 1 f none man/man3/NameOfImg.3 0444 root root 5577 45445 863399276 1 f none man/man3/OwnSelect.3 0444 root root 6560 5230 863399277 1 f none man/man3/ParseArgv.3 0444 root root 19077 64526 863399277 1 f none man/man3/QWinEvent.3 0444 root root 6054 24060 863399278 1 f none man/man3/Restack.3 0444 root root 6349 50347 863399278 1 f none man/man3/RestrictEv.3 0444 root root 8283 33273 863399278 1 f none man/man3/SetAppName.3 0444 root root 7087 52923 863399279 1 f none man/man3/SetClass.3 0444 root root 6780 22850 863399279 1 f none man/man3/SetGrid.3 0444 root root 7101 55389 863399280 1 f none man/man3/SetVisual.3 0444 root root 6552 4391 863399280 1 f none man/man3/StrictMotif.3 0444 root root 5915 12172 863399281 1 l none man/man3/Tk_3DBorderColor.3=3DBorder.3 1 l none man/man3/Tk_3DBorderGC.3=3DBorder.3 1 l none man/man3/Tk_3DHorizontalBevel.3=3DBorder.3 1 l none man/man3/Tk_3DVerticalBevel.3=3DBorder.3 1 l none man/man3/Tk_Attributes.3=WindowId.3 1 l none man/man3/Tk_BindEvent.3=BindTable.3 1 l none man/man3/Tk_CanvasDrawableCoords.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasEventuallyRedraw.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasGetCoord.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasPsBitmap.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsColor.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsFont.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsPath.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsStipple.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsY.3=CanvPsY.3 1 l none man/man3/Tk_CanvasSetStippleOrigin.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasTagsOption.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasTextInfo.3=CanvTxtInfo.3 1 l none man/man3/Tk_CanvasTkwin.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasWindowCoords.3=CanvTkwin.3 1 l none man/man3/Tk_ChangeWindowAttributes.3=ConfigWind.3 1 l none man/man3/Tk_Changes.3=WindowId.3 1 l none man/man3/Tk_Class.3=SetClass.3 1 l none man/man3/Tk_ClearSelection.3=ClrSelect.3 1 l none man/man3/Tk_ClipboardAppend.3=Clipboard.3 1 l none man/man3/Tk_ClipboardClear.3=Clipboard.3 1 l none man/man3/Tk_Colormap.3=WindowId.3 1 l none man/man3/Tk_ConfigureInfo.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureValue.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureWidget.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureWindow.3=ConfigWind.3 1 l none man/man3/Tk_CoordsToWindow.3=CoordToWin.3 1 l none man/man3/Tk_CreateBinding.3=BindTable.3 1 l none man/man3/Tk_CreateBindingTable.3=BindTable.3 1 l none man/man3/Tk_CreateErrorHandler.3=CrtErrHdlr.3 1 l none man/man3/Tk_CreateEventHandler.3=EventHndlr.3 1 l none man/man3/Tk_CreateGenericHandler.3=CrtGenHdlr.3 1 l none man/man3/Tk_CreateImageType.3=CrtImgType.3 1 l none man/man3/Tk_CreateItemType.3=CrtItemType.3 1 l none man/man3/Tk_CreatePhotoImageFormat.3=CrtPhImgFmt.3 1 l none man/man3/Tk_CreateSelHandler.3=CrtSelHdlr.3 1 l none man/man3/Tk_CreateWindow.3=CrtWindow.3 1 l none man/man3/Tk_CreateWindowFromPath.3=CrtWindow.3 1 l none man/man3/Tk_DefineBitmap.3=GetBitmap.3 1 l none man/man3/Tk_DefineCursor.3=ConfigWind.3 1 l none man/man3/Tk_DeleteAllBindings.3=BindTable.3 1 l none man/man3/Tk_DeleteBinding.3=BindTable.3 1 l none man/man3/Tk_DeleteBindingTable.3=BindTable.3 1 l none man/man3/Tk_DeleteErrorHandler.3=CrtErrHdlr.3 1 l none man/man3/Tk_DeleteEventHandler.3=EventHndlr.3 1 l none man/man3/Tk_DeleteGenericHandler.3=CrtGenHdlr.3 1 l none man/man3/Tk_DeleteImage.3=DeleteImg.3 1 l none man/man3/Tk_DeleteSelHandler.3=CrtSelHdlr.3 1 l none man/man3/Tk_Depth.3=WindowId.3 1 l none man/man3/Tk_DestroyWindow.3=CrtWindow.3 1 l none man/man3/Tk_Display.3=WindowId.3 1 l none man/man3/Tk_DisplayName.3=WindowId.3 1 l none man/man3/Tk_Draw3DPolygon.3=3DBorder.3 1 l none man/man3/Tk_Draw3DRectangle.3=3DBorder.3 1 l none man/man3/Tk_DrawFocusHighlight.3=DrawFocHlt.3 1 l none man/man3/Tk_Fill3DPolygon.3=3DBorder.3 1 l none man/man3/Tk_Fill3DRectangle.3=3DBorder.3 1 l none man/man3/Tk_FindPhoto.3=FindPhoto.3 1 l none man/man3/Tk_Free3DBorder.3=3DBorder.3 1 l none man/man3/Tk_FreeBitmap.3=GetBitmap.3 1 l none man/man3/Tk_FreeColor.3=GetColor.3 1 l none man/man3/Tk_FreeColormap.3=GetClrmap.3 1 l none man/man3/Tk_FreeCursor.3=GetCursor.3 1 l none man/man3/Tk_FreeFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_FreeGC.3=GetGC.3 1 l none man/man3/Tk_FreeImage.3=GetImage.3 1 l none man/man3/Tk_FreeOptions.3=ConfigWidg.3 1 l none man/man3/Tk_FreePixmap.3=GetPixmap.3 1 l none man/man3/Tk_FreeXId.3=FreeXId.3 1 l none man/man3/Tk_GeometryRequest.3=GeomReq.3 1 l none man/man3/Tk_Get3DBorder.3=3DBorder.3 1 l none man/man3/Tk_GetAllBindings.3=BindTable.3 1 l none man/man3/Tk_GetAnchor.3=GetAnchor.3 1 l none man/man3/Tk_GetAtomName.3=InternAtom.3 1 l none man/man3/Tk_GetBinding.3=BindTable.3 1 l none man/man3/Tk_GetBitmap.3=GetBitmap.3 1 l none man/man3/Tk_GetBitmapFromData.3=GetBitmap.3 1 l none man/man3/Tk_GetCapStyle.3=GetCapStyl.3 1 l none man/man3/Tk_GetColor.3=GetColor.3 1 l none man/man3/Tk_GetColorByValue.3=GetColor.3 1 l none man/man3/Tk_GetColormap.3=GetClrmap.3 1 l none man/man3/Tk_GetCursor.3=GetCursor.3 1 l none man/man3/Tk_GetCursorFromData.3=GetCursor.3 1 l none man/man3/Tk_GetFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_GetGC.3=GetGC.3 1 l none man/man3/Tk_GetImage.3=GetImage.3 1 l none man/man3/Tk_GetItemTypes.3=CrtItemType.3 1 l none man/man3/Tk_GetJoinStyle.3=GetJoinStl.3 1 l none man/man3/Tk_GetJustify.3=GetJustify.3 1 l none man/man3/Tk_GetOption.3=GetOption.3 1 l none man/man3/Tk_GetPixels.3=GetPixels.3 1 l none man/man3/Tk_GetPixmap.3=GetPixmap.3 1 l none man/man3/Tk_GetRelief.3=GetRelief.3 1 l none man/man3/Tk_GetRootCoords.3=GetRootCrd.3 1 l none man/man3/Tk_GetScreenMM.3=GetPixels.3 1 l none man/man3/Tk_GetScrollInfo.3=GetScroll.3 1 l none man/man3/Tk_GetSelection.3=GetSelect.3 1 l none man/man3/Tk_GetUid.3=GetUid.3 1 l none man/man3/Tk_GetVRootGeometry.3=GetVRoot.3 1 l none man/man3/Tk_GetVisual.3=GetVisual.3 1 l none man/man3/Tk_HandleEvent.3=HandleEvent.3 1 l none man/man3/Tk_Height.3=WindowId.3 1 l none man/man3/Tk_IdToWindow.3=IdToWindow.3 1 l none man/man3/Tk_ImageChanged.3=ImgChanged.3 1 f none man/man3/Tk_Init.3 0444 root root 6222 39067 863399281 1 l none man/man3/Tk_InternAtom.3=InternAtom.3 1 l none man/man3/Tk_InternalBorderWidth.3=WindowId.3 1 l none man/man3/Tk_IsMapped.3=WindowId.3 1 l none man/man3/Tk_IsTopLevel.3=WindowId.3 1 f none man/man3/Tk_Main.3 0444 root root 6917 37261 863399281 1 l none man/man3/Tk_MainLoop.3=MainLoop.3 1 l none man/man3/Tk_MainWindow.3=MainWin.3 1 l none man/man3/Tk_MaintainGeometry.3=MaintGeom.3 1 l none man/man3/Tk_MakeWindowExist.3=CrtWindow.3 1 l none man/man3/Tk_ManageGeometry.3=ManageGeom.3 1 l none man/man3/Tk_MapWindow.3=MapWindow.3 1 l none man/man3/Tk_MoveResizeWindow.3=ConfigWind.3 1 l none man/man3/Tk_MoveToplevelWindow.3=MoveToplev.3 1 l none man/man3/Tk_MoveWindow.3=ConfigWind.3 1 l none man/man3/Tk_Name.3=Name.3 1 l none man/man3/Tk_NameOf3DBorder.3=3DBorder.3 1 l none man/man3/Tk_NameOfAnchor.3=GetAnchor.3 1 l none man/man3/Tk_NameOfBitmap.3=GetBitmap.3 1 l none man/man3/Tk_NameOfCapStyle.3=GetCapStyl.3 1 l none man/man3/Tk_NameOfColor.3=GetColor.3 1 l none man/man3/Tk_NameOfCursor.3=GetCursor.3 1 l none man/man3/Tk_NameOfFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_NameOfImage.3=NameOfImg.3 1 l none man/man3/Tk_NameOfJoinStyle.3=GetJoinStl.3 1 l none man/man3/Tk_NameOfJustify.3=GetJustify.3 1 l none man/man3/Tk_NameOfRelief.3=GetRelief.3 1 l none man/man3/Tk_NameToWindow.3=Name.3 1 l none man/man3/Tk_Offset.3=ConfigWidg.3 1 l none man/man3/Tk_OwnSelection.3=OwnSelect.3 1 l none man/man3/Tk_Parent.3=WindowId.3 1 l none man/man3/Tk_ParseArgv.3=ParseArgv.3 1 l none man/man3/Tk_PathName.3=Name.3 1 l none man/man3/Tk_PhotoBlank.3=FindPhoto.3 1 l none man/man3/Tk_PhotoExpand.3=FindPhoto.3 1 l none man/man3/Tk_PhotoGetImage.3=FindPhoto.3 1 l none man/man3/Tk_PhotoGetSize.3=FindPhoto.3 1 l none man/man3/Tk_PhotoPutBlock.3=FindPhoto.3 1 l none man/man3/Tk_PhotoPutZoomedBlock.3=FindPhoto.3 1 l none man/man3/Tk_PhotoSetSize.3=FindPhoto.3 1 l none man/man3/Tk_QueueWindowEvent.3=QWinEvent.3 1 l none man/man3/Tk_RedrawImage.3=GetImage.3 1 l none man/man3/Tk_ReqHeight.3=WindowId.3 1 l none man/man3/Tk_ReqWidth.3=WindowId.3 1 l none man/man3/Tk_ResizeWindow.3=ConfigWind.3 1 l none man/man3/Tk_RestackWindow.3=Restack.3 1 l none man/man3/Tk_RestrictEvents.3=RestrictEv.3 1 l none man/man3/Tk_Screen.3=WindowId.3 1 l none man/man3/Tk_ScreenNumber.3=WindowId.3 1 l none man/man3/Tk_SetAppName.3=SetAppName.3 1 l none man/man3/Tk_SetBackgroundFromBorder.3=3DBorder.3 1 l none man/man3/Tk_SetClass.3=SetClass.3 1 l none man/man3/Tk_SetGrid.3=SetGrid.3 1 l none man/man3/Tk_SetInternalBorder.3=GeomReq.3 1 l none man/man3/Tk_SetWindowBackground.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBackgroundPixmap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorder.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorderPixmap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorderWidth.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowColormap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowVisual.3=SetVisual.3 1 l none man/man3/Tk_SizeOfBitmap.3=GetBitmap.3 1 l none man/man3/Tk_SizeOfImage.3=GetImage.3 1 l none man/man3/Tk_StrictMotif.3=StrictMotif.3 1 l none man/man3/Tk_Uid.3=GetUid.3 1 l none man/man3/Tk_UndefineCursor.3=ConfigWind.3 1 l none man/man3/Tk_UnmaintainGeometry.3=MaintGeom.3 1 l none man/man3/Tk_UnmapWindow.3=MapWindow.3 1 l none man/man3/Tk_UnsetGrid.3=SetGrid.3 1 l none man/man3/Tk_Visual.3=WindowId.3 1 l none man/man3/Tk_Width.3=WindowId.3 1 l none man/man3/Tk_WindowId.3=WindowId.3 1 l none man/man3/Tk_X.3=WindowId.3 1 l none man/man3/Tk_Y.3=WindowId.3 1 f none man/man3/WindowId.3 0444 root root 9610 19935 863399282 1 d none man/mann 0755 root root 1 f none man/mann/bell.n 0444 root root 5799 825 863399332 1 f none man/mann/bind.n 0444 root root 24376 30989 863399333 1 f none man/mann/bindtags.n 0444 root root 7888 58713 863399333 1 f none man/mann/bitmap.n 0444 root root 8935 20821 863399334 1 f none man/mann/button.n 0444 root root 11477 59229 863399334 1 f none man/mann/canvas.n 0444 root root 72516 30180 863399335 1 f none man/mann/checkbutton.n 0444 root root 14650 25291 863399335 1 f none man/mann/chooseColor.n 0444 root root 6289 45485 863399335 1 f none man/mann/clipboard.n 0444 root root 8250 26417 863399336 1 f none man/mann/destroy.n 0444 root root 5671 55317 863399337 1 f none man/mann/dialog.n 0444 root root 6954 39316 863399337 1 f none man/mann/entry.n 0444 root root 22449 9204 863399337 1 f none man/mann/event.n 0444 root root 18582 47611 863399338 1 f none man/mann/focus.n 0444 root root 9634 24398 863399339 1 f none man/mann/focusNext.n 0444 root root 7193 887 863399340 1 f none man/mann/frame.n 0444 root root 9618 19136 863399340 1 f none man/mann/getOpenFile.n 0444 root root 11545 57059 863399341 1 f none man/mann/grab.n 0444 root root 9846 45071 863399341 1 f none man/mann/grid.n 0444 root root 20042 45248 863399342 1 f none man/mann/image.n 0444 root root 7982 1307 863399342 1 f none man/mann/label.n 0444 root root 8867 15017 863399343 1 f none man/mann/listbox.n 0444 root root 24301 47330 863399343 1 f none man/mann/lower.n 0444 root root 6016 20634 863399343 1 f none man/mann/menu.n 0444 root root 31844 16020 863399344 1 f none man/mann/menubar.n 0444 root root 5832 3932 863399344 1 f none man/mann/menubutton.n 0444 root root 13023 10187 863399345 1 f none man/mann/message.n 0444 root root 11056 17885 863399345 1 f none man/mann/messageBox.n 0444 root root 7670 38588 863399346 1 f none man/mann/option.n 0444 root root 8348 38509 863399347 1 f none man/mann/optionMenu.n 0444 root root 6194 37607 863399347 1 f none man/mann/options.n 0444 root root 22222 8223 863399348 1 f none man/mann/pack-old.n 0444 root root 12606 30642 863399348 1 f none man/mann/pack.n 0444 root root 15419 16696 863399349 1 f none man/mann/palette.n 0444 root root 7853 60884 863399349 1 f none man/mann/photo.n 0444 root root 20729 34473 863399350 1 f none man/mann/place.n 0444 root root 15065 57084 863399350 1 f none man/mann/popup.n 0444 root root 5795 1208 863399351 1 f none man/mann/radiobutton.n 0444 root root 14466 10662 863399351 1 f none man/mann/raise.n 0444 root root 6016 20422 863399351 1 f none man/mann/scale.n 0444 root root 15392 17324 863399352 1 f none man/mann/scrollbar.n 0444 root root 19512 1616 863399352 1 f none man/mann/selection.n 0444 root root 11238 38488 863399353 1 f none man/mann/send.n 0444 root root 8381 39968 863399353 1 f none man/mann/text.n 0444 root root 71159 55221 863399354 1 f none man/mann/tk.n 0444 root root 6538 1861 863399354 1 l none man/mann/tk_bindForTraversal.n=menubar.n 1 l none man/mann/tk_bisque.n=palette.n 1 l none man/mann/tk_chooseColor.n=chooseColor.n 1 l none man/mann/tk_dialog.n=dialog.n 1 l none man/mann/tk_focusFollowsMouse.n=focusNext.n 1 l none man/mann/tk_focusNext.n=focusNext.n 1 l none man/mann/tk_focusPrev.n=focusNext.n 1 l none man/mann/tk_getOpenFile.n=getOpenFile.n 1 l none man/mann/tk_getSaveFile.n=getOpenFile.n 1 l none man/mann/tk_menuBar.n=menubar.n 1 l none man/mann/tk_messageBox.n=messageBox.n 1 l none man/mann/tk_optionMenu.n=optionMenu.n 1 l none man/mann/tk_popup.n=popup.n 1 l none man/mann/tk_setPalette.n=palette.n 1 f none man/mann/tkerror.n 0444 root root 5753 62557 863399355 1 f none man/mann/tkvars.n 0444 root root 7708 46594 863399355 1 f none man/mann/tkwait.n 0444 root root 6735 22370 863399355 1 f none man/mann/toplevel.n 0444 root root 10191 7381 863399356 1 f none man/mann/winfo.n 0444 root root 18173 22640 863399356 1 f none man/mann/wm.n 0444 root root 30893 12234 863399357 1 i pkginfo 191 15516 863399374 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!070701000067e1000081a400000064000000640000000133766dce000000bf000000200000001b00000000000000000000000800000009pkginfoPKG=SMLItk NAME=tk ARCH=Solaris 2.5 VERSION=4.2p2 CATEGORY=application VENDOR=Sun Microsystems Laboratories, Inc. EMAIL=news:comp.lang.tcl PSTAMP=D.J. Gregor BASEDIR=/opt/SMLItk CLASSES=none 070701000067e0000081a400000064000000640000000133766dcf00005d01000000200000001b00000000000000000000000700000009pkgmap: 1 6126 1 d none bin 0755 root root 1 f none bin/wish4.2 0755 root root 6016 16726 863399172 1 d none include 0755 root root 1 f none include/tk.h 0644 root root 55679 6545 863399175 1 d none lib 0755 root root 1 f none lib/libtk4.2.so 0555 root root 729428 46968 863399171 1 d none lib/tk4.2 0755 root root 1 f none lib/tk4.2/bgerror.tcl 0644 root root 2460 6782 863399176 1 f none lib/tk4.2/button.tcl 0644 root root 4547 48931 863399177 1 f none lib/tk4.2/clrpick.tcl 0644 root root 19765 35118 863399179 1 f none lib/tk4.2/comdlg.tcl 0644 root root 7490 22870 863399180 1 f none lib/tk4.2/console.tcl 0644 root root 10215 49757 863399181 1 d none lib/tk4.2/demos 0755 root root 1 f none lib/tk4.2/demos/README 0644 root root 2123 57424 863399210 1 f none lib/tk4.2/demos/arrow.tcl 0644 root root 7959 48722 863399211 1 f none lib/tk4.2/demos/bind.tcl 0644 root root 2964 63788 863399211 1 f none lib/tk4.2/demos/bitmap.tcl 0644 root root 1491 60808 863399212 1 f none lib/tk4.2/demos/browse 0755 root root 1597 2492 863399212 1 f none lib/tk4.2/demos/button.tcl 0644 root root 1362 49848 863399213 1 f none lib/tk4.2/demos/check.tcl 0644 root root 1247 43291 863399213 1 f none lib/tk4.2/demos/clrpick.tcl 0644 root root 1506 62839 863399214 1 f none lib/tk4.2/demos/colors.tcl 0644 root root 5071 44318 863399214 1 f none lib/tk4.2/demos/cscroll.tcl 0644 root root 3058 58781 863399215 1 f none lib/tk4.2/demos/ctext.tcl 0644 root root 4997 28056 863399215 1 f none lib/tk4.2/demos/dialog1.tcl 0644 root root 709 60981 863399215 1 f none lib/tk4.2/demos/dialog2.tcl 0644 root root 661 55978 863399216 1 f none lib/tk4.2/demos/entry1.tcl 0644 root root 1506 762 863399216 1 f none lib/tk4.2/demos/entry2.tcl 0644 root root 2232 63967 863399217 1 f none lib/tk4.2/demos/filebox.tcl 0644 root root 2011 31215 863399218 1 f none lib/tk4.2/demos/floor.tcl 0644 root root 79239 683 863399219 1 f none lib/tk4.2/demos/form.tcl 0644 root root 1120 28473 863399219 1 f none lib/tk4.2/demos/hello 0755 root root 493 40830 863399220 1 f none lib/tk4.2/demos/hscale.tcl 0644 root root 1571 63046 863399221 1 f none lib/tk4.2/demos/icon.tcl 0644 root root 2084 54241 863399221 1 f none lib/tk4.2/demos/image1.tcl 0644 root root 1026 22628 863399222 1 f none lib/tk4.2/demos/image2.tcl 0644 root root 2503 17195 863399222 1 d none lib/tk4.2/demos/images 0755 root root 1 f none lib/tk4.2/demos/images/earth.gif 0644 root root 51712 45825 863399235 1 f none lib/tk4.2/demos/images/earthris.gif 0644 root root 6343 14546 863399237 1 f none lib/tk4.2/demos/images/face.bmp 0644 root root 12720 3276 863399238 1 f none lib/tk4.2/demos/images/flagdown.bmp 0644 root root 1886 45912 863399239 1 f none lib/tk4.2/demos/images/flagup.bmp 0644 root root 1880 48731 863399240 1 f none lib/tk4.2/demos/images/gray25.bmp 0644 root root 275 17845 863399241 1 f none lib/tk4.2/demos/images/letters.bmp 0644 root root 1883 45587 863399243 1 f none lib/tk4.2/demos/images/noletter.bmp 0644 root root 1889 49923 863399244 1 f none lib/tk4.2/demos/images/pattern.bmp 0644 root root 272 18096 863399245 1 f none lib/tk4.2/demos/images/tcllogo.gif 0644 root root 2341 13514 863399246 1 f none lib/tk4.2/demos/images/teapot.ppm 0644 root root 196623 33672 863399248 1 f none lib/tk4.2/demos/items.tcl 0644 root root 9810 6196 863399223 1 f none lib/tk4.2/demos/ixset 0755 root root 7511 9407 863399223 1 f none lib/tk4.2/demos/label.tcl 0644 root root 1340 50321 863399224 1 f none lib/tk4.2/demos/license.terms 0644 root root 2209 55092 863399224 1 f none lib/tk4.2/demos/menu.tcl 0644 root root 5142 48859 863399225 1 f none lib/tk4.2/demos/msgbox.tcl 0644 root root 2053 45256 863399225 1 f none lib/tk4.2/demos/plot.tcl 0644 root root 2844 33807 863399226 1 f none lib/tk4.2/demos/puzzle.tcl 0644 root root 2400 63704 863399226 1 f none lib/tk4.2/demos/radio.tcl 0644 root root 1578 5273 863399227 1 f none lib/tk4.2/demos/rmt 0755 root root 5292 51620 863399227 1 f none lib/tk4.2/demos/rolodex 0755 root root 8133 27624 863399227 1 f none lib/tk4.2/demos/ruler.tcl 0644 root root 5238 39458 863399228 1 f none lib/tk4.2/demos/sayings.tcl 0644 root root 2275 1737 863399228 1 f none lib/tk4.2/demos/search.tcl 0644 root root 4474 53654 863399229 1 f none lib/tk4.2/demos/square 0755 root root 1217 32477 863399229 1 f none lib/tk4.2/demos/states.tcl 0644 root root 1743 19838 863399230 1 f none lib/tk4.2/demos/style.tcl 0644 root root 6994 23884 863399230 1 f none lib/tk4.2/demos/tclIndex 0644 root root 4354 10748 863399231 1 f none lib/tk4.2/demos/tcolor 0755 root root 11421 11677 863399231 1 f none lib/tk4.2/demos/text.tcl 0644 root root 3238 28448 863399231 1 f none lib/tk4.2/demos/timer 0755 root root 909 9865 863399232 1 f none lib/tk4.2/demos/twind.tcl 0644 root root 6650 30250 863399232 1 f none lib/tk4.2/demos/vscale.tcl 0644 root root 1551 61240 863399233 1 f none lib/tk4.2/demos/widget 0755 root root 13379 12266 863399233 1 f none lib/tk4.2/dialog.tcl 0644 root root 4934 9870 863399182 1 f none lib/tk4.2/entry.tcl 0644 root root 13676 17562 863399183 1 f none lib/tk4.2/focus.tcl 0644 root root 4878 5758 863399185 1 f none lib/tk4.2/folder.gif 0644 root root 79 6333 863399202 1 f none lib/tk4.2/listbox.tcl 0644 root root 11585 38751 863399187 1 f none lib/tk4.2/menu.tcl 0644 root root 25604 1821 863399188 1 f none lib/tk4.2/msgbox.tcl 0644 root root 6667 6077 863399189 1 f none lib/tk4.2/obsolete.tcl 0644 root root 781 1781 863399190 1 f none lib/tk4.2/optMenu.tcl 0644 root root 1641 8049 863399191 1 f none lib/tk4.2/palette.tcl 0644 root root 6402 4023 863399193 1 f none lib/tk4.2/prolog.ps 0644 root root 9546 26973 863399207 1 f none lib/tk4.2/scale.tcl 0644 root root 6772 27672 863399194 1 f none lib/tk4.2/scrlbar.tcl 0644 root root 11192 7686 863399195 1 f none lib/tk4.2/tclIndex 0644 root root 16266 18944 863399206 1 f none lib/tk4.2/tearoff.tcl 0644 root root 3697 39921 863399196 1 f none lib/tk4.2/text.tcl 0644 root root 22623 26909 863399197 1 f none lib/tk4.2/textfile.gif 0644 root root 79 5957 863399203 1 f none lib/tk4.2/tk.tcl 0644 root root 4637 46620 863399199 1 f none lib/tk4.2/tkAppInit.c 0644 root root 3226 50297 863399208 1 f none lib/tk4.2/tkfbox.tcl 0644 root root 34206 44333 863399200 1 f none lib/tk4.2/updir.xbm 0644 root root 479 29945 863399205 1 f none lib/tk4.2/xmfbox.tcl 0644 root root 15957 38612 863399201 1 f none lib/tkConfig.sh 0644 root root 1788 19860 863399173 1 d none man 0755 root root 1 d none man/man1 0755 root root 1 f none man/man1/wish.1 0444 root root 12041 38789 863399250 1 d none man/man3 0755 root root 1 f none man/man3/3DBorder.3 0444 root root 16828 15243 863399251 1 f none man/man3/BindTable.3 0444 root root 11399 55820 863399252 1 f none man/man3/CanvPsY.3 0444 root root 9487 11871 863399252 1 f none man/man3/CanvTkwin.3 0444 root root 11244 39289 863399253 1 f none man/man3/CanvTxtInfo.3 0444 root root 9013 35125 863399253 1 f none man/man3/Clipboard.3 0444 root root 7755 49495 863399254 1 f none man/man3/ClrSelect.3 0444 root root 5959 15325 863399254 1 f none man/man3/ConfigWidg.3 0444 root root 33258 55982 863399255 1 f none man/man3/ConfigWind.3 0444 root root 10958 15258 863399256 1 f none man/man3/CoordToWin.3 0444 root root 6439 59592 863399256 1 f none man/man3/CrtErrHdlr.3 0444 root root 10999 19057 863399257 1 f none man/man3/CrtGenHdlr.3 0444 root root 8083 13432 863399257 1 f none man/man3/CrtImgType.3 0444 root root 13364 33070 863399258 1 f none man/man3/CrtItemType.3 0444 root root 28633 40498 863399258 1 f none man/man3/CrtPhImgFmt.3 0444 root root 14776 28777 863399258 1 f none man/man3/CrtSelHdlr.3 0444 root root 9956 52908 863399259 1 f none man/man3/CrtWindow.3 0444 root root 10851 2498 863399259 1 f none man/man3/DeleteImg.3 0444 root root 5616 48848 863399260 1 f none man/man3/DrawFocHlt.3 0444 root root 5870 7597 863399260 1 f none man/man3/EventHndlr.3 0444 root root 7754 48019 863399261 1 f none man/man3/FindPhoto.3 0444 root root 12550 22325 863399261 1 f none man/man3/FreeXId.3 0444 root root 6636 11644 863399261 1 f none man/man3/GeomReq.3 0444 root root 7519 29113 863399262 1 f none man/man3/GetAnchor.3 0444 root root 6976 37678 863399262 1 f none man/man3/GetBitmap.3 0444 root root 12140 45159 863399263 1 f none man/man3/GetCapStyl.3 0444 root root 6745 19705 863399263 1 f none man/man3/GetClrmap.3 0444 root root 7473 23320 863399264 1 f none man/man3/GetColor.3 0444 root root 10583 38518 863399264 1 f none man/man3/GetCursor.3 0444 root root 13007 1465 863399264 1 f none man/man3/GetFontStr.3 0444 root root 7733 45485 863399265 1 f none man/man3/GetGC.3 0444 root root 7540 26233 863399265 1 f none man/man3/GetImage.3 0444 root root 9761 28113 863399266 1 f none man/man3/GetJoinStl.3 0444 root root 6759 21960 863399266 1 f none man/man3/GetJustify.3 0444 root root 7032 46205 863399267 1 f none man/man3/GetOption.3 0444 root root 6162 33217 863399267 1 f none man/man3/GetPixels.3 0444 root root 7183 61903 863399268 1 f none man/man3/GetPixmap.3 0444 root root 6453 59892 863399268 1 f none man/man3/GetRelief.3 0444 root root 6638 5659 863399268 1 f none man/man3/GetRootCrd.3 0444 root root 6109 30364 863399269 1 f none man/man3/GetScroll.3 0444 root root 7039 46912 863399269 1 f none man/man3/GetSelect.3 0444 root root 7811 53299 863399270 1 f none man/man3/GetUid.3 0444 root root 6381 51546 863399270 1 f none man/man3/GetVRoot.3 0444 root root 6554 4199 863399271 1 f none man/man3/GetVisual.3 0444 root root 8281 29435 863399271 1 f none man/man3/HandleEvent.3 0444 root root 6372 53186 863399271 1 f none man/man3/IdToWindow.3 0444 root root 5602 48477 863399272 1 f none man/man3/ImgChanged.3 0444 root root 7174 58397 863399272 1 f none man/man3/InternAtom.3 0444 root root 6678 15192 863399273 1 f none man/man3/MainLoop.3 0444 root root 5698 57804 863399273 1 f none man/man3/MainWin.3 0444 root root 5712 58703 863399274 1 f none man/man3/MaintGeom.3 0444 root root 8793 14562 863399274 1 f none man/man3/ManageGeom.3 0444 root root 8185 24800 863399274 1 f none man/man3/MapWindow.3 0444 root root 6385 54175 863399275 1 f none man/man3/MoveToplev.3 0444 root root 6907 38169 863399275 1 f none man/man3/Name.3 0444 root root 7918 61007 863399276 1 f none man/man3/NameOfImg.3 0444 root root 5577 45445 863399276 1 f none man/man3/OwnSelect.3 0444 root root 6560 5230 863399277 1 f none man/man3/ParseArgv.3 0444 root root 19077 64526 863399277 1 f none man/man3/QWinEvent.3 0444 root root 6054 24060 863399278 1 f none man/man3/Restack.3 0444 root root 6349 50347 863399278 1 f none man/man3/RestrictEv.3 0444 root root 8283 33273 863399278 1 f none man/man3/SetAppName.3 0444 root root 7087 52923 863399279 1 f none man/man3/SetClass.3 0444 root root 6780 22850 863399279 1 f none man/man3/SetGrid.3 0444 root root 7101 55389 863399280 1 f none man/man3/SetVisual.3 0444 root root 6552 4391 863399280 1 f none man/man3/StrictMotif.3 0444 root root 5915 12172 863399281 1 l none man/man3/Tk_3DBorderColor.3=3DBorder.3 1 l none man/man3/Tk_3DBorderGC.3=3DBorder.3 1 l none man/man3/Tk_3DHorizontalBevel.3=3DBorder.3 1 l none man/man3/Tk_3DVerticalBevel.3=3DBorder.3 1 l none man/man3/Tk_Attributes.3=WindowId.3 1 l none man/man3/Tk_BindEvent.3=BindTable.3 1 l none man/man3/Tk_CanvasDrawableCoords.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasEventuallyRedraw.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasGetCoord.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasPsBitmap.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsColor.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsFont.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsPath.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsStipple.3=CanvPsY.3 1 l none man/man3/Tk_CanvasPsY.3=CanvPsY.3 1 l none man/man3/Tk_CanvasSetStippleOrigin.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasTagsOption.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasTextInfo.3=CanvTxtInfo.3 1 l none man/man3/Tk_CanvasTkwin.3=CanvTkwin.3 1 l none man/man3/Tk_CanvasWindowCoords.3=CanvTkwin.3 1 l none man/man3/Tk_ChangeWindowAttributes.3=ConfigWind.3 1 l none man/man3/Tk_Changes.3=WindowId.3 1 l none man/man3/Tk_Class.3=SetClass.3 1 l none man/man3/Tk_ClearSelection.3=ClrSelect.3 1 l none man/man3/Tk_ClipboardAppend.3=Clipboard.3 1 l none man/man3/Tk_ClipboardClear.3=Clipboard.3 1 l none man/man3/Tk_Colormap.3=WindowId.3 1 l none man/man3/Tk_ConfigureInfo.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureValue.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureWidget.3=ConfigWidg.3 1 l none man/man3/Tk_ConfigureWindow.3=ConfigWind.3 1 l none man/man3/Tk_CoordsToWindow.3=CoordToWin.3 1 l none man/man3/Tk_CreateBinding.3=BindTable.3 1 l none man/man3/Tk_CreateBindingTable.3=BindTable.3 1 l none man/man3/Tk_CreateErrorHandler.3=CrtErrHdlr.3 1 l none man/man3/Tk_CreateEventHandler.3=EventHndlr.3 1 l none man/man3/Tk_CreateGenericHandler.3=CrtGenHdlr.3 1 l none man/man3/Tk_CreateImageType.3=CrtImgType.3 1 l none man/man3/Tk_CreateItemType.3=CrtItemType.3 1 l none man/man3/Tk_CreatePhotoImageFormat.3=CrtPhImgFmt.3 1 l none man/man3/Tk_CreateSelHandler.3=CrtSelHdlr.3 1 l none man/man3/Tk_CreateWindow.3=CrtWindow.3 1 l none man/man3/Tk_CreateWindowFromPath.3=CrtWindow.3 1 l none man/man3/Tk_DefineBitmap.3=GetBitmap.3 1 l none man/man3/Tk_DefineCursor.3=ConfigWind.3 1 l none man/man3/Tk_DeleteAllBindings.3=BindTable.3 1 l none man/man3/Tk_DeleteBinding.3=BindTable.3 1 l none man/man3/Tk_DeleteBindingTable.3=BindTable.3 1 l none man/man3/Tk_DeleteErrorHandler.3=CrtErrHdlr.3 1 l none man/man3/Tk_DeleteEventHandler.3=EventHndlr.3 1 l none man/man3/Tk_DeleteGenericHandler.3=CrtGenHdlr.3 1 l none man/man3/Tk_DeleteImage.3=DeleteImg.3 1 l none man/man3/Tk_DeleteSelHandler.3=CrtSelHdlr.3 1 l none man/man3/Tk_Depth.3=WindowId.3 1 l none man/man3/Tk_DestroyWindow.3=CrtWindow.3 1 l none man/man3/Tk_Display.3=WindowId.3 1 l none man/man3/Tk_DisplayName.3=WindowId.3 1 l none man/man3/Tk_Draw3DPolygon.3=3DBorder.3 1 l none man/man3/Tk_Draw3DRectangle.3=3DBorder.3 1 l none man/man3/Tk_DrawFocusHighlight.3=DrawFocHlt.3 1 l none man/man3/Tk_Fill3DPolygon.3=3DBorder.3 1 l none man/man3/Tk_Fill3DRectangle.3=3DBorder.3 1 l none man/man3/Tk_FindPhoto.3=FindPhoto.3 1 l none man/man3/Tk_Free3DBorder.3=3DBorder.3 1 l none man/man3/Tk_FreeBitmap.3=GetBitmap.3 1 l none man/man3/Tk_FreeColor.3=GetColor.3 1 l none man/man3/Tk_FreeColormap.3=GetClrmap.3 1 l none man/man3/Tk_FreeCursor.3=GetCursor.3 1 l none man/man3/Tk_FreeFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_FreeGC.3=GetGC.3 1 l none man/man3/Tk_FreeImage.3=GetImage.3 1 l none man/man3/Tk_FreeOptions.3=ConfigWidg.3 1 l none man/man3/Tk_FreePixmap.3=GetPixmap.3 1 l none man/man3/Tk_FreeXId.3=FreeXId.3 1 l none man/man3/Tk_GeometryRequest.3=GeomReq.3 1 l none man/man3/Tk_Get3DBorder.3=3DBorder.3 1 l none man/man3/Tk_GetAllBindings.3=BindTable.3 1 l none man/man3/Tk_GetAnchor.3=GetAnchor.3 1 l none man/man3/Tk_GetAtomName.3=InternAtom.3 1 l none man/man3/Tk_GetBinding.3=BindTable.3 1 l none man/man3/Tk_GetBitmap.3=GetBitmap.3 1 l none man/man3/Tk_GetBitmapFromData.3=GetBitmap.3 1 l none man/man3/Tk_GetCapStyle.3=GetCapStyl.3 1 l none man/man3/Tk_GetColor.3=GetColor.3 1 l none man/man3/Tk_GetColorByValue.3=GetColor.3 1 l none man/man3/Tk_GetColormap.3=GetClrmap.3 1 l none man/man3/Tk_GetCursor.3=GetCursor.3 1 l none man/man3/Tk_GetCursorFromData.3=GetCursor.3 1 l none man/man3/Tk_GetFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_GetGC.3=GetGC.3 1 l none man/man3/Tk_GetImage.3=GetImage.3 1 l none man/man3/Tk_GetItemTypes.3=CrtItemType.3 1 l none man/man3/Tk_GetJoinStyle.3=GetJoinStl.3 1 l none man/man3/Tk_GetJustify.3=GetJustify.3 1 l none man/man3/Tk_GetOption.3=GetOption.3 1 l none man/man3/Tk_GetPixels.3=GetPixels.3 1 l none man/man3/Tk_GetPixmap.3=GetPixmap.3 1 l none man/man3/Tk_GetRelief.3=GetRelief.3 1 l none man/man3/Tk_GetRootCoords.3=GetRootCrd.3 1 l none man/man3/Tk_GetScreenMM.3=GetPixels.3 1 l none man/man3/Tk_GetScrollInfo.3=GetScroll.3 1 l none man/man3/Tk_GetSelection.3=GetSelect.3 1 l none man/man3/Tk_GetUid.3=GetUid.3 1 l none man/man3/Tk_GetVRootGeometry.3=GetVRoot.3 1 l none man/man3/Tk_GetVisual.3=GetVisual.3 1 l none man/man3/Tk_HandleEvent.3=HandleEvent.3 1 l none man/man3/Tk_Height.3=WindowId.3 1 l none man/man3/Tk_IdToWindow.3=IdToWindow.3 1 l none man/man3/Tk_ImageChanged.3=ImgChanged.3 1 f none man/man3/Tk_Init.3 0444 root root 6222 39067 863399281 1 l none man/man3/Tk_InternAtom.3=InternAtom.3 1 l none man/man3/Tk_InternalBorderWidth.3=WindowId.3 1 l none man/man3/Tk_IsMapped.3=WindowId.3 1 l none man/man3/Tk_IsTopLevel.3=WindowId.3 1 f none man/man3/Tk_Main.3 0444 root root 6917 37261 863399281 1 l none man/man3/Tk_MainLoop.3=MainLoop.3 1 l none man/man3/Tk_MainWindow.3=MainWin.3 1 l none man/man3/Tk_MaintainGeometry.3=MaintGeom.3 1 l none man/man3/Tk_MakeWindowExist.3=CrtWindow.3 1 l none man/man3/Tk_ManageGeometry.3=ManageGeom.3 1 l none man/man3/Tk_MapWindow.3=MapWindow.3 1 l none man/man3/Tk_MoveResizeWindow.3=ConfigWind.3 1 l none man/man3/Tk_MoveToplevelWindow.3=MoveToplev.3 1 l none man/man3/Tk_MoveWindow.3=ConfigWind.3 1 l none man/man3/Tk_Name.3=Name.3 1 l none man/man3/Tk_NameOf3DBorder.3=3DBorder.3 1 l none man/man3/Tk_NameOfAnchor.3=GetAnchor.3 1 l none man/man3/Tk_NameOfBitmap.3=GetBitmap.3 1 l none man/man3/Tk_NameOfCapStyle.3=GetCapStyl.3 1 l none man/man3/Tk_NameOfColor.3=GetColor.3 1 l none man/man3/Tk_NameOfCursor.3=GetCursor.3 1 l none man/man3/Tk_NameOfFontStruct.3=GetFontStr.3 1 l none man/man3/Tk_NameOfImage.3=NameOfImg.3 1 l none man/man3/Tk_NameOfJoinStyle.3=GetJoinStl.3 1 l none man/man3/Tk_NameOfJustify.3=GetJustify.3 1 l none man/man3/Tk_NameOfRelief.3=GetRelief.3 1 l none man/man3/Tk_NameToWindow.3=Name.3 1 l none man/man3/Tk_Offset.3=ConfigWidg.3 1 l none man/man3/Tk_OwnSelection.3=OwnSelect.3 1 l none man/man3/Tk_Parent.3=WindowId.3 1 l none man/man3/Tk_ParseArgv.3=ParseArgv.3 1 l none man/man3/Tk_PathName.3=Name.3 1 l none man/man3/Tk_PhotoBlank.3=FindPhoto.3 1 l none man/man3/Tk_PhotoExpand.3=FindPhoto.3 1 l none man/man3/Tk_PhotoGetImage.3=FindPhoto.3 1 l none man/man3/Tk_PhotoGetSize.3=FindPhoto.3 1 l none man/man3/Tk_PhotoPutBlock.3=FindPhoto.3 1 l none man/man3/Tk_PhotoPutZoomedBlock.3=FindPhoto.3 1 l none man/man3/Tk_PhotoSetSize.3=FindPhoto.3 1 l none man/man3/Tk_QueueWindowEvent.3=QWinEvent.3 1 l none man/man3/Tk_RedrawImage.3=GetImage.3 1 l none man/man3/Tk_ReqHeight.3=WindowId.3 1 l none man/man3/Tk_ReqWidth.3=WindowId.3 1 l none man/man3/Tk_ResizeWindow.3=ConfigWind.3 1 l none man/man3/Tk_RestackWindow.3=Restack.3 1 l none man/man3/Tk_RestrictEvents.3=RestrictEv.3 1 l none man/man3/Tk_Screen.3=WindowId.3 1 l none man/man3/Tk_ScreenNumber.3=WindowId.3 1 l none man/man3/Tk_SetAppName.3=SetAppName.3 1 l none man/man3/Tk_SetBackgroundFromBorder.3=3DBorder.3 1 l none man/man3/Tk_SetClass.3=SetClass.3 1 l none man/man3/Tk_SetGrid.3=SetGrid.3 1 l none man/man3/Tk_SetInternalBorder.3=GeomReq.3 1 l none man/man3/Tk_SetWindowBackground.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBackgroundPixmap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorder.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorderPixmap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowBorderWidth.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowColormap.3=ConfigWind.3 1 l none man/man3/Tk_SetWindowVisual.3=SetVisual.3 1 l none man/man3/Tk_SizeOfBitmap.3=GetBitmap.3 1 l none man/man3/Tk_SizeOfImage.3=GetImage.3 1 l none man/man3/Tk_StrictMotif.3=StrictMotif.3 1 l none man/man3/Tk_Uid.3=GetUid.3 1 l none man/man3/Tk_UndefineCursor.3=ConfigWind.3 1 l none man/man3/Tk_UnmaintainGeometry.3=MaintGeom.3 1 l none man/man3/Tk_UnmapWindow.3=MapWindow.3 1 l none man/man3/Tk_UnsetGrid.3=SetGrid.3 1 l none man/man3/Tk_Visual.3=WindowId.3 1 l none man/man3/Tk_Width.3=WindowId.3 1 l none man/man3/Tk_WindowId.3=WindowId.3 1 l none man/man3/Tk_X.3=WindowId.3 1 l none man/man3/Tk_Y.3=WindowId.3 1 f none man/man3/WindowId.3 0444 root root 9610 19935 863399282 1 d none man/mann 0755 root root 1 f none man/mann/bell.n 0444 root root 5799 825 863399332 1 f none man/mann/bind.n 0444 root root 24376 30989 863399333 1 f none man/mann/bindtags.n 0444 root root 7888 58713 863399333 1 f none man/mann/bitmap.n 0444 root root 8935 20821 863399334 1 f none man/mann/button.n 0444 root root 11477 59229 863399334 1 f none man/mann/canvas.n 0444 root root 72516 30180 863399335 1 f none man/mann/checkbutton.n 0444 root root 14650 25291 863399335 1 f none man/mann/chooseColor.n 0444 root root 6289 45485 863399335 1 f none man/mann/clipboard.n 0444 root root 8250 26417 863399336 1 f none man/mann/destroy.n 0444 root root 5671 55317 863399337 1 f none man/mann/dialog.n 0444 root root 6954 39316 863399337 1 f none man/mann/entry.n 0444 root root 22449 9204 863399337 1 f none man/mann/event.n 0444 root root 18582 47611 863399338 1 f none man/mann/focus.n 0444 root root 9634 24398 863399339 1 f none man/mann/focusNext.n 0444 root root 7193 887 863399340 1 f none man/mann/frame.n 0444 root root 9618 19136 863399340 1 f none man/mann/getOpenFile.n 0444 root root 11545 57059 863399341 1 f none man/mann/grab.n 0444 root root 9846 45071 863399341 1 f none man/mann/grid.n 0444 root root 20042 45248 863399342 1 f none man/mann/image.n 0444 root root 7982 1307 863399342 1 f none man/mann/label.n 0444 root root 8867 15017 863399343 1 f none man/mann/listbox.n 0444 root root 24301 47330 863399343 1 f none man/mann/lower.n 0444 root root 6016 20634 863399343 1 f none man/mann/menu.n 0444 root root 31844 16020 863399344 1 f none man/mann/menubar.n 0444 root root 5832 3932 863399344 1 f none man/mann/menubutton.n 0444 root root 13023 10187 863399345 1 f none man/mann/message.n 0444 root root 11056 17885 863399345 1 f none man/mann/messageBox.n 0444 root root 7670 38588 863399346 1 f none man/mann/option.n 0444 root root 8348 38509 863399347 1 f none man/mann/optionMenu.n 0444 root root 6194 37607 863399347 1 f none man/mann/options.n 0444 root root 22222 8223 863399348 1 f none man/mann/pack-old.n 0444 root root 12606 30642 863399348 1 f none man/mann/pack.n 0444 root root 15419 16696 863399349 1 f none man/mann/palette.n 0444 root root 7853 60884 863399349 1 f none man/mann/photo.n 0444 root root 20729 34473 863399350 1 f none man/mann/place.n 0444 root root 15065 57084 863399350 1 f none man/mann/popup.n 0444 root root 5795 1208 863399351 1 f none man/mann/radiobutton.n 0444 root root 14466 10662 863399351 1 f none man/mann/raise.n 0444 root root 6016 20422 863399351 1 f none man/mann/scale.n 0444 root root 15392 17324 863399352 1 f none man/mann/scrollbar.n 0444 root root 19512 1616 863399352 1 f none man/mann/selection.n 0444 root root 11238 38488 863399353 1 f none man/mann/send.n 0444 root root 8381 39968 863399353 1 f none man/mann/text.n 0444 root root 71159 55221 863399354 1 f none man/mann/tk.n 0444 root root 6538 1861 863399354 1 l none man/mann/tk_bindForTraversal.n=menubar.n 1 l none man/mann/tk_bisque.n=palette.n 1 l none man/mann/tk_chooseColor.n=chooseColor.n 1 l none man/mann/tk_dialog.n=dialog.n 1 l none man/mann/tk_focusFollowsMouse.n=focusNext.n 1 l none man/mann/tk_focusNext.n=focusNext.n 1 l none man/mann/tk_focusPrev.n=focusNext.n 1 l none man/mann/tk_getOpenFile.n=getOpenFile.n 1 l none man/mann/tk_getSaveFile.n=getOpenFile.n 1 l none man/mann/tk_menuBar.n=menubar.n 1 l none man/mann/tk_messageBox.n=messageBox.n 1 l none man/mann/tk_optionMenu.n=optionMenu.n 1 l none man/mann/tk_popup.n=popup.n 1 l none man/mann/tk_setPalette.n=palette.n 1 f none man/mann/tkerror.n 0444 root root 5753 62557 863399355 1 f none man/mann/tkvars.n 0444 root root 7708 46594 863399355 1 f none man/mann/tkwait.n 0444 root root 6735 22370 863399355 1 f none man/mann/toplevel.n 0444 root root 10191 7381 863399356 1 f none man/mann/winfo.n 0444 root root 18173 22640 863399356 1 f none man/mann/wm.n 0444 root root 30893 12234 863399357 1 i pkginfo 191 15516 863399374 070701000067e2000041ed00000064000000640000000633766dd400000000000000200000001b00000000000000000000000600000009reloc07070100000081000041ed00000064000000640000000233766dd000000000000000200000001b00000000000000000000000a00000009reloc/bin07070100000083000081a400000064000000640000000133766d0400001780000000200000001b00000000000000000000001200000009reloc/bin/wish4.2ELFD44 (44     /usr/lib/ld.so.11/-%)#,"*0'!.&($+ 0@D T  h         4 8 @ HDt $ H L  4 ; @ T F NTZ  c l r z  H!  H     8 4 h _startmatherr_environ_end_GLOBAL_OFFSET_TABLE_atexitexit_initTk_MainTcl_AppInit_DYNAMICTcl_Init_exitTk_InitTcl_StaticPackageenvironTcl_SetVar_edata_PROCEDURE_LINKAGE_TABLE__etext_lib_versionmaintclDummyMathPtr_finilibtk4.2.solibtcl7.6.solibsocket.so.1libnsl.so.1libX11.so.4libdl.so.1libm.so.1libc.so.1/opt/SMLItcl/lib:/opt/SMLItk/lib:/usr/openwin/lib & H   % ! $ & ' ) $ @D# @@B!h@@@w, @ H"@@@@@㿐@/@/@  `    㿐㿐@/@/@ጮ@@  㿐@/@/@T@@ " @@ `  @@ `   @@   㿐@/@/@ฮ ? ???㿐㿠㿠Tktcl_rcFileName~/.wishrc  @    <T#/:D  T  hN@ 0  l 00<0H0T0`0l0x000 $0@D T  h         4 8 @ H $ 82 @@Ve 4s~    8 H D <Dt $$ H- L2  H O T T Z bTn  w     H!  H     8 4 h wishcrti.svalues-Xa.ccrtstuff.c__CTOR_LIST____DTOR_LIST____do_global_dtors_auxgcc2_compiled.force_to_datafini_dummytkAppInit.c.LLC0.LLC1.LLC2gcc2_compiled.crtstuff.c__do_global_ctors_auxgcc2_compiled.force_to_datainit_dummy__DTOR_END____CTOR_END__crtn.s_startmatherr_environ_end_GLOBAL_OFFSET_TABLE_atexitexit_initTk_MainTcl_AppInit_DYNAMICTcl_Init_exitTk_InitTcl_StaticPackageenvironTcl_SetVar_edata_PROCEDURE_LINKAGE_TABLE__etext_lib_versionmaintclDummyMathPtr_fini <@(#)SunOS 5.5.1 Generic May 1996as: SC4.0 dev 15 Feb 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.0 dev 15 Feb 1995 GCC: (GNU) 2.7.2ld: (SGU) SunOS/ELF (LK-2.0 (S/I) - versioning).interp.hash.dynsym.dynstr.rela.got.rela.bss.rela.plt.text.init.fini.rodata.got.dynamic.plt.data.ctors.dtors.bss.symtab.strtab.stab.index.comment.shstrtab.stab.indexstrvalues-Xa.cXt ; V=2.0 H 00@@   )  3l =DDC T TI h hO *W \ e  j 4 4p 8 8w @ @~ H H H0 ~07070100000f50000041ed00000064000000640000000233766dd000000000000000200000001b00000000000000000000000e00000009reloc/include07070100000f51000081a400000064000000640000000133766d070000d97f000000200000001b00000000000000000000001300000009reloc/include/tk.h/* * tk.h -- * * 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-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. * * SCCS: @(#) tk.h 1.195 97/01/29 17:45:58 */ #ifndef _TK #define _TK /* * When version numbers change here, must also go into the following files * and update the version numbers: * * library/tk.tcl * unix/configure.in * unix/Makefile.in * win/makefile.bc * win/makefile.vc * * The release level should be 0 for alpha, 1 for beta, and 2 for * final/patch. The release serial value is the number that follows the * "a", "b", or "p" in the patch level; for example, if the patch level * is 4.3b2, TK_RELEASE_SERIAL is 2. It restarts at 1 whenever the * release level is changed, except for the final release, which should * be 0. */ #define TK_MAJOR_VERSION 4 #define TK_MINOR_VERSION 2 #define TK_RELEASE_LEVEL 2 #define TK_RELEASE_SERIAL 2 #define TK_VERSION "4.2" #define TK_PATCH_LEVEL "4.2p2" /* * A special definition used to allow this header file to be included * in resource files. */ #ifndef RESOURCE_INCLUDED /* * The following definitions set up the proper options for Macintosh * compilers. We use this method because there is no autoconf equivalent. */ #ifdef MAC_TCL # ifndef REDO_KEYSYM_LOOKUP # define REDO_KEYSYM_LOOKUP # endif #endif #ifndef _TCL # include #endif #ifndef _XLIB_H # ifdef MAC_TCL # include # include # else # include # endif #endif #ifdef __STDC__ # include #endif /* * Decide whether or not to use input methods. */ #ifdef XNQueryInputStyle #define TK_USE_INPUT_METHODS #endif /* * Dummy types that are used by clients: */ typedef struct Tk_BindingTable_ *Tk_BindingTable; typedef struct Tk_Canvas_ *Tk_Canvas; typedef struct Tk_Cursor_ *Tk_Cursor; typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler; typedef struct Tk_Image__ *Tk_Image; typedef struct Tk_ImageMaster_ *Tk_ImageMaster; typedef struct Tk_Window_ *Tk_Window; typedef struct Tk_3DBorder_ *Tk_3DBorder; /* * Additional types exported to clients. */ typedef char *Tk_Uid; /* * Structure used to specify how to handle argv options. */ 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. */ } Tk_ArgvInfo; /* * Legal values for the type field of a Tk_ArgvInfo: see the user * documentation for details. */ #define TK_ARGV_CONSTANT 15 #define TK_ARGV_INT 16 #define TK_ARGV_STRING 17 #define TK_ARGV_UID 18 #define TK_ARGV_REST 19 #define TK_ARGV_FLOAT 20 #define TK_ARGV_FUNC 21 #define TK_ARGV_GENFUNC 22 #define TK_ARGV_HELP 23 #define TK_ARGV_CONST_OPTION 24 #define TK_ARGV_OPTION_VALUE 25 #define TK_ARGV_OPTION_NAME_VALUE 26 #define TK_ARGV_END 27 /* * Flag bits for passing to Tk_ParseArgv: */ #define TK_ARGV_NO_DEFAULTS 0x1 #define TK_ARGV_NO_LEFTOVERS 0x2 #define TK_ARGV_NO_ABBREV 0x4 #define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8 /* * 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. */ typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec, int offset)); typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, 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_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. */ 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. */ 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 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 * irrelevant. */ } Tk_ConfigSpec; /* * Type values for Tk_ConfigSpec structures. See the user * documentation for details. */ #define TK_CONFIG_BOOLEAN 1 #define TK_CONFIG_INT 2 #define TK_CONFIG_DOUBLE 3 #define TK_CONFIG_STRING 4 #define TK_CONFIG_UID 5 #define TK_CONFIG_COLOR 6 #define TK_CONFIG_FONT 7 #define TK_CONFIG_BITMAP 8 #define TK_CONFIG_BORDER 9 #define TK_CONFIG_RELIEF 10 #define TK_CONFIG_CURSOR 11 #define TK_CONFIG_ACTIVE_CURSOR 12 #define TK_CONFIG_JUSTIFY 13 #define TK_CONFIG_ANCHOR 14 #define TK_CONFIG_SYNONYM 15 #define TK_CONFIG_CAP_STYLE 16 #define TK_CONFIG_JOIN_STYLE 17 #define TK_CONFIG_PIXELS 18 #define TK_CONFIG_MM 19 #define TK_CONFIG_WINDOW 20 #define TK_CONFIG_CUSTOM 21 #define TK_CONFIG_END 22 /* * Macro to use to fill in "offset" fields of Tk_ConfigInfos. * Computes number of bytes from beginning of structure to a * given field. */ #ifdef offsetof #define Tk_Offset(type, field) ((int) offsetof(type, field)) #else #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field)) #endif /* * Possible values for flags argument to Tk_ConfigureWidget: */ #define TK_CONFIG_ARGV_ONLY 1 /* * Possible flag values for Tk_ConfigInfo 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 * tkConfig.c (internal-use-only flags are defined there). */ #define TK_CONFIG_COLOR_ONLY 1 #define TK_CONFIG_MONO_ONLY 2 #define TK_CONFIG_NULL_OK 4 #define TK_CONFIG_DONT_SET_DEFAULT 8 #define TK_CONFIG_OPTION_SPECIFIED 0x10 #define TK_CONFIG_USER_BIT 0x100 /* * Enumerated type for describing actions to be taken in response * to a restrictProc established by Tk_RestrictEvents. */ typedef enum { TK_DEFER_EVENT, TK_PROCESS_EVENT, TK_DISCARD_EVENT } Tk_RestrictAction; /* * Priority levels to pass to Tk_AddOption: */ #define TK_WIDGET_DEFAULT_PRIO 20 #define TK_STARTUP_FILE_PRIO 40 #define TK_USER_DEFAULT_PRIO 60 #define TK_INTERACTIVE_PRIO 80 #define TK_MAX_PRIO 100 /* * Relief values returned by Tk_GetRelief: */ #define TK_RELIEF_RAISED 1 #define TK_RELIEF_FLAT 2 #define TK_RELIEF_SUNKEN 4 #define TK_RELIEF_GROOVE 8 #define TK_RELIEF_RIDGE 16 /* * "Which" argument values for Tk_3DBorderGC: */ #define TK_3D_FLAT_GC 1 #define TK_3D_LIGHT_GC 2 #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. */ #define TK_NOTIFY_SHARE 20 /* * Enumerated type for describing a point by which to anchor something: */ typedef enum { TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE, TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW, TK_ANCHOR_CENTER } Tk_Anchor; /* * Enumerated type for describing a style of justification: */ typedef enum { TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER } Tk_Justify; /* * 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, Tk_Window tkwin)); 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). */ 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. */ } Tk_GeomMgr; /* * Result values returned by Tk_GetScrollInfo: */ #define TK_SCROLL_MOVETO 1 #define TK_SCROLL_PAGES 2 #define TK_SCROLL_UNITS 3 #define TK_SCROLL_ERROR 4 /*--------------------------------------------------------------------------- * * Extensions to the X event set * *--------------------------------------------------------------------------- */ #define VirtualEvent (LASTEvent) #define ActivateNotify (LASTEvent + 1) #define DeactivateNotify (LASTEvent + 2) #define TK_LASTEVENT (LASTEvent + 3) #define VirtualEventMask (1L << 30) #define ActivateMask (1L << 29) /* * 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. */ 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 */ } 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. */ } XActivateDeactivateEvent; typedef XActivateDeactivateEvent XActivateEvent; typedef XActivateDeactivateEvent XDeactivateEvent; /* *-------------------------------------------------------------- * * 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_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_IsMapped(tkwin) \ (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED) #define Tk_IsTopLevel(tkwin) \ (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL) #define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth) #define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight) #define Tk_InternalBorderWidth(tkwin) \ (((Tk_FakeWin *) (tkwin))->internalBorderWidth) #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. */ typedef struct Tk_FakeWin { Display *display; char *dummy1; int screenNum; Visual *visual; int depth; Window window; char *dummy2; char *dummy3; Tk_Window parentPtr; char *dummy4; char *dummy5; char *pathName; Tk_Uid nameUid; Tk_Uid classUid; XWindowChanges changes; unsigned int dummy6; XSetWindowAttributes atts; unsigned long dummy7; unsigned int flags; char *dummy8; #ifdef TK_USE_INPUT_METHODS XIC dummy9; #endif /* TK_USE_INPUT_METHODS */ ClientData *dummy10; int dummy11; int dummy12; char *dummy13; char *dummy14; ClientData dummy15; int reqWidth, reqHeight; int internalBorderWidth; char *dummy16; char *dummy17; } Tk_FakeWin; /* * Flag values for TkWindow (and Tk_FakeWin) structures are: * * TK_MAPPED: 1 means window is currently mapped, * 0 means unmapped. * TK_TOP_LEVEL: 1 means this is a top-level window (it * was or will be created as a child of * a root window). * 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 * making it exist a ConfigureNotify event needs * to be generated. * 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. * TK_PARENT_DESTROYED: 1 means that the window's parent has already * been destroyed or is in the process of being * destroyed. * 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. */ #define TK_MAPPED 1 #define TK_TOP_LEVEL 2 #define TK_ALREADY_DEAD 4 #define TK_NEED_CONFIG_NOTIFY 8 #define TK_GRAB_FLAG 0x10 #define TK_CHECKED_IC 0x20 #define TK_PARENT_DESTROYED 0x40 #define TK_WM_COLORMAP_WINDOW 0x80 /* *-------------------------------------------------------------- * * Procedure prototypes and structures used for defining new canvas * items: * *-------------------------------------------------------------- */ /* * 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. */ /* *------------------------------------------------------------------ * 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; /* * 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. */ typedef int Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, char **argv)); typedef int Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, char **argv, int flags)); typedef int Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int argc, char **argv)); typedef void Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, Display *display)); typedef void Tk_ItemDisplayProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, Display *display, Drawable dst, int x, int y, int width, int height)); typedef double Tk_ItemPointProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, double *pointPtr)); typedef int Tk_ItemAreaProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, double *rectPtr)); typedef int Tk_ItemPostscriptProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, int prepass)); typedef void Tk_ItemScaleProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, double originX, double originY, double scaleX, double scaleY)); typedef void Tk_ItemTranslateProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, double deltaX, double deltaY)); typedef int Tk_ItemIndexProc _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Tk_Item *itemPtr, char *indexString, int *indexPtr)); typedef void Tk_ItemCursorProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, int index)); typedef int Tk_ItemSelectionProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, int offset, char *buffer, int maxBytes)); typedef void Tk_ItemInsertProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, int beforeThis, char *string)); typedef void Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas, Tk_Item *itemPtr, int first, int last)); 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. */ 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. */ } Tk_ItemType; /* * 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. */ 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. */ int selectFirst; /* Index of first selected character. * Writable by items. */ int selectLast; /* Index of last selected character. * Writable by items. */ Tk_Item *anchorItemPtr; /* Item corresponding to "selectAnchor": * not necessarily selItemPtr. Read-only * to items. */ int selectAnchor; /* 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 * 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. */ int gotFocus; /* Non-zero means that the canvas widget has * 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.*/ } Tk_CanvasTextInfo; /* *-------------------------------------------------------------- * * Procedure prototypes and structures used for managing images: * *-------------------------------------------------------------- */ typedef struct Tk_ImageType Tk_ImageType; typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp, char *name, int argc, char **argv, Tk_ImageType *typePtr, Tk_ImageMaster master, ClientData *masterDataPtr)); typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin, ClientData masterData)); typedef void (Tk_ImageDisplayProc) _ANSI_ARGS_((ClientData instanceData, Display *display, Drawable drawable, int imageX, int imageY, int width, int height, int drawableX, int drawableY)); typedef void (Tk_ImageFreeProc) _ANSI_ARGS_((ClientData instanceData, Display *display)); typedef void (Tk_ImageDeleteProc) _ANSI_ARGS_((ClientData masterData)); typedef void (Tk_ImageChangedProc) _ANSI_ARGS_((ClientData clientData, int x, int y, int width, int height, int imageWidth, int imageHeight)); /* * 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. */ Tk_ImageGetProc *getProc; /* Procedure to call the first time * 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 * 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. */ struct Tk_ImageType *nextPtr; /* Next in list of all image types currently * known. Filled in by Tk, not by image * manager. */ }; /* *-------------------------------------------------------------- * * Additional definitions used to manage images of type "photo". * *-------------------------------------------------------------- */ /* * The following type is used to identify a particular photo image * to be manipulated: */ typedef void *Tk_PhotoHandle; /* * The following structure describes a block of pixels in memory: */ 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 * pixels in successive lines. */ int pixelSize; /* Address difference between successive * pixels in the same line. */ int offset[3]; /* Address differences between the red, green * and blue components of the pixel and the * pixel as a whole. */ } Tk_PhotoImageBlock; /* * Procedure prototypes and structures used in reading and * writing photo images: */ typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat; typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((FILE *f, char *fileName, char *formatString, int *widthPtr, int *heightPtr)); typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((char *string, char *formatString, int *widthPtr, int *heightPtr)); typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp, FILE *f, char *fileName, char *formatString, Tk_PhotoHandle imageHandle, int destX, int destY, int width, int height, int srcX, int srcY)); typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp, char *string, char *formatString, Tk_PhotoHandle imageHandle, int destX, int destY, int width, int height, int srcX, int srcY)); typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp, char *fileName, char *formatString, Tk_PhotoImageBlock *blockPtr)); typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp, Tcl_DString *dataPtr, char *formatString, Tk_PhotoImageBlock *blockPtr)); /* * 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. */ Tk_ImageStringMatchProc *stringMatchProc; /* 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. */ Tk_ImageStringReadProc *stringReadProc; /* 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. */ 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. */ }; /* *-------------------------------------------------------------- * * 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. * *-------------------------------------------------------------- */ #define TK_READABLE TCL_READABLE #define TK_WRITABLE TCL_WRITABLE #define TK_EXCEPTION TCL_EXCEPTION #define TK_DONT_WAIT TCL_DONT_WAIT #define TK_X_EVENTS TCL_WINDOW_EVENTS #define TK_WINDOW_EVENTS TCL_WINDOW_EVENTS #define TK_FILE_EVENTS TCL_FILE_EVENTS #define TK_TIMER_EVENTS TCL_TIMER_EVENTS #define TK_IDLE_EVENTS TCL_IDLE_EVENTS #define TK_ALL_EVENTS TCL_ALL_EVENTS #define Tk_IdleProc Tcl_IdleProc #define Tk_FileProc Tcl_FileProc #define Tk_TimerProc Tcl_TimerProc #define Tk_TimerToken Tcl_TimerToken #define Tk_BackgroundError Tcl_BackgroundError #define Tk_CancelIdleCall Tcl_CancelIdleCall #define Tk_CreateFileHandler(file,mask,proc,data) \ Tcl_CreateFileHandler(Tcl_GetFile((ClientData) (file), TCL_UNIX_FD), \ (mask), (proc), (data)) #define Tk_CreateTimerHandler Tcl_CreateTimerHandler #define Tk_DeleteFileHandler(file) \ Tcl_DeleteFileHandler(Tcl_GetFile((ClientData) (file), TCL_UNIX_FD)) #define Tk_DeleteTimerHandler Tcl_DeleteTimerHandler #define Tk_DoOneEvent Tcl_DoOneEvent #define Tk_DoWhenIdle Tcl_DoWhenIdle #define Tk_Sleep Tcl_Sleep /* Additional stuff that has moved to Tcl: */ #define Tk_AfterCmd Tcl_AfterCmd #define Tk_EventuallyFree Tcl_EventuallyFree #define Tk_FreeProc Tcl_FreeProc #define Tk_Preserve Tcl_Preserve #define Tk_Release Tcl_Release /* *-------------------------------------------------------------- * * Additional procedure types defined by Tk. * *-------------------------------------------------------------- */ typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData, XErrorEvent *errEventPtr)); typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData, XEvent *eventPtr)); typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData, XEvent *eventPtr)); typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, char *portion)); typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData)); typedef Tk_RestrictAction (Tk_RestrictProc) _ANSI_ARGS_(( ClientData clientData, XEvent *eventPtr)); typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, int offset, char *buffer, int maxBytes)); /* *-------------------------------------------------------------- * * Exported procedures and variables. * *-------------------------------------------------------------- */ EXTERN XColor * Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border)); EXTERN GC Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin, Tk_3DBorder border, int which)); 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)); 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)); EXTERN void Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name, char *value, int priority)); EXTERN void Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable, XEvent *eventPtr, Tk_Window tkwin, int numObjects, ClientData *objectPtr)); EXTERN void Tk_CanvasDrawableCoords _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short *drawableXPtr, short *drawableYPtr)); EXTERN void Tk_CanvasEventuallyRedraw _ANSI_ARGS_(( Tk_Canvas canvas, int x1, int y1, int x2, int y2)); EXTERN int Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, char *string, double *doublePtr)); EXTERN Tk_CanvasTextInfo *Tk_CanvasGetTextInfo _ANSI_ARGS_((Tk_Canvas canvas)); EXTERN int Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Pixmap bitmap, int x, int y, int width, int height)); EXTERN int Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, XColor *colorPtr)); EXTERN int Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, XFontStruct *fontStructPtr)); EXTERN void Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, double *coordPtr, int numPoints)); EXTERN int Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp *interp, Tk_Canvas canvas, Pixmap bitmap)); EXTERN double Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y)); EXTERN void Tk_CanvasSetStippleOrigin _ANSI_ARGS_(( Tk_Canvas canvas, GC gc)); EXTERN int Tk_CanvasTagsParseProc _ANSI_ARGS_(( ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec, int offset)); EXTERN char * Tk_CanvasTagsPrintProc _ANSI_ARGS_(( ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr)); EXTERN Tk_Window Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas)); EXTERN void Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas, double x, double y, short *screenXPtr, short *screenYPtr)); EXTERN void Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XSetWindowAttributes *attsPtr)); EXTERN void Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin, Atom selection)); EXTERN int Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Atom target, Atom format, char* buffer)); EXTERN int Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin)); EXTERN int Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_ConfigSpec *specs, char *widgRec, char *argvName, int flags)); EXTERN int Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_ConfigSpec *specs, char *widgRec, char *argvName, int flags)); EXTERN int Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_ConfigSpec *specs, int argc, char **argv, char *widgRec, int flags)); EXTERN void Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin, unsigned int valueMask, XWindowChanges *valuePtr)); EXTERN Tk_Window Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY, Tk_Window tkwin)); EXTERN unsigned long Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, char *eventString, char *command, int append)); EXTERN Tk_BindingTable Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp)); EXTERN Tk_ErrorHandler Tk_CreateErrorHandler _ANSI_ARGS_((Display *display, int errNum, int request, int minorCode, Tk_ErrorProc *errorProc, ClientData clientData)); EXTERN void Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc *proc, ClientData clientData)); EXTERN void Tk_CreateGenericHandler _ANSI_ARGS_(( Tk_GenericProc *proc, ClientData clientData)); EXTERN void Tk_CreateImageType _ANSI_ARGS_(( Tk_ImageType *typePtr)); EXTERN void Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType *typePtr)); EXTERN void Tk_CreatePhotoImageFormat _ANSI_ARGS_(( Tk_PhotoImageFormat *formatPtr)); EXTERN void Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc *proc, ClientData clientData, Atom format)); EXTERN Tk_Window Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window parent, char *name, char *screenName)); EXTERN Tk_Window Tk_CreateWindowFromPath _ANSI_ARGS_(( Tcl_Interp *interp, Tk_Window tkwin, char *pathName, char *screenName)); EXTERN int Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp, Tk_Uid name, char *source, int width, int height)); EXTERN void Tk_DefineCursor _ANSI_ARGS_((Tk_Window window, Tk_Cursor cursor)); EXTERN void Tk_DeleteAllBindings _ANSI_ARGS_(( Tk_BindingTable bindingTable, ClientData object)); EXTERN int Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, char *eventString)); EXTERN void Tk_DeleteBindingTable _ANSI_ARGS_(( Tk_BindingTable bindingTable)); EXTERN void Tk_DeleteErrorHandler _ANSI_ARGS_(( Tk_ErrorHandler handler)); EXTERN void Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token, unsigned long mask, Tk_EventProc *proc, ClientData clientData)); EXTERN void Tk_DeleteGenericHandler _ANSI_ARGS_(( Tk_GenericProc *proc, ClientData clientData)); EXTERN void Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp *interp, char *name)); EXTERN void Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Atom target)); EXTERN void Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin)); EXTERN char * Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint *pointPtr, int numPoints, int borderWidth, int leftRelief)); 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)); EXTERN void Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin, GC gc, int width, Drawable drawable)); EXTERN void Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin, Drawable drawable, Tk_3DBorder border, XPoint *pointPtr, int numPoints, int borderWidth, int leftRelief)); 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)); EXTERN Tk_PhotoHandle Tk_FindPhoto _ANSI_ARGS_((char *imageName)); EXTERN void Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border)); EXTERN void Tk_FreeBitmap _ANSI_ARGS_((Display *display, Pixmap bitmap)); EXTERN void Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr)); EXTERN void Tk_FreeColormap _ANSI_ARGS_((Display *display, Colormap colormap)); EXTERN void Tk_FreeCursor _ANSI_ARGS_((Display *display, Tk_Cursor cursor)); EXTERN void Tk_FreeFontStruct _ANSI_ARGS_(( XFontStruct *fontStructPtr)); EXTERN void Tk_FreeGC _ANSI_ARGS_((Display *display, GC gc)); EXTERN void Tk_FreeImage _ANSI_ARGS_((Tk_Image image)); EXTERN void Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec *specs, char *widgRec, Display *display, int needFlags)); EXTERN void Tk_FreePixmap _ANSI_ARGS_((Display *display, Pixmap pixmap)); EXTERN void Tk_FreeXId _ANSI_ARGS_((Display *display, XID xid)); EXTERN GC Tk_GCForColor _ANSI_ARGS_((XColor *colorPtr, Drawable drawable)); EXTERN void Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight)); EXTERN Tk_3DBorder Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid colorName)); EXTERN void Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object)); EXTERN int Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp, char *string, Tk_Anchor *anchorPtr)); EXTERN char * Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin, Atom atom)); EXTERN char * Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, char *eventString)); EXTERN Pixmap Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid string)); EXTERN Pixmap Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *source, int width, int height)); EXTERN int Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp, char *string, int *capPtr)); EXTERN XColor * Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid name)); EXTERN XColor * Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin, XColor *colorPtr)); EXTERN Colormap Tk_GetColormap _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *string)); EXTERN Tk_Cursor Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid string)); EXTERN Tk_Cursor Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *source, char *mask, int width, int height, int xHot, int yHot, Tk_Uid fg, Tk_Uid bg)); EXTERN XFontStruct * Tk_GetFontStruct _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid name)); EXTERN GC Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin, unsigned long valueMask, XGCValues *valuePtr)); EXTERN Tk_Image Tk_GetImage _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *name, Tk_ImageChangedProc *changeProc, ClientData clientData)); EXTERN Tk_ItemType * Tk_GetItemTypes _ANSI_ARGS_((void)); EXTERN int Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp, char *string, int *joinPtr)); EXTERN int Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp, char *string, Tk_Justify *justifyPtr)); EXTERN int Tk_GetNumMainWindows _ANSI_ARGS_((void)); EXTERN Tk_Uid Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name, char *className)); EXTERN int Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *string, int *intPtr)); EXTERN Pixmap Tk_GetPixmap _ANSI_ARGS_((Display *display, Drawable d, int width, int height, int depth)); EXTERN int Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp, char *name, int *reliefPtr)); EXTERN void Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin, int *xPtr, int *yPtr)); EXTERN int Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp, int argc, char **argv, double *dblPtr, int *intPtr)); EXTERN int Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *string, double *doublePtr)); EXTERN int Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, Atom selection, Atom target, Tk_GetSelProc *proc, ClientData clientData)); EXTERN Tk_Uid Tk_GetUid _ANSI_ARGS_((char *string)); EXTERN Visual * Tk_GetVisual _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *string, int *depthPtr, Colormap *colormapPtr)); EXTERN void Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr)); EXTERN int Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, int grabGlobal)); EXTERN void Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr)); EXTERN Tk_Window Tk_IdToWindow _ANSI_ARGS_((Display *display, Window window)); EXTERN void Tk_ImageChanged _ANSI_ARGS_(( Tk_ImageMaster master, int x, int y, int width, int height, int imageWidth, int imageHeight)); EXTERN int Tk_Init _ANSI_ARGS_((Tcl_Interp *interp)); EXTERN Atom Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin, char *name)); EXTERN void Tk_Main _ANSI_ARGS_((int argc, char **argv, Tcl_AppInitProc *appInitProc)); EXTERN void Tk_MainLoop _ANSI_ARGS_((void)); EXTERN void Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave, Tk_Window master, int x, int y, int width, int height)); EXTERN Tk_Window Tk_MainWindow _ANSI_ARGS_((Tcl_Interp *interp)); EXTERN void Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin, Tk_GeomMgr *mgrPtr, ClientData clientData)); EXTERN void Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height)); EXTERN void Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); EXTERN void Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin, int x, int y)); EXTERN char * Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border)); EXTERN char * Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor)); EXTERN char * Tk_NameOfBitmap _ANSI_ARGS_((Display *display, Pixmap bitmap)); EXTERN char * Tk_NameOfCapStyle _ANSI_ARGS_((int cap)); EXTERN char * Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr)); EXTERN char * Tk_NameOfCursor _ANSI_ARGS_((Display *display, Tk_Cursor cursor)); EXTERN char * Tk_NameOfFontStruct _ANSI_ARGS_(( XFontStruct *fontStructPtr)); EXTERN char * Tk_NameOfImage _ANSI_ARGS_(( Tk_ImageMaster imageMaster)); EXTERN char * Tk_NameOfJoinStyle _ANSI_ARGS_((int join)); EXTERN char * Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify)); EXTERN char * Tk_NameOfRelief _ANSI_ARGS_((int relief)); EXTERN Tk_Window Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp, char *pathName, Tk_Window tkwin)); EXTERN void Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin, Atom selection, Tk_LostSelProc *proc, ClientData clientData)); EXTERN int Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, int *argcPtr, char **argv, Tk_ArgvInfo *argTable, int flags)); EXTERN void Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr, int x, int y, int width, int height)); 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)); EXTERN int Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle, Tk_PhotoImageBlock *blockPtr)); EXTERN void Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle)); EXTERN void Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height )); EXTERN void Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle, int *widthPtr, int *heightPtr)); EXTERN void Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle, int width, int height)); EXTERN void Tk_PreserveColormap _ANSI_ARGS_((Display *display, Colormap colormap)); EXTERN void Tk_QueueWindowEvent _ANSI_ARGS_((XEvent *eventPtr, Tcl_QueuePosition position)); EXTERN void Tk_RedrawImage _ANSI_ARGS_((Tk_Image image, int imageX, int imageY, int width, int height, Drawable drawable, int drawableX, int drawableY)); EXTERN void Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin, int width, int height)); EXTERN int Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin, int aboveBelow, Tk_Window other)); EXTERN Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc, ClientData arg, ClientData *prevArgPtr)); EXTERN char * Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin, char *name)); EXTERN void Tk_SetBackgroundFromBorder _ANSI_ARGS_(( Tk_Window tkwin, Tk_3DBorder border)); EXTERN void Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin, char *className)); EXTERN void Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin, int reqWidth, int reqHeight, int gridWidth, int gridHeight)); EXTERN void Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin, int width)); EXTERN void Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); EXTERN void Tk_SetWindowBackgroundPixmap _ANSI_ARGS_(( Tk_Window tkwin, Pixmap pixmap)); EXTERN void Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin, unsigned long pixel)); EXTERN void Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin, int width)); EXTERN void Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin, Pixmap pixmap)); EXTERN void Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin, Colormap colormap)); EXTERN int Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin, Visual *visual, int depth, Colormap colormap)); EXTERN void Tk_SizeOfBitmap _ANSI_ARGS_((Display *display, Pixmap bitmap, int *widthPtr, int *heightPtr)); EXTERN void Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image, int *widthPtr, int *heightPtr)); EXTERN int Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window)); EXTERN void Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave, Tk_Window master)); EXTERN void Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin)); EXTERN void Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin)); /* * Tcl commands exported by Tk: */ EXTERN int Tk_AfterCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_BellCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_BindCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_BindtagsCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_CheckbuttonCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ClipboardCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ChooseColorCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ChooseFontCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_EntryCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_EventCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_FileeventCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_FrameCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_FocusCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_GetOpenFileCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_GetSaveFileCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_GrabCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_GridCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ImageCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_LabelCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_LowerCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_MenuCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_MessageBoxCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_MessageCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_OptionCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_PackCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_RadiobuttonCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_RaiseCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_SendCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_TextCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_TkCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_ToplevelCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_WinfoCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); EXTERN int Tk_WmCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv)); #endif /* RESOURCE_INCLUDED */ #endif /* _TK */ 07070100003b6c000041ed00000064000000640000000333766dd300000000000000200000001b00000000000000000000000a00000009reloc/lib07070100003b6d000081a400000064000000640000000133766d03000b2154000000200000001b00000000000000000000001600000009reloc/lib/libtk4.2.soELF4 4 (   h-TmC2<P!*|&v|+ xt z iQI6k\DL#jy?ieLKPZ!w:'VGZ]a[P~bl&u@XISMq@'|.Yg7/{d%R;H$a<zi?}q<{:~E2 rre1(~4BJWTJ"LK^(Zn\>shU0h GcQofV#)^%9`I p=x" WNf.S,DUy07 CO\U%RwcH-]/DmpN6nsAh>doOx8TE?&*:[@uRyqz*4_l/7,> NvKfFA`10SH3kw]{'#!m J +5;_88$$[g",j-Egrs oA1`c.b9adpFM}Qt3=+Bn2 vbuV6t5(YF;XW)=BlY9G3_j}kC4XOeM5)^HA(hDŽE_   8 ,  z`0)TL:FsX<YIj8w{x~`D7T Hް  { 1HCW   fZHy5p0l0 $6d EN^n' |rP,}19M<_fl5@  $X_|#HH9@D!P1;P]j  4\ z  >`s|8 6` ,?DtRptfptpTKD   wP /8H\vFDP\t>\(  )X?k|O[lrpdpbH T1Ѐ*j2HT[gud.LUHu(& `  34 (dp 7 H( b tA  yx    m   " Q| " * 9 I,  UF d? u |`l\ |\    $  e  @ c !9| 7R  F:d8 Q _ r  qD ڨ     _|h phd At  %P  & 0CHT @ F T8TT _ o>4( {   K|   d$   XP dP  - @@$ M0\ hP0 u    X tD o x \   `)9 y K(tcpu\ xDP SX  \lx,o<;TL[iDyx   k4P P&05 p P @XNZgn<eHd   "X/AGM\@ n@ywDx$``<b4L [hH-lD>mpQDD^lB~phx(<l$   #4D <  Wlq@\(TGhd&H00 )Tp:H  U]a <p@ \  i<_x>h/@XhN`$xxn3:Ҕ8F$ VctDpP88  (v| Zմ( \@)/!$BIXnB@|P0tK(4P Dvx-  4\9AS^nt)P!hd8{hh-D?Shbt 6P `x@LHZd} mTP t 4,-xDP|T'_z gxDxTfL@g 2x  L&<9Q+gw vP { @8d )0HBmhUr<l `Wds< z  /(p" 5 /fT:Q8itf$h|p^H߸!Xy$T,>HZk 5 vs<X"  uTP dO5$ &@5<UK`pHdtٜ 1,Ph   8 X0@L@d^exoyfQ,Xp@O, p M *84 5M  B N b tyt  \   ؐ  L    '!el !' 6L !8  !F!X  !k8!}!!!uT8!$!!4L!$!!!""4|@"'":"KJ"a@"vS" ":"""""-<"ͬ"### 6X #.#;#@#N<d#[#a#j#t`###P##w#c#t ##$$$#$:'H$Om|X$`$u',($$t$`$0$|@$$$$%%%%%9ZT%E%S%c qP %q``% 6\ %%%b(%g%ux%%J|& nDP &d&$U&.0&?&O&W?p&k&u&(&&&&= T&&&&dh'  H'''.h'?'Ks<'h's8'dpanicXSynchronizeTk_GetNumMainWindowsTk_PhotoGetImageXSetCommandTk_SetWindowBorderTkUnderlineCharsTk_GetOptionXKeycodeToKeysymTkPositionInTreeXIconifyWindowTk_GetAtomNameTk_GCForColorTkBTreeCharTaggedTk_PackCmdTcl_GetVarTcl_DStringInitTk_UpdateCmdXSetWMColormapWindowstkPhotoImageTypeTcl_CreateTimerHandlerTkMeasureCharstkTextCharTypeTk_CreateImageTypeTk_SetAppNameTk_FreeXIdTk_ClearSelectionTcl_MergeTkBTreeStartSearchBackXCreateGlyphCursorTcl_SeekTk_EventCmdTcl_NextHashEntryXDrawRectangleTkTextSegToOffsetTk_DeleteErrorHandlerTk_RedrawImageTcl_GetsXFillRectanglesXGContextFromGCTcl_SetMaxBlockTimeXUngrabServerTkBTreeLinkSegmentXFreeColorsTkGetPointerCoordsTcl_GetCommandInfoXFreePixmapTcl_AddErrorInfoTcl_TranslateFileNameTkChangeEventWindowTkTextRelayoutWindowstrtoulTcl_DeleteHashTableTk_CoordsToWindowstrtolfreadTkFocusFilterEventtkTextNoneUidTkBTreeNextLinegetpwuidXBellTk_GeometryRequestTcl_VarEvalTk_CreateErrorHandlerTkDeadAppCmdTkBTreeGetTagsTk_PhotoPutZoomedBlockTcl_EvalFileTkTextFreeDInfoTcl_FlushTkOptionClassChangedXOpenDisplayXQueryColorsTcl_CreateChannelHandlerXGetInputFocustoupper_endTk_DestroyCmdtkImgFmtPPMTk_GetFontStructmemmoveXCreateImageTkInOutEventsXSetWMNameXGetIMValuestkNormalUidXNextEventXChangePropertyXGetWindowPropertyTk_GetColorByValueTk_MoveResizeWindowXCopyAreaTk_FreeOptionsXSetRegionTk_CanvasWindowCoordsTk_DeleteBindingXLookupColorTkDisplayTextTkBTreeCreateTcl_DeleteModalTimeout__flsbuf_GLOBAL_OFFSET_TABLE_Tcl_UntraceVartkRectangleTypeTcl_ReadTcl_StringMatchXCreatePixmapCursorXStringListToTextPropertyXCreatePixmapTkDisplayCharsTkTextCreateDInfoTcl_CreateExitHandlerTkScrollWindowTcl_GetChannelTkWmNewWindow__ctypeTcl_DoOneEventTk_ToplevelCmdTcl_FirstHashEntryTcl_EvalTkWmProtocolEventProcTkGetBitmapDataTcl_LinkVarTcl_DeleteInterpXSyncTk_MoveWindowXReadBitmapFileTkSelEventProcXGetWMColormapWindowsTk_3DHorizontalBevelXSelectInputTcl_DStringAppendTk_CreatePhotoImageFormatTk_FocusCmdfseekfixstrtodTkClipInitTk_GrabTcl_CreateEventSourceTcl_GetFilesignalXDrawStringTcl_SetResultTk_ConfigureValueXDestroyRegionXUngrabKeyboardXIntersectRegionTk_RestrictEventsTcl_GetVar2TkGetMiterPointsTk_ParseArgvTk_DeleteEventHandlerTk_CanvasPsColorTkLineToPointTk_DeleteImageTk_ConfigureInfoTk_CanvasSetStippleOriginTcl_InitHashTableTk_CanvasEventuallyRedrawXGetVisualInfoTkTextRedrawRegionXFlushXSetTransientForHintXGrabServerTk_UngrabXCreateRegionTk_DeleteBindingTableTk_WmCmdTk_NameOfJoinStyletolowerXUngrabPointerTcl_ResetResultTkGetPrologTkIncludePointTkGetInterpNamesmallocTkGetDisplayTkGrabStatesprintfTcl_InterpDeletedXGetFontPropertyTkBTreeDestroyTcl_AllowExceptionsTk_3DBorderGCTcl_DStringGetResultTk_GetBindingTk_FreeImageTkThickPolyLineToAreaTk_GetCapStyleTkGetFocusXGrabKeyboardTcl_EventuallyFreeXSetWMClientMachinepowTk_ChangeWindowAttributesTk_TkCmdXSetWMHintsXGetAtomNameputsTk_ManageGeometryTk_ResizeWindowTkPolygonToAreaXClipBoxTkBTreePreviousLineTcl_ReleaseTcl_SleepTk_GetItemTypeslog10TkTextScanCmdTk_SendCmdTkTextDLineInfoTk_FrameCmdTkWmDeadWindowTcl_DStringAppendElementTcl_PosixErrorTk_ListboxCmdXCopyPlanefwriteTk_FreePixmapTkSelPropProcTcl_FileReadyTkGetButtPointsTk_GetRootCoordsXDeletePropertyTkOptionDeadWindowTk_GetPixmapTkQueueEventForAllChildrenTk_CanvasPsYTcl_RecordAndEval.umulTk_BindEventTcl_GetDoubleTkFreeBindingTagsTk_SetWindowVisualTk_ConfigureWindowTk_MessageCmdTkFreeWindowIdtkTextDebugTkTextWindowCmdXStringToKeysymTcl_PrintDoubletkBitmapImageTypeTk_DeleteGenericHandlerTcl_JoinPathtimeTcl_RegExpCompile.remTk_CanvasPsFontTk_CreateBindingTabletkOvalTypeXSetInputFocusXAllocSizeHintsTk_GetJustifyTkMakeWindowtkTextNormalUidTkTextInsertDisplayProcTk_MapWindowTkPointerEventTkStringToKeysymTcl_PkgProvideXCreateWindowXTranslateCoordinatesTk_PhotoExpandXDefineCursorTk_StrictMotifTkTextGetTabsTcl_CancelIdleCallTkTextMarkCmdTcl_GetAssocDatatkArcTypeTk_CanvasPsStippleXLoadQueryFontTk_MainsscanfTk_CanvasTkwintkLineTypeTkTextSetMarkXFreeCursorXSetTSOrigingetuidTk_MessageBoxCmdXAllocColorXQLengthXDrawLineXFreeColormapTkDeleteAllImagesTk_NameOfBitmapTk_CanvasTagsParseProcXGrabPointerTkGetDefaultScreenNamesqrttkTextRightMarkTypeTk_GetBitmapXForceScreenSaverhypotqsortTcl_QueueEventTkTextPickCurrentTk_TextCmdfcloseTk_RestackWindowTkTextLostSelectionXReconfigureWMWindowTkGrabDeadWindowTk_LabelCmdXEventsQueuedTk_SetInternalBorderTk_ImageChangedTk_PreserveColormapTkBezierPointsTk_CreateBindingTk_MakeWindowExistTkOvalToAreaTcl_WatchFileTk_CreateItemTypeTk_FindPhotoTkTextTagCmdTcl_CreateCommandstrncpyTkPlatformInitTkTextMakeIndexXFreeGCTk_ChooseColorCmdXSetWindowBackgroundTkBindFreeXSetForeground_DYNAMICXKeysymToKeycodeTcl_ScanElementtkTextToggleOnTypeTcl_DStringSetLengthTk_SetWindowBorderWidthTkBTreeInsertCharsTk_PhotoGetSizeTkSelInitfloorXMapWindowTkBezierScreenPointsTk_ClipboardCmdTkBTreeLineIndexTkCanvPostscriptCmdXFreeTcl_CreateModalTimeoutTk_NameOfJustifyXLookupStringtkBTreeDebugstrncmpTk_3DVerticalBevelTk_FreeFontStructtkTextToggleOffTypeTk_Draw3DPolygonTk_Get3DBorderTkCreateFrameTkBTreeStartSearchTk_NameOfReliefTk_GetScrollInfoTk_BindCmdTk_UnmapWindowXFilterEventTcl_DeleteHashEntryprintfTk_ScaleCmdTkBTreeFindLineXSetIconNameXAllocNamedColorTkTextIndexBackCharsTk_GetVRootGeometryTkFindStateStringTk_CanvasPsBitmaptkTextWordUidTk_GetColorTk_DisplayNameTk_FreeColormapTk_BindtagsCmdXSetWindowBorderTkTextSetYViewctimeTkBTreeDeleteCharsstrcatXDestroyWindowTk_MoveToplevelWindowTkOvalToPointstrncasecmpTkMakeBezierPostscriptTkTextYviewCmdTkBTreeNumLinesTkTextMarkSegToIndexTkCmapStressedTk_IdToWindowTkCurrentTimeTk_PlaceCmdTk_FreeBitmapreallocTkWmAddToColormapWindowsstrrchrXMoveResizeWindowXSendEventTk_CanvasPsPathatan2TkSelClearSelectionTk_PhotoBlankTk_NameOfCursorTkWmSetClassXFillPolygonTkTextIndexToSegXFillRectangleTcl_GlobalEvalTkTextRedrawTagXFillArcTkWmRestackToplevelTkKeysymToStringTk_GetAllBindings_XInitImageFuncPtrsTk_DeleteAllBindingsTk_GetImagetkDisplayListTk_MaintainGeometryTk_EntryCmdXTextWidthTk_OwnSelectionTk_MenubuttonCmdXVisualIDFromVisualTk_GetGCTk_InternAtomXTextExtentstkBitmapTypeTkTextSeeCmdTkFreeCursorTk_CanvasTagsPrintProcTk_GetJoinStyleTkBTreeTagTk_InitTkTextPrintIndexTk_AddOptionTk_CreateWindowXConvertSelectionTkSelGetSelectionXUnmapWindowXRectInRegionTk_GetReliefTkBTreeNextTagtkTextDisabledUidTk_GetCursorFromDataTcl_GetBooleanTk_ClipboardAppendXRefreshKeyboardMappingTkSelDefaultSelectionTcl_RegExpRangeXAllocClassHintXQueryTreeTk_GetBitmapFromDataTkWmRemoveFromColormapWindowsTk_FreeColortkWindowTypeTkTextChangedXDrawArcTcl_OpenFileChannelTkTextGetIndexTkTextCreateTagstrchrTkTextWindowIndexTk_Fill3DRectangleTk_SetWindowBackgroundTk_ConfigureWidgetXConfigureWindowTk_GetPixelsTkBindEventProcTk_DeleteSelHandlerTk_DefineCursorXCreateColormaptkImgFmtGIFTcl_PkgRequirefreeTk_QueueWindowEventTcl_TraceVartkSendSerialTk_GrabCmdTcl_DeleteTimerHandlerTk_CanvasDrawableCoordsTcl_SetVarTcl_CommandCompleteTk_Free3DBorderTcl_RegExpExecTk_ButtonCmdTk_UnsetGridTk_SizeOfBitmapXSetClipMaskTk_GridCmdTk_FreeGCTk_WinfoCmdXSetWindowBorderWidthTkTextEventuallyRepickTcl_AppendElementTcl_WriteTcl_DeleteCommandTcl_SourceRCFilependingPtrTk_SetWindowBorderPixmapTkGetCursorByNameTk_FreeCursortkTextTypeTkTextIndexCmpXSetWindowColormapTk_NameOfAnchorTkLineToAreaTkWmUnmapWindowTk_CreateEventHandlerTkTextMarkNameToIndexstrcmpTk_GetScreenMMTk_CanvasGetTextInfoTkGetServerInfoTk_GetSelectionTkCreateMainWindowTk_RaiseCmdTk_MainLoopTcl_FindExecutableTkFindStateNumTk_BellCmd_edata_PROCEDURE_LINKAGE_TABLE_fopenTk_GetColormapmemsetXSetWindowBackgroundPixmapTk_DefineBitmapXMoveWindowTk_GetSaveFileCmdTk_3DBorderColorXCreateGCTk_SetBackgroundFromBorderXOpenIMXSetClipOriginTk_GetVisualTk_CanvasCmdTk_CreateSelHandlerTk_CanvasGetCoordstrcpyTkBTreeCharsInLineTkTextXviewCmdTk_DrawFocusHighlightTkBindInitTk_GetAnchorXParseColorXGetModifierMappingXSetWMNormalHintsTk_MainWindowTcl_DoWhenIdleTk_PhotoSetSize_etextXFreeFontTk_LowerCmdTkCreateCursorFromDataXRootWindowTkWmMapWindowXResizeWindowTk_CreateGenericHandlerTk_NameOf3DBordertkMainWindowListtkTextCharUidTcl_DStringResulttkTextLeftMarkTypeTk_ClipboardClearmemcmpXSetSelectionOwnerXDestroyICTk_SetClassTk_RadiobuttonCmdatanTkInitXIdTk_CheckbuttonCmdTcl_CreateInterpXEmptyRegionendpwentXKeysymToStringTkBTreePrevTagTcl_ConvertElementXSetErrorHandlerTkComputeTextGeometryTkTextIndexForwCharsTk_NameOfCapStyleTk_OptionCmdTkFocusDeadWindowXRaiseWindowXPutImageXQueryPointerXCreateICTkEventDeadWindowTkFillPolygonTcl_SetVar2Tcl_PreserveTk_PhotoPutBlocktkDisabledUidTk_TkwaitCmd.divXSetClassHintTkBTreeCheckXNoOp__filbufTcl_CloseTkTextCharLayoutProcXGetWindowAttributesTk_NameOfColorTkTextBindProcmemcpyTk_MenuCmdTk_UnmaintainGeometryTk_UndefineCursorTcl_ExitTk_ScrollbarCmdstrlenXGetGeometryXSetWindowBorderPixmapTkBTreeUnlinkSegmentTk_Fill3DPolygonXUnionRectWithRegionTkSelDeadWindowTcl_DeleteChannelHandlerTk_SetWindowColormapTk_SetGridTkCopyAndGlobalEvalstrstrTkTextCharBboxTcl_GetIntTcl_GetCommandNameXFreeModifiermapTkTextFreeTagTcl_BackgroundErrorTk_ImageCmdTcl_UnlinkVarXWithdrawWindowtkPolygonTypeTkCreateXEventSourcetkActiveUidXChangeWindowAttributesTcl_GetStdChannelTk_NameOfImageTk_CreateWindowFromPathTk_NameToWindowsinTkMakeBezierCurvetkImageTypeTk_SizeOfImageTk_GetUidTkTextPixelIndexTcl_DStringFreefprintfTk_NameOfFontStructXGetImageTcl_AppendResultTk_HandleEventTcl_SplitListXCreateBitmapFromDataisattyTkPolygonToPointXmbLookupStringXLoadFontXDrawLinesTk_Draw3DRectangleTk_SelectionCmdcosTcl_SetAssocDataTk_DestroyWindowXInternAtomTk_SetWindowBackgroundPixmapXListHostsTk_GetCursorTk_GetOpenFileCmd 7x - , -T - -8 -H -x -X -h -x - - - - - - - - - - -( -8 -@ -P -X -h -x - - - - - - - -( - -| -p0 -t . -l@ -hP -d` -`p -\ -X -P -L -H -D -@ -< -8 . . .(` .  . . . . .  .$p .D .,X .0H .48 .8( .< .@ . . /4` . . . . . .t .h .\ .P . /@X /XH /d@ /p8 /|0 /( / / / / / / . /LP . / 0 / 0$ 00 0< 0H 0T /x 0l /p 0x 0x 0h 0X 0P 0@ 00 0 0 0 1` 1P 1@ 1( 1 1 0 / /(h 0  1 1 1 1 1 0` 2 1p . 2 20( 2(@ 2 ` 7o 7 6 7p# 61 7@ 6d 7Hc 6_ 7 6v 6 70 79 7PT 7X 7W u i t, p n w, m l 7( 7 6 6 5H 5P@ 5L 7 7s 4j 5 5$ 5 5%( 5% 5% 5% 7  5d 5* 5 78 645p 65 65 65 55 55 55 55 6(5 7( 8 4 8d $ 8x 8 8h9P 88 89( 8|90 8X9x 8T9 77 68 8D9 8@9 809 68 8,9 89 89 77h 77p 77 77 77 77 77 77 77 77 77 68 68 68 77 7 8 7t8 78 7D8P 77 68 68 68 68 7|7 78 7L8@ 7T80 748` 78 7l8 7$8x 7d8 7,8p 7\8 8P ( 8l9H 8: 7<8X 77X 8( , 8 8 8< 0 7 7 7h* 7 7 7I 7L 7`! 7< 7{ 7B 7 7 9h? 9`@ 9p? 9x? 9? 9X@ 9? 9? 9P@( 9? 9H@8 9? 8AX 9? 9? 9? 9? 9?p 8A8 8AP 8@ 9?P 9@@@ 8A( 98@H 90@X 9(@h 9? 9 @x 9@ 9?` :? :? :> : > :(> :0> :8> 8A 8A 9@ :@> :H> :P> :X>p :`>` :h>P :p>@ :x>( :> 8@ :> :> :> := 8@ := := 9@ := := := 9?8 := := := 9?( := 9@ :=p :=` 8@ ;=X ;=P :? 9?@ 8@ ?D ?D DPW @W AV DTT( DhT@ DlT0 DpW DtX8 DLT0 DHT@ D4TP D0T` DT DT D,Th DS DS DS D(Tp DTX DT` D Th DTp CU CT CT CT CTx CT CT CT CU CT CT CT CT CT CT CT CtU CpT ClT ChT AV CPT CLT CHT C4W C0T C,T C(U CU CU C U( CU8 BUH BUP BUX BW@ BU` BUx BU @W BU` BUx BU BX8 BU BU BU BtW BpU BlU BhV @W BPV( BLV0 BHV8 B4X8 B0XH B,V B(V@ BVP BV B V BV AV AV DS AV AV AV AV @lX @(Xp AV DS AW AW AW DS ApW AlW( AhW0 ATW@ APWH ALW AHWX DS A0Wp A,Wx A(W A W AW @X@ @W @W @W @W DS @W @W @W @W DS @W @W @W @tW @pW ES @hX @TX8 @PW @LX @HX @4X8 @0XH @,XX E0S` F$Y( @XH @ XX @Xp ?Rp ?R ?R ?R DS DS EHSP ES` ER ES E S ES E(S E,Sp ES F0X F,X F(Y ER ER ER ER ER ES` ER ER ER ELS@ EPS0 ETS( EhS ElS EpT EV BV CTV BTV EV DV AWh EtWh EWh AWh EWh AtWh E4Wh A4Wh J@[ JD[ J([ J$[ J [ J[ J[ J[ I\ J<[ I\ I\ G_ H\] HH] H` I\0 H` H] G^ G_ G_ G^ I\@ G^8 G` I\H I\P I\X I\` I\h I\p I`H I`X H]X I\x I|\ Ih_ Id`X I`\x I\\ G^P ID` I@\ I<\ G^h I$` G^ G_ I \ I\ I_ I_ I\ H\ H\ H_ H\ H\ H] H] H] H]( H]0 H]8 H]@ H]H H<] F` H]h H|]x Hh] Hd] H`] F`0 G^ HD] H@] F` G^ H$` F<`x F_ F@`h FD`X FH`P F\`x F``h Fd`X Fh`H F|`@ F`0 F`( F`h F_ G _ H ] F` G<_ F_ G@_x F_ GD_p F_ H^ G_ G^ G_ GH_8 G\_( G`_ Gd_ Gh_ G|^ G^ G^ G`P J[ JH[ H] H(] IH] I(_ G_ Lf L,ep Ld K f Kf L(ex Lf Lde@ Ld Le Lpf Lle Lhe0 L$e Jg` JgP Jg@ Jg8 Jg` JgP Jg@ Jg0 Jg( Jg Jg JgP Kg Kg LLeP KfX Le Kfh Le LHeX Ke L e Kf` L0eh Kfx Kfp Kf Ke KfP Kf8 Kf Kf Kg8 Ke Ke LDe` KDf K$f KHf K(f K,f KLf K0f KPf Le Kdf Le Khf Le Klf Kpf Kf LPf Lf ODi Mk Oi O l O$i Mpl Mk Oi Mdl Mhl0 Mll Ok M$l@ M(l0 O(ix Oh Oh Oh Ph Phx P h Pk MDl( Ni O,lX Oh Oh Oh Nk Oh Nk O0k Mk Oi OHix OLlX Oh Ni Ni OPlH Odih OhiX Mk Oi OliH Opi@ Oi0 Oi( Llx Llh LlX LlP Mlx Mlh M lX MlH Mk N k Nk MHlh Ni Nk N$k N(k Mk Oh N,j N0j Mk Mk Mk Mk NDj NLj Mkx Mkp Mk8 Nk( Nk NPlP Nljx Ni Nhj Nj Nj NHj Nj Nj( Ndj Nl Nj0 Npk Nj` NjH Mk Ok Oi SDu SHu S\uh S`uP Sdu@ Shu8 S|r Su Su Su Sr Su Su Su Sr St Su St Sr St Su Su St Tt Tt T t S@u T@t Us@ UsH S<r UsX Us( Us Us Ur S(u S$u S u Sr Vr Rq Rq Ush Usx Uu Uu Vr Us Rq Rq Vr8 U|q Rq R|q Rhq R\q R<q Uhs Udu Rq U`s U\q Ur8 UDs Rr8 Qr Qr Qr( U@s U<s Qr0 Qr8 U$s U s Us Q|r@ Q\rP Q<rX Qrh Prp Pr Pr Pr P|r P\r T<t Us8 UHs Uu Ut0 TrX Ts Tt Tt( Uu Trh Tt0 Tt@ TtX Ttp Tt TtP TtX Ttp T|t Tht Tdt T`t TDu@ T\t THu8 TtH U(tH Qr Ur V~ ZzH ZzX Z|zh Zdzx Z`z Z\z ZDz Z@z ZHz V~ Z$z Z z Z<z Zz Z{ Y{ Y{ Y{ Y{0 Zz Y{H Y{P Y{X Y{` Y{h V~ Y{p Y{@ Y{ Y{ Y{ Y|{ Yh{ Yd{ Y`{ Y\{ V~ YD{ Y@{ Y<{ Y(~ Y{x Y { Y{ V~ Y{ Y| X| X| X|( X|0 V~ X|8 V~ X|P X|h X~ Y${ X| X| V~ X~` X| X| X|| V~ V~ Xd} X`} X\} XH~ V|~ XD X@}x X<} X(}( X$}` X }h Vh~ Vd V` V\( X}p X}x W} X| W} W} W} W} W} V@ W} W} V<( W} W} W} W~ W~H W|~ Wd~( W`~0 W\~8 W@~h W<~@ W ~H W~X W~ W~ W~h V~x V~` V~ V~h V~x VD VH~ W} V~ Wh~ Z(~ W~ W~ YH~ Z~ Zh| Z| Y| Y| X| Xh| \D Z Z Z Z Z [p [` [X [ [ p [$` [(P [<H [@8 [\0 [`p [| [8 [ Z [ Z [ [ [ [ [ [ [ [ [ [p \ \` \X \@ \ ( \$ \(X \< \HX \\ \` \d \h \| \x \@ \0 Z \@ Z ]h ]d ]` ]\ ]D ]@ \p ]< \` \h ]$ ]  \P \X \P \H ] \8 ] \H \( \ \ \ ] ] ]( ]H [ _| _H _ _` _\( _H _D _@ _<( _(8 _$p _ x _ _ ^ ^@ ^ _ _@ _ _ ^ ^ ^ ^ ^ ^ ^ ^ ^( ^| ^` ^\ ^@( ^<8 ^(@ ^$H ^ X ^h ^x ^ ^ ] ] ] ] ] ] ] ] ] ] ] ] ] _ _ _ _ `@ `8 ` _ `0 ` ( `$ `( `< `@ `D `\ `` `d `h `| ` ` ` ` `x _ `h ` `X `H b$ `8 `0 ` ` ` ^ ^ _P `0 ` _ b  b b b b a ax a a a a a _ _h a a a a a a a@ a a a a|0 a ad@ a`P a\` aHp aDx a@ a< a( a$ a  a ^ a _d ^ _h b( `H cl@ c c d d c d c c c c c c c( cp8 d dX c chh cdP cH cD` c(h c$x c dh d c  c@ c b b b b b b eP eL eH eD e0 e, e( e$ e e  e e d d d08 d0 d8 dH d, d$0 dp d d d d H dX b b dl dh dd dP dL dH dD b b d( b b( b dh c cx c c c b( b b dp g g g,h gT0 g0P ix( it ip il iL i8( i4 g iX i iX iTX i x iP h i,@ h h h h hp g  h h i0( f h f h f h hx( ht0 h gLh g8( f f h hp ih h hl hX hT0 hP hL h8 h4 h0@ h,X h8 h h@ h X g gp g g g g g h g g g g g g g g g gx gt( f gp0 gPP gX( g40 f( f8 fx fH gl@ f` e f( e e e ex e e ep fx eh eX f f eP e f @ fX f0 f f f, fx ft fp fl fX fT f0 fP fL f8 f4 kLh k` kDe khl j i j ip jh j` jDH jX8 j8P jx0 j( k j j j k\v( k<a kHd kPm j k4x kXp kd k@ i m1 w(1 n1 u1 t(1 l1 p1 i1 mdT m| mhL m m\ m0 l mp mx l m mT m l l l l m m\ m` l mlD n` nhX n  m nt m m nD n m n\ nT nx nl, nX nP m nL pPt n pLü o n n n n p8L od op oD o0 o$ o o n ox n oh o` oX oP p  n oP o p0 pH p4 pT n p(\ p< pD p, n q| qh qx p q q q` p q@ qp q, p q  q  q p qx q q q q@ qΌ q q| q p r r rH sh r( s r r s s s( rh sH s r r< r\ r| r rp r` sH s<@ s\8 s|0 rP s s( u  uT u p t t( u|$ uh u u ulD t tX tD t t t t t tx td uT0 t8( u u ud u u$ ux` u\8 upp u u` t4 u v8 w  vP u v v v vl v v w u v v$ v8 vX vd vx vX v v w v v u xh+ xp0 x 0 xt/ x$/ w w( x,L w xD@ w0 wd wX w w wx w8( x $ x\$ x! xX! xT#p x#p xx0h x(0h x) xl. xL t w t x' x`' x w4 xP w4 z@p yX y y y z z  z`` z, yv yf< yth yu( yu zw z zw z zX z` zx { { { {$ { { { { { { {D { z z z z z z {d {< { { , {<    ~P ~ ~8  ~P ~ ~8 ~P ~h ~H ~ʀ ~ʘ ~ʰ ~` ~l ~h ~d ~P̘ ~p` ~H ~D( ~0@ ~,H ~(P ~$X ~` ~ h ~ ~x $ }˸ ~h } } } ~L } } } ( }0  }@ }pH }lP }hx }d` }H̰ }Dp }(x }$̈ }̐ } ̠ }̰ } |̘ |̠ |̰ | 0ɸ Dɨ Hɘ LɈ PH dɀ hx lp }ˈ } h ` p l̠ }( X P H @ (  h  (  h `   P }8 $ ( ,P , D HȨ L̠ P` d 0 H D hȨ  p̐ ` lǘ @  0  @ Ș Ȑ Ȉ P ` x ǀ Lj pǐ h hǠ , x ` dǨ Lǰ  `  @ $ P (   0 ~ 0     ~  }   p p xO XO 8L $K8 HMh hMh pN PN <  \ (L lM LM ,K           H , x L l  8     ,H P ,( `  h l L 8 p   P D X 08 $ 8 0 8 @ H h t  l    p   ( 0 8 @ H P x    , $ ( , , 0  @ Ly 4 - 8( <@ @H D` H L P T X \ ` d h lP pp tx x |    ,  -8  @R   .P  1  2  2  0                   0 0 H 8 8  P `   1   / $4 ( .L , 0 4 8 <( @ D` H@ L P T X0 \ ` dX h l p t8 x | ` H   @   h h (  H  ( p  8  X  0 x  H  `  8  X  x  `  p      $ ( , 0 4 C |[ P k `  l 8 < @ 3 D H L P T X \ `H d h l T p 3 t x |      0 @  3x  2@  2  3  3  30   2  2  2x  0  H X            ( 8 H `     $ ( , 0 4( 80 <@ @X Dޔ H` L P T X \X ` d h( lh p t( x | h   8 x  8   p  ( H   H   x  8 X   X  @   `    h  H   p   $ (x , 0` 4 8 < @ D H L P Tp X \( ` d h l p t x | 0    8     H        H   H  p   X (    h 0    8   @   H   ( x $ ( X , 0 4 h 8 < @P D 3 x? H  L P 8 T X  \  ` ( d 8 h ` l p t x | 3  4  3 m     (  P  h              (  0  8  @  d h o    l  X         4 P $  4 1x     $ ( , 4 0 4 4 4 8 < 4 @ 4 D0 H   <K L= P8 TH Xh \ ` d h l p t x( |H X x       4  8  $  4 8 @ P     8 `   l  4  4  4  4 8(       ( 0 8 @   H  5  $P ( 5 ,( 0h 4 8@ <p @ 5 DH Hx L 5 PP T X 5 \h ` d h l p t x | 4     0    5( ep eH  < d  5, X x          50 z y     0 0 P 8 H P X `     $ ( , 0 4 80 <@ @ p D H L P Th X \ ` dP h l p t x |  0 p   @     8 x   8 P (    H   0 @ h @ (   h   P X  P 0  @ p   x p $ (p ,X 00 4P 8x < @ D H L Pp T8 X` \ ` d h l p t@ xp |      ` x    T  5D `  5H  5T          !   ! !( !8 !@ !P !` !h !p   |  P   5d  5h  5\ $! (! ,! 0! 4! 8" <" @" D"( H"8 L 5l P 5` T#p X"X \# `"h d# h" l# p" t# x" |# " # " # " $ # #P  T  5X  t    5 $( $H $` $h $x $ $ $ $ ) ) (H ' &x % %H $ * )( (p '0 & % %P $ * )0 $( ('` ,& 0% 4%` 8% <)8 @( D'p H& L% P%h T% X)@ \( `' d& h& l%p p%( t)H x( |' & & %x % )P ( ' ' & % % )` ( ' ' &( % % ) ( ' ' &8 % %0 ) ( ( ' &` % %@   5 $  5 *( *H *` *p * $* (* ,* 0* 4 8 < 5 @( D- H-0 L,X P+ T* X- \-H `, d+ h* l- p-p t, x+ |+ - -x , + + . - , + + .0 - - + +0 .h - - + +@ .x - - , +P  5 - - , +`  5 - -( ,P +p    5 . . . $. (/ ,/( 0/8 4/H 8/X </h @) D, H0 L0 P/ T0 X00 \/ `1 d0P h/ l1 p0 t/ x1 |0 / 1P 0 / 0 / 0 / 0 / 0 0 * L J  5 B 1X 1` 1h 1 1 1 1 1 1 1 K 3p 2 1 3 2 2 3 2 20 3 2 2X 3 $2 (2` ,3 02 42p 83 <3 @2 D4 H3 L2 P3 T2 X3( \2 `J d 5 h 5  T l4( p40 t4P x4X |4p 4x 4 4 4 4 4 4 5 5@ 5H 5X 5h 5 6 6 6 6 7( 6( 6P 6h 6p 6 6 6 6  5   4  6  8  $  8  6d z  6  ( = < ; : 9H $: (=( ,< 0; 4: 8< <; @: D< H; L; P< T; X:( \< `<( d;P h:0 l< p *    x ,  8 D PG \ h t >      ~ r 1 + # = S Z ( 4 @ La Xn dq p |    0    - l  0  ? t $ 0i <  HV T ` l: x S   ` J   \ x      : , 85 D P \ hz tg d  \   ; ! 8    '    (9 4+ @ L Xl dw pp |   [  2    C      $O 0 < H T ` l x U  [ W  r ! 7 {       ,E 8 D P0 \z hi tj F   ,  ~  # b i k  O 4 ( 4_ @h Lu X d8 p |. )    3 Y K /   X   $ 0 <] HG T `z lA x   V / < b ;      ! !  ! = !, !8 !D !PU !\ !h !tv ! ! ! !X ! !% !f ! !] !r ! "P " " "(Q "4 "@/ "L| "X' "d? "p "|m "N "y ", ": " "K " "C " "h # #  # #$& #0 #< #H #T #`} #le #x} # # # # #e # #$ #} # # # $ $u $   $,3 $8 $D@ $P $\~ $h@ $t $H $ $ $$ $ $n $ $" $ $ $ %6 %& % %( %4s %@ %Lx %XW %d %p. %| % %T % %D %u % %' % % %| & &  & &$ &0Y &<{ &H &Ta &`* &l &xf &$ & & & & &( & &- &^ & & '8 ' '  ', '8 'D  'P '\4 'h 't '  ' ' ' ' ' ' ' ') 'M 'O ( ( ( (( (4 (@ (L (X (d  (pp (|3 (J (c (G ( (E ( ( (= (h ( )I )  )a )$ )0 )< )Hv )T )` )lM )x )T )c ) ) )F )o ) ) ) ) )Z *t * * R *, *8 *D& *P *\ *h *t *U * * *S * * * * *N * *- + +V + +( +4 +@ +L +Xs +d +p +|D + + + +e +^ + + +| +, + , ,  , ,$L ,0f ,<; ,H ,T ,`  ,l ,x ,w ,< , , ,. ,Q ,9 ,4@/"/"X < @'`'@`*` *  ' @ 0||    ,$ @, 4@`*` *  $` $ `$ $  $ $ $ $ $ $ $$ ($ ,$ 0$ @,m  $ ' @,g$ $@,e 㿈\`d, @  @  "(,#\1 ",(#\' ,(7`@: `2 #\@,/#\'@ (, #\$@,`@/!/!᤮''\l@'ܬ  ,  `"@`-*`@ @\th" ( ,h"  ,  ( , ( ( , $`@d"$@`?'Ԅ 'd '̄?'̑5 : h 2`6Ԁ #\@+$@Ԡ̦@x\`,`@d7`@: ,`#\4:  #`#d@+v#\#`#d"@+k#\#`#d#h#l@+b#\#`#d#h#l#@+U 0 㿐@/ / l`,  @  `$  `, @+2 `(㿐  ? 0&   " @+"  " @+  " @+ `" $@+ $`" (@+ (`" ,@+  ,`@+@+ 0@+㿐`@+@㿐@/ /  @@*f`  @* g K$gr` @* r  :$rr` @*є r  )$rs` @* s $2` @* 2  $`  $@*   㿐@//D          ( ''`, \@\"/ 7`@\:   #\@*]\   #\@*O0Ð?VV@ V V@"? ?/ ?@ Ȅ''Ю?@2VVV@VV @@Ֆ"@Ȑ 7 "@ʐ 77 79 @10 "@ 7"@ " 7@@@"@ 7 "@ 7@쀤&WW"WW•"@@ $  \@ &  \ 2`,`("`(`,#\ @) 77777 7777`@^㿀\`d#\$@)W` #\#`#d@)x㿈\#\$@)i  #\@)\㿐@// < "@ @@)S 㿈@//Ю  *  , 0 '셠, ?@)/?@)/,  0 D, @  "@4`4UT@"U T`@      @ *`@)   *`@)@  @ :`  4@(* *`@(@  @`:  4㿐@,<V%VV$@(ܒ, < V&V`V $@@(В<$< @(ɒ$@(ŒE?V@(V@($VV " @(  2`@: @(" @: @(7V @(V@($VV" @(  2`@: @(" @: @(|7  @//H`, ֤@(p` 2~`  $z` ` *`" * @(\ d7` *`" * @(T d7` *`" * @(L d7ؐ@(Q$`'x @(p$`(` *" * @(9 ?#4` ?#@2`@:    7` *" * @( ?#4` ?#@2`@:    7` *" * @( ?#4` ?#@2`@:  & 7@'$`N'x 2` 4@' @' $`  8@'`  p`'x@ 8'|` ' ') @'$`(@ 4'|) $@ 4'x@ 8'|` ' ') @'q$`,`@4@2 `,8'x @'c $`($`( p@'[$`,(@//Į'''Ԫ'̀`''  ' ?%'L'L',@'@'R   * : ' `"0 ` ", @`"%`J`2 ` @'1 2`܀2 @`耢 `"`@J Ā2` `2`  ɀ 2Ā(%@'`?` *`@ @L\ ,<,D`` `"@ϡ,@@'  ` "@@@,J@ z#\#``T X @ \ @&@  ,` @ _",@&@` W"@` n",@@&ؒ` :@@,J@ C#\#``` d @ \ @&@  `,` @@ ?%`,` @@@ 2i @gc ` `@& P#N,` @ @& P;,@@ @& P `t @&J`< , (,@ %@'(%@ % `HL `P L`L  l`L x @&9  P@//''Ĭ  ! 2  ̀ "`@%4`` 2@  퀥 `| @&   `'`';`9 7D 2 ` "fĪ`  @  C`@@% @%@?%  D  $@%Ҕ ?쀤  `@%ʔ ` "$`   *`" ` &```  @% ` @%` @% ` `h L @% ``  Ā`  `p @%  㿈  | @b  쀢 @%w $      "`  㿈@//ጮ | @7€2.  ?? @%O @%N   @%H$ @%@   $  㿈@// $`|`@$ `@$   ?``€ 2,``@"` ` ````" D(`㿐@//㴮@$ @& @& D㿐@$ @& @@ D& D㿈@//\!8@ 6 "@ @$    `0"   2`0!,@$ !0 !,`0"   2`0@$5,( ?*` * ``$$++@$c +@$` $,$㿀+@$  ` ` @$7`@$52` @$ 2 @$+@$+@$'㿀@//ီ#\+ @ r 2`9  , +耢 "` $`$`"` ` @#@#@#ʐ ` `@#@#`$` @#@#@# $`@$4㿀@//<#\+ @ " 2,@$0<+€2  @# 2%`$  2 @# "`$ ``  %` 2"` @# 0 2 @#} "` $ @#`@# 㿀#\k @ ՚    㾸lk€@#Ȑ` `@#Ò @ ͒@#``@#㿐@//(,+€) `#% ``  `` 2"` @#- 0 2 @# "` $ @#!`@#2`@#㽘@//L'$'? 4 r? 8 i 2 k* @*`@ "?k 25k  $ 60k ( 4@k* * @@ 2!k44@2k4k ?* * @@ 2k44@ k* @*`?$@ $k  $k$kk* , @@# `@ *`@` @ ג `24@"k4k* "+@''  @"  #$( D''' ,€ '耢  ' ,€ ' @"ʐb '$' ',@'''kk€    @, @@, k'k€    @,   @@, , $@"$,@@" '` n0l$@"`@"r` @"n 2@@!ʐ $@?$`$`4 @"`@`$ $@$$`@&  $`'Ȑ $`@"G@"G`?` $`` `@"=@"> `L  2`` @@2$@`" $@$``@@"#0@"`@//4'''@` '븑*` * *`k@ ``@ ?#?# $` @@#?  (` @? @@? { $@(`4 q`@ & ` `2` `"@@@ ђ $@͘(`4 S`@ & ` *   ` `0 `@ @@  " @@@  " @@ 2` ` " 븑*` *  `"@`( (4` `, ,|yaw @봆e?Ԁ 7`` @!: ' #'' 6Y` #`Б,  ` ( ``'뼟€ `   "  @  , 3` ܀ "-'@ 4(` $'ܘ  `@`"` '@  @  " 'ܘ   ` '` `2!܁(@//d''% *   M  L@ %@`L@  %@@ $@M {  ?ݑ* : `VS @ *`@|DDDDDDDDDDDDDDDDDDDDDDDDDDDDDHDDPDDDDDXDDDDD8DD DDDDDDDDDDDDD `DDtDd` , "4 8< 2 n02!($,22$Ð0 20@@ @ 22 4 2 2 2  22|$ 2y 2t2q om$p`   ( @  2    ( @  *?MD(BG@ 2A@6` 5. @ "- , *( @ @$, @z @v$ // ` @Ԣ@g@' @`@q 㿐@㾘@//㤮@` @ @ ?a @@?@ a@  @ 㿐@// a  @`@n( D` @f 2  a  @}̀6~ , `@@ t , p ` @B 2' a  @Y  `@ T6Q , `@@ G , C ` @ 2 a  @-@Ŗ`+a @ 2@ @M`a  @ a `T @  㿐@//$!8 !p@@ h@ђ  4@Β 㿀@  ` ` @`@2` @ 2 @ 4@  @ @ @ 4@㿀@ #\  @ؚ 2`dD `4`  @D "@6*`  "+ `@ *`*` @`&` *  "  " 2@ "*` @`& *  "  " 㿀@//ᨮ@P2 ` € 4  #\  @m 2@Jl@ *`@`e" ,Z;a-,` 2K @,  "@  , @2@@@?  $@`   2"` @Ɛ 0 2 @ " $ @@ , @*`@`" ?`%`,,  @@ 㾸@’2``# €`4" @  @@ .` @@`@@ܐ 㾨@//⠮@Ɛ 4@ࠒ#'%@ @Ɣ   ( 2  @?@ @@ࠒ@@//̮'\'T@֔T'||@Hx  !|J "%; \ (Tb, %D @p `'@ ` ''`'@' *`@ 5䀌*'耢 '@ ' $ @耢 2   ' ` @'  '#''L \@  /`T aP@R 1al@J  a@A   a@8  'L a@- 'L a b@ L . @  "  't@ t 2} Ab(@  @t 0b@@  @t 0aL@  @ڔt  "#\tah@  @˖ 'ttfa@  @t 而t'a@ @t Հ t"#\pta@  @t 2 -a@} *@@m 't t@g2   '  ` @' t'b<@N ( @M }'t2t"#\HtaH@5 @:t git_"y'"f#\tad@  @ G't"O#\>ta@ L . @ "k  't@t 2b "0#\ta@ @t t+'a@ @͖t  t'a@  @t t'a@  @t t'b@ 2 @t  t''@̒ @ 'ttb @w L . @d "  't@gt 2ذ "#\tb8@X @Tt t "#\taD@B @@t s utta`@- L . @ "  't@t 2 #"Z#\ta|@  $@ t =p@lp 'p'N' tI'  2%t"1#\'ta@ 2(#\@t h@ddt 'd'$' t'  t't'#\a T b @. ! `\@L/` @ ab$   @  @L 㿐@//@@ѐ L@ <L` < J >J > a  @   ,?@Ԑ` >,?@/ / t'd'\'t 'p   t  !`    !`  `'t `  tJ ,t@pyp@ o @$`$`$ 􀤠 @$`$`$􀤠N"4H!@ "@*` * @x @ d'x@'|`'`0l,* l \  2   @2   @ܔ ,p 2\ l # @ "$ *` * @ː ($$ $  $ $ $ $ $  @Pp\#P@/ / X'@?$$$ L <  $  //@ $  !`   W2 La\@  $ L <  @s > ې!xL  >Ӑ!, #$-@$ >,͠   !` @ʔ 0`,€ "#   @ $     L - `   L - `  2 ֐!, ,€ "!O $ *`@ L - ` !`  @ 2 @{ 0O Cϐ O ```Oa '̐ $ O?,$@ʐ  $a  `` $ 2Lb  @ 3 `2L""0 L - ` !`  @ 2 L >   L >  !X!<%   '@@#@㿐@/ / 㼮 !`  $* *?J`  `>`- * x@/ / (@- *   @ !` 5-  #` 2 2`8  W `<` / #aĐ @Ŕ @?a x at @ ` "  @ 2? @ ?aa @  ` ,@@?@  ` !0@2 @p?  @i  2`? @|  0 ` @@J?a  @C? V㿐` "`0@<`0` @` ` ` `"@ @`4@_ `0  `  ? ?@  ?(   ?@`4@E  @`4@; ?㿐& @X&  @?# ?#  `"@   & & `& & & *  @3 ?#~ ? ?  `"%`@  @e,  &  @[,  &  @Q,  & `@ؤ ( "& $@"& $ @ & ( @,  $  $@  ( `@ &  $&  (,@ݐ (@l $@ (& ( ( $ *  $ & $`@ؤ@Ő㿐@Ð㿐@㾸@@@N?@Z@?㾈@/ / 0" @x' *` *  '"L 0ܪ܀ 2L@`   $ j @!`@~\#\#``@t@ (bT X" ,€ 2 :b\ ` @ 0/''`@L'@> $$ $ $  $ $  ?"| 0ܢ܀ 2%` "d@5%` $` @; 㿈@/ / خ" @" 0쀢  @ "" " $   b\ h @A  㿈@/ /  " "l@''"| ,€耢 "   㿈@/ / " "p@''"| ,€耢 "  $ $㿈@//" "t@?"| ,€袒2` "x@`  ?  $  @@@ @`@//(" @4?'"H 0ĢĀ ""Ȑb@o @$` @F @Q ` @}㿐@//@2" "@"L@O "H@J "@E "|@@ "@Q  @  "@E  @ "@9  @ "@-  @ "@!  @٘ "@P  @͘ "@   @ "@  @ "@  @ @㿐    2 # @ &@   "@ @ @  $@ 㿐 t  0@ 8@q .** " p㿐@//⴮ l   @\ "x-x"$x`" @T@`@Qlh@E@G2$xp 2  (lh @7 $p ($t 㿈@//ᰮ t(@@  x p 2  x l h @ $ p x` @```2@`!`0@@`@#\#`b  b@ ( @ $@$`$` $` x$`$ x l h @֚@ $ ` "$`" $` @Ȑ$ @ $@ `@//Ю''䀤  b  @ؘ  e`@ `a`b @ `c''Ԧ?쀤N`b'b')#+c-J@ -= `@x `-"Π `d `f @m `f"  `t @a `t ' @U   '@w  à b @  @d  `@'䀣`܀`@( Ԁ`@ @j`c2``c @  2V?쀤+`)"+c-J -:@ `d @   @  4  b @ @ ! `@g'䀣`@c  @   c  @` P@//l$ x$ p$ t $ @ $ l#  ' l"@@ l H 2 l@ l l h ` @z  l h d( @q  㿐@//℮    c, @0 2#@Q` `c4@L c8 `< @l  `@ܔ2  @G @G @H 㿐@//t  c, @@ @@ D `J@ .  @":  ,@'`!` J    (`@@`&` J@ +2 (`$`   (`@`@`     (`@@` 2 $@, @`@ @@//`( f @ b` "  @*  ,  J@ .2 , `( 8€    ,, $ `&`1``,$`4$``  @ ` `@ ` "` @ ` `,$ !T , #D@$, @!T"`( @@@U㿈@//8 c, @H @r q @`24਀ 2+ @,@4   ` ` "` `@{`,cD@v B ,@p ਀&7 "`@0`J ,`@*耢 2& $@Ǒ* $ ,L@ . @@ @8"@ओ," 쀤@ 㿐  ,  J@ .2 @   & @ & & 㿐 6 ,  @T  @ݠ ,  㿈@//\ c, @L @ * `@*" `@"  @  2#\ cP `| `c@  㿈@//P c, @ @x * `@" `@ߔ  @i 2#\ c `  `c@O  㿐@//D c, @.0`@ a!``T@  (  c, @x2  0@$`@$ 0 0$c8 ` @    㿈@//$ c, @`@ Jv(`cx @  v ` aP @쀢 2s '@ 쀢 ` aP @ۘ0`v5w`c @  ,w (`@)JX @–'@ 쀢   @ ʐc `.X @0+w`` @ [ `@  T @'@ 쀢 0 c8 `, @ i  @   " @ "@ "@ "㿐@//< $  @   `P@   c8   t  c,  @   @@( @/ @! @ 5 @//4 c, 0 @  >  @ `a- `@ c %`a     @'   c, t @ ɘ  @ :cG`c c @  >`c`:     @  c,  @   @ 쀢 2ް @ \`@  2$`(   @ { ǰ `c`c `L @ B `c`  @ ؔ ` `c&`c ` @ ' `c`  @ " ` " @ q , $  `c`c ` @  `c` f @ m Z`4`c!`c cp @  `c` K @ |Q@ ` 2:8#`cD`d c @ Ɣ ;`d`7     @3 ,`, c,  @ ՘ ! ,`@ Q耢 2 @@ H䀢 2 @ ݔ `,`d`e `$ @  `e  @ `p @ r` `f `H @ d `f ˘ @ ` #?`g `l @ I 6`g`2  c,  @ e   @ Ք @ |؀  @` * * @` ؉ B` ?@ h `g `h ` @  `h p @ vcl `@`D`8@ `<m `i c @  `i P @ V`p @ `DP `i c @ x `i 4 @ e; @ ̐c @ `1 +`i c @  "`i`  @   c,   @    @ `i `m `D @  `m`  @ " ` 2Ր#`m`n `h @ b `n ɘ @ "а ` ̰ `p ` @ F `p  @ ޔ `0`p ` @ . `p  @ Ɣ" `   ,H`p ch @  ?`p`;     @ - y c,  @ " n -  @ Ԁ 2f @ {Ԣ- `((@"J`,c   @  O `p1`p c @ ˔ (`p`$  c,  @  3  @ W, @ _Ѐ & `p @  `p(`p `@ @ E `p  @ 2" @B?'̒@ ۔`p @  )`p `d @   `p ٘ @ " @?'Ē@ ` @ V̰ (`r ` @  `r  @ " @?'@ `p @ .  `r cd @  `r`  @ `p @ ` `r `r c @  `r` e @ k`p @`e `r3`r c @ *`r`&  c,  @ I  @ mB@ <c   @ @2 `r `r ` @ Y `r  @ F@ [`p @  `s `< @ 9 `s  @ &@ ;`p @{ '`s `` @  `s ՘ @ ۠`p @^`@  @~ ʰ )`s ` @F `s`  @ܔ @` * * @`(`p @, `s(`s c` @ `s`  @ @` *` * `p @$z `s(`s c @ `s` Z @a @` *` * `p @R `s(`s c @͔ `s` 2 @c9 @` *` * `p @* `s(`s c @ `s`   @; @` *` * `p @ `sG`s c @} =`s`9  @" @` * * @`( `!*`@ @p@d4XL  8 \  #\#`s(`s c @6 `s`  @̔ @` *` * `p @  `s`t c @ `t` s @y@\v `t`v c @ `v X @"_ @Z G ,)`v ` @Ԕ `v` 9 @j?# "*$  $$ `v<`v `4 @W 3`v  @D" `  `!*`@ @p@d4XL  8 \  #\##`v `X @o `v` Ԙ @۰ @` c@[ Ѱ `v`v `| @M `v`  '@<  `@9  'c,  @W   @Ɣ `'p@h@   $ @X''''(';a49# )!@,`* @ ` *`@ @p@d4XL ,`* @@ Ā@ @)@ ` @Ñ,`@0 `v&`v aL @ `v`  @A@-`p @  `v&`v ` @ `v`  @@`p @n `v"`v ` @  `v ǘ @͐@`p @K "`w ` @ `w  @֔ؔԖ@˜`p @) `x ` @ `x  @`p @ `@ `y J  `y ! g @m`p @`8g  J  2 !L @}R`p @`<L !H#\ #` #d #h #l!#p!#t! #x!,#|!8##c8  $ !0 a<#$ #\aD  `@  㿐@//ܮ@w c4@r ` < @   @㿐@//<`  @z   2  " X@//Į! @]'''!X 0̦̀ 2L@   `& #@{Ѐ -@v 2ad#@kЀ al h @ @ߐ1 @ZЀ А@0 @"@ ,&& & "w& & *` *  & &  &  & !X& $& ($ p@//㨮! @@ ' ' '`''!` 0؟ԤԀ    2$ @^ ,4 4 4 @ @@"w$ $ @`*` *  $ $ ` $  $ !`$ $$ ($ 㿐@//4 "w@  $aX  (  !\ap   @= 0@//ᨮ "w@!t@  2  '   @$  㿐@//$` "w@`!x@` ? /$` `   "`@8@"`4@??? @$ ` @^ @!``"@Y@`@`($` @ː㿐@//! "@!X@ђ !`@̒ `@//㴮``4%| 23@{ $@` '@ @ĢĀ 4` @` $ @Ր *` @a* $  *@ *`"  &  @ 4$ $4- -+a!  2@O   6 !! ` ' J‰"`#@' H…""`#' F…"" 9 $ ڒ` ,*  @@   *` *  ?"?"?" ?$ ,* '' '  4  2  2 㿐@s4  2 ` "4"` @ @Ԑ0 2`@// '''\'`  'Ԅ '#쀊  ?  "   " @$  " @$   " @$   ? $   2 3-'̪)!@@Ԡ  @@ | ` @䀢 @q d  $ آ`\2c  ]'-)!'#a `2K   "G  Bܐ 2? Ԁ 2;  ` @  @䀢 ' @(, "   2  @䀢   @,@ 0  2  㿈@//' @ ' -`:  `" J`2  @ܔ 2   2  2   J "`  2 `a  aaᴐ  @ۘ    2  `@2  "   2 " 㿀@//''L@  @ '?`7*`@ @p8Xh(D`@ @ @̔ 䀠  @8@  @ "$@'$䀠`$@H$䀠 `@<@"  "$@$䀠 `@$@"Ӱ  "$@$䀠 `@ @ " `"$@$䀠 `@@^"  "$@$`2@ @Ly 䀠 `@А@@" `"$@:$ 2k @5f `2@ @,M `2@ @#A `2@ @5 `2@ @) @" @ 䀠  @ 2$$ $     a @7    2  2 p@//`''!'Ԭ`  'ܚ 'ܐ @ `ܢ< @:$ 3$@ "/ )!'̀`"``2` ` 2` ܀@ 2` ` @Ԕ@ @Ð'Ԣ` @ ۀ` 㾨@//Ю' '' ''  @Y= @; '܀ !' !'䀢 !'耢  !' @/ `` !@@h@㿐@//p#@!?`@ *`@t$DTTt( 2j!h!eb! 2_0] Z@V R@N`J@F B@>@:`6@2@.@*@&@"a @ @- 2 ,0   @! 㿐`    J &  㿐@//xM 2I` `@?`A*`@ @@` ".` @w)$ "&` @c!$ "` @$`"` @V$ "` @< $`"` @$` @ 2`x@//" @.''! 0ܢ܀ `   ($ @ @ $ !$ $ ''"  0ܤ܀ 2$` !@$` $ @//Ю't'ld" h@''t'l'\'`''''! 0ȟ    $ ] @9 a  @,  a  @ۘ 0:''''x'|'`#\#`x#dtl@i\  $ !$ $ ''"  0 2$ !@`$ $` @f 㿈@//℮"  !b @[0''"  ,€耢  a   㿈@//̮" "@?"  ,€袒2` "@ `  ? $ @  @ @㿐@//" "@!@ !@  " @ 㿈@//म'@l2"@"@ "@$@@ $"``" ?" " " " " "  ," $ ,㿐@ `& `0  $`0$`0@ \`,   ?   2$ $`,@ 2 㿐@//@@ "E , "7 ` ` @8.  "  `@2&  "  `@2  "  `@2  " ` @*   "   € "  2  `  @`   "€㿐  @ &   2   2 $  ` @ $ $$ $ $ 㿐@//@ ) 2   2    "<` ` 2`  "`` `2`  " @ߐ 㿐@//`@ "@"`"`"` "L ""@" "@"㿐@//خ"L` @ 2` ` ""`` `2@h@//d "L`0 "D"L+b@`  2` &@$ "@s %@`€ %` `2` "2 @ @< $ "P*`@2% @ߒ 2   @#0ǀ " (  ( "J  @ 0@ .| "` @ @@?` @?$ @̔ؐ@Ȕܒ"@ " $ ؒ"@$" $$`$|"   "` @ߒ r  a< $ #\#`a<b$ (  b,@ $   $ @Ò P 2' "` '''"<@'"@〢 `2@, !)b0@ @ @ `@"` ` '``€耢 @"<"@@z㿐@//Ⱐ "<  $ @`` ""``""`` `2`@O  2 㿐@//"< 2"<?`(*`@ @ 㿐@//"X"H@&""@ 㿐@//Į ! M` @"!8 !@ 2 @`@2@@= `02  `  !8@Β$!8" @˒@ h"T$@" `@ !8 "4@$!8" @0@㿐 &`@`     2 $@ $ 2 㿐@//` "X "H€  @ @.  㿐@//t!8 "8@E!8@[ $!8㿐@a @ 0㿐@//  @'   ,  J "  J@ .@̔" `   @j  @  J` d" b` @ 2,  bd sh @"u @ p l`,,:  f$, bl @ 2,  bd Np J P @xF @ G :  l5 bt @Ŕ , bd )x @X& "(  " `( H`",@ "```2@,2 b|   @   ,$@ 㿐@//Ȑ!@`$ ? 8 4  `2 `   ` "@m "`( H     2 2 `(@ $ $`( H$ `(" H`( L"@"  "@C`6`( P ""  " ,@-, 2$@T$$$(" R2" 2$@B $$$(" @"`,@8 2< "1$ 2- @#$$$(" !"@ , 2(2$@  $$$(" "@㿐@//㨮`$@| x 2`(  H` @```2@`2 "`@d "@`( H"``(" H"`@ $ "<`( (`(@28" P$  `  @` `@` @"!$ 2$, \@ $, @ $\ @$,$0$@$$`(" P`(@ ` "`L@U@" `("`,@EL$` `((@? 㿐@//P( H O "b2$ a(2 a$ "$a( @,$a($a$a$ @"$a$a,@"$a, ("`H$@#($ a$2(` 2( "a$ `,@,a$@$a$  2(`P""`P0`   \'Ȑ!'''  @Ú 㿈@//ha( ?"  @@ @@@@쀢 "" ((@2@??? @ @ @ @" "@{," @@㿐@//<@   a0\ @$a,㿀@//ܮ" @'@'" 0䀢    2$ @F@ b  @<   @ސ $ $ $ $ $ $ " 0䀢 2$ "@$ $` 㿐@//|"  "b @ 0 " ,€ "   㿐@//" "@" ,€2` "@`  ? $  @@ @ " @  @@""㿐@//" "@"@ "@ 㿐@//␮@;!$ @8!$    *   $    " ` * `8  * `D 2   `1 *@ ` # `D*` *  *   ဣ  "   *`: J HJ   ""  J 2$ ` 8  K"   \ @ * \ x@ J @;  J @*  *  *   $   *`   *`  *  J 0 2T`<  0 * $    $ h@//('''"" " 2"@" ,€ " ""@"" -'쀥F '  J ````\ @ܐ$@ @ &$@ `\ &  @@T 䀤@    `  2'Ԫ¦\  \䀥@  \ 쀥  !`  @    'Ԩ  'Ԁ\ Ԩ'`"% P@//L''''Ġ"`" " 2"@" ,€Ā " ""@"" \u\  '  J   s % #\@  hbd$@ &V$ DhA `L@  \/ @/ #\̘@ȚO !O \/ x/4` / ` / #\̘@O O @O @O @  HL @\@I   % #\@x\`dhl 3@z쀢  @* : 2 @:`  4@j쀢  #\#`!И"@@^#\#`% "@@S#@ '#\@h@//'䀥`'#  @'' $ #\#`$  @# 쀢4L  ` `  2 $ HL@  X@//''ܪ'\h`H R  #\#` `@ dԀ` 2  : ` Ԡ#\#`#d#hl@ɚ6@#\#`#d#h#ll@@%`H`L  @ `  $`?  㿐@//d ?* : `i@ *`@`0tHL   e$@P 2L L  2L :  w;L  71 L   e+ 2L L  2L #  w$L    L   L   @b@  $@  b  @  㿐@//X`.@ *`@DP\ht### ## # ##("#4㿐@//pL@`b c@ @ `m `m`rcL @ `r$ cX @y  $  cd p @  㿐@//`      2 #@#L#X#x㿐@//L@8`b c @2 `p `p `rc @$ `r cX @  $  c$ 0 @4  㿐@//ؐ      ###X#<㿐@//XL@Ր`lcH @ϔ `r$) `r `ccT @ `c b @ﳔ  $  c` l @И  㿐@//H       #H#T"#t㿈@//خ#  #@  $#`(  `0   # 0 㿈@//,@|쀢c|  @k ^ J  !`  @ `'J`  J i"! m  c֐ pА  * * @`  ` B# #,#8 B 'J  !`  @ `'J`  J < 㿈@//@@쀢c|  @  J  !`  @ `'J`  J i"  m F c" ֐ p"*А  *` *  *` * '' B  *` *  #D  * * @`  B`  *` *  #P B D  'J  !`  @ `'J`  J |#\ #h#hBB$ @//ሮ# @  @ h` `' ?`' ''`  `' ''` "' '`@  `' ''a"' 'b"' $'@  (d' ,''h"' 0'@"' 4'@"' 8'@"' <' @"' @'@@  D'@"' H'@"' L'@"' P'@"' T'@  X/' ' '# 0||    I$ @R  `  *` * $@ *@ *`   @@Җ$$  $ $ ''# 0|| 2$ #@)$ $` @㿈@//᤮# #@ ?# ,€袒2` #@`  ? $ @R@R  @@ @@㿐@//̮# "@#@ #@ 㿐  `2  " $   "$ € $ $ 㿐`  $ @2"""  㿐 Ā@ `& "`Đ @@ Dp@//P'''#@   "@#@옒  # 0쀢   @@0r@H $$$$ ` @",$```2@@4 $@$`$`$ @헖䀤"$`'2  @툖 $ 2$`$` $`$` ` 2 2! 8@`8@2@`<2 @`@܀@2@`DԀ@ @@cԀ@a@0  H @ <  㿐@//خ#@   "@#@ ` @;# ,€?   $  22 "` @ @뻐  #c@"  #@@뙐@뚐㿐@//L@ ? 8 @`  $`#@폒0   `` " @@` "`㿐@ @ 㿐&   3       2 28`82`< @ @ @  H <  2㿈@//ᘮ#\c   Ěc @J .2#\ @바 - c c @  c 2#\ @떔  c8 r c @ / r c Ȗ  @u"Ű `   ,$@! "  `@`,  2  # s c @ꮔ  s c  @@@ @  J s c @ꋔ A s=  c j䀤  " @o  c @k 2#\#\c   c@ J  @@? s0 ` @A 2'# c ! @є"! `   !   $@`   $ @=   @//߮@ݐ 2  (! @"   ((@ (%@ @@ @`! ?$!#\#`#d@2#@"\ !  $!@'  `  -#\#`#d L @ ` `@ d $`" ``#``#h `  @钔@鸔 1     @ @ ׀`  @ @ ((@ "  "   @ 㿐 `/@/@  a  ?$a@ ` @맒 @@밒 @Ò` 2 ` " ( (@ `  @O 0 㿐 " !   @= & !  ?&! ` @p @y @㿀@//ޮخ   @ "    "   "     0!@ 2$` "$`$``쀢   `" 4 "    ` `$4` ~ |  "y  ?`   2`` `쀤[b  8_ ` 2 ` 2800#@B @`a 2C$`@ ` `#\#`#d@`   @њ  21$`@@   @ʚ 2@a $a@긒 $`# 4#?*`@" @@   㿈`& @` * * @ `28& @ߔ (" &  ," & $& ``* ` 2`$ `8"@' $`<"@'`H @&`$`@6 `$`D@6`$`& `$`2` & $&  & 8㿈@    @耢 2C쀦/ ` `&`& & & 4@:@臒? `  ` `&`& & & 4@#@p? ` ʀ Ā`&&  &   M` ` `&`&  &  & 4@@@ ? !    ` ` `&`& & & 4@Ғ@?  y u`&& l& g& 41 ` `&`&  &  & 4@骒@? `  ` `&`& & & 4@铒@? ` :? !    ` ` `&`& & & 4@n@绒?   `&&  &  & 4@T@硒   2 @`5` 1@ \'Ȑ!'@'@` * * @`'@0`'#\#`#d@`@ ''̀` `   @跚 㿐  2 @ 2 l 2   " $ $  쀢"$ 㿀@//ۮ⸮@''@@繒 #@@礐  @ٔ`  @8@`0 `` 2   㿐@//ۮЮ@  #"@ "`"`  "`  @* $`㿐 @  "`    2     ` 2 ?    ?"`" `"" " 2 ` 2 2     쀠 㿐  쀢"  ((@  !  @, @//ڮ| 'tJ . x ^ t? 4 `, 0@ bޤ`4 @} ր c    `8 <  @@t "հ @   @쀢 2ɰ @耢 2° '' 2 @䀢 2 @ 2  ` @`D    @.  @ `` &``@&耣`性 ''''䀢@$''@''쀢 6@* 쀢 *@ *  ?耢 6`* 耢 +`` *  ?䀢   *@@ *`@ @* * @` "   +``@ *`@ `* * @` "` `$@`D  @䬖  c f`H @䞔  fJ .`L tt?@  r` @䁔  r@ i` @v 7 i 6 , : ? , @t"ذ @  `f2$ $ $ $ $ ($ $$ 0$ ,tH* $ 8$ @$ 4 @ǔ @@ؓ, a l` @6 X l  `, @t " @` @*a(@u `@p`,aL ```@ ` @/ `,2`02`$3 `(3`@ap ::; @;`@ `4@ a @  R  pa @Ք  p  `, 7p@gt @o 20 @g 2( @b  2  @@` ?@㨖?   !!@埒@j @ 2@`` &``@&  @6 ? "@'   6  * *      $@6 ? $"@'   6@* *   w@C s` @E : s  `, @t " @   @ !!$%@ @Ք 2  @  ``2 @ "  @ >% @A saH @ 8 s4  `, bl@t "b @  "@@ڐ `` &``&@`@ G `  @ϖ ? s ca @  c? ?   `, ᬀ@@l'l'd'\;`ء,`@J -,`ld@`@6  ב,`\@} ,` @t `@&ѡ,`@ t "۰ @ "հ   @4  @? &  @4   @?& @`,  ‥ c raD @4  r rrah @& ig  4#\ #\`,  aZ @tV @⮔ 2r  c 'T 'T@? (  @T  #\#`  h ( ` T    ` * * @`   @ -   @`   @᱘ !  'L'D'<@'4,@J -,` ,L D<@ᅔ 2,  ,* *@4@y p@ * @*``% ad @_ 2$, ,* * @a@ @QH@`@| | * @*` |5"`a @4 $, * * @a@ @&@͖ l }* @*`  "``  vdi, tT  ?* *  ` 2  ` 2  " "` ?* *  ` 2  ` 2  " "`  <` "@ @ :  % @!@Œ1 `     @" ,`  @Җ     ,`   @མ   㿐@//ծ `@  "`@!@㿐  @@Đ @@㿐 .`* ?ٔ  @ ,`*  `@ Ȱ 5 ı:  @ ,`,  @V@Q  `@$  @ ,`*    `  ,`*  ?"@ *  `@,` )  @ ,`*    `  ,`*  ?"@ *  ,`* `@" b `  @ ,`* ` ?",`*   `"`,`* " `@,`<  @!,`* ` `` ",`, @Œ"@ @߿ 4`@&,` @ ,`,  @߮@ߩ  `@$ ,    4 $08@"@ $ " (08" ( # , " 0$ ` # `  `@" ``# ``@0`@8"@` `1 8"x@//Ԯጢ``@ ?$`@` ` `<`" "@$`<'@@ @ڔ  @Ք @ē*`  2`@"`@ 2@@@v $$`<`@ $`@!@$`<đ* @"@D"@ @& p$ @&g$$@ `Đ $ @$`Đ $$`   *@ *`@''耣  + @ *`@''  *` *  ?" '  *` *  ?" ' '$@'@ @/ 5܀ 28@2<@2 @@2D@ @쀢 2&$`<@ " @  ܀ 4 @@@  @@  쀢 "| $`<@6@//Ӯᠮ      @ '| ``*` @* $$ , * , * |@"@ "  " $  @*` " " " $  ,   "/ V  R  ? $ , 8 "H * * "D $ * H@@4"2+ (   ? ( 0 8 "H * * "D $ * H@@4"2 , , *  ", *  2 $*` * H @@4"D , *   @ 't 6 , *  "  2, * ,  2 H #*` * `&"`D , *  #?, *   6, Ԙ* "      - *   @   ,*   @,,, *     @,@*` - * `?"@ $ ) , *  "@ @`   , *    @ڒ@Ւ%@&@ ޑ, , %' 2`, *  @, * 'D' ` @HB' ""  ", *  ?"@  " , *   "@ ?"?&V  6, * |@, @*` ` " t@Kt㿈@//Ѯ !@   "@ P@L  P 0쀢 "%` @ L&& & & & & D?& &  & & & (& $& 0& , H* & 8& <& @& 4& H& $`  @R㿐   @ &  @ & 2 "  "   @   @ 㿐 #@  Q @Q   &C  0@   @-@` *` @ێ*    ,`, @&@*  @ *@ۙ "  ` "`" ` "`@   `"``"`  㿐  @S (& $ $ @M!$ $ $ $ @F!$ $  @֔!  @Ҕ!㿐@//Юd) $  #a 2 @6 "$ @ 2 < $@!@C<` "@$㿐    " @   @@ @㿐@//Ю8@ '`@ 2 @ $`@!@ @ H* `8 Z` V @ R$`8` @`" @!@`0F * ` "` ~`  @/$  $  P ,€@@`@ !@̒$@a@J 02 @`@  $`@!@ܼ0  ` @  X@//Ϯ\''ܨ '̦ <'#a,J .Ԅ+'ԑ,@ڃ`, :  -"&'Ԁ`, :  -2, Ԁ ,?J x ^, :  ^ x -,܀ˑ,'ܐ   `  @z   Ԁ / J`^ `x* ̆ '̑:  - '  * J -'ĐԀē/  @互"װ ` sȐ܀,@  qJ`c%,`@ڮ `c`@ک쀢 쀢 6h$@J`\,  @  &`i,`@ڈ `i`@ڃ쀢 쀢 4B$@$,`  @ y `i,a(@b `i`@Q䀢 e"!@Y!)`i,a4@G  `i@D쀢 쀢 * @,aX x @٬ 7 $,)`p,a@  `p@쀢 쀢 * @ٹ,`X x @ك  $0)`p,`|@  `p@쀢 쀢 * @ِ,` x @Z  $$)`r,`@  `r@ɖ쀢 쀢 * @g,` x @1  s$(&`r,`@٣ `r`@ٞ쀢 쀢 6]$@?,a   @   &`s,a0@} `s`@x쀢 쀢 47$ @,aT  @ n ,,at@W  ,@ ?" $4#\a8  \ !| a@ؾ I ܀{,"` 3  $ 2 $% $@" ` 2` @2`a @ٔ?2$?Đ$?2  2 $$̄'̆ '< 2"@ 2   %@!@6 Ԁ/  Ԁ\ / J@ ." / J ^2L  Ԁ * J ^ ` Ԁ`    ?  @ؖ   @  2 2   2$  ,? Ԁ&/ |~ a<,`!    @ n ``   @ט b `/    @˘ V !8!\!|!#\@׺E a@׊ ? a  T @ש 4 `x/     ,@כ $ / #\`x    ,`@ׇ  `aa, @v  㿐@//̮  n*  e* ` s* ` w* `` * aP@# 㿐@//̮@ * : `n*`@ @ ? J w x@//ˮ@@a a "@@o a@i  J@ - @!a @ٖ @@ؐa @Ea @ɖ  a @ؿ @ "$"! `"!!a @ؤ !@@  @ؠ a @؜?@@@ؗ?a @ؑ  !@، ;"$"!@؃@x  @} "$ !@ɒ @c  "@m"@ " @!@@a@֣@` !@a@- @A @b @Q @8?a @2 !@ր@= 㿐@//ʮb @5 ! "$ @ 0ga @0a" "@@ϔ?a @ɔ?@ս@  ! 2"@!"  @!@@ @ؖ"@՗@J  "$ !@"$  !!@ @!@c㿐@//ʮb @׺ "" @ם .b @ץ %b @w  @ם b@S b @׍ @@`?a @Z Հb @y @Y@//ɮ㘮`( (`T @" "  "  @ג$ d4 d, ",@' "`( T x !` L@ *2' ' `@ '@$ N? @* :  $@` @L@  .`*$@ d4 d@C*?@u'   'L@ +  '쀊 2 0@"4@:  쀢 2 "L@ ."!` @>'  {@2 쀢@2 耢  "" 㿐@//ɮമ"@ @T @ ""   2 @4 "    2 @4 `"0 @ؐ"    2 @4 "    2 @4  㿐@//Ȯ b4 8 @l a& b< @f c  b4 @  P@$   @} y c"g bD @? g b4 _H`( T "@$ T""#r bL @ r b4 =P @ӯ ";  @ԍ  2$@3 ' bT @   b4 X  P@  @  bh  p @  㿐@//Ȯ ?% "("0?"(@* * @" $@"(?"@"" (` `T @P (" T㿐@//Ǯ଀?X "(P"0"(?"+ @ *` 29  "(* * @" @$? +  *    *"`*  @"` 4""*` * "$㿈@//ǮጮL@#`w bx @ `sE `s `ub @ `u7 ( `ib @ `i* < b @  P@Բ 쀢" J `d b  " @ ?㿐@//Ǯ )"'lL "  " L #"  !  L \ L  2L `L  2 L 2  ܢ`* :  c :%*:   2L: \2 L  2  `+  L :   2+? 2K?+ L "  " L bd   2L@T  \2 L  2  `+  L  +@m u` 㾸@//Ʈᘮ@Vt @ @~@m@ސb|  @6 ;  @є  @̔  @Đb@Ɛ @Ӿ @Ӽ,@@א0@ӧb  @  @Ӣ 㿐. @Л ""  " 㿐  *`@Ѝ * $ $ *  $   @*@Р @"@`"``"`` "`   &   & 㿐@//Ů$`(`T @  `   ?" 2 `  `   "( +"("0?*` * " @ ""0+  * @  "*  "*  ""(%` ""   (`(@"* " "`( T@ "("`@ *` @* "0* @p*@* $$"0"(*` *  " "@" "`" "@ % ` % ` % `  % ` % ` % ` % ` % "\?%""`0`4*@ @`*`@ $ 2``@`? 4@?2""㿐@//ĮX ` " * " ˒ *`"@` 㿐@//ĮЮ"`@ # "@"0@A $ ""0 , "@@@  "`""" ?" "  @7$T@@5㿐 `   " ` @/`@//Įᠮ'  #\#`#d#h#l#p`  a"@ 쀢 耢  ܐ6 <@F0 "@@ Ŗ <X@//Į` J .``4 b @J`a& "b @Ɣ `a@a " @  b זؒ ]`a$`b  b @Π `b@; " @ `A`` 2`9`b;`cb @~ 2`c@ "Ұ @ 2 b  # b䀤 2 @A "@ `fb @C `fJ .c ^(@-6`icH @& -`i 6} , @μ"@k"`  @Њ `@ @@W @B@P@ޓ,V `pcd @ `p` b  @΂ "; @1`  b ` @+ `@&`,c@! @χ`@`0 #D#`c$ | @ט `0  "     cccc @Ͷ ` 2`$2`3 `3`@` ::; @v;`` *  @͓ ° M`sc  @\ D`s` b x@@ " @`  0 #`#D% @ 2   0 ?$ 0 ,` "@ 0   $ 0 @#x  t$ 0+`uc\ @ "`u` b +x@͡ "Z @P "T @R`,  2J 9c @ 0` b  @ 2 @s", @""' ` " @A `@ @@ @@@ c    @Ԛ   㿐@//P `0  "`0 @Ι㿐  @@ې @Ɛ@㿈@//Ȳ`0 ?&`0` n`,`" "@&`,'@K@ ĕ*  ` 3    (      4  (    $   (    $  4  (     @  2 @ 4 4@`2`0` `0  @@Κ `0 &`0 @&`,@,`@" `D` "     (@ @ $@ 0 @  @@  (@ @ @ 0 @ђ@ @  0       (@ @ 0 2$@ $@ @$$@   (@ $ 0 2$ $ 2$ 2: 2 `B: @ *`@D`tԐ$@2  : .@ %% )@ %% % % $@2  :  @$$    @ $@2  : $2  : @"@< (%@%@ @*`/ -`82`<2 `@@2`D @쀢 2%&`,@ @q 4 @q@@l @@͗쀢 2&`,  2  &`,@㿐    (@ @ @   $ @ &   0 $ `  2@&@& 㿐    (@ @ $@ ?  $ @ݒ&   0 $ `  2@̒&@& 㿈@//x @   "@ @ʧ   0쀢 "` @] 4&& & & &  & & & & $&  H* & (& ,& 0$`  @˵h@//℮'ܺ'Ԁx'Ԁ@@"  @@ "` "` cXt@   ,@n  @ 2` @cX@Z耢 g $  $ $ $ $ $$  0 ? $ 0,@L@@t c @ b$ blc @ l $ rc @ r $ ecԐ @ e $ fc @֔ f 0 $ 0 c@s   0 $ 0 c@e   0 $ 0pc@W p 0 $ 06p`@I .p쀢  b ,@8䀢 䀢 6$ ,c8 T @ɠ 0$ N!fcp@ f쀢 ,@ 䀢 䀢 &$ $ $- c @D 쀢 p,@`@ڔ  pc  # @Q 0_쀤܀# `@ @ @@a @L$ ܀2` $ '` $  b @x@Ԅ'̄''Ԁ`,` "@`0 #  '`0 @ c<  @  c  @ @Ⱥ 㿐@//Ȧ( 2 $ #b 2 @Ȑ "$ 0 2 , $0 @ʝ,` "@$㿐@Ȃ㿐@//@ +` "@`0 2 @ $`0 @v@ H* `( c` _ 0 [$`(` 0`" 0 @]`0O / ` "` ` " @Ô @ʔ$  $ 2  ,€@@(`0  @0$@b@ʮ 02@` `0  $`0 @0  ` @]  @@//ܮ'''Āđ(J .'܀ĺ ''Ā X't'̓( @y䀢 x'  c̕(4 D Ԥ0 ?$0 $ $$$$$$ 0 ?$0܀ cP- l " - @Ǟ- J `a&c @ǔ `à2 `@*䀢 "@ ` 2`bԕ- ؐ `b- c @k `b `@   `b+`e- c @R !`è2~ `@䀢 " ` ` @ 2` ` 2` `f- c @' `f`@֔쀢 2װ 0 ?$0쀢 G`E$0K`i- c @  A`i c@Ǭ - 0 ?,$0 c@ǟ - 0 ? $0 c@Ǒ - 0 ? $0 c@ǃ - 0 $0c F'`i- ` @k `ì2 `@V䀢 "l  `  `` 2` '%`i- c@D `i@A쀢 쀢 * @ߐ- c8 T$ `p- c0@ `p@쀢 쀢 ݑ* $$`p- cL@ `p@쀢 쀢 đ* |$`s- ch@ `s@쀢 쀢 * c$Q- - c @( 2G-  J`t `bc@ `bH$`l-  c@Ƹ `l 9$`r-  c@Ʃ `r *$- -  c@ƚ -  $c ^#\c   " c 9  ܀ @ @d`` ` ` `` 2` @@ ̗(`  @  , @İ 0P` @ 2`@Ԁ2̕(cX  , @Ů : `@ @ @@ǐ `$` $'` `$%`b @ߔ`,` "@`0  ̐ '`0 @V̄'Ā&n̰ X@//ܮ!$@  D@?  H@:  $@ 4  `  x$@J`. @ŷr @r?%  @Ũ``c `f `( @ `f  `  H,@N? @C@`i `0 @۔ 7`i  `  (4 H ,€"%  `` @@ @@  @Q@Ĩ  @ @( @@Ĝ ɀ`s `8 @ě `s  `  < H ,€ `@ @ā` @ħ ``d "?@t@Ě `x @j`@Đ `` "?@]@ă `4  ` @P`` @q `4 `$` "?@:` @[ `4  ` @'` a @H `4 `(a "?@`` @2 @`,`t @) `0  `2 `` @ ``"H @@ A` ,@  : , ` @Ҕ # `    D ,€"   `" @@`,``2@ `   @Ҙ   㿈@//H H 0쀢 "&` @^ 8&& & & & !& & & & & (& $ & ,& 0& 4$`   @ij`L @㿐@//d```2``"`%\ 2 @7 "`$ $`㿈@//ܮ D 0쀢 " @ && & $  @h㿀@//P@  `p , @6 Ȱ `ଐ p`@༐ ,  , `  ,^@J ab` @ߔ b@|`,e Jh` @Δ Ah@Ji` @¿ i  \$`0io` @® o oK$`0a @ž  =$`0`X l @¼  7`i` @„ iJ `4 ?$`4@@%` 2 `4 $`4Cr` @e :r@@"Ϫ @  @ ` 2R` @ 2`@U` "`"`` @@ @@ĉ ͐$` $``" #r` @" r rJ `4 ?$`4@Ù耢 腠$`(`4 $`4#r` @ r rJ `4 ?$`4@v耢 ]腠$`$`4 $`4ra  @ܔ r  @\耢 C腠r$`rw`T @Ĕ w  @D耢 +腠Z$`wx`h @ xJ `4 ?E$`4@@M` 2  `4 :$`4y`| @ y@` 2#\` @} 2 #\@`@%  `    ` @ `l``2 `@ $``$`"``   "` P@I㿈@//Ģ` ?$``   ! @`@ 0 `D`Ā *@ H *#@  '쉠'셠 #"$JB' '쉠'셠 #"$ JB' 4 %쀊    4 "'셠 $$"BJB'  H*` @ 4 $    4 "'셠 ($"BJB' @ H*` @ ,`+*`@ @@T\dph3 : "" " " " 3 : "3 : "3`@: " H* # #@ `$ @ @! 82<2 @2D@" @   @€ @ " @v `4 @v@@q @ @   㿐@//@ &@  `  $  $ 2$  D ,€@@`  P@$@@02@` `  $` P@ߒ0  ` @   㿐@//@ W H ,€@@㿐@//㈒`4  `` `  "` P@㿐@//  @@ِ @Ԑ H ,€@l  @@f㿐@//|` H @l`! 2  2  2$@= $$$ $ $  $   @  `$ $` $ 㿐@//ሮ  , 2    !` @""@``2@ # " a @ @㿐@//࠮ `H  @@`D     2 2  @ $`D$ $`D`"$  "    aT 2$ @ $  ` $ $ $ $ @ `@㿐   H  @ D` @`2"$ D 2@`"``@z  @W `@@//⠮'4','$` H @u D`u4@```2@`j4` ``2`@```2``  H/@</ !(@ M*0X$4,H:'@ !@'D@"@ '('` `H/@ /D % @*0X$4,H/@ ܤ !D"@ ,@$@ޒ@ڒ4, !0 @  H@//'' `'a4 @J cta8 @ k g;D')!H-L;a`@J --h@@J  d @@  s`' s @@~ ` '@@ s Ң`"@al x @ ^ '   @`Q@M @'E g ha @9  h'KD'H')!-L;a`@J -:@@J  d @@  s`#' s t@@  t`' @@ ` '@@  Ţ`  @`@ al  @ ǰ @@ @!P @@*@ oa @  o''ԦK'H')!-L;a`@J -:`@@tJ  f @@o  s`#'Ԁ s t@@a  t`' @@U ` '@@w J Ţ` al  @c 6 @@Ӕ/@+ `܀@ ` Ԁ@ @`@ @ѐ $$  @L` @ 2a @ 2'K\'D')!H-L;a`@J -:@@J  c @@  d`#' d s@@  s`'  @@ ` '@@Ř  Ţ`al h @  @ %  @`"o ` D` @```2@`_ ` l@Y`,V'@@O`'  @=@ $ @T @' 01a<@  @U ( a<@  @K  a<@  @A  a<@  @7   at @ 㿐@// # !! $`"  @""@``2@ @ @ΐ 2 D  !T   @ @2$" D@2 㿐@//㘮 a@ $ Ha@ $ La@ $ Pa@ $ Ta@ $ Xa@ $ \a@ $ `aX@ $ dad@z $ h㿐 D   `    2  ` @  "D" `@ @C㿐@? P@//Ԯ@   c@ap  @)@}@@  ?@@4@@v-@@@@x@//Ю''' ` T@ca| @  "@W P@29 `䀢1Na @; 4@А`%+a@2 `@" d@"@@ 䀢 (@2 "@2 d`(  0@2?`,@䀢 @ "?㿐@//@d  @v@J @ $ @W " @ `` !@2 @T$ @$ $$ @R@Ih@//`4  @ɒ@ $$ $   $ ! 2@@J@$ @  #\#`#d #h#l #p@``< a"@ 쀢 `$ $ 2  耢 2 쀢 "   "@@A$ $ @ `@`< `  @J? `$ 㿈@//t' < !` 'ԢL  `  2L !`  L   ` " L @e  2 L@쀢 2L L  $ Ϣ 㿐@//L` @` !` L  `  2L !`  L   ` " L 2 L  @ `$` "@@T$` "@$`  $`$` ɤp@//Аa @I@A@>@  @@@@`@@  @l @ $ $ $$㿈@//<    2! 2!@  #\ #``<  @   @@ `   @% 0@ @Ր'??? @   #\#`#d#h#l#p @ a"@ 쀢  ;@x 5 3  / +) # 2% 耢 2! 쀢 2  ܔt@p t p.@@0 tp@sp0 @܀ @㿈 @d耢 쀠`?`@ 㾠@//8'' ( `4 @  "x"x'! !d#a2@ $$$ %@#  ~@  a';a9"x@@c@q? @l @Y @@ & `4 2  "  @ "Ϧ 2    æ/ `4u@@ $@@ @@> 0@//㘮'@ İ Q N 9!'''', J@ -; J`@ `a @ `d '% `d, , @q  , @`@ à @  ,  ű,  @ , b  ''4  @"xt/ 1",2h @ 2b @@@@p@~? @v ,  @q? &@yȰ@^Ȁ@0 2 `@Kb8  @ @hD @ D @ߘ ` @%@`%`$`@@y @!@Ɛ@Đ0値2p  bP \ @ؘ ʰ ! $@bd @ @?Ƞ4bl @b @ @?Ȑb @ /  @ߔ? ̢%,@Ԕ ,  @ϔ? ̘  8@@m  !'''''''''"t@'"@! @Ģ#bp @2@c 䀢 "p@(@"t@"@"`("t` ܔ`( "`(`2`(܀  @N@r@ bD  @ @@ ԁ㿈@//D` ` R`)! !` @쀢 2'L  `  2L !`  L   ` " L 2 L  `  @``$` "@@|$` "@$`  $``$` a P@//Ⱞ  @s $ 4"(@L ' 4"@i 4 @@c 4 4b4@R $ 8 4b@@L $ < 4bL@F $ @ P@//̔8@֮ Ґ '4#\#`#d#h#l#p`8 a"@   쀢 耢 ܀ 0䀢 ܬx'';b\9"070L@  c쀢 rL` 2L@`  "X4 -8 L` r ` s n"L`#L@"L`L@@ " J     " `L@ "`L@L@ `ܐ$@䀢 *L@ H܀F$@`@b` @  @ ?b @ '  Ԁ`bh ?2`@?@? @D @  @M@J@ߒ`.@ɔ? 'b8  @W  b  @ @?bD  @D  b @ @?@1@/`"܀ a @(b$ @ @?8 @ @+@r܀ r2L@L` 2L@`'ܠ   "XL -P `?* : `>*`@ @`̐`@Ŕ܀ 2'L@L` "`L@L` "`L@L` " ` L@`@؀ " L@L@ `ܐ$@䀢 *L@ C"t <ܪ @2+ (  2' (܀ $ @@d $ @܀ 2"$ $ @@V $ @Ԓ "$ $@x@L $ @ʒ $ $ L@ 2``ܐ$@䀢 *kL@@㿈@//D???! @#\#`  @: @㿐@//В0 @4 @ 2$ b< @2  $ $ $"t  2 (   (   㿐@//("t 6)"H'T "p2( (  2$ (         "$ @@ $ @6$ $@'В@ ( ׀㿐@//``{ '@"x@` "@"` "x` ` "` ` `2` @@$`@,`@* 㿐@//H   !  2 4 @ 2 㾰@//⴮@̐"x " `4@w 2`4#\#`@``@  @L @p77 B777 F"7 B77777. F"@7 B"7777@E 㿈@//ጮ@!``J m$ sb| @  s #\b @ `b@3 \ ` @ V T H`b @ ? #\b @ `b@ 8 ` @ 22 @``J p ub @͔  u   `b @  b `b ` @ؘ   @2   2 㿈@//0` "@q@0  ",   2#`#\#`b  b@    "#b @    P@// ' 'L`.A@"  * @*`@ * *  @  ` @ '@a "@ "e   2 '`'` '`'`'`'`'̒!``d/ `L , @b@ 2 ``   * * @`0'@  * * @`$ @  * * @J`( !`  @ @xĀ @b  @ . '{ -'آ @  !`  @ $@`L@  @$@?'"J@2   @ "   2؀?2& @b  @ "  #b@   b @ ְ  !`  @   !` ` @ 2`L@  @Ԁ `b  #'Ԑ`b` ` '`@ "u% Y +` *  `*`@ @DD<4LL      +` *  *` *  (@" +` *  @+`@ ` *  @+` `$`+` *  `@&+`  @@`">  *` * (@ /0'@  +$ a  "  "  2 @x   *@ *` @ $$  $ $ a $  a '@㿐@//`b@' @J @` *@ *` ` @ $` $  $ $  $ $ A@29  * @*`@@`* *  @ b   ` @ b  @`      2   $   2 㿐@//D@2 "@  2 ? $ @` $ $`@0  2㿐@//@i2! "@! ` @2`` "``2@㿈@//#@ 1 "@#h@ a "@#x@ a "@#@ aX "@ !l@ !D@ !@ !T@#@ `  L `` '@)쒒 "  @  $   $   `$ @G @ @~㿐@//$@s#%@@@  !`  @   !` " J J .  J " @  ! ! 2? @;O@ߐ!t$$ @ِ$ $  @ * $ $ $$ (@$ ,$ 0$ 4$ D$ H$ l$ p$ t$ x$ |$ $ $ $ $ $ $!$!@$!$!$! $!$$!($!,$!0$!4$!8!@@ %@Ӕ 2  J "  6@&c㼐  @  c, @ 㿐@//〮 !` @ ``2@ 㿐@//$@_ Р$$ `$ @@2 `2` $ ` ,@*`  ($    $$ $ $ $ $ $ $$ ($ ,$ 0$ 4#@$ 8`$ <`$ @` $ D`$ H`$ L`$ P $ Tc X @ <`"@@2 ` @2` ,* @`0$   $ $ $ $ $ $ ?$ $ $ $  $ $ $ $ $ ́@//@$ $$ $" $$($(@ "@@'$0  !`  @  cD 9@,@@   @ (@ `2 ., @-, ., @'( < $($@$ 2$` cP \ @   ( 4 ``$, 㿈@//x Ӗd @k $  $$  @ @$ H$ L$ P$ T X@ $ ct  @   @ѐ !@$ "@$( < c "`  4 ``$,@@$0# @R   c  @֖ c ( @͖ #@ "@㿐@//ᠮ`  `  c@ @M  ``  @> <㿈@//ܮ@. .$cL  @ H @ .,, @Ɣ,@v耤`@Đ`2`'  c@ @  ```"  @ݐ ؖ0@//L` ` $`@ʐ`(`2$ ! 2  "!`(@"  `( 2`( "#@?"@ $  @$ @`@2``$$`"` ` 2``, "`` 2 @[ '@ \''@'`'`'@` "`@u` "`@q` "` B @" @ ` $@@d`@d`l@€`@ $`?$@@Y` "`@V` @1@Q@R@S`( N`,`" @L @`( 8 €`,@`("`(@ 8` ",`(@9 2'`(# `(% P  @ʘ   `( cX  P  @ `( ct@ `(@ @`(@`(@`(@0 $  2 @ " @0 & @  ' \''' ' ' '@Dh  W " " @  '  `@ؖ, ` 2 @o   @ϐ&  !p!@" & & T&  2!  $`" `"`$` "'`$`2` "    @" @  &  `  & @0 ` `" @0 ?& @   ' \''' ' ''@Đ㿐@//Ю`$ 8``$ <`$ @` $ D``$ H" #d@ ` @F  @<0 T@$ T  $ 㿐& 8& < `"  T@;  @"0 & T  & 㿐& @& D `"  T@%  @ 0 & T  & 㿐& 8& <& @& D `"  T@   @0 & T  & 㿐& H `"  T@  @Ր0 & T  & 㿐& X& \& ` & d & h@& l& p& t & x0& $& |(& ,& 4& " 8&  `" @0& 㿐& \ `" @0 ? & 㿐& X `" @0 ? & 㿐& d `" @}0 ? & 㿐& ` `" @q0 ? & 㿐&  `" @e0 & 㿐@` 㿐&  `" @S  @&  &  &  ""   " "  2 "  0 ' \''' ' ' 8' <' @' D' H' P 2' L' '@6㿐@& 4 @ @ 㿐@//`( 8 € "  cL  @x  㿐@// !2  "l€@    㿐@//d` `%`  $"` $  " "`$%p $ 2 $@ $2 $`$$ $`$ ` " p'  @ " @[  V2 `2    @ "G  " A  @": `2  $ & $ " &$ @2 `$ "  ' ``$2`$"`$& $  " ' $"`"$ "'$2 @а 㿐@// !` ` 2` ``2`#"  (㿈@//h  @ ($!<c @ 2$!<쀢 @ *2 @$@ 0  *`2`@ *@v$!<㿐@//ጮ#㿐@//\ !   !@E  @@//#"###"# ""@""#c  @ ;'@ c@V   # @| @@uc  @˜ c$ @c<  @ @# 2!ȐcH @J  $J  ## "@#@ /`$@ݐ#@@? @ !`  @ @! ,@#'#'#T'' '##`'' '#  cl | @H " *@#4""'#  *@#0""'* "?#  @@@rȀ B@a# @@ #c @ c @ c   @   c8 (@ @ @ @//ܮ@c @@c @L@@Ԙ 㿐@//\@J@   c  @  @// '''@耢 2@ 쀢`1J @f`+#@#JJ@2` @ "`` 쀢  777ܐ?77'7̐ @؀  c   @Ȁ 2 c 777`  耢 Ȑ`@ $ ##\  `@Ԛ쀢  Ð  *` * #\#`@ʚ  c x`& @ c a 2 @6  c N#\ T   *` * #\#`@} c ,@ @#7$ @ c   @ c   @ #\@, @- %@%`耢 @H`"@,`@& c  @f  㿈\`d  `* * @`@  * * @`@#\@ٚ@@@Ԑ %%㿐 @ @;@x@//@ 8` @  @+`  @ +  '' ؀  @ @ `  @ؘ  㿐@//L` 㿐@//@\ ` ` 㿐@//⬮@C ` ` s㿐@//H`$ d`@// \`#\#`#d@#h  @' '''''@{  (@@e ؀ @@`?㿈 2B `  @2= ` @28 @   `7`7`7`"7 @ה `$ 2"  &"` 7`7`7`"7 @   7  7 @  㿐@//` ! #`8@@ $@ @ @   0@// `5 !. @ @  @  @ @@ @y `@c@t@> `42㿐@//⌮ 4   0`, @V  $㿐@//,`@ @  < @Ж @<`D@ `@//ᬮ ' l   @ " lG l''''''ؐ?'' H@'"@ @ #`t @'@< ܀?@ H ""`( H`" ܔ`( "`(`2`(܁@//(   x ? !+`L  @2 ( *   @2 * ?* $  2  * "  " ?w$  2 @2 ?'<#/H'@'D@$  @H/'<D$@ So<@]< &'<< *0X$ @@`  @  㿐@ @ ߒ 㿐@// Ȁ`_ @`"@ % 2 @ ؀"`$ `  @` ` "`@@`0`@ "`D "`D "`H`D "` "`@` ?"`@ `D` $`@M `Ā 2``̀ "`@`Ѐ "`@`Ԁ " @@$ȁ㿐  Ԁ  4 @ 0$ 4$  @@Ӑh@// ` @M`@uJ`t-`` @o % !  ` @12`  "  @ uƐ`@"l   `a` ,m`` @- e`c` @ !@ . 2` L = ad lpt@ x2 J 2L ?` @쀢 2% `@耢 2 `@䀢 2 `@ 2 쀢 耢  䀢  Ɛ!$l$p$t$xL `cS`c`a @ J`c F  ` @Ѐ2` Ѐ Ӱ %J Ѐ ʰ @$Ԁ Ða @@` @_ $@` Ԁ 2 АВ @  @@ `c`c`b @l `c   ` @.Ѐ25` @e@{ y @#9 @Ԁ(,`@@ @7 ,@`@ @jQ @R 2K  @* '  ,` @%"   @,` " `@ Ԑ($*`" `' 7$Ԑ$$@@@  `cX`d`a @֔ O`d K  ` @<2 ` ̀` @m%% J ̀ ݰ @$Ԁ ֐a`@ @̰ ` @̖ 2Ű ̀ @$$Ԁ  @ `d0`f`a @~ '`f ` @CD  a ` ,x  $$HԀ  @ e@ K`f`b @N B`f >  ` @̀2 `  "x v!@-J`a ` a @' `p$`p` ` @  $a8 ` ޖ\`f#`g`a @ `g  ` @Ɩ"a@  `gT`g`a @ K`g G  ` @2-` Ԁ  + -Ԁ  + -` "@@" @d| D" @h D#\#`` @Ͱ J ?$$` @ `g`g`` @ `g }` @ !4  2` L! ad |d@ih J L >$L |"@@pd $" @hh $ $dR$h` @ 2k `@ 2d `@ 2] `@ܔ 2V  6!X 6!| 6 ! 6!@<Ԁ`g;`i`a @ 2`i .  ` @Ė 2`  @ C8J  ?$$8` @ @ $4 @$ ,$8`i?`i`` @ǔ 6`i 2  ` @耤2 `  ۰  J   `"@$  ?@` @  $  $`iU`i`a  @ L`i H ` @K0  aT ,@x  aT ,5D  a ` ,j  $Ԁ 2z H "@ T@o$H@t 260!䀥`i@`i`b @3 7`i 3  ` @2 `  G 0@@%J  0`"@x ?@+` @* + $0k `i/`i`` @ &`i " ` @  2%!,@` $ Ԁ  @ `iE`i`aP @Ĕ <`i 8  ` @t2`  װ a (@,ΰ J 2 ?` @G 2 `@@  $($, `i`m`a @ }`m y  ` @A2` @   ,J  ?$@ "W$@ $D $H$P$@` @"y  2  Ȑb ` D`   ,@ "  "`D "`H@  'p@(@3H ?'p(@,H@- $$ $$@$DH Ԁ  $H @@  @Ғ @- `m<`m`a( @ 3`m /  ` @LD@ @a D@@ ` @D 2 `@|@ 2 D$X@$\`m8`o`ap @ /`o +  ` @~ᔀ a P@T˰ ` @K< 2Ű `@D8 2 <$P8$T`o1`p`a @ (`p  ` @I܀2 `  "" @   @ '("@i U`p`` @T L`p H  ` @2 ` L !$L J 2` L ?@,J`u` a$ @& `pL ? `p` aH @ 2L ? a8 ` ږl`pm`r`a @ d`r `  ` @ᴀĀ " @@B   @` Ā " ")   2 Ā  2 ` $"`@@ 0  2@` $@ $$ $$  @`Ԁ ʰ @qư `rL`s`a @ C`s  ` @Uԕ2 2 a @w  ` @& 2 `@쀢 2  *@ $쀢 *@ Z$]`s`` @F T`s P  ` @؀2` L q!$L Sk!HJ 2` L ?+$L@J`u` a$ @ `pL ? `p` aH @ 2L ?ސ a8 ` ȖlԐ $Ԁ`s6`t`` @ -`t ) ` @ D !DH !h  Ԁ   !!`t8`t`a @ /`t + ` @v "0%@` $Ԁ 2 ؐ @  @@ `t?`w`b0 @{ 6`w 2  ` @=@2`   $ L   |"@@ d` $   " @{ h` $  $ d$ h Ԑ   $ " @W Ԑ $ ԁ㿐@//@` @D`$@I Ԁ E  "L,` @<`$ ?2 `` @"  `  ` " @0 d | $ $ $  ?2 ``$@"`  `  `$" @ h  $ $ $ ` $ `$$   "\,``` @`$"l`@`` $@`$$D`($H`,$L$P  "`(@ &`(* `  $ `(* `$ $ `$ $8`$ $< Ԁ      "@$  Ԁ     "@$ P@//`   * * @`$`??? @ƚ b|@  !#\#`#d#h#l#p   @J 쀢 !b@k  !#\#`#d#h#l#p   @, &쀢 !#耢 䀢  $`@($`   "b @D@q@l  " , @3@S 2$` H*  @ $` H*  D $`$`$` $ 8 /$ <??? @;  $``ؖԘ@0̀ @5Ԁ  * * @`$`@@ "$`X@//,??? @ #\#`  @#\#`#d@ؠ@ $$$T А H" $ H" $*ؐ$Ԕ$Ԁ"% 8@  <@$Ԁ " " $$Ԁ  " $ $8 $<   #\"(8<@h 㿐@//` Ԓ`@"  ` 2@??? @q @g@r  4)"8  ` Ԁ *ג 0&2` $`  "H 2` ?$`   "X@`,0 V 㿐@//ਮ` Ԑ   $ " @ Ԑ $  Ԁ "$ ԁ㿐@//< Ԑ ?$  ?  ` "    |" @ d༤ $  ?2 `  "    " @ h `$  Ԁ "    "@ @" %@ Ԁ "    "@ D" @%@2 `D@"   ` 2   L 0 Ԑ $  Ԁ "@B `  Ԁ"$ $    "h@y@  2$  @$ $   "x@[@ Ԁ!@y㿈 `Ԑ ?@w$`Ԡl@`` "-`P`|@D`d "@`$ <$ <`@;`h "@`$ @$ @`P@2`d < $ `T@,`h @ $ @&`d < $ @ `h @  $ $ `T$ $ $ $ <$ @`d$ $`h$ (`l$ ,`p$ 0`t$ 4`x$ 8`$ D`L 0$`@ ` & $  $ `@" ` & $  $  @@ 0@//`Ȥ  ' Ԑ $ @` @' Ԓ ߀  $ @ " @`,  <  Ԑ =$   "`,@p@//??''"@Ԣ'b @|@ 耢 쀢 "@qؐ@ڔ耠`?㿐@ 2`  @2 ` @"@  @2 @ @ ` &   `? " 0@//ᠮ` '⨀`    Ԑ $ @`   Ԓ ߀ $  " @`, Ԑ =$   "@ `,㿐 Ԁ  @4㿈@//t L =````  !`  @ `Ԥ @ J xJ  C @ J ( - ?  +4@Ԕ J - + &@Ɣ J `L 2$` $`L $`$`$`$`"  $`" @`Ԑ $`  b$ 4 @     8 H < 2"@ 2 8"@"x@//8` "` `@@` * * @`  #\#`@   @s쀢 2`"D@` 䀢#\#`@ @Z쀢 2"D@ 䀤 "C    2   " (`(@. 8"<#`  `  2`$`8"`<#`H @& `$`@@6`$`D& `$`2`"מp@// Ԑ ?$  $ $ @` * * @` $ @` * * @`2$ @??? @ܚ  #\#`#d@   @Ӛ   "T  @ "d @@$ 㿐 " Ȱ "   Ԁ @"  &@ & & '㿐@//8` `"t@3$ $  Ԑ" ?$  L 2 Ԑ $ L Ԑ $  Ԁ  " @6U㿈@//ီ`Ā` `` @* @b@ $`Ā` @"`$ ``2@@b@ @#\$: #`@`  @ @㿐@// Ȁ`9`@`Ā`'%'@2`@`@@K`  @I@F@C@D@@0`2@b@ @㾠  ''   @@  Ԁ " @  " "  2@ Ԁ "@  "' `  `   * * @` @ J @ *`" *` " `@ *`  `&   4? ???? @x ,  @-p  6? @h@i@(``   @%  @^ 2H0  ,@  㿈  R N 2   Ԁ$D @耢  ''耢  * 0 &* @*  耢 *  $@ 耢 2 '* " $@  @ۖ@쀢 @㿈 8   0 @耢 ) 耢#*@ @2 ?  * ` " @0耢 @h  `2 #\  * * @`#\#`#d@ ?&@&x H#\ #` #d #h #l X#p 8 < @@ D㿐 X $&@ * * @` ? ` " &@༐"@@3 d | &@ \ $& * * @`? ` " &"@@ h  &㿐@/~/~ฮ&! ,&! ""`,&!&!㿐@i$!@ؐ !`" ! `( "`0`(?"`(* @@㿐@N!``(  * @ 4"`("`,!"`0&!`(* "@`( "`(㿐@/}/}㐮!``(  * @t 4"`("`,!"`0$!`(* "@`( "`(!   $! db @㿈@/}/}$ )\@<' @ '"@@ @ޔ쀢 2 #b@Z  $ $!b @P 00020 , 0 ,  " 㿐@㿐@@o㿐@ 㿐@ 㿐@  㿐@ 㿐@/}/}Ԯ`c8 D @ t  @< "m @ آ$@$`@`, "@ $` $`$`$`$`?$`$` $`$$`($`,$`0$`4 !X$`8$`<$`@$`D $`H$`L$`P$`T$`X$`\$``$`d$`h$`l$`p$`t$`x$`|$`$`$`$`$`$`$` $`$`$`$`$`$`$`$`$`$`$`$`$`", @ @ @ϖ#d @  @ ,$@@ 㿐@/|/|⠮`  @cL @fR @B@YJ c+cT @S " c` c8 \ @o 0. #d+`` @@ c= dc  @( 4 d0`` #d+``  2  #d+`` @b@#d*`@@? ެ d& fc @  f  `@c 2 Ԑ  "   " fC ic$ @Ŕ : i  5`@c, ! 8@  !X !% 8@2$ 8@ @ <@ @@@ @ 2``$ 80t i! sc4 @  s  `@@c@ ! 8@X@T s tcH @a  t   `@cP  (" t2+ cX @G 2" (   2 `@c @80! Ԁ      @ " 0 "*@c @ 0@@ 㿐@/{/{ `   a @? , " 4@] 4 " l@W l`" p@  p`" t@  t`" x@  x`" |@  |`" @  ` a  @  #d*#` @& @C (@/z/z㬮 `  a @ ` a @ۘ#\` @ 2  ! 8@2 @X @ @% L@ < !X 8@ ! !c   @ @$ 8U  L &$ L \ ' `'@ <''P` @ l`@1 $ l d "  \ ' d'@ @'` @ p`@ $ p  "6 | \ '@ <' h`  ( @' ' t 2 #(@(@' $ t ' t')@Δ x`@ $ x | 2  @$ | &$  &$   $; ( 2 @ 0@ $ @ `0 @t  Ԑ ?` $ Ԑ @j  Ԑ $    Đ" @:" "   a @ܘ (   @2 ,   , "$ ,@$ , 0   @2 4v   4 "$ 4@$ 4 , - $ 1 `%@ 2    @" T  @K@O@# $ @  a @ $  ,  @  c0 @ c<@ !  @є  @˔ @   Ԁ  "@ Ԑ $ ԰ `@/y/yܠ Ԑ ?$  k g ! 8@ < h   x ! 8@2  l@ 2 l p @ Ԁ  ! 8@"   `"  "     H 2  Ԁ      @`?   @ D@  D#\#` #d  @ @ , @  ` *`@ @TxxxT@@@T X @ @ @$4:  @ X" $$ `*`@ @@@LhhhL@L X D"@4`@:  D X" $@$@``$$@2 ,@ , "  4 " #\ Ԁ #\#` 4#` ,  @@#\#`#d#h #l  $ @   @ y $` @q  `"*`@ @\\@@@\ X    @ @ $4 :  @ X"@ $ $$ `*`@ @@@TpppT@T X @@ D "@4`@ :  D X"@ $@ $@$@``$$@2#\@#\ #` #d #h#l  \  @ 2  : @  J  "E   $4: $@ D* ~ #\ D#` Ԁ   #d@z D@* $ Ԁ "#\ `" <@ #\ @5T  D#` #d <@G D  @  2`@:` $77ڐ 7ܔ@ 7ޔ 777$@ 7 Ԁ "  `" <@ #\ ؘ @$   #\ <ؘ @ D Ԁ   #\ @  D ! 8@>` h "  , 6` Ԁ " X 2 X "  X@S  x@o X+` @ D" #\  x X @  Ԁ ` `  `@3 <  x@O` L+` @ D" #\ D#`#d L @  L " @ Ԁ " P T@5 L@3 @#\ D#`#d#h   | @i  @o㿐@/v/v@ `$ ";@ 6   "  $ @ @  Ԁ "@hU0,2@` ' Ԑ $  L 40 `  Ԑ ?$  L    Ԁ  "@@ Ԑ $ ԁ㿐 @_&㿈@/v/vt L $ L L D $ X$  , $@ 4' 4'  $f , a$   2*` * @*`" @ dQ$  $` @q @ $  \   @  ' ' $   \b @u @ ' $   \`H`L @ '  $ , " , \ H L@$   2  \*` * @Ȓ d$  \b @J   $  , 2  $ 2   *  ' *  '  @c 2  ' ' @ X*@ @ @ X㿐    Ԁ    2     @" 2    "   Ѐ`" @= 㿐@/u/u`@ Ԑ ?$ Ԑ a 2'   a @s  @ޔ  "@  Ԁ  $ Ԁ  Ԑ ?$     Ԁ  "@ Ԑ $ ԁ 㿐@/u/u @ ! ;  @   a @'0- @ 2 "  @@֐@ $ @(    Ԁ  "@ɒ Ԑ $ ԁ 㿐@/t/t㼠    Ԁ  "@ Ԑ $ ԁ㿐@/t/tD Ԁ`   ` "@ Ԑ $ ԁ㿐@/t/tЮ c x @ x @ o @2 $@$ $ `, #l@L $ $ @ $ *$  !X$ $ $ $ $ ($ ,$ 0$ 4$ 8$ <$ @$ D$ H$ L$ P$ T$ X$ \$ `$ d$ h$ p $ t$ x$ |$ $ $ $ $ $ ?$ $ $ $ $ $ $ $ $ $ c|@m  @Q  p @ ?@ "@+  ,$ 8@/t/t` c  @ S @ @~J b_ c @~˔ W c` c 㐒 @D쀢 .`@2``'``"` #\#``,`И"@@ך `@6``"` #\#``,`И"@@š `,'`, H L@@ D" 2c  :@~x 0急 c" c c @~k  c` c P@  @ Ŭ c, d c @~I # d` `@    @  @  @֘  d: g c @~ 1 g  c Ԓ @ `  'ܒ @܀ r i !X`@b @t" 0] i c @}  i` c ʖ`F$ i ` @}˔  i` c $ @B` 0* i% i `8 @}  i` c L @"؀  `` @}0 i* s `t @} ! s` c k @Ԁ  !X`@ܐ@ 0׀ sM sI c @}Z B s` c A @}Ѐ  J@ m d@}=  c@}: 2 $``$`J@ d@})  ` @}& @b0`    4 s x  `H @}   x` c \@|  J c p`p @|  p` c ږ`?U?$`B$`` c @|ה ` c `?2##3$  @D̀ . a. f c @| % f` c `` 2`@:` 2: ̀  w$`v`r$` r ` @|  r` c g0$`D t `D @|h ; t` c OX @Ȁ Ȁ@?$`$``? `  @ @}5$`$``?`  @ @}#0 `l @|$ `c  @|0c   @|8 0 xm c @| 2d``@ޔ` @{0a  @s ]07@``'```" `&`"0D B BD'@`|* `@"@@{`t? $ @{ '` ' &'$`` $`@\@k0`,  @  T @{ 0@}@} 㿐@/p/p@{t  ` a t @| 4`" D@{^  D`@{X @j \ "@{V  @ @{M(@/p/p `  at @| #\ @ "  `@}֔ @@#  at @|T !X  !`h | @{0 $ k @^  0' , ''P`@zɔ 4`@z $ 4 @' , '`@z D`@z $ D L 2  $ L L2  :  P 4$ P @8  `2  $ ?  @{ $ `@R  ` $$ ` ` $  $ | ,c @@ $ t@Y  $ @e p@/o/o $  A` =` $ @ ``@`D@|``@ |"@ ,`D`H`L$4: #\#` #d   @~`@ 2    $B  4  '   #\#` , "  @|x   <"6&'  #\#` , " @|f  < , H$ #@ ( L@@#\ <#` #d 8"#@~@   E !X @2?  :  L#\#` , "  @ @|2  L2  : "@&'  , H L#\ P#` #d H H 8@2  , H L#\#` #d $ @~B L  4   #\#` #d #h  4 ,<#@ " ` #\#` #d #h  4 ,@{   " 쀢6 ` #\#` #d #h  D ,@{Θ   " 耢6 (`#\#` #d #h  4 , @{ (  `+``@`D" #\ $#` (#d  ` @yv  ` "`@ " d h@} `@}`@#\`D#`#d#h ` 4 @}%  @z+ ?$ 㿀 " @y5&  "  @y  &  `  *`*  #\#` ,  #@{S  |* `@"@"  &  p   | @ |" "  @" 2  : & % #\#` ,  @{' 耢&` 4&  #\#` ,  #@{  |& " &  , H L@ |*  x @@x t 쀢  |*  t*  @{=㿐@x9 @x  @y@@x @x@ @x &  &  &  &   &  &  &  & @]㿐@  4"@P @xA"  @yW @ @x@@xZ &  "&  @@@"@& &  @ @@"@& &   @4 ?& &  @@@"@& &  @@@"@& &  @@@"@& & @㿐  2    @z  "  @x  " @ 0 & @А㿐@w @w& @wː & @xI "  @?& &    4&    &    4&   & @㿐@/m/m @ @  ?$   "  $ @|M @|M  #h@y`@z- 0"2@@y  $ X@g@y0 2@`     `  @㿐 @x&㿀@/l/l⨮@wiL@ a ec @wa  $ @y c  @w{  2L@` @wD  }$ i2L@`t @w5 ِ n$ s2%L@ ? %b ǐ`( @w  S$`< @w  H$ @6`@w쀢  | &' @ |"@쀢  '   2 $`"  #\#` ,  @y $`  @`$@w} s 6 $ 4$ 㿐 &@ *` * @v t "@ @?& & `6 &  &  @ &   & \@k㿐@/k/k4 ?    @w|   4$  4 `?? 2$  $ $ @7㿐 &? 2 ? "@$4 4  2    @@w4.㿐 ?  ?& & @㿐@/k/kᘒ@   `  "`#h@x$㿀@/k/k4     2   P<@ d <  @ | #\#` ,@ "  |#@ @x%   <@  ' <@/k/k<` %`@wx`x @ux`@yy c@v6 @v7 @w_ @w㿐@/j/j〠 ` X `" $  X $  Tc @y$ \]㿐@/j/j@y`\ ` $``X  `Tc @yw$`\ ?$`$`\<㿐@/j/jx @ ! !``@w ` at @v0`@w #@u` @ 㿐 @x 㿐 @xޚ H@/j/jh'''''Ā'`  @u= @ ' '' ܀ i ,@@t$XL `c)`s@t` @t  `cԐ A `c`s@tڐ` @t֒ `s,Ԑ  ,'`v̀``v@t` @t `v,Ԑ  2@t` @t 2,Ԑ  '܀ ,` ̀`  ` `@xĀ`2 @th@y&Ģ`` @u 2 ̀`  @x` ` @u '` ` @u '`쀣` @xb@x` @xU'@xݐ̀` @v @s T$@$ $ `,  @w  $ $ ̀`"!$ $ $ $ $ $$ ($ , $ 0$ 4$ 8$ <$ @$ D$ H$ L$ P @u2ܔԖ`@  `̀` @u`,#@ ` @u p@/i/i`  @s  @u@sJ c"` @s  c `  @w  c` @s 2|       @w p@['';`9 ''ԡ,`@sP(@`J  c@sG - c s " s,`@s8  s v " v,`@s*  v2` "2`,`@s 2 `,` @,`@+  `  @s)  @t㿐@/h/hम! @wQ  $`@w @rؐ㿈@/h/hD #\ @w7 " (- `" 4@w$ 4 &$ 4 , 4@w]  @ 4 D  @@u0 D "  P    @t P $ P 㿀 P ?& P + ' ( " 4 4+` @ D" #\ ,#` 0#d  ( 4 @v  4  P " 8 <@v  4@v 㿐@/g/g`@ `$ "C@ >   "  P$ @v @v  P  @tB @t=a @t 0,2@` ' P $ P 4 40 `  P ?$ P 4    P   @t P $ P㿐 @s1&㿐@sݐ@s6  0@t:@s㿐@/g/gp aD P @r m @v$ d @q $@$ $ `, ! @t $ $ $ $ $ $  $ $$ ($ ,$ 0$ 4$ 8$ <$ @$ D$ H$ L$ P$ T$ X$ \$ `$ d$ h$ l$ p$ t$ x$ |$ $ $ $ $ $ $ $ $ $ $ $ $ a\@u  @rĖ  $ @rv ?@ "@r  ,$ @/f/f\ aD h @q{ M @s- @qDJa' at @q> b aD  တ`@    @͘쀢 "%`@  0bKc a @q Bc aD ᜒ  @耢  耢@``@`` ``d`h " `4`x$@ @p`\`H`8 H La0  @pך 0"c a8 @p˔ c` aD @@H  @u c,c aL @p #c` @H    @H  @t  @ c7d aX @p} .d`* aD ]d `  'p  @pb@p   ``M!|@p80Hd0g a @pF 'g  aD 'ᘒ  @٘̀ . 'Ȓ  @̘Ȁ !@0Fi a, @p =i  aD 4  @Ā 2    @  Ā`Ġ ``〤`%@p>` `0&i a< @oД i` aD H  @b ap @o0i%n aT @o n` aD `  @< @ 0n$s al @o s aD gx @p# p@(ap@om 0bXs`T a @o_ Ms aD A @o J @o D J@ m d@o<  a@o9 2  %`%``x%```'%`J@ d@o$  a@o! @0a  䀤sIs a @o  @s`< aD   @ ``"  `d@o 4`d@0ܠ ```d@ $ Ր @n 4`d@0˒2`@:`@" 0€ss` b @n s  aD $  @Q    @F 0'@n  Jacb4 @n c aD pDx%`i a @nv i@@ 0f+s a @ne "s aD GВ @``@  "͐!ː! a @n: @ 0*a  s"x` b @n x aD   @n= 0 ap @n `0xzy b0 @m qy @`4`H * @$"@`p v`x?`p?`x'`p ! "#a y @nx @m`t@0@rc "  " `p$  0 B!BD'@m`t @m`t?`t@m`x @0q a @m 2h,` 2``"@p%?`?```d '` ! "#a ?@mY0N   @ I0,@q| "`d  " ` 03 B!BD ' ?@mA|````| '@J0",#\#`a   "  b@m6 0@o@o 㿐@/b/bĢ` @l `@`"`P@l``P`"@l`"H`@qE @lҐ(@/b/b, #\H @q2 "O @q"  ( &$ ( (  $ 4 <' 8 ''P`@l @`@l $ @ L' 8 '`@ls P`@l $ P     @my  @$   $   @ߔ x `& @  ?@4 ?&    @D@nD#\#` #d   @p@ ` d@ h 6?  x   H  p x" 4 H@ *` @" 4    4 ( `% 4@l3 \ X @ P, @"  D \#\#` #d@pw`` D H \#\#`#d@kט`  D H \#\#`#d" @kȘ 2 D H#\#`#d#h#l$@k@ " \ 2 8 \@  H#\#`#d#h#l D$#@k@ 8 H H @ 4 $ x#\ $ @mۚ 2   4 H x 8 L@ #\ " ?@ks o (+`@D" #\ #` $#d  ( @k  ( $@ " , 0@p (@p@#\D#`#d#h  @ @o9  @l?p@/`/`8 "*`8`8a @o $`t$`p` "`8ܨ `8#\@oW$ WW" $  `p@4$`p  ꀤ`8 H L@`H*  @$`\`T 4 `p`t ?@k+$ @k(`t`4*` `H* `X`$ @k`\`4*@@mx @@o`4``l @`t@o`\0@o@p`$  @4`2  @2    p0@j@j $@`@k  8@#\@olW$`WW"@$` p@4& p$`  $`& $`$դ"  "&  &  @4 `&  `@6 & ` @4  &   `&  `&  p`&      @˔㿐`&  6?&t`2   ? ` #`2 `   & &  $`&  p@"   ?& @j ? ․` "&  @4 `"& &  `@4 "& `& `  d"  ` `& `& `  " &  &  @ ?&   &   "   &  @J㿐@/_/_D @ @ Y ! @`"``l "$@@ny $@`@nN` @nN`` !(@ka@l. 082@`4* `D$@i`\$`d@i`\6$`h $`h` $`@``@`x` 2  `     ` ?$`` @㿐   l "&@n &@j㿈@/^/^8@iLLab< @iE a aI eb4 @i5 e e9  @a @i% @,  @iɔ &@im5@i8 쀢@+J@ ,'`@i+ 쀢"J @$@@  4 $@   $@@ &$@  a  @i  㿐@/^/^  d"@  &  ` $ `   !(@j  $   $ 㿐 p? t  4*` @"  H*`" " "@ 4 `& @j t&@ x@  & x  & @ 㿐  d"@ p? t  4*` @"  H*`" " $ & *` * @h \ "@@`& &  &  &@* @*` " @`& &  & 㿐 4&@@h[ \ d h@   &  ` 6?㿐@/]/]ሮ     @5? ?      ` $ #    $ ``@d`     @h㾸@/]/]h ! @h2  %  `@h5  @h1   2 "?   4@@h-@@h㿐    m 㿐@/\/\,     !(@i  $ (@/\/\ B 2 `!!'d@' ! "#b ??@gJ@i'@j b@g @g@i2P@/\/\ᐤ H4H * @"@p 2 x"("8'p@' "8 "#b ??@f@hՐ@j a@gd @ge@h㿐@/\/\H b  @f Z p@k O @f $@$ $ `,\ "d@i $ $ $ ?$ $ $  $ ,$ $$ ($ 0$ 4$ 8$ <$ @$ D$ H$ L$ P$ T$ X$ \ $ `$ d$ l$ p$ t$ x$ |b@j X @gĖ?@f "@g  ,$ H@/[/[‮  b @l @f  @h6`@fMJ`a:`bx @fG 1`a -  b @e‒` @ 쀢  `*` @   !`0@?'@ lp`a`c`b @f  `c   b @+␒ ?``c"`c`b @e `c   b @x `@j5 1`c,`d`b @eΔ #`d   x    x `@j  ?`@ `dt`e`b @e k`e?  b @Ē` @ 耢 ꀥ  '`  @䀢 ` 耢  '耢`䀢 ɐ "#bL,  @g 䀤$ *`, "  $"$耢@䀢@?$@"@$|  $|"P@g>04`e 0`bh @e, )`e  b @Lt` @ u n* @@f!` ` @ia( `eS`i O`b| @d H`i  b @ℒ` @b܀ A܀ :* @@f  !`  @i-( Ĭ2!!` ` @i( *  #\ܘ?@` `i,`i`b @d #`i   b @Ŗ☒` @؀ ؀ 6Ȑ"b @d0݀`i"`i`b @d{ `i   b @`?` @ 3 0`i[`p`b @dY R`p N  b @w` @Ԁ Ԁ * @ ! 0@@f   |  p x  p t@f" "   l`@f  @ @f0``p`p`c @c `p |`p  b @`@dЀ F` @d̀ @@ 4?t`"@f"|6 "P@eҒ@# ȔĖ@d[Ș'Đ ' * * @` ༒"@ 4'Ѐ &' * * @`"@̀ 4'̀ &'8@2<@@hL` 2@eϐ @hD`0/`t`c( @cv &`t "  b @8` @ޘ  n* @ i*e `tE`u`cH @cG <`u  b @gX` @  * @`*`@ @4@LXdpW#hT#tQ"N"K#H#!`y`c$ @c `y  b @"4@eEJ @C21#\`cD @b 2(#\  b @T @b 0.` @H ' 6"$* @b @b80cd `p " b@b 0@d@d 㿐@/W/WD , @5  `` "`8@b`8`"`@@bt``@`"`D@bk``D`"`L@bh``L`"`T@bb``T`"@b\`#x`@f̖ @bY㿐@/W/WH `x`@9   " $@f $ " X@f  X`" \@b0` \`" `@b*` ``" h@b$` h`" p@b` p` a` @cd!"``@f+ @b@/W/W #\@x @fo 2԰ @@f```0 '`4'X@fd`'\@` @aȔP`8`@a`$`8`< "\'X 'X`@ 2 #@a@a@ $`@  'p`@')@@aP`D`@a`$`D`0 '`H'X@f$`$'\@` @aP`L`@a`$`L`P'X@`@ayP`T`@a`$`T`h  ''''@@2@|@ @&@b `6``!`, @, #\ @C  `&``` ` ` # @̔ `| $`|`@ 2`| bL@c  ,  @" `&``?$``|    $`|"P@c7 (@/V/V|x \@ "`p@a`p`!@?  a @bF!@* #\` @eb 2I ` $` @``$` `( $`,@``($`, !`0@ &@)#`T @!? !X`0 !c   @` $`0 `T 2`H`D `H  `L 2`H`P D `H "4'`D "@e'`T "0 '''P @`_<   '' '@')@`M`P "H'`L "$@d'P` @`9  `X`"$`X@`G$`X`\`"$`\@`@$`\```"$``@`9$```d   '@` `h`"$`h@`&$`h@? 8K``p 2`t` @_ $`p``"p@`s`p`t 2` @_ $`t``"p@`c`t`p@b `| ?` $`| @``t `| $`|@ `x"p`p@b} `p a @a"` T @dN2`-  ` "$`@d6$``   @d72`$  `$ "$`$@d$`$|    $|"P@a x ٬       9a - @`T  0` (@d$`4'`< "O`4@  `4, "* @_ , 82?`4`4, "* @_ , @*`*" `` @cHL $`4`  #\#```  "@a `<'`< "`4@  `4,* @_X d$`@2`4`4$`@`4` (* @$`4䀢4@ 2`( '䀢  #\#``(`, "@aU '䀢4@ "$`4@  $`44$`8`4  &j ``& X`& X`& \ X@@ * @ (* @' ' 䀢  '$ ༀ@2@aX |@  | ?& |@/S/S| ?$|`9 5@b ' X@(@   a' ; a a''9 !.@ |  ?$ | D"` L "$ 0@  8*@ 4#\(#`#d   8*@ 4#\#` #d@b#@ 0@ `2 \`"L T 0@2  X< " X ``"D T`"8 T`"0 4`H `L" 2  :  8   (@b $ "#\ |  #\ 4ؐ" 2  :  8 #`  $ 4ؐ" 2  :  8 #`   @bL `@b#\#`#d 4" 2  :  8 #h#l  @bv . 4`H `L" 2  :  8    #\#`#d#h @`    #\#`#d #h #l @` 2& (B""*"7 4?2  :  :@77` 77`7x2#\#\ @b/  h  \@#\#`\@#d#h (@_ , h`"T23 < "/ @ (@X"2  :  4"2  :  8 #\#` #d@aۚ `  |  #\@]6 2E < "A @2`@ :"*X" 2  : 7 42  :  :@7” 7Đ@ 7Ɛ 777̒"@ 7 |  #\ @].    #\ @a  #\ @] 27 42  :  :@7B?77#\ @\  2*7 42`@:` : 77@?` - 7* : 47#\ @\ܚ 7* :  0@2< 2 +`@ 4#\D  8@\ &  *  ? 8 4@ D ""  (@#\#` #d @a #@D#\ #`,#d  @\@㿈@/Q/QL a c0@] 2Lr` l2 Lc@@] "`L e2LcP@] 2L`WB? n2 Lb@\ 2LJ? @2(  @\쒒'`@6```*@`8`4  '`耢 &$' @]˔  !`  @ @\耢 `  "` '? 6$?'$(  @] '` `* @  @` `'`@c` l @\  㿐@/Q/Q@ `$ @  @t 0#" "  |$ @`J @`J  | "@] | "P@]b@^" 㿐 @\&㿐@/P/P  @[U*  * @$@ @  " *  "$ @[] $   $ @[3  ," "" " " ?" " " " " " $" (" , aX @" 0" 4" 8" @" D" H" L" P" T" X" \" ` " <" d" h" l" p" t" x" |㿀@/P/Pᜮ   쀢  `'쀢 6``b l @[:   쀢 2 '@ZJcc @Z c I ccb @Z c : crch @Zٔ r + r sb @Zʔ s  ct @Z  b  #  @Zٚ # #\s " ; * @"`&``?$` 㿐@/O/O`@  | ?$ | a '  p a @[  p@]  "p@[  t  |   $ |  | ?$ |@  㿐@/O/O &`  `|  "`|*@`| "`| &     |  "@\& | $ |h@/O/O0`x_`x  `x`p @] K$`x"K p`"G @ "B @Z2 ; @ c, ,<  ,@Z + @@Z̔@ @` " `(" 'Ȗ8`( 'ȠАcL@Y p\ @]p "$`x 㿐@/N/N〮   * @ !0@2  !X"0  *`D ` $  ,`@ !"06  㿐@/N/N @  `|  "`|"P@[q㿐@/N/Nh`|  `|  "|"@[Z`㿐@/N/N  c  @Yh h @] "a @Y $@$ $ `, #|@\ $ $ $ $ ?$ $ $ $$ ($ , !X$ 0$ 4$ 8$ < $ @$ D$ H$ L$ P$ T$ X$ \$ `$ d$ h$ l$ p$ t$ x$ |$ $ $ $ $  $ $ $ $ $ $ $ $ c@]C  @Z'?@Ƙ   ,$@Z 㿐@/N/N  c @ @X f @Z`@XJ`c"`c @X `c  c @? `@\ 9`c,`c @X 2#       `@\Κ ?`@Q  c ` @X 0@ZW0@ZT 㿐@/M/M `   a @Y , " d@\ d`" h@X'  h`" l@X!  l`" p@X  p`"@X # @\ @X(@/M/M, `  a @YE#\ @\e 2   ! 0@2 @[ @\J 8% D@\F 4 !X 0@ ! !c  @W @$ 0  D &$ D T ' X'@\& 4''P` @W d`@W $ d T ' \'@\ 8'` @Ws h`@W $ h T '@[ 4' ``  ( @' ' l 2 #@W@W $ l ' l')@W@ p`@WR $ p &$  &$  (   @[2 ,r   , `@[`*$ , $ . `"@Y 2    @Y  @W@W!@V $ @Ws  a @XR $  ,  |@W  c @W c@Wx !  |@W  @W @     #@X  $  p@/L/L$ ?$     ! 0@  `   p! 0@2  d@Z 2 d h 8 4 @D@XD#\#` #d  @[@ , l@[ `*`@ @HlllH@@@H P@"  " 2   : @ P" "  "  `@ *`@DDLhhhLDL PD"@4`@: D P" $@ ,   #\#` , @Z #\#`#d#h #l  $ @Z o  $` @Z  ' ' `*`@ @PtttP@@@P P @@"@ $4 : @"@ $ P$ $ `*`@ @@@PlllP@P P @D"@4`@ : D P"@ $@$@#\ #` #d #h#l  T  @Z@ ! 0@2  ` " P , "  P+`@D" #\  p P @U|  "" @   @U $ @ P   # 3 ; *#\#` #d @ @Y  @  D+`@D" #\ <#` @#d D @Ur  D "@ " H L@Y D@Y@#\D#`#d#h  d @Y!  @V'㿐@/J/Jخ@ `$ ">@ 9   "  $ @Y @Y  #@W c@W 0,2@` '  $  D 40 `  ?$  D     #@V  $ 㿐 @V&㿈@/J/JHD< $P, @YF 4' $FC'$`@YA 4' $52'@T$T@YH'' $ Tc @Y= @T'$ T`H`L @T '*  '*  '਀ "!$ `* * @`` ,* , @T$଑,* @T,`$@'$P* @Vڔ @XP㿐@/I/I @ ! ;  @VΖ   a @Us0- @Vߔ 2 #  @T@T"@S $ @Tt@     #@V  $  㿐@/I/I     #@U  $ 㿐@/I/It `  @T U @X% L @S p$@$ $ `, #@V $ $ $ $ $ $  $ $$ ($ ,$ 0$ 4$ 8$ <$ @$ D$ H $ L$ P $ T$ X$ \$ `$ d$ h$ lc@W  @TԖ?@ "@T  ,$ 㿐@/H/H  ` @Z`@SdJ`c"`c @S^ `c  ` @? `@W 9`c,`` @S< 2#       `@W ?`@3  `  ` @S<  㿐@/H/H `   a @T< @`"@R   @WV @R(@/H/Hp `  a @T#\ @W6 " l `"@Um 2    @UG  @R@R@R $ @R  a @Sޘ@R $ @V  ( &$ ( 8 ' <'`@Rg @`@Ry $ @ D?2  H 8 H2  : $ D H?  8 H & : $ H@    l  #@Tg l $ l 㿀@/G/G0` `( $`4`T@Rd `$ `T" `P @  @ `* * @` 2  : 2 :  !`   `L 2`8) `$ ` #\#`"  @TM 쀢4    !` `   ` ` Ӫ``8 H L@R `4*` `H*`  `D* @*` *  * @Q@@$4: $`X`8 H L@Q $`\`4* `D*`@ @TF@@Ve`4x@/F/FĠ l ?$ l ޮ ږ  D#\#` #d   @V @ L`8 D@ *`@DDTpppTDT 4 H@ D \"@4 :  D 4"@ H$ \$ 8 H   @ z !` ` 2 8`g X #\#` @S  L`@ *`@TpppTDDDT 4 D@ @ X" 2   :  @ 4"@ D"@ X"@ `   X" 2   : )`2  X"    @ 8#\#`#d#h@SS@ @  $ !` ` ` @ ` `  8`H`L L@  @ $ " ( (+` @ D" #\ #` $#d   ( @P  (  l " , 0@Ul  (@Uj 㿐@/F/F@ `$ ">@ 9   "  l$ @UN @UN  l #@Rc@S. 0,2@` ' l $ l ( 40 `  l ?$ l (    l  #@R l $ l㿐 @Q&㿐@/E/E℮ @ ! <  @R   a @Q0. @R 2    @P:@P>$ @P $ @P    l  #@R0 l $ l 㿐@/E/EX ` H @P; v @T^ m @OԐ $@$ $ `,(  0@R $ $ $ $ $  \< $ (< 0< 8< @ p< H< `$ h$ l$ p$ t$ x !X$ |$ $ $  $ $ $ $ $ $ $  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $  @$ `@T $ @P?@ "@P  ,$ p@/D/D  `  @O C @Q^ @OuJ`c" ` @Oo `c` `   @S `c,`c ` @OM #`c`       @S  @" `cL`g ` @O! C`g`?  ` ̖䀤2   @P耢  ?   2  :  ܠ  @@ 2  :  ̖  `D @N0`g1`i `X @NՔ (`i  ` l  @Ol䀢 ~ @Of x@ ?@N T0j8`s ` @N /`s ` R @OB܀ T @O<؀ N@؀ "   0=0:   3$' ` @Nl `  @OЀ  ! |@Ԗ @ 0 `@  T @Nq 0@P?@P; 㿐@/C/Cᰠ (`   a4 @Oj `" @N  `" @N  `"@N   @Rx @N @/C/C (`  a4 @O8#\ @RX " (ְ `@P "@N? J 2 @ <  ( a4 @O@M  `, @M 2  $ `h @M  `|   @M՘  $  0 4@r< 0 8 <@m< 8 @ D@h< @  )   8 0ā " @0 @< @@l  $ @͘  t "$ x@Mm$ x !X |@ ! !`  @M @$ |= @Q  ' @M `@M0 $  2  '@@M$  &$   ' '`@L `@M $    $ @@ǒ  㿈@/B/B 0"# 8"# $% B#? ?@Q?@Q聠@' P4 H ?聪    0 8  $'     ?@Q?@Q@''$@ $ ", ` @ 4 `&   T`<  `P @L@/A/A  2  H L@  x   % Ę    % Ș  % Ș %  *    @ d B % И   *   H T@LW 0@LOD#\ @QWW%@@LD 8@L<#\ @PWW"@@ &  @ d B  ` % Ԓ@   H2  : @% ` d B`% %     `% Ԑ%  % % %  *    x D% #\  t x @P   H2  : W" % W@  H2  :  *`   @NT@Ps x@/@/@ 쀊  2 2  @ * @ ֒"@2 *`" 2RR#\#` #d@P  쀊 * @ x B3#  0?@a? 8 0  -  8聩 @  @㍡B  @  +`  *` D" #\ #` #d   @Kg@   +  D" +`" #\    @K*  ! |@2    2  :   @  $@" 2  : `" ,#\#` #d@K.,`%@$#\#` #d@O#\#` #d@O{ 쀊  x`  H* 3 ;  #\    @M  t@ `H2`@ :` X T@Jޖ@J֐DH#\  @O WN$@  @6WP WP@ D "@"@WJ#\  ' @LXx@/?/?㌮ 쀊  2 2 *`" 2  @ * @ ʒ"@2RR#\#` #d@N  쀊 * @  B3#  0?@E? 8 0  -  8聩 @  @㍡B  @   +` @ *   #\ #` #d  @JJ   * @#@+  #\    @J#@ ! |@2   2  :    $@ؐ" 2  : `" #\#` #d@J,$,`%@#\#` #d@Nm#\#` #d@Nb 쀊  x`  H3  :  #\   @L t@  HX T@IȖ@IDH#\  @Nu WJWH" 2  : $@@  @6WJ"WJ@ @ "@ "@#\  @KʚX@/>/>$@` "`@Ki@Kg`쀊 `h X`T@I{` `h @M* `@I @I@Kc` ?$`@ @KZ0Y@KW`@D@K7P7RB7TF7V` zP`P`쀊 'WP` `+`@D" #\`#``#d`` @I4 ` WP`쀊 "``@M`@MWPWRT#\V#`WP#dWR#h`@L``@I` ?$`㿐  "+  ܀@ &Q  *    @6I  &E  D" 6?   $@ 2`@ :`" &3  @. ,  &)  *    6!  @ &  @" @   $@s 2`@ :`" @ 6  @@  㿈@/=/=d  D༒"@ฑ* "@* "@'쉠' @༒"@ฑ* "@* "@'쉠'   , ༓2  : ฐ  '셠 "# =8"#80ąBD?@ 㿈@/=/=80น* *   D @" "  B" 0?腢' D 8DB'`@  4 ༑6 > ะ@㿐@/=/=Ю@ `$ =@   "  $ @L @L  쀊  @I`@J_ 0!2@@ 2 @`    `   ?$  @h 㿐 @H&''&'?@q 0 )   8 " 0 8" 8 0 8 -   0  " 8 "  8 쀊 @ ?&  @! >   & @  ( X T@G`   &   (@I  ?& 㿐@/z  c`4 <a   c. cc @>Z % c`!4 <    < @B ',4@ y', c7 cbD @>, . c`*4 <a Gt@ {ؠY4 $ ( ,@B 0  ` <4@ ',4 cx db @= o d`k4  <a @=J! `J@2 L@=є 2 L` c4<  L 2`@= t$@t $t`$` $`$`$`  <4@ "$`@=0$X$\ 2" $$`$`(`,@Be`0p $p<cd @=@0ɀ d[ dc @=} R d`N4  <a 㼐@ ˔ؠ  8`1 H -< @ 4  8<@ 0' $ ( ,@B 0  H $ ( ,@B 0@ ؠ2 0n dp dc @=" g d`c4 @\,` @ wP $ ( ,@A 0 " @@^    @@<    $$ "`$@<ސ2$p $p2$p $p"$`"$`X"$X\"$X@ ؠ `4@,`0 dB fb@ @< 9 f`54  <a ͖p2 @<@ؠ ?  *@   *  ?"@  ?$ < @ Zؠ2 0 f' fb @ ', $ ( ,@?e 0  <4  ', $ ( ,@?T 0p $p,4@Qؠ40 l. mb8 @:g % m4  <a h  @؀  <b  qȐ@ 0E pb @:9 < p4 <a W( @> l<@> e@}ؠ[ $ ( ,@> 0  4 $ ( ,@> 0p $p@ݐؠ0? rcX @9  r<4@>Ö.',8 sc @9 / s4  <a 㰀  @-@ؠ 2` <c  Ȑ@ D0l sb4 @9 c s`_4 <a Ɩd @>g <@>` <@;x <@; p x"DpD"< @Δؠ $ ( ,@>7 0 x#\#`p#d#h0 $ ( ,@>$ 0p $p@(ؠ0 sg sb @9> ^ s`Z4 <a Z @9ٔl p<@9Ӕh jJ@ m d@9 c$@9 2 l$H$Lh$PM$TJ@ d <@9 cT@8 <lH" * @*`LhP" * *T# @ " 0*c  㬀 s tc @8ה 뀥 t`4 <a 0  @$ `8 `@  @ؠ 2  4<b`  Җ44   8<@d @8J a& cb @8  c4 <a `dh 2  : d@6dv$p$ f b @8b  f4 <a  `  $ ( ,@= 0$` f icP @8@  i4 <a ^|$ldr$p! tc @8&  t4 <a D`X<cd @80P<b, @8 <4a $\@ d06b ⼀ t$ xb @7  x4 <a  @8 0@1ؠ<  u ycL @7 l y4  0`@  "@ ,v4<4X@$ap`2`2`? "*` <*```@ap @$apap ?$ap``$`" - `@/ ` ' 'T@<㿈@ ȅB'`ȅB'썡HF'쉡HD'     $4  ,&  (4  0   $ ;  2 $㿀@/$/$8 5? `,` @.,!$`? * *@` "`* " @/͘@.㿐@/#/#8    $  $  b @2$   $ ( ,@3J 0㿐@/#/#☮@2o`  $`$``  b @2_$`$`$`$``  $ ( ,@3# 0`$ ap   $ap!@0Hap $ap㿐@/#/#Ḯ d `  h  @/ $ ` ` $ ( ,@2 0$ ` l" p$ l$ p p4$ d$ d$ h p?$ h d  h@`$`(`,@2`0㿐 `   ``  @`"?@?㿐 `  $ ( ,@2 0& `㿈@/#/#(?聠()?荠()"L "L   Ɛ"|BD! Ɛ"|BD' ' F㿈@/"/"P& '썠" "#"%" '쉠 " " "#'셠"ą&' $% c  ??@-]@/"/"( @/1!$"!(@/+!( " @/%   0 @ D!,!4!0!8!p ?$!p!$  ("@< @0ޘ @-@-t@/ @(@"@q< @0Ø @-@-Y@.@.㿐!@`` 2`@: @ 0@/@ &@@: " 0@/&@"!D` 2`@:  0@/ &@: " 0@/&" P "_ !< "[  0@ !,@@" !4"@ !0$@D" !8@ "@  !@`$@@.א$@`` @  !@`$&@@.Đ$&@`  !D`$@.$6 ` @ !D`$&@.$& @2   @  D  @12 & & !p &!p  @  D  @1" 㿈@/!/!@1` #\` , `@,Y i # 2 t@,C$ @,>` "@ @,6` "@ < X < `$ h$ l $ p$ t$ x$ |$  $ $ $ @0 8 2,  @0 @ 2$  @0 H 2  @0 P 2  @q   @0@ @/ / ̮(А`8`<@-`@`D@,`H`L@,p`P`T@, (#\#`#d @+/ 2'@0W`8 2$  @0O`@ 2  @0G`H 2  @0?`P   @ `@@+e  (@/ / D@0+#\ @/ "X  X ƅBF p  `, @!`p@!4 @&`t 2~ ` `D @!$ @& `  l `\ @! #`@^` @!   `@.`h`h@% @%`t 2D ` ` @  @%`  2 c @ ܔ ` @ ֔ `h`@% @%`t 2 ` ` @  @%`    c @   㿈@//Ю`@%L #\` , a@  *  $ H$ L$ P$ T$ X@%& 8 2 @% @ 2 @Q   @%@ P@//ᠮА8<@!v@D@!p @ B  2@@$ܖ8 2 `@$Ԗ@   @b a@  (@//@$#\D @$F " P ' T  '  L'@@ X`@@% X@  㿐`L`"`P@`P "`T@`T "`X@`X`@㿈@//<8!  !(!0BB'@!  !(!0BB'L $,$$$0G$(@$? L@#H`4*`@ @@Xdl|2  : $@$@$@2  : $@  2  : $@2  : $$$$(@$,$0p\`L M``$ '`, "`,@ `,`$"@`(@@ '@`0 "`0@ `0`("@`$@'?`('?#\    @#ŚWW`X"@#["#\#`W#dW#h #l`L`X@#O㿈@// $ ( , 0@ Đ!4` Ȑ!4??@#`$3?`,,`(%`0'`$0  `( `, `07 㿈?荠,-?蕠,-\`dh`8Ɖ BD:`8`@ʑ BH:`@㿈`8?腡B:`8`@?腡B:`@㾠@//ᐮL 8?@D@#3?@"L$@" H`d*`@ @L @H N$!8 ? A$? 9$? !8 ,$'?$!8 ? !8 $!8? ?T $($#\ #` #d!@#ha< @@Ɣ @"T 2l a @ Pa@" 2] $:"`@:@Ґa   @ J "`@$$ ( a B?@`@   @-(+a$',"@'?$@C@i L$#\ @"S @[ @ @ ݐ"@ 㿈@//``@! #\aL ,P aT@3 ) $ 4 $ H$ L$ P@!˖ 8 2 @!Ö @ 2 @Q   @!@ P@//4А8<@@D@X @  2@@!8 2 `@!y@   @S a\@  㿈@//,@!e#\p @  2 L H @ 2P  P "$P@ $P@ 㿐`L "`P@P`P @ 㿈@// 8!` !d!hBB'@!` !d!hBB'P $,$$$0C$(@ H`4*`@ @@Xdl|2  : $@$@$@2  : $@  2  : $@2  : $$$$(@$,$0㿀`P !'?'?#\    @ `$`(W#\W#``P' '@ \`@ /㿈@//㔐 $ ( , 0@ Đ!l` Ȑ!l??@ {`$3?`,,`(%`0'`$0  `( `, `07 㿈?荠,-?蕠,-\`dh`8Ɖ BD:`8`@ʑ BH:`@ې㿈`8?腡B:`8`@?腡B:`@ː㿐 , $" \ 0 (" "  4    4 $ ( ,@ 0 4 $@  (  4  @Ș㿈@// @ #\b , a@  $ 4$ 8$ < $ @$ D$ H$ L$ P$ T$ X"@ 2 !t@$@!@b "@!@ax "@!@b  "@"$ \!$ `!$ d!$ h$ l$ p$ t $ x ?  !` ?, @ ` 2 `-J . `   , @  , %@ @   @+@X p@// )8* l < 6k Ѐ 2p< p "@  @q@{ `O  a b @4 ? 4 : 8" ?< @@ɑ, $<$8?,l, , <@ @ ᠄?, l "p@$lp "@$p"\@@@ (@//@#\ @ "D  2D , 'P'@ 6' $@@'H  ' ')"\@L'`@@X'@RT`"X@cX`"$T@]$T$Xx  d  d$xl`"p"\"p" " p<@:<l :@<l$lp`!x\" "8<*@: <p :@p$p"\#"!x" a  @0 $\  @@2 㿐`< "`D@`D "`H@`H`"`T@ѐ`T`"`X@ΐ`X`"`l@Ȑ`l "`p@`p @h@/ / <@B$,$$`B$0$( < @`8&@ $ $"$$,$,("$(0$0P 2%8 <#\`` '?@Ѐ "  , @\@   $, `"\@"!x@  l@A`"\@" $ p@0`$?$$, $,(?$(0 $0h`T o`t " `8`8 $`8@M`x  @- `t   `8 `<`x@C `<` #\    @` `8&@`H @`T@`X`T@  Ѐ"`l@`l  #\`l @`T`p  #\`p @`T`H  `T @ `X @ 㲨@/ / !`t `8 $`8@`x p'@-'`<`8`x @`8`<' `!!!P@'!`L 2`P@" `P '@%@ `??@q`@ʁ ;? @?2`P`@`L 0#\ ? `?@[ :` 2`@ 2 `@P? X?(@?0H*?80#\ ? @@ `P  ` ?`(?h  @# ;?  ?`2`P`@`L #\ ? &`? `@ ?#\   @   `@#\?  #\ ? @@ ?`(?h  @Ք ;k? ?`8 `L &@ `??@`@! ! +?I? ?"`\@<!x@ `l@! +?(? ?"`\@ `p@n! +? ?  p?p" ?`<"?@G?*+@/ /  t  8 $ 8@S x `p@*` < 8 x @O 8 < @#\? L@H P$" \@!x@  l@2 " \@   p@p p@ <@@p@/ / x??\`?dh?Р l   <: < l :@ l$ l p   8 <*:  < p :@ p$ p  <腠؅ B腡B:@`Ѕ BB:`` 8&@" \@@ђ㿈?荠()?艠()  ` P> < > X> $ l < ?  ?@! B"# ! 聣ȉ @č H H @ąF> F> @@ H ‰> FD> H ؅B!΍DF>  B DD> ( @BF> 0 HBD> 8 <Љ @: < H : " \@j 8?*  < p   @  ``> P>`> X> $ p@? `?@"! D$% !聤 ȉ@čH  H@ąF> F> @ @H ‰> FD> H ؅ B!ЍDF>   B DD> ( @ BF> 0 H BD> 8Љ@<`H <` H@/ / 0`D `t `8 4 `H`<@`8(( 2 `8`<@`8(@`x @*`<`8`x @ʚ@"(@(a @`@@ !`L  !!@ !`P  !!|@ @}`D 2D `H a @ @p`H " `l2 a @z `l "`p`H a @m @`l 2 `p " `H a @X @`p   㿐@//H@. H a @6 @H  0a @)  㿈@//ମ`@Ð #\b( ,0 b8@ H "`4"`8"`< "`@"`D"`H"`L"`P"`T"`X "`\  !` ,  ` 2  `-     , @  , $@ @   @q@ p@//`4* g `<, @  @ǖ@ђ `4* &`<T b@ bD @ D 4: `8`< "@C@* $`< $`8,$`4, , `< @  ߠ?, $`4`<, ?@ B# `4?` B`4 $`4`<,: `< :@ (@//@#\T @g " @H  4 D % @ D 2 D ' @' ' ' @ H`"% H@@% H L 2 ' P  ' ')@ T`"% T@@% T \  d  d% \@, 㿐`< "`L@`L "`P@`P`"`D@`D "`H@`H`"`T@`T`@{㿐`<@B&`,&`$`B&`0&`( `< @U ``4`@ 4 :  `$"&`$`,&`,`("&`(`0&`0h\@). @@` #\    @&``@ ` #\@@ @V Ѐ@h`T 2`P`H Q`P " `X`T`"`X@`X 2 `4`H#\`<`4@`T.`P@`\  @ϑ, `<`4`\@ `T  #\`T@ `H@ Ѐ@"`P@А`P  `T` @ @// X  < 4@?h 4@ \ `p@*` < 4 \ @Κ@p@?h@ D  @"H h"L?h?hh@//X 4@\ `P@E,`<4\ @4<@ 4@@e(#\? @~ P@"P ? ? B? B?@@А8@?P<@#㿈?荠,-?艠,-\`dh  `<ƅBB:ą BB:`4&㿈?荠()?艠()  ` Q J  !`  @ `'J`  J i" m  c ֐ pА""" B 'J  !`  @ `'J`  J <@ @//b @ ] @ c  D @Ж f @ v'8#h'<@@ 8@ ݔ@@ @ O F @ M  @ H @ @c @ @  @ ;)@@7 @ / @ .  @@,@@~ @F @ c @ @m @@ 㿈@//ᴮ`@  #\` , ` @H 7 $ 8@ e$ 4$ < $ P$ T$ X$ \$ `$ d$ h$ l$ p$ t$ x$ |$ @ Җ @ 2 @ ʖ H 2 @Q   @ Đ@ P@//PА@D@ "HL@ , @  2@@ @ 2 `@ H   @ `8@  @//H'' 4@ j#\< @   @{ 8% <  d`"  ` " l@' ` '  h ' 'i@:'@2 l`"% l@C@% l `"% @<@% @ @   @` *` * 82@ 4` * * @`8' @ |`"% |@@% | 2 x <@&%  < %2  x < % x < 6% x@8 㿐`8 "``@`` "`d@z`d "`h@`h`"`l@͐`l`"`p@ʐ`p "`|@`|`"`@``@@//ܮ`` 8`p `4@$`p`8`T   &%"  < !` ```8`< #\#`" @Ϛ <4,@"~p"|<"{P `  2 ``@c$```@#DB'`HDB'`` H L@`P` @ *`@ppD```DpD@o2  : @h%`P`*`@ @@TTT@XXX@4: $$$`\,@* $`p$`p$`t `pJ4: *@ ~p"|""*>t>p"@"`X "*  *`` "  ;P2  :   ;P " `` H@"V  ""*  ;P@"```L ?" $@$`,$`$$`(@$`0`t`p`$@&$`$`,@`$`,$ $ 2`@:   4`$" $`$`,@$`,h4@ l`Yh "'@ ',2t0@ 't`>p@8"  2 `& ``@&`g " 4` ` @ #\#` И@@ `  '?"@`"``"\`@`  #\#` # И@@ `  '" '?```H" '?#\    @ WW +```H`L #\#` #d@ ܀"Z` @8" x@,S` `4O`  #\#``@ И@@3 ` $2  : "'?```H" '?#\    @ 4 WW``H`L #\(#` #d @ ?$` |  W``H`L #\|@$` ?`?#\    @ 急 W#\W#`#d#hl`@@֚쉠?`?#\    @ j@W#\W#`#d#h` @`"$  艠?`?#\    @ G@ W#\W#`#d#hl`@`Ǣ`$h l @ 5 㿐4@B=& <4<@  8@!@@8@ @!8$8<$< 2x$$2x$x$xD㿐4 <6?G&<@Ɛ" 8@ܔ8 @>`@8$8<"$<` 2%x`"$`$``" $`$```@4$` `2 x`"$`$`x"$x$x㿈@//㌮c @ t ] p## @ '   +  ` '    + ?@@9  ‰@=@ `9  ‰`=@??@V?聨 ) ?# 9???  $?聠() `tG`p       #?$ )   -  )  -  ?  $㿈?荠,-?蕠,-\`dh`@Ɖ BD:`@`Hʑ BH:`H㿈`@?腡B:`@`H?腡B:`Hx@//4@L@ e ic @ <$ @S c  @ɘ  2L@` @ x$ s2%L@  %  ֐`( @w  $`4 @l  x$ @e`@쀢"J ,# ##BB' @o쀢"J # ##BB'< ,p ' pt@ 6m< $#\` $#``  @= $8"@ @@ S 6<$  $ 6`<"`x$"`x"`x㿐`4?"@`<@&?4 $  `8@@@.㽐@//   d  @ ` 2 @ d " h  c @͔ @ hc @Ô  H L@c  @?@@  t` p'% @ @| @ ` $ P`A*`@ @Tl@#, %# $# $ $# ## ##  0 X "     `# 0# ` H L@ h ###\ c @@+   @//മ (/' +c ؀ \ ^ @@֐@*?``c*?@   )*?*?@ 㿈@//㴮\ࠅ?艡 @  DB D H # L 9D?'2अ?艡 @  DB D H # L 9D?'0㿈@// \?艡 P  TB T X # \ 9D?'2?艡 P  TB T X # \ 9D?'0㿐`@@1  ahD> 㿐    @  T㿈@耢 1  쀢 @*` ?  .  @?$  @"' @ ' '   ' . @ "@ 쀦@ 㿐@// ` " `  "`@*`"`㿈@//┮`@= #\`h ,t `x@ * $ H$ L$ P $ T$ X@ 8 2 @ @ 2 @Q   @ @ P@//dА8<@g@D@a| @3  2@@͖8 2 `@Ŗ@   @ `@  㿀@//\'H@#\ @6 "HK D d @ @6 @ @H "0 @ ` "` `H , @Ș $H @ 2`H` 2@ d @˖H`l @@' 㿐@//⴮@L H d @ H @  H` @ @@ H㿈@//,8    BB'@    BB'H  , $ 0G (L`4PH `$ P4TH $ T`+*`@ @@T\dph3`@: ## # # " 3`@: #3`@: #2: " $ ( , 0㿀@`H <`$?`(?#\    @`,`$"@`0`("@`H 2`HW8@2`HW<@2 `H@2`HD@`HWW @ @`H0W@ W㿈@//, $ ( , 0@@  B p`9` B p??@U`$3?`,,`(%`0'`$0  `( `, `07 㿈?艠,-?荠,-\`dh`8ą BB:`8`@ƅBB:`@`L' BB"`L`P' BB"`P㿈`8?腡B:`8`@?腡B:`@@"" H㿈 X}#\#` X    㿐@//@ X Hd @ H` @ @@ H$ H㿈@//x`@v #\` , `@ ;  $ X$ \$ `$ d$ h$ l@O 8 2, @G @ 2$ @? H 2  @7 P 2 @q   @1@ @//(А`8`<@`@`D@`H`L@p`P`T@} #\#`#d @K/ 2'@`8 2$  @ݖ`@ 2  @Ֆ`H 2  @͖`P   @ `@  (@//|@#\ @? " X>  4 \ % X \ 2 \  ' ' X' T@ h`"% h@@% h ` 2 ' d )' ' @x l`"% l@@% l@& 㿐`\ "``@u`` "`d@o`d`"`h@l`h`"`l@i`l`@c㿈@//−`@`P:`P:`@`8`H=`\:`H:`8`\ 2`X  2: `8   BB …D'" "`$`@   BB …D'" "`(`H`8 B$%  B …B' "`,`P`@ B$%  B …B' "`0x@//0#\ 8 < @ D@#\ H L P T@WW@7WW쀢@7 l`"4 h d " @  a\ WWWW" #\ l @s  dWWW" #\#`"#d l @i  d  l @d  h #  a\ WWWW" #\ h @ 0WWW" #\#`"#d h @B 㿈@//`8`@`H`h  `P`X  ĕđDD>9<694`l `h 2 Jƅ9"#ʅ "# `X$%  )"&# 9 Ȑ  ̐ ??@㿈@//`X?`l@ `h ! `8@㿐@//㠮`X `h  `8 V?`HB O`@ H`PB A`l "`8`h B '`8`@B '`8`H + `8`P +`80   `@  `HB  `PB 7 h@//Ԯ X ? h  ? 8ȅ? @? HB? PB?@v C h ? l ; 8 HF   @ PD ΍ȍ҉ʉ ‰@̡ ơ P`ȝĝN`̕ƕJ`ȍąN FF NF)?㿈?艠,-?葠,-\`dh`8ąBB:`8`@ȅBB:`@`HčBF:`H`PȕBJ:`PC㿈?艠()?荠()`8B:`8`@B:`@`HB:`H`PB:`P)@//`@`D@?`P`T@`  a\ 2`8`H`8#\#`#d#h`8`H#l#p` `8`HB @ƅ#\#`#d#h` ? ?@N`` (@q @V`` 2A `d ` @a @I`d 21 `\  `` @N `\  @G ` @`X @9 @`\   ` @,  㿈@//ฮ@ B)$` % 9` =`??` 9 =??葠4i5` B#+`@ '@ 9$%@=@?? 9,-=??蝠4:5@Б • P! DĝʍƝƑ N J=@01239"@="# `9"#?葡?@R   +@  '@ ; @    `  ; 2 " @ B#  7  `"?"? ? ` B# 7  @" ?"?  z?s ™@ā  ‘$%&'@…L D+  ' ;Q …LB '  +  ;;  ` 9`$%"#  …D ' +  …̉B ?   ? @//p'''!???'|\           '|  `?'t'lЄ'd? ?B? B?@j\| l#\ t@ , 2l`2 l????#\  @` ?? @\|R  #\ t#\  @d  #\ d  @?? @\|? q 2|? ?B? B?@\|| 㿈@//̮! ! D* $%  ' ` 9`$% -? ` 9`$% = ??荠45 D#K $%  '% @ 9@$%  = ??虠4`5@ 9@  '@@ 9@$% =??虠4`o5@  9j@  ʝ…J!  @D`ęҍƙ ƍLR = *+01 9@"  ="#   9@"# @HR`-  "%@     @'@  @ )  @  9@@`?荡?@?聨 ?耤  ?聠45!㿐@//x@i! `  @]`  @C!  B#  p@//ᬮ'' B!$ @?  D`?@? 艢D!$   腢B !$  ?ؑ ?@ !!( Ѕ ā4@`.!0  Ё !(ā B   ȁ!$ !, !,㿐@//㨒@  ` '@` + ` ' @ )?` -z?` )t?` -n?@`H!@ ``D‘ʑ ¡ơ !L9 9Е$%ЕJ̍ȍFJ!X .̍ȍFJ!X "̐!L9 9ȍ$%ȍFΕЕJJ!X 9 ΕЕJJ!X   ?㿈@// !dBD'$@&"$,@4",!dBD'(@&"(0@4"0㿀@//\ @M'?!p!|'荡ԑF FpơN NL D P BNB| TD 0BB B BP ( B NH|TF 8BR#\??@q`@㿈@//  8'쭠!!'썠֙F FơN N@H`D P` BNB TD`0BB:`B`BP`( B NLTF`8BR: ז8@//'.Bg   Bb '! HHB?艡 H HB?! J!<FB?艡 J FB? F JB?  F JB? H HB?  H HB?#\@ƚ@?, ` <@<`@5`* @  '#\   @` <@ <`` @ !H!T!!!<`2"2? ?H L TLB? H L 4T L LB?  L LB? L <LB?  L <LB?@& "T L HLB? T L (HLB? ? (9?< L LB? < L (LB?  L LB?  L (LB?  B#     B  B  ( B #\@`<@<`` @,`@,@`@ H@//h''ܑ.Br Bm  !` HHB?虣 HHB?!l J!xFB?艡 JFB? FJB? FJB? HHB? HHB??@c?@]?@W?@Q#\#`#d#h#l#p#t#x#|###a  ?? @0 a ?@@= ܨ !!!` NNB? NNB  ?Ȁ`2??` N`NB?` N`NB? NNB? NNB?Ȑ @ ?@?@#\#`#d#h#l#p#t#xa8 @@杖 ? yx@//⤮''   B \ 9!D!P B#    9!\!h ??@2?   B  =!D!P B#    !\!h ??@???!P !t! !tB!&  " !R !蕢B?؅ B?@ؙ !D ?ؙ???𕢈L!?!P?L?@!D !P J?@؁@B=@=@؁ @ B=` = 㿈@//\!?𕢉B? ??@h!4 B <<@ <'<` čB葢B D<@< B<` Ȁ <@B<@B<`<`<㿐@//᤮@ $ $  $  $  $  $  $ @@ $@m!@$ "@H@//  a  @J c a @  d4  a J!J@2@  2 a   J -2 ""a@ ' '  (  X " @p $@$` $` $` ( X$`$`$` $ @ /`` " @  €  `` #\      @ @`$@/``#\%  "$@@$ ` "  (€`$   2 (  d h a @C  h 6  (,   X€@  & ( - n a @# $ n a Ԗ (  X€ 2  a  Ė@a @` ° + t a @ " t a  ( X@0ऒ"  ( @:@&ऒ2 ( + t a@w # t a } (  X€ 2  a  m@ o k%@$ w b@L  w a R!"Q @H , b  @| #a . (  X€ 2  a  @a @]` a   ! @y  aĐ  @n   㿈\&  & #\   2  ( 㿐@//D`(  X€ "  @ؐ &@& &  € & & &  &  $ a  @  㿐  "   €  @2` $ `2` "`@Ɛ    @ @뺐㿀\   ` @       @4"   @4"  #\;`    "@  "㿀@//a @T   (  X€ @ 㿈`&  "`` €    #\      2``@   @D @E㿀 X@듒   @돐 @덐 X㿐@//ᰮ\@ 8%@%` "x@ %`%`%` %`%`%`%` %`$%`(%`,%`0%`4@   %@ x@//خ@#\| @Y 2d  "$@$$ (  #\($ @8쀢 5$ ",@$, 20 "(4 b#\0,@쀢 $ @@" 4@$b( "  " @ #\   @  0@//߮  J  @N "t     "$ @W$  @="c  "$ @I$  `" @7$  "  @` *@ *`   @"$  `" @$  " @` *@ *`   @$    ''@   "  '  `''@ @ `"$  @$ `"$  @$ b4@u @_@pb<@k @l@//߮l''' "'x@ꭔ bD@< '|@/|  @쐐bL T @  '|  ?'|?'tx@ 耢` J? _`@b\ @H  @А @鼔 Q` J? _2@bd @.  @ @颔 7耢` J? _2@ bl@  @ @釔 '|耢`! J? _O@ bt@ O@ k@l 't"dJ `0O cb$@ @bx M? 0? mb0 8 @? ;4 2 : @ @֠ @4x @  ,@? `| @X  | t\ "@%@|@ʐ|  @= 㿐@//ݮ$ p :    !`  @ 2J,"J  !`  @  , !`  "h$,@` p  dh$ p , V$ @?  "@ "T  @? "@@   "   !`  @ 耢,倢  !`  @ 2) p,% !` "  p,@` p  d$ p @? "@@   "   ,〢 p *   㿐@//ݮh bH @e @J c%bP @  c` bX F`@| @J = c0bh @ 2'`# @ِ|   @͐| @#   bp   @ߘ  㿈`4   2  "& 2 @o $ && & & & & & & `4& &`4   `#\@   @` x\`  &d         $@@$#\#`#d#h #l  @ۚ   @і 㿐? 1& " @1  " @+ `" @ `" @ `" @ `42   "`4 4` 2`  "` @㿐@//ܮ4 4 ",@$ `" @ @   " @  "@"| @X @㿐&  @N@W 㿐@@//ܮ('T`dhl?'\d@ݔ` db  @ ̰  ` hb  @ј    @ 2 h  * @h  @b @涔  @d 4"@` 4"@`}d@6 `6 T\@d'`'ؒ '*@ '' ' @w'@-%'Тh  @˖ Kh ;H ! ,  @뾖 Sh@\ 6Nh  @묖 7 p2   *@@xh -p2  #\\#`Дd`hp2  #\\#`Дd`h@ T\d@~`@  "b @ 0"$@а 㿈@//ۮh  @R 2& "@Д   "@Ȕ  2   @9   *  $*  $ 㿈 6   @   .*a *b 㿐@//ڮ  ) (!"@. 4'b@$  " @ "! `$!"@ 4 !"@ 4㿈@//ڮ  @ " `? "@  @걖 ?h@//ڮሮ''''̬     @܀  @b @= x  @w `"%@l ?%ܐb @祔 "@@@Ò"2 `- 2 *a2 *b@Ȑ ܒ @E?@Ԑ* @ + @  *` *` Ԁ )\ # " `" `̀6`̀@ &̤" "      `̀@ ܰ 㾈@//ٮ `V""""@" , $@""@"*"@"" @9 "" @""@"*" " * "*"@ " """@ "@ "@""""@ $@% """@Րհ?""""@@Ɣ &@2> "*""@*""*"`%"@*"""""""@ b "@$"" 2t?Q耢 4 ""@"@"""@""", @"@n, 6"@"@", """/, ""@"@ ""@ /4* " %""""@@"㿐@//خᔮ""""""h " "@6" T?"" *@ *` ` " "@" """"  #*" " "` `:  ` ` ?"@: * `"@"@ 㿈@@//׮t'''''|`dhl̔@Ė c  Ȁ c   @⩘   c@t c  @ⓚ  ̀ 4"@@Ȁ 4"@ $ ̀6 Ȁ@6  '''''' ' ''@V'|\@簔` ܐ@Iܒ@笔  #@@<4$ @5@@/@K'- @!ܨ @y@ 2@@ @ސ# Ā `  *`" @,` '|\@L\$'\@ἐ 㿐@//֮Юc$@! @y( @Ԙ  c, @$ " " `2 2*`  @2@ @M0R H?@? $@ @ ?``$` *@ ?8@? $@ @ ?``$` *@ ?%@? $@ @ђ ?``$` *@ ?Š ? @栐   @c0  @K ` @扐 㻨@//֮ ? $@x `$  @   !`    !` ? $@\ `$  @  2#? $@G `$  @Հ 2Ґ $  !c !` c4*<`? $@# `$  @  逤c値c *|` *<c4 @    c8 @     c< @h @?㿐@//ծ☮@? $ $  $  $  $  $  $  $ @V@* $@  @$ "@㿈@//ծ\@ P @ࣔ P%%     @+ % % % <@% L% H@ @ #D  #@@   $#@ 0" % @//ծԮ  `4 @ X`@J b` `x @  c@l  `4 @ ߖ c% c !`cp @ǔ  c  `4 @ǖ@⸐  `@   c1 c -`c @ߢ & c @⚐    @⎐  `@ `@J  c׀ g `c @q ̀ g ' @Д < ''''' >@ 2  #\ `4 @     `0z @   `T ` t  i @ƒ@@cl ۔  '' Ѐ ="@`@     $@  @@Ȑ '"@䀢` ?    $ ? @@̐ ' @@@'" '" '#\#`#d#hȘ @A  gQ p`c @ޜ H p  `4 @`@: 2Ű ` @3 2 ``@ `&@`@ @  x @ރ` * `<  `, `@\ `@ނ  ۀ r` `P @K Ҁ r ' @ު <' @w 2r    `4 @ 4p@R 2\ @' '_ ; `9#h-)  0*` @5| L "@% @|0=|* @ 0'@* @ݸ@' '|* @Ip t2 ,@`v2 ,@`x2 ,@` '@ݺ|`'@@ݮ `  @ݟ@&߰  0܀ Ѐ 6 'Ȑ' ''', ' '' ' '̐  @ @q  r `c @n  r ' @͔ <'' @ 2    `4 @ ~#@ = `@ @ݝp@ `(  Ld #\x@ mt t p   Ā cl  @4 @u?   6t"@p"@"@ ̐@ @ x#\#`#d#h#l` Ȁ@C  rD w @ ``l @Ɣ 9 w.`@'`D'`@ ` " @ `D`@ '``D  `@#@ ` ܰ `#\@ # #@@`а  `4 @  w`cd @܄  ' @ <'' @ 2    `4 @ #` `   Ā  cl  @p }  "`  `'`'Ħ   耤` x@%@g xx   x  'xx 2%耢  c   @3 @   `$  H `$  h @ , @ᄒ@*@   '" '" 'x  ` `` #  @ 0@//Юخ'''''@~' '-`M -  2n d$ @ۛ'M    J@2 ,`@ۏ 2,`,`  2Ԁ3c-`   @۠    @ۑ , Ԁ@ۇ @ۃ ,      *` !` 'Ā@ ,` `  2 ,``-   ,`,  @Δ 2  ` 2@ -`  #\#|#\#` `    D   d@( ð ̀  '䀤 'E A v  䀢  耢 쀢  c } $$ ?$$耢 4 $쀢 4 $ 耢 & $쀢 & h$$0c$4  䀢  耢 쀢  c A $$?$ D$$耢 4 $쀢 4 $耢 & $ 쀢 & ,$$ 䀢  c  $($,2`Ā  `@  ` @y  ` -`$8$` Ā@-` 㾈@//Ϯᠮ`0` `4` `(?@!#\  @ނ 2Ѱ `0`" `4J@ 2`4@ $`0`4`" `8J@ 2`8@ $`4`8` J@ @ $`8`@``0`L@J@ڿ  `@N @A @ܣ `( `0 L @  #\`0`8@  @/z @ #\#` #d#h#l` `0`8 @ 2a `  $` `0 2)`(`4`$@"`8@ M 2L @^ #\ #`#d#h``4`8  27 `  $` `(   +`(#X<`(`(F#` ` "`L`  $` `L " `@ `#\@  ``@ް ` ?$`  x `"  J@ " @ "  & (>  $` `@ ` `@`` B6`` ?$` @@! $    H 8   ,"  ( 8  @B 6   #\#` #d#h  <* @ތ & 8" @މ"  (  4   ,@ 0@" @ 2H $H@m쀢 W@ W@//ͮ L`# `2` `@2` `   @ڤ`$ @@` $``2`@b h$@$`$`@-` $`$`$$`($`4$`,$`0$`8 L$` % L'@ ' @זL   Q $`<$`@$`D $`H$`L$`P$`T$`X $`\$$```5*`@ @dd44@H ,@D,@A,       * @*`  ?ܔ@@   *@@` #x@ ## @ @,$`  @  @   * * @`4'X  * * @`8'\'@` @ײP$`d` 2  H #\    @0  H@iĀƀ W@ W㿀\` (  d d@WH d$@&$@#\#`#d#h ( d@v d@F  d @ 㿐@//̮`?  "``$"  ?"   @ك㿐@//̮Ⱒ`L ' %   $@N@g@v`L 2 $@``"`<@`@``< "`H@D`H " @   @ۨ @5㿐&  @ܞ@ܧ 㿀  4  4 H@ƒW 8 7W ( 777@ܠ7@ H@ܻ@ܶ H@ܧ @ .` .` < 2 L.`@@ < $ @쀦@Wꀢ  W@@D W@@6 <@&@@@-  <`"?& < @W@Ԓ@В@@0+ )%W@W* @ @ָ * @ <@.`*@  *` `@{ <& <& & W耢 4& @Wꀢ & @  D@6 L& @ & D  @@6 L& @& D L @ xH@ ,@2   0@2  ( 2- ,  D *` * & &  `@o H ( WW#\#`W#dW#h  (@ d @ (& ( ,@  0@ 4 2@#* @ؐ@ 4 "* , 쀢 2"Wꀢ  W@ * @U W@@6 4@* @$@*@* @9  4"D& 4 ,@W@ޒ* @@ْ*@@ 0+ ) &W@W* @@ @ ,* @ 4@*@ *`  ,*` `@Ղ 4& 4& ,& 0㿈@//ʮخ@բ 쀢"u J  /2o  hJ  & @Ն 쀢"Y J /2U  N @t 쀢"G J 2C  <  L`:*`@ @||44@. P ,@4' @' T,4! @! X, @/@,  H*   H* @     ?p@//ʮؒ @S `'`'`'`?#P  #L@  $#L 0؟ԤԀ + @Ԙ/X @* << < @^ $ $ $ $ $`<$ (`@$ ,`D$ 0`H$ 4`L$ 8`P$ <`T$ @`X$ D`\$ H``$ L$,P$   $   $ $`$   #H@֓  ?$  $   @㿐@//ɮȮ ?  $    #H@s  $ X@//ɮd`c @F䀢 $  '  <` ?  <  \܀` 쀢 4`8` &``8? ܀`' '耥@&䀥@6-`-`@*  9? `< @H#',, ,$@@!4 @4 @G??'?@٤,,  `\ @ F@'4 ?' ?@ً `\ @ F@'4 ?' ?@v `\ @ F@'4 0π`@@-`@z* ܀` 쀤  耤6} - " 䀤@6q,"? `< @H#',, @Ӗ4 @ӑ4 ,`"@ӋJ4 ?' ?@,,  `\ @ H@'4 '?' ?@ `\ @ H@'4 '?' ?@ `\ @ H@'4 `䀤@耤&  쀥 04 1? `< @H#',"@'?@خ `\ @ H@',* 2 2 2 @ҷ-` $,* @`@L ,@p%@ @`@?  ,,@*` $@:@`@1 @Ҭ@Ҫ܀`(쀢 * 耢  䀢 2 ^'ܓ* @`,`: '* @`,`: '* @`,`: F'2  : A'܀`2 &`$``&``8? ` &`&`$&lP@ҍ   \  <  |@~ @x ܀`1- *  ' `\ @?`? `< @H@@?В@ `| @HB'*lT,@- * "`P@D @> @< @6 `8? ,- * `< "P,* `@ "P,`* `D "P@@," P"$P"(P- *  ' `\ @?Б,*  ' `\ @?ȑ,`*  ' `\ @?`? `< @H@@r?@n`?@j`?@ `| @HB'*lT `| @HB'*mT `| @HB'*nT-@ц㿐@//Ʈ,P $  @ @1 @m,P#L ,€#T@R@\@]㿀@//ƮX #L@ѡ ( @@ `@  $  `@2  $ ` B $@ 2 < #L@p "5 $2  @@& `@!  $  `@2  ` B ,P $@u  $$$ $@,P$,P@A р 㿐 (`" d@  d`" 8@  8 " 4@ 4 " $@ $ "P`L2  "`L L` 2`  "`  @u @бx@//Ů㨮'''ܦ\  `5 "`@@Л@ݒ 2$`` : `  @ `@ "` 4 $  %``р`"܀ `  `$ c   0ct  @~    @̔  㿀@//Ů''  `# "`@@+@m 2`` ( `   ```〤`"䀤   ` 㴐 `8 @,  c㔐  @   #@ 㿐@//Ů|#D   #@ ,€ 2 㿀 ` 4"@ ` 4"@ ` @ $  D @& & D& & @2 ` @6`& @& D``` "   & @ϭ * @ <@ *` ` )``&` #````@`` ` `` `@`@ς*@@ǔ 774@`@`&  `@ #@  * * *`? `4`` @ޤ4@7777 H@ @ #\@{ p\ d`   h  @z0 `  ` 4"@ ` 4"@ ဧ`ߖ  $ D@ < `?  @& & " D <&@ D& & @2 ` @6`& @& D``` " `  & @`'h@ο` '`? 2` "? @Ω@Ϊh h` 2` h" @Β@Γ`@Ώ * @ <@@`@`?@΁`h 6 `?@x`  *` `>@&@`2 #@ #@    * * *`4 "`‣@ܞ`4Ӕ`ǀ@7777 H@ @  #\@j 㿐5 3 L "  D@+  D @@ D`2  @ 2 @& @& D@ @& @ @& @ D & D㾨@//®'''' 'D $'8? c ܖ@КԒ܀  `؀ Ԁ ?'D?#'@ͮ ' ''8','||@͛ 't8't  t (@͋t@A  `? '? *@'L 'L*` 'l@pl< 'd/`@d 'd4 '\ '\@'l'<l'4'l',l'$''T'Ā6^#\d\T ~T@BD?  L?*`" <$Jl$J*`  (4$J*` (:` @?@` 4 *@* ,T" #,Ƞ   @'` @'` @'`*`@* `P$P@* (P *P@| "$-@ `L$ğ%Dd|g@ä L?*`" ,$Jl$J*` @ ($$J*` (: ?  @* @*`"@ `* @ `* @`2` ` 4  ,T# , *| P "$-@ `L$ğ%bd L@[$L  L?*`" ,$Jl$J*` @ ($$J*` (: ?  @* @*`"@ `* @ `* @`2` ` 4  @ ,, 2*$dl'd\'\Tt'T &d#\#`#d#h(d @n ' '@ˢ 㿈& D& @&  H @L@)& H @˲  <@  L`" `4 @˦ @ ` `2`4 #\    @ 㿈 @ $ @  @& &. #\    @й  "@ "㿈& @&  $  #\    @Н  <"@ "` "` ("`  "`"` "` "` 㿀@//L a @  @8   !t 2( !(@" a "@ "4@ a "@ !@ aL "@  @ $ !$@ a "@`@. "İ @ʦ!$$$`,    @ $ @{$@˒ $HL@ǒ @Ē  !t$$$$$Đ $$$$$$$ $$$$$$ !$$$$@$ D$@M  @J@I $$$($,$0$4$D$L$P$T$X$\$`$d$h$l $p$$$$$$$$ aH@. $$@7 $"`$  !h @* `* `* `* `* `* `*$"  a @$l a @ $L a@Γ   @w   @p    @" `@   ,%@F 0@//   a   @'  @ِ@J`b3 b  @ +`c  a  0 @ ] @Ϣ 2V ̖Ș@ϛ L @` @0B`c&`c a  @ɶ `c   a  D @Ҙ ' @ 8 @ `c`c ad @ɐ ~`c z  a   @ɬ  @F 2 @>Ѐ 2 @>Ж J@ < >J` = 2J` 2J`$  C @ a    @w ̸ 2J@4  J` = J` 2J`8 "2  =2 J@J` =2 J@J` 2J@ `? !АJ` =̐J` Ȑ @ X X ؀`c,`d a @  #`d  @ 8    @ 8 @N q@ j`d=`d b @ݔ 4`d 0  a  , @ N 2 !     =%@ @l 26  !h !-"@`d-`d ` @Ƞ $`d     a   @Ȼ   !t`@  @s`d:`g a@ @s 1`g -  a  ` @ȏ  @) 2ݸ #\@& #\@ a @F0ŀ`gh`i a @9 _`i   a   @V  @ 2   @Ѐ  '''ؔА @ @ڒЀ  !H@ڒԀ@ 耢@w"@@@&  L , `  @ , $ @ʹې'`i a @є `i   a   @ B @͇ 2; @͓@06`iz`d a @Ǫ q`d m  a  ( @Ƙ  @` 2  !t`@   ',@:$?@u@MА@S, @ @L  , @W,@`@Ȉ ٠  , @ @0  @;''',0`d`m ` @0  `m@`s a @  `s@`s a<@Ǹ  `s @`s`s a\@Ǥ  `s @[q`s`t a|@ǐ  `t @ɖ]`t`w a@|  `w@̺K`x a @ƿ  `x@̫9`y a @ƭ  `y@̜'2#\ b @ƛ 2 #\ @̋#\ b$    !  a8@Ƭ  @z㿀@//⬮@m@n  @ƶ@j` @Ƴ`@ư  L@Ƨ@O` @Ƥ`@ơ L "!d@A!d "!h@I!h "$!(@Ɔ$!($!,$!0 "8 @ʜ @)@@//ሮ4#\ 8 @ʈ 2L  !t@ ! aX  x @1 @$2  !@ !L !  a   @ @$@@耢 &$쀢 &$ &$ "@$􀢠@  $ a@;  $(" $, "$",$@Z 2ذ $` &"`$0"`($" $` J ` F ` B `$ > `( : `, 6 `0 2 `4 . `< * `D & `L " `T  `\  `d  `l  `t  `|   `  `  "`  $@Q 4 -2,  @@F @Ȑ$@=@=$ 2@; "    @ $ 4 $ 4 $ ` @ɨ  $ $ H L@@༣,`* ̥,@ đ* @g@Ʉ   @0@ɒ@ p@//    e   @@D@Y@Ő @$  DP$2` "$@Y $@. @. `@ 06? 3  /@Ȉd  $`   \` @v$d ?$$dL@ʅА @>@̀    @y㿐  ! "&@ &@z㿀@g`@L    Д@@ `!@  !`@ @&@@B@H   @ږ@@Ք  &!DX @Ԗ 2   @ʖЀ  '''ؔА @ǒ @ɾЀ 6z @ @Ԫ@ @,'''Ȑ @耢    @ ?@ɧ  В@ @ɠ  , @ëА@̔   !@z @u  !@ !!@ 䀢 !" &@@ɫЀ`  @8@7  &!D P@//‮4 z?"D  q   @8$D@[ @ 8$@Q@Q$ 2 @O O@?$8$<$@ -  !H8@; @ 78@"@4<@2 @"@@6@ @ ` @c$@@ϔր@ $8$<$@-p!4    @Ȝ@   @Ȕ!$@֘ !$@ȭ ! ?&!p@//Ԥ䀊`#` ` $` $\ ` @Ʃ$dL@ȼА @u@ȶ@// ''' ' ' @'  ' '| 't 4'l T'd '\9 !- ԑ,`M -}@b8M |t@„   b c,`l@L  cX  e,`d@?  e@Ѣ`,`E' f,`\@,  f 7' n,`@  n+  r,`@  r ' -,` a @  -',` b @ ``@,`$  a   @   ,`'䀠 ,`@-@;?'  !`  @ " @ , L  ,`@Ȁ 2i @Ǹ'@''܀`@Ǫ?'@@'''̀2',`@U 2? @ǧ`'܀2''' ''쀠 @Ǥ '#  !t ''@Z''@' ܀߀`@~  H2  @   2쀠@䀠L  !`  @ " @e , L 2 ? Ԁ'#̒ H " "@` '`2   `"   䀢|`쀠  @ $ @ y  @"@" @`ޖR H "@` @`$ H "@` @a`@j E`@c >ؐ a  @@ "  @V0&`?0  0܀6 @ @䀠@ā㿈@//@h耢 2  쀤 ,Jlrcn2` &,*`@ %@ 쀤~`   7 p- ,@ q@ %@% 쀢@`    a` ` Ul ,@ a0 @ rC% rc,@@Ԑ aP @В c .% n,@@ n % ,@@  % , a    @̘ 0 쀤 @@@ (@//'̦   n  ' ' ' ' ,'; aL l' ', J@ -R@\ @Y , >  @O , 4  @E , *  @; ,    @1 ,   @( 2  ̀U, U ,  , ̀D " ,  @Җ 2s @$  ̀  @ϔ,  @ĻЀ 2\ , @ a@ " @įЀ 6J Ԁ@#\#`0 al   @ 2 #`@,z@Ԁ `#\#` @z0#\#`Ԙ @؀ #\#` ?Ԙ @  @@//''  H' ' ' ' ' ' '} " @䀢@ 4% , ` #\ `\@_ U, R  J m t   ` #\7   #\) @  #\ "J w2    ` ,#\ a `\@ 䀤`@//tА ` @ܖ  ?''@  @ @0 @!@@а 㿐@//㨮@ @ @} $$ $ $ $  $ $ $@$`@p $` !H"@"` "` *` *` $$@` $"@"`"`*` *` @W "" 㿐@@r㿐     & $ `    2 @X  2 0 &   2 @ @H㿐@@ 㿐@//خ@h @ ;5 H` L@ `L@  $@@  $$ $ $ % $  @* L @ݐ "" $ " %  M@  @@_"@Y`" `"`@`2`` "`@ _ ! @㿐@//`` '  `"& € `" $  2  `2    2  ݒ"@ "<@ 㿐     €$@ @    㿐@//Ȯ"` " %  " @V`2:`@Ÿ @"`$ `?"`@`2`?$@: 2 $ `2`"` ?$ @% "@   2  $`" $`% @  2@8`"@ €``2@ `?"`@`2`?$2$@"   2 "@@R7@L@ ! @㿐@//̮@ @& ' `% @  2 @ $@    2 `  % D 2@z`  "   "  㿐@//✢@ % H "-  @F2 @"   2 `2  ` 2``  ``  "㿐@//᤮  # bL 2 @  `) "P`"  2 @  @`2`㿐@//*2`` $ `" $ "`V` ! @+@㿐2`&`2``"`;h@//@ג 0!@   ! !$ې2`  $  " $ "`$ $ $ @ @Ȁ -@ "`2` "`    @O?$   @ò`ِ̀`א@y0р "0@1   ! !$2`` $ `" $ "`$ $ $ `"  ! @x㿐@//ጮ @$  $L 7 T `  @```2@`" `@`$` @&-``@ `% $@@ $@ "$` $`$  $@ $@$` $`% 2 `1 2)+$ "$ `  @```2@`" ` @`$ $@$ 2  4 㿐@//D ?  ; " `" @ "  ``2@2 4"   ! !` @ 2`` " ```2 㿐@//`K  `" @ 2` `2@2  4    '  ! !  ` @2`` `  ``"     2 $@$`$`xW࢒ && & && D&@ 6 &&&& && & && @&ܐ" &@ &&@`@ ?$&`?&  `@4 & `@6&hN  && & && I&@a $ &&& @& @X&̐" &@` ` 2 @'`'`' & @@; &&@ @|Ԑ?$&`?&   @$&㿐@//` ` ! !% d"$`` "$`2`` 2$`  `@2 `$` $` $`n  $`〢 ` $``? [$`` "` $` "Q$`  `"L$`` @F   "  "`` 2- `@"( ` " $` "`` 2 `@" ` " $`  2 @  4  $`$`` ` }$`$`  㿐@//p` î !' t ``?` $ ` !2`` 2  `@2` $``  ` 2$` `"$`$` $` $` ? $``    ` ``  `"`$`$` g    "` `2 `@2  ` 22  "B$```"($`    " ` 2 `@2     2 2`@`"$` ؠ    ` 2$`$`` G $`$`  㿐@//0  @  ! !2 "  $ 2(@   ! !" 2 " 22 "   !$`? "``" @ 2````2@ 2`"  2  㿀@//<' '@# ('@  ('  @  ! !2   @j @  @ $@ @  ! !` "`2   @H  2`@2`@"` "` `" @.  2 `@2` 2   * ,  "  %@@쀤 @ 㿐`2 "  * @ ,"`@2,`,`@@*@&@y @*@ & &* "@ * "@ &㿀@// @Вz - + b) "' ⬐!` `2   b@T0] 2 @M `"`@E` " ` 2 @;  2`  ``"3 ` " `2    2``2` `` !` "` 2  "  2``2`  "@@[2` @R` 4 `  "@` ` 2`` 4``` 2`` ! ! !    "  aH  "@  "  "@ ` "`@ ?   "p@ 㿐@//㤦     @`   "@  U `"5 + b) " !H% @"`@i` 2`@c` "0 €  2   2  `" ` 2  @  " @@  2  " @6  2```H`"D7 5 + b) "\@" @ ` @r`"" 2  "@@@"   2`22```ɲ@  "l@ޒ@  "|@֒h) " ! ! @2 @  `"3` "`2  @"  2``2``"` "` 2    2``2`  "@  "# b@2 @t@  22㿐`` G @ @G $$ $ `  $ $  $ `$ @&@6 @$`$ &`$ ` $ `?$ `   `? ```? ``$ "`@@ `" ` 4@@`  @  `` ~`&"`@0u@` 4`f` 2 `@  2 `` @2`@: ` 2`  &`$ ` ` "    "  ``   4 "    "  ` 4` @% &`@`?"`w @` 2`$ #`$  @@ `` @`20`㿐@//l"2"$$ 2@k ! !  $ $$`"&@2`` "`` 2 @A """ $" "``2@2S `P  $` $$@` "`2 @ " "" $@"  "  2``2" ` @  @ " @"" $ @  $@ 2?㿐@//മ@Ő` `"@  !H&& &  ` @ϔ* $`$ `"$ `  @*@@ː㿐@// ` @ aH " ` @  !H&`&  ` &  @   @` @@㿐@ 㿐@//<   "@w@    "@n  2  J    " !H@ "@Y㿐" @`  " @ 1?&  㿐@//8@ a /` +  2(` ! 2 ` 2` @   $@%`@"  "`  "`  `   $`㿐  @ ܔ?& 㿐@//  "X@ 2  "h@   @ `# bx 2@ @  "@  @ 0@//@ @˒ $ 4$ 8 '@@$ <$ P$ T$ X$ \ "< `< h< p< x$ $ $ $ $ $ &! 㿐@//@a  4 @ @ 8`"`@z``@w <  #x@@s㾠@W<'4?'?'$','' '???????????? @Ŕ L ' ' '' ' ' ' ' ' 4`" ``, $`'`',` " ``$ $``'`'$` "`$`  2`  '` '``$" `(` $`('`'`(" `,` $`,'`'`," `0` $`0'`' `0" `4` $`4'`'`4 " `<`$`<`8'``< " `D`$`D`@'``D " `L`$`L`H'``L " `T`$`T`P'``T " `\`$`\`X'``\ " `d`$`d``'``d " `l`$`l`h'``l " `t`$`t`p'``t " `|`$`|`x'``| " ``$``'`` " ``$``'```'`<& *4 "! @X4!  088 `  8&@#  & "& @'H  'p '`)@@&  'H '| "'p '`i@@& !  ( ``& & &` 㿐@? &@``" @  @`@`@@//ܮ  @̐ 8$ $ $$ $?$$$$,$0 $4' ' '   ' ''?'''' !'''|'̀` ̀ " '̀  L't H'l  m @ 8$ 4$ +  `@'`'`0'`H'耢 2 `   $t2  #"@̪" &  H @"@"@& " l 2$ L " $J@ ސ `J@  $#\#`#d %4 5 ` M'O@:K  ''|2' $, , 0 $  ''''ض /`" @ ,@''@'%  ' ̒@'@ '2B "@`?|'Ā52 Ā"/   & €@ȐĀ€А@̤#\#`#d ̘ĸ  @v !L2   H @"@% , $(  (%%3 :  , ' $   $  4 $ 4 (@4$   $   " 4 $4  2  " $$" 2  : $,   284$ 2`@: "@$ `"8<2  : $$ $  $  $ , $(X@//ha  o ?$a'a'a'4@ 4ࠒ 4 @\ @`@3`'4 DL7 h5 ?@ i "    @Ē` @ ْ$4$04 2$$`0! @2 4 "$ 4 2$ $ @Ґ 0@  $0$4$   @@ 0  ` @`0`2`@@ $0 @ږ 6q4'4@ 4  #? G !h7 `$?4`@'' ^$ 0 @3 $ @` @  04$ 0$4  `@` @@ ` @ ?ä#4@%a`%a`%a4 D# bL$$ @$   0 4 4  ??$  4` `4`2$  4` 0 `2$  0   4 "$  4 ? $ 4 ?$ 4 04 4`" 4a %a$\4 " H (\@4$\ 0 2 (H@"@\" ` @?T 4$TT &$TT@`X@ $X4 ?$  0 2$ 㿐&@! `42! "`4 4`02`0"`0`0€x@2@@2`,!  "`㿀@//Į! @`#\#` #d   @`@@ !X @'`, % !x@@X"@ 2 ` `" `$`#\``  #`   "   2`, > !x "5 @@X"@ , $ ,H&`  ,` `" `$`#\``  #`  `" `$`#\``  #`   "  $  2 `` L 4"@ H@" #\#`@#d`#h8@@  "@ "@x! `X`@`H%  ,["  "   @2@2 @2  @; ,@ 2@& ( #\ @p%@    #\ #` #d@c  %@  #\#` #d @U  ,,  @& ,@`,@ #6 , ` `  @2@2 @2   `?@F  `  @` @ ` @`  @`2   #\#`#d#h #l @ޚ%@ `k"u ,,  k@&gf   @`@ `@`   `?` `   $#\#` #d @  $& `$ !   #\#` #d @{  #\#`#d#h #l @o#@`@`,@:` ,,  @& 0 ,@`,@ #;` `  @2@2 @2   `?@G  `  @` @ ` @`  @`2    #\#`#d#h #l#@ @%@ `px,  o@&kj   @`@ `@`   `?` `   $  #\#` #d#@ @  $* `( %      #\#` #d#@ @    #\#` #d#h #l @v#@`@`,@c5``@//Ю   @V !h   b    @i    `H`@@`L`D@ )` ?%`#t@ "@ !h   b    @<  @` ?%`@sp@& ` %``4 "m`?3 c "b 0  "^ 0  `L@4X 0"   0 ? @  `L@40@ `L 4"@  $  0 " 0@@ &"02@^`@#`H#\%#`#d`< #@ @  "@x@ "@@c 0 2 ` `%` !h   b    @ `̛+``@`D" #\#`#d`̘ @ ̀ "䀊  @Y0@` @̦@Ā  ,`@#\#`#d`@Κ#@`D#`@#\#`#d`#@#@ &,D"+ " #\#` #d @@"D"+ " #\#`#d"  @` ?%``4 ?  $   @2    0 @`L4$@`P  @@@   4 /  !h) " `L@6%  "@  @Ē @ ]` \ $  4 ?$ 4 0 2 @`P`L 4%`P`P6'%`P !h   b    @ `*`@#@`H`P"#\#` #d` @ %`P䀊  ?$ @9   ܀ @Δ @㿐@//Ȯa  " " #x@t㿈@//t@a 7777@3@  % #x@O@㿈! @W4 @? ? W @}  2$  0 2 P&$P  ̔@W耢 Wꀢ   @" @4 D" @ $㿀@//a   #x@  $ ''' 4@ऒ 4@  202* @@//'a  4l`@  @`` @sȐ@@ " @ E 2  #x@  %  2 ''?'@%@Ȁ @  `@ `@& 0 @sȀ 20@//,! `  #x@P` $`'@@`8`@, $`8`4  $`4 ̀ &$      $`@    Đ $`D @ ̐"  "  " $`H`@ 4`$`H D ̐"  "  Đ" $`L`D 4`L`$`L`L$`P! ! @  #<`h<``<`x<`pp@//! @ `@@ А @2``  @%!`%!`^%!X "`4`4@"    `L $   `@2  `@J  H L@`D`L 4: "@  @ ,& !@.@^  @`4@ `L`D"@!@`    #x@n` %`p ` @'@~`&I @@''ؠ J"`0  @ $@`  @ `<@  @&`&`&&& &'`'`'`0`  k  #   @͖`@//   c     @"  @ } @ @ @ @ ` "`H`H`@" `\&` `4@ "  ,@6"@   "  $ #\#`#d "# `X%@   64: %"@@?`T"@$`TԐ$$   4 :`ܐ" @ $`T @?`T $`T``  $``$` #x@w 㿀@//|!  72 T@ U @䀢 "0 H   8$ T3 24$ T?  #,-? #8)? \腠D 䉠 #@DB' @" @1 ? $ @.@@$ T `  $ `$  #x@  p@//Į@Ha a `'Ш?@a&8``@''ؤ ޒ$ 0 @ $ @ 2  0$a $a $a 2   0Φ#`  @ra'@`@` a$ 0 @u  䀢 $a$a$a 2 #x@ &X@//⼮ ` G 2@  J@ - @[  cH@V     c   P @s    %- @`@̀  ̔ @i@- @ ° @ @ "S        #X-? #`)?@'D?B''̠ @@''Ɖ B ch @BD'@' @@ c  H L!@,`L" `D$@@В АM@} А?@'$$-$,`L" `D$@@@@$ 0 @^ $@ Җ Ԁ $$؀`$`    #x@q` %`f x@//H   c  @ p` @܀ 2 `@؀ 2 `@8J dT` c @2 L m ܒ"@*` * @?   H @"  \"@ @4?`  $  $ @$$ T$ $ $ T ؒ"@*` * `H`L@  @"9 ''' $@ $ @2) @2$ $ m` c( @ݔ   T$ $ $  $  c4 ` < @   `  $ `$  #x@’ @//㨮 \ X'H@" 'ĉB #D " # #L #D2 `@ cT ??@0$B#:`h B:`:h( c\ ??@kܔ@  cd@ @ې㾸@//(a 4@W`'@l`@x`' ? `' B?   ? L``  `0 "` @H`@T`' ` '' čB  cT  ?@ 0%p B# ( : , 6 0 2 4 . < * D & L " T  \  d  l  t  |       $  @9 ~`d[`l ` @% R`l    `,  ऀ6d , @ € "7` !$"2   @    @ @ @В@Ж @ݐ!h " H@: H@A H?% H@ےÓ," ,`n ` @ʔ #`n?   `,  $@N (  @E"  6}{R`n `4 @ I`n E?   `,  D 2 H@[*   @Β "  H, $ @Ȑ , H' @= 2 @L" @ @,@N `n`p `T @L z`p v?   `,  3d @ @ 2~ @8   @Ѐ  @  k '''Д@p@ Ȁ  !2 `@ 2`` p``@p "> @p 8p@ 4 pP@@<@@@4" `pt`r `t @ɔ k`r g?   `,   @J @{ 2   @q  (    @[(@@ 4 !@(@d@   @>@@@O@א@> (@D @’@0`r<`r ` @U 3`r /?   `,  <ࠒ@  2 H@" ` ` ?@  @- r `rN`r ` @ E`r A   `,    @5 V  @ N   @@   @@@ @Ò@A@ )@@50`r `0 @ʔ 2 ?  `@  P   `  @ 0 㿈 D 쀢 5` @s  < ``&& &  H& & & & &  & & $& (& ,& 0& 4& 8& <& @& D& H& L& P& T& X& \& `& d& h& l& p& t& x& |& & & & &  H $ H&` 㿐@//| @ €     `p   @}  㿐` "`@"` "`@7` "`$@1`$`"`(@" `( "`,@`, "`0@`0`"`4@ `4 "`<@`< "`D@ `D "`L@`L "`T@`T "`\@`\ "`d@`d "`l@`l "`t@`t "`|@`| "`@` "`@` @@ϐ㿐@// `'`     @   `@#@"0  @ @ 㿀&  H6?` ? ? @Ӓ "&` `"`@ɐ 2 &`㿐@//✮ @M  a N$a2*4?`*`@ @08@HP ! "$( 0# @@ 2*aa ?$a$ ? @#@a  ?$a@p0+ 2a0#@a  ?$a@^aЀ ah  @@1aԀ  ?0 $0@F$0@@//ମa䀊  @? `0?  $aap@"*ap@? ! $ap`$at`$ax` $a|`$a`$a$a`$a` $a`$$a`($a`,$a$a $a`8$a$a`0$aap@ `ap aa@@||ӒaФ '|aa| &, @m@ aЀ6a| 6(|aԙ*  @2" $ &aԄaЀ& a|$aaԀ`$aah @ ap@˔ ` ''ah@@@Qaa@ ` @| ah @ ap@ ` ''ah@|@^@*@@//ጮ   `  @ ` @ 22 .   `   @Ζ 2 @ג  `   a   ݖ <  @@ ٰ a @ܔ 2J F   `    @Ѐ 2 @  `   a      <     А <  @ @ ?@ a( @ 2O K   `  n0 @F 2m @Ġ@}?@@*@: 4  $ $ $ $ $ $ $ $ $$ $ ($ ,$ 0@o@?@B < @@l4  ` @7   `  ܐ@s" t 2``@~@j2t  `   @;   㿀@//` #\ < @`` "`_ [ € ,@  @& @Z  @@)`@"` ";  @ "`` "`  a`   ,  ,@ $`" @ 2``` 2 @  a@ @!`  @ߖ``,"  㿐@//  a@. '  a@% $  `@   a$@   a,   @   $  㿐@//        2    ! !   !$ 㿀@     €`,@&   ' '@ ' @4 㿀  ' '@z ' @$ 㿀@//خ   @< !8@ ` @@= @6    €`,@$   ' '@B ' @ 㿐@// `   €`, " @   @@  !8@  !< @  @ " 㾰@//8\d  @s` 2]```T @ @J`@Ґ@@ߔ?@@ $` "`  a`  ,  ,@ @#$`` @2``` 2    a@ @`  @~``," ` 2`   ` *  `$*  %`   !L@ &   $   $$ !4$ $` 2 $ `$"$ `$$$$($$$($, $0$4`, $`, 㿐@//|    @ ` !@p 4` K ,@ `  @@0<@09#\#`#d `@E"@`  @ 8 <@   @@ D@ @@ݐ  ` @@  $`0㿐@//خ`4`,? "`,"`0 !8@z㿐\` 4`d! @! @` '@`( ``$#(& @`"@"@0"@0&`$ &08`$#'㿐 0     @@v 0@p 㿐  € "    & @}&& bogus "which" value in Tk_3DBorderGCflatgrooveraisedridgesunkenbad relief type "%.50s": must be %sflat, groove, raised, ridge, or sunkenunknown relief@`gray50GetShadows couldn't allocate bitmap for borderPrint summary of command-line options and abort-helpambiguous option ""unrecognized argument "expected integer argument for "" but got "expected floating-point argument for "" option requires two following argumentsbad argument type %d in Tk_ArgvInfo" option requires an additional argumentCommand-specific options: :%d Default value: %g Default value: " Generic options for all commands:WM_TRANSIENT_FORWM_CLASSCAP_HEIGHTFULL_NAMEFAMILY_NAMEFONT_NAMENOTICECOPYRIGHTRESOLUTIONPOINT_SIZEWEIGHTQUAD_WIDTHX_HEIGHTITALIC_ANGLESTRIKEOUT_DESCENTSTRIKEOUT_ASCENTUNDERLINE_THICKNESSUNDERLINE_POSITIONSUBSCRIPT_YSUBSCRIPT_XSUPERSCRIPT_YSUPERSCRIPT_XEND_SPACEMAX_SPACENORM_SPACEMIN_SPACEWM_ZOOM_HINTSWM_SIZE_HINTSWM_NORMAL_HINTSWM_NAMEWM_ICON_SIZEWM_ICON_NAMEWM_CLIENT_MACHINEWM_HINTSWM_COMMANDWINDOWVISUALIDSTRINGRGB_RED_MAPRGB_GREEN_MAPRGB_GRAY_MAPRGB_DEFAULT_MAPRGB_BLUE_MAPRGB_BEST_MAPRGB_COLOR_MAPRESOURCE_MANAGERRECTANGLEPOINTPIXMAPINTEGERFONTDRAWABLECUT_BUFFER7CUT_BUFFER6CUT_BUFFER5CUT_BUFFER4CUT_BUFFER3CUT_BUFFER2CUT_BUFFER1CUT_BUFFER0CURSORCOLORMAPCARDINALBITMAPATOMARCSECONDARYPRIMARY?bad atom?AnyTripleDoubleM5Mod5M4Mod4M3Mod3OptionM2Mod2CommandM1Mod1Button5B5Button4B4Button3B3Button2B2Button1B1AltMMetaLockShiftControlDeactivateActivateColormapPropertyCirculateGravityConfigureReparentMapUnmapDestroyVisibilityExposeFocusOutFocusInLeaveEnterMotionButtonReleaseButtonPressButtonKeyReleaseKeyPressKeyNotifyWhileGrabbedNotifyUngrabNotifyGrabNotifyNormalNotifyDetailNoneNotifyPointerRootNotifyPointerNotifyNonlinearVirtualNotifyNonlinearNotifyInferiorNotifyVirtualNotifyAncestorPlaceOnBottomPlaceOnTopVisibilityFullyObscuredVisibilityPartiallyObscuredVisibilityUnobscuredTkBindInit: virtual events can't be supported%s %sTk_DeleteBinding couldn't find object table entryTk_DeleteBinding couldn't find on object listTk_DeleteBinding couldn't find on hash chainTk_DeleteAllBindings couldn't find on hash chainTk_BindEvent: missing commandtkBind (command bound to event)MatchPattern: badly constructed virtual event??0x%x%dtkScreenChanged .%d (changing screen in event binding)wrong # args: should be " option ?arg1?"add add virtual sequence ?sequence ...?"delete delete virtual ?sequence sequence ...?"generate generate window event ?options?"info info ?virtual?"bad option "": should be add, delete, generate, infoCreateVirtualEvent: Tk_CreateBindingTable never calledDeleteVirtualEvent: couldn't find ownerTk_DeleteVirtualEvent couldn't find on hash chain<<>>Double or Triple modifier not allowedonly one event specification allowedvalue for "" missing-whennowheadmarktailbad position "": should be now, head, mark, tail-above-borderwidth-button-count-detail-focus-height-keycode-keysymunknown keysym ""no keycode for keysym "-mode-override-place-root-rootx-rooty-sendevent-serial-state-subwindow-time-width-window-x-ybad option to event: "virtual event "" is badly formedvirtual event not allowed in definition of another virtual eventno events specified in bindingvirtual events may not be composedbad ASCII character 0x%xvirtual event "<<>>" is badly formedmissing ">" in virtual bindingspecified button "" for non-button eventbad event type or keysym "specified keysym "" for non-key eventno event type or button # or keysymextra characters after detail in bindingmissing ">" in binding<Triple-Double-->error reading bitmap file ""bitmap "" not definedbitmap already registered in Tk_GetBitmap" is already definedTk_NameOfBitmap received unknown bitmap argumentTk_SizeOfBitmap received unknown bitmap argumentTk_FreeBitmap called before Tk_GetBitmapTk_FreeBitmap received unknown bitmap argument_tk%derrorgray50gray25gray12hourglassinfoquestheadquestionwarningformat "" does not match current format "" for wrong # args: should be " option ?arg arg ...?"append-displayof-format-typeunknown option "" append ?options? data"clearvalue for "" missing clear ?options?"bad option "%.50s": must be clear or append_clipwrong # args: should be " ?-displayof window?"-displayofbad option "": must be -displayof window ?pattern? ?command?"all window ?tags?" window ?belowThis?"can't lower "" below "" window ?aboveThis?"can't raise "" above " option ?arg?"appname appname ?newName?"": must be appname variable|visibility|window name"variablevisibilitywindow "" was deleted before its visibility changedwindow": must be variable, visibility, or windowidletasks": must be idletasks ?idletasks?"atom atom ?-displayof window? name"%ldatomname atomname ?-displayof window? id"?bad atom?no atom exists with id "cells%dchildrenclasscolormapfull10containing containing ?-displayof window? rootX rootY"depthexistsfpixels fpixels window number"geometry%dx%d+%d+%dheightid0x%xinterps interps ?-displayof window?"ismappedmanagernameparentpathname pathname ?-displayof window? id"window id "" doesn't exist in this applicationpixels pixels window number"pointerxpointerxy%d %dpointeryreqheightreqwidthrgb rgb window colorName"%d %d %drootxrootyscreen.screencellsscreendepthscreenheightscreenmmheightscreenmmwidthscreenvisualpseudocolorgrayscaledirectcolortruecolorstaticcolorstaticgrayunknownscreenwidthservertoplevelviewablevisualvisualidvisualsavailableincludeids visualsavailable window ?includeids?"can't find any visuals for screenpseudocolor %dgrayscale %ddirectcolor %dtruecolor %dstaticcolor %dstaticgray %d 0x%xvrootheightvrootwidthvrootxvrootywidthxy": must be atom, atomname, cells, children, class, colormapfull, containing, depth, exists, fpixels, geometry, height, id, interps, ismapped, manager, name, parent, pathname, pixels, pointerx, pointerxy, pointery, reqheight, reqwidth, rgb, rootx, rooty, screen, screencells, screendepth, screenheight, screenmmheight, screenmmwidth, screenvisual, screenwidth, server, toplevel, viewable, visual, visualid, visualsavailable, vrootheight, vrootwidth, vrootx, vrooty, width, x, or ywrong # arguments: must be " window"bad argument "can't invoke "" command: application has been destroyedunknown color name ""invalid color name "#%04x%04x%04xTk_GCForColor called with bogus colorTk_FreeColor called with bogus colorFindClosestColor couldn't lookup visualFindClosestColor ran out of colorsqI?333333value for "" missing (processing "%.40s" option) (%s "%.50s" in widget "%.50s")database entry fordefault value forambiguous option ""unknown option "couldn't find synonym for option "bad config table: unknown type %d{} {01%d?? unknown type ??cursor already registered in Tk_GetCursorinvalid color name ""cursor already registered in Tk_GetCursorFromDatacursor id 0x%xTk_FreeCursor called before Tk_GetCursorTk_FreeCursor received unknown cursor argumentUnknown display passed to Tk_CreateErrorHandlerinputStyleclientWindowfocusWindowWM_PROTOCOLSTk_QueueWindowEvent found unexpected delayed motion eventDelayedMotionProc found no delayed mouse motion event-displayofwrong # args: should be " -displayof window"-force -force window"-lastfor -lastfor window"bad option "": must be -displayof, -force, or -lastforcheck event serial %d, delta %d reverting to %s instead of %s Focussed on %s Unfocussed from %s, detail %d Focussed implicitly on %s Defocussed implicitly focus marking for %s at %d releasing focus to root after %s died forwarding focus to %s after %s died Set X focus to %s font "" doesn't existXFontStruct already registered in Tk_GetFontStructfont id 0x%xTk_FreeFontStruct called before Tk_GetFontStructTk_FreeFontStruct received unknown font argumentTkMeasureChars received unknown font argumentUnknown type %d in TkMeasureCharsTkDisplayChars received unknown font argumentUnknown type %d in TkDisplayCharscenterbad anchor position "": must be n, ne, e, se, s, sw, w, nw, or centernneesesswwnwunknown anchor positionbevelmiterroundbad join style "": must be bevel, miter, or roundunknown join stylebuttprojectingbad cap style "": must be butt, projecting, or roundunknown cap styleleftrightbad justification "": must be left, right, or centerunknown justification stylebad screen distance ""@$@9ffffffGC already registered in Tk_GetGCTk_FreeGC called before Tk_GetGCTk_FreeGC received unknown gc argumentwrong # args: should be " ?-global? window" or " option ?arg arg ...?"-globalcurrent current ?window?"release release window"set set ?-global? window"bad argument "": must be "status status window"nonegloballocalunknown or ambiguous option "": must be current, release, set, or statusgrab failed: another application has grabgrab failed: window not viewablegrab failed: keyboard or pointer frozengrab failed: invalid timegrab failed for unknown reason (code %d)gridwrong # args: should be " option arg ?arg ...?"bboxwrong number of arguments: must be " bbox master ?column row ?column row??"%d %d %d %dconfigurebad argument "": must be name of windowforgetremoveinfo info window"-in -column %d -row %d -columnspan %d -rowspan %d -ipadx %d -ipady %d -padx %d -pady %d -sticky location location master x y"%d %dpropagate propagate window ?boolean?"01size size window"slaves slaves window ?-option value...?"invalid args: should be " is an invalid value: should NOT be < 0-column-row is an invalid option: should be "-row, -column"columnconfigurerowconfigure master index ?-option value...?": "" is out of range-minsize %d -pad %d -weight %dinvalid arg "" :expecting -minsize, -pad, or -weight.-minsize%d-weight": should be non-negative-pad": expecting -minsize, -pad, or -weight.bad option "": must be bbox, columnconfigure, configure, forget, info, location, propagate, remove, rowconfigure, size, or slaves.?Unlink couldn't find previous windowunexpected parameter, "", in configure list. Should be window name or optionMust specify window before shortcut '-'.invalid window shortcut, "" should be '-', 'x', or '^'extra option or option with no valuecan't manage "": it's a top-level windowunknown or ambiguous option "": must be -column, -columnspan, -in, -ipadx, -ipady, -padx, -pady, -row, -rowspan, or -stickybad column value "": must be a non-negative integer-columnspanbad columnspan value "": must be a positive integerWindow can't be managed in itself-ipadxbad ipadx value "": must be positive screen distance-ipadybad ipady value "-padxbad padx value "-padybad pady value "bad grid value "-rowspanbad rowspan value "-stickybad stickyness value "": must be a string containing n, e, s, and/or wcan't put inside , would cause management loop.can't use '^', cant find mastercan't find slave to extend with "^".can't determine master window{}-fileargv%dargcargv0tcl_interactive10application-specific initialization failed: errorInfostderrtcl_prompt2tcl_prompt1stdout% (script that generates prompt)wrong # args: should be " cmd arg ?arg ...?"add add pattern value ?priority?"clear clear"get get window name class"readfile readfile fileName ?priority?"bad option "": must be add, clear, get, or readfilewidgetDefaultstartupFileuserDefaultinteractivebad priority level "": must be widgetDefault, startupFile, userDefault, interactive, or a number between 0 and 100missing colon on line %dmissing value on line %dmissing newline on line %drcouldn't open "": error seeking to end of file "":error reading file "~/.Xdefaultspackwrong # args: should be " option arg ?arg ...?"afterwindow "" isn't packedappendbefore"pack before" couldn't find predecessorconfigurebad argument "": must be name of windowforgetinforightleftbottomtop info window"-in-anchor -expand 10 -fill nonexyboth -ipadx %d -ipady %d -padx %d -pady %d -side propagate propagate window ?boolean?"slaves slaves window"unpack unpack window"bad option "": must be configure, forget, info, propagate, or slavesbad frame factor in ArrangePackingwrong # args: window "" should be followed by optionscan't pack inside expandfillfillxfillypadxwrong # args: "" option must be followed by screen distancebad pad value "": must be positive screen distancepadyframewrong # args: "frame" option must be followed by anchor point": should be top, bottom, left, right, expand, fill, fillx, filly, padx, pady, or frameUnlink couldn't find previous windowcan't pack "": it's a top-level windowextra option "" (option with no value?)-after-before-expand-fillbad fill style "": must be none, x, y, or both-ipadx-ipady-padx-pady-sidebad side "": must be top, bottom, left, or rightunknown or ambiguous option "": must be -after, -anchor, -before, -expand, -fill, -in, -ipadx, -ipady, -padx, -pady, or -side inside itselfplacewrong # args: should be " option|pathName argsconfigure configure pathName option value ?option value ...?"forget forget pathName"info info pathName"-x %d -relx %.4g -y %d -rely %.4g -width %d -width {} -relwidth %.4g -relwidth {} -height %d -height {} -relheight %.4g -relheight {} -anchor -bordermode outside -bordermode ignore -in slaves slaves pathName"unknown or ambiguous option "": must be configure, forget, info, or slavesUnlinkSlave couldn't find slave to unlinkcan't use placer on top-level window ""; use wm command insteadextra option "" (option with no value?)-anchor-bordermodeignoreinsideoutsidebad border mode "": must be ignore, inside, or outside-height-incan't place relative to relative to itself-relheight-relwidth-relx-rely-width-x-y": must be -anchor, -bordermode, -height, -in, -relheight, -relwidth, -relx, -rely, -width, -x, or -yselection handler returned too many bytes selection doesn't exist or form "" not definedwrong # args: should be "%.50s option ?arg arg ...?"clearvalue for "" missing-displayof-selectionunknown option ""wrong # args: should be " clear ?options?"get-type get ?options?"handle-format handle ?options? window command"own-command own ?options? ?window?"bad option "%.50s": must be clear, get, handle, or ownMULTIPLEINCRTARGETSTIMESTAMPTEXTCOMPOUND_TEXTTK_APPLICATIONTK_WINDOWCLIPBOARD%s %d %d0x%xMULTIPLE TARGETS TIMESTAMP TK_APPLICATION TK_WINDOW %s%x%x The name registry was modified without being locked!send #%d-async-displayof--bad option "": must be -async, -displayof, or --wrong # args: should be " ?options? interpName arg ?arg ...?" errorInfoerrorCodeno application named ""c-n %x %d-r -s _commTk_CreateWindow failed in SendInit!CommInterpRegistryTK_APPLICATIONr-s X server insecure (must use xauth-style authorization); command ignoredreceiver never heard of interpreter "-i -e -c %dno application named "%s"target application died or uses a Tk version before 4.0target application diedmovetowrong # args: should be " moveto fraction"scroll scroll number units|pages"pagesunitsbad argument "": must be units or pagesunknown option "": must be moveto or scrollTkFindStateNum: no choices in lookup tablebad value "": must be , truecolorstaticgreystaticgraystaticcolorpseudocolorgreyscalegrayscaledirectcolorbestdefaultbad X identifier for visual: "unknown or ambiguous visual name "": class must be , or defaultcouldn't find an appropriate visualnewcan't use colormap for : not on same screen: incompatible visualsunknown display passed to Tk_FreeColormapunknown display passed to Tk_PreserveColormaptopleveltextscrollbarscaleradiobuttonmessagemenubuttonmenulistboxlabelframeentrycheckbuttoncanvasbuttonwmwinfoupdatetk_messageBoxtk_getSaveFiletk_getOpenFiletk_chooseColortkwaittkselectionraiseplacepackoptionlowerimagegridgrabfocuseventdestroyclipboardbindtagsbindbellPass all remaining arguments through to script--Visual for main window-visualUse synchronous mode for display server-syncName to use for application-nameInitial geometry for window-geometryDisplay to use-displayColormap for main window-colormapactivedisablednormalno display name and no $DISPLAY environment variablecouldn't connect to display ""bad screen number "%d"window name starts with an upper-case letter: "window name "" already exists in parentTkWindow and Tk_FakeWin are not the same sizetk_strictMotif.tk_patchLevel4.2p2tk_version4.2can't create window: parent has been destroyedbad window path name "sendCan't set sibling or stack mode from Tk_ConfigureWindow.UnlinkWindow couldn't find child in parentthis isn't a Tk applicationqueryInputStyleargv (processing arguments in argv variable)%dargcargv0-class-screenenvDISPLAYgeometrywm geometry . Tcl7.6TkX%dR%d %denvDISPLAYxtermwatchur_angleumbrellaul_angletrektop_teetop_sidetop_right_cornertop_left_cornertop_left_arrowtcrosstargetstarspraycanspidersizingshuttlesb_v_double_arrowsb_up_arrowsb_right_arrowsb_left_arrowsb_h_double_arrowsb_down_arrowsailboatrtl_logorightbuttonright_teeright_sideright_ptrquestion_arrowpluspiratepencilmousemiddlebuttonmanlr_anglell_angleleftbuttonleft_teeleft_sideleft_ptriron_crossiconhearthand2hand1gumbygobblerfleurexchangedraped_boxdraft_smalldraft_largedouble_arrowdotboxdotdiamond_crosscrosshaircross_reversecrosscoffee_mugclockcirclecenter_ptrbox_spiralbottom_teebottom_sidebottom_right_cornerbottom_left_cornerbogosityboatbased_arrow_upbased_arrow_downarrowX_cursorinvalid color name ""cursorcouldn't load cursor fontcleanup reading bitmap file "bad hot spot in bitmap file "source and mask bitmaps have different sizesbad cursor spec "auto_loadcannot execute command "auto_load"cannot auto-load command ""tkColorDialogtkMotifFDialogtkFDialogtkMessageBoxtk_libraryselection handler returned too many bytes selection doesn't exist or form "" not definedselection property too largebad format for string selection: wanted "8", got "%d"bad format for selection: wanted "32", got "%d"selection owner didn't respond0x%xwmcouldn't unlink window in TkWmDeadWindowwrong # args: should be " option window ?arg ...?"tracingwrong # arguments: must be " tracing ?boolean?"onoffwindow "" isn't a top-level windowaspect aspect window ?minNumer minDenom maxNumer maxDenom?"%d %d %d %daspect number can't be <= 0client client window ?name?"WM_CLIENT_MACHINEcolormapwindows colormapwindows window ?windowList?"0x%lxcommand command window ?value?"WM_COMMANDdeiconify deiconify window"can't deiconify : it is an icon for focusmodel focusmodel window ?active|passive?"passiveactivebad argument "": must be active or passiveframe frame window"0x%xgeometry geometry window ?newGeometry?"%dx%d%c%d%c%dgrid grid window ?baseWidth baseHeight widthInc heightInc?"baseWidth can't be < 0baseHeight can't be < 0widthInc can't be < 0heightInc can't be < 0group group window ?pathName?"iconbitmap iconbitmap window ?bitmap?"iconify iconify window"can't iconify "": override-redirect flag is set": it is a transientcan't iconify couldn't send iconify message to window managericonmask iconmask window ?bitmap?"iconname iconname window ?newName?"iconposition iconposition window ?x y?"%d %diconwindow iconwindow window ?pathName?"can't use as icon window: not at top level is already an icon for couldn't send withdraw message to window managermaxsize maxsize window ?width height?"minsize minsize window ?width height?"overrideredirect overrideredirect window ?boolean?"10positionfrom positionfrom window ?user/program?"userprogram": must be program or userprotocol protocol window ?name? ?command?"resizable resizable window ?width height?"sizefrom sizefrom window ?user|program?"state state window"iconwithdrawnnormaliconictitle title window ?newTitle?"transient transient window ?master?"withdraw withdraw window"can't withdraw unknown or ambiguous option "": must be aspect, client, command, deiconify, focusmodel, frame, geometry, grid, group, iconbitmap, iconify, iconmask, iconname, iconposition, iconwindow, maxsize, minsize, overrideredirect, positionfrom, protocol, resizable, sizefrom, state, title, transient, or withdrawTopLevelEventProc: user changed %s size to %dx%d ConfigureEvent: %s x = %d y = %d, width = %d, height = %d send_event = %d, serial = %ld __WM_ROOT__SWM_ROOT%s format %d numItems %ld ReparentEvent got bogus VROOT property:ReparentEvent: %s reparented to 0x%x, vRoot = 0x%x winPtr coords %d,%d, wmPtr coords %d,%d, offsets %d %d TopLevelEventProc: %s deleted TopLevelEventProc: %s mapped TopLevelEventProc: %s unmapped UpdateGeometryInfo moving to %d %d, resizing to %d x %d, UpdateGeometryInfo resizing to %d x %d WaitForConfigureNotify giving up on %s WaitForConfigureNotify finished with %s, serial %ld WaitForMapNotify giving up on %s WaitForMapNotify finished with %s bad geometry specifier ""Tk_CoordsToWindow get False return from XTranslateCoordinatesUpdateVRootGeometry: x = %d, y = %d, width = %d, height = %d, status = %d Tk_MoveToplevelWindow called with non-toplevel windowWM_DELETE_WINDOWWM_PROTOCOLS (command for "" window manager protocol)RadiobuttonCheckbuttonButtonLabelWrapLengthwrapLength-wraplengthWidthwidth-widthselectedButtonvariable-variablevalue-value-1Underlineunderline-underlineVariabletextVariable-textvariableTexttext-textTakeFocustakeFocus-takefocusnormalStatestate-stateSelectImageselectImage-selectimage#b03060selectColor-selectcolorflatraisedReliefrelief-relief1mpadY-pady3mPadpadX-padxonValue-onvalueValueoffValue-offvalueJustifyjustify-justify1IndicatorOnindicatorOn-indicatoronImageimage-imageHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackground0Heightheight-height-foreground-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fg#a3a3a3DisabledForegrounddisabledForeground-disabledforegroundCursorcursor-cursorCommandcommand-command2BorderWidth-borderwidthBitmapbitmap-bitmap-bgborderWidth-bd#d9d9d9background-backgroundcenterAnchoranchor-anchorWhiteBackgroundactiveForeground-activeforegroundBlack#ecececForegroundactiveBackground-activebackgroundcget, configure, deselect, flash, invoke, or selectcget, configure, deselect, flash, invoke, select, or togglecget, configure, flash, or invokecget or configurewrong # args: should be " pathName ?options?"wrong # args: should be "%.50s option ?arg arg ...?"cget cget option"configuredeselectwrong # args: should be "%.50s deselect"flashwrong # args: should be "%.50s flash"invokewrong # args: should be "%.50s invoke"selectwrong # args: should be "%.50s select"togglewrong # args: should be "%.50s toggle"bad option "%.50s": must be %sbad state value "": must be normal, active, or disabledgray50 (processing -width option) (processing -height option)ScrollCommandxScrollCommand-xscrollcommand20Widthwidth-widthVariabletextVariable-textvariableTakeFocustakeFocus-takefocusnormalStatestate-stateShowshow-showselectForeground-selectforegroundselectBorderWidth-selectborderwidth#c3c3c3selectBackground-selectbackgroundsunkenReliefrelief-reliefleftJustifyjustify-justifyInsertWidthinsertWidth-insertwidth600OnTimeinsertOnTime-insertontime300OffTimeinsertOffTime-insertofftime0insertBorderWidth-insertborderwidthinsertBackground-insertbackgroundHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackgroundBlackForeground-foreground-Adobe-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fg1ExportSelectionexportSelection-exportselectionxtermCursorcursor-cursor2BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-backgroundwrong # args: should be " pathName ?options?"Entry option ?arg arg ...?"bbox bbox index"%d %d %d %dcget cget option"configuredelete delete firstIndex ?lastIndex?"get get"icursor icursor pos"index index string"%dinsert insert index text"scan scan mark|dragto x"markdragtobad scan option "": must be mark or dragtoselection select option ?index?"clear selection clear"present selection present"adjust selection adjust index"from selection from index"range selection range start end"to selection to index"bad selection option "": must be adjust, clear, from, present, range, or toxview%g %gbad option "": must be bbox, cget, configure, delete, get, icursor, index, insert, scan, selection, or xview?bad state value "": must be normal or disabledanchorbad entry index ""endselection isn't in entrysel.firstsel.last %g %g (horizontal scrolling command executed by entry)Widthwidth-widthVisualvisual-visualTakeFocustakeFocus-takefocusScreenscreen-screenflatReliefrelief-reliefHighlightThicknesshighlightThickness-highlightthicknessBlackHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackgroundHeightheight-heightCursorcursor-cursorColormapcolormap-colormapToplevelFrameClassclass-class0BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-backgroundwrong # args: should be " pathName ?options?"TkCreateFrame didn't get application name option ?arg arg ...?"cget cget option"configurecan't modify option after widget is createdbad option "": must be cget or configureyScrollCommand-yscrollcommandScrollCommandxScrollCommand-xscrollcommand20Widthwidth-widthTakeFocustakeFocus-takefocus0SetGridsetGrid-setgridbrowseSelectModeselectMode-selectmodeselectForeground-selectforegroundselectBorderWidth-selectborderwidth#c3c3c3selectBackground-selectbackgroundsunkenReliefrelief-reliefHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackground10Heightheight-heightBlackForeground-foreground-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fg1ExportSelectionexportSelection-exportselectionCursorcursor-cursor2BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-backgroundwrong # args: should be " pathName ?options?"Listbox option ?arg arg ...?"activate activate index"bbox bbox index"%d %d %d %dcget cget option"configurecurselection curselection"%dListboxWidgetCmd: selection count incorrectdelete delete firstIndex ?lastIndex?"get get first ?last?"index index index"insert insert index ?element element ...?"nearest nearest y"scan scan mark|dragto x y"markdragtobad scan option "": must be mark or dragtosee see index"selection selection option index ?index?"anchor selection anchor index"clearincludes selection includes index"setbad selection option "": must be anchor, clear, includes, or setsize size"xview0 1%g %gyviewbad option "": must be activate, bbox, cget, configure, curselection, delete, get, index, insert, nearest, scan, see, selection, size, xview, or yview?activeendbad listbox index "": must be active, anchor, end, @x,y, or a number %g %g (vertical scrolling command executed by listbox) (horizontal scrolling command executed by listbox)-1-underlineselectedButton-variable-valuenormal-state-selectimage-selectcolor-onvalue0-offvalue-menu-label1-indicatoron-image-foreground-font-command-bitmap-background-accelerator-activeforeground-activebackgroundTransienttransient-transientTearOffCommandtearOffCommand-tearoffcommandTearOfftearOff-tearoffTakeFocustakeFocus-takefocus#b03060selectColorraisedReliefrelief-reliefCommandpostCommand-postcommand-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfontforeground-fg#a3a3a3DisabledForegrounddisabledForeground-disabledforegroundarrowCursorcursor-cursor-borderwidth-bgborderWidth-bd#d9d9d9backgroundWhiteBackgroundactiveForeground2BorderWidthactiveBorderWidth-activeborderwidthBlack#ecececForegroundactiveBackgroundwrong # args: should be " pathName ?options?"Menu option ?arg arg ...?"activate activate index"add add type ?options?"cget cget option"configuredelete delete first ?last?"entrycget entrycget index option"entryconfigure entryconfigure index ?option value ...?"index index string"none%dinsert insert index type ?options?"invoke invoke index"post post x y"postcascade postcascade index"type type index"commandseparatorcheckbuttonradiobuttoncascadetearoffunpost unpost"yposition yposition index"bad option "": must be activate, add, cget, configure, delete, entrycget, entryconfigure, index, insert, invoke, post, postcascade, type, unpost, or ypositiongray50bad state value "": must be normal, active, or disabledactivelastendbad menu entry index ""bad index "bad menu entry type "": must be cascade, checkbutton, command, radiobutton, or separator unpostcascaded sub-menu must be a child of %d %d post WrapLengthwrapLength-wraplengthWidthwidth-width-1Underlineunderline-underlineVariabletextVariable-textvariableTexttext-textTakeFocustakeFocus-takefocusnormalStatestate-stateflatReliefrelief-relief3ppadY-pady4pPadpadX-padxMenumenu-menuJustifyjustify-justifyIndicatorOnindicatorOn-indicatoronImageimage-imageHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackground0Heightheight-height-foreground-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fg#a3a3a3DisabledForegrounddisabledForeground-disabledforegroundCursorcursor-cursor2BorderWidth-borderwidthBitmapbitmap-bitmap-bgborderWidth-bd#d9d9d9background-backgroundcenterAnchoranchor-anchorWhiteBackgroundactiveForeground-activeforegroundBlack#ecececForegroundactiveBackground-activebackgroundwrong # args: should be " pathName ?options?"Menubutton option ?arg arg ...?"cget cget option"configurebad option "": must be cget or configurebad state value "": must be normal, active, or disabledgray50 (processing -width option) (processing -height option)Widthwidth-widthVariabletextVariable-textvariableTexttext-textTakeFocustakeFocus-takefocusflatReliefrelief-reliefpadY-pady-1PadpadX-padxleftJustifyjustify-justify0HighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackgroundBlackForeground-foreground-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fgCursorcursor-cursor2BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-background150Aspectaspect-aspectcenterAnchoranchor-anchorwrong # args: should be " pathName ?options?"Message option ?arg arg ...?"cget cget option"configurebad option "": must be cget or configure15Widthwidth-widthVariablevariable-variable#c3c3c3troughColor-troughcolorToto-toTickIntervaltickInterval-tickintervalTakeFocustakeFocus-takefocusnormalStatestate-stateraisedSliderReliefsliderRelief-sliderrelief30SliderLengthsliderLength-sliderlengthShowValueshowValue-showvalue1Resolutionresolution-resolutionRepeatIntervalrepeatInterval-repeatinterval300RepeatDelayrepeatDelay-repeatdelayflatReliefrelief-reliefverticalOrientorient-orient100Lengthlength-lengthLabellabel-labelHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackgroundFromfrom-from-foreground-Adobe-Helvetica-Bold-R-Normal--*-120-*-*-*-*-*-*Fontfont-fontforeground-fgDigitsdigits-digitsCursorcursor-cursorCommandcommand-command2BorderWidth-borderwidth-bgborderWidth-bd0BigIncrementbigIncrement-bigincrementWhite#d9d9d9Backgroundbackground-backgroundBlack#ecececForegroundactiveBackground-activebackgroundwrong # args: should be " pathName ?options?"Scale option ?arg arg ...?"cget cget option"configurecoords coords ?value?"%d %dget get ?x y?"identify identify x y"trough1slidertrough2set set value"bad option "": must be cget, configure, coords, get, identify, or sethorizontalbad orientation "": must be vertical or horizontalbad state value "": must be normal, active, or disabled%%.%df%%.%de (command executed by scale)can't assign non-numeric value to scale variable15Widthwidth-width#c3c3c3troughColor-troughcolorTakeFocustakeFocus-takefocus100RepeatIntervalrepeatInterval-repeatinterval300RepeatDelayrepeatDelay-repeatdelaysunkenrelief-reliefverticalOrientorient-orient0Jumpjump-jumpHighlightThicknesshighlightThickness-highlightthicknessHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackground-1elementBorderWidth-elementborderwidthCursorcursor-cursorCommandcommand-command2BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-backgroundraisedReliefactiveRelief-activereliefBlack#ecececForegroundactiveBackground-activebackgroundwrong # args: should be " pathName ?options?"Scrollbar option ?arg arg ...?"activatearrow1sliderarrow2 activate element"cget cget option"configuredelta delta xDelta yDelta"%gfraction fraction x y"get get" %d %d %d %didentify identify x y"trough1trough2set set firstFraction lastFraction" or " set totalUnits windowUnits firstUnit lastUnit"bad option "": must be activate, cget, configure, delta, fraction, get, identify, or sethorizontalbad orientation "": must be vertical or horizontalyScrollIncrement-yscrollincrementyScrollCommand-yscrollcommandScrollIncrementxScrollIncrement-xscrollincrementScrollCommandxScrollCommand-xscrollcommand10cWidthwidth-widthTakeFocustakeFocus-takefocusselectForeground-selectforegroundselectBorderWidth-selectborderwidth#c3c3c3selectBackground-selectbackgroundScrollRegionscrollRegion-scrollregionflatReliefrelief-reliefInsertWidthinsertWidth-insertwidth600OnTimeinsertOnTime-insertontime300OffTimeinsertOffTime-insertofftimeinsertBorderWidth-insertborderwidthForegroundinsertBackground-insertbackground2HighlightThicknesshighlightThickness-highlightthicknessBlackHighlightColorhighlightColor-highlightcolorHighlightBackgroundhighlightBackground-highlightbackground7cHeightheight-heightCursorcursor-cursorConfineconfine-confine1CloseEnoughcloseEnough-closeenough0BorderWidth-borderwidth-bgborderWidth-bdWhite#d9d9d9Backgroundbackground-backgroundwrong # args: should be " pathName ?options?"Canvas option ?arg arg ...?"addtag addtags tag searchCommand ?arg arg ...?" addtag tagbbox bbox tagOrId ?tagOrId ...?"%d %d %d %dbind bind tagOrId ?sequence? ?command?"item "" doesn't existrequested illegal events; only key, button, motion, and enter/leave events may be usedcanvasx canvasx screenx ?gridspacing?"canvasy canvasy screeny ?gridspacing?"cget cget option"configurecoords coords tagOrId ?x y x y ...?"create create type ?arg arg ...?"unknown or ambiguous item type ""%ddchars dchars tagOrId first ?last?"deletedtag dtag tagOrId ?tagToDelete?"find find searchCommand ?arg arg ...?" findfocus focus ?tagOrId?"gettags gettags tagOrId"icursor icursor tagOrId index"index index tagOrId string"can't find an indexable item "insert insert tagOrId beforeThis string"itemcget itemcget tagOrId option"itemconfigure itemconfigure tagOrId ?option value ...?"lower lower tagOrId ?belowThis?"tag "" doesn't match any itemsmove move tagOrId xAmount yAmount"postscriptraise raise tagOrId ?aboveThis?"tagOrId "scale scale tagOrId xOrigin yOrigin xScale yScale"scale factor cannot be zeroscan scan mark|dragto x y"markdragtobad scan option "": must be mark or dragtoselect select option ?tagOrId? ?arg?"can't find an indexable and selectable item "adjust select adjust tagOrId index"clear select clear"from select from tagOrId index"item select item"to select to tagOrId index"bad select option "": must be adjust, clear, from, item, or totype type tag"xviewyviewbad option "": must be addtag, bbox, bind, canvasx, canvasy, cget, configure, coords, create, dchars, delete, dtag, find, focus, gettags, icursor, index, insert, itemcget, itemconfigure, lower, move, postscript, raise, scale, scan, select, type, xview, or yviewbad scrollRegion "allcurrentabove above tagOrId allbelow below tagOrIdclosest closest x y ?halo? ?start?can't have negative halo value "enclosed enclosed x1 y1 x2 y2overlapping overlapping x1 y1 x2 y2withtag withtag tagOrIdbad search command "": must be above, all, below, closest, enclosed, overlapping, or withtag?%g %g 1-width-tagspieslice-style-stipple0-start-outlinestippleblack-outline-fill90-extentarcwrong # args: should be " create x1 y1 x2 y2 ?options?"chord wrong # coordinates: expected 0 or 4, got %dbad -style option "": must be arc, chord, or pieslice@v@@P@@ !TD-??matrix currentmatrix %.15g %.15g translate %.15g %.15g scale 0 0 1 %.15g %.15g arc closepath setmatrix 0 0 moveto 0 0 1 %.15g %.15g arc closepath setmatrix clip grestore gsave fill 0 0 1 %.15g %.15g arc setmatrix %d setlinewidth 0 setlinecap StrokeClip stroke @-tagsblack-foreground-bitmap-backgroundcenter-anchorbitmapwrong # args: should be " create x y ?options?" wrong # coordinates: expected 0 or 2, got %d%.15g %.15g moveto %d 0 rlineto 0 %d rlineto %d %s 0 rlineto closepathfill can't generate Postscript for bitmaps more than 60000 pixels wide%.15g %.15g translate 0 -%.15g translate %d %d true matrix { } imagemask @-tags-imagecenter-anchorimagewrong # args: should be " create x y ?options?" wrong # coordinates: expected 0 or 2, got %d1-width-tags-stipple12-splinesteps0-smoothround-joinstyleblack-fillbutt-capstyle8 10 3-arrowshapenone-arrowlinewrong # args: should be " create x1 y1 x2 y2 ?x3 y3 ...? ?options?"firstlastbothAtoo few coordinates for line: must have at least 4odd number of coordinates specified for linebad arrow spec "": must be none, first, last, or bothGhy @ParseArrowShape received bogus offsetbad arrow shape "": must be list with three numbers%.5g %.5g %.5g?PbM%d setlinewidth 0 setlinecap 1 setlinecap 2 setlinecap 0 setlinejoin 1 setlinejoin 2 setlinejoin StrokeClip stroke grestore gsave clip fill 1-width-tags-stipple12-splinesteps0-smooth-outlineblack-fillpolygonwrong # args: should be " create x1 y1 x2 y2 x3 y3 ?x4 y4 ...? ?options?"too few coordinates for polygon: must have at least 6odd number of coordinates specified for polygon@@eoclip grestore gsave eofill %d setlinewidth 1 setlinecap 1 setlinejoin stroke -y-x-width-rotate-pagey-pagex-pagewidth-pageheight-pageanchor-height-fontmap-file-colormode-colormapmonochromegraycolorbad color mode "": must be monochrome, gray, or colorw%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Tk Canvas Widget %%For: Unknown %%Title: Window %%CreationDate: %d %d %d %d%%BoundingBox: %%Pages: 1 %%DocumentData: Clean7Bit %%Orientation: Landscape Portrait %%DocumentNeededResources: font %%+ font %%EndComments /CL %d def %%BeginSetup %%IncludeResource: font %%EndSetup %%Page: 1 1 save %.1f %.1f translate 90 rotate %.4g %.4g scale %d %d translate %d %.15g moveto %d %.15g lineto %d %.15g lineto %d %.15g lineto closepath clip newpath gsave (generating Postscript for item %d)grestore restore showpage %%Trailer end %%EOF @s %.3f %.3f %.3f setrgbcolor AdjustColor @obad font map entry for "": ""%.15g/ findfont scalefont SymbolISOEncode setfont mediumboldBoldTimesRomanItalicOblique-%s%scouldn't translate font name "" to Postscript<%02x>%d %d StippleFill %.15g %.15g moveto %.15g %.15g lineto bad distance "@=, >, or !=configuredebug debug boolean"delete delete index1 ?index2?"dlineinfo dlineinfo index"%d %d %d %d %dget get index1 ?index2?"index index index" insert index chars ?tagList chars tagList ...?"dumpmarkscansearchseetagwindowxviewyviewbad option "": must be bbox, cget, compare, configure, debug, delete, dlineinfo, get, index, insert, mark, scan, search, see, tag, window, xview, or yviewbad state value "": must be normal or disabledbad wrap mode "": must be char, none, or word (while processing -tabs option)TextFetchSelection couldn't find end of rangebad switch "": must be -forward, -backward, -exact, -regexp, -nocase, -count, or ---backwards-countno value given for "-count" option-exact-forwards-nocase-regexp-- search ?switches? pattern index ?stopIndex?%dleftrightcenternumericbad tab alignment "": must be left, right, center, or numeric-all-text-tag-mark-window-commandUsage: dump ?-all -text -mark -tag -window? ?-command script? index ?index2?endtexttagontagoff%d.%d charactertoggleOntoggleOffSplitSeg reached end of line!TkBTreeFindLine ran out of nodesTkBTreeFindLine ran out of linesTkBTreePreviousLine ran out of linesTkBTreeLineIndex couldn't find lineTkBTreeLineIndex couldn't find nodeChangeNodeToggleCount: bad toggle count (%d) max (%d)TkBTreeNextTag found incorrect tag summary info.TkBTreePrevTag found incorrect tag summary info.TkBTreeCheck found "%s" with toggles (%d) but no rootTkBTreeCheck found root for "%s" with no togglesTkBTreeCheck found odd toggle count for "%s" (%d)TkBTreeCheck found root node with summary infoTkBTreeCheck toggleCount (%d) wrong for "%s" should be (%d)TkBTreeCheck: less than 2 lines in treeTkBTreeCheck: last line has bogus segment typeTkBTreeCheck: last line has too many segmentsTkBTreeCheck: last line has wrong # characters: %dTkBTreeCheck: last line had bad value: %sCheckNodeConsistency: bad child count (%d)CheckNodeConsistency: line doesn't point to parentCheckNodeConsistency: line has no segmentsCheckNodeConsistency: wrong segment order for gravityCheckNodeConsistency: line ended with wrong typeCheckNodeConsistency: node doesn't point to parentCheckNodeConsistency: level mismatch (%d %d)CheckNodeConsistency: node tag "%s" not %spresent in parent summariesCheckNodeConsistency: mismatch in numChildren (%d %d)CheckNodeConsistency: mismatch in numLines (%d %d)CheckNodeConsistency: found unpruned root for "%s"CheckNodeConsistency: mismatch in toggleCount (%d %d)CheckNodeConsistency: duplicated node tag: %sCharCheckProc: segment has size <= 0CharCheckProc: segment has wrong sizeCharCheckProc: line doesn't end with newlineCharCheckProc: adjacent character segments weren't mergedToggleCheckProc: segment had non-zero sizeToggleCheckProc: toggle counts not updated in nodesToggleCheckProc: tag not present in nodeToggleCheckProc: tag present in root node summaryLayoutDLine couldn't place any characters on a linetk_textRelayoutAdded too many new lines in UpdateDisplayInfotk_textRedrawborderseofwrong # args: should be " see index"?-pickplace yview -pickplace lineNum|index"? scan mark|dragto x y"dragtomarkbad scan option "": must be mark or dragto%g %g %g %g (horizontal scrolling command executed by text)? (vertical scrolling command executed by text)FindDLine reached end of text firstlasttext doesn't contain any characters tagged with ""endbad text index "%d.%dcharslineslineendlinestartwordendwordstartmarkwrong # args: should be " mark option ?arg arg ...?"gravity mark gravity markName ?gravity?there is no mark named ""rightleftbad mark gravity "": must be left or rightnames mark names"next mark next index"previous mark previous index"set mark set markName index"unsetbad mark option "": must be gravity, names, next, previous, set, or unsetMarkCheckProc: markPtr->body.mark.linePtr bogusMarkCheckProc couldn't find hash table entry for mark-wrap-underline-tabs-spacing3-spacing2-spacing1-rmargin-relief-overstrike-offset-lmargin2-lmargin1-justify-foreground-font-fgstipple0-borderwidth-bgstipple-backgroundwrong # args: should be " tag option ?arg arg ...?"add tag tagName index1 ?index2 index1 index2 ...?"bind tag bind tagName ?sequence? ?command?"requested illegal events; only key, button, motion, and enter/leave events may be usedcget tag cget tagName option"configure tag configure tagName ?option? ?value? ?option value ...?"bad wrap mode "": must be char, none, or worddelete tag delete tagName tagName ..."lower tag lower tagName ?belowThis?"names tag names ?index?"nextrange tag nextrange tagName index1 ?index2?"prevrange tag prevrange tagName index1 ?index2?"raise tag raise tagName ?aboveThis?"ranges tag ranges tagName"removebad tag option "": must be add, bind, cget, configure, delete, lower, names, nextrange, raise, ranges, or removetag "" isn't defined in text widgetcurrenttextwindow-window-stretch-pady0-padx-createcenter-alignwrong # args: should be " window option ?arg arg ...?"cget window cget index option"no embedded window at index ""configure window configure index ?option value ...?"create window create index ?option value ...?"names window names"bad window option "": must be cget, configure, create, or namescan't embed in baselinebottomtopbad alignment "": must be baseline, bottom, center, or top??Non-zero offset in EmbWinLayoutProc relative to EmbWinCheckProc: embedded window is last segment in lineEmbWinCheckProc: embedded window has size %d A( 'H  8|Eh 00<0H0T0`0l0x00000000000000 0,080D0P0\0h0t0000000000000~0{0x(0u40r@0oL0lX0id0fp0c|0`0]0Z0W0T0Q0N0K0H0E0B0? 0<09$06003<00H0-T0*`0'l0$x0!0000000 0 00000 0,080D0P0\0h0t000000000000000(040@0L0X0d0p0|000000000000 0|0y$0v00s<0pH0mT0j`0gl0dx0a0^0[0X0U0R0O0L0I0F0C0@0=0: 07,04801D0.P0+\0(h0%t0"0000000 0 000000(040@0L0X0d0p0|00000000000 0 0 0 $0 00 <0 H0 T0 `0 l0 x0 0 0 0 0 0 0 0 0 0 0 0 0} 0z 0w ,0t 80q D0n P0k \0h h0e t0b 0_ 0\ 0Y 0V 0S 0P 0M 0J 0G 0D 0A 0> 0; 08 (05 402 @0/ L0, X0) d0& p0# |0  0 0 0 0 0 0 0  0 0 0 0 0 0 $0 00 <0 H0 T0 `0 l0 x0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ,0 80 D0 P0 \0 h0 t0 0 0 0 0 0 0 0 0 0 0 00~0{0x(0u40r@0oL0lX0id0fp0c|0`0]0Z0W0T0Q0N0K0H0E0B0? 0<09$06003<00H0-T0*`0'l0$x0!0000000 0 00000 0,080D0P0\0h0t000000000000000(040@0L0X0d0p0|000000000000 0|0y$0v00s<0pH0mT0j`0gl0dx0a0^0[0X0U0R0O0L0I0F0C0@0=0: 07,04801D0.P0+\0(h0%t0"0000000 0 000000(040@0L0X0d0p0|000000000000 00$000<0H0T0`0l0x0000000000000}0z 0w,0t80qD0nP0k\0hh0et0b0_0\0Y0V0S0P0M0J0G0D0A0>0;08(05402@0/L0,X0)d0&p0#|0 0000000 0000 00$000<0H0T0`0l0x00000000000000 0,080D0P0\0h0t0000000000000~0{0x(0u40r@0oL0lX0id0fp0c|0`0]0Z0W?  @@ D @ $ %  @ @X*P+U@EAEt X/P """"""""""""""""UUUUUUUUUUUUUUUUUU*f*f F  f*f*f*<**?.,,,,׫U*VU_u]u] U_WWPU  X*X*VU+P ` ` XU*@@@@ +++     ?Q?(\)? @@@ 0123456789abcdefxtnvr\abtnvfr@9ffffff?֓>>?֓>>??  "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~/opt/SMLItk/lib/tk4.2proc tkInit {} { global tk_library tk_version tk_patchLevel env rename tkInit {} set dirs {} if [info exists env(TK_LIBRARY)] { lappend dirs $env(TK_LIBRARY) } lappend dirs $tk_library lappend dirs [file dirname [info library]]/lib/tk$tk_version set parentDir [file dirname [file dirname [info nameofexecutable]]] lappend dirs $parentDir/lib/tk$tk_version if [string match {*[ab]*} $tk_patchLevel] { set lib tk$tk_patchLevel } else { set lib tk$tk_version } lappend dirs [file dirname $parentDir]/$lib/library lappend dirs [file dirname [file dirname [info library]]]/$lib/library lappend dirs $parentDir/library foreach i $dirs { set tk_library $i if ![catch {uplevel #0 source $i/tk.tcl}] { return } } set msg "Can't find a usable tk.tcl in the following directories: " append msg " $dirs " append msg "This probably means that Tk wasn't installed properly. " error $msg } tkInit @ @dd < <$D hh\`PTLL(   H H  0 8   $ ,0dh` HPPXTL p ( 8 8<<@@x? ( (,  HD8<4 0L@   8<X,0( $ D DHLL|lT??? LP( D?lTH< pxtd  0=tpp $ $(HH   l<<04t ,PPp`dh 8 8\\ 4 4$< ``TXHLD(  @0 |LT   d8<,0( `DH $hP    `h P0t lpH |@8(????@ 8 8 p 4 40 \PTL, H$(<<?  P `<(,$ t||x < T TXX\\d8$@(D??????`xtX|p@V@v@V@f@p??@@f@ !TD-@v?f@?FR9@f@v@V@p?@f@f@Lc@vHTLP`?HLX?\`LDPtxH@|A @@@@?LDX\P@`LPXH @40D@x?@Zjլ@$@R@ZjլPd` Xh8T??@?@TPLH`?`\dXpp????=|׽?@@?`A7K?-?O;dZ?XbM?`A7K?-?O;dZ?XbM>D @ !TD-?!TD-!TD-@!TD- !TD-?@ ($0,480( ?     @@ozH   4 PXX`\T ( (,,00?? $ 0,(4<DLT\dlt|  HA(hDŽE_   8 ,   n  ,o6<(B0H8N@THZP`xflrq}_ , mH , 4  -  (@H`u(#*1 8P?pFxMT[bi{t ,( h} -8 Hx 4  .P  1H " 2 , 2  6 0 @hXn8}DX !0(0/H68=8DKPR`Y` 1( kpz  4  /, 40L .L  (`$@,4<D0LT\Xd lt|8`H @hh(H(p 8$X,40<xDLHT\`dl8t|Xx`p `&0>I 4 S 4 ] 3 gmsyHH T4  3   0@ 3xQ ' 2@3 2 2? A 3 N 3 Z 30B i 4 u 2   2   2x  L0 HX  (/6 =(D8KHR`Y`w(0@Xޔh`4  X   ( %h , 3( : A Hh O V  ]8 dx k r8 y  p  ( H   H   x  8 X   X  @   `  ! ( /h 6 =H D K Rp Y ` g nx u |`          p  (          0    $8 + 2 9 @ GH N U \ c0 o  w   H    H   p    X (     h 0      8    @  '  /H 7 ? ( Gx O W X _ g o h w   P 3  4 8  84        (  8  `         #\ -( < Xt O 3 V 4 ] 3 i t }`        (  P  h           | ,       ($ 0+ 82 @9D 4 N 4 X l a Xg m s y    4 "p 4 P#H$d 4  1xP %+1 4 < 4 K&Z 4 p  | 4  4  0  <,=`8Hh 1(&H-X4x;BIPW ^ 4 i8D r< d 84 A\ $  4 8@P8` l4 >A\h! 4 - 4 6 4 ? 4 KSY_ekq w(}08@MH 5 P 5 (h@p 5 Hx 5 P 5 #h*18?FMT[ 4 g 4 pw 4 0_ \Zd 4  5( epeH( <4 _|d# 5, /8y4xFwSn|eXkxqw} 50 z$ypfT 00 P8HP%X,`3:AzTzpjs || 0@|p p4 L")0h7>ELPSZahov}0p  @8x 8P(H  0@h%@,(3:AhHO PVX]dPk0r y@p xppX0Px p8` !(@/p6=DKRY``gxnu|@@T`P \ 5D H ` 5H  %. 5T ; A G M S Y _ e k q!w   X! !(!8!@!P!`!h!p   |  P `x | 5d # 5h * 5\ 1LC!I!O!U![!a"g"m"s"(y"8ԔT 5l T 5` #p"X#"h#"#"#" #"#"%#,"3$:# A#PH T  O[f(o 5X | t Lh t@ 5  $( $H$`$h$x!$'$-$3$9TH$OH[fq)x)(H' &x%%H$*)((p'0&%%P$*)0('`&% %`%)8 (''p.&5%<%hC%J)@Q(X'_&f&m%pt%({)H('&&%x% )P(''&%%)`(''&(%%)('#'*&81%8%0?)F(M(T'[&`b%i%@p 4  5 $ 5 dp*(*H*`*p***** 4 ( 4 3 5  >(Q-X-0_,Xf+m*t-{-H,+*--p,++--x,++.-,++ .0--++0#.h*-1-8+?+@F.xM-T-[,b+Pi 5 p-w- ~, +` 5 --(,P+p4` 5   . !. '. -. 3/  9/( ?/8 E/H K/X Q/h W) bp q, 0 0  / 0 00 / 1 0P / 1 0 / 1 0 / 1P 0 / 0!/! 0!/!0! /!'0!.0!5*!F!OL!`J!p 5 !zIt!B !00!M8!1X!1`!1h!1!1!1!1!1!1!1!K"1" -"-"$3p"+2"21"93"@2"G2"N3"U2"\20"c3"j2"q2X"x3"2"2`"3"2"2p"3"3"2"4"3"2"3 "2"3("2"/x("J# 5 #2#A<#" 5 #+3#85dP#E#N4(#T40#Z4P#`4X#f4p#l4x#r4#x4#~4#4#M#4#4#5#5@#5H#5X#5h##5#Q#6#6#6#6 $7($ 6($6P$6h$"6p$)6$06$76$>6$E 5x $Q$\ 4 $e 6H $n]$x 8 $v$ $ $b$ 8 $ 6d $[$z`$[$y$ 6< %t% ( %= %<%%;%,:%39H%::%A=(%H<%O;%V:%]<%d;%k:%r<%y;%;%<%;%:(%<%<(%;P%:0%<% 8 &C 0 &L`&X 6T &d  &s&|=0&=8&=@&=H&&& 8p &&A&A&A&A&B &Ah&A&A''`@'B8'#BH')Bp'/B'5B';B'AB'GB'M`'\'i'x''l''' ;  ' ; '' ;( (B( ( ; (#(2(<(J([ ? (mB(sC(yC@(CP(Cp(C(C(C(D(@(P<((0,( ? ((\()Dl)4)$x)2T)FЌ4)T)l ?  )v ? )D)D@)D`)D)D)D)D)D)D)X)\) ? )h)l)*K*K*$I*+I*2H(*9GH*@F*GE*ND*UK*\K*cJ*jI8*qH8*xGX*F*E*E*L*K*J0*IH*HX*G`*F*E*E*L *K@*Jh*Ih*H`*G*F+E+ E0+L0+KH+ Jp+'Ip+.Hx+5G+<F+CF+JEH+QL8+XKP+_J+fI+mH+tG+{F+F(+EX+LH+Kp+J+I+H+G+G+F8+Ex+LP+K+J+I+H+G+G,FP,E,LX,K,J,#I,*H,1H,8G,?Fh,FE,ML`,TK,[J,bI,iI,pH,wG(,~F,E,@ ,,,װ,Q,Oh,M,L,Q8,O,N-L- Q@-O-N0-#L-+Q-3O-;Nh-CL-KQ-SP-[N-cL-kQ-sP@-{N-L-R-Ph-N-M-R(-P-N-M8-R8-P-O-Mp-RP-P-O0.M. ݴ.H0.(L.9.El.N<._0.q4...@.L.0x. `.L.X. /4// F$ /. ? /9T$/NV /UWh/\,/jx/(/t/Z/Y/Z/Y/Z/Y/[/Z/[8/Z /[@0ZH0Y@0[`0ZP0 Y`0(Zx00Yx08Z0@Y0HZ0PY0X @  0d ? 0p0z(<05 $0905D0=t0;0.0013$181#:Td1421F:1X`1_`1f[1m]1t`1{`1`1`1a1a1a 1_1a01`11<d144'h(4.e`45hH4<f4ChX4Jgp4Qf4Xg4_f4fg4mf4tg4{f4g4e4f4g4e4f4h4e4f4h4f4K0L4G4I4C\5 J` 5GH`55*v\H5Bu,05Zi5dk5uM5t<5_5q5rd 5g5o5K|5qh6 _(6mt@6.s6DaX\6Sm6Zm 6am6hm06om6vm86}l6n6mH6l6n6mX6l6n6mh6l6n@6mx6l6nH6m6l6nX6m6m7k7 n`7m7m7i7%tl78m7He7_qP7gp7op7wo87nx7p7o7o@7n7p7 P@ 7oP7n7q7o7op7n7qH7o7ox7n8 PH 8p8o8n8'q8/p087o8?n8Gq8Oph8Wo8_n8gq8op8wo8o8 PP 8p8o8o8 L` 8pl88(8xx80T99yl<9l91 PX 9Bw9Q9_9t$9v9u9tH9v9v9v9v 9v9v89w9v@9r9w9vX9w(9v`9w09vp:u: w8:v:u:!w@:(v:/u:6:B:N :ZP:jp:}\:y:x:w:w`:y:x:w:wh:y:y:x:wx:y:y;x; w;z;y(;!x;)w;1z;9yP;Ax ;Iw;Qz ;YyX;ax0;iw;qz8;yy`;x@;w;z@;yh;xX;w;y;xh;w; S  ;; ;h;< <$<7(> >0>@>P>%`>,>3>: Z >Fɼl>]>gX>t>xl>p>>>Ҕ>8>p>? `??"?1?H`p?_T$?s?|?P8? h? bp ?? ??(?x??0??H@ bx @ @p@@ bX @(@0(@8@@@H@@P0@X@`@hP@p8@x@@h@@@@@p@h@@@@ bh @@@@p@ b` AAAA ] A$<A1A?tAPAaAsAlA XA 4Ap AhAAApAAxABB BpBBB&B-0B4B;BB8BIBPBWHB^BeBl e BsBzBBXBB@BB`BB`BhB BXBxBBB b C 4$CC#9$lC3A$CH[@PC]WCk @ C{HH4C8PCVC;C i CRX|CZ4 CXC[C i C\(DGLD]pD-C D8D?HDFXDM`DTD[DbDiDpDwD~DDDDDD < DQ`DXDYTD?<XDl%E_4E[4E& i E1FE:SEJDEYEa i EiHEqEyhEEEEEpEEEEEPEEpEEEE0FxF F(F i F!F)XF1F9FAFIFQ8FY8FaFiFq@FyFFhF0FFF(F@FPFFFHF i FFpF FhGG G0G`G!pG)G1G9GA0GIxGQGYGaGiHGqhGyxGG0GhGG8GGGG(GPGGGG8GpGPHH i HH0H!XH)H1H9HA@HIHQHYhHa(Hi i HqPHypHHHHHHHHH@H i HXHHHHHhHI e  I O|II"hI,I<\IIeIVIdlhIq i  I|aIv( Ia,Id ImI0I k IXI lp I l8 I k I k I k II`JJ l@ J k J k J!J(J/ lx J6xJ= l JD k JKJRJY l J` lH Jg l Jn k JuPJ|JJ lP JpJ`J k JxJJ lX J l J k JJJJ l` J l J k J(JKKK l KhKXK$K+@K2 lh K9 l( K@ k KG k KNKUHK\Kc l0 Kj k Kq k KxKp0KKi4K k KK k K i@ KKTKKLL @L0L& l  L1LL?LMLS8LYLhLzpLLHLLXLL`LHLL`L m LL m LLLLL\0M l MDlM"M.M;XMHMY m  MdMupMMMMMMM@M n M n MHM<MM@M,MN m N,N#N0tHN@ NPtXNZtNjüN{ƤN n  NN n  NLN\N px N @NxN NO(O OO0O!8O( p O/O6@O=HOD p OK0ORhOYPO` p Og p OnpOu`O|O p OxOhOOOO@O p OOhO p OOOOOOOPHP\P P( P4 p| P< pp PD n` PP pt PYPf|PzhP p  PP pP@PtPP@PΌhPQQ QQQ Q'Q.Q5Q<HQCQJQQ r QXQ_QnQ|Q p QQQ0QQQQHQQ8QQQQ t RR RR`RR#R*R1R8R?PRF(RMpRTR[Rb t Ri8RpRwpR~@RRRR t RPRRxRRRRRRXRHRRRRSS (SS`SS&S- s S4S;SBSI0SPSWhS^SeSl t SsSzSSPS(SpSSS t SSSSpS8SSSSSS(SxTT xT!@T)`T1hT9 r TETR`Tb 0TsTpT}8T p,T t(  T$0TTT lTDT8TT@U U UUU% u U,U3U:(UA u UHUO@UVU]UdUkPUrUy`UU8UhUUXUpUUhUxUUxUUUU`U8dUpVPV t4  V!lV.V;VA u VG u VM u VSVY u V_ u Ve u VkVq0VV8VV tV u  VVVV(Wl@W w  W#XW2X0W@WRWaWp w WwHW~XWhWpWWWW w W w WW<WW u WW+tX%dXX0dX+/X9 w(  XDHXJ,LXU tXd$Xs!X#ppXXXhXX x XxXXXXX x XX x XXX x Y@Y x YYY Y' x Y.Y5Y<0hhYN)YZ.Ye ttYt'Y w4 YY yP YYYY x Y x Y Y(Y x Y x Y x Y34Y y YZ y Z 0ZZ y Z x Z& yX Z- y( Z4 x Z; y` ZBZI8ZP yh ZW y0 Z^@Ze yp Zl y8 Zs y Zz yx ZXZHZ y ZZ y Z y Z y@ ZPZZ yH Z y ZZZZ(Z0ZPZ`Zp[x[[[ y ["ZH[1[8[?[F[M@[T[[P[b[i[p[w[~[[[eX[ y [[[v[f<[f<[ix[o\ r\th\\&\-\4\;\B\I\P(\W\^0\e\l8\s0\zX\8\`\X\h\h\p\x\x\wt4\u(\u\ y \g] ] | ]%w]2 p ]C~dh]M z ]V l ]c  ]l z ]z{]  ] ` ]]]]]0]H]`]]]]  ]w] \ ^ t ^X^  ^!^(^/(^6H^= D ^D D ^K  ^Tw^` d ^h h ^u  ^|^ x ^}^|dl^^^X ^^h^^___ __ _(_%X_48_;@_BH_IX_Ph_Wp_^x_ex_q_~d_ 4 _  _D_L_P_͔_h`,$` ``1T`@ 4 `R  `o`~8`(` |( `ĸ````(```X`Ő``0``8`P`haƀa aaPa!0a(Pa/ha6xa=ƈaDaKaRhaYHa`XagpanauƠa|aaxaXa€aaaaa aĀaxa°aaaaa8aĈbØb¸bbbb$b+ b2Xb9Đb@ðbGbNbUb\8bc | bjpbqĠbxbbbbPb | bňbİbbbbbXb |  bDb hb<c $cc5$dcDcSc_,ckpc{44c {  c |0 c z chhc<ccxccd  @d`d(d1d@ddN@dal$dtd{dddd|d@$d ddHdјddhdd@d̀eeePee e(Ϩe0e8He@͐eH ePpeXXe`eh(epex ehe͘e(e`ee8ee(exeͨe0epee@e e0fΐfͰf8fxf f(hf0@f88f@ΠfHfP@fXf`fhpfpPfx@fΨffHfffрfpfHfffPfff8fшfИgPgg(ghg g(g0@g8ѐg@gHXgPgX0g`pghgp |  g|gOg,4g;gEdgg@HgLgK8gMhLh h @hhhӐhӸh#h)h/N0hDDhS-dh^*`HhtLhM hHhXhPh@hxhxhֈhxhڰhذhָh԰hhhhi i  i iXi!Pi(Xi/وi6׈i=ՈiDٰiKiRiYi`iginiu(i| i@i,i liKiHii4 ie(i  j`j zj"(j0j:,jDjJ jPXjVhj\ۘjb۠jh۰jn۸jtjzjjPjVTj  jg LjWtj^j(jXjjHk`k kPkhk! k(܀k/ k6k=kD kKkRܠkY8k`ܨkg knܰku k|k@k  kdlkqkQ<kDkkHk(kT4kl  l<lXl`l#hl)ݠl/ݨl5ݰl;lAlGlMlS(lblilplwllll8lXl`lވlިlްl޸llllm ߈mmߠmm%m,m3m:mAmH0mO@mVXm]`md߀mkm{Tm|mmm  mԨmxmԐm8mXmpmXnPn xnxnxnXn%n,n3n:pnAnHnOnVn]ndnknrnynnnnnnnnn nnn(n(n0nPnXnpno t  oLo-`toAoUofowPo}`oHoo@ooho`o@opooHooppppppp$p+p2p9p@pGpNpUp\pc0pjpq8pxpp`p\Xp  p  p h  pp\ppqqz`0q%TLq6qBsX<qUIqf8qsq{xqq~`qDq7qT Hqqqްrr { r-rDCrS   rbZHru5rprrr0lrrrrrs 0s$s2d sAsJsZsjs~s' ss|sssstrP,t}t-t5tI<t[tbth5@t{  t$Xttt_|tt#HtHt9@tDuuPu-u7uLuYufuuu  u4\u z  u>`uuus|8uuv 6` v vv(v;DtvNptvbvltpv{vvTvvKvDvvv  w w wP w+w4wDwXwrwFDwPwwww\twww>\(x xx%Xx;k|xKxWxhxnpdx|xpxxbH xxxTx1y yyЀy&jy.yDyPyWycyqdyyyy.LyyUHyu(y&z` z34z$dpz3zD(z^zpAzzyxzzzzmzz{"{ Q|{{&{5{E, {QF{`?{q{x`l\{|\{{{{${{e{|@|c|9||3R |B:d8|M|[|n||qD|ڨ ||||_|h|phd|At|}%P}}"},CHT}<}B}P8TT}[}k>4(}w}}}K|}}}d$}}}XP~dP~~)~<@$~I0\~dP0~q~~~~X~tD~o~x~\~  `%5 y G(t_lq\ xDP SX  \lx(o<7THWe{Dyx   k4P P"01 p P <XJVcj<{eHd  X+=CIX@ j@u|wDx$``<b4L[hH)lD:mpMDDZhBzphx(<l$  0@ <  Shq@\(TGhd&H00%Tp6D  QYa <l@~ \  i<_x>h/@XhN`$xxn/6Ҕ8B$ R_pDpP88  (v| Zմ(\@%+!$>ETjB@xP0tK(4P Dvx-4\5=OZjp)P!hd8{hh)D;Odbp 6P ~`x@LHZd} mTP t4,)x@P|P'[z cxDtTfL@g 2x  L"<5M+cs vP {@8d %,H>mhQr<h `{Wds< z  /(p 5 +fT6M8epf$h|p^H߸!Xy$T(:DVg 5 rs<X"  uTP dO5$&@18UG\lH|dtٜ 1,Ph  8 X ,<H@dZexkufQ,Xp@O,pM&841M >J^pyt~\ؐ L'el # 6L 4  BT  g8yuT8$4L$4|@#6GJ]@rS :-<ͬ  6X *7<J<dW]fp`Pwct  6'HKm|X\q',(t$`0|@!5ZTAO_ qP m`` 6\ b(guxJ| nDP d U*0;KS?pgq(= Tdh H*h;Gs<do8|dlibtk4.2.sotk3d.cShiftLineshiftTable.32Intersect.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9GetShadowsgcc2_compiled..LLC10.LLC11.LLC12BorderInitinitializedborderTabletkArgv.cspaces.4.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC20.LLC10.LLC21.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19PrintUsagedefaultTabletkAtom.cAtomInitgcc2_compiled.atomNameArray.LLC68tkBind.cChangeScreenFindSequenceGetPatternStringmodTablemodArrayGetKeySymMatchPatternsnotifyDetailcircPlacevisNotifyflagArrayCreateVirtualEventTableParseEventDescriptiongcc2_compiled.GetVirtualEventUidDeleteVirtualEvent.LLC90.LLC80.LLC91.LLC81.LLC92.LLC82.LLC93.LLC83.LLC73.LLC94.LLC84.LLC74.LLC95.LLC85.LLC75.LLC96.LLC86.LLC76.LLC97.LLC87.LLC77.LLC98.LLC88.LLC78.LLC99.LLC89.LLC79notifyModeInitKeymapInfoGetVirtualEventHandleEventGenerateeventTableeventArrayFreeScreenInfoGetFieldGetAllVirtualEventsinitialized.LLC160.LLC150.LLC140.LLC130.LLC120.LLC110.LLC100.LLC161.LLC151.LLC141.LLC131.LLC121.LLC111.LLC101.LLC162.LLC152.LLC142.LLC132.LLC122.LLC112.LLC102.LLC163.LLC153.LLC143.LLC133.LLC123.LLC113.LLC103.LLC164.LLC154.LLC144.LLC134.LLC124.LLC114.LLC104.LLC165.LLC155.LLC145.LLC135.LLC125.LLC115.LLC105.LLC166.LLC156.LLC146.LLC136.LLC126.LLC116.LLC106.LLC157.LLC147.LLC137.LLC127.LLC117.LLC107.LLC158.LLC148.LLC138.LLC128.LLC118.LLC108.LLC159.LLC149.LLC139.LLC129.LLC119.LLC109CreateVirtualEventExpandPercentsDeleteVirtualEventTabletkBitmap.cdataTablenameTableinfo_bits.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.BitmapInitidTableautoNumber.12.LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19question_bitserror_bitshourglass_bitswarning_bitsinitializedquesthead_bitspredefTablegray50_bitsgray25_bitsgray12_bitstkClipboard.cClipboardAppHandlerClipboardLostSelClipboardHandler.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17ClipboardWindowHandlertkCmds.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9WaitWindowProcgcc2_compiled.WaitVisibilityProc.LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC10.LLC91.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC11.LLC92.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC12.LLC93.LLC83.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC13.LLC94.LLC84.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC14.LLC95.LLC85.LLC75.LLC65.LLC55.LLC45.LLC35.LLC25.LLC15.LLC96.LLC86.LLC76.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC97.LLC87.LLC77.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC98.LLC88.LLC78.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC99.LLC89.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19GetToplevel.LLC130.LLC120.LLC110.LLC100.LLC131.LLC121.LLC111.LLC101.LLC132.LLC122.LLC112.LLC102.LLC133.LLC123.LLC113.LLC103.LLC134.LLC124.LLC114.LLC104.LLC125.LLC115.LLC105.LLC126.LLC116.LLC106.LLC127.LLC117.LLC107.LLC128.LLC118.LLC108.LLC129.LLC119.LLC109GetDisplayOfWaitVariableProcallUid.6tkColor.cnameTableFindClosestColorstring.6valueTable.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9ColorInitgcc2_compiled.DeleteStressedCmap.LLC10.LLC11initializedtkConfig.cDoConfigFormatConfigInfo.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.FormatConfigValueFindConfigSpec.LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18tkCursor.cdataTablenameTablestring.6.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6gcc2_compiled.idTableCursorInitinitializedtkError.c.LLC0gcc2_compiled.ErrorProcdefaultHandlertkEvent.cDelayedMotionProc.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5pendingPtrlastGenericPtrgcc2_compiled.genericHandlersActiverestrictArggenericListeventMasksWindowEventProcrestrictProctkFocus.cChangeXFocusFocusMapProc.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18focusDebugSetFocusGenerateFocusEventstkFont.cnameTableFontInitstring.4lastFontStructPtr.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9fontTablegcc2_compiled.SetFontMetricslastFontPtrmapCharshexCharsinitializedtkGet.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC36.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19initializeduidTabletkGC.cvalueTable.LLC0.LLC1.LLC2GCInitgcc2_compiled.idTableinitializedtkGeometry.cMaintainCheckProcMaintainSlaveProcmaintainHashTablegcc2_compiled.MaintainMasterProcinitializedtkGrab.cEatGrabEventsMovePointer2ReleaseButtonGrab.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9buttonStatesGrabWinEventProcGrabRestrictProcgcc2_compiled..LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19FindCommonAncestorQueueGrabWindowChangetkGrid.cConfigureSlavesAdjustOffsetsCheckSlotData.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.UnlinkgridHashTableGetGridResolveConstraints.LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC10.LLC91.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC11.LLC92.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC12.LLC93.LLC83.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC13.LLC94.LLC84.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC14.LLC95.LLC85.LLC75.LLC65.LLC55.LLC45.LLC35.LLC25.LLC15.LLC96.LLC86.LLC76.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC97.LLC87.LLC77.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC88.LLC78.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC89.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19GridStructureProcGridLostSlaveProcDestroyGridSetGridSizeInitMasterDataAdjustForStickyStickyToStringStringToStickyinitializedGridReqProcArrangeGridgridMgrTypetkMain.cgotPartial.4.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.StdinProcinterpPrompt.LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17commandlinettytkOption.cParsePriorityExtendArrayAddFromStringcurLevelseriallevelsGetDefaultOptions.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9ExtendStacksgcc2_compiled.searchOrder.22ReadOptionFilenumLevels.LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC19stacksSetupStacksOptionInitNewArraycachedWindowdefaultMatchClearOptionTreetkPack.cPackAfterConfigureSlavesGetPackerDestroyPackerPackStructureProcPackLostSlaveProcpackerType.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.UnlinkPackReqProcXExpansionYExpansion.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC10.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC11.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC12.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC13.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC14.LLC75.LLC65.LLC55.LLC45.LLC35.LLC25.LLC15.LLC76.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC77.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC78.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19packerHashTablesideNames.2ArrangePackinginitializedtkPlace.cFindSlavePlaceRequestProc.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled.FindMastermasterTableslaveTableplacerTypeRecomputePlacement.LLC50.LLC40.LLC30.LLC20.LLC10.LLC51.LLC41.LLC31.LLC21.LLC11.LLC52.LLC42.LLC32.LLC22.LLC12.LLC53.LLC43.LLC33.LLC23.LLC13.LLC54.LLC44.LLC34.LLC24.LLC14.LLC55.LLC45.LLC35.LLC25.LLC15.LLC56.LLC46.LLC36.LLC26.LLC16.LLC57.LLC47.LLC37.LLC27.LLC17.LLC58.LLC48.LLC38.LLC28.LLC18.LLC59.LLC49.LLC39.LLC29.LLC19ConfigureSlaveMasterStructureProcSlaveStructureProcPlaceLostSlaveProcinitializedUnlinkSlavetkSelect.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9SelGetProcgcc2_compiled.LostSelection.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19HandleTclCommandtkSend.cSendRestrictProcAppendErrorProcsendDebugAppendPropCarefullySendEventProcRegDeleteNameUpdateCommWindow.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9DeleteProcRegAddNamegcc2_compiled.RegOpen.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC36.LLC26.LLC16.LLC37.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19RegFindNameTimeoutProcpendingCommandsRegCloseSendInitregistryValidateNameServerSecuretkUtil.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16tkVisual.c.LLC9gcc2_compiled..LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19visualNamestkWindow.ccolormapcommandsGetScreenargTableUnlinkWindowsynchronizeNameWindowvisualdefChangesgcc2_compiled.DeleteWindowsExitProcCreateTopLevelWindowOpenIMdefAttsDoConfigureNotifyname.LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC91.LLC81.LLC71.LLC61.LLC82.LLC72.LLC62.LLC83.LLC73.LLC63.LLC84.LLC74.LLC54.LLC85.LLC75.LLC65.LLC55.LLC86.LLC76.LLC66.LLC56.LLC16.LLC87.LLC77.LLC67.LLC57.LLC88.LLC78.LLC68.LLC58.LLC89.LLC79.LLC69.LLC59.LLC39displayrestgeometryAllocWindowinitializednumMainWindowstkUnix.c.LLC0.LLC1.LLC2.LLC3gcc2_compiled.tkUnixCursor.ccursorNamesgcc2_compiled..LLC80.LLC81.LLC82.LLC83.LLC84.LLC77.LLC78.LLC79tkUnixDialog.cEvalArgv.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7gcc2_compiled.tkUnixDraw.cgcc2_compiled.ScrollRestrictProctkUnixEvent.cDisplayCheckProcDisplaySetupProcgcc2_compiled.initialized.7dontBlock.2tkUnixInit.cdefaultLibraryDir.LLC0gcc2_compiled.initScripttkUnixSelect.cSelCvtToXSelectionSizeConvertSelectionpendingRetrievals.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8gcc2_compiled.SelRcvIncrProcSelTimeoutProcSelCvtFromXpendingIncrsIncrTimeoutProctkUnixWm.cTopLevelReqProcUpdateSizeHintsParseGeometryUpdateVRootGeometryReparentEventComputeReparentGeometrywmMgrTypewmTracing.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9GetMaxSizegcc2_compiled.firstWmPtrTopLevelEventProcUpdateWmProtocolsWaitForConfigureNotify.LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC10.LLC91.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC11.LLC92.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC12.LLC93.LLC83.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC13.LLC94.LLC84.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC14.LLC95.LLC85.LLC75.LLC65.LLC55.LLC45.LLC35.LLC25.LLC15.LLC96.LLC86.LLC76.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC97.LLC87.LLC77.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC98.LLC88.LLC78.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC99.LLC89.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19WaitTimeoutProcConfigureEventWaitForEventUpdateGeometryInfo.LLC130.LLC120.LLC110.LLC100.LLC131.LLC121.LLC111.LLC101.LLC132.LLC122.LLC112.LLC102.LLC133.LLC123.LLC113.LLC103.LLC134.LLC124.LLC114.LLC104.LLC135.LLC125.LLC115.LLC105.LLC136.LLC126.LLC116.LLC106.LLC137.LLC127.LLC117.LLC107.LLC138.LLC128.LLC118.LLC108.LLC139.LLC129.LLC119.LLC109WaitRestrictProcUpdateHintsWaitForMapNotifytkUnixXId.cAllocXIdWindowIdCleanup2CheckRestrictProcgcc2_compiled.WindowIdCleanuptkButton.cConfigureButtonInvokeButtonButtonImageProcButtonEventProcButtonWidgetCmdDestroyButtonDisplayButtonButtonCreategcc2_compiled.optionStringsclassNamesButtonCmdDeletedProc.LLC50.LLC26ButtonVarProcComputeButtonGeometryButtonTextVarProcButtonSelectImageProc.LLC140.LLC130.LLC141.LLC131.LLC142.LLC132.LLC143.LLC133.LLC144.LLC134.LLC145.LLC135.LLC125.LLC146.LLC136.LLC126.LLC137.LLC127.LLC138.LLC128.LLC139.LLC129configSpecsconfigFlagstkEntry.cDisplayEntryEntryCmdDeletedProcEntryFetchSelectionGetEntryIndexEntryTextVarProcEntryUpdateScrollbarEntryComputeGeometrygcc2_compiled.EntrySetValueEntrySelectToEventuallyRedrawEntryValueChangedEntryVisibleRange.LLC90.LLC91.LLC81.LLC41.LLC92.LLC93.LLC94.LLC95.LLC96.LLC97.LLC98.LLC18.LLC99.LLC89DeleteCharsEntryBlinkProcEntryFocusProcEntryEventProcEntryWidgetCmdConfigureEntryEntryLostSelectionEntryScanToInsertChars.LLC150.LLC140.LLC130.LLC120.LLC110.LLC100.LLC141.LLC131.LLC121.LLC111.LLC101.LLC142.LLC132.LLC122.LLC112.LLC102.LLC143.LLC133.LLC123.LLC113.LLC103.LLC144.LLC134.LLC124.LLC114.LLC104.LLC145.LLC135.LLC125.LLC115.LLC105.LLC146.LLC136.LLC126.LLC116.LLC106.LLC147.LLC137.LLC127.LLC117.LLC107.LLC148.LLC138.LLC128.LLC118.LLC108.LLC149.LLC139.LLC129.LLC119.LLC109configSpecsDestroyEntrytkFrame.cDisplayFrameFrameCmdDeletedProcgcc2_compiled..LLC60.LLC40.LLC61.LLC11.LLC62.LLC52.LLC12.LLC53.LLC13.LLC54.LLC14.LLC55.LLC15.LLC56.LLC46.LLC16.LLC57.LLC47.LLC17.LLC58.LLC48.LLC18.LLC59.LLC19MapFrameConfigureFrameFrameEventProcFrameWidgetCmdconfigSpecsDestroyFrametkListbox.cListboxUpdateHScrollbarListboxUpdateVScrollbarDeleteElsListboxEventProcListboxWidgetCmdListboxLostSelectionConfigureListboxListboxScanToListboxSelectInsertElsChangeListboxViewgcc2_compiled.NearestListboxElementDestroyListboxListboxCmdDeletedProcListboxFetchSelectionDisplayListbox.LLC90.LLC80.LLC91.LLC81.LLC92.LLC82.LLC72.LLC93.LLC83.LLC73.LLC94.LLC84.LLC74.LLC95.LLC85.LLC75.LLC96.LLC86.LLC76.LLC97.LLC87.LLC77.LLC98.LLC88.LLC78.LLC18.LLC99.LLC89.LLC79.LLC59ListboxRedrawRangeGetListboxIndexListboxComputeGeometry.LLC140.LLC130.LLC120.LLC110.LLC100.LLC131.LLC121.LLC111.LLC101.LLC132.LLC122.LLC112.LLC102.LLC133.LLC123.LLC113.LLC103.LLC134.LLC124.LLC114.LLC104.LLC135.LLC125.LLC115.LLC105.LLC136.LLC126.LLC116.LLC106.LLC137.LLC127.LLC117.LLC107.LLC138.LLC128.LLC118.LLC108.LLC139.LLC129.LLC119.LLC109configSpecsChangeListboxOffsettkMenu.cDestroyMenuEntryComputeMenuGeometryMenuImageProcMenuEventProcMenuWidgetCmdActivateMenuEntryentryConfigSpecsgcc2_compiled.ConfigureMenuEventuallyRedrawMenuMenuCmdDeletedProc.LLC90.LLC80.LLC50.LLC91.LLC81.LLC92.LLC82.LLC93.LLC83.LLC94.LLC84.LLC14.LLC95.LLC85.LLC96.LLC86.LLC97.LLC87.LLC77.LLC98.LLC88.LLC78.LLC99.LLC89.LLC79MenuVarProcDestroyMenuDisplayMenuMenuAddOrInsertConfigureMenuEntryMenuSelectImageProc.LLC130.LLC120.LLC110.LLC100.LLC131.LLC121.LLC111.LLC101.LLC132.LLC122.LLC112.LLC102.LLC133.LLC123.LLC113.LLC103.LLC134.LLC124.LLC114.LLC104.LLC135.LLC125.LLC115.LLC105.LLC136.LLC126.LLC116.LLC106.LLC137.LLC127.LLC117.LLC107.LLC138.LLC128.LLC118.LLC108.LLC129.LLC119.LLC109configSpecsPostSubmenuGetMenuIndexMenuNewEntrytkMenubutton.cConfigureMenuButtonMenuButtonCmdDeletedProcDestroyMenuButtonDisplayMenuButtongcc2_compiled.MenuButtonTextVarProc.LLC22.LLC43.LLC99ComputeMenuButtonGeometryMenuButtonImageProcMenuButtonEventProcMenuButtonWidgetCmd.LLC110.LLC100.LLC111.LLC101.LLC112.LLC102.LLC103.LLC104.LLC105.LLC106.LLC107.LLC108.LLC109configSpecstkMessage.cMessageEventProcMessageWidgetCmdConfigureMessagegcc2_compiled.MessageCmdDeletedProcDestroyMessageDisplayMessageMessageTextVarProc.LLC70.LLC71.LLC72.LLC22.LLC73.LLC74.LLC75.LLC76.LLC68.LLC69configSpecsComputeMessageGeometrytkScale.cDisplayScalePixelToValueSetScaleValueDisplayVerticalValueDisplayVerticalScaleComputeScaleGeometrygcc2_compiled.ScaleEventProcScaleWidgetCmdComputeFormatRoundToResolution.LLC59ConfigureScaleDisplayHorizontalValueDisplayHorizontalScaleScaleCmdDeletedProcValueToPixelEventuallyRedrawScaleScaleVarProcScaleElement.LLC150.LLC140.LLC130.LLC120.LLC110.LLC151.LLC141.LLC131.LLC121.LLC111.LLC152.LLC142.LLC132.LLC122.LLC112.LLC153.LLC143.LLC133.LLC123.LLC113.LLC144.LLC134.LLC124.LLC114.LLC145.LLC135.LLC125.LLC115.LLC146.LLC136.LLC126.LLC116.LLC147.LLC137.LLC127.LLC117.LLC148.LLC138.LLC128.LLC118.LLC149.LLC139.LLC129.LLC119.LLC109configSpecsDestroyScaletkScrollbar.cDestroyScrollbarDisplayScrollbarScrollbarPositiongcc2_compiled.EventuallyRedrawComputeScrollbarGeometryScrollbarEventProcScrollbarWidgetCmd.LLC90.LLC80.LLC70.LLC91.LLC81.LLC71.LLC92.LLC82.LLC72.LLC83.LLC93.LLC73.LLC94.LLC84.LLC74.LLC95.LLC85.LLC75.LLC96.LLC86.LLC76.LLC46.LLC87.LLC97.LLC77.LLC98.LLC88.LLC78.LLC68.LLC99.LLC89.LLC79.LLC69ConfigureScrollbar.LLC100.LLC101.LLC102.LLC103.LLC104configSpecsScrollbarCmdDeletedProctkCanvas.cConfigureCanvasCanvasCmdDeletedProcCanvasFetchSelectionCanvasDoEventnumSlowSearchesFindItemsDestroyCanvasCanvasFindClosestDisplayCanvastypeListCanvasBindProcCanvasSelectTogcc2_compiled.GridAlignallUidPrintScrollFractionsDoItemCanvasUpdateScrollbarsInitCanvas.LLC90.LLC91.LLC92.LLC93.LLC94.LLC84.LLC95.LLC85.LLC96.LLC86.LLC97.LLC87.LLC98.LLC88.LLC99.LLC89numIdSearchesRelinkItemsCanvasBlinkProcCanvasFocusProcCanvasEventProcCanvasWidgetCmdCanvasSetOriginCanvasLostSelectioncurrentUidNextItemPickCurrentItemStartTagSearch.LLC210.LLC200.LLC190.LLC180.LLC170.LLC160.LLC150.LLC140.LLC130.LLC120.LLC110.LLC100.LLC211.LLC201.LLC191.LLC181.LLC171.LLC161.LLC151.LLC141.LLC131.LLC121.LLC111.LLC101.LLC212.LLC202.LLC192.LLC182.LLC172.LLC162.LLC152.LLC142.LLC132.LLC122.LLC112.LLC102.LLC213.LLC203.LLC193.LLC183.LLC173.LLC163.LLC153.LLC143.LLC133.LLC123.LLC113.LLC103.LLC214.LLC204.LLC194.LLC104.LLC184.LLC174.LLC164.LLC154.LLC144.LLC134.LLC124.LLC114.LLC215.LLC205.LLC195.LLC185.LLC175.LLC165.LLC155.LLC145.LLC135.LLC125.LLC115.LLC105.LLC216.LLC206.LLC196.LLC186.LLC176.LLC166.LLC156.LLC146.LLC136.LLC126.LLC116.LLC106.LLC207.LLC197.LLC177.LLC187.LLC167.LLC157.LLC147.LLC137.LLC127.LLC117.LLC107.LLC198.LLC208.LLC188.LLC178.LLC168.LLC158.LLC148.LLC138.LLC128.LLC118.LLC108.LLC209.LLC199.LLC189.LLC179.LLC169.LLC159.LLC149.LLC139.LLC129.LLC119.LLC109configSpecsFindAreatkCanvArc.cDeleteArcArcToPostscriptAngleInRangeConfigureArcVertLineToArcTranslateArctagsOptiongcc2_compiled.ArcToAreaCreateArcArcCoordsDisplayArcComputeArcOutlinearcUid.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC10.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC14.LLC65.LLC55.LLC45.LLC35.LLC25.LLC15.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19ArcToPointHorizLineToArcComputeArcBboxpieSliceUidScaleArcchordUidconfigSpecstkCanvBmap.cConfigureBitmapBitmapToAreaBitmapCoordsTranslateBitmapCreateBitmaptagsOptionDisplayBitmapBitmapToPoint.LLC8.LLC9gcc2_compiled.ComputeBitmapBboxScaleBitmap.LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC16.LLC17.LLC18.LLC19BitmapToPostscriptconfigSpecsDeleteBitmaptkCanvImg.cDisplayImageImageToPointImageChangedProctagsOptionComputeImageBboxScaleImage.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12.LLC13DeleteImageConfigureImageTranslateImageImageToAreaImageCoordsconfigSpecsCreateImagetkCanvLine.cConfigureArrowsComputeLineBboxScaleLinePrintArrowShapeLineToPostscriptArrowheadPostscripttagsOption.LLC1arrowShapeOptionDeleteLinegcc2_compiled.lastUidConfigureLineLineToAreaLineCoordsTranslateLine.LLC50.LLC40.LLC30.LLC20.LLC51.LLC41.LLC31.LLC21.LLC52.LLC42.LLC32.LLC22.LLC53.LLC43.LLC33.LLC23.LLC54.LLC44.LLC34.LLC24.LLC55.LLC45.LLC25.LLC46.LLC36.LLC26.LLC47.LLC37.LLC27.LLC48.LLC38.LLC28.LLC49.LLC39.LLC29.LLC19ParseArrowShapeCreateLineDisplayLineLineToPointbothUidnoneUidconfigSpecsfirstUidtkCanvPoly.cPolygonToPostscriptDeletePolygontagsOptionConfigurePolygonTranslatePolygongcc2_compiled.PolygonToAreaPolygonCoordsCreatePolygonDisplayPolygon.LLC20.LLC21.LLC22.LLC12.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC16.LLC17.LLC18.LLC19PolygonToPointComputePolygonBboxScalePolygonconfigSpecstkCanvPs.c.LLC1gcc2_compiled..LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC91.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC92.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC93.LLC83.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC94.LLC84.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC95.LLC85.LLC65.LLC75.LLC15.LLC55.LLC45.LLC35.LLC25.LLC96.LLC86.LLC76.LLC66.LLC16.LLC56.LLC46.LLC36.LLC26.LLC97.LLC87.LLC77.LLC67.LLC17.LLC57.LLC47.LLC37.LLC27.LLC98.LLC88.LLC78.LLC68.LLC18.LLC58.LLC48.LLC38.LLC28.LLC99.LLC89.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19GetPostscriptPoints.LLC100.LLC101.LLC102configSpecstkCanvText.cComputeTextBboxTextToPostscriptScaleTextLineToPostscriptSetTextCursortagsOptionTextToAreaTextCoordsTextInsertGetSelTextDeleteTextgcc2_compiled.ConfigureTextTranslateText.LLC40.LLC30.LLC20.LLC41.LLC31.LLC21.LLC42.LLC32.LLC22.LLC43.LLC33.LLC23.LLC13.LLC44.LLC34.LLC24.LLC35.LLC25.LLC15.LLC36.LLC26.LLC16.LLC37.LLC27.LLC17.LLC38.LLC28.LLC18.LLC39.LLC29.LLC19TextToPointCreateTextDisplayTextTextDeleteCharsconfigSpecsGetTextIndextkCanvUtil.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8gcc2_compiled.tkCanvWind.cDeleteWinItemWinItemStructureProcWinItemLostSlaveProctagsOptionConfigureWinItemWinItemToAreaWinItemCoords.LLC9TranslateWinItemcanvasGeomTypegcc2_compiled.CreateWinItemComputeWindowBboxDisplayWinItemWinItemToPoint.LLC20.LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19WinItemRequestProcScaleWinItemconfigSpecstkRectOval.cOvalToPointComputeRectOvalBboxRectOvalToPostscriptScaleRectOvaltagsOption.LLC9RectToAreagcc2_compiled.DeleteRectOvalRectOvalCoordsConfigureRectOval.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19TranslateRectOvalRectToPointOvalToAreaCreateRectOvalDisplayRectOvalconfigSpecstkTrig.celevenDegrees.26.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC40.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC36.LLC26.LLC16.LLC37.LLC27.LLC17.LLC38.LLC28.LLC18.LLC39.LLC29.LLC19tkImage.c.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9imageTypeListgcc2_compiled..LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19DeleteImageid.4tkImgBmap.c.LLC9ImgBmapDeleteImgBmapCreategcc2_compiled.ImgBmapConfigureInstanceNextBitmapWordImgBmapCmdImgBmapGet.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19ImgBmapCmdDeletedProcImgBmapDisplayImgBmapFreeconfigSpecsImgBmapConfigureMastertkImgGIF.cfirstcode.22FileMatchGIFset_code_size.19ReadImagefresh.17code_size.18stack.27ZeroDataBlockReadGIFHeadersp.28lastbit.33LWZReadByte.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9clear_code.24gcc2_compiled.curbit.32max_code.20GetCodeoldcode.23.LLC10.LLC11.LLC12.LLC13buf.10buf.31table.26FileReadGIFdone.34last_byte.35end_code.25DoExtensionmax_code_size.21GetDataBlockReadColorMaptkImgPPM.cFileWritePPMFileMatchPPMReadPPMFileHeader.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12.LLC13.LLC14.LLC15.LLC16FileReadPPMtkImgPhoto.cImgPhotoFreeimgPhotoHashimgPhotoHashInitializedImgPhotoInstanceSetSizeImgPhotoConfigureMasterGetColorTableReclaimColorsMatchStringFormatCountBitsDitherDisposeColorTablegcc2_compiled.imgPhotoColorHashimgPhotoColorHashInitializedDitherInstanceParseSubcommandOptions.LLC90.LLC80.LLC70.LLC60.LLC50.LLC40.LLC30.LLC20.LLC91.LLC81.LLC71.LLC61.LLC51.LLC41.LLC31.LLC21.LLC92.LLC82.LLC72.LLC62.LLC52.LLC42.LLC32.LLC22.LLC93.LLC83.LLC73.LLC63.LLC53.LLC43.LLC33.LLC23.LLC94.LLC84.LLC74.LLC64.LLC54.LLC44.LLC34.LLC24.LLC95.LLC85.LLC75.LLC65.LLC55.LLC45.LLC35.LLC25.LLC96.LLC86.LLC76.LLC66.LLC56.LLC46.LLC36.LLC26.LLC16.LLC97.LLC87.LLC77.LLC67.LLC57.LLC47.LLC37.LLC27.LLC17.LLC88.LLC78.LLC68.LLC58.LLC48.LLC38.LLC28.LLC18.LLC89.LLC79.LLC69.LLC59.LLC49.LLC39.LLC29.LLC19formatListMatchFileFormatAllocateColorsImgPhotoDeleteImgPhotoCreateImgPhotoConfigureInstanceFreeColorTableIsValidPaletteImgPhotoCmdImgPhotoGetDisposeInstanceImgPhotoCmdDeletedProcconfigSpecspaletteChoice.14optionNamesImgPhotoSetSizeImgPhotoDisplaytkText.cDumpSegmentTextBlinkProcTextEventProcTextSearchCmdTextWidgetCmdDumpLinegcc2_compiled.ConfigureTextTextCmdDeletedProcTextFetchSelection.LLC90.LLC45.LLC86.LLC18TextDumpCmdDeleteCharsDestroyTextInsertChars.LLC190.LLC180.LLC170.LLC160.LLC150.LLC140.LLC130.LLC120.LLC110.LLC191.LLC181.LLC171.LLC161.LLC151.LLC141.LLC131.LLC121.LLC111.LLC101.LLC182.LLC172.LLC162.LLC152.LLC142.LLC132.LLC122.LLC112.LLC183.LLC173.LLC163.LLC153.LLC143.LLC133.LLC123.LLC113.LLC184.LLC174.LLC164.LLC154.LLC144.LLC134.LLC124.LLC114.LLC185.LLC175.LLC165.LLC155.LLC145.LLC135.LLC125.LLC115.LLC186.LLC176.LLC166.LLC156.LLC146.LLC136.LLC126.LLC116.LLC187.LLC177.LLC167.LLC157.LLC147.LLC137.LLC127.LLC117.LLC107.LLC188.LLC178.LLC168.LLC158.LLC148.LLC138.LLC128.LLC118.LLC108.LLC189.LLC179.LLC169.LLC159.LLC149.LLC139.LLC129.LLC119.LLC109configSpecstkTextBTree.cToggleCheckProcFindTagStartIncCountRebalanceSplitSegCheckNodeConsistencyCharCheckProcCharSplitProcToggleDeleteProc.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9ToggleLineChangeProcgcc2_compiled.FindTagEndChangeNodeToggleCountCharDeleteProcToggleCleanupProc.LLC40.LLC30.LLC20.LLC10.LLC41.LLC31.LLC21.LLC11.LLC42.LLC32.LLC22.LLC12.LLC43.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC36.LLC26.LLC16.LLC37.LLC27.LLC17.LLC38.LLC28.LLC18.LLC39.LLC29.LLC19DestroyNodeDeleteSummariesCleanupLineCharCleanupProcRecomputeNodeCountstkTextDisp.cCharBboxProcDisplayDLinelinesRedrawnMeasureUpTextInvalidateRegionScrollByLinesSizeOfTabFindDLine.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9CharUndisplayProcgcc2_compiled.FreeStylenumCopiesDisplayLineBackgroundLayoutDLineUpdateDisplayInfo.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC23.LLC13.LLC24.LLC14.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19numRedisplaysFreeDLinesDisplayTextGetStyleGetXViewGetYViewCharMeasureProcCharDisplayProcAdjustForTabtkTextIndex.cForwBackStartEnd.LLC0.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9gcc2_compiled..LLC10.LLC11.LLC12tkTextMark.cInsertUndisplayProcMarkCheckProc.LLC1.LLC2.LLC3.LLC4.LLC5.LLC6.LLC7.LLC8.LLC9MarkLayoutProcMarkDeleteProcgcc2_compiled..LLC20.LLC10.LLC21.LLC11.LLC22.LLC12.LLC23.LLC13.LLC14.LLC15.LLC16.LLC17.LLC18.LLC19MarkCleanupProcMarkFindNextMarkFindPrevtkTextTag.cSortTagstagConfigSpecsChangeTagPrioritygcc2_compiled.TagSortProc.LLC50.LLC40.LLC30.LLC20.LLC51.LLC41.LLC31.LLC21.LLC52.LLC42.LLC32.LLC22.LLC53.LLC43.LLC33.LLC23.LLC54.LLC44.LLC34.LLC24.LLC55.LLC45.LLC35.LLC25.LLC56.LLC46.LLC36.LLC26.LLC57.LLC47.LLC37.LLC27.LLC48.LLC38.LLC28.LLC49.LLC39.LLC29FindTagtkTextWind.ctkTextEmbWindowTypeEmbWinUndisplayProcEmbWinStructureProcEmbWinLostSlaveProcEmbWinLayoutProcEmbWinDeleteProc.LLC3gcc2_compiled.EmbWinDisplayProcEmbWinCleanupProcEmbWinRequestProc.LLC30.LLC20.LLC10.LLC31.LLC21.LLC11.LLC32.LLC22.LLC12.LLC33.LLC23.LLC13.LLC34.LLC24.LLC14.LLC35.LLC25.LLC15.LLC26.LLC16.LLC27.LLC17.LLC28.LLC18.LLC29.LLC19AlignPrintProcAlignParseProcEmbWinBboxProcEmbWinDelayedUnmapalignOptionconfigSpecstextGeomTypeEmbWinCheckProcEmbWinConfigurepanicXSynchronizeTk_GetNumMainWindowsTk_PhotoGetImageXSetCommandTk_SetWindowBorderTkUnderlineCharsTk_GetOptionXKeycodeToKeysymTkPositionInTreeXIconifyWindowTk_GetAtomNameTk_GCForColorTkBTreeCharTaggedTk_PackCmdTcl_GetVarTcl_DStringInitTk_UpdateCmdXSetWMColormapWindowstkPhotoImageTypeTcl_CreateTimerHandlerTkMeasureCharstkTextCharTypeTk_CreateImageTypeTk_SetAppNameTk_FreeXIdTk_ClearSelectionTcl_MergeTkBTreeStartSearchBackXCreateGlyphCursorTcl_SeekTk_EventCmdTcl_NextHashEntryXDrawRectangleTkTextSegToOffsetTk_DeleteErrorHandlerTk_RedrawImageTcl_GetsXFillRectanglesXGContextFromGCTcl_SetMaxBlockTimeXUngrabServerTkBTreeLinkSegmentXFreeColorsTkGetPointerCoordsTcl_GetCommandInfoXFreePixmapTcl_AddErrorInfoTcl_TranslateFileNameTkChangeEventWindowTkTextRelayoutWindowstrtoulTcl_DeleteHashTableTk_CoordsToWindowstrtolfreadTkFocusFilterEventtkTextNoneUidTkBTreeNextLinegetpwuidXBellTk_GeometryRequestTcl_VarEvalTk_CreateErrorHandlerTkDeadAppCmdTkBTreeGetTagsTk_PhotoPutZoomedBlockTcl_EvalFileTkTextFreeDInfoTcl_FlushTkOptionClassChangedXOpenDisplayXQueryColorsTcl_CreateChannelHandlerXGetInputFocustoupper_endTk_DestroyCmdtkImgFmtPPMTk_GetFontStructmemmoveXCreateImageTkInOutEventsXSetWMNameXGetIMValuestkNormalUidXNextEventXChangePropertyXGetWindowPropertyTk_GetColorByValueTk_MoveResizeWindowXCopyAreaTk_FreeOptionsXSetRegionTk_CanvasWindowCoordsTk_DeleteBindingXLookupColorTkDisplayTextTkBTreeCreateTcl_DeleteModalTimeout__flsbuf_GLOBAL_OFFSET_TABLE_Tcl_UntraceVartkRectangleTypeTcl_ReadTcl_StringMatchXCreatePixmapCursorXStringListToTextPropertyXCreatePixmapTkDisplayCharsTkTextCreateDInfoTcl_CreateExitHandlerTkScrollWindowTcl_GetChannelTkWmNewWindow__ctypeTcl_DoOneEventTk_ToplevelCmdTcl_FirstHashEntryTcl_EvalTkWmProtocolEventProcTkGetBitmapDataTcl_LinkVarTcl_DeleteInterpXSyncTk_MoveWindowXReadBitmapFileTkSelEventProcXGetWMColormapWindowsTk_3DHorizontalBevelXSelectInputTcl_DStringAppendTk_CreatePhotoImageFormatTk_FocusCmdfseekfixstrtodTkClipInitTk_GrabTcl_CreateEventSourceTcl_GetFilesignalXDrawStringTcl_SetResultTk_ConfigureValueXDestroyRegionXUngrabKeyboardXIntersectRegionTk_RestrictEventsTcl_GetVar2TkGetMiterPointsTk_ParseArgvTk_DeleteEventHandlerTk_CanvasPsColorTkLineToPointTk_DeleteImageTk_ConfigureInfoTk_CanvasSetStippleOriginTcl_InitHashTableTk_CanvasEventuallyRedrawXGetVisualInfoTkTextRedrawRegionXFlushXSetTransientForHintXGrabServerTk_UngrabXCreateRegionTk_DeleteBindingTableTk_WmCmdTk_NameOfJoinStyletolowerXUngrabPointerTcl_ResetResultTkGetPrologTkIncludePointTkGetInterpNamesmallocTkGetDisplayTkGrabStatesprintfTcl_InterpDeletedXGetFontPropertyTkBTreeDestroyTcl_AllowExceptionsTk_3DBorderGCTcl_DStringGetResultTk_GetBindingTk_FreeImageTkThickPolyLineToAreaTk_GetCapStyleTkGetFocusXGrabKeyboardTcl_EventuallyFreeXSetWMClientMachinepowTk_ChangeWindowAttributesTk_TkCmdXSetWMHintsXGetAtomNameputsTk_ManageGeometryTk_ResizeWindowTkPolygonToAreaXClipBoxTkBTreePreviousLineTcl_ReleaseTcl_SleepTk_GetItemTypeslog10TkTextScanCmdTk_SendCmdTkTextDLineInfoTk_FrameCmdTkWmDeadWindowTcl_DStringAppendElementTcl_PosixErrorTk_ListboxCmdXCopyPlanefwriteTk_FreePixmapTkSelPropProcTcl_FileReadyTkGetButtPointsTk_GetRootCoordsXDeletePropertyTkOptionDeadWindowTk_GetPixmapTkQueueEventForAllChildrenTk_CanvasPsYTcl_RecordAndEval.umulTk_BindEventTcl_GetDoubleTkFreeBindingTagsTk_SetWindowVisualTk_ConfigureWindowTk_MessageCmdTkFreeWindowIdtkTextDebugTkTextWindowCmdXStringToKeysymTcl_PrintDoubletkBitmapImageTypeTk_DeleteGenericHandlerTcl_JoinPathtimeTcl_RegExpCompile.remTk_CanvasPsFontTk_CreateBindingTabletkOvalTypeXSetInputFocusXAllocSizeHintsTk_GetJustifyTkMakeWindowtkTextNormalUidTkTextInsertDisplayProcTk_MapWindowTkPointerEventTkStringToKeysymTcl_PkgProvideXCreateWindowXTranslateCoordinatesTk_PhotoExpandXDefineCursorTk_StrictMotifTkTextGetTabsTcl_CancelIdleCallTkTextMarkCmdTcl_GetAssocDatatkArcTypeTk_CanvasPsStippleXLoadQueryFontTk_MainsscanfTk_CanvasTkwintkLineTypeTkTextSetMarkXFreeCursorXSetTSOrigingetuidTk_MessageBoxCmdXAllocColorXQLengthXDrawLineXFreeColormapTkDeleteAllImagesTk_NameOfBitmapTk_CanvasTagsParseProcXGrabPointerTkGetDefaultScreenNamesqrttkTextRightMarkTypeTk_GetBitmapXForceScreenSaverhypotqsortTcl_QueueEventTkTextPickCurrentTk_TextCmdfcloseTk_RestackWindowTkTextLostSelectionXReconfigureWMWindowTkGrabDeadWindowTk_LabelCmdXEventsQueuedTk_SetInternalBorderTk_ImageChangedTk_PreserveColormapTkBezierPointsTk_CreateBindingTk_MakeWindowExistTkOvalToAreaTcl_WatchFileTk_CreateItemTypeTk_FindPhotoTkTextTagCmdTcl_CreateCommandstrncpyTkPlatformInitTkTextMakeIndexXFreeGCTk_ChooseColorCmdXSetWindowBackgroundTkBindFreeXSetForeground_DYNAMICXKeysymToKeycodeTcl_ScanElementtkTextToggleOnTypeTcl_DStringSetLengthTk_SetWindowBorderWidthTkBTreeInsertCharsTk_PhotoGetSizeTkSelInitfloorXMapWindowTkBezierScreenPointsTk_ClipboardCmdTkBTreeLineIndexTkCanvPostscriptCmdXFreeTcl_CreateModalTimeoutTk_NameOfJustifyXLookupStringtkBTreeDebugstrncmpTk_3DVerticalBevelTk_FreeFontStructtkTextToggleOffTypeTk_Draw3DPolygonTk_Get3DBorderTkCreateFrameTkBTreeStartSearchTk_NameOfReliefTk_GetScrollInfoTk_BindCmdTk_UnmapWindowXFilterEventTcl_DeleteHashEntryprintfTk_ScaleCmdTkBTreeFindLineXSetIconNameXAllocNamedColorTkTextIndexBackCharsTk_GetVRootGeometryTkFindStateStringTk_CanvasPsBitmaptkTextWordUidTk_GetColorTk_DisplayNameTk_FreeColormapTk_BindtagsCmdXSetWindowBorderTkTextSetYViewctimeTkBTreeDeleteCharsstrcatXDestroyWindowTk_MoveToplevelWindowTkOvalToPointstrncasecmpTkMakeBezierPostscriptTkTextYviewCmdTkBTreeNumLinesTkTextMarkSegToIndexTkCmapStressedTk_IdToWindowTkCurrentTimeTk_PlaceCmdTk_FreeBitmapreallocTkWmAddToColormapWindowsstrrchrXMoveResizeWindowXSendEventTk_CanvasPsPathatan2TkSelClearSelectionTk_PhotoBlankTk_NameOfCursorTkWmSetClassXFillPolygonTkTextIndexToSegXFillRectangleTcl_GlobalEvalTkTextRedrawTagXFillArcTkWmRestackToplevelTkKeysymToStringTk_GetAllBindings_XInitImageFuncPtrsTk_DeleteAllBindingsTk_GetImagetkDisplayListTk_MaintainGeometryTk_EntryCmdXTextWidthTk_OwnSelectionTk_MenubuttonCmdXVisualIDFromVisualTk_GetGCTk_InternAtomXTextExtentstkBitmapTypeTkTextSeeCmdTkFreeCursorTk_CanvasTagsPrintProcTk_GetJoinStyleTkBTreeTagTk_InitTkTextPrintIndexTk_AddOptionTk_CreateWindowXConvertSelectionTkSelGetSelectionXUnmapWindowXRectInRegionTk_GetReliefTkBTreeNextTagtkTextDisabledUidTk_GetCursorFromDataTcl_GetBooleanTk_ClipboardAppendXRefreshKeyboardMappingTkSelDefaultSelectionTcl_RegExpRangeXAllocClassHintXQueryTreeTk_GetBitmapFromDataTkWmRemoveFromColormapWindowsTk_FreeColortkWindowTypeTkTextChangedXDrawArcTcl_OpenFileChannelTkTextGetIndexTkTextCreateTagstrchrTkTextWindowIndexTk_Fill3DRectangleTk_SetWindowBackgroundTk_ConfigureWidgetXConfigureWindowTk_GetPixelsTkBindEventProcTk_DeleteSelHandlerTk_DefineCursorXCreateColormaptkImgFmtGIFTcl_PkgRequirefreeTk_QueueWindowEventTcl_TraceVartkSendSerialTk_GrabCmdTcl_DeleteTimerHandlerTk_CanvasDrawableCoordsTcl_SetVarTcl_CommandCompleteTk_Free3DBorderTcl_RegExpExecTk_ButtonCmdTk_UnsetGridTk_SizeOfBitmapXSetClipMaskTk_GridCmdTk_FreeGCTk_WinfoCmdXSetWindowBorderWidthTkTextEventuallyRepickTcl_AppendElementTcl_WriteTcl_DeleteCommandTcl_SourceRCFilependingPtrTk_SetWindowBorderPixmapTkGetCursorByNameTk_FreeCursortkTextTypeTkTextIndexCmpXSetWindowColormapTk_NameOfAnchorTkLineToAreaTkWmUnmapWindowTk_CreateEventHandlerTkTextMarkNameToIndexstrcmpTk_GetScreenMMTk_CanvasGetTextInfoTkGetServerInfoTk_GetSelectionTkCreateMainWindowTk_RaiseCmdTk_MainLoopTcl_FindExecutableTkFindStateNumTk_BellCmd_edata_PROCEDURE_LINKAGE_TABLE_fopenTk_GetColormapmemsetXSetWindowBackgroundPixmapTk_DefineBitmapXMoveWindowTk_GetSaveFileCmdTk_3DBorderColorXCreateGCTk_SetBackgroundFromBorderXOpenIMXSetClipOriginTk_GetVisualTk_CanvasCmdTk_CreateSelHandlerTk_CanvasGetCoordstrcpyTkBTreeCharsInLineTkTextXviewCmdTk_DrawFocusHighlightTkBindInitTk_GetAnchorXParseColorXGetModifierMappingXSetWMNormalHintsTk_MainWindowTcl_DoWhenIdleTk_PhotoSetSize_etextXFreeFontTk_LowerCmdTkCreateCursorFromDataXRootWindowTkWmMapWindowXResizeWindowTk_CreateGenericHandlerTk_NameOf3DBordertkMainWindowListtkTextCharUidTcl_DStringResulttkTextLeftMarkTypeTk_ClipboardClearmemcmpXSetSelectionOwnerXDestroyICTk_SetClassTk_RadiobuttonCmdatanTkInitXIdTk_CheckbuttonCmdTcl_CreateInterpXEmptyRegionendpwentXKeysymToStringTkBTreePrevTagTcl_ConvertElementXSetErrorHandlerTkComputeTextGeometryTkTextIndexForwCharsTk_NameOfCapStyleTk_OptionCmdTkFocusDeadWindowXRaiseWindowXPutImageXQueryPointerXCreateICTkEventDeadWindowTkFillPolygonTcl_SetVar2Tcl_PreserveTk_PhotoPutBlocktkDisabledUidTk_TkwaitCmd.divXSetClassHintTkBTreeCheckXNoOp__filbufTcl_CloseTkTextCharLayoutProcXGetWindowAttributesTk_NameOfColorTkTextBindProcmemcpyTk_MenuCmdTk_UnmaintainGeometryTk_UndefineCursorTcl_ExitTk_ScrollbarCmdstrlenXGetGeometryXSetWindowBorderPixmapTkBTreeUnlinkSegmentTk_Fill3DPolygonXUnionRectWithRegionTkSelDeadWindowTcl_DeleteChannelHandlerTk_SetWindowColormapTk_SetGridTkCopyAndGlobalEvalstrstrTkTextCharBboxTcl_GetIntTcl_GetCommandNameXFreeModifiermapTkTextFreeTagTcl_BackgroundErrorTk_ImageCmdTcl_UnlinkVarXWithdrawWindowtkPolygonTypeTkCreateXEventSourcetkActiveUidXChangeWindowAttributesTcl_GetStdChannelTk_NameOfImageTk_CreateWindowFromPathTk_NameToWindowsinTkMakeBezierCurvetkImageTypeTk_SizeOfImageTk_GetUidTkTextPixelIndexTcl_DStringFreefprintfTk_NameOfFontStructXGetImageTcl_AppendResultTk_HandleEventTcl_SplitListXCreateBitmapFromDataisattyTkPolygonToPointXmbLookupStringXLoadFontXDrawLinesTk_Draw3DRectangleTk_SelectionCmdcosTcl_SetAssocDataTk_DestroyWindowXInternAtomTk_SetWindowBackgroundPixmapXListHostsTk_GetCursorTk_GetOpenFileCmdas: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2as: SC4.2 dev 30 Nov 1995 GCC: (GNU) 2.7.2.hash.dynsym.dynstr.rela.data.rela.got.rela.plt.text.rodata.got.dynamic.plt.data.bss.symtab.strtab.comment.shstrtab HH*A(A('hh^  "DŽDŽ}  ,EE|  6__h<D )I  hR 8 8 W , ,Y]  b  j y r  N{ 07070100004a27000041ed00000064000000640000000333766dd300000000000000200000001b00000000000000000000001000000009reloc/lib/tk4.207070100004a29000081a400000064000000640000000133766d080000099c000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/bgerror.tcl# bgerror.tcl -- # # This file contains a default version 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. # # SCCS: @(#) bgerror.tcl 1.9 96/05/02 10:17:11 # # Copyright (c) 1992-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 following declaration servers no purpose other than to generate # a tclIndex entry for "tkerror". Since tkerror and bgerror are hard-wired # by the Tcl interpreter to be synonyms, the definition of tkerror is # immediately overridden when bgerror is defined. proc tkerror {} {} # bgerror -- # This is the default version of bgerror. 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 bgerror err { global errorInfo set info $errorInfo set button [tk_dialog .bgerrorDialog "Error in Tcl Script" \ "Error: $err" error 0 OK "Skip Messages" "Stack Trace"] if {$button == 0} { return } elseif {$button == 1} { return -code break } set w .bgerrorTrace catch {destroy $w} toplevel $w -class ErrorTrace wm minsize $w 1 1 wm title $w "Stack Trace for Error" wm iconname $w "Stack Trace" button $w.ok -text OK -command "destroy $w" text $w.text -relief sunken -bd 2 -yscrollcommand "$w.scroll set" \ -setgrid true -width 60 -height 20 scrollbar $w.scroll -relief sunken -command "$w.text yview" pack $w.ok -side bottom -padx 3m -pady 2m pack $w.scroll -side right -fill y pack $w.text -side left -expand yes -fill both $w.text insert 0.0 $info $w.text mark set insert 0.0 # Center the window on the screen. 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]]] wm geom $w +$x+$y wm deiconify $w # Be sure to release any grabs that might be present on the # screen, since they could make it impossible for the user # to interact with the stack trace. if {[grab current .] != ""} { grab release [grab current .] } } 07070100004a2a000081a400000064000000640000000133766d09000011c3000000200000001b00000000000000000000001b00000009reloc/lib/tk4.2/button.tcl# 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. # # SCCS: @(#) button.tcl 1.19 96/02/20 13:01:32 # # Copyright (c) 1992-1994 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. # #------------------------------------------------------------------------- # The code below creates the default class bindings for buttons. #------------------------------------------------------------------------- bind Button {} bind Button { tkButtonEnter %W } bind Button { tkButtonLeave %W } bind Button <1> { tkButtonDown %W } bind Button { tkButtonUp %W } bind Button { tkButtonInvoke %W } bind Checkbutton {} bind Checkbutton { tkButtonEnter %W } bind Checkbutton { tkButtonLeave %W } bind Checkbutton <1> { tkCheckRadioInvoke %W } bind Checkbutton { tkCheckRadioInvoke %W } bind Checkbutton { if !$tk_strictMotif { tkCheckRadioInvoke %W } } bind Radiobutton {} bind Radiobutton { tkButtonEnter %W } bind Radiobutton { tkButtonLeave %W } bind Radiobutton <1> { tkCheckRadioInvoke %W } bind Radiobutton { tkCheckRadioInvoke %W } bind Radiobutton { if !$tk_strictMotif { tkCheckRadioInvoke %W } } # tkButtonEnter -- # 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 tkButtonEnter {w} { global tkPriv if {[$w cget -state] != "disabled"} { $w config -state active if {$tkPriv(buttonWindow) == $w} { $w configure -state active -relief sunken } } set tkPriv(window) $w } # tkButtonLeave -- # 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 (tkPriv(buttonWindow) == $w), restore the relief of the # button too. # # Arguments: # w - The name of the widget. proc tkButtonLeave w { global tkPriv if {[$w cget -state] != "disabled"} { $w config -state normal } if {$w == $tkPriv(buttonWindow)} { $w configure -relief $tkPriv(relief) } set tkPriv(window) "" } # tkButtonDown -- # 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 tkButtonDown w { global tkPriv set tkPriv(relief) [lindex [$w config -relief] 4] if {[$w cget -state] != "disabled"} { set tkPriv(buttonWindow) $w $w config -relief sunken } } # tkButtonUp -- # 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 tkButtonUp w { global tkPriv if {$w == $tkPriv(buttonWindow)} { set tkPriv(buttonWindow) "" $w config -relief $tkPriv(relief) if {($w == $tkPriv(window)) && ([$w cget -state] != "disabled")} { uplevel #0 [list $w invoke] } } } # tkButtonInvoke -- # 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 tkButtonInvoke w { if {[$w cget -state] != "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] } } # tkCheckRadioInvoke -- # 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. proc tkCheckRadioInvoke w { if {[$w cget -state] != "disabled"} { uplevel #0 [list $w invoke] } } 07070100004a2b000081a400000064000000640000000133766d0b00004d35000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/clrpick.tcl# clrpick.tcl -- # # Color selection dialog for platforms that do not support a # standard color selection dialog. # # SCCS: @(#) clrpick.tcl 1.3 96/09/05 09:59:24 # # 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. # # tkColorDialog -- # # 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 tkColorDialog {args} { global tkPriv set w .__tk__color upvar #0 $w data # 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) 8 # 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) 128 # 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 tkColorDialog_Config $w $args tkColorDialog_InitValues $w if ![winfo exists $w] { toplevel $w -class tkColorDialog tkColorDialog_BuildDialog $w } 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. 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]]] wm geom $w +$x+$y wm deiconify $w wm title $w $data(-title) # 6. Set a grab and claim the focus too. set oldFocus [focus] set oldGrab [grab current $w] if {$oldGrab != ""} { set grabStatus [grab status $oldGrab] } grab $w focus $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. tkwait variable tkPriv(selectColor) catch {focus $oldFocus} grab release $w destroy $w unset data if {$oldGrab != ""} { if {$grabStatus == "global"} { grab -global $oldGrab } else { grab $oldGrab } } return $tkPriv(selectColor) } # tkColorDialog_InitValues -- # # Get called during initialization or when user resets NUM_COLORBARS # proc tkColorDialog_InitValues {w} { upvar #0 $w 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] } # tkColorDialog_Config -- # # Parses the command line arguments to tk_chooseColor # proc tkColorDialog_Config {w argList} { global tkPriv upvar #0 $w data # 1: the configuration specs # set specs { {-initialcolor "" "" ""} {-parent "" "" "."} {-title "" "" "Color"} } # 2: parse the arguments # tclParseConfigSpec $w $specs "" $argList if ![string compare $data(-title) ""] { set data(-title) " " } if ![string compare $data(-initialcolor) ""] { if {[info exists tkPriv(selectColor)] && \ [string compare $tkPriv(selectColor) ""]} { set data(-initialcolor) $tkPriv(selectColor) } else { set data(-initialcolor) [. cget -background] } } else { if [catch {winfo rgb . $data(-initialcolor)} err] { error $err } } if ![winfo exists $data(-parent)] { error "bad window path name \"$data(-parent)\"" } } # tkColorDialog_BuildDialog -- # # Build the dialog. # proc tkColorDialog_BuildDialog {w} { upvar #0 $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] foreach c { Red Green Blue } { set color [string tolower $c] # 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] label $box.label -text $c: -width 6 -under 0 -anchor ne entry $box.entry -textvariable [format %s $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) \ "tkColorDialog_DrawColorScale $w $color 1" bind $data($color,col) \ "tkColorDialog_EnterColorBar $w $color" bind $data($color,col) \ "tkColorDialog_LeaveColorBar $w $color" bind $data($color,sel) \ "tkColorDialog_EnterColorBar $w $color" bind $data($color,sel) \ "tkColorDialog_LeaveColorBar $w $color" bind $box.entry "tkColorDialog_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 [label $selFrame.lab -text "Selection:" -under 0 -anchor sw] set ent [entry $selFrame.ent -textvariable [format %s $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 "tkColorDialog_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] button $botFrame.ok -text OK -width 8 -under 0 \ -command "tkColorDialog_OkCmd $w" button $botFrame.cancel -text Cancel -width 8 -under 0 \ -command "tkColorDialog_CancelCmd $w" set data(okBtn) $botFrame.ok set data(cancelBtn) $botFrame.cancel pack $botFrame.ok $botFrame.cancel \ -padx 10 -pady 10 -expand yes -side left pack $botFrame -side bottom -fill x # Accelerator bindings bind $w "focus $data(red,entry)" bind $w "focus $data(green,entry)" bind $w "focus $data(blue,entry)" bind $w "focus $ent" bind $w "tkButtonInvoke $data(cancelBtn)" bind $w "tkButtonInvoke $data(cancelBtn)" bind $w "tkButtonInvoke $data(okBtn)" wm protocol $w WM_DELETE_WINDOW "tkColorDialog_CancelCmd $w" } # tkColorDialog_SetRGBValue -- # # Sets the current selection of the dialog box # proc tkColorDialog_SetRGBValue {w color} { upvar #0 $w data set data(red,intensity) [lindex $color 0] set data(green,intensity) [lindex $color 1] set data(blue,intensity) [lindex $color 2] tkColorDialog_RedrawColorBars $w all # Now compute the new x value of each colorbars pointer polygon foreach color { red green blue } { set x [tkColorDialog_RgbToX $w $data($color,intensity)] tkColorDialog_MoveSelector $w $data($color,sel) $color $x 0 } } # tkColorDialog_XToRgb -- # # Converts a screen coordinate to intensity # proc tkColorDialog_XToRgb {w x} { upvar #0 $w data return [expr ($x * $data(intensityIncr))/ $data(colorbarWidth)] } # tkColorDialog_RgbToX # # Converts an intensity to screen coordinate. # proc tkColorDialog_RgbToX {w color} { upvar #0 $w data return [expr ($color * $data(colorbarWidth)/ $data(intensityIncr))] } # tkColorDialog_DrawColorScale -- # # Draw color scale is called whenever the size of one of the color # scale canvases is changed. # proc tkColorDialog_DrawColorScale {w c {create 0}} { global lines upvar #0 $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 tkColorDialog_CreateSelector $w $sel $c $sel bind $data($c,index) \ "tkColorDialog_StartMove $w $sel $c %x $data(selPad) 1" $sel bind $data($c,index) \ "tkColorDialog_MoveSelector $w $sel $c %x $data(selPad)" $sel bind $data($c,index) \ "tkColorDialog_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 \ "tkColorDialog_StartMove $w $sel $c %x $data(colorPad)" bind $col \ "tkColorDialog_MoveSelector $w $sel $c %x $data(colorPad)" bind $col \ "tkColorDialog_ReleaseMouse $w $sel $c %x $data(colorPad)" $sel bind $data($c,clickRegion) \ "tkColorDialog_StartMove $w $sel $c %x $data(selPad)" $sel bind $data($c,clickRegion) \ "tkColorDialog_MoveSelector $w $sel $c %x $data(selPad)" $sel bind $data($c,clickRegion) \ "tkColorDialog_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 == "red" } { set color [format "#%02x%02x%02x" \ $intensity \ $data(green,intensity) \ $data(blue,intensity)] } elseif { $c == "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 itemconf $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 ] } tkColorDialog_RedrawFinalColor $w } # tkColorDialog_CreateSelector -- # # Creates and draws the selector polygon at the position # $data($c,intensity). # proc tkColorDialog_CreateSelector {w sel c } { upvar #0 $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) [tkColorDialog_RgbToX $w $data($c,intensity)] $sel move $data($c,index) $data($c,x) 0 } # tkColorDialog_RedrawFinalColor # # Combines the intensities of the three colors into the final color # proc tkColorDialog_RedrawFinalColor {w} { upvar #0 $w data set color [format "#%02x%02x%02x" $data(red,intensity) \ $data(green,intensity) $data(blue,intensity)] $data(finalCanvas) conf -bg $color set data(finalColor) $color set data(selection) $color set data(finalRGB) [list \ $data(red,intensity) \ $data(green,intensity) \ $data(blue,intensity)] } # tkColorDialog_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 tkColorDialog_RedrawColorBars {w colorChanged} { upvar #0 $w data switch $colorChanged { red { tkColorDialog_DrawColorScale $w green tkColorDialog_DrawColorScale $w blue } green { tkColorDialog_DrawColorScale $w red tkColorDialog_DrawColorScale $w blue } blue { tkColorDialog_DrawColorScale $w red tkColorDialog_DrawColorScale $w green } default { tkColorDialog_DrawColorScale $w red tkColorDialog_DrawColorScale $w green tkColorDialog_DrawColorScale $w blue } } tkColorDialog_RedrawFinalColor $w } #---------------------------------------------------------------------- # Event handlers #---------------------------------------------------------------------- # tkColorDialog_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 tkColorDialog_StartMove {w sel color x delta {dontMove 0}} { upvar #0 $w data if !$dontMove { tkColorDialog_MoveSelector $w $sel $color $x $delta } } # tkColorDialog_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 tkColorDialog_MoveSelector {w sel color x delta} { upvar #0 $w data incr x -$delta if { $x < 0 } { set x 0 } elseif { $x >= $data(BARS_WIDTH)} { set x [expr $data(BARS_WIDTH) - 1] } 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 } # tkColorDialog_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 tkColorDialog_ReleaseMouse {w sel color x delta} { upvar #0 $w data set x [tkColorDialog_MoveSelector $w $sel $color $x $delta] # Determine exactly what color we are looking at. set data($color,intensity) [tkColorDialog_XToRgb $w $x] tkColorDialog_RedrawColorBars $w $color } # tkColorDialog_ResizeColorbars -- # # Completely redraws the colorbars, including resizing the # colorstrips # proc tkColorDialog_ResizeColorBars {w} { upvar #0 $w data if { ($data(BARS_WIDTH) < $data(NUM_COLORBARS)) || (($data(BARS_WIDTH) % $data(NUM_COLORBARS)) != 0)} { set data(BARS_WIDTH) $data(NUM_COLORBARS) } tkColorDialog_InitValues $w foreach color { red green blue } { $data($color,col) conf -width $data(canvasWidth) tkColorDialog_DrawColorScale $w $color 1 } } # tkColorDialog_HandleSelEntry -- # # Handles the return keypress event in the "Selection:" entry # proc tkColorDialog_HandleSelEntry {w} { upvar #0 $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] tkColorDialog_SetRGBValue $w "$R $G $B" set data(selection) $text } # tkColorDialog_HandleRGBEntry -- # # Handles the return keypress event in the R, G or B entry # proc tkColorDialog_HandleRGBEntry {w} { upvar #0 $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 } } tkColorDialog_SetRGBValue $w "$data(red,intensity) $data(green,intensity) \ $data(blue,intensity)" } # mouse cursor enters a color bar # proc tkColorDialog_EnterColorBar {w color} { upvar #0 $w data $data($color,sel) itemconfig $data($color,index) -fill red } # mouse leaves enters a color bar # proc tkColorDialog_LeaveColorBar {w color} { upvar #0 $w data $data($color,sel) itemconfig $data($color,index) -fill black } # user hits OK button # proc tkColorDialog_OkCmd {w} { global tkPriv upvar #0 $w data set tkPriv(selectColor) $data(finalColor) } # user hits Cancel button # proc tkColorDialog_CancelCmd {w} { global tkPriv set tkPriv(selectColor) "" } 07070100004a2c000081a400000064000000640000000133766d0c00001d42000000200000001b00000000000000000000001b00000009reloc/lib/tk4.2/comdlg.tcl# comdlg.tcl -- # # Some functions needed for the common dialog boxes. Probably need to go # in a different file. # # SCCS: @(#) comdlg.tcl 1.4 96/09/05 09:07:54 # # 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 {[expr [llength $argList] %2] != 0} { foreach {cmdsw value} $argList { if ![info exists cmd($cmdsw)] { error "unknown option \"$cmdsw\", must be [tclListValidFlags cmd]" } } error "value for \"[lindex $argList end]\" 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 "unknown 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 } # This procedure is used to sort strings in a case-insenstive mode. # proc tclSortNoCase {str1 str2} { return [string compare [string toupper $str1] [string toupper $str2]] } # Gives an error if the string does not contain a valid integer # number # proc tclVerifyInteger {string} { lindex {1 2 3} $string } #---------------------------------------------------------------------- # # 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. # #---------------------------------------------------------------------- # tkFocusGroup_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 tkFocusGroup_Create {t} { global tkPriv if [string compare [winfo toplevel $t] $t] { error "$t is not a toplevel window" } if ![info exists tkPriv(fg,$t)] { set tkPriv(fg,$t) 1 set tkPriv(focus,$t) "" bind $t "tkFocusGroup_In $t %W %d" bind $t "tkFocusGroup_Out $t %W %d" bind $t "tkFocusGroup_Destroy $t %W" } } # tkFocusGroup_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 tkFocusGroup_BindIn {t w cmd} { global tkFocusIn tkPriv if ![info exists tkPriv(fg,$t)] { error "focus group \"$t\" doesn't exist" } set tkFocusIn($t,$w) $cmd } # tkFocusGroup_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 tkFocusGroup_BindOut {t w cmd} { global tkFocusOut tkPriv if ![info exists tkPriv(fg,$t)] { error "focus group \"$t\" doesn't exist" } set tkFocusOut($t,$w) $cmd } # tkFocusGroup_Destroy -- # # Cleans up when members of the focus group is deleted, or when the # toplevel itself gets deleted. # proc tkFocusGroup_Destroy {t w} { global tkPriv tkFocusIn tkFocusOut if ![string compare $t $w] { unset tkPriv(fg,$t) unset tkPriv(focus,$t) foreach name [array names tkFocusIn $t,*] { unset tkFocusIn($name) } foreach name [array names tkFocusOut $t,*] { unset tkFocusOut($name) } } else { if [info exists tkPriv(focus,$t)] { if ![string compare $tkPriv(focus,$t) $w] { set tkPriv(focus,$t) "" } } catch { unset tkFocusIn($t,$w) } catch { unset tkFocusOut($t,$w) } } } # tkFocusGroup_In -- # # Handles the event. Calls the FocusIn command for the newly # focused widget in the focus group. # proc tkFocusGroup_In {t w detail} { global tkPriv tkFocusIn if ![info exists tkFocusIn($t,$w)] { set tkFocusIn($t,$w) "" return } if ![info exists tkPriv(focus,$t)] { return } if ![string compare $tkPriv(focus,$t) $w] { # This is already in focus # return } else { set tkPriv(focus,$t) $w eval $tkFocusIn($t,$w) } } # tkFocusGroup_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 tkFocusGroup_Out {t w detail} { global tkPriv tkFocusOut if {[string compare $detail NotifyNonlinear] && [string compare $detail NotifyNonlinearVirtual]} { # This is caused by mouse moving out of the window return } if ![info exists tkPriv(focus,$t)] { return } if ![info exists tkFocusOut($t,$w)] { return } else { eval $tkFocusOut($t,$w) set tkPriv(focus,$t) "" } } # tkFDGetFileTypes -- # # 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 tkFDGetFileTypes {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 "" foreach ext $fileTypes($label) { if ![string compare $ext ""] { continue } regsub {^[.]} $ext "*." ext if ![info exists hasGotExt($label,$ext)] { 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 } 07070100004a2d000081a400000064000000640000000133766d0d000027e7000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/console.tcl# 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. # # SCCS: @(#) console.tcl 1.34 96/08/26 20:14:30 # # Copyright (c) 1995-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: history - remember partially written command # tkConsoleInit -- # This procedure constructs and configures the console windows. # # Arguments: # None. proc tkConsoleInit {} { global tcl_platform if {[info commands macscrollbar] == "macscrollbar"} { # Use the native scrollbar for the console rename scrollbar "" rename macscrollbar scrollbar } text .console -yscrollcommand ".sb set" -setgrid true scrollbar .sb -command ".console yview" pack .sb -side right -fill both pack .console -fill both -expand 1 -side left if {$tcl_platform(platform) == "macintosh"} { after idle {.console configure -font {Monaco 9 normal}} .sb configure -bg white .console configure -bg white -bd 0 -highlightthickness 0 \ -selectbackground black -selectforeground white \ -selectborderwidth 0 -insertwidth 1 .console tag configure sel -relief ridge bind .console { .console tag configure sel -borderwidth 0 .console configure -selectbackground black -selectforeground white } bind .console { .console tag configure sel -borderwidth 2 .console configure -selectbackground white -selectforeground black } } tkConsoleBind .console .console tag configure stderr -foreground red .console tag configure stdin -foreground blue focus .console wm protocol . WM_DELETE_WINDOW { wm withdraw . } wm title . "Console" flush stdout .console mark set output [.console index "end - 1 char"] tkTextSetCursor .console end .console mark set promptEnd insert .console mark gravity promptEnd left } # tkConsoleInvoke -- # 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 tkConsoleInvoke {args} { set ranges [.console tag ranges input] set cmd "" if {$ranges != ""} { set pos 0 while {[lindex $ranges $pos] != ""} { set start [lindex $ranges $pos] set end [lindex $ranges [incr pos]] append cmd [.console get $start $end] incr pos } } if {$cmd == ""} { tkConsolePrompt } elseif [info complete $cmd] { .console mark set output end .console tag delete input set result [interp record $cmd] if {$result != ""} { .console insert insert "$result\n" } tkConsoleHistory reset tkConsolePrompt } else { tkConsolePrompt partial } .console yview -pickplace insert } # tkConsoleHistory -- # 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 global variable # histNum is used to store the current location in the history. # # Arguments: # cmd - Which action to take: prev, next, reset. set histNum 1 proc tkConsoleHistory {cmd} { global 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 {interp 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 != ""} { catch {interp eval $cmd} cmd } .console delete promptEnd end .console insert promptEnd $cmd {input stdin} } reset { set histNum 1 } } } # tkConsolePrompt -- # 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 tkConsolePrompt {{partial normal}} { if {$partial == "normal"} { set temp [.console index "end - 1 char"] .console mark set output end if [interp eval "info exists tcl_prompt1"] { interp eval "eval \[set tcl_prompt1\]" } else { puts -nonewline "% " } } else { set temp [.console index output] .console mark set output end if [interp eval "info exists tcl_prompt2"] { interp eval "eval \[set tcl_prompt2\]" } else { puts -nonewline "> " } } flush stdout .console mark set output $temp tkTextSetCursor .console end .console mark set promptEnd insert .console mark gravity promptEnd left } # tkConsoleBind -- # 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 tkConsoleBind {win} { bindtags $win "$win Text . all" # 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 $win {# nothing } bind $win {# nothing} bind $win {# nothing} bind $win {# nothing} bind $win {# nothing} bind $win { tkConsoleInsert %W \t focus %W break } bind $win { %W mark set insert {end - 1c} tkConsoleInsert %W "\n" tkConsoleInvoke break } bind $win { if {[%W tag nextrange sel 1.0 end] != ""} { %W tag remove sel sel.first promptEnd } else { if [%W compare insert < promptEnd] { break } } } bind $win { if {[%W tag nextrange sel 1.0 end] != ""} { %W tag remove sel sel.first promptEnd } else { if [%W compare insert <= promptEnd] { break } } } foreach left {Control-a Home} { bind $win <$left> { if [%W compare insert < promptEnd] { tkTextSetCursor %W {insert linestart} } else { tkTextSetCursor %W promptEnd } break } } foreach right {Control-e End} { bind $win <$right> { tkTextSetCursor %W {insert lineend} break } } bind $win { if [%W compare insert < promptEnd] { break } } bind $win { if [%W compare insert < promptEnd] { %W mark set insert promptEnd } } bind $win { if [%W compare insert < promptEnd] { break } } bind $win { if [%W compare insert < promptEnd] { break } } bind $win { if [%W compare insert <= promptEnd] { break } } bind $win { if [%W compare insert <= promptEnd] { break } } foreach prev {Control-p Up} { bind $win <$prev> { tkConsoleHistory prev break } } foreach prev {Control-n Down} { bind $win <$prev> { tkConsoleHistory next break } } bind $win { if [%W compare insert > promptEnd] { catch { %W insert insert [selection get -displayof %W] {input stdin} %W see insert } } break } bind $win { catch {tkConsoleInsert %W [selection get -displayof %W]} break } bind $win { tkConsoleInsert %W %A break } foreach left {Control-b Left} { bind $win <$left> { if [%W compare insert == promptEnd] { break } tkTextSetCursor %W insert-1c break } } foreach right {Control-f Right} { bind $win <$right> { tkTextSetCursor %W insert+1c break } } bind $win { eval destroy [winfo child .] if {$tcl_platform(platform) == "macintosh"} { source -rsrc Console } else { source [file join $tk_library console.tcl] } } bind $win <> { continue } bind $win <> { if {[selection own -displayof %W] == "%W"} { clipboard clear -displayof %W catch { clipboard append -displayof %W [selection get -displayof %W] } } break } bind $win <> { catch { set clip [selection get -displayof %W -selection CLIPBOARD] set list [split $clip \n\r] tkConsoleInsert %W [lindex $list 0] foreach x [lrange $list 1 end] { %W mark set insert {end - 1c} tkConsoleInsert %W "\n" tkConsoleInvoke tkConsoleInsert %W $x } } break } } # tkConsoleInsert -- # 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 tkConsoleInsert {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 } } if {[$w compare insert < promptEnd]} { $w mark set insert end } $w insert insert $s {input stdin} $w see insert } # tkConsoleOutput -- # # 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 tkConsoleOutput {dest string} { .console insert output $string $dest .console see insert } # tkConsoleExit -- # # This routine is called by ConsoleEventProc when the main window of # the application is destroyed. # # Arguments: # None. proc tkConsoleExit {} { exit } # now initialize the console tkConsoleInit 070701000058de000041ed00000064000000640000000333766dd300000000000000200000001b00000000000000000000001600000009reloc/lib/tk4.2/demos070701000058df000081a400000064000000640000000133766d2a0000084b000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/READMEThis 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. sccs id = SCCS: @(#) README 1.3 96/02/16 10:49:14 070701000058e0000081a400000064000000640000000133766d2b00001f17000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/arrow.tcl# arrow.tcl -- # # This demonstration script creates a canvas widget that displays a # large line with an arrowhead whose shape can be edited interactively. # # SCCS: @(#) arrow.tcl 1.6 96/04/12 12:08:30 # 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) -width [expr 10*$v(width)] \ -arrowshape {[expr 10*$v(a)] [expr 10*$v(b)] [expr 10*$v(c)]} \ -arrow last $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] $v(boxStyle) \ -tags {box1 box}" eval "$c create rect [expr $xtip-5] [expr $v(y)-$deltaY-5] \ [expr $xtip+5] [expr $v(y)-$deltaY+5] $v(boxStyle) \ -tags {box2 box}" 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] $v(boxStyle) \ -tags {box3 box}" 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-Medium-R-Normal--*-180-*-*-*-*-*-* $c create text $v(x1) 330 -text "-arrowshape {$v(a) $v(b) $v(c)}" \ -anchor w -font -*-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-* 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 } } 070701000058e1000081a400000064000000640000000133766d2b00000b94000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/bind.tcl# bind.tcl -- # # This demonstration script creates a text widget with bindings set # up for hypertext-like effects. # # SCCS: @(#) bind.tcl 1.5 96/04/12 11:48:26 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 070701000058e2000081a400000064000000640000000133766d2c000005d3000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/bitmap.tcl# bitmap.tcl -- # # This demonstration script creates a toplevel window that displays # all of Tk's built-in bitmaps. # # SCCS: @(#) bitmap.tcl 1.4 96/02/16 10:49:27 # 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 gray50 hourglass bitmapRow $w.frame.1 info question questhead warning pack $w.frame -side top -expand yes -fill both 070701000058e4000081a400000064000000640000000133766d2c0000063d000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/browse#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # browse -- # This script generates a directory browser, which lists the working # directory and allows you to open files or subdirectories by # double-clicking. # # SCCS: @(#) browse 1.8 96/02/16 10:49:18 # 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. proc browse {dir file} { global env if {[string compare $dir "."] != 0} {set file $dir/$file} if [file isdirectory $file] { exec browse $file & } else { if [file isfile $file] { if [info exists env(EDITOR)] { eval exec $env(EDITOR) $file & } else { exec xedit $file & } } else { puts stdout "\"$file\" isn't a directory or regular file" } } } # Fill the listbox with a list of all the files in the directory (run # the "ls" command to get that information). if $argc>0 {set dir [lindex $argv 0]} else {set dir "."} foreach i [exec ls -a $dir] { .list insert end $i } # Set up bindings for the browser. bind all {destroy .} bind .list {foreach i [selection get] {browse $dir $i}} 070701000058e5000081a400000064000000640000000133766d2d00000552000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/button.tcl# button.tcl -- # # This demonstration script creates a toplevel window containing # several button widgets. # # SCCS: @(#) button.tcl 1.4 96/08/20 15:50:22 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 070701000058e6000081a400000064000000640000000133766d2d000004df000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/check.tcl# check.tcl -- # # This demonstration script creates a toplevel window containing # several checkbuttons. # # SCCS: @(#) check.tcl 1.3 96/02/16 10:49:37 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 070701000058e7000081a400000064000000640000000133766d2e000005e2000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/clrpick.tcl# clrpick.tcl -- # # This demonstration script prompts the user to select a color. # # SCCS: @(#) clrpick.tcl 1.2 96/12/08 19:58:54 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 } } 070701000058e8000081a400000064000000640000000133766d2e000013cf000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/colors.tcl# 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. # # SCCS: @(#) colors.tcl 1.3 96/02/16 10:49:41 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 070701000058ec000081a400000064000000640000000133766d2f00000bf2000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/cscroll.tcl# cscroll.tcl -- # # This demonstration script creates a simple canvas that can be # scrolled in two dimensions. # # SCCS: @(#) cscroll.tcl 1.5 96/10/04 17:09:36 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" 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]" } 070701000058ed000081a400000064000000640000000133766d2f00001385000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/ctext.tcl# ctext.tcl -- # # This demonstration script creates a canvas widget with a text # item that can be edited and reconfigured in various ways. # # SCCS: @(#) ctext.tcl 1.4 96/02/16 10:49:16 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-Medium-R-Normal--*-240-*-*-*-*-*-* $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-Medium-R-Normal--*-240-*-*-*-*-*-* -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 [expr $x] [expr $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-medium-r-normal--*-240-*-*-*-*-*-* -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] [expr $y] -justify center $color mkTextConfig $c [expr $x+60] [expr $y] -justify right $color $c create text [expr $x+45] [expr $y-5] -text {Justification} -anchor s \ -font -*-times-medium-r-normal--*-240-*-*-*-*-*-* -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 } 070701000058ee000081a400000064000000640000000133766d2f000002c5000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/dialog1.tcl# dialog1.tcl -- # # This demonstration script creates a dialog box with a local grab. # # SCCS: @(#) dialog1.tcl 1.2 96/02/16 10:49:52 after idle {.dialog1.msg configure -wraplength 4i} set i [tk_dialog .dialog1 "Dialog with local grab" {This is a modal dialog box. It uses Tk's "grab" command to create a "local grab" on the dialog box. The grab prevents any pointer-related events from getting to any other windows in the application until you have answered the dialog by invoking one of the buttons below. However, you can still interact with other applications.} \ info 0 OK Cancel {Show Code}] switch $i { 0 {puts "You pressed OK"} 1 {puts "You pressed Cancel"} 2 {showCode .dialog1} } 070701000058ef000081a400000064000000640000000133766d3000000295000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/dialog2.tcl# dialog2.tcl -- # # This demonstration script creates a dialog box with a global grab. # # SCCS: @(#) dialog2.tcl 1.2 96/02/16 10:49:53 after idle { .dialog2.msg configure -wraplength 4i } after 100 { grab -global .dialog2 } set i [tk_dialog .dialog2 "Dialog with local grab" {This dialog box uses a global grab, so it prevents you from interacting with anything on your display until you invoke one of the buttons below. Global grabs are almost always a bad idea; don't use them unless you're truly desperate.} warning 0 OK Cancel {Show Code}] switch $i { 0 {puts "You pressed OK"} 1 {puts "You pressed Cancel"} 2 {showCode .dialog2} } 070701000058f0000081a400000064000000640000000133766d30000005e2000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/entry1.tcl# entry1.tcl -- # # This demonstration script creates several entry widgets without # scrollbars. # # SCCS: @(#) entry1.tcl 1.3 96/02/16 10:49:44 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 -relief sunken entry $w.e2 -relief sunken entry $w.e3 -relief sunken 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." 070701000058f1000081a400000064000000640000000133766d31000008b8000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/entry2.tcl# entry2.tcl -- # # This demonstration script is the same as the entry1.tcl script # except that it creates scrollbars for the entries. # # SCCS: @(#) entry2.tcl 1.3 96/02/16 10:49:45 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 -relief sunken -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 -relief sunken -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 -relief sunken -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." 070701000058f2000081a400000064000000640000000133766d32000007db000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/filebox.tcl# filebox.tcl -- # # This demonstration script prompts the user to select a file. # # SCCS: @(#) filebox.tcl 1.2 96/08/27 15:03:26 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 } 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 } } 070701000058f3000081a400000064000000640000000133766d3300013587000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/floor.tcl# floor.tcl -- # # This demonstration script creates a canvas widet that displays the # floorplan for DEC's Western Research Laboratory. # # SCCS: @(#) floor.tcl 1.5 96/10/04 17:09:37 # 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" 070701000058f4000081a400000064000000640000000133766d3300000460000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/form.tcl# form.tcl -- # # This demonstration script creates a simple form with a bunch # of entry widgets. # # SCCS: @(#) form.tcl 1.4 96/02/16 10:49:30 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 070701000058f5000081a400000064000000640000000133766d34000001ed000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/demos/hello#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # hello -- # Simple Tk script to create a button that prints "Hello, world". # Click on the button to terminate the program. # # SCCS: @(#) hello 1.6 96/02/16 10:49:18 # # 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 070701000058f6000081a400000064000000640000000133766d3500000623000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/hscale.tcl# hscale.tcl -- # # This demonstration script shows an example with a horizontal scale. # # SCCS: @(#) hscale.tcl 1.3 96/02/16 10:49:47 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 } 070701000058f7000081a400000064000000640000000133766d3500000824000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/icon.tcl# icon.tcl -- # # This demonstration script creates a toplevel window containing # buttons that display bitmaps instead of text. # # SCCS: @(#) icon.tcl 1.7 96/04/12 11:54:38 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 070701000058f8000081a400000064000000640000000133766d3600000402000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/image1.tcl# image1.tcl -- # # This demonstration script displays two image widgets. # # SCCS: @(#) image1.tcl 1.5 96/08/20 15:50:44 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 070701000058f9000081a400000064000000640000000133766d36000009c7000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/image2.tcl# image2.tcl -- # # This demonstration script creates a simple collection of widgets # that allow you to select and view images in a Tk label. # # SCCS: @(#) image2.tcl 1.8 96/08/20 16:53:29 # 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 [file join $dirName *]]] { $w.f.list insert end [file tail $i] } } # 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 label $w.dirLabel -text "Directory:" set dirName [file join $tk_library demos images] entry $w.dirName -width 30 -textvariable dirName bind $w.dirName "loadDir $w" frame $w.spacer1 -height 3m -width 20 label $w.fileLabel -text "File:" frame $w.f pack $w.dirLabel $w.dirName $w.spacer1 $w.fileLabel $w.f -side top -anchor w 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 frame $w.spacer2 -height 3m -width 20 label $w.imageLabel -text "Image:" label $w.image -image image2a pack $w.spacer2 $w.imageLabel $w.image -side top -anchor w 070701000067e3000041ed00000064000000640000000233766dd200000000000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/images070701000067e4000081a400000064000000640000000133766d430000ca00000000200000001b00000000000000000000002700000009reloc/lib/tk4.2/demos/images/earth.gifGIF87a@        ( (( 00(88(88(@80@@0@H0@H8@80H@0HH0H88H@8HH8HP8HX8HH@HP@HX@H`@H80P@0P88P@8PH8PP8P@@PH@PP@PX@P`@PPHPXHP`HPhHP88X@8XH8XP8X@@XH@XP@XX@XHHXPHXXHX`HXhHXXPX`PXhPXpPXhXX@@`H@`P@`HH`PH`XH``H`PP`XP``P`hP`pP``X`hX`pX`xX`p``x``H@hHHhPHhXHh`HhPPhXPh`PhhPhpPhXXh`XhhXhpXhxXhh`hp`hx`h`hxhhhhhhPPpXPp`PpXXp`XphXppXph`pp`px`p`pphpxhphphphpppppppppxpxpPPxXXx`XxhXxh`xp`xx`xphxxhxhxhxxpxpxpxpxpxxxxxxxxxxxxxh`phxhxpppxxxxxxxxȨȰȨȰаиȰȸиȸȸи,@0X@ 4@B :<  D|HAC+~l8`cń D"GZ X/s+Z̘ٯ_xS`Uy괩0H|3 η P6gN.0 &]v]t:F6mo &lAe 0\Hhi1DCb5 4`A9< 3JN,XC" H'$4|>9cx# P1֫/IIJ/UU},Ք|ҋ+P $xEevYN,fq ESc$*Wc!vtمVaT]TZeڐflm@kepE)5g%q9\KTDx9\Ids$0%vY $'i@ yB00#58+XJ% ,03#}25\C}X5 +dvigݨ`n)_l㉍@.ZEcZ4֕lXZh+dZk$٤oR. $x5DqyQṯTfC+UWM$ӹk҄/h 465B%'dB!dq,-t 0D6`L0̼bU~R/aXZ8[;KXdg@kqXKu|l1tZhZUAҖmoq ed/Qo/@MJ"x$Pax 3TLL3M43i+L+\q#~(|2,RL5洓8h8g383 0p!^@:QI4oU_MH۔V^]ELָRV,j)lӆ-Jr+e0Kblrg_9@SI.%PUF9Aq@5AX` a FNu8L'шD|B0G9a;qpw&3l<,z ^P <@O / hU5-G %ZK͐3X lD[x7tL9J7`$59Np ~! U XP0^XAxbH#Rw~, n17[ 8fYZfM3uq^( F1Z3O}tϤI.!O6ԪMْR"UAD<- ܚ- 6JUbP0 _ĢC >a m2?Q5y@fz d&"HF:q i8Q n|f,Ђ8p F-miJ|M{˭~WFDhtk;AU5F4YMl4?QQK:&"u-H-ы] 9er@ "\+AO1h OX` G8EtOqql>COC2i5-H$lSz!b ,g.A@Z/0 Ap nWU eKtP| f^Fvq`b`Culf  Y ֠ 3 0 ` cF@Y dQij#>*Op+BE*`x7,!oOs>,G"?iI?P-"I %T,WQncj\rIqHa7/@ ` p 0gh{]^7|DT`FpavmC|0 ` < P gP< & 7OgX= _m`f=oh,- y$?q0ZHjzFbZ)jRc t@U(|Og WˆC7TcG0G`CBTUfeNG}KpTy0 `@@`0  3VgS#;gvv3t1Gi!,B!"?wHy58.Q1crE/vrqA[b ` HeX ?tӇ7Ąm@EZ]v0نtMԷ] 0 HD 3?) _Q4r#"Jsptd۹*gb{ypi-"6rGH" &bE7j"''e7Gs/ 8fu?X|[e EIerg0LLTŔְ@ζ]Rh W P@D & 033VTOQ5KWF,Dz}hw7G=U$-a6.fTa&b[mz/ r!! c@ڡ{ `:}cF0EXuf E { 1 Ъ`SP 27 3ZW!OO$b#`1#va=;aXr*I#s?j#%^2)Rr#'sj8q3w ӥ]sx0,`>B-Պ5e6aT&L%9zފ%/) İ6 ;ʩs]]%aBT؛FPTPePg`Tlz Pż[X ` '[+Xq8aSL"qƺduX[G;N‘,b"bgIaj3w4d) 4<Ч; cPa`ѦP yxllr]Cpd R0UePS`^L\̒𾨀 ' J niAbTulq}!L*Pvau!OfiYS-;YȈQc% ꘉII!k7A" ^P  ޖdg;Oѩ|Lm P  3L]> m`XPFPT`V@S0e@U˾,f } KP Jƪc͓Nl5ԏWX;[Gƞ!sq$ +hb!z :'TR1Q*#0 3LÓ]{I'=ʃ]:p p1XWK`S }PmfdW~@ kƌ ۨD H0!jrq6bl!GOA/kϽG`ay %ZJbܚr8:A[8 ŰϦ9a=]> ;pu:eLBFZE~yppT`k˽|@  }< ۈ PADLygRnhk܄,ĝ"~hz] YyAY~zJ. 9]7u]ucp Ђ]LP]0LxӵlP X7pS0K`g@~gP |p[pװ ,>  `4 BogYmsE'AȲ`>Fd^aq Aar/f4!Q0 Ġ.X`+.a-]oP.uN0v u'S`WfPYoi0p  JWlۓ ` Ple |WK>г#3ٙ`8B@fPQǀ`s`hyޗb( Q sizR   UK a`]~^>Pp]R:| HPoonjjоj UHH*Oʹ;wתUx2J D^xA"M(LBʙ%DfMxT&"1i N3p!Lxa]0lX.(Ye:V-2`PR%Vuaĉ/nqS5_B)Dz' `&XЂ Fʀ0JP.+D+XD0k, &dd˂. ;̘SF>#2̘`2J4auטx GJa0%FF"+R1&8?(+?8yN 7ԀKC4;bH@rنsRύϿn৮`u ^UNWa5 XʦdЩ/TV 4`F|ˁJ,*ZE,jGQh`H#<ߚ,J)Ev4&R̉sh-MFYn10aSLI1* 5d7" 9Ta ?">Š4@ 꾋DDMFqlSS1˯&X6d Qil[`l 0¥,lC jKķNE߲ p_ꀒ^melC7D"{mzK}a`З|xR1v#<M>yLSdiY;VL(c )X6@Ʉ +F>c5PC 5Ï?Œ4= გIalaцR7(>=Bh$V '&1ت?  Y`KR! E*ph-M- \% .|1KdDx@pF68kHHyHl*Aa`|sAa~t:]4ц0ĢSz26B"ЈGbbLј@F/h! Z7o |á (=AD&A=0<xxF0a>)}6 @ JB6MW2OJf^AzJTvh\Bny!a]Hj(. QYHB<`nE37'"#1 3% ,` V/t-q=\t! BPf#!49-0ƝF12a UB&ha o)ꔁ jJDJBh}!! u#; _DEQ9k] W5 eN~VL`nR)EC" "@Z]QWX$YHE3q$~l$;l2PA6x N@t>C' 0`F>*b4cExpo`aŌK5X0%0a@aXhH 8;2i¶&ˑ\Y :s"[JBpF@ !h*#8P3pj@f8+70>1P49>؃?M3spu`Y kH5@T&]s 8;X9i ˝@ƾ4 +1 1Yp,i;jyx TOd"1.pCF]F)qePs0nh\O8E@RB6h6OgO[ QPX848I,H7YZ`2@@ O`mWˈ#A$H|V"ѬQډ dT\ۉA  cڊȌ0iql,L"E4 sqgp[HL`68 z8;0M] }(ksX[p`ȄE0NQ1#MOȄ6hCRhMdXynpX䍃F3eHISXmIHOp*h*G$ ,p"Dz&P38+H8bebK83(KBЄWhfk]XF$ %}-  pK `+M  skh+Rċ;XaX NL#86>N X F`NXsRhbdDdHM(tpp%8!P0M F|xk@r1hRX3BhD(upeu{%/%$!1\03 *)Z#p؋C<*D3aa9Іfy؇{xmX@=(5䐄AhWi؆qpaTUPU(8%Y"^+RƲb XlJlٛHL;f TȪVZC.`.GZ\a8Qdh[pYFp1p4+9P[X#:`G{Ȇ|SK=u]@&)kp]X|?4X:0:`+H$Kj(*0A'g-@:(_A/p/(:x7(@/Єi}|_q48MVPM` .:% p% r];2W2606Ѹײ R,b,9!\NK@P/IƃC8`E@iXXЅj0Ƴ]xHiЅ#kMDD@fi{HdHfe-h|}[Pe>kHSsQXnX{Kx-й-p'ԄEPXz[8PbmJXfAkixzY'8@Hjއ}("v5?UIPahTTA$ Z9^580Aa QiWdi6 GK, HD$ 5Uj@A@h6<ȅv ZGzYh;jpub0b(]p{@jaHPqpyP +bɃ=k(6RxMȁ/8-D8ȄLGC(zip,8U9r`qOmtw}Phxs@m(D0x}FWh|9NnIOK؈km5TC 7H_t㟛X j3. b1Y^ ؋n  4 0I@[?1oXEol%G8tO ,Rh嚇{؇yPzxLPx1 Gn \rKs % 9r & /L^! uфI(L$K1U@M,%ԑ0=]Y>@_M`VUau&hejuW!z|HRK4dB%׆!p.R !ʂ#L02| )i7TC<1vxI8눳888c)tu#O>ݠ!& 5А(篿Q/g2%N1 ̼KE[Q<CBI'BL0Ŵ7+\*UJ* Q7t@N1DH-~$FԤ%eJ,l+W+ B5xAV0 B |Bp" vmX8Jug# DeXCx-!jc=R"xDpnV,dwt08J7}c ]#8! *E7̑X M"(1Jcyw@`" SHB*`8APqѝ_!6gC &a Y\_%藊bNX .,HY0',9RN^@H "DJj3a)KD O1mIhy8H b@Ca8,"CAEጵ"́Yà1:`ְC O٨F<1c$?-v!j N7i`OP:! Q+4 q;'[jG V9$rx/ {G3"8O E0ΰ"H p;xtF-BAN G9b?!lPT9=Lx%N/L² Z6@-ɍ f.jUR}tVݮ  /֗H@(6 8AlXh g G4wpG!HG:t|27M|J g$C bb *$p-a9ZCۉ6 h" Q[h8ġ}  s#ǐY@ؐ+L WB`)1@9YmP(<ÎK _tĉ觊K QJfrkb@W,ANx\w&KT3 2WYr $ кj 3p "~.ޡ [4#H%:x= @p!UqQx$"H=aPF3qO$p2zZ(Ƹ!GbM6 qHCPF<s5ȃ0,1M l0 NAJpT>Qh8Cg%p9 TPXXx5^ĂF;ށao$ a̠$TU 2I? 6z8e"Ŭ&Jٓ"La1KY̲/eILn Z]¤=aG&!w /$6t9ʡ$ G#xD)oXp:q`¡1,{ y"Gz#!x 1牂1o*`* U@0DDp5H'`B 0;1O Ђ+B]Y/\B%(AdNqSۅ p%TTS\[Et}Wɖ0p@1UP@vuD C%tg6E"%Tx.ф@=|:8=ĊT:сBH=s["-Pp'2;ܑ5:̞>Ð};hB(`!A8|5><&B5غHC7p3PpTALT\A4p C:t|.%<-D=u>G5܂!.Ș (x68pe eC.h1# <؃9X =cLM8MWpuI$LڡLn@DZ 278h$&B%HIA!Be{ H!7P=,M;`1A80 C5CBAC6T$E/ʺl$pTrxytu]089>//90CiFP9B49`%/Ђ(&zn\ (7d7:#$~;<+!2Ȇ)CTC=X-!5:IG=B88.|c^B,_>Tsf+5pݸ=f.mz+LYBC xf޾8x7oÙ>|p+m XX3Xp#w9 O~B^1 T6ᅏKemzsI" +(8fLYC- 3c㖔iFƘDd1n9)E]z|wyyRGqdcS ḵFeɁ #$qxK&<ǝ|)XX # %/3@"8#=8È4`` y%/8+JLH%`|qFvqǜkCI@eA<Ȁk~mC7a>b{@;0=*k>5<΁{` 6?VXQeNz`Dad50 ) #hhgz Ċΰ3#Xkrf{9qiezT]l%]QǞ}'|nn(c e2*iQRJJ #~CvaC Y'fşb e*RڕME,↿(Oc̊yf4c!ÑXy L9Pd֙uEIdLD:]9f\?8k- &Po.=v=8fWJhYE>*<@a)ȘB Ez)"Ei@-c-`"(k22dF cB <.x$,Oa}0'J S(C(F)d O6<X)!xtCN "pXbbCKdhA?E p F/ j`, @5!  x1^:d E sC]1><&358Ig0:t{4La eXi]|"F.ȁ(Ѻ(yBqdpg(І<"Ip0 A B! J#/V68 t`.BZ/[8Co7.! @&Vy':V^1ϲ%#p>QS = # .ps\.%Z t G9lv8 |Q%pD(`A x@:QUE!8Q(dNSHOc'XG7aOyجHF#*j`)Phhwdc\8CMpEP 8!5 C* SHE+h!Zp/ 3h? t(2_<эrb&0@a >Ё6` <Yp0`7鎲 ;-5' L:(rqKP>ΒlƼRQIT;Qf0+A Ӹ+Z0gC5f 418Ghxn19ßF{H+hn*x-jaD ]x4V[.1>1B-:t >xa`94( oPM'$PVB0"DQjP_GY 0| Ar  F.J"|`YYʽ֪rX ְh9;@ʣ;<X`5u'yϑI r@E`lȆ1 @ ԠKX jhEhF,X5FэmL'6 F(FhPf ](؉vk(P4Q*b q#A;PeiJaeTCNAmhco݄?!.u*$1B4 2 < @aD` u34 #lD|X沏Gy|#$8T8:d; r<*`#\̄[ʣ8ZG`xPX!PP g @@B` l``6d 4 `d€ʫG!Jjft JMj! ڀ`aސO@ j ` JAA @!& @  /   `A v h  <`c#Z> T)X^(+Zn'\==EC< .RARj)s| @|`aPz{@>qO `a!hAn `$PF I!JfHl !%F! @r  hJ`#n! h"$ VlAjvJ hbJ @ t \ AZA @ d1GA,-~WYv#;w˺C˰.)k=qlX72 zARA^؁Π f @@0!t @aʡ: h| Ut d tDdG Fa>aKaJJҟ"&A&oFBMFA` g 4fOd@1, x @!SfQ @ @A0& $d `TBqAPca 6aB尒7FS\Rvvv#(<KC xQLEiLQ:`ʁx!XRT!2 @ Ё!@0Ajhp@` d&@*@nu$B*vd*R2%kfiԁ>F @ ` |* v`a `:D!lA`O .q }s }  v(L 8a2A!0F `4´O{ujZ>s: 91;().]* [4̃7?@TAh2(aaAl!!& : h ! *wr w mWOnod"%D(dL=w@*m ` ` ؠ@d@| \BaР pC!` `  B L@yO `.zؕ `2¬@ ڵ >a!h:Asdϭ:m6YTXhL(`^g8fn*ɒ=:i=#|ni? ZHVAz$,~a衶2b aܸA ޠ2h`P|uWW׈"?yde$KuW * ٖV 88o@7*l!lApal4 !` `  0S ` !rA!{ČBct8נ{dW8%[NA1qw  TZ ԧ8~pAn   aO" $ f/ @  " Jl`@߸3n!naMfRa2G rJ#Y.vV9{C*9;04,8)#{{c\zcDp# *A(R 4A`j`HwDh eڠ۠zB|{Wp `$sb!Ϊ@|pIrp`Ңap Q@X@!ja 8`/1Ǵ t n@@ 8a |~ ja~a:B*@ z@J@7.3]*:𑐅vy0㮁O@tǏ. ,32bam2aAʡ QC |eZfYbYK>`X_^Y }e_ (/9`bX$B#%$l/RI0cN6,A>D nd' "1Pc 8S.X#qő)Bt^"P01^\h[PDDPA EAlSg;[G-̑DCZAǀ$AFgaZe(AFO{D$,I"%JJUYV_cW^K $U,WOօ(U]65y/rPFh f"6K lxoІ6 Xd"pF3`A kCG76qCPp𞼍*>?`8G< qNA Ql\sfрoap0 G]9Y78 B^Hlx&F`# b)b!w_;Bpbz Ԡ4 \%(Q x ߔrTLKXv$PYb3$f^X  *&aL̸+! gQ8,C#;F8 b'`v8x#rNq7!2Xks~E;Tn xC6( X|"91?ސ@EGM, SD! & g#bB)$ bp`7ZU @ Lo 6X{@ U`BqB Fii}$Ā|Wڙ1Zh({]b$` _X4q #;tÛ͘3q% Ԁ;Q sXG;;YDʎqEKfF/&Kj* 80$$H ,2`$tdIr!wp02!A| grPQz˽']1 @!!:q`*L+@Kdݠ!ϊ.6`Dp-(~x" ĿxqH+4 d6`uX| 0ԁ ,\ G, ApFL"03n uD_+80B0KA E؉J '!d@ (hX+8;\41 -rX H[Y]V.X@ sAL2.UKG}ɮB:\C*Ș"Rq@$~W- Lb4/R%& Q nRЄ4A;48aЧ8y6FsU q1:(qTtWFJP5R7`EFr8Fג-\@ ,? ]H/Pw g@Je $QlU0 Ir h=g[P(syEB"ze'#$S>< b.bK`zpD `I4Q lT !aRe1g.QRB05 Nmp9ϵ'p*7` Q~Pap*]LdslgPS+ 8VpGEERHE%U@}qp|A9? ؐ.bp15 Jp"vw;w^ `B@#z@4}={Cw%nne>axq%AG@U?3.#?HBK!2o obrt! TW|@(20fe\vH1B@&hЋ)P8iC?p q` p ` 9ҡL_ ` ct\t;"8UBEp14Vo QSեht@@Qc:= `X %Qp_ogfs 0 s`yX{fWp(I? .3jy~Q&\AX!KZ2jgb\AXa9c%n}aT$r 0MӒ#"3.Vkf19ẑD`7659P` `r1*` `   4w:\` tPWoIp80.gЋ¨/ZWZHM~ 9ҢGzt1 !w @҈:c 0 h{ bjafcZC>`qJ &q@33@X>zWBI[XIaXP VXZҒ2Q])pG`FGy .ga J93 x ]8C\s JF ZE0ג[op`,-3) uR"-B8@cI0p P _d  h wu@f ob`og}aj`)`Jhb?ge3J?_x%dsV*|tc9KGh; &d @l=hxp "Fp@ h0'axH-gd&p>iJ =C.(gO gv M+l`_ DdA`"(Dl#%3,M-Rb4R9 -CpMP,` @p 3pt [c[ 0 fP iPwŻrp {y$p%>npqVwj@]ACsunCbn**KBbц{ ap j@ 0t {  ` @ `02`!`)#=G]Pe 藠ñʰpgyb0u Krښf’EEPRR H`A.5R9p ]uԐ $ ' ~}]z7Hjp PX3 ;Q@.}wf̦I2V˧%Vg9KVӨ%&cQͽq>dmֻp p @؜ `%( 2;<NpHrPfI)y `p maq ( >(X`U[98PALҢoY I,^ #bu,%P9%P@? @p ׂ\_ נ R|;HV;3<[`%>KԅC o|PhԄ2S[8Vy)"`e fzٮ@ q@t 0 9[@l'FB`!,+p/: *Jɫ%l ` Sc@ \L` OJ0S@\(EH@o}^M: B@E)#."(УA`970Ҷu bx /fYknCVA=VYBԖ729[XA&FYfV3֖LsK `Z 0p  p IV:BPW&A) @Ycs7rp ~~P aP F 9o jk-Ac^)9XIl:IA‚ @W` 53Rd)3a*R,RRF?oq7g$"\2`̄`A <`g?LX`g B{4 R,fNEt3 >I/^FI.5{ⲉ*f:QtY0KkW[w)Ep`%H!I)R#E5 EK (N'ouHJ$ 'bdi“MV:Pɗ5'! *Vz4AC "E!"Sf̈ 3pA$ "( ^x#2Cuyf(1p@@"4 -ԘȨb*أ,E8XC+p!B릖2-n i'*Ǚ&I)tJ*'%( rҀVET$уT&HÏEd?fZ9$d1g{|raA&<6%tX0898DtvbSulu}ǝOD08OpF[&xVA%rA;V"p@/=o $P(" " h0ta{V @H ,I 04. #8Ը"<')j,(JG(d|*0[ ( KtKj ̜ W~iI#?(88$LIPc?,שǞzࡧo{xAgqmahj&s5qE{G|nGeYƑR1$PiE(BɃE F(cN(ˆzH!rx읡P @hx -ap!18DdpCD+C"%H@B )C*c T0 Aa JAR=@zԊ %J p3E,VOҔ2= U!`&H+YĀGD@R%pE%PX0VI@#t=ⱏ}Qp:gdG9-СơA jPP=Hk(Ҩh{f5@ g0K1B FxPD,A wpDzP8 22JPlAA D 8{Rp3h Bh@ M|`>DvP HAD9E4JA"YC*`@P gp@@A FAvĬjf S§%K9YS΂&A%eʘ\2tKAKHăoXEJk/1q`$0WP WAX0h;{(,dh) a X6`4Q:u#p$a+INrt#tDXF:A8xBA( OآFq Q9( M 2 U"PjV3B&2UнjF>&&Q"CbRX0 , j*5hjP)QIH!jĂH:QOB'P)S*}i8Jrhcz g@C8r4͸+=!#+X! vH;1x,@G,a Db@'@4V?8\vzCEmj:\5jXꔱщ2RPH0=\DdB 3\ }4&(9DK$']zJ);OlĴhG\ p=D* !k 8Qr @qAFKB+7ܱ8%`Ll"DDc@'0GcCt[=p(Ht&|>dB(;  -B s$:8Eh !>! bȄ!HA>ڡ.ڢ90 P%[)h ^!p <(+$Lᕲ;)>2j/Gʂl,)B >"`5I<c9ڡ f T68 X%#+q0)^Ú`3:<ࠪ9bX fr^s`_w0whfLf8) $Ђ$u&t`q[؆qhA"C :X1%00$@hȁX(HDjK|;ӇK?\i#{1C+1@]%P@hp-0X@g,R"er+$P,(Iߚ4H4x ? 讖óX&ԑ̳ ᙫ¨x< "̳( Yk_@`Tpv*V`!7X4XE0n׾o|S"DD"T"ʘ(bbc*Y-XB=.;iإkSr?9F .Ʈ_4pHU!ERAFUl2 E`4RJRdD90TF*5GF!/5cL8SHAO H"rPJ"ŴS=4 3쐓$Vt%tD'%>I%а b! t0-h#Ps(V A#.sH'T22"x". ":X<*o裪ocM#c82PO0}x,27TKa6|"(xRL5|2+1&) Z :aC~QDAhSTaf|A$~A |pFAL4JethQFXTM]dN7Gs>fnݖz| q\뚇tXW8mȃw7ĊVA Qm]%IБ!w#1&h8P26UGA1qPtLpx,X9M1Б- l.XA  i$:{U=8:Ʃw|\ypD8A h*ei\c`D'A n p#G9ѹ\" xp`!<`uRP#4^KLbAjPЄ=A f@5yHZ v~k5b?arz8jF Tʎ"H;&}_dr\X zA +ِ"XQ +@Ca+h J"@0!=m'x >P6d[`>Gj.P4w{h)W׾(1!*pZ02`(a.pT@ O6(A RB"ucԠF(V<3%0kЄ>ATÀ҅ HDOX ֥@HGqJ8N\M;M7 X4UPO$KI >\/$/-VC9"`C 3`,l|́A^l=[-(|;Ai@,!U-$C,$܃:(ΫFoFm:5B.K;C:;K" hR&|A.|6 @<@ Fv g3LF0LDhЇ, <#XpR/V #sUZJ#@©/T;DqE6B+A.''/"t-D0 pd6|C6T7pKg49T![}σ:5B"_"h($]98.u"DAZ@hB0G-  @: 4-8BX)DTDC3B,'0"Љ7h65<6(5410010/+B!3hAA 57R6gDmrGԦT35F$mÅ8lDHԣ:CH* mD(L8=k*7D,p8xgxB)6'(BFƆB+x0B"p@ }C 8A28.C1k9tk΃Y|'kq3m @,7< R =/>:: (@ 8t+Ⱥ kځnP @PIkfmq&jVL袓hƕ:ŽCꀣ9]yz)Z8Śr҉fhL%ej&sIP:_!\miDbZgBEd[B1D.@c\xBÃDDhLz8PT<i&>phRBi~Fhf_ &\( "QPA8 Ɠ/=r(yu+O3v x`<c/?{%Xb*2?w!xUC01v8F @ 5Z t QMġy5aya XJ(F-ta c$CE:asE(F)rQjP#!Q SԈ2opI9 CK"<)A х"!@` X! bl!/#Q^@ R"4` ] c;Cr1a Rt^y|-X@|Oxp ~y޻  #geh8PW0 uAҏC) C@xq@c`6! hB J@RÜ`Zb(5lzC*/G;!e#c(DA A bXamd)dXBϐQ OB7xXBQB@D \x  xh"( <$p|t+!W?U dl -@S&@A@ZCŀ\]zŏ]g<@gyyמdZ&0" JDa<D !AH3!`D(+arxC8  -^.b((0vzs!E$@7x b!w8bXCtF1rh [|h#~]@KF3p: P0"@( uX$ R,$(a !@%@r8;~!>&1hAZw,9`8,l`@ lxpsG0,X疼tycc@ "AP5WBr!:AȀ$Rq`&, bHv̈lp:,BhF,ᎁC*HG;1 DxP7э-΢M)N eps5Z#j,x#J1c [hF.ZQWt) & bQ Qa : BTR 8!@ `@  d4n LqZ@:!H`y\v]#f;/}$fDK4F"`Cf@N4ɔ~@xA0zADcZ!2r!`!<ࡻAAdj!D~nalAl:F! 3 !Av <\*a !`!Al (@** \ E H` p ,`@H@*1y ,+\! I˺l`.E;KJ?81%8SeeL!`+>@hV- w6f)SaZ HJF! lf U$nAa! rpa5 `PBa' E@H@Wwu@@a|pv` <Zr 48` @ uyb`w2 THI2 ~`c 0> 1 @eDa": *\KVV @8h3FNa4 >` p"#nӔaF J ai. @a ! r! !oBY9'[@!` `-;C!@a^  pf@R` `qX/]βvpT\"Y?/zl1;l}lBG3$^}(_' h& h:p!!!cd'ߠ` >A h:DN t<*JAX8'BAs4ta`pFСa PEa5A `YQG-?,gB:1f,{.`hg @cZsBC/'y#˨ҲT$L$ ZacgC@AEc Zed@fi@ |8:OɈ7VT@@p Y 1n:A%al! Na&Ӂk;aR xfA).n #!9Y zR&t 8 A@:I|\D.sP`` @ N`Cyˌ> `${q0Ga pi0rl%dan}F}b$|1d5V`”L; @ 80 x!;فJDj@j3s4-p<9-Z! a| D!ȋWaA5D. `@E@(  ` 8h9fAs jव; 腠B`E{>~yCbۛg0\cye` )| J#~׹q > PT9ņ{ r'! 4h!Z t!jT!آ`=`~A ?Fhuh'Q~7bAH @ .ΣkiI a m: j n\sI[Oާ ($8aC :p.X+0 S0t:]FK%$vB-$xL6/D%9R E"\B%%**( ^B^ f Ac5ɀ6lx,Q׿+@8 ; jJp4 oDG-LA<3>3{?g {53 EF+Y`4& VeRE,tCSKP"h7h R889y `-}"~9o9 1AQCt7:Vˣyo:$A.IXH&4Xxb9_o`2RG8G6qH(TaaiȅL1םQD ;U8aJ6A`h\#W#ԌMf(B(0xZE%Y,+έBa0%.>o+ goEz~T]VDؕnq @C d?b](R6E&b)#7SD-:E'S\L"&0. ZLFgA(rh!.Rʑff6b C`L51p0Sjf:2tCiǦ6fE7(4464-:Ym"%@7xVBRd]]xz*jjhrDžVӔL  p pw'L,{l&Z<4:Xau/B`p?7 ? [jPU!0QŭR^QTsϫEY-A^ bgyG"a05x)4/n `f ٷN>FQ؜A~D _L7*L) }ҝA0੬7xĐNi V[kN{U,S Q9^ꥢcpp QF\'d|ly;x[;H2i*A0e!3F" (g沰5 ГWi= GȖtؐpu$[X vB?#J7  Mx p P EVBњH<ͬW:yQϼ1ogu,"=a;0!I86ўc31]rnЄ'Fs8ARp0_Yg` iC LlÊ  IL71ʘXmNiM?FN6< ۻ BeD[4K|OmԣܣI)D.̵N̓یriuTRGS"=ec/!1R5''#RBr&W6P݃LT" ɐa Am@K $y4 sANDN 0 շZKJͻ`z#V\:P\ Q[A){ԓ|30pK/0HK`B~9s _ov@T € 8 ; 㫰ekQy?T 1#LiUp/\U"c[-5EKr`*U= 0cGɎ'SNեqt,q 0n =0cTps lzF`m oj^`/M=)C딏p  gO4TTxp$N@"?'b$/"\b\)1H1F&Y>XQ d`8X>:+WL pnQ0Y:2j+0f%3&fÆC4l؜=3mE6Z4hJmXf̈+FLXf|k&>1-Z^bʼnUN0UǏ+fсĻ;H`ƞPv䇱}G5Ri#13(M$2!{` (#40BK jAP/@@) I(  4(IE^~h `aT{&)i4$Mff˒Kb" &a F(2k XzqETdM8J@$!8 $R@Z≢#+ƻ/M"'og- bd`K\]R j[ŚyBQ[0 LB !(R #8Yd']D |A eI+xV`D*B7 !P3UZŸ*@>y^6G=Zh OP H! ٷ懽D)PyR!\qY(˂2Խ+F@QRшFC2l(Gi@26@܆.WB0x ` ] rqv!arJ-Qa+V ͥ@$L? F86p%TORhN#+IYG0Pl.i6&As\<{ObX ifӮxa=Yڲ:DN}YJY\!hjfˑf6AP1W| M(!Y@Q&3$9)_,\шus4H`fs٣)hҒADccQtI)L.KHdgF62XZbJ, L(+pա}(,uc&[nB׺fTGo0+ g)19AU,/Z D O: B %%P=Ag(CՁ TMG2Il2ah$S`~ȌI4_xD'ΐDC@yΪF%*[vOXBŮ(+dR K)= e B <:!h0  E}M-qbdĵ.Qz$ "ٺG .`/Šrź2 5L,X!_VĂ!XWcVE,=J_FUfV^^ 8 P3agQ1UT4)#hH!d  J\9DÏ^@[$d2N6 4.K2,{TJI%0Pm~[Z9 a`RpR@h&nۀZh H (b2LCf6ڢd,14iP) Àj}l}1lc6.\#Ĭ8}5,C2 <*x G:yu"PԺd-t Mcvbe7`N٠D[U$ڀ'7G.Wngwq_dM(PAX]Wa%;Wuy P*\fYg A )Dy5AdduV}amr{-\M@!iFDc5j]/[m۾ 8 P(p!H1GY̠7z GF q*`R @.61(&@°*f.MzB7.iCvayYO@.Vإ&F!(B^* B$t F903:X5?hګ 0? )!`b2U8prKFtY z šmeZt jP*(z_%He 3C/f,GaC4 дR&5 Hִ~TfMl\@fv H;ٺy5TIКɫvjn 0ղe,`L 8PpEYaC ~h8Ё2 p`QHiNBi_.K "D~P~%AN6P>t1Fi?˘&)nbj@g .fCAPU I5O'M6" Zs?#4#@1F0XNF&"٢MKl:u%IVm@8!>vQDٗuM@>d-*ͭnw pKMr:ЍtK0X w''yƻL֭NR83u& ,$.ci'PH@8n:L{>xQ 0 Ypx(f(*O )Bp] ћ B0\08qQ(aRBdB)@:49VBgLx D&S {a]:ЂX џhҁѨ"w 9Rc X@=Œxu-z:o `4qbQָεw^MbN}P^A :^&Y)%d0M DXrHt @}C,<4#Rn$8}!hb[FׂR?,RDJ cU1H EaBQLJe~t7Gn0$ϬTɓ(@s$ͪIv3"eDi]5OK g5F[x>TG U@O2A7 B5A~> # z\0=h75+Kg\Pt.FH]YObd0 zg$JYTy: fЍS߶{07)PסXKQP4Qj0 c.8FPQ>Vlz˴y4eSՏlۊ?&֦b+jz~OrR>sdYP-iR7QG+wwA-u<Su2ofR`Sb1"TBC20(a|-.,K,(({(4C|@#@X3<3} C-'*XM.cP)'V*`}zȒ$G%ݢD7Gyj(6@y p#b#GZbS%8e7I X!'{b/qn2S0ESF)1"51XUrKEFP8@1"!2 $Xr6W#CZ")WNs)6C#") M3".YEp5VV޴rv67$Fn-}%,Gm\%vVdY>MGF %Q"X.r6Yh`J(}&&_(K'5EVE0p25%p1oD#82 G *3MU5W%0"/91%M9S1VXU"#W)%"#M$2$1% X$XVMWD4(2u) SM#1y;NQ)FbZ;`;p54|ٗ~9Yy٘9Yyٙ9Yy'P)P p ] ;1^30#;uADEUb:@;@w1daE`ĩ^ 6Sp _`)b1`6cvePgi`f=46牞Tec1`e;S;}<9:aiO(fQ ds<B}aC<9A0-A6jI@EksNsdIII-D PR` 1c!0avH@h!d?00pkUc>>a~V>p>p1ߕq!Z gcy:֙3OpewA[a $}f?L@B;D[F{HJL۴I2XyPPT׳2FG P 2[`"8v2 sU; rP ,`Vf%|Ixsp$,z㇡s..92$#CL2)15be)]FЇJ(qP09p{Wc,\4 11U=Hw6Ifu#Hpk-Dy2bDh-HDzs)[GF)"`1U"B#4Y2}tt++t+HgyOI5h Խy臮8@ES]u!B)f$XrwdyNr+*g *;sX+qr$$x$Tb7r(]Sxr%PW%9EuC'5'LL`l1%M(*3%pQ+pr$GR*\%t;&Â,PNHM2JA(6t4j&TpȟDEG.GJ+8AeKAJBE 0rv'&YK+2ׄu N@Hrn41,QB.. ?8,%C2G*HrIHr,HrO7~cLpeOE' WQ4X'['{5H('X''w{e\#YC|(c+p@IM6„ī4PHC4%.+QԦs"I[+J\,I$RPtx<,Mz$ q&@S|-+,R(}r{/'J 1D:dVRkc})6 dClei}*B,$6^No͆j3IrGCg͗$m+eOr[Ǫ'%fxUJ,7-mtSB |88~-b É/"P0|)800LqtL0.0Kh9)(L(5@\G,so$TZnG=*fF~x 4ާ}%$qtR&xXYn5[R6vsPV Pp 0 uB/G 0(}$u3Iog!$KCB#Y)!TK)(T2ǝNCweHnG*<R$3WOE E8BFFu츼M}Q5$wP @}x|zDJ',W/h'J=45PP$N$ 2|D24 ((4hW:4)AّgÓׂuN}lTR9%-ESmGL1Љ;12m" L8lnhCX)+^M#MkE"!Dcy%6*c`MhW#k6+gF`WN}+L 3AZ5N `cYq%A7MId"իϏrEWUeGՆ!!F0o[˄7F`$c3&¯(/1է#rke0qTSr0+|ͤ"ʤyR)VS{02Y) "Ve@TU=T2øu ++AFȮdOH=HD"cԪAkUg=Su׵,)Ԟ;`Է, }J йN> "*ZX̯IF*(b>2 98sub9> >@ ;S9Yߖњ9X?Cʷ CzS䧹,Y^TgwIKF'~J!rӳ⛂`:Dg% #h9Y$U c ZHqC`9!znay0s@8˪BϢE!E@ V`DlRS+&)!̨)(:k b- #AdpG<K4@d-d!A#a9PVҼ%8\"0qٽqZ=B_8-w8}VL"`1Ej mŤ|3rrqJ',6M7<.*WP˗Ъ=ܼ_"<8̱nSh',Q@uct3<qWϼ9/GQۜ~9N~%DPMX53J4urB4XI =$W8@zx fv'&# I9_,V_$YLu*V.9Ou-W,}%_I\B!826-9cd*gmGD#2DdD$%)IPf6 F < ͭn;070701000067ee000081a400000064000000640000000133766d500003000f000000200000001b00000000000000000000002800000009reloc/lib/tk4.2/demos/images/teapot.ppmP6 256 256 255 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[7 eOLjQLmSMoTMnSMlRMhPL_9 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nSMtVMzYN~[N~[N\N\O\O]O]O]O]O\O\O}[NyYNtVM\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\G-wXN}[N]O^O_O`O`O`O`OaOaOaOaOaOaOaOaO`O_O^O\N \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\aMLyYN_OaPbPcPcPdPdPdPdPdPdPdPdPdPePePePePePdPcP_OpUM\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\wXN_OdPfPgQhQhQiQiQiQiQiQjQjQjQjQjQjQjQjQjQjQiQfP`O\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\NCJiQLbPhQkQmRnRoRoRoRoRoRoRoRoRpRpSqSqSrSrSrSqSoRjQ]O\KK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\fOLrUMcPlRqStSuTwTxTxTyTyTzTzUzUzUzUzUyTxTwTtSmRaOhPL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\a0 cNLqUM\OfQpSwVzV|V}VVVǀVɂW̅[ՏewꪅĈgqTfQ{ZNYIK9\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\O1{G#JkRMqUMtVNiSv\dbzZvUuTsSqSnRjQeP^OrUMHh>!T4\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\G-V5wE"~I#M%U+e7l:g2b*a(`(^(])^-]1S,qC$`9 R3G-\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@)J/i>!pA"tD"wF$yH&xH&tE$wE#yG%}M+T4S5mE*Z7!K/B*;'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\aOoR{UǀVυX<(F-a: e!j@#k@$h>"df-^(Z'W&T&N>)F-J/b; g>#nD(jB&c y< u: r9 o7 l6 j5 h4 g3 5$D,K/b; h>"wM1tK.e="a<#cA,U8&E-<(9&.!a0 b1 c1      +3#@)46G<:HMCIXHK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\U*vT~X{Yk+W&N$|> u: p8 k5 f3 a0 _/ ]. [- I\*_(LkRMmSMmSMnSMnSMD,R3W5mA"|O0|P1j?"c!a: X/K%&4$+2F=;HPEJL&\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\lRxTsTd)O$w; m6 g3 a0 Z- \/ T*Q(Hm8kRMmSMnTMoTMpTMpUM15G15G05G04G04GpUMpTM5^9 d!Y0W+]. s=M$dPlR\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\oTMoRdPvE"V+K%A 99F['qUMtVM99H:9H:9H:9H:9H:9H:9H:9H:9H:9H99H99H99H99H99H99H:9H;:H>;HB=HPDJ\JKmSMwXN|ZNy[ᦆ֘u{WyU]btUnRhQaO{ZNvWNtVMvXNwXNyYNzYN{ZN|ZN}[N}[N~[N~[N~[N~[N~[N~[N~[N}[N}[N{ZNzYNxXNL$f3 I$L&P(U*\. J#\OjQ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\kRaOo9 L&C!:4f3 X&pUMuWMwXNxXN<:H<:H<:H<:H<;H<;H<;H<;H=;H=;H=;H=;H>;H>;H?HG@ILBIREJ[JKcNLjQLpRuTzU~VȁW˂X֎csҎe{VvTpSkRgQbP_O^O]O\O\O\O\O]O]O]O]O]O]O]O]O]O]O]O\O\O~\N}[N|ZNxXNT%H$G#K%Q(W+zG#nTMiQ\\\\\\\\\\\\dOLrUMuWNwXNyYN{ZN}[N{ZNwXNsVM \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\`OcPnA"M&@ 8F#m6 W&rVMvWNyYNzYN|ZN}[N}[N>HE?IG@IIAIKBIODJSFJWHKhQlRpRb(i*n+|7|6r,q+p-l+g)b(sSpSlRiQgQePcPaPaO`O`O_O_O_O_O_O_O_O_O_O_O^O^O^O^O]O]O\O~[N{ZNT%F#B!Y,L&U*~I#^O`O\\\\cNLrUMzYN\O^O`ObPcPdPePfPfPfQfQfQePcPaP~[N\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\fPsVM^/ C!7 Q%tVMwXNzYN|ZN}[N\N\O\O]O]O]O]OA=HB=HB=HB>HC>HC>ID?IE?IF@IG@IIAIKBIcPdPePgQiQlRnR\'d)i*m+s/s/o+n+l*i*g)c(_(qSoRmRkQiQgQfPePdPcPbPbPbPaPaPaOaOaO`O`O`O`O`O`O_O_O^O^O]O\O}[NQD"?D"K%_/ kRLfPODJSFJ_ObPcPePfQgQiQjQkRlRmRnRnRoRoRoRnRmRlRiQeP_O\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\B+ePI#L&90y< PxXN{ZN}[N\N\O]O]O^O^O^O_O_O_O_O`O`O`O`OaOaPbPbPcPdPePfPgQhQiQkRmRZ'_(e)h)k*n,n,m*l*j*f)e)c(_(]'pRnRmRkRjQiQgQgQfPePdPdPdPcPcPcPbPbPbPbPbPaPaPaOaO`O`O_O_O^O]O_(@ B!I$B!N'w=eP`LKbNLeOLkRmRnRoRpSqSrSsStStStSuSuStStSsSrSpSmRjQbPjQL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\bPpTME"5M$tVM{ZN}[N\O]O^O^O_O_O_O`O`O`O`OaOaPaPbPbPbPcPcPdPdPePfPgQhQiQjQkRlRmRZ'`(d)g)gj*j*i*i*g)d)c(a(_(\'pRoRnRmRkRjQiQiQhQgQgQfPePePePdPdPdPcPcPcPcPcPbPbPbPbPaPaO`O_O^O\NQ@ <G#_LKcPlSMnTMpUMsVMtSuTvTwTwTxTxTwTwTvTuTtSsSqSpSoRnRkRhQbPeOL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\wXN\NJ%01JvWN}[N\O]O^O_O_O`O`O`OaOaPaPbPbPbPbPcPcPdPdPdPePePfQgQgQhQiQjQkQlRmRY&]'`(c(e)c\\\]]^a(`(^'['['oRnRmRlRkRkQjQiQiQhQgQgQgQfQfPePePePePdPdPdPdPdPcPcPcPbPbPaPaO`O]OOG#7F#uWM^OwXNxXNzYN{ZN|ZNyTyTxTwTuTsSpSmRjQgQdPbPaPaPbPcPePcP|ZN\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[JKbP^/ 1 01|> wXN}[N]O^O_O`O`OaOaPaPbPbPbPcPcPcPcPdPdPdPePePfPfQgQgQhQhQiQjQkQkRlRmRY&]'`(b([gihfdecU_(]'['Z'nRnRmRmRlRkRkQjQjQiQiQhQhQgQgQgQfQfQfPfPePePePePePdPdPdPcPcPbPbP`O^OD 4M&dPnSM|[N|[O|[OzZOxXNrSnRhQcP^OvXNiQL^KKRFJMCJJAIKBISFJ\JKnSMxYN_O\OaMK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\B!qUMaPC!/00a0 uWN}[N]O_O`O`OaPaPbPbPcPcPcPcPdPdPdPePePePfPfQfQgQgQhQhQiQiQjQjQkRlRlRX&['^'`(Zdfigdcca_T\'['Z'Y&nRmRmRlRlRkRkQjQjQjQiQiQhQhQhQhQgQgQgQgQfQfQfQfPfPePePePdPdPcPbPaO^Ox< :aP]Oj8sVMmSMfOL^KKUGJIAIQEJ?IeZY638*  B\\\\\,  4 .G1!\TUrsVM{ZN`MK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[JKyYNbP/0N$]O_O`ObPbPcPcPdPdPdPePePePfPfPfQfQgQgQgQgQhQhQhQiQiQiQjQjQkQkRkRlROZ'\'^'Vabei!fba`_]\Z['Z'Y&QmRmRmRlRlRlRkRkRkQkQjQjQjQjQiQiQiQiQiQhQhQhQhQhQhQgQgQgQgQfQfPdPcPW&dPaPrUM  B\\\\\\\\\\%7!!C*F#P) {dYzep\OgPL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\SFJ`LKvWNaPm6 X,uWM]O`ObPcPdPdPdPePePfPfPfQfQgQgQgQgQgQhQhQhQiQiQiQiQjQjQjQkQkQkRlRlRZ'\']'_`abei"ea`__]\\YZ'Z'Z'mRmRmRlRlRlRlRlRkRkRkRkQkQjQjQjQjQjQjQiQiQiQiQiQiQiQhQhQhQgQgQfQdP_Oq8 gQ`OuWMT%\\\\\\\\\\ B B!!T,c5FT3ț~Ɠq^OfOL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\XHK_LKsVM`OcP S%]ObPcPdPePePfPfQfQgQgQgQgQgQhQhQhQhQiQiQiQiQiQjQjQjQjQkQkRkRlRlRlR\']'^'V`abfi"ea`__]\\RZ'Z'['mRmRmRmRmRlRlRlRlRlRlRkRkRkRkRkQkQjQjQjQjQjQjQjQjQjQjQiQiQiQhQgQePSq8 aOgQ`OtVMX&\\\\\\\\\\ B B B l@!{AL$Y'afPaO]KK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ODJ[JKaMKqUM\OcP^OvE"]OaPdPePfPfQgQgQgQhQhQhQhQhQiQiQiQiQiQjQjQjQjQjQkQkQkRkRkRlRlRlRlR^'^'_(Waacg i"ea`__^\\R['[']'mRmRmRmRmRmRmRlRlRlRlRlRlRlRlRlRlRkRkRkRkRkRkRkRkRkQkQkQjQjQiQhQePW&M&oTMiQeP_OtVMmSMdOL\\\\\\\\\ B B B JZ'_(kQiQ`OSFJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\TFJ\JKcNLlRMzYN`OePzZN \N`OdPfQgQgQhQhQhQiQiQiQiQiQiQjQjQjQjQjQjQkQkQkRkRkRlRlRlRlRlRlRmRa(`(`([abdh!i"da`__^]]S\']'_(nRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRlRlRlRlRlRlRlRlRlRlRlRlRlRkRkQiQePt: kQhQcP]OtVMlSMa2 \\\\\\\\\ B B $5 `(e)nRjQ^OJAI\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\XIK^KKdNLhPLuWM]ObPfQeP m6 `OcPfQhQhQiQiQjQjQjQjQjQjQjQkQkQkQkRkRkRkRlRlRlRlRlRlRlRmRmRmRmRg)c(c(b(Vcei!i!db``__^Q]'_(`(f)nRnRnRnRnRnRnRnRnRnRnRnRnRmRmRmRmRmRmRmRmRmRnRmRmRnRmRmRmRmRkRhQGa0 bPmRjQfQaP}[NrUMmSML$\\\\\\\\ B B #C, 8&H.Z7 pRjQ{ZN\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\QEJ[JK`LKdNLhQLqUM{ZN_OcPgQhQ bPePhQiQjQjQkQkQkRkRkRlRlRlRlRlRlRlRlRlRlRmRmRmRmRmRmRmRmRmRnRnRj*g)e)d)dXghecbbbU`(a(a(c(i*oRoRnRnRnRnRnRnRnRnRnRnRnRnRnRnRnRoRoRoRoRoRoRoRoRoRoRoRoRnRmRjQQ%Z- jQnRlRhQdP_OuWMpTMnSMkRLa: \\\\\\\ B B&D2 @*S6#G@IPDJhQmSM\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\VGJ]KKbMLeOLiQLlRMvWN\OaOePhQjQgQoTMgQiQkQlRlRlRmRmRmRmRmRmRmRmRmRmRmRmRmRmRnRnRnRnRnRnRnRnRnRnRnRnRl*l+j+g)f)e)d)e)e)e)e)f)i*s0s.oRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRpRpRpRpRpRpSpSpSqSqSqSqSpSqSpSnRlRIhQpRoRmRiQePaP\OsVMpTMnTMlRMX)\\\\\\\ B%C)D$;J/[8"LBITGJYIKWHK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\NCJYIK_LKcNLgPLjQLlRMpUMzYN^ObPePhQkQlRfQ- hQjQlRmRnRnRnRnRnRnRnRnRnRnRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRpRpRpRpy-w-w-y.{-upSpSpSpSpSpSpSpSpSpSpSpSpSpSpSqSqSqSqSqSqSqSqSqSrSrSrSrSrSrSrSsSrSqSoRiQiQqSqSpRmRjQgQcP_O{ZNtVMpUMoTMmSMjQL_9 \\\\\ B "C(D#*A$[<)dI\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\SFJ[JKaMKeOLhPLkRLmSMoTMuWM}[N_ObPePhQkRmRnRkR!-EkRmRnRoRpRpRpSpSpSpSpSpSpSpRpSpSpSpSpSpSpSpSpSpSpSpSpSpSpSpSpSpSqSqSqSqSqSqSqSqSqSqSqSqSqSqSqSqSqSqSrSrSrSrSrSrSrSrSrSrSsSsSsSsStStStStStSuStSsSrSnRoRsSsSrSpRmRjQgQdPaO\OyYNuWMqUMoTMnSMkRLo8 \\\\\ B'D+E$(1 J/jH1NCJUGJYIKUGJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\XHK]KKbNLfOLiQLkRMmSMoTMqUMxXN\N_ObPfPhQkQmRoRpSpRhQmRoRpSqSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSsSsSsSsSsSsSsSsSsSsSsSsStStStSuSuSuTuTuTuTuTvTwTvTvTuTtSmRtSuTuStSrSpRmRkQhQePaP^O\N{ZNvXNqUMpTMnSMlRMP%\\\\ B#C*E$.E- .!G$Y:%d<"SFJYIKZIKNCJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\PDJZIK_LKdNLgPLjQLlRMnSMpTMqUMuWMyYN\O`OcPfPhQjQmRoRqSrSrSrSmRrSsStStStStStStStStStStStStStStStSsSsSsSsSsSsSsSsSsStStStStStStStStStStStStStStStStSuSuSuTuTvTvTvTvTvTwTwTwTwTxTxTxTyTyUxU\'qSvTwTwTvTuTtTrSoRmRkQhQePbP`O^O\O|ZNxXNtVMpTMoTMmSMjQLh7\\\ B(D"-E*1F, 4#K)pL5PEJWHK[JKXHK:9H\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\UGJ\JKaMLeOLhPLkRLmSMoTMpUMrVMvWNyYN|ZN]O`OcPePhQjQlRnRpSqSsStSuStSsSmR^/ vTvTvTwTwTwTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTvTwTwTwTwTwTwTwTxTxTxTxTxTxTxTyTyTzUzU{U{V|VgQrSwTxTyUyUzVyVxVvUtTqSoSmRjQhQePcPbP`O_O]O}[NyYNuWMpUMoTMmSMkRL}H#\\ &D -E(1F/!2#8 W7"iA&UGJ[JK\JKREJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\MCIXIK^KKcNLfOLiQLkRMmSMoTMqUMsVMwXNzYN}[N\O^O`ObPePgQjQkRmRoRqSrStSuSvTvTwTwTuTsSlR_(yTyTyTyTyTyTyTyTyTyTxTxTxTxTxTxTyTyTyTyTyTyTyTyTyTyTyTyTyTyTyTzTzTzU{U{U{U|U|U}V~VWÀYiQrSwTyTzU|V}XZ]]]~[zYwWtUqSnSlRjQgQfPePcPbP`O_O]O~\NzZNvXNqUMoTMnSMlRMiQLg=!\ !C+E'0F.4F7%8%U/lG.SFJZIK]KKZIKB=H\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\REJZJK`LKdNLgPLjQLlRMnSMpTMqUMtWMxXN{ZN~[N]O^O`OaObPdPgQiQkQlRnRpSrSsStTuTvTwTxTyTyTyTyTyTxTvTrSnRhQ|U|U|U|U|U|U|U|U|U|U|U|U|U|U}U}U}U}U}U}U}U~U~U~V~VVŀWƁXa(lRrSvTyTzU|U~VXƂ[Ɇ_΋dӑjԓmԓnБlʌhĆd_{[vWsUpSnRkRiQhQgQfQePdPbPaO_O^O\O|ZNxXNsVMpTMnTMmSMjQLC B)D&/F-3F47G6%>" Y7 kA$YIK]KK^KKSFJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\VGJ\KKbMLeOLhPLkRLmSMnTMpTMrUMuWNyYN|ZN\N]O_O`OaPbPcPePfPhQjQlRnRoSqTsTuUvUwVxVyVyUzUzU{U{U{U|U|U|U|U|U{U{U{UzUzTyTyTxTwTvTvTvTvTwTwTwTxTyTzTzU{U{U|U|U}UVŀWǂYɄ\͈_ьdٔlu|쩂ſt명榁ޟ{՗sˎl†d^yZuWqUoSlRkRjQiQhQgQfQePdPcPaP`O^O]O}[NyYNuWMpTMoTMmSMkRLgPL&D#.E,3F46G;'<(D"iB(VGJ]KK`LK[JKB>H\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\NCJYIK^LKcNLfOLiQLkRMmSMoTMqUMsVMvXNzYN}[N\O^O_O`OaPcPdPePfQgQhQiQkRmSoTrUtWwYzZ}\]^^^‚^\ZYX~W~W~V~V~V~V~U~U~U~UUUVVVVVƀVƀVǀWǁWȂXɃZ˅[͇^ЊaӍdؒiܗntz驅~֘vˏmÇf`z[vXrUpToSnSlRkRkRjQiQhQfQePdPcPbP`O_O]O~[NzYNvWNpTMoTMnSMkRMhQLo7 ,2F36G99HC+@ ]8 nA"\JK`ML_LKSFJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\SFJ[JK`LKdNLgPLjQLlRMnSMpTMqUMtVMwXNzZN}[N]O^O_OaObPcPdPePfQgQhQiQjRlRmSoUrWvZ{]afŊjˏnГqӕsՖsՖrՖqՔoӒmяjύg͊cˈaɆ^Ȅ\ǂ[ƁYŀXŀWWWVVWŀWƀWǁXȂYɃ[ʅ\͇_ϊaҍeՑhٕmݙqvz}꧀멃몄騃奀ߠ|ٛwӕȑmƉhc~^yZvXtWsVqUpToSnSmRlRkRjQiQhQgQfPePcPbPaO_O^O\N{ZNwXNsVMoTMnSMlRMiQL~I#26G99G?IQ2P+XHK_LLfQOcNLXIK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\qSyT~VΈ`遲ޜv]qSLG|> g3 S)?*%.hQhQeP`OuWM\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\SFJ[JK`LKdNLgPLjQLlRMnSMoTMqUMsVMwXNzYN}[N\O^O_O`OaPbPdPePfPgQhQiQjRkRlSnTpVsXvZz^bgËmʒsјz؟ޤ㩊譍ꯏ및ꯎ謋娇ं۞|֙wѓq̎lljgÅb_\}Z{XzWyVyUxUxUxTxTxUxUxUyVyVyWzW{X{Y|Z}[}[}\~\~]~]}]|\{\z[yZwYvXtWsVrUpToSnSmRlRkRjQiQhQgQfQePdPcPbP`O_O]O~[NzZNvWNrUMoTMmSMlRMiQLeOLJAIJ(h>!]KKfQOgQN_LKD>I\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\iQtSyT{UYΌeרּ՗u|\Z'LD |> ePoRqSoRmRjQeP^OhPL\\\\\\\\\\\\\\\\\\\\\\\\\\\\\WHJ\KKaMLeOLhPLjQLlRMnSMpTMqUMtVMwXNzZN}[N]O^O_O`ObPcPdPePfQgQhQiQjRkRmSnTqVsXw[{_chČn˒tҙz؟ޥ㩉筍ꯎꯎꮍ竊䧆ߣ۞|՘vГpˎkljfÅb_\}Y{XzWyVxUxUxTxTxTxUxUxUxUyVyVzWzX{Y|Y|Z}[}[}\}\}\}\|\{[zZyZwYvXtWsVrUpToSnSmRlRkRjQiQhQgQfQePdPcPbP`O_O^O\N{ZNwXNsVMoTMnSMlRMiQLfOLJ(V.]KKePNkUQcNLQEJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]OmRqSrStSvTwTxU{WĆbғqךxʏo KrSvTwTvTuTsSqSnRkQgQ`OuWNY,\\\\\\\\\\\\\\\\\\\\\\\\\\NCJYIK^KKbNLfOLhQLkRLmSMoTMpUMrUMuWMxXN{ZN~[N]O^O_OaObPcPdPePfQgQhQiQjRkRmSoTqVtXw[|_diČn˓tҙz؟ޥ㩉笌鮎ꮎ魌檉㧅ߢڝ{՗uϒpˍjƈf…b^\|Y{XzVyVxUxUxTxTxTxUxUxUxUyVyVyWzW{X{Y|Z|Z|[}[}\}\|\|[{[zZxYwXvXtWsVrUpToSnSmRlRkRjQjQiQhQgQfPdPcPbPaO_O^O\O|ZNxXNtVMoTMnSMlRMjQLgPLzG#\JKcOMoXUgPMZIK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\fPgQgQhQiQkQlRnRpRqSsStS:"r<zYNsSyT|U~WƄ^ˊeˋgƈeaz[tVpSmRkQgQbPzYNkRL\\\\\\\\\\\\\\\\\\\\\\\\\RFJZJK`LKcNLfPLiQLkRMmSMoTMqUMrVMvWNyYN|ZN\N]O^O`OaObPcPdPePfQgQhQiQjRlRmSoUqVtYx\|`diōo˓uҙ{ٟޥ㩉笌鮍鮍謋婈⦄ޡٜzԗtϑoʌjƈe„a^~[|Y{XzVyVxUxUxTxTxTxTxUxUxUxVyVyWzWzX{Y{Y|Z|Z|[|[|[|[{[z[yZxYwXvWtWsVrUpToSnSmRlRkRkRjQiQhQgQfPePdPbPaP`O^O]O}[NyYNuWNqUMnSMlSMkRLhPLcNLbNLpYVlUP`LK>;H\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\jQ`O{ZN^'^'`(e)h)k*o+b(nRyT~UǁXҍdw詅ݟ}Ԙvȍme}_x[y\x[tWqTmRjQgQbP}[NlRM\\\\\\\\\\\\\\\\\\\\\\\\VGJ\JKaMKdNLgPLjQLlRMnSMpTMqUMsVMvXNzYN|[N\O]O_O`OaPbPcPdPePfQgQhQiQjRlSmSoUrWuYx\|`djōo̓uҚ{٠ޥ㩉欋譍譌竊婇᥃ݠ~؛yӖtΑoʌjňe„a^~[|Y{WzVyVxUxUxTxTxTxTxUxUxUxUxVyVyWzXzX{Y{Z{Z|Z|[|[{[{[zZyZxYwXuWtVsVrUpToSnSmRlRkRkRjQiQhQgQfQePdPcPaP`O^O]O~[NzYNvWNrUMnSMmSMkRLiQLeOLoXUu]XdOLKBI\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\:9H\NhQ}\uUsTtTtSqSnRnRnRlRjQiQhQhQgQfQePePhQkRmSpUtXuYsWqUmSjQgQBS%jQL\\\\\\\\\\\\\\\\\\\\\\LBIXHK^KKbMLeOLhPLjRLlSMnSMpTMqUMtVMwXNzYN}[N\O^O_O`OaPbPcPePfPfQgQhQiRkRlSnTpUrWuYy]}`ejŎp̔vӚ{٠ޤ⨉櫋笌笋櫊䨆ंܟ~ךxҕsΐnɌiŇea^~[|Y{WyVyVxUxUxTwTwTwTxTxUxUxUxVyVyWzWzXzY{Y{Z{Z{Z{Z{ZzZyZyYxYvXuWtVsUrUpToSnSmRlRlRkRjQiQhQgQfQePdPcPaP`O_O]O\N{ZNwXNsVMnSMmSMkRMiQLfOL_LKhQMUGJ\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ (6BFP>=DKHMqjktrwf`~kcndqesete{w`v[\N_OcPfPiQjRlSoTqVqVoTlRiQ^`OQ%hPL\\\\\\\\\\\\\\\\\\\\\QEJZIK_LKcNLfOLiQLkRLmSMoTMpUMrUMuWMxXN{ZN~[N]O^O_O`OaPcPdPePfPgQhQiQjRkRlSnTpUrWuZy]}aekƎp̔vӚ{ٟޤ⨈媊櫋櫊婈⦅ߣ۞}֚xѕr͐mȋićda]~[|YzWyVyUxUxUwTwTwTwTwTxUxUxUxUxVyVyWzXzXzYzY{Y{Z{ZzZzZyYxYwXvXuWtVsUrUpToSnSmSmRlRkRjQiQhQgQfQePdPcPbP`O_O]O\O|ZNxXNtVMoTMmSMlRMjQLgPLbML[JK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\%5 (6$/79CEEKjgkrc_{uf{w_q]O`OcPfQhQjRlRnToTnTkRhQdP]'Q%\\\\\\\\\\\\\\\\\\\\\UGJ[JK`MKdNLgPLiQLkRMmSMoTMqUMrUMuWNxXN{ZN~[N]O^O_O`ObPcPdP['d)gQhQiQjRkRlSnTpUrWvZy]~afkƎp̔vӚ{؟ݤᧇ䩉媊媉䨇᥄ޡڝ|՘wДȑmȊhĆd`]}[|YzWyVxUxUxUwTwTwTwTwTwUwUxUxUxVxVyWyWyXzXzYzYzYzYzYyYyYxYwXvWuWtVsUqUpToSnSmSmRlRkRjQiQhQgQfQePdPcPbPaO_O^O\O|[NxYNtWMpUMmSMlRMjQLgPLcNLA;=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\#*6+.8;:AHEJmgjd\]pe}xcw^p^OaPePgQiQlRmSnTmSjRgQh*X&M$\\\\\\\\\\\\\\\\\\\C+WHJ]KKaMLdOLgPLjQLlRMnSMoTMqUMrVMvWNyYN|ZN\N]O^O_OaObPcPY&_(c(gQhQiQjRkRlSnTpVsXvZz^~bfkƎp̔vҚ{؟ݣই㩉䩉䩈⧆ःܠ؜{ԗvϓqˎlljgÆc`]}Z{YzWyVxUxUwUwTwTwTwTwTwTwUwUxUxVxVxVyWyWyXyXyYzYyYyYyYxYwXwXvWuVtVrUqUpToSnSmSmRlRkRjQiQhQgQfQePdPcPbPaO_O^O\O}[NyYNuWNqUMmSMlRMjQLhPLdNL\1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\+.775;ICFphhztre}yavZ]OaPePgQiQkRlSnTlSiQq.b*S%zG#\\\\\\\\\\\\\\\\\\MCJXHK^KKbMLeOLhPLjRLlSMnSMpTMqUMsVMvWNyYN|ZN\N]O^O`OaObPU&\'a(g)r/hQiQjRkRmSnTpVsXv[z^~bfkƎp̔vҙ{מܣআ⨈㨈㨇ᦅޣ۟~כyӖuΒpʍkƉg…c_]}Z{XzWyVxUxUwTwTwTwTwTwTwTwUwUwUxUxVxVxWyWyWyXyXyXyYyYxXxXwXvWuWtVsVrUqTpToSnSmRmRlRkRjQiQhQgQfQePdPcPbPaO`O^O]O}[NzYNvWNrUMmSMlRMjQLhQLeOL_LK\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,)/ZTVXONuqod}ybs]OaPePgQiQkRlRlSkRhQg*\(Q%`LK\\\\\\\\\\\\\\\\\ B B_LKcNLfOLiQLkRLmSMoTMpTMrUMtVMwXNzYN}[N\O]O_O`OaOQ%Y&^'b(i*{8hQiQjRkRmSnTqVsXv[z^~bfkƎp̔vҙ{מۢߥᧇ⧇ᦆऄݢڞ}֚xҕt͑oɌjňf…b_\}Z{XzWyVxUxUwTwTwTwTwTwTwTwTwUwUwUxVxVxVxWxWyWyXyXxXxXxXwXwWvWuWtVsUrUqTpToSnSmRmRlRkRjQiQhQgQgQfPdPcPbPaP`O^O]O~[N{ZNvXNrVMnSMlRMjRLhQLeOLaML+O+O\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HFLXQRTJH~pmla}zcttTaPdPgQiQjRlRlSjR|:e*V&N$\\\\\\\\\\\\\\\\\ B B`LKdNLgPLiQLkRMmSMoTMpUMrUMtVMwXNzYN}[N\O]O_O`OaPW&['_(d)l,݃@t.iQjRkRmSoUqVsXw[z^bgkƎp̔uљz֝~ڡޤॆআॅޣܠ؝{ՙwєs̐nȌjňfb_~\|Z{XyWyVxUwUwTwTwTwTwTwTwTwTwUwUwUwUwVxVxVxWxWxWxWxXxXwXwWvWuWuVtVsUrUqTpToSnSmRlRlRkRjQiQhQhQgQfPdPcPbPaP`O^O]O~[N{ZNwXNsVMoTMlRMjRLiQLfOLbML+O+O+O+O\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\6./fZXeVRHAIZIKiQLuWMtUaOdPgQjQkRlRkRiQn/b,R%rC"\\\\\\\\\\\\"Fx"Fx!Fx!Fx B B BdNLgPLjQLlRMmSMoTMqUMrUMtWMwXNzZN}[N\O^O_O`OS%X&\'a(g+s2{9j*iQjRkSmSoUqVsXw[z^bgkƎp˓uИy՜}٠ܢޤߤޣݡڟ~כzӗvϓrˏmNjićea^~\|ZzXyWxVxUwUwTwTwTwTwTwTwTwTwTwUwUwUwUwVwVxVxWxWwWwWwWwWvWvWuVtVsUsUrTqTpToSnSmRlRlRkRjQiQhQgQgQfPePcPbPaP`O_O]O~\N{ZNxXNsVMoTMlRMjRLiQLfPLbNL +O+O+P+P+P\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@89dWT@IIAI\JKlRMyYN^OcPgQiQkRlRkRiRt3d-S%I#\\\:^:^:^:^:^:^:^:^:^"Fx"Fx B B B BeOLhPLjRLlSMnSMpTMqUMrVMuWMxXN{ZN~[N]O^O_OS%W&['^(k2i+{:gQhQiQjRkSmToUqVtYw[{_bfkčoʒtϖxӚ|ם~٠ۡۡ۠ٞ~כ{ԘwДs̐oɌkʼng…c`]}[{YzXyVxVwUwUwTwTvTvTvTvTvTvTvTvTvUvUvUwUwUwVwVwVwVvVvVvVuVuVtVtUsUrUqTpTpSoSnSmRlRlRkRjQiQhQgQgQfPePdPbPaP`O_O]O\N|ZNxYNtWMpTMlRMjRLiQLgPLcNL_LK+P+P+P,P,P,P,P,PNr\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]QNl\VG@IMCI_LKoTM|ZN`OdPgQjQkRlRkRhQh*^,P%X3:_:_:_:_:_:_:_:_:^:^:^:^"Fx B B B BfOLiQLkRLmSMnTMpTMqUMrVMuWNxYN{ZN~[N]O^OP%U&X&['`)n4n/j*gQhQiQjRkSmToUqWtYw[z^~bfjČoɑsΕwҙ{՜}؞ٟڟٞ~ל|՚yҗvϓrˏnNjjĈfc`]}[{YzWxVxUwUwTwTvTvTvTvTvTvTvTvTvTvTvUvUvUvUvUvVvVvVvVvVuVuVuVtUsUrUrTqTpToSoSnSmRlRkRkRjQiQhQgQgQfPePdPbPaP`O_O]O\N|ZNyYNuWMpUMlRMjQLiQLgPLdNL_LK,P,P,P,P,PNrNrNrNrNrNr\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\aSOD>IJAIQEJbNLrUM~[NaOePhQjQkRlRjRs0e,T&K$;_;_;_;_;_;_;_:_:_:_:_:_:_ B B B BgPLiQLkRLmSMoTMpTMqUMsVMuWNxYN{ZN~[N]OM$S%V&Y&\'e-j/z:fQgQhQiRjRkSmToUqWtYw[z^~bfjÌnȐr͔vјyԛ|֝~מ~؞~ם}՛{ӘxЕt͒qʎmƊiÇeb_~\|Z{YyWxVxUwUwTvTvTvTvTvTvTvTvTvTvTvTvTvUvUvUvUvUvUvVvVuVuVuVtUsUsUrUqTqTpSoSnSnRmRlRkRkRjQiQhQgQgQfPePdPbPaP`O_O]O\O|ZNyYNuWMqUMlSMjQLhQLfPLdNL_LK,P,PNrNrNrNrNrNrNrNsNsNsNs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\dUOG@IMCITFJeOLtWM]ObPfPiQkRlRkRiQj,c/P%[JK;_;_;_;_;_;_;_;_;_;_;_;_ B B B BgPLiQLkRMmSMoTMpTMqUMsVMvWNyYN{ZN~[N|H#Q%T%W&Z']'m5f*v5fQgQhQiRjRkSmToUqWsYv[z^~bei‹nǏq˓uϖxҙzԛ|֜}֜|՛{ԙyіvϓs̐oȍlʼnh†ea_~\|ZzXyWxVwUwUvTvTvTvTvTvTvTvTvTvTvTvTvTvTvUvUvUuUuUuUuUuUtUtUtUsUrUrTqTpTpSoSnSmRmRlRkRjRjQiQhQgQfQfPePcPbPaP`O_O^O\O|ZNyYNuWNqUMmSMjQLhQLfPLdNL`LKNrNrNrNrNrNsNsNsNsOsOsOsOsOsOs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\2#TB3REJVGJ`LKpTM}[NaOePiQkRlRlRhQe)^.P%^8 #Gy#Gy#Gy#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMrUMsVMxF#M$Q%S%U&W&Y&['a+s;g+dPePfQgQhQiQjRkSlSnUpVrXuZx]{_~beikÌnƎpȐrʑs˒sˑrʐqɏoǍmŋkÈheb`~^|[{ZyXxWwVvUvUvTuTuTuTuTuTuTuTuTuTuTtTtTtTtTtTtTtTtTsTsTsTsTrTrTrTqTqSpSpSoSnSnRmRlRlRkRjQjQiQhQgQgQfPePdPcPbPaO`O^O]O\N|ZNxXNuWMqUMmSMhPLgPLeOLcNL`LKZIK,P,P,QOsOsOtOtOtOtPtPtPtPtPt-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\vvvvvvvww=a=a=a#Gy#Gy#Gy#Gy#Gy#Gy#Gy#GymYPODJUGJXIKeOLtWM]OcPgQjQlRmRkRp.g0T&N$]8 #Gy#Gy#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMrUMv>L$P%R%T%V&X&Z'\'f0m5q3dPePfQgQgQhQjRkSlSnTpVrXtZw\z_}adgjlČnƎpǏqȏqȏpǎoƍmŋkÉigda_}]|[zYyXxWwVvUvUuTuTuTuTuTuTuSuStStStStStTtTtTtTtTsTsTsTsTsTrTrTrTqTqSpSpSoSoSnSmRmRlRlRkRjQjQiQhQgQfQfPePdPcPbPaO`O^O]O~\N{ZNxXNuWMqUMiQLgPLfOLeOLbNL_LKZIK,Q,Q,Q,Q,QOtPtPtPtPtPt-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\vvvvwwwwwwww=a=a=a=a=a#Gz#Gz#Gz#Gz#Gz#Gz#GzgUOS=2RFJWHJ[JKlRMzYN`OePiQkRmRlRiQh*h4R%N$^9 [JK#Gy#Gy#Gy#Gy#Gy * B B B B BjQLlRMnSMoTMpUMI#L$O$Q%S%U&W&X&Z'](l5f,t5dPePfPfQgQhQiRkRlSmToVqWtYv[y^|acfhklÌnōnōoōnŌmċk‰igec`~^|\{ZyYxWwVvUvUuTuTuTuTuTtStStStStStStStStStStSsSsTsTsTsTrTrTrTrSqSqSpSpSoSoSnSnRmRmRlRkRkRjQiQiQhQgQfQePePdPcPbP`O_O^O]O~[N{ZNxXNtVMqUMhPLgPLfOLdNLbML_LKbE6,Q,Q,Q,Q-Q-Q-QPt-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\@dwwwwwwwwwwwwww=a=a=a=a=a=a=a#Hz#Gz#Gz#Gz#Gz#Gz#GzmYPPDJUGJYIKbMLqUM\NbPfQjQlRmRlRp,e+\+R%N$b; ]8 [7 XHKO+N1L/L/L/K/K/ eb>b>b>b>b>b>b>b=b=b=b=b=b=b=b=bYEUGJYIK_LKnSM|ZN`OePiQlRmRmRiQg*j4W'R%Q%h>!g=!f=!db>b>b>b>b>b>b$Hz$Hz$Hz$Hz$Hz>b>b>b>b>bgVOS=2RFJWHK[JKeOLsVM]ObPgQjQlRmRlRr/g*h2U&S%R%Q%Q%P%[']'`(b(d)f)g)i*j*I#Z'Z'Z'Z'Z'['['\']'_)d,d)q3bPcPdPePfQfQgQhQiRkSlSmUoVqWsYu[x]z^|`~bdeffffedba~_}^{\zZyYwXwWvVuUuUtTtTtTtStStSsSsSsSsSsSsSsSsSsSsSrSrSrSrSrSqSqSqSpSpSpSoSoSoRnRnRmRmRlRkRkRjQjQiQhQhQgQfQePdPcPcPbP`O_O^O]O\N|ZNyYNuWNrUMnSMjQLdNLcNLaMK_LK[JK`D6PtPtPtPtPtPuPuPuPuQuQuQuQuQuQu-Q-Q-Q-R-R-R-R-R-R-R-R-R.R.RRvRvRv~~~~\\\\\\\\\\\\\\\\\\\\\\\\\\\@e@e@e@eAeAeAeAeAeAeAeAeAeAeAexxxxxxxyy>b>b>b$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>b>b>b>b>bYDb>b>b>bQ@:R<2fL@WHJZJKaMKoTM|ZN`OePiQlRmRmRjRo-i-h0`)]']'`(b(d)f)h)j*k*m*n+p+q+r,]']']'^'_(_(`(`(b)c)i.`OaPbPcPdPePfQgQhQiRjRkSlTnUoVqWsYuZw\y]{_|`}a~bbbba~`}_|^{]z[yZxYwXvWuVuUtUtTtTsTsSsSsSsSsSsSsSsSsSrSrSrSrSrSrSrSqSqSqSqSpSpSpSoSoRoRnRnRmRmRlRlRkRkRjQjQiQhQhQgQfQePdPdPcPbPaO`O_O]O\O}[NzYNwXNtVMpTMlRMhPLcNLaMK_LK]KKbR]C5PuPuPuQuQuQuQuQuQuQuQuQuQuQuQuQuQvQvQv-R-R.R.R.RRvRvRvRvRvRvRv\\\\\\\\\\\\\\\\\\\\\\AeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeAeyyyAfAfAf$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>b>b>b>bWD3TFJXHK[JKfOLsVM]ObPgQjQlRmRmRkRm,i,j/d+c)c(e)f)h*j*l*n+o+q+r+s,t,K$^(_(_(`(a(a)b)d*f+m1`OaPbPcPdPePfQfQgQhRiRkSlTmToVpWrXtYv[w\y]z^{_|`}`}`}`}_|^{^{\z[yZxYwXvWuVtUtUtTsTsTsSsSsSsSsSrSrSrSrSrSrSrSrSrSrSqSqSqSqSqSpSpSpSoSoRoRnRnRmRmRmRlRlRkRjQjQiQiQhQgQfQfPePdPcPbPaP`O_O^O]O\N|ZNyYNvWNsVMoTMkRLgPLbML`LK^KK\JK~aR[B5PuQuQuQuQuQuQuQuQuQuQuQuQuQuQvQvQvRvRvRvRvRvRvRvRvRvRvRvRvRv\\\\\\\\\\\\\\\\\\\\AeAeAeAeAeAeAeAeAeAeAeAeAeAfAfAfyAfAfAfAfAfBf$H{$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>c>c>b>bO?:[E|aRZA5-QQuQuQuQuQuQuQuQuQuQuQvQvQvQvRvRvRvRv.R.R.R.RRvRvRvRvRvRw\\\\\\\\\\\\\\\\\\AeAeAeAeAeAeAeAfAfAfAfAfyyyzzzBfBfBfBfBf$H{$H{$H{$H{$H{$H{$H{$H{$H{$Hz$Hz$Hz$Hz$Hz$Hz$Hz$Hz>c>c>c>cVC^C6W@5-Q-QQuQuQuQuQuQuQvQvQvQvRvRvRvRv.R.R.R.R.R.R.R.R.RRvRwRwRwրրրրրրրրրրր\\\\\\\\\\\\\\\\AfAfAfAfAfAfAfAfzzzzzzzzzzzBfBfBfBf$I{$I{$I{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$H{$Hz$Hz$Hz$Hz$Hz YE\C6T>4-Q-Q-Q-RQuQuQvQvQvQvRvRvRv.R.R.R.R.R.R.R.R.R.R.R.R.RRwSwրրրրրրրրրրրրրրրրրEiEiEi\\\\\\\\\\\\\\AfAfBfBfBfzzzzzzzzzzzzzzzBfBfBf$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$H{$H{$H{$H{?c?c?c?c$H{$H{$H{SB;R<2zbVUGJXIK[JK[JKuWN\OaPfPiQlRmRnSnSpT99w2w0v/v.x/z0z0|1~235688m4o7q8u;s9s8j0]O^O_O`OaPbPcPdPePfQfQgQhRiRjSkSlTnUoVpVqWrXsYtYuYuZuZvZvYuYuXuXtWtVsVsUsUrTrTrTrSqSqSqSqSqSqSqSqSqSqSqSqSqSqSpSpSpSpRpRoRoRoRoRnRnRnRmRmRmRlRlRkRkRjQjQiQiQhQgQgQfQePePdPcPbPaP`O_O^O]O\O}[NzYNwXNtVMqUMnSMiQLeOL`LK]KKmP?kN?|aSZA5P<4-R-R-R-R-R-RQvRvRvRvRv.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R׀׀׀׀׀׀׀׀׀׀׀׀׀׀׀EiEiEiEiEiEiEi\\\\\\\\\\\\Bfzzzzzzzzzzzzz{{{{{{BfBfBf%I{$I{$I{$I{$I{$I{$I{$I{$I{$I{$I{?c?c?c?c?c?c?c?c?c$H{$H{$H{jXP^H=}dXUGJXHKZIKkRLwXN]ObPfQiQkRmRnSpTqUrU;>?<9;==>ADHKEr:t;t;t`KA-R-R-R.R.R.R.RRvRvRvRv.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.REiEiEiEiEiEiׁׁׁׁׁׁEiEiEiEiEiEiEiEiEiEiEiEiEiEiEiEi\\\\\\\\zz{{{{{{{{{{{{{{{{{{{|CgCg%I{%I{%I{@d@d@d@d@d@d@d@d@d@d@d@d?d?d?d?d?d?d$I{$I{dUPYEXG@-R.R.R.RRvRvRvRvRvRvRvRv.R.R.R.R.R.R.R.R.R.R.R.R.R.R.SEiEiEiEjEjEjEjEjׁׁEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEiEiEi\\\\\\{{{{{{{{{{{{{{|||||||||Cg@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d?d$I{$I{RA;P<3zcXnVIuh~pdNLpUMwzZvSePgQjQlRmRoSpTuVvWxY|\_ÆdƉgȊhʌi̎kΏlRFk4g1d-b+_(Z'}[N\O]O^O_O`OaPbPcPcPdPeQfQgQgQhRiRjRkSkSlTmTnTnUoUoUpUpUpUpUpUpTpTpTpTpSpSoSoSoSoSoSoSoRoRoRoRoRoRoRoRoRoRoRoRoRnRnRnRnRnRmRmRmRlRlRlRkRkRkQjQjQiQiQhQhQgQgQfPePePdPcPbPbPaO`O_O^O]O~\N|[NzYNwXNtVMpUMpYoXzWBuUBgVlP@jO@|bUx`TcMB3!.RRvRvRvRvRvRvRvRvRvRvRwRwRw.R.R.R.R.R.R.R.R.R.S.S.SEjEjEjEjEjEjEjEjEj؁EjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEjEj\\\\Bg{{{{{{{||||||||||||CgCgCgCg|@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d%I{;0/SB;R=4fODpXLxkrvbzx{[ÏldPgQiQjQlRnRpSqTrTtUwW{Z}\|\}\~]]}+~6d.a+_)^(\'zYN|ZN~\N]O^O_O_O`OaPbPcPdPdPeQfQgQgQhRiRjRjSkSlSlTmTmTnTnTnToToToToToToSoSoSoSoSoSoSoRoRoRoRoRoRoRoRoRoRoRoRnRnRnRnRnRnRmRmRmRmRlRlRlRlRkRkQjQjQjQiQiQhQhQgQgQfQePePdPcPbPbPaO`O_O^O]O\N}[NzZNxXNuWMrUMrZpY|XCxVCsTBmQAkOA~cVzaU`I>\IARvRvRvRvRvRvRvRvRvRvRwRwRwSwSwSwSw.R.R.R.R.R.S.S.S.SFjFjFjFjFjFjFjFj؂؂؂؂؂FjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFj\\Bg{||||||||||||||CgCgCgCgCgCgCgCg}@e@e@e@e@e@e@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d@d%I{<1/J82^I@gQFqYNxlsvc{dy{\wUčiePgQhQkQmRmRnRoSpSrTtUtUtUtUtUtUt.L&](['Z'Y&xYN{ZN}[N\N]O^O_O`OaOaPbPcPdPePeQfQgQgQhRiRiRjRkSkSlSlSmSmSmSnSnSnSnSnSnSnSnSnSnRnRnRnRnRnRnRnRnRnRnRnRnRnRnRnRnRnRmRmRmRmRmRlRlRlRlRkRkRkQjQjQiQiQiQhQhQgQfQfPePePdPcPbPbPaO`O_O^O]O\O}[N{ZNxYNvWNsVMs[rZ~ZDnYkYqSBkPAiOA|cVbK?\G>NB?RvRvRvRvRvRvRvRvRwRwRwSwSwSwSwSwSwSwSw.S.S.S.S.S.SFjFjFjFjFjFj؂؂؂؂؂؂؂؂؂؂FjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjCgCg|||||||||||CgCgCgCgCgCgCgCgCgCgCgCg}AeAeAe@e@e@e@e@e@e@e@e@d@d@d@d@d@d@d@d@d@d%I{@d@d<1/H72\I@ePGpYNxmtvc{ezu‘pwUuQePgQiQjQjQlRmRnRnRoRoRoRoRoRgb; Z'Y&W&S%vXNyYN{ZN~[N\O]O^O_O`OaOaPbPcPdPdPeQfQgQgQhQiRiRjRjRkSkSlSlSlSlSmSmSmSmSmSmRmRmRmRmRmRnRnRnRnRnRnRnRnRnRnRmRmRmRmRmRmRmRmRlRlRlRlRkRkRkQjQjQjQiQiQhQhQgQgQfQfPePdPdPcPbPbPaO`O_O^O]O\O}[N{ZNyYNvXNtVMu\]E[EoZmZkYnRBjOB}cVdL@`I?XGARvRvRvRvRvRvRwRwRwRwSwSwSwSwSwSwSwSwSwSwSw.S.S.S.S/SFjFjFjFjققققققققققققققFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjقCgCg|||||||CgCgCgCgCgCgCgCgCgCgCgCgChChChChCh}AeAeAeAeAeAeAeAeAe@e@e@e@e@e@e@e@d%I{%I{%I{%I{%I{@d@d<10F61o]Vye]oexmuud{e}d|atpÏluQdPePfQgQiQjQjQjQjQjQkQkQkQ_9 X&V&T%rUMuWMwXNzYN|ZN~[N\O]O^O_O`OaObPbPcPdPdPeQfQfQgQhQhRiRiRjRjRkRkRkRlRlRlRlRlRlRlRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRmRlRlRlRlRlRkRkRkRkQjQjQjQiQiQiQhQhQgQgQfQfPePdPdPcPbPbPaO`O_O^O]O\O~[N{ZNyYNwXNtVMrUM^F]Fq\o[lZqTDfX}dWeMAbK@O=6NB@RvRvRvRvRwRwRwRwSwSwSwSwSwSwSwSwSwSwSwSwSxSxSx/S/SFjFjFjككككككككككككككككككFjFjFjFjFjFjFjFjFjFjFjFjFjFjFjكككCgCgCg}}}CgCgCgCgCgCgCgCgChChChChChChChChChChDhDhDh~AeAeAeAeAeAeAeAeAeAeAeAeAe%I{%I{%I{%I{%I{%I{%I{%I{%I{@d@dE:9D61m\Vwe]lXOuaXk_z||e|c|`z]yXnÏlĎkĎidPePfPfPfPfPfPfPfP[7 U&T%P%pTMsVMuWMxXNzYN|ZN~[N\O]O^O_O`OaObPbPcPdPdPePeQfQgQgQhQhQiRiRjRjRjRkRkRkRkRkRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRlRkRkRkRkQkQjQjQjQiQiQiQhQhQgQgQfQfPePePdPdPcPbPbPaO`O_O^O]O\O~[N|ZNyYNwXNuWMrUM`G^Gr]|ZFxXFtVEgY~eY{cXbLA[H?REA.R.RRvRwRwRwSwSwSwSwSwSwSwSwSwSwSwSwSxSxSxSxTxTxTxككككككككككككككككككككككككFjFjFjFjFjFjFjFjFjFjFjكككككCgCg}}CgCgCgCgChChChChChChChChChDhDhDhDhDhDhDhDhDhDh~AeAeAeAeAeAeAeAeAe%I|%I|%I|%I{%I{%I{%I{%I{%I{%I{%I{%I{%I{%I{@e@eB99B51k[Vud]iWPr_Wye]y|}|e|cw{^z\yZpxWwUwUwUwUÎlÎlŽlŽlkD(S%P%nSMoTMqUMsVMvWNxXNzYN|ZN~[N\O]O^O_O`OaOaPbPcPcPdPePeQfQfQgQgQhQhQiQiRiRjRjRjRjRkRkRkRkRkRkRkRlRlRlRlRlRlRlRlRlRlRlRlRkRkRkRkRkQkQkQjQjQjQjQiQiQiQhQhQgQgQgQfQfPePePdPcPcPbPaPaO`O_O^O]O\O~[N|ZNyYNwXNuWMrUMw_v_t^~\GzYGvWFj[fZ|dYybX\I@VGB5/2.R.R.R.RSwSwSwSwSwSwSwSwSwSwSwSwSxSxSxSxTxTxTxTxFkFkFkFkڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃFkFkFkFkFkFkFkFkڃڃڃڃڃڃڃ}}}}ChChChChChChChDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDh~AeAeAeAeAe%J|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I{%I{%I{%I{%I{%I{@e@e<68?31gYVpa\bRMjYTq`Zj`z}}|{zxwz^tsssrrrrh2O$L$mSMnSMnTMoTMtVMvWNxXNzYN|ZN~[N\O]O^O_O`OaOaPbPcPcPdPdPePeQfQfQgQgQhQhQhQiQiQiQiQjQjQjQjQjQkQkQkQkRkRkRkRkRkRkRkRkRkQkQkQkQjQjQjQjQjQjQiQiQiQhQhQhQgQgQgQfQfPePePdPdPcPbPbPaP`O`O_O^O]O\O~[N|ZNyYNwXNtWMz`y`w`u_]I|[HwXGl\i[}eZycYr_WjZU;23.R.R.R.R.R.R.RSwSwSwSwSwSwSwSwSxSxSxTxTxTxTx/S/SGkGkGkGkGkGkGkڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃڃGkGkGkڃڃڃڃڃڃڃڃڃڃ}}}}~DhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhDhAf%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I|%I{%I{AeAeAe?89H=:?YUY`QGfVLudXjeitlm{po|qp}rp~rpsqsqtqr_=1+xJ)o[~[F\G^H_I`IkRLlRMnSMpTMrVMuWMwXNyYN{ZN}[N~\N\O]O^O_O_O`O`OaPbPbPcPcPcPdPdPePePePfPfQfQfQgQgQgQgQgQgQgQhQhQhQhQhQhQhQhQhQgQgQgQgQgQgQfQfQfQfPePePePdPdPdPcPcPbPbPaPaO`O_O_O^O]O\O~\N}[N{ZNyYNwXNuWMiOhOgOeOzeydwdtcrbtYKjTIaOG[KFj]Y^UU?;@.R.R.S.S.S.S.S.S/S/S/S/S/S/S/S/S/S/S/S/S/S/S/SGkGkGkGkGkGkGkGkGkGkGkGkGkGkGkGkGkGkۅۅۅۅۅۅۅۅۅۅGlGlGlGlGlGlGlGlGlGlGlGlGlۅۅۅۅۅDhDhDhDhDiDiDiDiDiրրրրրրրրրրրEiEi&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|AfAeAe%J|%J|%J|%I|%I|%I|%I|#-#%.()1MEAQIEUMI]SL]TM=4.1+(=.#6,&5( 1%"lYn[p\r]]H_I`JwaybkRLmSMpTMrUMtVMvWNxXNzYN|ZN}[N\N]O]O^O_O_O`OaOaPaPbPbPcPcPdPdPdPePePePePfPfPfQfQfQfQfQgQgQgQgQgQgQgQgQfQfQfQfQfQfPfPePePePePdPdPdPcPcPcPbPbPaPaO`O_O_O^O]O]O\O}[N|ZNzYNxXNvWNggghPfP|fzfxevdscsYLiTK_NHYKFh\Z]UV=;@.R.S.S.S.S.S.S/S/S/S/S/S/S/STxTxTxTxTx/S/S/S/SGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlۅۅۅۅۅۅGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlGlۅۅۅDiDiDiDiDiDiրրրրրրրրրրրրրրր׀׀׀Ei&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|BfBfAfAfAfAfAf%J|%J|%J|%J|%J|%J|%I|%I|%I|, +,!.! "`E6iYlZo\q]s^^Jvawbyczd{e}foTMqUMsVMuWNwXNyYN{ZN|ZN~[N\O]O]O^O_O_O`O`OaOaPbPbPcPcPcPdPdPdPdPePePePePePePePePfPfPfPfPfPfPfPePePePePePePePdPdPdPdPcPcPcPbPbPaPaO`O`O_O_O^O]O]O\O~[N|[N{ZNyYNwXNiiiihhRfQdQbPwfx]Opdkbtd_m`]OEDG?A;:@.S.S.S.S.S/S/S/S/S/S/S/S/STxTxTxTxTxTxTxTxTy/SGlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl܅܅HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl܅Eiրրրրրրրրրրրր׀׀׀׀׀׀BgBgBgBgBg&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|BfBfBfBfBfBfBfBfBfAfAf%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|%I| +,YA5jPBpSDl[o]q^t`_Kwbycze{f}ghilSrVMtWMvWNxXNyYN{ZN|[N~[N\O]O]O^O_O_O`O`O`OaPaPbPbPbPcPcPcPcPdPdPdPdPdPdPdPdPePePePePePdPdPdPdPdPdPdPcPcPcPcPbPbPbPaPaO`O`O`O_O^O^O]O]O\O~[N|[N{ZNyYNxXNjjjjjjhSgSeRcR|`Qsfoe}jcrd`k_]LCDC=@,,3(4F(4F.S.S/S/S/S/S/S/S/STxTxTxTxTxTxTxTxTxTyTyTyHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlChChրրրրEiEiEiրրրրրր׀׀׀CgCgCgCgCgCgCgCgCgCgCgCgBgBg&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|BfBfBfBfBfBfBfBfBfBfBfBfBfBfBf&J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|%I|%I|%I|#5H71O;3V?4iOBoSDsVFo]{[I^K`LbNdO{f}g~hjkTmUoVqWrWwXNxXNzYN{ZN}[N~[N\O]O]O^O^O_O_O`O`O`OaOaPaPbPbPbPbPcPcPcPcPcPcPcPcPcPcPcPcPcPcPcPcPcPcPbPbPbPbPaPaPaO`O`O_O_O_O^O^O]O\O\N~[N|ZN{ZNyYNoToToTnTllljUiThTfTcSvirgnfyidqdah^^HBD?<@)+3OZkMYk(5F(5F(5F/S/S/S/S/STxTxTxTxTxTxTxTxTyTyTyTyUy܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlDhDhDhCh&K}&K}&K}&K}&K}&K}ChChCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCg&J|&J|&J|&J|&J|&J|BgBgBgBfBfBfBfBfBfBfBfBfBfBfBfBfBfBfBf&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%J|%I|%I|A99N?;L:2T>4gNBlRDk\n^z[J~^LaNcOdPfQgRhTjUlVnWpXrXsYqqrrrsz[z[z[{[{[{ZœrŒqŒqŒpŒpőoyVxVxUwTwTaPbPbPbPbPbPbPbPbPbPbPbPbPbPaPaPaPaPaOaO`O`O`O_O_O^O^O^O]O]O\O~\N}[N|ZNzYNpTpUpUpUoVoVnVmVlVkVjVhVfU~cUujqh~mfugdkaad\^E@D98?$(2minffm^blV^lMYk(5F(5F/STxTxTxTxTxTxTxTxTxTyTyTyUyUy܆܆܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHl݆݆݆݆݆݆݆݆݆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}ChChChChChChChCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCg&J|CgCgCgCgCgBgBgBgBgBgBgBfBfBfBfBfBfBfBfBfBfBfBfBf&J|&J|&J|&J|&J|&J|&J|%J|%J|%J|%J|%J|%J|%J|AeAe;GY<68I=:I82Q=4XA6~fZj\m^p`|]L`NcPeQgSjlmnoXqYrZt[rsstttz]{]{]{\{\{\{[ēsērĒrĒqĒpđpyWĐoÐnÏmÏlŽlŽkkaOaOaOaOaOaOaO`O`O`O`O`O`O_O_O_O_O^O^O]O]O]O\O~\N}[N|ZNllmqVqVqVpWpWoWnnnnn~neWxltkpiykfodcf_`JDG@>C*,5$1MYktr~tstmolinadmX_lNZkMZkTxTxTxTxTxTxTxTyTyTyUyUyUy݆݆݆݆݆݆݆݆݆HlHlHmHmHmHmHmHmHmHmHmHm݆݆݇݇݇݇݇݇݇݇݇݇HmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHm'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhChChChChChChChCgCgCgCgCgCgCgCgCgCgCg&J}&J}&J}CgCgCgCgCgCgCgCgCgCgBgBgBgBgBgBgBfBfBfBfBfBfBfBfBf&J|&J|&J|&J|&J|&J|&J|&J|&J|&J|AfAfAfAf;GY;GY;GY1'!D:9N?;N;3]I?zdYh[l^oascuebQdRfTlmnopqrsv]w]uuuuv{^{^|^|]|]{\{\{[{[zZzZyYyXxXonnmmuTuStStStRsRsQ_O_O_O^O^O^O^O^O]O]O]OrSrSrSkllmmmnnqWqXqXooppppp}o{cXv`Vp]U}nishfhaba\_DAF::B$)4MYkMYkMYktctq\QPPIKFDI;>H/8GMZkTxTxTxTxTyTyTyUyUyUy݆݆݇݇݇݇݇݇݇݇݇݇݇HmHmHmImImImImIm݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇ImImImImImImImImImImImImImImImImImIm'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDhDhDhDhDhChChChChChChChChCgCg&K}&K}&K}&K}&J}&J}CgCgCgCgCgCgCgCgCgCgCgCgCgCgBgBgBgBgBgBgBfBfBfBfBfBf&J|&J|&J|&J|&J|&J|BfBfBfBfBfBf;HY;HY;GY;GY;GY;GY;,#I=:H82YF?^JA|e[j]n`qctewgyi|k~lnopqssu]v^w^x_y_z_z_{_wwvvv“u“u“t{\{\z[zZyZyYxXpowWvVvVuUuUuTtTlkkkkkksTrTrTrTrTrUrUrVnnnoooppqYqqrrrrqgZ{dYvaXp^WiYU`TRVNOb]aEBH<+[NL^SQWNNKFJ?AI2:HTxTyTyTyUyUyUyUyUy݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇ImImImIm݇݇݇݇އއއއއއއއއއއއއއއއImImImImImImImImImImImImImImImIm'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDhDhDhDhDhDhDhDhDhDhCh&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}CgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgBgBgBgBgBgBgBfBfBf&J|&J|BfBfBfBfBfBfBfBfBf;HY;HY;HY;HY;HY;HY;GY3("D::B41RB=YG@wcZ}g\k_nbrdug}aRdTgViXkYqrstp^q^w`x`y`z`za{axxwwwvvvuutssrrqqppoovWnnnnnnmtVsVsVsVsVsWsWsXsXpppsYsYrZr[r\q\p]ttssh\{e[vbYo^XhZV`USXPQNJMECJRS[47A+((MYkMYkMYkMZk(5F(5F(5FOHJT=+YML_SRZQQMGJABI2:H/TUyUyUyUyUyUy݇݇݇݇݇އއއއއއއއއއއއއއއއއއއއއއއއއއއއއއއއވވވވވވވImImImImImImImImImImImImވ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDhDhDhDhDhDhDhDh'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}CgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgBgBgBgBg&J|&J|BfBfBfBfBfBfBfBfBf;HY;HY;HY;HY;HY;HY>DM>DM;HY89<:+#9&B52I94ZHAxd[}g^k`ncrey_R}bTeVgXiYk[l\n]o^vvvawaxaybzb{b{axx|a|a|`{`{_{_{^z^uttssrrwZwZvYvYvYuXuXuXuXpppppppqqtZt[s\s\s]r]r^q^p^o^n^l^j^h]{f\ub[n^YgZW_UTWPQOKOEEKST]JNY>=?JJIMYkMYk(5F(5F(5F(5F(5F)5G)5GK=4S<*XMLbWVYPPLGJ@AI/T/TUyUyUyއއއއއއއއއއއވވވވވވވImImImImވވވވވވވވވވވވވވވވވވވވވވވވވImImImImImImImImވވވ'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDhDhDhDh'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}ChChCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCgCg&J|&J|&J|&J|&J|BgBgBgBfBfBfBfBfBf;HY;HY;HY;HY;HY;HYCIR>DMCIR;HYCIR.$0"8&?*G/V=+w[F{g^kanXMs\Px_S{bU~dWfYhZj\l]m^vwxyyzzzzz{b{b{b{b{a{a{`{`z_z_z^uy]y]x]x\w\w[w[v[v[v[v[rrrsssstuut^s_s_r_r`q`p`wvvu~twd]sb[l^ZeYW]TUUORLJOYYaRU^JOZ>>@!$)RXaMYk39B-3<-3<(5F)5G)5G)5G)5G)5GFDJK9*^K=YONg\\TLMIFJ:>I0T0TImވވވވވވވވވވވވވވވވވImImInInInInInInވވވވވވވވވ߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈InInInInIn߈߈߈߈߈'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DiDiDh'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}ChChChChChCgCgCgCgCgCgCgCgCgCgCg&J}&J}&J}&J}&J|&J|&J|&J|&J|BgBgBgBgBgBfBfEM>EMCIR;HY;HYCIRCIR)6&8&@*H0I1!\B0}_JhTKjM8q[Pt]Sw`U{cW~eYg[i\k^m_vwxyzz{{{{{zdzdzczczcyyyxxxwwwww_w_w_vvvvwwwwwwxxxxxxxxwv~v|tysvrh\YcXX[TUSNRIHOUXaNS^JFE>>A')+"%(4:C(5F(5F3:B3:B-3<-3<)5G)5G)5G)5G)5G)5GE:4O:*TKLbXWcZZPIKDCJImImImImވވވވވވވވވވވ߈߈߈InInInInInInJnJnJnJnJn߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߈߉߉߉߉߉Jn߉߉߉߈߈߈߈'K~'K~'K~'K~'K~'K~'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhChChChChChChCgCgCgCg&K}&K}&J}&J}&J}&J}&J}&J}&J}&J}&J|&J|&J|CgCgCgBgBgBgEMCIRCIRCIR888DGNCJRCIRBBB(0 8&<)G0M5"X@0z^KbFkUlXPp[Rs^TvaVzcX}fZg\i]uvwxyzz{{vevewewe||{{{{{{zzzzzyvbvbvbububuctctcsbscrcqcyyyxxww|uytvs~sqyooslmVQTOLR[\dQU`KHHAAD:<@68; &Z`i-4<%');AJ4:C4:C4:C-4<)5G)5G)5G)5G)6G)6G@84H8-N?5YPQmccoghd`dInInInInInIn߈߈߈߈߈߈߈߈߈JnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJn߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉߉JnJnJn߉߉߉߉߉߉'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~EiEiEiEi'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDhDhChChCh&K}&K}&K}&K}&K}&K}&K}&K}&J}&J}&J}&J}&J}&J}&J}&J}&J}CgCgCgCgB9;>68;Z`iZ`iMZk)5G4:C-4<4:C4:C-4<;BJ)5G)6G)6G)6G)6G)6GC6-L;.leg{{ypqhbeVYcJnJnJnJnJnJnJn߉߉߉߉߉JnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJnJn߉߉߉߉߉߉JnJnJnJnJnJnJn'L~'L~'L~'L~'L~'L~'K~'K~'K~EiEiEiEiEiEiEiEi'K~'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}DhDhDhDhDh'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&K}&J}&J}&J}&J}&J}&J}CgCgCg<535=AG=?D?AD==1(B3)B2&F4'E4)gTGlXJs^OzcTzaPqfethgvjhbVTcWUdXVeYWfZXg[Yh\Zi]Zi][j^\usususts~tt~tt}tt|st{stut~tt|sszrsyqrwpquoqsmpqloXTXTQWPOULLSSJEA<:=99757335./2113)+.'),)+.8:="(3@QJMPV\eT[cNZlNZlZ`iZ`iZ`iZ`iSYbY`h4;C.4=)6GCPaCPaCPaCPaCPaEQbZOGa_emhknfgeaeJnJnJnJnJnJnJoJoJoJoJoJoJoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoኮኮኮኮኮኮKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoڃڃڃڃڃڃڃڄڄڄڄڄڄEjEiEiEiEi'L~'L~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K}'K}'K}'K}'K}'K}'K}DiDiDiDiDhDh'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}&K}&K}&K}&K}$.>=I[=I[2)>0&A2'C3(I8-^OFbRHfUJjXMq^RwcVzfYfRDfQCdN@zdTqijrjksklrklrklrklqjmpjmpjmojmojmnimmimkhliflscYm`Xg\VbYT^VRE>;A<:>98:77645:873220/0,-/)+.*,/#%( &15;5BSKKKJMP]dlU[dNZlNZlZ`iTZcZaiZaiZ`iZ`iSZbLS[V]eDPbDPbDPbDPbDPbDPbWMF^^dieirkeaeJoJoJoJoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoኯኯኯKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoڃڄڄڄڄڄڄڄڄڄڄڄڄڄڄڄڄۄGk'L~'L~'L~'L~'L~'L~'K~'K~'K~'K~'K~'K~'K~'K~'K~'K~EiEiEiEiEiDiDiDiDiDi'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}&K}&K}&K}&K}%/> ,>=I[=I[ ,> ,>#)2(.7#)2(.7#)2#)2#)2#)2(.7(.7(.767@D>A214$+3#%("$'###""""""&&&888888cB*}\I@!%+%!5*$:/(;0)<1*>3+@4+>1(bUKN@6OA6L=3QB8M?4_RKaTLbUMcVNcVNcVObVOaVOaUO`UO_UO^UO^TO\SOYRNWPNUOMWPKYSOWRN;63953:76755333,/2'),%(+"%(!' "&,KXi04:JMP]_b^emU[dNZlNZlT[cU[dU[dU[d[ajW]fDPbDPbDPbDPbDPbDPbnSw|mqjKoKoKoኮኮኮኮኮኯኯኯKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKoKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpڄڄڄڄڄڄڄڄڄڄڄۄۄۄۄۄۄۄۄGkGkGkGkGkGk'L~'L~'L~'L~'K~'K~'K~EiEiEiEiEiEiEiEiEiEiEiEiDiDi'K}'K}'K}'K}HlHlHlHlHlHlHlHl'K}'K}'K}'K}'K}'K}'K}'K}'K}'K}&K}*2? ->=I[=I[ ,> ,> ,>#)2#)2#)2(.7(.7#)2#)2(.7(.7(.7(.7/28:79G@A<89',4#%(#%(######""""""8888888887'vS:jW;)  &3#.$-% .% .& /&!,#,#@70A71XNHXNHWNHWNHZRLYQLYQLXQLWQLWPLUOLSNLQMKOLJMJJ0//.-.,,-&(+"(!' 15;6CT37=MMMKMP^ad_enY`hNZlNZlU\dV\eDQbDQbDQbDQbDQbMUcyl|oiKoኯኯኯኯኯኯዯዯዯዯዯዯዯዯዯKoKoKoKoKoKoKoKpKpKpKpKpKpKpKpKpKpKpKpKpKpKpKp⋯⋯⋯LpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpڄڄڄڄڄۄۄۄۄۄۄۄۄۄۅۅۅۅۅۅGkGkGkGkGkGkGkGkGkۅ܅܅܅܅܅܅܅܅܅܅܅܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHl'K}'K}'K}'K}'K}'K}'K}'K}'K}HO\=J[=J[=J[ -> ,> ,>(.7#)2#)2(.7(.7(.7#)2(.7(.7(/7(/7)/8/28114H7,99@.05&,5$&)$$$######"""(((8888888888888884"nO9gXjZE/ (-"  %' %$#" ! !$ 48>7CU:GX JJJLLLKMPagp_enNZlLPVDQbDQbDQbDQbNVcuorjѼዯዯዯዯዯዯዯዯዯዯዯዯዯዯዯዯዯKpKpKpKpKpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLp⋰⋰⋰⌰⌰⌰LpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpۄۄۄۄۄۄۄۄۅۅۅۅۅۅۅۅۅۅۅۅGkGkGkGlGlGl܅܅܅܅܅܅܅܅܆܆܆܆܆܆܆܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHl'K}'K}'K}'K}DhDhDhIP\=J[=J[=J[=J[ -> ->(.7#)2#)2(.7(.7(.7#)2(.7(/7(/7)/8)/8)/803966:E?AC>A856,07%'*%')$$$######(((DDDBBB8888888880 cF1w]OcS{`QS;+57'   *      ;?E7CU;HY=I[ JJJMMMKMPacfbhqEQcHScNVdȵዯዯዯዯዯዯዯ⋯⋯⋯⋯⋯⋰⋰⋰⋰⋰⋰⋰LpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLp⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰LpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpLpۄۄۅۅۅۅۅۅۅۅۅۅۅۅۅۅۅۅۅ܅܅GlGl܅܅܅܅܅܆܆܆܆܆܆܆܆܆܆܆܆܆܆܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHl݇DhDhDhDh=J[=J[=J[=J[=J[=J[ ->(/7#)2#)2(.7(.7(.7#*2(/7)/8)/8)/8)/8)08*0903:56:88@KBB=;@348*08&(+'(*%%%$$$(((EEE(((&&&">-"bF3oXMs[Ow]Py^PqbpXMdH5R<,Q;, &%%#'-"'-&3DS_qP\nR_p>J\?K]AG@B::@66:-29'),)'%BBBFFFEEE)))))))))&&& @@@FFFACFZ\_[ajagpEQcGRcKTdPWd⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰㌰㌰㌰㌰LpLpLqLqLqLqLqLqLq㌱㌱㌱㌱㌱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱MqMqMqMqMqMqMqMqMqMqMqMqMqMqMqۅۅۅۅۅۅ܅܅܅܅܅܅܅܅܅܅܆HlHlHlHlHl܆܆܆܆܆܆܆܆܆܆܆݆݆݆݆݆݆݆݆݆݆݆݇݇݇݇݇HlHlHlHlHlHlHl݇݇݇݇݇݇݇݇އއއށ>J\>J\=J[=J[=J[=J[FLU39B#*2(/7)/7)/8$*3$*3$*3)/8)08*09*09*19',5(-5*.6.17338@<=G@BH@BXW]UUXLPWFHKDFHKKKHHH+++%%%%%%$$$###!!!!!!777777777777777777777AAAFFFACFACF\^aeltbhqDQbDQbDQbERcERcERcERcHScLUdRXd|nj⌰⌰⌰⌰⌰⌰⌰⌰⌰⌰㌰㌰㌰㌰㌱㌱㌱㌱㌱㌱㌱㌱㍱㍱㍱㍱MqMqMqMqMqMq㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱MqMqMqMqMqMqMqMqMqMqMqMqMq܅܅܅܅܅܅܅܅܅܅܆܆܆܆HlHlHlHlHlHlHlHlHl܆܆܆݆݆݆݆݆݆݆݆݆݆݆݇݇݇݇݇݇݇݇݇݇݇݇HlHlHlHlHl݇݇݇އއއއއއއއއއށ>J\=J[=J[FLUFLU(/7(/7*08*08%+3$*3$+3$+3*09*09*19&,5&,5'-6).6*/7-18NPURRVXUVc]^f^_[X]\XYTUZLQYKMPFHJ)))(((&&&%%%%%%$$$$$$###!!!!!!!!!777777777BBBEEEACGADGFIL\ckZ`iTZcDQbDQbDQbagpbiqcircirY`hY_hERcERcERcGSdJTdNVdTYeLpLp㌰㌰㌰㌱㌱㌱㌱㌱㌱㌱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱MqMq㍱㍱㍱䍱䍱䍱䍱䍱䍱䍱䍱䍱䍲䍲䍲䍲䍲䍲䍲䍲䍲䍲䍲䍲䍲MqMqMqMqMqMqMqMqMqMqMq܅܅܅܆܆܆܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHl݆݆݆݆݆݆݆݆݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇HmއއއއއއއއއއއވވވވވށFLUFLUFLU)/8+08+08&+3&+3%+4%+4%+4*19+1:&,5'-5'-6(.6FLTHMTINUKOVOQWSTXYWX`[^lbac]_f_\a_aY\aRX_,.1*,.*+-***((('''&&&%%%%%%$$$$$$$$$###!!!!!!!!!!!!!!!%%%%%%%%%%%%"""""""""KKKJJJFFFGIL]_b^dm\bkV]eDQbEQcEQcEQccirdjsdksektdjsdjscir[ajZ`iOU^ERcERcFRdFRdITdLUdPWeVZeLpLqLqLq㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱㍱䍱䍱䍱䍱䍱䍲䍲䍲Mq䍲䍲䍲䍲䍲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲MrMrMrMrMrMrMrMrMrMr܆܆܆܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇݇އއއއHmHmHmއއއއވވވވވވވވވވވވށ-18,18',3',4',4&,4%,4+1:,2:'-5DJSEKSEKTFLTFLUHMUINVKOWLPWQSYTUZWWZpjje^`offb\_h`]eaaCCG8;A27?-/2+-/.+)******)))((('''&&&&&&%%%%%%$$$$$$$$$$$$$$$$$$######???EEEEEEEEE((((((###&&&%%%HJMHJMHJMHJM_en]dlZ`i_enEQcEQcEQcEQcbhqektflufluflufluektektdksdjscjr\ckQW`[ajZaiOU^FRdFRdFRdHSdKUdNVeRXeX\fLqMqMqMqMq㍱㍱㍱㍱㍱䍱䍱䍱䍱䍲䍲䍲䍲䍲䍲䍲䍲䎲䎲䎲䎲䎲MrMrMrMrMr䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲厲厲厲厲厲厲厲厲NrNrNrNrNrNrNrNr܆܆܆܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl݇݇݇݇݇݇݇݇݇݇݇݇އއއއއއއއHmHmHmHmImImImވވވވވވވވވވވވވވވނPT[KOVJOV(-4(-4'-5'-5JOXEKSEKSEKTFLTFLTGMUGMUHNVIOWKPWLQXMRYPTZTV[\]a_^asljd^azporjkE@CLEBIEFEDG29A28A17@135,.1+-0+,/./1..0'),)))++++++++++++***FFFFFFACFACFEEEACFACFJLOJLOKQZ_en]clY_hU[dEQcEQcEQcEQcEQcagp[aj\bk\bkgnvgnvgmvgmvfluflueltektdksdjscjrcirTZcSYbRYaRXaQW`[bj[ajZ`iFSdFSdGSdJTdLVePXeTZfZ]fMqMqMqMqMqMqMq䍲䍲䍲䍲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲䎲NrNrNrNrNrNrNrNrNr厲厲厲厳厳厳厳厳厳厳厳厳厳厳厳厳厳厳厳右右右右右右右NrNrNrNrNr右冪܆܆HlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHlHl݇݇݇݇݇އއއއއއއއއއއއImImImImImImImImImImވވވވވވވވވ߈߈߈߈߈߈߂LPVLPWKPWFLTFLTFLUGMUGMUHMVHNVINWIOWKPXLQYMRYNSZTX`X[a[]b]^c__ccacib`JDGi__aYYPJLD@C=;AKEDTQR@?A>>A;/5>.4=-4 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" } 070701000058fb000081a400000064000000640000000133766d3700001d57000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/demos/ixset#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # 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 # # SCCS: @(#) ixset 1.7 96/02/16 10:49:19 # # Button actions # proc quit {} { destroy . } proc ok {} { writesettings quit } proc cancel {} { readsettings dispsettings } # apply is just "writesettings" # # 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.val.le.tim.entry get] set screencyc [.screen.val.le.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.val.rb.blank [expr "{$screenbla}=={blank} ? {select} : {deselect}"] .screen.val.rb.pat [expr "{$screenbla}!={blank} ? {select} : {deselect}"] .screen.val.le.tim.entry delete 0 end .screen.val.le.tim.entry insert 0 $screentim .screen.val.le.cyc.entry delete 0 end .screen.val.le.cyc.entry insert 0 $screencyc } # # Create all windows, and pack them # proc labelentry {path text length} { frame $path label $path.label -text $text entry $path.entry -width $length -relief sunken pack $path.label -side left -expand y pack $path.entry -side right -expand y } proc createwindows {} { # # Buttons # frame .buttons button .buttons.ok -command "ok" -text "Ok" button .buttons.apply -command "writesettings" -text "Apply" button .buttons.cancel -command "cancel" -text "Cancel" button .buttons.quit -command "quit" -text "Quit" pack .buttons.ok .buttons.apply .buttons.cancel .buttons.quit \ -side left -expand yes -pady 5 # # Bell settings # frame .bell -relief raised -borderwidth 2 label .bell.label -text "Bell Settings" 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 labelentry .bell.val.dur "Duration (ms)" 6 pack .bell.val.pit -side left -padx 5 pack .bell.val.dur -side right -padx 5 pack .bell.label .bell.vol .bell.val -side top -expand yes # # Keyboard settings # frame .kbd -relief raised -borderwidth 2 label .kbd.label -text "Keyboard Repeat Settings" 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 -expand yes -fill both pack .kbd.val.cli -side left -expand yes pack .kbd.label -side top -expand yes pack .kbd.val -side top -expand yes -pady 2 -fill x # # Mouse settings # frame .mouse -relief raised -borderwidth 2 label .mouse.label -text "Mouse Settings" frame .mouse.hor labelentry .mouse.hor.acc "Acceleration" 3 labelentry .mouse.hor.thr "Threshold (pixels)" 3 pack .mouse.hor.acc -side left pack .mouse.hor.thr -side right pack .mouse.label -side top pack .mouse.hor -side top -expand yes # # Screen Saver settings # frame .screen -relief raised -borderwidth 2 label .screen.label -text "Screen-saver Settings" frame .screen.val frame .screen.val.rb radiobutton .screen.val.rb.blank \ -variable screenblank -text "Blank" -relief flat \ -value "blank" -variable screenbla radiobutton .screen.val.rb.pat \ -variable screenblank -text "Pattern" -relief flat \ -value "noblank" -variable screenbla pack .screen.val.rb.blank .screen.val.rb.pat -side top -pady 2 -anchor w frame .screen.val.le labelentry .screen.val.le.tim "Timeout (s)" 5 labelentry .screen.val.le.cyc "Cycle (s)" 5 pack .screen.val.le.tim .screen.val.le.cyc -side top -pady 2 -anchor e pack .screen.val.rb .screen.val.le -side left pack .screen.label -side top pack .screen.val -side top -expand y # # Main window # pack .buttons -side top -fill both pack .bell .kbd .mouse .screen -side top -fill both -ipady 5 -expand yes # # 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... # 070701000058fc000081a400000064000000640000000133766d380000053c000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/label.tcl# label.tcl -- # # This demonstration script creates a toplevel window containing # several label widgets. # # SCCS: @(#) label.tcl 1.6 96/04/12 12:06:20 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 070701000058fd000081a400000064000000640000000133766d38000008a1000000200000001b00000000000000000000002400000009reloc/lib/tk4.2/demos/license.termsThis software is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., 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. 070701000058fe000081a400000064000000640000000133766d3900001416000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/menu.tcl# menu.tcl -- # # This demonstration script creates a window with a bunch of menus # and cascaded menus. # # SCCS: @(#) menu.tcl 1.7 96/04/12 11:57:35 set w .menu catch {destroy $w} toplevel $w wm title $w "Menu Demonstration" wm iconname $w "menu" positionWindow $w frame $w.menu -relief raised -bd 2 pack $w.menu -side top -fill x label $w.msg -font $font -wraplength 4i -justify left -text "This window contains a collection of menus and 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." 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 m $w.menu.file.m menubutton $w.menu.file -text "File" -menu $m -underline 0 menu $m $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 "Quit" -command "destroy $w" set m $w.menu.basic.m menubutton $w.menu.basic -text "Basic" -menu $m -underline 0 menu $m $m add command -label "Long entry that does nothing" foreach i {a b c d e f g} { $m add command -label "Print letter \"$i\"" -underline 14 \ -accelerator Meta+$i -command "puts $i" bind $w "puts $i" } set m $w.menu.cascade.m menubutton $w.menu.cascade -text "Cascades" -menu $m -underline 0 menu $m $m add command -label "Print hello" \ -command {puts stdout "Hello"} -accelerator Control+a -underline 6 bind . {puts stdout "Hello"} $m add command -label "Print goodbye" -command {\ puts stdout "Goodbye"} -accelerator Control+b -underline 6 bind . {puts stdout "Goodbye"} $m add cascade -label "Check buttons" \ -menu $w.menu.cascade.m.check -underline 0 $m add cascade -label "Radio buttons" \ -menu $w.menu.cascade.m.radio -underline 0 set m $w.menu.cascade.m.check menu $m $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.m.radio menu $m $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.m menubutton $w.menu.icon -text "Icons" -menu $m -underline 0 menu $m $m add command \ -bitmap @[file join $tk_library demos images pattern.bmp] \ -command { tk_dialog .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 -command "puts {You invoked the $i bitmap}" } set m $w.menu.more.m menubutton $w.menu.more -text "More" -menu $m -underline 0 menu $m 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\""] } set m $w.menu.colors.m menubutton $w.menu.colors -text "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\""] } pack $w.menu.file $w.menu.basic $w.menu.cascade $w.menu.icon $w.menu.more \ $w.menu.colors -side left 070701000058ff000081a400000064000000640000000133766d3900000805000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/msgbox.tcl# msgbox.tcl -- # # This demonstration script creates message boxes of various type # # SCCS: @(#) msgbox.tcl 1.2 96/08/27 14:42:23 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 } 07070100005900000081a400000064000000640000000133766d3a00000b1c000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/plot.tcl# plot.tcl -- # # This demonstration script creates a canvas widget showing a 2-D # plot with data points that can be dragged with the mouse. # # SCCS: @(#) plot.tcl 1.3 96/02/16 10:49:46 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-Medium-R-Normal--*-180-*-*-*-*-*-* $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 } 07070100005901000081a400000064000000640000000133766d3a00000960000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/puzzle.tcl# puzzle.tcl -- # # This demonstration script creates a 15-puzzle game using a collection # of buttons. # # SCCS: @(#) puzzle.tcl 1.4 96/02/16 10:49:48 # 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 frame $w.frame -width 120 -height 120 -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 07070100005902000081a400000064000000640000000133766d3b0000062a000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/radio.tcl# radio.tcl -- # # This demonstration script creates a toplevel window containing # several radiobutton widgets. # # SCCS: @(#) radio.tcl 1.4 96/02/16 10:49:34 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 "Two 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" 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 -pady .5c -padx .5c foreach i {10 12 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 } foreach color {Red Green Blue Yellow Orange Purple} { set lower [string tolower $color] radiobutton $w.right.$lower -text $color -variable color \ -relief flat -value $lower pack $w.right.$lower -side top -pady 2 -anchor w } 07070100005903000081a400000064000000640000000133766d3b000014ac000000200000001b00000000000000000000001a00000009reloc/lib/tk4.2/demos/rmt#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$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. # # SCCS: @(#) rmt 1.9 96/02/16 10:49:22 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. frame .menu -relief raised -bd 2 pack .menu -side top -fill x menubutton .menu.file -text "File" -menu .menu.file.m -underline 0 menu .menu.file.m .menu.file.m add cascade -label "Select Application" \ -menu .menu.file.m.apps -underline 0 .menu.file.m add command -label "Quit" -command "destroy ." -underline 0 menu .menu.file.m.apps -postcommand fillAppsMenu pack .menu.file -side left # Create text window and scrollbar. text .t -relief sunken -bd 2 -yscrollcommand ".s set" -setgrid true scrollbar .s -command ".t yview" pack .s -side right -fill both pack .t -side left # 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 tag configure bold -font -*-Courier-Bold-R-Normal-*-120-*-*-*-*-*-* # 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 {} { catch {.menu.file.m.apps delete 0 last} foreach i [lsort [winfo interps]] { .menu.file.m.apps add command -label $i -command [list newApp $i] } .menu.file.m.apps add command -label local -command {newApp local} } set app [winfo name .] prompt focus .t 07070100005904000081a400000064000000640000000133766d3b00001fc5000000200000001b00000000000000000000001e00000009reloc/lib/tk4.2/demos/rolodex#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # 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. # # SCCS: @(#) rolodex 1.7 96/02/16 10:49:23 foreach i [winfo child .] { catch {destroy $i} } #------------------------------------------ # 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} { frame .frame.$i pack .frame.$i -side top -pady 2 -anchor e label .frame.$i.label -text [lindex $names $i] -anchor e entry .frame.$i.entry -width 30 -relief sunken pack .frame.$i.entry .frame.$i.label -side right } 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.$i.entry get]] } } .buttons.add config -command addAction #------------------------------------------ # Phase 4: Miscellaneous other actions #------------------------------------------ proc clearAction {} { foreach i {1 2 3 4 5 6 7} { .frame.$i.entry delete 0 end } } .buttons.clear config -command clearAction proc fillCard {} { clearAction .frame.1.entry insert 0 "John Ousterhout" .frame.2.entry insert 0 "CS Division, Department of EECS" .frame.3.entry insert 0 "University of California" .frame.4.entry insert 0 "Berkeley, CA 94720" .frame.5.entry insert 0 "private" .frame.6.entry insert 0 "510-642-0865" .frame.7.entry 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.1.entry #---------------------------------------------------- # 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]]] } bind . {Help [winfo containing %X %Y] %X %Y} bind . {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.0) {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.1) {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.1.entry) {In this field of the rolodex entry you should type the person's name} set helpTopics(.frame.2.entry) {In this field of the rolodex entry you should type the first line of the person's address} set helpTopics(.frame.3.entry) {In this field of the rolodex entry you should type the second line of the person's address} set helpTopics(.frame.4.entry) {In this field of the rolodex entry you should type the third line of the person's address} set helpTopics(.frame.5.entry) {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.6.entry) {In this field of the rolodex entry you should type the person's work phone number} set helpTopics(.frame.7.entry) {In this field of the rolodex entry you should type the phone number for the person's FAX machine} set helpCmds(.frame.1.label) {set topic .frame.1.entry} set helpCmds(.frame.2.label) {set topic .frame.2.entry} set helpCmds(.frame.3.label) {set topic .frame.3.entry} set helpCmds(.frame.4.label) {set topic .frame.4.entry} set helpCmds(.frame.5.label) {set topic .frame.5.entry} set helpCmds(.frame.6.label) {set topic .frame.6.entry} set helpCmds(.frame.7.label) {set topic .frame.7.entry} 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 1.0.} # 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 07070100005905000081a400000064000000640000000133766d3c00001476000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/ruler.tcl# ruler.tcl -- # # This demonstration script creates a canvas widget that displays a ruler # with tab stops that can be set, moved, and deleted. # # SCCS: @(#) ruler.tcl 1.8 96/04/12 12:12:27 # 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) != [expr $v(top)+2]} { $c delete active } else { eval "$c itemconf active $v(normalStyle)" $c dtag active } } 07070100005906000081a400000064000000640000000133766d3c000008e3000000200000001b00000000000000000000002200000009reloc/lib/tk4.2/demos/sayings.tcl# sayings.tcl -- # # This demonstration script creates a listbox that can be scrolled # both horizontally and vertically. It displays a collection of # well-known sayings. # # SCCS: @(#) sayings.tcl 1.6 96/10/04 17:09:38 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" 07070100005907000081a400000064000000640000000133766d3d0000117a000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/search.tcl# 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. # # SCCS: @(#) search.tcl 1.4 96/02/16 10:49:12 # 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 "" 07070100005908000081a400000064000000640000000133766d3d000004c1000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/square#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # square -- # This script generates a demo application containing only # a "square" widget. It's only usable if Tk has been compiled # with tkSquare.c and with the -DSQUARE_DEMO compiler switch. # This demo arranges the following bindings for the widget: # # Button-1 press/drag: moves square to mouse # "a": toggle size animation on/off # # SCCS: @(#) square 1.6 96/02/16 10:49:21 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 } 07070100005909000081a400000064000000640000000133766d3e000006cf000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/states.tcl# states.tcl -- # # This demonstration script creates a listbox widget that displays # the names of the 50 states in the United States of America. # # SCCS: @(#) states.tcl 1.3 96/02/16 10:49:50 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 0707010000590a000081a400000064000000640000000133766d3e00001b52000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/style.tcl# style.tcl -- # # This demonstration script creates a text widget that illustrates the # various display styles that may be set for tags. # # SCCS: @(#) style.tcl 1.5 96/02/16 10:49:24 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-Bold-O-Normal--*-120-*-*-*-*-*-* $w.text tag configure big -font -*-Courier-Bold-R-Normal--*-140-*-*-*-*-*-* $w.text tag configure verybig -font \ -*-Helvetica-Bold-R-Normal--*-240-*-*-*-*-*-* 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 -Adobe-Courier-Medium-R-Normal--*-100-*-*-*-*-*-* $w.text tag configure sub -offset -2p \ -font -Adobe-Courier-Medium-R-Normal--*-100-*-*-*-*-*-* $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 0707010000590b000081a400000064000000640000000133766d3f00001102000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/tclIndex# 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(arrowSetup) [list source [file join $dir arrow.tcl]] set auto_index(arrowMove1) [list source [file join $dir arrow.tcl]] set auto_index(arrowMove2) [list source [file join $dir arrow.tcl]] set auto_index(arrowMove3) [list source [file join $dir arrow.tcl]] set auto_index(textLoadFile) [list source [file join $dir search.tcl]] set auto_index(textSearch) [list source [file join $dir search.tcl]] set auto_index(textToggle) [list source [file join $dir search.tcl]] set auto_index(itemEnter) [list source [file join $dir items.tcl]] set auto_index(itemLeave) [list source [file join $dir items.tcl]] set auto_index(itemMark) [list source [file join $dir items.tcl]] set auto_index(itemStroke) [list source [file join $dir items.tcl]] set auto_index(itemsUnderArea) [list source [file join $dir items.tcl]] set auto_index(itemStartDrag) [list source [file join $dir items.tcl]] set auto_index(itemDrag) [list source [file join $dir items.tcl]] set auto_index(butPress) [list source [file join $dir items.tcl]] set auto_index(loadDir) [list source [file join $dir image2.tcl]] set auto_index(loadImage) [list source [file join $dir image2.tcl]] set auto_index(rulerMkTab) [list source [file join $dir ruler.tcl]] set auto_index(rulerNewTab) [list source [file join $dir ruler.tcl]] set auto_index(rulerSelectTab) [list source [file join $dir ruler.tcl]] set auto_index(rulerMoveTab) [list source [file join $dir ruler.tcl]] set auto_index(rulerReleaseTab) [list source [file join $dir ruler.tcl]] set auto_index(mkTextConfig) [list source [file join $dir ctext.tcl]] set auto_index(textEnter) [list source [file join $dir ctext.tcl]] set auto_index(textInsert) [list source [file join $dir ctext.tcl]] set auto_index(textPaste) [list source [file join $dir ctext.tcl]] set auto_index(textB1Press) [list source [file join $dir ctext.tcl]] set auto_index(textB1Move) [list source [file join $dir ctext.tcl]] set auto_index(textBs) [list source [file join $dir ctext.tcl]] set auto_index(textDel) [list source [file join $dir ctext.tcl]] set auto_index(bitmapRow) [list source [file join $dir bitmap.tcl]] set auto_index(scrollEnter) [list source [file join $dir cscroll.tcl]] set auto_index(scrollLeave) [list source [file join $dir cscroll.tcl]] set auto_index(scrollButton) [list source [file join $dir cscroll.tcl]] set auto_index(textWindOn) [list source [file join $dir twind.tcl]] set auto_index(textWindOff) [list source [file join $dir twind.tcl]] set auto_index(textWindPlot) [list source [file join $dir twind.tcl]] set auto_index(embPlotDown) [list source [file join $dir twind.tcl]] set auto_index(embPlotMove) [list source [file join $dir twind.tcl]] set auto_index(textWindDel) [list source [file join $dir twind.tcl]] set auto_index(embDefBg) [list source [file join $dir twind.tcl]] set auto_index(floorDisplay) [list source [file join $dir floor.tcl]] set auto_index(newRoom) [list source [file join $dir floor.tcl]] set auto_index(roomChanged) [list source [file join $dir floor.tcl]] set auto_index(bg1) [list source [file join $dir floor.tcl]] set auto_index(bg2) [list source [file join $dir floor.tcl]] set auto_index(bg3) [list source [file join $dir floor.tcl]] set auto_index(fg1) [list source [file join $dir floor.tcl]] set auto_index(fg2) [list source [file join $dir floor.tcl]] set auto_index(fg3) [list source [file join $dir floor.tcl]] set auto_index(setWidth) [list source [file join $dir hscale.tcl]] set auto_index(plotDown) [list source [file join $dir plot.tcl]] set auto_index(plotMove) [list source [file join $dir plot.tcl]] set auto_index(puzzleSwitch) [list source [file join $dir puzzle.tcl]] set auto_index(setHeight) [list source [file join $dir vscale.tcl]] set auto_index(showMessageBox) [list source [file join $dir msgbox.tcl]] set auto_index(setColor) [list source [file join $dir clrpick.tcl]] set auto_index(setColor_helper) [list source [file join $dir clrpick.tcl]] set auto_index(fileDialog) [list source [file join $dir filebox.tcl]] 0707010000590c000081a400000064000000640000000133766d3f00002c9d000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/tcolor#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$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. # # SCCS: @(#) tcolor 1.10 96/02/16 10:49:25 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 "" # Create the menu bar at the top of the window. frame .menu -relief raised -borderwidth 2 pack .menu -side top -fill x menubutton .menu.file -text File -menu .menu.file.m -underline 0 menu .menu.file.m .menu.file.m add radio -label "RGB color space" -variable colorSpace \ -value rgb -underline 0 -command {changeColorSpace rgb} .menu.file.m add radio -label "CMY color space" -variable colorSpace \ -value cmy -underline 0 -command {changeColorSpace cmy} .menu.file.m add radio -label "HSB color space" -variable colorSpace \ -value hsb -underline 0 -command {changeColorSpace hsb} .menu.file.m add separator .menu.file.m add radio -label "Automatic updates" -variable autoUpdate \ -value 1 -underline 0 .menu.file.m add radio -label "Manual updates" -variable autoUpdate \ -value 0 -underline 0 .menu.file.m add separator .menu.file.m add command -label "Exit program" -underline 0 \ -command "destroy ." pack .menu.file -side left # Create the command entry window at the bottom of the window, along # with the update button. frame .bot -relief raised -borderwidth 2 pack .bot -side bottom -fill x label .commandLabel -text "Command:" entry .command -relief sunken -borderwidth 2 -textvariable command \ -font -Adobe-Courier-Medium-R-Normal--*-120-*-*-*-*-*-* button .update -text Update -command doUpdate pack .commandLabel -in .bot -side left pack .update -in .bot -side right -pady .1c -padx .25c pack .command -in .bot -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. frame .middle -relief raised -borderwidth 2 pack .middle -side top -fill both 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] frame .middle.left pack .middle.left -side left -padx .25c -pady .25c listbox .names -width 20 -height 12 -yscrollcommand ".scroll set" \ -relief sunken -borderwidth 2 -exportselection false bind .names { tc_loadNamedColor [.names get [.names curselection]] } scrollbar .scroll -orient vertical -command ".names yview" \ -relief sunken -borderwidth 2 pack .names -in .middle.left -side left pack .scroll -in .middle.left -side right -fill y while {[gets $f line] >= 0} { if {[llength $line] == 4} { .names insert end [lindex $line 3] } } close $f break } # Create the three scales for editing the color, and the entry for # typing in a color value. frame .middle.middle pack .middle.middle -side left -expand yes -fill y frame .middle.middle.1 frame .middle.middle.2 frame .middle.middle.3 frame .middle.middle.4 pack .middle.middle.1 .middle.middle.2 .middle.middle.3 -side top -expand yes pack .middle.middle.4 -side top -expand yes -fill x foreach i {1 2 3} { label .label$i -textvariable label$i scale .scale$i -from 0 -to 1000 -length 6c -orient horizontal \ -command tc_scaleChanged pack .scale$i .label$i -in .middle.middle.$i -side top -anchor w } label .nameLabel -text "Name:" entry .name -relief sunken -borderwidth 2 -textvariable name -width 10 \ -font -Adobe-Courier-Medium-R-Normal--*-120-*-*-*-*-*-* pack .nameLabel -in .middle.middle.4 -side left pack .name -in .middle.middle.4 -side right -expand 1 -fill x bind .name {tc_loadNamedColor $name} # Create the color display swatch on the right side of the window. frame .middle.right pack .middle.right -side left -pady .25c -padx .25c -anchor s frame .swatch -width 2c -height 5c -background $color label .value -textvariable color -width 13 \ -font -Adobe-Courier-Medium-R-Normal--*-120-*-*-*-*-*-* pack .swatch -in .middle.right -side top -expand yes -fill both pack .value -in .middle.right -side bottom -pady .25c # 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 } if {$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]] } else { if {$colorSpace == "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}]] } else { 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] .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 if {$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]] } else { if {$colorSpace == "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]] } else { 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 .swatch $name] set red [lindex $list 0] set green [lindex $list 1] set blue [lindex $list 2] } else { case [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] .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 if {$space == "rgb"} { set label1 Red set label2 Green set label3 Blue tc_setScales return } if {$space == "cmy"} { set label1 Cyan set label2 Magenta set label3 Yellow tc_setScales return } if {$space == "hsb"} { set label1 Hue set label2 Saturation set label3 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 $red.0 set min $green.0 } else { set max $green.0 set min $red.0 } if {$blue > $max} { set max $blue.0 } else { if {$blue < $min} { set min $blue.0 } } 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 {.166667*($bc - $gc)}] } else { if {$green == $max} { set hue [expr {.166667*(2 + $rc - $bc)}] } else { set hue [expr {.166667*(4 + $gc - $rc)}] } } 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)))}]] case $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"} 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 0707010000590d000081a400000064000000640000000133766d3f00000ca6000000200000001b00000000000000000000001f00000009reloc/lib/tk4.2/demos/text.tcl# text.tcl -- # # This demonstration script creates a text widget that describes # the basic editing functions. # # SCCS: @(#) text.tcl 1.5 96/02/16 10:49:07 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 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. 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 0707010000590e000081a400000064000000640000000133766d400000038d000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/demos/timer#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$0" "$@" # timer -- # This script generates a counter with start and stop buttons. # # SCCS: @(#) timer 1.6 96/02/16 10:49:20 label .counter -text 0.00 -relief raised -width 10 button .start -text Start -command { if $stopped { set stopped 0 tick } } button .stop -text Stop -command {set stopped 1} pack .counter -side bottom -fill both pack .start -side left -fill both -expand yes pack .stop -side right -fill both -expand yes set seconds 0 set hundredths 0 set stopped 1 proc tick {} { global seconds hundredths stopped if $stopped return after 50 tick set hundredths [expr $hundredths+5] if {$hundredths >= 100} { set hundredths 0 set seconds [expr $seconds+1] } .counter config -text [format "%d.%02d" $seconds $hundredths] } bind . {destroy .} bind . {destroy .} focus . 0707010000590f000081a400000064000000640000000133766d40000019fa000000200000001b00000000000000000000002000000009reloc/lib/tk4.2/demos/twind.tcl# twind.tcl -- # # This demonstration script creates a text widget with a bunch of # embedded windows. # # SCCS: @(#) twind.tcl 1.5 96/08/20 16:04:04 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 -Adobe-Helvetica-Medium-R-Normal--*-180-*-*-*-*-*-* $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] } 07070100005910000081a400000064000000640000000133766d410000060f000000200000001b00000000000000000000002100000009reloc/lib/tk4.2/demos/vscale.tcl# vscale.tcl -- # # This demonstration script shows an example with a vertical scale. # # SCCS: @(#) vscale.tcl 1.3 96/02/16 10:49:51 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 } 07070100005911000081a400000064000000640000000133766d4100003443000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/demos/widget#!/bin/sh # the next line restarts using wish \ exec wish4.2 "$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. # # SCCS: @(#) widget 1.21 96/10/04 17:09:34 eval destroy [winfo child .] wm title . "Widget Demonstration" #---------------------------------------------------------------- # 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. #---------------------------------------------------------------- set font -*-Helvetica-Medium-R-Normal--*-140-*-*-*-*-*-* frame .menuBar pack .menuBar -side top -fill x menubutton .menuBar.file -text File -menu .menuBar.file.m -underline 0 menu .menuBar.file.m .menuBar.file.m add command -label "About ... " -command "aboutBox" \ -underline 0 -accelerator "" .menuBar.file.m add sep .menuBar.file.m add command -label "Quit" -command "exit" -underline 0 pack .menuBar.file -side left bind . aboutBox frame .textFrame scrollbar .s -orient vertical -command {.t yview} -highlightthickness 0 \ -takefocus 1 pack .s -in .textFrame -side right -fill y -padx 1 text .t -yscrollcommand {.s set} -wrap word -width 60 -height 30 -font $font \ -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 -padx 1 -pady 2 frame .statusBar label .statusBar.lab -text " " -relief sunken -bd 1 \ -font -*-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* -anchor w label .statusBar.foo -width 8 -relief sunken -bd 1 \ -font -*-Helvetica-Medium-R-Normal--*-120-*-*-*-*-*-* -anchor w pack .statusBar.lab -side left -padx 2 -expand yes -fill both pack .statusBar.foo -side left -padx 2 pack .statusBar -side top -fill x -pady 2 # 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 -*-Helvetica-Bold-R-Normal--*-180-*-*-*-*-*-* # 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. .t insert end "Tk Widget Demonstrations\n" title .t insert end { 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 "See Code" button to see the Tcl/Tk code that created the demonstration. If you wish, you can edit the code and click the "Rerun Demo" button in the code window to reinvoke the demonstration with the modified code. } .t insert end "Labels, buttons, checkbuttons, and radiobuttons" title .t insert end " \n " {demospace} .t insert end "1. Labels (text and bitmaps)." {demo demo-label} .t insert end " \n " {demospace} .t insert end "2. Buttons." {demo demo-button} .t insert end " \n " {demospace} .t insert end "3. Checkbuttons (select any of a group)." {demo demo-check} .t insert end " \n " {demospace} .t insert end "4. Radiobuttons (select one of a group)." {demo demo-radio} .t insert end " \n " {demospace} .t insert end "5. A 15-puzzle game made out of buttons." {demo demo-puzzle} .t insert end " \n " {demospace} .t insert end "6. Iconic buttons that use bitmaps." {demo demo-icon} .t insert end " \n " {demospace} .t insert end "7. Two labels displaying images." {demo demo-image1} .t insert end " \n " {demospace} .t insert end "8. A simple user interface for viewing images." \ {demo demo-image2} .t insert end " \n " {demospace} .t insert end \n {} "Listboxes" title .t insert end " \n " {demospace} .t insert end "1. 50 states." {demo demo-states} .t insert end " \n " {demospace} .t insert end "2. Colors: change the color scheme for the application." \ {demo demo-colors} .t insert end " \n " {demospace} .t insert end "3. A collection of famous sayings." {demo demo-sayings} .t insert end " \n " {demospace} .t insert end \n {} "Entries" title .t insert end " \n " {demospace} .t insert end "1. Without scrollbars." {demo demo-entry1} .t insert end " \n " {demospace} .t insert end "2. With scrollbars." {demo demo-entry2} .t insert end " \n " {demospace} .t insert end "3. Simple Rolodex-like form." {demo demo-form} .t insert end " \n " {demospace} .t insert end \n {} "Text" title .t insert end " \n " {demospace} .t insert end "1. Basic editable text." {demo demo-text} .t insert end " \n " {demospace} .t insert end "2. Text display styles." {demo demo-style} .t insert end " \n " {demospace} .t insert end "3. Hypertext (tag bindings)." {demo demo-bind} .t insert end " \n " {demospace} .t insert end "4. A text widget with embedded windows." {demo demo-twind} .t insert end " \n " {demospace} .t insert end "5. A search tool built with a text widget." {demo demo-search} .t insert end " \n " {demospace} .t insert end \n {} "Canvases" title .t insert end " \n " {demospace} .t insert end "1. The canvas item types." {demo demo-items} .t insert end " \n " {demospace} .t insert end "2. A simple 2-D plot." {demo demo-plot} .t insert end " \n " {demospace} .t insert end "3. Text items in canvases." {demo demo-ctext} .t insert end " \n " {demospace} .t insert end "4. An editor for arrowheads on canvas lines." {demo demo-arrow} .t insert end " \n " {demospace} .t insert end "5. A ruler with adjustable tab stops." {demo demo-ruler} .t insert end " \n " {demospace} .t insert end "6. A building floor plan." {demo demo-floor} .t insert end " \n " {demospace} .t insert end "7. A simple scrollable canvas." {demo demo-cscroll} .t insert end " \n " {demospace} .t insert end \n {} "Scales" title .t insert end " \n " {demospace} .t insert end "1. Vertical scale." {demo demo-vscale} .t insert end " \n " {demospace} .t insert end "2. Horizontal scale." {demo demo-hscale} .t insert end " \n " {demospace} .t insert end \n {} "Menus" title .t insert end " \n " {demospace} .t insert end "1. A window containing several menus and cascades." \ {demo demo-menu} .t insert end " \n " {demospace} .t insert end \n {} "Common Dialogs" title .t insert end " \n " {demospace} .t insert end "1. Message boxes." {demo demo-msgbox} .t insert end " \n " {demospace} .t insert end "2. File selection dialog." {demo demo-filebox} .t insert end " \n " {demospace} .t insert end "3. Color picker." {demo demo-clrpick} .t insert end " \n " {demospace} .t insert end \n {} "Miscellaneous" title .t insert end " \n " {demospace} .t insert end "1. The built-in bitmaps." {demo demo-bitmap} .t insert end " \n " {demospace} .t insert end "2. A dialog box with a local grab." {demo demo-dialog1} .t insert end " \n " {demospace} .t insert end "3. A dialog box with a global grab." {demo demo-dialog2} .t insert end " \n " {demospace} .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} { catch {destroy $w} toplevel $w wm title $w "Variable values" label $w.title -text "Variable values:" -width 20 -anchor center \ -font -Adobe-helvetica-medium-r-normal--*-180-*-*-*-*-*-* 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" 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 -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\n\n\ Copyright (c) 1996 Sun Microsystems, Inc." } 07070100004a2e000081a400000064000000640000000133766d0e00001346000000200000001b00000000000000000000001b00000009reloc/lib/tk4.2/dialog.tcl# dialog.tcl -- # # This file defines the procedure tk_dialog, which creates a dialog # box containing a bitmap, a message, and one or more buttons. # # SCCS: @(#) dialog.tcl 1.26 96/05/07 09:30:31 # # Copyright (c) 1992-1993 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. # # # 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 tkPriv # 1. Create the top-level window and divide it into top # and bottom parts. catch {destroy $w} toplevel $w -class Dialog wm title $w $title wm iconname $w Dialog wm protocol $w WM_DELETE_WINDOW { } # The following command means that the dialog won't be posted if # [winfo parent $w] is iconified, but it's really needed; otherwise # the dialog can become obscured by other windows in the application, # even though its grab keeps the rest of the application from being used. wm transient $w [winfo toplevel [winfo parent $w]] frame $w.bot -relief raised -bd 1 pack $w.bot -side bottom -fill both frame $w.top -relief raised -bd 1 pack $w.top -side top -fill both -expand 1 # 2. Fill the top part with bitmap and message (use the option # database for -wraplength so that it can be overridden by # the caller). option add *Dialog.msg.wrapLength 3i widgetDefault label $w.msg -justify left -text $text catch {$w.msg configure -font \ -Adobe-Times-Medium-R-Normal--*-180-*-*-*-*-*-* } pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m if {$bitmap != ""} { 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 "set tkPriv(button) $i" if {$i == $default} { frame $w.default -relief sunken -bd 1 raise $w.button$i $w.default pack $w.default -in $w.bot -side left -expand 1 -padx 3m -pady 2m pack $w.button$i -in $w.default -padx 2m -pady 2m } else { pack $w.button$i -in $w.bot -side left -expand 1 \ -padx 3m -pady 2m } incr i } # 4. Create a binding for on the dialog if there is a # default button. if {$default >= 0} { bind $w " $w.button$default configure -state active -relief sunken update idletasks after 100 set tkPriv(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 tkPriv(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]]] wm geom $w +$x+$y wm deiconify $w # 7. Set a grab and claim the focus too. set oldFocus [focus] set oldGrab [grab current $w] if {$oldGrab != ""} { 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. tkwait variable tkPriv(button) catch {focus $oldFocus} catch { # It's possible that the window has already been destroyed, # hence this "catch". Delete the Destroy handler so that # tkPriv(button) doesn't get reset by it. bind $w {} destroy $w } if {$oldGrab != ""} { if {$grabStatus == "global"} { grab -global $oldGrab } else { grab $oldGrab } } return $tkPriv(button) } 07070100004a2f000081a400000064000000640000000133766d0f0000356c000000200000001b00000000000000000000001a00000009reloc/lib/tk4.2/entry.tcl# entry.tcl -- # # This file defines the default bindings for Tk entry widgets and provides # procedures that help in implementing those bindings. # # SCCS: @(#) entry.tcl 1.43 96/08/23 14:07:15 # # Copyright (c) 1992-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. # #------------------------------------------------------------------------- # Elements of tkPriv 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. #------------------------------------------------------------------------- #------------------------------------------------------------------------- # The code below creates the default class bindings for entries. #------------------------------------------------------------------------- bind Entry <> { if {[selection own -displayof %W] == "%W"} { clipboard clear -displayof %W catch { clipboard append -displayof %W [selection get -displayof %W] %W delete sel.first sel.last } } } bind Entry <> { if {[selection own -displayof %W] == "%W"} { clipboard clear -displayof %W catch { clipboard append -displayof %W [selection get -displayof %W] } } } bind Entry <> { catch { %W insert insert [selection get -displayof %W -selection CLIPBOARD] tkEntrySeeInsert %W } } bind Entry <> { %W delete sel.first sel.last } # Standard Motif bindings: bind Entry <1> { tkEntryButton1 %W %x %W selection clear } bind Entry { set tkPriv(x) %x tkEntryMouseSelect %W %x } bind Entry { set tkPriv(selectMode) word tkEntryMouseSelect %W %x catch {%W icursor sel.first} } bind Entry { set tkPriv(selectMode) line tkEntryMouseSelect %W %x %W icursor 0 } bind Entry { set tkPriv(selectMode) char %W selection adjust @%x } bind Entry { set tkPriv(selectMode) word tkEntryMouseSelect %W %x } bind Entry { set tkPriv(selectMode) line tkEntryMouseSelect %W %x } bind Entry { set tkPriv(x) %x tkEntryAutoScan %W } bind Entry { tkCancelRepeat } bind Entry { tkCancelRepeat } bind Entry { %W icursor @%x } bind Entry { if {!$tkPriv(mouseMoved) || $tk_strictMotif} { tkEntryPaste %W %x } } bind Entry { tkEntrySetCursor %W [expr [%W index insert] - 1] } bind Entry { tkEntrySetCursor %W [expr [%W index insert] + 1] } bind Entry { tkEntryKeySelect %W [expr [%W index insert] - 1] tkEntrySeeInsert %W } bind Entry { tkEntryKeySelect %W [expr [%W index insert] + 1] tkEntrySeeInsert %W } bind Entry { tkEntrySetCursor %W \ [string wordstart [%W get] [expr [%W index insert] - 1]] } bind Entry { tkEntrySetCursor %W [string wordend [%W get] [%W index insert]] } bind Entry { tkEntryKeySelect %W \ [string wordstart [%W get] [expr [%W index insert] - 1]] tkEntrySeeInsert %W } bind Entry { tkEntryKeySelect %W [string wordend [%W get] [%W index insert]] tkEntrySeeInsert %W } bind Entry { tkEntrySetCursor %W 0 } bind Entry { tkEntryKeySelect %W 0 tkEntrySeeInsert %W } bind Entry { tkEntrySetCursor %W end } bind Entry { tkEntryKeySelect %W end tkEntrySeeInsert %W } bind Entry { if [%W selection present] { %W delete sel.first sel.last } else { %W delete insert } } bind Entry { tkEntryBackspace %W } bind Entry { %W selection from insert } bind Entry { tkListboxBeginSelect %W [%W index active] } bind Listbox { tkListboxBeginExtend %W [%W index active] } bind Listbox { tkListboxBeginExtend %W [%W index active] } bind Listbox { tkListboxCancel %W } bind Listbox { tkListboxSelectAll %W } bind Listbox { if {[%W cget -selectmode] != "browse"} { %W selection clear 0 end } } # 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 } # tkListboxBeginSelect -- # # 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 tkListboxBeginSelect {w el} { global tkPriv if {[$w cget -selectmode] == "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 tkPriv(listboxSelection) {} set tkPriv(listboxPrev) $el } } # tkListboxMotion -- # # 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 tkListboxMotion {w el} { global tkPriv if {$el == $tkPriv(listboxPrev)} { return } set anchor [$w index anchor] switch [$w cget -selectmode] { browse { $w selection clear 0 end $w selection set $el set tkPriv(listboxPrev) $el } extended { set i $tkPriv(listboxPrev) 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 } while {($i < $el) && ($i < $anchor)} { if {[lsearch $tkPriv(listboxSelection) $i] >= 0} { $w selection set $i } incr i } while {($i > $el) && ($i > $anchor)} { if {[lsearch $tkPriv(listboxSelection) $i] >= 0} { $w selection set $i } incr i -1 } set tkPriv(listboxPrev) $el } } } # tkListboxBeginExtend -- # # 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 tkListboxBeginExtend {w el} { if {([$w cget -selectmode] == "extended") && [$w selection includes anchor]} { tkListboxMotion $w $el } } # tkListboxBeginToggle -- # # 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 tkListboxBeginToggle {w el} { global tkPriv if {[$w cget -selectmode] == "extended"} { set tkPriv(listboxSelection) [$w curselection] set tkPriv(listboxPrev) $el $w selection anchor $el if [$w selection includes $el] { $w selection clear $el } else { $w selection set $el } } } # tkListboxAutoScan -- # 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 tkListboxAutoScan {w} { global tkPriv if {![winfo exists $w]} return set x $tkPriv(x) set y $tkPriv(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 } tkListboxMotion $w [$w index @$x,$y] set tkPriv(afterId) [after 50 tkListboxAutoScan $w] } # tkListboxUpDown -- # # 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 tkListboxUpDown {w amount} { global tkPriv $w activate [expr [$w index active] + $amount] $w see active switch [$w cget -selectmode] { browse { $w selection clear 0 end $w selection set active } extended { $w selection clear 0 end $w selection set active $w selection anchor active set tkPriv(listboxPrev) [$w index active] set tkPriv(listboxSelection) {} } } } # tkListboxExtendUpDown -- # # 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 tkListboxExtendUpDown {w amount} { if {[$w cget -selectmode] != "extended"} { return } $w activate [expr [$w index active] + $amount] $w see active tkListboxMotion $w [$w index active] } # tkListboxDataExtend # # 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 tkListboxDataExtend {w el} { set mode [$w cget -selectmode] if {$mode == "extended"} { $w activate $el $w see $el if [$w selection includes anchor] { tkListboxMotion $w $el } } elseif {$mode == "multiple"} { $w activate $el $w see $el } } # tkListboxCancel # # 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 tkListboxCancel w { global tkPriv if {[$w cget -selectmode] != "extended"} { return } set first [$w index anchor] set last $tkPriv(listboxPrev) if {$first > $last} { set tmp $first set first $last set last $tmp } $w selection clear $first $last while {$first <= $last} { if {[lsearch $tkPriv(listboxSelection) $first] >= 0} { $w selection set $first } incr first } } # tkListboxSelectAll # # 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 tkListboxSelectAll w { set mode [$w cget -selectmode] if {($mode == "single") || ($mode == "browse")} { $w selection clear 0 end $w selection set active } else { $w selection set 0 end } } 07070100004a33000081a400000064000000640000000133766d1400006404000000200000001b00000000000000000000001900000009reloc/lib/tk4.2/menu.tcl# 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. # # SCCS: @(#) menu.tcl 1.70 96/10/22 08:51:53 # # Copyright (c) 1992-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. # #------------------------------------------------------------------------- # Elements of tkPriv 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 tkPriv(oldGrab): if # tkPriv(oldGrab) is non-empty, then tkPriv(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. # 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. #------------------------------------------------------------------------- #------------------------------------------------------------------------- # Overall note: # This file is tricky because there are four different ways that menus # can be used: # # 1. As a pulldown from a menubutton. This is the most common usage. # In this style, the variable tkPriv(postedMb) identifies the posted # menubutton. # 2. As a torn-off menu copied from some other menu. In this style # tkPriv(postedMb) is empty, and the top-level menu is no # override-redirect. # 3. As an option menu, triggered from an option menubutton. In thi # style tkPriv(postedMb) identifies the posted menubutton. # 4. As a popup menu. In this style tkPriv(postedMb) is empty and # the top-level menu is override-redirect. # # 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 { tkMbEnter %W } bind Menubutton { tkMbLeave %W } bind Menubutton <1> { if {$tkPriv(inMenubutton) != ""} { tkMbPost $tkPriv(inMenubutton) %X %Y } } bind Menubutton { tkMbMotion %W up %X %Y } bind Menubutton { tkMbMotion %W down %X %Y } bind Menubutton { tkMbButtonUp %W } bind Menubutton { tkMbPost %W tkMenuFirstEntry [%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 tkPriv(window) %W if {"%m" != "NotifyUngrab"} { focus %W } } bind Menu { tkMenuLeave %W %X %Y %s } bind Menu { tkMenuMotion %W %y %s } bind Menu { tkMenuButtonDown %W } bind Menu { tkMenuInvoke %W 1 } bind Menu { tkMenuInvoke %W 0 } bind Menu { tkMenuInvoke %W 0 } bind Menu { tkMenuEscape %W } bind Menu { tkMenuLeftRight %W left } bind Menu { tkMenuLeftRight %W right } bind Menu { tkMenuNextEntry %W -1 } bind Menu { tkMenuNextEntry %W +1 } bind Menu { tkTraverseWithinMenu %W %A } # The following bindings apply to all windows, and are used to # implement keyboard menu traversal. bind all { tkTraverseToMenu %W %A } bind all { tkFirstMenu %W } # tkMbEnter -- # 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 tkMbB1Enter is invoked if the button is down. # # Arguments: # w - The name of the widget. proc tkMbEnter w { global tkPriv if {$tkPriv(inMenubutton) != ""} { tkMbLeave $tkPriv(inMenubutton) } set tkPriv(inMenubutton) $w if {[$w cget -state] != "disabled"} { $w configure -state active } } # tkMbLeave -- # 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 tkMbLeave w { global tkPriv set tkPriv(inMenubutton) {} if ![winfo exists $w] { return } if {[$w cget -state] == "active"} { $w configure -state normal } } # tkMbPost -- # 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 tkMbPost {w {x {}} {y {}}} { global tkPriv errorInfo if {([$w cget -state] == "disabled") || ($w == $tkPriv(postedMb))} { return } set menu [$w cget -menu] if {$menu == ""} { return } 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 $tkPriv(postedMb) if {$cur != ""} { tkMenuUnpost {} } set tkPriv(cursor) [$w cget -cursor] set tkPriv(relief) [$w cget -relief] $w configure -cursor arrow $w configure -relief raised set tkPriv(postedMb) $w set tkPriv(focus) [focus] $menu activate none # 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. if [catch { if [$w cget -indicatoron] { if {$y == ""} { set x [expr [winfo rootx $w] + [winfo width $w]/2] set y [expr [winfo rooty $w] + [winfo height $w]/2] } tkPostOverPoint $menu $x $y [tkMenuFindName $menu [$w cget -text]] } else { $menu post [winfo rootx $w] [expr [winfo rooty $w] + \ [winfo height $w]] } } msg] { # Error posting menu (e.g. bogus -postcommand). Unpost it and # reflect the error. tkMenuUnpost {} error $msg $errorInfo } focus $menu tkSaveGrabInfo $w grab -global $w } # tkMenuUnpost -- # 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 tkMenuUnpost menu { global tkPriv set mb $tkPriv(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 $tkPriv(focus)} set tkPriv(focus) "" # Unpost menu(s) and restore some stuff that's dependent on # what was posted. catch { if {$mb != ""} { set menu [$mb cget -menu] $menu unpost set tkPriv(postedMb) {} $mb configure -cursor $tkPriv(cursor) $mb configure -relief $tkPriv(relief) } elseif {$tkPriv(popup) != ""} { $tkPriv(popup) unpost set tkPriv(popup) {} } elseif {[wm overrideredirect $menu]} { # 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] != "Menu") || ![winfo ismapped $parent]} { break } $parent activate none $parent postcascade none if {![wm overrideredirect $parent]} { break } set menu $parent } $menu unpost } } # Release grab, if any, and restore the previous grab, if there # was one. if {$menu != ""} { set grab [grab current $menu] if {$grab != ""} { grab release $grab } } if {$tkPriv(oldGrab) != ""} { # Be careful restoring the old grab, since it's window may not # be visible anymore. catch { if {$tkPriv(grabStatus) == "global"} { grab set -global $tkPriv(oldGrab) } else { grab set $tkPriv(oldGrab) } } set tkPriv(oldGrab) "" } } # tkMbMotion -- # 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 tkMbMotion {w upDown rootx rooty} { global tkPriv if {$tkPriv(inMenubutton) == $w} { return } set new [winfo containing $rootx $rooty] if {($new != $tkPriv(inMenubutton)) && (($new == "") || ([winfo toplevel $new] == [winfo toplevel $w]))} { if {$tkPriv(inMenubutton) != ""} { tkMbLeave $tkPriv(inMenubutton) } if {($new != "") && ([winfo class $new] == "Menubutton") && ([$new cget -indicatoron] == 0) && ([$w cget -indicatoron] == 0)} { if {$upDown == "down"} { tkMbPost $new $rootx $rooty } else { tkMbEnter $new } } } } # tkMbButtonUp -- # 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 tkMbButtonUp w { global tkPriv if {($tkPriv(postedMb) == $w) && ($tkPriv(inMenubutton) == $w)} { tkMenuFirstEntry [$tkPriv(postedMb) cget -menu] } else { tkMenuUnpost {} } } # tkMenuMotion -- # 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. # y - The y position of the mouse. # state - Modifier state (tells whether buttons are down). proc tkMenuMotion {menu y state} { global tkPriv if {$menu == $tkPriv(window)} { $menu activate @$y } if {($state & 0x1f00) != 0} { $menu postcascade active } } # tkMenuButtonDown -- # 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 tkMenuButtonDown menu { global tkPriv $menu postcascade active if {$tkPriv(postedMb) != ""} { grab -global $tkPriv(postedMb) } else { while {[wm overrideredirect $menu] && ([winfo class [winfo parent $menu]] == "Menu") && [winfo ismapped [winfo parent $menu]]} { set menu [winfo parent $menu] } # 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 != [grab current $menu]} { tkSaveGrabInfo $menu } # Must re-grab even if the grab window hasn't changed, in order # to release the implicit grab from the button press. grab -global $menu } } # tkMenuLeave -- # 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 tkMenuLeave {menu rootx rooty state} { global tkPriv set tkPriv(window) {} if {[$menu index active] == "none"} { return } if {([$menu type active] == "cascade") && ([winfo containing $rootx $rooty] == [$menu entrycget active -menu])} { return } $menu activate none } # tkMenuInvoke -- # 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 tkMenuInvoke {w buttonRelease} { global tkPriv if {$buttonRelease && ($tkPriv(window) == "")} { # 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 tkMenuUnpost $w return } if {[$w type active] == "cascade"} { $w postcascade active set menu [$w entrycget active -menu] tkMenuFirstEntry $menu } elseif {[$w type active] == "tearoff"} { tkMenuUnpost $w tkTearOffMenu $w } else { tkMenuUnpost $w uplevel #0 [list $w invoke active] } } # tkMenuEscape -- # 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 tkMenuEscape menu { if {[winfo class [winfo parent $menu]] != "Menu"} { tkMenuUnpost $menu } else { tkMenuLeftRight $menu -1 } } # tkMenuLeftRight -- # 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 tkMenuLeftRight {menu direction} { global tkPriv # First handle traversals into and out of cascaded menus. if {$direction == "right"} { set count 1 if {[$menu type active] == "cascade"} { $menu postcascade active set m2 [$menu entrycget active -menu] if {$m2 != ""} { tkMenuFirstEntry $m2 } return } } else { set count -1 set m2 [winfo parent $menu] if {[winfo class $m2] == "Menu"} { $menu activate none focus $m2 # This code unposts any posted submenu in the parent. set tmp [$m2 index active] $m2 activate none $m2 activate $tmp return } } # Can't traverse into or out of a cascaded menu. Go to the next # or previous menubutton, if that makes sense. set w $tkPriv(postedMb) if {$w == ""} { 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] == "Menubutton") && ([$mb cget -state] != "disabled") && ([$mb cget -menu] != "") && ([[$mb cget -menu] index last] != "none")} { break } if {$mb == $w} { return } incr i $count } tkMbPost $mb tkMenuFirstEntry [$mb cget -menu] } # tkMenuNextEntry -- # 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 tkMenuNextEntry {menu count} { global tkPriv if {[$menu index last] == "none"} { return } set length [expr [$menu index last]+1] set quitAfter $length set active [$menu index active] if {$active == "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 != "disabled"} { break } } if {$i == $active} { return } incr i $count incr quitAfter -1 } $menu activate $i $menu postcascade $i } # tkMenuFind -- # This procedure searches the entire window hierarchy under w for # a menubutton 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 tkMenuFind {w char} { global tkPriv set char [string tolower $char] foreach child [winfo child $w] { switch [winfo class $child] { Menubutton { set char2 [string index [$child cget -text] \ [$child cget -underline]] if {([string compare $char [string tolower $char2]] == 0) || ($char == "")} { if {[$child cget -state] != "disabled"} { return $child } } } default { # The tag above used to be "Frame", but it was changed so # that the code would work with Itcl 2.0, which apparently # uses other classes of widgets to hold menubuttons. set match [tkMenuFind $child $char] if {$match != ""} { return $match } } } } return {} } # tkTraverseToMenu -- # 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 tkTraverseToMenu {w char} { global tkPriv if {$char == ""} { return } while {[winfo class $w] == "Menu"} { if {$tkPriv(postedMb) == ""} { return } set w [winfo parent $w] } set w [tkMenuFind [winfo toplevel $w] $char] if {$w != ""} { tkMbPost $w tkMenuFirstEntry [$w cget -menu] } } # tkFirstMenu -- # 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 tkFirstMenu w { set w [tkMenuFind [winfo toplevel $w] ""] if {$w != ""} { tkMbPost $w tkMenuFirstEntry [$w cget -menu] } } # tkTraverseWithinMenu # 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 tkTraverseWithinMenu {w char} { if {$char == ""} { return } set char [string tolower $char] set last [$w index last] if {$last == "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 {[string compare $char [string tolower $char2]] == 0} { if {[$w type $i] == "cascade"} { $w postcascade $i $w activate $i set m2 [$w entrycget $i -menu] if {$m2 != ""} { tkMenuFirstEntry $m2 } } else { tkMenuUnpost $w uplevel #0 [list $w invoke $i] } return } } } # tkMenuFirstEntry -- # 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 tkPostOverPoint) 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 tkMenuFirstEntry menu { if {$menu == ""} { return } focus $menu if {[$menu index active] != "none"} { return } set last [$menu index last] if {$last == "none"} { return } for {set i 0} {$i <= $last} {incr i} { if {([catch {set state [$menu entrycget $i -state]}] == 0) && ($state != "disabled") && ([$menu type $i] != "tearoff")} { $menu activate $i return } } } # tkMenuFindName -- # 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 tkMenuFindName {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 == "none"} { return } for {set i 0} {$i <= $last} {incr i} { if ![catch {$menu entrycget $i -label} label] { if {$label == $s} { return $i } } } return "" } # tkPostOverPoint -- # 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 tkPostOverPoint {menu x y {entry {}}} { if {$entry != {}} { 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] } $menu post $x $y if {($entry != {}) && ([$menu entrycget $entry -state] != "disabled")} { $menu activate $entry } } # tkSaveGrabInfo -- # Sets the variables tkPriv(oldGrab) and tkPriv(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 tkSaveGrabInfo w { global tkPriv set tkPriv(oldGrab) [grab current $w] if {$tkPriv(oldGrab) != ""} { set tkPriv(grabStatus) [grab status $tkPriv(oldGrab)] } } # 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 {}}} { global tkPriv if {($tkPriv(popup) != "") || ($tkPriv(postedMb) != "")} { tkMenuUnpost {} } tkPostOverPoint $menu $x $y $entry tkSaveGrabInfo $menu grab -global $menu set tkPriv(popup) $menu set tkPriv(focus) [focus] focus $menu } 07070100004a35000081a400000064000000640000000133766d1500001a0b000000200000001b00000000000000000000001b00000009reloc/lib/tk4.2/msgbox.tcl# msgbox.tcl -- # # Implements messageboxes for platforms that do not have native # messagebox support. # # SCCS: @(#) msgbox.tcl 1.4 96/09/05 11:30:30 # # 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. # # tkMessageBox -- # # 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. # # 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 tkMessageBox {args} { global tkPriv set w tkPrivMsgBox upvar #0 $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 {info warning error question} $data(-icon)] == -1} { error "invalid icon \"$data(-icon)\", must be error, info, question or warning" } if ![winfo exists $data(-parent)] { error "bad window path name \"$data(-parent)\"" } case $data(-type) { abortretryignore { set buttons { {abort -width 6 -text Abort -under 0} {retry -width 6 -text Retry -under 0} {ignore -width 6 -text Ignore -under 0} } } ok { set buttons { {ok -width 6 -text OK -under 0} } if {$data(-default) == ""} { set data(-default) "ok" } } okcancel { set buttons { {ok -width 6 -text OK -under 0} {cancel -width 6 -text Cancel -under 0} } } retrycancel { set buttons { {retry -width 6 -text Retry -under 0} {cancel -width 6 -text Cancel -under 0} } } yesno { set buttons { {yes -width 6 -text Yes -under 0} {no -width 6 -text No -under 0} } } yesnocancel { set buttons { {yes -width 6 -text Yes -under 0} {no -width 6 -text No -under 0} {cancel -width 6 -text Cancel -under 0} } } default { error "invalid message box type \"$data(-type)\", must be abortretryignore, ok, okcancel, retrycancel, yesno or yesnocancel" } } if [string compare $data(-default) ""] { set valid 0 foreach btn $buttons { if ![string compare [lindex $btn 0] $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 [string compare $data(-parent) .] { 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 { } wm transient $w $data(-parent) frame $w.bot -relief raised -bd 1 pack $w.bot -side bottom -fill both frame $w.top -relief raised -bd 1 pack $w.top -side top -fill both -expand 1 # 4. Fill the top part with bitmap and message (use the option # database for -wraplength so that it can be overridden by # the caller). option add *Dialog.msg.wrapLength 3i widgetDefault label $w.msg -justify left -text $data(-message) catch {$w.msg configure -font \ -Adobe-Times-Medium-R-Normal--*-180-*-*-*-*-*-* } pack $w.msg -in $w.top -side right -expand 1 -fill both -padx 3m -pady 3m if {$data(-icon) != ""} { label $w.bitmap -bitmap $data(-icon) pack $w.bitmap -in $w.top -side left -padx 3m -pady 3m } # 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 ![string compare $opts {}] { # Capitalize the first letter of $name set capName \ [string toupper \ [string index $name 0]][string range $name 1 end] set opts [list -text $capName] } eval button $w.$name $opts -command [list "set tkPriv(button) $name"] if ![string compare $name $data(-default)] { frame $w.default -relief sunken -bd 1 raise $w.$name $w.default pack $w.default -in $w.bot -side left -expand 1 -padx 3m -pady 2m pack $w.$name -in $w.default -padx 2m -pady 2m } else { pack $w.$name -in $w.bot -side left -expand 1 \ -padx 3m -pady 2m } # 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 "$w.$name invoke" bind $w "$w.$name invoke" } incr i } # 6. Create a binding for on the dialog if there is a # default button. if [string compare $data(-default) ""] { bind $w "tkButtonInvoke $w.$data(-default)" } # 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. 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]]] wm geom $w +$x+$y wm deiconify $w # 8. Set a grab and claim the focus too. set oldFocus [focus] set oldGrab [grab current $w] if {$oldGrab != ""} { set grabStatus [grab status $oldGrab] } grab $w if [string compare $data(-default) ""] { focus $w.$data(-default) } else { focus $w } # 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. tkwait variable tkPriv(button) catch {focus $oldFocus} destroy $w if {$oldGrab != ""} { if {$grabStatus == "global"} { grab -global $oldGrab } else { grab $oldGrab } } return $tkPriv(button) } 07070100004a36000081a400000064000000640000000133766d160000030d000000200000001b00000000000000000000001d00000009reloc/lib/tk4.2/obsolete.tcl# obsolete.tcl -- # # This file contains obsolete procedures that people really shouldn't # be using anymore, but which are kept around for backward compatibility. # # SCCS: @(#) obsolete.tcl 1.3 96/02/16 10:48:19 # # Copyright (c) 1994 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. # # The procedures below are here strictly for backward compatibility with # Tk version 3.6 and earlier. The procedures are no longer needed, so # they are no-ops. You should not use these procedures anymore, since # they may be removed in some future release. proc tk_menuBar args {} proc tk_bindForTraversal args {} 07070100004a37000081a400000064000000640000000133766d1700000669000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/optMenu.tcl# optMenu.tcl -- # # This file defines the procedure tk_optionMenu, which creates # an option button and its associated menu. # # SCCS: @(#) optMenu.tcl 1.9 96/02/16 10:48:26 # # Copyright (c) 1994 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. # # tk_optionMenu -- # This procedure creates an option button named $w and an associated # menu. Together they provide the functionality of Motif option menus: # they can be used to select one of many values, and the current value # appears in the global variable varName, as well as in the text of # the option menubutton. The name of the menu is returned as the # procedure's result, so that the caller can use it to change configuration # options on the menu or otherwise manipulate it. # # Arguments: # w - The name to use for the menubutton. # varName - Global variable to hold the currently selected value. # firstValue - First of legal values for option (must be >= 1). # args - Any number of additional values. proc tk_optionMenu {w varName firstValue args} { upvar #0 $varName var if ![info exists var] { set var $firstValue } menubutton $w -textvariable $varName -indicatoron 1 -menu $w.menu \ -relief raised -bd 2 -highlightthickness 2 -anchor c menu $w.menu -tearoff 0 $w.menu add command -label $firstValue \ -command [list set $varName $firstValue] foreach i $args { $w.menu add command -label $i -command [list set $varName $i] } return $w.menu } 07070100004a38000081a400000064000000640000000133766d1900001902000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/palette.tcl# palette.tcl -- # # This file contains procedures that change the color palette used # by Tk. # # SCCS: @(#) palette.tcl 1.4 96/12/04 10:00:17 # # Copyright (c) 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. # # 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 { global tkPalette # 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" } if ![info exists new(foreground)] { set new(foreground) black } set bg [winfo rgb . $new(background)] set fg [winfo rgb . $new(foreground)] set darkerBg [format #%02x%02x%02x [expr (9*[lindex $bg 0])/2560] \ [expr (9*[lindex $bg 1])/2560] [expr (9*[lindex $bg 2])/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*[lindex $bg 0] + [lindex $fg 0])/1024] \ [expr (3*[lindex $bg 1] + [lindex $fg 1])/1024] \ [expr (3*[lindex $bg 2] + [lindex $fg 2])/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} { set light($i) [expr [lindex $bg $i]/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 } # 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, tkRecolorTree now returns the # option database changes that need to be made, and they # need to be evalled here to take effect. eval [tkRecolorTree . new] # Save the options in the global variable tkPalette, for use the # next time we change the options. array set tkPalette [array get new] } # tkRecolorTree -- # 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 tkRecolorTree {w colors} { global tkPalette upvar $colors c set result {} foreach dbOption [array names c] { set option -[string tolower $dbOption] if {![catch {$w config $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 widgetDefault] if {[string match {} $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 *[winfo class $w].$dbOption $c($dbOption)" $w configure $option $c($dbOption) } } } foreach child [winfo children $w] { append result ";\n[tkRecolorTree $child c]" } return $result } # tkDarken -- # 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 tkDarken {color percent} { set l [winfo rgb . $color] set red [expr [lindex $l 0]/256] set green [expr [lindex $l 1]/256] set blue [expr [lindex $l 2]/256] set red [expr ($red*$percent)/100] if {$red > 255} { set red 255 } set green [expr ($green*$percent)/100] if {$green > 255} { set green 255 } set blue [expr ($blue*$percent)/100] if {$blue > 255} { set blue 255 } 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 } 07070100004a39000081a400000064000000640000000133766d270000254a000000200000001b00000000000000000000001a00000009reloc/lib/tk4.2/prolog.ps%%BeginProlog 50 dict begin % This is a standard prolog for Postscript generated by Tk's canvas % widget. % SCCS: @(#) prolog.ps 1.5 96/02/17 17:45:11 % The definitions below just define all of the variables used in % any of the procedures here. This is needed for obscure reasons % explained on p. 716 of the Postscript manual (Section H.2.7, % "Initializing Variables," in the section on Encapsulated Postscript). /baseline 0 def /stipimage 0 def /height 0 def /justify 0 def /lineLength 0 def /spacing 0 def /stipple 0 def /strings 0 def /xoffset 0 def /yoffset 0 def /tmpstip null def % Define the array ISOLatin1Encoding (which specifies how characters are % encoded for ISO-8859-1 fonts), if it isn't already present (Postscript % level 2 is supposed to define it, but level 1 doesn't). systemdict /ISOLatin1Encoding known not { /ISOLatin1Encoding [ /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /space /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /space /ring /cedilla /space /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedillar /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def } if % font ISOEncode font % This procedure changes the encoding of a font from the default % Postscript encoding to ISOLatin1. It's typically invoked just % before invoking "setfont". The body of this procedure comes from % Section 5.6.1 of the Postscript book. /ISOEncode { dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end % I'm not sure why it's necessary to use "definefont" on this new % font, but it seems to be important; just use the name "Temporary" % for the font. /Temporary exch definefont } bind def % StrokeClip % % This procedure converts the current path into a clip area under % the assumption of stroking. It's a bit tricky because some Postscript % interpreters get errors during strokepath for dashed lines. If % this happens then turn off dashes and try again. /StrokeClip { {strokepath} stopped { (This Postscript printer gets limitcheck overflows when) = (stippling dashed lines; lines will be printed solid instead.) = [] 0 setdash strokepath} if clip } bind def % desiredSize EvenPixels closestSize % % The procedure below is used for stippling. Given the optimal size % of a dot in a stipple pattern in the current user coordinate system, % compute the closest size that is an exact multiple of the device's % pixel size. This allows stipple patterns to be displayed without % aliasing effects. /EvenPixels { % Compute exact number of device pixels per stipple dot. dup 0 matrix currentmatrix dtransform dup mul exch dup mul add sqrt % Round to an integer, make sure the number is at least 1, and compute % user coord distance corresponding to this. dup round dup 1 lt {pop 1} if exch div mul } bind def % width height string StippleFill -- % % Given a path already set up and a clipping region generated from % it, this procedure will fill the clipping region with a stipple % pattern. "String" contains a proper image description of the % stipple pattern and "width" and "height" give its dimensions. Each % stipple dot is assumed to be about one unit across in the current % user coordinate system. This procedure trashes the graphics state. /StippleFill { % The following code is needed to work around a NeWSprint bug. /tmpstip 1 index def % Change the scaling so that one user unit in user coordinates % corresponds to the size of one stipple dot. 1 EvenPixels dup scale % Compute the bounding box occupied by the path (which is now % the clipping region), and round the lower coordinates down % to the nearest starting point for the stipple pattern. Be % careful about negative numbers, since the rounding works % differently on them. pathbbox 4 2 roll 5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll 6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll % Stack now: width height string y1 y2 x1 x2 % Below is a doubly-nested for loop to iterate across this area % in units of the stipple pattern size, going up columns then % across rows, blasting out a stipple-pattern-sized rectangle at % each position 6 index exch { 2 index 5 index 3 index { % Stack now: width height string y1 y2 x y gsave 1 index exch translate 5 index 5 index true matrix tmpstip imagemask grestore } for pop } for pop pop pop pop pop } bind def % -- AdjustColor -- % Given a color value already set for output by the caller, adjusts % that value to a grayscale or mono value if requested by the CL % variable. /AdjustColor { CL 2 lt { currentgray CL 0 eq { .5 lt {0} {1} ifelse } if setgray } if } bind def % x y strings spacing xoffset yoffset justify stipple DrawText -- % This procedure does all of the real work of drawing text. The % color and font must already have been set by the caller, and the % following arguments must be on the stack: % % x, y - Coordinates at which to draw text. % strings - An array of strings, one for each line of the text item, % in order from top to bottom. % spacing - Spacing between lines. % xoffset - Horizontal offset for text bbox relative to x and y: 0 for % nw/w/sw anchor, -0.5 for n/center/s, and -1.0 for ne/e/se. % yoffset - Vertical offset for text bbox relative to x and y: 0 for % nw/n/ne anchor, +0.5 for w/center/e, and +1.0 for sw/s/se. % justify - 0 for left justification, 0.5 for center, 1 for right justify. % stipple - Boolean value indicating whether or not text is to be % drawn in stippled fashion. If text is stippled, % procedure StippleText must have been defined to call % StippleFill in the right way. % % Also, when this procedure is invoked, the color and font must already % have been set for the text. /DrawText { /stipple exch def /justify exch def /yoffset exch def /xoffset exch def /spacing exch def /strings exch def % First scan through all of the text to find the widest line. /lineLength 0 def strings { stringwidth pop dup lineLength gt {/lineLength exch def} {pop} ifelse newpath } forall % Compute the baseline offset and the actual font height. 0 0 moveto (TXygqPZ) false charpath pathbbox dup /baseline exch def exch pop exch sub /height exch def pop newpath % Translate coordinates first so that the origin is at the upper-left % corner of the text's bounding box. Remember that x and y for % positioning are still on the stack. translate lineLength xoffset mul strings length 1 sub spacing mul height add yoffset mul translate % Now use the baseline and justification information to translate so % that the origin is at the baseline and positioning point for the % first line of text. justify lineLength mul baseline neg translate % Iterate over each of the lines to output it. For each line, % compute its width again so it can be properly justified, then % display it. strings { dup stringwidth pop justify neg mul 0 moveto stipple { % The text is stippled, so turn it into a path and print % by calling StippledText, which in turn calls StippleFill. % Unfortunately, many Postscript interpreters will get % overflow errors if we try to do the whole string at % once, so do it a character at a time. gsave /char (X) def { char 0 3 -1 roll put currentpoint gsave char true charpath clip StippleText grestore char stringwidth translate moveto } forall grestore } {show} ifelse 0 spacing neg translate } forall } bind def %%EndProlog 07070100004a3a000081a400000064000000640000000133766d1a00001a74000000200000001b00000000000000000000001a00000009reloc/lib/tk4.2/scale.tcl# scale.tcl -- # # This file defines the default bindings for Tk scale widgets and provides # procedures that help in implementing the bindings. # # SCCS: @(#) scale.tcl 1.12 96/04/16 11:42:25 # # 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 tkPriv(activeBg) [%W cget -activebackground] %W config -activebackground [%W cget -background] } tkScaleActivate %W %x %y } bind Scale { tkScaleActivate %W %x %y } bind Scale { if $tk_strictMotif { %W config -activebackground $tkPriv(activeBg) } if {[%W cget -state] == "active"} { %W configure -state normal } } bind Scale <1> { tkScaleButtonDown %W %x %y } bind Scale { tkScaleDrag %W %x %y } bind Scale { } bind Scale { } bind Scale { tkCancelRepeat tkScaleEndDrag %W tkScaleActivate %W %x %y } bind Scale <2> { tkScaleButton2Down %W %x %y } bind Scale { tkScaleDrag %W %x %y } bind Scale { } bind Scale { } bind Scale { tkCancelRepeat tkScaleEndDrag %W tkScaleActivate %W %x %y } bind Scale { tkScaleControlPress %W %x %y } bind Scale { tkScaleIncrement %W up little noRepeat } bind Scale { tkScaleIncrement %W down little noRepeat } bind Scale { tkScaleIncrement %W up little noRepeat } bind Scale { tkScaleIncrement %W down little noRepeat } bind Scale { tkScaleIncrement %W up big noRepeat } bind Scale { tkScaleIncrement %W down big noRepeat } bind Scale { tkScaleIncrement %W up big noRepeat } bind Scale { tkScaleIncrement %W down big noRepeat } bind Scale { %W set [%W cget -from] } bind Scale { %W set [%W cget -to] } # tkScaleActivate -- # 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 tkScaleActivate {w x y} { global tkPriv if {[$w cget -state] == "disabled"} { return; } if {[$w identify $x $y] == "slider"} { $w configure -state active } else { $w configure -state normal } } # tkScaleButtonDown -- # 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 tkScaleButtonDown {w x y} { global tkPriv set tkPriv(dragging) 0 set el [$w identify $x $y] if {$el == "trough1"} { tkScaleIncrement $w up little initial } elseif {$el == "trough2"} { tkScaleIncrement $w down little initial } elseif {$el == "slider"} { set tkPriv(dragging) 1 set tkPriv(initValue) [$w get] set coords [$w coords] set tkPriv(deltaX) [expr $x - [lindex $coords 0]] set tkPriv(deltaY) [expr $y - [lindex $coords 1]] $w configure -sliderrelief sunken } } # tkScaleDrag -- # 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 tkScaleDrag {w x y} { global tkPriv if !$tkPriv(dragging) { return } $w set [$w get [expr $x - $tkPriv(deltaX)] \ [expr $y - $tkPriv(deltaY)]] } # tkScaleEndDrag -- # 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 tkScaleEndDrag {w} { global tkPriv set tkPriv(dragging) 0 $w configure -sliderrelief raised } # tkScaleIncrement -- # 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 tkScaleIncrement {w dir big repeat} { global tkPriv if {![winfo exists $w]} return if {$big == "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 == "up")} { set inc [expr -$inc] } $w set [expr [$w get] + $inc] if {$repeat == "again"} { set tkPriv(afterId) [after [$w cget -repeatinterval] \ tkScaleIncrement $w $dir $big again] } elseif {$repeat == "initial"} { set delay [$w cget -repeatdelay] if {$delay > 0} { set tkPriv(afterId) [after $delay \ tkScaleIncrement $w $dir $big again] } } } # tkScaleControlPress -- # 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 tkScaleControlPress {w x y} { set el [$w identify $x $y] if {$el == "trough1"} { $w set [$w cget -from] } elseif {$el == "trough2"} { $w set [$w cget -to] } } # tkScaleButton2Down # 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 tkScaleButton2Down {w x y} { global tkPriv if {[$w cget -state] == "disabled"} { return; } $w configure -state active $w set [$w get $x $y] set tkPriv(dragging) 1 set tkPriv(initValue) [$w get] set coords "$x $y" set tkPriv(deltaX) 0 set tkPriv(deltaY) 0 } 07070100004a3b000081a400000064000000640000000133766d1b00002bb8000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/scrlbar.tcl# scrlbar.tcl -- # # This file defines the default bindings for Tk scrollbar widgets. # It also provides procedures that help in implementing the bindings. # # SCCS: @(#) scrlbar.tcl 1.23 96/04/16 11:42:23 # # 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: bind Scrollbar { if $tk_strictMotif { set tkPriv(activeBg) [%W cget -activebackground] %W config -activebackground [%W cget -background] } %W activate [%W identify %x %y] } bind Scrollbar { %W activate [%W identify %x %y] } bind Scrollbar { if $tk_strictMotif { %W config -activebackground $tkPriv(activeBg) } %W activate {} } bind Scrollbar <1> { tkScrollButtonDown %W %x %y } bind Scrollbar { tkScrollDrag %W %x %y } bind Scrollbar { tkScrollDrag %W %x %y } bind Scrollbar { tkScrollButtonUp %W %x %y } bind Scrollbar { # Prevents binding from being invoked. } bind Scrollbar { # Prevents binding from being invoked. } bind Scrollbar <2> { tkScrollButton2Down %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 { tkScrollDrag %W %x %y } bind Scrollbar { tkScrollButtonUp %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 { tkScrollTopBottom %W %x %y } bind Scrollbar { tkScrollTopBottom %W %x %y } bind Scrollbar { tkScrollByUnits %W v -1 } bind Scrollbar { tkScrollByUnits %W v 1 } bind Scrollbar { tkScrollByPages %W v -1 } bind Scrollbar { tkScrollByPages %W v 1 } bind Scrollbar { tkScrollByUnits %W h -1 } bind Scrollbar { tkScrollByUnits %W h 1 } bind Scrollbar { tkScrollByPages %W h -1 } bind Scrollbar { tkScrollByPages %W h 1 } bind Scrollbar { tkScrollByPages %W hv -1 } bind Scrollbar { tkScrollByPages %W hv 1 } bind Scrollbar { tkScrollToPos %W 0 } bind Scrollbar { tkScrollToPos %W 1 } # tkScrollButtonDown -- # 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 tkScrollButtonDown {w x y} { global tkPriv set tkPriv(relief) [$w cget -activerelief] $w configure -activerelief sunken set element [$w identify $x $y] if {$element == "slider"} { tkScrollStartDrag $w $x $y } else { tkScrollSelect $w $element initial } } # tkScrollButtonUp -- # 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 tkScrollButtonUp {w x y} { global tkPriv tkCancelRepeat $w configure -activerelief $tkPriv(relief) tkScrollEndDrag $w $x $y $w activate [$w identify $x $y] } # tkScrollSelect -- # 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 tkScrollSelect {w element repeat} { global tkPriv if {![winfo exists $w]} return if {$element == "arrow1"} { tkScrollByUnits $w hv -1 } elseif {$element == "trough1"} { tkScrollByPages $w hv -1 } elseif {$element == "trough2"} { tkScrollByPages $w hv 1 } elseif {$element == "arrow2"} { tkScrollByUnits $w hv 1 } else { return } if {$repeat == "again"} { set tkPriv(afterId) [after [$w cget -repeatinterval] \ tkScrollSelect $w $element again] } elseif {$repeat == "initial"} { set delay [$w cget -repeatdelay] if {$delay > 0} { set tkPriv(afterId) [after $delay tkScrollSelect $w $element again] } } } # tkScrollStartDrag -- # 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 tkScrollStartDrag {w x y} { global tkPriv if {[$w cget -command] == ""} { return } set tkPriv(pressX) $x set tkPriv(pressY) $y set tkPriv(initValues) [$w get] set iv0 [lindex $tkPriv(initValues) 0] if {[llength $tkPriv(initValues)] == 2} { set tkPriv(initPos) $iv0 } else { if {$iv0 == 0} { set tkPriv(initPos) 0.0 } else { set tkPriv(initPos) [expr (double([lindex $tkPriv(initValues) 2])) \ / [lindex $tkPriv(initValues) 0]] } } } # tkScrollDrag -- # 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 tkScrollDrag {w x y} { global tkPriv if {$tkPriv(initPos) == ""} { return } set delta [$w delta [expr $x - $tkPriv(pressX)] [expr $y - $tkPriv(pressY)]] if [$w cget -jump] { if {[llength $tkPriv(initValues)] == 2} { $w set [expr [lindex $tkPriv(initValues) 0] + $delta] \ [expr [lindex $tkPriv(initValues) 1] + $delta] } else { set delta [expr round($delta * [lindex $tkPriv(initValues) 0])] eval $w set [lreplace $tkPriv(initValues) 2 3 \ [expr [lindex $tkPriv(initValues) 2] + $delta] \ [expr [lindex $tkPriv(initValues) 3] + $delta]] } } else { tkScrollToPos $w [expr $tkPriv(initPos) + $delta] } } # tkScrollEndDrag -- # 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 tkScrollEndDrag {w x y} { global tkPriv if {$tkPriv(initPos) == ""} { return } if [$w cget -jump] { set delta [$w delta [expr $x - $tkPriv(pressX)] \ [expr $y - $tkPriv(pressY)]] tkScrollToPos $w [expr $tkPriv(initPos) + $delta] } set tkPriv(initPos) "" } # tkScrollByUnits -- # 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 tkScrollByUnits {w orient amount} { set cmd [$w cget -command] if {($cmd == "") || ([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] } } # tkScrollByPages -- # 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 tkScrollByPages {w orient amount} { set cmd [$w cget -command] if {($cmd == "") || ([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)] } } # tkScrollToPos -- # 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 tkScrollToPos {w pos} { set cmd [$w cget -command] if {($cmd == "")} { return } set info [$w get] if {[llength $info] == 2} { uplevel #0 $cmd moveto $pos } else { uplevel #0 $cmd [expr round([lindex $info 0]*$pos)] } } # tkScrollTopBottom # 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 tkScrollTopBottom {w x y} { global tkPriv set element [$w identify $x $y] if [string match *1 $element] { tkScrollToPos $w 0 } elseif [string match *2 $element] { tkScrollToPos $w 1 } # Set tkPriv(relief), since it's needed by tkScrollButtonUp. set tkPriv(relief) [$w cget -activerelief] } # tkScrollButton2Down # 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 tkScrollButton2Down {w x y} { global tkPriv set element [$w identify $x $y] if {($element == "arrow1") || ($element == "arrow2")} { tkScrollButtonDown $w $x $y return } tkScrollToPos $w [$w fraction $x $y] set tkPriv(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 tkScrollStartDrag $w $x $y } 07070100004a3c000081a400000064000000640000000133766d2600003f8a000000200000001b00000000000000000000001900000009reloc/lib/tk4.2/tclIndex# 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(tk_dialog) [list source [file join $dir dialog.tcl]] set auto_index(tkButtonEnter) [list source [file join $dir button.tcl]] set auto_index(tkButtonLeave) [list source [file join $dir button.tcl]] set auto_index(tkButtonDown) [list source [file join $dir button.tcl]] set auto_index(tkButtonUp) [list source [file join $dir button.tcl]] set auto_index(tkButtonInvoke) [list source [file join $dir button.tcl]] set auto_index(tkCheckRadioInvoke) [list source [file join $dir button.tcl]] set auto_index(tkEntryClosestGap) [list source [file join $dir entry.tcl]] set auto_index(tkEntryButton1) [list source [file join $dir entry.tcl]] set auto_index(tkEntryMouseSelect) [list source [file join $dir entry.tcl]] set auto_index(tkEntryPaste) [list source [file join $dir entry.tcl]] set auto_index(tkEntryAutoScan) [list source [file join $dir entry.tcl]] set auto_index(tkEntryKeySelect) [list source [file join $dir entry.tcl]] set auto_index(tkEntryInsert) [list source [file join $dir entry.tcl]] set auto_index(tkEntryBackspace) [list source [file join $dir entry.tcl]] set auto_index(tkEntrySeeInsert) [list source [file join $dir entry.tcl]] set auto_index(tkEntrySetCursor) [list source [file join $dir entry.tcl]] set auto_index(tkEntryTranspose) [list source [file join $dir entry.tcl]] set auto_index(tkListboxBeginSelect) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxMotion) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxBeginExtend) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxBeginToggle) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxAutoScan) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxUpDown) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxExtendUpDown) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxDataExtend) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxCancel) [list source [file join $dir listbox.tcl]] set auto_index(tkListboxSelectAll) [list source [file join $dir listbox.tcl]] set auto_index(tkerror) [list source [file join $dir bgerror.tcl]] set auto_index(bgerror) [list source [file join $dir bgerror.tcl]] set auto_index(tkTextClosestGap) [list source [file join $dir text.tcl]] set auto_index(tkTextButton1) [list source [file join $dir text.tcl]] set auto_index(tkTextSelectTo) [list source [file join $dir text.tcl]] set auto_index(tkTextKeyExtend) [list source [file join $dir text.tcl]] set auto_index(tkTextPaste) [list source [file join $dir text.tcl]] set auto_index(tkTextAutoScan) [list source [file join $dir text.tcl]] set auto_index(tkTextSetCursor) [list source [file join $dir text.tcl]] set auto_index(tkTextKeySelect) [list source [file join $dir text.tcl]] set auto_index(tkTextResetAnchor) [list source [file join $dir text.tcl]] set auto_index(tkTextInsert) [list source [file join $dir text.tcl]] set auto_index(tkTextUpDownLine) [list source [file join $dir text.tcl]] set auto_index(tkTextPrevPara) [list source [file join $dir text.tcl]] set auto_index(tkTextNextPara) [list source [file join $dir text.tcl]] set auto_index(tkTextScrollPages) [list source [file join $dir text.tcl]] set auto_index(tkTextTranspose) [list source [file join $dir text.tcl]] set auto_index(tk_textCopy) [list source [file join $dir text.tcl]] set auto_index(tk_textCut) [list source [file join $dir text.tcl]] set auto_index(tk_textPaste) [list source [file join $dir text.tcl]] set auto_index(tkScrollButtonDown) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollButtonUp) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollSelect) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollStartDrag) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollDrag) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollEndDrag) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollByUnits) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollByPages) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollToPos) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollTopBottom) [list source [file join $dir scrlbar.tcl]] set auto_index(tkScrollButton2Down) [list source [file join $dir scrlbar.tcl]] set auto_index(tkMbEnter) [list source [file join $dir menu.tcl]] set auto_index(tkMbLeave) [list source [file join $dir menu.tcl]] set auto_index(tkMbPost) [list source [file join $dir menu.tcl]] set auto_index(tkMenuUnpost) [list source [file join $dir menu.tcl]] set auto_index(tkMbMotion) [list source [file join $dir menu.tcl]] set auto_index(tkMbButtonUp) [list source [file join $dir menu.tcl]] set auto_index(tkMenuMotion) [list source [file join $dir menu.tcl]] set auto_index(tkMenuButtonDown) [list source [file join $dir menu.tcl]] set auto_index(tkMenuLeave) [list source [file join $dir menu.tcl]] set auto_index(tkMenuInvoke) [list source [file join $dir menu.tcl]] set auto_index(tkMenuEscape) [list source [file join $dir menu.tcl]] set auto_index(tkMenuLeftRight) [list source [file join $dir menu.tcl]] set auto_index(tkMenuNextEntry) [list source [file join $dir menu.tcl]] set auto_index(tkMenuFind) [list source [file join $dir menu.tcl]] set auto_index(tkTraverseToMenu) [list source [file join $dir menu.tcl]] set auto_index(tkFirstMenu) [list source [file join $dir menu.tcl]] set auto_index(tkTraverseWithinMenu) [list source [file join $dir menu.tcl]] set auto_index(tkMenuFirstEntry) [list source [file join $dir menu.tcl]] set auto_index(tkMenuFindName) [list source [file join $dir menu.tcl]] set auto_index(tkPostOverPoint) [list source [file join $dir menu.tcl]] set auto_index(tkSaveGrabInfo) [list source [file join $dir menu.tcl]] set auto_index(tk_popup) [list source [file join $dir menu.tcl]] set auto_index(tkScreenChanged) [list source [file join $dir tk.tcl]] set auto_index(tkEventMotifBindings) [list source [file join $dir tk.tcl]] set auto_index(tkCancelRepeat) [list source [file join $dir tk.tcl]] set auto_index(tkScaleActivate) [list source [file join $dir scale.tcl]] set auto_index(tkScaleButtonDown) [list source [file join $dir scale.tcl]] set auto_index(tkScaleDrag) [list source [file join $dir scale.tcl]] set auto_index(tkScaleEndDrag) [list source [file join $dir scale.tcl]] set auto_index(tkScaleIncrement) [list source [file join $dir scale.tcl]] set auto_index(tkScaleControlPress) [list source [file join $dir scale.tcl]] set auto_index(tkScaleButton2Down) [list source [file join $dir scale.tcl]] set auto_index(tk_optionMenu) [list source [file join $dir optMenu.tcl]] set auto_index(tkTearOffMenu) [list source [file join $dir tearoff.tcl]] set auto_index(tkMenuDup) [list source [file join $dir tearoff.tcl]] set auto_index(tk_menuBar) [list source [file join $dir obsolete.tcl]] set auto_index(tk_bindForTraversal) [list source [file join $dir obsolete.tcl]] set auto_index(tk_focusNext) [list source [file join $dir focus.tcl]] set auto_index(tk_focusPrev) [list source [file join $dir focus.tcl]] set auto_index(tkFocusOK) [list source [file join $dir focus.tcl]] set auto_index(tk_focusFollowsMouse) [list source [file join $dir focus.tcl]] set auto_index(tkConsoleInit) [list source [file join $dir console.tcl]] set auto_index(tkConsoleInvoke) [list source [file join $dir console.tcl]] set auto_index(tkConsoleHistory) [list source [file join $dir console.tcl]] set auto_index(tkConsolePrompt) [list source [file join $dir console.tcl]] set auto_index(tkConsoleBind) [list source [file join $dir console.tcl]] set auto_index(tkConsoleInsert) [list source [file join $dir console.tcl]] set auto_index(tkConsoleOutput) [list source [file join $dir console.tcl]] set auto_index(tkConsoleExit) [list source [file join $dir console.tcl]] set auto_index(tk_setPalette) [list source [file join $dir palette.tcl]] set auto_index(tkRecolorTree) [list source [file join $dir palette.tcl]] set auto_index(tkDarken) [list source [file join $dir palette.tcl]] set auto_index(tk_bisque) [list source [file join $dir palette.tcl]] set auto_index(tkColorDialog) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_InitValues) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_Config) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_BuildDialog) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_SetRGBValue) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_XToRgb) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_RgbToX) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_DrawColorScale) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_CreateSelector) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_RedrawFinalColor) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_RedrawColorBars) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_StartMove) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_MoveSelector) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_ReleaseMouse) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_ResizeColorBars) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_HandleSelEntry) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_HandleRGBEntry) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_EnterColorBar) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_LeaveColorBar) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_OkCmd) [list source [file join $dir clrpick.tcl]] set auto_index(tkColorDialog_CancelCmd) [list source [file join $dir clrpick.tcl]] set auto_index(tclParseConfigSpec) [list source [file join $dir comdlg.tcl]] set auto_index(tclListValidFlags) [list source [file join $dir comdlg.tcl]] set auto_index(tclSortNoCase) [list source [file join $dir comdlg.tcl]] set auto_index(tclVerifyInteger) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_Create) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_BindIn) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_BindOut) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_Destroy) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_In) [list source [file join $dir comdlg.tcl]] set auto_index(tkFocusGroup_Out) [list source [file join $dir comdlg.tcl]] set auto_index(tkFDGetFileTypes) [list source [file join $dir comdlg.tcl]] set auto_index(tkMotifFDialog) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_Config) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_Create) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_MakeSList) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_BrowseDList) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_ActivateDList) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_BrowseFList) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_ActivateFList) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_ActivateFEnt) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_InterpFilter) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_ActivateSEnt) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_OkCmd) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_FilterCmd) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_CancelCmd) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_Update) [list source [file join $dir xmfbox.tcl]] set auto_index(tkMotifFDialog_LoadFiles) [list source [file join $dir xmfbox.tcl]] set auto_index(tkListBoxKeyAccel_Set) [list source [file join $dir xmfbox.tcl]] set auto_index(tkListBoxKeyAccel_Unset) [list source [file join $dir xmfbox.tcl]] set auto_index(tkListBoxKeyAccel_Key) [list source [file join $dir xmfbox.tcl]] set auto_index(tkListBoxKeyAccel_Goto) [list source [file join $dir xmfbox.tcl]] set auto_index(tkListBoxKeyAccel_Reset) [list source [file join $dir xmfbox.tcl]] set auto_index(tkIconList) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Config) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Create) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_AutoScan) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_DeleteAll) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Add) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Arrange) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Invoke) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_See) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_SelectAtXY) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Select) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Unselect) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Get) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Btn1) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Motion1) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Double1) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_ReturnKey) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Leave1) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_FocusIn) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_UpDown) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_LeftRight) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_KeyPress) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Goto) [list source [file join $dir tkfbox.tcl]] set auto_index(tkIconList_Reset) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_Config) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_GetImgFile) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_Create) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_UpdateWhenIdle) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_Update) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_SetPathSilently) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_SetPath) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_SetFilter) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialogResolveFile) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_EntFocusIn) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_EntFocusOut) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_ActivateEnt) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_InvokeBtn) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_UpDirCmd) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_OkCmd) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_CancelCmd) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_ListBrowse) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_ListInvoke) [list source [file join $dir tkfbox.tcl]] set auto_index(tkFDialog_Done) [list source [file join $dir tkfbox.tcl]] set auto_index(tkMessageBox) [list source [file join $dir msgbox.tcl]] 07070100004a3d000081a400000064000000640000000133766d1c00000e71000000200000001b00000000000000000000001c00000009reloc/lib/tk4.2/tearoff.tcl# tearoff.tcl -- # # This file contains procedures that implement tear-off menus. # # SCCS: @(#) tearoff.tcl 1.10 96/08/09 16:55:07 # # 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. # # tkTearoffMenu -- # Given the name of a menu, this procedure creates a torn-off menu # that is identical to the given menu (including nested submenus). # The new torn-off menu exists as a toplevel window managed by the # window manager. The return value is the name of the new menu. # # Arguments: # w - The menu to be torn-off (duplicated). proc tkTearOffMenu w { # Find a unique name to use for the torn-off menu. Find the first # ancestor of w that is a toplevel but not a menu, and use this as # the parent of the new menu. This guarantees that the torn off # menu will be on the same screen as the original menu. By making # it a child of the ancestor, rather than a child of the menu, it # can continue to live even if the menu is deleted; it will go # away when the toplevel goes away. set parent [winfo parent $w] while {([winfo toplevel $parent] != $parent) || ([winfo class $parent] == "Menu")} { set parent [winfo parent $parent] } if {$parent == "."} { set parent "" } for {set i 1} 1 {incr i} { set menu $parent.tearoff$i if ![winfo exists $menu] { break } } tkMenuDup $w $menu $menu configure -transient 0 # Pick a title for the new menu by looking at the parent of the # original: if the parent is a menu, then use the text of the active # entry. If it's a menubutton then use its text. set parent [winfo parent $w] switch [winfo class $parent] { Menubutton { wm title $menu [$parent cget -text] } Menu { wm title $menu [$parent entrycget active -label] } } $menu configure -tearoff 0 $menu post [winfo x $w] [winfo y $w] # Set tkPriv(focus) on entry: otherwise the focus will get lost # after keyboard invocation of a sub-menu (it will stay on the # submenu). bind $menu { set tkPriv(focus) %W } # If there is a -tearoffcommand option for the menu, invoke it # now. set cmd [$w cget -tearoffcommand] if {$cmd != ""} { uplevel #0 $cmd $w $menu } } # tkMenuDup -- # Given a menu (hierarchy), create a duplicate menu (hierarchy) # in a given window. # # Arguments: # src - Source window. Must be a menu. It and its # menu descendants will be duplicated at dst. # dst - Name to use for topmost menu in duplicate # hierarchy. proc tkMenuDup {src dst} { set cmd [list menu $dst] foreach option [$src configure] { if {[llength $option] == 2} { continue } lappend cmd [lindex $option 0] [lindex $option 4] } eval $cmd set last [$src index last] if {$last == "none"} { return } for {set i [$src cget -tearoff]} {$i <= $last} {incr i} { set cmd [list $dst add [$src type $i]] foreach option [$src entryconfigure $i] { lappend cmd [lindex $option 0] [lindex $option 4] } eval $cmd if {[$src type $i] == "cascade"} { tkMenuDup [$src entrycget $i -menu] $dst.m$i $dst entryconfigure $i -menu $dst.m$i } } # Duplicate the binding tags and bindings from the source menu. regsub -all . $src {\\&} quotedSrc regsub -all . $dst {\\&} quotedDst regsub -all $quotedSrc [bindtags $src] $dst x bindtags $dst $x foreach event [bind $src] { regsub -all $quotedSrc [bind $src $event] $dst x bind $dst $event $x } } 07070100004a3e000081a400000064000000640000000133766d1d0000585f000000200000001b00000000000000000000001900000009reloc/lib/tk4.2/text.tcl# text.tcl -- # # This file defines the default bindings for Tk text widgets and provides # procedures that help in implementing the bindings. # # SCCS: @(#) text.tcl 1.46 96/08/23 14:07:32 # # Copyright (c) 1992-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. # #------------------------------------------------------------------------- # Elements of tkPriv 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. # char - Character position on the line; kept in order # to allow moving up or down past short lines while # still remembering the desired position. # mouseMoved - Non-zero means the mouse has moved a significant # amount since the button went down (so, for example, # start dragging out a selection). # prevPos - Used when moving up or down lines via the keyboard. # Keeps track of the previous insert position, so # we can distinguish a series of ups and downs, all # in a row, from a new up or down. # selectMode - The style of selection currently underway: # char, word, or line. # x, y - Last known mouse coordinates for scanning # and auto-scanning. #------------------------------------------------------------------------- #------------------------------------------------------------------------- # The code below creates the default class bindings for entries. #------------------------------------------------------------------------- # Standard Motif bindings: bind Text <1> { tkTextButton1 %W %x %y %W tag remove sel 0.0 end } bind Text { set tkPriv(x) %x set tkPriv(y) %y tkTextSelectTo %W %x %y } bind Text { set tkPriv(selectMode) word tkTextSelectTo %W %x %y catch {%W mark set insert sel.first} } bind Text { set tkPriv(selectMode) line tkTextSelectTo %W %x %y catch {%W mark set insert sel.first} } bind Text { tkTextResetAnchor %W @%x,%y set tkPriv(selectMode) char tkTextSelectTo %W %x %y } bind Text { set tkPriv(selectMode) word tkTextSelectTo %W %x %y } bind Text { set tkPriv(selectMode) line tkTextSelectTo %W %x %y } bind Text { set tkPriv(x) %x set tkPriv(y) %y tkTextAutoScan %W } bind Text { tkCancelRepeat } bind Text { tkCancelRepeat } bind Text { %W mark set insert @%x,%y } bind Text { if {!$tkPriv(mouseMoved) || $tk_strictMotif} { tkTextPaste %W %x %y } } bind Text { tkTextSetCursor %W insert-1c } bind Text { tkTextSetCursor %W insert+1c } bind Text { tkTextSetCursor %W [tkTextUpDownLine %W -1] } bind Text { tkTextSetCursor %W [tkTextUpDownLine %W 1] } bind Text { tkTextKeySelect %W [%W index {insert - 1c}] } bind Text { tkTextKeySelect %W [%W index {insert + 1c}] } bind Text { tkTextKeySelect %W [tkTextUpDownLine %W -1] } bind Text { tkTextKeySelect %W [tkTextUpDownLine %W 1] } bind Text { tkTextSetCursor %W [%W index {insert - 1c wordstart}] } bind Text { tkTextSetCursor %W [%W index {insert wordend}] } bind Text { tkTextSetCursor %W [tkTextPrevPara %W insert] } bind Text { tkTextSetCursor %W [tkTextNextPara %W insert] } bind Text { tkTextKeySelect %W [%W index {insert - 1c wordstart}] } bind Text { tkTextKeySelect %W [%W index {insert wordend}] } bind Text { tkTextKeySelect %W [tkTextPrevPara %W insert] } bind Text { tkTextKeySelect %W [tkTextNextPara %W insert] } bind Text { tkTextSetCursor %W [tkTextScrollPages %W -1] } bind Text { tkTextKeySelect %W [tkTextScrollPages %W -1] } bind Text { tkTextSetCursor %W [tkTextScrollPages %W 1] } bind Text { tkTextKeySelect %W [tkTextScrollPages %W 1] } bind Text { %W xview scroll -1 page } bind Text { %W xview scroll 1 page } bind Text { tkTextSetCursor %W {insert linestart} } bind Text { tkTextKeySelect %W {insert linestart} } bind Text { tkTextSetCursor %W {insert lineend} } bind Text { tkTextKeySelect %W {insert lineend} } bind Text { tkTextSetCursor %W 1.0 } bind Text { tkTextKeySelect %W 1.0 } bind Text { tkTextSetCursor %W {end - 1 char} } bind Text { tkTextKeySelect %W {end - 1 char} } bind Text { tkTextInsert %W \t focus %W break } bind Text { # Needed only to keep binding from triggering; doesn't # have to actually do anything. } bind Text { focus [tk_focusNext %W] } bind Text { focus [tk_focusPrev %W] } bind Text { tkTextInsert %W \t } bind Text { tkTextInsert %W \n } bind Text { if {[%W tag nextrange sel 1.0 end] != ""} { %W delete sel.first sel.last } else { %W delete insert %W see insert } } bind Text { if {[%W tag nextrange sel 1.0 end] != ""} { %W delete sel.first sel.last } elseif [%W compare insert != 1.0] { %W delete insert-1c %W see insert } } bind Text { %W mark set anchor insert } bind Text