]> granicus.if.org Git - transmission/commitdiff
ability to auto-update the blocklist automatically weekly (mac)
authorMitchell Livingston <livings124@transmissionbt.com>
Mon, 1 Sep 2008 15:46:00 +0000 (15:46 +0000)
committerMitchell Livingston <livings124@transmissionbt.com>
Mon, 1 Sep 2008 15:46:00 +0000 (15:46 +0000)
NEWS
Transmission.xcodeproj/project.pbxproj
macosx/BlocklistDownloader.m
macosx/BlocklistScheduler.h [new file with mode: 0644]
macosx/BlocklistScheduler.m [new file with mode: 0644]
macosx/Controller.m
macosx/Defaults.plist
macosx/Makefile.am
macosx/PrefsController.h
macosx/PrefsController.m
macosx/en.lproj/PrefsWindow.xib

diff --git a/NEWS b/NEWS
index ce47f0800b09af48d61b360d291f8cfae20501bf..9b34bd66cc6f9a5303e4b7d858fcb039a88988ae 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ http://trac.transmissionbt.com/query?group=component&milestone=1.40
 - All Platforms
    + Lazy bitfields
 - Mac
+   + Option to automatically update the blocklist weekly
    + Sparkle updated to 1.5
 
 1.33 (2008/08/30)
index b8700fe6cdef6ea9e4ba61185ec9a60216239f37..4516e3e56d26e059dd52b5408f84041f28dde2cc 100644 (file)
@@ -84,6 +84,7 @@
                A22180980D148A71007D09ED /* GroupsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A22180970D148A71007D09ED /* GroupsWindowController.m */; };
                A22180B60D148F0F007D09ED /* GroupsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A22180B50D148F0F007D09ED /* GroupsWindow.xib */; };
                A222E9870E6B21D9009FB003 /* BlocklistDownloaderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A222E9860E6B21D9009FB003 /* BlocklistDownloaderViewController.m */; };
+               A222EA7B0E6C32C4009FB003 /* BlocklistScheduler.m in Sources */ = {isa = PBXBuildFile; fileRef = A222EA7A0E6C32C4009FB003 /* BlocklistScheduler.m */; };
                A224D2640DAAC55F000954EA /* Peers.png in Resources */ = {isa = PBXBuildFile; fileRef = A224D2630DAAC55F000954EA /* Peers.png */; };
                A2265F420B5EF5F40093DDA5 /* FileNameCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2265F400B5EF5F40093DDA5 /* FileNameCell.m */; };
                A226FDAC0D0CDF20005A7F71 /* libnatpmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C7A118D0D0B2EB800B5701F /* libnatpmp.a */; };
                A22180B50D148F0F007D09ED /* GroupsWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = GroupsWindow.xib; path = macosx/GroupsWindow.xib; sourceTree = "<group>"; };
                A222E9850E6B21D9009FB003 /* BlocklistDownloaderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BlocklistDownloaderViewController.h; path = macosx/BlocklistDownloaderViewController.h; sourceTree = "<group>"; };
                A222E9860E6B21D9009FB003 /* BlocklistDownloaderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BlocklistDownloaderViewController.m; path = macosx/BlocklistDownloaderViewController.m; sourceTree = "<group>"; };
+               A222EA790E6C32C4009FB003 /* BlocklistScheduler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BlocklistScheduler.h; path = macosx/BlocklistScheduler.h; sourceTree = "<group>"; };
+               A222EA7A0E6C32C4009FB003 /* BlocklistScheduler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BlocklistScheduler.m; path = macosx/BlocklistScheduler.m; sourceTree = "<group>"; };
                A223AA7D0D220CEB00840069 /* nl */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = nl; path = macosx/nl.lproj/Creator.xib; sourceTree = "<group>"; };
                A223AA7E0D220CEB00840069 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = macosx/nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                A223AA7F0D220CEB00840069 /* nl */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = nl; path = macosx/nl.lproj/InfoWindow.xib; sourceTree = "<group>"; };
                                A2D307A30D9EC6870051FD27 /* BlocklistDownloader.m */,
                                A222E9850E6B21D9009FB003 /* BlocklistDownloaderViewController.h */,
                                A222E9860E6B21D9009FB003 /* BlocklistDownloaderViewController.m */,
