streamtyped NSIBObjectData NSObject NSCustomObject) NSString Controller NSTextField NSControl) NSView) NSResponder @@@@ffffffff NSMutableArray NSArray NSScrollView* NSClipView: NSTextTemplate. NSViewTemplate. NSText NSMutableData NSData [35635c]rtfd TXT.rtf pastedGraphic.epsn {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\fs24 \cf0 ObjectAlloc allows you to observe object allocation/deallocation activity in an OpenStep application in real time.\ Type in the name of the application executable you want to analyze in the "Executable" field. (You can also use the "Browse..." button to find the executable via the open panel.) Then hit "Launch" to get the app started.\ ObjectAlloc should launch the application and start giving you a graphic representation of all object allocations. For each class, the length of the left most bar is the number of objects currently alive, that plus the middle bar is the peak number of objects that were ever alive at the same time, and the length of the whole bar is the total number objects allocated:\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \cf0 {{\NeXTGraphic pastedGraphic.eps \width9440 \height2820 }\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \f0\fs24 \cf0 \ At "x1" scale, each vertical pixel column represents one instance; at x2 it's 2, and so on.\ Hitting the "Sort" buttons causes the classes to be sorted based on their current values. \ The "Collect data" button toggles the collection of allocation data (when disabled, incoming data will be discarded). For instance this can be used at the start to skip over initial startup allocations, if you're not interested in that.\ "Show counts" toggles the display of the actual counts.\ The "Mark" button sets a mark. You can use the "Show since mark" switch to toggle between displaying activity since the mark or since the launch.\ You can use the "Report..." menu item to generate a textual report of all the data that's displayed in the window.\ ObjectAlloc uses the object allocation statistics facility builtin to the Foundation Kit. When this facility is active, every object allocation, deallocation, copy, retain, release, and autorelease is recorded as it happens. This of course means applications run much more slowly. So, please be patient!\ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural \i \cf0 ObjectAlloc Copyright 1996, 1997 Next Software, Inc. All rights reserved.\ TXT.rtf pastedGraphic.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: Untitled %%Creator: Draw %%CreationDate: Fri May 10 14:55:40 1996 %%For: aozer %%DocumentFonts: (atend) %%Pages: 0 0 %%BoundingBox: 5 511 477 652 %%NXNextStepVersion: 3.0 %%EndComments %%BeginProcSet: /NextLibrary/Frameworks/AppKit.framework/Versions/B/Resources/printPackageJ.ps 3.0 % printPackageJ.ps % Application Kit % Copyright (c) 1988-1996, NeXT Software, Inc. % All rights reserved. /__NXdef{1 index where{pop pop pop}{def}ifelse}bind def /__NXbdef{1 index where{pop pop pop}{bind def}ifelse}bind def /UserObjects 10 array __NXdef /defineuserobject{ exch dup 1 add dup UserObjects length gt{ array dup 0 UserObjects putinterval /UserObjects exch def }{pop}ifelse UserObjects exch 3 -1 roll put }__NXbdef 0 0 defineuserobject 1 null defineuserobject /undefineuserobject{UserObjects exch null put}__NXbdef /execuserobject{UserObjects exch get exec}__NXbdef /__NXRectPath{4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath}__NXbdef /__NXProcessRectArgs{ 1 index type /arraytype eq{ exch 0 4 2 index length 1 sub{ dup 3 add 1 exch{1 index exch get exch}for 5 1 roll 5 index exec }for pop pop }{exec}ifelse }__NXbdef /rectfill{gsave newpath {__NXRectPath fill} __NXProcessRectArgs grestore}__NXbdef /rectclip{newpath {__NXRectPath} __NXProcessRectArgs clip newpath}__NXbdef /rectstroke{ gsave newpath dup type /arraytype eq{dup length 6 eq}{false}ifelse{ {gsave __NXRectPath null concat stroke grestore} dup length array cvx copy dup 2 4 -1 roll put __NXProcessRectArgs }{{__NXRectPath stroke} __NXProcessRectArgs}ifelse grestore }__NXbdef /_NXLevel2 systemdict /languagelevel known {languagelevel 2 ge}{false}ifelse __NXdef systemdict /cshow known { /xyshow { { pop pop currentpoint 3 index 1 get add exch 3 index 0 get add exch 4 -1 roll dup length 2 sub 2 exch getinterval 4 1 roll ( ) dup 0 6 -1 roll put show moveto } 3 -1 roll cshow pop }__NXbdef /xshow { { pop pop currentpoint exch 3 index 0 get add exch 4 -1 roll dup length 1 sub 1 exch getinterval 4 1 roll ( ) dup 0 6 -1 roll put show moveto } 3 -1 roll cshow pop }__NXbdef /yshow{ { pop pop currentpoint 3 index 0 get add 4 -1 roll dup length 1 sub 1 exch getinterval 4 1 roll ( ) dup 0 6 -1 roll put show moveto } 3 -1 roll cshow pop }__NXbdef /xyshow{ 0 1 3 index length 1 sub{ currentpoint 4 index 3 index 1 getinterval show 3 index 3 index 2 mul 1 add get add exch 3 index 3 index 2 mul get add exch moveto pop }for pop pop }__NXbdef /xshow{ 0 1 3 index length 1 sub{ currentpoint 4 index 3 index 1 getinterval show exch 3 index 3 index get add exch moveto pop }for pop pop }__NXbdef /yshow{ 0 1 3 index length 1 sub{ currentpoint 4 index 3 index 1 getinterval show 3 index 3 index get add moveto pop }for pop pop }__NXbdef } ifelse /arct{arcto pop pop pop pop}__NXbdef /setbbox{pop pop pop pop}__NXbdef /ucache{}__NXbdef /ucachestatus{mark 0 0 0 0 0}__NXbdef /setucacheparams{cleartomark}__NXbdef /uappend{systemdict begin cvx exec end}__NXbdef /ueofill{gsave newpath uappend eofill grestore}__NXbdef /ufill{gsave newpath uappend fill grestore}__NXbdef /ustroke{ gsave newpath dup length 6 eq {exch uappend concat}{uappend}ifelse stroke grestore }__NXbdef /__NXustrokepathMatrix dup where {pop pop}{matrix def}ifelse /ustrokepath{ newpath dup length 6 eq{ exch uappend __NXustrokepathMatrix currentmatrix exch concat strokepath setmatrix }{uappend strokepath}ifelse } __NXbdef /upath{ [exch {/ucache cvx}if pathbbox /setbbox cvx {/moveto cvx}{/lineto cvx}{/curveto cvx}{/closepath cvx}pathforall]cvx } __NXbdef /setstrokeadjust{pop}__NXbdef /currentstrokeadjust{false}__NXbdef /selectfont{exch findfont exch dup type /arraytype eq {makefont}{scalefont}ifelse setfont}__NXbdef /_NXCombineArrays{ counttomark dup 2 add index dup length 3 -1 roll { 2 index length sub dup 4 1 roll 1 index exch 4 -1 roll putinterval exch }repeat pop pop pop }__NXbdef /flushgraphics{}def /setwindowtype{pop pop}def /currentwindowtype{pop 0}def /setalpha{pop}def /currentalpha{1.0}def /hidecursor{}def /obscurecursor{}def /revealcursor{}def /setcursor{4 {pop}repeat}bind def /showcursor{}def /SharedFontDirectory FontDirectory __NXdef /_JPN /GothicBBB-Medium.Hankaku dup findfont /FontName get eq def /_@Private dup where {pop pop}{50 dict def}ifelse /__NJdef _JPN {{//_@Private 3 1 roll put}}{{pop pop}} ifelse bind def /__NJbdef _JPN {{//_@Private 2 index known {pop pop}{bind //_@Private 3 1 roll put}ifelse}}{{pop pop}} ifelse bind def /_str 128 string __NJdef /_find { % /FName _find FontOrFName bool false 0 {dup 3 index known {3 -1 roll get exch pop true exit}{pop}ifelse} forall } bind dup 1 [/SharedFontDirectory dup where {exch get}{pop}ifelse //FontDirectory] put //_@Private 3 1 roll put /_copyfont@ { % -font- extension _copyfont@ -dict- 1 index maxlength add dict begin { 1 index /FID ne 2 index /UniqueID ne and {def}{pop pop}ifelse } forall currentdict end } __NJbdef /_bind { % /n1 /n2 _bind /n1+2 exch dup length 2 index length add _str 4 2 roll _str cvs length exch dup length string cvs putinterval _str exch 0 exch getinterval cvn } __NJbdef /NDEncoding 256 array dup 0 1 255 {/.notdef put dup} for pop __NJdef /_shiftE { % /Fname start length target -font- _shiftE -dict- 0 _copyfont@ begin Encoding 4 2 roll getinterval NDEncoding 256 array copy dup 4 -2 roll putinterval Encoding length 256 eq { dup dup 0 128 getinterval 128 exch putinterval } if /Encoding exch def /FontName exch def currentdict end } __NJbdef /_makeSGFDV { % - _makeSGFDV [FDV] [ _FN /.WP-Symbol _bind dup findfont dup /FontName get 3 -1 roll ne { pop /_FN /GothicBBB-Medium __NJdef /GothicBBB-Medium.WP-Symbol findfont } if _SGFN /.rFC _bind dup 0 96 32 5 index _shiftE definefont _SGFN /.rFD _bind dup 96 32 32 6 index _shiftE definefont _SGFN /.rFE _bind dup 0 128 0 _FN /-Ext-H _bind findfont dup /Encoding get 16#2d get exch /FDepVector get exch get _shiftE dup /Encoding 2 copy get [16#f0 16#f1 16#f2 16#f5 16#f6 16#f7 16#fa 16#fb 16#fc] { dup 2 index exch /.notdef put 128 sub 1 index exch /.notdef put } forall put definefont ] dup 0 /NotDefFont findfont put } __NJbdef /_defSGaiji { % /fullname /basename _defSGaiji -sysGaiji- /_FN exch __NJdef /_SGFN exch __NJdef 15 dict dup /FontName _SGFN put dup /FontType 0 put dup /FMapType 2 put dup /FontMatrix matrix put dup /FontBBox {0 -140 1000 880} put dup /Encoding 256 array 0 1 255 {1 index exch 0 put}for dup 16#FC 1 put dup 16#FD 2 put dup 16#FE 3 put put dup /FDepVector _makeSGFDV put dup /isNeXTGaiji true put _SGFN exch definefont } __NJbdef /_defNeXTF { % /fullname /basename Hflag _defNeXTF /_FN 2 index __NJdef /_HF exch __NJdef _HF {/-EUC-H}{/-EUC-V}ifelse _bind dup findfont dup /FontName get 3 -1 roll ne { pop _HF {/GothicBBB-Medium-EUC-H}{/GothicBBB-Medium-EUC-V}ifelse findfont } if 1 _copyfont@ begin /FontName 1 index def /UserGaijiName _FN /-NeXT-UserGaiji _bind def /Encoding Encoding dup length array copy FMapType 2 eq {dup 16#8E 78 put 0 1 9 {dup 16#F5 add exch 79 add 2 index 3 1 roll put} for }{ dup 16#11D 78 put 0 1 9 {dup dup add 16#1EB add exch 79 add 2 index 3 1 roll put} for } ifelse def /FDepVector [FDepVector aload pop _FN /.Hankaku _bind dup /_ _bind exch 128 128 0 3 index findfont _shiftE definefont UserGaijiName findfont dup /isNeXTGaiji 2 copy known { get {/FDepVector get 1 7 getinterval aload pop }{pop /NotDefFont findfont 6 {dup} repeat}ifelse }{pop pop pop /NotDefFont findfont 6 {dup} repeat}ifelse _FN /-NeXT-SystemGaiji _bind findfont /FDepVector get 1 3 getinterval aload pop] def currentdict end definefont } __NJbdef /_findNarrow { % /FName _findNarrow -font- dup _str cvs (Narrow) anchorsearch {pop cvn exch _find {exch pop}{ exch findfont 0 _copyfont@ dup /FontName 3 index put dup /FontMatrix 2 copy get [5 6 div 0 0 1 0 0] matrix concatmatrix put definefont}ifelse }{pop findfont}ifelse } __NJbdef /_defNXR { % /NXname /rname _defNXR -font- findfont 0 _copyfont@ dup /FontName 3 index put dup /Encoding NextStepEncoding put definefont } bind def /_defmixfont@ { % /FName [/ASCII /KANJI shiftmtx] _defmixfont@ -font- aload pop /_@shiftmatrix exch __NJdef (-NeXT-H) _bind findfont /_EUC exch __NJdef _findNarrow /_@ASCII exch __NJdef dup /_ exch _bind dup _EUC /Encoding get length 2 idiv dup 0 _EUC _shiftE dup /Encoding 2 copy get dup 3 index /FMapType get 5 eq {16#41}{16#20}ifelse 89 put put dup /FontMatrix _@shiftmatrix put dup /FDepVector [ _EUC /FDepVector get aload pop _EUC /FMapType get 5 eq { /_S_ _@ASCII /FontName get _bind _@ASCII 0 _copyfont@ dup /Encoding 2 copy get 256 array copy dup dup dup 0 128 getinterval 128 exch putinterval 0 _@ASCII /Encoding get 128 128 getinterval putinterval put dup /FontName 3 index put definefont }{_@ASCII}ifelse _@shiftmatrix matrix invertmatrix makefont] put definefont 15 dict begin /FontName 2 index def /FontType 0 def /PaintType 0 def /FMapType 4 def /FontMatrix matrix def /Encoding [0 1] def /PrefEnc 1 index /Encoding get def /FontBBox _@ASCII /FontBBox get 4 array copy cvx dup 2 get 1000 lt {dup 2 1000 put}if dup 3 get 880 lt {dup 3 880 put}if def /FontInfo _@ASCII /FontInfo get def /FDepVector [_@ASCII 4 -1 roll] def currentdict end definefont } __NJbdef % constructing EUC composites from printer fonts /_HEI /HeiseiMin-W3.Hankaku dup findfont /FontName get eq def _HEI { % If we can find the Heisei fonts... _JPN {}{ % and cannot find the Morisawa fonts... % define Ryumin-Light-EUC-H in terms of HeiseiMin-W3 /HeiseiMin-W3-EUC-H findfont dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall /Fontname /Ryumin-Light-EUC-H def currentdict /Ryumin-Light-EUC-H exch definefont pop % define GothicBBB-Medium-EUC-H in terms of HeiseiKakuGo-W5 /HeiseiKakuGo-W5-EUC-H findfont dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall /Fontname /GothicBBB-Medium-EUC-H def currentdict /GothicBBB-Medium-EUC-H exch definefont pop } ifelse _HEI { % define everything in terms of Heisei fonts % define Morisawa names -> Heisei /FixedRyuminCourier-Light { [/NarrowCourier /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /FixedRyuminCourier-LightOblique { [/NarrowCourier-Oblique /HeiseiMin-W3-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedRyuminCourier-Bold { [/NarrowCourier-Bold /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /FixedRyuminCourier-BoldOblique { [/NarrowCourier-BoldOblique /HeiseiMin-W3-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /RyuminTimes-Light { [/Times-Roman /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /RyuminTimes-LightOblique { [/Times-Italic /HeiseiMin-W3-EUC-H [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /RyuminTimes-Bold { [/Times-Bold /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /RyuminTimes-BoldOblique { [/Times-BoldItalic /HeiseiMin-W3-EUC-H [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /FixedGothicBBBCourier { [/NarrowCourier /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /FixedGothicBBBCourier-Oblique { [/NarrowCourier-Oblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedGothicBBBCourier-Bold { [/NarrowCourier-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /FixedGothicBBBCourier-BoldOblique { [/NarrowCourier-BoldOblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /GothicBBBHelvetica { [/Helvetica /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /GothicBBBHelvetica-Oblique { [/Helvetica-Oblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /GothicBBBHelvetica-Bold { [/Helvetica-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /GothicBBBHelvetica-BoldOblique { [/Helvetica-BoldOblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /TitleGothicBBBHelvetica { [/Helvetica /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /TitleGothicBBBHelvetica-Bold { [/Helvetica-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef % define Heisei names -> Heisei /FixedHeiseiMinCourier-Light { [/NarrowCourier /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-LightOblique { [/NarrowCourier-Oblique /HeiseiMin-W3-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-Bold { [/NarrowCourier-Bold /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-BoldOblique { [/NarrowCourier-BoldOblique /HeiseiMin-W3-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiMinTimes-Light { [/Times-Roman /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /HeiseiMinTimes-LightOblique { [/Times-Italic /HeiseiMin-W3-EUC-H [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /HeiseiMinTimes-Bold { [/Times-Bold /HeiseiMin-W3-EUC-H matrix] _defmixfont@} __NJbdef /HeiseiMinTimes-BoldOblique { [/Times-BoldItalic /HeiseiMin-W3-EUC-H [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier { [/NarrowCourier /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-Oblique { [/NarrowCourier-Oblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-Bold { [/NarrowCourier-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-BoldOblique { [/NarrowCourier-BoldOblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica { [/Helvetica /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Oblique { [/Helvetica-Oblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Bold { [/Helvetica-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-BoldOblique { [/Helvetica-BoldOblique /HeiseiKakuGo-W5-EUC-H [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica { [/Helvetica /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Bold { [/Helvetica-Bold /HeiseiKakuGo-W5-EUC-H matrix] _defmixfont@} __NJbdef _JPN { % define everything in terms of Morisawa fonts % define Morisawa names -> Morisawa /FixedRyuminCourier-Light { [/NarrowCourier /Ryumin-Light matrix] _defmixfont@} __NJbdef /FixedRyuminCourier-LightOblique { [/NarrowCourier-Oblique /Ryumin-Light [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedRyuminCourier-Bold { [/NarrowCourier-Bold /Ryumin-Light matrix] _defmixfont@} __NJbdef /FixedRyuminCourier-BoldOblique { [/NarrowCourier-BoldOblique /Ryumin-Light [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /RyuminTimes-Light { [/Times-Roman /Ryumin-Light matrix] _defmixfont@} __NJbdef /RyuminTimes-LightOblique { [/Times-Italic /Ryumin-Light [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /RyuminTimes-Bold { [/Times-Bold /Ryumin-Light matrix] _defmixfont@} __NJbdef /RyuminTimes-BoldOblique { [/Times-BoldItalic /Ryumin-Light [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /FixedGothicBBBCourier { [/NarrowCourier /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /FixedGothicBBBCourier-Oblique { [/NarrowCourier-Oblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedGothicBBBCourier-Bold { [/NarrowCourier-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /FixedGothicBBBCourier-BoldOblique { [/NarrowCourier-BoldOblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /GothicBBBHelvetica { [/Helvetica /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /GothicBBBHelvetica-Oblique { [/Helvetica-Oblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /GothicBBBHelvetica-Bold { [/Helvetica-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /GothicBBBHelvetica-BoldOblique { [/Helvetica-BoldOblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /TitleGothicBBBHelvetica { [/Helvetica /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /TitleGothicBBBHelvetica-Bold { [/Helvetica-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef % define Heisei names -> Morisawa /FixedHeiseiMinCourier-Light { [/NarrowCourier /Ryumin-Light matrix] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-LightOblique { [/NarrowCourier-Oblique /Ryumin-Light [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-Bold { [/NarrowCourier-Bold /Ryumin-Light matrix] _defmixfont@} __NJbdef /FixedHeiseiMinCourier-BoldOblique { [/NarrowCourier-BoldOblique /Ryumin-Light [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiMinTimes-Light { [/Times-Roman /Ryumin-Light matrix] _defmixfont@} __NJbdef /HeiseiMinTimes-LightOblique { [/Times-Italic /Ryumin-Light [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /HeiseiMinTimes-Bold { [/Times-Bold /Ryumin-Light matrix] _defmixfont@} __NJbdef /HeiseiMinTimes-BoldOblique { [/Times-BoldItalic /Ryumin-Light [1 0 .277325 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier { [/NarrowCourier /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-Oblique { [/NarrowCourier-Oblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-Bold { [/NarrowCourier-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /FixedHeiseiKakuGoCourier-BoldOblique { [/NarrowCourier-BoldOblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica { [/Helvetica /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Oblique { [/Helvetica-Oblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Bold { [/Helvetica-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-BoldOblique { [/Helvetica-BoldOblique /GothicBBB-Medium [1 0 .212557 1 0 0]] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica { [/Helvetica /GothicBBB-Medium matrix] _defmixfont@} __NJbdef /HeiseiKakuGoHelvetica-Bold { [/Helvetica-Bold /GothicBBB-Medium matrix] _defmixfont@} __NJbdef } if } ifelse /NextStepEncoding where not{ /NextStepEncoding StandardEncoding 256 array copy def 0 [129/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/Ccedilla/Egrave /Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/Ugrave/Uacute /Ucircumflex/Udieresis/Yacute/Thorn/mu/multiply/divide/copyright 176/registered 181/brokenbar 190/logicalnot 192/onesuperior 201/twosuperior 204/threesuperior 209/plusminus/onequarter/onehalf/threequarters/agrave /aacute/acircumflex/atilde/adieresis/aring/ccedilla/egrave/eacute /ecircumflex/edieresis/igrave 226/iacute 228/icircumflex/idieresis/eth /ntilde 236/ograve/oacute/ocircumflex/otilde/odieresis 242/ugrave/uacute /ucircumflex 246/udieresis/yacute 252/thorn/ydieresis] {dup type /nametype eq {NextStepEncoding 2 index 2 index put pop 1 add}{exch pop}ifelse }forall pop /NextStepEncoding NextStepEncoding readonly def /_NXfstr 128 string dup 0 (_NX) putinterval def /_NXfindfont /findfont load def /findfont{ % Because we can never let NextStepEncoding get into % SharedFontDirectory, we cannot reencode a font to NextStepEncoding % if we are in shared mode. So if currentshared is true, % we call the normal findfont and return that _JPN {//_@Private begin dup _str cvs (-NeXT-) search { cvn exch pop exch cvn dup /H eq { pop exch _find {exch pop}{exch true _defNeXTF}ifelse false }{ dup /V eq { pop exch _find {exch pop}{exch false _defNeXTF}ifelse false /SystemGaiji eq { exch _find {exch pop}{exch _defSGaiji}ifelse false }{pop true} ifelse } ifelse } ifelse }{ (NX@) anchorsearch { pop exch _find {exch pop}{exch cvn _defNXR}ifelse false }{pop true} ifelse } ifelse { dup //_@Private exch known {dup load exec false}{true}ifelse }{false}ifelse end }{true}ifelse { /currentshared where {pop currentshared} {false} ifelse {_NXfindfont} {dup _NXfstr 3 125 getinterval cvs length 3 add _NXfstr 0 3 -1 roll getinterval cvn exch FontDirectory 2 index known {pop FontDirectory exch get} {_NXfindfont dup /Encoding get StandardEncoding eq { dup length dict exch {1 index /FID ne {2 index 3 1 roll put}{pop pop}ifelse}forall dup /Encoding NextStepEncoding put definefont }{exch pop} ifelse }ifelse }ifelse } if }bind def }{pop}ifelse /_NXImageString {/__NXImageString where{pop}{/__NXImageString 4000 string __NXdef}ifelse __NXImageString}__NXbdef /_NXDoImageOp{ 3 dict begin /parr 5 array def 1 index{dup}{1}ifelse /chans exch def chans 2 add 2 roll parr 0 chans getinterval astore pop 5 index 4 index mul 2 index{1 sub 8 idiv 1 add mul}{mul 1 sub 8 idiv 1 add}ifelse 4 index mul /totbytes exch def pop exch pop gsave matrix invertmatrix concat 0.5 setgray 0 0 4 2 roll rectfill grestore {0 1 chans 1 sub{parr exch get exec length totbytes exch sub /totbytes exch def}for totbytes 0 le{exit}if}loop end }__NXbdef /alphaimage{1 add _NXDoImageOp}def _NXLevel2{ /NXCalibratedRGBColorSpace where{pop}{ /NXCalibratedRGBColorSpace {mark /NXCalibratedRGB /ColorSpace findresource exch pop}stopped {cleartomark /NXCalibratedRGB[/CIEBasedABC 2 dict dup begin /MatrixLMN[.4124 .2126 .0193 .3576 .7152 .1192 .1805 .0722 .9505]def /WhitePoint[.9505 1 1.089] def end] /ColorSpace defineresource}if def}ifelse /nxsetrgbcolor{NXCalibratedRGBColorSpace setcolorspace setcolor}__NXbdef /nxsetgray{dup dup nxsetrgbcolor}__NXbdef /_NXCalibratedImage{exch{array astore dup length true}{false}ifelse 8 -1 roll{NXCalibratedRGBColorSpace setcolorspace}if 8 dict dup 9 1 roll begin /ImageType 1 def /MultipleDataSources exch def currentcolorspace 0 get /Indexed eq{pop /Decode[0 2 6 index exp 1 sub]def} {2 mul dup array /Decode exch def 1 sub 0 1 3 -1 roll{Decode exch dup 2 mod put}for}ifelse /DataSource exch def /ImageMatrix exch def /BitsPerComponent exch def /Height exch def /Width exch def end image}__NXbdef /setcmykcolor{ 1.0 exch sub dup dup 6 -1 roll sub dup 0 lt{pop 0}if 5 1 roll 4 -1 roll sub dup 0 lt{pop 0}if 3 1 roll exch sub dup 0 lt{pop 0}if setrgbcolor}__NXbdef /currentcmykcolor{currentrgbcolor 3{1.0 exch sub 3 1 roll}repeat 0}__NXbdef /colorimage{2 copy 3 ne or{_NXDoImageOp}{4 index dup 8 ne exch 4 ne and{_NXDoImageOp}{ pop pop save 6 1 roll 12 dict begin/Proc exch def/Res 0 string def /Alloc{2 index length mul 2 add dup 2 index load length gt{1.2 mul round cvi string def}{pop pop}ifelse}def 1 index 8 eq{/Unpack{.34 Alloc}def}{ /Wid 4 index 3 mul def exch pop 8 exch/Str1 0 string def/Lim Wid def /Unpack{.67 Alloc/Str1 2 Alloc 0 exch Lim exch {dup -4 bitshift 17 mul Str1 exch 4 index exch put 15 and 17 mul Str1 exch 3 index 1 add exch put 2 sub dup 0 le{0 lt Wid exch{exch 1 sub exch}if}if exch 2 add exch }forall/Lim exch def Str1 exch 0 exch getinterval }def }ifelse /Ops[{.3 mul add 1}{.59 mul add 2}{.11 mul add round cvi Res exch 2 index exch put 1 add 0.0 0}]def/Val 0.0 def/Phase 0 def {0 Val Phase Proc/Res Unpack{exch Ops exch get exec}forall/Phase exch def/Val exch def Res exch 0 exch getinterval} image end restore}ifelse}ifelse }__NXbdef /nxsetrgbcolor{setrgbcolor}__NXbdef /nxsetgray{setgray}__NXbdef /setpattern{pop .5 setgray}__NXbdef /_NXCalibratedImage{dup 1 eq {pop pop image}{colorimage}ifelse pop}__NXbdef } ifelse /_NXSetCMYKOrRGB where{pop}{ mark{systemdict /currentwindow get exec}stopped {{pop pop pop setcmykcolor}}{{nxsetrgbcolor pop pop pop pop}}ifelse /_NXSetCMYKOrRGB exch def cleartomark }ifelse %%EndProcSet /oval { translate scale newpath 0.5 0.5 0.5 0 360 arc closepath } def /line { moveto rlineto stroke } def /setup { setlinewidth setlinecap setlinejoin gsave } def /arrow { newpath moveto dup rotate -13 6 rlineto 4 -6 rlineto -4 -6 rlineto closepath gsave 0 setlinejoin stroke grestore fill neg rotate } def gsave /__NXbasematrix matrix currentmatrix def grestore %%EndProlog %%BeginSetup %%EndSetup gsave 0 0 477 652 rectclip gsave 0 0 0 setup 0.333333 0.333333 0.811765 nxsetrgbcolor 209 637 11 10 rectfill 0.333333 0.333333 0.811765 nxsetrgbcolor 209 637 11 10 rectstroke grestore 0 0 0 setup 0.666667 0.666667 0.784314 nxsetrgbcolor 267 624 90 10 rectfill 0.666667 0.666667 0.784314 nxsetrgbcolor 267 624 90 10 rectstroke grestore 0 0 0 setup gsave 10 604 196 17 rectclip [1 0 0 -1 10 621] concat 0 0 196 17 rectclip 0 nxsetgray /Ohlfs findfont 9 scalefont [1 0 0 -1 0 0] makefont defineuserobject 86 execuserobject setfont 5 9 moveto -0.4 0 (NSConcreteArray 98 152 223 ) ashow grestore grestore 0 0 0 setup 0 0 0 setup 0.333333 0.333333 0.811765 nxsetrgbcolor 295 611 70 10 rectfill 0.333333 0.333333 0.811765 nxsetrgbcolor 295 611 70 10 rectstroke grestore 0 0 0 setup 0.666667 0.666667 0.784314 nxsetrgbcolor 352 611 70 10 rectfill 0.666667 0.666667 0.784314 nxsetrgbcolor 352 611 70 10 rectstroke grestore 0 0 0 setup 0 0 1 nxsetrgbcolor 199 611 99 10 rectfill 0 0 1 nxsetrgbcolor 199 611 99 10 rectstroke grestore grestore 0 0 0 setup gsave 198 520 100 52 rectclip [1 0 0 -1 198 572] concat 0 0 100 52 rectclip 0 nxsetgray 86 execuserobject setfont 5 9 moveto -0.4 0 (Number of ) ashow 5 22 moveto -0.4 0 (instances ) ashow 5 35 moveto -0.4 0 (currently in ) ashow 5 48 moveto -0.4 0 (existence) ashow grestore grestore 0 0 0 setup gsave 281 518 103 41 rectclip [1 0 0 -1 281 559] concat 0 0 103 41 rectclip 0 nxsetgray 86 execuserobject setfont 5 9 moveto -0.4 0 (Maximum number of ) ashow 5 22 moveto -0.4 0 (instances ever in ) ashow 5 35 moveto -0.4 0 (existence together) ashow grestore grestore 0 0 0 setup gsave 392 516 80 43 rectclip [1 0 0 -1 392 559] concat 0 0 80 43 rectclip 0 nxsetgray 86 execuserobject setfont 5 9 moveto -0.4 0 (Total number ) ashow 5 22 moveto -0.4 0 (of instances ) ashow 5 35 moveto -0.4 0 (allocated) ashow grestore grestore 0 0 0 setup 0 nxsetgray 13 -44 416 607 line 106.457848 416 607 arrow grestore 0 0 0 setup 0 nxsetgray 7 45 338 561 line 81.160576 345 606 arrow grestore 0 0 0 setup 0 nxsetgray 37 39 252 568 line 46.508804 289 607 arrow grestore 0 0 0 setup gsave 10 630 196 17 rectclip [1 0 0 -1 10 647] concat 0 0 196 17 rectclip 0 nxsetgray 86 execuserobject setfont 5 9 moveto -0.4 0 (NSImage 16 24 24 ) ashow grestore grestore 0 0 0 setup 0 0 1 nxsetrgbcolor 199 637 12 10 rectfill 0 0 1 nxsetrgbcolor 199 637 12 10 rectstroke grestore 0 0 0 setup gsave 10 617 196 17 rectclip [1 0 0 -1 10 634] concat 0 0 196 17 rectclip 0 nxsetgray 86 execuserobject setfont 5 9 moveto -0.4 0 (NSButtonCell 72 75 160 ) ashow grestore grestore 0 0 0 setup 0.333333 0.333333 0.811765 nxsetrgbcolor 270 624 4 10 rectfill 0.333333 0.333333 0.811765 nxsetrgbcolor 270 624 4 10 rectstroke grestore 0 0 0 setup 0 0 1 nxsetrgbcolor 199 624 72 10 rectfill 0 0 1 nxsetrgbcolor 199 624 72 10 rectstroke grestore grestore gsave 0 0 477 652 rectclip [1 0 0 -1 0 652] concat gsave grestore grestore grestore %%Trailer %%DocumentFonts: Ohlfs NSColor @@ccc NSCursor NSCustomResource) NSImage NSIBeamCursor NSScroller _doScroller: NSTextFieldCell= NSActionCell NSCell< NSFont [20c] Helvetica System controlColor controlTextColor by Ali Ozer ObjectAlloc [24c] Helvetica-Bold NSWindowTemplate) iiffffi@@@@@c ObjectAlloc Help NSPanel File's Owner Panel NSMutableSet NSSet NSIBOutletConnector NSIBConnector infoPanel