         fatalError("NSCoding not supported")
     }
     
+    deinit {
+        backspaceDelayTimer?.invalidate()
+        backspaceRepeatTimer?.invalidate()
+    }
+    
     // without this here kludge, the height constraint for the keyboard does not work for some reason
     var kludge: UIView?
     func setupKludge() {

]
func metric(name: String) -> CGFloat { return CGFloat(metrics[name]!) }

// TODO: live color changes! colors persist if keyboard is not unloaded between appearances, oh noes
class KeyboardViewController: UIInputViewController {
    

            banner.hidden = true
            self.view.insertSubview(banner, belowSubview: self.forwardingView)
            self.bannerView = banner
            
            self.setCapsIfNeeded()
        }
    }
    