+                               A222EA790E6C32C4009FB003 /* BlocklistScheduler.h */,
+                               A222EA7A0E6C32C4009FB003 /* BlocklistScheduler.m */,
                                A2DF567C0DE323D3000795D5 /* QuickLook.h */,
                                A2DF57720DE46A6A000795D5 /* QuickLookController.h */,
                                A2DF57730DE46A6A000795D5 /* QuickLookController.m */,
                                A28F4F770E085BDC003A3882 /* ColorTextField.m in Sources */,
                                A27F0F330E19AD9800B2DB97 /* TorrentGroup.m in Sources */,
                                A222E9870E6B21D9009FB003 /* BlocklistDownloaderViewController.m in Sources */,
+                               A222EA7B0E6C32C4009FB003 /* BlocklistScheduler.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
index a562a8151d84b5018a36cb4e9443a1d312892556..7f9f0c89f4346207ffb8461843eeb9b7e2748edd 100644 (file)
@@ -24,6 +24,7 @@
 
 #import "BlocklistDownloader.h"
 #import "BlocklistDownloaderViewController.h"
+#import "BlocklistScheduler.h"
 #import "PrefsController.h"
 #import "NSApplicationAdditions.h"
 
@@ -88,6 +89,8 @@ BlocklistDownloader * fDownloader = nil;
     
     [fDownload cancel];
     
+    [[BlocklistScheduler scheduler] updateSchedule];
+    
     fDownloader = nil;
     [self release];
 }
@@ -112,6 +115,8 @@ BlocklistDownloader * fDownloader = nil;
 {
     [fViewController setFailed: [error localizedDescription]];
     
+    [[BlocklistScheduler scheduler] updateSchedule];
+    
     fDownloader = nil;
     [self release];
 }
@@ -134,6 +139,8 @@ BlocklistDownloader * fDownloader = nil;
 {
     fState = BLOCKLIST_DL_START;
     
+    [[BlocklistScheduler scheduler] cancelSchedule];
+    
     NSURLRequest * request = [NSURLRequest requestWithURL: [NSURL URLWithString: LIST_URL]];
     
     fDownload = [[NSURLDownload alloc] initWithRequest: request delegate: self];
@@ -157,7 +164,9 @@ BlocklistDownloader * fDownloader = nil;
     
     [fViewController setFinished];
     
+    //update last updated date for schedule
     [[NSUserDefaults standardUserDefaults] setObject: [NSDate date] forKey: @"BlocklistLastUpdate"];
+    [[BlocklistScheduler scheduler] updateSchedule];
     
     [[NSNotificationCenter defaultCenter] postNotificationName: @"BlocklistUpdated" object: nil];
     
diff --git a/macosx/BlocklistScheduler.h b/macosx/BlocklistScheduler.h
new file mode 100644 (file)
index 0000000..7058e06
--- /dev/null
@@ -0,0 +1,37 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Copyright (c) 2008 Transmission authors and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+
+@interface BlocklistScheduler : NSObject
+{
+    NSTimer * fTimer;
+}
+
++ (BlocklistScheduler *) scheduler;
+
+- (void) updateSchedule;
+- (void) cancelSchedule;
+
+@end
diff --git a/macosx/BlocklistScheduler.m b/macosx/BlocklistScheduler.m
new file mode 100644 (file)
index 0000000..64f2974
--- /dev/null
@@ -0,0 +1,90 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Copyright (c) 2008 Transmission authors and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *****************************************************************************/
+
+#import "BlocklistScheduler.h"
+#import "BlocklistDownloader.h"
+
+//one minute delay before running after option is changed
+#define SMALL_DELAY 60
+
+//update one week after previous update
+#define FULL_WAIT (60 * 60 * 24 * 7)
+
+@interface BlocklistScheduler (Private)
+
+- (void) runUpdater;
+
+@end
+
+@implementation BlocklistScheduler
+
+BlocklistScheduler * fScheduler = nil;
++ (BlocklistScheduler *) scheduler
+{
+    if (!fScheduler)
+        fScheduler = [[BlocklistScheduler alloc] init];
+    
+    return fScheduler;
+}
+
+- (void) updateSchedule
+{
+    [self cancelSchedule];
+    
+    if (![[NSUserDefaults standardUserDefaults] boolForKey: @"Blocklist"]
+        || ![[NSUserDefaults standardUserDefaults] boolForKey: @"BlocklistAutoUpdate"])
+        return;
+    
+    NSDate * lastUpdateDate = [[NSUserDefaults standardUserDefaults] objectForKey: @"BlocklistLastUpdate"];
+    if (lastUpdateDate)
+        lastUpdateDate = [lastUpdateDate addTimeInterval: FULL_WAIT];
+    NSDate * closeDate = [NSDate dateWithTimeIntervalSinceNow: SMALL_DELAY];
+    
+    NSDate * useDate = lastUpdateDate ? [lastUpdateDate laterDate: closeDate] : closeDate;
+    
+    fTimer = [[NSTimer alloc] initWithFireDate: useDate interval: 0 target: self selector: @selector(runUpdater)
+                userInfo: nil repeats: NO];
+    
+    [[NSRunLoop mainRunLoop] addTimer: fTimer forMode: NSDefaultRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode];
+}
+
+- (void) cancelSchedule
+{
+    [fTimer invalidate];
+    fTimer = nil;
+}
+
+@end
+
+@implementation BlocklistScheduler (Private)
+
+- (void) runUpdater
+{
+    fTimer = nil;
+    [BlocklistDownloader downloader];
+}
+
+@end
index c82183001c10d1415f75814986b4b468b3b17536..d719ba06e6ff159248c332feca34e5aa15e973c9 100644 (file)
@@ -488,8 +488,8 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
     [self updateUI];
     fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_UI_SECONDS target: self
                 selector: @selector(updateUI) userInfo: nil repeats: YES];
