diff options
author | Avery Pennarun <apenwarr@gmail.com> | 2011-01-22 16:49:19 -0800 |
---|---|---|
committer | Avery Pennarun <apenwarr@gmail.com> | 2011-01-22 16:49:21 -0800 |
commit | 668441adb68d015e6ad452651756b3bee7d44383 (patch) | |
tree | 3a582615d9aa056892d1fa2ad516e1bceccdfbf2 | |
parent | 415be935d4e2ba5cfbcf245a3e5d6ffcaeddbfd6 (diff) | |
parent | d4ccd30c24b717113f1e94c440c0b60cff14f63d (diff) |
Merge branch 'macapp'sshuttle-0.45
A cute little GUI for sshuttle on MacOS, written using pyobjc.
* macapp:
ui-macos: call the main binary MacOS/Sshuttle.
ui-macos/git-export.do: write the generated app to a branch.
ui-macos/default.app.do: get rid of some duplicated files.
ui-macos: Actually prompt for passwords instead of assuming a default.
ui-macos: Don't enable connecting for hosts with Custom but zero subnets.
ui-macos: Smoother log messages in the log window.
ui-macos: Notice when we've connected; make debug logs optional.
ui-macos: Much better connection status reporting.
ui-macos/run.do: a shortcut for running debug.app.
ui-macos/*: "a series of unfortunate events."
30 files changed, 3115 insertions, 0 deletions
@@ -226,6 +226,8 @@ def _main(listener, fw, ssh_cmd, remotename, python, seed_hosts, auto_nets, raise Fatal('expected server init string %r; got %r' % (expected, initstring)) debug1('connected.\n') + print 'Connected.' + sys.stdout.flush() if daemon: daemonize() log('daemonizing (%s).\n' % _pidname) diff --git a/ui-macos/.gitignore b/ui-macos/.gitignore new file mode 100644 index 0000000..1daa15a --- /dev/null +++ b/ui-macos/.gitignore @@ -0,0 +1,8 @@ +*.pyc +*~ +/*.nib +/debug.app +/sources.list +/Sshuttle VPN.app +/*.tar.gz +/*.zip diff --git a/ui-macos/Info.plist b/ui-macos/Info.plist new file mode 100644 index 0000000..b495531 --- /dev/null +++ b/ui-macos/Info.plist @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleDisplayName</key> + <string>Sshuttle VPN</string> + <key>CFBundleExecutable</key> + <string>Sshuttle</string> + <key>CFBundleIconFile</key> + <string>app.icns</string> + <key>CFBundleIdentifier</key> + <string>ca.apenwarr.Sshuttle</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>Sshuttle VPN</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>0.0.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>0.0.0</string> + <key>LSUIElement</key> + <string>1</string> + <key>LSHasLocalizedDisplayName</key> + <false/> + <key>NSAppleScriptEnabled</key> + <false/> + <key>NSHumanReadableCopyright</key> + <string>GNU LGPL Version 2</string> + <key>NSMainNibFile</key> + <string>MainMenu</string> + <key>NSPrincipalClass</key> + <string>NSApplication</string> +</dict> +</plist> diff --git a/ui-macos/MainMenu.xib b/ui-macos/MainMenu.xib new file mode 100644 index 0000000..5ba7fa5 --- /dev/null +++ b/ui-macos/MainMenu.xib @@ -0,0 +1,2340 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1060</int> + <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.InterfaceBuilderVersion">762</string> + <string key="IBDocument.AppKitVersion">1038.35</string> + <string key="IBDocument.HIToolboxVersion">461.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">762</string> + </object> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="233"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="791197609"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSCustomObject" id="560370216"> + <object class="NSMutableString" key="NSClassName"> + <characters key="NS.bytes">NSApplication</characters> + </object> + </object> + <object class="NSCustomObject" id="248128462"> + <string key="NSClassName">FirstResponder</string> + </object> + <object class="NSCustomObject" id="318179970"> + <string key="NSClassName">NSApplication</string> + </object> + <object class="NSWindowTemplate" id="411825121"> + <int key="NSWindowStyleMask">3</int> + <int key="NSWindowBacking">2</int> + <string key="NSWindowRect">{{157, 116}, {611, 369}}</string> + <int key="NSWTFlags">1886913536</int> + <string key="NSWindowTitle">Sshuttle VPN Preferences</string> + <string key="NSWindowClass">NSWindow</string> + <object class="NSMutableString" key="NSViewClass"> + <characters key="NS.bytes">View</characters> + </object> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMinSize">{213, 107}</string> + <object class="NSView" key="NSWindowView" id="174067038"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTabView" id="389252804"> + <reference key="NSNextResponder" ref="174067038"/> + <int key="NSvFlags">12</int> + <string key="NSFrame">{{-8, -10}, {627, 373}}</string> + <reference key="NSSuperview" ref="174067038"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <object class="NSMutableArray" key="NSTabViewItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTabViewItem" id="762265164"> + <string key="NSIdentifier">1</string> + <object class="NSView" key="NSView" id="60314308"> + <nil key="NSNextResponder"/> + <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="26015719"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{17, 17}, {25, 23}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="705866460"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents"/> + <object class="NSFont" key="NSSupport" id="696441443"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">13</double> + <int key="NSfFlags">1044</int> + </object> + <reference key="NSControlView" ref="26015719"/> + <int key="NSButtonFlags">-2033958657</int> + <int key="NSButtonFlags2">134</int> + <object class="NSCustomResource" key="NSNormalImage" id="771523361"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSAddTemplate</string> + </object> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + </object> + </object> + <object class="NSButton" id="244571541"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{41, 17}, {25, 23}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="375303129"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="244571541"/> + <int key="NSButtonFlags">-2033958657</int> + <int key="NSButtonFlags2">134</int> + <object class="NSCustomResource" key="NSNormalImage" id="58765799"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSRemoveTemplate</string> + </object> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + </object> + </object> + <object class="NSScrollView" id="776974664"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSClipView" id="8658574"> + <reference key="NSNextResponder" ref="776974664"/> + <int key="NSvFlags">2304</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableView" id="849333466"> + <reference key="NSNextResponder" ref="8658574"/> + <int key="NSvFlags">256</int> + <string key="NSFrameSize">{224, 282}</string> + <reference key="NSSuperview" ref="8658574"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="_NSCornerView" key="NSCornerView"> + <nil key="NSNextResponder"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{224, 0}, {16, 17}}</string> + </object> + <object class="NSMutableArray" key="NSTableColumns"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSTableColumn" id="401421410"> + <double key="NSWidth">22</double> + <double key="NSMinWidth">10</double> + <double key="NSMaxWidth">3.4028234663852886e+38</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Connect</string> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">3100</int> + </object> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerColor</string> + <object class="NSColor" key="NSColor" id="194624281"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="426726181"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">headerTextColor</string> + <object class="NSColor" key="NSColor" id="1024095115"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + </object> + </object> + <object class="NSButtonCell" key="NSDataCell" id="43761576"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Check</string> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="849333466"/> + <int key="NSButtonFlags">1215582719</int> + <int key="NSButtonFlags2">2</int> + <object class="NSCustomResource" key="NSNormalImage" id="581816235"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSSwitch</string> + </object> + <object class="NSButtonImageSource" key="NSAlternateImage" id="753862261"> + <string key="NSImageName">NSSwitch</string> + </object> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + <bool key="NSIsEditable">YES</bool> + <reference key="NSTableView" ref="849333466"/> + </object> + <object class="NSTableColumn" id="807059746"> + <double key="NSWidth">196</double> + <double key="NSMinWidth">40</double> + <double key="NSMaxWidth">1000</double> + <object class="NSTableHeaderCell" key="NSHeaderCell"> + <int key="NSCellFlags">75628096</int> + <int key="NSCellFlags2">2048</int> + <string key="NSContents">Server</string> + <reference key="NSSupport" ref="26"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes> + </object> + <reference key="NSTextColor" ref="426726181"/> + </object> + <object class="NSTextFieldCell" key="NSDataCell" id="265833240"> + <int key="NSCellFlags">67239488</int> + <int key="NSCellFlags2">272631808</int> + <string key="NSContents">Text</string> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="849333466"/> + <object class="NSColor" key="NSBackgroundColor" id="965844506"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlColor</string> + <object class="NSColor" key="NSColor" id="216642103"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + </object> + </object> + <object class="NSColor" key="NSTextColor" id="399750419"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlTextColor</string> + <reference key="NSColor" ref="1024095115"/> + </object> + </object> + <int key="NSResizingMask">1</int> + <bool key="NSIsResizeable">YES</bool> + <reference key="NSTableView" ref="849333466"/> + </object> + </object> + <double key="NSIntercellSpacingWidth">3</double> + <double key="NSIntercellSpacingHeight">2</double> + <object class="NSColor" key="NSBackgroundColor" id="208404999"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">controlBackgroundColor</string> + <reference key="NSColor" ref="216642103"/> + </object> + <object class="NSColor" key="NSGridColor" id="582942050"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">gridColor</string> + <object class="NSColor" key="NSColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MC41AA</bytes> + </object> + </object> + <double key="NSRowHeight">19</double> + <int key="NSTvFlags">48234496</int> + <reference key="NSDelegate"/> + <reference key="NSDataSource"/> + <int key="NSColumnAutoresizingStyle">0</int> + <int key="NSDraggingSourceMaskForLocal">15</int> + <int key="NSDraggingSourceMaskForNonLocal">0</int> + <bool key="NSAllowsTypeSelect">YES</bool> + <int key="NSTableViewDraggingDestinationStyle">0</int> + </object> + </object> + <string key="NSFrame">{{1, 1}, {223, 282}}</string> + <reference key="NSSuperview" ref="776974664"/> + <reference key="NSNextKeyView" ref="849333466"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSDocView" ref="849333466"/> + <reference key="NSBGColor" ref="208404999"/> + <int key="NScvFlags">4</int> + </object> + <object class="NSScroller" id="368900999"> + <reference key="NSNextResponder" ref="776974664"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{143, 1}, {15, 274}}</string> + <reference key="NSSuperview" ref="776974664"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <reference key="NSTarget" ref="776974664"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.99636363636363634</double> + </object> + <object class="NSScroller" id="628044564"> + <reference key="NSNextResponder" ref="776974664"/> + <int key="NSvFlags">-2147483392</int> + <string key="NSFrame">{{-100, -100}, {157, 15}}</string> + <reference key="NSSuperview" ref="776974664"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <int key="NSsFlags">1</int> + <reference key="NSTarget" ref="776974664"/> + <string key="NSAction">_doScroller:</string> + <double key="NSPercent">0.91812865497076024</double> + </object> + </object> + <string key="NSFrame">{{17, 40}, {225, 284}}</string> + <reference key="NSSuperview" ref="60314308"/> + <reference key="NSNextKeyView" ref="8658574"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <int key="NSsFlags">658</int> + <reference key="NSVScroller" ref="368900999"/> + <reference key="NSHScroller" ref="628044564"/> + <reference key="NSContentView" ref="8658574"/> + <bytes key="NSScrollAmts">QSAAAEEgAABBqAAAQagAAA</bytes> + </object> + <object class="NSButton" id="538356055"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{296, 254}, {273, 18}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="1001873806"> + <int key="NSCellFlags">-2080244224</int> + <int key="NSCellFlags2">0</int> + <string key="NSContents">Automatically detect remote hostnames</string> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="538356055"/> + <int key="NSButtonFlags">1211912703</int> + <int key="NSButtonFlags2">2</int> + <reference key="NSNormalImage" ref="581816235"/> + <reference key="NSAlternateImage" ref="753862261"/> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + <object class="NSTextField" id="889877302"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{341, 292}, {249, 22}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="950437001"> + <int key="NSCellFlags">-1804468671</int> + <int key="NSCellFlags2">272630848</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="889877302"/> + <bool key="NSDrawsBackground">YES</bool> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <reference key="NSColor" ref="194624281"/> + </object> + <object class="NSColor" key="NSTextColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textColor</string> + <reference key="NSColor" ref="1024095115"/> + </object> + </object> + </object> + <object class="NSPopUpButton" id="801412726"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{273, 185}, {320, 26}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSPopUpButtonCell" key="NSCell" id="616730825"> + <int key="NSCellFlags">-2076049856</int> + <int key="NSCellFlags2">2048</int> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="801412726"/> + <int key="NSButtonFlags">112869631</int> + <int key="NSButtonFlags2">129</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">400</int> + <int key="NSPeriodicInterval">75</int> + <object class="NSMenuItem" key="NSMenuItem" id="934801323"> + <reference key="NSMenu" ref="77791491"/> + <string key="NSTitle">Choose one</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <int key="NSState">1</int> + <object class="NSCustomResource" key="NSOnImage" id="615977438"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuCheckmark</string> + </object> + <object class="NSCustomResource" key="NSMixedImage" id="445532764"> + <string key="NSClassName">NSImage</string> + <string key="NSResourceName">NSMenuMixedState</string> + </object> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="616730825"/> + </object> + <bool key="NSMenuItemRespectAlignment">YES</bool> + <object class="NSMenu" key="NSMenu" id="77791491"> + <string key="NSTitle">OtherViews</string> + <object class="NSMutableArray" key="NSMenuItems"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="934801323"/> + <object class="NSMenuItem" id="913656186"> + <reference key="NSMenu" ref="77791491"/> + <string key="NSTitle">Item 2</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="615977438"/> + <reference key="NSMixedImage" ref="445532764"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="616730825"/> + </object> + <object class="NSMenuItem" id="818007285"> + <reference key="NSMenu" ref="77791491"/> + <string key="NSTitle">Item 3</string> + <string key="NSKeyEquiv"/> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="615977438"/> + <reference key="NSMixedImage" ref="445532764"/> + <string key="NSAction">_popUpItemAction:</string> + <reference key="NSTarget" ref="616730825"/> + </object> + </object> + <reference key="NSMenuFont" ref="696441443"/> + </object> + <int key="NSPreferredEdge">1</int> + <bool key="NSUsesItemFromMenu">YES</bool> + <bool key="NSAltersState">YES</bool> + <int key="NSArrowPosition">2</int> + </object> + </object> + <object class="NSTextField" id="753545988"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{261, 294}, {75, 17}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="991446677"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents">SSH Server:</string> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="753545988"/> + <reference key="NSBackgroundColor" ref="965844506"/> + <reference key="NSTextColor" ref="399750419"/> + </object> + </object> + <object class="NSTextField" id="840157770"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{261, 217}, {105, 17}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="360994287"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272630784</int> + <string key="NSContents">Network routes:</string> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="840157770"/> + <reference key="NSBackgroundColor" ref="965844506"/> + <reference key="NSTextColor" ref="399750419"/> + </object> + </object> + <object class="NSButton" id="962924480"> + <reference key="NSNextResponder" ref="60314308"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{276, 40}, {25, 23}}</string> + <reference key="NSSuperview" ref="60314308"/> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="105097654"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134217728</int> + <string key="NSContents"/> + <reference key="NSSupport" ref="696441443"/> + <reference key="NSControlView" ref="962924480"/> + <i |