adium/adium

Merge.
adium-1.6
2013-09-10, Thijs Alkemade
7337a82bbce8
Merge.
--- a/.hgtags Tue Aug 13 00:20:49 2013 +0200
+++ b/.hgtags Tue Sep 10 14:19:15 2013 +0200
@@ -1,11 +1,8 @@
4151ac3a3b1f9847b8d958f1c7d57a345d442266 1.5
64b4f46272118a2d4d721123fbcb9f485913ff35 1.5.1
-8d4ed0d28f89a09c3deb3b4b1952e21cd4a5e563 1.5.2
-c436f536180fc12b1c2f70ae31e29a2b32b4529f 1.5.4
-5efcd11df6947cf82c763a8024229d5a326d9c56 adium-1.5.4
-0000000000000000000000000000000000000000 adium-1.5.4
+80cc358134ea0f681484626ec447d8bf3a27692f 1.5.2
+c9b03688370c2887d956130319c8da537354d373 1.5.3
+5efcd11df6947cf82c763a8024229d5a326d9c56 1.5.4
+fc2294917bf61da7cf8c1560db443fe29e2acfb8 1.5.5
90a171a6b0fc033ebeba46112223e20fcee0a004 1.5.6
-fc2294917bf61da7cf8c1560db443fe29e2acfb8 1.5.5
a40ffe152e617ebb603ce3c6677eef0ce00cb1ad 1.5.7
-a40ffe152e617ebb603ce3c6677eef0ce00cb1ad 1.5.7
-c72b164f75a705caf2b01853be031399d10c254e 1.5.7
--- a/AdiumHelp/pgs/Miscellaneous-AVSkypeSupport.html Tue Aug 13 00:20:49 2013 +0200
+++ b/AdiumHelp/pgs/Miscellaneous-AVSkypeSupport.html Tue Sep 10 14:19:15 2013 +0200
@@ -31,9 +31,10 @@
<h3>Skype support</h3>
</div>
<div class="taskboxtext">
- <p>Yes and no.</p>
- <p>Yes: The third-party <a href="http://xtras.adium.im/index.php?a=xtras&amp;xtra_id=5011">Skype Plugin</a> allows Adium to use the <a class="ext_link" href="https://developer.skype.com/Docs/ApiDoc">Skype API</a> to display your Skype contacts within Adium and let you chat with them via text-based instant messaging. By the nature of the Skype API, it requires that the Skype program be installed and running.</p>
- <p>No: It's not supported natively within Adium (i.e., without a plugin). The library that we use to support most protocols, <a href="https://trac.adium.im/wiki/LibPurple">libpurple</a>, doesn't support Skype at all right now, not even for chat. Until it does Adium most likely won't, either.</p>
+ <p>Adium does not natively (i.e., without a plugin) support Skype.</p>
+ <p>However, there is an unofficial third-party <a href="http://xtras.adium.im/index.php?a=xtras&amp;xtra_id=5011">Skype Plugin</a> which allows Adium to use the <a class="ext_link" href="https://developer.skype.com/Docs/ApiDoc">Skype API</a> to display your Skype contacts within Adium and let you chat with them via text-based instant messaging. By the nature of the Skype API, it requires that the Skype program be installed and running.</p>
+ <p><strong>Why does Adium not officially support Skype?</strong></p>
+ <p>The library that we use to support most protocols, <a href="https://trac.adium.im/wiki/LibPurple">libpurple</a>, doesn't support Skype at all right now, not even for chat. Until it does Adium most likely won't, either.</p>
<p>Keep in mind that Skype is a proprietary, closed protocol, so it must be reverse-engineered before third-party clients like Pidgin and Adium can use it. Protocols like OSCAR (which AIM and ICQ are based on) and MSN have already been reverse-engineered, but they're much older than Skype, and reverse-engineering is hard. It will take a long time and won't happen at all unless someone chooses to take interest in it and dedicate significant time to the effort.</p>
<p><strong>What about the Skype API?</strong></p>
<p>Using the Skype API, as the Skype Plugin does, means that Skype must be running. We don't accept piggybacking on the official client as a substitute.</p>
--- a/ChangeLogs/Changes.txt Tue Aug 13 00:20:49 2013 +0200
+++ b/ChangeLogs/Changes.txt Tue Sep 10 14:19:15 2013 +0200
@@ -67,7 +67,10 @@
* Changed the default tab switching shortcuts for new users to Control-Tab/Control-Shift-Tab, to match Safari. This was meant to be done for 1.5.4 but it did not work that time. (#16102)
* XMPP: refer to XMPP as "XMPP (Jabber)". Unfortunately, just "XMPP" still has some potential for confusion. (#16435)
* Fixed SIP accountnames to be case-sensitive. (Pete Woods) (#16237)
- * Fixed a bug that could cause Adium and other applications to hang and could lead to corruption of the Keychain when permanently trusting an untrusted SSL certificate. (#16365)
+ * Enabled a large number of TLS cipher suites, including ECC suites and suites new in TLS 1.2.
+ * Fix a problem causing Sametime login to fail. (Jonathan Rice) (#16345)
+ * Try to avoid Twitter's rate limiting causing Adium to go in a reconnection loop. (#16418)
+
Version 1.5.7 (7/2/2013)
* Updated Twitter support. (#16118)
--- a/Frameworks/Adium Framework/Source/AIAbstractAccount.h Tue Aug 13 00:20:49 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIAbstractAccount.h Tue Sep 10 14:19:15 2013 +0200
@@ -100,6 +100,7 @@
//FUS Disconnecting
- (void)autoReconnectAfterDelay:(NSTimeInterval)delay;
+- (double)minimumReconnectTime;
- (void)cancelAutoReconnect;
- (void)initFUSDisconnecting;
--- a/Frameworks/Adium Framework/Source/AIAbstractAccount.m Tue Aug 13 00:20:49 2013 +0200
+++ b/Frameworks/Adium Framework/Source/AIAbstractAccount.m Tue Sep 10 14:19:15 2013 +0200
@@ -1333,6 +1333,11 @@
return _contactProperties;
}
+- (double)minimumReconnectTime
+{
+ return RECONNECT_MIN_TIME;
+}
+
/*!
* @brief Did disconnect
*/
@@ -1389,8 +1394,8 @@
double reconnectDelay = pow(RECONNECT_BASE_TIME, (double)reconnectAttemptsPerformed);
// Make sure we're not going too fast
- if (reconnectDelay < RECONNECT_MIN_TIME)
- reconnectDelay = RECONNECT_MIN_TIME;
+ if (reconnectDelay < [self minimumReconnectTime])
+ reconnectDelay = [self minimumReconnectTime];
// Or too slow
else if (reconnectDelay > RECONNECT_MAX_TIME)
reconnectDelay = RECONNECT_MAX_TIME;
--- a/Plists/Info.plist Tue Aug 13 00:20:49 2013 +0200
+++ b/Plists/Info.plist Tue Sep 10 14:19:15 2013 +0200
@@ -493,7 +493,7 @@
<key>SUCheckAtStartup</key>
<true/>
<key>SUFeedURL</key>
- <string>http://www.adium.im/sparkle/update.php</string>
+ <string>https://www.adium.im/sparkle/update.php</string>
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
<key>SUScheduledCheckInterval</key>
--- a/Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c Tue Aug 13 00:20:49 2013 +0200
+++ b/Plugins/Purple Service/libpurple_extensions/ssl-cdsa.c Tue Sep 10 14:19:15 2013 +0200
@@ -217,6 +217,11 @@
/* SSL connected now */
gsc->connect_cb(gsc->connect_cb_data, gsc, cond);
}
+
+ SSLCipherSuite suite;
+ SSLGetNegotiatedCipher(cdsa_data->ssl_ctx, &suite);
+
+ purple_debug_info("cdsa", "Using cipher %x.\n", suite);
}
/*
@@ -325,6 +330,77 @@
return ortn;
}
+static gboolean
+ssl_cdsa_use_cipher(SSLCipherSuite suite) {
+ switch (suite) {
+ case SSL_RSA_WITH_3DES_EDE_CBC_MD5:
+ case SSL_RSA_WITH_RC2_CBC_MD5:
+ case SSL_RSA_WITH_3DES_EDE_CBC_SHA:
+ case SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA:
+ case SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA:
+ case SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA:
+ case SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA:
+ case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA:
+ case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA:
+ case TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA:
+ case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA:
+ case SSL_RSA_WITH_RC4_128_MD5:
+ case SSL_RSA_WITH_RC4_128_SHA:
+ case TLS_ECDH_ECDSA_WITH_RC4_128_SHA:
+ case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA:
+ case TLS_ECDH_RSA_WITH_RC4_128_SHA:
+ case TLS_ECDHE_RSA_WITH_RC4_128_SHA:
+ case TLS_RSA_WITH_AES_128_CBC_SHA:
+ case TLS_DH_DSS_WITH_AES_128_CBC_SHA:
+ case TLS_DH_RSA_WITH_AES_128_CBC_SHA:
+ case TLS_DHE_DSS_WITH_AES_128_CBC_SHA:
+ case TLS_DHE_RSA_WITH_AES_128_CBC_SHA:
+ case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA:
+ case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA:
+ case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA:
+ case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA:
+ case TLS_RSA_WITH_AES_256_CBC_SHA:
+ case TLS_DH_DSS_WITH_AES_256_CBC_SHA:
+ case TLS_DH_RSA_WITH_AES_256_CBC_SHA:
+ case TLS_DHE_DSS_WITH_AES_256_CBC_SHA:
+ case TLS_DHE_RSA_WITH_AES_256_CBC_SHA:
+ case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA:
+ case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA:
+ case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA:
+ case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA:
+ case TLS_RSA_WITH_AES_128_GCM_SHA256:
+ case TLS_RSA_WITH_AES_256_GCM_SHA384:
+ case TLS_DHE_RSA_WITH_AES_128_GCM_SHA256:
+ case TLS_DHE_RSA_WITH_AES_256_GCM_SHA384:
+ case TLS_DH_RSA_WITH_AES_128_GCM_SHA256:
+ case TLS_DH_RSA_WITH_AES_256_GCM_SHA384:
+ case TLS_DHE_DSS_WITH_AES_128_GCM_SHA256:
+ case TLS_DHE_DSS_WITH_AES_256_GCM_SHA384:
+ case TLS_DH_DSS_WITH_AES_128_GCM_SHA256:
+ case TLS_DH_DSS_WITH_AES_256_GCM_SHA384:
+ case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256:
+ case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384:
+ case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256:
+ case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384:
+ case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:
+ case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384:
+ case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256:
+ case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384:
+ case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
+ case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:
+ case TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256:
+ case TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384:
+ case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
+ case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
+ case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256:
+ case TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384:
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
+}
+
static void
ssl_cdsa_create_context(gpointer data) {
PurpleSslConnection *gsc = (PurpleSslConnection *)data;
@@ -372,9 +448,9 @@
/*
* Pass the connection information to the connection to be used by our callbacks
*/
- err = (OSStatus)SSLSetConnection(cdsa_data->ssl_ctx, (SSLConnectionRef)(intptr_t)gsc->fd);
+ err = SSLSetConnection(cdsa_data->ssl_ctx, (SSLConnectionRef)(intptr_t)gsc->fd);
if (err != noErr) {
- purple_debug_error("cdsa", "SSLSetConnection failed\n");
+ purple_debug_error("cdsa", "SSLSetConnection failed: %d\n", err);
if (gsc->error_cb != NULL)
gsc->error_cb(gsc, PURPLE_SSL_HANDSHAKE_FAILED,
gsc->connect_cb_data);
@@ -383,6 +459,55 @@
return;
}
+ size_t numCiphers = 0;
+
+ err = SSLGetNumberEnabledCiphers(cdsa_data->ssl_ctx, &numCiphers);
+
+ if (err != noErr) {
+ purple_debug_error("cdsa", "SSLGetNumberEnabledCiphers failed: %d\n", err);
+ if (gsc->error_cb != NULL)
+ gsc->error_cb(gsc, PURPLE_SSL_HANDSHAKE_FAILED,
+ gsc->connect_cb_data);
+
+ purple_ssl_close(gsc);
+ return;
+ }
+
+ SSLCipherSuite ciphers[numCiphers];
+
+ err = SSLGetEnabledCiphers(cdsa_data->ssl_ctx, ciphers, &numCiphers);
+ if (err != noErr) {
+ purple_debug_error("cdsa", "SSLGetSupportedCiphers failed: %d\n", err);
+ if (gsc->error_cb != NULL)
+ gsc->error_cb(gsc, PURPLE_SSL_HANDSHAKE_FAILED,
+ gsc->connect_cb_data);
+
+ purple_ssl_close(gsc);
+ return;
+ }
+
+ SSLCipherSuite enabledCiphers[numCiphers];
+ size_t numEnabledCiphers = 0;
+ int i;
+
+ for (i = 0; i < numCiphers; i++) {
+ if (ssl_cdsa_use_cipher(ciphers[i])) {
+ enabledCiphers[numEnabledCiphers] = ciphers[i];
+ numEnabledCiphers++;
+ }
+ }
+
+ err = SSLSetEnabledCiphers(cdsa_data->ssl_ctx, enabledCiphers, numEnabledCiphers);
+ if (err != noErr) {
+ purple_debug_error("cdsa", "SSLSetEnabledCiphers failed: %d\n", err);
+ if (gsc->error_cb != NULL)
+ gsc->error_cb(gsc, PURPLE_SSL_HANDSHAKE_FAILED,
+ gsc->connect_cb_data);
+
+ purple_ssl_close(gsc);
+ return;
+ }
+
if (purple_account_get_bool(account, PURPLE_SSL_CDSA_BUGGY_TLS_WORKAROUND, false)) {
purple_debug_info("cdsa", "Explicitly disabling TLS 1.1 and above to try and work around buggy TLS stacks\n");
@@ -396,7 +521,6 @@
return;
}
- protoErr = SSLSetProtocolVersionEnabled(cdsa_data->ssl_ctx, kSSLProtocol2, true);
protoErr = SSLSetProtocolVersionEnabled(cdsa_data->ssl_ctx, kSSLProtocol3, true);
protoErr = SSLSetProtocolVersionEnabled(cdsa_data->ssl_ctx, kTLSProtocol1, true);
}
--- a/Plugins/Twitter Plugin/AITwitterAccount.m Tue Aug 13 00:20:49 2013 +0200
+++ b/Plugins/Twitter Plugin/AITwitterAccount.m Tue Sep 10 14:19:15 2013 +0200
@@ -290,6 +290,15 @@
}
/*!
+ * @brief A disconnect on Twitter often means we broke some rate-limit, or the server is overloaded.
+ * Lets be polite and wait for 15 minutes.
+ */
+- (double)minimumReconnectTime
+{
+ return 15.0 * 60.0;
+}
+
+/*!
* @brief Session ended
*
* Remove all state information.
--- a/Resources/AboutBox.xib Tue Aug 13 00:20:49 2013 +0200
+++ b/Resources/AboutBox.xib Tue Sep 10 14:19:15 2013 +0200
@@ -2,27 +2,27 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
- <string key="IBDocument.SystemVersion">11C74</string>
- <string key="IBDocument.InterfaceBuilderVersion">1938</string>
- <string key="IBDocument.AppKitVersion">1138.23</string>
- <string key="IBDocument.HIToolboxVersion">567.00</string>
+ <string key="IBDocument.SystemVersion">12E55</string>
+ <string key="IBDocument.InterfaceBuilderVersion">3084</string>
+ <string key="IBDocument.AppKitVersion">1187.39</string>
+ <string key="IBDocument.HIToolboxVersion">626.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string key="NS.object.0">1938</string>
+ <string key="NS.object.0">3084</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
+ <string>NSButton</string>
+ <string>NSButtonCell</string>
+ <string>NSCustomObject</string>
+ <string>NSImageCell</string>
+ <string>NSImageView</string>
+ <string>NSScrollView</string>
<string>NSScroller</string>
- <string>NSButton</string>
- <string>NSScrollView</string>
+ <string>NSTextField</string>
<string>NSTextFieldCell</string>
- <string>NSImageView</string>
- <string>NSButtonCell</string>
- <string>NSImageCell</string>
- <string>NSCustomObject</string>
<string>NSTextView</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
- <string>NSTextField</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -72,10 +72,9 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="490328134"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="834129056">
- <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags">134217728</int>
<int key="NSCellFlags2">33587200</int>
<object class="NSCustomResource" key="NSContents">
<string key="NSClassName">NSImage</string>
@@ -86,19 +85,20 @@
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSButton" id="490328134">
<reference key="NSNextResponder" ref="756675379"/>
<int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrame">{{20, 89}, {192, 192}}</string>
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="801464012"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
+ <reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="865628747">
- <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport">
@@ -107,7 +107,7 @@
<int key="NSfFlags">2843</int>
</object>
<reference key="NSControlView" ref="490328134"/>
- <int key="NSButtonFlags">141836543</int>
+ <int key="NSButtonFlags">141836288</int>
<int key="NSButtonFlags2">6</int>
<object class="NSCustomResource" key="NSNormalImage">
<string key="NSClassName">NSImage</string>
@@ -122,6 +122,7 @@
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSScrollView" id="679278724">
<reference key="NSNextResponder" ref="756675379"/>
@@ -147,11 +148,10 @@
<string>NeXT Rich Text Format v1.0 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
</set>
- <string key="NSFrame">{{0, -7}, {315, 14}}</string>
+ <string key="NSFrameSize">{315, 155}</string>
<reference key="NSSuperview" ref="2963749"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="108681877"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<object class="NSTextContainer" key="NSTextContainer" id="63484467">
<object class="NSLayoutManager" key="NSLayoutManager">
<object class="NSTextStorage" key="NSTextStorage">
@@ -163,7 +163,7 @@
<array class="NSMutableArray" key="NSTextContainers">
<reference ref="63484467"/>
</array>
- <int key="NSLMFlags">6</int>
+ <int key="NSLMFlags">38</int>
<nil key="NSDelegate"/>
</object>
<reference key="NSTextView" ref="212523782"/>
@@ -216,7 +216,6 @@
</object>
<int key="NSTVFlags">6</int>
<string key="NSMaxSize">{353, 15000000}</string>
- <string key="NSMinize">{296, 7}</string>
<nil key="NSDelegate"/>
</object>
</array>
@@ -224,7 +223,6 @@
<reference key="NSSuperview" ref="679278724"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="212523782"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<reference key="NSDocView" ref="212523782"/>
<reference key="NSBGColor" ref="837372580"/>
<object class="NSCursor" key="NSCursor">
@@ -240,6 +238,7 @@
<reference key="NSSuperview" ref="679278724"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="281700486"/>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<reference key="NSTarget" ref="679278724"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.96803653240203857</double>
@@ -251,6 +250,7 @@
<reference key="NSSuperview" ref="679278724"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="2963749"/>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="679278724"/>
<string key="NSAction">_doScroller:</string>
@@ -262,11 +262,13 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1022085246"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<int key="NSsFlags">133120</int>
<reference key="NSVScroller" ref="1022085246"/>
<reference key="NSHScroller" ref="281700486"/>
<reference key="NSContentView" ref="2963749"/>
+ <double key="NSMinMagnification">0.25</double>
+ <double key="NSMaxMagnification">4</double>
+ <double key="NSMagnification">1</double>
</object>
<object class="NSImageView" id="108681877">
<reference key="NSNextResponder" ref="756675379"/>
@@ -283,10 +285,9 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="965994201"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="18140742">
- <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags">134217728</int>
<int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents">
<string key="NSClassName">NSImage</string>
@@ -297,6 +298,7 @@
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSImageView" id="965994201">
@@ -314,10 +316,9 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="811919972"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="1047543365">
- <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags">134217728</int>
<int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents">
<string key="NSClassName">NSImage</string>
@@ -328,6 +329,7 @@
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSTextField" id="839178874">
@@ -337,10 +339,9 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="666517339"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="503979177">
- <int key="NSCellFlags">-2079195584</int>
+ <int key="NSCellFlags">-2079326144</int>
<int key="NSCellFlags2">37749760</int>
<string key="NSContents">Version</string>
<object class="NSFont" key="NSSupport">
@@ -361,18 +362,19 @@
<bytes key="NSRGB">MC41MDE5NjA3ODQzIDAuNTAxOTYwNzg0MyAwLjUwMTk2MDc4NDMAA</bytes>
</object>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="666517339">
<reference key="NSNextResponder" ref="756675379"/>
<int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrame">{{232, 253}, {308, 15}}</string>
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="679278724"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
+ <reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="361376577">
- <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="76241347">
@@ -381,7 +383,7 @@
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="666517339"/>
- <int key="NSButtonFlags">-2042838785</int>
+ <int key="NSButtonFlags">-2042839040</int>
<int key="NSButtonFlags2">6</int>
<string key="NSAlternateContents"/>
<object class="NSMutableString" key="NSKeyEquivalent">
@@ -390,23 +392,24 @@
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="329998257">
<reference key="NSNextResponder" ref="756675379"/>
<int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrame">{{229, 8}, {154, 32}}</string>
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
- <reference key="NSNextKeyView" ref="609197835"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
+ <reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="929112214">
- <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Adium Homepage</string>
<reference key="NSSupport" ref="76241347"/>
<reference key="NSControlView" ref="329998257"/>
- <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">1</int>
<reference key="NSAlternateImage" ref="76241347"/>
<string key="NSAlternateContents"/>
@@ -416,23 +419,24 @@
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSButton" id="609197835">
<reference key="NSNextResponder" ref="756675379"/>
<int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews"/>
<string key="NSFrame">{{392, 8}, {154, 32}}</string>
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="716501959">
- <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">License</string>
<reference key="NSSupport" ref="76241347"/>
<reference key="NSControlView" ref="609197835"/>
- <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">1</int>
<object class="NSFont" key="NSAlternateImage">
<string key="NSName">LucidaGrande</string>
@@ -446,6 +450,7 @@
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSTextField" id="801464012">
<reference key="NSNextResponder" ref="756675379"/>
@@ -454,10 +459,9 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="839178874"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="918644134">
- <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags">68157504</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents">Adium</string>
<object class="NSFont" key="NSSupport">
@@ -475,6 +479,7 @@
<reference key="NSColor" ref="1014407744"/>
</object>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSTextField" id="811919972">
<reference key="NSNextResponder" ref="756675379"/>
@@ -483,12 +488,11 @@
<reference key="NSSuperview" ref="756675379"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="329998257"/>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="538272733">
- <int key="NSCellFlags">-2079195584</int>
+ <int key="NSCellFlags">-2079326144</int>
<int key="NSCellFlags2">37749760</int>
- <string key="NSContents">© 2001-2012 The Adium Team</string>
+ <string key="NSContents">© 2001-2013 The Adium Team</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
@@ -502,6 +506,7 @@
<bytes key="NSRGB">MC41MDE5NjA3ODQzIDAuNTAxOTYwNzg0MyAwLjUwMTk2MDc4NDMAA</bytes>
</object>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrameSize">{560, 320}</string>
@@ -509,7 +514,6 @@
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="436292106"/>
<bool key="NSViewIsLayerTreeHost">YES</bool>
- <int key="NSViewLayerContentsRedrawPolicy">2</int>
</object>
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
<string key="NSMinSize">{560, 342}</string>
@@ -567,9 +571,9 @@
</object>
<dictionary key="NSAttributes">
<object class="NSFont" key="NSFont">
- <string key="NSName">Monaco</string>
+ <string key="NSName">Menlo-Regular</string>
<double key="NSSize">10</double>
- <int key="NSfFlags">530</int>
+ <int key="NSfFlags">16</int>
</object>
<object class="NSMutableParagraphStyle" key="NSParagraphStyle">
<nil key="NSTabStops"/>
@@ -580,7 +584,7 @@
<array class="NSMutableArray" key="NSTextContainers">
<reference ref="628379985"/>
</array>
- <int key="NSLMFlags">6</int>
+ <int key="NSLMFlags">38</int>
<nil key="NSDelegate"/>
</object>
<reference key="NSTextView" ref="613970551"/>
@@ -608,7 +612,6 @@
</object>
<int key="NSTVFlags">6</int>
<string key="NSMaxSize">{512, 10000000}</string>
- <string key="NSMinize">{473, 374}</string>
<nil key="NSDelegate"/>
</object>
</array>
@@ -649,6 +652,7 @@
<string key="NSFrame">{{474, 1}, {15, 374}}</string>
<reference key="NSSuperview" ref="384769830"/>
<reference key="NSNextKeyView" ref="83966184"/>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<reference key="NSTarget" ref="384769830"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.077224858105182648</double>
@@ -659,6 +663,7 @@
<string key="NSFrame">{{-100, -100}, {87, 18}}</string>
<reference key="NSSuperview" ref="384769830"/>
<reference key="NSNextKeyView" ref="511449369"/>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="384769830"/>
<string key="NSAction">_doScroller:</string>
@@ -673,6 +678,9 @@
<reference key="NSVScroller" ref="957819625"/>
<reference key="NSHScroller" ref="25810865"/>
<reference key="NSContentView" ref="511449369"/>
+ <double key="NSMinMagnification">0.25</double>
+ <double key="NSMaxMagnification">4</double>
+ <double key="NSMagnification">1</double>
</object>
<object class="NSButton" id="83966184">
<reference key="NSNextResponder" ref="346846082"/>
@@ -681,12 +689,12 @@
<reference key="NSSuperview" ref="346846082"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="302040499">
- <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">OK</string>
<reference key="NSSupport" ref="76241347"/>
<reference key="NSControlView" ref="83966184"/>
- <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags">-2038284288</int>
<int key="NSButtonFlags2">1</int>
<reference key="NSAlternateImage" ref="76241347"/>
<string key="NSAlternateContents"/>
@@ -694,6 +702,7 @@
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
+ <bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
</array>
<string key="NSFrameSize">{530, 456}</string>
@@ -1320,6 +1329,24 @@
<string key="minorKey">./Classes/LNAboutBoxController.h</string>
</object>
</object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">selectServiceType:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">selectServiceType:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">selectServiceType:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">./Classes/NSObject.h</string>
+ </object>
+ </object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
@@ -1328,10 +1355,6 @@
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
- <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
- <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
- <real value="1060" key="NS.object.0"/>
- </object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="3200" key="NS.object.0"/>