-    [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode];
-    [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode];
     
     [self applyFilter: nil];
     
@@ -2435,9 +2435,9 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
     fSpeedLimitTimer = [[NSTimer alloc] initWithFireDate: dateToUse interval: 0 target: self selector: @selector(autoSpeedLimit:)
                         userInfo: [NSNumber numberWithBool: nextIsLimit] repeats: NO];
     
-    [[NSRunLoop currentRunLoop] addTimer: fSpeedLimitTimer forMode: NSDefaultRunLoopMode];
-    [[NSRunLoop currentRunLoop] addTimer: fSpeedLimitTimer forMode: NSModalPanelRunLoopMode];
-    [[NSRunLoop currentRunLoop] addTimer: fSpeedLimitTimer forMode: NSEventTrackingRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fSpeedLimitTimer forMode: NSDefaultRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fSpeedLimitTimer forMode: NSModalPanelRunLoopMode];
+    [[NSRunLoop mainRunLoop] addTimer: fSpeedLimitTimer forMode: NSEventTrackingRunLoopMode];
     [fSpeedLimitTimer release];
 }
 
index b76fea85f3770092d9211845e4455a90ae605736..7b2e9a77fa05181edad53dce37c7908a9c643270 100644 (file)
@@ -16,6 +16,8 @@
        <integer>51413</integer>
        <key>Blocklist</key>
        <false/>
+       <key>BlocklistAutoUpdate</key>
+       <false/>
        <key>CheckDownload</key>
        <false/>
        <key>CheckQuit</key>
