Ticket #12718: 20071015_rc2a.patch

File 20071015_rc2a.patch, 79.7 KB (added by cssdev, 17 years ago)

fixed patch to apply within working directory

Line 
1--- emacs-23.0.0_NS-9.0rc2a/src/image.c 2007-09-15 21:36:19.000000000 +0300
2+++ src/image.c 2007-10-14 06:30:25.000000000 +0300
3@@ -1583,6 +1583,9 @@
4 
5          img->background_transparent
6            = (four_corners_best (mask, img->corners, img->width, img->height) == PIX_MASK_RETAIN);
7+#ifdef HAVE_NS
8+          ns_retain_object(img->background_transparent);
9+#endif
10 
11          if (free_mask)
12            Destroy_Image (mask, prev);
13@@ -1625,16 +1628,21 @@
14     {
15       Free_Pixmap (FRAME_X_DISPLAY (f), img->pixmap);
16       img->pixmap = NO_PIXMAP;
17-      img->background_valid = 0;
18 #ifdef HAVE_NS
19-      ns_release_object(img->background);
20+      if (img->background_valid)
21+        ns_release_object(img->background);
22 #endif
23+      img->background_valid = 0;
24     }
25 
26   if (mask_p && img->mask)
27     {
28       Free_Pixmap (FRAME_X_DISPLAY (f), img->mask);
29       img->mask = NO_PIXMAP;
30+#ifdef HAVE_NS
31+      if (img->background_transparent_valid)
32+        ns_release_object(img->background_transparent);
33+#endif
34       img->background_transparent_valid = 0;
35     }
36 
37@@ -4688,20 +4696,21 @@
38          Lisp_Object color_val =
39            (*get_color_table) (color_table, str, chars_per_pixel);
40 
41-         XPutPixel (ximg, x, y,
42 #ifndef HAVE_NS
43+         XPutPixel (ximg, x, y,
44                     (INTEGERP (color_val) ? XINT (color_val)
45+                     : FRAME_FOREGROUND_PIXEL (f)));
46 #else
47-                     (STRINGP (color_val) ? *(void **)SDATA(color_val)
48+          if (STRINGP (color_val))
49+            XPutPixel (ximg, x, y, *(void **)SDATA(color_val));
50 #endif
51-                     : FRAME_FOREGROUND_PIXEL (f)));
52 #ifndef HAVE_NS
53          XPutPixel (mask_img, x, y,
54                     (!EQ (color_val, Qt) ? PIX_MASK_DRAW
55                      : (have_mask = 1, PIX_MASK_RETAIN)));
56 #else
57           if (EQ(color_val, Qt))
58-              ns_set_alpha(ximg, x, y, 0);
59+            ns_set_alpha(ximg, x, y, 0);
60 #endif
61        }
62       if (y + 1 < height)
63@@ -5477,7 +5486,7 @@
64       Display *dpy = FRAME_X_DISPLAY (f);
65       GC gc;
66 
67-#ifndef HAVE_NS  //PENDING: NS XPM support
68+#ifndef HAVE_NS  //PENDING
69 
70 #ifdef MAC_OS
71 #define MaskForeground(f)  PIX_MASK_DRAW
72--- emacs-23.0.0_NS-9.0rc2a/src/frame.c 2007-08-21 01:57:48.000000000 +0300
73+++ src/frame.c 2007-09-25 22:46:40.000000000 +0300
74@@ -734,6 +734,11 @@
75     }
76 #endif /* !WINDOWSNT */
77 
78+#ifdef COCOA
79+  /* term gets no other notification of this */
80+  Fraise_frame(Qnil);
81+#endif
82+
83   /* We want to make sure that the next event generates a frame-switch
84      event to the appropriate frame.  This seems kludgy to me, but
85      before you take it out, make sure that evaluating something like
86--- emacs-23.0.0_NS-9.0rc2a/src/nsterm.h        2007-09-19 18:13:06.000000000 +0300
87+++ src/nsterm.h        2007-10-13 22:47:25.000000000 +0300
88@@ -78,7 +78,7 @@
89 - (void)keyDown:(NSEvent *)theEvent;
90 - (void)mouseDown:(NSEvent *)theEvent;
91 - (void)mouseUp:(NSEvent *)theEvent;
92-- setMiniwindowImage;
93+- setMiniwindowImage: (BOOL)setMini;
94 
95 // Emacs-side interface
96 - initFrameFromEmacs: (struct frame *) f;
97@@ -136,6 +136,7 @@
98      NSMutableDictionary *identifierToItem;
99      NSMutableArray *activeIdentifiers;
100      NSArray *prevIdentifiers;
101+     unsigned long enablement, prevEnablement;
102    }
103 - initForView: (EmacsView *)view withIdentifier: (NSString *)identifier;
104 - (void) clearActive;
105@@ -369,8 +370,8 @@
106    no_highlight=0,
107    filled_box,
108    hollow_box,
109-   bar,
110-   line
111+   underscore,
112+   bar
113 };
114 
115 
116@@ -535,6 +536,7 @@
117   Lisp_Object icon_top;
118   Lisp_Object icon_left;
119   enum ns_cursor_types current_cursor, desired_cursor;
120+  unsigned char last_inactive;
121 
122   /* The size of the extra width currently allotted for vertical
123      scroll bars, in pixels.  */
124@@ -597,6 +599,7 @@
125 #define FRAME_NEW_CURSOR_COLOR(f) ((f)->output_data.ns->desired_cursor_color)
126 #define FRAME_NEW_CURSOR(f)  ((f)->output_data.ns->desired_cursor)
127 #define FRAME_POINTER_TYPE(f) ((f)->output_data.ns->current_pointer)
128+#define FRAME_LAST_INACTIVE(f) ((f)->output_data.ns->last_inactive)
129 
130 #ifndef COMPILING_MULTI_TERM
131 #define FRAME_FONT(f) ((f)->output_data.ns->font)
132--- emacs-23.0.0_NS-9.0rc2a/src/nsterm.m        2007-09-19 22:22:05.000000000 +0300
133+++ src/nsterm.m        2007-10-14 21:27:38.000000000 +0300
134@@ -20,10 +20,9 @@
135 
136 Originally by Carl Edman
137 Updated by Christian Limpach (chris@nice.ch)
138-OpenStep/Rhapsody  port by Scott Bender (sbender@harmony-ds.com)
139+OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com)
140 MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net)
141 GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu)
142-
143 */
144 
145 #include <math.h>
146@@ -241,11 +240,10 @@
147 static int select_nfds;
148 static NSAutoreleasePool *outerpool;
149 static BOOL ns_shutdown_properly = NO;
150-
151 static struct input_event *emacs_event = NULL;
152 static struct input_event *q_event_ptr = NULL;
153 static int n_emacs_events_pending = 0;
154-
155+static NSMutableArray *ns_pending_files;
156 
157 /* Convert modifiers in a NeXTSTEP event to emacs style modifiers.  */
158 #define NS_FUNCTION_KEY_MASK 0x800000
159@@ -348,8 +346,8 @@
160   if (!getenv("EMACSLOADPATH"))
161     {
162       NSArray *paths = [resourceDir stringsByAppendingPaths:
163-                                  [NSArray arrayWithObjects: @"lisp", @"leim",
164-                                                             @"site-lisp",nil]];
165+                                  [NSArray arrayWithObjects: @"site-lisp", @"lisp",
166+                                                             @"leim",nil]];
167       NSEnumerator *pathEnum = [paths objectEnumerator];
168       resourcePaths = @"";
169       while (resourcePath = [pathEnum nextObject])
170@@ -982,7 +980,9 @@
171 //   External: Show the window (X11 semantics)
172 // ----------------------------------------------------------------------------
173 {
174-  ns_raise_frame(f);
175+  NSTRACE(x_make_frame_visible);
176+  // not needed, as the only place that calls this (frame.c:Fraise_frame()) also calls raise_lower
177+  // ns_raise_frame(f);
178 }
179 
180 
181@@ -993,6 +993,7 @@
182 // ----------------------------------------------------------------------------
183 {
184   NSView * view = FRAME_NS_VIEW(f);
185+  NSTRACE(x_make_frame_invisible);
186   check_ns();
187   [[view window] orderOut:NSApp];
188 }
189@@ -1006,6 +1007,7 @@
190 {
191   NSView * view = FRAME_NS_VIEW(f);
192   struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f);
193+  NSTRACE(x_iconify_frame);
194   check_ns();
195 
196   if (dpyinfo->ns_highlight_frame == f)
197@@ -1035,7 +1037,9 @@
198 {
199   NSView *view = FRAME_NS_VIEW(f);
200   struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f);
201+  NSTRACE(x_destroy_window);
202   check_ns();
203+
204   [(EmacsView *)view setWindowClosing: YES]; // may not have been informed
205 
206   BLOCK_INPUT;
207@@ -1430,15 +1434,13 @@
208     {
209       [[col colorUsingColorSpaceName:NSCalibratedWhiteColorSpace]
210             getWhite:&gray alpha:&alpha];
211-      sprintf(buf,"GRAY%02.2x%02.2x",
212-              (int)rint(gray*0xff),
213-              (int)rint(alpha*0xff));
214+      sprintf(buf,"GRAY%02.2x%02.2x", lrint(gray*0xff), lrint(alpha*0xff));
215       UNBLOCK_INPUT;
216       return build_string(buf);
217     }
218 
219-  sprintf(buf,"ARGB%02.2x%02.2x%02.2x%02.2x",(int)rint(alpha*0xff),
220-          (int)rint(red*0xff),(int)rint(green*0xff),(int)rint(blue*0xff));
221+  sprintf(buf,"ARGB%02.2x%02.2x%02.2x%02.2x",lrint(alpha*0xff),
222+          lrint(red*0xff), lrint(green*0xff), lrint(blue*0xff));
223 
224   UNBLOCK_INPUT;
225   return build_string(buf);
226@@ -1588,20 +1590,28 @@
227   int xchar, ychar;
228   Lisp_Object frame, tail;
229   struct frame *f;
230-  struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (*fp);
231+  struct ns_display_info *dpyinfo;
232 
233   NSTRACE(ns_mouse_position);
234 
235+  if (*fp == NULL)
236+    {
237+      fprintf(stderr, "Warning: ns_mouse_position() called with null *fp.\n");
238+      return;
239+    }
240+
241+  dpyinfo = FRAME_NS_DISPLAY_INFO (*fp);
242+
243   BLOCK_INPUT;
244 
245-  if (! NILP (last_mouse_scroll_bar) && insist == 0)
246+  if (last_mouse_scroll_bar != nil && insist == 0)
247     {
248       //PENDING: we do not use this path at the moment because drag events will
249       // go directly to the EmacsScroller.  Leaving code in for now.
250       [last_mouse_scroll_bar getMouseMotionPart: part window:bar_window
251                                               x:x y:y];
252       if (time) *time = last_mouse_movement_time;
253-      last_mouse_scroll_bar = Qnil;
254+      last_mouse_scroll_bar = nil;
255     }
256   else
257     {
258@@ -1610,7 +1620,7 @@
259         if (FRAME_NS_DISPLAY (XFRAME (frame)) == FRAME_NS_DISPLAY (*fp))
260           XFRAME (frame)->mouse_moved = 0;
261 
262-      last_mouse_scroll_bar = Qnil;
263+      last_mouse_scroll_bar = nil;
264       if (last_mouse_frame && FRAME_LIVE_P(last_mouse_frame))
265         f = last_mouse_frame;
266       else
267@@ -1628,8 +1638,8 @@
268           if (bar_window) *bar_window = Qnil;
269           if (part) *part = 0; //scroll_bar_handle;
270 
271-          if (x) XSETINT (*x, (int)rint(position.x));
272-          if (y) XSETINT (*y, (int)rint(position.y));
273+          if (x) XSETINT (*x, lrint(position.x));
274+          if (y) XSETINT (*y, lrint(position.y));
275           if (time) *time = last_mouse_movement_time;
276           *fp = f;
277         }
278@@ -2051,7 +2061,8 @@
279   struct frame *f = XFRAME (WINDOW_FRAME (w));
280   struct face *face = p->face;
281   int rowY;
282-  static EmacsImage **bimgs;
283+  static EmacsImage **bimgs = NULL;
284+  static int nBimgs = 0;
285   // NS-specific: move internal border inside fringe
286   int x = p->bx < 0 ? p->x : p->bx;
287   int wd = p->bx < 0 ? p->wd : p->nx;
288@@ -2064,10 +2075,21 @@
289   int xAdjust = FRAME_INTERNAL_BORDER_WIDTH(f) *
290     (fringeOnVeryLeft ? -1 : (fringeOnVeryRight ? 1 : 0));
291 
292-  if (!bimgs)
293+  // grow bimgs if needed
294+  if (nBimgs < max_used_fringe_bitmap)
295     {
296-      bimgs = xmalloc(max_used_fringe_bitmap * sizeof (EmacsImage *));
297-      bzero(bimgs, max_used_fringe_bitmap * sizeof (EmacsImage *));
298+      EmacsImage **newBimgs =
299+        xmalloc(max_used_fringe_bitmap * sizeof (EmacsImage *));
300+      bzero(newBimgs, max_used_fringe_bitmap * sizeof (EmacsImage *));
301+
302+      if (nBimgs)
303+        {
304+          bcopy(bimgs, newBimgs, nBimgs * sizeof (EmacsImage *));
305+          xfree(bimgs);
306+        }
307+
308+      bimgs = newBimgs;
309+      nBimgs = max_used_fringe_bitmap;
310     }
311 
312   /* Must clip because of partially visible lines.  */
313@@ -2143,16 +2165,17 @@
314 //   External call (RIF): draw cursor
315 // ----------------------------------------------------------------------------
316 {
317-  NSRect r,s;
318+  NSRect r, s;
319   int fx, fy, h;
320   struct frame *f = WINDOW_XFRAME (w);
321   struct glyph *phys_cursor_glyph;
322   int overspill;
323+  unsigned char drawGlyph = 0, cursorType, oldCursorType;
324 
325   NSTRACE(dumpcursor);
326 
327   if (!on_p)
328-    return;  //PENDING: erase?
329+      return;
330 
331   w->phys_cursor_type = cursor_type;
332   w->phys_cursor_on_p = 1;
333@@ -2189,7 +2212,8 @@
334     r.size.width -= overspill;
335 
336   //PENDING: 23: use emacs stored f->cursor_type instead of ns-specific
337-  FRAME_CURSOR(f) = FRAME_NEW_CURSOR(f);
338+  oldCursorType = FRAME_CURSOR(f);
339+  cursorType = FRAME_CURSOR(f) = FRAME_NEW_CURSOR(f);
340   FRAME_CURSOR_COLOR(f) = FRAME_NEW_CURSOR_COLOR(f);
341 
342   //PENDING: only needed in rare cases with last-resort font in HELLO..
343@@ -2197,41 +2221,64 @@
344   ns_clip_to_row(w, glyph_row, -1, NULL);
345 //  ns_focus(f, &r, 1);
346 
347-  // draw the cursor
348-  // needed for bar and line cursors
349-  [FRAME_BACKGROUND_COLOR(f) set];
350-  NSRectFill(r);
351-  [FRAME_CURSOR_COLOR(f) set];
352+  if (FRAME_LAST_INACTIVE(f))
353+    {
354+      // previously hollow box; clear entire area
355+      [FRAME_BACKGROUND_COLOR(f) set];
356+      NSRectFill(r);
357+      drawGlyph = 1;
358+      FRAME_LAST_INACTIVE(f) = NO;
359+    }
360+
361+  // prepare to draw
362+  if (cursorType == no_highlight || cursor_type == NO_CURSOR)
363+    {
364+      // clearing for blink: erase the cursor itself
365+      [FRAME_BACKGROUND_COLOR(f) set];
366+      cursorType = oldCursorType; // just clear what we had before
367+    }
368+  else
369+      [FRAME_CURSOR_COLOR(f) set];
370+
371+  if (!active_p)
372+    {
373+      // inactive window: ignore what we just set and use a hollow box
374+      cursorType = hollow_box;
375+      [FRAME_CURSOR_COLOR(f) set];
376+    }
377 
378-  switch (active_p ? FRAME_CURSOR(f) : hollow_box)
379+  switch (cursorType)
380     {
381     case no_highlight:
382       break;
383     case filled_box:
384       NSRectFill(r);
385+      drawGlyph = 1;
386       break;
387     case hollow_box:
388       NSRectFill(r);
389       [FRAME_BACKGROUND_COLOR(f) set];
390       NSRectFill(NSInsetRect(r, 1, 1));
391       [FRAME_CURSOR_COLOR(f) set];
392+      drawGlyph = 1;
393       break;
394-    case bar:
395+    case underscore:
396       s = r;
397-      s.origin.y += 0.75 * s.size.height;
398-      s.size.height *= 0.25;
399+      s.origin.y += lrint(0.75 * s.size.height);
400+      s.size.height = lrint(s.size.height * 0.25);
401       NSRectFill(s);
402       break;
403-    case line:
404+    case bar:
405       s = r;
406-      s.size.width = 2;
407+      s.size.width = 1;
408       NSRectFill(s);
409       break;
410     }
411   ns_unfocus(f);
412 
413-  // draw the character under the cursor
414-  draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR);
415+  // if needed, draw the character under the cursor
416+  if (drawGlyph)
417+    draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR);
418 }
419 
420 
421@@ -2570,7 +2617,9 @@
422 
423   bg_x = x;
424   bg_y =  s->slice.y == 0 ? s->y : s->y + box_line_vwidth;
425-  bg_height = s->height - 2 * box_line_vwidth;
426+  bg_height = s->height;
427+  // other terms have this, but was causing problems w/tabbar mode
428+  // - 2 * box_line_vwidth;
429 
430   if (s->slice.x == 0) x += s->img->hmargin;
431   if (s->slice.y == 0) y += s->img->vmargin;
432@@ -2600,9 +2649,8 @@
433           br.size.height += br.origin.y;
434           br.origin.y = 0;
435         }
436-      if (br.origin.x <= fibw+1)
437+      if (br.origin.x <= fibw+1 + box_line_vwidth)
438         {
439-          br.size.height += 2*box_line_vwidth;
440           br.size.width += br.origin.x;
441           br.origin.x = 0;
442         }
443@@ -2868,19 +2916,28 @@
444   [outerpool release];
445   outerpool = [[NSAutoreleasePool alloc] init];
446 
447-    /* We must always send one NX_APPDEFINED event to ourself, otherwise
448-       [NXApp run] will never exit.  */
449-  send_appdefined = YES;
450-
451-  if (!expected)
452+  /* If we've got pending open-file requests, attend to the next one of those. */
453+  if (ns_pending_files && [ns_pending_files count] != 0
454+      && [NSApp openFile: [ns_pending_files objectAtIndex: 0]])
455     {
456-      /* Post an application defined event on the event queue.  When this is
457-         received the [NXApp run] will return, thus having processed all
458-         events which are currently queued, if any.  */
459-      ns_send_appdefined (-1);
460+      [ns_pending_files removeObjectAtIndex: 0];
461     }
462+  else
463+    {
464+      /* Run and wait for events.  We must always send one NX_APPDEFINED event
465+         to ourself, otherwise [NXApp run] will never exit.  */
466+      send_appdefined = YES;
467 
468-  [NSApp run];
469+      if (!expected)
470+        {
471+          /* Post an application defined event on the event queue.  When this is
472+             received the [NXApp run] will return, thus having processed all
473+             events which are currently queued, if any.  */
474+          ns_send_appdefined (-1);
475+        }
476+
477+      [NSApp run];
478+    }
479 
480   nevents = n_emacs_events_pending;
481   n_emacs_events_pending = 0;
482@@ -2948,11 +3005,11 @@
483       if (!NUMBERP(ns_cursor_blink_rate))
484         ns_cursor_blink_rate = make_float(0.5);
485       cursor_blink_entry =
486-        [[NSTimer scheduledTimerWithTimeInterval: XFLOATINT(ns_cursor_blink_rate)
487-                                          target: NSApp
488-                                        selector: @selector(cursor_blink_handler:)
489-                                        userInfo:0
490-                                         repeats:YES]
491+       [[NSTimer scheduledTimerWithTimeInterval: XFLOATINT(ns_cursor_blink_rate)
492+                                         target: NSApp
493+                                       selector: @selector(cursor_blink_handler:)
494+                                       userInfo:0
495+                                        repeats:YES]
496           retain];
497     }
498   else if (NILP(ns_cursor_blink_mode) && cursor_blink_entry)
499@@ -3464,11 +3521,17 @@
500   // Start app and create the main menu, window, view.
501   // Needs to be here because ns_initialize_display_info() uses AppKit classes.
502   // The view will then ask the NSApp to stop and return to Emacs.
503+  ns_pending_files = [[NSMutableArray alloc] init];
504   [EmacsApp sharedApplication];
505   if (NSApp == nil)
506     return NULL;
507   [NSApp setDelegate: NSApp];
508 
509+  // debugging: log all notifications
510+//   [[NSNotificationCenter defaultCenter] addObserver: NSApp
511+//                                            selector:@selector(logNotification:)
512+//                                                name: nil object: nil];
513+
514   dpyinfo = (struct ns_display_info *)xmalloc(sizeof(struct ns_display_info));
515   bzero (dpyinfo, sizeof (struct ns_display_info));
516 
517@@ -3798,6 +3861,15 @@
518 
519 @implementation EmacsApp
520 
521+- (void)logNotification:(NSNotification *)notification
522+{
523+  char *name = [[notification name] UTF8String];
524+  if (!strstr(name, "Update") && !strstr(name, "NSMenu")
525+      && !strstr(name, "WindowNumber"))
526+    NSLog(@"notification: '%@'", [notification name]);
527+}
528+
529+
530 - (void)sendEvent:(NSEvent *)theEvent
531 // ----------------------------------------------------------------------------
532 //   Events posted by ns_send_appdefined interrupt the run loop here
533@@ -3873,6 +3945,15 @@
534   NSTRACE(applicationDidFinishLaunching);
535   ns_send_appdefined (-2);
536 }
537+/*- (void)applicationWillFinishLaunching:(NSNotification *)notification
538+// ----------------------------------------------------------------------------
539+//   When application is loaded, terminate event loop in ns_term_init
540+// ----------------------------------------------------------------------------
541+{
542+  NSTRACE(applicationWillFinishLaunching);
543+fprintf(stderr, "willfinishlaunching\n");
544+  ns_send_appdefined (-2);
545+}*/
546 
547 
548 - (void) terminate: (id)sender
549@@ -3886,10 +3967,8 @@
550 }
551 
552 
553-// Open a file (used by below)
554--(BOOL) openFile: (char *)fileName
555-        fromLine: (int)startLine
556-          toLine: (int)endLine
557+// Open a file (used by below, after going into queue read by ns_read_socket)
558+-(BOOL) openFile: (NSString *)fileName
559 {
560   struct frame *emacsframe = SELECTED_FRAME();
561   NSEvent *theEvent = [NSApp currentEvent];
562@@ -3899,11 +3978,8 @@
563 
564   emacs_event->kind = NON_ASCII_KEYSTROKE_EVENT;
565   emacs_event->code = KEY_NS_OPEN_FILE_LINE;
566-  ns_input_file = append2(ns_input_file, build_string(fileName));
567-  if (startLine == endLine)
568-    ns_input_line = (startLine >= 0) ? make_number(startLine) : Qnil;
569-  else
570-    ns_input_line = Fcons(make_number(startLine), make_number(endLine));
571+  ns_input_file = append2(ns_input_file, build_string([fileName UTF8String]));
572+  ns_input_line = Qnil; // can be start or cons start,end
573   emacs_event->modifiers=0;
574   EV_TRAILER(theEvent);
575 
576@@ -3912,35 +3988,37 @@
577 
578 
579 //   Notification from the Workspace to open a file
580-- (BOOL)application: sender openFile: (NSString *)fileName
581+- (BOOL)application: sender openFile: (NSString *)file
582 {
583-  return [self openFile: (char *) [fileName UTF8String] fromLine:-1 toLine:-1];
584+  [ns_pending_files addObject: file];
585+  return YES;
586 }
587 
588 
589 //   Open a file as a temporary file
590 - (BOOL)application:sender openTempFile:(NSString *)file
591 {
592-  return [self application: sender openFile: file];
593+  [ns_pending_files addObject: file];
594+  return YES;
595 }
596 
597 
598 //   Notification from the Workspace to open a file noninteractively (?)
599-- (BOOL)application: sender openFileWithoutUI: (NSString *)fileName
600+- (BOOL)application: sender openFileWithoutUI: (NSString *)file
601 {
602-  return [self openFile: (char *) [fileName UTF8String] fromLine:-1 toLine:-1];
603+  [ns_pending_files addObject: file];
604+  return YES;
605 }
606 
607 
608 //   Notification from the Workspace to open multiple files
609 - (void)application: sender openFiles: (NSArray *)fileList
610 {
611-  NSEnumerator *filenames = [fileList objectEnumerator];
612-  NSString *fileName;
613-  while ((fileName = [filenames nextObject]) != nil)
614-    if ([self openFile: (char *)[fileName UTF8String] fromLine:-1 toLine:-1]
615-        == NO)
616-      return;
617+  NSEnumerator *files = [fileList objectEnumerator];
618+  NSString *file;
619+  while ((file = [files nextObject]) != nil)
620+    [ns_pending_files addObject: file];
621+  return YES;
622 }
623 
624 
625@@ -3980,7 +4058,7 @@
626     }
627   else
628     {
629-      f->output_data.ns->desired_cursor=no_highlight;
630+      f->output_data.ns->desired_cursor = no_highlight;
631     }
632   update_window_cursor (XWINDOW(FRAME_SELECTED_WINDOW(f)), 1);
633   //x_update_cursor (f, 1);
634@@ -4058,8 +4136,8 @@
635 
636       size = [newFont pointSize];
637       //PENDING: stick w/integer sizes for now.
638-//        if (size == rint(size))
639-        ns_input_fontsize = make_number((int)rint(size));
640+//        if (size == lrint(size))
641+        ns_input_fontsize = make_number(lrint(size));
642 //        else
643 //          ns_input_fontsize = make_float(size);
644       ns_input_font= build_string([[newFont familyName/*fontName*/] UTF8String]);
645@@ -4489,8 +4567,8 @@
646       emacs_event->modifiers = EV_MODIFIERS (theEvent)
647                              | EV_UDMODIFIERS (theEvent);
648     }
649-  XSETINT (emacs_event->x, (int)rint(p.x));
650-  XSETINT (emacs_event->y, (int)rint(p.y));
651+  XSETINT (emacs_event->x, lrint(p.x));
652+  XSETINT (emacs_event->y, lrint(p.y));
653   EV_TRAILER (theEvent);
654 }
655 
656@@ -4706,7 +4784,7 @@
657   struct frame *old_focus = dpyinfo->ns_focus_frame;
658 
659   NSTRACE(windowDidBecomeKey);
660
661+
662   if (emacsframe != old_focus)
663     dpyinfo->ns_focus_frame = emacsframe;
664   ///last_mouse_frame = emacsframe;?
665@@ -4736,6 +4814,7 @@
666     {
667       FRAME_NEW_CURSOR(emacsframe) = hollow_box;
668       x_update_cursor(emacsframe, 1);
669+      FRAME_LAST_INACTIVE(emacsframe) = YES;
670     }
671 
672   if (dpyinfo->ns_highlight_frame == emacsframe)
673@@ -4761,7 +4840,6 @@
674 - (void)windowWillMiniaturize:sender
675 {
676   NSTRACE(windowWillMiniaturize);
677-  [self setMiniwindowImage];
678 }
679 
680 
681@@ -5090,7 +5168,7 @@
682 
683   NSTRACE(performDragOperation);
684   position = [self convertPoint:[sender draggingLocation] fromView:nil];
685-  x = (int)rint(position.x);  y = (int)rint(position.y);
686+  x = lrint(position.x);  y = lrint(position.y);
687 
688   pb = [sender draggingPasteboard];
689   type = [pb availableTypeFromArray:ns_drag_types];
690@@ -5211,19 +5289,23 @@
691 }
692 
693 
694-- setMiniwindowImage
695+// setMini=YES means set from internal (gives a finder icon), NO means set nil
696+// (gives a miniaturized version of the window); currently we use the latter for
697+// frames whose active buffer doesn't correspond to any file (e.g., '*scratch*')
698+- setMiniwindowImage: (BOOL) setMini
699 {
700   id image = [[self window] miniwindowImage];
701   NSTRACE(setMiniwindowImage);
702 
703-  // NOTE: under Cocoa this always returns nil, documentation about
704-  // "AppleDockIconEnabled" notwithstanding, however the set message
705+  // NOTE: under Cocoa miniwindowImage always returns nil, documentation
706+  // about "AppleDockIconEnabled" notwithstanding, however the set message
707   // below has its effect nonetheless.
708   if (image != emacsframe->output_data.ns->miniimage)
709     {
710       if (image && [image isKindOfClass: [EmacsImage class]])
711         [image release];
712-      [[self window] setMiniwindowImage: emacsframe->output_data.ns->miniimage];
713+      [[self window] setMiniwindowImage:
714+                       setMini ? emacsframe->output_data.ns->miniimage : nil];
715     }
716 
717   return self;
718@@ -5739,7 +5821,7 @@
719   [cursorBlinkSlider setFloatValue: prevBlinkRate];
720   [cursorTypeMatrix selectCellWithTag: (cursorType == filled_box ? 1 :
721                                         (cursorType == bar ? 2 :
722-                                         (cursorType == line ? 3 : 4)))];
723+                                         (cursorType == underscore ? 3 : 4)))];
724   selectItemWithTag(alternateModMenu, ns_lisp_to_mod(ns_alternate_modifier));
725   selectItemWithTag(commandModMenu, ns_lisp_to_mod(ns_command_modifier));
726 #ifdef COCOA
727@@ -5813,7 +5895,7 @@
728   FRAME_NEW_CURSOR(frame) =
729                          (cursorTag == 1 ? filled_box :
730                           (cursorTag == 2 ? bar :
731-                           (cursorTag == 3 ? line : hollow_box)));
732+                           (cursorTag == 3 ? underscore : hollow_box)));
733   store_frame_param(frame, Qcursor_type,
734                     ns_cursor_type_to_lisp(FRAME_NEW_CURSOR(frame)));
735   ns_alternate_modifier = ns_mod_to_lisp(altTag);
736--- emacs-23.0.0_NS-9.0rc2a/src/nsmenu.m        2007-09-17 04:10:30.000000000 +0300
737+++ src/nsmenu.m        2007-10-15 20:58:50.000000000 +0300
738@@ -743,12 +743,11 @@
739 static Lisp_Object
740 ns_popup_menu(Lisp_Object position, Lisp_Object menu)
741 {
742-  // NOTE: this also gets called when a choice is made in the app main menu;
743-  //       the second part of ns-menu-path is sent back
744   EmacsMenu *pmenu;
745   struct frame *f;
746   NSPoint p;
747   Lisp_Object window, x, y, tem, keymap, title;
748+  struct gcpro gcpro1;
749   int specpdl_count = SPECPDL_INDEX (), specpdl_count2;
750   char *error_name = NULL;
751   int keymaps = 0;
752@@ -758,16 +757,14 @@
753 
754   if (!NILP(position))
755     {
756
757       check_ns();
758   
759       if (EQ (position, Qt)
760           || (CONSP (position) && (EQ (XCAR (position), Qmenu_bar)
761                                    || EQ (XCAR (position), Qtool_bar))))
762-
763         {
764           /* Use the mouse's current position.  */
765-          struct frame *new_f = 0;
766+          struct frame *new_f = SELECTED_FRAME();
767 
768           if (mouse_position_hook)
769             (*mouse_position_hook) (&new_f, 0, 0, 0, &x, &y, 0);
770@@ -821,18 +818,21 @@
771 
772       p.x += XINT(x); p.y += XINT(y);
773 
774-//       p = [FRAME_NS_VIEW(f) convertPoint: p toView: nil];
775-//       p = [[FRAME_NS_VIEW(f) window] convertBaseToScreen: p];
776-
777       XSETFRAME (Vmenu_updating_frame, f);
778     }
779   else
780-    {
781-      // no position given
782+    {      // no position given
783+      //PENDING: if called during dump, we need to stop precomputation of
784+      // key equivalents (see below) because the keydefs in ns-win.el have
785+      // not been loaded yet.
786+      if (noninteractive)
787+        return Qnil;
788       Vmenu_updating_frame = Qnil;
789     }
790 
791   // now parse the lisp menus
792+  title = Qnil;
793+  GCPRO1 (title);
794 
795   /* Decode the menu items from what was specified.  */
796 
797@@ -899,8 +899,8 @@
798       keymaps = 0;
799     }
800 
801-  // OK, now if no position given, we're just supposed to discard all that
802-  // work (except for whatever was cached during key equivalent computation)
803+  // If no position given, that was a signal to just precompute and cache
804+  // key equivalents, which was a side-effect of what we just did.
805   if (NILP (position))
806     {
807       discard_menu_items ();
808@@ -1169,15 +1169,8 @@
809       image = TOOLPROP (TOOL_BAR_ITEM_IMAGES);
810       if (VECTORP (image))
811        {
812-         if (enabled_p)
813-              idx = (selected_p
814-                  ? TOOL_BAR_IMAGE_ENABLED_SELECTED
815-                  : TOOL_BAR_IMAGE_ENABLED_DESELECTED);
816-         else
817-              idx = (selected_p
818-                  ? TOOL_BAR_IMAGE_DISABLED_SELECTED
819-                  : TOOL_BAR_IMAGE_DISABLED_DESELECTED);
820-
821+          // NS toolbar auto-computes disabled and selected images
822+          idx = TOOL_BAR_IMAGE_ENABLED_SELECTED;
823          xassert (ASIZE (image) >= idx);
824          image = AREF (image, idx);
825        }
826@@ -1257,6 +1250,7 @@
827   [self setDelegate: self];
828   identifierToItem = [[NSMutableDictionary alloc] initWithCapacity: 10];
829   activeIdentifiers = [[NSMutableArray alloc] initWithCapacity: 8];
830+  prevEnablement = enablement = 0L;
831   return self;
832 }
833 
834@@ -1273,11 +1267,14 @@
835   [prevIdentifiers release];
836   prevIdentifiers = [activeIdentifiers copy];
837   [activeIdentifiers removeAllObjects];
838+  prevEnablement = enablement;
839+  enablement = 0L;
840 }
841 
842 - (BOOL) changed
843 {
844-  return [activeIdentifiers isEqualToArray: prevIdentifiers] ? NO : YES;
845+  return [activeIdentifiers isEqualToArray: prevIdentifiers] &&
846+    enablement == prevEnablement ? NO : YES;
847 }
848 
849 - (void) addDisplayItemWithImage: (EmacsImage *)img idx: (int)idx
850@@ -1305,6 +1302,7 @@
851   // 3) update state
852   [identifierToItem setObject: item forKey: identifier];
853   [activeIdentifiers addObject: identifier];
854+  enablement = (enablement << 1) | (enabled == YES);
855 }
856 
857 // This overrides super's implementation, which automatically sets
858--- emacs-23.0.0_NS-9.0rc2a/src/nsfns.m 2007-09-17 16:35:23.000000000 +0300
859+++ src/nsfns.m 2007-10-14 21:22:54.000000000 +0300
860@@ -755,6 +755,8 @@
861   id image=nil;
862   Lisp_Object chain, elt;
863   NSAutoreleasePool *pool;
864+  BOOL setMini = YES;
865+
866   NSTRACE(ns_implicitly_set_icon_type);
867 
868   BLOCK_INPUT;
869@@ -803,11 +805,14 @@
870     }
871 
872   if (image == nil)
873-    image = [[[NSWorkspace sharedWorkspace] iconForFileType:@"text"] retain];
874+    {
875+      image = [[[NSWorkspace sharedWorkspace] iconForFileType:@"text"] retain];
876+      setMini = NO;
877+    }
878 
879   [f->output_data.ns->miniimage release];
880-  f->output_data.ns->miniimage=image;
881-  [view setMiniwindowImage];
882+  f->output_data.ns->miniimage = image;
883+  [view setMiniwindowImage: setMini];
884   [pool release];
885   UNBLOCK_INPUT;
886 }
887@@ -818,6 +823,8 @@
888 {
889   EmacsView *view = FRAME_NS_VIEW(f);
890   id image = nil;
891+  BOOL setMini = YES;
892+
893   NSTRACE(ns_set_icon_type);
894 
895   if (!NILP (arg) && SYMBOLP (arg))
896@@ -840,10 +847,14 @@
897     image=[NSImage imageNamed:[NSString stringWithUTF8String:
898                                             XSTRING(arg)->data]];
899 
900-  if (image==nil) image=[NSImage imageNamed:@"text"];
901+  if (image == nil)
902+    {
903+      image = [NSImage imageNamed:@"text"];
904+      setMini = NO;
905+    }
906 
907-  f->output_data.ns->miniimage=image;
908-  [view setMiniwindowImage];
909+  f->output_data.ns->miniimage = image;
910+  [view setMiniwindowImage: setMini];
911 }
912 
913 
914@@ -867,11 +878,11 @@
915   else if (XTYPE(arg) == Lisp_Symbol)
916     str=XSTRING(XSYMBOL(arg)->xname)->data;
917   else return -1;
918-  if (!strcmp(str,"bar"))    return bar;
919-  if (!strcmp(str,"box"))    return filled_box;
920-  if (!strcmp(str,"hollow")) return hollow_box;
921-  if (!strcmp(str,"line"))   return line;
922-  if (!strcmp(str,"no"))     return no_highlight;
923+  if (!strcmp(str,"box"))       return filled_box;
924+  if (!strcmp(str,"hollow"))    return hollow_box;
925+  if (!strcmp(str,"underscore")) return underscore;
926+  if (!strcmp(str,"bar"))       return bar;
927+  if (!strcmp(str,"no"))        return no_highlight;
928   return -1;
929 }
930 
931@@ -881,12 +892,12 @@
932 {
933   switch (arg)
934     {
935-    case bar: return intern("bar");
936     case filled_box: return Qbox;
937     case hollow_box: return intern("hollow");
938-    case line: return intern("line");
939+    case underscore: return intern("underscore");
940+    case bar:       return intern("bar");
941     case no_highlight:
942-    default: return intern("no");
943+    default:        return intern("no");
944     }
945 }
946 
947@@ -904,8 +915,8 @@
948   else
949     {
950       store_frame_param(f,Qcursor_type,oldval);
951-      error ("the `cursor-type' frame parameter should be either `no', `bar', \
952-`box', `hollow' or `line'.");
953+      error ("the `cursor-type' frame parameter should be either `no', `box', \
954+`hollow', `underscore' or `bar'.");
955     }
956 
957   update_mode_lines++;
958@@ -2227,10 +2238,10 @@
959 
960   [[col colorUsingColorSpaceName:NSCalibratedRGBColorSpace]
961         getRed:&red green:&green blue:&blue alpha:&alpha];
962-  rgba[0] = make_number ((int) rint(red*65280));
963-  rgba[1] = make_number ((int) rint(green*65280));
964-  rgba[2] = make_number ((int) rint(blue*65280));
965-  rgba[3] = make_number ((int) rint(alpha*65280));
966+  rgba[0] = make_number (lrint(red*65280));
967+  rgba[1] = make_number (lrint(green*65280));
968+  rgba[2] = make_number (lrint(blue*65280));
969+  rgba[3] = make_number (lrint(alpha*65280));
970 
971   return Flist (4, rgba);
972 }
973--- emacs-23.0.0_NS-9.0rc2a/src/nsimage.m       2007-09-19 18:16:53.000000000 +0300
974+++ src/nsimage.m       2007-10-13 23:35:59.000000000 +0300
975@@ -316,6 +316,10 @@
976   }
977 
978   [self addRepresentation: bmRep];
979+
980+  bzero(planes[0], w*h);
981+  bzero(planes[1], w*h);
982+  bzero(planes[2], w*h);
983   [self setXBMColor: [NSColor blackColor]];
984   return self;
985 }
986@@ -342,15 +346,28 @@
987   [rgbColor getRed: &r green: &g blue: &b alpha: &a];
988 
989   [bmRep getBitmapDataPlanes: planes];
990-  memset(planes[0], r*0xff, len);
991-  memset(planes[1], g*0xff, len);
992-  memset(planes[2], b*0xff, len);
993+
994+  // we used to just do this, but Cocoa seems to have a bug when rendering
995+  // an alpha-masked image onto a dark background where it bloats the mask
996+//   memset(planes[0..2], r,g,b*0xff, len);
997+  {
998+    int i, len = s.width*s.height;
999+    int rr = r * 0xff, gg = g * 0xff, bb = b * 0xff;
1000+    for (i=0; i<len; i++)
1001+      if (planes[3][i] != 0)
1002+        {
1003+          planes[0][i] = rr;
1004+          planes[1][i] = gg;
1005+          planes[2][i] = bb;
1006+        }
1007+  }
1008 }
1009 
1010 
1011 - initForXPMWithDepth: (int)depth width: (int)width height: (int)height
1012 {
1013   NSSize s = {width, height};
1014+  int i;
1015 
1016   [self initWithSize: s];
1017 
1018@@ -363,6 +380,8 @@
1019                                   bytesPerRow: width bitsPerPixel: 0];
1020 
1021   [bmRep getBitmapDataPlanes: pixmapData];
1022+  for (i=0; i<4; i++)
1023+    bzero(pixmapData[i], width*height);
1024   [self addRepresentation: bmRep];
1025   return self;
1026 }
1027--- emacs-23.0.0_NS-9.0rc2a/lisp/frame.el       2007-08-21 01:56:18.000000000 +0300
1028+++ lisp/frame.el       2007-09-23 03:38:59.000000000 +0300
1029@@ -706,7 +706,7 @@
1030        (nreverse frame-initial-geometry-arguments))
1031   (cdr param-list))
1032 
1033-(defcustom focus-follows-mouse (not (eq window-system 'mac))
1034+(defcustom focus-follows-mouse (not (memq window-system '(mac ns)))
1035   "*Non-nil if window system changes focus when you move the mouse.
1036 You should set this variable to tell Emacs how your window manager
1037 handles focus, since there is no way in general for Emacs to find out
1038--- emacs-23.0.0_NS-9.0rc2a/man/ns-emacs.texi   2007-09-11 14:43:46.000000000 +0300
1039+++ man/ns-emacs.texi   2007-09-25 00:57:31.000000000 +0300
1040@@ -405,9 +405,9 @@
1041 @item
1042 Box - the cursor is displayed as a box
1043 @item
1044-Bar - the cursor is displayed as a horizontal bar
1045+Underscore - the cursor is displayed as a horizontal bar
1046 @item
1047-Line - the cursor is displayed as a vertical bar
1048+Bar - the cursor is displayed as a vertical bar
1049 @item
1050 Hollow - the cursor is displayed as a box with an outline but no fill
1051 @end itemize
1052@@ -540,7 +540,7 @@
1053 
1054 @item CursorType
1055 Name of the default cursor type for Emacs.  Allowed values are
1056-@samp{bar}, @samp{box}, @samp{hollow}, @samp{line} and @samp{no}.
1057+@samp{box}, @samp{hollow}, @samp{underscore}, @samp{bar},  @samp{line} and @samp{no}.
1058 
1059 @example
1060 defaults write Emacs CursorType box
1061--- emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/Info.plist   2007-09-20 14:20:38.000000000 +0300
1062+++ nextstep/Cocoa/Info.plist   2007-09-25 23:57:10.000000000 +0300
1063@@ -105,6 +105,10 @@
1064                        </array>
1065                        <key>CFBundleTypeName</key>
1066                        <string>Any</string>
1067+                       <key>CFBundleTypeOSTypes</key>
1068+                       <array>
1069+                               <string>****</string>
1070+                       </array>
1071                        <key>CFBundleTypeRole</key>
1072                        <string>Editor</string>
1073                </dict>
1074diff -Naur emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/preferences.nib/keyedobjects.nib emacs/nextstep/Cocoa/preferences.nib/keyedobjects.nib
1075--- emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/preferences.nib/keyedobjects.nib     2007-09-11 06:34:28.000000000 +0300
1076+++ nextstep/Cocoa/preferences.nib/keyedobjects.nib     2007-09-25 23:08:20.000000000 +0300
1077@@ -1,35 +1,42 @@
1078 bplist00Ô
1079 Y$archiverX$versionT$topX$objects_NSKeyedArchiver† Ñ   ]IB.objectdata€¯"156<=AE\drxy“”œ ¤¥¨©®´»¼ÅÆÇËÐ×ØãäåìíõöÆ÷ü
1080Æ !)*+0167<EFZ\abehinuv~‚…Š‘’š›ž£ª«³´¶·¼½ÂÃÈÉÎåæçèë $)*,012:;EFGKMPSV]^fgklqruz{~‚‰Š‘’›Ÿ)¤1¥:«­´µ¼½ÂÉÊÑÒÙÚáâéêñòùú
1081-$&),34;<CDKLW[`a1bhinpŠ‹’:šž ¬­µ¶º’¿ÃÄÈÊÍÑÚÛäåæ­çîïóúû
1082- #%9>?ÏDEIMNOQT]fNgqNr|N}‡Nˆ‘N’”˜›¢£«¬³´¿ÁÊ|NÎÐ×>Nà‡Né‘Nòùú 
1083- qN$&.>N7|N@‡NI‘NRYZabijqryz…‡fN”–ŸqN¨>N±|Nº‡NÑNÌÕÙ)Þ1ß:åçèéêëîïôõúû
1084\¥ê/0123š4
1085567896²:;<6°=>?
10865@ABACBDEFG5H5
1087IJ
10886KL1MNOPQRSTMMMUVWAAXYZ1[^a¿ !"#$%&'()*+,-.B/01
1089-23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUÞVWXYZ[\]^_`abcdefghijklmnopqrsvy|U$nullß
1090 !"#$%&'()*+,-./0_NSObjectsValues_NSAccessibilityConnectors_NSClassesValuesZNSOidsKeys[NSNamesKeys]NSClassesKeys_NSAccessibilityOidsValues\NSOidsValues_NSVisibleWindowsV$class]NSConnections]NSNamesValues]NSObjectsKeys_NSAccessibilityOidsKeys[NSFramework]NSFontManagerYNSNextOidVNSRootzÀÁ{¿ Â€!€|y€€Ø€Ò234[NSClassName€€_EmacsPrefsControllerÒ789:X$classesZ$classname¢:;^NSCustomObjectXNSObject_IBCocoaFrameworkÒ>?@ZNS.objects €Ò78BC£CD;\NSMutableSetUNSSetÒ>F[¯GHIJKLMNOPQRSTUVWXYZ€       €€*€1€7€9€;€E€M€T€[€]€_€amoqsuw€mÔ]^_`abc]NSDestinationWNSLabelXNSSource€€€€
1091-×efghijkkmnopq_NSNextResponder[NSSuperviewWNSFrameYNSEnabledXNSvFlagsVNSCell€€€    €€
1092Ôsegt.vwZNSSubviews€g€g€l_{{168, 372}, {265, 18}}Ýz{|}~€‚ƒ„…†‡ˆ‰c‹ŒŽ†’_NSKeyEquivalent_NSAlternateImageYNSSupportZNSContents]NSControlView^NSButtonFlags2_NSPeriodicInterval]NSButtonFlags_NSPeriodicDelay[NSCellFlags_NSAlternateContents\NSCellFlags2€€€€€
1093-H<Qÿ€Èÿÿÿÿ„þ€\Smooth fontsԕ–—˜™š›VNSSizeVNSNameXNSfFlags"AP€€\LucidaGrandeÒ78žŸ¢Ÿ;VNSFontÒ¡¢£[NSImageName€€XNSSwitchÒ78¦§¢§;_NSButtonImageSourcePÒ78ª«¥«¬­j;\NSButtonCell]%NSButtonCell\NSActionCellÒ78¯°¥°±²³;XNSButtonYNSControlVNSView[NSResponder×efghijkk·nopº€€€  €€_{{168, 350}, {265, 18}}Ýz{|}~€‚ƒ„…†‡ˆÀ`‹ŒŽÃ†’€€€€€€þ€_!Use Quickdraw (lighter) smoothing[nextKeyViewÒ78ÈÉ£ÉÊ;_NSNibOutletConnector^NSNibConnectorÔ]^_ÌÍbπ$€)€€×efghijkkÓnopր€€         €€!_{{286, 12}, {80, 32}}Ýz{|}~€‚ƒ„…ÙˆˆÜÏތߎÃ†â€#€€€"€ÿÿÿÿ†‚@ÿ€€VCancelQ×efghijkkènop뀀€%     €€&_{{366, 12}, {80, 32}}Ýz{|}~€‚ƒ„…ñÌތߎÃ†â€(€€€'€$€€ROKQ
1094Ô]^_Ïùbû€€0€€+×efghijkkÿnop€€€,    €€-_{{20, 17}, {21, 23}}Ýz{|}~€‚ƒ„…ˆˆ†û
1095+$&),34;<CDKLW[`a1bhinpŠ‹’š›žŸ¡­®¶·»’ÀÄÅÉËÎÒÛÜåæç­èïðôûü!$&:?@ÐEFJNOPRU^gOhrOs}O~ˆO‰’O“•™œ£¤¬­´µÀÂË}OÏÑØ?OáˆOê’Oóúû
1096+!rO%'/?O8}OAˆOJ’OSZ[bcjkrsz{†ˆ‘gO•— rO©?O²}O»ˆOĒOÍÖÚ)ß1à:æèéêëìïðõöûü
1097]¦ë01234356789:;33<=>?@A›B7CDEE²FGHIJBEKLGBMNO°PEQRBSTUVW7XYZ[799\_bÀ !"#$%&'()*+,-./0Þ123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ
1098+[\]^_`abBcdefghijklmnopqrstwz}U$nullß
1099 !"#$%&'()*+,-./0_NSObjectsValues_NSAccessibilityConnectors_NSClassesValuesZNSOidsKeys[NSNamesKeys]NSClassesKeys_NSAccessibilityOidsValues\NSOidsValues_NSVisibleWindowsV$class]NSConnections]NSNamesValues]NSObjectsKeys_NSAccessibilityOidsKeys[NSFramework]NSFontManagerYNSNextOidVNSRootzÀÁ{¿ Â€!€|y€€Ø€Ò234[NSClassName€€_EmacsPrefsControllerÒ789:X$classesZ$classname¢:;^NSCustomObjectXNSObject_IBCocoaFrameworkÒ>?@ZNS.objects €Ò78BC£CD;\NSMutableSetUNSSetÒ>F[¯GHIJKLMNOPQRSTUVWXYZ€       €€*€1€7€9€;€E€M€T€[€]€_€amoqsuw€mÔ]^_`abc]NSDestinationWNSLabelXNSSource€€€€
1100+×efghijkkmnopq_NSNextResponder[NSSuperviewWNSFrameYNSEnabledXNSvFlagsVNSCell€€€    €€
1101Ôsegt.vwZNSSubviews€g€g€l_{{168, 395}, {265, 18}}Ýz{|}~€‚ƒ„…†‡ˆ‰c‹ŒŽ†’_NSKeyEquivalent_NSAlternateImageYNSSupportZNSContents]NSControlView^NSButtonFlags2_NSPeriodicInterval]NSButtonFlags_NSPeriodicDelay[NSCellFlags_NSAlternateContents\NSCellFlags2€€€€€
1102+H<Qÿ€Èÿÿÿÿ„þ€\Smooth fontsԕ–—˜™š›VNSSizeVNSNameXNSfFlags"AP€€\LucidaGrandeÒ78žŸ¢Ÿ;VNSFontÒ¡¢£[NSImageName€€XNSSwitchÒ78¦§¢§;_NSButtonImageSourcePÒ78ª«¥«¬­j;\NSButtonCell]%NSButtonCell\NSActionCellÒ78¯°¥°±²³;XNSButtonYNSControlVNSView[NSResponder×efghijkk·nopº€€€  €€_{{168, 373}, {265, 18}}Ýz{|}~€‚ƒ„…†‡ˆÀ`‹ŒŽÃ†’€€€€€€þ€_!Use Quickdraw (lighter) smoothing[nextKeyViewÒ78ÈÉ£ÉÊ;_NSNibOutletConnector^NSNibConnectorÔ]^_ÌÍbπ$€)€€×efghijkkÓnopր€€         €€!_{{286, 12}, {80, 32}}Ýz{|}~€‚ƒ„…ÙˆˆÜÏތߎÃ†â€#€€€"€ÿÿÿÿ†‚@ÿ€€VCancelQ×efghijkkènop뀀€%     €€&_{{366, 12}, {80, 32}}Ýz{|}~€‚ƒ„…ñÌތߎÃ†â€(€€€'€$€€ROKQ
1103Ô]^_Ïùbû€€0€€+×efghijkkÿnop€€€,    €€-_{{20, 17}, {21, 23}}Ýz{|}~€‚ƒ„…ˆˆ†û
1104 ŒßŽÃ†â€.€€€€+!€€Ò¨YNS.string€/Ò78£;_NSMutableStringXNSStringÔ]^_b0€2€6€€×efghijkknop€€€3     €€4_{{236, 237}, {198, 18}}Ýz{|}~€‚ƒ„…†‡ˆ%‹ŒŽ†’€€€€5€2€€_Use System Highlight Color_useSysHiliteCheckÔ]^_`-b0€€8€€_useQuickdrawCheckÔ]^_c3b0€
1105-€:€€_smoothFontsCheckÔ]^_89b0€<€D€€Øefghi=jkk@noBCDUNSTag€€€=        €C€>_{{74, 232}, {135, 17}}ßGH|}~IJKLM=ƒN…’OPQ8SnUVWOCÃXY_NSTickMarkPosition]NSAltIncValue_NSNumberOfTickMarks_NSAllowsTickMarkValuesOnlyZNSMaxValueWNSValueZNSMinValueZNSVertical#€@€?€<           #@#?à€BÒ¨€/ԕ–—]^š`"A@€A€YHelveticaÒ78cd¤d­j;\NSSliderCellÒ78fg¥g±²³;XNSSlider_cursorBlinkSliderÔ]^_0klm€€K€L€F×efghijkkqnopt€€€G €€H_{{32, 390}, {130, 32}}Ýz{|}~€‚ƒ„…wˆˆzmތߎÃ†â€J€€€I€F€€_Default Font...Ò¨€/_setDefaultFont:Ò78ƒ„£„Ê;_NSNibControlConnectorÔ]^_0‡l‰€€S€L€N×efghijkknop€€€O     €€P_{{50, 358}, {94, 32}}Ýz{|}~€‚ƒ„…“ˆˆ–‰ÞŒßŽÃ†â€R€€€Q€N€€YColors...Ò¨€/ZsetColors:Ô]^_0 l¢€€Z€L€U×efghijkk¦nop©€€€V     €€W_{{88, 12}, {148, 32}}Ýz{|}~€‚ƒ„…¬ˆˆ¯¢ÞŒßŽÃ†â€Y€€€X€U€€_Reset to DefaultsÒ¨€/_resetToDefaults:Ô]^_0¹lπ€\€L€Wcancel:Ô]^_0¿l̀€^€L€$Sok:Ô]^_0Ålû€€`€L€+XrunHelp:Ô]^_ÊËb0€bl€€ÜÏÐÑÒÓÔÕÖ×ØÙڋÛÜÝÞßàkâãä_NSWindowStyleMask_NSWindowBackingYNSMinSize]NSWindowTitle]NSWindowClass\NSWindowRect\NSScreenRectYNSMaxSize\NSWindowViewYNSWTFlags[NSViewClassi€d€e€chj€ÿÿÿÿðxk€f_{{194, 370}, {452, 474}}_Emacs PreferencesXNSWindowÒéTView€/Ò>ì[¯#í`cûÏÌôõ¢÷8ùúûüýþÿm‰   
1106+€:€€_smoothFontsCheckÔ]^_89b0€<€D€€Øefghi=jkk@noBCDUNSTag€€€=        €C€>_{{74, 232}, {135, 17}}ßGH|}~IJKLM=ƒN…’OPQ8SnUVWOCÃXY_NSTickMarkPosition]NSAltIncValue_NSNumberOfTickMarks_NSAllowsTickMarkValuesOnlyZNSMaxValueWNSValueZNSMinValueZNSVertical#€@€?€<           #@#?à€BÒ¨€/ԕ–—]^š`"A@€A€YHelveticaÒ78cd¤d­j;\NSSliderCellÒ78fg¥g±²³;XNSSlider_cursorBlinkSliderÔ]^_0klm€€K€L€F×efghijkkqnopt€€€G €€H_{{32, 413}, {130, 32}}Ýz{|}~€‚ƒ„…wˆˆzmތߎÃ†â€J€€€I€F€€_Default Font...Ò¨€/_setDefaultFont:Ò78ƒ„£„Ê;_NSNibControlConnectorÔ]^_0‡l‰€€S€L€N×efghijkknop€€€O     €€P_{{50, 381}, {94, 32}}Ýz{|}~€‚ƒ„…“ˆˆ–‰ÞŒßŽÃ†â€R€€€Q€N€€YColors...Ò¨€/ZsetColors:Ô]^_0 l¢€€Z€L€U×efghijkk¦nop©€€€V     €€W_{{88, 12}, {148, 32}}Ýz{|}~€‚ƒ„…¬ˆˆ¯¢ÞŒßŽÃ†â€Y€€€X€U€€_Reset to DefaultsÒ¨€/_resetToDefaults:Ô]^_0¹lπ€\€L€Wcancel:Ô]^_0¿l̀€^€L€$Sok:Ô]^_0Ålû€€`€L€+XrunHelp:Ô]^_ÊËb0€bl€€ÜÏÐÑÒÓÔÕÖ×ØÙڋÛÜÝÞßàkâãä_NSWindowStyleMask_NSWindowBackingYNSMinSize]NSWindowTitle]NSWindowClass\NSWindowRect\NSScreenRectYNSMaxSize\NSWindowViewYNSWTFlags[NSViewClassi€d€e€chj€ÿÿÿÿðxk€f_{{194, 347}, {452, 497}}_Emacs PreferencesXNSWindowÒéTView€/Ò>ì[¯#í`cûÏÌôõ¢÷8ùúûüýþÿm‰   
1107 
1108€h€€
1109-€+€2€€$€z€‡€U€‹€<€”€™€€¡€¥€©€­€³€·€F€N€»€Å€ä€è#'=AE^€mÛsefgkkڒX‹\NSBorderType_NSTitlePosition[NSTitleCellYNSOffsets]NSTransparentYNSBoxType€i€€€p€n€o€yÒ>![¡"€j€mÔefgíí'w€h€h€k€l_{{2, 2}, {125, 1}}Ò78+²£²³;Ò78-.£./;^NSMutableArrayWNSArray_{{20, 337}, {420, 5}}V{0, 0}×34|}ƒ…56ˆ89Ò_NSBackgroundColor[NSTextColor€r€w€€q€xSBoxÕ<=>?@ABCDWNSColor[NSColorName\NSColorSpace]NSCatalogName€u€t€s€vVSystem_textBackgroundColorÓH>IÚDWNSWhiteB1€vÒ78L<¢<;ÓH>NÚDM0 0.80000001€vÒ78QR¤R­j;_NSTextFieldCellÒ78TU¤U²³;UNSBox×efghijkkYno[\€€€{      €†€|_{{17, 309}, {129, 17}}Ø34|}~ƒ…_`abô9Ãe€€€ƒ€~€}€z€x@XDisplay:ԕ–—˜hšj€€_LucidaGrande-BoldÕ<=>?mnBCD€‚€€s€v\controlColorÓH>sÚDK0.66666669€vÕ<=>?vwBCD€…€„€s€v_controlTextColorÓH>|ÚDB0€vÒ78€¦€±²³;[NSTextField\%NSTextField×efghijkk…no[ˆ€€€ˆ   €†€‰_{{17, 445}, {129, 17}}Ø34|}~ƒ…_`aŽõ9Ãe€€€ƒ€~€Š€‡€x_Text Rendering:Ûsefg“kkڒ–—˜X‹€Œ€€€‘€€€yÒ>œ[¡€€mÔefg÷÷¢w€‹€‹€Ž€l_{{20, 191}, {420, 5}}×34|}ƒ…5§ˆ©9Ҁr€“€€’€xÓH>NÚD€v×efghijkk°no[³€€€•      €†€–_{{69, 211}, {28, 13}}Ø34|}~ƒ…_`¸¹ù9Ãe€€€ƒ€˜€—€”€xSOffԕ–—¾™šÁ"A €€×efghijkkÅno[Ȁ€€š   €†€›_{{126, 211}, {32, 13}}Ø34|}~ƒ…_`¸Îú9Ãe€€€ƒ€˜€œ€™€xU1 sec×efghijkkÕno[؀€€ž     €†€Ÿ_{{187, 211}, {32, 13}}Ø34|}~ƒ…_`¸Þû9Ãe€€€ƒ€˜€ €€xU2 sec×efghijkkåno[耀€¢     €†€£_{{86, 256}, {114, 17}}Ø34|}~ƒ…_`ˆîü9Ãe€€€ƒ€€¤€¡€x_Cursor Blink Rate×efghijkkõno[ø€€€¦       €†€§_{{267, 445}, {147, 17}}Ø34|}~ƒ…_`ˆþý9Ãe€€€ƒ€€¨€¥€x_Expand Line Spacing×efghijkkno[€€€ª    €†€«_{{260, 402}, {32, 13}}Ø34|}~ƒ…_`¸þ9Ãe€€€ƒ€˜€¬€©€xT-1.0Øefghi=jkknoBހ€€®  €C€¯_{{267, 421}, {135, 17}}ßGH|}~IJKLM=ƒN…’OÿX OW"ÞÃXY€±€°€­#?ð€B#¿ðÒ¨€/ԕ–—]'š`€²€Ò*_Helvetica-Oblique€/×efghijkk/no[2€€€´   €†€µ_{{325, 402}, {32, 13}}Ø34|}~ƒ…_`¸89Ãe€€€ƒ€˜€¶€³€xS0.0×efghijkk?no[B€€€¸       €†€¹_{{386, 402}, {29, 13}}Ø34|}~ƒ…_`¸H9Ãe€€€ƒ€˜€º€·€xS1.0ÜsefgMNkk‹‹QRSXUÞ]NSContentView€¼€€€Á€¿€À€½€yÒ>X[¡U€½€mÔefg^w€»€»€¾€l_{{3, 3}, {319, 30}}_{{97, 282}, {325, 48}}×34|}ƒ…5def9Ҁr€Ä€Ã€Â€x[Cursor Typeԕ–—j™šm"A0€€ÓH>NÚD€vßgqrs=tuehvfwxyzŸ3i{|Þ}‹C~knkƒ„@†‡ˆ_o[NSCellClassYNSNumRowsZNSCellSizeYNSNumColsWNSCells[NSProtoCell^NSSelectedCell_NSCellBackgroundColor]NSMatrixFlags_NSIntercellSpacing€Æ€à€Þ€Ç€ €á€€È€ã€uD¨€ß€€€_{{122, 292}, {276, 18}}Ò>Œ[¤ƒŽ€È€Í€Ú€Ü€mÞz‚{|}~€=ƒ„…“”ˆ–’ŒŽÞ†’€Ì€Ê€€É€Å€€Ò¡›£€Ë€]NSRadioButtonÒ¨€/ßz‚{¡|}~€=ƒ„…†£”¥ˆ§’©Ž‹Ã†’]NSNormalImage€€Ê€Ï€€Î€ÅK€€SBarՕ<®¯°±²³´VNSReps\NSImageFlags€Ð€Ø€Ù€Ñ ÀX{18, 18}Ò>·[¡¸€Ò€mÒ>»¾¢¼½€Ó€Ô€×ÒÀÁÂ_NSTIFFRepresentation€Õ€ÖOÊMM*<‹'''É+++ð555ð###ɋ                       <uPPPਨ¨ÿÛÛÛÿùùùÿúúúÿÚÚÚÿªªªÿTTTàuyuuu÷ÃÃÃÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿ|||÷%%%yFjjjæµµµÿíííÿþþþÿþþþÿþþþÿýýýÿýýýÿýýýÿ÷÷÷ÿÄÄÄÿwwwæF
1110+€+€2€€$€z€‡€U€‹€<€”€™€€¡€¥€©€­€³€·€F€N€»€Å€ä€è#'=AE^€mÛsefgkkڒX‹\NSBorderType_NSTitlePosition[NSTitleCellYNSOffsets]NSTransparentYNSBoxType€i€€€p€n€o€yÒ>![¡"€j€mÔefgíí'w€h€h€k€l_{{2, 2}, {125, 1}}Ò78+²£²³;Ò78-.£./;^NSMutableArrayWNSArray_{{20, 360}, {420, 5}}V{0, 0}×34|}ƒ…56ˆ89Ò_NSBackgroundColor[NSTextColor€r€w€€q€xSBoxÕ<=>?@ABCDWNSColor[NSColorName\NSColorSpace]NSCatalogName€u€t€s€vVSystem_textBackgroundColorÓH>IÚDWNSWhiteB1€vÒ78L<¢<;ÓH>NÚDM0 0.80000001€vÒ78QR¤R­j;_NSTextFieldCellÒ78TU¤U²³;UNSBox×efghijkkYno[\€€€{      €†€|_{{17, 332}, {129, 17}}Ø34|}~ƒ…_`abô9Ãe€€€ƒ€~€}€z€x@XDisplay:ԕ–—˜hšj€€_LucidaGrande-BoldÕ<=>?mnBCD€‚€€s€v\controlColorÓH>sÚDK0.66666669€vÕ<=>?vwBCD€…€„€s€v_controlTextColorÓH>|ÚDB0€vÒ78€¦€±²³;[NSTextField\%NSTextField×efghijkk…no[ˆ€€€ˆ   €†€‰_{{17, 468}, {129, 17}}Ø34|}~ƒ…_`aŽõ9Ãe€€€ƒ€~€Š€‡€x_Text Rendering:Ûsefg“kkڒ–—˜X‹€Œ€€€‘€€€yÒ>œ[¡€€mÔefg÷÷¢w€‹€‹€Ž€l_{{20, 191}, {420, 5}}×34|}ƒ…5§ˆ©9Ҁr€“€€’€xÓH>NÚD€v×efghijkk°no[³€€€•      €†€–_{{69, 211}, {28, 13}}Ø34|}~ƒ…_`¸¹ù9Ãe€€€ƒ€˜€—€”€xSOffԕ–—¾™šÁ"A €€×efghijkkÅno[Ȁ€€š   €†€›_{{126, 211}, {32, 13}}Ø34|}~ƒ…_`¸Îú9Ãe€€€ƒ€˜€œ€™€xU1 sec×efghijkkÕno[؀€€ž     €†€Ÿ_{{187, 211}, {32, 13}}Ø34|}~ƒ…_`¸Þû9Ãe€€€ƒ€˜€ €€xU2 sec×efghijkkåno[耀€¢     €†€£_{{86, 256}, {114, 17}}Ø34|}~ƒ…_`ˆîü9Ãe€€€ƒ€€¤€¡€x_Cursor Blink Rate×efghijkkõno[ø€€€¦       €†€§_{{267, 468}, {147, 17}}Ø34|}~ƒ…_`ˆþý9Ãe€€€ƒ€€¨€¥€x_Expand Line Spacing×efghijkkno[€€€ª    €†€«_{{260, 425}, {32, 13}}Ø34|}~ƒ…_`¸þ9Ãe€€€ƒ€˜€¬€©€xT-1.0Øefghi=jkknoBހ€€®  €C€¯_{{267, 444}, {135, 17}}ßGH|}~IJKLM=ƒN…’OÿX OW"ÞÃXY€±€°€­#?ð€B#¿ðÒ¨€/ԕ–—]'š`€²€Ò*_Helvetica-Oblique€/×efghijkk/no[2€€€´   €†€µ_{{325, 425}, {32, 13}}Ø34|}~ƒ…_`¸89Ãe€€€ƒ€˜€¶€³€xS0.0×efghijkk?no[B€€€¸       €†€¹_{{386, 425}, {29, 13}}Ø34|}~ƒ…_`¸H9Ãe€€€ƒ€˜€º€·€xS1.0ÜsefgMNkk‹‹QRSXUÞ]NSContentView€¼€€€Á€¿€À€½€yÒ>X[¡U€½€mÔefg^w€»€»€¾€l_{{3, 3}, {375, 30}}_{{53, 279}, {381, 48}}×34|}ƒ…5def9Ҁr€Ä€Ã€Â€x[Cursor Typeԕ–—j™šm"A0€€ÓH>NÚD€vßgqrs=tuehvfwxyzŸ3i{|Þ}‹C~knkƒ„@†‡ˆ_o[NSCellClassYNSNumRowsZNSCellSizeYNSNumColsWNSCells[NSProtoCell^NSSelectedCell_NSCellBackgroundColor]NSMatrixFlags_NSIntercellSpacing€Æ€à€Þ€Ç€ €á€€È€ã€uD¨€ß€€€_{{66, 289}, {388, 18}}Ò>Œ[¤ƒŽ€È€Í€Ú€Ü€mÞz‚{|}~€=ƒ„…“”ˆ–’ŒŽÞ†’€Ì€Ê€€É€Å€€ZFilled BoxÒ¡œ£€Ë€]NSRadioButtonÒ¨€/ßz‚{¢|}~€=ƒ„…†¤”¦ˆ¨’ªŽ‹Ã†’]NSNormalImage€€Ê€Ï€€Î€ÅK€€\Vertical BarՕ<¯°±²³´µVNSReps\NSImageFlags€Ð€Ø€Ù€Ñ ÀX{18, 18}Ò>¸[¡¹€Ò€mÒ>¼¿¢½¾€Ó€Ô€×ÒÁÂÃ_NSTIFFRepresentation€Õ€ÖOÊMM*<‹'''É+++ð555ð###ɋ                    <uPPPਨ¨ÿÛÛÛÿùùùÿúúúÿÚÚÚÿªªªÿTTTàuyuuu÷ÃÃÃÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿ|||÷%%%yFjjjæµµµÿíííÿþþþÿþþþÿþþþÿýýýÿýýýÿýýýÿ÷÷÷ÿÄÄÄÿwwwæF
1111 BBB¡­­­ÿÆÆÆÿëëëÿòòòÿõõõÿõõõÿóóóÿõõõÿòòòÿîîîÿÒÒÒÿ¯¯¯ÿJJJ¡
1112 xxxÝ¿¿¿ÿÏÏÏÿÝÝÝÿêêêÿïïïÿïïïÿðððÿíííÿíííÿâââÿÎÎÎÿÅÅÅÿ|||Ý$¤¤¤øÎÎÎÿÙÙÙÿàààÿâââÿåååÿæææÿçççÿåååÿâââÿÞÞÞÿÚÚÚÿÐÐÐÿ¬¬¬ø$.°°°úÖÖÖÿÞÞÞÿäääÿéééÿëëëÿìììÿéééÿëëëÿçççÿäääÿàààÿÙÙÙÿ³³³ú..ìàààÿåååÿêêêÿîîîÿðððÿðððÿñññÿðððÿîîîÿêêêÿæææÿáááÿ™™™ì.$nnnÏåååÿéééÿïïïÿòòòÿöööÿúúúÿùùùÿ÷÷÷ÿöööÿñññÿëëëÿäääÿkkkÏ$...“ÂÂÂúìììÿóóóÿùùùÿþþþÿþþþÿþþþÿþþþÿûûûÿõõõÿðððÿÂÂÂú,,,“
1113 C___Òäääþùùùÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿæææþ___ÒC
1114 ebbbÜÒÒÒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕýdddÜee333€€€ð¿¿¿üíííÿíííÿ¿¿¿ü€€€ð333ÂeCwŸ³³ŸwC
1115 $..$
1116-
1117ºRSÂÒ78ÅÆ£ÆÇ;_NSBitmapImageRepZNSImageRepÒ78É/¢/;ÓH>ËÚDD0 0€vÒ78ÎÏ£ÏÐ;WNSImageX%NSImageßz‚{¡|}~€=ƒ„…†£”¥ˆÖ’©ŽÚƒ€€Ê€Ï€€Û€Å€€TLineßz‚{¡|}~€=ƒ„…†£”¥ˆà’©ŽCƒ€€Ê€Ï€€Ý€Å€€VHollowX{66, 18}V{4, 2}Û{|}€‚ƒz…”ˆê©’뎣Æ’€Ê€€âH8Qÿ€€URadioÒ78ðñ¦ñò±²³;XNSMatrixY%NSMatrix×efghijkköno[ù€€€å       €†€æ_{{17, 164}, {107, 17}}Ø34|}~ƒ…_`aÿ9Ãe€€€ƒ€~€ç€ä€xZModifiers:×efghijkkno       €€€é  €ê_{{103, 133}, {130, 26}}ß{ƒ
1118„‚…~z|€Þ‹†Ú£nˆn©ÞVNSMenuZNSMenuItem_NSSelectedIndex_NSPreferredEdge]NSAltersState_NSUsesItemFromMenu_NSArrowPosition€ëÿÿÿÿ„Aþ@‚@ÿ€î€í€
1119-  €è€ì€  ԕ–—˜™š`€€Ò¨€/Ü&'()*+,-=.01Þ23†        67â8]NSMnemonicLoc_NSKeyEquivModMaskWNSStateWNSTitleYNSOnImageZNSKeyEquivXNSTarget\NSMixedImageXNSAction€îÿÿÿ€ï€ð€€ê€ô€÷€öÓ):;<=[NSMenuItems€ø   €ùTMetaÓ@2ABC^NSResourceName€ò€ó€ñ_NSMenuCheckmarkÒ78FG£GH;_NSCustomResource_%NSCustomResourceÓ@2JBC€õ€ó€ñ_NSMenuMixedState__popUpItemAction:Ò78P
1120¢
1121;ÒRZOtherViews€/Ò>U[¦VWYZ[€ú€ý€í€mÚ&')*+,-.01_3†       67e€î€û€ð€€ê€ô€÷€üTNoneÛ&')*+,-=.01i3† 67op€î€þ€ð€€ê€ô€÷€ÿWControlÛ&')*+,-=.01t3†       67z{€î€ð€€ê€ô€÷€WCommandÛ&')*+,-=.013†     67…†€î€ð€€ê€ô€÷UHyperÛ&')*+,-=.01Š3†       67e€î€ð€€ê€ô€÷SAltÒ78“¢;Ò78•–§–—«¬­j;_NSPopUpButtonCell^NSMenuItemCellÒ78™š¦š°±²³;]NSPopUpButton×efghijkkžno[¡€€
1122        €†_{{128, 165}, {94, 17}}Ø34|}~ƒ…_`ˆ§9ꀀ€ƒ€€x@[Alt/Opt Key×efghijkk¯no²€€      _{{269, 133}, {130, 26}}ß{ƒ
1123„‚…~z|€Þ¶·Þ†Ú£n   ¼ˆn©Þ€ë€
1124-       €        Ò¨€/Ü&'()*+,-=.¶01ÞÃ3†²67zɁ€ð€€ô€÷Ó):Ë<́      ÒR€/Ò>Ñ[¤Ò·ÔՁ €mÛ&')*+,-=.¶01Ù3†²67â߁€ð€€ô€÷Û&')*+,-=.¶01â3†²67…聁€ð€€ô€÷Û&')*+,-=.¶01ë3†²67eñ!€ð€€ô€÷"×efghijkkõno[ø€€$   €†%_{{284, 165}, {110, 17}}Ø34|}~ƒ…_`ˆþ
1125-9ꀀ€ƒ€&#€x[Command Key×efghijkkno€€(   )_{{103, 73}, {130, 26}}ß{ƒ
1126„‚…~z|€Þ
1127†Ú£nˆn©Þ€ë,+€
1128-       '*€        Ò¨€/Ü&'()*+,-=.01Þ3†67o,-€ð€)€ô€÷.Ó):!<#/      0ÒR€/Ò>'[¥
1129)*+,+147:€mÛ&')*+,-=.0103†67â6,2€ð€)€ô€÷3Û&')*+,-=.0193†67z?,5€ð€)€ô€÷6Û&')*+,-=.01B3†67…H,8€ð€)€ô€÷9Û&')*+,-=.01K3†67eQ,;€ð€)€ô€÷<×efghijkkUno[X€€>       €†?_{{128, 105}, {94, 17}}Ø34|}~ƒ…_`ˆ^9ꀀ€ƒ€@=€x[Control Key×efghijkkeno[h€€B   €†C_{{264, 105}, {151, 17}}Ø34|}~ƒ…_`ˆn
11309ꀀ€ƒ€DA€x_Function Key (laptops)×efghijkkunox€€F       G_{{269, 73}, {130, 26}}ß{ƒ
1131„‚…~z|€Þ|}†Ú£n‚ˆn©Þ€ëJI€
1132-       EH€        Ò¨€/Û&'()*+,-.|01މ3†x67JK€ð€G€ô€÷LÓ):‘<“M  NÒR€/Ò>—[¦}™š›œIORUX[€mÛ&')*+,-=.|01¡3†x67o§JP€ð€G€ô€÷QÛ&')*+,-=.|01ª3†x67ⰁJS€ð€G€ô€÷TÛ&')*+,-=.|01³3†x67z¹JV€ð€G€ô€÷WÛ&')*+,-=.|01¼3†x67…JY€ð€G€ô€÷ZÛ&')*+,-=.|01Å3†x67eˁJ\€ð€G€ô€÷]ÛsefgÍkkڒÐÑÒX‹_€€dbc€yÒ>Ö[¡×`€mÔefgÜw^^a€l_{{20, 59}, {420, 5}}×34|}ƒ…5áˆã9Ҁrf€e€xÓH>NÚD€v_{{1, 9}, {452, 474}}_{{0, 0}, {1440, 878}}Z{213, 129}_{3.40282e+38, 3.40282e+38}Ò78ìí¢í;_NSWindowTemplate[prefsWindowÔ]^_ñb0€Ån€€_cursorTypeMatrixÔ]^_ÿ÷b0€­p€€_expandSpaceSliderÔ]^_ýb0€èr€€_alternateModMenuÔ]^_ b0t€€^commandModMenuÔ]^_     b0Ev€€_functionModMenuÔ]^_b0'x€€^controlModMenuÒ>¾¯Fü÷ƒ)Ô|û
1133›"ùý¶¢Ê·8Zk[*ՙWÿmõ+œ}ûÌ`U
1134‰YúώcҏVšôí
1135-,        þ׀¡'€€‹€È€è€21J€AU,€j€”€¥€U€³€b€<€^4 O€ý€­€F€Å€‡€Ü7EXI€+€$€í€î€€ä€½+€N€™€=€Í€·€
1136-€Ú€úR€z€h#:[€»€©`€×Ò>]¾¯Fkk÷kkk¶kk|íkkk   kk0¶kÊk¶|kkkkk||kkkkkkkkkk¶|kkk|kkk€€€‹€€Å€€,E€€J'€h€€€€€€€€î€b€€î,J€î€€€€€Å,€JJ€€€î€è€€€»,€€î€€€€Å€€€Å€îJ€€€,J€€€^€×Ò>¦¾¯Bü0÷)Ô|û
1137›"ùý¶¢Ê8·Z[*ՙWÿmõ+œ}ûÌ`U
1138‰YúÏcÒVšôí
1139-,        þ׀¡€€€‹'€è€21J€AU,€j€”€¥€U€³€b€<^4 O€ý€­€F€Å€‡7EXI€+€$€í€î€€ä€½+€N€™€=€·€
1140-€úR€z€h#:[€»€©`€×Ò>뾯Bìíîïðñòóôõö÷øùúûüýþÿ       
1141-
1142 !"#$%&'()*+,-}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾€×\NSTextField2\File's OwnerWNSView1ZNSBox11111^NSPopUpButton2[NSButton421\NSMenuItem21YPopUpList_NSTextField1111111111_NSTextField2121[NSMenuItem3_NSTextField11111111]NSTextField21]NSTextField23_NSTextField1111111114VWindow[NSSlider211[NSBox111111[NSMenuItem2]NSMenuItem211[NSMenuItem4\NSSlider2113YNSButton1ZNSMatrix11]NSTextField25_NSPopUpButton11ZNSButton51YNSButton2[NSButton411^NSTextField221[NSMenuItem1YNSButton3^NSMenuItem2111_NSTextField111111111ZNSButton11^NSTextField213_NSTextField11111111113ZNSButton44^NSTextField211WNSBox12^NSTextField212WNSBox11^NSPopUpButton1_NSTextField111111114Ò>\¾ €×Ò>_¾ €×Ò>b¾¯[c×Mý8"ԉ|Ym`}kÌ¢Hí÷IœÊõ*XW
1143Ž›üù,KNVþR
1144O[W)GS+Z0š¶YP
1145-JUÕúÏTûƒVQÿUô™  ·LÒZû€
1146-€·`€;€¥€<€j€NJ€è[€³€2€F€I€€$€U€€h€‹,€*X€b€‡4sqA€ÍU€¡€”:^=€7E€E€îo€©€]+€M€ä€ý1€€    '€_7€Ü€Ru€T#€Ú€1€½ €™€€a€í€+€È€»€ú€[€­m€zO€Å€9w€€×Ò>À¾¯[ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     
1147-
1148ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ        
1149-
1150€×#×‹}n:ºƒË°Ï€)҂"Î1mf4ÃjÍ·8ÁÀТÑroÆÖɇʌ±¯~Å0´¶Ç-^‘ġµÌ¹ÔŽ¿¤†§¼p.’³(£¨²«2Ó¥¸¾ˆ½ÕqÒ>t[ €mÒ>w¾ €×Ò>z¾ €×Ò78}~¢~;^NSIBObjectData#,1:LQVdf®´ÿ-?JVd€ §µÃÑë÷"%(+.0358;>@BDFO[]_vˆ“˜§°ÃÌ×ØÚãê÷ý13579;=?ACEGIKMPSVY\_ar€ˆ‘“•—™¶ÈÔÜæïöøúüý "$')CxŠ§²ÀÏäò                 &       3       5       7       9       ;       =       ?       A       F       H       J       S       U       W       d       u       |       ƒ       Œ       ‘       “       •       ˜       ¥       ®       ³       º       Ã       Ï       Ñ       Ó       Ü       å       ê
1151+
1152ºRSÂÒ78ÆÇ£ÇÈ;_NSBitmapImageRepZNSImageRepÒ78Ê/¢/;ÓH>ÌÚDD0 0€vÒ78ÏУÐÑ;WNSImageX%NSImageßz‚{¢|}~€=ƒ„…†¤”¦ˆ×’ªŽÚƒ€€Ê€Ï€€Û€Å€€ZUnderscoreßz‚{¢|}~€=ƒ„…†¤”¦ˆá’ªŽCƒ€€Ê€Ï€€Ý€Å€€VHollowX{94, 18}V{4, 2}Û{|}€‚ƒz…”ˆëª’쎤Æ’€Ê€€âH8Qÿ€€URadioÒ78ñò¦òó±²³;XNSMatrixY%NSMatrix×efghijkk÷no[ú€€€å €†€æ_{{17, 164}, {107, 17}}Ø34|}~ƒ…_`a9Ãe€€€ƒ€~€ç€ä€xZModifiers:×efghijkkno
1153+€€€é €ê_{{103, 133}, {130, 26}}ß{ƒ
1154„‚…~z|€Þ‹†Ú¤nˆnªÞVNSMenuZNSMenuItem_NSSelectedIndex_NSPreferredEdge]NSAltersState_NSUsesItemFromMenu_NSArrowPosition€ëÿÿÿÿ„Aþ@‚@ÿ€î€í€
1155+  €è€ì€  ԕ–—˜™š`€€Ò¨€/Ü
1156'()*+,-.=/12Þ34†
1157+78â9]NSMnemonicLoc_NSKeyEquivModMaskWNSStateWNSTitleYNSOnImageZNSKeyEquivXNSTarget\NSMixedImageXNSAction€îÿÿÿ€ï€ð€€ê€ô€÷€öÓ*;<=>[NSMenuItems€ø  €ùTMetaÓA2BCD^NSResourceName€ò€ó€ñ_NSMenuCheckmarkÒ78GH£HI;_NSCustomResource_%NSCustomResourceÓA2KCD€õ€ó€ñ_NSMenuMixedState__popUpItemAction:Ò78Q¢;ÒSZOtherViews€/Ò>V[¦WXZ[\€ú€ý€í€mÚ
1158'(*+,-./12`4†
1159+78f€î€û€ð€€ê€ô€÷€üTNoneÛ
1160'(*+,-.=/12j4†
1161+78pq€î€þ€ð€€ê€ô€÷€ÿWControlÛ
1162'(*+,-.=/12u4†
1163+78{|€î€ð€€ê€ô€÷€WCommandÛ
1164'(*+,-.=/12€4†
1165+78†‡€î€ð€€ê€ô€÷UHyperÛ
1166'(*+,-.=/12‹4†
1167+78e‘€î€ð€€ê€ô€÷SAltÒ78”
1168¢
1169;Ò78–—§—˜«¬­j;_NSPopUpButtonCell^NSMenuItemCellÒ78š›¦›°±²³;]NSPopUpButton×efghijkkŸno[¢€€
1170        €†_{{128, 165}, {94, 17}}Ø34|}~ƒ…_`ˆ¨9뀀€ƒ€€x@[Alt/Opt Key×efghijkk°no        ³€€       _{{269, 133}, {130, 26}}ß{ƒ
1171„‚…~z|€Þ·¸Þ†Ú¤n ½ˆnªÞ€ë€
1172+       €        Ò¨€/Ü
1173'()*+,-.=/·12ÞÄ4†³78{ʁ€ð€€ô€÷Ó*;Ì=΁    ÒS€/Ò>Ò[¤Ó¸Õց €mÛ
1174'(*+,-.=/·12Ú4†³78âà€ð€€ô€÷Û
1175'(*+,-.=/·12ã4†³78†é€ð€€ô€÷Û
1176'(*+,-.=/·12ì4†³78eò!€ð€€ô€÷"×efghijkköno[ù€€$      €†%_{{284, 165}, {110, 17}}Ø34|}~ƒ…_`ˆÿ
1177+9뀀€ƒ€&#€x[Command Key×efghijkkno            €€( )_{{103, 73}, {130, 26}}ß{ƒ
1178„‚…~z|€Þ
1179†Ú¤nˆnªÞ€ë,+€
1180+       '*€        Ò¨€/Ü
1181'()*+,-.=/
118212Þ4†   78p ,-€ð€)€ô€÷.Ó*;"=$/  0ÒS€/Ò>([¥*+,-+147:€mÛ
1183'(*+,-.=/
11841214†     78â7,2€ð€)€ô€÷3Û
1185'(*+,-.=/
118612:4†     78{@,5€ð€)€ô€÷6Û
1187'(*+,-.=/
118812C4†     78†I,8€ð€)€ô€÷9Û
1189'(*+,-.=/
119012L4†     78eR,;€ð€)€ô€÷<×efghijkkVno[Y€€>        €†?_{{128, 105}, {94, 17}}Ø34|}~ƒ…_`ˆ_9뀀€ƒ€@=€x[Control Key×efghijkkfno[i€€B   €†C_{{264, 105}, {151, 17}}Ø34|}~ƒ…_`ˆo
11919뀀€ƒ€DA€x_Function Key (laptops)×efghijkkvno y€€F       G_{{269, 73}, {130, 26}}ß{ƒ
1192„‚…~z|€Þ}~†Ú¤nƒˆnªÞ€ëJI€
1193+       EH€        Ò¨€/Û
1194'()*+,-./}12ފ4†y78JK€ð€G€ô€÷LÓ*;’=”M        NÒS€/Ò>˜[¦~š›œžIORUX[€mÛ
1195'(*+,-.=/}12¢4†y78p¨JP€ð€G€ô€÷QÛ
1196'(*+,-.=/}12«4†y78ⱁJS€ð€G€ô€÷TÛ
1197'(*+,-.=/}12´4†y78{ºJV€ð€G€ô€÷WÛ
1198'(*+,-.=/}12½4†y78†ÃJY€ð€G€ô€÷ZÛ
1199'(*+,-.=/}12Æ4†y78éJ\€ð€G€ô€÷]ÛsefgÎkkڒÑÒÓX‹_€€dbc€yÒ>×[¡Ø`€mÔefgÝw^^a€l_{{20, 59}, {420, 5}}×34|}ƒ…5âˆä9Ҁrf€e€xÓH>NÚD€v_{{1, 9}, {452, 497}}_{{0, 0}, {1440, 878}}Z{213, 129}_{3.40282e+38, 3.40282e+38}Ò78íî¢î;_NSWindowTemplate[prefsWindowÔ]^_òb0€Ån€€_cursorTypeMatrixÔ]^_ÿøb0€­p€€_expandSpaceSliderÔ]^_þb0€èr€€_alternateModMenuÔ]^_        b0t€€^commandModMenuÔ]^_
1200+b0Ev€€_functionModMenuÔ]^_b0'x€€^controlModMenuÒ>¿¯FÿUÏ,Ìƒ~‰Wõ      8[Õô*c
1201·›
1202+-ž¸"`Xù÷Öúû+}œü¢û\
1203ÊmýíZþÓkŽØš€­€½€7EX€$€ÈI€N€ú€‡€€<^€z€ä1€»€
1204+A€èR#€Ú:[€j€€ý€”'€‹€î €™€4J€í€³U€¡€U€+€·,€b€F€2€¥€h€Ü+=€Å€©€€Í`O€×Ò>^¿¯Fkk
1205k}k}kk÷kk·kkk
1206kkkk       }kk
1207}·íkkkk·kk
1208k}kkkk0kkkk
1209kkk·Ê}€€»€,€J€€ÅJ€€î€€‹€€€î€€€,€€€€J€€€Å,J€h€€î€€€€è€€,E€î€J€€€€î€'€€€€€€Å,€€€î€€b€Å^J€×Ò>§¿¯BšÿÏ,Ì~‰Wõ        8[Õô*c
1210·›
1211+-ž¸"`Xù÷Öúû+}œü¢û\0
1212ÊmýíZþÓØUO€­€7EX€$I€N€ú€‡€€<^€z€ä1€»€
1213+A€èR#:[€j€€ý€”'€‹€î €™€4J€í€³U€¡€U€+€€·,€b€F€2€¥€h+=€Å€©`€½€×Ò>쿯Bíîïðñòóôõö÷øùúûüýþÿ   
1214+
1215 !"#$%&'()*+,-.}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾€×[NSMenuItem4\NSSlider2113ZNSButton11\NSMenuItem21_NSPopUpButton11YNSButton2YNSButton3[NSMenuItem1]NSTextField25WNSView1^NSPopUpButton1[NSSlider211[NSBox111111^NSTextField211^NSTextField221WNSBox11ZNSButton44_NSTextField2121YPopUpList]NSTextField21^NSTextField212[NSMenuItem2[NSButton411]NSMenuItem211_NSTextField11111111^NSPopUpButton2ZNSBox11111_NSTextField111111111_NSTextField1111111111_NSTextField1111111114[NSMenuItem3\NSTextField2ZNSButton51\File's Owner_NSTextField11111111113VWindowYNSButton1[NSButton421]NSTextField23WNSBox12^NSTextField213ZNSMatrix11^NSMenuItem2111_NSTextField111111114Ò>]¿ €×Ò>`¿ €×Ò>c¿¯[R*ÓmôP       ƒŽZ}žÿýK~0Yû
1216ÌLUØ"WSõ-\œX[ùcÖ8J,Zûü
1217Ê+XV
1218+T›ÕHíþ¢÷·GM‰kÏUšNWIQ`ú¸O€]1^€F€z€T€È€2€ÍwJ[€­€¥€€7I€€³u€A€$€9€½X`€jq€_€‡:UsE=€”€
1219+ €<€17€Ü€·€î€+€¡,€b4€ýo#€aR€€Ú€h€©€U€‹€í€      €;€N€€m€ÅO+€è€ä€E€»€ú€*€[€€™'€M€×Ò>Á¿¯[ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     
1220+
1221ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      
1222+
1223€×ÇÖ½‚2Ž¸£)¢ÕËÏ}-‡Î€Ôq·Ð1ˆ§Í×:À‘8Æ´ÑÁµÊÉo#¼n†ÄÒ¡±(rö¯¿’̺f¤~m4³¹^‹ƒ.«¥ÓÅ°0Œ¨²j"p¾Ò>u[ €mÒ>x¿ €×Ò>{¿ €×Ò78~¢;^NSIBObjectData#,1:LQVdf®´ÿ-?JVd€ §µÃÑë÷"%(+.0358;>@BDFO[]_vˆ“˜§°ÃÌ×ØÚãê÷ý13579;=?ACEGIKMPSVY\_ar€ˆ‘“•—™¶ÈÔÜæïöøúüý "$')CxŠ§²ÀÏäò                 &       3       5       7       9       ;       =       ?       A       F       H       J       S       U       W       d       u       |       ƒ       Œ       ‘       “       •       ˜       ¥       ®       ³       º       Ã       Ï       Ñ       Ó       Ü       å       ê
1224 
1225 
1226 
1227@@ -62,10 +69,10 @@
1228 ÿ%1:AXgxz|~€Ÿ¡£¤¦¨Àõ÷ùûýÿ
1229 9;=?@BD\‘“•—™›Ÿ¢¤µ·¹»½ÚÜÞàáãåü
12301
12313
12325
12337
12349
1235;
1236=
1237?
1238A
1239J
1240T
1241V
1242_
1243f
1244x
1245
1246’
1247”
1248–
1249˜
1250š
1251·
1252¹
1253»
1254½
1255¾
1256À
1257Â
1258Ü<Pacegi}Ž’”–©º¼¾ÀÂãéëíïðòôöNcq‡¤¯·ÂÍÖØÚÜÞßèñóôù *3<IR]fz‹‘“°²´¶·¹»Ô   
1259)24FOVnƒ…‡¤¦¨ª«­¯Çüþ
1260 *;=?AC`bdfgikƒ¸º¼¾ÀÂÄÆÚãåø   
1261*,.026GIKMOXiknpr£·ÉÓáïü *68;=?ADGIRUWr†˜Ÿ¨ñóõ÷ùûýÿ   
1262!#%'*-0369<?An{™£±»½¿ÁÃÅÇÈÊÓÖØÚëíïñó!(7?W^{›Ÿ¡£¥©¾ÆÒßíïñóõ÷þ!),.7<IWYbk}†•²´¶¸¹»½Ö÷ùûýÿ"$&)=RTVXZgt€‚—™›Ÿ²¿ÂÄÍÚæó4UWY[]_as ¢¤¦¨ª¬­¯¸»½¿ÐÒÔÖØð
1263$&CEGIJLNf‡‰‹‘“—¨­¯±´ÑÓÕ×ØÚÜõ "(EGIKLNPiŠŒŽ’”–œ¹»½¿ÀÂÄÝþ
1264-;=?ABDF`ƒ…‡‰‹£ÀÂÄÆÇÉËä       
126579;=>@B\›Ÿ¡£¤­¯¸¹ÂÄÕ×Ùâöø 9Z\^`bdfj‡‰‹Ž’«ÌÎÐÒÔÖØÜ
1266!#%'(*,58:<MOQSUk„¡£¥§©«·ÈÍÏÑÔáã 2 > H S ] e q € ˜ ¦ » ½ ¿ Á Ã Å Æ È Ê Ì Î Ð Õ × Ù Û õ þ!!       !!
1267!!!J!L!N!P!R!T!V!X!a!c!e!s!|!~!½!Ë!Í!Ð!Ò!Ô!Ö!Ø!Ú!Ü!Þ!à!ä!ù""
1268""""""#","/"1"3"<"A"C"E"G"P"g"i"k(9(B(I(\(g(p(u(‚(‡(‰(’(™(¡(ª(é(ë(í(ï(ñ(ó(õ(÷(ù(þ)=)?)A)C)E)G)I)K)M)T)])d)‘)“)•)—)œ)ž) )¦)¯)¼)Å)Ï)ì)î)ð)ò)ó)õ)÷**1*3*5*7*9*;*=*H*e*g*i*k*l*o*q*‹*Ú*á*ì*þ+++3+E+G+P+U+W+Y+[+^+c+d+f+h+j+k+|+~+€+‰+‹+¼+Ê+Þ+æ+î+ø,,,,",$,),.,0,2,4,6,8,:,<,I,U,W,Z,\,a,n,},,,ƒ,•,ž,¥,¸,Ì,Ù,Û,Ý,ß,ò-----(-*-3-@-B-D-F-I-L-O-Q-z-|-~-€-‚-„-†-ˆ-Š--¼-¾-À-Â-Ä-Æ-È-Ê-Ï-Ñ-Ù....
1269.......%.R.T.W.Y.[.]._.a.f.i.o.œ.ž.¡.£.¥.§.©.«.®.².».À.É.Ø.ì.û////</>/@/C/D/F/I/b/ƒ/…/‡/‰/Œ//‘/–/¢/¿/Á/Ã/Æ/Ç/Ê/Í/ç06080;0>0@0C0D0G0J0L0M0V0X0‰0Œ00‘0“0–0˜0š00ª0­0°0³0¼0¾0Ç0Ð0Ó0Ö0Ù0Ü0Þ1111111111L1O1R1T1V1Y1[1]1`111“1•1—1š1œ1ž1¡1¾1À1Â1Å1Æ1È1Ë1å222
1270-22222 2=2?2A2D2E2H2K2d2¯2±2´2·2¹2¼2½2À2Ã2Å2Æ2Ï2Ñ3333
1271-333333#3&3)3,35373@3K3N3Q3T3W3Z3\3‰3Œ33‘3“3–3˜3š33Ê3Í3Ð3Ò3Ô3×3Ù3Û3Þ4444444444L4O4R4T4V4Y4[4]4`4}444„4…4‡4Š4£4Ä4Æ4È4Ê4Í4Ð4Ò4Þ4û4ý4ÿ55555"5C5E5G5I5L5O5Q5j5‡5‰5‹5Ž55’5•5®5ù5û5þ66666
1272-6
127366666H6K6N6P6R6U6W6Y6\6i6l6o6r6{6}6†6“6–6™6œ6Ÿ6¢6¥6§6Ô6×6Ú6Ü6Þ6á6ã6å6è777777"7$7&7)7V7Y7\7^7`7c7e7g7j7—7š77Ÿ7¡7¤7¦7¨7«7Ø7Û7Þ7à7â7å7ç7é7ì8888 8#8&8)8*8,85888;8=8N8Q8T8W8Y8p888’8”8—8™8¦8¨8¿8×8â8ÿ99
12749 9,9=9?9B9D9F9Y9j9l9o9q9s9‡9˜9š99Ÿ9¡9´9Å9È9Ë9Í9Ï9Þ9ï9ò9õ9÷9ù::::":$:&:5:>:Í:Ï:Ò:Ô:Ö:Ø:Ú:Ü:ß:â:å:ç:ê:í:ð:ò:ô:÷:ù:ü:þ;;;;;
1275-;;;;;;;;;!;#;%;';*;-;0;3;5;7;9;;;=;?;A;D;F;I;K;M;P;R;T;V;Y;[;];`;b;d;g;j;m;o;r;t;w;y;‚<<<<<<<<<"<%<(<*<,</<2<4<6<8<:<=<?<A<C<F<H<J<L<N<P<S<V<Y<[<]<_<a<c<e<h<j<m<p<r<t<v<x<z<|<~<<ƒ<…<‡<‰<‹<<<‘<”<–<˜<›<<Ÿ<¡<¤<§<©<«<­<°<²<»=B=D=F=H=J=M=O=Q=T=W=Z=\=_=b=e=g=i=l=n=q=s=u=w=y=|==‚=…=ˆ=‹=Ž==’=”=–=˜=›=ž=¡=¤=¦=¨=ª=¬=®=°=²=µ=·=º=¼=¾=Á=Ã=Å=È=Ê=Í=Ï=Ñ=Ô=×=Ú=Ü=ß=á=ä=æ=ï>v>y>|>>‚>…>ˆ>‹>Ž>‘>”>—>š>> >£>¦>©>¬>¯>²>µ>¸>»>¾>Á>Ä>Ç>Ê>Í>Ð>Ó>Ö>Ù>Ü>ß>â>å>è>ë>î>ñ>ô>÷>ú>ý????  ????????!?$?'?*?-?0?3?6?9?<?>?K?X?`?k?z?†?“??µ?Ç?Ó?é?÷@@@$@0@<@H@V@b@o@y@„@’@¤@¯@¹@Å@Ô@à@ê@ùAAA*ACANA]AeAtA|A‹A¢A«A¬A®A·A¸AºAÃB|B~B€BƒB…B‡B‰B‹BŽBB“B•B˜BšBœBŸB¡B£B¦B¨BªB¬B®B°B²BµB·BºB½B¿BÁBÄBÇBÊBÍBÏBÒBÔBÖBÙBÜBßBáBäBæBèBëBíBïBòBôBöBùBûBþCCCCC
1276-CCCCCCCCC!C#C%C(C*C,C.C0C2C4C6C8C:C<C?CACDCFCICLCNCQCTCVCXCaDDD D#D&D)D,D/D2D5D8D;D>DADDDGDJDMDPDSDVDYD\D_DbDeDhDkDnDqDtDwDzD}D€DƒD†D‰DŒDD’D•D˜D›DžD¡D¤D§DªD­D°D³D¶D¹D¼D¿DÂDÅDÈDËDÎDÑDÔD×DÚDÝDàDãDæDéDìDïDòDõDøDûDþEEEE
1277-E
1278EEEEEEE"E%E(E+E-E/E1E3E5E7E9E;E=E?EAECEEEGEIEKEMEOEQESEUEWEYE[E]E_EaEcEeEgEiEkEmEoEqEsEuEwEyE{E}EEEƒE…E‡E‰E‹EEE‘E“E•E—E™E›EEŸE¡E£E¥E§E©E«E­E¯E±E³EµE·E¹E»E½E¿EÁEÃEÅEÇEÉEËEÍEÏEÑEÓEÕE×EÙEâEãEåEîEïEñEúEûEýFFF
1279\ No newline at end of file
1280+;=?ABDF`ƒ…‡‰‹£ÀÂÄÆÇÉËä       
128179;=>@B\›Ÿ¡£¤­¯¸¹ÂÄÕ×Ùâöø 9Z\^`bdfj‡‰‹Ž’«ÌÎÐÒÔÖØÜ
1282!#%'(*,58:<MOQSUk„¡£¥§©«·ÈÍÏÑÔáã 2 > H S ] e q € ˜ ¦ » ½ ¿ Á Ã Å Æ È Ê Ì Î Ð Õ × Ù Û ô ý!!!
1283+!!!!I!K!M!O!Q!S!U!W!b!k!m!o!}!†!ˆ!Ç!Õ!×!Ú!Ü!Þ!à!â!ä!æ!è!ê!÷""" """$"&"("-"6"?"B"D"F"O"T"V"X"Z"c"z"|"~(L(U(\(o(z(ƒ(ˆ(•(š(œ(¥(¬(´(½(ü(þ))))))
1284+)))V)X)Z)\)^)`)b)d)f)m)v)})ª)¬)®)°)µ)·)¹)¿)È)Õ)Þ)è***      *****)*J*L*N*P*R*T*V*a*~*€*‚*„*…*ˆ*Š*¤*ó*ú+++)+7+L+^+`+i+n+p+r+t+w+|+}+++ƒ+„+•+—+™+¢+¤+Õ+ã+÷+ÿ,,,,%,2,;,=,B,G,I,K,M,O,Q,S,U,b,n,p,s,u,z,‡,–,˜,š,œ,®,·,¾,Ñ,å,ò,ô,ö,ø---(---6-A-C-L-Y-[-]-_-b-e-h-j-“-•-—-™-›--Ÿ-¡-£-¨-Õ-×-Ù-Û-Ý-ß-á-ã-è-ê-ò..!.$.&.(.*.,...3.6.>.k.m.p.r.t.v.x.z..‚.ˆ.µ.·.º.¼.¾.À.Â.Ä.Ç.Ë.Ô.Ù.â.ñ////*/8/U/W/Y/\/]/_/b/{/œ/ž/ /¢/¥/¨/ª/¯/»/Ø/Ú/Ü/ß/à/ã/æ00O0Q0T0W0Y0\0]0`0c0e0f0o0q0¢0¥0¨0ª0¬0¯0±0³0¶0Ã0Æ0É0Ì0Õ0×0à0é0ì0ï0ò0õ0÷1$1'1*1,1.111315181e1h1k1m1o1r1t1v1y1¦1©1¬1®1°1³1µ1·1º1×1Ù1Û1Þ1ß1á1ä1þ22!2#2%2(2+2-292V2X2Z2]2^2a2d2}2È2Ê2Í2Ð2Ò2Õ2Ö2Ù2Ü2Þ2ß2è2ê333!3#3%3(3*3,3/3<3?3B3E3N3P3Y3d3g3j3m3p3s3u3¢3¥3¨3ª3¬3¯3±3³3¶3ã3æ3é3ë3í3ð3ò3ô3÷4$4'4*4,4.414345484e4h4k4m4o4r4t4v4y4–4˜4š44ž4 4£4¼4Ý4ß4á4ã4æ4é4ë4÷5555555!5;5\5^5`5b5e5h5j5ƒ5 5¢5¤5§5¨5«5®5Ç6666666 6#6&6(6)62646a6d6g6i6k6n6p6r6u6‚6…6ˆ6‹6”6–6Ÿ6¬6¯6²6µ6¸6»6¾6À6í6ð6ó6õ6÷6ú6ü6þ77.717476787;7=7?7B7o7r7u7w7y7|7~7€7ƒ7°7³7¶7¸7º7½7¿7Á7Ä7ñ7ô7÷7ù7û7þ888828587898<8?8B8C8E8N8Q8T8V8g8j8m8p8r8‰8¦8¨8«8­8°8²8¿8Á8Ø8ð8û99!9&999E9V9X9[9]9_9r9ƒ9…9ˆ9Š9Œ9 9±9³9¶9¸9º9Í9Þ9á9ä9æ9è9÷::::::$:5:8:;:=:?:N:W:æ:è:ê:ì:ï:ò:õ:÷:ù:ü:þ;;;;;     ;;;;;;;;; ;";%;(;+;.;0;3;6;9;;;=;?;A;D;F;H;K;M;O;R;U;W;Y;\;^;`;b;e;g;j;l;n;p;r;t;v;y;|;~;;ƒ;†;ˆ;Š;;;’;›<*<,<.<0<3<5<8<:<<<?<A<C<E<G<I<K<M<P<R<T<V<Y<[<]<_<a<d<g<i<k<m<p<s<v<x<z<|<~<€<‚<„<‡<‰<‹<Ž<‘<“<•<˜<š<œ<ž< <¢<¥<§<©<«<­<¯<±<´<¶<¸<º<¼<¿<Á<Ã<Æ<É<Ë<Ô=[=^=`=b=e=h=k=m=p=r=t=v=x={=}=€=ƒ=†=ˆ=Š===‘=”=–=™=œ=Ÿ=¢=¥=¨=«=­=¯=±=³=¶=¸=º=½=¿=Á=Ä=Ç=É=Ë=Î=Ð=Ò=Ô=×=Ù=Û=Þ=à=â=ä=æ=è=ë=î=ð=ó=õ=ø=û=ý=ÿ>>>’>•>˜>›>ž>¡>¤>§>ª>­>°>³>¶>¹>¼>¿>Â>Å>È>Ë>Î>Ñ>Ô>×>Ú>Ý>à>ã>æ>é>ì>ï>ò>õ>ø>û>þ????
1285+?
1286???????"?%?(?+?.?1?4?7?:?=?@?C?F?I?L?O?R?U?W?c?p?{?ˆ?š?¤?®?º?È?Ð?ß?ë?÷@@@@(@:@D@R@a@m@y@‡@@¬@·@Î@æ@þA
1287+AA"A/AHAOAYAeAsA{AŠA•A¤A»AÄAÅAÇAÐAÑAÓAÜB•B—BšBB B¢B¤B¦B©B«B­B¯B²BµB¸BºB¼B¾BÀBÃBÅBÇBÊBÌBÏBÒBÔBÖBØBÛBÞBàBãBåBçBêBíBðBóBöBùBüBþCCCCC
1288+C
1289CCCCCCCCC!C$C'C)C,C/C1C3C5C7C9C;C=C@CBCDCFCHCJCMCOCRCUCWCYC[C]C_CaCcCeCgCjCmCoCqCzD3D6D9D<D?DBDEDHDKDNDQDTDWDZD]D`DcDfDiDlDoDrDuDxD{D~DD„D‡DŠDDD“D–D™DœDŸD¢D¥D¨D«D®D±D´D·DºD½DÀDÃDÆDÉDÌDÏDÒDÕDØDÛDÞDáDäDçDêDíDðDóDöDùDüDÿEEEEEEEEEEE E#E&E)E,E/E2E5E8E;E>EAEDEFEHEJELENEPERETEVEXEZE\E^E`EbEdEfEhEjElEnEpErEtEvExEzE|E~E€E‚E„E†EˆEŠEŒEŽEE’E”E–E˜EšEœEžE E¢E¤E¦E¨EªE¬E®E°E²E´E¶E¸EºE¼E¾EÀEÂEÄEÆEÈEÊEÌEÎEÐEÒEÔEÖEØEÚEÜEÞEàEâEäEæEèEêEìEîEðEòEûEüEþFFF
1290+FFFFF$€F3
1291\ No newline at end of file
1292--- emacs-23.0.0_NS-9.0rc2a/nextstep/compile    2007-09-18 17:20:43.000000000 +0300
1293+++ nextstep/compile    2007-10-14 07:45:34.000000000 +0300
1294@@ -22,15 +22,22 @@
1295 
1296 # Set up path and config variables.
1297 
1298-if [ $# -gt 0 ]; then
1299-    if [ $# -ne 2 ] || [ $1 != "--shared-lisp" ]; then
1300-       echo "Usage: $0 [--shared-lisp 'install_root']"
1301-       exit
1302-    fi
1303-    PREFIX=${2}
1304-else
1305-    PREFIX=""
1306-fi
1307+PREFIX=""
1308+while [ $# -gt 0 ]; do
1309+    case "$1" in
1310+       --shared-lisp=*)
1311+            PREFIX=`echo "$1" | sed s/--shared-lisp=//`
1312+            shift
1313+            ;;
1314+       --enable-local-lisp-path=*)
1315+            locallisppath=`echo "$1" | sed s/--enable-local-lisp-path=//`
1316+            shift
1317+            ;;
1318+       *)
1319+            echo "Usage: $0 [--shared-lisp='install_root' --enable-local-lisp-path='some path(s)']"
1320+            exit
1321+    esac
1322+done
1323 
1324 DISTDIR=`pwd`/..
1325 
1326@@ -116,6 +123,15 @@
1327     fi
1328 fi
1329 
1330+# Pete's addition for local lisp load-path
1331+    echo "Local lisp path is being enabled"
1332+    (cd src; mv epaths.h epaths.h-orig; \
1333+       printf "s,\(#define PATH_LOADSEARCH \"\),\\\1%s:,\n" "${locallisppath}" > locallisppath.sed; \
1334+       cat epaths.h-orig | sed -f locallisppath.sed > epaths.h; rm locallisppath.sed)
1335+
1336+# Clean up to avoid DOC-xxx and emacs-xxx out-of-controlness
1337+rm -f ../etc/DOC-* ../src/emacs-*
1338+
1339 # Go (installs binaries to ./build/Emacs.app, lisp to there or PREFIX)
1340 echo "make install"
1341 $MAKE
1342@@ -175,3 +191,7 @@
1343 #    cp ispell-3.3.01/bin/ispell* ${BINDIR}/libexec
1344 #    cp -R ispell-3.3.01/lib ${BINDIR}/libexec
1345 #fi
1346+
1347+echo ""
1348+echo "Build successful."
1349+echo ""
1350--- emacs-23.0.0_NS-9.0rc2a/nextstep/ChangeLog  2007-09-20 14:27:27.000000000 +0300
1351+++ nextstep/ChangeLog  2007-10-14 21:01:50.000000000 +0300
1352@@ -1,3 +1,60 @@
1353+2007-10-14  Adrian Robert <Adrian.B.Robert@gmail.com>
1354+       * nsmenu.m (ns_popup_menu): Set frame in call to mouse_position_hook.
1355+       * nsterm.m (ns_mouse_position): Check for null frame.
1356+
1357+2007-10-14  Adrian Robert <Adrian.B.Robert@gmail.com>
1358+       * nsmenu.m (EmacsToolbar-changed): Report changed on enablement state
1359+       change.
1360+
1361+2007-10-13  Adrian Robert <Adrian.B.Robert@gmail.com>
1362+       * image.c (xpm_load_image): Work around an apparent bug in NSImage
1363+       alpha management (avoids blocky appearance of startup image on black bg).
1364+       * nsimage.m (-setXBMColor:): Only set color for non-alpha-masked pixels.
1365+       Shouldn't have to do this, but... (Fixes "fat" rendering w/colored or
1366+       dark fringe backgrounds).
1367+       * nsterm.m (ns_dumpglyphs_image): Fix minor glitch w/background drawing.
1368+       (-setMiniwindowImage:): Add argument to set to optionally set nil (for
1369+       miniaturized version of window).
1370+       * nsfns.m (ns_implicitly_set_icon_type): Use it.
1371+
1372+2007-10-12  Adrian Robert <Adrian.B.Robert@gmail.com>
1373+       * lisp/ns-menu-bar.el: Cut down to minimal code, eliminating most
1374+       remaining redundancy with menu-bar.el, and move the remnant to
1375+       ns-win.el.
1376+
1377+2007-10-10  Adrian Robert <Adrian.B.Robert@gmail.com>
1378+       * Patch 20071010_rc2a released.
1379+
1380+2007-10-10  Peter Dyballa <dyballa@gmx.de>
1381+       * nextstep/compile: Add --local-lisp-path=<dir> option to prepend a
1382+       path to epaths.h to search for lisp before other directories.
1383+
1384+2007-10-10  Seiji Zenitani <zenitani@mac.com>
1385+       * nsterm.m (ns_init_paths): Switch order from lisp, leim, site-lisp to
1386+       site-lisp, lisp, leim.
1387+       * ns-win.el (ns-utf8-nfd-post-read-conversion etc.): Define coding
1388+       system utf-nfd to handle decomposed (normal form D) UTF-8 in MacOSX
1389+       filenames.  Based on initial contribution by Carsten Bormann.  (This
1390+       change went into rc2 but was not noted in the ChanngeLog there.)
1391+
1392+2007-09-26  Adrian Robert <Adrian.B.Robert@gmail.com>
1393+       * nsterm.m (ns_pending_files, -openFile:, ns_read_socket): Handle
1394+       openFile requests by storing to a queue and acting on later when
1395+       events can be processed.
1396+
1397+2007-09-25  Adrian Robert <Adrian.B.Robert@gmail.com>
1398+       * nsterm.m (ns_draw_window_cursor, EmacsView-windowDidResignKey):
1399+       Be more clever about drawing background (to avoid flicker with
1400+       blinking cursor).  Also, rename cursor type line -> bar, bar ->
1401+       underscore.
1402+       * frame.c (do_switch_frame): Explicitly call Fraise_frame() on
1403+       for_deletion case (to fully focus the frame).
1404+       * nsterm.m (x_make_frame_visible): Make into a no-op (unneeded).
1405+
1406+2007-09-21  Adrian Robert <Adrian.B.Robert@gmail.com>
1407+       * nsterm.m (ns_draw_fringe_bitmap): Expand bitmap images cache as needed.
1408+       * image.c: Be more careful about retain/release on image backgrounds.
1409+
1410 2007-09-20  Adrian Robert <Adrian.B.Robert@gmail.com>
1411        * Version 9.0-rc2a released.
1412