Show More
@@ -0,0 +1,123 b'' | |||
|
1 | # encoding: utf-8 | |
|
2 | ||
|
3 | """The IPython Core Notification Center. | |
|
4 | ||
|
5 | See docs/source/development/notification_blueprint.txt for an overview of the | |
|
6 | notification module. | |
|
7 | """ | |
|
8 | ||
|
9 | __docformat__ = "restructuredtext en" | |
|
10 | ||
|
11 | #----------------------------------------------------------------------------- | |
|
12 | # Copyright (C) 2008 The IPython Development Team | |
|
13 | # | |
|
14 | # Distributed under the terms of the BSD License. The full license is in | |
|
15 | # the file COPYING, distributed as part of this software. | |
|
16 | #----------------------------------------------------------------------------- | |
|
17 | ||
|
18 | ||
|
19 | class NotificationCenter(object): | |
|
20 | """Synchronous notification center | |
|
21 | ||
|
22 | Example | |
|
23 | ------- | |
|
24 | >>> import IPython.kernel.core.notification as notification | |
|
25 | >>> def callback(theType, theSender, args={}): | |
|
26 | ... print theType,theSender,args | |
|
27 | ... | |
|
28 | >>> notification.sharedCenter.add_observer(callback, 'NOTIFICATION_TYPE', None) | |
|
29 | >>> notification.sharedCenter.post_notification('NOTIFICATION_TYPE', object()) # doctest:+ELLIPSIS | |
|
30 | NOTIFICATION_TYPE ... | |
|
31 | ||
|
32 | """ | |
|
33 | def __init__(self): | |
|
34 | super(NotificationCenter, self).__init__() | |
|
35 | self._init_observers() | |
|
36 | ||
|
37 | ||
|
38 | def _init_observers(self): | |
|
39 | """Initialize observer storage""" | |
|
40 | ||
|
41 | self.registered_types = set() #set of types that are observed | |
|
42 | self.registered_senders = set() #set of senders that are observed | |
|
43 | self.observers = {} #map (type,sender) => callback (callable) | |
|
44 | ||
|
45 | ||
|
46 | def post_notification(self, theType, sender, **kwargs): | |
|
47 | """Post notification (type,sender,**kwargs) to all registered | |
|
48 | observers. | |
|
49 | ||
|
50 | Implementation | |
|
51 | -------------- | |
|
52 | * If no registered observers, performance is O(1). | |
|
53 | * Notificaiton order is undefined. | |
|
54 | * Notifications are posted synchronously. | |
|
55 | """ | |
|
56 | ||
|
57 | if(theType==None or sender==None): | |
|
58 | raise Exception("NotificationCenter.post_notification requires \ | |
|
59 | type and sender.") | |
|
60 | ||
|
61 | # If there are no registered observers for the type/sender pair | |
|
62 | if((theType not in self.registered_types and | |
|
63 | None not in self.registered_types) or | |
|
64 | (sender not in self.registered_senders and | |
|
65 | None not in self.registered_senders)): | |
|
66 | return | |
|
67 | ||
|
68 | for o in self._observers_for_notification(theType, sender): | |
|
69 | o(theType, sender, args=kwargs) | |
|
70 | ||
|
71 | ||
|
72 | def _observers_for_notification(self, theType, sender): | |
|
73 | """Find all registered observers that should recieve notification""" | |
|
74 | ||
|
75 | keys = ( | |
|
76 | (theType,sender), | |
|
77 | (theType, None), | |
|
78 | (None, sender), | |
|
79 | (None,None) | |
|
80 | ) | |
|
81 | ||
|
82 | ||
|
83 | obs = set() | |
|
84 | for k in keys: | |
|
85 | obs.update(self.observers.get(k, set())) | |
|
86 | ||
|
87 | return obs | |
|
88 | ||
|
89 | ||
|
90 | def add_observer(self, callback, theType, sender): | |
|
91 | """Add an observer callback to this notification center. | |
|
92 | ||
|
93 | The given callback will be called upon posting of notifications of | |
|
94 | the given type/sender and will receive any additional kwargs passed | |
|
95 | to post_notification. | |
|
96 | ||
|
97 | Parameters | |
|
98 | ---------- | |
|
99 | observerCallback : callable | |
|
100 | Callable. Must take at least two arguments:: | |
|
101 | observerCallback(type, sender, args={}) | |
|
102 | ||
|
103 | theType : hashable | |
|
104 | The notification type. If None, all notifications from sender | |
|
105 | will be posted. | |
|
106 | ||
|
107 | sender : hashable | |
|
108 | The notification sender. If None, all notifications of theType | |
|
109 | will be posted. | |
|
110 | """ | |
|
111 | assert(callback != None) | |
|
112 | self.registered_types.add(theType) | |
|
113 | self.registered_senders.add(sender) | |
|
114 | self.observers.setdefault((theType,sender), set()).add(callback) | |
|
115 | ||
|
116 | def remove_all_observers(self): | |
|
117 | """Removes all observers from this notification center""" | |
|
118 | ||
|
119 | self._init_observers() | |
|
120 | ||
|
121 | ||
|
122 | ||
|
123 | sharedCenter = NotificationCenter() No newline at end of file |
@@ -0,0 +1,171 b'' | |||
|
1 | # encoding: utf-8 | |
|
2 | ||
|
3 | """This file contains unittests for the notification.py module.""" | |
|
4 | ||
|
5 | __docformat__ = "restructuredtext en" | |
|
6 | ||
|
7 | #----------------------------------------------------------------------------- | |
|
8 | # Copyright (C) 2008 The IPython Development Team | |
|
9 | # | |
|
10 | # Distributed under the terms of the BSD License. The full license is in | |
|
11 | # the file COPYING, distributed as part of this software. | |
|
12 | #----------------------------------------------------------------------------- | |
|
13 | ||
|
14 | #----------------------------------------------------------------------------- | |
|
15 | # Imports | |
|
16 | #----------------------------------------------------------------------------- | |
|
17 | ||
|
18 | import unittest | |
|
19 | import IPython.kernel.core.notification as notification | |
|
20 | from nose.tools import timed | |
|
21 | ||
|
22 | # | |
|
23 | # Supporting test classes | |
|
24 | # | |
|
25 | ||
|
26 | class Observer(object): | |
|
27 | """docstring for Observer""" | |
|
28 | def __init__(self, expectedType, expectedSender, | |
|
29 | center=notification.sharedCenter, **kwargs): | |
|
30 | super(Observer, self).__init__() | |
|
31 | self.expectedType = expectedType | |
|
32 | self.expectedSender = expectedSender | |
|
33 | self.expectedKwArgs = kwargs | |
|
34 | self.recieved = False | |
|
35 | center.add_observer(self.callback, | |
|
36 | self.expectedType, | |
|
37 | self.expectedSender) | |
|
38 | ||
|
39 | ||
|
40 | def callback(self, theType, sender, args={}): | |
|
41 | """callback""" | |
|
42 | ||
|
43 | assert(theType == self.expectedType or | |
|
44 | self.expectedType == None) | |
|
45 | assert(sender == self.expectedSender or | |
|
46 | self.expectedSender == None) | |
|
47 | assert(args == self.expectedKwArgs) | |
|
48 | self.recieved = True | |
|
49 | ||
|
50 | ||
|
51 | def verify(self): | |
|
52 | """verify""" | |
|
53 | ||
|
54 | assert(self.recieved) | |
|
55 | ||
|
56 | def reset(self): | |
|
57 | """reset""" | |
|
58 | ||
|
59 | self.recieved = False | |
|
60 | ||
|
61 | ||
|
62 | ||
|
63 | class Notifier(object): | |
|
64 | """docstring for Notifier""" | |
|
65 | def __init__(self, theType, **kwargs): | |
|
66 | super(Notifier, self).__init__() | |
|
67 | self.theType = theType | |
|
68 | self.kwargs = kwargs | |
|
69 | ||
|
70 | def post(self, center=notification.sharedCenter): | |
|
71 | """fire""" | |
|
72 | ||
|
73 | center.post_notification(self.theType, self, | |
|
74 | **self.kwargs) | |
|
75 | ||
|
76 | ||
|
77 | # | |
|
78 | # Test Cases | |
|
79 | # | |
|
80 | ||
|
81 | class NotificationTests(unittest.TestCase): | |
|
82 | """docstring for NotificationTests""" | |
|
83 | ||
|
84 | def tearDown(self): | |
|
85 | notification.sharedCenter.remove_all_observers() | |
|
86 | ||
|
87 | def test_notification_delivered(self): | |
|
88 | """Test that notifications are delivered""" | |
|
89 | expectedType = 'EXPECTED_TYPE' | |
|
90 | sender = Notifier(expectedType) | |
|
91 | observer = Observer(expectedType, sender) | |
|
92 | ||
|
93 | sender.post() | |
|
94 | ||
|
95 | observer.verify() | |
|
96 | ||
|
97 | ||
|
98 | def test_type_specificity(self): | |
|
99 | """Test that observers are registered by type""" | |
|
100 | ||
|
101 | expectedType = 1 | |
|
102 | unexpectedType = "UNEXPECTED_TYPE" | |
|
103 | sender = Notifier(expectedType) | |
|
104 | unexpectedSender = Notifier(unexpectedType) | |
|
105 | observer = Observer(expectedType, sender) | |
|
106 | ||
|
107 | sender.post() | |
|
108 | unexpectedSender.post() | |
|
109 | ||
|
110 | observer.verify() | |
|
111 | ||
|
112 | ||
|
113 | def test_sender_specificity(self): | |
|
114 | """Test that observers are registered by sender""" | |
|
115 | ||
|
116 | expectedType = "EXPECTED_TYPE" | |
|
117 | sender1 = Notifier(expectedType) | |
|
118 | sender2 = Notifier(expectedType) | |
|
119 | observer = Observer(expectedType, sender1) | |
|
120 | ||
|
121 | sender1.post() | |
|
122 | sender2.post() | |
|
123 | ||
|
124 | observer.verify() | |
|
125 | ||
|
126 | ||
|
127 | def test_remove_all_observers(self): | |
|
128 | """White-box test for remove_all_observers""" | |
|
129 | ||
|
130 | for i in xrange(10): | |
|
131 | Observer('TYPE', None, center=notification.sharedCenter) | |
|
132 | ||
|
133 | self.assert_(len(notification.sharedCenter.observers[('TYPE',None)]) >= 10, | |
|
134 | "observers registered") | |
|
135 | ||
|
136 | notification.sharedCenter.remove_all_observers() | |
|
137 | ||
|
138 | self.assert_(len(notification.sharedCenter.observers) == 0, "observers removed") | |
|
139 | ||
|
140 | ||
|
141 | def test_any_sender(self): | |
|
142 | """test_any_sender""" | |
|
143 | ||
|
144 | expectedType = "EXPECTED_TYPE" | |
|
145 | sender1 = Notifier(expectedType) | |
|
146 | sender2 = Notifier(expectedType) | |
|
147 | observer = Observer(expectedType, None) | |
|
148 | ||
|
149 | ||
|
150 | sender1.post() | |
|
151 | observer.verify() | |
|
152 | ||
|
153 | observer.reset() | |
|
154 | sender2.post() | |
|
155 | observer.verify() | |
|
156 | ||
|
157 | ||
|
158 | @timed(.01) | |
|
159 | def test_post_performance(self): | |
|
160 | """Test that post_notification, even with many registered irrelevant | |
|
161 | observers is fast""" | |
|
162 | ||
|
163 | for i in xrange(10): | |
|
164 | Observer("UNRELATED_TYPE", None) | |
|
165 | ||
|
166 | o = Observer('EXPECTED_TYPE', None) | |
|
167 | ||
|
168 | notification.sharedCenter.post_notification('EXPECTED_TYPE', self) | |
|
169 | ||
|
170 | o.verify() | |
|
171 |
@@ -0,0 +1,47 b'' | |||
|
1 | .. Notification: | |
|
2 | ||
|
3 | ========================================== | |
|
4 | IPython.kernel.core.notification blueprint | |
|
5 | ========================================== | |
|
6 | ||
|
7 | Overview | |
|
8 | ======== | |
|
9 | The :mod:`IPython.kernel.core.notification` module will provide a simple implementation of a notification center and support for the observer pattern within the :mod:`IPython.kernel.core`. The main intended use case is to provide notification of Interpreter events to an observing frontend during the execution of a single block of code. | |
|
10 | ||
|
11 | Functional Requirements | |
|
12 | ======================= | |
|
13 | The notification center must: | |
|
14 | * Provide synchronous notification of events to all registered observers. | |
|
15 | * Provide typed or labeled notification types | |
|
16 | * Allow observers to register callbacks for individual or all notification types | |
|
17 | * Allow observers to register callbacks for events from individual or all notifying objects | |
|
18 | * Notification to the observer consists of the notification type, notifying object and user-supplied extra information [implementation: as keyword parameters to the registered callback] | |
|
19 | * Perform as O(1) in the case of no registered observers. | |
|
20 | * Permit out-of-process or cross-network extension. | |
|
21 | ||
|
22 | What's not included | |
|
23 | ============================================================== | |
|
24 | As written, the :mod:`IPython.kernel.core.notificaiton` module does not: | |
|
25 | * Provide out-of-process or network notifications [these should be handled by a separate, Twisted aware module in :mod:`IPython.kernel`]. | |
|
26 | * Provide zope.interface-style interfaces for the notification system [these should also be provided by the :mod:`IPython.kernel` module] | |
|
27 | ||
|
28 | Use Cases | |
|
29 | ========= | |
|
30 | The following use cases describe the main intended uses of the notificaiton module and illustrate the main success scenario for each use case: | |
|
31 | ||
|
32 | 1. Dwight Schroot is writing a frontend for the IPython project. His frontend is stuck in the stone age and must communicate synchronously with an IPython.kernel.core.Interpreter instance. Because code is executed in blocks by the Interpreter, Dwight's UI freezes every time he executes a long block of code. To keep track of the progress of his long running block, Dwight adds the following code to his frontend's set-up code:: | |
|
33 | from IPython.kernel.core.notification import NotificationCenter | |
|
34 | center = NotificationCenter.sharedNotificationCenter | |
|
35 | center.registerObserver(self, type=IPython.kernel.core.Interpreter.STDOUT_NOTIFICATION_TYPE, notifying_object=self.interpreter, callback=self.stdout_notification) | |
|
36 | ||
|
37 | and elsewhere in his front end:: | |
|
38 | def stdout_notification(self, type, notifying_object, out_string=None): | |
|
39 | self.writeStdOut(out_string) | |
|
40 | ||
|
41 | If everything works, the Interpreter will (according to its published API) fire a notification via the :data:`IPython.kernel.core.notification.sharedCenter` of type :const:`STD_OUT_NOTIFICATION_TYPE` before writing anything to stdout [it's up to the Intereter implementation to figure out when to do this]. The notificaiton center will then call the registered callbacks for that event type (in this case, Dwight's frontend's stdout_notification method). Again, according to its API, the Interpreter provides an additional keyword argument when firing the notificaiton of out_string, a copy of the string it will write to stdout. | |
|
42 | ||
|
43 | Like magic, Dwight's frontend is able to provide output, even during long-running calculations. Now if Jim could just convince Dwight to use Twisted... | |
|
44 | ||
|
45 | 2. Boss Hog is writing a frontend for the IPython project. Because Boss Hog is stuck in the stone age, his frontend will be written in a new Fortran-like dialect of python and will run only from the command line. Because he doesn't need any fancy notification system and is used to worrying about every cycle on his rat-wheel powered mini, Boss Hog is adamant that the new notification system not produce any performance penalty. As they say in Hazard county, there's no such thing as a free lunch. If he wanted zero overhead, he should have kept using IPython 0.8. Instead, those tricky Duke boys slide in a suped-up bridge-out jumpin' awkwardly confederate-lovin' notification module that imparts only a constant (and small) performance penalty when the Interpreter (or any other object) fires an event for which there are no registered observers. Of course, the same notificaiton-enabled Interpreter can then be used in frontends that require notifications, thus saving the IPython project from a nasty civil war. | |
|
46 | ||
|
47 | 3. Barry is wrting a frontend for the IPython project. Because Barry's front end is the *new hotness*, it uses an asynchronous event model to communicate with a Twisted :mod:`~IPython.kernel.engineservice` that communicates with the IPython :class:`~IPython.kernel.core.interpreter.Interpreter`. Using the :mod:`IPython.kernel.notification` module, an asynchronous wrapper on the :mod:`IPython.kernel.core.notification` module, Barry's frontend can register for notifications from the interpreter that are delivered asynchronously. Even if Barry's frontend is running on a separate process or even host from the Interpreter, the notifications are delivered, as if by dark and twisted magic. Just like Dwight's frontend, Barry's frontend can now recieve notifications of e.g. writing to stdout/stderr, opening/closing an external file, an exception in the executing code, etc. No newline at end of file |
@@ -1,505 +1,560 b'' | |||
|
1 | 1 | # encoding: utf-8 |
|
2 | 2 | # -*- test-case-name: IPython.frontend.cocoa.tests.test_cocoa_frontend -*- |
|
3 | 3 | |
|
4 | 4 | """PyObjC classes to provide a Cocoa frontend to the |
|
5 | 5 | IPython.kernel.engineservice.IEngineBase. |
|
6 | 6 | |
|
7 | 7 | To add an IPython interpreter to a cocoa app, instantiate an |
|
8 | 8 | IPythonCocoaController in a XIB and connect its textView outlet to an |
|
9 | 9 | NSTextView instance in your UI. That's it. |
|
10 | 10 | |
|
11 | 11 | Author: Barry Wark |
|
12 | 12 | """ |
|
13 | 13 | |
|
14 | 14 | __docformat__ = "restructuredtext en" |
|
15 | 15 | |
|
16 | 16 | #----------------------------------------------------------------------------- |
|
17 | 17 | # Copyright (C) 2008 The IPython Development Team |
|
18 | 18 | # |
|
19 | 19 | # Distributed under the terms of the BSD License. The full license is in |
|
20 | 20 | # the file COPYING, distributed as part of this software. |
|
21 | 21 | #----------------------------------------------------------------------------- |
|
22 | 22 | |
|
23 | 23 | #----------------------------------------------------------------------------- |
|
24 | 24 | # Imports |
|
25 | 25 | #----------------------------------------------------------------------------- |
|
26 | 26 | |
|
27 | 27 | import sys |
|
28 | 28 | import objc |
|
29 | 29 | import uuid |
|
30 | 30 | |
|
31 | 31 | from Foundation import NSObject, NSMutableArray, NSMutableDictionary,\ |
|
32 | 32 | NSLog, NSNotificationCenter, NSMakeRange,\ |
|
33 | 33 | NSLocalizedString, NSIntersectionRange,\ |
|
34 | 34 | NSString, NSAutoreleasePool |
|
35 | 35 | |
|
36 | 36 | from AppKit import NSApplicationWillTerminateNotification, NSBeep,\ |
|
37 | 37 | NSTextView, NSRulerView, NSVerticalRuler |
|
38 | 38 | |
|
39 | 39 | from pprint import saferepr |
|
40 | 40 | |
|
41 | 41 | import IPython |
|
42 | 42 | from IPython.kernel.engineservice import ThreadedEngineService |
|
43 | 43 | from IPython.frontend.frontendbase import AsyncFrontEndBase |
|
44 | 44 | |
|
45 | 45 | from twisted.internet.threads import blockingCallFromThread |
|
46 | 46 | from twisted.python.failure import Failure |
|
47 | 47 | |
|
48 |
#----------------------------------------------------------------------------- |
|
|
48 | #----------------------------------------------------------------------------- | |
|
49 | 49 | # Classes to implement the Cocoa frontend |
|
50 |
#----------------------------------------------------------------------------- |
|
|
50 | #----------------------------------------------------------------------------- | |
|
51 | 51 | |
|
52 | 52 | # TODO: |
|
53 | 53 | # 1. use MultiEngineClient and out-of-process engine rather than |
|
54 | 54 | # ThreadedEngineService? |
|
55 | 55 | # 2. integrate Xgrid launching of engines |
|
56 | 56 | |
|
57 | 57 | class AutoreleasePoolWrappedThreadedEngineService(ThreadedEngineService): |
|
58 | 58 | """Wrap all blocks in an NSAutoreleasePool""" |
|
59 | 59 | |
|
60 | 60 | def wrapped_execute(self, msg, lines): |
|
61 | 61 | """wrapped_execute""" |
|
62 | 62 | try: |
|
63 | 63 | p = NSAutoreleasePool.alloc().init() |
|
64 | result = self.shell.execute(lines) | |
|
65 | except Exception,e: | |
|
66 | # This gives the following: | |
|
67 | # et=exception class | |
|
68 | # ev=exception class instance | |
|
69 | # tb=traceback object | |
|
70 | et,ev,tb = sys.exc_info() | |
|
71 | # This call adds attributes to the exception value | |
|
72 | et,ev,tb = self.shell.formatTraceback(et,ev,tb,msg) | |
|
73 | # Add another attribute | |
|
74 | ||
|
75 | # Create a new exception with the new attributes | |
|
76 | e = et(ev._ipython_traceback_text) | |
|
77 | e._ipython_engine_info = msg | |
|
78 | ||
|
79 | # Re-raise | |
|
80 | raise e | |
|
64 | result = super(AutoreleasePoolWrappedThreadedEngineService, | |
|
65 | self).wrapped_execute(msg, lines) | |
|
81 | 66 | finally: |
|
82 | 67 | p.drain() |
|
83 | 68 | |
|
84 | 69 | return result |
|
85 | 70 | |
|
86 | def execute(self, lines): | |
|
87 | # Only import this if we are going to use this class | |
|
88 | from twisted.internet import threads | |
|
71 | ||
|
72 | ||
|
73 | class Cell(NSObject): | |
|
74 | """ | |
|
75 | Representation of the prompts, input and output of a cell in the | |
|
76 | frontend | |
|
77 | """ | |
|
78 | ||
|
79 | blockNumber = objc.ivar().unsigned_long() | |
|
80 | blockID = objc.ivar() | |
|
81 | inputBlock = objc.ivar() | |
|
82 | output = objc.ivar() | |
|
83 | ||
|
84 | ||
|
85 | ||
|
86 | class CellBlock(object): | |
|
87 | """ | |
|
88 | Storage for information about text ranges relating to a single cell | |
|
89 | """ | |
|
90 | ||
|
89 | 91 | |
|
90 | msg = {'engineid':self.id, | |
|
91 | 'method':'execute', | |
|
92 | 'args':[lines]} | |
|
92 | def __init__(self, inputPromptRange, inputRange=None, outputPromptRange=None, | |
|
93 | outputRange=None): | |
|
94 | super(CellBlock, self).__init__() | |
|
95 | self.inputPromptRange = inputPromptRange | |
|
96 | self.inputRange = inputRange | |
|
97 | self.outputPromptRange = outputPromptRange | |
|
98 | self.outputRange = outputRange | |
|
99 | ||
|
100 | def update_ranges_for_insertion(self, text, textRange): | |
|
101 | """Update ranges for text insertion at textRange""" | |
|
102 | ||
|
103 | for r in [self.inputPromptRange,self.inputRange, | |
|
104 | self.outputPromptRange, self.outputRange]: | |
|
105 | if(r == None): | |
|
106 | continue | |
|
107 | intersection = NSIntersectionRange(r,textRange) | |
|
108 | if(intersection.length == 0): #ranges don't intersect | |
|
109 | if r.location >= textRange.location: | |
|
110 | r.location += len(text) | |
|
111 | else: #ranges intersect | |
|
112 | if(r.location > textRange.location): | |
|
113 | offset = len(text) - intersection.length | |
|
114 | r.length -= offset | |
|
115 | r.location += offset | |
|
116 | elif(r.location == textRange.location): | |
|
117 | r.length += len(text) - intersection.length | |
|
118 | else: | |
|
119 | r.length -= intersection.length | |
|
120 | ||
|
121 | ||
|
122 | def update_ranges_for_deletion(self, textRange): | |
|
123 | """Update ranges for text deletion at textRange""" | |
|
93 | 124 | |
|
94 | d = threads.deferToThread(self.wrapped_execute, msg, lines) | |
|
95 | d.addCallback(self.addIDToResult) | |
|
96 | return d | |
|
125 | for r in [self.inputPromptRange,self.inputRange, | |
|
126 | self.outputPromptRange, self.outputRange]: | |
|
127 | if(r==None): | |
|
128 | continue | |
|
129 | intersection = NSIntersectionRange(r, textRange) | |
|
130 | if(intersection.length == 0): #ranges don't intersect | |
|
131 | if r.location >= textRange.location: | |
|
132 | r.location -= textRange.length | |
|
133 | else: #ranges intersect | |
|
134 | if(r.location > textRange.location): | |
|
135 | offset = intersection.length | |
|
136 | r.length -= offset | |
|
137 | r.location += offset | |
|
138 | elif(r.location == textRange.location): | |
|
139 | r.length += intersection.length | |
|
140 | else: | |
|
141 | r.length -= intersection.length | |
|
142 | ||
|
143 | def __repr__(self): | |
|
144 | return 'CellBlock('+ str((self.inputPromptRange, | |
|
145 | self.inputRange, | |
|
146 | self.outputPromptRange, | |
|
147 | self.outputRange)) + ')' | |
|
148 | ||
|
97 | 149 | |
|
98 | 150 | |
|
151 | ||
|
99 | 152 | class IPythonCocoaController(NSObject, AsyncFrontEndBase): |
|
100 | 153 | userNS = objc.ivar() #mirror of engine.user_ns (key=>str(value)) |
|
101 | 154 | waitingForEngine = objc.ivar().bool() |
|
102 | 155 | textView = objc.IBOutlet() |
|
103 | 156 | |
|
104 | 157 | def init(self): |
|
105 | 158 | self = super(IPythonCocoaController, self).init() |
|
106 | 159 | AsyncFrontEndBase.__init__(self, |
|
107 | 160 | engine=AutoreleasePoolWrappedThreadedEngineService()) |
|
108 | 161 | if(self != None): |
|
109 | 162 | self._common_init() |
|
110 | 163 | |
|
111 | 164 | return self |
|
112 | 165 | |
|
113 | 166 | def _common_init(self): |
|
114 | 167 | """_common_init""" |
|
115 | 168 | |
|
116 | 169 | self.userNS = NSMutableDictionary.dictionary() |
|
117 | 170 | self.waitingForEngine = False |
|
118 | 171 | |
|
119 | 172 | self.lines = {} |
|
120 | 173 | self.tabSpaces = 4 |
|
121 | 174 | self.tabUsesSpaces = True |
|
122 | 175 | self.currentBlockID = self.next_block_ID() |
|
123 |
self.blockRanges = {} # blockID=> |
|
|
176 | self.blockRanges = {} # blockID=>CellBlock | |
|
124 | 177 | |
|
125 | 178 | |
|
126 | 179 | def awakeFromNib(self): |
|
127 | 180 | """awakeFromNib""" |
|
128 | 181 | |
|
129 | 182 | self._common_init() |
|
130 | 183 | |
|
131 | 184 | # Start the IPython engine |
|
132 | 185 | self.engine.startService() |
|
133 | 186 | NSLog('IPython engine started') |
|
134 | 187 | |
|
135 | 188 | # Register for app termination |
|
136 | 189 | nc = NSNotificationCenter.defaultCenter() |
|
137 | 190 | nc.addObserver_selector_name_object_( |
|
138 | 191 | self, |
|
139 | 192 | 'appWillTerminate:', |
|
140 | 193 | NSApplicationWillTerminateNotification, |
|
141 | 194 | None) |
|
142 | 195 | |
|
143 | 196 | self.textView.setDelegate_(self) |
|
144 | 197 | self.textView.enclosingScrollView().setHasVerticalRuler_(True) |
|
145 | 198 | r = NSRulerView.alloc().initWithScrollView_orientation_( |
|
146 | 199 | self.textView.enclosingScrollView(), |
|
147 | 200 | NSVerticalRuler) |
|
148 | 201 | self.verticalRulerView = r |
|
149 | 202 | self.verticalRulerView.setClientView_(self.textView) |
|
150 | 203 | self._start_cli_banner() |
|
204 | self.start_new_block() | |
|
151 | 205 | |
|
152 | 206 | |
|
153 | 207 | def appWillTerminate_(self, notification): |
|
154 | 208 | """appWillTerminate""" |
|
155 | 209 | |
|
156 | 210 | self.engine.stopService() |
|
157 | 211 | |
|
158 | 212 | |
|
159 | 213 | def complete(self, token): |
|
160 | 214 | """Complete token in engine's user_ns |
|
161 | 215 | |
|
162 | 216 | Parameters |
|
163 | 217 | ---------- |
|
164 | 218 | token : string |
|
165 | 219 | |
|
166 | 220 | Result |
|
167 | 221 | ------ |
|
168 | 222 | Deferred result of |
|
169 | 223 | IPython.kernel.engineservice.IEngineBase.complete |
|
170 | 224 | """ |
|
171 | 225 | |
|
172 | 226 | return self.engine.complete(token) |
|
173 | 227 | |
|
174 | 228 | |
|
175 | 229 | def execute(self, block, blockID=None): |
|
176 | 230 | self.waitingForEngine = True |
|
177 | 231 | self.willChangeValueForKey_('commandHistory') |
|
178 | 232 | d = super(IPythonCocoaController, self).execute(block, |
|
179 | 233 | blockID) |
|
180 | 234 | d.addBoth(self._engine_done) |
|
181 | 235 | d.addCallback(self._update_user_ns) |
|
182 | 236 | |
|
183 | 237 | return d |
|
184 | 238 | |
|
185 | 239 | |
|
186 | 240 | def push_(self, namespace): |
|
187 | 241 | """Push dictionary of key=>values to python namespace""" |
|
188 | 242 | |
|
189 | 243 | self.waitingForEngine = True |
|
190 | 244 | self.willChangeValueForKey_('commandHistory') |
|
191 | 245 | d = self.engine.push(namespace) |
|
192 | 246 | d.addBoth(self._engine_done) |
|
193 | 247 | d.addCallback(self._update_user_ns) |
|
194 | 248 | |
|
195 | 249 | |
|
196 | 250 | def pull_(self, keys): |
|
197 | 251 | """Pull keys from python namespace""" |
|
198 | 252 | |
|
199 | 253 | self.waitingForEngine = True |
|
200 | 254 | result = blockingCallFromThread(self.engine.pull, keys) |
|
201 | 255 | self.waitingForEngine = False |
|
202 | 256 | |
|
203 | 257 | @objc.signature('v@:@I') |
|
204 | 258 | def executeFileAtPath_encoding_(self, path, encoding): |
|
205 | 259 | """Execute file at path in an empty namespace. Update the engine |
|
206 | 260 | user_ns with the resulting locals.""" |
|
207 | 261 | |
|
208 | 262 | lines,err = NSString.stringWithContentsOfFile_encoding_error_( |
|
209 | 263 | path, |
|
210 | 264 | encoding, |
|
211 | 265 | None) |
|
212 | 266 | self.engine.execute(lines) |
|
213 | 267 | |
|
214 | 268 | |
|
215 | 269 | def _engine_done(self, x): |
|
216 | 270 | self.waitingForEngine = False |
|
217 | 271 | self.didChangeValueForKey_('commandHistory') |
|
218 | 272 | return x |
|
219 | 273 | |
|
220 | 274 | def _update_user_ns(self, result): |
|
221 | 275 | """Update self.userNS from self.engine's namespace""" |
|
222 | 276 | d = self.engine.keys() |
|
223 | 277 | d.addCallback(self._get_engine_namespace_values_for_keys) |
|
224 | 278 | |
|
225 | 279 | return result |
|
226 | 280 | |
|
227 | 281 | |
|
228 | 282 | def _get_engine_namespace_values_for_keys(self, keys): |
|
229 | 283 | d = self.engine.pull(keys) |
|
230 | 284 | d.addCallback(self._store_engine_namespace_values, keys=keys) |
|
231 | 285 | |
|
232 | 286 | |
|
233 | 287 | def _store_engine_namespace_values(self, values, keys=[]): |
|
234 | 288 | assert(len(values) == len(keys)) |
|
235 | 289 | self.willChangeValueForKey_('userNS') |
|
236 | 290 | for (k,v) in zip(keys,values): |
|
237 | 291 | self.userNS[k] = saferepr(v) |
|
238 | 292 | self.didChangeValueForKey_('userNS') |
|
239 | 293 | |
|
240 | 294 | |
|
241 | 295 | def update_cell_prompt(self, result, blockID=None): |
|
296 | print self.blockRanges | |
|
242 | 297 | if(isinstance(result, Failure)): |
|
243 |
|
|
|
244 | textRange=NSMakeRange(self.blockRanges[blockID].location,0), | |
|
245 | scrollToVisible=False | |
|
246 | ) | |
|
298 | prompt = self.input_prompt() | |
|
299 | ||
|
247 | 300 | else: |
|
248 |
|
|
|
249 | textRange=NSMakeRange(self.blockRanges[blockID].location,0), | |
|
301 | prompt = self.input_prompt(number=result['number']) | |
|
302 | ||
|
303 | r = self.blockRanges[blockID].inputPromptRange | |
|
304 | self.insert_text(prompt, | |
|
305 | textRange=r, | |
|
250 | 306 | scrollToVisible=False |
|
251 | 307 | ) |
|
252 | 308 | |
|
253 | 309 | return result |
|
254 | 310 | |
|
255 | 311 | |
|
256 | 312 | def render_result(self, result): |
|
257 | 313 | blockID = result['blockID'] |
|
258 | inputRange = self.blockRanges[blockID] | |
|
314 | inputRange = self.blockRanges[blockID].inputRange | |
|
259 | 315 | del self.blockRanges[blockID] |
|
260 | 316 | |
|
261 | 317 | #print inputRange,self.current_block_range() |
|
262 | 318 | self.insert_text('\n' + |
|
263 | 319 | self.output_prompt(number=result['number']) + |
|
264 | 320 | result.get('display',{}).get('pprint','') + |
|
265 | 321 | '\n\n', |
|
266 | 322 | textRange=NSMakeRange(inputRange.location+inputRange.length, |
|
267 | 323 | 0)) |
|
268 | 324 | return result |
|
269 | 325 | |
|
270 | 326 | |
|
271 | 327 | def render_error(self, failure): |
|
328 | print failure | |
|
329 | blockID = failure.blockID | |
|
330 | inputRange = self.blockRanges[blockID].inputRange | |
|
272 | 331 | self.insert_text('\n' + |
|
273 | 332 | self.output_prompt() + |
|
274 | 333 | '\n' + |
|
275 | 334 | failure.getErrorMessage() + |
|
276 |
'\n\n' |
|
|
335 | '\n\n', | |
|
336 | textRange=NSMakeRange(inputRange.location + | |
|
337 | inputRange.length, | |
|
338 | 0)) | |
|
277 | 339 | self.start_new_block() |
|
278 | 340 | return failure |
|
279 | 341 | |
|
280 | 342 | |
|
281 | 343 | def _start_cli_banner(self): |
|
282 | 344 | """Print banner""" |
|
283 | 345 | |
|
284 | 346 | banner = """IPython1 %s -- An enhanced Interactive Python.""" % \ |
|
285 | 347 | IPython.__version__ |
|
286 | 348 | |
|
287 | 349 | self.insert_text(banner + '\n\n') |
|
288 | 350 | |
|
289 | 351 | |
|
290 | 352 | def start_new_block(self): |
|
291 | 353 | """""" |
|
292 | 354 | |
|
293 | 355 | self.currentBlockID = self.next_block_ID() |
|
356 | self.blockRanges[self.currentBlockID] = self.new_cell_block() | |
|
357 | self.insert_text(self.input_prompt(), | |
|
358 | textRange=self.current_block_range().inputPromptRange) | |
|
294 | 359 | |
|
295 | 360 | |
|
296 | 361 | |
|
297 | 362 | def next_block_ID(self): |
|
298 | 363 | |
|
299 | 364 | return uuid.uuid4() |
|
300 | 365 | |
|
366 | def new_cell_block(self): | |
|
367 | """A new CellBlock at the end of self.textView.textStorage()""" | |
|
368 | ||
|
369 | return CellBlock(NSMakeRange(self.textView.textStorage().length(), | |
|
370 | 0), #len(self.input_prompt())), | |
|
371 | NSMakeRange(self.textView.textStorage().length(),# + len(self.input_prompt()), | |
|
372 | 0)) | |
|
373 | ||
|
374 | ||
|
301 | 375 | def current_block_range(self): |
|
302 | 376 | return self.blockRanges.get(self.currentBlockID, |
|
303 |
|
|
|
304 | 0)) | |
|
377 | self.new_cell_block()) | |
|
305 | 378 | |
|
306 | 379 | def current_block(self): |
|
307 | 380 | """The current block's text""" |
|
308 | 381 | |
|
309 | return self.text_for_range(self.current_block_range()) | |
|
382 | return self.text_for_range(self.current_block_range().inputRange) | |
|
310 | 383 | |
|
311 | 384 | def text_for_range(self, textRange): |
|
312 | 385 | """text_for_range""" |
|
313 | 386 | |
|
314 | 387 | ts = self.textView.textStorage() |
|
315 | 388 | return ts.string().substringWithRange_(textRange) |
|
316 | 389 | |
|
317 | 390 | def current_line(self): |
|
318 | block = self.text_for_range(self.current_block_range()) | |
|
391 | block = self.text_for_range(self.current_block_range().inputRange) | |
|
319 | 392 | block = block.split('\n') |
|
320 | 393 | return block[-1] |
|
321 | 394 | |
|
322 | 395 | |
|
323 | 396 | def insert_text(self, string=None, textRange=None, scrollToVisible=True): |
|
324 | 397 | """Insert text into textView at textRange, updating blockRanges |
|
325 | 398 | as necessary |
|
326 | 399 | """ |
|
327 | ||
|
328 | 400 | if(textRange == None): |
|
329 | 401 | #range for end of text |
|
330 | 402 | textRange = NSMakeRange(self.textView.textStorage().length(), 0) |
|
331 | 403 | |
|
332 | for r in self.blockRanges.itervalues(): | |
|
333 | intersection = NSIntersectionRange(r,textRange) | |
|
334 | if(intersection.length == 0): #ranges don't intersect | |
|
335 | if r.location >= textRange.location: | |
|
336 | r.location += len(string) | |
|
337 | else: #ranges intersect | |
|
338 | if(r.location <= textRange.location): | |
|
339 | assert(intersection.length == textRange.length) | |
|
340 | r.length += textRange.length | |
|
341 | else: | |
|
342 | r.location += intersection.length | |
|
343 | 404 | |
|
344 | 405 | self.textView.replaceCharactersInRange_withString_( |
|
345 | 406 | textRange, string) |
|
346 | self.textView.setSelectedRange_( | |
|
347 | NSMakeRange(textRange.location+len(string), 0)) | |
|
407 | ||
|
408 | for r in self.blockRanges.itervalues(): | |
|
409 | r.update_ranges_for_insertion(string, textRange) | |
|
410 | ||
|
411 | self.textView.setSelectedRange_(textRange) | |
|
348 | 412 | if(scrollToVisible): |
|
349 | 413 | self.textView.scrollRangeToVisible_(textRange) |
|
350 | ||
|
351 | 414 | |
|
352 | 415 | |
|
353 | 416 | |
|
354 | 417 | def replace_current_block_with_string(self, textView, string): |
|
355 | 418 | textView.replaceCharactersInRange_withString_( |
|
356 |
|
|
|
357 |
|
|
|
358 | self.current_block_range().length = len(string) | |
|
419 | self.current_block_range().inputRange, | |
|
420 | string) | |
|
421 | self.current_block_range().inputRange.length = len(string) | |
|
359 | 422 | r = NSMakeRange(textView.textStorage().length(), 0) |
|
360 | 423 | textView.scrollRangeToVisible_(r) |
|
361 | 424 | textView.setSelectedRange_(r) |
|
362 | 425 | |
|
363 | 426 | |
|
364 | 427 | def current_indent_string(self): |
|
365 | 428 | """returns string for indent or None if no indent""" |
|
366 | 429 | |
|
367 | 430 | return self._indent_for_block(self.current_block()) |
|
368 | 431 | |
|
369 | 432 | |
|
370 | 433 | def _indent_for_block(self, block): |
|
371 | 434 | lines = block.split('\n') |
|
372 | 435 | if(len(lines) > 1): |
|
373 | 436 | currentIndent = len(lines[-1]) - len(lines[-1].lstrip()) |
|
374 | 437 | if(currentIndent == 0): |
|
375 | 438 | currentIndent = self.tabSpaces |
|
376 | 439 | |
|
377 | 440 | if(self.tabUsesSpaces): |
|
378 | 441 | result = ' ' * currentIndent |
|
379 | 442 | else: |
|
380 | 443 | result = '\t' * (currentIndent/self.tabSpaces) |
|
381 | 444 | else: |
|
382 | 445 | result = None |
|
383 | 446 | |
|
384 | 447 | return result |
|
385 | 448 | |
|
386 | 449 | |
|
387 | 450 | # NSTextView delegate methods... |
|
388 | 451 | def textView_doCommandBySelector_(self, textView, selector): |
|
389 | 452 | assert(textView == self.textView) |
|
390 | 453 | NSLog("textView_doCommandBySelector_: "+selector) |
|
391 | 454 | |
|
392 | 455 | |
|
393 | 456 | if(selector == 'insertNewline:'): |
|
394 | 457 | indent = self.current_indent_string() |
|
395 | 458 | if(indent): |
|
396 | 459 | line = indent + self.current_line() |
|
397 | 460 | else: |
|
398 | 461 | line = self.current_line() |
|
399 | 462 | |
|
400 | 463 | if(self.is_complete(self.current_block())): |
|
401 | 464 | self.execute(self.current_block(), |
|
402 | 465 | blockID=self.currentBlockID) |
|
403 | 466 | self.start_new_block() |
|
404 | 467 | |
|
405 | 468 | return True |
|
406 | 469 | |
|
407 | 470 | return False |
|
408 | 471 | |
|
409 | 472 | elif(selector == 'moveUp:'): |
|
410 | 473 | prevBlock = self.get_history_previous(self.current_block()) |
|
411 | 474 | if(prevBlock != None): |
|
412 | 475 | self.replace_current_block_with_string(textView, prevBlock) |
|
413 | 476 | else: |
|
414 | 477 | NSBeep() |
|
415 | 478 | return True |
|
416 | 479 | |
|
417 | 480 | elif(selector == 'moveDown:'): |
|
418 | 481 | nextBlock = self.get_history_next() |
|
419 | 482 | if(nextBlock != None): |
|
420 | 483 | self.replace_current_block_with_string(textView, nextBlock) |
|
421 | 484 | else: |
|
422 | 485 | NSBeep() |
|
423 | 486 | return True |
|
424 | 487 | |
|
425 | 488 | elif(selector == 'moveToBeginningOfParagraph:'): |
|
426 | 489 | textView.setSelectedRange_(NSMakeRange( |
|
427 |
|
|
|
428 |
|
|
|
490 | self.current_block_range().inputRange.location, | |
|
491 | 0)) | |
|
429 | 492 | return True |
|
430 | 493 | elif(selector == 'moveToEndOfParagraph:'): |
|
431 | 494 | textView.setSelectedRange_(NSMakeRange( |
|
432 |
|
|
|
433 |
|
|
|
495 | self.current_block_range().inputRange.location + \ | |
|
496 | self.current_block_range().inputRange.length, 0)) | |
|
434 | 497 | return True |
|
435 | 498 | elif(selector == 'deleteToEndOfParagraph:'): |
|
436 | 499 | if(textView.selectedRange().location <= \ |
|
437 | 500 | self.current_block_range().location): |
|
438 | # Intersect the selected range with the current line range | |
|
439 | if(self.current_block_range().length < 0): | |
|
440 | self.blockRanges[self.currentBlockID].length = 0 | |
|
441 | ||
|
442 | r = NSIntersectionRange(textView.rangesForUserTextChange()[0], | |
|
443 | self.current_block_range()) | |
|
444 | ||
|
445 | if(r.length > 0): #no intersection | |
|
446 | textView.setSelectedRange_(r) | |
|
501 | raise NotImplemented() | |
|
447 | 502 | |
|
448 | 503 | return False # don't actually handle the delete |
|
449 | 504 | |
|
450 | 505 | elif(selector == 'insertTab:'): |
|
451 | 506 | if(len(self.current_line().strip()) == 0): #only white space |
|
452 | 507 | return False |
|
453 | 508 | else: |
|
454 | 509 | self.textView.complete_(self) |
|
455 | 510 | return True |
|
456 | 511 | |
|
457 | 512 | elif(selector == 'deleteBackward:'): |
|
458 | 513 | #if we're at the beginning of the current block, ignore |
|
459 | 514 | if(textView.selectedRange().location == \ |
|
460 | self.current_block_range().location): | |
|
515 | self.current_block_range().inputRange.location): | |
|
461 | 516 | return True |
|
462 | 517 | else: |
|
463 | self.current_block_range().length-=1 | |
|
518 | for r in self.blockRanges.itervalues(): | |
|
519 | deleteRange = textView.selectedRange | |
|
520 | if(deleteRange.length == 0): | |
|
521 | deleteRange.location -= 1 | |
|
522 | deleteRange.length = 1 | |
|
523 | r.update_ranges_for_deletion(deleteRange) | |
|
464 | 524 | return False |
|
465 | 525 | return False |
|
466 | 526 | |
|
467 | 527 | |
|
468 | 528 | def textView_shouldChangeTextInRanges_replacementStrings_(self, |
|
469 | 529 | textView, ranges, replacementStrings): |
|
470 | 530 | """ |
|
471 | 531 | Delegate method for NSTextView. |
|
472 | 532 | |
|
473 | 533 | Refuse change text in ranges not at end, but make those changes at |
|
474 | 534 | end. |
|
475 | 535 | """ |
|
476 | 536 | |
|
477 | 537 | assert(len(ranges) == len(replacementStrings)) |
|
478 | 538 | allow = True |
|
479 | 539 | for r,s in zip(ranges, replacementStrings): |
|
480 | 540 | r = r.rangeValue() |
|
481 | 541 | if(textView.textStorage().length() > 0 and |
|
482 |
|
|
|
542 | r.location < self.current_block_range().inputRange.location): | |
|
483 | 543 | self.insert_text(s) |
|
484 | 544 | allow = False |
|
485 | ||
|
486 | ||
|
487 | self.blockRanges.setdefault(self.currentBlockID, | |
|
488 | self.current_block_range()).length +=\ | |
|
489 | len(s) | |
|
490 | 545 | |
|
491 | 546 | return allow |
|
492 | 547 | |
|
493 | 548 | def textView_completions_forPartialWordRange_indexOfSelectedItem_(self, |
|
494 | 549 | textView, words, charRange, index): |
|
495 | 550 | try: |
|
496 | 551 | ts = textView.textStorage() |
|
497 | 552 | token = ts.string().substringWithRange_(charRange) |
|
498 | 553 | completions = blockingCallFromThread(self.complete, token) |
|
499 | 554 | except: |
|
500 | 555 | completions = objc.nil |
|
501 | 556 | NSBeep() |
|
502 | 557 | |
|
503 | 558 | return (completions,0) |
|
504 | 559 | |
|
505 | 560 |
This diff has been collapsed as it changes many lines, (1033 lines changed) Show them Hide them | |||
@@ -1,3423 +1,3424 b'' | |||
|
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
|
2 | 2 | <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.01"> |
|
3 | 3 | <data> |
|
4 | 4 | <int key="IBDocument.SystemTarget">1050</int> |
|
5 | 5 | <string key="IBDocument.SystemVersion">9D34</string> |
|
6 | 6 | <string key="IBDocument.InterfaceBuilderVersion">629</string> |
|
7 | 7 | <string key="IBDocument.AppKitVersion">949.33</string> |
|
8 | 8 | <string key="IBDocument.HIToolboxVersion">352.00</string> |
|
9 | 9 | <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> |
|
10 | 10 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
11 | 11 | <integer value="416"/> |
|
12 | 12 | <integer value="29"/> |
|
13 | 13 | </object> |
|
14 | 14 | <object class="NSArray" key="IBDocument.PluginDependencies"> |
|
15 | 15 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
16 | 16 | <string id="885801228">com.apple.InterfaceBuilderKit</string> |
|
17 | 17 | <string id="113577022">com.apple.InterfaceBuilder.CocoaPlugin</string> |
|
18 | 18 | </object> |
|
19 | 19 | <object class="NSMutableArray" key="IBDocument.RootObjects" id="1048"> |
|
20 | 20 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
21 | 21 | <object class="NSCustomObject" id="1021"> |
|
22 | 22 | <string key="NSClassName" id="190635311">NSApplication</string> |
|
23 | 23 | </object> |
|
24 | 24 | <object class="NSCustomObject" id="1014"> |
|
25 | 25 | <string key="NSClassName">FirstResponder</string> |
|
26 | 26 | </object> |
|
27 | 27 | <object class="NSCustomObject" id="1050"> |
|
28 | 28 | <reference key="NSClassName" ref="190635311"/> |
|
29 | 29 | </object> |
|
30 | 30 | <object class="NSMenu" id="649796088"> |
|
31 | 31 | <string key="NSTitle">AMainMenu</string> |
|
32 | 32 | <object class="NSMutableArray" key="NSMenuItems"> |
|
33 | 33 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
34 | 34 | <object class="NSMenuItem" id="694149608"> |
|
35 | 35 | <reference key="NSMenu" ref="649796088"/> |
|
36 | 36 | <string key="NSTitle" id="837240250">IPython1Sandbox</string> |
|
37 | 37 | <string key="NSKeyEquiv" id="255189770"/> |
|
38 | 38 | <int key="NSKeyEquivModMask">1048576</int> |
|
39 | 39 | <int key="NSMnemonicLoc">2147483647</int> |
|
40 |
<object class="NSCustomResource" key="NSOnImage" id=" |
|
|
41 |
<string key="NSClassName" id=" |
|
|
40 | <object class="NSCustomResource" key="NSOnImage" id="271266416"> | |
|
41 | <string key="NSClassName" id="375865337">NSImage</string> | |
|
42 | 42 | <string key="NSResourceName">NSMenuCheckmark</string> |
|
43 | 43 | </object> |
|
44 |
<object class="NSCustomResource" key="NSMixedImage" id=" |
|
|
45 |
<reference key="NSClassName" ref=" |
|
|
44 | <object class="NSCustomResource" key="NSMixedImage" id="508123839"> | |
|
45 | <reference key="NSClassName" ref="375865337"/> | |
|
46 | 46 | <string key="NSResourceName">NSMenuMixedState</string> |
|
47 | 47 | </object> |
|
48 | 48 | <string key="NSAction">submenuAction:</string> |
|
49 | 49 | <object class="NSMenu" key="NSSubmenu" id="110575045"> |
|
50 | 50 | <reference key="NSTitle" ref="837240250"/> |
|
51 | 51 | <object class="NSMutableArray" key="NSMenuItems"> |
|
52 | 52 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
53 | 53 | <object class="NSMenuItem" id="238522557"> |
|
54 | 54 | <reference key="NSMenu" ref="110575045"/> |
|
55 | 55 | <string key="NSTitle">About IPython1Sandbox</string> |
|
56 | 56 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
57 | 57 | <int key="NSMnemonicLoc">2147483647</int> |
|
58 |
<reference key="NSOnImage" ref=" |
|
|
59 |
<reference key="NSMixedImage" ref=" |
|
|
58 | <reference key="NSOnImage" ref="271266416"/> | |
|
59 | <reference key="NSMixedImage" ref="508123839"/> | |
|
60 | 60 | </object> |
|
61 | 61 | <object class="NSMenuItem" id="304266470"> |
|
62 | 62 | <reference key="NSMenu" ref="110575045"/> |
|
63 | 63 | <bool key="NSIsDisabled">YES</bool> |
|
64 | 64 | <bool key="NSIsSeparator">YES</bool> |
|
65 | 65 | <reference key="NSTitle" ref="255189770"/> |
|
66 | 66 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
67 | 67 | <int key="NSKeyEquivModMask">1048576</int> |
|
68 | 68 | <int key="NSMnemonicLoc">2147483647</int> |
|
69 |
<reference key="NSOnImage" ref=" |
|
|
70 |
<reference key="NSMixedImage" ref=" |
|
|
69 | <reference key="NSOnImage" ref="271266416"/> | |
|
70 | <reference key="NSMixedImage" ref="508123839"/> | |
|
71 | 71 | </object> |
|
72 | 72 | <object class="NSMenuItem" id="609285721"> |
|
73 | 73 | <reference key="NSMenu" ref="110575045"/> |
|
74 | 74 | <string type="base64-UTF8" key="NSTitle">UHJlZmVyZW5jZXPigKY</string> |
|
75 | 75 | <string key="NSKeyEquiv">,</string> |
|
76 | 76 | <int key="NSKeyEquivModMask">1048576</int> |
|
77 | 77 | <int key="NSMnemonicLoc">2147483647</int> |
|
78 |
<reference key="NSOnImage" ref=" |
|
|
79 |
<reference key="NSMixedImage" ref=" |
|
|
78 | <reference key="NSOnImage" ref="271266416"/> | |
|
79 | <reference key="NSMixedImage" ref="508123839"/> | |
|
80 | 80 | </object> |
|
81 | 81 | <object class="NSMenuItem" id="481834944"> |
|
82 | 82 | <reference key="NSMenu" ref="110575045"/> |
|
83 | 83 | <bool key="NSIsDisabled">YES</bool> |
|
84 | 84 | <bool key="NSIsSeparator">YES</bool> |
|
85 | 85 | <reference key="NSTitle" ref="255189770"/> |
|
86 | 86 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
87 | 87 | <int key="NSKeyEquivModMask">1048576</int> |
|
88 | 88 | <int key="NSMnemonicLoc">2147483647</int> |
|
89 |
<reference key="NSOnImage" ref=" |
|
|
90 |
<reference key="NSMixedImage" ref=" |
|
|
89 | <reference key="NSOnImage" ref="271266416"/> | |
|
90 | <reference key="NSMixedImage" ref="508123839"/> | |
|
91 | 91 | </object> |
|
92 | 92 | <object class="NSMenuItem" id="1046388886"> |
|
93 | 93 | <reference key="NSMenu" ref="110575045"/> |
|
94 | 94 | <string key="NSTitle" id="642338826">Services</string> |
|
95 | 95 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
96 | 96 | <int key="NSKeyEquivModMask">1048576</int> |
|
97 | 97 | <int key="NSMnemonicLoc">2147483647</int> |
|
98 |
<reference key="NSOnImage" ref=" |
|
|
99 |
<reference key="NSMixedImage" ref=" |
|
|
98 | <reference key="NSOnImage" ref="271266416"/> | |
|
99 | <reference key="NSMixedImage" ref="508123839"/> | |
|
100 | 100 | <string key="NSAction">submenuAction:</string> |
|
101 | 101 | <object class="NSMenu" key="NSSubmenu" id="752062318"> |
|
102 | 102 | <reference key="NSTitle" ref="642338826"/> |
|
103 | 103 | <object class="NSMutableArray" key="NSMenuItems"> |
|
104 | 104 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
105 | 105 | </object> |
|
106 | 106 | <string key="NSName">_NSServicesMenu</string> |
|
107 | 107 | </object> |
|
108 | 108 | </object> |
|
109 | 109 | <object class="NSMenuItem" id="646227648"> |
|
110 | 110 | <reference key="NSMenu" ref="110575045"/> |
|
111 | 111 | <bool key="NSIsDisabled">YES</bool> |
|
112 | 112 | <bool key="NSIsSeparator">YES</bool> |
|
113 | 113 | <reference key="NSTitle" ref="255189770"/> |
|
114 | 114 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
115 | 115 | <int key="NSKeyEquivModMask">1048576</int> |
|
116 | 116 | <int key="NSMnemonicLoc">2147483647</int> |
|
117 |
<reference key="NSOnImage" ref=" |
|
|
118 |
<reference key="NSMixedImage" ref=" |
|
|
117 | <reference key="NSOnImage" ref="271266416"/> | |
|
118 | <reference key="NSMixedImage" ref="508123839"/> | |
|
119 | 119 | </object> |
|
120 | 120 | <object class="NSMenuItem" id="755159360"> |
|
121 | 121 | <reference key="NSMenu" ref="110575045"/> |
|
122 | 122 | <string key="NSTitle">Hide IPython1Sandbox</string> |
|
123 | 123 | <string key="NSKeyEquiv" id="940330891">h</string> |
|
124 | 124 | <int key="NSKeyEquivModMask">1048576</int> |
|
125 | 125 | <int key="NSMnemonicLoc">2147483647</int> |
|
126 |
<reference key="NSOnImage" ref=" |
|
|
127 |
<reference key="NSMixedImage" ref=" |
|
|
126 | <reference key="NSOnImage" ref="271266416"/> | |
|
127 | <reference key="NSMixedImage" ref="508123839"/> | |
|
128 | 128 | </object> |
|
129 | 129 | <object class="NSMenuItem" id="342932134"> |
|
130 | 130 | <reference key="NSMenu" ref="110575045"/> |
|
131 | 131 | <string key="NSTitle">Hide Others</string> |
|
132 | 132 | <reference key="NSKeyEquiv" ref="940330891"/> |
|
133 | 133 | <int key="NSKeyEquivModMask">1572864</int> |
|
134 | 134 | <int key="NSMnemonicLoc">2147483647</int> |
|
135 |
<reference key="NSOnImage" ref=" |
|
|
136 |
<reference key="NSMixedImage" ref=" |
|
|
135 | <reference key="NSOnImage" ref="271266416"/> | |
|
136 | <reference key="NSMixedImage" ref="508123839"/> | |
|
137 | 137 | </object> |
|
138 | 138 | <object class="NSMenuItem" id="908899353"> |
|
139 | 139 | <reference key="NSMenu" ref="110575045"/> |
|
140 | 140 | <string key="NSTitle">Show All</string> |
|
141 | 141 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
142 | 142 | <int key="NSKeyEquivModMask">1048576</int> |
|
143 | 143 | <int key="NSMnemonicLoc">2147483647</int> |
|
144 |
<reference key="NSOnImage" ref=" |
|
|
145 |
<reference key="NSMixedImage" ref=" |
|
|
144 | <reference key="NSOnImage" ref="271266416"/> | |
|
145 | <reference key="NSMixedImage" ref="508123839"/> | |
|
146 | 146 | </object> |
|
147 | 147 | <object class="NSMenuItem" id="1056857174"> |
|
148 | 148 | <reference key="NSMenu" ref="110575045"/> |
|
149 | 149 | <bool key="NSIsDisabled">YES</bool> |
|
150 | 150 | <bool key="NSIsSeparator">YES</bool> |
|
151 | 151 | <reference key="NSTitle" ref="255189770"/> |
|
152 | 152 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
153 | 153 | <int key="NSKeyEquivModMask">1048576</int> |
|
154 | 154 | <int key="NSMnemonicLoc">2147483647</int> |
|
155 |
<reference key="NSOnImage" ref=" |
|
|
156 |
<reference key="NSMixedImage" ref=" |
|
|
155 | <reference key="NSOnImage" ref="271266416"/> | |
|
156 | <reference key="NSMixedImage" ref="508123839"/> | |
|
157 | 157 | </object> |
|
158 | 158 | <object class="NSMenuItem" id="632727374"> |
|
159 | 159 | <reference key="NSMenu" ref="110575045"/> |
|
160 | 160 | <string key="NSTitle">Quit IPython1Sandbox</string> |
|
161 | 161 | <string key="NSKeyEquiv">q</string> |
|
162 | 162 | <int key="NSKeyEquivModMask">1048576</int> |
|
163 | 163 | <int key="NSMnemonicLoc">2147483647</int> |
|
164 |
<reference key="NSOnImage" ref=" |
|
|
165 |
<reference key="NSMixedImage" ref=" |
|
|
164 | <reference key="NSOnImage" ref="271266416"/> | |
|
165 | <reference key="NSMixedImage" ref="508123839"/> | |
|
166 | 166 | </object> |
|
167 | 167 | </object> |
|
168 | 168 | <string key="NSName">_NSAppleMenu</string> |
|
169 | 169 | </object> |
|
170 | 170 | </object> |
|
171 | 171 | <object class="NSMenuItem" id="379814623"> |
|
172 | 172 | <reference key="NSMenu" ref="649796088"/> |
|
173 | 173 | <string key="NSTitle" id="881404960">File</string> |
|
174 | 174 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
175 | 175 | <int key="NSKeyEquivModMask">1048576</int> |
|
176 | 176 | <int key="NSMnemonicLoc">2147483647</int> |
|
177 |
<reference key="NSOnImage" ref=" |
|
|
178 |
<reference key="NSMixedImage" ref=" |
|
|
177 | <reference key="NSOnImage" ref="271266416"/> | |
|
178 | <reference key="NSMixedImage" ref="508123839"/> | |
|
179 | 179 | <string key="NSAction">submenuAction:</string> |
|
180 | 180 | <object class="NSMenu" key="NSSubmenu" id="720053764"> |
|
181 | 181 | <reference key="NSTitle" ref="881404960"/> |
|
182 | 182 | <object class="NSMutableArray" key="NSMenuItems"> |
|
183 | 183 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
184 | 184 | <object class="NSMenuItem" id="705341025"> |
|
185 | 185 | <reference key="NSMenu" ref="720053764"/> |
|
186 | 186 | <string key="NSTitle">New</string> |
|
187 | 187 | <string key="NSKeyEquiv">n</string> |
|
188 | 188 | <int key="NSKeyEquivModMask">1048576</int> |
|
189 | 189 | <int key="NSMnemonicLoc">2147483647</int> |
|
190 |
<reference key="NSOnImage" ref=" |
|
|
191 |
<reference key="NSMixedImage" ref=" |
|
|
190 | <reference key="NSOnImage" ref="271266416"/> | |
|
191 | <reference key="NSMixedImage" ref="508123839"/> | |
|
192 | 192 | </object> |
|
193 | 193 | <object class="NSMenuItem" id="722745758"> |
|
194 | 194 | <reference key="NSMenu" ref="720053764"/> |
|
195 | 195 | <string type="base64-UTF8" key="NSTitle">T3BlbuKApg</string> |
|
196 | 196 | <string key="NSKeyEquiv">o</string> |
|
197 | 197 | <int key="NSKeyEquivModMask">1048576</int> |
|
198 | 198 | <int key="NSMnemonicLoc">2147483647</int> |
|
199 |
<reference key="NSOnImage" ref=" |
|
|
200 |
<reference key="NSMixedImage" ref=" |
|
|
199 | <reference key="NSOnImage" ref="271266416"/> | |
|
200 | <reference key="NSMixedImage" ref="508123839"/> | |
|
201 | 201 | </object> |
|
202 | 202 | <object class="NSMenuItem" id="1025936716"> |
|
203 | 203 | <reference key="NSMenu" ref="720053764"/> |
|
204 | 204 | <string key="NSTitle" id="975517829">Open Recent</string> |
|
205 | 205 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
206 | 206 | <int key="NSKeyEquivModMask">1048576</int> |
|
207 | 207 | <int key="NSMnemonicLoc">2147483647</int> |
|
208 |
<reference key="NSOnImage" ref=" |
|
|
209 |
<reference key="NSMixedImage" ref=" |
|
|
208 | <reference key="NSOnImage" ref="271266416"/> | |
|
209 | <reference key="NSMixedImage" ref="508123839"/> | |
|
210 | 210 | <string key="NSAction">submenuAction:</string> |
|
211 | 211 | <object class="NSMenu" key="NSSubmenu" id="1065607017"> |
|
212 | 212 | <reference key="NSTitle" ref="975517829"/> |
|
213 | 213 | <object class="NSMutableArray" key="NSMenuItems"> |
|
214 | 214 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
215 | 215 | <object class="NSMenuItem" id="759406840"> |
|
216 | 216 | <reference key="NSMenu" ref="1065607017"/> |
|
217 | 217 | <string key="NSTitle">Clear Menu</string> |
|
218 | 218 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
219 | 219 | <int key="NSKeyEquivModMask">1048576</int> |
|
220 | 220 | <int key="NSMnemonicLoc">2147483647</int> |
|
221 |
<reference key="NSOnImage" ref=" |
|
|
222 |
<reference key="NSMixedImage" ref=" |
|
|
221 | <reference key="NSOnImage" ref="271266416"/> | |
|
222 | <reference key="NSMixedImage" ref="508123839"/> | |
|
223 | 223 | </object> |
|
224 | 224 | </object> |
|
225 | 225 | <string key="NSName">_NSRecentDocumentsMenu</string> |
|
226 | 226 | </object> |
|
227 | 227 | </object> |
|
228 | 228 | <object class="NSMenuItem" id="425164168"> |
|
229 | 229 | <reference key="NSMenu" ref="720053764"/> |
|
230 | 230 | <bool key="NSIsDisabled">YES</bool> |
|
231 | 231 | <bool key="NSIsSeparator">YES</bool> |
|
232 | 232 | <reference key="NSTitle" ref="255189770"/> |
|
233 | 233 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
234 | 234 | <int key="NSKeyEquivModMask">1048576</int> |
|
235 | 235 | <int key="NSMnemonicLoc">2147483647</int> |
|
236 |
<reference key="NSOnImage" ref=" |
|
|
237 |
<reference key="NSMixedImage" ref=" |
|
|
236 | <reference key="NSOnImage" ref="271266416"/> | |
|
237 | <reference key="NSMixedImage" ref="508123839"/> | |
|
238 | 238 | </object> |
|
239 | 239 | <object class="NSMenuItem" id="776162233"> |
|
240 | 240 | <reference key="NSMenu" ref="720053764"/> |
|
241 | 241 | <string key="NSTitle">Close</string> |
|
242 | 242 | <string key="NSKeyEquiv">w</string> |
|
243 | 243 | <int key="NSKeyEquivModMask">1048576</int> |
|
244 | 244 | <int key="NSMnemonicLoc">2147483647</int> |
|
245 |
<reference key="NSOnImage" ref=" |
|
|
246 |
<reference key="NSMixedImage" ref=" |
|
|
245 | <reference key="NSOnImage" ref="271266416"/> | |
|
246 | <reference key="NSMixedImage" ref="508123839"/> | |
|
247 | 247 | </object> |
|
248 | 248 | <object class="NSMenuItem" id="1023925487"> |
|
249 | 249 | <reference key="NSMenu" ref="720053764"/> |
|
250 | 250 | <string key="NSTitle">Save</string> |
|
251 | 251 | <string key="NSKeyEquiv">s</string> |
|
252 | 252 | <int key="NSKeyEquivModMask">1048576</int> |
|
253 | 253 | <int key="NSMnemonicLoc">2147483647</int> |
|
254 |
<reference key="NSOnImage" ref=" |
|
|
255 |
<reference key="NSMixedImage" ref=" |
|
|
254 | <reference key="NSOnImage" ref="271266416"/> | |
|
255 | <reference key="NSMixedImage" ref="508123839"/> | |
|
256 | 256 | </object> |
|
257 | 257 | <object class="NSMenuItem" id="117038363"> |
|
258 | 258 | <reference key="NSMenu" ref="720053764"/> |
|
259 | 259 | <string type="base64-UTF8" key="NSTitle">U2F2ZSBBc+KApg</string> |
|
260 | 260 | <string key="NSKeyEquiv">S</string> |
|
261 | 261 | <int key="NSKeyEquivModMask">1179648</int> |
|
262 | 262 | <int key="NSMnemonicLoc">2147483647</int> |
|
263 |
<reference key="NSOnImage" ref=" |
|
|
264 |
<reference key="NSMixedImage" ref=" |
|
|
263 | <reference key="NSOnImage" ref="271266416"/> | |
|
264 | <reference key="NSMixedImage" ref="508123839"/> | |
|
265 | 265 | </object> |
|
266 | 266 | <object class="NSMenuItem" id="579971712"> |
|
267 | 267 | <reference key="NSMenu" ref="720053764"/> |
|
268 | 268 | <string key="NSTitle">Revert to Saved</string> |
|
269 | 269 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
270 | 270 | <int key="NSMnemonicLoc">2147483647</int> |
|
271 |
<reference key="NSOnImage" ref=" |
|
|
272 |
<reference key="NSMixedImage" ref=" |
|
|
271 | <reference key="NSOnImage" ref="271266416"/> | |
|
272 | <reference key="NSMixedImage" ref="508123839"/> | |
|
273 | 273 | </object> |
|
274 | 274 | <object class="NSMenuItem" id="1010469920"> |
|
275 | 275 | <reference key="NSMenu" ref="720053764"/> |
|
276 | 276 | <bool key="NSIsDisabled">YES</bool> |
|
277 | 277 | <bool key="NSIsSeparator">YES</bool> |
|
278 | 278 | <reference key="NSTitle" ref="255189770"/> |
|
279 | 279 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
280 | 280 | <int key="NSKeyEquivModMask">1048576</int> |
|
281 | 281 | <int key="NSMnemonicLoc">2147483647</int> |
|
282 |
<reference key="NSOnImage" ref=" |
|
|
283 |
<reference key="NSMixedImage" ref=" |
|
|
282 | <reference key="NSOnImage" ref="271266416"/> | |
|
283 | <reference key="NSMixedImage" ref="508123839"/> | |
|
284 | 284 | </object> |
|
285 | 285 | <object class="NSMenuItem" id="294629803"> |
|
286 | 286 | <reference key="NSMenu" ref="720053764"/> |
|
287 | 287 | <string key="NSTitle">Page Setup...</string> |
|
288 | 288 | <string key="NSKeyEquiv">P</string> |
|
289 | 289 | <int key="NSKeyEquivModMask">1179648</int> |
|
290 | 290 | <int key="NSMnemonicLoc">2147483647</int> |
|
291 |
<reference key="NSOnImage" ref=" |
|
|
292 |
<reference key="NSMixedImage" ref=" |
|
|
291 | <reference key="NSOnImage" ref="271266416"/> | |
|
292 | <reference key="NSMixedImage" ref="508123839"/> | |
|
293 | 293 | <reference key="NSToolTip" ref="255189770"/> |
|
294 | 294 | </object> |
|
295 | 295 | <object class="NSMenuItem" id="49223823"> |
|
296 | 296 | <reference key="NSMenu" ref="720053764"/> |
|
297 | 297 | <string type="base64-UTF8" key="NSTitle">UHJpbnTigKY</string> |
|
298 | 298 | <string key="NSKeyEquiv">p</string> |
|
299 | 299 | <int key="NSKeyEquivModMask">1048576</int> |
|
300 | 300 | <int key="NSMnemonicLoc">2147483647</int> |
|
301 |
<reference key="NSOnImage" ref=" |
|
|
302 |
<reference key="NSMixedImage" ref=" |
|
|
301 | <reference key="NSOnImage" ref="271266416"/> | |
|
302 | <reference key="NSMixedImage" ref="508123839"/> | |
|
303 | 303 | </object> |
|
304 | 304 | </object> |
|
305 | 305 | </object> |
|
306 | 306 | </object> |
|
307 | 307 | <object class="NSMenuItem" id="952259628"> |
|
308 | 308 | <reference key="NSMenu" ref="649796088"/> |
|
309 | 309 | <string key="NSTitle" id="1037326483">Edit</string> |
|
310 | 310 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
311 | 311 | <int key="NSKeyEquivModMask">1048576</int> |
|
312 | 312 | <int key="NSMnemonicLoc">2147483647</int> |
|
313 |
<reference key="NSOnImage" ref=" |
|
|
314 |
<reference key="NSMixedImage" ref=" |
|
|
313 | <reference key="NSOnImage" ref="271266416"/> | |
|
314 | <reference key="NSMixedImage" ref="508123839"/> | |
|
315 | 315 | <string key="NSAction">submenuAction:</string> |
|
316 | 316 | <object class="NSMenu" key="NSSubmenu" id="789758025"> |
|
317 | 317 | <reference key="NSTitle" ref="1037326483"/> |
|
318 | 318 | <object class="NSMutableArray" key="NSMenuItems"> |
|
319 | 319 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
320 | 320 | <object class="NSMenuItem" id="1058277027"> |
|
321 | 321 | <reference key="NSMenu" ref="789758025"/> |
|
322 | 322 | <string key="NSTitle">Undo</string> |
|
323 | 323 | <string key="NSKeyEquiv">z</string> |
|
324 | 324 | <int key="NSKeyEquivModMask">1048576</int> |
|
325 | 325 | <int key="NSMnemonicLoc">2147483647</int> |
|
326 |
<reference key="NSOnImage" ref=" |
|
|
327 |
<reference key="NSMixedImage" ref=" |
|
|
326 | <reference key="NSOnImage" ref="271266416"/> | |
|
327 | <reference key="NSMixedImage" ref="508123839"/> | |
|
328 | 328 | </object> |
|
329 | 329 | <object class="NSMenuItem" id="790794224"> |
|
330 | 330 | <reference key="NSMenu" ref="789758025"/> |
|
331 | 331 | <string key="NSTitle">Redo</string> |
|
332 | 332 | <string key="NSKeyEquiv">Z</string> |
|
333 | 333 | <int key="NSKeyEquivModMask">1179648</int> |
|
334 | 334 | <int key="NSMnemonicLoc">2147483647</int> |
|
335 |
<reference key="NSOnImage" ref=" |
|
|
336 |
<reference key="NSMixedImage" ref=" |
|
|
335 | <reference key="NSOnImage" ref="271266416"/> | |
|
336 | <reference key="NSMixedImage" ref="508123839"/> | |
|
337 | 337 | </object> |
|
338 | 338 | <object class="NSMenuItem" id="1040322652"> |
|
339 | 339 | <reference key="NSMenu" ref="789758025"/> |
|
340 | 340 | <bool key="NSIsDisabled">YES</bool> |
|
341 | 341 | <bool key="NSIsSeparator">YES</bool> |
|
342 | 342 | <reference key="NSTitle" ref="255189770"/> |
|
343 | 343 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
344 | 344 | <int key="NSKeyEquivModMask">1048576</int> |
|
345 | 345 | <int key="NSMnemonicLoc">2147483647</int> |
|
346 |
<reference key="NSOnImage" ref=" |
|
|
347 |
<reference key="NSMixedImage" ref=" |
|
|
346 | <reference key="NSOnImage" ref="271266416"/> | |
|
347 | <reference key="NSMixedImage" ref="508123839"/> | |
|
348 | 348 | </object> |
|
349 | 349 | <object class="NSMenuItem" id="296257095"> |
|
350 | 350 | <reference key="NSMenu" ref="789758025"/> |
|
351 | 351 | <string key="NSTitle">Cut</string> |
|
352 | 352 | <string key="NSKeyEquiv">x</string> |
|
353 | 353 | <int key="NSKeyEquivModMask">1048576</int> |
|
354 | 354 | <int key="NSMnemonicLoc">2147483647</int> |
|
355 |
<reference key="NSOnImage" ref=" |
|
|
356 |
<reference key="NSMixedImage" ref=" |
|
|
355 | <reference key="NSOnImage" ref="271266416"/> | |
|
356 | <reference key="NSMixedImage" ref="508123839"/> | |
|
357 | 357 | </object> |
|
358 | 358 | <object class="NSMenuItem" id="860595796"> |
|
359 | 359 | <reference key="NSMenu" ref="789758025"/> |
|
360 | 360 | <string key="NSTitle">Copy</string> |
|
361 | 361 | <string key="NSKeyEquiv">c</string> |
|
362 | 362 | <int key="NSKeyEquivModMask">1048576</int> |
|
363 | 363 | <int key="NSMnemonicLoc">2147483647</int> |
|
364 |
<reference key="NSOnImage" ref=" |
|
|
365 |
<reference key="NSMixedImage" ref=" |
|
|
364 | <reference key="NSOnImage" ref="271266416"/> | |
|
365 | <reference key="NSMixedImage" ref="508123839"/> | |
|
366 | 366 | </object> |
|
367 | 367 | <object class="NSMenuItem" id="29853731"> |
|
368 | 368 | <reference key="NSMenu" ref="789758025"/> |
|
369 | 369 | <string key="NSTitle">Paste</string> |
|
370 | 370 | <string key="NSKeyEquiv">v</string> |
|
371 | 371 | <int key="NSKeyEquivModMask">1048576</int> |
|
372 | 372 | <int key="NSMnemonicLoc">2147483647</int> |
|
373 |
<reference key="NSOnImage" ref=" |
|
|
374 |
<reference key="NSMixedImage" ref=" |
|
|
373 | <reference key="NSOnImage" ref="271266416"/> | |
|
374 | <reference key="NSMixedImage" ref="508123839"/> | |
|
375 | 375 | </object> |
|
376 | 376 | <object class="NSMenuItem" id="437104165"> |
|
377 | 377 | <reference key="NSMenu" ref="789758025"/> |
|
378 | 378 | <string key="NSTitle">Delete</string> |
|
379 | 379 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
380 | 380 | <int key="NSKeyEquivModMask">1048576</int> |
|
381 | 381 | <int key="NSMnemonicLoc">2147483647</int> |
|
382 |
<reference key="NSOnImage" ref=" |
|
|
383 |
<reference key="NSMixedImage" ref=" |
|
|
382 | <reference key="NSOnImage" ref="271266416"/> | |
|
383 | <reference key="NSMixedImage" ref="508123839"/> | |
|
384 | 384 | </object> |
|
385 | 385 | <object class="NSMenuItem" id="583158037"> |
|
386 | 386 | <reference key="NSMenu" ref="789758025"/> |
|
387 | 387 | <string key="NSTitle">Select All</string> |
|
388 | 388 | <string key="NSKeyEquiv">a</string> |
|
389 | 389 | <int key="NSKeyEquivModMask">1048576</int> |
|
390 | 390 | <int key="NSMnemonicLoc">2147483647</int> |
|
391 |
<reference key="NSOnImage" ref=" |
|
|
392 |
<reference key="NSMixedImage" ref=" |
|
|
391 | <reference key="NSOnImage" ref="271266416"/> | |
|
392 | <reference key="NSMixedImage" ref="508123839"/> | |
|
393 | 393 | </object> |
|
394 | 394 | <object class="NSMenuItem" id="212016141"> |
|
395 | 395 | <reference key="NSMenu" ref="789758025"/> |
|
396 | 396 | <bool key="NSIsDisabled">YES</bool> |
|
397 | 397 | <bool key="NSIsSeparator">YES</bool> |
|
398 | 398 | <reference key="NSTitle" ref="255189770"/> |
|
399 | 399 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
400 | 400 | <int key="NSKeyEquivModMask">1048576</int> |
|
401 | 401 | <int key="NSMnemonicLoc">2147483647</int> |
|
402 |
<reference key="NSOnImage" ref=" |
|
|
403 |
<reference key="NSMixedImage" ref=" |
|
|
402 | <reference key="NSOnImage" ref="271266416"/> | |
|
403 | <reference key="NSMixedImage" ref="508123839"/> | |
|
404 | 404 | </object> |
|
405 | 405 | <object class="NSMenuItem" id="892235320"> |
|
406 | 406 | <reference key="NSMenu" ref="789758025"/> |
|
407 | 407 | <string key="NSTitle" id="688083180">Find</string> |
|
408 | 408 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
409 | 409 | <int key="NSKeyEquivModMask">1048576</int> |
|
410 | 410 | <int key="NSMnemonicLoc">2147483647</int> |
|
411 |
<reference key="NSOnImage" ref=" |
|
|
412 |
<reference key="NSMixedImage" ref=" |
|
|
411 | <reference key="NSOnImage" ref="271266416"/> | |
|
412 | <reference key="NSMixedImage" ref="508123839"/> | |
|
413 | 413 | <string key="NSAction">submenuAction:</string> |
|
414 | 414 | <object class="NSMenu" key="NSSubmenu" id="963351320"> |
|
415 | 415 | <reference key="NSTitle" ref="688083180"/> |
|
416 | 416 | <object class="NSMutableArray" key="NSMenuItems"> |
|
417 | 417 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
418 | 418 | <object class="NSMenuItem" id="447796847"> |
|
419 | 419 | <reference key="NSMenu" ref="963351320"/> |
|
420 | 420 | <string type="base64-UTF8" key="NSTitle">RmluZOKApg</string> |
|
421 | 421 | <string key="NSKeyEquiv" id="469505129">f</string> |
|
422 | 422 | <int key="NSKeyEquivModMask">1048576</int> |
|
423 | 423 | <int key="NSMnemonicLoc">2147483647</int> |
|
424 |
<reference key="NSOnImage" ref=" |
|
|
425 |
<reference key="NSMixedImage" ref=" |
|
|
424 | <reference key="NSOnImage" ref="271266416"/> | |
|
425 | <reference key="NSMixedImage" ref="508123839"/> | |
|
426 | 426 | <int key="NSTag">1</int> |
|
427 | 427 | </object> |
|
428 | 428 | <object class="NSMenuItem" id="326711663"> |
|
429 | 429 | <reference key="NSMenu" ref="963351320"/> |
|
430 | 430 | <string key="NSTitle">Find Next</string> |
|
431 | 431 | <string key="NSKeyEquiv" id="762398675">g</string> |
|
432 | 432 | <int key="NSKeyEquivModMask">1048576</int> |
|
433 | 433 | <int key="NSMnemonicLoc">2147483647</int> |
|
434 |
<reference key="NSOnImage" ref=" |
|
|
435 |
<reference key="NSMixedImage" ref=" |
|
|
434 | <reference key="NSOnImage" ref="271266416"/> | |
|
435 | <reference key="NSMixedImage" ref="508123839"/> | |
|
436 | 436 | <int key="NSTag">2</int> |
|
437 | 437 | </object> |
|
438 | 438 | <object class="NSMenuItem" id="270902937"> |
|
439 | 439 | <reference key="NSMenu" ref="963351320"/> |
|
440 | 440 | <string key="NSTitle">Find Previous</string> |
|
441 | 441 | <string key="NSKeyEquiv" id="819654342">G</string> |
|
442 | 442 | <int key="NSKeyEquivModMask">1179648</int> |
|
443 | 443 | <int key="NSMnemonicLoc">2147483647</int> |
|
444 |
<reference key="NSOnImage" ref=" |
|
|
445 |
<reference key="NSMixedImage" ref=" |
|
|
444 | <reference key="NSOnImage" ref="271266416"/> | |
|
445 | <reference key="NSMixedImage" ref="508123839"/> | |
|
446 | 446 | <int key="NSTag">3</int> |
|
447 | 447 | </object> |
|
448 | 448 | <object class="NSMenuItem" id="159080638"> |
|
449 | 449 | <reference key="NSMenu" ref="963351320"/> |
|
450 | 450 | <string key="NSTitle">Use Selection for Find</string> |
|
451 | 451 | <string key="NSKeyEquiv">e</string> |
|
452 | 452 | <int key="NSKeyEquivModMask">1048576</int> |
|
453 | 453 | <int key="NSMnemonicLoc">2147483647</int> |
|
454 |
<reference key="NSOnImage" ref=" |
|
|
455 |
<reference key="NSMixedImage" ref=" |
|
|
454 | <reference key="NSOnImage" ref="271266416"/> | |
|
455 | <reference key="NSMixedImage" ref="508123839"/> | |
|
456 | 456 | <int key="NSTag">7</int> |
|
457 | 457 | </object> |
|
458 | 458 | <object class="NSMenuItem" id="88285865"> |
|
459 | 459 | <reference key="NSMenu" ref="963351320"/> |
|
460 | 460 | <string key="NSTitle">Jump to Selection</string> |
|
461 | 461 | <string key="NSKeyEquiv">j</string> |
|
462 | 462 | <int key="NSKeyEquivModMask">1048576</int> |
|
463 | 463 | <int key="NSMnemonicLoc">2147483647</int> |
|
464 |
<reference key="NSOnImage" ref=" |
|
|
465 |
<reference key="NSMixedImage" ref=" |
|
|
464 | <reference key="NSOnImage" ref="271266416"/> | |
|
465 | <reference key="NSMixedImage" ref="508123839"/> | |
|
466 | 466 | </object> |
|
467 | 467 | </object> |
|
468 | 468 | </object> |
|
469 | 469 | </object> |
|
470 | 470 | <object class="NSMenuItem" id="972420730"> |
|
471 | 471 | <reference key="NSMenu" ref="789758025"/> |
|
472 | 472 | <string key="NSTitle" id="739167250">Spelling and Grammar</string> |
|
473 | 473 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
474 | 474 | <int key="NSKeyEquivModMask">1048576</int> |
|
475 | 475 | <int key="NSMnemonicLoc">2147483647</int> |
|
476 |
<reference key="NSOnImage" ref=" |
|
|
477 |
<reference key="NSMixedImage" ref=" |
|
|
476 | <reference key="NSOnImage" ref="271266416"/> | |
|
477 | <reference key="NSMixedImage" ref="508123839"/> | |
|
478 | 478 | <string key="NSAction">submenuAction:</string> |
|
479 | 479 | <object class="NSMenu" key="NSSubmenu" id="769623530"> |
|
480 | 480 | <reference key="NSTitle" ref="739167250"/> |
|
481 | 481 | <object class="NSMutableArray" key="NSMenuItems"> |
|
482 | 482 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
483 | 483 | <object class="NSMenuItem" id="679648819"> |
|
484 | 484 | <reference key="NSMenu" ref="769623530"/> |
|
485 | 485 | <string type="base64-UTF8" key="NSTitle">U2hvdyBTcGVsbGluZ+KApg</string> |
|
486 | 486 | <string key="NSKeyEquiv">:</string> |
|
487 | 487 | <int key="NSKeyEquivModMask">1048576</int> |
|
488 | 488 | <int key="NSMnemonicLoc">2147483647</int> |
|
489 |
<reference key="NSOnImage" ref=" |
|
|
490 |
<reference key="NSMixedImage" ref=" |
|
|
489 | <reference key="NSOnImage" ref="271266416"/> | |
|
490 | <reference key="NSMixedImage" ref="508123839"/> | |
|
491 | 491 | </object> |
|
492 | 492 | <object class="NSMenuItem" id="96193923"> |
|
493 | 493 | <reference key="NSMenu" ref="769623530"/> |
|
494 | 494 | <string key="NSTitle">Check Spelling</string> |
|
495 | 495 | <string key="NSKeyEquiv">;</string> |
|
496 | 496 | <int key="NSKeyEquivModMask">1048576</int> |
|
497 | 497 | <int key="NSMnemonicLoc">2147483647</int> |
|
498 |
<reference key="NSOnImage" ref=" |
|
|
499 |
<reference key="NSMixedImage" ref=" |
|
|
498 | <reference key="NSOnImage" ref="271266416"/> | |
|
499 | <reference key="NSMixedImage" ref="508123839"/> | |
|
500 | 500 | </object> |
|
501 | 501 | <object class="NSMenuItem" id="948374510"> |
|
502 | 502 | <reference key="NSMenu" ref="769623530"/> |
|
503 | 503 | <string key="NSTitle">Check Spelling While Typing</string> |
|
504 | 504 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
505 | 505 | <int key="NSKeyEquivModMask">1048576</int> |
|
506 | 506 | <int key="NSMnemonicLoc">2147483647</int> |
|
507 |
<reference key="NSOnImage" ref=" |
|
|
508 |
<reference key="NSMixedImage" ref=" |
|
|
507 | <reference key="NSOnImage" ref="271266416"/> | |
|
508 | <reference key="NSMixedImage" ref="508123839"/> | |
|
509 | 509 | </object> |
|
510 | 510 | <object class="NSMenuItem" id="967646866"> |
|
511 | 511 | <reference key="NSMenu" ref="769623530"/> |
|
512 | 512 | <string key="NSTitle">Check Grammar With Spelling</string> |
|
513 | 513 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
514 | 514 | <int key="NSKeyEquivModMask">1048576</int> |
|
515 | 515 | <int key="NSMnemonicLoc">2147483647</int> |
|
516 |
<reference key="NSOnImage" ref=" |
|
|
517 |
<reference key="NSMixedImage" ref=" |
|
|
516 | <reference key="NSOnImage" ref="271266416"/> | |
|
517 | <reference key="NSMixedImage" ref="508123839"/> | |
|
518 | 518 | </object> |
|
519 | 519 | </object> |
|
520 | 520 | </object> |
|
521 | 521 | </object> |
|
522 | 522 | <object class="NSMenuItem" id="507821607"> |
|
523 | 523 | <reference key="NSMenu" ref="789758025"/> |
|
524 | 524 | <string key="NSTitle" id="904739598">Substitutions</string> |
|
525 | 525 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
526 | 526 | <int key="NSKeyEquivModMask">1048576</int> |
|
527 | 527 | <int key="NSMnemonicLoc">2147483647</int> |
|
528 |
<reference key="NSOnImage" ref=" |
|
|
529 |
<reference key="NSMixedImage" ref=" |
|
|
528 | <reference key="NSOnImage" ref="271266416"/> | |
|
529 | <reference key="NSMixedImage" ref="508123839"/> | |
|
530 | 530 | <string key="NSAction">submenuAction:</string> |
|
531 | 531 | <object class="NSMenu" key="NSSubmenu" id="698887838"> |
|
532 | 532 | <reference key="NSTitle" ref="904739598"/> |
|
533 | 533 | <object class="NSMutableArray" key="NSMenuItems"> |
|
534 | 534 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
535 | 535 | <object class="NSMenuItem" id="605118523"> |
|
536 | 536 | <reference key="NSMenu" ref="698887838"/> |
|
537 | 537 | <string key="NSTitle">Smart Copy/Paste</string> |
|
538 | 538 | <reference key="NSKeyEquiv" ref="469505129"/> |
|
539 | 539 | <int key="NSKeyEquivModMask">1048576</int> |
|
540 | 540 | <int key="NSMnemonicLoc">2147483647</int> |
|
541 |
<reference key="NSOnImage" ref=" |
|
|
542 |
<reference key="NSMixedImage" ref=" |
|
|
541 | <reference key="NSOnImage" ref="271266416"/> | |
|
542 | <reference key="NSMixedImage" ref="508123839"/> | |
|
543 | 543 | <int key="NSTag">1</int> |
|
544 | 544 | </object> |
|
545 | 545 | <object class="NSMenuItem" id="197661976"> |
|
546 | 546 | <reference key="NSMenu" ref="698887838"/> |
|
547 | 547 | <string key="NSTitle">Smart Quotes</string> |
|
548 | 548 | <reference key="NSKeyEquiv" ref="762398675"/> |
|
549 | 549 | <int key="NSKeyEquivModMask">1048576</int> |
|
550 | 550 | <int key="NSMnemonicLoc">2147483647</int> |
|
551 |
<reference key="NSOnImage" ref=" |
|
|
552 |
<reference key="NSMixedImage" ref=" |
|
|
551 | <reference key="NSOnImage" ref="271266416"/> | |
|
552 | <reference key="NSMixedImage" ref="508123839"/> | |
|
553 | 553 | <int key="NSTag">2</int> |
|
554 | 554 | </object> |
|
555 | 555 | <object class="NSMenuItem" id="708854459"> |
|
556 | 556 | <reference key="NSMenu" ref="698887838"/> |
|
557 | 557 | <string key="NSTitle">Smart Links</string> |
|
558 | 558 | <reference key="NSKeyEquiv" ref="819654342"/> |
|
559 | 559 | <int key="NSKeyEquivModMask">1179648</int> |
|
560 | 560 | <int key="NSMnemonicLoc">2147483647</int> |
|
561 |
<reference key="NSOnImage" ref=" |
|
|
562 |
<reference key="NSMixedImage" ref=" |
|
|
561 | <reference key="NSOnImage" ref="271266416"/> | |
|
562 | <reference key="NSMixedImage" ref="508123839"/> | |
|
563 | 563 | <int key="NSTag">3</int> |
|
564 | 564 | </object> |
|
565 | 565 | </object> |
|
566 | 566 | </object> |
|
567 | 567 | </object> |
|
568 | 568 | <object class="NSMenuItem" id="676164635"> |
|
569 | 569 | <reference key="NSMenu" ref="789758025"/> |
|
570 | 570 | <string key="NSTitle" id="812002426">Speech</string> |
|
571 | 571 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
572 | 572 | <int key="NSKeyEquivModMask">1048576</int> |
|
573 | 573 | <int key="NSMnemonicLoc">2147483647</int> |
|
574 |
<reference key="NSOnImage" ref=" |
|
|
575 |
<reference key="NSMixedImage" ref=" |
|
|
574 | <reference key="NSOnImage" ref="271266416"/> | |
|
575 | <reference key="NSMixedImage" ref="508123839"/> | |
|
576 | 576 | <string key="NSAction">submenuAction:</string> |
|
577 | 577 | <object class="NSMenu" key="NSSubmenu" id="785027613"> |
|
578 | 578 | <reference key="NSTitle" ref="812002426"/> |
|
579 | 579 | <object class="NSMutableArray" key="NSMenuItems"> |
|
580 | 580 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
581 | 581 | <object class="NSMenuItem" id="731782645"> |
|
582 | 582 | <reference key="NSMenu" ref="785027613"/> |
|
583 | 583 | <string key="NSTitle">Start Speaking</string> |
|
584 | 584 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
585 | 585 | <int key="NSKeyEquivModMask">1048576</int> |
|
586 | 586 | <int key="NSMnemonicLoc">2147483647</int> |
|
587 |
<reference key="NSOnImage" ref=" |
|
|
588 |
<reference key="NSMixedImage" ref=" |
|
|
587 | <reference key="NSOnImage" ref="271266416"/> | |
|
588 | <reference key="NSMixedImage" ref="508123839"/> | |
|
589 | 589 | </object> |
|
590 | 590 | <object class="NSMenuItem" id="680220178"> |
|
591 | 591 | <reference key="NSMenu" ref="785027613"/> |
|
592 | 592 | <string key="NSTitle">Stop Speaking</string> |
|
593 | 593 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
594 | 594 | <int key="NSKeyEquivModMask">1048576</int> |
|
595 | 595 | <int key="NSMnemonicLoc">2147483647</int> |
|
596 |
<reference key="NSOnImage" ref=" |
|
|
597 |
<reference key="NSMixedImage" ref=" |
|
|
596 | <reference key="NSOnImage" ref="271266416"/> | |
|
597 | <reference key="NSMixedImage" ref="508123839"/> | |
|
598 | 598 | </object> |
|
599 | 599 | </object> |
|
600 | 600 | </object> |
|
601 | 601 | </object> |
|
602 | 602 | </object> |
|
603 | 603 | </object> |
|
604 | 604 | </object> |
|
605 | 605 | <object class="NSMenuItem" id="626404410"> |
|
606 | 606 | <reference key="NSMenu" ref="649796088"/> |
|
607 | 607 | <string key="NSTitle" id="241242548">Format</string> |
|
608 | 608 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
609 | 609 | <int key="NSKeyEquivModMask">1048576</int> |
|
610 | 610 | <int key="NSMnemonicLoc">2147483647</int> |
|
611 |
<reference key="NSOnImage" ref=" |
|
|
612 |
<reference key="NSMixedImage" ref=" |
|
|
611 | <reference key="NSOnImage" ref="271266416"/> | |
|
612 | <reference key="NSMixedImage" ref="508123839"/> | |
|
613 | 613 | <string key="NSAction">submenuAction:</string> |
|
614 | 614 | <object class="NSMenu" key="NSSubmenu" id="502084290"> |
|
615 | 615 | <reference key="NSTitle" ref="241242548"/> |
|
616 | 616 | <object class="NSMutableArray" key="NSMenuItems"> |
|
617 | 617 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
618 | 618 | <object class="NSMenuItem" id="519768076"> |
|
619 | 619 | <reference key="NSMenu" ref="502084290"/> |
|
620 | 620 | <string key="NSTitle">Show Fonts</string> |
|
621 | 621 | <string key="NSKeyEquiv" id="806579634">t</string> |
|
622 | 622 | <int key="NSKeyEquivModMask">1048576</int> |
|
623 | 623 | <int key="NSMnemonicLoc">2147483647</int> |
|
624 |
<reference key="NSOnImage" ref=" |
|
|
625 |
<reference key="NSMixedImage" ref=" |
|
|
624 | <reference key="NSOnImage" ref="271266416"/> | |
|
625 | <reference key="NSMixedImage" ref="508123839"/> | |
|
626 | 626 | </object> |
|
627 | 627 | <object class="NSMenuItem" id="1028416764"> |
|
628 | 628 | <reference key="NSMenu" ref="502084290"/> |
|
629 | 629 | <string key="NSTitle">Show Colors</string> |
|
630 | 630 | <string key="NSKeyEquiv">C</string> |
|
631 | 631 | <int key="NSKeyEquivModMask">1179648</int> |
|
632 | 632 | <int key="NSMnemonicLoc">2147483647</int> |
|
633 |
<reference key="NSOnImage" ref=" |
|
|
634 |
<reference key="NSMixedImage" ref=" |
|
|
633 | <reference key="NSOnImage" ref="271266416"/> | |
|
634 | <reference key="NSMixedImage" ref="508123839"/> | |
|
635 | 635 | </object> |
|
636 | 636 | </object> |
|
637 | 637 | </object> |
|
638 | 638 | </object> |
|
639 | 639 | <object class="NSMenuItem" id="586577488"> |
|
640 | 640 | <reference key="NSMenu" ref="649796088"/> |
|
641 | 641 | <string key="NSTitle" id="809723865">View</string> |
|
642 | 642 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
643 | 643 | <int key="NSKeyEquivModMask">1048576</int> |
|
644 | 644 | <int key="NSMnemonicLoc">2147483647</int> |
|
645 |
<reference key="NSOnImage" ref=" |
|
|
646 |
<reference key="NSMixedImage" ref=" |
|
|
645 | <reference key="NSOnImage" ref="271266416"/> | |
|
646 | <reference key="NSMixedImage" ref="508123839"/> | |
|
647 | 647 | <string key="NSAction">submenuAction:</string> |
|
648 | 648 | <object class="NSMenu" key="NSSubmenu" id="466310130"> |
|
649 | 649 | <reference key="NSTitle" ref="809723865"/> |
|
650 | 650 | <object class="NSMutableArray" key="NSMenuItems"> |
|
651 | 651 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
652 | 652 | <object class="NSMenuItem" id="102151532"> |
|
653 | 653 | <reference key="NSMenu" ref="466310130"/> |
|
654 | 654 | <string key="NSTitle">Show Toolbar</string> |
|
655 | 655 | <reference key="NSKeyEquiv" ref="806579634"/> |
|
656 | 656 | <int key="NSKeyEquivModMask">1572864</int> |
|
657 | 657 | <int key="NSMnemonicLoc">2147483647</int> |
|
658 |
<reference key="NSOnImage" ref=" |
|
|
659 |
<reference key="NSMixedImage" ref=" |
|
|
658 | <reference key="NSOnImage" ref="271266416"/> | |
|
659 | <reference key="NSMixedImage" ref="508123839"/> | |
|
660 | 660 | </object> |
|
661 | 661 | <object class="NSMenuItem" id="237841660"> |
|
662 | 662 | <reference key="NSMenu" ref="466310130"/> |
|
663 | 663 | <string type="base64-UTF8" key="NSTitle">Q3VzdG9taXplIFRvb2xiYXLigKY</string> |
|
664 | 664 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
665 | 665 | <int key="NSKeyEquivModMask">1048576</int> |
|
666 | 666 | <int key="NSMnemonicLoc">2147483647</int> |
|
667 |
<reference key="NSOnImage" ref=" |
|
|
668 |
<reference key="NSMixedImage" ref=" |
|
|
667 | <reference key="NSOnImage" ref="271266416"/> | |
|
668 | <reference key="NSMixedImage" ref="508123839"/> | |
|
669 | 669 | </object> |
|
670 | 670 | </object> |
|
671 | 671 | </object> |
|
672 | 672 | </object> |
|
673 | 673 | <object class="NSMenuItem" id="713487014"> |
|
674 | 674 | <reference key="NSMenu" ref="649796088"/> |
|
675 | 675 | <string key="NSTitle" id="64165424">Window</string> |
|
676 | 676 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
677 | 677 | <int key="NSKeyEquivModMask">1048576</int> |
|
678 | 678 | <int key="NSMnemonicLoc">2147483647</int> |
|
679 |
<reference key="NSOnImage" ref=" |
|
|
680 |
<reference key="NSMixedImage" ref=" |
|
|
679 | <reference key="NSOnImage" ref="271266416"/> | |
|
680 | <reference key="NSMixedImage" ref="508123839"/> | |
|
681 | 681 | <string key="NSAction">submenuAction:</string> |
|
682 | 682 | <object class="NSMenu" key="NSSubmenu" id="835318025"> |
|
683 | 683 | <reference key="NSTitle" ref="64165424"/> |
|
684 | 684 | <object class="NSMutableArray" key="NSMenuItems"> |
|
685 | 685 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
686 | 686 | <object class="NSMenuItem" id="1011231497"> |
|
687 | 687 | <reference key="NSMenu" ref="835318025"/> |
|
688 | 688 | <string key="NSTitle">Minimize</string> |
|
689 | 689 | <string key="NSKeyEquiv">m</string> |
|
690 | 690 | <int key="NSKeyEquivModMask">1048576</int> |
|
691 | 691 | <int key="NSMnemonicLoc">2147483647</int> |
|
692 |
<reference key="NSOnImage" ref=" |
|
|
693 |
<reference key="NSMixedImage" ref=" |
|
|
692 | <reference key="NSOnImage" ref="271266416"/> | |
|
693 | <reference key="NSMixedImage" ref="508123839"/> | |
|
694 | 694 | </object> |
|
695 | 695 | <object class="NSMenuItem" id="575023229"> |
|
696 | 696 | <reference key="NSMenu" ref="835318025"/> |
|
697 | 697 | <string key="NSTitle">Zoom</string> |
|
698 | 698 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
699 | 699 | <int key="NSKeyEquivModMask">1048576</int> |
|
700 | 700 | <int key="NSMnemonicLoc">2147483647</int> |
|
701 |
<reference key="NSOnImage" ref=" |
|
|
702 |
<reference key="NSMixedImage" ref=" |
|
|
701 | <reference key="NSOnImage" ref="271266416"/> | |
|
702 | <reference key="NSMixedImage" ref="508123839"/> | |
|
703 | 703 | </object> |
|
704 | 704 | <object class="NSMenuItem" id="299356726"> |
|
705 | 705 | <reference key="NSMenu" ref="835318025"/> |
|
706 | 706 | <bool key="NSIsDisabled">YES</bool> |
|
707 | 707 | <bool key="NSIsSeparator">YES</bool> |
|
708 | 708 | <reference key="NSTitle" ref="255189770"/> |
|
709 | 709 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
710 | 710 | <int key="NSKeyEquivModMask">1048576</int> |
|
711 | 711 | <int key="NSMnemonicLoc">2147483647</int> |
|
712 |
<reference key="NSOnImage" ref=" |
|
|
713 |
<reference key="NSMixedImage" ref=" |
|
|
712 | <reference key="NSOnImage" ref="271266416"/> | |
|
713 | <reference key="NSMixedImage" ref="508123839"/> | |
|
714 | 714 | </object> |
|
715 | 715 | <object class="NSMenuItem" id="625202149"> |
|
716 | 716 | <reference key="NSMenu" ref="835318025"/> |
|
717 | 717 | <string key="NSTitle">Bring All to Front</string> |
|
718 | 718 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
719 | 719 | <int key="NSKeyEquivModMask">1048576</int> |
|
720 | 720 | <int key="NSMnemonicLoc">2147483647</int> |
|
721 |
<reference key="NSOnImage" ref=" |
|
|
722 |
<reference key="NSMixedImage" ref=" |
|
|
721 | <reference key="NSOnImage" ref="271266416"/> | |
|
722 | <reference key="NSMixedImage" ref="508123839"/> | |
|
723 | 723 | </object> |
|
724 | 724 | </object> |
|
725 | 725 | <string key="NSName">_NSWindowsMenu</string> |
|
726 | 726 | </object> |
|
727 | 727 | </object> |
|
728 | 728 | <object class="NSMenuItem" id="391199113"> |
|
729 | 729 | <reference key="NSMenu" ref="649796088"/> |
|
730 | 730 | <string key="NSTitle" id="461919786">Help</string> |
|
731 | 731 | <reference key="NSKeyEquiv" ref="255189770"/> |
|
732 | 732 | <int key="NSKeyEquivModMask">1048576</int> |
|
733 | 733 | <int key="NSMnemonicLoc">2147483647</int> |
|
734 |
<reference key="NSOnImage" ref=" |
|
|
735 |
<reference key="NSMixedImage" ref=" |
|
|
734 | <reference key="NSOnImage" ref="271266416"/> | |
|
735 | <reference key="NSMixedImage" ref="508123839"/> | |
|
736 | 736 | <string key="NSAction">submenuAction:</string> |
|
737 | 737 | <object class="NSMenu" key="NSSubmenu" id="374024848"> |
|
738 | 738 | <reference key="NSTitle" ref="461919786"/> |
|
739 | 739 | <object class="NSMutableArray" key="NSMenuItems"> |
|
740 | 740 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
741 | 741 | <object class="NSMenuItem" id="238773614"> |
|
742 | 742 | <reference key="NSMenu" ref="374024848"/> |
|
743 | 743 | <string key="NSTitle">IPython1Sandbox Help</string> |
|
744 | 744 | <string key="NSKeyEquiv">?</string> |
|
745 | 745 | <int key="NSKeyEquivModMask">1048576</int> |
|
746 | 746 | <int key="NSMnemonicLoc">2147483647</int> |
|
747 |
<reference key="NSOnImage" ref=" |
|
|
748 |
<reference key="NSMixedImage" ref=" |
|
|
747 | <reference key="NSOnImage" ref="271266416"/> | |
|
748 | <reference key="NSMixedImage" ref="508123839"/> | |
|
749 | 749 | </object> |
|
750 | 750 | </object> |
|
751 | 751 | </object> |
|
752 | 752 | </object> |
|
753 | 753 | </object> |
|
754 | 754 | <string key="NSName">_NSMainMenu</string> |
|
755 | 755 | </object> |
|
756 | 756 | <object class="NSWindowTemplate" id="972006081"> |
|
757 | 757 | <int key="NSWindowStyleMask">15</int> |
|
758 | 758 | <int key="NSWindowBacking">2</int> |
|
759 | 759 | <string key="NSWindowRect">{{335, 413}, {725, 337}}</string> |
|
760 | 760 | <int key="NSWTFlags">1946157056</int> |
|
761 | 761 | <string key="NSWindowTitle">IPython1 (Cocoa)</string> |
|
762 | 762 | <string key="NSWindowClass">NSWindow</string> |
|
763 | 763 | <nil key="NSViewClass"/> |
|
764 | 764 | <object class="NSView" key="NSWindowView" id="439893737"> |
|
765 | 765 | <reference key="NSNextResponder"/> |
|
766 | 766 | <int key="NSvFlags">256</int> |
|
767 | 767 | <object class="NSMutableArray" key="NSSubviews"> |
|
768 | 768 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
769 | 769 | <object class="NSSplitView" id="741760375"> |
|
770 | 770 | <reference key="NSNextResponder" ref="439893737"/> |
|
771 | 771 | <int key="NSvFlags">274</int> |
|
772 | 772 | <object class="NSMutableArray" key="NSSubviews"> |
|
773 | 773 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
774 | 774 | <object class="NSBox" id="554641139"> |
|
775 | 775 | <reference key="NSNextResponder" ref="741760375"/> |
|
776 | 776 | <int key="NSvFlags">22</int> |
|
777 | 777 | <object class="NSMutableArray" key="NSSubviews"> |
|
778 | 778 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
779 | 779 | <object class="NSView" id="597872307"> |
|
780 | 780 | <reference key="NSNextResponder" ref="554641139"/> |
|
781 | 781 | <int key="NSvFlags">256</int> |
|
782 | 782 | <object class="NSMutableArray" key="NSSubviews"> |
|
783 | 783 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
784 | 784 | <object class="NSScrollView" id="188193463"> |
|
785 | 785 | <reference key="NSNextResponder" ref="597872307"/> |
|
786 | 786 | <int key="NSvFlags">274</int> |
|
787 | 787 | <object class="NSMutableArray" key="NSSubviews"> |
|
788 | 788 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
789 | 789 | <object class="NSClipView" id="638544389"> |
|
790 | 790 | <reference key="NSNextResponder" ref="188193463"/> |
|
791 | 791 | <int key="NSvFlags">2304</int> |
|
792 | 792 | <object class="NSMutableArray" key="NSSubviews"> |
|
793 | 793 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
794 | 794 | <object class="NSTextView" id="163417131"> |
|
795 | 795 | <reference key="NSNextResponder" ref="638544389"/> |
|
796 | 796 | <int key="NSvFlags">2322</int> |
|
797 | 797 | <object class="NSMutableSet" key="NSDragTypes"> |
|
798 | 798 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
799 | 799 | <object class="NSMutableArray" key="set.sortedObjects"> |
|
800 | 800 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
801 | 801 | <string>Apple HTML pasteboard type</string> |
|
802 | 802 | <string>Apple PDF pasteboard type</string> |
|
803 | 803 | <string>Apple PICT pasteboard type</string> |
|
804 | 804 | <string>Apple PNG pasteboard type</string> |
|
805 | 805 | <string>Apple URL pasteboard type</string> |
|
806 | 806 | <string>CorePasteboardFlavorType 0x6D6F6F76</string> |
|
807 | 807 | <string>CorePasteboardFlavorType 0x75726C20</string> |
|
808 | 808 | <string>NSColor pasteboard type</string> |
|
809 | 809 | <string>NSFilenamesPboardType</string> |
|
810 | 810 | <string>NSStringPboardType</string> |
|
811 | 811 | <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> |
|
812 | 812 | <string>NeXT RTFD pasteboard type</string> |
|
813 | 813 | <string>NeXT Rich Text Format v1.0 pasteboard type</string> |
|
814 | 814 | <string>NeXT TIFF v4.0 pasteboard type</string> |
|
815 | 815 | <string>NeXT font pasteboard type</string> |
|
816 | 816 | <string>NeXT ruler pasteboard type</string> |
|
817 | 817 | <string>WebURLsWithTitlesPboardType</string> |
|
818 | 818 | </object> |
|
819 | 819 | </object> |
|
820 | 820 | <string key="NSFrame">{{0, 38}, {433, 14}}</string> |
|
821 | 821 | <reference key="NSSuperview" ref="638544389"/> |
|
822 | 822 | <reference key="NSWindow"/> |
|
823 | 823 | <object class="NSTextContainer" key="NSTextContainer" id="662117317"> |
|
824 | 824 | <object class="NSLayoutManager" key="NSLayoutManager"> |
|
825 | 825 | <object class="NSTextStorage" key="NSTextStorage"> |
|
826 | 826 | <object class="NSMutableString" key="NSString"> |
|
827 | 827 | <characters key="NS.bytes"/> |
|
828 | 828 | </object> |
|
829 | 829 | <nil key="NSDelegate"/> |
|
830 | 830 | </object> |
|
831 | 831 | <object class="NSMutableArray" key="NSTextContainers"> |
|
832 | 832 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
833 | 833 | <reference ref="662117317"/> |
|
834 | 834 | </object> |
|
835 | 835 | <int key="NSLMFlags">6</int> |
|
836 | 836 | <nil key="NSDelegate"/> |
|
837 | 837 | </object> |
|
838 | 838 | <reference key="NSTextView" ref="163417131"/> |
|
839 | 839 | <double key="NSWidth">4.330000e+02</double> |
|
840 | 840 | <int key="NSTCFlags">1</int> |
|
841 | 841 | </object> |
|
842 | 842 | <object class="NSTextViewSharedData" key="NSSharedData"> |
|
843 | 843 | <int key="NSFlags">346991</int> |
|
844 | 844 | <object class="NSColor" key="NSBackgroundColor"> |
|
845 | 845 | <int key="NSColorSpace">2</int> |
|
846 | 846 | <bytes key="NSRGB">MSAwLjk1Mjk0MTI0IDAuODUwOTgwNDYAA</bytes> |
|
847 | 847 | </object> |
|
848 | 848 | <object class="NSColor" key="NSInsertionColor" id="555789289"> |
|
849 | 849 | <int key="NSColorSpace">3</int> |
|
850 | 850 | <bytes key="NSWhite">MAA</bytes> |
|
851 | 851 | </object> |
|
852 | 852 | <object class="NSDictionary" key="NSSelectedAttributes"> |
|
853 | 853 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
854 | 854 | <object class="NSMutableArray" key="dict.sortedKeys"> |
|
855 | 855 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
856 | 856 | <string>NSBackgroundColor</string> |
|
857 | 857 | <string id="19777717">NSColor</string> |
|
858 | 858 | </object> |
|
859 | 859 | <object class="NSMutableArray" key="dict.values"> |
|
860 | 860 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
861 | 861 | <object class="NSColor"> |
|
862 | 862 | <int key="NSColorSpace">6</int> |
|
863 |
<string key="NSCatalogName" id=" |
|
|
863 | <string key="NSCatalogName" id="484387293">System</string> | |
|
864 | 864 | <string key="NSColorName">selectedTextBackgroundColor</string> |
|
865 | 865 | <object class="NSColor" key="NSColor" id="377165725"> |
|
866 | 866 | <int key="NSColorSpace">3</int> |
|
867 | 867 | <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> |
|
868 | 868 | </object> |
|
869 | 869 | </object> |
|
870 | 870 | <object class="NSColor"> |
|
871 | 871 | <int key="NSColorSpace">6</int> |
|
872 |
<reference key="NSCatalogName" ref=" |
|
|
872 | <reference key="NSCatalogName" ref="484387293"/> | |
|
873 | 873 | <string key="NSColorName">selectedTextColor</string> |
|
874 | 874 | <reference key="NSColor" ref="555789289"/> |
|
875 | 875 | </object> |
|
876 | 876 | </object> |
|
877 | 877 | </object> |
|
878 | 878 | <nil key="NSMarkedAttributes"/> |
|
879 | 879 | <object class="NSDictionary" key="NSLinkAttributes"> |
|
880 | 880 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
881 | 881 | <object class="NSMutableArray" key="dict.sortedKeys"> |
|
882 | 882 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
883 | 883 | <reference ref="19777717"/> |
|
884 | 884 | <string>NSUnderline</string> |
|
885 | 885 | </object> |
|
886 | 886 | <object class="NSMutableArray" key="dict.values"> |
|
887 | 887 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
888 | 888 | <object class="NSColor"> |
|
889 | 889 | <int key="NSColorSpace">1</int> |
|
890 | 890 | <bytes key="NSRGB">MCAwIDEAA</bytes> |
|
891 | 891 | </object> |
|
892 | 892 | <integer value="1" id="9"/> |
|
893 | 893 | </object> |
|
894 | 894 | </object> |
|
895 | 895 | <nil key="NSDefaultParagraphStyle"/> |
|
896 | 896 | </object> |
|
897 | 897 | <int key="NSTVFlags">6</int> |
|
898 | 898 | <string key="NSMaxSize">{480, 1e+07}</string> |
|
899 | 899 | <string key="NSMinize">{84, 0}</string> |
|
900 | 900 | <nil key="NSDelegate"/> |
|
901 | 901 | </object> |
|
902 | 902 | </object> |
|
903 | 903 | <string key="NSFrame">{{1, 1}, {433, 231}}</string> |
|
904 | 904 | <string key="NSBounds">{{0, 38}, {433, 231}}</string> |
|
905 | 905 | <reference key="NSSuperview" ref="188193463"/> |
|
906 | 906 | <reference key="NSWindow"/> |
|
907 | 907 | <reference key="NSNextKeyView" ref="163417131"/> |
|
908 | 908 | <reference key="NSDocView" ref="163417131"/> |
|
909 | 909 | <object class="NSColor" key="NSBGColor" id="521347521"> |
|
910 | 910 | <int key="NSColorSpace">3</int> |
|
911 | 911 | <bytes key="NSWhite">MQA</bytes> |
|
912 | 912 | </object> |
|
913 | 913 | <object class="NSCursor" key="NSCursor"> |
|
914 | 914 | <string key="NSHotSpot">{4, -5}</string> |
|
915 | 915 | <int key="NSCursorType">1</int> |
|
916 | 916 | </object> |
|
917 | 917 | <int key="NScvFlags">4</int> |
|
918 | 918 | </object> |
|
919 | 919 | <object class="NSScroller" id="418410897"> |
|
920 | 920 | <reference key="NSNextResponder" ref="188193463"/> |
|
921 | 921 | <int key="NSvFlags">-2147483392</int> |
|
922 | 922 | <string key="NSFrame">{{427, 1}, {15, 263}}</string> |
|
923 | 923 | <reference key="NSSuperview" ref="188193463"/> |
|
924 | 924 | <reference key="NSWindow"/> |
|
925 | 925 | <reference key="NSTarget" ref="188193463"/> |
|
926 | 926 | <string key="NSAction" id="688920982">_doScroller:</string> |
|
927 | 927 | <double key="NSPercent">3.389175e-01</double> |
|
928 | 928 | </object> |
|
929 | 929 | <object class="NSScroller" id="936733673"> |
|
930 | 930 | <reference key="NSNextResponder" ref="188193463"/> |
|
931 | 931 | <int key="NSvFlags">256</int> |
|
932 | 932 | <string key="NSFrame">{{-100, -100}, {87, 18}}</string> |
|
933 | 933 | <reference key="NSSuperview" ref="188193463"/> |
|
934 | 934 | <reference key="NSWindow"/> |
|
935 | 935 | <int key="NSsFlags">1</int> |
|
936 | 936 | <reference key="NSTarget" ref="188193463"/> |
|
937 | 937 | <reference key="NSAction" ref="688920982"/> |
|
938 | 938 | <double key="NSCurValue">1.000000e+00</double> |
|
939 | 939 | <double key="NSPercent">9.456522e-01</double> |
|
940 | 940 | </object> |
|
941 | 941 | </object> |
|
942 | 942 | <string key="NSFrame">{{18, 14}, {435, 233}}</string> |
|
943 | 943 | <reference key="NSSuperview" ref="597872307"/> |
|
944 | 944 | <reference key="NSWindow"/> |
|
945 | 945 | <reference key="NSNextKeyView" ref="638544389"/> |
|
946 | 946 | <int key="NSsFlags">530</int> |
|
947 | 947 | <reference key="NSVScroller" ref="418410897"/> |
|
948 | 948 | <reference key="NSHScroller" ref="936733673"/> |
|
949 | 949 | <reference key="NSContentView" ref="638544389"/> |
|
950 | 950 | </object> |
|
951 | 951 | </object> |
|
952 | 952 | <string key="NSFrame">{{1, 1}, {471, 257}}</string> |
|
953 | 953 | <reference key="NSSuperview" ref="554641139"/> |
|
954 | 954 | <reference key="NSWindow"/> |
|
955 | 955 | </object> |
|
956 | 956 | </object> |
|
957 | 957 | <string key="NSFrameSize">{473, 273}</string> |
|
958 | 958 | <reference key="NSSuperview" ref="741760375"/> |
|
959 | 959 | <reference key="NSWindow"/> |
|
960 | 960 | <string key="NSOffsets" id="1055927954">{0, 0}</string> |
|
961 | 961 | <object class="NSTextFieldCell" key="NSTitleCell"> |
|
962 | 962 | <int key="NSCellFlags">67239424</int> |
|
963 | 963 | <int key="NSCellFlags2">0</int> |
|
964 | 964 | <string key="NSContents">Console</string> |
|
965 | 965 | <object class="NSFont" key="NSSupport" id="26"> |
|
966 |
<string key="NSName" id=" |
|
|
966 | <string key="NSName" id="378950370">LucidaGrande</string> | |
|
967 | 967 | <double key="NSSize">1.100000e+01</double> |
|
968 | 968 | <int key="NSfFlags">3100</int> |
|
969 | 969 | </object> |
|
970 | 970 | <object class="NSColor" key="NSBackgroundColor" id="131515055"> |
|
971 | 971 | <int key="NSColorSpace">6</int> |
|
972 |
<reference key="NSCatalogName" ref=" |
|
|
972 | <reference key="NSCatalogName" ref="484387293"/> | |
|
973 | 973 | <string key="NSColorName">textBackgroundColor</string> |
|
974 | 974 | <reference key="NSColor" ref="521347521"/> |
|
975 | 975 | </object> |
|
976 | 976 | <object class="NSColor" key="NSTextColor"> |
|
977 | 977 | <int key="NSColorSpace">3</int> |
|
978 | 978 | <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> |
|
979 | 979 | </object> |
|
980 | 980 | </object> |
|
981 | 981 | <reference key="NSContentView" ref="597872307"/> |
|
982 | 982 | <int key="NSBorderType">1</int> |
|
983 | 983 | <int key="NSBoxType">0</int> |
|
984 | 984 | <int key="NSTitlePosition">2</int> |
|
985 | 985 | <bool key="NSTransparent">NO</bool> |
|
986 | 986 | </object> |
|
987 | 987 | <object class="NSBox" id="764100755"> |
|
988 | 988 | <reference key="NSNextResponder" ref="741760375"/> |
|
989 | 989 | <int key="NSvFlags">51</int> |
|
990 | 990 | <object class="NSMutableArray" key="NSSubviews"> |
|
991 | 991 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
992 | 992 | <object class="NSView" id="581281551"> |
|
993 | 993 | <reference key="NSNextResponder" ref="764100755"/> |
|
994 | 994 | <int key="NSvFlags">256</int> |
|
995 | 995 | <object class="NSMutableArray" key="NSSubviews"> |
|
996 | 996 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
997 | 997 | <object class="NSScrollView" id="516244966"> |
|
998 | 998 | <reference key="NSNextResponder" ref="581281551"/> |
|
999 | 999 | <int key="NSvFlags">274</int> |
|
1000 | 1000 | <object class="NSMutableArray" key="NSSubviews"> |
|
1001 | 1001 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1002 | 1002 | <object class="NSClipView" id="119083427"> |
|
1003 | 1003 | <reference key="NSNextResponder" ref="516244966"/> |
|
1004 | 1004 | <int key="NSvFlags">2304</int> |
|
1005 | 1005 | <object class="NSMutableArray" key="NSSubviews"> |
|
1006 | 1006 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1007 | 1007 | <object class="NSTableView" id="23853726"> |
|
1008 | 1008 | <reference key="NSNextResponder" ref="119083427"/> |
|
1009 | 1009 | <int key="NSvFlags">256</int> |
|
1010 | 1010 | <string key="NSFrameSize">{156, 200}</string> |
|
1011 | 1011 | <reference key="NSSuperview" ref="119083427"/> |
|
1012 | 1012 | <reference key="NSWindow"/> |
|
1013 | 1013 | <bool key="NSEnabled">YES</bool> |
|
1014 | 1014 | <object class="NSTableHeaderView" key="NSHeaderView" id="1048357090"> |
|
1015 | 1015 | <reference key="NSNextResponder" ref="746968320"/> |
|
1016 | 1016 | <int key="NSvFlags">256</int> |
|
1017 | 1017 | <string key="NSFrameSize">{156, 17}</string> |
|
1018 | 1018 | <reference key="NSSuperview" ref="746968320"/> |
|
1019 | 1019 | <reference key="NSWindow"/> |
|
1020 | 1020 | <reference key="NSTableView" ref="23853726"/> |
|
1021 | 1021 | </object> |
|
1022 | 1022 | <object class="_NSCornerView" key="NSCornerView" id="212282722"> |
|
1023 | 1023 | <reference key="NSNextResponder" ref="516244966"/> |
|
1024 | 1024 | <int key="NSvFlags">256</int> |
|
1025 | 1025 | <string key="NSFrame">{{157, 0}, {16, 17}}</string> |
|
1026 | 1026 | <reference key="NSSuperview" ref="516244966"/> |
|
1027 | 1027 | <reference key="NSWindow"/> |
|
1028 | 1028 | </object> |
|
1029 | 1029 | <object class="NSMutableArray" key="NSTableColumns"> |
|
1030 | 1030 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1031 | 1031 | <object class="NSTableColumn" id="920426212"> |
|
1032 | 1032 | <double key="NSWidth">7.100000e+01</double> |
|
1033 | 1033 | <double key="NSMinWidth">4.000000e+01</double> |
|
1034 | 1034 | <double key="NSMaxWidth">1.000000e+03</double> |
|
1035 | 1035 | <object class="NSTableHeaderCell" key="NSHeaderCell"> |
|
1036 | 1036 | <int key="NSCellFlags">75628032</int> |
|
1037 | 1037 | <int key="NSCellFlags2">0</int> |
|
1038 | 1038 | <string key="NSContents">Variable</string> |
|
1039 | 1039 | <reference key="NSSupport" ref="26"/> |
|
1040 | 1040 | <object class="NSColor" key="NSBackgroundColor" id="890615311"> |
|
1041 | 1041 | <int key="NSColorSpace">3</int> |
|
1042 | 1042 | <bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes> |
|
1043 | 1043 | </object> |
|
1044 | 1044 | <object class="NSColor" key="NSTextColor" id="866628999"> |
|
1045 | 1045 | <int key="NSColorSpace">6</int> |
|
1046 |
<reference key="NSCatalogName" ref=" |
|
|
1046 | <reference key="NSCatalogName" ref="484387293"/> | |
|
1047 | 1047 | <string key="NSColorName">headerTextColor</string> |
|
1048 | 1048 | <reference key="NSColor" ref="555789289"/> |
|
1049 | 1049 | </object> |
|
1050 | 1050 | </object> |
|
1051 | 1051 | <object class="NSTextFieldCell" key="NSDataCell" id="525071236"> |
|
1052 | 1052 | <int key="NSCellFlags">337772096</int> |
|
1053 | 1053 | <int key="NSCellFlags2">2048</int> |
|
1054 |
<string key="NSContents" id=" |
|
|
1054 | <string key="NSContents" id="456204663">Text Cell</string> | |
|
1055 | 1055 | <object class="NSFont" key="NSSupport" id="8196371"> |
|
1056 |
<reference key="NSName" ref=" |
|
|
1056 | <reference key="NSName" ref="378950370"/> | |
|
1057 | 1057 | <double key="NSSize">1.300000e+01</double> |
|
1058 | 1058 | <int key="NSfFlags">1044</int> |
|
1059 | 1059 | </object> |
|
1060 | 1060 | <reference key="NSControlView" ref="23853726"/> |
|
1061 | 1061 | <object class="NSColor" key="NSBackgroundColor" id="224028609"> |
|
1062 | 1062 | <int key="NSColorSpace">6</int> |
|
1063 |
<reference key="NSCatalogName" ref=" |
|
|
1063 | <reference key="NSCatalogName" ref="484387293"/> | |
|
1064 | 1064 | <string key="NSColorName">controlBackgroundColor</string> |
|
1065 | 1065 | <reference key="NSColor" ref="377165725"/> |
|
1066 | 1066 | </object> |
|
1067 | 1067 | <object class="NSColor" key="NSTextColor" id="205104690"> |
|
1068 | 1068 | <int key="NSColorSpace">6</int> |
|
1069 |
<reference key="NSCatalogName" ref=" |
|
|
1069 | <reference key="NSCatalogName" ref="484387293"/> | |
|
1070 | 1070 | <string key="NSColorName">controlTextColor</string> |
|
1071 | 1071 | <reference key="NSColor" ref="555789289"/> |
|
1072 | 1072 | </object> |
|
1073 | 1073 | </object> |
|
1074 | 1074 | <int key="NSResizingMask">3</int> |
|
1075 | 1075 | <bool key="NSIsResizeable">YES</bool> |
|
1076 | 1076 | <bool key="NSIsEditable">YES</bool> |
|
1077 | 1077 | <reference key="NSTableView" ref="23853726"/> |
|
1078 | 1078 | </object> |
|
1079 | 1079 | <object class="NSTableColumn" id="857054683"> |
|
1080 | 1080 | <double key="NSWidth">7.900000e+01</double> |
|
1081 | 1081 | <double key="NSMinWidth">4.000000e+01</double> |
|
1082 | 1082 | <double key="NSMaxWidth">1.000000e+03</double> |
|
1083 | 1083 | <object class="NSTableHeaderCell" key="NSHeaderCell"> |
|
1084 | 1084 | <int key="NSCellFlags">75628032</int> |
|
1085 | 1085 | <int key="NSCellFlags2">0</int> |
|
1086 | 1086 | <string key="NSContents">Value</string> |
|
1087 | 1087 | <reference key="NSSupport" ref="26"/> |
|
1088 | 1088 | <reference key="NSBackgroundColor" ref="890615311"/> |
|
1089 | 1089 | <reference key="NSTextColor" ref="866628999"/> |
|
1090 | 1090 | </object> |
|
1091 | 1091 | <object class="NSTextFieldCell" key="NSDataCell" id="377147224"> |
|
1092 | 1092 | <int key="NSCellFlags">337772096</int> |
|
1093 | 1093 | <int key="NSCellFlags2">2048</int> |
|
1094 |
<reference key="NSContents" ref=" |
|
|
1094 | <reference key="NSContents" ref="456204663"/> | |
|
1095 | 1095 | <reference key="NSSupport" ref="8196371"/> |
|
1096 | 1096 | <reference key="NSControlView" ref="23853726"/> |
|
1097 | 1097 | <reference key="NSBackgroundColor" ref="224028609"/> |
|
1098 | 1098 | <reference key="NSTextColor" ref="205104690"/> |
|
1099 | 1099 | </object> |
|
1100 | 1100 | <int key="NSResizingMask">3</int> |
|
1101 | 1101 | <bool key="NSIsResizeable">YES</bool> |
|
1102 | 1102 | <bool key="NSIsEditable">YES</bool> |
|
1103 | 1103 | <reference key="NSTableView" ref="23853726"/> |
|
1104 | 1104 | </object> |
|
1105 | 1105 | </object> |
|
1106 | 1106 | <double key="NSIntercellSpacingWidth">3.000000e+00</double> |
|
1107 | 1107 | <double key="NSIntercellSpacingHeight">2.000000e+00</double> |
|
1108 | 1108 | <reference key="NSBackgroundColor" ref="521347521"/> |
|
1109 | 1109 | <object class="NSColor" key="NSGridColor"> |
|
1110 | 1110 | <int key="NSColorSpace">6</int> |
|
1111 |
<reference key="NSCatalogName" ref=" |
|
|
1111 | <reference key="NSCatalogName" ref="484387293"/> | |
|
1112 | 1112 | <string key="NSColorName">gridColor</string> |
|
1113 | 1113 | <object class="NSColor" key="NSColor"> |
|
1114 | 1114 | <int key="NSColorSpace">3</int> |
|
1115 | 1115 | <bytes key="NSWhite">MC41AA</bytes> |
|
1116 | 1116 | </object> |
|
1117 | 1117 | </object> |
|
1118 | 1118 | <double key="NSRowHeight">1.700000e+01</double> |
|
1119 | 1119 | <int key="NSTvFlags">-692060160</int> |
|
1120 | 1120 | <int key="NSGridStyleMask">1</int> |
|
1121 | 1121 | <int key="NSColumnAutoresizingStyle">4</int> |
|
1122 | 1122 | <int key="NSDraggingSourceMaskForLocal">15</int> |
|
1123 | 1123 | <int key="NSDraggingSourceMaskForNonLocal">0</int> |
|
1124 | 1124 | <bool key="NSAllowsTypeSelect">YES</bool> |
|
1125 | 1125 | </object> |
|
1126 | 1126 | </object> |
|
1127 | 1127 | <string key="NSFrame">{{1, 17}, {156, 200}}</string> |
|
1128 | 1128 | <reference key="NSSuperview" ref="516244966"/> |
|
1129 | 1129 | <reference key="NSWindow"/> |
|
1130 | 1130 | <reference key="NSNextKeyView" ref="23853726"/> |
|
1131 | 1131 | <reference key="NSDocView" ref="23853726"/> |
|
1132 | 1132 | <reference key="NSBGColor" ref="224028609"/> |
|
1133 | 1133 | <int key="NScvFlags">4</int> |
|
1134 | 1134 | </object> |
|
1135 | 1135 | <object class="NSScroller" id="512953560"> |
|
1136 | 1136 | <reference key="NSNextResponder" ref="516244966"/> |
|
1137 | 1137 | <int key="NSvFlags">256</int> |
|
1138 | 1138 | <string key="NSFrame">{{157, 17}, {15, 200}}</string> |
|
1139 | 1139 | <reference key="NSSuperview" ref="516244966"/> |
|
1140 | 1140 | <reference key="NSWindow"/> |
|
1141 | 1141 | <reference key="NSTarget" ref="516244966"/> |
|
1142 | 1142 | <reference key="NSAction" ref="688920982"/> |
|
1143 | 1143 | <double key="NSPercent">9.961240e-01</double> |
|
1144 | 1144 | </object> |
|
1145 | 1145 | <object class="NSScroller" id="47103270"> |
|
1146 | 1146 | <reference key="NSNextResponder" ref="516244966"/> |
|
1147 | 1147 | <int key="NSvFlags">256</int> |
|
1148 | 1148 | <string key="NSFrame">{{1, 217}, {156, 15}}</string> |
|
1149 | 1149 | <reference key="NSSuperview" ref="516244966"/> |
|
1150 | 1150 | <reference key="NSWindow"/> |
|
1151 | 1151 | <int key="NSsFlags">1</int> |
|
1152 | 1152 | <reference key="NSTarget" ref="516244966"/> |
|
1153 | 1153 | <reference key="NSAction" ref="688920982"/> |
|
1154 | 1154 | <double key="NSPercent">7.179487e-01</double> |
|
1155 | 1155 | </object> |
|
1156 | 1156 | <object class="NSClipView" id="746968320"> |
|
1157 | 1157 | <reference key="NSNextResponder" ref="516244966"/> |
|
1158 | 1158 | <int key="NSvFlags">2304</int> |
|
1159 | 1159 | <object class="NSMutableArray" key="NSSubviews"> |
|
1160 | 1160 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1161 | 1161 | <reference ref="1048357090"/> |
|
1162 | 1162 | </object> |
|
1163 | 1163 | <string key="NSFrame">{{1, 0}, {156, 17}}</string> |
|
1164 | 1164 | <reference key="NSSuperview" ref="516244966"/> |
|
1165 | 1165 | <reference key="NSWindow"/> |
|
1166 | 1166 | <reference key="NSNextKeyView" ref="1048357090"/> |
|
1167 | 1167 | <reference key="NSDocView" ref="1048357090"/> |
|
1168 | 1168 | <reference key="NSBGColor" ref="224028609"/> |
|
1169 | 1169 | <int key="NScvFlags">4</int> |
|
1170 | 1170 | </object> |
|
1171 | 1171 | <reference ref="212282722"/> |
|
1172 | 1172 | </object> |
|
1173 | 1173 | <string key="NSFrame">{{18, 14}, {173, 233}}</string> |
|
1174 | 1174 | <reference key="NSSuperview" ref="581281551"/> |
|
1175 | 1175 | <reference key="NSWindow"/> |
|
1176 | 1176 | <reference key="NSNextKeyView" ref="119083427"/> |
|
1177 | 1177 | <int key="NSsFlags">50</int> |
|
1178 | 1178 | <reference key="NSVScroller" ref="512953560"/> |
|
1179 | 1179 | <reference key="NSHScroller" ref="47103270"/> |
|
1180 | 1180 | <reference key="NSContentView" ref="119083427"/> |
|
1181 | 1181 | <reference key="NSHeaderClipView" ref="746968320"/> |
|
1182 | 1182 | <reference key="NSCornerView" ref="212282722"/> |
|
1183 | 1183 | <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes> |
|
1184 | 1184 | </object> |
|
1185 | 1185 | </object> |
|
1186 | 1186 | <string key="NSFrame">{{1, 1}, {209, 257}}</string> |
|
1187 | 1187 | <reference key="NSSuperview" ref="764100755"/> |
|
1188 | 1188 | <reference key="NSWindow"/> |
|
1189 | 1189 | </object> |
|
1190 | 1190 | </object> |
|
1191 | 1191 | <string key="NSFrame">{{474, 0}, {211, 273}}</string> |
|
1192 | 1192 | <reference key="NSSuperview" ref="741760375"/> |
|
1193 | 1193 | <reference key="NSWindow"/> |
|
1194 | 1194 | <reference key="NSOffsets" ref="1055927954"/> |
|
1195 | 1195 | <object class="NSTextFieldCell" key="NSTitleCell"> |
|
1196 | 1196 | <int key="NSCellFlags">67239424</int> |
|
1197 | 1197 | <int key="NSCellFlags2">0</int> |
|
1198 | 1198 | <string key="NSContents">Workspace</string> |
|
1199 | 1199 | <reference key="NSSupport" ref="26"/> |
|
1200 | 1200 | <reference key="NSBackgroundColor" ref="131515055"/> |
|
1201 | 1201 | <object class="NSColor" key="NSTextColor"> |
|
1202 | 1202 | <int key="NSColorSpace">3</int> |
|
1203 | 1203 | <bytes key="NSWhite">MCAwLjgwMDAwMDAxAA</bytes> |
|
1204 | 1204 | </object> |
|
1205 | 1205 | </object> |
|
1206 | 1206 | <reference key="NSContentView" ref="581281551"/> |
|
1207 | 1207 | <int key="NSBorderType">1</int> |
|
1208 | 1208 | <int key="NSBoxType">0</int> |
|
1209 | 1209 | <int key="NSTitlePosition">2</int> |
|
1210 | 1210 | <bool key="NSTransparent">NO</bool> |
|
1211 | 1211 | </object> |
|
1212 | 1212 | </object> |
|
1213 | 1213 | <string key="NSFrame">{{20, 44}, {685, 273}}</string> |
|
1214 | 1214 | <reference key="NSSuperview" ref="439893737"/> |
|
1215 | 1215 | <reference key="NSWindow"/> |
|
1216 | 1216 | <bool key="NSIsVertical">YES</bool> |
|
1217 | 1217 | <int key="NSDividerStyle">2</int> |
|
1218 | 1218 | <string key="NSAutosaveName">ipython1_console_workspace_split</string> |
|
1219 | 1219 | </object> |
|
1220 | 1220 | <object class="NSProgressIndicator" id="74807016"> |
|
1221 | 1221 | <reference key="NSNextResponder" ref="439893737"/> |
|
1222 | 1222 | <int key="NSvFlags">1313</int> |
|
1223 | 1223 | <object class="NSPSMatrix" key="NSDrawMatrix"/> |
|
1224 | 1224 | <string key="NSFrame">{{689, 20}, {16, 16}}</string> |
|
1225 | 1225 | <reference key="NSSuperview" ref="439893737"/> |
|
1226 | 1226 | <reference key="NSWindow"/> |
|
1227 | 1227 | <int key="NSpiFlags">28938</int> |
|
1228 | 1228 | <double key="NSMinValue">1.600000e+01</double> |
|
1229 | 1229 | <double key="NSMaxValue">1.000000e+02</double> |
|
1230 | 1230 | </object> |
|
1231 | 1231 | </object> |
|
1232 | 1232 | <string key="NSFrameSize">{725, 337}</string> |
|
1233 | 1233 | <reference key="NSSuperview"/> |
|
1234 | 1234 | <reference key="NSWindow"/> |
|
1235 | 1235 | </object> |
|
1236 | 1236 | <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> |
|
1237 | 1237 | <string key="NSFrameAutosaveName">ipython1_sandbox</string> |
|
1238 | 1238 | </object> |
|
1239 | 1239 | <object class="NSCustomObject" id="610635028"> |
|
1240 | 1240 | <string key="NSClassName" id="982950837">IPython1SandboxAppDelegate</string> |
|
1241 | 1241 | </object> |
|
1242 | 1242 | <object class="NSDictionaryController" id="808393665"> |
|
1243 | 1243 | <object class="NSMutableArray" key="NSDeclaredKeys"> |
|
1244 | 1244 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1245 | 1245 | <string>keys</string> |
|
1246 | 1246 | <string id="181461860">key</string> |
|
1247 | 1247 | <string id="276523235">value</string> |
|
1248 | 1248 | </object> |
|
1249 | 1249 | <bool key="NSEditable">YES</bool> |
|
1250 | 1250 | <bool key="NSAvoidsEmptySelection">YES</bool> |
|
1251 | 1251 | <bool key="NSPreservesSelection">YES</bool> |
|
1252 | 1252 | <bool key="NSSelectsInsertedObjects">YES</bool> |
|
1253 | 1253 | <bool key="NSFilterRestrictsInsertion">YES</bool> |
|
1254 | 1254 | <object class="NSArray" key="NSSortDescriptors"> |
|
1255 | 1255 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1256 | 1256 | <object class="NSSortDescriptor"> |
|
1257 | 1257 | <reference key="NSKey" ref="181461860"/> |
|
1258 | 1258 | <bool key="NSAscending">YES</bool> |
|
1259 | 1259 | <string key="NSSelector">compare:</string> |
|
1260 | 1260 | </object> |
|
1261 | 1261 | </object> |
|
1262 | 1262 | <bool key="NSClearsFilterPredicateOnInsertion">YES</bool> |
|
1263 | 1263 | <reference key="NSInitialKey" ref="181461860"/> |
|
1264 | 1264 | <reference key="NSInitialValue" ref="276523235"/> |
|
1265 | 1265 | </object> |
|
1266 | 1266 | <object class="NSCustomObject" id="631572152"> |
|
1267 | 1267 | <string key="NSClassName" id="695797635">IPythonCocoaController</string> |
|
1268 | 1268 | </object> |
|
1269 | 1269 | </object> |
|
1270 | 1270 | <object class="IBObjectContainer" key="IBDocument.Objects"> |
|
1271 | 1271 | <object class="NSMutableArray" key="connectionRecords"> |
|
1272 | 1272 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1273 | 1273 | <object class="IBConnectionRecord"> |
|
1274 | 1274 | <object class="IBActionConnection" key="connection"> |
|
1275 | 1275 | <string key="label">performMiniaturize:</string> |
|
1276 | 1276 | <reference key="source" ref="1014"/> |
|
1277 | 1277 | <reference key="destination" ref="1011231497"/> |
|
1278 | 1278 | </object> |
|
1279 | 1279 | <int key="connectionID">37</int> |
|
1280 | 1280 | </object> |
|
1281 | 1281 | <object class="IBConnectionRecord"> |
|
1282 | 1282 | <object class="IBActionConnection" key="connection"> |
|
1283 | 1283 | <string key="label">arrangeInFront:</string> |
|
1284 | 1284 | <reference key="source" ref="1014"/> |
|
1285 | 1285 | <reference key="destination" ref="625202149"/> |
|
1286 | 1286 | </object> |
|
1287 | 1287 | <int key="connectionID">39</int> |
|
1288 | 1288 | </object> |
|
1289 | 1289 | <object class="IBConnectionRecord"> |
|
1290 | 1290 | <object class="IBActionConnection" key="connection"> |
|
1291 | 1291 | <string key="label">print:</string> |
|
1292 | 1292 | <reference key="source" ref="1014"/> |
|
1293 | 1293 | <reference key="destination" ref="49223823"/> |
|
1294 | 1294 | </object> |
|
1295 | 1295 | <int key="connectionID">86</int> |
|
1296 | 1296 | </object> |
|
1297 | 1297 | <object class="IBConnectionRecord"> |
|
1298 | 1298 | <object class="IBActionConnection" key="connection"> |
|
1299 | 1299 | <string key="label">runPageLayout:</string> |
|
1300 | 1300 | <reference key="source" ref="1014"/> |
|
1301 | 1301 | <reference key="destination" ref="294629803"/> |
|
1302 | 1302 | </object> |
|
1303 | 1303 | <int key="connectionID">87</int> |
|
1304 | 1304 | </object> |
|
1305 | 1305 | <object class="IBConnectionRecord"> |
|
1306 | 1306 | <object class="IBActionConnection" key="connection"> |
|
1307 | 1307 | <string key="label">clearRecentDocuments:</string> |
|
1308 | 1308 | <reference key="source" ref="1014"/> |
|
1309 | 1309 | <reference key="destination" ref="759406840"/> |
|
1310 | 1310 | </object> |
|
1311 | 1311 | <int key="connectionID">127</int> |
|
1312 | 1312 | </object> |
|
1313 | 1313 | <object class="IBConnectionRecord"> |
|
1314 | 1314 | <object class="IBActionConnection" key="connection"> |
|
1315 | 1315 | <string key="label">orderFrontStandardAboutPanel:</string> |
|
1316 | 1316 | <reference key="source" ref="1021"/> |
|
1317 | 1317 | <reference key="destination" ref="238522557"/> |
|
1318 | 1318 | </object> |
|
1319 | 1319 | <int key="connectionID">142</int> |
|
1320 | 1320 | </object> |
|
1321 | 1321 | <object class="IBConnectionRecord"> |
|
1322 | 1322 | <object class="IBActionConnection" key="connection"> |
|
1323 | 1323 | <string key="label">performClose:</string> |
|
1324 | 1324 | <reference key="source" ref="1014"/> |
|
1325 | 1325 | <reference key="destination" ref="776162233"/> |
|
1326 | 1326 | </object> |
|
1327 | 1327 | <int key="connectionID">193</int> |
|
1328 | 1328 | </object> |
|
1329 | 1329 | <object class="IBConnectionRecord"> |
|
1330 | 1330 | <object class="IBActionConnection" key="connection"> |
|
1331 | 1331 | <string key="label">toggleContinuousSpellChecking:</string> |
|
1332 | 1332 | <reference key="source" ref="1014"/> |
|
1333 | 1333 | <reference key="destination" ref="948374510"/> |
|
1334 | 1334 | </object> |
|
1335 | 1335 | <int key="connectionID">222</int> |
|
1336 | 1336 | </object> |
|
1337 | 1337 | <object class="IBConnectionRecord"> |
|
1338 | 1338 | <object class="IBActionConnection" key="connection"> |
|
1339 | 1339 | <string key="label">undo:</string> |
|
1340 | 1340 | <reference key="source" ref="1014"/> |
|
1341 | 1341 | <reference key="destination" ref="1058277027"/> |
|
1342 | 1342 | </object> |
|
1343 | 1343 | <int key="connectionID">223</int> |
|
1344 | 1344 | </object> |
|
1345 | 1345 | <object class="IBConnectionRecord"> |
|
1346 | 1346 | <object class="IBActionConnection" key="connection"> |
|
1347 | 1347 | <string key="label">copy:</string> |
|
1348 | 1348 | <reference key="source" ref="1014"/> |
|
1349 | 1349 | <reference key="destination" ref="860595796"/> |
|
1350 | 1350 | </object> |
|
1351 | 1351 | <int key="connectionID">224</int> |
|
1352 | 1352 | </object> |
|
1353 | 1353 | <object class="IBConnectionRecord"> |
|
1354 | 1354 | <object class="IBActionConnection" key="connection"> |
|
1355 | 1355 | <string key="label">checkSpelling:</string> |
|
1356 | 1356 | <reference key="source" ref="1014"/> |
|
1357 | 1357 | <reference key="destination" ref="96193923"/> |
|
1358 | 1358 | </object> |
|
1359 | 1359 | <int key="connectionID">225</int> |
|
1360 | 1360 | </object> |
|
1361 | 1361 | <object class="IBConnectionRecord"> |
|
1362 | 1362 | <object class="IBActionConnection" key="connection"> |
|
1363 | 1363 | <string key="label">paste:</string> |
|
1364 | 1364 | <reference key="source" ref="1014"/> |
|
1365 | 1365 | <reference key="destination" ref="29853731"/> |
|
1366 | 1366 | </object> |
|
1367 | 1367 | <int key="connectionID">226</int> |
|
1368 | 1368 | </object> |
|
1369 | 1369 | <object class="IBConnectionRecord"> |
|
1370 | 1370 | <object class="IBActionConnection" key="connection"> |
|
1371 | 1371 | <string key="label">stopSpeaking:</string> |
|
1372 | 1372 | <reference key="source" ref="1014"/> |
|
1373 | 1373 | <reference key="destination" ref="680220178"/> |
|
1374 | 1374 | </object> |
|
1375 | 1375 | <int key="connectionID">227</int> |
|
1376 | 1376 | </object> |
|
1377 | 1377 | <object class="IBConnectionRecord"> |
|
1378 | 1378 | <object class="IBActionConnection" key="connection"> |
|
1379 | 1379 | <string key="label">cut:</string> |
|
1380 | 1380 | <reference key="source" ref="1014"/> |
|
1381 | 1381 | <reference key="destination" ref="296257095"/> |
|
1382 | 1382 | </object> |
|
1383 | 1383 | <int key="connectionID">228</int> |
|
1384 | 1384 | </object> |
|
1385 | 1385 | <object class="IBConnectionRecord"> |
|
1386 | 1386 | <object class="IBActionConnection" key="connection"> |
|
1387 | 1387 | <string key="label">showGuessPanel:</string> |
|
1388 | 1388 | <reference key="source" ref="1014"/> |
|
1389 | 1389 | <reference key="destination" ref="679648819"/> |
|
1390 | 1390 | </object> |
|
1391 | 1391 | <int key="connectionID">230</int> |
|
1392 | 1392 | </object> |
|
1393 | 1393 | <object class="IBConnectionRecord"> |
|
1394 | 1394 | <object class="IBActionConnection" key="connection"> |
|
1395 | 1395 | <string key="label">redo:</string> |
|
1396 | 1396 | <reference key="source" ref="1014"/> |
|
1397 | 1397 | <reference key="destination" ref="790794224"/> |
|
1398 | 1398 | </object> |
|
1399 | 1399 | <int key="connectionID">231</int> |
|
1400 | 1400 | </object> |
|
1401 | 1401 | <object class="IBConnectionRecord"> |
|
1402 | 1402 | <object class="IBActionConnection" key="connection"> |
|
1403 | 1403 | <string key="label">selectAll:</string> |
|
1404 | 1404 | <reference key="source" ref="1014"/> |
|
1405 | 1405 | <reference key="destination" ref="583158037"/> |
|
1406 | 1406 | </object> |
|
1407 | 1407 | <int key="connectionID">232</int> |
|
1408 | 1408 | </object> |
|
1409 | 1409 | <object class="IBConnectionRecord"> |
|
1410 | 1410 | <object class="IBActionConnection" key="connection"> |
|
1411 | 1411 | <string key="label">startSpeaking:</string> |
|
1412 | 1412 | <reference key="source" ref="1014"/> |
|
1413 | 1413 | <reference key="destination" ref="731782645"/> |
|
1414 | 1414 | </object> |
|
1415 | 1415 | <int key="connectionID">233</int> |
|
1416 | 1416 | </object> |
|
1417 | 1417 | <object class="IBConnectionRecord"> |
|
1418 | 1418 | <object class="IBActionConnection" key="connection"> |
|
1419 | 1419 | <string key="label">delete:</string> |
|
1420 | 1420 | <reference key="source" ref="1014"/> |
|
1421 | 1421 | <reference key="destination" ref="437104165"/> |
|
1422 | 1422 | </object> |
|
1423 | 1423 | <int key="connectionID">235</int> |
|
1424 | 1424 | </object> |
|
1425 | 1425 | <object class="IBConnectionRecord"> |
|
1426 | 1426 | <object class="IBActionConnection" key="connection"> |
|
1427 | 1427 | <string key="label">performZoom:</string> |
|
1428 | 1428 | <reference key="source" ref="1014"/> |
|
1429 | 1429 | <reference key="destination" ref="575023229"/> |
|
1430 | 1430 | </object> |
|
1431 | 1431 | <int key="connectionID">240</int> |
|
1432 | 1432 | </object> |
|
1433 | 1433 | <object class="IBConnectionRecord"> |
|
1434 | 1434 | <object class="IBActionConnection" key="connection"> |
|
1435 | 1435 | <string key="label">performFindPanelAction:</string> |
|
1436 | 1436 | <reference key="source" ref="1014"/> |
|
1437 | 1437 | <reference key="destination" ref="447796847"/> |
|
1438 | 1438 | </object> |
|
1439 | 1439 | <int key="connectionID">241</int> |
|
1440 | 1440 | </object> |
|
1441 | 1441 | <object class="IBConnectionRecord"> |
|
1442 | 1442 | <object class="IBActionConnection" key="connection"> |
|
1443 | 1443 | <string key="label">centerSelectionInVisibleArea:</string> |
|
1444 | 1444 | <reference key="source" ref="1014"/> |
|
1445 | 1445 | <reference key="destination" ref="88285865"/> |
|
1446 | 1446 | </object> |
|
1447 | 1447 | <int key="connectionID">245</int> |
|
1448 | 1448 | </object> |
|
1449 | 1449 | <object class="IBConnectionRecord"> |
|
1450 | 1450 | <object class="IBActionConnection" key="connection"> |
|
1451 | 1451 | <string key="label">toggleGrammarChecking:</string> |
|
1452 | 1452 | <reference key="source" ref="1014"/> |
|
1453 | 1453 | <reference key="destination" ref="967646866"/> |
|
1454 | 1454 | </object> |
|
1455 | 1455 | <int key="connectionID">347</int> |
|
1456 | 1456 | </object> |
|
1457 | 1457 | <object class="IBConnectionRecord"> |
|
1458 | 1458 | <object class="IBActionConnection" key="connection"> |
|
1459 | 1459 | <string key="label">toggleSmartInsertDelete:</string> |
|
1460 | 1460 | <reference key="source" ref="1014"/> |
|
1461 | 1461 | <reference key="destination" ref="605118523"/> |
|
1462 | 1462 | </object> |
|
1463 | 1463 | <int key="connectionID">355</int> |
|
1464 | 1464 | </object> |
|
1465 | 1465 | <object class="IBConnectionRecord"> |
|
1466 | 1466 | <object class="IBActionConnection" key="connection"> |
|
1467 | 1467 | <string key="label">toggleAutomaticQuoteSubstitution:</string> |
|
1468 | 1468 | <reference key="source" ref="1014"/> |
|
1469 | 1469 | <reference key="destination" ref="197661976"/> |
|
1470 | 1470 | </object> |
|
1471 | 1471 | <int key="connectionID">356</int> |
|
1472 | 1472 | </object> |
|
1473 | 1473 | <object class="IBConnectionRecord"> |
|
1474 | 1474 | <object class="IBActionConnection" key="connection"> |
|
1475 | 1475 | <string key="label">toggleAutomaticLinkDetection:</string> |
|
1476 | 1476 | <reference key="source" ref="1014"/> |
|
1477 | 1477 | <reference key="destination" ref="708854459"/> |
|
1478 | 1478 | </object> |
|
1479 | 1479 | <int key="connectionID">357</int> |
|
1480 | 1480 | </object> |
|
1481 | 1481 | <object class="IBConnectionRecord"> |
|
1482 | 1482 | <object class="IBActionConnection" key="connection"> |
|
1483 | 1483 | <string key="label">showHelp:</string> |
|
1484 | 1484 | <reference key="source" ref="1014"/> |
|
1485 | 1485 | <reference key="destination" ref="238773614"/> |
|
1486 | 1486 | </object> |
|
1487 | 1487 | <int key="connectionID">360</int> |
|
1488 | 1488 | </object> |
|
1489 | 1489 | <object class="IBConnectionRecord"> |
|
1490 | 1490 | <object class="IBActionConnection" key="connection"> |
|
1491 | 1491 | <string key="label">orderFrontColorPanel:</string> |
|
1492 | 1492 | <reference key="source" ref="1014"/> |
|
1493 | 1493 | <reference key="destination" ref="1028416764"/> |
|
1494 | 1494 | </object> |
|
1495 | 1495 | <int key="connectionID">361</int> |
|
1496 | 1496 | </object> |
|
1497 | 1497 | <object class="IBConnectionRecord"> |
|
1498 | 1498 | <object class="IBActionConnection" key="connection"> |
|
1499 | 1499 | <string key="label">saveDocument:</string> |
|
1500 | 1500 | <reference key="source" ref="1014"/> |
|
1501 | 1501 | <reference key="destination" ref="1023925487"/> |
|
1502 | 1502 | </object> |
|
1503 | 1503 | <int key="connectionID">362</int> |
|
1504 | 1504 | </object> |
|
1505 | 1505 | <object class="IBConnectionRecord"> |
|
1506 | 1506 | <object class="IBActionConnection" key="connection"> |
|
1507 | 1507 | <string key="label">saveDocumentAs:</string> |
|
1508 | 1508 | <reference key="source" ref="1014"/> |
|
1509 | 1509 | <reference key="destination" ref="117038363"/> |
|
1510 | 1510 | </object> |
|
1511 | 1511 | <int key="connectionID">363</int> |
|
1512 | 1512 | </object> |
|
1513 | 1513 | <object class="IBConnectionRecord"> |
|
1514 | 1514 | <object class="IBActionConnection" key="connection"> |
|
1515 | 1515 | <string key="label">revertDocumentToSaved:</string> |
|
1516 | 1516 | <reference key="source" ref="1014"/> |
|
1517 | 1517 | <reference key="destination" ref="579971712"/> |
|
1518 | 1518 | </object> |
|
1519 | 1519 | <int key="connectionID">364</int> |
|
1520 | 1520 | </object> |
|
1521 | 1521 | <object class="IBConnectionRecord"> |
|
1522 | 1522 | <object class="IBActionConnection" key="connection"> |
|
1523 | 1523 | <string key="label">runToolbarCustomizationPalette:</string> |
|
1524 | 1524 | <reference key="source" ref="1014"/> |
|
1525 | 1525 | <reference key="destination" ref="237841660"/> |
|
1526 | 1526 | </object> |
|
1527 | 1527 | <int key="connectionID">365</int> |
|
1528 | 1528 | </object> |
|
1529 | 1529 | <object class="IBConnectionRecord"> |
|
1530 | 1530 | <object class="IBActionConnection" key="connection"> |
|
1531 | 1531 | <string key="label">toggleToolbarShown:</string> |
|
1532 | 1532 | <reference key="source" ref="1014"/> |
|
1533 | 1533 | <reference key="destination" ref="102151532"/> |
|
1534 | 1534 | </object> |
|
1535 | 1535 | <int key="connectionID">366</int> |
|
1536 | 1536 | </object> |
|
1537 | 1537 | <object class="IBConnectionRecord"> |
|
1538 | 1538 | <object class="IBActionConnection" key="connection"> |
|
1539 | 1539 | <string key="label">hide:</string> |
|
1540 | 1540 | <reference key="source" ref="1014"/> |
|
1541 | 1541 | <reference key="destination" ref="755159360"/> |
|
1542 | 1542 | </object> |
|
1543 | 1543 | <int key="connectionID">367</int> |
|
1544 | 1544 | </object> |
|
1545 | 1545 | <object class="IBConnectionRecord"> |
|
1546 | 1546 | <object class="IBActionConnection" key="connection"> |
|
1547 | 1547 | <string key="label">hideOtherApplications:</string> |
|
1548 | 1548 | <reference key="source" ref="1014"/> |
|
1549 | 1549 | <reference key="destination" ref="342932134"/> |
|
1550 | 1550 | </object> |
|
1551 | 1551 | <int key="connectionID">368</int> |
|
1552 | 1552 | </object> |
|
1553 | 1553 | <object class="IBConnectionRecord"> |
|
1554 | 1554 | <object class="IBActionConnection" key="connection"> |
|
1555 | 1555 | <string key="label">terminate:</string> |
|
1556 | 1556 | <reference key="source" ref="1014"/> |
|
1557 | 1557 | <reference key="destination" ref="632727374"/> |
|
1558 | 1558 | </object> |
|
1559 | 1559 | <int key="connectionID">369</int> |
|
1560 | 1560 | </object> |
|
1561 | 1561 | <object class="IBConnectionRecord"> |
|
1562 | 1562 | <object class="IBActionConnection" key="connection"> |
|
1563 | 1563 | <string key="label">unhideAllApplications:</string> |
|
1564 | 1564 | <reference key="source" ref="1014"/> |
|
1565 | 1565 | <reference key="destination" ref="908899353"/> |
|
1566 | 1566 | </object> |
|
1567 | 1567 | <int key="connectionID">370</int> |
|
1568 | 1568 | </object> |
|
1569 | 1569 | <object class="IBConnectionRecord"> |
|
1570 | 1570 | <object class="IBOutletConnection" key="connection"> |
|
1571 | 1571 | <string key="label" id="606168085">delegate</string> |
|
1572 | 1572 | <reference key="source" ref="1050"/> |
|
1573 | 1573 | <reference key="destination" ref="610635028"/> |
|
1574 | 1574 | </object> |
|
1575 | 1575 | <int key="connectionID">374</int> |
|
1576 | 1576 | </object> |
|
1577 | 1577 | <object class="IBConnectionRecord"> |
|
1578 | 1578 | <object class="IBBindingConnection" key="connection"> |
|
1579 | 1579 | <string key="label" id="187454546">contentDictionary: userNS</string> |
|
1580 | 1580 | <reference key="source" ref="808393665"/> |
|
1581 | 1581 | <reference key="destination" ref="631572152"/> |
|
1582 | 1582 | <object class="NSNibBindingConnector" key="connector"> |
|
1583 | 1583 | <reference key="NSSource" ref="808393665"/> |
|
1584 | 1584 | <reference key="NSDestination" ref="631572152"/> |
|
1585 | 1585 | <reference key="NSLabel" ref="187454546"/> |
|
1586 | 1586 | <string key="NSBinding">contentDictionary</string> |
|
1587 | 1587 | <string key="NSKeyPath">userNS</string> |
|
1588 | 1588 | <int key="NSNibBindingConnectorVersion">2</int> |
|
1589 | 1589 | </object> |
|
1590 | 1590 | </object> |
|
1591 | 1591 | <int key="connectionID">424</int> |
|
1592 | 1592 | </object> |
|
1593 | 1593 | <object class="IBConnectionRecord"> |
|
1594 | 1594 | <object class="IBBindingConnection" key="connection"> |
|
1595 | 1595 | <string key="label" id="688370141">value: arrangedObjects.value</string> |
|
1596 | 1596 | <reference key="source" ref="857054683"/> |
|
1597 | 1597 | <reference key="destination" ref="808393665"/> |
|
1598 | 1598 | <object class="NSNibBindingConnector" key="connector"> |
|
1599 | 1599 | <reference key="NSSource" ref="857054683"/> |
|
1600 | 1600 | <reference key="NSDestination" ref="808393665"/> |
|
1601 | 1601 | <reference key="NSLabel" ref="688370141"/> |
|
1602 | 1602 | <reference key="NSBinding" ref="276523235"/> |
|
1603 | 1603 | <string key="NSKeyPath">arrangedObjects.value</string> |
|
1604 | 1604 | <int key="NSNibBindingConnectorVersion">2</int> |
|
1605 | 1605 | </object> |
|
1606 | 1606 | </object> |
|
1607 | 1607 | <int key="connectionID">427</int> |
|
1608 | 1608 | </object> |
|
1609 | 1609 | <object class="IBConnectionRecord"> |
|
1610 | 1610 | <object class="IBBindingConnection" key="connection"> |
|
1611 | 1611 | <string key="label" id="764859820">value: arrangedObjects.key</string> |
|
1612 | 1612 | <reference key="source" ref="920426212"/> |
|
1613 | 1613 | <reference key="destination" ref="808393665"/> |
|
1614 | 1614 | <object class="NSNibBindingConnector" key="connector"> |
|
1615 | 1615 | <reference key="NSSource" ref="920426212"/> |
|
1616 | 1616 | <reference key="NSDestination" ref="808393665"/> |
|
1617 | 1617 | <reference key="NSLabel" ref="764859820"/> |
|
1618 | 1618 | <reference key="NSBinding" ref="276523235"/> |
|
1619 | 1619 | <string key="NSKeyPath">arrangedObjects.key</string> |
|
1620 | 1620 | <int key="NSNibBindingConnectorVersion">2</int> |
|
1621 | 1621 | </object> |
|
1622 | 1622 | </object> |
|
1623 | 1623 | <int key="connectionID">428</int> |
|
1624 | 1624 | </object> |
|
1625 | 1625 | <object class="IBConnectionRecord"> |
|
1626 | 1626 | <object class="IBOutletConnection" key="connection"> |
|
1627 | 1627 | <reference key="label" ref="606168085"/> |
|
1628 | 1628 | <reference key="source" ref="972006081"/> |
|
1629 | 1629 | <reference key="destination" ref="631572152"/> |
|
1630 | 1630 | </object> |
|
1631 | 1631 | <int key="connectionID">429</int> |
|
1632 | 1632 | </object> |
|
1633 | 1633 | <object class="IBConnectionRecord"> |
|
1634 | 1634 | <object class="IBBindingConnection" key="connection"> |
|
1635 | 1635 | <string key="label" id="97087091">animate: waitingForEngine</string> |
|
1636 | 1636 | <reference key="source" ref="74807016"/> |
|
1637 | 1637 | <reference key="destination" ref="631572152"/> |
|
1638 | 1638 | <object class="NSNibBindingConnector" key="connector"> |
|
1639 | 1639 | <reference key="NSSource" ref="74807016"/> |
|
1640 | 1640 | <reference key="NSDestination" ref="631572152"/> |
|
1641 | 1641 | <reference key="NSLabel" ref="97087091"/> |
|
1642 | 1642 | <string key="NSBinding">animate</string> |
|
1643 | 1643 | <string key="NSKeyPath">waitingForEngine</string> |
|
1644 | 1644 | <int key="NSNibBindingConnectorVersion">2</int> |
|
1645 | 1645 | </object> |
|
1646 | 1646 | </object> |
|
1647 | 1647 | <int key="connectionID">437</int> |
|
1648 | 1648 | </object> |
|
1649 | 1649 | <object class="IBConnectionRecord"> |
|
1650 | 1650 | <object class="IBBindingConnection" key="connection"> |
|
1651 | 1651 | <string key="label" id="289275654">filterPredicate: workspaceFilterPredicate</string> |
|
1652 | 1652 | <reference key="source" ref="808393665"/> |
|
1653 | 1653 | <reference key="destination" ref="610635028"/> |
|
1654 | 1654 | <object class="NSNibBindingConnector" key="connector"> |
|
1655 | 1655 | <reference key="NSSource" ref="808393665"/> |
|
1656 | 1656 | <reference key="NSDestination" ref="610635028"/> |
|
1657 | 1657 | <reference key="NSLabel" ref="289275654"/> |
|
1658 | 1658 | <string key="NSBinding">filterPredicate</string> |
|
1659 | 1659 | <string key="NSKeyPath">workspaceFilterPredicate</string> |
|
1660 | 1660 | <int key="NSNibBindingConnectorVersion">2</int> |
|
1661 | 1661 | </object> |
|
1662 | 1662 | </object> |
|
1663 | 1663 | <int key="connectionID">440</int> |
|
1664 | 1664 | </object> |
|
1665 | 1665 | <object class="IBConnectionRecord"> |
|
1666 | 1666 | <object class="IBOutletConnection" key="connection"> |
|
1667 | 1667 | <string key="label">ipythonController</string> |
|
1668 | 1668 | <reference key="source" ref="610635028"/> |
|
1669 | 1669 | <reference key="destination" ref="631572152"/> |
|
1670 | 1670 | </object> |
|
1671 | 1671 | <int key="connectionID">441</int> |
|
1672 | 1672 | </object> |
|
1673 | 1673 | <object class="IBConnectionRecord"> |
|
1674 | 1674 | <object class="IBOutletConnection" key="connection"> |
|
1675 | 1675 | <string key="label" id="684042788">textView</string> |
|
1676 | 1676 | <reference key="source" ref="631572152"/> |
|
1677 | 1677 | <reference key="destination" ref="163417131"/> |
|
1678 | 1678 | </object> |
|
1679 | 1679 | <int key="connectionID">444</int> |
|
1680 | 1680 | </object> |
|
1681 | 1681 | <object class="IBConnectionRecord"> |
|
1682 | 1682 | <object class="IBOutletConnection" key="connection"> |
|
1683 | 1683 | <string key="label">initialFirstResponder</string> |
|
1684 | 1684 | <reference key="source" ref="972006081"/> |
|
1685 | 1685 | <reference key="destination" ref="163417131"/> |
|
1686 | 1686 | </object> |
|
1687 | 1687 | <int key="connectionID">445</int> |
|
1688 | 1688 | </object> |
|
1689 | 1689 | </object> |
|
1690 | 1690 | <object class="IBMutableOrderedSet" key="objectRecords"> |
|
1691 | 1691 | <object class="NSArray" key="orderedObjects"> |
|
1692 | 1692 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1693 | 1693 | <object class="IBObjectRecord"> |
|
1694 | 1694 | <int key="objectID">0</int> |
|
1695 | 1695 | <object class="NSArray" key="object" id="1049"> |
|
1696 | 1696 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1697 | 1697 | </object> |
|
1698 | 1698 | <reference key="children" ref="1048"/> |
|
1699 | 1699 | <nil key="parent"/> |
|
1700 | 1700 | </object> |
|
1701 | 1701 | <object class="IBObjectRecord"> |
|
1702 | 1702 | <int key="objectID">-2</int> |
|
1703 | 1703 | <reference key="object" ref="1021"/> |
|
1704 | 1704 | <reference key="parent" ref="1049"/> |
|
1705 | 1705 | <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> |
|
1706 | 1706 | </object> |
|
1707 | 1707 | <object class="IBObjectRecord"> |
|
1708 | 1708 | <int key="objectID">-1</int> |
|
1709 | 1709 | <reference key="object" ref="1014"/> |
|
1710 | 1710 | <reference key="parent" ref="1049"/> |
|
1711 | 1711 | <string key="objectName">First Responder</string> |
|
1712 | 1712 | </object> |
|
1713 | 1713 | <object class="IBObjectRecord"> |
|
1714 | 1714 | <int key="objectID">-3</int> |
|
1715 | 1715 | <reference key="object" ref="1050"/> |
|
1716 | 1716 | <reference key="parent" ref="1049"/> |
|
1717 | 1717 | <string key="objectName">Application</string> |
|
1718 | 1718 | </object> |
|
1719 | 1719 | <object class="IBObjectRecord"> |
|
1720 | 1720 | <int key="objectID">29</int> |
|
1721 | 1721 | <reference key="object" ref="649796088"/> |
|
1722 | 1722 | <object class="NSMutableArray" key="children"> |
|
1723 | 1723 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1724 | 1724 | <reference ref="713487014"/> |
|
1725 | 1725 | <reference ref="694149608"/> |
|
1726 | 1726 | <reference ref="391199113"/> |
|
1727 | 1727 | <reference ref="952259628"/> |
|
1728 | 1728 | <reference ref="379814623"/> |
|
1729 | 1729 | <reference ref="586577488"/> |
|
1730 | 1730 | <reference ref="626404410"/> |
|
1731 | 1731 | </object> |
|
1732 | 1732 | <reference key="parent" ref="1049"/> |
|
1733 | 1733 | <string key="objectName">MainMenu</string> |
|
1734 | 1734 | </object> |
|
1735 | 1735 | <object class="IBObjectRecord"> |
|
1736 | 1736 | <int key="objectID">19</int> |
|
1737 | 1737 | <reference key="object" ref="713487014"/> |
|
1738 | 1738 | <object class="NSMutableArray" key="children"> |
|
1739 | 1739 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1740 | 1740 | <reference ref="835318025"/> |
|
1741 | 1741 | </object> |
|
1742 | 1742 | <reference key="parent" ref="649796088"/> |
|
1743 | 1743 | </object> |
|
1744 | 1744 | <object class="IBObjectRecord"> |
|
1745 | 1745 | <int key="objectID">56</int> |
|
1746 | 1746 | <reference key="object" ref="694149608"/> |
|
1747 | 1747 | <object class="NSMutableArray" key="children"> |
|
1748 | 1748 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1749 | 1749 | <reference ref="110575045"/> |
|
1750 | 1750 | </object> |
|
1751 | 1751 | <reference key="parent" ref="649796088"/> |
|
1752 | 1752 | </object> |
|
1753 | 1753 | <object class="IBObjectRecord"> |
|
1754 | 1754 | <int key="objectID">103</int> |
|
1755 | 1755 | <reference key="object" ref="391199113"/> |
|
1756 | 1756 | <object class="NSMutableArray" key="children"> |
|
1757 | 1757 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1758 | 1758 | <reference ref="374024848"/> |
|
1759 | 1759 | </object> |
|
1760 | 1760 | <reference key="parent" ref="649796088"/> |
|
1761 | 1761 | <string key="objectName" id="508169456">1</string> |
|
1762 | 1762 | </object> |
|
1763 | 1763 | <object class="IBObjectRecord"> |
|
1764 | 1764 | <int key="objectID">217</int> |
|
1765 | 1765 | <reference key="object" ref="952259628"/> |
|
1766 | 1766 | <object class="NSMutableArray" key="children"> |
|
1767 | 1767 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1768 | 1768 | <reference ref="789758025"/> |
|
1769 | 1769 | </object> |
|
1770 | 1770 | <reference key="parent" ref="649796088"/> |
|
1771 | 1771 | </object> |
|
1772 | 1772 | <object class="IBObjectRecord"> |
|
1773 | 1773 | <int key="objectID">83</int> |
|
1774 | 1774 | <reference key="object" ref="379814623"/> |
|
1775 | 1775 | <object class="NSMutableArray" key="children"> |
|
1776 | 1776 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1777 | 1777 | <reference ref="720053764"/> |
|
1778 | 1778 | </object> |
|
1779 | 1779 | <reference key="parent" ref="649796088"/> |
|
1780 | 1780 | </object> |
|
1781 | 1781 | <object class="IBObjectRecord"> |
|
1782 | 1782 | <int key="objectID">81</int> |
|
1783 | 1783 | <reference key="object" ref="720053764"/> |
|
1784 | 1784 | <object class="NSMutableArray" key="children"> |
|
1785 | 1785 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1786 | 1786 | <reference ref="1023925487"/> |
|
1787 | 1787 | <reference ref="117038363"/> |
|
1788 | 1788 | <reference ref="49223823"/> |
|
1789 | 1789 | <reference ref="722745758"/> |
|
1790 | 1790 | <reference ref="705341025"/> |
|
1791 | 1791 | <reference ref="1025936716"/> |
|
1792 | 1792 | <reference ref="294629803"/> |
|
1793 | 1793 | <reference ref="776162233"/> |
|
1794 | 1794 | <reference ref="425164168"/> |
|
1795 | 1795 | <reference ref="579971712"/> |
|
1796 | 1796 | <reference ref="1010469920"/> |
|
1797 | 1797 | </object> |
|
1798 | 1798 | <reference key="parent" ref="379814623"/> |
|
1799 | 1799 | </object> |
|
1800 | 1800 | <object class="IBObjectRecord"> |
|
1801 | 1801 | <int key="objectID">75</int> |
|
1802 | 1802 | <reference key="object" ref="1023925487"/> |
|
1803 | 1803 | <reference key="parent" ref="720053764"/> |
|
1804 | 1804 | <string key="objectName">3</string> |
|
1805 | 1805 | </object> |
|
1806 | 1806 | <object class="IBObjectRecord"> |
|
1807 | 1807 | <int key="objectID">80</int> |
|
1808 | 1808 | <reference key="object" ref="117038363"/> |
|
1809 | 1809 | <reference key="parent" ref="720053764"/> |
|
1810 | 1810 | <string key="objectName">8</string> |
|
1811 | 1811 | </object> |
|
1812 | 1812 | <object class="IBObjectRecord"> |
|
1813 | 1813 | <int key="objectID">78</int> |
|
1814 | 1814 | <reference key="object" ref="49223823"/> |
|
1815 | 1815 | <reference key="parent" ref="720053764"/> |
|
1816 | 1816 | <string key="objectName">6</string> |
|
1817 | 1817 | </object> |
|
1818 | 1818 | <object class="IBObjectRecord"> |
|
1819 | 1819 | <int key="objectID">72</int> |
|
1820 | 1820 | <reference key="object" ref="722745758"/> |
|
1821 | 1821 | <reference key="parent" ref="720053764"/> |
|
1822 | 1822 | </object> |
|
1823 | 1823 | <object class="IBObjectRecord"> |
|
1824 | 1824 | <int key="objectID">82</int> |
|
1825 | 1825 | <reference key="object" ref="705341025"/> |
|
1826 | 1826 | <reference key="parent" ref="720053764"/> |
|
1827 | 1827 | <string key="objectName">9</string> |
|
1828 | 1828 | </object> |
|
1829 | 1829 | <object class="IBObjectRecord"> |
|
1830 | 1830 | <int key="objectID">124</int> |
|
1831 | 1831 | <reference key="object" ref="1025936716"/> |
|
1832 | 1832 | <object class="NSMutableArray" key="children"> |
|
1833 | 1833 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1834 | 1834 | <reference ref="1065607017"/> |
|
1835 | 1835 | </object> |
|
1836 | 1836 | <reference key="parent" ref="720053764"/> |
|
1837 | 1837 | </object> |
|
1838 | 1838 | <object class="IBObjectRecord"> |
|
1839 | 1839 | <int key="objectID">77</int> |
|
1840 | 1840 | <reference key="object" ref="294629803"/> |
|
1841 | 1841 | <reference key="parent" ref="720053764"/> |
|
1842 | 1842 | <string key="objectName">5</string> |
|
1843 | 1843 | </object> |
|
1844 | 1844 | <object class="IBObjectRecord"> |
|
1845 | 1845 | <int key="objectID">73</int> |
|
1846 | 1846 | <reference key="object" ref="776162233"/> |
|
1847 | 1847 | <reference key="parent" ref="720053764"/> |
|
1848 | 1848 | <reference key="objectName" ref="508169456"/> |
|
1849 | 1849 | </object> |
|
1850 | 1850 | <object class="IBObjectRecord"> |
|
1851 | 1851 | <int key="objectID">79</int> |
|
1852 | 1852 | <reference key="object" ref="425164168"/> |
|
1853 | 1853 | <reference key="parent" ref="720053764"/> |
|
1854 | 1854 | <string key="objectName">7</string> |
|
1855 | 1855 | </object> |
|
1856 | 1856 | <object class="IBObjectRecord"> |
|
1857 | 1857 | <int key="objectID">112</int> |
|
1858 | 1858 | <reference key="object" ref="579971712"/> |
|
1859 | 1859 | <reference key="parent" ref="720053764"/> |
|
1860 | 1860 | <string key="objectName">10</string> |
|
1861 | 1861 | </object> |
|
1862 | 1862 | <object class="IBObjectRecord"> |
|
1863 | 1863 | <int key="objectID">74</int> |
|
1864 | 1864 | <reference key="object" ref="1010469920"/> |
|
1865 | 1865 | <reference key="parent" ref="720053764"/> |
|
1866 | 1866 | <string key="objectName" id="464456376">2</string> |
|
1867 | 1867 | </object> |
|
1868 | 1868 | <object class="IBObjectRecord"> |
|
1869 | 1869 | <int key="objectID">125</int> |
|
1870 | 1870 | <reference key="object" ref="1065607017"/> |
|
1871 | 1871 | <object class="NSMutableArray" key="children"> |
|
1872 | 1872 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1873 | 1873 | <reference ref="759406840"/> |
|
1874 | 1874 | </object> |
|
1875 | 1875 | <reference key="parent" ref="1025936716"/> |
|
1876 | 1876 | </object> |
|
1877 | 1877 | <object class="IBObjectRecord"> |
|
1878 | 1878 | <int key="objectID">126</int> |
|
1879 | 1879 | <reference key="object" ref="759406840"/> |
|
1880 | 1880 | <reference key="parent" ref="1065607017"/> |
|
1881 | 1881 | </object> |
|
1882 | 1882 | <object class="IBObjectRecord"> |
|
1883 | 1883 | <int key="objectID">205</int> |
|
1884 | 1884 | <reference key="object" ref="789758025"/> |
|
1885 | 1885 | <object class="NSMutableArray" key="children"> |
|
1886 | 1886 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1887 | 1887 | <reference ref="437104165"/> |
|
1888 | 1888 | <reference ref="583158037"/> |
|
1889 | 1889 | <reference ref="1058277027"/> |
|
1890 | 1890 | <reference ref="212016141"/> |
|
1891 | 1891 | <reference ref="296257095"/> |
|
1892 | 1892 | <reference ref="29853731"/> |
|
1893 | 1893 | <reference ref="860595796"/> |
|
1894 | 1894 | <reference ref="1040322652"/> |
|
1895 | 1895 | <reference ref="790794224"/> |
|
1896 | 1896 | <reference ref="892235320"/> |
|
1897 | 1897 | <reference ref="972420730"/> |
|
1898 | 1898 | <reference ref="676164635"/> |
|
1899 | 1899 | <reference ref="507821607"/> |
|
1900 | 1900 | </object> |
|
1901 | 1901 | <reference key="parent" ref="952259628"/> |
|
1902 | 1902 | </object> |
|
1903 | 1903 | <object class="IBObjectRecord"> |
|
1904 | 1904 | <int key="objectID">202</int> |
|
1905 | 1905 | <reference key="object" ref="437104165"/> |
|
1906 | 1906 | <reference key="parent" ref="789758025"/> |
|
1907 | 1907 | </object> |
|
1908 | 1908 | <object class="IBObjectRecord"> |
|
1909 | 1909 | <int key="objectID">198</int> |
|
1910 | 1910 | <reference key="object" ref="583158037"/> |
|
1911 | 1911 | <reference key="parent" ref="789758025"/> |
|
1912 | 1912 | </object> |
|
1913 | 1913 | <object class="IBObjectRecord"> |
|
1914 | 1914 | <int key="objectID">207</int> |
|
1915 | 1915 | <reference key="object" ref="1058277027"/> |
|
1916 | 1916 | <reference key="parent" ref="789758025"/> |
|
1917 | 1917 | </object> |
|
1918 | 1918 | <object class="IBObjectRecord"> |
|
1919 | 1919 | <int key="objectID">214</int> |
|
1920 | 1920 | <reference key="object" ref="212016141"/> |
|
1921 | 1921 | <reference key="parent" ref="789758025"/> |
|
1922 | 1922 | </object> |
|
1923 | 1923 | <object class="IBObjectRecord"> |
|
1924 | 1924 | <int key="objectID">199</int> |
|
1925 | 1925 | <reference key="object" ref="296257095"/> |
|
1926 | 1926 | <reference key="parent" ref="789758025"/> |
|
1927 | 1927 | </object> |
|
1928 | 1928 | <object class="IBObjectRecord"> |
|
1929 | 1929 | <int key="objectID">203</int> |
|
1930 | 1930 | <reference key="object" ref="29853731"/> |
|
1931 | 1931 | <reference key="parent" ref="789758025"/> |
|
1932 | 1932 | </object> |
|
1933 | 1933 | <object class="IBObjectRecord"> |
|
1934 | 1934 | <int key="objectID">197</int> |
|
1935 | 1935 | <reference key="object" ref="860595796"/> |
|
1936 | 1936 | <reference key="parent" ref="789758025"/> |
|
1937 | 1937 | </object> |
|
1938 | 1938 | <object class="IBObjectRecord"> |
|
1939 | 1939 | <int key="objectID">206</int> |
|
1940 | 1940 | <reference key="object" ref="1040322652"/> |
|
1941 | 1941 | <reference key="parent" ref="789758025"/> |
|
1942 | 1942 | </object> |
|
1943 | 1943 | <object class="IBObjectRecord"> |
|
1944 | 1944 | <int key="objectID">215</int> |
|
1945 | 1945 | <reference key="object" ref="790794224"/> |
|
1946 | 1946 | <reference key="parent" ref="789758025"/> |
|
1947 | 1947 | </object> |
|
1948 | 1948 | <object class="IBObjectRecord"> |
|
1949 | 1949 | <int key="objectID">218</int> |
|
1950 | 1950 | <reference key="object" ref="892235320"/> |
|
1951 | 1951 | <object class="NSMutableArray" key="children"> |
|
1952 | 1952 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1953 | 1953 | <reference ref="963351320"/> |
|
1954 | 1954 | </object> |
|
1955 | 1955 | <reference key="parent" ref="789758025"/> |
|
1956 | 1956 | </object> |
|
1957 | 1957 | <object class="IBObjectRecord"> |
|
1958 | 1958 | <int key="objectID">216</int> |
|
1959 | 1959 | <reference key="object" ref="972420730"/> |
|
1960 | 1960 | <object class="NSMutableArray" key="children"> |
|
1961 | 1961 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1962 | 1962 | <reference ref="769623530"/> |
|
1963 | 1963 | </object> |
|
1964 | 1964 | <reference key="parent" ref="789758025"/> |
|
1965 | 1965 | </object> |
|
1966 | 1966 | <object class="IBObjectRecord"> |
|
1967 | 1967 | <int key="objectID">200</int> |
|
1968 | 1968 | <reference key="object" ref="769623530"/> |
|
1969 | 1969 | <object class="NSMutableArray" key="children"> |
|
1970 | 1970 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1971 | 1971 | <reference ref="948374510"/> |
|
1972 | 1972 | <reference ref="96193923"/> |
|
1973 | 1973 | <reference ref="679648819"/> |
|
1974 | 1974 | <reference ref="967646866"/> |
|
1975 | 1975 | </object> |
|
1976 | 1976 | <reference key="parent" ref="972420730"/> |
|
1977 | 1977 | </object> |
|
1978 | 1978 | <object class="IBObjectRecord"> |
|
1979 | 1979 | <int key="objectID">219</int> |
|
1980 | 1980 | <reference key="object" ref="948374510"/> |
|
1981 | 1981 | <reference key="parent" ref="769623530"/> |
|
1982 | 1982 | </object> |
|
1983 | 1983 | <object class="IBObjectRecord"> |
|
1984 | 1984 | <int key="objectID">201</int> |
|
1985 | 1985 | <reference key="object" ref="96193923"/> |
|
1986 | 1986 | <reference key="parent" ref="769623530"/> |
|
1987 | 1987 | </object> |
|
1988 | 1988 | <object class="IBObjectRecord"> |
|
1989 | 1989 | <int key="objectID">204</int> |
|
1990 | 1990 | <reference key="object" ref="679648819"/> |
|
1991 | 1991 | <reference key="parent" ref="769623530"/> |
|
1992 | 1992 | </object> |
|
1993 | 1993 | <object class="IBObjectRecord"> |
|
1994 | 1994 | <int key="objectID">220</int> |
|
1995 | 1995 | <reference key="object" ref="963351320"/> |
|
1996 | 1996 | <object class="NSMutableArray" key="children"> |
|
1997 | 1997 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
1998 | 1998 | <reference ref="270902937"/> |
|
1999 | 1999 | <reference ref="88285865"/> |
|
2000 | 2000 | <reference ref="159080638"/> |
|
2001 | 2001 | <reference ref="326711663"/> |
|
2002 | 2002 | <reference ref="447796847"/> |
|
2003 | 2003 | </object> |
|
2004 | 2004 | <reference key="parent" ref="892235320"/> |
|
2005 | 2005 | </object> |
|
2006 | 2006 | <object class="IBObjectRecord"> |
|
2007 | 2007 | <int key="objectID">213</int> |
|
2008 | 2008 | <reference key="object" ref="270902937"/> |
|
2009 | 2009 | <reference key="parent" ref="963351320"/> |
|
2010 | 2010 | </object> |
|
2011 | 2011 | <object class="IBObjectRecord"> |
|
2012 | 2012 | <int key="objectID">210</int> |
|
2013 | 2013 | <reference key="object" ref="88285865"/> |
|
2014 | 2014 | <reference key="parent" ref="963351320"/> |
|
2015 | 2015 | </object> |
|
2016 | 2016 | <object class="IBObjectRecord"> |
|
2017 | 2017 | <int key="objectID">221</int> |
|
2018 | 2018 | <reference key="object" ref="159080638"/> |
|
2019 | 2019 | <reference key="parent" ref="963351320"/> |
|
2020 | 2020 | </object> |
|
2021 | 2021 | <object class="IBObjectRecord"> |
|
2022 | 2022 | <int key="objectID">208</int> |
|
2023 | 2023 | <reference key="object" ref="326711663"/> |
|
2024 | 2024 | <reference key="parent" ref="963351320"/> |
|
2025 | 2025 | </object> |
|
2026 | 2026 | <object class="IBObjectRecord"> |
|
2027 | 2027 | <int key="objectID">209</int> |
|
2028 | 2028 | <reference key="object" ref="447796847"/> |
|
2029 | 2029 | <reference key="parent" ref="963351320"/> |
|
2030 | 2030 | </object> |
|
2031 | 2031 | <object class="IBObjectRecord"> |
|
2032 | 2032 | <int key="objectID">106</int> |
|
2033 | 2033 | <reference key="object" ref="374024848"/> |
|
2034 | 2034 | <object class="NSMutableArray" key="children"> |
|
2035 | 2035 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2036 | 2036 | <reference ref="238773614"/> |
|
2037 | 2037 | </object> |
|
2038 | 2038 | <reference key="parent" ref="391199113"/> |
|
2039 | 2039 | <reference key="objectName" ref="464456376"/> |
|
2040 | 2040 | </object> |
|
2041 | 2041 | <object class="IBObjectRecord"> |
|
2042 | 2042 | <int key="objectID">111</int> |
|
2043 | 2043 | <reference key="object" ref="238773614"/> |
|
2044 | 2044 | <reference key="parent" ref="374024848"/> |
|
2045 | 2045 | </object> |
|
2046 | 2046 | <object class="IBObjectRecord"> |
|
2047 | 2047 | <int key="objectID">57</int> |
|
2048 | 2048 | <reference key="object" ref="110575045"/> |
|
2049 | 2049 | <object class="NSMutableArray" key="children"> |
|
2050 | 2050 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2051 | 2051 | <reference ref="238522557"/> |
|
2052 | 2052 | <reference ref="755159360"/> |
|
2053 | 2053 | <reference ref="908899353"/> |
|
2054 | 2054 | <reference ref="632727374"/> |
|
2055 | 2055 | <reference ref="646227648"/> |
|
2056 | 2056 | <reference ref="609285721"/> |
|
2057 | 2057 | <reference ref="481834944"/> |
|
2058 | 2058 | <reference ref="304266470"/> |
|
2059 | 2059 | <reference ref="1046388886"/> |
|
2060 | 2060 | <reference ref="1056857174"/> |
|
2061 | 2061 | <reference ref="342932134"/> |
|
2062 | 2062 | </object> |
|
2063 | 2063 | <reference key="parent" ref="694149608"/> |
|
2064 | 2064 | </object> |
|
2065 | 2065 | <object class="IBObjectRecord"> |
|
2066 | 2066 | <int key="objectID">58</int> |
|
2067 | 2067 | <reference key="object" ref="238522557"/> |
|
2068 | 2068 | <reference key="parent" ref="110575045"/> |
|
2069 | 2069 | </object> |
|
2070 | 2070 | <object class="IBObjectRecord"> |
|
2071 | 2071 | <int key="objectID">134</int> |
|
2072 | 2072 | <reference key="object" ref="755159360"/> |
|
2073 | 2073 | <reference key="parent" ref="110575045"/> |
|
2074 | 2074 | </object> |
|
2075 | 2075 | <object class="IBObjectRecord"> |
|
2076 | 2076 | <int key="objectID">150</int> |
|
2077 | 2077 | <reference key="object" ref="908899353"/> |
|
2078 | 2078 | <reference key="parent" ref="110575045"/> |
|
2079 | 2079 | </object> |
|
2080 | 2080 | <object class="IBObjectRecord"> |
|
2081 | 2081 | <int key="objectID">136</int> |
|
2082 | 2082 | <reference key="object" ref="632727374"/> |
|
2083 | 2083 | <reference key="parent" ref="110575045"/> |
|
2084 | 2084 | <string key="objectName">1111</string> |
|
2085 | 2085 | </object> |
|
2086 | 2086 | <object class="IBObjectRecord"> |
|
2087 | 2087 | <int key="objectID">144</int> |
|
2088 | 2088 | <reference key="object" ref="646227648"/> |
|
2089 | 2089 | <reference key="parent" ref="110575045"/> |
|
2090 | 2090 | </object> |
|
2091 | 2091 | <object class="IBObjectRecord"> |
|
2092 | 2092 | <int key="objectID">129</int> |
|
2093 | 2093 | <reference key="object" ref="609285721"/> |
|
2094 | 2094 | <reference key="parent" ref="110575045"/> |
|
2095 | 2095 | <string key="objectName">121</string> |
|
2096 | 2096 | </object> |
|
2097 | 2097 | <object class="IBObjectRecord"> |
|
2098 | 2098 | <int key="objectID">143</int> |
|
2099 | 2099 | <reference key="object" ref="481834944"/> |
|
2100 | 2100 | <reference key="parent" ref="110575045"/> |
|
2101 | 2101 | </object> |
|
2102 | 2102 | <object class="IBObjectRecord"> |
|
2103 | 2103 | <int key="objectID">236</int> |
|
2104 | 2104 | <reference key="object" ref="304266470"/> |
|
2105 | 2105 | <reference key="parent" ref="110575045"/> |
|
2106 | 2106 | </object> |
|
2107 | 2107 | <object class="IBObjectRecord"> |
|
2108 | 2108 | <int key="objectID">131</int> |
|
2109 | 2109 | <reference key="object" ref="1046388886"/> |
|
2110 | 2110 | <object class="NSMutableArray" key="children"> |
|
2111 | 2111 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2112 | 2112 | <reference ref="752062318"/> |
|
2113 | 2113 | </object> |
|
2114 | 2114 | <reference key="parent" ref="110575045"/> |
|
2115 | 2115 | </object> |
|
2116 | 2116 | <object class="IBObjectRecord"> |
|
2117 | 2117 | <int key="objectID">149</int> |
|
2118 | 2118 | <reference key="object" ref="1056857174"/> |
|
2119 | 2119 | <reference key="parent" ref="110575045"/> |
|
2120 | 2120 | </object> |
|
2121 | 2121 | <object class="IBObjectRecord"> |
|
2122 | 2122 | <int key="objectID">145</int> |
|
2123 | 2123 | <reference key="object" ref="342932134"/> |
|
2124 | 2124 | <reference key="parent" ref="110575045"/> |
|
2125 | 2125 | </object> |
|
2126 | 2126 | <object class="IBObjectRecord"> |
|
2127 | 2127 | <int key="objectID">130</int> |
|
2128 | 2128 | <reference key="object" ref="752062318"/> |
|
2129 | 2129 | <reference key="parent" ref="1046388886"/> |
|
2130 | 2130 | </object> |
|
2131 | 2131 | <object class="IBObjectRecord"> |
|
2132 | 2132 | <int key="objectID">24</int> |
|
2133 | 2133 | <reference key="object" ref="835318025"/> |
|
2134 | 2134 | <object class="NSMutableArray" key="children"> |
|
2135 | 2135 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2136 | 2136 | <reference ref="299356726"/> |
|
2137 | 2137 | <reference ref="625202149"/> |
|
2138 | 2138 | <reference ref="575023229"/> |
|
2139 | 2139 | <reference ref="1011231497"/> |
|
2140 | 2140 | </object> |
|
2141 | 2141 | <reference key="parent" ref="713487014"/> |
|
2142 | 2142 | </object> |
|
2143 | 2143 | <object class="IBObjectRecord"> |
|
2144 | 2144 | <int key="objectID">92</int> |
|
2145 | 2145 | <reference key="object" ref="299356726"/> |
|
2146 | 2146 | <reference key="parent" ref="835318025"/> |
|
2147 | 2147 | </object> |
|
2148 | 2148 | <object class="IBObjectRecord"> |
|
2149 | 2149 | <int key="objectID">5</int> |
|
2150 | 2150 | <reference key="object" ref="625202149"/> |
|
2151 | 2151 | <reference key="parent" ref="835318025"/> |
|
2152 | 2152 | </object> |
|
2153 | 2153 | <object class="IBObjectRecord"> |
|
2154 | 2154 | <int key="objectID">239</int> |
|
2155 | 2155 | <reference key="object" ref="575023229"/> |
|
2156 | 2156 | <reference key="parent" ref="835318025"/> |
|
2157 | 2157 | </object> |
|
2158 | 2158 | <object class="IBObjectRecord"> |
|
2159 | 2159 | <int key="objectID">23</int> |
|
2160 | 2160 | <reference key="object" ref="1011231497"/> |
|
2161 | 2161 | <reference key="parent" ref="835318025"/> |
|
2162 | 2162 | </object> |
|
2163 | 2163 | <object class="IBObjectRecord"> |
|
2164 | 2164 | <int key="objectID">295</int> |
|
2165 | 2165 | <reference key="object" ref="586577488"/> |
|
2166 | 2166 | <object class="NSMutableArray" key="children"> |
|
2167 | 2167 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2168 | 2168 | <reference ref="466310130"/> |
|
2169 | 2169 | </object> |
|
2170 | 2170 | <reference key="parent" ref="649796088"/> |
|
2171 | 2171 | </object> |
|
2172 | 2172 | <object class="IBObjectRecord"> |
|
2173 | 2173 | <int key="objectID">296</int> |
|
2174 | 2174 | <reference key="object" ref="466310130"/> |
|
2175 | 2175 | <object class="NSMutableArray" key="children"> |
|
2176 | 2176 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2177 | 2177 | <reference ref="102151532"/> |
|
2178 | 2178 | <reference ref="237841660"/> |
|
2179 | 2179 | </object> |
|
2180 | 2180 | <reference key="parent" ref="586577488"/> |
|
2181 | 2181 | </object> |
|
2182 | 2182 | <object class="IBObjectRecord"> |
|
2183 | 2183 | <int key="objectID">297</int> |
|
2184 | 2184 | <reference key="object" ref="102151532"/> |
|
2185 | 2185 | <reference key="parent" ref="466310130"/> |
|
2186 | 2186 | </object> |
|
2187 | 2187 | <object class="IBObjectRecord"> |
|
2188 | 2188 | <int key="objectID">298</int> |
|
2189 | 2189 | <reference key="object" ref="237841660"/> |
|
2190 | 2190 | <reference key="parent" ref="466310130"/> |
|
2191 | 2191 | </object> |
|
2192 | 2192 | <object class="IBObjectRecord"> |
|
2193 | 2193 | <int key="objectID">299</int> |
|
2194 | 2194 | <reference key="object" ref="626404410"/> |
|
2195 | 2195 | <object class="NSMutableArray" key="children"> |
|
2196 | 2196 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2197 | 2197 | <reference ref="502084290"/> |
|
2198 | 2198 | </object> |
|
2199 | 2199 | <reference key="parent" ref="649796088"/> |
|
2200 | 2200 | </object> |
|
2201 | 2201 | <object class="IBObjectRecord"> |
|
2202 | 2202 | <int key="objectID">300</int> |
|
2203 | 2203 | <reference key="object" ref="502084290"/> |
|
2204 | 2204 | <object class="NSMutableArray" key="children"> |
|
2205 | 2205 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2206 | 2206 | <reference ref="519768076"/> |
|
2207 | 2207 | <reference ref="1028416764"/> |
|
2208 | 2208 | </object> |
|
2209 | 2209 | <reference key="parent" ref="626404410"/> |
|
2210 | 2210 | </object> |
|
2211 | 2211 | <object class="IBObjectRecord"> |
|
2212 | 2212 | <int key="objectID">344</int> |
|
2213 | 2213 | <reference key="object" ref="519768076"/> |
|
2214 | 2214 | <reference key="parent" ref="502084290"/> |
|
2215 | 2215 | </object> |
|
2216 | 2216 | <object class="IBObjectRecord"> |
|
2217 | 2217 | <int key="objectID">345</int> |
|
2218 | 2218 | <reference key="object" ref="1028416764"/> |
|
2219 | 2219 | <reference key="parent" ref="502084290"/> |
|
2220 | 2220 | </object> |
|
2221 | 2221 | <object class="IBObjectRecord"> |
|
2222 | 2222 | <int key="objectID">211</int> |
|
2223 | 2223 | <reference key="object" ref="676164635"/> |
|
2224 | 2224 | <object class="NSMutableArray" key="children"> |
|
2225 | 2225 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2226 | 2226 | <reference ref="785027613"/> |
|
2227 | 2227 | </object> |
|
2228 | 2228 | <reference key="parent" ref="789758025"/> |
|
2229 | 2229 | </object> |
|
2230 | 2230 | <object class="IBObjectRecord"> |
|
2231 | 2231 | <int key="objectID">212</int> |
|
2232 | 2232 | <reference key="object" ref="785027613"/> |
|
2233 | 2233 | <object class="NSMutableArray" key="children"> |
|
2234 | 2234 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2235 | 2235 | <reference ref="680220178"/> |
|
2236 | 2236 | <reference ref="731782645"/> |
|
2237 | 2237 | </object> |
|
2238 | 2238 | <reference key="parent" ref="676164635"/> |
|
2239 | 2239 | </object> |
|
2240 | 2240 | <object class="IBObjectRecord"> |
|
2241 | 2241 | <int key="objectID">195</int> |
|
2242 | 2242 | <reference key="object" ref="680220178"/> |
|
2243 | 2243 | <reference key="parent" ref="785027613"/> |
|
2244 | 2244 | </object> |
|
2245 | 2245 | <object class="IBObjectRecord"> |
|
2246 | 2246 | <int key="objectID">196</int> |
|
2247 | 2247 | <reference key="object" ref="731782645"/> |
|
2248 | 2248 | <reference key="parent" ref="785027613"/> |
|
2249 | 2249 | </object> |
|
2250 | 2250 | <object class="IBObjectRecord"> |
|
2251 | 2251 | <int key="objectID">346</int> |
|
2252 | 2252 | <reference key="object" ref="967646866"/> |
|
2253 | 2253 | <reference key="parent" ref="769623530"/> |
|
2254 | 2254 | </object> |
|
2255 | 2255 | <object class="IBObjectRecord"> |
|
2256 | 2256 | <int key="objectID">348</int> |
|
2257 | 2257 | <reference key="object" ref="507821607"/> |
|
2258 | 2258 | <object class="NSMutableArray" key="children"> |
|
2259 | 2259 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2260 | 2260 | <reference ref="698887838"/> |
|
2261 | 2261 | </object> |
|
2262 | 2262 | <reference key="parent" ref="789758025"/> |
|
2263 | 2263 | </object> |
|
2264 | 2264 | <object class="IBObjectRecord"> |
|
2265 | 2265 | <int key="objectID">349</int> |
|
2266 | 2266 | <reference key="object" ref="698887838"/> |
|
2267 | 2267 | <object class="NSMutableArray" key="children"> |
|
2268 | 2268 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2269 | 2269 | <reference ref="605118523"/> |
|
2270 | 2270 | <reference ref="197661976"/> |
|
2271 | 2271 | <reference ref="708854459"/> |
|
2272 | 2272 | </object> |
|
2273 | 2273 | <reference key="parent" ref="507821607"/> |
|
2274 | 2274 | </object> |
|
2275 | 2275 | <object class="IBObjectRecord"> |
|
2276 | 2276 | <int key="objectID">350</int> |
|
2277 | 2277 | <reference key="object" ref="605118523"/> |
|
2278 | 2278 | <reference key="parent" ref="698887838"/> |
|
2279 | 2279 | </object> |
|
2280 | 2280 | <object class="IBObjectRecord"> |
|
2281 | 2281 | <int key="objectID">351</int> |
|
2282 | 2282 | <reference key="object" ref="197661976"/> |
|
2283 | 2283 | <reference key="parent" ref="698887838"/> |
|
2284 | 2284 | </object> |
|
2285 | 2285 | <object class="IBObjectRecord"> |
|
2286 | 2286 | <int key="objectID">354</int> |
|
2287 | 2287 | <reference key="object" ref="708854459"/> |
|
2288 | 2288 | <reference key="parent" ref="698887838"/> |
|
2289 | 2289 | </object> |
|
2290 | 2290 | <object class="IBObjectRecord"> |
|
2291 | 2291 | <int key="objectID">371</int> |
|
2292 | 2292 | <reference key="object" ref="972006081"/> |
|
2293 | 2293 | <object class="NSMutableArray" key="children"> |
|
2294 | 2294 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2295 | 2295 | <reference ref="439893737"/> |
|
2296 | 2296 | </object> |
|
2297 | 2297 | <reference key="parent" ref="1049"/> |
|
2298 | 2298 | </object> |
|
2299 | 2299 | <object class="IBObjectRecord"> |
|
2300 | 2300 | <int key="objectID">372</int> |
|
2301 | 2301 | <reference key="object" ref="439893737"/> |
|
2302 | 2302 | <object class="NSMutableArray" key="children"> |
|
2303 | 2303 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2304 | 2304 | <reference ref="741760375"/> |
|
2305 | 2305 | <reference ref="74807016"/> |
|
2306 | 2306 | </object> |
|
2307 | 2307 | <reference key="parent" ref="972006081"/> |
|
2308 | 2308 | </object> |
|
2309 | 2309 | <object class="IBObjectRecord"> |
|
2310 | 2310 | <int key="objectID">373</int> |
|
2311 | 2311 | <reference key="object" ref="610635028"/> |
|
2312 | 2312 | <reference key="parent" ref="1049"/> |
|
2313 | 2313 | <reference key="objectName" ref="982950837"/> |
|
2314 | 2314 | </object> |
|
2315 | 2315 | <object class="IBObjectRecord"> |
|
2316 | 2316 | <int key="objectID">385</int> |
|
2317 | 2317 | <reference key="object" ref="808393665"/> |
|
2318 | 2318 | <reference key="parent" ref="1049"/> |
|
2319 | 2319 | <string key="objectName">User Namespace Controller</string> |
|
2320 | 2320 | </object> |
|
2321 | 2321 | <object class="IBObjectRecord"> |
|
2322 | 2322 | <int key="objectID">421</int> |
|
2323 | 2323 | <reference key="object" ref="741760375"/> |
|
2324 | 2324 | <object class="NSMutableArray" key="children"> |
|
2325 | 2325 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2326 | 2326 | <reference ref="554641139"/> |
|
2327 | 2327 | <reference ref="764100755"/> |
|
2328 | 2328 | </object> |
|
2329 | 2329 | <reference key="parent" ref="439893737"/> |
|
2330 | 2330 | </object> |
|
2331 | 2331 | <object class="IBObjectRecord"> |
|
2332 | 2332 | <int key="objectID">420</int> |
|
2333 | 2333 | <reference key="object" ref="554641139"/> |
|
2334 | 2334 | <object class="NSMutableArray" key="children"> |
|
2335 | 2335 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2336 | 2336 | <reference ref="188193463"/> |
|
2337 | 2337 | </object> |
|
2338 | 2338 | <reference key="parent" ref="741760375"/> |
|
2339 | 2339 | </object> |
|
2340 | 2340 | <object class="IBObjectRecord"> |
|
2341 | 2341 | <int key="objectID">416</int> |
|
2342 | 2342 | <reference key="object" ref="188193463"/> |
|
2343 | 2343 | <object class="NSMutableArray" key="children"> |
|
2344 | 2344 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2345 | 2345 | <reference ref="418410897"/> |
|
2346 | 2346 | <reference ref="936733673"/> |
|
2347 | 2347 | <reference ref="163417131"/> |
|
2348 | 2348 | </object> |
|
2349 | 2349 | <reference key="parent" ref="554641139"/> |
|
2350 | 2350 | </object> |
|
2351 | 2351 | <object class="IBObjectRecord"> |
|
2352 | 2352 | <int key="objectID">417</int> |
|
2353 | 2353 | <reference key="object" ref="418410897"/> |
|
2354 | 2354 | <reference key="parent" ref="188193463"/> |
|
2355 | 2355 | </object> |
|
2356 | 2356 | <object class="IBObjectRecord"> |
|
2357 | 2357 | <int key="objectID">418</int> |
|
2358 | 2358 | <reference key="object" ref="936733673"/> |
|
2359 | 2359 | <reference key="parent" ref="188193463"/> |
|
2360 | 2360 | </object> |
|
2361 | 2361 | <object class="IBObjectRecord"> |
|
2362 | 2362 | <int key="objectID">419</int> |
|
2363 | 2363 | <reference key="object" ref="163417131"/> |
|
2364 | 2364 | <reference key="parent" ref="188193463"/> |
|
2365 | 2365 | </object> |
|
2366 | 2366 | <object class="IBObjectRecord"> |
|
2367 | 2367 | <int key="objectID">406</int> |
|
2368 | 2368 | <reference key="object" ref="764100755"/> |
|
2369 | 2369 | <object class="NSMutableArray" key="children"> |
|
2370 | 2370 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2371 | 2371 | <reference ref="516244966"/> |
|
2372 | 2372 | </object> |
|
2373 | 2373 | <reference key="parent" ref="741760375"/> |
|
2374 | 2374 | </object> |
|
2375 | 2375 | <object class="IBObjectRecord"> |
|
2376 | 2376 | <int key="objectID">407</int> |
|
2377 | 2377 | <reference key="object" ref="516244966"/> |
|
2378 | 2378 | <object class="NSMutableArray" key="children"> |
|
2379 | 2379 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2380 | 2380 | <reference ref="23853726"/> |
|
2381 | 2381 | <reference ref="47103270"/> |
|
2382 | 2382 | <reference ref="512953560"/> |
|
2383 | 2383 | <reference ref="1048357090"/> |
|
2384 | 2384 | </object> |
|
2385 | 2385 | <reference key="parent" ref="764100755"/> |
|
2386 | 2386 | </object> |
|
2387 | 2387 | <object class="IBObjectRecord"> |
|
2388 | 2388 | <int key="objectID">411</int> |
|
2389 | 2389 | <reference key="object" ref="23853726"/> |
|
2390 | 2390 | <object class="NSMutableArray" key="children"> |
|
2391 | 2391 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2392 | 2392 | <reference ref="857054683"/> |
|
2393 | 2393 | <reference ref="920426212"/> |
|
2394 | 2394 | </object> |
|
2395 | 2395 | <reference key="parent" ref="516244966"/> |
|
2396 | 2396 | </object> |
|
2397 | 2397 | <object class="IBObjectRecord"> |
|
2398 | 2398 | <int key="objectID">410</int> |
|
2399 | 2399 | <reference key="object" ref="47103270"/> |
|
2400 | 2400 | <reference key="parent" ref="516244966"/> |
|
2401 | 2401 | </object> |
|
2402 | 2402 | <object class="IBObjectRecord"> |
|
2403 | 2403 | <int key="objectID">409</int> |
|
2404 | 2404 | <reference key="object" ref="512953560"/> |
|
2405 | 2405 | <reference key="parent" ref="516244966"/> |
|
2406 | 2406 | </object> |
|
2407 | 2407 | <object class="IBObjectRecord"> |
|
2408 | 2408 | <int key="objectID">408</int> |
|
2409 | 2409 | <reference key="object" ref="1048357090"/> |
|
2410 | 2410 | <reference key="parent" ref="516244966"/> |
|
2411 | 2411 | </object> |
|
2412 | 2412 | <object class="IBObjectRecord"> |
|
2413 | 2413 | <int key="objectID">413</int> |
|
2414 | 2414 | <reference key="object" ref="857054683"/> |
|
2415 | 2415 | <object class="NSMutableArray" key="children"> |
|
2416 | 2416 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2417 | 2417 | <reference ref="377147224"/> |
|
2418 | 2418 | </object> |
|
2419 | 2419 | <reference key="parent" ref="23853726"/> |
|
2420 | 2420 | </object> |
|
2421 | 2421 | <object class="IBObjectRecord"> |
|
2422 | 2422 | <int key="objectID">412</int> |
|
2423 | 2423 | <reference key="object" ref="920426212"/> |
|
2424 | 2424 | <object class="NSMutableArray" key="children"> |
|
2425 | 2425 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2426 | 2426 | <reference ref="525071236"/> |
|
2427 | 2427 | </object> |
|
2428 | 2428 | <reference key="parent" ref="23853726"/> |
|
2429 | 2429 | </object> |
|
2430 | 2430 | <object class="IBObjectRecord"> |
|
2431 | 2431 | <int key="objectID">415</int> |
|
2432 | 2432 | <reference key="object" ref="525071236"/> |
|
2433 | 2433 | <reference key="parent" ref="920426212"/> |
|
2434 | 2434 | </object> |
|
2435 | 2435 | <object class="IBObjectRecord"> |
|
2436 | 2436 | <int key="objectID">414</int> |
|
2437 | 2437 | <reference key="object" ref="377147224"/> |
|
2438 | 2438 | <reference key="parent" ref="857054683"/> |
|
2439 | 2439 | </object> |
|
2440 | 2440 | <object class="IBObjectRecord"> |
|
2441 | 2441 | <int key="objectID">422</int> |
|
2442 | 2442 | <reference key="object" ref="631572152"/> |
|
2443 | 2443 | <reference key="parent" ref="1049"/> |
|
2444 | 2444 | </object> |
|
2445 | 2445 | <object class="IBObjectRecord"> |
|
2446 | 2446 | <int key="objectID">436</int> |
|
2447 | 2447 | <reference key="object" ref="74807016"/> |
|
2448 | 2448 | <reference key="parent" ref="439893737"/> |
|
2449 | 2449 | </object> |
|
2450 | 2450 | </object> |
|
2451 | 2451 | </object> |
|
2452 | 2452 | <object class="NSMutableDictionary" key="flattenedProperties"> |
|
2453 | 2453 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2454 | 2454 | <object class="NSMutableArray" key="dict.sortedKeys"> |
|
2455 | 2455 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2456 | 2456 | <string>-1.IBPluginDependency</string> |
|
2457 | 2457 | <string>-2.IBPluginDependency</string> |
|
2458 | 2458 | <string>-3.IBPluginDependency</string> |
|
2459 | 2459 | <string>103.IBPluginDependency</string> |
|
2460 | 2460 | <string>103.ImportedFromIB2</string> |
|
2461 | 2461 | <string>106.IBPluginDependency</string> |
|
2462 | 2462 | <string>106.ImportedFromIB2</string> |
|
2463 | 2463 | <string>106.editorWindowContentRectSynchronizationRect</string> |
|
2464 | 2464 | <string>111.IBPluginDependency</string> |
|
2465 | 2465 | <string>111.ImportedFromIB2</string> |
|
2466 | 2466 | <string>112.IBPluginDependency</string> |
|
2467 | 2467 | <string>112.ImportedFromIB2</string> |
|
2468 | 2468 | <string>124.IBPluginDependency</string> |
|
2469 | 2469 | <string>124.ImportedFromIB2</string> |
|
2470 | 2470 | <string>125.IBPluginDependency</string> |
|
2471 | 2471 | <string>125.ImportedFromIB2</string> |
|
2472 | 2472 | <string>125.editorWindowContentRectSynchronizationRect</string> |
|
2473 | 2473 | <string>126.IBPluginDependency</string> |
|
2474 | 2474 | <string>126.ImportedFromIB2</string> |
|
2475 | 2475 | <string>129.IBPluginDependency</string> |
|
2476 | 2476 | <string>129.ImportedFromIB2</string> |
|
2477 | 2477 | <string>130.IBPluginDependency</string> |
|
2478 | 2478 | <string>130.ImportedFromIB2</string> |
|
2479 | 2479 | <string>130.editorWindowContentRectSynchronizationRect</string> |
|
2480 | 2480 | <string>131.IBPluginDependency</string> |
|
2481 | 2481 | <string>131.ImportedFromIB2</string> |
|
2482 | 2482 | <string>134.IBPluginDependency</string> |
|
2483 | 2483 | <string>134.ImportedFromIB2</string> |
|
2484 | 2484 | <string>136.IBPluginDependency</string> |
|
2485 | 2485 | <string>136.ImportedFromIB2</string> |
|
2486 | 2486 | <string>143.IBPluginDependency</string> |
|
2487 | 2487 | <string>143.ImportedFromIB2</string> |
|
2488 | 2488 | <string>144.IBPluginDependency</string> |
|
2489 | 2489 | <string>144.ImportedFromIB2</string> |
|
2490 | 2490 | <string>145.IBPluginDependency</string> |
|
2491 | 2491 | <string>145.ImportedFromIB2</string> |
|
2492 | 2492 | <string>149.IBPluginDependency</string> |
|
2493 | 2493 | <string>149.ImportedFromIB2</string> |
|
2494 | 2494 | <string>150.IBPluginDependency</string> |
|
2495 | 2495 | <string>150.ImportedFromIB2</string> |
|
2496 | 2496 | <string>19.IBPluginDependency</string> |
|
2497 | 2497 | <string>19.ImportedFromIB2</string> |
|
2498 | 2498 | <string>195.IBPluginDependency</string> |
|
2499 | 2499 | <string>195.ImportedFromIB2</string> |
|
2500 | 2500 | <string>196.IBPluginDependency</string> |
|
2501 | 2501 | <string>196.ImportedFromIB2</string> |
|
2502 | 2502 | <string>197.IBPluginDependency</string> |
|
2503 | 2503 | <string>197.ImportedFromIB2</string> |
|
2504 | 2504 | <string>198.IBPluginDependency</string> |
|
2505 | 2505 | <string>198.ImportedFromIB2</string> |
|
2506 | 2506 | <string>199.IBPluginDependency</string> |
|
2507 | 2507 | <string>199.ImportedFromIB2</string> |
|
2508 | 2508 | <string>200.IBPluginDependency</string> |
|
2509 | 2509 | <string>200.ImportedFromIB2</string> |
|
2510 | 2510 | <string>200.editorWindowContentRectSynchronizationRect</string> |
|
2511 | 2511 | <string>201.IBPluginDependency</string> |
|
2512 | 2512 | <string>201.ImportedFromIB2</string> |
|
2513 | 2513 | <string>202.IBPluginDependency</string> |
|
2514 | 2514 | <string>202.ImportedFromIB2</string> |
|
2515 | 2515 | <string>203.IBPluginDependency</string> |
|
2516 | 2516 | <string>203.ImportedFromIB2</string> |
|
2517 | 2517 | <string>204.IBPluginDependency</string> |
|
2518 | 2518 | <string>204.ImportedFromIB2</string> |
|
2519 | 2519 | <string>205.IBPluginDependency</string> |
|
2520 | 2520 | <string>205.ImportedFromIB2</string> |
|
2521 | 2521 | <string>205.editorWindowContentRectSynchronizationRect</string> |
|
2522 | 2522 | <string>206.IBPluginDependency</string> |
|
2523 | 2523 | <string>206.ImportedFromIB2</string> |
|
2524 | 2524 | <string>207.IBPluginDependency</string> |
|
2525 | 2525 | <string>207.ImportedFromIB2</string> |
|
2526 | 2526 | <string>208.IBPluginDependency</string> |
|
2527 | 2527 | <string>208.ImportedFromIB2</string> |
|
2528 | 2528 | <string>209.IBPluginDependency</string> |
|
2529 | 2529 | <string>209.ImportedFromIB2</string> |
|
2530 | 2530 | <string>210.IBPluginDependency</string> |
|
2531 | 2531 | <string>210.ImportedFromIB2</string> |
|
2532 | 2532 | <string>211.IBPluginDependency</string> |
|
2533 | 2533 | <string>211.ImportedFromIB2</string> |
|
2534 | 2534 | <string>212.IBPluginDependency</string> |
|
2535 | 2535 | <string>212.ImportedFromIB2</string> |
|
2536 | 2536 | <string>212.editorWindowContentRectSynchronizationRect</string> |
|
2537 | 2537 | <string>213.IBPluginDependency</string> |
|
2538 | 2538 | <string>213.ImportedFromIB2</string> |
|
2539 | 2539 | <string>214.IBPluginDependency</string> |
|
2540 | 2540 | <string>214.ImportedFromIB2</string> |
|
2541 | 2541 | <string>215.IBPluginDependency</string> |
|
2542 | 2542 | <string>215.ImportedFromIB2</string> |
|
2543 | 2543 | <string>216.IBPluginDependency</string> |
|
2544 | 2544 | <string>216.ImportedFromIB2</string> |
|
2545 | 2545 | <string>217.IBPluginDependency</string> |
|
2546 | 2546 | <string>217.ImportedFromIB2</string> |
|
2547 | 2547 | <string>218.IBPluginDependency</string> |
|
2548 | 2548 | <string>218.ImportedFromIB2</string> |
|
2549 | 2549 | <string>219.IBPluginDependency</string> |
|
2550 | 2550 | <string>219.ImportedFromIB2</string> |
|
2551 | 2551 | <string>220.IBPluginDependency</string> |
|
2552 | 2552 | <string>220.ImportedFromIB2</string> |
|
2553 | 2553 | <string>220.editorWindowContentRectSynchronizationRect</string> |
|
2554 | 2554 | <string>221.IBPluginDependency</string> |
|
2555 | 2555 | <string>221.ImportedFromIB2</string> |
|
2556 | 2556 | <string>23.IBPluginDependency</string> |
|
2557 | 2557 | <string>23.ImportedFromIB2</string> |
|
2558 | 2558 | <string>236.IBPluginDependency</string> |
|
2559 | 2559 | <string>236.ImportedFromIB2</string> |
|
2560 | 2560 | <string>239.IBPluginDependency</string> |
|
2561 | 2561 | <string>239.ImportedFromIB2</string> |
|
2562 | 2562 | <string>24.IBPluginDependency</string> |
|
2563 | 2563 | <string>24.ImportedFromIB2</string> |
|
2564 | 2564 | <string>24.editorWindowContentRectSynchronizationRect</string> |
|
2565 | 2565 | <string>29.IBPluginDependency</string> |
|
2566 | 2566 | <string>29.ImportedFromIB2</string> |
|
2567 | 2567 | <string>29.WindowOrigin</string> |
|
2568 | 2568 | <string>29.editorWindowContentRectSynchronizationRect</string> |
|
2569 | 2569 | <string>295.IBPluginDependency</string> |
|
2570 | 2570 | <string>296.IBPluginDependency</string> |
|
2571 | 2571 | <string>296.editorWindowContentRectSynchronizationRect</string> |
|
2572 | 2572 | <string>297.IBPluginDependency</string> |
|
2573 | 2573 | <string>298.IBPluginDependency</string> |
|
2574 | 2574 | <string>299.IBPluginDependency</string> |
|
2575 | 2575 | <string>300.IBPluginDependency</string> |
|
2576 | 2576 | <string>300.editorWindowContentRectSynchronizationRect</string> |
|
2577 | 2577 | <string>344.IBPluginDependency</string> |
|
2578 | 2578 | <string>345.IBPluginDependency</string> |
|
2579 | 2579 | <string>346.IBPluginDependency</string> |
|
2580 | 2580 | <string>346.ImportedFromIB2</string> |
|
2581 | 2581 | <string>348.IBPluginDependency</string> |
|
2582 | 2582 | <string>348.ImportedFromIB2</string> |
|
2583 | 2583 | <string>349.IBPluginDependency</string> |
|
2584 | 2584 | <string>349.ImportedFromIB2</string> |
|
2585 | 2585 | <string>349.editorWindowContentRectSynchronizationRect</string> |
|
2586 | 2586 | <string>350.IBPluginDependency</string> |
|
2587 | 2587 | <string>350.ImportedFromIB2</string> |
|
2588 | 2588 | <string>351.IBPluginDependency</string> |
|
2589 | 2589 | <string>351.ImportedFromIB2</string> |
|
2590 | 2590 | <string>354.IBPluginDependency</string> |
|
2591 | 2591 | <string>354.ImportedFromIB2</string> |
|
2592 | 2592 | <string>371.IBPluginDependency</string> |
|
2593 | 2593 | <string>371.IBViewEditorWindowController.showingLayoutRectangles</string> |
|
2594 | 2594 | <string>371.IBWindowTemplateEditedContentRect</string> |
|
2595 | 2595 | <string>371.NSWindowTemplate.visibleAtLaunch</string> |
|
2596 | 2596 | <string>371.editorWindowContentRectSynchronizationRect</string> |
|
2597 | 2597 | <string>372.IBPluginDependency</string> |
|
2598 | 2598 | <string>373.IBPluginDependency</string> |
|
2599 | 2599 | <string>385.IBPluginDependency</string> |
|
2600 | 2600 | <string>407.IBPluginDependency</string> |
|
2601 | 2601 | <string>409.IBPluginDependency</string> |
|
2602 | 2602 | <string>410.IBPluginDependency</string> |
|
2603 | 2603 | <string>411.IBPluginDependency</string> |
|
2604 | 2604 | <string>412.IBPluginDependency</string> |
|
2605 | 2605 | <string>413.IBPluginDependency</string> |
|
2606 | 2606 | <string>414.IBPluginDependency</string> |
|
2607 | 2607 | <string>415.IBPluginDependency</string> |
|
2608 | 2608 | <string>416.IBPluginDependency</string> |
|
2609 | 2609 | <string>417.IBPluginDependency</string> |
|
2610 | 2610 | <string>418.IBPluginDependency</string> |
|
2611 | 2611 | <string>419.IBAttributePlaceholdersKey</string> |
|
2612 | 2612 | <string>419.IBPluginDependency</string> |
|
2613 | 2613 | <string>422.IBPluginDependency</string> |
|
2614 | 2614 | <string>436.IBPluginDependency</string> |
|
2615 | 2615 | <string>5.IBPluginDependency</string> |
|
2616 | 2616 | <string>5.ImportedFromIB2</string> |
|
2617 | 2617 | <string>56.IBPluginDependency</string> |
|
2618 | 2618 | <string>56.ImportedFromIB2</string> |
|
2619 | 2619 | <string>57.IBPluginDependency</string> |
|
2620 | 2620 | <string>57.ImportedFromIB2</string> |
|
2621 | 2621 | <string>57.editorWindowContentRectSynchronizationRect</string> |
|
2622 | 2622 | <string>58.IBPluginDependency</string> |
|
2623 | 2623 | <string>58.ImportedFromIB2</string> |
|
2624 | 2624 | <string>72.IBPluginDependency</string> |
|
2625 | 2625 | <string>72.ImportedFromIB2</string> |
|
2626 | 2626 | <string>73.IBPluginDependency</string> |
|
2627 | 2627 | <string>73.ImportedFromIB2</string> |
|
2628 | 2628 | <string>74.IBPluginDependency</string> |
|
2629 | 2629 | <string>74.ImportedFromIB2</string> |
|
2630 | 2630 | <string>75.IBPluginDependency</string> |
|
2631 | 2631 | <string>75.ImportedFromIB2</string> |
|
2632 | 2632 | <string>77.IBPluginDependency</string> |
|
2633 | 2633 | <string>77.ImportedFromIB2</string> |
|
2634 | 2634 | <string>78.IBPluginDependency</string> |
|
2635 | 2635 | <string>78.ImportedFromIB2</string> |
|
2636 | 2636 | <string>79.IBPluginDependency</string> |
|
2637 | 2637 | <string>79.ImportedFromIB2</string> |
|
2638 | 2638 | <string>80.IBPluginDependency</string> |
|
2639 | 2639 | <string>80.ImportedFromIB2</string> |
|
2640 | 2640 | <string>81.IBPluginDependency</string> |
|
2641 | 2641 | <string>81.ImportedFromIB2</string> |
|
2642 | 2642 | <string>81.editorWindowContentRectSynchronizationRect</string> |
|
2643 | 2643 | <string>82.IBPluginDependency</string> |
|
2644 | 2644 | <string>82.ImportedFromIB2</string> |
|
2645 | 2645 | <string>83.IBPluginDependency</string> |
|
2646 | 2646 | <string>83.ImportedFromIB2</string> |
|
2647 | 2647 | <string>92.IBPluginDependency</string> |
|
2648 | 2648 | <string>92.ImportedFromIB2</string> |
|
2649 | 2649 | </object> |
|
2650 | 2650 | <object class="NSMutableArray" key="dict.values"> |
|
2651 | 2651 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2652 | 2652 | <reference ref="113577022"/> |
|
2653 | 2653 | <reference ref="885801228"/> |
|
2654 | 2654 | <reference ref="885801228"/> |
|
2655 | 2655 | <reference ref="113577022"/> |
|
2656 | 2656 | <reference ref="9"/> |
|
2657 | 2657 | <reference ref="113577022"/> |
|
2658 | 2658 | <reference ref="9"/> |
|
2659 | 2659 | <string>{{596, 852}, {216, 23}}</string> |
|
2660 | 2660 | <reference ref="113577022"/> |
|
2661 | 2661 | <reference ref="9"/> |
|
2662 | 2662 | <reference ref="113577022"/> |
|
2663 | 2663 | <reference ref="9"/> |
|
2664 | 2664 | <reference ref="113577022"/> |
|
2665 | 2665 | <reference ref="9"/> |
|
2666 | 2666 | <reference ref="113577022"/> |
|
2667 | 2667 | <reference ref="9"/> |
|
2668 | 2668 | <string>{{522, 812}, {146, 23}}</string> |
|
2669 | 2669 | <reference ref="113577022"/> |
|
2670 | 2670 | <reference ref="9"/> |
|
2671 | 2671 | <reference ref="113577022"/> |
|
2672 | 2672 | <reference ref="9"/> |
|
2673 | 2673 | <reference ref="113577022"/> |
|
2674 | 2674 | <reference ref="9"/> |
|
2675 | 2675 | <string>{{436, 809}, {64, 6}}</string> |
|
2676 | 2676 | <reference ref="113577022"/> |
|
2677 | 2677 | <reference ref="9"/> |
|
2678 | 2678 | <reference ref="113577022"/> |
|
2679 | 2679 | <reference ref="9"/> |
|
2680 | 2680 | <reference ref="113577022"/> |
|
2681 | 2681 | <reference ref="9"/> |
|
2682 | 2682 | <reference ref="113577022"/> |
|
2683 | 2683 | <reference ref="9"/> |
|
2684 | 2684 | <reference ref="113577022"/> |
|
2685 | 2685 | <reference ref="9"/> |
|
2686 | 2686 | <reference ref="113577022"/> |
|
2687 | 2687 | <reference ref="9"/> |
|
2688 | 2688 | <reference ref="113577022"/> |
|
2689 | 2689 | <reference ref="9"/> |
|
2690 | 2690 | <reference ref="113577022"/> |
|
2691 | 2691 | <reference ref="9"/> |
|
2692 | 2692 | <reference ref="113577022"/> |
|
2693 | 2693 | <reference ref="9"/> |
|
2694 | 2694 | <reference ref="113577022"/> |
|
2695 | 2695 | <reference ref="9"/> |
|
2696 | 2696 | <reference ref="113577022"/> |
|
2697 | 2697 | <reference ref="9"/> |
|
2698 | 2698 | <reference ref="113577022"/> |
|
2699 | 2699 | <reference ref="9"/> |
|
2700 | 2700 | <reference ref="113577022"/> |
|
2701 | 2701 | <reference ref="9"/> |
|
2702 | 2702 | <reference ref="113577022"/> |
|
2703 | 2703 | <reference ref="9"/> |
|
2704 | 2704 | <reference ref="113577022"/> |
|
2705 | 2705 | <reference ref="9"/> |
|
2706 | 2706 | <string>{{608, 612}, {275, 83}}</string> |
|
2707 | 2707 | <reference ref="113577022"/> |
|
2708 | 2708 | <reference ref="9"/> |
|
2709 | 2709 | <reference ref="113577022"/> |
|
2710 | 2710 | <reference ref="9"/> |
|
2711 | 2711 | <reference ref="113577022"/> |
|
2712 | 2712 | <reference ref="9"/> |
|
2713 | 2713 | <reference ref="113577022"/> |
|
2714 | 2714 | <reference ref="9"/> |
|
2715 | 2715 | <reference ref="113577022"/> |
|
2716 | 2716 | <reference ref="9"/> |
|
2717 | 2717 | <string>{{365, 632}, {243, 243}}</string> |
|
2718 | 2718 | <reference ref="113577022"/> |
|
2719 | 2719 | <reference ref="9"/> |
|
2720 | 2720 | <reference ref="113577022"/> |
|
2721 | 2721 | <reference ref="9"/> |
|
2722 | 2722 | <reference ref="113577022"/> |
|
2723 | 2723 | <reference ref="9"/> |
|
2724 | 2724 | <reference ref="113577022"/> |
|
2725 | 2725 | <reference ref="9"/> |
|
2726 | 2726 | <reference ref="113577022"/> |
|
2727 | 2727 | <reference ref="9"/> |
|
2728 | 2728 | <reference ref="113577022"/> |
|
2729 | 2729 | <reference ref="9"/> |
|
2730 | 2730 | <reference ref="113577022"/> |
|
2731 | 2731 | <reference ref="9"/> |
|
2732 | 2732 | <string>{{608, 612}, {167, 43}}</string> |
|
2733 | 2733 | <reference ref="113577022"/> |
|
2734 | 2734 | <reference ref="9"/> |
|
2735 | 2735 | <reference ref="113577022"/> |
|
2736 | 2736 | <reference ref="9"/> |
|
2737 | 2737 | <reference ref="113577022"/> |
|
2738 | 2738 | <reference ref="9"/> |
|
2739 | 2739 | <reference ref="113577022"/> |
|
2740 | 2740 | <reference ref="9"/> |
|
2741 | 2741 | <reference ref="113577022"/> |
|
2742 | 2742 | <reference ref="9"/> |
|
2743 | 2743 | <reference ref="113577022"/> |
|
2744 | 2744 | <reference ref="9"/> |
|
2745 | 2745 | <reference ref="113577022"/> |
|
2746 | 2746 | <reference ref="9"/> |
|
2747 | 2747 | <reference ref="113577022"/> |
|
2748 | 2748 | <reference ref="9"/> |
|
2749 | 2749 | <string>{{608, 612}, {241, 103}}</string> |
|
2750 | 2750 | <reference ref="113577022"/> |
|
2751 | 2751 | <reference ref="9"/> |
|
2752 | 2752 | <reference ref="113577022"/> |
|
2753 | 2753 | <reference ref="9"/> |
|
2754 | 2754 | <reference ref="113577022"/> |
|
2755 | 2755 | <reference ref="9"/> |
|
2756 | 2756 | <reference ref="113577022"/> |
|
2757 | 2757 | <reference ref="9"/> |
|
2758 | 2758 | <reference ref="113577022"/> |
|
2759 | 2759 | <reference ref="9"/> |
|
2760 | 2760 | <string>{{525, 802}, {197, 73}}</string> |
|
2761 | 2761 | <reference ref="113577022"/> |
|
2762 | 2762 | <reference ref="9"/> |
|
2763 | 2763 | <string>{74, 862}</string> |
|
2764 | 2764 | <string>{{11, 736}, {489, 20}}</string> |
|
2765 | 2765 | <reference ref="113577022"/> |
|
2766 | 2766 | <reference ref="113577022"/> |
|
2767 | 2767 | <string>{{475, 832}, {234, 43}}</string> |
|
2768 | 2768 | <reference ref="113577022"/> |
|
2769 | 2769 | <reference ref="113577022"/> |
|
2770 | 2770 | <reference ref="113577022"/> |
|
2771 | 2771 | <reference ref="113577022"/> |
|
2772 | 2772 | <string>{{409, 832}, {176, 43}}</string> |
|
2773 | 2773 | <reference ref="113577022"/> |
|
2774 | 2774 | <reference ref="113577022"/> |
|
2775 | 2775 | <reference ref="113577022"/> |
|
2776 | 2776 | <reference ref="9"/> |
|
2777 | 2777 | <reference ref="113577022"/> |
|
2778 | 2778 | <reference ref="9"/> |
|
2779 | 2779 | <reference ref="113577022"/> |
|
2780 | 2780 | <reference ref="9"/> |
|
2781 | 2781 | <string>{{608, 612}, {215, 63}}</string> |
|
2782 | 2782 | <reference ref="113577022"/> |
|
2783 | 2783 | <reference ref="9"/> |
|
2784 | 2784 | <reference ref="113577022"/> |
|
2785 | 2785 | <reference ref="9"/> |
|
2786 | 2786 | <reference ref="113577022"/> |
|
2787 | 2787 | <reference ref="9"/> |
|
2788 | 2788 | <reference ref="113577022"/> |
|
2789 | 2789 | <integer value="0"/> |
|
2790 |
<string>{{ |
|
|
2790 | <string>{{27, 368}, {725, 337}}</string> | |
|
2791 | 2791 | <reference ref="9"/> |
|
2792 |
<string>{{ |
|
|
2792 | <string>{{27, 368}, {725, 337}}</string> | |
|
2793 | 2793 | <reference ref="113577022"/> |
|
2794 | 2794 | <reference ref="113577022"/> |
|
2795 | 2795 | <reference ref="113577022"/> |
|
2796 | 2796 | <reference ref="113577022"/> |
|
2797 | 2797 | <reference ref="113577022"/> |
|
2798 | 2798 | <reference ref="113577022"/> |
|
2799 | 2799 | <reference ref="113577022"/> |
|
2800 | 2800 | <reference ref="113577022"/> |
|
2801 | 2801 | <reference ref="113577022"/> |
|
2802 | 2802 | <reference ref="113577022"/> |
|
2803 | 2803 | <reference ref="113577022"/> |
|
2804 | 2804 | <reference ref="113577022"/> |
|
2805 | 2805 | <reference ref="113577022"/> |
|
2806 | 2806 | <reference ref="113577022"/> |
|
2807 | 2807 | <object class="NSMutableDictionary"> |
|
2808 | 2808 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2809 | 2809 | <object class="NSArray" key="dict.sortedKeys"> |
|
2810 | 2810 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2811 | 2811 | </object> |
|
2812 | 2812 | <object class="NSMutableArray" key="dict.values"> |
|
2813 | 2813 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2814 | 2814 | </object> |
|
2815 | 2815 | </object> |
|
2816 | 2816 | <reference ref="113577022"/> |
|
2817 | 2817 | <reference ref="113577022"/> |
|
2818 | 2818 | <reference ref="113577022"/> |
|
2819 | 2819 | <reference ref="113577022"/> |
|
2820 | 2820 | <reference ref="9"/> |
|
2821 | 2821 | <reference ref="113577022"/> |
|
2822 | 2822 | <reference ref="9"/> |
|
2823 | 2823 | <reference ref="113577022"/> |
|
2824 | 2824 | <reference ref="9"/> |
|
2825 | 2825 | <string>{{23, 794}, {245, 183}}</string> |
|
2826 | 2826 | <reference ref="113577022"/> |
|
2827 | 2827 | <reference ref="9"/> |
|
2828 | 2828 | <reference ref="113577022"/> |
|
2829 | 2829 | <reference ref="9"/> |
|
2830 | 2830 | <reference ref="113577022"/> |
|
2831 | 2831 | <reference ref="9"/> |
|
2832 | 2832 | <reference ref="113577022"/> |
|
2833 | 2833 | <reference ref="9"/> |
|
2834 | 2834 | <reference ref="113577022"/> |
|
2835 | 2835 | <reference ref="9"/> |
|
2836 | 2836 | <reference ref="113577022"/> |
|
2837 | 2837 | <reference ref="9"/> |
|
2838 | 2838 | <reference ref="113577022"/> |
|
2839 | 2839 | <reference ref="9"/> |
|
2840 | 2840 | <reference ref="113577022"/> |
|
2841 | 2841 | <reference ref="9"/> |
|
2842 | 2842 | <reference ref="113577022"/> |
|
2843 | 2843 | <reference ref="9"/> |
|
2844 | 2844 | <reference ref="113577022"/> |
|
2845 | 2845 | <reference ref="9"/> |
|
2846 | 2846 | <string>{{323, 672}, {199, 203}}</string> |
|
2847 | 2847 | <reference ref="113577022"/> |
|
2848 | 2848 | <reference ref="9"/> |
|
2849 | 2849 | <reference ref="113577022"/> |
|
2850 | 2850 | <reference ref="9"/> |
|
2851 | 2851 | <reference ref="113577022"/> |
|
2852 | 2852 | <reference ref="9"/> |
|
2853 | 2853 | </object> |
|
2854 | 2854 | </object> |
|
2855 | 2855 | <object class="NSMutableDictionary" key="unlocalizedProperties"> |
|
2856 | 2856 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2857 | 2857 | <object class="NSArray" key="dict.sortedKeys"> |
|
2858 | 2858 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2859 | 2859 | </object> |
|
2860 | 2860 | <object class="NSMutableArray" key="dict.values"> |
|
2861 | 2861 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2862 | 2862 | </object> |
|
2863 | 2863 | </object> |
|
2864 | 2864 | <nil key="activeLocalization"/> |
|
2865 | 2865 | <object class="NSMutableDictionary" key="localizations"> |
|
2866 | 2866 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2867 | 2867 | <object class="NSArray" key="dict.sortedKeys"> |
|
2868 | 2868 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2869 | 2869 | </object> |
|
2870 | 2870 | <object class="NSMutableArray" key="dict.values"> |
|
2871 | 2871 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2872 | 2872 | </object> |
|
2873 | 2873 | </object> |
|
2874 | 2874 | <nil key="sourceID"/> |
|
2875 | 2875 | <int key="maxID">445</int> |
|
2876 | 2876 | </object> |
|
2877 | 2877 | <object class="IBClassDescriber" key="IBDocument.Classes"> |
|
2878 | 2878 | <object class="NSMutableArray" key="referencedPartialClassDescriptions"> |
|
2879 | 2879 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2880 | 2880 | <object class="IBPartialClassDescription"> |
|
2881 | <string key="className">IPython1SandboxAppDelegate</string> | |
|
2882 |
< |
|
|
2881 | <reference key="className" ref="695797635"/> | |
|
2882 | <nil key="superclassName"/> | |
|
2883 | 2883 | <object class="NSMutableDictionary" key="actions"> |
|
2884 | 2884 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2885 | 2885 | <object class="NSArray" key="dict.sortedKeys"> |
|
2886 | 2886 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2887 | 2887 | </object> |
|
2888 | 2888 | <object class="NSMutableArray" key="dict.values"> |
|
2889 | 2889 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2890 | 2890 | </object> |
|
2891 | 2891 | </object> |
|
2892 | 2892 | <object class="NSMutableDictionary" key="outlets"> |
|
2893 | <string key="NS.key.0">ipythonController</string> | |
|
2894 |
<string key="NS.object.0"> |
|
|
2893 | <reference key="NS.key.0" ref="684042788"/> | |
|
2894 | <string key="NS.object.0">NSTextView</string> | |
|
2895 | 2895 | </object> |
|
2896 | 2896 | <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
|
2897 |
<string key="majorKey">IB |
|
|
2898 | <string key="minorKey">IPython1SandboxAppDelegate.py</string> | |
|
2897 | <string key="majorKey">IBUserSource</string> | |
|
2898 | <reference key="minorKey" ref="255189770"/> | |
|
2899 | 2899 | </object> |
|
2900 | 2900 | </object> |
|
2901 | 2901 | <object class="IBPartialClassDescription"> |
|
2902 | <reference key="className" ref="695797635"/> | |
|
2903 |
< |
|
|
2902 | <string key="className">IPython1SandboxAppDelegate</string> | |
|
2903 | <string key="superclassName">NSObject</string> | |
|
2904 | 2904 | <object class="NSMutableDictionary" key="actions"> |
|
2905 | 2905 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2906 | 2906 | <object class="NSArray" key="dict.sortedKeys"> |
|
2907 | 2907 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2908 | 2908 | </object> |
|
2909 | 2909 | <object class="NSMutableArray" key="dict.values"> |
|
2910 | 2910 | <bool key="EncodedWithXMLCoder">YES</bool> |
|
2911 | 2911 | </object> |
|
2912 | 2912 | </object> |
|
2913 | 2913 | <object class="NSMutableDictionary" key="outlets"> |
|
2914 | <reference key="NS.key.0" ref="684042788"/> | |
|
2915 |
<string key="NS.object.0"> |
|
|
2914 | <string key="NS.key.0">ipythonController</string> | |
|
2915 | <string key="NS.object.0">id</string> | |
|
2916 | 2916 | </object> |
|
2917 | 2917 | <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
|
2918 |
<string key="majorKey">IB |
|
|
2919 | <reference key="minorKey" ref="255189770"/> | |
|
2918 | <string key="majorKey">IBProjectSource</string> | |
|
2919 | <string key="minorKey">IPython1SandboxAppDelegate.py</string> | |
|
2920 | 2920 | </object> |
|
2921 | 2921 | </object> |
|
2922 | 2922 | </object> |
|
2923 | 2923 | </object> |
|
2924 | 2924 | <int key="IBDocument.localizationMode">0</int> |
|
2925 | 2925 | <string key="IBDocument.LastKnownRelativeProjectPath">../../IPython1Sandbox.xcodeproj</string> |
|
2926 | 2926 | <int key="IBDocument.defaultPropertyAccessControl">3</int> |
|
2927 | 2927 | <object class="NSMutableData" key="IBDocument.RunnableNib"> |
|
2928 | 2928 | <bytes key="NS.bytes">YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA |
|
2929 | 2929 | AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEC/gALAAwAMQA1ADYAPAA9 |
|
2930 | 2930 | AEIAWABZAFoAWwALAGgAbQB7AIAAlQCZAKAApAC0ALoAzQDRAOYA+gD7APwA/QD+AP8BAAEBAQIBAwEE |
|
2931 | 2931 | AQUBBgEHAQgBCQEKAQsBDwEQARkBIQEmASoBLQExATUBOQE7AT0BTQFSAVUBWgFBAVQBYwFqAWsBbAFv |
|
2932 | 2932 | AXQBdQF4AYAAkAGBAYQBhwGIAYkBjgGPAZABkwGYAZkBmwGeAasBrAGtAbEBvAG9Ab4BwQHCAcQBxQHG |
|
2933 | 2933 | AdIB0wHbAdwB3wHkAeUB6AHtAfAB/AIAAgcCCwIdAiUCLwIzAlECUgJaAmQCZQJoAm4CbwJyAncCiAKP |
|
2934 | 2934 | ApACkwKYApkCnAKmAqcCrAKxArICtwK4ArsCwwLJAsoC0QLWAtcC2gLcAt0C5gLnAvAC8QL1AvYC9wL4 |
|
2935 |
AvkC/wMAAwIDAwMEAwcDFgMYAxsDHAMfAAsDIAMhAyIDJQNXA10Db |
|
|
2936 | A4gDjAOQA5cDmwOcA50DngOiA6kDqgOrA6wDsAO3A7sDvAO9A74DwgPJA80DzgPPA9AD1APcA90D3gPf | |
|
2937 | A+MD6wPwA/ED8gPzA/cD/gQCBAMEBAQFBAkEEAQRBBIEEwQXBB4EHwQgBCQEKwQvASkEMAQxBDcEOgQ7 | |
|
2938 | BDwEPwRDBEoESwRMBFAEVwRcBF0EXgRfBGMEagRrBGwEcAR3BHgEeQR9BIQEhQSGBIcEjASTBJQElQSZ | |
|
2939 | BKAEpASlBKYEpwSrBLIEswS0BLUEuQTABMEEwgTGBM0EzgTPBNME2gTbBNwE3QThBOgE6QTqBOsE7wT2 | |
|
2940 | BPcE+AT5BP0FBAUFBQYFBwUMBQ8FEAURBRUFHAUdBR4FIgUpBSoFKwUsBTAFNwU7BTwFPQU+BUMFRgVK | |
|
2941 | BVEFUgVTBVcFXgViBWMFZAVlBWkFcAV1BXYFdwV7BYIFgwWEBYgFjwWQBZEFkgWXBZgFnQWeBaIFqwWs | |
|
2942 |
B |
|
|
2943 |
B |
|
|
2944 | BuQG5QbvBvgGuAb5BwcHEgcZBxoHGwckBy0GuAcuBzMHNgc3B0AHSQdKB1MGuAdUB2IHaQdqB2sHcgdz | |
|
2945 | B3QHfQeGB48GuAeQB6AHqQeyB7sGuAe8B8QHywfMB9MH1AfcB90H3gfnBrgH6AfvB/gGuAf5B/4IBQgG | |
|
2946 |
CA8G |
|
|
2935 | AvkC/wMAAwIDAwMEAwcDFgMYAxsDHAMfAAsDIAMhAyIDJQNXA10DbQNzASkDdAN5A3oDewN+A4IDgwOG | |
|
2936 | A4cDiwOPA5YDmgObA5wDnQOhA6gDrAOtA64DrwOzA7wDwAPBA8IDwwPHA84D0gPTA9QD1QPZA+AD5APl | |
|
2937 | A+YD6gPxA/UD9gP3A/gD/AQDBAQEBQQJBBAEEQQSBBMEFwQeBB8EIAQkBCsELwQwBDEENQQ9BD4EPwRA | |
|
2938 | BEQESwRMBE0ETgRUBFcEWgRbBFwEXwRjBGoEawRsBG0EcgR1BHYEdwR7BIIEgwSEBIUEiQSQBJUElgSX | |
|
2939 | BJgEnASjBKQEpQSmBKoEsQSyBLMEtAS4BL8EwwTEBMUExgTKBNEE0gTTBNQE2ATfBOAE4QTiBOYE7QTx | |
|
2940 | BPIE8wT0BPgE/wUABQEFBgUNBQ4FDwUTBRwFHQUeBR8FJAUoBS8FMAUxBTIFNwU4BTwFQwVEBUUFRgVK | |
|
2941 | BVEFVgVXBVgFXAVjBWQFZQVpBXAFcQVyBXcFeAV8BYMFhAWFBYkFkAWRBZIFlgWdBZ4FnwWjBaoFqwWs | |
|
2942 | BbAFtwW4BbkFugW+BcUFxgXHBcgFzAXTBdQF1QXWBeAF9gX8Bf0F/gX/BgMGCwYMBg8GEQYXBhgGGQYa | |
|
2943 | Bh0GJAYlBiYGJwYuBi8GMAY3BjgGOQZABkEGQgZDBq0GuAbCBscGyAbJBs4G1QbWBtgG2QbdBt4GyAbn | |
|
2944 | BvAGyAbxBvgHAQbIBwIHEgcbByQHLQbIBy4HNgc9Bz4HRQdGB04HTwdQB1kGyAdaB2AHaQbIB2oHbwdw | |
|
2945 | B3oHgwbIB4QHkgebB6IHowekB60HtgbIB7cHvAe/B8AHyQfKB9MGyAfUB+IH6QfqB+sH8gfzB/QH/QgG | |
|
2946 | CA8GyAgQCBUIHgbICB8IJggvCDAIOQbICDoIPgg/CKkJFAl/CYAJgQmCCYMJhAmFCYYJhwmICYkJigmL | |
|
2947 | 2947 | CYwJjQmOCY8JkAmRCZIJkwmUCZUJlgmXCZgJmQmaCZsJnAmdCZ4JnwmgCaEJogmjCaQJpQmmCacJqAmp |
|
2948 | 2948 | CaoJqwmsCa0JrgmvCbAJsQmyCbMJtAm1CbYJtwm4CbkJugm7CbwJvQm+Cb8JwAnBCcIJwwnECcUJxgnH |
|
2949 | 2949 | CcgJyQnKCcsJzAnNCc4JzwnQCdEJ0gnTCdQJ1QnWCdcJ2AnZCdoJ2wncCd0J3gnfCeAJ4QniCeMJ5Anl |
|
2950 | 2950 | CeYJ6QnsCoYLIAshCyILIwskCyULJgsnCygLKQsqCysLLAstCy4LLwswCzELMgszCzQLNQs2CzcLOAs5 |
|
2951 | 2951 | CzoLOws8Cz0LPgs/C0ALQQtCC0MLRAtFC0YLRwtIC0kLSgtLC0wLTQtOC08LUAtRC1ILUwtUC1ULVgtX |
|
2952 | 2952 | C1gLWQtaC1sLXAtdC14LXwtgC2ELYgtjC2QLZQtmC2cLaAtpC2oLawtsC20LbgtvC3ALcQtyC3MLdAt1 |
|
2953 | 2953 | C3YLdwt4C3kLegt7C3wLfQt+C38LgAuBC4ILgwuEC4ULhguHC4gLiQuKC4sLjAuNC44LjwuQC5ELkguT |
|
2954 | 2954 | C5QLlQuWC5cLmAuZC5oLmwucC50LngufC6ALoQuiC6MLpAulC6YLpwuoC6kLqgurC6wLrQuuC68LsAux |
|
2955 | 2955 | C7ILswu0C7ULtgu3C7oLvQvAVSRudWxs3xASAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwA |
|
2956 | 2956 | HQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwVk5TUm9vdFYkY2xhc3NdTlNPYmpl |
|
2957 | 2957 | Y3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXNdTlNDb25u |
|
2958 | 2958 | ZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0NsYXNzZXNLZXlzWk5TT2lkc0tleXNdTlNO |
|
2959 | 2959 | YW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNdTlNGb250TWFuYWdlcl8QEE5TVmlz |
|
2960 | 2960 | aWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c1lOU05l |
|
2961 | 2961 | eHRPaWRcTlNPaWRzVmFsdWVzgAKBAv2BAZuBAmCBAvyArYEB9oAFgQJfgQJhgQH3gQL6gACABoEB9YEC |
|
2962 | 2962 | +xEBv4ECYtIADgAyADMANFtOU0NsYXNzTmFtZYAEgANdTlNBcHBsaWNhdGlvbtIANwA4ADkAOlgkY2xh |
|
2963 | 2963 | c3Nlc1okY2xhc3NuYW1logA6ADteTlNDdXN0b21PYmplY3RYTlNPYmplY3RfEBBJQkNvY29hRnJhbWV3 |
|
2964 | 2964 | b3Jr0gAOAD4APwBAWk5TLm9iamVjdHOAK6EAQYAH2wBDAA4ARABFAEYARwBIAEkASgBLAEwATQBOAE8A |
|
2965 | 2965 | UABRAFIAUwBUAFUAVgArXE5TV2luZG93Vmlld1xOU1NjcmVlblJlY3RfEBNOU0ZyYW1lQXV0b3NhdmVO |
|
2966 | 2966 | YW1lXU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dSZWN0XxAPTlNX |
|
2967 | 2967 | aW5kb3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OAC4CsgKqAq4AJEnQAAACA |
|
2968 | 2968 | CoAIEAIQD4AAXxAYe3szMzUsIDQxM30sIHs3MjUsIDMzN319XxAQSVB5dGhvbjEgKENvY29hKVhOU1dp |
|
2969 | 2969 | bmRvd9cAXAAOAF0AXgBfAFoAYABhAGIAYwBkAGUAYQBnXxAPTlNOZXh0UmVzcG9uZGVyWk5TU3Vidmll |
|
2970 | 2970 | d3NYTlN2RmxhZ3NbTlNGcmFtZVNpemVbTlNTdXBlcnZpZXeADIBdgA0RAQCAqIAMgKnSAA4APgBpAGqA |
|
2971 | 2971 | NKIAawBsgA6Ao9oAXAAOAG4AXQBeAG8AcABaAGAAcQBNAHMAdAB1AHYAdwBVAGEATQB6V05TRnJhbWVe |
|
2972 | 2972 | TlNBdXRvc2F2ZU5hbWVeTlNEaXZpZGVyU3R5bGVcTlNJc1ZlcnRpY2FsgAuAooCggA8RARKAoYAMgAsJ |
|
2973 | 2973 | 0gAOAD4AaQB9gDSiAH4Af4AQgGreAFwAgQAOAIIAgwBdAF4AXwCEAFoAhQCGAGAAhwBrAIkAigCLAIwA |
|
2974 | 2974 | jQCOAI8AkABhAJIAVQBrAJRZTlNCb3hUeXBlW05TVGl0bGVDZWxsXU5TVHJhbnNwYXJlbnRcTlNCb3Jk |
|
2975 | 2975 | ZXJUeXBlWU5TT2Zmc2V0c18QD05TVGl0bGVQb3NpdGlvbl1OU0NvbnRlbnRWaWV3gA4QAIBpgGAIgBEQ |
|
2976 | 2976 | FoBeEAGADIBfgA6AEtIADgA+AGkAl4A0oQCUgBLXAFwADgBuAF0AXgBaAGAAfgBiAJwAnQBkAGEAfoAQ |
|
2977 | 2977 | gF2AXIATgAyAENIADgA+AGkAooA0oQCjgBTcAFwApQAOAG4ApgBdAF4AWgBgAKcAqACHAJQAqgCrAKwA |
|
2978 | 2978 | rQCuAHYAYQCUALEAsgCyW05TSFNjcm9sbGVyWE5Tc0ZsYWdzW05TVlNjcm9sbGVyXU5TTmV4dEtleVZp |
|
2979 | 2979 | ZXeAEoBYgFuAWhECEoAVgAyAEoBUgBaAFtIADgA+AGkAtoA0owCyALEAqoAWgFSAWN0AXAAOAG4AuwC8 |
|
2980 | 2980 | AL0AXQBeAL4AWgC/AGAAqACjAMEAwgDDAMQAxQDGAMcAyABhAMoAowDIWE5TQm91bmRzWE5TQ3Vyc29y |
|
2981 | 2981 | WU5TY3ZGbGFnc1lOU0RvY1ZpZXdZTlNCR0NvbG9ygBSAU4BNgE6AUBAEgBcRCQCAGIAMgE+AFIAY0gAO |
|
2982 | 2982 | AD4AaQDPgDShAMiAGN0AXAAOAG4A0gDTANQA1QBeANYAWgDXAGAA2ACyANoA2wDcAN0A3gDfAOAA4QBh |
|
2983 | 2983 | AOMAsgArXxAPTlNUZXh0Q29udGFpbmVyWU5TVFZGbGFnc1xOU1NoYXJlZERhdGFbTlNEcmFnVHlwZXNZ |
|
2984 | 2984 | TlNNYXhTaXplWE5TTWluaXplWk5TRGVsZWdhdGWAFoBMgCyALRAGgDeAGREJEoBKgAyAS4AWgADSAA4A |
|
2985 | 2985 | PgA/AOiAK68QEQDpAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APmAGoAbgByAHYAegB+AIIAh |
|
2986 | 2986 | gCKAI4AkgCWAJoAngCiAKYAqXxAZTmVYVCBSVEZEIHBhc3RlYm9hcmQgdHlwZV8QEk5TU3RyaW5nUGJv |
|
2987 | 2987 | YXJkVHlwZV8QGk5lWFQgcnVsZXIgcGFzdGVib2FyZCB0eXBlXxAeTmVYVCBUSUZGIHY0LjAgcGFzdGVi |
|
2988 | 2988 | b2FyZCB0eXBlXxAZQXBwbGUgVVJMIHBhc3RlYm9hcmQgdHlwZV8QI0NvcmVQYXN0ZWJvYXJkRmxhdm9y |
|
2989 | 2989 | VHlwZSAweDZENkY2Rjc2XxAjQ29yZVBhc3RlYm9hcmRGbGF2b3JUeXBlIDB4NzU3MjZDMjBfEBtXZWJV |
|
2990 | 2990 | UkxzV2l0aFRpdGxlc1Bib2FyZFR5cGVfEBlBcHBsZSBQREYgcGFzdGVib2FyZCB0eXBlXxAZQXBwbGUg |
|
2991 | 2991 | UE5HIHBhc3RlYm9hcmQgdHlwZV8QGkFwcGxlIEhUTUwgcGFzdGVib2FyZCB0eXBlXxAVTlNGaWxlbmFt |
|
2992 | 2992 | ZXNQYm9hcmRUeXBlXxAXTlNDb2xvciBwYXN0ZWJvYXJkIHR5cGVfEDFOZVhUIEVuY2Fwc3VsYXRlZCBQ |
|
2993 | 2993 | b3N0U2NyaXB0IHYxLjIgcGFzdGVib2FyZCB0eXBlXxAaQXBwbGUgUElDVCBwYXN0ZWJvYXJkIHR5cGVf |
|
2994 | 2994 | EBlOZVhUIGZvbnQgcGFzdGVib2FyZCB0eXBlXxAqTmVYVCBSaWNoIFRleHQgRm9ybWF0IHYxLjAgcGFz |
|
2995 | 2995 | dGVib2FyZCB0eXBl0gA3ADgBDAENowENAQ4AO1xOU011dGFibGVTZXRVTlNTZXRfEBR7ezAsIDM4fSwg |
|
2996 | 2996 | ezQzMywgMTR9fdUBEQAOARIBEwEUAJABFQDIARcBGFlOU1RDRmxhZ3NaTlNUZXh0Vmlld1dOU1dpZHRo |
|
2997 | 2997 | XxAPTlNMYXlvdXRNYW5hZ2VygDaAGCNAexAAAAAAAIAu1QAOARoBGwEcANgBHQEeAR8A3QArXxAQTlNU |
|
2998 | 2998 | ZXh0Q29udGFpbmVyc11OU1RleHRTdG9yYWdlWU5TTE1GbGFnc4A1gDOAL4AA0wAOASIA2AEjASQAK1hO |
|
2999 | 2999 | U1N0cmluZ4AygDCAANIADgEnASgBKVlOUy5zdHJpbmeAMVDSADcAOAErASyjASwBIgA7XxAPTlNNdXRh |
|
3000 | 3000 | YmxlU3RyaW5n0gA3ADgBLgEbpAEbAS8BMAA7XxAZTlNNdXRhYmxlQXR0cmlidXRlZFN0cmluZ18QEk5T |
|
3001 | 3001 | QXR0cmlidXRlZFN0cmluZ9IADgA+AGkBM4A0oQDcgC3SADcAOAE2ATejATcBOAA7Xk5TTXV0YWJsZUFy |
|
3002 | 3002 | cmF5V05TQXJyYXnSADcAOAE6ARSiARQAO9IANwA4ATwA0qIA0gA72AAOAT4BPwFAAUEBQgFDAUQBRQFG |
|
3003 | 3003 | ACsBSAFJAUoAKwFMV05TRmxhZ3NfEBdOU0RlZmF1bHRQYXJhZ3JhcGhTdHlsZV8QEE5TSW5zZXJ0aW9u |
|
3004 | 3004 | Q29sb3JfEBFOU0JhY2tncm91bmRDb2xvcl8QFE5TU2VsZWN0ZWRBdHRyaWJ1dGVzXxASTlNNYXJrZWRB |
|
3005 | 3005 | dHRyaWJ1dGVzXxAQTlNMaW5rQXR0cmlidXRlc4BJEgAFS2+AAIA6gDiAO4AAgEXTAA4BTgFPAVAAVQFR |
|
3006 | 3006 | XE5TQ29sb3JTcGFjZVVOU1JHQoA5TxAYMSAwLjk1Mjk0MTI0IDAuODUwOTgwNDYA0gA3ADgBUwFUogFU |
|
3007 | 3007 | ADtXTlNDb2xvctMADgFOAVYBUAFYAVlXTlNXaGl0ZYA5EANCMADTAA4BWwA+AVwBXQFgV05TLmtleXOA |
|
3008 | 3008 | RKIBXgFfgDyAPaIBYQFigD6AQtUADgFUAU4BZAFlAVABZwDdAWgBaVtOU0NvbG9yTmFtZV1OU0NhdGFs |
|
3009 | 3009 | b2dOYW1lgDmAQYBAgD9WU3lzdGVtXxAbc2VsZWN0ZWRUZXh0QmFja2dyb3VuZENvbG9y0wAOAU4BVgFQ |
|
3010 | 3010 | AVgBboA5SzAuNjY2NjY2NjkA1QAOAVQBTgFkAWUBUAFIAN0BcgFpgDmAOoBDgD9fEBFzZWxlY3RlZFRl |
|
3011 | 3011 | eHRDb2xvctIANwA4AXYBd6IBdwA7XE5TRGljdGlvbmFyedMADgFbAD4BXAF6AX2ARKIBewFfgEaAPaIB |
|
3012 | 3012 | fgF/gEeASFtOU1VuZGVybGluZdMADgFOAU8BUACQAYOAOUYwIDAgMQDSADcAOAGFAYaiAYYAO18QFE5T |
|
3013 | 3013 | VGV4dFZpZXdTaGFyZWREYXRhXHs0ODAsIDFlKzA3fVd7ODQsIDB90gA3ADgBigESpQESAYsBjAGNADtW |
|
3014 | 3014 | TlNUZXh0Vk5TVmlld1tOU1Jlc3BvbmRlcl8QFHt7MSwgMX0sIHs0MzMsIDIzMX19XxAVe3swLCAzOH0s |
|
3015 | 3015 | IHs0MzMsIDIzMX190wAOAU4BVgFQAVgBkoA5QjEA0wAOAZQBlQGWAZcAkFlOU0hvdFNwb3RcTlNDdXJz |
|
3016 | 3016 | b3JUeXBlgFKAUVd7NCwgLTV90gA3ADgBmgC8ogC8ADvSADcAOAGcAZ2kAZ0BjAGNADtaTlNDbGlwVmll |
|
3017 | 3017 | d9kAXAGfAA4AbgBeAFoBoABgAaEAowCjAaQBpQGmAGEBqACjAapYTlNUYXJnZXRYTlNBY3Rpb25ZTlNQ |
|
3018 | 3018 | ZXJjZW50gBSAFIBXgFUT/////4AAAQCADIBWgBQjP9Ww0wAAAABfEBV7ezQyNywgMX0sIHsxNSwgMjYz |
|
3019 | 3019 | fX1cX2RvU2Nyb2xsZXI60gA3ADgBrgGvpQGvAbABjAGNADtaTlNTY3JvbGxlcllOU0NvbnRyb2zbAFwB |
|
3020 | 3020 | nwAOAG4ApgBeAFoBoABgAbIBoQCjAKMBpAG2AJAAZABhAagAowG6AbtaTlNDdXJWYWx1ZYAUgBSAV4BZ |
|
3021 | 3021 | gAyAVoAUIz/wAAAAAAAAIz/uQshgAAAAXxAYe3stMTAwLCAtMTAwfSwgezg3LCAxOH19XxAWe3sxOCwg |
|
3022 | 3022 | MTR9LCB7NDM1LCAyMzN9fdIANwA4Ab8BwKQBwAGMAY0AO1xOU1Njcm9sbFZpZXdfEBR7ezEsIDF9LCB7 |
|
3023 | 3023 | NDcxLCAyNTd9fdIANwA4AcMBjKMBjAGNADtaezQ3MywgMjczfVZ7MCwgMH3XAccADgFBAcgByQHKAcsB |
|
3024 | 3024 | zAHNAc4BzwHQAIkB0VtOU0NlbGxGbGFnc1pOU0NvbnRlbnRzWU5TU3VwcG9ydFxOU0NlbGxGbGFnczJb |
|
3025 | 3025 | TlNUZXh0Q29sb3ISBAH+AIBogGWAYYBigGdXQ29uc29sZdQADgHUAdUB1gHXAdgB2QHaVk5TU2l6ZVZO |
|
3026 | 3026 | U05hbWVYTlNmRmxhZ3OAZCNAJgAAAAAAAIBjEQwcXEx1Y2lkYUdyYW5kZdIANwA4Ad0B3qIB3gA7Vk5T |
|
3027 | 3027 | Rm9udNUADgFUAU4BZAFlAVAAygDdAeIBaYA5gE+AZoA/XxATdGV4dEJhY2tncm91bmRDb2xvctMADgFO |
|
3028 | 3028 | AVYBUAFYAeeAOU0wIDAuODAwMDAwMDEA0gA3ADgB6QHqpAHqAesB7AA7XxAPTlNUZXh0RmllbGRDZWxs |
|
3029 | 3029 | XE5TQWN0aW9uQ2VsbFZOU0NlbGzSADcAOAHuAe+kAe8BjAGNADtVTlNCb3jeAFwAgQAOAIIAbgCDAF0A |
|
3030 | 3030 | XgCEAFoAhQCGAGAAhwBrAIkAigHzAfQAjAH2AfcAkABhAJIAVQBrAfuADoBpgJ2AnAiAaxAzgAyAX4AO |
|
3031 | 3031 | gGzSAA4APgBpAf6ANKEB+4Bs1wBcAA4AbgBdAF4AWgBgAH8AYgIDAgQAZABhAH+AaoBdgJuAbYAMgGrS |
|
3032 | 3032 | AA4APgBpAgmANKECCoBu3xAPAFwApQAOAG4ApgIMAg0AXQIOAF4AWgBgAKcAqACHAfsCEACrAhICEwIU |
|
3033 | 3033 | AhUCFgIXAHYAYQH7AhoCGwIbXE5TQ29ybmVyVmlld18QEE5TSGVhZGVyQ2xpcFZpZXdcTlNTY3JvbGxB |
|
3034 | 3034 | bXRzgGyAloBbgJoQMoB4gHWAb08QEEEgAABBIAAAQZgAAEGYAACADIBsgJSAcIBw0gAOAD4AaQIfgDSl |
|
3035 | 3035 | AhsCGgIQAhUCFIBwgJSAloB1gHjbAFwADgBuAL0AXQBeAL4AWgC/AGAAqAIKAMECKADFAikAxwIqAGEC |
|
3036 | 3036 | LAIKAiqAboBTgJOAcYBygAyAhoBugHLSAA4APgBpAjGANKECKoBy3xAVAFwCNAAOAjUCNgFBAjcCDAI4 |
|
3037 | 3037 | AjkCOgBeAF8COwBaAjwCPQBgAj4CPwJAAhsAiQJCAkMCRADKAHoCFAJIAMUCSQBkAkoAegBhAk0AkAIb |
|
3038 | 3038 | Ak8AVgJQXxAfTlNEcmFnZ2luZ1NvdXJjZU1hc2tGb3JOb25Mb2NhbFlOU1R2RmxhZ3NcTlNIZWFkZXJW |
|
3039 | 3039 | aWV3XxASTlNBbGxvd3NUeXBlU2VsZWN0XxAXTlNJbnRlcmNlbGxTcGFjaW5nV2lkdGhfEBlOU0NvbHVt |
|
3040 | 3040 | bkF1dG9yZXNpemluZ1N0eWxlXxAYTlNJbnRlcmNlbGxTcGFjaW5nSGVpZ2h0WU5TRW5hYmxlZFtOU0dy |
|
3041 | 3041 | aWRDb2xvcl8QD05TR3JpZFN0eWxlTWFza15OU1RhYmxlQ29sdW1uc18QHE5TRHJhZ2dpbmdTb3VyY2VN |
|
3042 | 3042 | YXNrRm9yTG9jYWxbTlNSb3dIZWlnaHSAcICSE//////WwAAAgHSATwmAeCNACAAAAAAAACNAAAAAAAAA |
|
3043 | 3043 | AIBzCYAMgI+AcIB7I0AxAAAAAAAAWnsxNTYsIDIwMH3XAFwADgBeAF8AWgBgAlMCFQJVAGQCVgBhAhUC |
|
3044 | 3044 | KltOU1RhYmxlVmlld4B1gHeAdoAMgHWActsAXAAOAG4AvQBdAF4AvgBaAL8AYACoAgoAwQJdAMUCXgDH |
|
3045 | 3045 | AkQAYQIsAgoCRIBugFOAmYCYgHSADICGgG6AdFl7MTU2LCAxN33SADcAOAJmAmekAmcBjAGNADtfEBFO |
|
3046 | 3046 | U1RhYmxlSGVhZGVyVmlld9YAXAAOAG4AXgBaAGACCgJqAmsAZABhAgqAboB6gHmADIBuXxAUe3sxNTcs |
|
3047 | 3047 | IDB9LCB7MTYsIDE3fX3SADcAOAJwAnGkAnEBjAGNADtdX05TQ29ybmVyVmlld9IADgA+AGkCdIA0ogJ1 |
|
3048 | 3048 | AnaAfICL2gJ4AA4CeQETAnoCewJ8An0CfgJTAHoCgAKBAoICgwFYAoQChQB6AipeTlNJc1Jlc2l6ZWFi |
|
3049 | 3049 | bGVcTlNIZWFkZXJDZWxsWk5TRGF0YUNlbGxeTlNSZXNpemluZ01hc2taTlNNaW5XaWR0aFpOU01heFdp |
|
3050 | 3050 | ZHRoXE5TSXNFZGl0YWJsZQmAioB9I0BRwAAAAAAAgIMjQEQAAAAAAAAjQI9AAAAAAAAJgHLXAccADgFB |
|
3051 | 3051 | AcgByQHKAcsCiQKKAosCjAHQAIkCjhIEgf4AgIKAf4B+gGKAgFhWYXJpYWJsZdMADgFOAVYBUAFYApKA |
|
3052 | 3052 | OUswLjMzMzMzMjk5ANUADgFUAU4BZAFlAVABSADdApYBaYA5gDqAgYA/XxAPaGVhZGVyVGV4dENvbG9y |
|
3053 | 3053 | 0gA3ADgCmgKbpQKbAeoB6wHsADtfEBFOU1RhYmxlSGVhZGVyQ2VsbNgBxwAOAUEByAHJAp0BygHLAp4B |
|
3054 | 3054 | zQIsAqECogIqAqQCpV1OU0NvbnRyb2xWaWV3EhQh/kCAaICGgISAhYByEQgAgIhZVGV4dCBDZWxs1AAO |
|
3055 | 3055 | AdQB1QHWAdcCqQHZAquAZCNAKgAAAAAAAIBjEQQU1QAOAVQBTgFkAWUBUAFnAN0CrwFpgDmAQYCHgD9f |
|
3056 | 3056 | EBZjb250cm9sQmFja2dyb3VuZENvbG9y1QAOAVQBTgFkAWUBUAFIAN0CtQFpgDmAOoCJgD9fEBBjb250 |
|
3057 | 3057 | cm9sVGV4dENvbG9y0gA3ADgCuQK6ogK6ADtdTlNUYWJsZUNvbHVtbtoCeAAOAnkBEwJ6AnsCfAJ9An4C |
|
3058 | 3058 | UwB6AoACvgK/AsABWAKEAoUAegIqCYCKgIwjQFPAAAAAAACAjgmActcBxwAOAUEByAHJAcoBywKJAooC |
|
3059 | 3059 | iwLGAdAAiQKOgIKAf4CNgGKAgFVWYWx1ZdgBxwAOAUEByAHJAp0BygHLAp4BzQIsAqECogIqAqQCpYBo |
|
3060 | 3060 | gIaAhICFgHKAiNUADgFUAU4BZAFlAVAC0wDdAtQBaYA5gJGAkIA/WWdyaWRDb2xvctMADgFOAVYBUAFY |
|
3061 | 3061 | AtmAOUQwLjUA0gA3ADgC2wJTpQJTAbABjAGNADtfEBV7ezEsIDE3fSwgezE1NiwgMjAwfX3ZAFwBnwAO |
|
3062 | 3062 | AG4AXgBaAaAAYAGhAgoCCgGkAuEAZABhAagCCgLlgG6AboBXgJWADIBWgG4jP+/gP4AAAABfEBZ7ezE1 |
|
3063 | 3063 | NywgMTd9LCB7MTUsIDIwMH192gBcAZ8ADgBuAKYAXgBaAaAAYAGhAgoCCgGkAusAkABkAGEBqAIKAu+A |
|
3064 | 3064 | boBugFeAl4AMgFaAbiM/5vlvoAAAAF8QFXt7MSwgMjE3fSwgezE1NiwgMTV9fdIADgA+AGkC84A0oQJE |
|
3065 | 3065 | gHRfEBN7ezEsIDB9LCB7MTU2LCAxN319XxAWe3sxOCwgMTR9LCB7MTczLCAyMzN9fV8QFHt7MSwgMX0s |
|
3066 | 3066 | IHsyMDksIDI1N319XxAWe3s0NzQsIDB9LCB7MjExLCAyNzN9fdcBxwAOAUEByAHJAcoBywHMAc0BzgL8 |
|
3067 | 3067 | AdAAiQL+gGiAZYCegGKAn1lXb3Jrc3BhY2XTAA4BTgFWAVABWAHngDlfEBZ7ezIwLCA0NH0sIHs2ODUs |
|
3068 | 3068 | IDI3M319XxAgaXB5dGhvbjFfY29uc29sZV93b3Jrc3BhY2Vfc3BsaXTSADcAOAMFAwakAwYBjAGNADtb |
|
3069 | 3069 | TlNTcGxpdFZpZXfaAFwADgBuAwgDCQBeAFoDCgBgAwsATQMNAw4DDwMQAxEAYQMTAE0DFVpOU01heFZh |
|
3070 | 3070 | bHVlWk5TTWluVmFsdWVZTlNwaUZsYWdzXE5TRHJhd01hdHJpeIALgKeApiNAWQAAAAAAACNAMAAAAAAA |
|
3071 | 3071 | ABEFIYAMEXEKgAuApNEADgMXgKXSADcAOAMZAxqiAxoAO1pOU1BTTWF0cml4XxAVe3s2ODksIDIwfSwg |
|
3072 | 3072 | ezE2LCAxNn190gA3ADgDHQMepAMeAYwBjQA7XxATTlNQcm9ncmVzc0luZGljYXRvclp7NzI1LCAzMzd9 |
|
3073 | 3073 | XxAVe3swLCAwfSwgezEyODAsIDc3OH19XxAQaXB5dGhvbjFfc2FuZGJveNIANwA4AyMDJKIDJAA7XxAQ |
|
3074 | 3074 | TlNXaW5kb3dUZW1wbGF0ZdIADgA+AGkDJ4A0rxAvAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2 |
|
3075 | 3075 | AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNU |
|
3076 |
A1UDVoCugLyAwoD |
|
|
3077 |
AS |
|
|
3078 |
AY |
|
|
3079 | A2MDZANlA2YDZwNoA2kDagNrA2wDbQBVV05TVGl0bGVfEBFOU0tleUVxdWl2TW9kTWFza1pOU0tleUVx | |
|
3080 | dWl2XU5TTW5lbW9uaWNMb2NZTlNPbkltYWdlXE5TTWl4ZWRJbWFnZVZOU01lbnVVTlNUYWeAuYCxEgAQ | |
|
3081 | AACAshJ/////gLOAt4Cw0wAOA14DbwNwA3EDcltOU01lbnVJdGVtc4EBoIEBp4EBqVxTbWFydCBRdW90 | |
|
3082 |
|
|
|
3083 |
|
|
|
3084 |
|
|
|
3085 | b3RlU3Vic3RpdHV0aW9uOtIANwA4A4kDiqMDigOLADtfEBVOU05pYkNvbnRyb2xDb25uZWN0b3JeTlNO | |
|
3086 | aWJDb25uZWN0b3LTAA4DWANZA1oDjgOPgLuAvYDB2AAOA14DXwNgA2EDYgNjA2QDZgOSA2gDkwNqA2sD | |
|
3087 | bAOWgLmAv4DAgLOAt4C+0wAOA14DbwNwA5kDmoEBoIEB0oEB1F8QEUp1bXAgdG8gU2VsZWN0aW9uUWpf | |
|
3088 | EB1jZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOtMADgNYA1kDWgOgA6GAu4DDgMbZAA4DXgNfA2AD | |
|
3089 | YQNiA2MDZANlA2YDpANoA6UDagNrA2wDbQCQgLmAxIDFgLOAt4CwXxAQU21hcnQgQ29weS9QYXN0ZVFm | |
|
3090 | XxAYdG9nZ2xlU21hcnRJbnNlcnREZWxldGU60wAOA1gDWQNaA64Dr4C7gMiAzNgADgNeA18DYANhA2ID | |
|
3091 | YwNkA2YDsgNoA7MDagNrA2wDtoC5gMqAy4CzgLeAydMADgNeA28DcAO5A7qBAaCBAcCBAcJUU2F2ZVFz | |
|
3092 | XXNhdmVEb2N1bWVudDrTAA4DWANZA1oDwAPBgLuAzoDS2AAOA14DXwNgA2EDYgNjA2QDZgPEA2gDxQNq | |
|
3093 | A2sDbAPIgLmA0IDRgLOAt4DP0wAOA14DbwNwA8sDzIEBoIEBzIEBzlRVbmRvUXpVdW5kbzrTAA4DWANZ | |
|
3094 | A1oD0gPTgLuA1IDX2AAOA14DXwNgA2EDYgNjA2QDZgPWA9cD2ANqA2sDbAPIgLmA1RIAEgAAgNaAs4C3 | |
|
3095 | gM9UUmVkb1FaVXJlZG860wAOA1gDWQNaA+ED4oC7gNmA3dgADgNeA18DYANhA2IDYwNkA2YD5QPmA+cD | |
|
3096 | agNrA2wD6oC5gNsSABgAAIDcgLOAt4Da1AAOA14B1QNvA3AD7QPuA++BAaCBAa6BAb6BAbBbSGlkZSBP | |
|
3097 | dGhlcnNRaF8QFmhpZGVPdGhlckFwcGxpY2F0aW9uczrTAA4DWANZA1oD9QP2gLuA34Dj2AAOA14DXwNg | |
|
3098 | A2EDYgNjA2QDZgP5A9cD+gNqA2sDbAP9gLmA4YDigLOAt4Dg0wAOA14DbwNwBAAEAYEBoIEB4YEB41tT | |
|
3099 | aG93IENvbG9yc1FDXxAVb3JkZXJGcm9udENvbG9yUGFuZWw60wAOA1gDWQNaBAcECIC7gOWA6NgADgNe | |
|
3100 | A18DYANhA2IDYwNkA2YECwNoBAwDagNrA2wDyIC5gOaA54CzgLeAz1VQYXN0ZVF2VnBhc3RlOtMADgNY | |
|
3101 | A1kDWgQVBBaAu4DqgOzZAA4DXgNfA2ADYQNiA2MDZANlA2YEGQNoA6UDagNrA2wDlgCQgLmA64DFgLOA | |
|
3102 | t4C+ZQBGAGkAbgBkICZfEBdwZXJmb3JtRmluZFBhbmVsQWN0aW9uOtMADgNYA1kDWgQiBCOAu4DugPLY | |
|
3103 | AA4DXgNfA2ADYQNiA2MDZANmBCYDaAQnA2oDawNsBCqAuYDwgPGAs4C3gO/TAA4DXgNvA3AELQQugQGg | |
|
3104 | gQGdgQGfXVN0b3AgU3BlYWtpbmddc3RvcFNwZWFraW5nOtQADgQyA1gDWQQzBDQAQQQ2XU5TRGVzdGlu | |
|
3105 | YXRpb26A94D0gAeA9tIADgAyADMEOYAEgPVfEBZJUHl0aG9uQ29jb2FDb250cm9sbGVyWGRlbGVnYXRl | |
|
3106 | 0gA3ADgEPQQ+owQ+A4sAO18QFE5TTmliT3V0bGV0Q29ubmVjdG9y0wAOA1gDWQNaBEEEQoC7gPmA+9gA | |
|
3107 | DgNeA18DYANhA2IDYwNkA2YERQNoBCcDagNrA2wDyIC5gPqA8YCzgLeAz1ZEZWxldGVXZGVsZXRlOtMA | |
|
3108 | DgNYA1kDWgROBE+Au4D9gQEB2AAOA14DXwNgA2EDYgNjA2QDZgRSA2gEUwNqA2sDbARWgLmA/4EBAICz | |
|
3109 | gLeA/tQADgNeAdUDbwNwBFkEWgRbgQGggQHrgQHvgQHtWE1pbmltaXplUW1fEBNwZXJmb3JtTWluaWF0 | |
|
3110 | dXJpemU60wAOA1gDWQNaBGEEYoC7gQEDgQEF2AAOA14DXwNgA2EDYgNjA2QDZgRlA2gEJwNqA2sDbARW | |
|
3111 | gLmBAQSA8YCzgLeA/l8QEkJyaW5nIEFsbCB0byBGcm9udF8QD2FycmFuZ2VJbkZyb250OtMADgNYA1kD | |
|
3112 | WgRuBG+Au4EBB4EBCdgADgNeA18DYANhA2IDYwNkA2YEcgNoBCcDagNrA2wD6oC5gQEIgPGAs4C3gNpY | |
|
3113 | U2hvdyBBbGxfEBZ1bmhpZGVBbGxBcHBsaWNhdGlvbnM60wAOA1gDWQNaBHsEfIC7gQELgQEO2AAOA14D | |
|
3114 | XwNgA2EDYgNjA2QDZgR/A2gEgANqA2sDbAO2gLmBAQyBAQ2As4C3gMlVQ2xvc2VRd11wZXJmb3JtQ2xv | |
|
3115 | c2U61AAOBDIDWANZA1oAHwSKBIuAu4ACgQEQgQES1wAOA14DYANhA2IDYwNkA2YEjgQnA2oDawNsA+qA | |
|
3116 | uYEBEYDxgLOAt4DaXxAVQWJvdXQgSVB5dGhvbjFTYW5kYm94XxAdb3JkZXJGcm9udFN0YW5kYXJkQWJv | |
|
3117 | dXRQYW5lbDrTAA4DWANZA1oElwSYgLuBARSBARjYAA4DXgNfA2ADYQNiA2MDZANmBJsDaAScA2oDawNs | |
|
3118 | BJ+AuYEBFoEBF4CzgLeBARXTAA4DXgNvA3AEogSjgQGggQHdgQHfXkNoZWNrIFNwZWxsaW5nUTteY2hl | |
|
3119 | Y2tTcGVsbGluZzrTAA4DWANZA1oEqQSqgLuBARqBAR3YAA4DXgNfA2ADYQNiA2MDZANmBK0DaASuA2oD | |
|
3120 | awNsA8iAuYEBG4EBHICzgLeAz1pTZWxlY3QgQWxsUWFac2VsZWN0QWxsOtMADgNYA1kDWgS3BLiAu4EB | |
|
3121 | H4EBIdgADgNeA18DYANhA2IDYwNkA2YEuwNoA+cDagNrA2wD6oC5gQEggNyAs4C3gNpfEBRIaWRlIElQ | |
|
3122 |
|
|
|
3123 | yANoBCcDagNrA2wEn4C5gQEkgPGAs4C3gQEVXxAbQ2hlY2sgU3BlbGxpbmcgV2hpbGUgVHlwaW5nXxAe | |
|
3124 | dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc60wAOA1gDWQNaBNEE0oC7gQEngQEq2AAOA14DXwNg | |
|
3125 | A2EDYgNjA2QDZgTVA2gE1gNqA2sDbAO2gLmBASiBASmAs4C3gMlmAFAAcgBpAG4AdCAmUXBWcHJpbnQ6 | |
|
3126 |
0wAOA1gDWQNaBN |
|
|
3127 | AS6As4C3gMloAFMAYQB2AGUAIABBAHMgJlFTXxAPc2F2ZURvY3VtZW50QXM60wAOA1gDWQNaBO0E7oC7 | |
|
3128 | gQExgQE02AAOA14DXwNgA2EDYgNjA2QDZgTxA2gE8gNqA2sDbAPqgLmBATKBATOAs4C3gNpfEBRRdWl0 | |
|
3129 | IElQeXRob24xU2FuZGJveFFxWnRlcm1pbmF0ZTrTAA4DWANZA1oE+wT8gLuBATaBATnZAA4DXgNfA2AD | |
|
3130 | YQNiA2MDZANlA2YE/wPXBQADagNrA2wDbQFYgLmBATeBATiAs4C3gLBbU21hcnQgTGlua3NRR18QHXRv | |
|
3131 | Z2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb2461AAOBDIDWANZBDMENAUKBQuA94D0gQE7gQE90gAOADIA | |
|
3132 | MwUOgASBATxfEBpJUHl0aG9uMVNhbmRib3hBcHBEZWxlZ2F0ZV8QEWlweXRob25Db250cm9sbGVy0wAO | |
|
3133 | A1gDWQNaBRMFFIC7gQE/gQFB2AAOA14DXwNgA2EDYgNjA2QDZgUXA2gEJwNqA2sDbARWgLmBAUCA8YCz | |
|
3134 | gLeA/lRab29tXHBlcmZvcm1ab29tOtMADgNYA1kDWgUgBSGAu4EBQ4EBRtgADgNeA18DYANhA2IDYwNk | |
|
3135 | A2YFJANoBSUDagNrA2wDyIC5gQFEgQFFgLOAt4DPVENvcHlRY1Vjb3B5OtMADgNYA1kDWgUuBS+Au4EB | |
|
3136 |
|
|
|
3137 | cAU5BTqBAaCBAeeBAelcU2hvdyBUb29sYmFyUXRfEBN0b2dnbGVUb29sYmFyU2hvd2461AAOBDIDWANZ | |
|
3138 | BDMFCgVBBDaA94EBO4EBToD20gAOADIAMwA0gASAA9MADgNYA1kDWgVIBUmAu4EBUIEBUtgADgNeA18D | |
|
3139 | YANhA2IDYwNkA2YFTANoBCcDagNrA2wEKoC5gQFRgPGAs4C3gO9eU3RhcnQgU3BlYWtpbmdec3RhcnRT | |
|
3140 | cGVha2luZzrTAA4DWANZA1oFVQVWgLuBAVSBAVjYAA4DXgNfA2ADYQNiA2MDZANmBVkDaAVaA2oDawNs | |
|
3141 | BV2AuYEBVoEBV4CzgLeBAVXTAA4DXgNvA3AFYAVhgQGggQHxgQHzXxAUSVB5dGhvbjFTYW5kYm94IEhl | |
|
3142 | bHBRP1lzaG93SGVscDrTAA4DWANZA1oFZwVogLuBAVqBAV3YAA4DXgNfA2ADYQNiA2MDZANmBWsDaAQn | |
|
3143 | A2oDawNsBW+AuYEBXIDxgLOAt4EBW9QADgNeAdUDbwNwBXIFcwV0gQGggQGigQGlgQGkWkNsZWFyIE1l | |
|
3144 | bnVfEBVjbGVhclJlY2VudERvY3VtZW50czrTAA4DWANZA1oFeQV6gLuBAV+BAWHYAA4DXgNfA2ADYQNi | |
|
3145 | A2MDZANmBX0DaAQnA2oDawNsBTaAuYEBYIDxgLOAt4EBSW8QEgBDAHUAcwB0AG8AbQBpAHoAZQAgAFQA | |
|
3146 | bwBvAGwAYgBhAHIgJl8QH3J1blRvb2xiYXJDdXN0b21pemF0aW9uUGFsZXR0ZTrTAA4DWANZA1oFhgWH | |
|
3147 | gLuBAWOBAWbYAA4DXgNfA2ADYQNiA2MDZANmBYoDaAWLA2oDawNsA8iAuYEBZIEBZYCzgLeAz1NDdXRR | |
|
3148 | eFRjdXQ61AAOBDIDWANZBDMAyAQ0BZaA94AYgPSBAWhYdGV4dFZpZXfUAA4EMgNYA1kEMwDIAEEFnID3 | |
|
3149 | gBiAB4EBal8QFWluaXRpYWxGaXJzdFJlc3BvbmRlctMADgNYA1kDWgWgBaGAu4EBbIEBb9kADgWjA14D | |
|
3150 | XwNgA2EDYgNjA2QDZgQnBaYD1wWnA2oDawNsA7ZZTlNUb29sVGlwgLmA8YEBbYEBboCzgLeAyV1QYWdl | |
|
3151 | IFNldHVwLi4uUVBecnVuUGFnZUxheW91dDrTAA4DWANZA1oFsAWxgLuBAXGBAXTYAA4DXgNfA2ADYQNi | |
|
3152 | A2MDZANmBbQDaAW1A2oDawNsBJ+AuYEBcoEBc4CzgLeBARVuAFMAaABvAHcAIABTAHAAZQBsAGwAaQBu | |
|
3153 | AGcgJlE6XxAPc2hvd0d1ZXNzUGFuZWw60wAOA1gDWQNaBb4Fv4C7gQF2gQF41wAOA14DYANhA2IDYwNk | |
|
3154 | A2YFwgQnA2oDawNsA7aAuYEBd4DxgLOAt4DJXxAPUmV2ZXJ0IHRvIFNhdmVkXxAWcmV2ZXJ0RG9jdW1l | |
|
3155 | bnRUb1NhdmVkOtMADgNYA1kDWgXLBcyAu4EBeoEBfNgADgNeA18DYANhA2IDYwNkA2YFzwNoBCcDagNr | |
|
3156 | A2wEn4C5gQF7gPGAs4C3gQEVXxAbQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nXxAWdG9nZ2xlR3Jh | |
|
3157 |
b |
|
|
3158 |
bmdfEBxOU05pYkJpbmRpbmdDb25uZWN0b3JWZXJzaW9ugQG |
|
|
3159 |
5AXlBeYF5wXoBekF6gB6BewAegXuAHoF8AX |
|
|
3160 |
dGlvbl8QFE5TUHJlc2VydmVzU2VsZWN0aW9uXE5TSW5pdGlhbEtleVpOU0VkaXRhYmxlXk5T |
|
|
3161 |
ZWRLZXlzXk5TSW5pdGlhbFZhbHVlXxAiTlNDbGVhcnNGaWx0ZXJQcmVkaWNhdGVPbkluc2Vy |
|
|
3162 |
GE5TU2VsZWN0c0luc2VydGVkT2JqZWN0c18QFk5TQXZvaWRzRW1wdHlTZWxlY3Rpb25fEBFO |
|
|
3163 |
ZXNjcmlwdG9ycwmBAYgJgQGBCYEBf4EBggkJCYEBg9IADgA+AGkF+IA0owX5Be4F |
|
|
3164 |
ZXlzU2tleVV2YWx1ZdIADgA+BgAGAYEBh6EGAoEBhNQADgYEBgUGBgYHBe4GCQB6VU5TS2V5 |
|
|
3165 |
ZWN0b3JbTlNBc2NlbmRpbmeBAYaBAYGBAYUJWGNvbXBhcmU60gA3ADgGDQYOogYOADtfEBBO |
|
|
3166 |
ZXNjcmlwdG9y0gA3ADgGEAE4ogE4ADvSADcAOAYSBhOlBhMGFAYVBhYAO18QFk5TRGljdGl |
|
|
3167 |
bnRyb2xsZXJfEBFOU0FycmF5Q29udHJvbGxlcl8QEk5TT2JqZWN0Q29udHJvbGxlclxOU0Nv |
|
|
3168 | ZXJfEBp2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmtleV8QE2FycmFuZ2VkT2JqZWN0cy5rZXnSADcAOAYa | |
|
3169 | BhujBhsDiwA7XxAVTlNOaWJCaW5kaW5nQ29ubmVjdG9y1wAOBDIF1wXYA1gDWQXZBdoENAYfBiAF2wYi | |
|
3170 | AFWBAYuA9IEBj4EBjoEBfoEBjV8QGWNvbnRlbnREaWN0aW9uYXJ5OiB1c2VyTlNfEBFjb250ZW50RGlj | |
|
3171 | dGlvbmFyeVZ1c2VyTlPXAA4EMgXXBdgDWANZBdkF2gXbBikF3QJ2BiwAVYEBi4EBfoEBkoEBgoCLgQGR | |
|
3172 | XxAcdmFsdWU6IGFycmFuZ2VkT2JqZWN0cy52YWx1ZV8QFWFycmFuZ2VkT2JqZWN0cy52YWx1ZdcADgQy | |
|
3173 | BdcF2ANYA1kF2QXaBQoGMgYzBdsGNQBVgQGLgQE7gQGWgQGVgQF+gQGUXxApZmlsdGVyUHJlZGljYXRl | |
|
3174 | OiB3b3Jrc3BhY2VGaWx0ZXJQcmVkaWNhdGVfEA9maWx0ZXJQcmVkaWNhdGVfEBh3b3Jrc3BhY2VGaWx0 | |
|
3175 | ZXJQcmVkaWNhdGXXAA4EMgXXBdgDWANZBdkF2gQ0BjwGPQBsBj8AVYEBi4D0gQGagQGZgKOBAZhfEBlh | |
|
3176 | bmltYXRlOiB3YWl0aW5nRm9yRW5naW5lV2FuaW1hdGVfEBB3YWl0aW5nRm9yRW5naW5l0gAOAD4GAAZF | |
|
3177 | gQGHrxBnA1sGRwTfAkQCdQZLBIoEQQUgBW8GUATRBbAFywZUBFYFLgZXBYYGWQIKA20GXATtBl4GXwS3 | |
|
3178 | BmEGYgBNBdsAawVVBHsFoAZpBmoAyAUKBGEGbgSpBnAAbAZyBBUD9QIaA8gAfwPqAnYEIgZ7BJcGfQOO | |
|
3179 | Bn8GgAV5AioGgwSfAhAETgPSBogEBwCqBb4D4QaNBo4D/QLAA64AfgaTBG4FEwTEAKMFXQT7BpoGmwOg | |
|
3180 | BTYDlgafBWcEKgPABDQFQQKDAEEAsQaoBqkFSAO2BqyAr4EBnIEBLIB0gHyBAaGBARCA+YEBQ4EBW4EB | |
|
3181 | poEBJ4EBcYEBeoEBqoD+gQFIgQHDgQFjgQHwgG6AsIEB2YEBMYEBv4EBz4EBH4EB5oEB5IALgQF+gA6B | |
|
3182 | AVSBAQuBAWyBAbaBAbWAGIEBO4EBA4EB6oEBGoEBxoCjgQG9gOqA34CUgM+AaoDagIuA7oEBrYEBFIEB | |
|
3183 | y4C9gQHQgQHugQFfgHKBAbGBARWAloD9gNSBAdGA5YBYgQF2gNmBAdeBAbyA4ICOgMiAEIEB1YEBB4EB | |
|
3184 | P4EBI4AUgQFVgQE2gQHcgQGygMOBAUmAvoEB4IEBWoDvgM6A9IEBToCDgAeAVIEBuYEByoEBUIDJgQHJ | |
|
3185 | 2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YEKgQtA2gEJwNqA2sDbAPIBrZZTlNTdWJtZW51gLmA74EBnYDx | |
|
3186 | gLOAt4DPgQGeVlNwZWVjaF5zdWJtZW51QWN0aW9uOtIADgA+AGkGu4A0ogVIBCKBAVCA7tIANwA4Br8D | |
|
3187 | ZKIDZAA72gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YFbwVyA2gEJwNqA2sDbAO2BsiAuYEBW4EBooDxgLOA | |
|
3188 | t4DJgQGjW09wZW4gUmVjZW500gAOAD4AaQbMgDShBWeBAVpfEBZfTlNSZWNlbnREb2N1bWVudHNNZW51 | |
|
3189 | 2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YDbQNxA2gEJwNqA2sDbAPIBteAuYCwgQGngPGAs4C3gM+BAahd | |
|
3190 | U3Vic3RpdHV0aW9uc9IADgA+AGkG24A0owOgA1sE+4DDgK+BATbUAA4DXgHVA28DcAbhBuIG44EBoIEB | |
|
3191 | q4EB9IEBrFlBTWFpbk1lbnXSAA4APgBpBueANKcGewZeBn0GnwZhBm4GWYEBrYEBv4EBy4EB4IEB5oEB | |
|
3192 | 6oEB8NoADgauA14DXwNgA2EDYgNjA2QBoANmA+oD7QNoBCcDagNrA2wGVAb3gLmA2oEBroDxgLOAt4EB | |
|
3193 | qoEBr18QD0lQeXRob24xU2FuZGJveNIADgA+AGkG+4A0qwSKBoMGmwZqBmkGjgS3A+EEbgZyBO2BARCB | |
|
3194 | AbGBAbKBAbWBAbaBAbyBAR+A2YEBB4EBvYEBMdoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcA | |
|
3195 | egNqA2sDbAPqXU5TSXNTZXBhcmF0b3JcTlNJc0Rpc2FibGVkgLmA8QmA8QmAs4C3gNrYAA4DXgNfA2AD | |
|
3196 | YQNiA2MDZANmBxQDaAcVA2oDawNsA+qAuYEBs4EBtICzgLeA2mwAUAByAGUAZgBlAHIAZQBuAGMAZQBz | |
|
3197 |
|
|
|
3198 |
AA4G |
|
|
3199 | U2VydmljZXPUAA4DXgHVA28DcAcnBzEHMoEBoIEBt4EBu4EButIADgA+AGkHNYA0oF8QD19OU1NlcnZp | |
|
3200 | Y2VzTWVuddoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcAegNqA2sDbAPqgLmA8QmA8QmAs4C3 | |
|
3201 | gNraAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wD6oC5gPEJgPEJgLOAt4DaXF9O | |
|
3202 | U0FwcGxlTWVuddoADgauA14DXwNgA2EDYgNjA2QBoANmA7YDuQNoBCcDagNrA2wGVAdSgLmAyYEBwIDx | |
|
3203 | gLOAt4EBqoEBwVRGaWxl0gAOAD4AaQdWgDSrBlcGcAZLBqwEewOuBN8FvgapBaAE0YEBw4EBxoEBoYEB | |
|
3204 | yYEBC4DIgQEsgQF2gQHKgQFsgQEn2AAOA14DXwNgA2EDYgNjA2QDZgdkA2gHZQNqA2sDbAO2gLmBAcSB | |
|
3205 | AcWAs4C3gMlTTmV3UW7YAA4DXgNfA2ADYQNiA2MDZANmB20DaAduA2oDawNsA7aAuYEBx4EByICzgLeA | |
|
3206 | yWUATwBwAGUAbiAmUW/aAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wDtoC5gPEJ | |
|
3207 | gPEJgLOAt4DJ2gAOA14DXwcIA2AHCQNhA2IDYwNkA2YEJwNoAHoEJwB6A2oDawNsA7aAuYDxCYDxCYCz | |
|
3208 | gLeAydoADgauA14DXwNgA2EDYgNjA2QBoANmA8gDywNoBCcDagNrA2wGVAeOgLmAz4EBzIDxgLOAt4EB | |
|
3209 | qoEBzVRFZGl00gAOAD4AaQeSgDStA8AD0gZfBYYFIAQHBEEEqQZ/BogGmgZQBkeAzoDUgQHPgQFjgQFD | |
|
3210 | gOWA+YEBGoEB0IEB0YEB3IEBpoEBnNoADgNeA18HCANgBwkDYQNiA2MDZANmBCcDaAB6BCcAegNqA2sD | |
|
3211 | bAPIgLmA8QmA8QmAs4C3gM/aAA4DXgNfBwgDYAcJA2EDYgNjA2QDZgQnA2gAegQnAHoDagNrA2wDyIC5 | |
|
3212 | gPEJgPEJgLOAt4DP2gAOBq4DXgNfA2ADYQNiA2MDZAGgA2YDlgOZA2gEJwNqA2sDbAPIB7qAuYC+gQHS | |
|
3213 | gPGAs4C3gM+BAdNURmluZNIADgA+AGkHvoA0pQQVBpMGjQZcA46A6oEB1YEB14EB2YC92QAOA14DXwNg | |
|
3214 | A2EDYgNjA2QDZQNmB8YDaANpA2oDawNsA5YAVYC5gQHWgLKAs4C3gL5ZRmluZCBOZXh02QAOA14DXwNg | |
|
3215 | A2EDYgNjA2QDZQNmB84D1wUAA2oDawNsA5YBWIC5gQHYgQE4gLOAt4C+XUZpbmQgUHJldmlvdXPZAA4D | |
|
3216 | XgNfA2ADYQNiA2MDZANlA2YH1gNoB9cDagNrA2wDlgfbgLmBAdqBAduAs4C3gL4QB18QFlVzZSBTZWxl | |
|
3217 | Y3Rpb24gZm9yIEZpbmRRZdoADgauA14DXwNgA2EDYgNjA2QBoANmBJ8EogNoBCcDagNrA2wDyAfmgLmB | |
|
3218 | ARWBAd2A8YCzgLeAz4EB3l8QFFNwZWxsaW5nIGFuZCBHcmFtbWFy0gAOAD4AaQfqgDSkBbAElwTEBcuB | |
|
3219 | AXGBARSBASOBAXraAA4GrgNeA18DYANhA2IDYwNkAaADZgP9BAADaAQnA2oDawNsBlQH94C5gOCBAeGA | |
|
3220 | 8YCzgLeBAaqBAeJWRm9ybWF00gAOAD4AaQf7gDSiBmID9YEB5IDf2AAOA14DXwNgA2EDYgNjA2QDZggA | |
|
3221 | A2gFMwNqA2sDbAP9gLmBAeWBAUuAs4C3gOBaU2hvdyBGb250c9oADgauA14DXwNgA2EDYgNjA2QBoANm | |
|
3222 | BTYFOQNoBCcDagNrA2wGVAgOgLmBAUmBAeeA8YCzgLeBAaqBAehUVmlld9IADgA+AGkIEoA0ogUuBXmB | |
|
3223 | AUiBAV/aAA4GrgNeA18DYANhA2IDYwNkAaADZgRWBFkDaAQnA2oDawNsBlQIHYC5gP6BAeuA8YCzgLeB | |
|
3224 | AaqBAexWV2luZG930gAOAD4AaQghgDSkBE4FEwaABGGA/YEBP4EB7oEBA9oADgNeA18HCANgBwkDYQNi | |
|
3225 | A2MDZANmBCcDaAB6BCcAegNqA2sDbARWgLmA8QmA8QmAs4C3gP5eX05TV2luZG93c01lbnXaAA4GrgNe | |
|
3226 | A18DYANhA2IDYwNkAaADZgVdBWADaAQnA2oDawNsBlQIOIC5gQFVgQHxgPGAs4C3gQGqgQHyVEhlbHDS | |
|
3227 | AA4APgBpCDyANKEFVYEBVFtfTlNNYWluTWVuddIADgA+BgAIQYEBh68QZwNtA8gDtgIKAioDtgPqA8gD | |
|
3228 | yAZLA8gDtgSfBJ8AHwZuBTYDtgPIBlQAfwZQA5YD6gZUA8gD6gZUA/0AQQAfAE0FXQO2A7YD6gPqAKMA | |
|
3229 | HwRWBlQDyAO2AE0D6gOWA/0CCgZ9AGsGewIqBCoGVASfBlQDlgPIBFYFNgIKA+oGmgIKBFYDyAPIA8gA | |
|
3230 | owO2A+oDlgPqBp8CdgO2AGsDlgPqBFYEnwB+BlkDbQPIA+oDbQZhBogGVAVvBkcDyAAfAB8CdQAfAKMG | |
|
3231 | aQO2BCoGXgO2gLCAz4DJgG6AcoDJgNqAz4DPgQGhgM+AyYEBFYEBFYACgQHqgQFJgMmAz4EBqoBqgQGm | |
|
3232 | gL6A2oEBqoDPgNqBAaqA4IAHgAKAC4EBVYDJgMmA2oDagBSAAoD+gQGqgM+AyYALgNqAvoDggG6BAcuA | |
|
3233 | DoEBrYBygO+BAaqBARWBAaqAvoDPgP6BAUmAboDagQHcgG6A/oDPgM+Az4AUgMmA2oC+gNqBAeCAi4DJ | |
|
3234 | gA6AvoDagP6BARWAEIEB8ICwgM+A2oCwgQHmgQHRgQGqgQFbgQGcgM+AAoACgHyAAoAUgQG2gMmA74EB | |
|
3235 | v4DJ0gAOAD4GAAirgQGHrxBoA1sGRwTfAkQCdQZLBIoEQQUgBW8E0QZQBbAFywUuBlQEVgZXBYYGWQIK | |
|
3236 | A20GXATtBl4GXwS3BmEGYgBNBdsAawVVBHsFoAZpBmoAyAUKBGEGbgZwBKkAbAZyBBUD9QIaA8gD6gB/ | |
|
3237 | BCICdgZ7BJcGfQOOBn8GgAV5AioGgwSfAhAETgPSBogEBwCqBb4D4QaNBo4D/QLAA64AfgaTBG4FEwTE | |
|
3238 | AKMFXQT7AB8GmgabBTYDoAafA5YFZwQqBDQDwAVBAoMAQQCxBqkGqAVIA7YGrICvgQGcgQEsgHSAfIEB | |
|
3239 | oYEBEID5gQFDgQFbgQEngQGmgQFxgQF6gQFIgQGqgP6BAcOBAWOBAfCAboCwgQHZgQExgQG/gQHPgQEf | |
|
3240 | gQHmgQHkgAuBAX6ADoEBVIEBC4EBbIEBtoEBtYAYgQE7gQEDgQHqgQHGgQEagKOBAb2A6oDfgJSAz4Da | |
|
3241 | gGqA7oCLgQGtgQEUgQHLgL2BAdCBAe6BAV+AcoEBsYEBFYCWgP2A1IEB0YDlgFiBAXaA2YEB14EBvIDg | |
|
3242 | gI6AyIAQgQHVgQEHgQE/gQEjgBSBAVWBATaAAoEB3IEBsoEBSYDDgQHggL6BAVqA74D0gM6BAU6Ag4AH | |
|
3243 | gFSBAcqBAbmBAVCAyYEBydIADgA+BgAJFoEBh68QaAkXCRgJGQkaCRsJHAkdCR4JHwkgCSEJIgkjCSQJ | |
|
3244 | JQkmCScJKAkpCSoJKwksCS0JLgkvCTAJMQkyCTMJNAk1CTYJNwk4CTkJOgk7CTwFDgk+CT8JQAlBCUIJ | |
|
3245 | QwlECUUJRglHCUgJSQlKCUsJTAlNCU4JTwlQCVEJUglTCVQJVQlWCVcJWAlZCVoJWwlcCV0JXglfCWAJ | |
|
3246 | YQliCWMJZAllCWYJZwloCWkJaglrCWwJbQluCW8JcAlxCXIJcwl0CXUJdgl3CXgJeQl6CXsJfAl9CX6B | |
|
3247 | AfiBAfmBAfqBAfuBAfyBAf2BAf6BAf+BAgCBAgGBAgKBAgOBAgSBAgWBAgaBAgeBAgiBAgmBAgqBAguB | |
|
3248 | AgyBAg2BAg6BAg+BAhCBAhGBAhKBAhOBAhSBAhWBAhaBAheBAhiBAhmBAhqBAhuBAhyBAh2BATyBAh6B | |
|
3249 | Ah+BAiCBAiGBAiKBAiOBAiSBAiWBAiaBAieBAiiBAimBAiqBAiuBAiyBAi2BAi6BAi+BAjCBAjGBAjKB | |
|
3250 |
|
|
|
3251 |
AkeBAkiBAkmBAkqBAkuBAkyBAk2BAk6BAk+BAlCBAlGBAlKBAlOBAlSBAlWBAla |
|
|
3252 | AluBAlyBAl2BAl5fEBhNZW51IEl0ZW0gKFNtYXJ0IFF1b3RlcylfEBJNZW51IEl0ZW0gKFNwZWVjaClR | |
|
3253 | OF8QEVRhYmxlIEhlYWRlciBWaWV3XxAXVGFibGUgQ29sdW1uIChWYXJpYWJsZSlfEBdNZW51IEl0ZW0g | |
|
3254 | KE9wZW4gUmVjZW50KV8QIU1lbnUgSXRlbSAoQWJvdXQgSVB5dGhvbjFTYW5kYm94KV8QEk1lbnUgSXRl | |
|
3255 | bSAoRGVsZXRlKV8QEE1lbnUgSXRlbSAoQ29weSlfEBJNZW51IChPcGVuIFJlY2VudClRNl8QGU1lbnUg | |
|
3256 | SXRlbSAoU3Vic3RpdHV0aW9ucylvEBoATQBlAG4AdQAgAEkAdABlAG0AIAAoAFMAaABvAHcAIABTAHAA | |
|
3257 | ZQBsAGwAaQBuAGcgJgApXxAnTWVudSBJdGVtIChDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmcpXxAY | |
|
3258 | TWVudSBJdGVtIChTaG93IFRvb2xiYXIpWE1haW5NZW51XU1lbnUgKFdpbmRvdylROV8QD01lbnUgSXRl | |
|
3259 | bSAoQ3V0KVExW1Njcm9sbCBWaWV3XxAUTWVudSAoU3Vic3RpdHV0aW9ucylfECJNZW51IEl0ZW0gKFVz | |
|
3260 | ZSBTZWxlY3Rpb24gZm9yIEZpbmQpVDExMTFfEBBNZW51IEl0ZW0gKEZpbGUpW1NlcGFyYXRvci01XxAg | |
|
3261 | TWVudSBJdGVtIChIaWRlIElQeXRob24xU2FuZGJveClfEBBNZW51IEl0ZW0gKFZpZXcpXxAWTWVudSBJ | |
|
3262 | dGVtIChTaG93IEZvbnRzKVxDb250ZW50IFZpZXdfEBlVc2VyIE5hbWVzcGFjZSBDb250cm9sbGVyWlNw | |
|
3263 | bGl0IFZpZXdfECBNZW51IEl0ZW0gKElQeXRob24xU2FuZGJveCBIZWxwKVMxLTFRNV8QFE1lbnUgSXRl | |
|
3264 | bSAoU2VydmljZXMpW1NlcGFyYXRvci0xWVRleHQgVmlld18QHk1lbnUgSXRlbSAoQnJpbmcgQWxsIHRv | |
|
3265 | IEZyb250KV8QEk1lbnUgSXRlbSAoV2luZG93KW8QEQBNAGUAbgB1ACAASQB0AGUAbQAgACgATwBwAGUA | |
|
3266 | biAmAClfEBZNZW51IEl0ZW0gKFNlbGVjdCBBbGwpXEFzeW5jIEFycm93c1tTZXBhcmF0b3ItMm8QEQBN | |
|
3267 | AGUAbgB1ACAASQB0AGUAbQAgACgARgBpAG4AZCAmAClfEBdNZW51IEl0ZW0gKFNob3cgQ29sb3JzKV8Q | |
|
3268 | EVZlcnRpY2FsIFNjcm9sbGVyW01lbnUgKEVkaXQpXxAWTWVudSAoSVB5dGhvbjFTYW5kYm94KV8QD0Jv | |
|
3269 | eCAoV29ya3NwYWNlKV8QGU1lbnUgSXRlbSAoU3RvcCBTcGVha2luZylfEBRUYWJsZSBDb2x1bW4gKFZh | |
|
3270 | bHVlKV8QG01lbnUgSXRlbSAoSVB5dGhvbjFTYW5kYm94KV8QGk1lbnUgSXRlbSAoQ2hlY2sgU3BlbGxp | |
|
3271 | bmcpXxAQTWVudSBJdGVtIChFZGl0KV8QHU1lbnUgSXRlbSAoSnVtcCB0byBTZWxlY3Rpb24pW1NlcGFy | |
|
3272 | YXRvci02WVNlcGFyYXRvcm8QHgBNAGUAbgB1ACAASQB0AGUAbQAgACgAQwB1AHMAdABvAG0AaQB6AGUA | |
|
3273 | IABUAG8AbwBsAGIAYQByICYAKV8QHFRhYmxlIFZpZXcgKFZhcmlhYmxlLCBWYWx1ZSlbU2VwYXJhdG9y | |
|
3274 | LTNfEBtNZW51IChTcGVsbGluZyBhbmQgR3JhbW1hcilfEBNIb3Jpem9udGFsIFNjcm9sbGVyXxAUTWVu | |
|
3275 | dSBJdGVtIChNaW5pbWl6ZSlfEBBNZW51IEl0ZW0gKFJlZG8pXxAQTWVudSBJdGVtIChGaW5kKV8QEU1l | |
|
3276 | bnUgSXRlbSAoUGFzdGUpXxAVSG9yaXpvbnRhbCBTY3JvbGxlci0xUjEwXxAXTWVudSBJdGVtIChIaWRl | |
|
3277 | IE90aGVycylfEBlNZW51IEl0ZW0gKEZpbmQgUHJldmlvdXMpW1NlcGFyYXRvci00XU1lbnUgKEZvcm1h | |
|
3278 | dClfEB1UZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbCktMVEzXUJveCAoQ29uc29sZSlfEBVNZW51IEl0 | |
|
3279 | ZW0gKEZpbmQgTmV4dClfEBRNZW51IEl0ZW0gKFNob3cgQWxsKV8QEE1lbnUgSXRlbSAoWm9vbSlfECdN | |
|
3280 | ZW51IEl0ZW0gKENoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyldU2Nyb2xsIFZpZXctMVEyXxAXTWVu | |
|
3281 | dSBJdGVtIChTbWFydCBMaW5rcylcRmlsZSdzIE93bmVyXxAgTWVudSBJdGVtIChTcGVsbGluZyBhbmQg | |
|
3282 | R3JhbW1hcilTMTIxW01lbnUgKFZpZXcpXxAcTWVudSBJdGVtIChTbWFydCBDb3B5L1Bhc3RlKV8QEk1l | |
|
3283 | bnUgSXRlbSAoRm9ybWF0KVtNZW51IChGaW5kKV8QFk1lbnUgSXRlbSAoQ2xlYXIgTWVudSldTWVudSAo | |
|
3284 | U3BlZWNoKV8QF1B5dGhvbiBDb2NvYSBDb250cm9sbGVyXxAQTWVudSBJdGVtIChVbmRvKVtBcHBsaWNh | |
|
3285 | dGlvbl8QG1RleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKV8QGVdpbmRvdyAoSVB5dGhvbjEgKENvY29h | |
|
3286 | KSlfEBNWZXJ0aWNhbCBTY3JvbGxlci0xUzItMV8QD01lbnUgKFNlcnZpY2VzKV8QGk1lbnUgSXRlbSAo | |
|
3287 | U3RhcnQgU3BlYWtpbmcpW01lbnUgKEZpbGUpUTfSAA4APgYACeiBAYeg0gAOAD4GAAnrgQGHoNIADgA+ | |
|
3288 | BgAJ7oEBh68QlwNUA1sGRwNBA0kE3wJEAnUGSwSKBEEFIAVvA0IGUATRA0QDMgNOBbADMQNRA0sFywM+ | |
|
3289 | AzoGVARWBS4GVwNNBYYGWQMwAgoDbQZcBO0GXgZfAzkDOAS3AywDTAZhBmIDLwBNBdsDQAM0AGsFVQR7 | |
|
3290 | BaAGaQZqAMgDKwUKBGEGbgSpBnAAbANHBnIEFQP1AhoDyAB/A+oCdgQiAz8GewSXBn0DjgZ/A0oDVgaA | |
|
3291 | A1UFeQIqA0MGgwSfAhADKgROA9IGiAQHAKoDOwNIBb4D4QaNAzYDPAaOA0UD/QMoAsADrgMzAH4GkwRu | |
|
3292 | BRMExACjA1IDKQVdBPsAHwaaBpsDoAU2A5YGnwMuBWcDUAQqA8AENANGBUEDNQKDA08AQQCxBqgGqQM3 | |
|
3293 | Az0DUwMtBUgDtgasgQGQgK+BAZyBATWBAVmBASyAdIB8gQGhgQEQgPmBAUOBAVuBATqBAaaBASeBAUKA | |
|
3294 | 7YEBa4EBcYDpgQF5gQFigQF6gQEmgQETgQGqgP6BAUiBAcOBAWmBAWOBAfCA5IBugLCBAdmBATGBAb+B | |
|
3295 | Ac+BAQ+BAQqBAR+AzYEBZ4EB5oEB5IDegAuBAX6BATCA+IAOgQFUgQELgQFsgQG2gQG1gBiAx4EBO4EB | |
|
3296 | A4EB6oEBGoEBxoCjgQFPgQG9gOqA34CUgM+AaoDagIuA7oEBK4EBrYEBFIEBy4C9gQHQgQFegQGXgQHu | |
|
3297 | gQGTgQFfgHKBAT6BAbGBARWAloDCgP2A1IEB0YDlgFiBARmBAVOBAXaA2YEB14EBAoEBHoEBvIEBR4Dg | |
|
3298 | gK6AjoDIgPOAEIEB1YEBB4EBP4EBI4AUgQF9gLyBAVWBATaAAoEB3IEBsoDDgQFJgL6BAeCA2IEBWoEB | |
|
3299 | dYDvgM6A9IEBTYEBToD8gIOBAXCAB4BUgQG5gQHKgQEGgQEigQGMgNOBAVCAyYEBydIADgA+BgAKiIEB | |
|
3300 | h68QlwqJCooKiwqMCo0KjgqPCpAKkQqSCpMKlAqVCpYKlwqYCpkKmgqbCpwKnQqeCp8KoAqhCqIKowqk | |
|
3301 | CqUKpgqnCqgKqQqqCqsKrAqtCq4KrwqwCrEKsgqzCrQKtQq2CrcKuAq5CroKuwq8Cr0Kvgq/CsAKwQrC | |
|
3302 | CsMKxArFCsYKxwrICskKygrLCswKzQrOCs8K0ArRCtIK0wrUCtUK1grXCtgK2QraCtsK3ArdCt4K3wrg | |
|
3303 | CuEK4grjCuQK5QrmCucK6ArpCuoK6wrsCu0K7grvCvAK8QryCvMK9Ar1CvYK9wr4CvkK+gr7CvwK/Qr+ | |
|
3304 | Cv8LAAsBCwILAwsECwULBgsHCwgLCQsKCwsLDAsNCw4LDwsQCxELEgsTCxQLFQsWCxcLGAsZCxoLGwsc | |
|
3305 | Cx0LHgsfgQJjgQJkgQJlgQJmgQJngQJogQJpgQJqgQJrgQJsgQJtgQJugQJvgQJwgQJxgQJygQJzgQJ0 | |
|
3306 | gQJ1gQJ2gQJ3gQJ4gQJ5gQJ6gQJ7gQJ8gQJ9gQJ+gQJ/gQKAgQKBgQKCgQKDgQKEgQKFgQKGgQKHgQKI | |
|
3307 | gQKJgQKKgQKLgQKMgQKNgQKOgQKPgQKQgQKRgQKSgQKTgQKUgQKVgQKWgQKXgQKYgQKZgQKagQKbgQKc | |
|
3308 | gQKdgQKegQKfgQKggQKhgQKigQKjgQKkgQKlgQKmgQKngQKogQKpgQKqgQKrgQKsgQKtgQKugQKvgQKw | |
|
3309 | gQKxgQKygQKzgQK0gQK1gQK2gQK3gQK4gQK5gQK6gQK7gQK8gQK9gQK+gQK/gQLAgQLBgQLCgQLDgQLE | |
|
3310 | gQLFgQLGgQLHgQLIgQLJgQLKgQLLgQLMgQLNgQLOgQLPgQLQgQLRgQLSgQLTgQLUgQLVgQLWgQLXgQLY | |
|
3311 | gQLZgQLagQLbgQLcgQLdgQLegQLfgQLggQLhgQLigQLjgQLkgQLlgQLmgQLngQLogQLpgQLqgQLrgQLs | |
|
3312 | gQLtgQLugQLvgQLwgQLxgQLygQLzgQL0gQL1gQL2gQL3gQL4gQL5EQGrEQFfENMRAWUQfxBQEQGYEQGc | |
|
3313 | EHwQOhDKEMUQfREBuREBXBBOEOAQ4xBXEMwQ8REBWxDkEQFaEFYQ4RAdEBgRASkQUhEBvRDHEGcQ4hEB | |
|
3314 | lxEBXRDdEIgQUxDOEI4QwRCGEN8RAbwRAScRAVgRAWkRAXQRAYERAXEQ6xEBpRBvEEkQTRCDEI8RAaMR | |
|
3315 | AWoRAXUQBRATEMYQSBEBtBDpEJUQ0REBWREBmRDNEQGWEDkRAZ0QwxEBaxA4EMkQ2RDSENYRAW0RAbUQ | |
|
3316 | XBEBuBEBKhEBmxDwEOwQyBEBmhEBYxAXENcQ2hDLEQGiEOgRAWgQcBCRENUQJxEBbxCQEQFuEQEsEQFk | |
|
3317 | EQGeEEsRAa0RAaQQ0BCWEO8Q2xEBoBEBrBD1EGoRAWIRAb4Q2BCBEQFeEQEoENwRASsRAXAQfhEBbBDU | |
|
3318 | EM8RAaYRAXYT//////////0QJREBnxDmEQFzEQGhEIIQShEBchDeEQGoEOcQxBBREE/SAA4APgBpC7mA | |
|
3319 | NKDSAA4APgYAC7yBAYeg0gAOAD4GAAu/gQGHoNIANwA4C8ELwqILwgA7Xk5TSUJPYmplY3REYXRhAAgA | |
|
3320 | GQAiACcAMQA6AD8ARABSAFQAZgZmBmwGtwa+BsUG0wblBwEHDwcbBycHNQdAB04Hagd4B4sHnQe3B8EH | |
|
3321 | zgfQB9MH1gfZB9wH3gfhB+MH5gfpB+wH7wfxB/MH9gf5B/wH/wgICBQIFggYCCYILwg4CEMISAhXCGAI | |
|
3322 | cwh8CIcIiQiMCI4IuwjICNUI6wj5CQMJEQkeCTAJRAlQCVIJVAlWCVgJWglfCWEJYwllCWcJaQmECZcJ | |
|
3323 | oAm9Cc8J2gnjCe8J+wn9Cf8KAQoECgYKCAoKChMKFQoaChwKHgpHCk8KXgptCnoKfAp+CoAKggqFCocK | |
|
3324 | iQqLCowKlQqXCpwKngqgCtkK4wrvCv0LCgsUCyYLNAs2CzgLOgs8Cz0LPwtBC0MLRQtHC0kLSwtNC1YL | |
|
3325 | WAtbC10Legt8C34LgAuCC4QLhguPC5ELlAuWC8cL0wvcC+gL9gv4C/oL/Av+DAEMAwwFDAcMCQwLDA0M | |
|
3326 | FgwYDB8MIQwjDCUMWgxjDGwMdgyADIoMjAyODJAMkgyUDJYMmAybDJ0MnwyhDKMMpQyuDLAMswy1DOoM | |
|
3327 | /A0GDRMNHw0pDTINPQ0/DUENQw1FDUcNSQ1LDU4NUA1SDVQNVg1YDWENYw2IDYoNjA2ODZANkg2UDZYN | |
|
3328 | mA2aDZwNng2gDaINpA2mDagNqg3GDdsN+A4ZDjUOWw6BDp8Ouw7XDvQPDA8mD1oPdw+TD8APyQ/QD90P | |
|
3329 | 4w/6EA8QGRAkECwQPhBAEEIQSxBNEGIQdRCDEI0QjxCREJMQlRCiEKsQrRCvELEQuhDEEMYQxxDQENcQ | |
|
3330 | 6RDyEPsRFxEsETURNxE6ETwRRRFMEVsRYxFsEXERehF/EaARqBHCEdUR6RIAEhUSKBIqEi8SMRIzEjUS | |
|
3331 | NxI5EjsSSBJVElsSXRJ4EoEShhKOEpsSoxKlEqcSqhK3Er8SwRLGEsgSyhLPEtES0xLoEvQTAhMEEwYT | |
|
3332 | CBMKExETLxM8Ez4TShNfE2ETYxNlE2cTexOEE4kTlhOjE6UTqhOsE64TsxO1E7cTwxPQE9IT2RPiE+cT | |
|
3333 | /hQLFBMUHBQnFC4UNRRBFFgUcBR9FH8UghSPFJkUphSoFKoUshS7FMAUyRTSFN0VAhULFRQVHhUgFSIV | |
|
3334 | JBUmFS8VMRUzFTUVPhVWFWMVbBV3FYIVjBW5FcQVxhXIFcoVzBXOFdAV0hXbFeQV/xYYFiEWKhY3Fk4W | |
|
3335 | VxZeFmkWcBaNFpkWpBauFrsWxxbMFs4W0BbSFtQW1hbeFu8W9hb9FwYXCBcRFxMXFhcjFywXMRc4F00X | |
|
3336 | TxdRF1MXVRdrF3gXeheIF5EXmhesF7kXwBfJF9IX2BgRGBMYFRgXGBkYGhgcGB4YIBgiGCQYJhgvGDEY | |
|
3337 | NBg2GFMYVRhXGFkYWxhdGF8YaBhqGG0YbxiuGLsYzhjbGN0Y3xjhGOMY5RjnGOkY6xj+GQAZAhkEGQYZ | |
|
3338 | CBkRGRMZHhkgGSIZJBkmGSgZVRlXGVkZWxldGV8ZYRljGWUZZxlwGXIZdRl3Gc4Z8Bn6GgcaHBo2GlIa | |
|
3339 | bRp3GoMalRqkGsMazxrRGtMa3BreGuAa4RrjGuwa9Rr3Gvga+hr8Gv4bABsJGxQbMRs9Gz8bQRtDG0Ub | |
|
3340 | RxtJG3YbeBt6G3wbfhuAG4IbhBuGG4gbkhubG6QbuBvRG9Mb1RvXG9kb2xvyG/scBBwSHBscHRwiHCQc | |
|
3341 | JhxPHF4caxx2HIUckBybHKgcqRyrHK0cthy4HMEcyhzLHM0c6hzvHPEc8xz1HPcc+R0CHQ8dER0dHTId | |
|
3342 | NB02HTgdOh1MHVUdYB10HZUdox2oHaodrB2uHbAdsh21HbcdwR3SHdQd3R3fHeId9x35Hfsd/R3/Hhge | |
|
3343 | LR4vHjEeMx41HkgeUR5WHmQejR6OHpAekh6bHp0enh6gHr0evx7BHsMexR7HHs0e7h7wHvIe9B72Hvge | |
|
3344 | +h8PHxEfEx8VHxcfIR8uHzAfNR8+H0kfYR+GH4gfih+MH44fkB+SH5QfnR+2H98f4R/jH+Uf5x/pH+sf | |
|
3345 | 7R/2IA4gFyAZIBwgHiA0IE0gZCB9IJognCCeIKAgoiCkIK4guyC9INYg+SECIQshFyFAIUshViFgIW0h | |
|
3346 | byFxIXMhfCGFIYghiiGNIY8hkSGWIZghoSGmIbEhySHSIdsh8SH8IhQiJyIwIjUiSCJRIlMitCK2Irgi | |
|
3347 | uiK8Ir4iwCLCIsQixiLIIsoizCLOItAi0yLWItki3CLfIuIi5SLoIusi7iLxIvQi9yL6Iv0jACMDIwYj | |
|
3348 | CSMMIw8jEiMVIxgjGyMeIyEjJCMnIyojLSMwIzMjQCNJI1EjUyNVI1cjfCOEI5gjoyOxI7sjyCPPI9Uj | |
|
3349 | 1yPZI94j4CPlI+cj6SPrI/gkBCQHJAokDSQaJBwkKSQ4JDokPCQ+JEYkWCRhJGYkeSSGJIgkiiSMJJ8k | |
|
3350 | qCStJLgk3CTlJOwlBCUTJSAlIiUkJSYlRyVJJUslTSVPJVElUyVgJWMlZiVpJX0lfyWfJawlriWwJbIl | |
|
3351 | 1yXZJdsl3SXfJeEl4yX2JfgmEyYgJiImJCYmJkcmSSZLJk0mTyZRJlMmYCZjJmYmaSZuJnAmfiaLJo0m | |
|
3352 | jyaRJrImtCa2Jrgmuia8Jr4myybOJtEm1CbZJtsm4SbuJvAm8ib0JxUnFycZJx4nICciJyQnJicrJy0n | |
|
3353 | MydAJ0InRCdGJ2cnaSdrJ3Ancid0J3YneCeJJ4wnjyeSJ5UnoSejJ7wnySfLJ80nzyfwJ/In9Cf2J/gn | |
|
3354 | +if8KAkoDCgPKBIoHiggKDgoRShHKEkoSyhsKG4ocChyKHQodih4KH4ogCiHKJQoliiYKJoovyjBKMMo | |
|
3355 | xSjHKMkoyyjWKPAo/Sj/KQEpAykkKSYpKCkqKSwpLikwKT0pQClDKUYpVCliKXMpgSmDKYUphymJKZIp | |
|
3356 | lCmWKa8puCnBKcgp3ynsKe4p8CnyKhMqFSoXKhkqGyodKh8qJiouKjsqPSo/KkIqYyplKmcqaipsKm4q | |
|
3357 | cCqBKoQqhyqKKo0qliqYKq4quyq9KsAqwyrkKuYq6SrrKu0q7yrxKwYrGCslKycrKistK04rUCtTK1Ur | |
|
3358 | VytZK1srZCt9K4orjCuPK5Irsyu1K7gruyu9K78rwSvHK8kr1yvoK+or7CvvK/IsDywRLBQsFiwYLBos | |
|
3359 | HCw0LFQsYSxjLGYsaSyKLIwsjyySLJQsliyZLKYsqSysLK8svizALM8s3CzeLOEs5C0FLQctCi0NLQ8t | |
|
3360 | ES0TLR4tIC0rLTgtOi09LUAtYS1jLWYtaC1qLWwtbi2FLYstmC2aLZ0toC3BLcMtxi3ILcotzC3PLe0u | |
|
3361 | Di4bLh0uIC4jLkQuRi5JLkwuTi5QLlIuXy5hLmgudS53LnoufS6eLqAuoy6mLqguqi6sLr0uvy7RLt4u | |
|
3362 | 4C7jLuYvBy8JLwwvDy8RLxMvFS8sLy4vOS9GL0gvSy9OL3MvdS94L3svfS9/L4EvjS+PL68vwC/CL8Qv | |
|
3363 | xy/KL9Mv1S/YL/UwCTAWMBgwGzAeMD8wQTBEMEYwSDBKMEwwUTBeMGswbTBwMHMwlDCWMJkwnDCeMKAw | |
|
3364 | ojCnMKkwrzC8ML4wwTDEMOUw5zDqMO0w7zDxMPQxATEEMQcxCjEXMRkxLzFAMUIxRTFIMUoxUzFVMVcx | |
|
3365 | ZDFmMWkxbDGNMY8xkjGUMZYxmDGaMakxuDHFMccxyjHNMe4x8DHzMfYx+DH6Mf0yCjINMhAyEzIqMiwy | |
|
3366 | NjJDMkUySDJLMmwybjJxMnMydTJ3MnoyizKOMpEylDKXMqIyujLHMskyzDLPMvAy8jL1Mvcy+TL7Mv4z | |
|
3367 | JTNHM1QzVjNZM1wzfTN/M4IzhTOHM4kzizOPM5EzljOnM6kzqzOtM7AzuTPKM8wzzjPQM9Mz6zP4M/oz | |
|
3368 | /TQANCU0LzQxNDM0NjQ5NDs0PTQ/NE00TzReNGs0bTRwNHM0lDSWNJk0nDSeNKA0ozTANMI01DThNOM0 | |
|
3369 | 5jTpNQY1CDULNQ01DzURNRM1JTU+NUs1TTVQNVM1dDV2NXk1ezV9NX81gjWgNbk11jXgNeo2CTYMNg82 | |
|
3370 | EjYVNhc2GjZHNmQ2ezaINpM2ojaxNtY28TcKNx43HzciNyM3JjcnNyo3LTcuNy83MDczNzw3PjdFN0g3 | |
|
3371 | SzdON1M3VzddN2Y3aTdsN283gDeGN5E3nTegN6M3pjenN7A3uTe+N9E32jffN+g38zgMOCA4NThCOF84 | |
|
3372 | dTh+OIU4nTi6OL04vzjCOMU4yDjLOOc4+zkCOR85IjklOSg5KzktOTA5TzlnOYQ5hzmKOY05kDmTOZY5 | |
|
3373 | wjnUOe86DDoPOhE6FDoXOhk6HDo4OkA6UzpcOl87MDsyOzU7ODs6Ozw7PztCO0Q7RztKO007UDtTO1Y7 | |
|
3374 | WTtbO147YTtkO2c7aTtrO247cTt0O3c7ejt9O4A7gjuFO4c7ijuNO5A7kzuWO5g7mzueO6E7pDunO6k7 | |
|
3375 | rDuuO7A7sju0O7Y7uDu6O7w7vzvCO8U7xzvKO8070DvSO9U72DvaO9w73jvhO+M75TvoO+o77TvwO/I7 | |
|
3376 | 9Dv2O/g7+zv+PAE8BDwGPAk8DDwPPBI8FDwXPBk8HDwfPCE8IzwlPCg8KjwsPC48MTw0PDc8OTw8PGU8 | |
|
3377 | bzxxPHM8djx4PHo8fDx+PIE8iDyXPKA8ojynPKo8rDy1PLo84zzlPOg86zztPO888TzzPPY9Aj0LPQ09 | |
|
3378 | ED0TPSw9VT1XPVk9XD1ePWA9Yj1kPWc9dT1+PYA9hz2JPYs9jj2fPaI9pT2oPas9tT2+PcA9zz3SPdU9 | |
|
3379 | 2D3bPd494T3kPg0+Dz4RPhQ+Fj4YPho+HT4gPjI+Oz49PlQ+Vz5aPl0+YD5jPmY+aT5rPm4+cT50Pp0+ | |
|
3380 | qz64Pro+vD69Pr8+wD7CPsQ+xj7nPuk+7D7vPvE+8z71Pw4/ED85Pzs/PT8+P0A/QT9DP0U/Rz9wP3I/ | |
|
3381 | dT94P3o/fD9+P4A/gz+MP50/oD+jP6Y/qT+yP7Q/tT/HP/A/8j/0P/U/9z/4P/o//D/+QCdAKUArQCxA | |
|
3382 | LkAvQDFAM0A1QEJAa0BtQG9AckB0QHZAeEB7QH5Ag0CMQI5ApUCoQKtArkCxQLRAtkC5QLxAv0DCQMVA | |
|
3383 | 5kDoQOtA7kDwQPJA9ED4QPpBG0EdQSBBI0ElQSdBKUE0QTZBX0FhQWNBZEFmQWdBaUFrQW1BlkGYQZpB | |
|
3384 | m0GdQZ5BoEGiQaRBzUHPQdFB1EHWQdhB2kHdQeBB5UHuQfBCC0INQg9CEkIVQhhCGkIcQh9CIkIlQihC | |
|
3385 | K0IuQldCWUJbQlxCXkJfQmFCY0JlQo5CkEKSQpNClUKWQphCmkKcQsVCx0LJQsxCzkLQQtJC1ELXQtxC | |
|
3386 | 5ULnQvJC9EL3QvpC/UL/QyRDJkMpQytDLUMvQzFDO0NgQ2JDZUNoQ2pDbENuQ3xDoUOjQ6ZDqUOrQ61D | |
|
3387 | r0OxQ8pDzEP1Q/dD+kP9Q/9EAUQDRAVECEQfRChEKkQzRDZEOUQ8RD9EaERqRGxEb0RxRHNEdUR4RHtE | |
|
3388 | gkSLRI1EkkSVRJdEuES6RL1EwETCRMRExkTRRPpE/ET/RQJFBEUGRQhFC0UORRNFHEUeRSNFJkUpRVJF | |
|
3389 | VEVWRVlFW0VdRV9FYkVlRWxFdUV3RYBFgkWFRYhFi0W0RbZFuEW5RbtFvEW+RcBFwkXRRfpF/EX/RgJG | |
|
3390 | BEYGRghGC0YORhNGHEYeRiFGJEYwRjlGPEcNRw9HEUcTRxVHF0cZRxtHHUcfRyJHJEcmRylHLEcuRzFH | |
|
3391 |
|
|
|
3392 | dkd4R3tHfUeAR4JHhEeHR4pHjUePR5FHk0eWR5hHmkedR59HoUejR6VHp0epR6tHrUevR7FHtEe2R7hH | |
|
3393 | uke8R75HwEfDR8VHyEfKR8xHzkfQR9NH1kfZR9xH30fhR+NH5UfnR+lH60fuR/BH8kf1R/dIAEgDSNZI | |
|
3394 | 2EjbSN5I4EjiSOVI6EjqSO1I8EjzSPZI+Uj8SP9JAkkESQdJCkkNSQ9JEUkUSRdJGkkdSSBJI0kmSShJ | |
|
3395 | K0ktSTBJM0k2STlJPEk+SUFJRElHSUpJTUlPSVJJVElWSVhJWklcSV5JYEliSWVJaElrSW1JcElzSXZJ | |
|
3396 | eEl7SX5JgEmCSYRJh0mJSYtJjkmQSZNJlkmYSZpJnEmeSaFJpEmnSapJrEmvSbJJtEm3SbpJvUm/ScJJ | |
|
3397 | xEnHSclJy0nNSdBJ0knUSdZJ2UncSd9J4UnkSe1J8ErDSsZKyUrMSs9K0krVSthK20reSuFK5ErnSupK | |
|
3398 | 7UrwSvNK9kr5SvxK/0sCSwVLCEsLSw5LEUsUSxdLGksdSyBLI0smSylLLEsvSzJLNUs4SztLPktBS0RL | |
|
3399 | R0tKS01LUEtTS1ZLWUtcS19LYktlS2hLa0tuS3FLdEt3S3pLfUuAS4NLhkuJS4xLj0uSS5VLmEubS55L | |
|
3400 |
oUukS6dLqkutS7BLs0u2S7lLvEu/S8JLxUvIS8tLzkvRS9RL10vaS91L4EvjS+ZL6UvsS+9L8kv1 |
|
|
3401 | +0wWTCtMLUxBTFtMdUyZTK5MwUzWTNhM9E0rTVVNcE15TYdNiU2bTZ1NqU3ATeVN6k39TglOLE4/TlhO | |
|
3402 | ZU6BToxOr06zTrVOzE7YTuJPA08YTz1PVk9jT29PlE+uT8JPzk/nT/lQFVAsUEpQZ1B6UJpQplCwUO9R | |
|
3403 | DlEaUThRTlFlUXhRi1GfUbdRulHUUfBR/FIKUipSLFI6UlJSaVJ8UqZStFK2UtBS3VMAUwRTEFMvU0RT | |
|
3404 | UFNpU3dTkVOkU7BTzlPqVABUBFQWVDNUP1RBVEpUTVROVFdUWlRbVGRUZ1WYVZtVnVWgVaNVplWpVatV | |
|
3405 | rVWwVbNVtVW4VbtVvlXBVcRVx1XJVcxVz1XRVdRV11XaVd1V4FXjVeVV6FXrVe5V8VX0VfZV+FX6Vf1W | |
|
3406 |
|
|
|
3407 | UlZUVlZWWFZaVlxWXlZgVmJWZVZoVmtWblZwVnNWdlZ5VnxWf1aCVoRWh1aKVo1Wj1aRVpNWlVaYVppW | |
|
3408 | nFafVqJWpVanVqpWrVawVrNWtla4VrpWvFa+VsBWwlbFVshWy1bOVtBW01bVVthW21bdVuBW41blVuhW | |
|
3409 | 6lbtVu9W8lb1VvdW+Vb7Vv5XAVcDVwVXCFcKVwxXD1cSVxVXGFcbVx1XIFciVyVXLlcxWGJYZVhoWGtY | |
|
3410 | blhxWHRYd1h6WH1YgFiDWIZYiViMWI9YkliVWJhYm1ieWKFYpFinWKpYrViwWLNYtli5WLxYv1jCWMVY | |
|
3411 | yFjLWM5Y0VjUWNdY2ljdWOBY41jmWOlY7FjvWPJY9Vj4WPtY/lkBWQRZB1kKWQ1ZEFkTWRZZGVkcWR9Z | |
|
3412 | IlklWShZK1kuWTFZNFk3WTpZPVlAWUNZRllJWUxZT1lSWVVZWFlbWV5ZYVlkWWdZalltWXBZc1l2WXlZ | |
|
3413 | fFl/WYJZhVmIWYtZjlmRWZRZl1maWZ1ZoFmjWaZZqVmsWa9Zslm1WbhZu1m+WcFZxFnHWcpZzVnQWdNZ | |
|
3414 | 1lnZWdxZ31niWeVZ6FnrWe5Z8Vn0WfdZ+ln9WgBaA1oGWglaDFoPWhJaFVoYWhtaHlohWiRaJ1oqWi1a | |
|
3415 | L1oyWjRaNlo5WjxaPlpAWkJaRFpGWklaTFpOWlBaUlpUWlZaWFpbWl1aYFpiWmRaZlpoWmtabVpwWnJa | |
|
3416 | dFp2WnlafFp+WoBaglqEWoZaiFqKWoxaj1qSWpVamFqbWp5aoVqjWqZaqFqqWqxarlqwWrNatlq5Wrta | |
|
3417 | vVq/WsFaxFrGWshaylrNWtBa0lrVWtda2lrcWt9a4VrjWuVa51rpWuxa71rxWvRa91r6Wvxa/lsAWwNb | |
|
3418 | BlsIWwpbDFsOWxFbE1sWWxhbGlscWx5bIVsjWyZbKVssWy9bMVs0WzdbOVs7Wz1bP1tCW0VbR1tJW0xb | |
|
3419 |
|
|
|
3420 |
|
|
|
3076 | A1UDVoCugLyAwoDIgM6A1IDZgN+A44DogOyA8YD2gPuBAQGBAQaBAQqBAQ+BARWBARqBAR+BASWBASqB | |
|
3077 | AS+BATWBATmBAT2BAUKBAUOBAUiBAUqBAU+BAVSBAViBAVyBAV6BAWKBAWaBAWqBAW6BAXOBAXiBAX2B | |
|
3078 | AY2BAZGBAZSBAZfTAA4DWANZA1oDWwNcWE5TU291cmNlV05TTGFiZWyAu4CvgLrYAA4DXgNfA2ADYQNi | |
|
3079 | A2MDZANlA2YDZwNoA2kDagNrA2xXTlNUaXRsZV8QEU5TS2V5RXF1aXZNb2RNYXNrWk5TS2V5RXF1aXZd | |
|
3080 | TlNNbmVtb25pY0xvY1lOU09uSW1hZ2VcTlNNaXhlZEltYWdlVk5TTWVudYC5gLESABAAAICyEn////+A | |
|
3081 | s4C3gLDUAA4DXgHVA24DbwNwA3EDcltOU01lbnVJdGVtc4EBpIEByoEB2YEBzFhTaG93IEFsbNMADgAy | |
|
3082 | A3UDdgN3A3heTlNSZXNvdXJjZU5hbWWAtoC0gLVXTlNJbWFnZV8QD05TTWVudUNoZWNrbWFya9IANwA4 | |
|
3083 | A3wDfaIDfQA7XxAQTlNDdXN0b21SZXNvdXJjZdMADgAyA3UDdgN3A4GAtoC0gLhfEBBOU01lbnVNaXhl | |
|
3084 | ZFN0YXRl0gA3ADgDhAOFogOFADtaTlNNZW51SXRlbV8QFnVuaGlkZUFsbEFwcGxpY2F0aW9uczrSADcA | |
|
3085 | OAOIA4mjA4kDigA7XxAVTlNOaWJDb250cm9sQ29ubmVjdG9yXk5TTmliQ29ubmVjdG9y0wAOA1gDWQNa | |
|
3086 | A40DjoC7gL2AwdgADgNeA18DYANhA2IDYwNkA2UDkQNnA5IDaQNqA2sDlYC5gL+AwICzgLeAvtMADgNe | |
|
3087 | A24DbwOYA5mBAaSBAauBAa1eQ2hlY2sgU3BlbGxpbmdRO15jaGVja1NwZWxsaW5nOtMADgNYA1kDWgOf | |
|
3088 | A6CAu4DDgMfYAA4DXgNfA2ADYQNiA2MDZANlA6MDZwOkA2kDagNrA6eAuYDFgMaAs4C3gMTTAA4DXgNu | |
|
3089 | A28DqgOrgQGkgQHbgQHdZgBQAHIAaQBuAHQgJlFwVnByaW50OtMADgNYA1kDWgOxA7KAu4DJgM3ZAA4D | |
|
3090 | XgNfA2ADYQNiA2MDZAO0A2UDtgO3A7gDaQNqA2sDuwFYVU5TVGFngLmAyxIAEgAAgMyAs4C3gMrTAA4D | |
|
3091 | XgNuA28DvgO/gQGkgQHAgQHCW1NtYXJ0IExpbmtzUUdfEB10b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0 | |
|
3092 | aW9uOtMADgNYA1kDWgPFA8aAu4DPgNPYAA4DXgNfA2ADYQNiA2MDZANlA8kDtwPKA2kDagNrA82AuYDR | |
|
3093 | gNKAs4C3gNDTAA4DXgNuA28D0APRgQGkgQGvgQGxVFJlZG9RWlVyZWRvOtMADgNYA1kDWgPXA9iAu4DV | |
|
3094 | gNjYAA4DXgNfA2ADYQNiA2MDZANlA9sDZwNoA2kDagNrA9+AuYDXgLKAs4C3gNbTAA4DXgNuA28D4gPj | |
|
3095 | gQGkgQHEgQHGXlN0YXJ0IFNwZWFraW5nXnN0YXJ0U3BlYWtpbmc60wAOA1gDWQNaA+gD6YC7gNqA3tgA | |
|
3096 | DgNeA18DYANhA2IDYwNkA2UD7ANnA+0DaQNqA2sD8IC5gNyA3YCzgLeA29MADgNeA24DbwPzA/SBAaSB | |
|
3097 | AfGBAfNfEBRJUHl0aG9uMVNhbmRib3ggSGVscFE/WXNob3dIZWxwOtMADgNYA1kDWgP6A/uAu4DggOLY | |
|
3098 | AA4DXgNfA2ADYQNiA2MDZANlA/4DZwNoA2kDagNrA5WAuYDhgLKAs4C3gL5fEBtDaGVjayBTcGVsbGlu | |
|
3099 | ZyBXaGlsZSBUeXBpbmdfEB50b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZzrTAA4DWANZA1oEBwQI | |
|
3100 | gLuA5IDn2AAOA14DXwNgA2EDYgNjA2QDZQQLA2cEDANpA2oDawPNgLmA5YDmgLOAt4DQWlNlbGVjdCBB | |
|
3101 | bGxRYVpzZWxlY3RBbGw60wAOA1gDWQNaBBUEFoC7gOmA69gADgNeA18DYANhA2IDYwNkA2UEGQNnA2gD | |
|
3102 | aQNqA2sDlYC5gOqAsoCzgLeAvl8QG0NoZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZ18QFnRvZ2dsZUdy | |
|
3103 | YW1tYXJDaGVja2luZzrTAA4DWANZA1oEIgQjgLuA7YDw2AAOA14DXwNgA2EDYgNjA2QDZQQmA2cDaANp | |
|
3104 | A2oDawQqgLmA74CygLOAt4Du0wAOA14DbgNvBC0ELoEBpIEB54EB6W8QEgBDAHUAcwB0AG8AbQBpAHoA | |
|
3105 | ZQAgAFQAbwBvAGwAYgBhAHIgJl8QH3J1blRvb2xiYXJDdXN0b21pemF0aW9uUGFsZXR0ZTrTAA4DWANZ | |
|
3106 | A1oEMwQ0gLuA8oD12AAOA14DXwNgA2EDYgNjA2QDZQQ3BDgEOQNpA2oDawQqgLmA8xIAGAAAgPSAs4C3 | |
|
3107 | gO5cU2hvdyBUb29sYmFyUXRfEBN0b2dnbGVUb29sYmFyU2hvd2460wAOA1gDWQNaBEIEQ4C7gPeA+tgA | |
|
3108 | DgNeA18DYANhA2IDYwNkA2UERgNnBEcDaQNqA2sDp4C5gPiA+YCzgLeAxFRTYXZlUXNdc2F2ZURvY3Vt | |
|
3109 | ZW50OtQADgRPA1gDWQRQBFEEUgRTXU5TRGVzdGluYXRpb26BAQCA/YD8gP/SAA4AMgAzADSABIAD0gAO | |
|
3110 | ADIAMwRZgASA/l8QGklQeXRob24xU2FuZGJveEFwcERlbGVnYXRlWGRlbGVnYXRl0gA3ADgEXQReowRe | |
|
3111 | A4oAO18QFE5TTmliT3V0bGV0Q29ubmVjdG9y0wAOA1gDWQNaBGEEYoC7gQECgQEF2QAOA14DXwNgA2ED | |
|
3112 | YgNjA2QDtANlBGUDZwRmA2kDagNrA7sAVYC5gQEDgQEEgLOAt4DKXFNtYXJ0IFF1b3Rlc1FnXxAhdG9n | |
|
3113 | Z2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb2461AAOBE8DWANZBFAEbwRRBHGBAQCBAQeA/YEBCdIA | |
|
3114 | DgAyADMEdIAEgQEIXxAWSVB5dGhvbkNvY29hQ29udHJvbGxlcl8QEWlweXRob25Db250cm9sbGVy0wAO | |
|
3115 | A1gDWQNaBHkEeoC7gQELgQEO2AAOA14DXwNgA2EDYgNjA2QDZQR9A2cEfgNpA2oDawNsgLmBAQyBAQ2A | |
|
3116 | s4C3gLBfEBRRdWl0IElQeXRob24xU2FuZGJveFFxWnRlcm1pbmF0ZTrTAA4DWANZA1oEhwSIgLuBARCB | |
|
3117 | ARTYAA4DXgNfA2ADYQNiA2MDZANlBIsDZwSMA2kDagNrBI+AuYEBEoEBE4CzgLeBARHUAA4DXgHVA24D | |
|
3118 | bwSSBJMElIEBpIEB64EB74EB7VhNaW5pbWl6ZVFtXxATcGVyZm9ybU1pbmlhdHVyaXplOtMADgNYA1kD | |
|
3119 | WgSaBJuAu4EBFoEBGdgADgNeA18DYANhA2IDYwNkA2UEngNnBJ8DaQNqA2sDzYC5gQEXgQEYgLOAt4DQ | |
|
3120 | VFVuZG9RelV1bmRvOtMADgNYA1kDWgSoBKmAu4EBG4EBHtgADgNeA18DYANhA2IDYwNkA2UErANnBK0D | |
|
3121 | aQNqA2sDlYC5gQEcgQEdgLOAt4C+bgBTAGgAbwB3ACAAUwBwAGUAbABsAGkAbgBnICZROl8QD3Nob3dH | |
|
3122 | dWVzc1BhbmVsOtMADgNYA1kDWgS2BLeAu4EBIIEBJNgADgNeA18DYANhA2IDYwNkA2UEugO3BLsDaQNq | |
|
3123 | A2sEvoC5gQEigQEjgLOAt4EBIdMADgNeA24DbwTBBMKBAaSBAZ+BAaFbU2hvdyBDb2xvcnNRQ18QFW9y | |
|
3124 | ZGVyRnJvbnRDb2xvclBhbmVsOtMADgNYA1kDWgTIBMmAu4EBJoEBKdgADgNeA18DYANhA2IDYwNkA2UE | |
|
3125 | zAQ4BM0DaQNqA2sDbIC5gQEngQEogLOAt4CwW0hpZGUgT3RoZXJzUWhfEBZoaWRlT3RoZXJBcHBsaWNh | |
|
3126 | dGlvbnM60wAOA1gDWQNaBNYE14C7gQErgQEu2AAOA14DXwNgA2EDYgNjA2QDZQTaA2cE2wNpA2oDawPN | |
|
3127 | gLmBASyBAS2As4C3gNBUQ29weVFjVWNvcHk60wAOA1gDWQNaBOQE5YC7gQEwgQE02QAOA14DXwNgA2ED | |
|
3128 | YgNjA2QDtANlBOgDZwTpA2kDagNrBOwAkIC5gQEygQEzgLOAt4EBMdMADgNeA24DbwTvBPCBAaSBAbWB | |
|
3129 | AbdlAEYAaQBuAGQgJlFmXxAXcGVyZm9ybUZpbmRQYW5lbEFjdGlvbjrTAA4DWANZA1oE9gT3gLuBATaB | |
|
3130 | ATjYAA4DXgNfA2ADYQNiA2MDZANlBPoDZwNoA2kDagNrA9+AuYEBN4CygLOAt4DWXVN0b3AgU3BlYWtp | |
|
3131 | bmddc3RvcFNwZWFraW5nOtQADgRPA1gDWQNaAB8FBAUFgLuAAoEBOoEBPNcADgNeA2ADYQNiA2MDZANl | |
|
3132 | BQgDaANpA2oDawNsgLmBATuAsoCzgLeAsF8QFUFib3V0IElQeXRob24xU2FuZGJveF8QHW9yZGVyRnJv | |
|
3133 | bnRTdGFuZGFyZEFib3V0UGFuZWw60wAOA1gDWQNaBREFEoC7gQE+gQFB2QAOBRQDXgNfA2ADYQNiA2MD | |
|
3134 | ZANlA2gFFwO3BRgDaQNqA2sDp1lOU1Rvb2xUaXCAuYCygQE/gQFAgLOAt4DEXVBhZ2UgU2V0dXAuLi5R | |
|
3135 | UF5ydW5QYWdlTGF5b3V0OtQADgRPA1gDWQRQBG8AQQRTgQEAgQEHgAeA/9MADgNYA1kDWgUmBSeAu4EB | |
|
3136 | RIEBR9gADgNeA18DYANhA2IDYwNkA2UFKgNnBSsDaQNqA2sDzYC5gQFFgQFGgLOAt4DQVVBhc3RlUXZW | |
|
3137 | cGFzdGU61AAOBE8DWANZBFAAyABBBTaBAQCAGIAHgQFJXxAVaW5pdGlhbEZpcnN0UmVzcG9uZGVy0wAO | |
|
3138 | A1gDWQNaBToFO4C7gQFLgQFO2AAOA14DXwNgA2EDYgNjA2QDZQU+A2cFPwNpA2oDawTsgLmBAUyBAU2A | |
|
3139 | s4C3gQExXxARSnVtcCB0byBTZWxlY3Rpb25Ral8QHWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6 | |
|
3140 | 0wAOA1gDWQNaBUgFSYC7gQFQgQFT2AAOA14DXwNgA2EDYgNjA2QDZQVMA2cDaANpA2oDawVQgLmBAVKA | |
|
3141 | soCzgLeBAVHUAA4DXgHVA24DbwVTBVQFVYEBpIEBpYEBp4EBplpDbGVhciBNZW51XxAVY2xlYXJSZWNl | |
|
3142 | bnREb2N1bWVudHM60wAOA1gDWQNaBVoFW4C7gQFVgQFX2AAOA14DXwNgA2EDYgNjA2QDZQVeA2cDaANp | |
|
3143 | A2oDawPNgLmBAVaAsoCzgLeA0FZEZWxldGVXZGVsZXRlOtMADgNYA1kDWgVnBWiAu4EBWYEBW9cADgNe | |
|
3144 | A2ADYQNiA2MDZANlBWsDaANpA2oDawOngLmBAVqAsoCzgLeAxF8QD1JldmVydCB0byBTYXZlZF8QFnJl | |
|
3145 | dmVydERvY3VtZW50VG9TYXZlZDrUAA4ETwNYA1kEUADIBG8FdoEBAIAYgQEHgQFdWHRleHRWaWV30wAO | |
|
3146 | A1gDWQNaBXoFe4C7gQFfgQFh2AAOA14DXwNgA2EDYgNjA2QDZQV+A2cDaANpA2oDawSPgLmBAWCAsoCz | |
|
3147 | gLeBARFfEBJCcmluZyBBbGwgdG8gRnJvbnRfEA9hcnJhbmdlSW5Gcm9udDrTAA4DWANZA1oFhwWIgLuB | |
|
3148 | AWOBAWXYAA4DXgNfA2ADYQNiA2MDZANlBYsDZwTNA2kDagNrA2yAuYEBZIEBKICzgLeAsF8QFEhpZGUg | |
|
3149 | SVB5dGhvbjFTYW5kYm94VWhpZGU60wAOA1gDWQNaBZQFlYC7gQFngQFp2AAOA14DXwNgA2EDYgNjA2QD | |
|
3150 | ZQWYA2cDaANpA2oDawSPgLmBAWiAsoCzgLeBARFUWm9vbVxwZXJmb3JtWm9vbTrTAA4DWANZA1oFoQWi | |
|
3151 | gLuBAWuBAW3ZAA4DXgNfA2ADYQNiA2MDZAO0A2UFpQNnBOkDaQNqA2sDuwCQgLmBAWyBATOAs4C3gMpf | |
|
3152 | EBBTbWFydCBDb3B5L1Bhc3RlXxAYdG9nZ2xlU21hcnRJbnNlcnREZWxldGU60wAOA1gDWQNaBa4Fr4C7 | |
|
3153 | gQFvgQFy2AAOA14DXwNgA2EDYgNjA2QDZQWyA7cFswNpA2oDawOngLmBAXCBAXGAs4C3gMRoAFMAYQB2 | |
|
3154 | AGUAIABBAHMgJlFTXxAPc2F2ZURvY3VtZW50QXM60wAOA1gDWQNaBbwFvYC7gQF0gQF32AAOA14DXwNg | |
|
3155 | A2EDYgNjA2QDZQXAA2cFwQNpA2oDawPNgLmBAXWBAXaAs4C3gNBTQ3V0UXhUY3V0OtMADgNYA1kDWgXK | |
|
3156 | BcuAu4EBeYEBfNgADgNeA18DYANhA2IDYwNkA2UFzgNnBc8DaQNqA2sDp4C5gQF6gQF7gLOAt4DEVUNs | |
|
3157 | b3NlUXddcGVyZm9ybUNsb3NlOtcADgRPBdcF2ANYA1kF2QXaBFEF3AXdBd4F3wBVWU5TS2V5UGF0aFlO | |
|
3158 | U0JpbmRpbmdfEBxOU05pYkJpbmRpbmdDb25uZWN0b3JWZXJzaW9ugQGMgP2BAYuBAYqBAX6BAYnbBeEA | |
|
3159 | DgXiBeMF5AXlBeYF5wXoBekF6gB6BewAegXuAHoF8AXxAHoAegB6BfVfEBpOU0ZpbHRlclJlc3RyaWN0 | |
|
3160 | c0luc2VydGlvbl8QFE5TUHJlc2VydmVzU2VsZWN0aW9uXE5TSW5pdGlhbEtleVpOU0VkaXRhYmxlXk5T | |
|
3161 | RGVjbGFyZWRLZXlzXk5TSW5pdGlhbFZhbHVlXxAiTlNDbGVhcnNGaWx0ZXJQcmVkaWNhdGVPbkluc2Vy | |
|
3162 | dGlvbl8QGE5TU2VsZWN0c0luc2VydGVkT2JqZWN0c18QFk5TQXZvaWRzRW1wdHlTZWxlY3Rpb25fEBFO | |
|
3163 | U1NvcnREZXNjcmlwdG9ycwmBAYgJgQGBCYEBf4EBggkJCYEBg9IADgA+AGkF+IA0owX5Be4F8YEBgIEB | |
|
3164 | gYEBglRrZXlzU2tleVV2YWx1ZdIADgA+BgAGAYEBh6EGAoEBhNQADgYEBgUGBgYHBe4GCQB6VU5TS2V5 | |
|
3165 | Wk5TU2VsZWN0b3JbTlNBc2NlbmRpbmeBAYaBAYGBAYUJWGNvbXBhcmU60gA3ADgGDQYOogYOADtfEBBO | |
|
3166 | U1NvcnREZXNjcmlwdG9y0gA3ADgGEAE4ogE4ADvSADcAOAYSBhOlBhMGFAYVBhYAO18QFk5TRGljdGlv | |
|
3167 | bmFyeUNvbnRyb2xsZXJfEBFOU0FycmF5Q29udHJvbGxlcl8QEk5TT2JqZWN0Q29udHJvbGxlclxOU0Nv | |
|
3168 | bnRyb2xsZXJfEClmaWx0ZXJQcmVkaWNhdGU6IHdvcmtzcGFjZUZpbHRlclByZWRpY2F0ZV8QD2ZpbHRl | |
|
3169 | clByZWRpY2F0ZV8QGHdvcmtzcGFjZUZpbHRlclByZWRpY2F0ZdIANwA4BhsGHKMGHAOKADtfEBVOU05p | |
|
3170 | YkJpbmRpbmdDb25uZWN0b3LXAA4ETwXXBdgDWANZBdkF2gRvBiAGIQXeBiMAVYEBjIEBB4EBkIEBj4EB | |
|
3171 | foEBjl8QGWNvbnRlbnREaWN0aW9uYXJ5OiB1c2VyTlNfEBFjb250ZW50RGljdGlvbmFyeVZ1c2VyTlPX | |
|
3172 | AA4ETwXXBdgDWANZBdkF2gXeBioF8QJ2Bi0AVYEBjIEBfoEBk4EBgoCLgQGSXxAcdmFsdWU6IGFycmFu | |
|
3173 | Z2VkT2JqZWN0cy52YWx1ZV8QFWFycmFuZ2VkT2JqZWN0cy52YWx1ZdcADgRPBdcF2ANYA1kF2QXaBd4G | |
|
3174 | MwXxAnUGNgBVgQGMgQF+gQGWgQGCgHyBAZVfEBp2YWx1ZTogYXJyYW5nZWRPYmplY3RzLmtleV8QE2Fy | |
|
3175 | cmFuZ2VkT2JqZWN0cy5rZXnXAA4ETwXXBdgDWANZBdkF2gRvBjwGPQBsBj8AVYEBjIEBB4EBmoEBmYCj | |
|
3176 | gQGYXxAZYW5pbWF0ZTogd2FpdGluZ0ZvckVuZ2luZVdhbmltYXRlXxAQd2FpdGluZ0ZvckVuZ2luZdIA | |
|
3177 | DgA+BgAGRYEBh68QZwZGAGsE5AVaBkoCwAVQBk0CgwZPBlAE1gZSBlMGVARCAE0AfgPwA7sEBwT2A7EE | |
|
3178 | FQP6AgoAfwNsBJoGYwOnAEECKgTIA1sEeQPfBSYFegRSBm4EbwPoAMgF3gWuBnQE7AONBUgGeAZ5BGED | |
|
3179 | nwOVA80GfgQqBoAEUQaCBREEMwIaBoYGhwaIBokAqgaLBCIFBASoA9cAbAWHBcoCRAaUA8UGlgJ2ALEF | |
|
3180 | OgS+BpsFvAJ1Bp4FZwagBIcFoQS2AKMGpQIQBqcGqAWUBqoGqwSPgQGcgA6BATCBAVWBAZ2AjoEBUYEB | |
|
3181 | qICDgQGqgQGugQErgQGygQGegQG/gPeAC4AQgNuAyoDkgQE2gMmA6YDggG6AaoCwgQEWgQHYgMSAB4By | |
|
3182 | gQEmgK+BAQuA1oEBRIEBX4D8gQHVgQEHgNqAGIEBfoEBb4EB6oEBMYC9gQFQgQHlgQHugQECgMOAvoDQ | |
|
3183 | gQG4gO6BAeGA/YEBzoEBPoDygJSBAbyBAcmBAd6BAeaAWIEBtIDtgQE6gQEbgNWAo4EBY4EBeYB0gQHN | |
|
3184 | gM+BAdqAi4BUgQFLgQEhgQHwgQF0gHyBAbOBAVmBAcOBARCBAWuBASCAFIEB0YCWgQHSgQGigQFngQG6 | |
|
3185 | gQHkgQER2gAOA14DXwauA2AGrwNhA2IDYwNkA2UDaANnAHoDaAB6A2kDagNrA2xdTlNJc1NlcGFyYXRv | |
|
3186 | clxOU0lzRGlzYWJsZWSAuYCyCYCyCYCzgLeAsNoADga5A14DXwNgA2EDYgNjA2QBoANlBL4EwQNnA2gD | |
|
3187 | aQNqA2sGUwbBWU5TU3VibWVudYC5gQEhgQGfgLKAs4C3gQGegQGg1AAOA14B1QNuA28GxAbFBsaBAaSB | |
|
3188 | AceBAfSBAchWRm9ybWF0XnN1Ym1lbnVBY3Rpb2460gAOAD4AaQbLgDSiBqgEtoEBooEBINgADgNeA18D | |
|
3189 | YANhA2IDYwNkA2UG0ANnBDkDaQNqA2sEvoC5gQGjgPSAs4C3gQEhWlNob3cgRm9udHPSADcAOAbXA2Si | |
|
3190 | A2QAO1tPcGVuIFJlY2VudNIADgA+AGkG24A0oQVIgQFQXxAWX05TUmVjZW50RG9jdW1lbnRzTWVuddoA | |
|
3191 | Dga5A14DXwNgA2EDYgNjA2QBoANlBVAFUwNnA2gDaQNqA2sDpwbmgLmBAVGBAaWAsoCzgLeAxIEBqdoA | |
|
3192 | Dga5A14DXwNgA2EDYgNjA2QBoANlA5UDmANnA2gDaQNqA2sDzQbvgLmAvoEBq4CygLOAt4DQgQGsXxAU | |
|
3193 | U3BlbGxpbmcgYW5kIEdyYW1tYXLSAA4APgBpBvOANKQEqAONA/oEFYEBG4C9gOCA6doADga5A14DXwNg | |
|
3194 | A2EDYgNjA2QBoANlA80D0ANnA2gDaQNqA2sGUwcAgLmA0IEBr4CygLOAt4EBnoEBsFRFZGl00gAOAD4A | |
|
3195 | aQcEgDStBJoDxQZSBbwE1gUmBVoEBwaeBosGTwZUBqCBARaAz4EBsoEBdIEBK4EBRIEBVYDkgQGzgQG0 | |
|
3196 | gQGqgQG/gQHD2gAOA14DXwauA2AGrwNhA2IDYwNkA2UDaANnAHoDaAB6A2kDagNrA82AuYCyCYCyCYCz | |
|
3197 | gLeA0NoADgNeA18GrgNgBq8DYQNiA2MDZANlA2gDZwB6A2gAegNpA2oDawPNgLmAsgmAsgmAs4C3gNDa | |
|
3198 | AA4GuQNeA18DYANhA2IDYwNkAaADZQTsBO8DZwNoA2kDagNrA80HLIC5gQExgQG1gLKAs4C3gNCBAbZU | |
|
3199 | RmluZNIADgA+AGkHMIA0pQTkBn4GqgaGBTqBATCBAbiBAbqBAbyBAUvZAA4DXgNfA2ADYQNiA2MDZAO0 | |
|
3200 | A2UHOANnBGYDaQNqA2sE7ABVgLmBAbmBAQSAs4C3gQExWUZpbmQgTmV4dNkADgNeA18DYANhA2IDYwNk | |
|
3201 | A7QDZQdAA7cDuANpA2oDawTsAViAuYEBu4DMgLOAt4EBMV1GaW5kIFByZXZpb3Vz2QAOA14DXwNgA2ED | |
|
3202 | YgNjA2QDtANlB0gDZwdJA2kDagNrBOwHTYC5gQG9gQG+gLOAt4EBMRAHXxAWVXNlIFNlbGVjdGlvbiBm | |
|
3203 | b3IgRmluZFFl2gAOBrkDXgNfA2ADYQNiA2MDZAGgA2UDuwO+A2cDaANpA2oDawPNB1iAuYDKgQHAgLKA | |
|
3204 | s4C3gNCBAcFdU3Vic3RpdHV0aW9uc9IADgA+AGkHXIA0owWhBGEDsYEBa4EBAoDJ2gAOBrkDXgNfA2AD | |
|
3205 | YQNiA2MDZAGgA2UD3wPiA2cDaANpA2oDawPNB2iAuYDWgQHEgLKAs4C3gNCBAcVWU3BlZWNo0gAOAD4A | |
|
3206 | aQdsgDSiA9cE9oDVgQE2WUFNYWluTWVuddIADgA+AGkHcoA0pwaHBpYGUAZKBokGdAabgQHJgQHagQGu | |
|
3207 | gQGdgQHmgQHqgQHw2gAOBrkDXgNfA2ADYQNiA2MDZAGgA2UDbANwA2cDaANpA2oDawZTB4KAuYCwgQHK | |
|
3208 | gLKAs4C3gQGegQHLXxAPSVB5dGhvbjFTYW5kYm940gAOAD4AaQeGgDSrBQQGlAaCBqUGpwZGBYcEyANb | |
|
3209 | BmMEeYEBOoEBzYEBzoEB0YEB0oEBnIEBY4EBJoCvgQHYgQEL2gAOA14DXwauA2AGrwNhA2IDYwNkA2UD | |
|
3210 | aANnAHoDaAB6A2kDagNrA2yAuYCyCYCyCYCzgLeAsNgADgNeA18DYANhA2IDYwNkA2UHnQNnB54DaQNq | |
|
3211 | A2sDbIC5gQHPgQHQgLOAt4CwbABQAHIAZQBmAGUAcgBlAG4AYwBlAHMgJlEs2gAOA14DXwauA2AGrwNh | |
|
3212 | A2IDYwNkA2UDaANnAHoDaAB6A2kDagNrA2yAuYCyCYCyCYCzgLeAsNoADga5A14DXwNgA2EDYgNjA2QB | |
|
3213 | oANlBm4HsANnA2gDaQNqA2sDbAe1gLmBAdWBAdOAsoCzgLeAsIEB1FhTZXJ2aWNlc9QADgNeAdUDbgNv | |
|
3214 | B7AHuge7gQGkgQHTgQHXgQHW0gAOAD4AaQe+gDSgXxAPX05TU2VydmljZXNNZW512gAOA14DXwauA2AG | |
|
3215 | rwNhA2IDYwNkA2UDaANnAHoDaAB6A2kDagNrA2yAuYCyCYCyCYCzgLeAsFxfTlNBcHBsZU1lbnXaAA4G | |
|
3216 | uQNeA18DYANhA2IDYwNkAaADZQOnA6oDZwNoA2kDagNrBlMH0oC5gMSBAduAsoCzgLeBAZ6BAdxURmls | |
|
3217 | ZdIADgA+AGkH1oA0qwaIBoAGTQarBcoEQgWuBWcGeAURA5+BAd6BAeGBAaiBAeSBAXmA94EBb4EBWYEB | |
|
3218 | 5YEBPoDD2AAOA14DXwNgA2EDYgNjA2QDZQfkA2cH5QNpA2oDawOngLmBAd+BAeCAs4C3gMRTTmV3UW7Y | |
|
3219 | AA4DXgNfA2ADYQNiA2MDZANlB+0DZwfuA2kDagNrA6eAuYEB4oEB44CzgLeAxGUATwBwAGUAbiAmUW/a | |
|
3220 | AA4DXgNfBq4DYAavA2EDYgNjA2QDZQNoA2cAegNoAHoDaQNqA2sDp4C5gLIJgLIJgLOAt4DE2gAOA14D | |
|
3221 | XwauA2AGrwNhA2IDYwNkA2UDaANnAHoDaAB6A2kDagNrA6eAuYCyCYCyCYCzgLeAxNoADga5A14DXwNg | |
|
3222 | A2EDYgNjA2QBoANlBCoELQNnA2gDaQNqA2sGUwgOgLmA7oEB54CygLOAt4EBnoEB6FRWaWV30gAOAD4A | |
|
3223 | aQgSgDSiBDMEIoDygO3aAA4GuQNeA18DYANhA2IDYwNkAaADZQSPBJIDZwNoA2kDagNrBlMIHYC5gQER | |
|
3224 | gQHrgLKAs4C3gQGegQHsVldpbmRvd9IADgA+AGkIIYA0pASHBZQGeQV6gQEQgQFngQHugQFf2gAOA14D | |
|
3225 | XwauA2AGrwNhA2IDYwNkA2UDaANnAHoDaAB6A2kDagNrBI+AuYCyCYCyCYCzgLeBARFeX05TV2luZG93 | |
|
3226 | c01lbnXaAA4GuQNeA18DYANhA2IDYwNkAaADZQPwA/MDZwNoA2kDagNrBlMIOIC5gNuBAfGAsoCzgLeB | |
|
3227 | AZ6BAfJUSGVscNIADgA+AGkIPIA0oQPogNpbX05TTWFpbk1lbnXSAA4APgYACEGBAYevEGcDbABNBOwD | |
|
3228 | zQZTAnYGTQOnAnUDzQZTA80DzQAfA80DpwBBAGsGmwZUA80D3wO7A5UDlQB/AGsGhwPNA2wGlgAfAgoD | |
|
3229 | bANsA2wGoAPNBI8AHwanAB8D8ACjAB8DpwZTBosDlQVQA6cEjwO7A6cGTwZQBOwGiQOnAB8DbAOnBCoC | |
|
3230 | CgTsBlMDpwZTAKMDzQQqA2wDlQPfAE0DbAOnAgoDbAPNBlMCKgCjBOwGSgZTA80CKgPNA6cDzQSPA7sE | |
|
3231 | vgB+A2wCCgNsBL4EjwTsA6cGdICwgAuBATGA0IEBnoCLgQGogMSAfIDQgQGegNCA0IACgNCAxIAHgA6B | |
|
3232 | AfCBAb+A0IDWgMqAvoC+gGqADoEByYDQgLCBAdqAAoBugLCAsICwgQHDgNCBARGAAoEB0oACgNuAFIAC | |
|
3233 | gMSBAZ6BAbSAvoEBUYDEgQERgMqAxIEBqoEBroEBMYEB5oDEgAKAsIDEgO6AboEBMYEBnoDEgQGegBSA | |
|
3234 | 0IDugLCAvoDWgAuAsIDEgG6AsIDQgQGegHKAFIEBMYEBnYEBnoDQgHKA0IDEgNCBARGAyoEBIYAQgLCA | |
|
3235 | boCwgQEhgQERgQExgMSBAerSAA4APgYACKuBAYevEGgAawZGBOQFWgZKAsAFUAZNAoMGTwZQBNYGUgZT | |
|
3236 | BlQATQRCAH4D8AO7BAcE9gOxBBUCCgP6AH8DbABBA6cEmgZjAioEyANbBHkD3wUmBXoEUgZuBG8D6ADI | |
|
3237 | Bd4AHwWuBnQGeATsA40FSAZ5BGEDnwOVA80EKgZ+BoAEUQaCBREEMwIaBoYGhwaJBogAqgaLBCIFBABs | |
|
3238 | BKgD1wWHBcoCRAaUA8UGlgJ2ALEEvgU6BpsFvAJ1Bp4FZwagBIcFoQS2AKMGpQIQBqcGqAWUBqoGqwSP | |
|
3239 | gA6BAZyBATCBAVWBAZ2AjoEBUYEBqICDgQGqgQGugQErgQGygQGegQG/gAuA94AQgNuAyoDkgQE2gMmA | |
|
3240 | 6YBugOCAaoCwgAeAxIEBFoEB2IBygQEmgK+BAQuA1oEBRIEBX4D8gQHVgQEHgNqAGIEBfoACgQFvgQHq | |
|
3241 | gQHlgQExgL2BAVCBAe6BAQKAw4C+gNCA7oEBuIEB4YD9gQHOgQE+gPKAlIEBvIEByYEB5oEB3oBYgQG0 | |
|
3242 | gO2BATqAo4EBG4DVgQFjgQF5gHSBAc2Az4EB2oCLgFSBASGBAUuBAfCBAXSAfIEBs4EBWYEBw4EBEIEB | |
|
3243 | a4EBIIAUgQHRgJaBAdKBAaKBAWeBAbqBAeSBARHSAA4APgYACRaBAYevEGgJFwkYCRkJGgkbCRwJHQke | |
|
3244 | CR8JIAkhCSIJIwkkCSUJJgknCSgJKQkqCSsJLAktCS4JLwkwCTEJMgkzCTQJNQk2CTcJOAk5CToJOwk8 | |
|
3245 | CT0JPgk/CUAJQQlCCUMJRAlFCUYJRwlICUkJSglLCUwJTQlOCU8JUAlRCVIEWQlUCVUJVglXCVgJWQla | |
|
3246 | CVsJXAldCV4JXwlgCWEJYgljCWQJZQlmCWcJaAlpCWoJawlsCW0JbglvCXAJcQlyCXMJdAl1CXYJdwl4 | |
|
3247 | CXkJegl7CXwJfQl+gQH4gQH5gQH6gQH7gQH8gQH9gQH+gQH/gQIAgQIBgQICgQIDgQIEgQIFgQIGgQIH | |
|
3248 | gQIIgQIJgQIKgQILgQIMgQINgQIOgQIPgQIQgQIRgQISgQITgQIUgQIVgQIWgQIXgQIYgQIZgQIagQIb | |
|
3249 | gQIcgQIdgQIegQIfgQIggQIhgQIigQIjgQIkgQIlgQImgQIngQIogQIpgQIqgQIrgQIsgQItgQIugQIv | |
|
3250 | gQIwgQIxgQIygQIzgP6BAjSBAjWBAjaBAjeBAjiBAjmBAjqBAjuBAjyBAj2BAj6BAj+BAkCBAkGBAkKB | |
|
3251 | AkOBAkSBAkWBAkaBAkeBAkiBAkmBAkqBAkuBAkyBAk2BAk6BAk+BAlCBAlGBAlKBAlOBAlSBAlWBAlaB | |
|
3252 | AleBAliBAlmBAlqBAluBAlyBAl2BAl5aU3BsaXQgVmlld1tTZXBhcmF0b3ItM28QEQBNAGUAbgB1ACAA | |
|
3253 | SQB0AGUAbQAgACgARgBpAG4AZCAmAClfEBJNZW51IEl0ZW0gKERlbGV0ZSlfEBJNZW51IEl0ZW0gKEZv | |
|
3254 | cm1hdClfEBtUZXh0IEZpZWxkIENlbGwgKFRleHQgQ2VsbClfEBJNZW51IChPcGVuIFJlY2VudClfEBdN | |
|
3255 | ZW51IEl0ZW0gKE9wZW4gUmVjZW50KV8QHVRleHQgRmllbGQgQ2VsbCAoVGV4dCBDZWxsKS0xXxAgTWVu | |
|
3256 | dSBJdGVtIChTcGVsbGluZyBhbmQgR3JhbW1hcilfEBBNZW51IEl0ZW0gKEVkaXQpXxAQTWVudSBJdGVt | |
|
3257 | IChDb3B5KVlTZXBhcmF0b3JYTWFpbk1lbnVfEBlNZW51IEl0ZW0gKFN1YnN0aXR1dGlvbnMpXENvbnRl | |
|
3258 | bnQgVmlld1EzXUJveCAoQ29uc29sZSlRMl8QFE1lbnUgKFN1YnN0aXR1dGlvbnMpXxAWTWVudSBJdGVt | |
|
3259 | IChTZWxlY3QgQWxsKV8QGU1lbnUgSXRlbSAoU3RvcCBTcGVha2luZylfEBdNZW51IEl0ZW0gKFNtYXJ0 | |
|
3260 | IExpbmtzKV8QJ01lbnUgSXRlbSAoQ2hlY2sgR3JhbW1hciBXaXRoIFNwZWxsaW5nKV1TY3JvbGwgVmll | |
|
3261 | dy0xXxAnTWVudSBJdGVtIChDaGVjayBTcGVsbGluZyBXaGlsZSBUeXBpbmcpXxAPQm94IChXb3Jrc3Bh | |
|
3262 | Y2UpXxAWTWVudSAoSVB5dGhvbjFTYW5kYm94KV8QGVdpbmRvdyAoSVB5dGhvbjEgKENvY29hKSlbTWVu | |
|
3263 | dSAoRmlsZSlfEBBNZW51IEl0ZW0gKFVuZG8pW1NlcGFyYXRvci00XxAcVGFibGUgVmlldyAoVmFyaWFi | |
|
3264 | bGUsIFZhbHVlKV8QF01lbnUgSXRlbSAoSGlkZSBPdGhlcnMpXxAUTWVudSBJdGVtIChTaG93IEFsbClU | |
|
3265 | MTExMV1NZW51IChTcGVlY2gpXxARTWVudSBJdGVtIChQYXN0ZSlfEB5NZW51IEl0ZW0gKEJyaW5nIEFs | |
|
3266 | bCB0byBGcm9udClbQXBwbGljYXRpb25fEA9NZW51IChTZXJ2aWNlcylfEBdQeXRob24gQ29jb2EgQ29u | |
|
3267 | dHJvbGxlcl8QIE1lbnUgSXRlbSAoSVB5dGhvbjFTYW5kYm94IEhlbHApWVRleHQgVmlld18QGVVzZXIg | |
|
3268 | TmFtZXNwYWNlIENvbnRyb2xsZXJcRmlsZSdzIE93bmVyUThfEBJNZW51IEl0ZW0gKFdpbmRvdylTMi0x | |
|
3269 | W01lbnUgKEZpbmQpXxAaTWVudSBJdGVtIChDaGVjayBTcGVsbGluZylfEBZNZW51IEl0ZW0gKENsZWFy | |
|
3270 | IE1lbnUpW1NlcGFyYXRvci0yXxAYTWVudSBJdGVtIChTbWFydCBRdW90ZXMpUTZfEBtNZW51IChTcGVs | |
|
3271 | bGluZyBhbmQgR3JhbW1hcilbTWVudSAoRWRpdClbTWVudSAoVmlldylfEBVNZW51IEl0ZW0gKEZpbmQg | |
|
3272 | TmV4dClvEBEATQBlAG4AdQAgAEkAdABlAG0AIAAoAE8AcABlAG4gJgApUzEyMVE1XxAYTWVudSBJdGVt | |
|
3273 | IChTaG93IFRvb2xiYXIpXxATVmVydGljYWwgU2Nyb2xsZXItMV8QIk1lbnUgSXRlbSAoVXNlIFNlbGVj | |
|
3274 | dGlvbiBmb3IgRmluZClfEBtNZW51IEl0ZW0gKElQeXRob24xU2FuZGJveClfEBBNZW51IEl0ZW0gKFZp | |
|
3275 | ZXcpUTlfEBNIb3Jpem9udGFsIFNjcm9sbGVyXxAQTWVudSBJdGVtIChGaW5kKW8QHgBNAGUAbgB1ACAA | |
|
3276 | SQB0AGUAbQAgACgAQwB1AHMAdABvAG0AaQB6AGUAIABUAG8AbwBsAGIAYQByICYAKV8QIU1lbnUgSXRl | |
|
3277 | bSAoQWJvdXQgSVB5dGhvbjFTYW5kYm94KVxBc3luYyBBcnJvd3NvEBoATQBlAG4AdQAgAEkAdABlAG0A | |
|
3278 | IAAoAFMAaABvAHcAIABTAHAAZQBsAGwAaQBuAGcgJgApXxAaTWVudSBJdGVtIChTdGFydCBTcGVha2lu | |
|
3279 | ZylfECBNZW51IEl0ZW0gKEhpZGUgSVB5dGhvbjFTYW5kYm94KVMxLTFfEBFUYWJsZSBIZWFkZXIgVmll | |
|
3280 | d1tTZXBhcmF0b3ItNV8QEE1lbnUgSXRlbSAoUmVkbylfEBBNZW51IEl0ZW0gKEZpbGUpXxAUVGFibGUg | |
|
3281 | Q29sdW1uIChWYWx1ZSlfEBFWZXJ0aWNhbCBTY3JvbGxlcl1NZW51IChGb3JtYXQpXxAdTWVudSBJdGVt | |
|
3282 | IChKdW1wIHRvIFNlbGVjdGlvbilRMV8QD01lbnUgSXRlbSAoQ3V0KV8QF1RhYmxlIENvbHVtbiAoVmFy | |
|
3283 | aWFibGUpW1NlcGFyYXRvci0xUjEwXxASTWVudSBJdGVtIChTcGVlY2gpXxAUTWVudSBJdGVtIChNaW5p | |
|
3284 | bWl6ZSlfEBxNZW51IEl0ZW0gKFNtYXJ0IENvcHkvUGFzdGUpXxAXTWVudSBJdGVtIChTaG93IENvbG9y | |
|
3285 | cylbU2Nyb2xsIFZpZXdbU2VwYXJhdG9yLTZfEBVIb3Jpem9udGFsIFNjcm9sbGVyLTFfEBRNZW51IEl0 | |
|
3286 | ZW0gKFNlcnZpY2VzKV8QFk1lbnUgSXRlbSAoU2hvdyBGb250cylfEBBNZW51IEl0ZW0gKFpvb20pXxAZ | |
|
3287 | TWVudSBJdGVtIChGaW5kIFByZXZpb3VzKVE3XU1lbnUgKFdpbmRvdynSAA4APgYACeiBAYeg0gAOAD4G | |
|
3288 | AAnrgQGHoNIADgA+BgAJ7oEBh68QlwZGAGsDUATkBVoGSgM8Az8CwAVQBk0DLQNHA1UCgwNEBk8GUAMr | |
|
3289 | A08E1gZSAygDSAZTBlQEQgBNAH4D8AO7BAcE9gOxA0kEFQP6AgoAfwNsBJoGYwOnAEECKgTIA0EDWwNG | |
|
3290 | BHkD3wNKBSYFegRSAzQDTgNUA1EDMgM3A00GbgRvA+gAyAXeAB8FrgZ0BOwDjQVIBngDMQM6BnkEYQOf | |
|
3291 | AzsDlQPNAzkGfgQqAykGgARRBoIFEQQzAhoDOANFAyoGhgMwBocGiAaJAKoGiwQiAywFBASoA9cAbAWH | |
|
3292 | A0wFygM2AkQGlAPFBpYCdgNCAzMDLgCxBToEvgabBbwCdQaeBWcGoAM1Az0EhwNLBaEEtgM+AKMDUgal | |
|
3293 | AhADVganBqgDQANDBZQGqgMvA1MGqwSPgQGcgA6BAXOBATCBAVWBAZ2BAR+BAS+AjoEBUYEBqIDUgQFP | |
|
3294 | gQGUgIOBAUOBAaqBAa6AyIEBboEBK4EBsoCugQFUgQGegQG/gPeAC4AQgNuAyoDkgQE2gMmBAViA6YDg | |
|
3295 | gG6AaoCwgQEWgQHYgMSAB4BygQEmgQE5gK+BAUqBAQuA1oEBXIEBRIEBX4D8gPaBAWqBAZGBAXiA7IEB | |
|
3296 | BoEBZoEB1YEBB4DagBiBAX6AAoEBb4EB6oEBMYC9gQFQgQHlgOiBARWBAe6BAQKAw4EBGoC+gNCBAQ+B | |
|
3297 | AbiA7oC8gQHhgP2BAc6BAT6A8oCUgQEKgQFIgMKBAbyA44EByYEB3oEB5oBYgQG0gO2AzoEBOoEBG4DV | |
|
3298 | gKOBAWOBAWKBAXmBAQGAdIEBzYDPgQHagIuBAT2A8YDZgFSBAUuBASGBAfCBAXSAfIEBs4EBWYEBw4D7 | |
|
3299 | gQElgQEQgQFegQFrgQEggQEqgBSBAX2BAdGAloEBl4EB0oEBooEBNYEBQoEBZ4EBuoDfgQGNgQHkgQER | |
|
3300 | 0gAOAD4GAAqIgQGHrxCXCokKigqLCowKjQqOCo8KkAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4K | |
|
3301 | nwqgCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCrAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwK | |
|
3302 | vQq+Cr8KwArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrQCtEK0grTCtQK1QrWCtcK2ArZCtoK | |
|
3303 | 2wrcCt0K3grfCuAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K8ArxCvIK8wr0CvUK9gr3CvgK | |
|
3304 | +Qr6CvsK/Ar9Cv4K/wsACwELAgsDCwQLBQsGCwcLCAsJCwoLCwsMCw0LDgsPCxALEQsSCxMLFAsVCxYL | |
|
3305 | FwsYCxkLGgsbCxwLHQseCx+BAmOBAmSBAmWBAmaBAmeBAmiBAmmBAmqBAmuBAmyBAm2BAm6BAm+BAnCB | |
|
3306 | AnGBAnKBAnOBAnSBAnWBAnaBAneBAniBAnmBAnqBAnuBAnyBAn2BAn6BAn+BAoCBAoGBAoKBAoOBAoSB | |
|
3307 | AoWBAoaBAoeBAoiBAomBAoqBAouBAoyBAo2BAo6BAo+BApCBApGBApKBApOBApSBApWBApaBApeBApiB | |
|
3308 | ApmBApqBApuBApyBAp2BAp6BAp+BAqCBAqGBAqKBAqOBAqSBAqWBAqaBAqeBAqiBAqmBAqqBAquBAqyB | |
|
3309 | Aq2BAq6BAq+BArCBArGBArKBArOBArSBArWBAraBAreBAriBArmBArqBAruBAryBAr2BAr6BAr+BAsCB | |
|
3310 | AsGBAsKBAsOBAsSBAsWBAsaBAseBAsiBAsmBAsqBAsuBAsyBAs2BAs6BAs+BAtCBAtGBAtKBAtOBAtSB | |
|
3311 | AtWBAtaBAteBAtiBAtmBAtqBAtuBAtyBAt2BAt6BAt+BAuCBAuGBAuKBAuOBAuSBAuWBAuaBAueBAuiB | |
|
3312 | AumBAuqBAuuBAuyBAu2BAu6BAu+BAvCBAvGBAvKBAvOBAvSBAvWBAvaBAveBAviBAvkQkBEBpRDkENEQ | |
|
3313 | yhEBKxEBaRDxEQGeEH0QfBDpEH8RAawRAZ8Q4hDYENkRAWURAWsQxRDOEQFyEOsQHREBXBBLEQF0EQGk | |
|
3314 | EGoRAV0QxhDDEQFiEQFsEQFaENsRAZcRAZYQORDPEJUQUREBcxEBmxCREI4QlhD1EIgQ1BEBvBDLEAUT | |
|
3315 | //////////0RAWoRAWMRAasQwREBbREBuRDwEIIRAaYQbxEBoxEBgREBvhBQEBMQ3BDJEH4QShEBWxDf | |
|
3316 | EFwRAV8QThDmEMgQzRAlENARASgQ4RBIEQF1EIEQTREBKREBmREBcREBvRBWEN0Q6BA4EFIRAScRAaIQ | |
|
3317 | 2hEBKhDnEDoQzBDEEQG0EIYRAW8QSREBZBEBmBDsENcQUxEBnRBXEQFuEQFoEQGhENIRASwQZxDHEQGc | |
|
3318 | ENYQcBDTEQF2EQFwEBcQJxEBXhEBWRDgEQGgEQG4EI8RAZoRAbUQgxEBWBDjEQGtEO8Q1RDeEQGoEE8Q | |
|
3319 | GNIADgA+AGkLuYA0oNIADgA+BgALvIEBh6DSAA4APgYAC7+BAYeg0gA3ADgLwQvCogvCADteTlNJQk9i | |
|
3320 | amVjdERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmBmYGbAa3Br4GxQbTBuUHAQcPBxsHJwc1B0AHTgdq | |
|
3321 | B3gHiwedB7cHwQfOB9AH0wfWB9kH3AfeB+EH4wfmB+kH7AfvB/EH8wf2B/kH/Af/CAgIFAgWCBgIJggv | |
|
3322 | CDgIQwhICFcIYAhzCHwIhwiJCIwIjgi7CMgI1QjrCPkJAwkRCR4JMAlECVAJUglUCVYJWAlaCV8JYQlj | |
|
3323 | CWUJZwlpCYQJlwmgCb0JzwnaCeMJ7wn7Cf0J/woBCgQKBgoICgoKEwoVChoKHAoeCkcKTwpeCm0Kegp8 | |
|
3324 | Cn4KgAqCCoUKhwqJCosKjAqVCpcKnAqeCqAK2QrjCu8K/QsKCxQLJgs0CzYLOAs6CzwLPQs/C0ELQwtF | |
|
3325 | C0cLSQtLC00LVgtYC1sLXQt6C3wLfguAC4ILhAuGC48LkQuUC5YLxwvTC9wL6Av2C/gL+gv8C/4MAQwD | |
|
3326 | DAUMBwwJDAsMDQwWDBgMHwwhDCMMJQxaDGMMbAx2DIAMigyMDI4MkAySDJQMlgyYDJsMnQyfDKEMowyl | |
|
3327 | DK4MsAyzDLUM6gz8DQYNEw0fDSkNMg09DT8NQQ1DDUUNRw1JDUsNTg1QDVINVA1WDVgNYQ1jDYgNig2M | |
|
3328 | DY4NkA2SDZQNlg2YDZoNnA2eDaANog2kDaYNqA2qDcYN2w34DhkONQ5bDoEOnw67DtcO9A8MDyYPWg93 | |
|
3329 | D5MPwA/JD9AP3Q/jD/oQDxAZECQQLBA+EEAQQhBLEE0QYhB1EIMQjRCPEJEQkxCVEKIQqxCtEK8QsRC6 | |
|
3330 | EMQQxhDHENAQ1xDpEPIQ+xEXESwRNRE3EToRPBFFEUwRWxFjEWwRcRF6EX8RoBGoEcIR1RHpEgASFRIo | |
|
3331 | EioSLxIxEjMSNRI3EjkSOxJIElUSWxJdEngSgRKGEo4SmxKjEqUSpxKqErcSvxLBEsYSyBLKEs8S0RLT | |
|
3332 | EugS9BMCEwQTBhMIEwoTERMvEzwTPhNKE18TYRNjE2UTZxN7E4QTiROWE6MTpROqE6wTrhOzE7UTtxPD | |
|
3333 | E9AT0hPZE+IT5xP+FAsUExQcFCcULhQ1FEEUWBRwFH0UfxSCFI8UmRSmFKgUqhSyFLsUwBTJFNIU3RUC | |
|
3334 | FQsVFBUeFSAVIhUkFSYVLxUxFTMVNRU+FVYVYxVsFXcVghWMFbkVxBXGFcgVyhXMFc4V0BXSFdsV5BX/ | |
|
3335 | FhgWIRYqFjcWThZXFl4WaRZwFo0WmRakFq4WuxbHFswWzhbQFtIW1BbWFt4W7xb2Fv0XBhcIFxEXExcW | |
|
3336 | FyMXLBcxFzgXTRdPF1EXUxdVF2sXeBd6F4gXkReaF6wXuRfAF8kX0hfYGBEYExgVGBcYGRgaGBwYHhgg | |
|
3337 | GCIYJBgmGC8YMRg0GDYYUxhVGFcYWRhbGF0YXxhoGGoYbRhvGK4YuxjOGNsY3RjfGOEY4xjlGOcY6Rjr | |
|
3338 | GP4ZABkCGQQZBhkIGREZExkeGSAZIhkkGSYZKBlVGVcZWRlbGV0ZXxlhGWMZZRlnGXAZchl1GXcZzhnw | |
|
3339 | GfoaBxocGjYaUhptGncagxqVGqQawxrPGtEa0xrcGt4a4BrhGuMa7Br1Gvca+Br6Gvwa/hsAGwkbFBsx | |
|
3340 | Gz0bPxtBG0MbRRtHG0kbdht4G3obfBt+G4AbghuEG4YbiBuSG5sbpBu4G9Eb0xvVG9cb2RvbG/Ib+xwE | |
|
3341 | HBIcGxwdHCIcJBwmHE8cXhxrHHYchRyQHJscqBypHKscrRy2HLgcwRzKHMsczRzqHO8c8RzzHPUc9xz5 | |
|
3342 | HQIdDx0RHR0dMh00HTYdOB06HUwdVR1gHXQdlR2jHagdqh2sHa4dsB2yHbUdtx3BHdId1B3dHd8d4h33 | |
|
3343 | Hfkd+x39Hf8eGB4tHi8eMR4zHjUeSB5RHlYeZB6NHo4ekB6SHpsenR6eHqAevR6/HsEewx7FHscezR7u | |
|
3344 | HvAe8h70HvYe+B76Hw8fER8THxUfFx8hHy4fMB81Hz4fSR9hH4YfiB+KH4wfjh+QH5IflB+dH7Yf3x/h | |
|
3345 | H+Mf5R/nH+kf6x/tH/YgDiAXIBkgHCAeIDQgTSBkIH0gmiCcIJ4goCCiIKQgriC7IL0g1iD5IQIhCyEX | |
|
3346 | IUAhSyFWIWAhbSFvIXEhcyF8IYUhiCGKIY0hjyGRIZYhmCGhIaYhsSHJIdIh2yHxIfwiFCInIjAiNSJI | |
|
3347 | IlEiUyK0IrYiuCK6IrwiviLAIsIixCLGIsgiyiLMIs4i0CLTItYi2SLcIt8i4iLlIugi6yLuIvEi9CL3 | |
|
3348 | Ivoi/SMAIwMjBiMJIwwjDyMSIxUjGCMbIx4jISMkIycjKiMtIzAjMyNAI0kjUSNTI1UjVyN4I4AjlCOf | |
|
3349 | I60jtyPEI8sjzSPPI9Qj1iPbI90j3yPhI/Ij/iQBJAQkByQKJBMkICQvJDEkMyQ1JD0kTyRYJF0kcCR9 | |
|
3350 | JH8kgSSDJJYknySkJK8kyCTRJNgk8CT/JQwlDiUQJRIlMyU1JTclOSU7JT0lPyVMJU8lUiVVJWQlZiV1 | |
|
3351 | JYIlhCWGJYglqSWrJa0lryWxJbMltSXCJcUlyCXLJdgl2iXhJe4l8CXyJfQmGSYfJiEmIyYoJiomLCYu | |
|
3352 | JjAmPSZAJkMmRiZSJlQmdCaBJoMmhSaHJqgmqiasJq4msCayJrQmwSbEJscmyibPJtEm1ybkJuYm6Cbq | |
|
3353 | JwsnDScPJxEnEycVJxcnJCcnJyonLSc8J0snWCdaJ1wnXid/J4EngyeFJ4cniSeLJ5gnmyeeJ6EnuCe6 | |
|
3354 | J8Qn0SfTJ9Un1yf4J/on/Cf+KAAoAigEKCIoQyhQKFIoVChWKHcoeSh7KH0ofyiBKIMojiiQKJsoqCiq | |
|
3355 | KKworijPKNEo0yjVKNco2SjbKPkpEikfKSEpIyklKUYpSClKKUwpTilQKVIpXyliKWUpaCmPKbEpvinA | |
|
3356 | KcIpxCnlKecp6SnuKfAp8in0KfYqAyoFKhsqKCoqKiwqLipPKlEqUypVKlcqWSpbKmAqYipwKoEqjyqS | |
|
3357 | KpQqliqYKqEqoyqlKq4qsCqyKs8q2CrhKugq/ysMKw4rESsUKzkrOys+K0ErQytFK0crVCtWK3oriyuO | |
|
3358 | K5ErkyuWK58roSukK70r0SveK+Ar4yvmLAcsCSwMLA8sESwTLBUsLCwuLDksRixILEssTixvLHEsdCx3 | |
|
3359 | LHkseyx+LI8skiyVLJgsmyykLKYsvCzJLMsszizRLPIs9Cz3LPos/Cz+LQAtBS0HLQ0tGi0cLR8tIi1D | |
|
3360 | LUUtSC1LLU0tTy1RLW4tcC2CLY8tkS2ULZctuC26Lb0twC3CLcQtxy3ULdct2i3dLekt6y4DLhAuEi4V | |
|
3361 | LhguOS47Lj4uQS5DLkUuRy5TLlUubi57Ln0ugC6DLqQupi6pLqwuri6wLrIuty65Lr8uzC7OLtEu1C75 | |
|
3362 | Lvsu/i8BLwMvBS8ILxUvGC8bLx4vKS8rL0UvUi9UL1cvWi97L30vgC+CL4Qvhi+IL5YvpC+1L7cvuS+8 | |
|
3363 | L78v3C/eL+Ev4y/lL+cv6TABMCEwLjAwMDMwNjBbMGUwZzBpMGwwbzBxMHMwdTCDMIUwlDClMKgwqzCt | |
|
3364 | MK8wvDC+MMEwxDDlMOcw6jDtMO8w8TDzMPkw+zECMRMxFjEYMRoxHTE1MUIxRDFHMUoxazFtMXAxczF1 | |
|
3365 | MXcxejGOMZAxsDG9Mb8xwjHFMeYx6DHrMe0x7zHxMfQyBTIIMgsyDjIRMhwyNDJBMkMyRjJJMmoybDJv | |
|
3366 | MnEyczJ1MncyfjKGMpMylTKYMpsyuDK6Mr0yvzLBMsMyxTLXMvAzATMEMwYzCTMMMxUzIjMkMyczKjNL | |
|
3367 | M00zUDNSM1QzVjNZM24zgDONM48zkjOVM7YzuDO7M74zwDPCM8Qz2zPhM+4z8DPzM/Y0FzQZNBw0HjQg | |
|
3368 | NCI0JTQqNDc0RDRGNEk0TDRxNHM0djR5NHs0fTR/NJI0rTS6NLw0vzTCNOM05TToNOs07TTvNPE1AjUE | |
|
3369 | NRY1IzUlNSg1KzVMNU41UTVUNVY1WDVaNV41YDVlNXI1dDV3NXo1mzWdNaA1ozWlNac1qTWvNbE1vzXc | |
|
3370 | NeY18DYPNhI2FDYXNho2HTYgNk02ajaBNo42mTaoNrc23Db3NxA3JDclNyg3KTcsNy03MDczNzQ3NTc2 | |
|
3371 | Nzk3QjdEN0s3TjdRN1Q3WTddN2M3bDdvN3I3dTeGN4w3lzejN6Y3qTesN603tje/N8Q31zfgN+U37jf5 | |
|
3372 | OBI4Jjg7OEg4dDiGOKE4qjixOMk45jjpOOw47zjyOPU4+DkUOSg5LzlMOU85UjlVOVg5WjldOXw5lDmx | |
|
3373 | ObQ5tzm6Ob05vznCOd859ToSOhU6GDobOh46IDojOj86RzpaOmM6Zjs3Ozo7PDs/O0I7RTtHO0o7TTtP | |
|
3374 | O1I7VTtYO1s7XjthO2M7ZTtnO2k7azttO3A7cjt0O3Y7eDt6O3w7fzuCO4Q7hjuIO4s7jTuQO5I7lTuY | |
|
3375 | O5o7nTugO6I7pDunO6o7rTuwO7I7tTu4O7s7vjvAO8I7xDvHO8k7zDvOO9E71DvWO9g72zveO+E75Dvm | |
|
3376 | O+k76zvuO/E78zv1O/g7+zv9PAA8AjwFPAc8CTwMPA88EjwVPBc8GjwdPCA8IzwmPCk8KzwuPDA8Mzw2 | |
|
3377 | PDk8PDw/PEI8azx5PIY8iDyKPIs8jTyOPJA8kjyUPL08xzzJPMw8zzzRPNM81TzYPNs87DzvPPI89Tz4 | |
|
3378 | PP89Dj0XPRk9Hj0hPSQ9RT1HPUo9TD1OPVA9Uz1ePWc9bD14PYE9gz2GPYk9oj3LPc090D3TPdU91z3Z | |
|
3379 | Pds93j4HPgk+Cz4OPhA+Ej4UPhY+GT4wPjk+Oz5EPkc+ST5LPk0+dj54Pno+fT5/PoE+gz6GPok+jj6X | |
|
3380 | Ppk+tD63Prk+vD6/PsI+xT7IPso+zT7QPtM+1j7ZPwI/BD8GPwc/CT8KPww/Dj8QPzk/Oz89Pz4/QD9B | |
|
3381 | P0M/RT9HP3A/cj91P3g/ej98P34/gD+DP4g/kT+TP54/oT+kP6c/qj+tP9I/1D/XP9o/3D/eP+E/60AQ | |
|
3382 | QBJAFUAXQBlAG0AeQCxAUUBTQFZAWUBbQF1AYEBiQHtAfUCmQKhAqkCtQK9AsUCzQLVAuEDGQM9A0UDY | |
|
3383 | QNtA3kDgQQlBC0ENQRBBEkEUQRZBGEEbQSJBK0EtQTJBNEE3QUFBSkFMQVtBXkFhQWRBZ0FqQW1BcEGZ | |
|
3384 | QZtBnUGgQaJBpEGmQalBrEG+QcdByUHgQeNB5kHpQexB70HyQfVB+EH6Qf1CAEIpQitCLUIuQjBCMUIz | |
|
3385 | QjVCN0JYQlpCXUJgQmJCZEJmQn9CgUKqQqxCrkKvQrFCskK0QrZCuELhQuNC5kLpQutC7ULvQvFC9EL9 | |
|
3386 | Qw5DEUMUQxdDGkMjQyVDJkM4Q2FDY0NlQ2ZDaENpQ2tDbUNvQ3xDpUOnQ6lDrEOuQ7BDskO1Q7hDvUPG | |
|
3387 | Q8hD30PiQ+VD6EPrQ+5D8EPzQ/ZD+UP8Q/5EH0QhRCREJ0QpRCtELUQxRDNEVERWRFlEXEReRGBEYkRt | |
|
3388 | RG9EmESaRJxEnUSfRKBEokSkRKZEz0TRRNNE1ETWRNdE2UTbRN1FBkUIRQpFDUUPRRFFE0UWRRlFHkUn | |
|
3389 | RSlFLkUwRTJFW0VdRWBFY0VlRWdFaUVsRW9FdkV/RYFFikWNRZBFk0WWRb9FwUXDRcRFxkXHRclFy0XO | |
|
3390 | Rd1GBkYIRgpGDUYPRhFGE0YWRhlGHkYnRilGLEYuRjpGQ0ZGRxdHGUcbRx5HIEcjRyVHKEcqRyxHLkcx | |
|
3391 | RzNHNUc3RzlHO0c9Rz9HQkdFR0dHSUdLR01HT0dRR1NHVkdYR1pHXUdfR2FHY0dlR2dHakdsR29HcUd0 | |
|
3392 | R3ZHeEd6R3xHfkeBR4RHhkeJR4tHjkeQR5JHlUeYR5tHnkegR6JHpEemR6hHqketR7BHske1R7dHuUe7 | |
|
3393 | R71Hv0fBR8NHxUfHR8lHy0fNR9BH0kfUR9dH2kfdR99H4UfjR+VH50fqR+xH70fxR/NH9Uf3R/pH/UgA | |
|
3394 | SAJIBUgOSBFI5EjmSOlI7EjvSPJI9Ej3SPpI/Ej/SQJJBUkISQtJDkkQSRJJFEkWSRhJGkkdSR9JIUkj | |
|
3395 | SSVJJ0kpSStJLUkwSTNJNUk4STpJPUk/SUJJRUlHSUpJTUlPSVFJVElWSVlJXElfSWJJZElnSWpJbUlv | |
|
3396 | SXFJc0l1SXhJe0l9SYBJg0mFSYdJikmNSZBJk0mVSZhJmkmdSZ9JokmkSadJqkmsSa9JsUm0SbZJuEm7 | |
|
3397 | Sb5JwUnEScZJyUnMSc9J0knVSdhJ2kndSd9J4knlSehJ60nuSfFJ+kn9StBK00rWStlK3ErfSuJK5Uro | |
|
3398 | SutK7krxSvRK90r6Sv1LAEsDSwZLCUsMSw9LEksVSxhLG0seSyFLJEsnSypLLUswSzNLNks5SzxLP0tC | |
|
3399 | S0VLSEtLS05LUUtUS1dLWktdS2BLY0tmS2lLbEtvS3JLdUt4S3tLfkuBS4RLhkuJS4xLj0uSS5VLmEub | |
|
3400 | S55LoUukS6dLqkutS7BLs0u2S7lLvEu/S8JLxUvIS8tLzkvRS9RL10vaS91L4EvjS+ZL6UvsS+9L8kv1 | |
|
3401 | S/hL+0v+TAFMBEwHTBJMHkxDTFhMbUyLTKBMukzaTP1NEE0jTS1NNk1STV9NYU1vTXFNiE2hTb1N104B | |
|
3402 | Tg9OOU5LTmROgE6MTp9Oq07KTuRO+08ATw5PIk9DT09PYU97T55PqE/ET9FP00/oT+xP+FAVUC5QOlBV | |
|
3403 | UFdQdVCBUI1QpVDKUM5Q0FDrUQFRJlFEUVdRWVFvUYJRwVHlUfJSKVJGUmlSbVKBUo1SoFKzUspS3lLs | |
|
3404 | UwxTDlMgUzpTRlNJU15TdVOUU65TulPGU95T9VQOVCFUPVQ/VE1UVlRZVFpUY1RmVGdUcFRzVaRVp1Wp | |
|
3405 | VaxVr1WyVbVVuFW7Vb1VwFXDVcVVyFXLVc1V0FXTVdZV2FXbVd5V4VXjVeZV6VXsVe5V8FXyVfRV9lX4 | |
|
3406 | VftV/VYAVgJWBFYGVghWClYNVhBWElYUVhZWGVYcVh5WIVYkViZWKVYsVi9WMVYzVjZWOVY8Vj5WQVZE | |
|
3407 | VkdWSlZMVk5WUVZTVlZWWVZcVl5WYVZkVmZWaVZsVm9WcVZ0VnZWeFZ7Vn5WgFaCVoVWh1aKVo1Wj1aR | |
|
3408 | VpRWl1aZVpxWnlahVqRWp1apVqxWrlawVrNWtla4VrpWvVbAVsNWxlbIVstWzVbQVtJW1VbXVtlW21be | |
|
3409 | VuFW5FbnVulW7FbvVvJW9Fb3VvpW/VcAVwNXBlcIVwtXDlcQVxNXFlcZVxxXH1ciVyVXJ1cqVy1XMFc5 | |
|
3410 | VzxYbVhwWHNYdlh5WHxYf1iCWIVYiFiLWI5YkViUWJdYmlidWKBYo1imWKlYrFivWLJYtVi4WLtYvljB | |
|
3411 | WMRYx1jKWM1Y0FjTWNZY2VjcWN9Y4ljlWOhY61juWPFY9Fj3WPpY/VkAWQNZBlkJWQxZD1kSWRVZGFkb | |
|
3412 | WR5ZIVkkWSdZKlktWTBZM1k2WTlZPFk/WUJZRVlIWUtZTllRWVRZV1laWV1ZYFljWWZZaVlsWW9Zcll1 | |
|
3413 | WXhZe1l+WYFZhFmHWYpZjVmQWZNZllmZWZxZn1miWaVZqFmrWa5ZsVm0WbdZulm9WcBZw1nGWclZzFnP | |
|
3414 | WdJZ1VnYWdtZ3lnhWeRZ51nqWe1Z8FnzWfZZ+Vn8Wf9aAloFWghaC1oOWhFaFFoXWhpaHVogWiNaJlop | |
|
3415 | WixaL1oyWjRaN1o5WjtaPVpAWkNaRVpIWkpaTFpOWlBaU1pWWlhaWlpcWl9aYlpkWmZaaVprWm1acFpy | |
|
3416 | WnVaeFp6Wn1af1qBWoRah1qKWoxaj1qSWpRallqYWppanVqgWqJapFqmWqhaqlqsWq9asVqzWrxav1rC | |
|
3417 | WsVax1rKWs1az1rRWtRa1lrZWtxa31rhWuNa5VrnWula61ruWvBa8lr1Wvda+Vr7Wv1a/1sBWwRbBlsI | |
|
3418 | WwtbDVsPWxJbFVsYWxtbHVsfWyFbI1slWyhbK1stWzBbMls0WzZbOFs7Wz1bQFtCW0VbSFtKW0xbTltR | |
|
3419 | W1NbVltZW1xbXlthW2NbZVtoW2pbbFtuW3FbdFt2W3hbe1t+W4Bbg1uGW4hbi1uOW5Bbk1uVW5hbmluc | |
|
3420 | W55boVujW6VbrluwW7Fbulu9W75bx1vKW8tb1FvZAAAAAAAAAgIAAAAAAAALwwAAAAAAAAAAAAAAAAAA | |
|
3421 | W+g</bytes> | |
|
3421 | 3422 | </object> |
|
3422 | 3423 | </data> |
|
3423 | 3424 | </archive> |
@@ -1,407 +1,400 b'' | |||
|
1 | 1 | # encoding: utf-8 |
|
2 | 2 | # -*- test-case-name: IPython.frontend.tests.test_frontendbase -*- |
|
3 | 3 | """ |
|
4 | 4 | frontendbase provides an interface and base class for GUI frontends for |
|
5 | 5 | IPython.kernel/IPython.kernel.core. |
|
6 | 6 | |
|
7 | 7 | Frontend implementations will likely want to subclass FrontEndBase. |
|
8 | 8 | |
|
9 | 9 | Author: Barry Wark |
|
10 | 10 | """ |
|
11 | 11 | __docformat__ = "restructuredtext en" |
|
12 | 12 | |
|
13 | 13 | #------------------------------------------------------------------------------- |
|
14 | 14 | # Copyright (C) 2008 The IPython Development Team |
|
15 | 15 | # |
|
16 | 16 | # Distributed under the terms of the BSD License. The full license is in |
|
17 | 17 | # the file COPYING, distributed as part of this software. |
|
18 | 18 | #------------------------------------------------------------------------------- |
|
19 | 19 | |
|
20 | 20 | #------------------------------------------------------------------------------- |
|
21 | 21 | # Imports |
|
22 | 22 | #------------------------------------------------------------------------------- |
|
23 | 23 | import string |
|
24 | 24 | import uuid |
|
25 | 25 | import _ast |
|
26 | 26 | |
|
27 | 27 | try: |
|
28 | 28 | from zope.interface import Interface, Attribute, implements, classProvides |
|
29 | 29 | except ImportError: |
|
30 | 30 | #zope.interface is not available |
|
31 | 31 | Interface = object |
|
32 | 32 | def Attribute(name, doc): pass |
|
33 | 33 | def implements(interface): pass |
|
34 | 34 | def classProvides(interface): pass |
|
35 | 35 | |
|
36 | 36 | from IPython.kernel.core.history import FrontEndHistory |
|
37 | 37 | from IPython.kernel.core.util import Bunch |
|
38 | 38 | from IPython.kernel.engineservice import IEngineCore |
|
39 | 39 | |
|
40 | try: | |
|
41 | from twisted.python.failure import Failure | |
|
42 | except ImportError: | |
|
43 | #Twisted not available | |
|
44 | Failure = Exception | |
|
45 | 40 | |
|
46 | 41 | ############################################################################## |
|
47 | 42 | # TEMPORARY!!! fake configuration, while we decide whether to use tconfig or |
|
48 | 43 | # not |
|
49 | 44 | |
|
50 | 45 | rc = Bunch() |
|
51 | 46 | rc.prompt_in1 = r'In [$number]: ' |
|
52 | 47 | rc.prompt_in2 = r'...' |
|
53 | 48 | rc.prompt_out = r'Out [$number]: ' |
|
54 | 49 | |
|
55 | 50 | ############################################################################## |
|
56 | 51 | |
|
57 | 52 | class IFrontEndFactory(Interface): |
|
58 | 53 | """Factory interface for frontends.""" |
|
59 | 54 | |
|
60 | 55 | def __call__(engine=None, history=None): |
|
61 | 56 | """ |
|
62 | 57 | Parameters: |
|
63 | 58 | interpreter : IPython.kernel.engineservice.IEngineCore |
|
64 | 59 | """ |
|
65 | 60 | |
|
66 | 61 | pass |
|
67 | 62 | |
|
68 | 63 | |
|
69 | 64 | |
|
70 | 65 | class IFrontEnd(Interface): |
|
71 | 66 | """Interface for frontends. All methods return t.i.d.Deferred""" |
|
72 | 67 | |
|
73 | 68 | Attribute("input_prompt_template", "string.Template instance\ |
|
74 | 69 | substituteable with execute result.") |
|
75 | 70 | Attribute("output_prompt_template", "string.Template instance\ |
|
76 | 71 | substituteable with execute result.") |
|
77 | 72 | Attribute("continuation_prompt_template", "string.Template instance\ |
|
78 | 73 | substituteable with execute result.") |
|
79 | 74 | |
|
80 | 75 | def update_cell_prompt(result, blockID=None): |
|
81 | 76 | """Subclass may override to update the input prompt for a block. |
|
82 | 77 | Since this method will be called as a |
|
83 | 78 | twisted.internet.defer.Deferred's callback/errback, |
|
84 | 79 | implementations should return result when finished. |
|
85 | 80 | |
|
86 | 81 | Result is a result dict in case of success, and a |
|
87 | 82 | twisted.python.util.failure.Failure in case of an error |
|
88 | 83 | """ |
|
89 | 84 | |
|
90 | 85 | pass |
|
91 | 86 | |
|
92 | 87 | |
|
93 | 88 | def render_result(result): |
|
94 | 89 | """Render the result of an execute call. Implementors may choose the |
|
95 | 90 | method of rendering. |
|
96 | 91 | For example, a notebook-style frontend might render a Chaco plot |
|
97 | 92 | inline. |
|
98 | 93 | |
|
99 | 94 | Parameters: |
|
100 | 95 | result : dict (result of IEngineBase.execute ) |
|
101 | 96 | blockID = result['blockID'] |
|
102 | 97 | |
|
103 | 98 | Result: |
|
104 | 99 | Output of frontend rendering |
|
105 | 100 | """ |
|
106 | 101 | |
|
107 | 102 | pass |
|
108 | 103 | |
|
109 | 104 | def render_error(failure): |
|
110 | 105 | """Subclasses must override to render the failure. Since this method |
|
111 | 106 | will be called as a twisted.internet.defer.Deferred's callback, |
|
112 | 107 | implementations should return result when finished. |
|
113 | 108 | |
|
114 | 109 | blockID = failure.blockID |
|
115 | 110 | """ |
|
116 | 111 | |
|
117 | 112 | pass |
|
118 | 113 | |
|
119 | 114 | |
|
120 | 115 | def input_prompt(number=''): |
|
121 | 116 | """Returns the input prompt by subsituting into |
|
122 | 117 | self.input_prompt_template |
|
123 | 118 | """ |
|
124 | 119 | pass |
|
125 | 120 | |
|
126 | 121 | def output_prompt(number=''): |
|
127 | 122 | """Returns the output prompt by subsituting into |
|
128 | 123 | self.output_prompt_template |
|
129 | 124 | """ |
|
130 | 125 | |
|
131 | 126 | pass |
|
132 | 127 | |
|
133 | 128 | def continuation_prompt(): |
|
134 | 129 | """Returns the continuation prompt by subsituting into |
|
135 | 130 | self.continuation_prompt_template |
|
136 | 131 | """ |
|
137 | 132 | |
|
138 | 133 | pass |
|
139 | 134 | |
|
140 | 135 | def is_complete(block): |
|
141 | 136 | """Returns True if block is complete, False otherwise.""" |
|
142 | 137 | |
|
143 | 138 | pass |
|
144 | 139 | |
|
145 | 140 | def compile_ast(block): |
|
146 | 141 | """Compiles block to an _ast.AST""" |
|
147 | 142 | |
|
148 | 143 | pass |
|
149 | 144 | |
|
150 | 145 | |
|
151 | 146 | def get_history_previous(currentBlock): |
|
152 | 147 | """Returns the block previous in the history. Saves currentBlock if |
|
153 | 148 | the history_cursor is currently at the end of the input history""" |
|
154 | 149 | pass |
|
155 | 150 | |
|
156 | 151 | def get_history_next(): |
|
157 | 152 | """Returns the next block in the history.""" |
|
158 | 153 | |
|
159 | 154 | pass |
|
160 | 155 | |
|
161 | 156 | |
|
162 | 157 | class FrontEndBase(object): |
|
163 | 158 | """ |
|
164 | 159 | FrontEndBase manages the state tasks for a CLI frontend: |
|
165 | 160 | - Input and output history management |
|
166 | 161 | - Input/continuation and output prompt generation |
|
167 | 162 | |
|
168 | 163 | Some issues (due to possibly unavailable engine): |
|
169 | 164 | - How do we get the current cell number for the engine? |
|
170 | 165 | - How do we handle completions? |
|
171 | 166 | """ |
|
172 | 167 | |
|
173 | 168 | history_cursor = 0 |
|
174 | 169 | |
|
175 | 170 | current_indent_level = 0 |
|
176 | 171 | |
|
177 | 172 | |
|
178 | 173 | input_prompt_template = string.Template(rc.prompt_in1) |
|
179 | 174 | output_prompt_template = string.Template(rc.prompt_out) |
|
180 | 175 | continuation_prompt_template = string.Template(rc.prompt_in2) |
|
181 | 176 | |
|
182 | 177 | def __init__(self, shell=None, history=None): |
|
183 | 178 | self.shell = shell |
|
184 | 179 | if history is None: |
|
185 | 180 | self.history = FrontEndHistory(input_cache=['']) |
|
186 | 181 | else: |
|
187 | 182 | self.history = history |
|
188 | 183 | |
|
189 | 184 | |
|
190 | 185 | def input_prompt(self, number=''): |
|
191 | 186 | """Returns the current input prompt |
|
192 | 187 | |
|
193 | 188 | It would be great to use ipython1.core.prompts.Prompt1 here |
|
194 | 189 | """ |
|
195 | 190 | return self.input_prompt_template.safe_substitute({'number':number}) |
|
196 | 191 | |
|
197 | 192 | |
|
198 | 193 | def continuation_prompt(self): |
|
199 | 194 | """Returns the current continuation prompt""" |
|
200 | 195 | |
|
201 | 196 | return self.continuation_prompt_template.safe_substitute() |
|
202 | 197 | |
|
203 | 198 | def output_prompt(self, number=''): |
|
204 | 199 | """Returns the output prompt for result""" |
|
205 | 200 | |
|
206 | 201 | return self.output_prompt_template.safe_substitute({'number':number}) |
|
207 | 202 | |
|
208 | 203 | |
|
209 | 204 | def is_complete(self, block): |
|
210 | 205 | """Determine if block is complete. |
|
211 | 206 | |
|
212 | 207 | Parameters |
|
213 | 208 | block : string |
|
214 | 209 | |
|
215 | 210 | Result |
|
216 | 211 | True if block can be sent to the engine without compile errors. |
|
217 | 212 | False otherwise. |
|
218 | 213 | """ |
|
219 | 214 | |
|
220 | 215 | try: |
|
221 | 216 | ast = self.compile_ast(block) |
|
222 | 217 | except: |
|
223 | 218 | return False |
|
224 | 219 | |
|
225 | 220 | lines = block.split('\n') |
|
226 | 221 | return (len(lines)==1 or str(lines[-1])=='') |
|
227 | 222 | |
|
228 | 223 | |
|
229 | 224 | def compile_ast(self, block): |
|
230 | 225 | """Compile block to an AST |
|
231 | 226 | |
|
232 | 227 | Parameters: |
|
233 | 228 | block : str |
|
234 | 229 | |
|
235 | 230 | Result: |
|
236 | 231 | AST |
|
237 | 232 | |
|
238 | 233 | Throws: |
|
239 | 234 | Exception if block cannot be compiled |
|
240 | 235 | """ |
|
241 | 236 | |
|
242 | 237 | return compile(block, "<string>", "exec", _ast.PyCF_ONLY_AST) |
|
243 | 238 | |
|
244 | 239 | |
|
245 | 240 | def execute(self, block, blockID=None): |
|
246 | 241 | """Execute the block and return the result. |
|
247 | 242 | |
|
248 | 243 | Parameters: |
|
249 | 244 | block : {str, AST} |
|
250 | 245 | blockID : any |
|
251 | 246 | Caller may provide an ID to identify this block. |
|
252 | 247 | result['blockID'] := blockID |
|
253 | 248 | |
|
254 | 249 | Result: |
|
255 | 250 | Deferred result of self.interpreter.execute |
|
256 | 251 | """ |
|
257 | 252 | |
|
258 | 253 | if(not self.is_complete(block)): |
|
259 | 254 | raise Exception("Block is not compilable") |
|
260 | 255 | |
|
261 | 256 | if(blockID == None): |
|
262 | 257 | blockID = uuid.uuid4() #random UUID |
|
263 | 258 | |
|
264 | 259 | try: |
|
265 | 260 | result = self.shell.execute(block) |
|
266 | 261 | except Exception,e: |
|
267 | 262 | e = self._add_block_id_for_failure(e, blockID=blockID) |
|
268 | 263 | e = self.update_cell_prompt(e, blockID=blockID) |
|
269 | 264 | e = self.render_error(e) |
|
270 | 265 | else: |
|
271 | 266 | result = self._add_block_id_for_result(result, blockID=blockID) |
|
272 | 267 | result = self.update_cell_prompt(result, blockID=blockID) |
|
273 | 268 | result = self.render_result(result) |
|
274 | 269 | |
|
275 | 270 | return result |
|
276 | 271 | |
|
277 | 272 | |
|
278 | 273 | def _add_block_id_for_result(self, result, blockID): |
|
279 | 274 | """Add the blockID to result or failure. Unfortunatley, we have to |
|
280 | 275 | treat failures differently than result dicts. |
|
281 | 276 | """ |
|
282 | 277 | |
|
283 | 278 | result['blockID'] = blockID |
|
284 | 279 | |
|
285 | 280 | return result |
|
286 | 281 | |
|
287 | 282 | def _add_block_id_for_failure(self, failure, blockID): |
|
288 | 283 | """_add_block_id_for_failure""" |
|
289 | ||
|
290 | 284 | failure.blockID = blockID |
|
291 | 285 | return failure |
|
292 | 286 | |
|
293 | 287 | |
|
294 | 288 | def _add_history(self, result, block=None): |
|
295 | 289 | """Add block to the history""" |
|
296 | 290 | |
|
297 | 291 | assert(block != None) |
|
298 | 292 | self.history.add_items([block]) |
|
299 | 293 | self.history_cursor += 1 |
|
300 | 294 | |
|
301 | 295 | return result |
|
302 | 296 | |
|
303 | 297 | |
|
304 | 298 | def get_history_previous(self, currentBlock): |
|
305 | 299 | """ Returns previous history string and decrement history cursor. |
|
306 | 300 | """ |
|
307 | 301 | command = self.history.get_history_item(self.history_cursor - 1) |
|
308 | 302 | |
|
309 | 303 | if command is not None: |
|
310 | 304 | if(self.history_cursor == len(self.history.input_cache)): |
|
311 | 305 | self.history.input_cache[self.history_cursor] = currentBlock |
|
312 | 306 | self.history_cursor -= 1 |
|
313 | 307 | return command |
|
314 | 308 | |
|
315 | 309 | |
|
316 | 310 | def get_history_next(self): |
|
317 | 311 | """ Returns next history string and increment history cursor. |
|
318 | 312 | """ |
|
319 | 313 | command = self.history.get_history_item(self.history_cursor+1) |
|
320 | 314 | |
|
321 | 315 | if command is not None: |
|
322 | 316 | self.history_cursor += 1 |
|
323 | 317 | return command |
|
324 | 318 | |
|
325 | 319 | ### |
|
326 | 320 | # Subclasses probably want to override these methods... |
|
327 | 321 | ### |
|
328 | 322 | |
|
329 | 323 | def update_cell_prompt(self, result, blockID=None): |
|
330 | 324 | """Subclass may override to update the input prompt for a block. |
|
331 | 325 | Since this method will be called as a |
|
332 | 326 | twisted.internet.defer.Deferred's callback, implementations should |
|
333 | 327 | return result when finished. |
|
334 | 328 | """ |
|
335 | 329 | |
|
336 | 330 | return result |
|
337 | 331 | |
|
338 | 332 | |
|
339 | 333 | def render_result(self, result): |
|
340 | 334 | """Subclasses must override to render result. Since this method will |
|
341 | 335 | be called as a twisted.internet.defer.Deferred's callback, |
|
342 | 336 | implementations should return result when finished. |
|
343 | 337 | """ |
|
344 | 338 | |
|
345 | 339 | return result |
|
346 | 340 | |
|
347 | 341 | |
|
348 | 342 | def render_error(self, failure): |
|
349 | 343 | """Subclasses must override to render the failure. Since this method |
|
350 | 344 | will be called as a twisted.internet.defer.Deferred's callback, |
|
351 | 345 | implementations should return result when finished. |
|
352 | 346 | """ |
|
353 | 347 | |
|
354 | 348 | return failure |
|
355 | 349 | |
|
356 | 350 | |
|
357 | 351 | |
|
358 | 352 | class AsyncFrontEndBase(FrontEndBase): |
|
359 | 353 | """ |
|
360 | 354 | Overrides FrontEndBase to wrap execute in a deferred result. |
|
361 | 355 | All callbacks are made as callbacks on the deferred result. |
|
362 | 356 | """ |
|
363 | 357 | |
|
364 | 358 | implements(IFrontEnd) |
|
365 | 359 | classProvides(IFrontEndFactory) |
|
366 | 360 | |
|
367 | 361 | def __init__(self, engine=None, history=None): |
|
368 | 362 | assert(engine==None or IEngineCore.providedBy(engine)) |
|
369 | 363 | self.engine = IEngineCore(engine) |
|
370 | 364 | if history is None: |
|
371 | 365 | self.history = FrontEndHistory(input_cache=['']) |
|
372 | 366 | else: |
|
373 | 367 | self.history = history |
|
374 | 368 | |
|
375 | 369 | |
|
376 | 370 | def execute(self, block, blockID=None): |
|
377 | 371 | """Execute the block and return the deferred result. |
|
378 | 372 | |
|
379 | 373 | Parameters: |
|
380 | 374 | block : {str, AST} |
|
381 | 375 | blockID : any |
|
382 | 376 | Caller may provide an ID to identify this block. |
|
383 | 377 | result['blockID'] := blockID |
|
384 | 378 | |
|
385 | 379 | Result: |
|
386 | 380 | Deferred result of self.interpreter.execute |
|
387 | 381 | """ |
|
388 | 382 | |
|
389 | 383 | if(not self.is_complete(block)): |
|
384 | from twisted.python.failure import Failure | |
|
390 | 385 | return Failure(Exception("Block is not compilable")) |
|
391 | 386 | |
|
392 | 387 | if(blockID == None): |
|
393 | 388 | blockID = uuid.uuid4() #random UUID |
|
394 | 389 | |
|
395 | 390 | d = self.engine.execute(block) |
|
396 | 391 | d.addCallback(self._add_history, block=block) |
|
397 |
d.addCallback |
|
|
398 |
|
|
|
399 | callbackArgs=(blockID,), | |
|
400 | errbackArgs=(blockID,)) | |
|
392 | d.addCallback(self._add_block_id_for_result, blockID) | |
|
393 | d.addErrback(self._add_block_id_for_failure, blockID) | |
|
401 | 394 | d.addBoth(self.update_cell_prompt, blockID=blockID) |
|
402 | 395 | d.addCallbacks(self.render_result, |
|
403 | 396 | errback=self.render_error) |
|
404 | 397 | |
|
405 | 398 | return d |
|
406 | 399 | |
|
407 | 400 |
@@ -1,878 +1,903 b'' | |||
|
1 | 1 | # encoding: utf-8 |
|
2 | 2 | # -*- test-case-name: IPython.kernel.tests.test_engineservice -*- |
|
3 | 3 | |
|
4 | 4 | """A Twisted Service Representation of the IPython core. |
|
5 | 5 | |
|
6 | 6 | The IPython Core exposed to the network is called the Engine. Its |
|
7 | 7 | representation in Twisted in the EngineService. Interfaces and adapters |
|
8 | 8 | are used to abstract out the details of the actual network protocol used. |
|
9 | 9 | The EngineService is an Engine that knows nothing about the actual protocol |
|
10 | 10 | used. |
|
11 | 11 | |
|
12 | 12 | The EngineService is exposed with various network protocols in modules like: |
|
13 | 13 | |
|
14 | 14 | enginepb.py |
|
15 | 15 | enginevanilla.py |
|
16 | 16 | |
|
17 | 17 | As of 12/12/06 the classes in this module have been simplified greatly. It was |
|
18 | 18 | felt that we had over-engineered things. To improve the maintainability of the |
|
19 | 19 | code we have taken out the ICompleteEngine interface and the completeEngine |
|
20 | 20 | method that automatically added methods to engines. |
|
21 | 21 | |
|
22 | 22 | """ |
|
23 | 23 | |
|
24 | 24 | __docformat__ = "restructuredtext en" |
|
25 | 25 | |
|
26 | 26 | #------------------------------------------------------------------------------- |
|
27 | 27 | # Copyright (C) 2008 The IPython Development Team |
|
28 | 28 | # |
|
29 | 29 | # Distributed under the terms of the BSD License. The full license is in |
|
30 | 30 | # the file COPYING, distributed as part of this software. |
|
31 | 31 | #------------------------------------------------------------------------------- |
|
32 | 32 | |
|
33 | 33 | #------------------------------------------------------------------------------- |
|
34 | 34 | # Imports |
|
35 | 35 | #------------------------------------------------------------------------------- |
|
36 | 36 | |
|
37 | 37 | import os, sys, copy |
|
38 | 38 | import cPickle as pickle |
|
39 | 39 | from new import instancemethod |
|
40 | 40 | |
|
41 | 41 | from twisted.application import service |
|
42 | 42 | from twisted.internet import defer, reactor |
|
43 | 43 | from twisted.python import log, failure, components |
|
44 | 44 | import zope.interface as zi |
|
45 | 45 | |
|
46 | 46 | from IPython.kernel.core.interpreter import Interpreter |
|
47 | 47 | from IPython.kernel import newserialized, error, util |
|
48 | 48 | from IPython.kernel.util import printer |
|
49 | 49 | from IPython.kernel.twistedutil import gatherBoth, DeferredList |
|
50 | 50 | from IPython.kernel import codeutil |
|
51 | 51 | |
|
52 | 52 | |
|
53 | 53 | #------------------------------------------------------------------------------- |
|
54 | 54 | # Interface specification for the Engine |
|
55 | 55 | #------------------------------------------------------------------------------- |
|
56 | 56 | |
|
57 | 57 | class IEngineCore(zi.Interface): |
|
58 | 58 | """The minimal required interface for the IPython Engine. |
|
59 | 59 | |
|
60 | 60 | This interface provides a formal specification of the IPython core. |
|
61 | 61 | All these methods should return deferreds regardless of what side of a |
|
62 | 62 | network connection they are on. |
|
63 | 63 | |
|
64 | 64 | In general, this class simply wraps a shell class and wraps its return |
|
65 | 65 | values as Deferred objects. If the underlying shell class method raises |
|
66 | 66 | an exception, this class should convert it to a twisted.failure.Failure |
|
67 | 67 | that will be propagated along the Deferred's errback chain. |
|
68 | 68 | |
|
69 | 69 | In addition, Failures are aggressive. By this, we mean that if a method |
|
70 | 70 | is performing multiple actions (like pulling multiple object) if any |
|
71 | 71 | single one fails, the entire method will fail with that Failure. It is |
|
72 | 72 | all or nothing. |
|
73 | 73 | """ |
|
74 | 74 | |
|
75 | 75 | id = zi.interface.Attribute("the id of the Engine object") |
|
76 | 76 | properties = zi.interface.Attribute("A dict of properties of the Engine") |
|
77 | 77 | |
|
78 | 78 | def execute(lines): |
|
79 | 79 | """Execute lines of Python code. |
|
80 | 80 | |
|
81 | 81 | Returns a dictionary with keys (id, number, stdin, stdout, stderr) |
|
82 | 82 | upon success. |
|
83 | 83 | |
|
84 | 84 | Returns a failure object if the execution of lines raises an exception. |
|
85 | 85 | """ |
|
86 | 86 | |
|
87 | 87 | def push(namespace): |
|
88 | 88 | """Push dict namespace into the user's namespace. |
|
89 | 89 | |
|
90 | 90 | Returns a deferred to None or a failure. |
|
91 | 91 | """ |
|
92 | 92 | |
|
93 | 93 | def pull(keys): |
|
94 | 94 | """Pulls values out of the user's namespace by keys. |
|
95 | 95 | |
|
96 | 96 | Returns a deferred to a tuple objects or a single object. |
|
97 | 97 | |
|
98 | 98 | Raises NameError if any one of objects doess not exist. |
|
99 | 99 | """ |
|
100 | 100 | |
|
101 | 101 | def push_function(namespace): |
|
102 | 102 | """Push a dict of key, function pairs into the user's namespace. |
|
103 | 103 | |
|
104 | 104 | Returns a deferred to None or a failure.""" |
|
105 | 105 | |
|
106 | 106 | def pull_function(keys): |
|
107 | 107 | """Pulls functions out of the user's namespace by keys. |
|
108 | 108 | |
|
109 | 109 | Returns a deferred to a tuple of functions or a single function. |
|
110 | 110 | |
|
111 | 111 | Raises NameError if any one of the functions does not exist. |
|
112 | 112 | """ |
|
113 | 113 | |
|
114 | 114 | def get_result(i=None): |
|
115 | 115 | """Get the stdin/stdout/stderr of command i. |
|
116 | 116 | |
|
117 | 117 | Returns a deferred to a dict with keys |
|
118 | 118 | (id, number, stdin, stdout, stderr). |
|
119 | 119 | |
|
120 | 120 | Raises IndexError if command i does not exist. |
|
121 | 121 | Raises TypeError if i in not an int. |
|
122 | 122 | """ |
|
123 | 123 | |
|
124 | 124 | def reset(): |
|
125 | 125 | """Reset the shell. |
|
126 | 126 | |
|
127 | 127 | This clears the users namespace. Won't cause modules to be |
|
128 | 128 | reloaded. Should also re-initialize certain variables like id. |
|
129 | 129 | """ |
|
130 | 130 | |
|
131 | 131 | def kill(): |
|
132 | 132 | """Kill the engine by stopping the reactor.""" |
|
133 | 133 | |
|
134 | 134 | def keys(): |
|
135 | 135 | """Return the top level variables in the users namspace. |
|
136 | 136 | |
|
137 | 137 | Returns a deferred to a dict.""" |
|
138 | 138 | |
|
139 | 139 | |
|
140 | 140 | class IEngineSerialized(zi.Interface): |
|
141 | 141 | """Push/Pull methods that take Serialized objects. |
|
142 | 142 | |
|
143 | 143 | All methods should return deferreds. |
|
144 | 144 | """ |
|
145 | 145 | |
|
146 | 146 | def push_serialized(namespace): |
|
147 | 147 | """Push a dict of keys and Serialized objects into the user's namespace.""" |
|
148 | 148 | |
|
149 | 149 | def pull_serialized(keys): |
|
150 | 150 | """Pull objects by key from the user's namespace as Serialized. |
|
151 | 151 | |
|
152 | 152 | Returns a list of or one Serialized. |
|
153 | 153 | |
|
154 | 154 | Raises NameError is any one of the objects does not exist. |
|
155 | 155 | """ |
|
156 | 156 | |
|
157 | 157 | |
|
158 | 158 | class IEngineProperties(zi.Interface): |
|
159 | 159 | """Methods for access to the properties object of an Engine""" |
|
160 | 160 | |
|
161 | 161 | properties = zi.Attribute("A StrictDict object, containing the properties") |
|
162 | 162 | |
|
163 | 163 | def set_properties(properties): |
|
164 | 164 | """set properties by key and value""" |
|
165 | 165 | |
|
166 | 166 | def get_properties(keys=None): |
|
167 | 167 | """get a list of properties by `keys`, if no keys specified, get all""" |
|
168 | 168 | |
|
169 | 169 | def del_properties(keys): |
|
170 | 170 | """delete properties by `keys`""" |
|
171 | 171 | |
|
172 | 172 | def has_properties(keys): |
|
173 | 173 | """get a list of bool values for whether `properties` has `keys`""" |
|
174 | 174 | |
|
175 | 175 | def clear_properties(): |
|
176 | 176 | """clear the properties dict""" |
|
177 | 177 | |
|
178 | 178 | class IEngineBase(IEngineCore, IEngineSerialized, IEngineProperties): |
|
179 | 179 | """The basic engine interface that EngineService will implement. |
|
180 | 180 | |
|
181 | 181 | This exists so it is easy to specify adapters that adapt to and from the |
|
182 | 182 | API that the basic EngineService implements. |
|
183 | 183 | """ |
|
184 | 184 | pass |
|
185 | 185 | |
|
186 | 186 | class IEngineQueued(IEngineBase): |
|
187 | 187 | """Interface for adding a queue to an IEngineBase. |
|
188 | 188 | |
|
189 | 189 | This interface extends the IEngineBase interface to add methods for managing |
|
190 | 190 | the engine's queue. The implicit details of this interface are that the |
|
191 | 191 | execution of all methods declared in IEngineBase should appropriately be |
|
192 | 192 | put through a queue before execution. |
|
193 | 193 | |
|
194 | 194 | All methods should return deferreds. |
|
195 | 195 | """ |
|
196 | 196 | |
|
197 | 197 | def clear_queue(): |
|
198 | 198 | """Clear the queue.""" |
|
199 | 199 | |
|
200 | 200 | def queue_status(): |
|
201 | 201 | """Get the queued and pending commands in the queue.""" |
|
202 | 202 | |
|
203 | 203 | def register_failure_observer(obs): |
|
204 | 204 | """Register an observer of pending Failures. |
|
205 | 205 | |
|
206 | 206 | The observer must implement IFailureObserver. |
|
207 | 207 | """ |
|
208 | 208 | |
|
209 | 209 | def unregister_failure_observer(obs): |
|
210 | 210 | """Unregister an observer of pending Failures.""" |
|
211 | 211 | |
|
212 | 212 | |
|
213 | 213 | class IEngineThreaded(zi.Interface): |
|
214 | 214 | """A place holder for threaded commands. |
|
215 | 215 | |
|
216 | 216 | All methods should return deferreds. |
|
217 | 217 | """ |
|
218 | 218 | pass |
|
219 | 219 | |
|
220 | 220 | |
|
221 | 221 | #------------------------------------------------------------------------------- |
|
222 | 222 | # Functions and classes to implement the EngineService |
|
223 | 223 | #------------------------------------------------------------------------------- |
|
224 | 224 | |
|
225 | 225 | |
|
226 | 226 | class StrictDict(dict): |
|
227 | 227 | """This is a strict copying dictionary for use as the interface to the |
|
228 | 228 | properties of an Engine. |
|
229 | 229 | |
|
230 | 230 | :IMPORTANT: |
|
231 | 231 | This object copies the values you set to it, and returns copies to you |
|
232 | 232 | when you request them. The only way to change properties os explicitly |
|
233 | 233 | through the setitem and getitem of the dictionary interface. |
|
234 | 234 | |
|
235 | 235 | Example: |
|
236 | 236 | >>> e = get_engine(id) |
|
237 | 237 | >>> L = [1,2,3] |
|
238 | 238 | >>> e.properties['L'] = L |
|
239 | 239 | >>> L == e.properties['L'] |
|
240 | 240 | True |
|
241 | 241 | >>> L.append(99) |
|
242 | 242 | >>> L == e.properties['L'] |
|
243 | 243 | False |
|
244 | 244 | |
|
245 | 245 | Note that getitem copies, so calls to methods of objects do not affect |
|
246 | 246 | the properties, as seen here: |
|
247 | 247 | |
|
248 | 248 | >>> e.properties[1] = range(2) |
|
249 | 249 | >>> print e.properties[1] |
|
250 | 250 | [0, 1] |
|
251 | 251 | >>> e.properties[1].append(2) |
|
252 | 252 | >>> print e.properties[1] |
|
253 | 253 | [0, 1] |
|
254 | 254 | """ |
|
255 | 255 | def __init__(self, *args, **kwargs): |
|
256 | 256 | dict.__init__(self, *args, **kwargs) |
|
257 | 257 | self.modified = True |
|
258 | 258 | |
|
259 | 259 | def __getitem__(self, key): |
|
260 | 260 | return copy.deepcopy(dict.__getitem__(self, key)) |
|
261 | 261 | |
|
262 | 262 | def __setitem__(self, key, value): |
|
263 | 263 | # check if this entry is valid for transport around the network |
|
264 | 264 | # and copying |
|
265 | 265 | try: |
|
266 | 266 | pickle.dumps(key, 2) |
|
267 | 267 | pickle.dumps(value, 2) |
|
268 | 268 | newvalue = copy.deepcopy(value) |
|
269 | 269 | except: |
|
270 | 270 | raise error.InvalidProperty(value) |
|
271 | 271 | dict.__setitem__(self, key, newvalue) |
|
272 | 272 | self.modified = True |
|
273 | 273 | |
|
274 | 274 | def __delitem__(self, key): |
|
275 | 275 | dict.__delitem__(self, key) |
|
276 | 276 | self.modified = True |
|
277 | 277 | |
|
278 | 278 | def update(self, dikt): |
|
279 | 279 | for k,v in dikt.iteritems(): |
|
280 | 280 | self[k] = v |
|
281 | 281 | |
|
282 | 282 | def pop(self, key): |
|
283 | 283 | self.modified = True |
|
284 | 284 | return dict.pop(self, key) |
|
285 | 285 | |
|
286 | 286 | def popitem(self): |
|
287 | 287 | self.modified = True |
|
288 | 288 | return dict.popitem(self) |
|
289 | 289 | |
|
290 | 290 | def clear(self): |
|
291 | 291 | self.modified = True |
|
292 | 292 | dict.clear(self) |
|
293 | 293 | |
|
294 | 294 | def subDict(self, *keys): |
|
295 | 295 | d = {} |
|
296 | 296 | for key in keys: |
|
297 | 297 | d[key] = self[key] |
|
298 | 298 | return d |
|
299 | 299 | |
|
300 | 300 | |
|
301 | 301 | |
|
302 | 302 | class EngineAPI(object): |
|
303 | 303 | """This is the object through which the user can edit the `properties` |
|
304 | 304 | attribute of an Engine. |
|
305 | 305 | The Engine Properties object copies all object in and out of itself. |
|
306 | 306 | See the EngineProperties object for details. |
|
307 | 307 | """ |
|
308 | 308 | _fix=False |
|
309 | 309 | def __init__(self, id): |
|
310 | 310 | self.id = id |
|
311 | 311 | self.properties = StrictDict() |
|
312 | 312 | self._fix=True |
|
313 | 313 | |
|
314 | 314 | def __setattr__(self, k,v): |
|
315 | 315 | if self._fix: |
|
316 | 316 | raise error.KernelError("I am protected!") |
|
317 | 317 | else: |
|
318 | 318 | object.__setattr__(self, k, v) |
|
319 | 319 | |
|
320 | 320 | def __delattr__(self, key): |
|
321 | 321 | raise error.KernelError("I am protected!") |
|
322 | 322 | |
|
323 | 323 | |
|
324 | 324 | _apiDict = {} |
|
325 | 325 | |
|
326 | 326 | def get_engine(id): |
|
327 | 327 | """Get the Engine API object, whcih currently just provides the properties |
|
328 | 328 | object, by ID""" |
|
329 | 329 | global _apiDict |
|
330 | 330 | if not _apiDict.get(id): |
|
331 | 331 | _apiDict[id] = EngineAPI(id) |
|
332 | 332 | return _apiDict[id] |
|
333 | 333 | |
|
334 | 334 | def drop_engine(id): |
|
335 | 335 | """remove an engine""" |
|
336 | 336 | global _apiDict |
|
337 | 337 | if _apiDict.has_key(id): |
|
338 | 338 | del _apiDict[id] |
|
339 | 339 | |
|
340 | 340 | class EngineService(object, service.Service): |
|
341 | 341 | """Adapt a IPython shell into a IEngine implementing Twisted Service.""" |
|
342 | 342 | |
|
343 | 343 | zi.implements(IEngineBase) |
|
344 | 344 | name = 'EngineService' |
|
345 | 345 | |
|
346 | 346 | def __init__(self, shellClass=Interpreter, mpi=None): |
|
347 | 347 | """Create an EngineService. |
|
348 | 348 | |
|
349 | 349 | shellClass: something that implements IInterpreter or core1 |
|
350 | 350 | mpi: an mpi module that has rank and size attributes |
|
351 | 351 | """ |
|
352 | 352 | self.shellClass = shellClass |
|
353 | 353 | self.shell = self.shellClass() |
|
354 | 354 | self.mpi = mpi |
|
355 | 355 | self.id = None |
|
356 | 356 | self.properties = get_engine(self.id).properties |
|
357 | 357 | if self.mpi is not None: |
|
358 | 358 | log.msg("MPI started with rank = %i and size = %i" % |
|
359 | 359 | (self.mpi.rank, self.mpi.size)) |
|
360 | 360 | self.id = self.mpi.rank |
|
361 | 361 | self._seedNamespace() |
|
362 | 362 | |
|
363 | 363 | # Make id a property so that the shell can get the updated id |
|
364 | 364 | |
|
365 | 365 | def _setID(self, id): |
|
366 | 366 | self._id = id |
|
367 | 367 | self.properties = get_engine(id).properties |
|
368 | 368 | self.shell.push({'id': id}) |
|
369 | 369 | |
|
370 | 370 | def _getID(self): |
|
371 | 371 | return self._id |
|
372 | 372 | |
|
373 | 373 | id = property(_getID, _setID) |
|
374 | 374 | |
|
375 | 375 | def _seedNamespace(self): |
|
376 | 376 | self.shell.push({'mpi': self.mpi, 'id' : self.id}) |
|
377 | 377 | |
|
378 | 378 | def executeAndRaise(self, msg, callable, *args, **kwargs): |
|
379 | 379 | """Call a method of self.shell and wrap any exception.""" |
|
380 | 380 | d = defer.Deferred() |
|
381 | 381 | try: |
|
382 | 382 | result = callable(*args, **kwargs) |
|
383 | 383 | except: |
|
384 | 384 | # This gives the following: |
|
385 | 385 | # et=exception class |
|
386 | 386 | # ev=exception class instance |
|
387 | 387 | # tb=traceback object |
|
388 | 388 | et,ev,tb = sys.exc_info() |
|
389 | 389 | # This call adds attributes to the exception value |
|
390 | 390 | et,ev,tb = self.shell.formatTraceback(et,ev,tb,msg) |
|
391 | 391 | # Add another attribute |
|
392 | 392 | ev._ipython_engine_info = msg |
|
393 | 393 | f = failure.Failure(ev,et,None) |
|
394 | 394 | d.errback(f) |
|
395 | 395 | else: |
|
396 | 396 | d.callback(result) |
|
397 | 397 | |
|
398 | 398 | return d |
|
399 | 399 | |
|
400 | ||
|
400 | 401 | # The IEngine methods. See the interface for documentation. |
|
401 | 402 | |
|
402 | 403 | def execute(self, lines): |
|
403 | 404 | msg = {'engineid':self.id, |
|
404 | 405 | 'method':'execute', |
|
405 | 406 | 'args':[lines]} |
|
406 | 407 | d = self.executeAndRaise(msg, self.shell.execute, lines) |
|
407 | 408 | d.addCallback(self.addIDToResult) |
|
408 | 409 | return d |
|
409 | 410 | |
|
410 | 411 | def addIDToResult(self, result): |
|
411 | 412 | result['id'] = self.id |
|
412 | 413 | return result |
|
413 | 414 | |
|
414 | 415 | def push(self, namespace): |
|
415 | 416 | msg = {'engineid':self.id, |
|
416 | 417 | 'method':'push', |
|
417 | 418 | 'args':[repr(namespace.keys())]} |
|
418 | 419 | d = self.executeAndRaise(msg, self.shell.push, namespace) |
|
419 | 420 | return d |
|
420 | 421 | |
|
421 | 422 | def pull(self, keys): |
|
422 | 423 | msg = {'engineid':self.id, |
|
423 | 424 | 'method':'pull', |
|
424 | 425 | 'args':[repr(keys)]} |
|
425 | 426 | d = self.executeAndRaise(msg, self.shell.pull, keys) |
|
426 | 427 | return d |
|
427 | 428 | |
|
428 | 429 | def push_function(self, namespace): |
|
429 | 430 | msg = {'engineid':self.id, |
|
430 | 431 | 'method':'push_function', |
|
431 | 432 | 'args':[repr(namespace.keys())]} |
|
432 | 433 | d = self.executeAndRaise(msg, self.shell.push_function, namespace) |
|
433 | 434 | return d |
|
434 | 435 | |
|
435 | 436 | def pull_function(self, keys): |
|
436 | 437 | msg = {'engineid':self.id, |
|
437 | 438 | 'method':'pull_function', |
|
438 | 439 | 'args':[repr(keys)]} |
|
439 | 440 | d = self.executeAndRaise(msg, self.shell.pull_function, keys) |
|
440 | 441 | return d |
|
441 | 442 | |
|
442 | 443 | def get_result(self, i=None): |
|
443 | 444 | msg = {'engineid':self.id, |
|
444 | 445 | 'method':'get_result', |
|
445 | 446 | 'args':[repr(i)]} |
|
446 | 447 | d = self.executeAndRaise(msg, self.shell.getCommand, i) |
|
447 | 448 | d.addCallback(self.addIDToResult) |
|
448 | 449 | return d |
|
449 | 450 | |
|
450 | 451 | def reset(self): |
|
451 | 452 | msg = {'engineid':self.id, |
|
452 | 453 | 'method':'reset', |
|
453 | 454 | 'args':[]} |
|
454 | 455 | del self.shell |
|
455 | 456 | self.shell = self.shellClass() |
|
456 | 457 | self.properties.clear() |
|
457 | 458 | d = self.executeAndRaise(msg, self._seedNamespace) |
|
458 | 459 | return d |
|
459 | 460 | |
|
460 | 461 | def kill(self): |
|
461 | 462 | drop_engine(self.id) |
|
462 | 463 | try: |
|
463 | 464 | reactor.stop() |
|
464 | 465 | except RuntimeError: |
|
465 | 466 | log.msg('The reactor was not running apparently.') |
|
466 | 467 | return defer.fail() |
|
467 | 468 | else: |
|
468 | 469 | return defer.succeed(None) |
|
469 | 470 | |
|
470 | 471 | def keys(self): |
|
471 | 472 | """Return a list of variables names in the users top level namespace. |
|
472 | 473 | |
|
473 | 474 | This used to return a dict of all the keys/repr(values) in the |
|
474 | 475 | user's namespace. This was too much info for the ControllerService |
|
475 | 476 | to handle so it is now just a list of keys. |
|
476 | 477 | """ |
|
477 | 478 | |
|
478 | 479 | remotes = [] |
|
479 | 480 | for k in self.shell.user_ns.iterkeys(): |
|
480 | 481 | if k not in ['__name__', '_ih', '_oh', '__builtins__', |
|
481 | 482 | 'In', 'Out', '_', '__', '___', '__IP', 'input', 'raw_input']: |
|
482 | 483 | remotes.append(k) |
|
483 | 484 | return defer.succeed(remotes) |
|
484 | 485 | |
|
485 | 486 | def set_properties(self, properties): |
|
486 | 487 | msg = {'engineid':self.id, |
|
487 | 488 | 'method':'set_properties', |
|
488 | 489 | 'args':[repr(properties.keys())]} |
|
489 | 490 | return self.executeAndRaise(msg, self.properties.update, properties) |
|
490 | 491 | |
|
491 | 492 | def get_properties(self, keys=None): |
|
492 | 493 | msg = {'engineid':self.id, |
|
493 | 494 | 'method':'get_properties', |
|
494 | 495 | 'args':[repr(keys)]} |
|
495 | 496 | if keys is None: |
|
496 | 497 | keys = self.properties.keys() |
|
497 | 498 | return self.executeAndRaise(msg, self.properties.subDict, *keys) |
|
498 | 499 | |
|
499 | 500 | def _doDel(self, keys): |
|
500 | 501 | for key in keys: |
|
501 | 502 | del self.properties[key] |
|
502 | 503 | |
|
503 | 504 | def del_properties(self, keys): |
|
504 | 505 | msg = {'engineid':self.id, |
|
505 | 506 | 'method':'del_properties', |
|
506 | 507 | 'args':[repr(keys)]} |
|
507 | 508 | return self.executeAndRaise(msg, self._doDel, keys) |
|
508 | 509 | |
|
509 | 510 | def _doHas(self, keys): |
|
510 | 511 | return [self.properties.has_key(key) for key in keys] |
|
511 | 512 | |
|
512 | 513 | def has_properties(self, keys): |
|
513 | 514 | msg = {'engineid':self.id, |
|
514 | 515 | 'method':'has_properties', |
|
515 | 516 | 'args':[repr(keys)]} |
|
516 | 517 | return self.executeAndRaise(msg, self._doHas, keys) |
|
517 | 518 | |
|
518 | 519 | def clear_properties(self): |
|
519 | 520 | msg = {'engineid':self.id, |
|
520 | 521 | 'method':'clear_properties', |
|
521 | 522 | 'args':[]} |
|
522 | 523 | return self.executeAndRaise(msg, self.properties.clear) |
|
523 | 524 | |
|
524 | 525 | def push_serialized(self, sNamespace): |
|
525 | 526 | msg = {'engineid':self.id, |
|
526 | 527 | 'method':'push_serialized', |
|
527 | 528 | 'args':[repr(sNamespace.keys())]} |
|
528 | 529 | ns = {} |
|
529 | 530 | for k,v in sNamespace.iteritems(): |
|
530 | 531 | try: |
|
531 | 532 | unserialized = newserialized.IUnSerialized(v) |
|
532 | 533 | ns[k] = unserialized.getObject() |
|
533 | 534 | except: |
|
534 | 535 | return defer.fail() |
|
535 | 536 | return self.executeAndRaise(msg, self.shell.push, ns) |
|
536 | 537 | |
|
537 | 538 | def pull_serialized(self, keys): |
|
538 | 539 | msg = {'engineid':self.id, |
|
539 | 540 | 'method':'pull_serialized', |
|
540 | 541 | 'args':[repr(keys)]} |
|
541 | 542 | if isinstance(keys, str): |
|
542 | 543 | keys = [keys] |
|
543 | 544 | if len(keys)==1: |
|
544 | 545 | d = self.executeAndRaise(msg, self.shell.pull, keys) |
|
545 | 546 | d.addCallback(newserialized.serialize) |
|
546 | 547 | return d |
|
547 | 548 | elif len(keys)>1: |
|
548 | 549 | d = self.executeAndRaise(msg, self.shell.pull, keys) |
|
549 | 550 | @d.addCallback |
|
550 | 551 | def packThemUp(values): |
|
551 | 552 | serials = [] |
|
552 | 553 | for v in values: |
|
553 | 554 | try: |
|
554 | 555 | serials.append(newserialized.serialize(v)) |
|
555 | 556 | except: |
|
556 | 557 | return defer.fail(failure.Failure()) |
|
557 | 558 | return serials |
|
558 | 559 | return packThemUp |
|
559 | 560 | |
|
560 | 561 | |
|
561 | 562 | def queue(methodToQueue): |
|
562 | 563 | def queuedMethod(this, *args, **kwargs): |
|
563 | 564 | name = methodToQueue.__name__ |
|
564 | 565 | return this.submitCommand(Command(name, *args, **kwargs)) |
|
565 | 566 | return queuedMethod |
|
566 | 567 | |
|
567 | 568 | class QueuedEngine(object): |
|
568 | 569 | """Adapt an IEngineBase to an IEngineQueued by wrapping it. |
|
569 | 570 | |
|
570 | 571 | The resulting object will implement IEngineQueued which extends |
|
571 | 572 | IEngineCore which extends (IEngineBase, IEngineSerialized). |
|
572 | 573 | |
|
573 | 574 | This seems like the best way of handling it, but I am not sure. The |
|
574 | 575 | other option is to have the various base interfaces be used like |
|
575 | 576 | mix-in intefaces. The problem I have with this is adpatation is |
|
576 | 577 | more difficult and complicated because there can be can multiple |
|
577 | 578 | original and final Interfaces. |
|
578 | 579 | """ |
|
579 | 580 | |
|
580 | 581 | zi.implements(IEngineQueued) |
|
581 | 582 | |
|
582 | 583 | def __init__(self, engine): |
|
583 | 584 | """Create a QueuedEngine object from an engine |
|
584 | 585 | |
|
585 | 586 | engine: An implementor of IEngineCore and IEngineSerialized |
|
586 | 587 | keepUpToDate: whether to update the remote status when the |
|
587 | 588 | queue is empty. Defaults to False. |
|
588 | 589 | """ |
|
589 | 590 | |
|
590 | 591 | # This is the right way to do these tests rather than |
|
591 | 592 | # IEngineCore in list(zi.providedBy(engine)) which will only |
|
592 | 593 | # picks of the interfaces that are directly declared by engine. |
|
593 | 594 | assert IEngineBase.providedBy(engine), \ |
|
594 | 595 | "engine passed to QueuedEngine doesn't provide IEngineBase" |
|
595 | 596 | |
|
596 | 597 | self.engine = engine |
|
597 | 598 | self.id = engine.id |
|
598 | 599 | self.queued = [] |
|
599 | 600 | self.history = {} |
|
600 | 601 | self.engineStatus = {} |
|
601 | 602 | self.currentCommand = None |
|
602 | 603 | self.failureObservers = [] |
|
603 | 604 | |
|
604 | 605 | def _get_properties(self): |
|
605 | 606 | return self.engine.properties |
|
606 | 607 | |
|
607 | 608 | properties = property(_get_properties, lambda self, _: None) |
|
608 | 609 | # Queue management methods. You should not call these directly |
|
609 | 610 | |
|
610 | 611 | def submitCommand(self, cmd): |
|
611 | 612 | """Submit command to queue.""" |
|
612 | 613 | |
|
613 | 614 | d = defer.Deferred() |
|
614 | 615 | cmd.setDeferred(d) |
|
615 | 616 | if self.currentCommand is not None: |
|
616 | 617 | if self.currentCommand.finished: |
|
617 | 618 | # log.msg("Running command immediately: %r" % cmd) |
|
618 | 619 | self.currentCommand = cmd |
|
619 | 620 | self.runCurrentCommand() |
|
620 | 621 | else: # command is still running |
|
621 | 622 | # log.msg("Command is running: %r" % self.currentCommand) |
|
622 | 623 | # log.msg("Queueing: %r" % cmd) |
|
623 | 624 | self.queued.append(cmd) |
|
624 | 625 | else: |
|
625 | 626 | # log.msg("No current commands, running: %r" % cmd) |
|
626 | 627 | self.currentCommand = cmd |
|
627 | 628 | self.runCurrentCommand() |
|
628 | 629 | return d |
|
629 | 630 | |
|
630 | 631 | def runCurrentCommand(self): |
|
631 | 632 | """Run current command.""" |
|
632 | 633 | |
|
633 | 634 | cmd = self.currentCommand |
|
634 | 635 | f = getattr(self.engine, cmd.remoteMethod, None) |
|
635 | 636 | if f: |
|
636 | 637 | d = f(*cmd.args, **cmd.kwargs) |
|
637 | 638 | if cmd.remoteMethod is 'execute': |
|
638 | 639 | d.addCallback(self.saveResult) |
|
639 | 640 | d.addCallback(self.finishCommand) |
|
640 | 641 | d.addErrback(self.abortCommand) |
|
641 | 642 | else: |
|
642 | 643 | return defer.fail(AttributeError(cmd.remoteMethod)) |
|
643 | 644 | |
|
644 | 645 | def _flushQueue(self): |
|
645 | 646 | """Pop next command in queue and run it.""" |
|
646 | 647 | |
|
647 | 648 | if len(self.queued) > 0: |
|
648 | 649 | self.currentCommand = self.queued.pop(0) |
|
649 | 650 | self.runCurrentCommand() |
|
650 | 651 | |
|
651 | 652 | def saveResult(self, result): |
|
652 | 653 | """Put the result in the history.""" |
|
653 | 654 | self.history[result['number']] = result |
|
654 | 655 | return result |
|
655 | 656 | |
|
656 | 657 | def finishCommand(self, result): |
|
657 | 658 | """Finish currrent command.""" |
|
658 | 659 | |
|
659 | 660 | # The order of these commands is absolutely critical. |
|
660 | 661 | self.currentCommand.handleResult(result) |
|
661 | 662 | self.currentCommand.finished = True |
|
662 | 663 | self._flushQueue() |
|
663 | 664 | return result |
|
664 | 665 | |
|
665 | 666 | def abortCommand(self, reason): |
|
666 | 667 | """Abort current command. |
|
667 | 668 | |
|
668 | 669 | This eats the Failure but first passes it onto the Deferred that the |
|
669 | 670 | user has. |
|
670 | 671 | |
|
671 | 672 | It also clear out the queue so subsequence commands don't run. |
|
672 | 673 | """ |
|
673 | 674 | |
|
674 | 675 | # The order of these 3 commands is absolutely critical. The currentCommand |
|
675 | 676 | # must first be marked as finished BEFORE the queue is cleared and before |
|
676 | 677 | # the current command is sent the failure. |
|
677 | 678 | # Also, the queue must be cleared BEFORE the current command is sent the Failure |
|
678 | 679 | # otherwise the errback chain could trigger new commands to be added to the |
|
679 | 680 | # queue before we clear it. We should clear ONLY the commands that were in |
|
680 | 681 | # the queue when the error occured. |
|
681 | 682 | self.currentCommand.finished = True |
|
682 | 683 | s = "%r %r %r" % (self.currentCommand.remoteMethod, self.currentCommand.args, self.currentCommand.kwargs) |
|
683 | 684 | self.clear_queue(msg=s) |
|
684 | 685 | self.currentCommand.handleError(reason) |
|
685 | 686 | |
|
686 | 687 | return None |
|
687 | 688 | |
|
688 | 689 | #--------------------------------------------------------------------------- |
|
689 | 690 | # IEngineCore methods |
|
690 | 691 | #--------------------------------------------------------------------------- |
|
691 | 692 | |
|
692 | 693 | @queue |
|
693 | 694 | def execute(self, lines): |
|
694 | 695 | pass |
|
695 | 696 | |
|
696 | 697 | @queue |
|
697 | 698 | def push(self, namespace): |
|
698 | 699 | pass |
|
699 | 700 | |
|
700 | 701 | @queue |
|
701 | 702 | def pull(self, keys): |
|
702 | 703 | pass |
|
703 | 704 | |
|
704 | 705 | @queue |
|
705 | 706 | def push_function(self, namespace): |
|
706 | 707 | pass |
|
707 | 708 | |
|
708 | 709 | @queue |
|
709 | 710 | def pull_function(self, keys): |
|
710 | 711 | pass |
|
711 | 712 | |
|
712 | 713 | def get_result(self, i=None): |
|
713 | 714 | if i is None: |
|
714 | 715 | i = max(self.history.keys()+[None]) |
|
715 | 716 | |
|
716 | 717 | cmd = self.history.get(i, None) |
|
717 | 718 | # Uncomment this line to disable chaching of results |
|
718 | 719 | #cmd = None |
|
719 | 720 | if cmd is None: |
|
720 | 721 | return self.submitCommand(Command('get_result', i)) |
|
721 | 722 | else: |
|
722 | 723 | return defer.succeed(cmd) |
|
723 | 724 | |
|
724 | 725 | def reset(self): |
|
725 | 726 | self.clear_queue() |
|
726 | 727 | self.history = {} # reset the cache - I am not sure we should do this |
|
727 | 728 | return self.submitCommand(Command('reset')) |
|
728 | 729 | |
|
729 | 730 | def kill(self): |
|
730 | 731 | self.clear_queue() |
|
731 | 732 | return self.submitCommand(Command('kill')) |
|
732 | 733 | |
|
733 | 734 | @queue |
|
734 | 735 | def keys(self): |
|
735 | 736 | pass |
|
736 | 737 | |
|
737 | 738 | #--------------------------------------------------------------------------- |
|
738 | 739 | # IEngineSerialized methods |
|
739 | 740 | #--------------------------------------------------------------------------- |
|
740 | 741 | |
|
741 | 742 | @queue |
|
742 | 743 | def push_serialized(self, namespace): |
|
743 | 744 | pass |
|
744 | 745 | |
|
745 | 746 | @queue |
|
746 | 747 | def pull_serialized(self, keys): |
|
747 | 748 | pass |
|
748 | 749 | |
|
749 | 750 | #--------------------------------------------------------------------------- |
|
750 | 751 | # IEngineProperties methods |
|
751 | 752 | #--------------------------------------------------------------------------- |
|
752 | 753 | |
|
753 | 754 | @queue |
|
754 | 755 | def set_properties(self, namespace): |
|
755 | 756 | pass |
|
756 | 757 | |
|
757 | 758 | @queue |
|
758 | 759 | def get_properties(self, keys=None): |
|
759 | 760 | pass |
|
760 | 761 | |
|
761 | 762 | @queue |
|
762 | 763 | def del_properties(self, keys): |
|
763 | 764 | pass |
|
764 | 765 | |
|
765 | 766 | @queue |
|
766 | 767 | def has_properties(self, keys): |
|
767 | 768 | pass |
|
768 | 769 | |
|
769 | 770 | @queue |
|
770 | 771 | def clear_properties(self): |
|
771 | 772 | pass |
|
772 | 773 | |
|
773 | 774 | #--------------------------------------------------------------------------- |
|
774 | 775 | # IQueuedEngine methods |
|
775 | 776 | #--------------------------------------------------------------------------- |
|
776 | 777 | |
|
777 | 778 | def clear_queue(self, msg=''): |
|
778 | 779 | """Clear the queue, but doesn't cancel the currently running commmand.""" |
|
779 | 780 | |
|
780 | 781 | for cmd in self.queued: |
|
781 | 782 | cmd.deferred.errback(failure.Failure(error.QueueCleared(msg))) |
|
782 | 783 | self.queued = [] |
|
783 | 784 | return defer.succeed(None) |
|
784 | 785 | |
|
785 | 786 | def queue_status(self): |
|
786 | 787 | if self.currentCommand is not None: |
|
787 | 788 | if self.currentCommand.finished: |
|
788 | 789 | pending = repr(None) |
|
789 | 790 | else: |
|
790 | 791 | pending = repr(self.currentCommand) |
|
791 | 792 | else: |
|
792 | 793 | pending = repr(None) |
|
793 | 794 | dikt = {'queue':map(repr,self.queued), 'pending':pending} |
|
794 | 795 | return defer.succeed(dikt) |
|
795 | 796 | |
|
796 | 797 | def register_failure_observer(self, obs): |
|
797 | 798 | self.failureObservers.append(obs) |
|
798 | 799 | |
|
799 | 800 | def unregister_failure_observer(self, obs): |
|
800 | 801 | self.failureObservers.remove(obs) |
|
801 | 802 | |
|
802 | 803 | |
|
803 | 804 | # Now register QueuedEngine as an adpater class that makes an IEngineBase into a |
|
804 | 805 | # IEngineQueued. |
|
805 | 806 | components.registerAdapter(QueuedEngine, IEngineBase, IEngineQueued) |
|
806 | 807 | |
|
807 | 808 | |
|
808 | 809 | class Command(object): |
|
809 | 810 | """A command object that encapslates queued commands. |
|
810 | 811 | |
|
811 | 812 | This class basically keeps track of a command that has been queued |
|
812 | 813 | in a QueuedEngine. It manages the deferreds and hold the method to be called |
|
813 | 814 | and the arguments to that method. |
|
814 | 815 | """ |
|
815 | 816 | |
|
816 | 817 | |
|
817 | 818 | def __init__(self, remoteMethod, *args, **kwargs): |
|
818 | 819 | """Build a new Command object.""" |
|
819 | 820 | |
|
820 | 821 | self.remoteMethod = remoteMethod |
|
821 | 822 | self.args = args |
|
822 | 823 | self.kwargs = kwargs |
|
823 | 824 | self.finished = False |
|
824 | 825 | |
|
825 | 826 | def setDeferred(self, d): |
|
826 | 827 | """Sets the deferred attribute of the Command.""" |
|
827 | 828 | |
|
828 | 829 | self.deferred = d |
|
829 | 830 | |
|
830 | 831 | def __repr__(self): |
|
831 | 832 | if not self.args: |
|
832 | 833 | args = '' |
|
833 | 834 | else: |
|
834 | 835 | args = str(self.args)[1:-2] #cut off (...,) |
|
835 | 836 | for k,v in self.kwargs.iteritems(): |
|
836 | 837 | if args: |
|
837 | 838 | args += ', ' |
|
838 | 839 | args += '%s=%r' %(k,v) |
|
839 | 840 | return "%s(%s)" %(self.remoteMethod, args) |
|
840 | 841 | |
|
841 | 842 | def handleResult(self, result): |
|
842 | 843 | """When the result is ready, relay it to self.deferred.""" |
|
843 | 844 | |
|
844 | 845 | self.deferred.callback(result) |
|
845 | 846 | |
|
846 | 847 | def handleError(self, reason): |
|
847 | 848 | """When an error has occured, relay it to self.deferred.""" |
|
848 | 849 | |
|
849 | 850 | self.deferred.errback(reason) |
|
850 | 851 | |
|
851 | 852 | class ThreadedEngineService(EngineService): |
|
852 | 853 | """An EngineService subclass that defers execute commands to a separate |
|
853 | 854 | thread. |
|
854 | 855 | |
|
855 | 856 | ThreadedEngineService uses twisted.internet.threads.deferToThread to |
|
856 | 857 | defer execute requests to a separate thread. GUI frontends may want to |
|
857 | 858 | use ThreadedEngineService as the engine in an |
|
858 | 859 | IPython.frontend.frontendbase.FrontEndBase subclass to prevent |
|
859 | 860 | block execution from blocking the GUI thread. |
|
860 | 861 | """ |
|
861 | 862 | |
|
862 | 863 | zi.implements(IEngineBase) |
|
863 | 864 | |
|
864 | 865 | def __init__(self, shellClass=Interpreter, mpi=None): |
|
865 | 866 | EngineService.__init__(self, shellClass, mpi) |
|
866 | 867 | |
|
868 | def wrapped_execute(self, msg, lines): | |
|
869 | """Wrap self.shell.execute to add extra information to tracebacks""" | |
|
870 | ||
|
871 | try: | |
|
872 | result = self.shell.execute(lines) | |
|
873 | except Exception,e: | |
|
874 | # This gives the following: | |
|
875 | # et=exception class | |
|
876 | # ev=exception class instance | |
|
877 | # tb=traceback object | |
|
878 | et,ev,tb = sys.exc_info() | |
|
879 | # This call adds attributes to the exception value | |
|
880 | et,ev,tb = self.shell.formatTraceback(et,ev,tb,msg) | |
|
881 | # Add another attribute | |
|
882 | ||
|
883 | # Create a new exception with the new attributes | |
|
884 | e = et(ev._ipython_traceback_text) | |
|
885 | e._ipython_engine_info = msg | |
|
886 | ||
|
887 | # Re-raise | |
|
888 | raise e | |
|
889 | ||
|
890 | return result | |
|
891 | ||
|
867 | 892 | |
|
868 | 893 | def execute(self, lines): |
|
869 | 894 | # Only import this if we are going to use this class |
|
870 | 895 | from twisted.internet import threads |
|
871 | 896 | |
|
872 | 897 | msg = {'engineid':self.id, |
|
873 | 898 | 'method':'execute', |
|
874 | 899 | 'args':[lines]} |
|
875 | 900 | |
|
876 |
d = threads.deferToThread(self. |
|
|
901 | d = threads.deferToThread(self.wrapped_execute, msg, lines) | |
|
877 | 902 | d.addCallback(self.addIDToResult) |
|
878 | 903 | return d |
General Comments 0
You need to be logged in to leave comments.
Login now