index 46b687f7445bc4b60f1f51ff4aaadb3341256769..c2e67b2f60939a1649d19b87772c564cae245ff4 100644 (file)
@@ -36,6 +36,8 @@ EXTRA_DIST = \
     BlocklistDownloader.m \
     BlocklistDownloaderViewController.h \
     BlocklistDownloaderViewController.m \
+    BlocklistScheduler.h \
+    BlocklistScheduler.m \
     ButtonToolbarItem.h \
     ButtonToolbarItem.m \
     ColorTextField.h \
index 01cf74b2dba7129368b70feddbc788d4dcdc9e18..472f787a547bf4c90d2698767ead27b2e043dab4 100644 (file)
@@ -82,6 +82,7 @@
 
 - (void) setBlocklistEnabled: (id) sender;
 - (void) updateBlocklist: (id) sender;
+- (void) setBlocklistAutoUpdate: (id) sender;
 - (void) updateBlocklistFields;
 
 - (void) setBadge: (id) sender;
index cbce069ee78f726328ad258b34d2ab8acebda602..507fe535ac71ba2b0b20a337331cdd13ed2a8fd4 100644 (file)
@@ -24,6 +24,7 @@
 
 #import "PrefsController.h"
 #import "BlocklistDownloaderViewController.h"
+#import "BlocklistScheduler.h"
 #import "NSApplicationAdditions.h"
 #import "NSStringAdditions.h"
 #import "UKKQueue.h"
@@ -114,6 +115,9 @@ tr_handle * fHandle;
         if ([fDefaults boolForKey: @"AutoImport"] && (autoPath = [fDefaults stringForKey: @"AutoImportDirectory"]))
             [[UKKQueue sharedFileWatcher] addPath: [autoPath stringByExpandingTildeInPath]];
         
+        //set blocklist scheduler
+        [[BlocklistScheduler scheduler] updateSchedule];
+        
         //set encryption
         [self setEncryptionMode: nil];
         
@@ -451,6 +455,8 @@ tr_handle * fHandle;
     BOOL enable = [sender state] == NSOnState;
     [fDefaults setBool: enable forKey: @"Blocklist"];
     tr_blocklistSetEnabled(fHandle, enable);
+    
+    [[BlocklistScheduler scheduler] updateSchedule];
 }
 
 - (void) updateBlocklist: (id) sender
@@ -458,6 +464,11 @@ tr_handle * fHandle;
     [BlocklistDownloaderViewController downloadWithPrefsController: self];
 }
 
+- (void) setBlocklistAutoUpdate: (id) sender
+{
+    [[BlocklistScheduler scheduler] updateSchedule];
+}
+
 - (void) updateBlocklistFields
 {
     BOOL exists = tr_blocklistExists(fHandle);
index 19e0f68b6b1baa737a5ef4f8184d30207e306e0f..0bd8c46af9d4e7eedb8883122b051d1f385d4cc4 100644 (file)
@@ -2123,7 +2123,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSButton" id="130041388">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{151, 114}, {184, 18}}</string>
+                                               <string key="NSFrame">{{151, 134}, {184, 18}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="261591174">
@@ -2145,7 +2145,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="531465471">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{54, 135}, {75, 17}}</string>
+                                               <string key="NSFrame">{{54, 155}, {75, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="695755489">
@@ -2161,7 +2161,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSButton" id="142580376">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{132, 134}, {165, 18}}</string>
+                                               <string key="NSFrame">{{132, 154}, {165, 18}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="478851799">
@@ -2183,7 +2183,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="1068385234">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{42, 238}, {87, 17}}</string>
+                                               <string key="NSFrame">{{42, 258}, {87, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="759095525">
@@ -2199,7 +2199,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="276894958">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{131, 238}, {196, 17}}</string>
+                                               <string key="NSFrame">{{131, 258}, {196, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="195557530">
@@ -2215,7 +2215,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="391991918">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{332, 236}, {50, 22}}</string>
+                                               <string key="NSFrame">{{332, 256}, {50, 22}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="425686317">
@@ -2281,7 +2281,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="171936512">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{387, 238}, {39, 17}}</string>
+                                               <string key="NSFrame">{{387, 258}, {39, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="120526424">
@@ -2297,7 +2297,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="695790301">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{454, 212}, {39, 17}}</string>
+                                               <string key="NSFrame">{{454, 232}, {39, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="454043587">
@@ -2313,7 +2313,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="439211863">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{399, 210}, {50, 22}}</string>
+                                               <string key="NSFrame">{{399, 230}, {50, 22}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="963807331">
@@ -2379,7 +2379,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="210126275">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{131, 212}, {263, 17}}</string>
+                                               <string key="NSFrame">{{131, 232}, {263, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="250566813">
@@ -2395,7 +2395,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSButton" id="895326079">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{132, 170}, {280, 18}}</string>
+                                               <string key="NSFrame">{{132, 190}, {280, 18}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="985508058">
@@ -2417,7 +2417,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="593278680">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{131, 192}, {259, 14}}</string>
+                                               <string key="NSFrame">{{131, 212}, {259, 14}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="32643885">
@@ -2433,7 +2433,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="484538294">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{131, 34}, {362, 14}}</string>
+                                               <string key="NSFrame">{{131, 54}, {362, 14}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="520011795">
@@ -2452,7 +2452,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSButton" id="902371491">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{132, 78}, {289, 18}}</string>
+                                               <string key="NSFrame">{{132, 98}, {289, 18}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="245208224">
@@ -2474,7 +2474,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="844132556">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{68, 79}, {61, 17}}</string>
+                                               <string key="NSFrame">{{68, 99}, {61, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="188659193">
@@ -2490,7 +2490,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSTextField" id="326257173">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{212, 56}, {306, 17}}</string>
+                                               <string key="NSFrame">{{212, 76}, {306, 17}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="234963311">
@@ -2506,7 +2506,7 @@ AAABAAAAAQ</bytes>
                                        <object class="NSButton" id="826556979">
                                                <reference key="NSNextResponder" ref="538122014"/>
                                                <int key="NSvFlags">256</int>
-                                               <string key="NSFrame">{{128, 46}, {85, 32}}</string>
+                                               <string key="NSFrame">{{128, 66}, {85, 32}}</string>
                                                <reference key="NSSuperview" ref="538122014"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="650733440">
@@ -2546,14 +2546,36 @@ AAABAAAAAQ</bytes>
                                                        <int key="NSPeriodicInterval">25</int>
                                                </object>
                                        </object>
+                                       <object class="NSButton" id="1064247210">
+                                               <reference key="NSNextResponder" ref="538122014"/>
+                                               <int key="NSvFlags">256</int>
+                                               <string key="NSFrame">{{151, 32}, {203, 18}}</string>
+                                               <reference key="NSSuperview" ref="538122014"/>
+                                               <bool key="NSEnabled">YES</bool>
+                                               <object class="NSButtonCell" key="NSCell" id="46409197">
+                                                       <int key="NSCellFlags">67239424</int>
+                                                       <int key="NSCellFlags2">0</int>
+                                                       <string key="NSContents">Automatically update weekly</string>
+                                                       <reference key="NSSupport" ref="86725571"/>
+                                                       <reference key="NSControlView" ref="1064247210"/>
+                                                       <int key="NSButtonFlags">1211912703</int>
+                                                       <int key="NSButtonFlags2">130</int>
+                                                       <reference key="NSNormalImage" ref="1001726176"/>
+                                                       <reference key="NSAlternateImage" ref="764913887"/>
+                                                       <string key="NSAlternateContents"/>
+                                                       <string key="NSKeyEquivalent"/>
+                                                       <int key="NSPeriodicDelay">200</int>
+                                                       <int key="NSPeriodicInterval">25</int>
+                                               </object>
+                                       </object>
                                </object>
-                               <string key="NSFrameSize">{535, 278}</string>
+                               <string key="NSFrameSize">{535, 298}</string>
                                <reference key="NSSuperview"/>
                                <string key="NSClassName">NSView</string>
                                <string key="NSExtension">NSResponder</string>
                        </object>
                        <object class="NSCustomView" id="204700639">
-                               <reference key="NSNextResponder"/>
+                               <nil key="NSNextResponder"/>
                                <int key="NSvFlags">256</int>
                                <object class="NSMutableArray" key="NSSubviews">
                                        <bool key="EncodedWithXMLCoder">YES</bool>
@@ -2562,7 +2584,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{497, 12}, {21, 23}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="893670578">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2586,7 +2607,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{42, 34}, {90, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="514153614">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2603,7 +2623,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{135, 33}, {357, 18}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="127446013">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2627,7 +2646,6 @@ AAABAAAAAQ</bytes>
                                                <object class="NSPSMatrix" key="NSDrawMatrix"/>
                                                <string key="NSFrame">{{319, 279}, {16, 16}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <int key="NSpiFlags">28938</int>
                                                <double key="NSMaxValue">1.000000e+02</double>
                                        </object>
@@ -2648,7 +2666,6 @@ AAABAAAAAQ</bytes>
                                                </object>
                                                <string key="NSFrame">{{320, 280}, {14, 14}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSImageCell" key="NSCell" id="270102740">
                                                        <int key="NSCellFlags">130560</int>
@@ -2669,7 +2686,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{134, 279}, {124, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="941628063">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2686,7 +2702,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{135, 255}, {171, 18}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="633401664">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2709,7 +2724,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{135, 200}, {271, 18}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="20752657">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2732,7 +2746,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{263, 277}, {50, 22}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="453443006">
                                                        <int key="NSCellFlags">-1804468671</int>
@@ -2799,7 +2812,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{205, 145}, {50, 22}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="1001442911">
                                                        <int key="NSCellFlags">-1804468671</int>
@@ -2866,7 +2878,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{134, 239}, {238, 14}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="67017561">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2883,7 +2894,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{339, 279}, {179, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="931894024">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2900,7 +2910,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{71, 280}, {61, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="475516915">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2917,7 +2926,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{88, 201}, {44, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="582281809">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2934,7 +2942,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{205, 171}, {259, 22}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="1051431853">
                                                        <int key="NSCellFlags">-1804468671</int>
@@ -2952,7 +2959,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{176, 73}, {68, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="954130018">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2969,7 +2975,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{173, 99}, {71, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="108838744">
                                                        <int key="NSCellFlags">67239424</int>
@@ -2986,7 +2991,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{153, 173}, {47, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="677732006">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3003,7 +3007,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{166, 147}, {34, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="63707525">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3020,7 +3023,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{266, 147}, {60, 17}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="502542662">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3037,7 +3039,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{154, 123}, {187, 18}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSButtonCell" key="NSCell" id="296153825">
                                                        <int key="NSCellFlags">67239424</int>
@@ -3060,7 +3061,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{249, 71}, {184, 22}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSSecureTextFieldCell" key="NSCell" id="669471795">
                                                        <int key="NSCellFlags">343014976</int>
@@ -3082,7 +3082,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{249, 97}, {184, 22}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSTextFieldCell" key="NSCell" id="731460553">
                                                        <int key="NSCellFlags">-1804468671</int>
@@ -3100,7 +3099,6 @@ AAABAAAAAQ</bytes>
                                                <int key="NSvFlags">256</int>
                                                <string key="NSFrame">{{328, 141}, {99, 26}}</string>
                                                <reference key="NSSuperview" ref="204700639"/>
-                                               <reference key="NSWindow"/>
                                                <bool key="NSEnabled">YES</bool>
                                                <object class="NSPopUpButtonCell" key="NSCell" id="326179066">
                                                        <int key="NSCellFlags">-2076049856</int>
@@ -3163,8 +3161,6 @@ AAABAAAAAQ</bytes>
                                        </object>
                                </object>
                                <string key="NSFrameSize">{535, 319}</string>
-                               <reference key="NSSuperview"/>
-                               <reference key="NSWindow"/>
                                <string key="NSClassName">NSView</string>
                                <string key="NSExtension">NSResponder</string>
                        </object>
@@ -3537,6 +3533,7 @@ AAABAAAAAQ</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 17}, {331, 95}}</string>
                                                                <reference key="NSSuperview" ref="122119447"/>
+                                                               <reference key="NSNextKeyView" ref="173651346"/>
                                                                <reference key="NSDocView" ref="173651346"/>
                                                                <reference key="NSBGColor" ref="729660797"/>
                                                                <int key="NScvFlags">4</int>
@@ -3569,6 +3566,7 @@ AAABAAAAAQ</bytes>
                                                                </object>
                                                                <string key="NSFrame">{{1, 0}, {331, 17}}</string>
                                                                <reference key="NSSuperview" ref="122119447"/>
+                                                               <reference key="NSNextKeyView" ref="520862816"/>
                                                                <reference key="NSDocView" ref="520862816"/>
                                                                <reference key="NSBGColor" ref="729660797"/>
                                                                <int key="NScvFlags">4</int>
@@ -3577,6 +3575,7 @@ AAABAAAAAQ</bytes>
                                                </object>
                                                <string key="NSFrame">{{103, 63}, {348, 113}}</string>
                                                <reference key="NSSuperview" ref="810116101"/>
+                                               <reference key="NSNextKeyView" ref="206862330"/>
                                                <int key="NSsFlags">18</int>
                                                <reference key="NSVScroller" ref="220703981"/>
                                                <reference key="NSHScroller" ref="383062716"/>
@@ -3703,6 +3702,11 @@ AAABAAAAAQ</bytes>
                                <string key="NSExtension">NSResponder</string>
                        </object>
                        <object class="NSUserDefaultsController" id="356871564">
+                               <object class="NSMutableArray" key="NSDeclaredKeys">
+                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                       <string>Blocklist</string>
+                                       <string>BlocklistAutoUpdate</string>
+                               </object>
                                <bool key="NSSharedInstance">YES</bool>
                        </object>
                </object>
@@ -6528,6 +6532,46 @@ AAABAAAAAQ</bytes>
                                        </object>
                                        <int key="connectionID">1740</int>
                                </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBBindingConnection" key="connection">
+                                               <string key="label">enabled: values.Blocklist</string>
+                                               <reference key="source" ref="1064247210"/>
+                                               <reference key="destination" ref="356871564"/>
+                                               <object class="NSNibBindingConnector" key="connector">
+                                                       <reference key="NSSource" ref="1064247210"/>
+                                                       <reference key="NSDestination" ref="356871564"/>
+                                                       <string key="NSLabel">enabled: values.Blocklist</string>
+                                                       <string key="NSBinding">enabled</string>
+                                                       <string key="NSKeyPath">values.Blocklist</string>
+                                                       <int key="NSNibBindingConnectorVersion">2</int>
+                                               </object>
+                                       </object>
+                                       <int key="connectionID">1743</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBBindingConnection" key="connection">
+                                               <string key="label">value: values.BlocklistAutoUpdate</string>
+                                               <reference key="source" ref="1064247210"/>
+                                               <reference key="destination" ref="356871564"/>
+                                               <object class="NSNibBindingConnector" key="connector">
+                                                       <reference key="NSSource" ref="1064247210"/>
+                                                       <reference key="NSDestination" ref="356871564"/>
+                                                       <string key="NSLabel">value: values.BlocklistAutoUpdate</string>
+                                                       <string key="NSBinding">value</string>
+                                                       <string key="NSKeyPath">values.BlocklistAutoUpdate</string>
+                                                       <int key="NSNibBindingConnectorVersion">2</int>
+                                               </object>
+                                       </object>
+                                       <int key="connectionID">1744</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">setBlocklistAutoUpdate:</string>
+                                               <reference key="source" ref="511492310"/>
+                                               <reference key="destination" ref="1064247210"/>
+                                       </object>
+                                       <int key="connectionID">1745</int>
+                               </object>
                        </object>
                        <object class="IBMutableOrderedSet" key="objectRecords">
                                <object class="NSArray" key="orderedObjects">
@@ -7908,6 +7952,7 @@ AAABAAAAAQ</bytes>
                                                        <reference ref="826556979"/>
                                                        <reference ref="117148406"/>
                                                        <reference ref="484538294"/>
+                                                       <reference ref="1064247210"/>
                                                </object>
                                                <reference key="parent" ref="37013934"/>
                                                <string key="objectName">Peers</string>
@@ -8889,6 +8934,20 @@ AAABAAAAAQ</bytes>
                                                <reference key="object" ref="520011795"/>
                                                <reference key="parent" ref="484538294"/>
                                        </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1741</int>
+                                               <reference key="object" ref="1064247210"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="46409197"/>
+                                               </object>
+                                               <reference key="parent" ref="538122014"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">1742</int>
+                                               <reference key="object" ref="46409197"/>
+                                               <reference key="parent" ref="1064247210"/>
+                                       </object>
                                </object>
                        </object>
                        <object class="NSMutableDictionary" key="flattenedProperties">
@@ -9091,6 +9150,8 @@ AAABAAAAAQ</bytes>
                                        <string>1733.ImportedFromIB2</string>
                                        <string>1738.IBPluginDependency</string>
                                        <string>1738.ImportedFromIB2</string>
+                                       <string>1741.IBPluginDependency</string>
+                                       <string>1742.IBPluginDependency</string>
                                        <string>190.IBPluginDependency</string>
                                        <string>190.ImportedFromIB2</string>
                                        <string>192.IBPluginDependency</string>
@@ -9329,7 +9390,7 @@ AAABAAAAAQ</bytes>
                                        <reference ref="761722050"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
-                                       <string>{{38, 470}, {535, 278}}</string>
+                                       <string>{{38, 470}, {535, 298}}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
                                        <string>{{281, 577}, {539, 315}}</string>
@@ -9489,7 +9550,9 @@ AAABAAAAAQ</bytes>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <real value="1.000000e+00"/>
+                                       <reference ref="761722050"/>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -9567,7 +9630,7 @@ AAABAAAAAQ</bytes>
                                        <reference ref="761722050"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
-                                       <string>{{55, 399}, {535, 272}}</string>
+                                       <string>{{24, 399}, {535, 272}}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="761722050"/>
                                        <string>{{0, 701}, {539, 272}}</string>
@@ -9719,7 +9782,7 @@ AAABAAAAAQ</bytes>
                                </object>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">1740</int>
+                       <int key="maxID">1745</int>
                </object>
                <object class="IBClassDescriber" key="IBDocument.Classes">
                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -9828,6 +9891,7 @@ AAABAAAAAQ</bytes>
                                                        <string>setAutoSize:</string>
                                                        <string>setAutoSpeedLimit:</string>
                                                        <string>setBadge:</string>
+                                                       <string>setBlocklistAutoUpdate:</string>
                                                        <string>setBlocklistEnabled:</string>
                                                        <string>setDownloadLocation:</string>
                                                        <string>setEncryptionMode:</string>
@@ -9904,6 +9968,7 @@ AAABAAAAAQ</bytes>
                                                        <string>id</string>
                                                        <string>id</string>
                                                        <string>id</string>
+                                                       <string>id</string>
                                                </object>
                                        </object>
                                        <object class="NSMutableDictionary" key="outlets">